Custom searchable tree select
Package | @schukai/component-form |
Import | import {TreeSelect} from "https://cdn.jsdelivr.net/npm/@schukai/[email protected]/dist/modules/treeselect.js"; |
Usage
The TreeSelect control is derived from Select and therefore inherits all properties and functions. It extends the control by the display of hierarchical data.
const treeselect = document.createElement('monster-tree-select');
// URL
treeselect.setOption('url', 'https://monsterjs.org/assets/14-forms-treeselect-data.json');
// Multiselect
treeselect.setOption('type', 'checkbox');
// search for data in dataset
treeselect.setOption('mapping.selector', 'dataset.*');
// define label and key
treeselect.setOption('mapping.labelTemplate', '${localeLabel | index:en}');
treeselect.setOption('mapping.valueTemplate', '${cid | tostring }');
// wich field is the parent ID?
treeselect.setOption('mapping.parentTemplate', 'parentCID');
treeselect.setOption('mapping.idTemplate', 'cid');
// append
document.getElementById('container').appendChild(treeselect);
Events
The following events are fired by the component.Layout
The tree select control can be customized to your own needs. For this purpose, the control can be designed via css.
The different parts of the control can be designed using CSS. Since the internals of the component are in a shadow tree, access is via css pseudo-element parts.
#tab::part(popper) {
background-color: white;
}
The individual parts are shown in the following picture.