@omegagrid/tree 0.6.133 → 0.6.135

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"version":3,"file":"dropdown.d.ts","sourceRoot":"","sources":["../../src/ui/dropdown.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAO,KAAK,EAAqB,MAAM,iBAAiB,CAAC;AAE3F,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAC3D,OAAO,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAClG,OAAO,EAAe,OAAO,EAAE,MAAM,YAAY,CAAC;AAElD,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACnD,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AAIzC,OAAO,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAGrC,qBACa,YAAa,SAAQ,QAAQ;IAEzC,MAAM,CAAC,MAAM,4BAA+B;IAG5C,OAAO,EAAE,OAAO,CAAiB;IAGjC,KAAK,EAAE,SAAS,CAAC;IAGjB,OAAO,EAAE,WAAW,CAAC;IAGrB,SAAS,EAAE,kBAAkB,CAAwC;IAGrE,SAAS,SAAO;IAGhB,QAAQ,SAAO;IAGf,KAAK,EAAE,eAAe,EAAE,CAAC;IAGzB,KAAK,UAAS;IAGd,OAAO,EAAE,MAAM,CAAC;IAGhB,WAAW,EAAE,MAAM,CAAC;IAGpB,WAAW,UAAS;IAGpB,iBAAiB,UAAS;IAG1B,YAAY,UAAS;IAGrB,aAAa,kCAAyC;IAGtD,MAAM,EAAE,MAAM,CAAC;IAGf,KAAK,EAAE,KAAK,CAAC;IAGb,UAAU,EAAE,cAAc,CAAC;IAG3B,UAAU,SAAM;IAEhB,KAAK,EAAE,IAAI,CAAC;IACZ,eAAe,UAAQ;IACvB,UAAU,UAAQ;IAClB,cAAc,UAAQ;IACtB,aAAa,SAAK;IAElB,oBAAoB;;uBArEA,CAAC;MAyElB;IAEH,aAAa,aAEZ;IAED,IAAI,cAAc,YAEjB;IAED,IAAI,IAAI,SAaP;IAED,OAAO,UAA4C;IAEnD,SAAS,CAAC,CAAC,EAAE,SAAS;IAYhB,IAAI;IAKJ,UAAU,CAAC,YAAY,EAAE,GAAG,CAAC,WAAW,EAAE,OAAO,CAAC;IA8BlD,MAAM,CAAC,IAAI,EAAE,MAAM;IAQnB,WAAW;IAQjB,KAAK;;IAmBL,iBAAiB;IASjB,aAAa,CAAC,UAAU,EAAE,UAAU,EAAE,OAAO,GAAE,OAAO,CAAC,OAAO,CAAQ;IAMtE,aAAa,CAAC,OAAO,EAAE,OAAO,CAAC,OAAO,CAAC;IAKvC,WAAW;IAaL,cAAc,CAAC,aAAa,UAAQ;IAQ1C,YAAY,aASX;IAED,WAAW,aAEV;IAED,iBAAiB,IAAK,CAAC,SAAS,EAAE,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,EAAE,OAAO,CAAC,EAAE;IAgBjE,oBAAoB;IAoBpB,gBAAgB;IAOhB,eAAe;;uBAzRK,CAAC;MA4Rb;IAER,QAAQ,MAAa,UAAU,mBAK9B;IAED,eAAe,MAAO,aAAa,UAmBlC;IAED,YAAY,eAAoD;IAEhE,MAAM,6CAmCJ;CACF"}
1
+ {"version":3,"file":"dropdown.d.ts","sourceRoot":"","sources":["../../src/ui/dropdown.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAO,KAAK,EAAqB,MAAM,iBAAiB,CAAC;AAE3F,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAC3D,OAAO,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAClG,OAAO,EAAe,OAAO,EAAE,MAAM,YAAY,CAAC;AAElD,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACnD,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AAIzC,OAAO,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAGrC,qBACa,YAAa,SAAQ,QAAQ;IAEzC,MAAM,CAAC,MAAM,4BAA+B;IAG5C,OAAO,EAAE,OAAO,CAAiB;IAGjC,KAAK,EAAE,SAAS,CAAC;IAGjB,OAAO,EAAE,WAAW,CAAC;IAGrB,SAAS,EAAE,kBAAkB,CAAwC;IAGrE,SAAS,SAAO;IAGhB,QAAQ,SAAO;IAGf,KAAK,EAAE,eAAe,EAAE,CAAC;IAGzB,KAAK,UAAS;IAGd,OAAO,EAAE,MAAM,CAAC;IAGhB,WAAW,EAAE,MAAM,CAAC;IAGpB,WAAW,UAAS;IAGpB,iBAAiB,UAAS;IAG1B,YAAY,UAAS;IAGrB,aAAa,kCAAyC;IAGtD,MAAM,EAAE,MAAM,CAAC;IAGf,KAAK,EAAE,KAAK,CAAC;IAGb,UAAU,EAAE,cAAc,CAAC;IAG3B,UAAU,SAAM;IAEhB,KAAK,EAAE,IAAI,CAAC;IACZ,eAAe,UAAQ;IACvB,UAAU,UAAQ;IAClB,cAAc,UAAQ;IACtB,aAAa,SAAK;IAElB,oBAAoB;;uBArEA,CAAC;MAyElB;IAEH,aAAa,aAEZ;IAED,IAAI,cAAc,YAEjB;IAED,IAAI,IAAI,SAaP;IAED,OAAO,UAA4C;IAEnD,SAAS,CAAC,CAAC,EAAE,SAAS;IAYhB,IAAI;IAKJ,UAAU,CAAC,YAAY,EAAE,GAAG,CAAC,WAAW,EAAE,OAAO,CAAC;IAiClD,MAAM,CAAC,IAAI,EAAE,MAAM;IAQnB,WAAW;IAQjB,KAAK;;IAmBL,iBAAiB;IASjB,aAAa,CAAC,UAAU,EAAE,UAAU,EAAE,OAAO,GAAE,OAAO,CAAC,OAAO,CAAQ;IAMtE,aAAa,CAAC,OAAO,EAAE,OAAO,CAAC,OAAO,CAAC;IAKvC,WAAW;IAaL,cAAc,CAAC,aAAa,UAAQ;IAQ1C,YAAY,aASX;IAED,WAAW,aAEV;IAED,iBAAiB,IAAK,CAAC,SAAS,EAAE,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,EAAE,OAAO,CAAC,EAAE;IAgBjE,oBAAoB;IAoBpB,gBAAgB;IAOhB,eAAe;;uBA5RK,CAAC;MA+Rb;IAER,QAAQ,MAAa,UAAU,mBAK9B;IAED,eAAe,MAAO,aAAa,UAmBlC;IAED,YAAY,eAAoD;IAEhE,MAAM,6CAmCJ;CACF"}
@@ -60,13 +60,15 @@ let TreeDropdown = class TreeDropdown extends Dropdown {
60
60
  this.selection.setItems(this.value);
61
61
  this.selectedItems = null;
62
62
  this.selectedItems = this.selection.items;
63
- if (this._autoHighlight) {
64
- this.tree.highlightFirstSelectedNode();
65
- }
66
- else {
67
- this._autoHighlight = true;
63
+ if (this.isOpen && this.tree) {
64
+ if (this._autoHighlight) {
65
+ this.tree.highlightFirstSelectedNode();
66
+ }
67
+ else {
68
+ this._autoHighlight = true;
69
+ }
70
+ this.tree.renderItems(true);
68
71
  }
69
- this.tree.renderItems(true);
70
72
  }
71
73
  if (this._tree) {
72
74
  if (changedProps.has('adapter'))
@@ -1 +1 @@
1
- {"version":3,"file":"dropdown.js","sourceRoot":"","sources":["../../src/ui/dropdown.ts"],"names":[],"mappings":"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","sourcesContent":["import { Button, Dropdown, Tooltip, dom, Input, ListSelectTrigger } from \"@omegagrid/core\";\nimport { customElement, property, query, state } from \"lit/decorators.js\";\nimport { TreeModel, TreeSource } from \"../model/treeModel\";\nimport { SelectedItemParams, TreeSelectionModel, SerializedValue } from \"../model/selectionModel\";\nimport { initOptions, Options } from \"../options\";\nimport { html } from \"lit\";\nimport { TreeAdapter } from \"../model/treeAdapter\";\nimport { Tree, TreeEvent } from \"./tree\";\nimport { map } from 'lit/directives/map.js';\nimport { join } from 'lit/directives/join.js';\nimport { debounce } from \"ts-debounce\";\nimport { NodeModel } from \"../model\";\nimport { style } from \"./dropdown.style\";\n\n@customElement('og-tree-dropdown')\nexport class TreeDropdown extends Dropdown {\n\n\tstatic styles = [...Dropdown.styles, style];\n\n\t@property({type: Object})\n\toptions: Options = initOptions();\n\n\t@property({type: Object})\n\tmodel: TreeModel;\n\n\t@property({type: Object})\n\tadapter: TreeAdapter;\n\n\t@property({type: Object})\n\tselection: TreeSelectionModel = new TreeSelectionModel(this.options);\n\n\t@property({type: Number})\n\tmaxHeight = 300;\n\n\t@property({type: Number})\n\tmaxWidth = 400;\n\n\t@property({type: Array})\n\tvalue: SerializedValue[];\n\n\t@property({type: Boolean, reflect: true})\n\tcross = false;\n\t\n\t@property({type: String})\n\tcaption: string;\n\n\t@property({type: String})\n\tplaceholder: string;\n\n\t@property({type: Boolean})\n\tbuttonInput = false;\n\n\t@property({type: Boolean})\n\tpreventInputEnter = false;\n\n\t@property({type: Boolean})\n\tdynamicWidth = false;\n\n\t@state()\n\tselectedItems = new Map<string, SelectedItemParams>();\n\n\t@query('og-button')\n\tbutton: Button;\n\n\t@query('og-input')\n\tinput: Input;\n\n\t@query('#content')\n\tcontentDiv: HTMLDivElement;\n\n\t@state()\n\tsearchTerm = '';\n\n\t_tree: Tree;\n\t_renderDropdown = true;\n\t_firstOpen = true;\n\t_autoHighlight = true;\n\toriginalWidth = 0;\n\n\t_debounceWidthUpdate = debounce(() => {\n\t\tif (!this.dropdown || !this.dropdown.isConnected) return;\n\t\tdom.fixElementPosition(this.dropdown);\n\t\tif (this.dynamicWidth) this.adjustWidth();\n\t});\n\n\t_onTreeRender = () => {\n\t\tthis._debounceWidthUpdate();\n\t}\n\n\tget hasCrossButton() { \n\t\treturn this.cross && ((this.selection.count > 0 && this.options.allowEmpty) || this.searchTerm !== '');\n\t}\n\n\tget tree() {\n\t\tif (this._tree) return this._tree;\n\t\tthis._tree = new Tree();\n\t\tthis._tree.disableAutoload = true;\n\t\tthis._tree.model = this.adapter ? null : this.model;\n\t\tthis._tree.adapter = this.adapter;\n\t\tthis._tree.selection = this.selection;\n\t\tthis._tree.options = this.options;\n\t\tthis._tree.maxHeight = this.maxHeight;\n\t\tthis._tree.addEventListener('change', (e: TreeEvent) => this._onChange(e));\n\t\tthis._tree.addEventListener('render', this._onTreeRender);\n\t\tthis._tree.slot = 'inner-content';\n\t\treturn this._tree;\n\t}\n\n\ttooltip = dom.createElement<Tooltip>('og-tooltip');\n\n\t_onChange(e: TreeEvent) {\n\t\tthis._autoHighlight = false; // prevent autoscroll after manual selection\n\t\tthis.selectedItems = null;\n\t\tthis.selectedItems = e.component.selection.items;\n\t\tthis.value = e.component.selection.serialize();\n\t\tif (this.options.autoClose) this.close();\n\t\tthis.dispatchEvent(new TreeEvent(e.type, {component: e.component, node: e.node}));\n\t\t// if (this.input) {\n\t\t// \tsetTimeout(() => this.input.focus(), 1000);\n\t\t// }\n\t}\n\n\tasync open() {\n\t\tif (this.tree.parentElement != this.dropdown) this.dropdown.appendChild(this._tree);\n\t\tawait super.open();\n\t}\n\n\tasync willUpdate(changedProps: Map<PropertyKey, unknown>) {\n\t\tif (this.buttonInput) {\n\t\t\tthis.options.search = false;\n\t\t}\n\n\t\tif (changedProps.has('value')) {\n\t\t\tthis.selection.setItems(this.value);\n\t\t\tthis.selectedItems = null;\n\t\t\tthis.selectedItems = this.selection.items;\n\t\t\tif (this._autoHighlight) {\n\t\t\t\tthis.tree.highlightFirstSelectedNode();\n\t\t\t} else {\n\t\t\t\tthis._autoHighlight = true;\n\t\t\t}\n\t\t\tthis.tree.renderItems(true);\n\t\t}\n\n\t\tif (this._tree) {\n\t\t\tif (changedProps.has('adapter')) this._tree.adapter = this.adapter;\n\t\t\tif (changedProps.has('model')) this._tree.model = this.model;\n\t\t}\n\n\t\tif (changedProps.has('adapter') && this.adapter) {\n\t\t\tthis._firstOpen = true; // force to reload data after opening dropdown\n\t\t\tthis.options = initOptions(await this.adapter.getOptions(), this.options);\n\t\t}\n\n\t\tthis._renderDropdown = true;\n\t}\n\n\tasync filter(term: string) {\n\t\tif (this.input) this.searchTerm = term;\n\t\tawait this.updateComplete;\n\t\tif (this.input) this.input.value = term;\n\t\tawait this.tree.updateComplete;\n\t\tthis.tree.filter(term);\n\t}\n\n\tasync clearFilter() {\n\t\tif (this.input) this.searchTerm = '';\n\t\tawait this.updateComplete;\n\t\tif (this.input) this.input.value = '';\n\t\tawait this.tree.updateComplete;\n\t\tthis.tree.clearFilter();\n\t}\n\n\tfocus() {\n\t\tif (this.buttonInput) this.input?.focus();\n\t\telse super.focus();\n\t}\n\n\tconstructor() {\n\t\tsuper();\n\n\t\tthis.addEventListener('dropdown.open', async () => {\n\t\t\tthis.focus();\n\t\t\t\n\t\t\tif (this.adapter && (this._firstOpen || this.options.alwaysRefresh)) {\n\t\t\t\tawait this.tree.loadData();\n\t\t\t}\n\n\t\t\tthis._firstOpen = false;\n\t\t});\n\t}\n\n\tconnectedCallback() {\n\t\tsuper.connectedCallback();\n\n\t\tif (!this.hasUpdated) {\n\t\t\tif (this.value) this.selection.setItems(this.value);\n\t\t\tthis.selectedItems = this.selection.items;\n\t\t}\n\t}\n\n\tsetSourceData(sourceData: TreeSource, options: Partial<Options> = null) {\n\t\tif (options) this.updateOptions(options);\n\t\tthis.model = new TreeModel(sourceData, this.options);\n\t\tif (this._tree) this._tree.model = this.model;\n\t}\n\n\tupdateOptions(options: Partial<Options>) {\n\t\tObject.assign(this.options, options ?? {});\n\t\tthis.requestUpdate();\n\t}\n\n\tadjustWidth() {\n\t\tif (this.tree?.list && this.dropdown) {\n\t\t\tthis.originalWidth = this.originalWidth || this.dropdown.offsetWidth;\n\t\t\tdom.setSize(this.dropdown, {w: Math.min(this.originalWidth, this.maxWidth)});\n\t\t\t\n\t\t\tconst width = this.tree.list.calculateViewportMaxItemWidth();\n\t\t\tif (width > this.dropdown.offsetWidth) {\n\t\t\t\tdom.setSize(this.dropdown, {w: Math.min(width, this.maxWidth)});\n\t\t\t\tthis.layout();\n\t\t\t}\n\t\t}\n\t}\n\n\tasync clearSelection(dispatchEvent = false) {\n\t\tthis.selection.clear();\n\t\tawait this.clearFilter();\n\t\tthis.requestUpdate();\n\t\tif (dispatchEvent) this.dispatchEvent(new TreeEvent('change', {component: this.tree}));\n\t\tthis.tree?.renderItems(true);\n\t}\n\n\t_onMouseOver = () => {\n\t\tif (this.contentDiv && this.contentDiv.scrollWidth > this.contentDiv.clientWidth) {\n\t\t\tif (!this.tooltip.parentElement) {\n\t\t\t\tdocument.body.appendChild(this.tooltip);\n\t\t\t\tthis.tooltip.style.maxWidth = \"200px\";\n\t\t\t}\n\t\t\tthis.tooltip.content = this.getButtonContentHtml();\n\t\t\tthis.tooltip.attachTo(this.button, 'bottom');\n\t\t}\n\t}\n\n\t_onMouseOut = () => {\n\t\tthis.tooltip.deatach();\n\t}\n\n\tgetSelectionItems() : [NodeModel, [number, boolean][], boolean][] {\n\t\tconst model = this.tree?.model ?? this.model;\n\t\treturn Array.from(this.selectedItems).map(([key, item]) => {\n\t\t\tconst red = item.levels.has(0) && item.levels.get(0) == false;\n\t\t\tconst levels = [...item.levels.entries()].filter(item2 => item2[0] > 0);\n\t\t\tconst node = model?.nodeMap.has(key) ? model.nodeMap.get(key) : new NodeModel(this.tree.model, {\n\t\t\t\tk: key, \n\t\t\t\tv: item?.value ?? key\n\t\t\t});\n\t\t\tif (levels.length < item.levels.size && levels.length > 0) {\n\t\t\t\tlevels.unshift([0, item.levels.get(0)]);\n\t\t\t}\n\t\t\treturn [node, levels, red] as [NodeModel, [number, boolean][], boolean];\n\t\t});\n\t}\n\n\tgetButtonContentHtml() {\n\t\tconst items = this.getSelectionItems();\n\t\tconst caption = this.caption ? html`<span id=\"caption\">${this.caption}</span>` : null;\n\t\tconst placeholder = this.placeholder ? html`<span id=\"placeholder\">${this.placeholder}</span>` : null;\n\t\treturn items.length > 0 ? html`${caption ? html`${caption}:&nbsp;` : ``}${join(map(items, ([node, levels, red]) => html`\n\t\t\t${node && node.icon ? html`<og-icon .icon=\"${node.icon}\"></og-icon>&nbsp;` : null}\n\t\t\t${red \n\t\t\t\t? html`<span style=\"color:#ff0000\">${node.value}</span>` \n\t\t\t\t: html`<span>${node.value}</span>`\n\t\t\t}\n\t\t\t${levels.length > 0 \n\t\t\t\t? html`(${join(map(levels, level => level[0]), html`,&nbsp;`)})` \n\t\t\t\t: ``\n\t\t\t}\n\t\t`), html`,&nbsp;`)}` : (caption \n\t\t\t? html`${caption}${placeholder ? html`: ${placeholder}` : ``}` \n\t\t\t: (placeholder ? html`${placeholder}` : html`&nbsp;`)\n\t\t);\n\t}\n\n\tgetSelectionText() {\n\t\treturn this.getSelectionItems().map(([node, levels]) => node.value + (levels.length > 0 \n\t\t\t? ` (${levels.map(level => level[0]).join(',')})`\n\t\t\t: ''\n\t\t)).join(',');\n\t}\n\n\t_debounceFilter = debounce((term: string) => {\n\t\tthis.tree.filter(term);\n\t\tthis.dispatchEvent(new TreeEvent('tree.filter'));\n\t}, 300);\n\n\t_onInput = async (e: InputEvent) => {\n\t\tif (!this.isOpen) await this.open();\n\t\tconst value = (e.target as Input).value;\n\t\tthis._debounceFilter(value);\n\t\tthis.searchTerm = value;\n\t}\n\n\t_onInputKeyDown = (e: KeyboardEvent) => {\n\t\tswitch (e.key) {\n\t\t\tcase 'ArrowDown':\n\t\t\t\te.preventDefault();\n\t\t\t\tthis.tree.list.moveDown();\n\t\t\t\tbreak;\n\t\t\tcase 'ArrowUp':\n\t\t\t\te.preventDefault();\n\t\t\t\tthis.tree.list.moveUp();\n\t\t\t\tbreak;\n\t\t\tcase 'Enter':\n\t\t\t\te.preventDefault();\n\t\t\t\tif (this.preventInputEnter) return;\n\t\t\t\tif (this.tree.list.selectedIndex > -1) {\n\t\t\t\t\tthis.tree.list.select(this.tree.list.selectedIndex, ListSelectTrigger.Enter);\n\t\t\t\t\tsetTimeout(() => this.input.focus(), 100);\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t}\n\t}\n\n\t_onInputBlur = () => this.input.value = this.getSelectionText();\n\n\trender = () => html`\n\t\t${this.buttonInput ? html`\n\t\t\t<og-input\n\t\t\t\t@input=\"${this._onInput}\"\n\t\t\t\t@keydown=\"${this._onInputKeyDown}\"\n\t\t\t\t@blur=\"${this._onInputBlur}\"\n\t\t\t\t.value=\"${this.getSelectionText()}\">\n\t\t\t</og-input>\n\t\t` : ''}\n\n\t\t<og-button\n\t\t\t@mousedown=\"${this._onMousedown}\"\n\t\t\t@mouseenter=\"${this._onMouseOver}\"\n\t\t\t@mouseleave=\"${this._onMouseOut}\"\n\t\t\tcolor=\"${this.color}\"\n\t\t\tid=\"main\"\n\t\t\tstyle=\"flex: 1\" \n\t\t\tcaret>\n\t\t\t${this.buttonInput ? '' : html`\n\t\t\t\t<div id=\"content\" slot=\"content\">\n\t\t\t\t\t${this.getButtonContentHtml()}\n\t\t\t\t</div>\n\t\t\t`}\n\t\t</og-button>\n\n\t\t${this.hasCrossButton ? html`\n\t\t\t<og-button\n\t\t\t\tid=\"cross\"\n\t\t\t\t@mousedown=\"${() => this.clearSelection(true)}\"\n\t\t\t\ticon=\"xmark\"\n\t\t\t\tcolor=\"red\">\n\t\t\t</og-button>\n\t\t` : ``}\n\n\t\t${this.renderDropdown()}\n\t`;\n}\n"]}
1
+ {"version":3,"file":"dropdown.js","sourceRoot":"","sources":["../../src/ui/dropdown.ts"],"names":[],"mappings":"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","sourcesContent":["import { Button, Dropdown, Tooltip, dom, Input, ListSelectTrigger } from \"@omegagrid/core\";\nimport { customElement, property, query, state } from \"lit/decorators.js\";\nimport { TreeModel, TreeSource } from \"../model/treeModel\";\nimport { SelectedItemParams, TreeSelectionModel, SerializedValue } from \"../model/selectionModel\";\nimport { initOptions, Options } from \"../options\";\nimport { html } from \"lit\";\nimport { TreeAdapter } from \"../model/treeAdapter\";\nimport { Tree, TreeEvent } from \"./tree\";\nimport { map } from 'lit/directives/map.js';\nimport { join } from 'lit/directives/join.js';\nimport { debounce } from \"ts-debounce\";\nimport { NodeModel } from \"../model\";\nimport { style } from \"./dropdown.style\";\n\n@customElement('og-tree-dropdown')\nexport class TreeDropdown extends Dropdown {\n\n\tstatic styles = [...Dropdown.styles, style];\n\n\t@property({type: Object})\n\toptions: Options = initOptions();\n\n\t@property({type: Object})\n\tmodel: TreeModel;\n\n\t@property({type: Object})\n\tadapter: TreeAdapter;\n\n\t@property({type: Object})\n\tselection: TreeSelectionModel = new TreeSelectionModel(this.options);\n\n\t@property({type: Number})\n\tmaxHeight = 300;\n\n\t@property({type: Number})\n\tmaxWidth = 400;\n\n\t@property({type: Array})\n\tvalue: SerializedValue[];\n\n\t@property({type: Boolean, reflect: true})\n\tcross = false;\n\t\n\t@property({type: String})\n\tcaption: string;\n\n\t@property({type: String})\n\tplaceholder: string;\n\n\t@property({type: Boolean})\n\tbuttonInput = false;\n\n\t@property({type: Boolean})\n\tpreventInputEnter = false;\n\n\t@property({type: Boolean})\n\tdynamicWidth = false;\n\n\t@state()\n\tselectedItems = new Map<string, SelectedItemParams>();\n\n\t@query('og-button')\n\tbutton: Button;\n\n\t@query('og-input')\n\tinput: Input;\n\n\t@query('#content')\n\tcontentDiv: HTMLDivElement;\n\n\t@state()\n\tsearchTerm = '';\n\n\t_tree: Tree;\n\t_renderDropdown = true;\n\t_firstOpen = true;\n\t_autoHighlight = true;\n\toriginalWidth = 0;\n\n\t_debounceWidthUpdate = debounce(() => {\n\t\tif (!this.dropdown || !this.dropdown.isConnected) return;\n\t\tdom.fixElementPosition(this.dropdown);\n\t\tif (this.dynamicWidth) this.adjustWidth();\n\t});\n\n\t_onTreeRender = () => {\n\t\tthis._debounceWidthUpdate();\n\t}\n\n\tget hasCrossButton() { \n\t\treturn this.cross && ((this.selection.count > 0 && this.options.allowEmpty) || this.searchTerm !== '');\n\t}\n\n\tget tree() {\n\t\tif (this._tree) return this._tree;\n\t\tthis._tree = new Tree();\n\t\tthis._tree.disableAutoload = true;\n\t\tthis._tree.model = this.adapter ? null : this.model;\n\t\tthis._tree.adapter = this.adapter;\n\t\tthis._tree.selection = this.selection;\n\t\tthis._tree.options = this.options;\n\t\tthis._tree.maxHeight = this.maxHeight;\n\t\tthis._tree.addEventListener('change', (e: TreeEvent) => this._onChange(e));\n\t\tthis._tree.addEventListener('render', this._onTreeRender);\n\t\tthis._tree.slot = 'inner-content';\n\t\treturn this._tree;\n\t}\n\n\ttooltip = dom.createElement<Tooltip>('og-tooltip');\n\n\t_onChange(e: TreeEvent) {\n\t\tthis._autoHighlight = false; // prevent autoscroll after manual selection\n\t\tthis.selectedItems = null;\n\t\tthis.selectedItems = e.component.selection.items;\n\t\tthis.value = e.component.selection.serialize();\n\t\tif (this.options.autoClose) this.close();\n\t\tthis.dispatchEvent(new TreeEvent(e.type, {component: e.component, node: e.node}));\n\t\t// if (this.input) {\n\t\t// \tsetTimeout(() => this.input.focus(), 1000);\n\t\t// }\n\t}\n\n\tasync open() {\n\t\tif (this.tree.parentElement != this.dropdown) this.dropdown.appendChild(this._tree);\n\t\tawait super.open();\n\t}\n\n\tasync willUpdate(changedProps: Map<PropertyKey, unknown>) {\n\t\tif (this.buttonInput) {\n\t\t\tthis.options.search = false;\n\t\t}\n\n\t\tif (changedProps.has('value')) {\n\t\t\tthis.selection.setItems(this.value);\n\t\t\tthis.selectedItems = null;\n\t\t\tthis.selectedItems = this.selection.items;\n\n\t\t\tif (this.isOpen && this.tree) {\n\t\t\t\tif (this._autoHighlight) {\n\t\t\t\t\tthis.tree.highlightFirstSelectedNode();\n\t\t\t\t} else {\n\t\t\t\t\tthis._autoHighlight = true;\n\t\t\t\t}\n\t\t\t\tthis.tree.renderItems(true);\n\t\t\t}\n\t\t}\n\n\t\tif (this._tree) {\n\t\t\tif (changedProps.has('adapter')) this._tree.adapter = this.adapter;\n\t\t\tif (changedProps.has('model')) this._tree.model = this.model;\n\t\t}\n\n\t\tif (changedProps.has('adapter') && this.adapter) {\n\t\t\tthis._firstOpen = true; // force to reload data after opening dropdown\n\t\t\tthis.options = initOptions(await this.adapter.getOptions(), this.options);\n\t\t}\n\n\t\tthis._renderDropdown = true;\n\t}\n\n\tasync filter(term: string) {\n\t\tif (this.input) this.searchTerm = term;\n\t\tawait this.updateComplete;\n\t\tif (this.input) this.input.value = term;\n\t\tawait this.tree.updateComplete;\n\t\tthis.tree.filter(term);\n\t}\n\n\tasync clearFilter() {\n\t\tif (this.input) this.searchTerm = '';\n\t\tawait this.updateComplete;\n\t\tif (this.input) this.input.value = '';\n\t\tawait this.tree.updateComplete;\n\t\tthis.tree.clearFilter();\n\t}\n\n\tfocus() {\n\t\tif (this.buttonInput) this.input?.focus();\n\t\telse super.focus();\n\t}\n\n\tconstructor() {\n\t\tsuper();\n\n\t\tthis.addEventListener('dropdown.open', async () => {\n\t\t\tthis.focus();\n\t\t\t\n\t\t\tif (this.adapter && (this._firstOpen || this.options.alwaysRefresh)) {\n\t\t\t\tawait this.tree.loadData();\n\t\t\t}\n\n\t\t\tthis._firstOpen = false;\n\t\t});\n\t}\n\n\tconnectedCallback() {\n\t\tsuper.connectedCallback();\n\n\t\tif (!this.hasUpdated) {\n\t\t\tif (this.value) this.selection.setItems(this.value);\n\t\t\tthis.selectedItems = this.selection.items;\n\t\t}\n\t}\n\n\tsetSourceData(sourceData: TreeSource, options: Partial<Options> = null) {\n\t\tif (options) this.updateOptions(options);\n\t\tthis.model = new TreeModel(sourceData, this.options);\n\t\tif (this._tree) this._tree.model = this.model;\n\t}\n\n\tupdateOptions(options: Partial<Options>) {\n\t\tObject.assign(this.options, options ?? {});\n\t\tthis.requestUpdate();\n\t}\n\n\tadjustWidth() {\n\t\tif (this.tree?.list && this.dropdown) {\n\t\t\tthis.originalWidth = this.originalWidth || this.dropdown.offsetWidth;\n\t\t\tdom.setSize(this.dropdown, {w: Math.min(this.originalWidth, this.maxWidth)});\n\t\t\t\n\t\t\tconst width = this.tree.list.calculateViewportMaxItemWidth();\n\t\t\tif (width > this.dropdown.offsetWidth) {\n\t\t\t\tdom.setSize(this.dropdown, {w: Math.min(width, this.maxWidth)});\n\t\t\t\tthis.layout();\n\t\t\t}\n\t\t}\n\t}\n\n\tasync clearSelection(dispatchEvent = false) {\n\t\tthis.selection.clear();\n\t\tawait this.clearFilter();\n\t\tthis.requestUpdate();\n\t\tif (dispatchEvent) this.dispatchEvent(new TreeEvent('change', {component: this.tree}));\n\t\tthis.tree?.renderItems(true);\n\t}\n\n\t_onMouseOver = () => {\n\t\tif (this.contentDiv && this.contentDiv.scrollWidth > this.contentDiv.clientWidth) {\n\t\t\tif (!this.tooltip.parentElement) {\n\t\t\t\tdocument.body.appendChild(this.tooltip);\n\t\t\t\tthis.tooltip.style.maxWidth = \"200px\";\n\t\t\t}\n\t\t\tthis.tooltip.content = this.getButtonContentHtml();\n\t\t\tthis.tooltip.attachTo(this.button, 'bottom');\n\t\t}\n\t}\n\n\t_onMouseOut = () => {\n\t\tthis.tooltip.deatach();\n\t}\n\n\tgetSelectionItems() : [NodeModel, [number, boolean][], boolean][] {\n\t\tconst model = this.tree?.model ?? this.model;\n\t\treturn Array.from(this.selectedItems).map(([key, item]) => {\n\t\t\tconst red = item.levels.has(0) && item.levels.get(0) == false;\n\t\t\tconst levels = [...item.levels.entries()].filter(item2 => item2[0] > 0);\n\t\t\tconst node = model?.nodeMap.has(key) ? model.nodeMap.get(key) : new NodeModel(this.tree.model, {\n\t\t\t\tk: key, \n\t\t\t\tv: item?.value ?? key\n\t\t\t});\n\t\t\tif (levels.length < item.levels.size && levels.length > 0) {\n\t\t\t\tlevels.unshift([0, item.levels.get(0)]);\n\t\t\t}\n\t\t\treturn [node, levels, red] as [NodeModel, [number, boolean][], boolean];\n\t\t});\n\t}\n\n\tgetButtonContentHtml() {\n\t\tconst items = this.getSelectionItems();\n\t\tconst caption = this.caption ? html`<span id=\"caption\">${this.caption}</span>` : null;\n\t\tconst placeholder = this.placeholder ? html`<span id=\"placeholder\">${this.placeholder}</span>` : null;\n\t\treturn items.length > 0 ? html`${caption ? html`${caption}:&nbsp;` : ``}${join(map(items, ([node, levels, red]) => html`\n\t\t\t${node && node.icon ? html`<og-icon .icon=\"${node.icon}\"></og-icon>&nbsp;` : null}\n\t\t\t${red \n\t\t\t\t? html`<span style=\"color:#ff0000\">${node.value}</span>` \n\t\t\t\t: html`<span>${node.value}</span>`\n\t\t\t}\n\t\t\t${levels.length > 0 \n\t\t\t\t? html`(${join(map(levels, level => level[0]), html`,&nbsp;`)})` \n\t\t\t\t: ``\n\t\t\t}\n\t\t`), html`,&nbsp;`)}` : (caption \n\t\t\t? html`${caption}${placeholder ? html`: ${placeholder}` : ``}` \n\t\t\t: (placeholder ? html`${placeholder}` : html`&nbsp;`)\n\t\t);\n\t}\n\n\tgetSelectionText() {\n\t\treturn this.getSelectionItems().map(([node, levels]) => node.value + (levels.length > 0 \n\t\t\t? ` (${levels.map(level => level[0]).join(',')})`\n\t\t\t: ''\n\t\t)).join(',');\n\t}\n\n\t_debounceFilter = debounce((term: string) => {\n\t\tthis.tree.filter(term);\n\t\tthis.dispatchEvent(new TreeEvent('tree.filter'));\n\t}, 300);\n\n\t_onInput = async (e: InputEvent) => {\n\t\tif (!this.isOpen) await this.open();\n\t\tconst value = (e.target as Input).value;\n\t\tthis._debounceFilter(value);\n\t\tthis.searchTerm = value;\n\t}\n\n\t_onInputKeyDown = (e: KeyboardEvent) => {\n\t\tswitch (e.key) {\n\t\t\tcase 'ArrowDown':\n\t\t\t\te.preventDefault();\n\t\t\t\tthis.tree.list.moveDown();\n\t\t\t\tbreak;\n\t\t\tcase 'ArrowUp':\n\t\t\t\te.preventDefault();\n\t\t\t\tthis.tree.list.moveUp();\n\t\t\t\tbreak;\n\t\t\tcase 'Enter':\n\t\t\t\te.preventDefault();\n\t\t\t\tif (this.preventInputEnter) return;\n\t\t\t\tif (this.tree.list.selectedIndex > -1) {\n\t\t\t\t\tthis.tree.list.select(this.tree.list.selectedIndex, ListSelectTrigger.Enter);\n\t\t\t\t\tsetTimeout(() => this.input.focus(), 100);\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t}\n\t}\n\n\t_onInputBlur = () => this.input.value = this.getSelectionText();\n\n\trender = () => html`\n\t\t${this.buttonInput ? html`\n\t\t\t<og-input\n\t\t\t\t@input=\"${this._onInput}\"\n\t\t\t\t@keydown=\"${this._onInputKeyDown}\"\n\t\t\t\t@blur=\"${this._onInputBlur}\"\n\t\t\t\t.value=\"${this.getSelectionText()}\">\n\t\t\t</og-input>\n\t\t` : ''}\n\n\t\t<og-button\n\t\t\t@mousedown=\"${this._onMousedown}\"\n\t\t\t@mouseenter=\"${this._onMouseOver}\"\n\t\t\t@mouseleave=\"${this._onMouseOut}\"\n\t\t\tcolor=\"${this.color}\"\n\t\t\tid=\"main\"\n\t\t\tstyle=\"flex: 1\" \n\t\t\tcaret>\n\t\t\t${this.buttonInput ? '' : html`\n\t\t\t\t<div id=\"content\" slot=\"content\">\n\t\t\t\t\t${this.getButtonContentHtml()}\n\t\t\t\t</div>\n\t\t\t`}\n\t\t</og-button>\n\n\t\t${this.hasCrossButton ? html`\n\t\t\t<og-button\n\t\t\t\tid=\"cross\"\n\t\t\t\t@mousedown=\"${() => this.clearSelection(true)}\"\n\t\t\t\ticon=\"xmark\"\n\t\t\t\tcolor=\"red\">\n\t\t\t</og-button>\n\t\t` : ``}\n\n\t\t${this.renderDropdown()}\n\t`;\n}\n"]}
package/dist/ui/search.js CHANGED
@@ -65,7 +65,7 @@ Search.styles = [css `
65
65
  width: 100%;
66
66
  background-color: var(--og-background-color);
67
67
  outline: none;
68
- border: 1px solid var(--og-accent-color);
68
+ border: none;
69
69
  color: var(--og-text-color);
70
70
  }
71
71
  `];
@@ -1 +1 @@
1
- {"version":3,"file":"search.js","sourceRoot":"","sources":["../../src/ui/search.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,EAAE,iBAAiB,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAC;AAC3D,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,KAAK,CAAC;AAC5C,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AACnE,OAAO,EAAE,GAAG,EAAE,MAAM,qBAAqB,CAAC;AAC1C,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACvC,OAAO,SAAS,MAAM,cAAc,CAAC;AAGrC,MAAM,OAAO,eAAgB,SAAQ,KAAK;IACzC,YACC,IAAY,EACI,SAAiB;QAEjC,KAAK,CAAC,GAAG,IAAI,EAAE,EAAE,EAAC,OAAO,EAAE,KAAK,EAAE,UAAU,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAC,CAAC,CAAC;QAFtD,cAAS,GAAT,SAAS,CAAQ;IAGlC,CAAC;CACD;AAGc,IAAM,MAAM,GAAZ,MAAM,MAAO,SAAQ,UAAU;IAA/B;;QAyBd,kBAAa,GAAG,QAAQ,CAAC,KAAK,EAAE,CAAgB,EAAE,EAAE;YACnD,IAAI,KAAK,CAAC,kBAAkB,CAAC,CAAC,CAAC,GAAG,CAAC;gBAAE,OAAO;YAC5C,MAAM,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;YAC/C,IAAI,CAAC,aAAa,CAAC,IAAI,eAAe,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC,CAAC;QACzD,CAAC,EAAE,SAAS,CAAC,qBAAqB,EAAE,EAAC,WAAW,EAAE,KAAK,EAAC,CAAC,CAAC;QAE1D,eAAU,GAAG,CAAC,CAAgB,EAAE,EAAE;YACjC,QAAQ,CAAC,CAAC,GAAG,EAAE,CAAC;gBACf,KAAK,WAAW;oBACf,CAAC,CAAC,cAAc,EAAE,CAAC;oBACnB,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;oBAC1B,MAAM;gBACP,KAAK,SAAS;oBACb,CAAC,CAAC,cAAc,EAAE,CAAC;oBACnB,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;oBACxB,MAAM;gBACP,KAAK,OAAO;oBACX,CAAC,CAAC,cAAc,EAAE,CAAC;oBACnB,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,iBAAiB,CAAC,KAAK,CAAC,CAAC;oBAC7E,UAAU,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,EAAE,GAAG,CAAC,CAAC;oBAChD,MAAM;YACR,CAAC;QACF,CAAC,CAAA;QAED,WAAM,GAAG,GAAG,EAAE,CAAC,IAAI,CAAA;;;;;kBAKF,GAAG,CAAC,QAAQ,CAAC;eAChB,IAAI,CAAC,UAAU;aACjB,IAAI,CAAC,aAAa;EAC7B,CAAC;IACH,CAAC;;AAlDO,aAAM,GAAG,CAAC,GAAG,CAAA;;;;;;;;;;;;;;;EAenB,CAAC,AAfW,CAeV;AApBH;IADC,KAAK,CAAC,cAAc,CAAC;2CACQ;AAG9B;IADC,QAAQ,CAAC,EAAC,IAAI,EAAE,MAAM,EAAC,CAAC;oCACd;AANS,MAAM;IAD1B,aAAa,CAAC,gBAAgB,CAAC;GACX,MAAM,CA0D1B;eA1DoB,MAAM","sourcesContent":["import { ListSelectTrigger, utils } from \"@omegagrid/core\";\nimport { css, html, LitElement } from \"lit\";\nimport { customElement, property, query } from \"lit/decorators.js\";\nimport { msg } from '@omegagrid/localize';\nimport { debounce } from \"ts-debounce\";\nimport constants from \"../constants\";\nimport { Tree } from \"./tree\";\n\nexport class TreeSearchEvent extends Event {\n\tconstructor(\n\t\ttype: string,\n\t\tpublic readonly component: Search,\n\t) {\n\t\tsuper(`${type}`, {bubbles: false, cancelable: true, composed: false});\n\t}\n}\n\n@customElement('og-tree-search')\nexport default class Search extends LitElement {\n\n\t@query('#searchInput')\n\tsearchInput: HTMLInputElement;\n\n\t@property({type: Object})\n\ttree: Tree;\n\n\tstatic styles = [css`\n\t\t:host {\n\t\t\tdisplay: flex;\n\t\t\tbox-sizing: border-box;\n\t\t}\n\n\t\tinput {\n\t\t\tfont-size: var(--og-font-size);\n\t\t\tfont-family: var(--og-font-family);\n\t\t\twidth: 100%;\n\t\t\tbackground-color: var(--og-background-color);\n\t\t\toutline: none;\n\t\t\tborder: 1px solid var(--og-accent-color);\n\t\t\tcolor: var(--og-text-color);\n\t\t}\n\t`];\n\n\tdebounceKeyUp = debounce(async (e: KeyboardEvent) => {\n\t\tif (utils.isControlCharacter(e.key)) return;\n\t\tawait this.tree.filter(this.searchInput.value);\n\t\tthis.dispatchEvent(new TreeSearchEvent('search', this));\n\t}, constants.SEARCH_DEBOUNCE_DELAY, {isImmediate: false});\n\n\t_onKeyDown = (e: KeyboardEvent) => {\n\t\tswitch (e.key) {\n\t\t\tcase 'ArrowDown':\n\t\t\t\te.preventDefault();\n\t\t\t\tthis.tree.list.moveDown();\n\t\t\t\tbreak;\n\t\t\tcase 'ArrowUp':\n\t\t\t\te.preventDefault();\n\t\t\t\tthis.tree.list.moveUp();\n\t\t\t\tbreak;\n\t\t\tcase 'Enter':\n\t\t\t\te.preventDefault();\n\t\t\t\tthis.tree.list.select(this.tree.list.selectedIndex, ListSelectTrigger.Enter);\n\t\t\t\tsetTimeout(() => this.searchInput.focus(), 100);\n\t\t\t\tbreak;\n\t\t}\n\t}\n\n\trender = () => html`\n\t\t<input id=\"searchInput\"\n\t\t\tautocomplete=\"off\"\n\t\t\tspellcheck=\"false\"\n\t\t\ttype=\"text\"\n\t\t\tplaceholder=\"${msg('Search')}\"\n\t\t\t@keydown=\"${this._onKeyDown}\"\n\t\t\t@keyup=\"${this.debounceKeyUp}\">\n\t`;\n}\n"]}
1
+ {"version":3,"file":"search.js","sourceRoot":"","sources":["../../src/ui/search.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,EAAE,iBAAiB,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAC;AAC3D,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,KAAK,CAAC;AAC5C,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AACnE,OAAO,EAAE,GAAG,EAAE,MAAM,qBAAqB,CAAC;AAC1C,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACvC,OAAO,SAAS,MAAM,cAAc,CAAC;AAGrC,MAAM,OAAO,eAAgB,SAAQ,KAAK;IACzC,YACC,IAAY,EACI,SAAiB;QAEjC,KAAK,CAAC,GAAG,IAAI,EAAE,EAAE,EAAC,OAAO,EAAE,KAAK,EAAE,UAAU,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAC,CAAC,CAAC;QAFtD,cAAS,GAAT,SAAS,CAAQ;IAGlC,CAAC;CACD;AAGc,IAAM,MAAM,GAAZ,MAAM,MAAO,SAAQ,UAAU;IAA/B;;QAyBd,kBAAa,GAAG,QAAQ,CAAC,KAAK,EAAE,CAAgB,EAAE,EAAE;YACnD,IAAI,KAAK,CAAC,kBAAkB,CAAC,CAAC,CAAC,GAAG,CAAC;gBAAE,OAAO;YAC5C,MAAM,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;YAC/C,IAAI,CAAC,aAAa,CAAC,IAAI,eAAe,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC,CAAC;QACzD,CAAC,EAAE,SAAS,CAAC,qBAAqB,EAAE,EAAC,WAAW,EAAE,KAAK,EAAC,CAAC,CAAC;QAE1D,eAAU,GAAG,CAAC,CAAgB,EAAE,EAAE;YACjC,QAAQ,CAAC,CAAC,GAAG,EAAE,CAAC;gBACf,KAAK,WAAW;oBACf,CAAC,CAAC,cAAc,EAAE,CAAC;oBACnB,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;oBAC1B,MAAM;gBACP,KAAK,SAAS;oBACb,CAAC,CAAC,cAAc,EAAE,CAAC;oBACnB,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;oBACxB,MAAM;gBACP,KAAK,OAAO;oBACX,CAAC,CAAC,cAAc,EAAE,CAAC;oBACnB,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,iBAAiB,CAAC,KAAK,CAAC,CAAC;oBAC7E,UAAU,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,EAAE,GAAG,CAAC,CAAC;oBAChD,MAAM;YACR,CAAC;QACF,CAAC,CAAA;QAED,WAAM,GAAG,GAAG,EAAE,CAAC,IAAI,CAAA;;;;;kBAKF,GAAG,CAAC,QAAQ,CAAC;eAChB,IAAI,CAAC,UAAU;aACjB,IAAI,CAAC,aAAa;EAC7B,CAAC;IACH,CAAC;;AAlDO,aAAM,GAAG,CAAC,GAAG,CAAA;;;;;;;;;;;;;;;EAenB,CAAC,AAfW,CAeV;AApBH;IADC,KAAK,CAAC,cAAc,CAAC;2CACQ;AAG9B;IADC,QAAQ,CAAC,EAAC,IAAI,EAAE,MAAM,EAAC,CAAC;oCACd;AANS,MAAM;IAD1B,aAAa,CAAC,gBAAgB,CAAC;GACX,MAAM,CA0D1B;eA1DoB,MAAM","sourcesContent":["import { ListSelectTrigger, utils } from \"@omegagrid/core\";\nimport { css, html, LitElement } from \"lit\";\nimport { customElement, property, query } from \"lit/decorators.js\";\nimport { msg } from '@omegagrid/localize';\nimport { debounce } from \"ts-debounce\";\nimport constants from \"../constants\";\nimport { Tree } from \"./tree\";\n\nexport class TreeSearchEvent extends Event {\n\tconstructor(\n\t\ttype: string,\n\t\tpublic readonly component: Search,\n\t) {\n\t\tsuper(`${type}`, {bubbles: false, cancelable: true, composed: false});\n\t}\n}\n\n@customElement('og-tree-search')\nexport default class Search extends LitElement {\n\n\t@query('#searchInput')\n\tsearchInput: HTMLInputElement;\n\n\t@property({type: Object})\n\ttree: Tree;\n\n\tstatic styles = [css`\n\t\t:host {\n\t\t\tdisplay: flex;\n\t\t\tbox-sizing: border-box;\n\t\t}\n\n\t\tinput {\n\t\t\tfont-size: var(--og-font-size);\n\t\t\tfont-family: var(--og-font-family);\n\t\t\twidth: 100%;\n\t\t\tbackground-color: var(--og-background-color);\n\t\t\toutline: none;\n\t\t\tborder: none;\n\t\t\tcolor: var(--og-text-color);\n\t\t}\n\t`];\n\n\tdebounceKeyUp = debounce(async (e: KeyboardEvent) => {\n\t\tif (utils.isControlCharacter(e.key)) return;\n\t\tawait this.tree.filter(this.searchInput.value);\n\t\tthis.dispatchEvent(new TreeSearchEvent('search', this));\n\t}, constants.SEARCH_DEBOUNCE_DELAY, {isImmediate: false});\n\n\t_onKeyDown = (e: KeyboardEvent) => {\n\t\tswitch (e.key) {\n\t\t\tcase 'ArrowDown':\n\t\t\t\te.preventDefault();\n\t\t\t\tthis.tree.list.moveDown();\n\t\t\t\tbreak;\n\t\t\tcase 'ArrowUp':\n\t\t\t\te.preventDefault();\n\t\t\t\tthis.tree.list.moveUp();\n\t\t\t\tbreak;\n\t\t\tcase 'Enter':\n\t\t\t\te.preventDefault();\n\t\t\t\tthis.tree.list.select(this.tree.list.selectedIndex, ListSelectTrigger.Enter);\n\t\t\t\tsetTimeout(() => this.searchInput.focus(), 100);\n\t\t\t\tbreak;\n\t\t}\n\t}\n\n\trender = () => html`\n\t\t<input id=\"searchInput\"\n\t\t\tautocomplete=\"off\"\n\t\t\tspellcheck=\"false\"\n\t\t\ttype=\"text\"\n\t\t\tplaceholder=\"${msg('Search')}\"\n\t\t\t@keydown=\"${this._onKeyDown}\"\n\t\t\t@keyup=\"${this.debounceKeyUp}\">\n\t`;\n}\n"]}
package/dist/ui/tree.js CHANGED
@@ -336,7 +336,7 @@ let Tree = class Tree extends LitElement {
336
336
  </div>
337
337
  ` : null;
338
338
  const search = this.options.search ? html `
339
- <div class="toolbar">
339
+ <div class="toolbar toolbar-search">
340
340
  <og-tree-search
341
341
  .tree="${this}"
342
342
  @search="${this._onSearch}">
@@ -1 +1 @@
1
- {"version":3,"file":"tree.js","sourceRoot":"","sources":["../../src/ui/tree.ts"],"names":[],"mappings":"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","sourcesContent":["import { \n\tdom, List, log, ListSelectTrigger, ListSelectEvent, Expander, \n\tLevelExpandEvent, ListPointerEvent, Icon \n} from '@omegagrid/core';\nimport { Options, initOptions } from '../options';\nimport { TreeModel, TreeSource } from '../model/treeModel';\nimport { LitElement, html } from 'lit';\nimport { customElement, property, query, state } from 'lit/decorators.js';\nimport { style, itemStyle } from \"./tree.style\";\nimport Levels, { LevelSelectEvent } from './levels';\nimport { createItemRenderer } from './tree.renderer';\nimport { TreeSelectionModel, SerializedValue } from '../model/selectionModel';\nimport constants from '../constants';\nimport { NodeModel } from '../model/nodeModel';\nimport { TreeAdapter } from '../model/treeAdapter';\nimport { FilterModel } from '../model/filterModel';\nimport Search from './search';\nimport { styleMap } from 'lit-html/directives/style-map.js';\nimport { NodePlaceholder, SelectMode, TreeAdapterParams } from '../types';\nimport { join } from 'lit/directives/join.js';\n\nexport class TreeEvent extends Event {\n\n\tcomponent: Tree;\n\tnode: NodeModel;\n\n\tconstructor(type: string, args?: Partial<TreeEvent>) {\n\t\tsuper(type, {bubbles: false, cancelable: true, composed: false});\n\t\tObject.assign(this, args);\n\t}\n}\n\nexport class TreePointerEvent extends PointerEvent {\n\n\ttree: Tree;\n\tnode: NodeModel;\n\n\tconstructor(type: string, e: PointerEvent, args?: Partial<TreePointerEvent>) {\n\t\tsuper(`tree.${type}`, e);\n\t\tObject.assign(this, args);\n\t}\n}\n\nexport class TreeDropEvent extends DragEvent {\n\n\ttree: Tree;\n\tnode: NodeModel;\n\n\tconstructor(type: string, e: DragEvent, args?: Partial<TreeDropEvent>) {\n\t\tsuper(`tree.${type}`, e);\n\t\tObject.assign(this, args);\n\t}\n}\n\n@customElement('og-tree')\nexport class Tree extends LitElement {\n\n\tstatic styles = [style];\n\n\t@property({type: Object})\n\tmodel: TreeModel;\n\n\t@property({type: Object})\n\tadapter: TreeAdapter;\n\n\t@property({type: Object})\n\toptions: Options = initOptions();\n\n\t@property({type: Object})\n\tselection: TreeSelectionModel = new TreeSelectionModel(this.options);\n\n\t@property({type: Object})\n\tlogger: log.Logger = new log.Logger('Ωtree');\n\n\t@property({type: Number})\n\tmaxHeight: number = null;\n\n\t@property({type: Number})\n\titemHeight: number = constants.LIST_ITEM_HEIGHT;\n\t\n\t@property({type: Array})\n\tvalue: SerializedValue[];\n\n\t@property({type: Boolean})\n\tdisableAutoload = false;\n\t\n\t@query('og-list')\n\tlist: List;\n\n\t@query('og-tree-search')\n\tsearchBar: Search;\n\n\t@query('#globalLevels')\n\tglobalTreeLevels: Levels;\n\n\t@state()\n\tloading = false;\n\n\t@state()\n\tnoMatches = false;\n\n\tfiltering: FilterModel;\n\tawaitFilter = false;\n\tcurrentFilter = '';\n\tloadingNodes: Set<string> = new Set();\n\tpendingHighlight: string;\n\n\tget size () {\n\t\treturn this.model?.visibleNodes.length ?? 0;\n\t}\n\n\tget hasGlobalLevels() {\n\t\treturn (this.options.selectMode == SelectMode.Multiple || this.options.selectMode == SelectMode.MultipleLevels)\n\t\t\t&& this.options.globalLevels && this.model.maxLevel > 0;\n\t}\n\n\t_lastDragItem: HTMLElement;\n\t_onDragover = (e: DragEvent) => {\n\t\tif (!this.options.fileDrop) return;\n\t\te.preventDefault();\n\t\te.stopPropagation();\n\t\tif (e.dataTransfer.types[0] == 'Files') {\n\t\t\te.dataTransfer.dropEffect = 'move';\n\t\t\tconst item = e.composedPath().find((elm: HTMLElement) => elm.classList && elm.classList.contains('item')) as HTMLElement;\n\t\t\tthis._onDragLeave();\n\t\t\tif (item) item.classList.add('drag');\n\t\t\tthis._lastDragItem = item;\n\t\t}\n\t}\n\n\t_onDrop = (e: DragEvent) => {\n\t\te.preventDefault();\n\t\tthis._onDragLeave();\n\t\tconst item = e.composedPath().find((elm: HTMLElement) => elm.classList && elm.classList.contains('item')) as HTMLElement;\n\t\tconst node = this.model.nodes[parseInt(item.dataset.node)];\n\t\tthis.dispatchEvent(new TreeDropEvent('drop', e, {tree: this, node: node}));\n\t}\n\n\t_onDragLeave = () => {\n\t\tif (this._lastDragItem) this._lastDragItem.classList.remove('drag');\n\t\tthis._lastDragItem = null;\n\t}\n\n\tconstructor() {\n\t\tsuper();\n\t\tthis.addEventListener('dragover', this._onDragover);\n\t\tthis.addEventListener('dragleave', this._onDragLeave);\n\t\tthis.addEventListener('drop', this._onDrop);\n\t}\n\n\tdestroy() {\n\t\tthis.logger.info('destroy');\n\t}\n\n\tconnectedCallback() {\n\t\tsuper.connectedCallback();\n\t\tthis.logger.info('init');\n\t\tthis.tabIndex = 0;\n\t}\n\n\tsetSourceData(sourceData: TreeSource, options: Partial<Options> = null) {\n\t\tObject.assign(this.options, options ?? {});\n\t\tthis.model = new TreeModel(sourceData, this.options);\n\n\t\tif (sourceData?.length > 0 && sourceData[0].s !== undefined) {\n\t\t\tthis.selection.setItems(sourceData.filter(i => i.s).map(i => [i.k, 0, 1]));\n\t\t}\n\n\t\tthis.dispatchEvent(new TreeEvent('load', {component: this}));\n\t}\n\n\tsetValue(values: SerializedValue[]) {\n\t\tthis.selection.populate(values);\n\t}\n\n\tasync loadData(params?: TreeAdapterParams) {\n\t\tthis.loading = true;\n\t\tif (this.list) this.list.size = 0;\n\t\t\n\t\tthis.model = null;\n\t\tparams = params ?? {};\n\t\tconst [tree, options] = await Promise.all([this.adapter.getTree(params), this.adapter.getOptions()]);\n\t\tthis.setSourceData(tree, options);\n\t\tif (options?.pageSize > 0) {\n\t\t\tthis.updateNodeLoadState(this.model.root, this.model.root.children.length);\n\t\t\tthis.model.indexVisibleNodes();\n\t\t}\n\t\tthis.loading = false;\n\n\t\tif (this.pendingHighlight) {\n\t\t\tawait this.updateComplete;\n\t\t\tawait this.highlightNode(this.pendingHighlight);\n\t\t\tthis.pendingHighlight = null;\n\t\t}\n\t}\n\n\tasync loadMore(parent: NodeModel) {\n\t\tconst offset = parent.children.length;\n\t\tconst sourceData = await this.adapter.getTree({parent: parent, parentKey: parent.key, offset: offset});\n\t\tconst model = new TreeModel(sourceData, this.options);\n\t\tparent.insertChildren(model.root.children, offset);\n\t\tthis.updateNodeLoadState(parent, model.root.children.length);\n\t\tthis.model.indexNodesByTree(true);\n\t\tthis.list.size = this.size;\n\t\tthis.list.requestUpdate();\n\t}\n\n\tkeyActions = {\n\t\t'ArrowRight': () => {\n\t\t\tconst node = this.model.visibleNodes[this.list.selectedIndex] as NodeModel;\n\t\t\tif (node.collapsed) {\n\t\t\t\tthis.toggleNodeCollapse(node);\n\t\t\t\tthis.model.indexVisibleNodes();\n\t\t\t\tthis.list.size = this.size;\n\t\t\t}\n\t\t},\n\t\t'ArrowLeft': () => {\n\t\t\tconst node = this.model.visibleNodes[this.list.selectedIndex] as NodeModel;\n\t\t\tif (!node.collapsed) {\n\t\t\t\tthis.toggleNodeCollapse(node);\n\t\t\t\tthis.model.indexVisibleNodes();\n\t\t\t\tthis.list.size = this.size;\n\t\t\t}\n\t\t}\n\t}\n\t\n\twillUpdate(props: Map<PropertyKey, unknown>) {\n\t\tif (props.has('adapter') && this.adapter) {\n\t\t\tthis.model = null;\n\t\t\tthis.adapter.attach(this);\n\t\t\tif (!this.disableAutoload) this.loadData();\n\t\t}\n\n\t\t// if (props.has('value')) {\n\t\t// \tthis.setValue(this.value);\n\t\t// }\n\n\t\tthis.model = this.model ?? new TreeModel([], null);\n\t\tthis.filtering = new FilterModel(this.model);\n\t\tthis.selection.model = this.model;\n\n\t\tif (props.has('options')) {\n\t\t\tthis.options = initOptions(this.options);\n\t\t\tthis.model.options = this.options;\n\t\t\tthis.selection.options = this.options;\n\t\t}\n\t}\n\n\tupdated(changedProps: Map<PropertyKey, unknown>): void {\n\t\tif (changedProps.has('model') && this.list) {\n\t\t\tthis.list.size = this.size;\n\t\t\tthis.noMatches = this.noMatches && this.size == 0;\n\t\t\tthis.list.requestUpdate();\n\t\t}\n\t}\n\n\tasync firstUpdated() {\n\t\tif (this.value) {\n\t\t\tthis.selection.setItems(this.value ?? []);\n\t\t}\n\n\t\tthis.list.itemRenderer = createItemRenderer(this);\n\n\t\tdom.on(this.list, 'toggle', '.item', async (e, elm) => {\n\t\t\tconst node = this.model.nodes[parseInt(elm.dataset.node)];\n\t\t\tthis.toggleNodeCollapse(node);\n\t\t\tthis.model.indexVisibleNodes();\n\t\t\tthis.list.size = this.size;\n\t\t});\n\n\t\tdom.on(this.list, 'levelselect', '.item', (e: LevelExpandEvent, elm) => {\n\t\t\tthis.toggleNode(this.model.nodes[parseInt(elm.dataset.node)], e.level, true);\n\t\t});\n\t\t\n\t\tdom.on(this.list, 'contextmenu', '.item', (e, elm) => {\n\t\t\te.preventDefault();\n\t\t\tconst node = this.model.nodes[parseInt(elm.dataset.node)];\n\t\t\tthis.selection.select(node, 0, false);\n\t\t\tthis.list.renderItems(true);\n\t\t});\n\n\t\tthis.list.addEventListener('select', (e: ListSelectEvent) => {\n\t\t\te.stopPropagation();\n\t\t\tif (e.trigger != ListSelectTrigger.Arrow && !(e.elm instanceof Expander)) {\n\t\t\t\tconst item = this.model.visibleNodes[e.index];\n\t\t\t\tif (item instanceof NodeModel) {\n\t\t\t\t\tconst node = item as NodeModel;\n\t\t\t\t\tif (node.checkbox ?? this.options.selectMode != SelectMode.None) {\n\t\t\t\t\t\tthis.toggleNode(node, 0, true);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tthis.toggleNodeCollapse(node);\n\t\t\t\t\t\tthis.model.indexVisibleNodes();\n\t\t\t\t\t\tthis.list.size = this.size;\n\t\t\t\t\t}\n\t\t\t\t\tthis.dispatchEvent(new TreeEvent('select', {component: this, node}));\n\t\t\t\t} else if (item) {\n\t\t\t\t\tconst placeholder = item as NodePlaceholder;\n\t\t\t\t\tif (placeholder.loading) return;\n\t\t\t\t\tplaceholder.loading = true;\n\t\t\t\t\tplaceholder.element.querySelector<Icon>('og-icon').icon = 'hourglass-half';\n\t\t\t\t\tthis.loadMore(placeholder.parent);\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\n\t\tthis.list.addEventListener('keydown', (e: KeyboardEvent) => {\n\t\t\tconst action = this.keyActions[e.key as keyof typeof this.keyActions];\n\t\t\tif (action) {\n\t\t\t\taction();\n\t\t\t} else if (!isNaN(parseInt(e.key))) {\n\t\t\t\tconst level = parseInt(e.key);\n\t\t\t\tconst node = this.model.visibleNodes[this.list.selectedIndex] as NodeModel;\n\t\t\t\tif (node.subLevels >= level) {\n\t\t\t\t\tthis.toggleNode(node, level, true);\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t}\n\n\t_onGlobalLevelSelect = async (e: LevelSelectEvent) => {\n\t\tthis.toggleNode(this.model.root, e.level, true);\n\t\tthis.globalTreeLevels.requestUpdate();\n\t\tthis.requestUpdate();\n\t\tawait this.list.updateComplete;\n\t\tthis.list.renderItems(true);\n\t}\n\n\t_onSearch = () => {\n\t\tthis.list.size = this.size;\n\t\tthis.list.select(0);\n\t\tthis.renderItems(true);\n\t\tthis.noMatches = this.size == 0;\n\t}\n\n\ttoggleNode(node: NodeModel, level: number, dispatchEvent = false) {\n\t\tthis.selection.toggle(node, level);\n\t\tthis.list.renderItems(true);\n\t\tsetTimeout(() => this.list.focus()); // TODO: list looses focus for unknown reason\n\t\tif (dispatchEvent) {\n\t\t\tthis.dispatchEvent(new TreeEvent('change', {component: this, node}));\n\t\t}\n\t}\n\n\tupdateNodeLoadState(node: NodeModel, newNodeCount: number) {\n\t\tif (this.options.pageSize > 0) {\n\t\t\tif (newNodeCount < this.options.pageSize) node.count = node.children.length;\n\t\t\telse node.count = node.children.length + 1;\n\t\t}\n\t}\n\n\tasync toggleNodeCollapse(node: NodeModel, dispatchEvent = true) {\n\t\tnode.toggleCollapse();\n\t\tif (!node.isLoaded && !node.isPartialyLoaded && this.adapter && !this.loadingNodes.has(node.key)) {\n\t\t\tthis.loadingNodes.add(node.key);\n\t\t\tthis.list.requestUpdate();\n\t\t\tconst sourceData = await this.adapter.getTree({parent: node, parentKey: node.key, offset: 0});\n\t\t\tconst model = new TreeModel(sourceData, this.options);\n\t\t\tnode.insertChildren(model.root.children, 0);\n\t\t\tthis.updateNodeLoadState(node, node.children.length);\n\t\t\tthis.model.indexNodesByTree(true);\n\t\t\tthis.list.size = this.size;\n\t\t\tthis.list.requestUpdate();\n\t\t\tthis.loadingNodes.delete(node.key);\n\t\t\tif (this.globalTreeLevels) this.globalTreeLevels.count = this.model.maxLevel + 1;\n\t\t}\n\t\tif (dispatchEvent) this.dispatchEvent(new TreeEvent('tree.collapse', {component: this, node}));\n\t}\n\n\ttoggleTreeCollapse(node?: NodeModel, dispatchEvent = true) {\n\t\tif (this.model.nodes.length == 0) return;\n\t\tif (!node) {\n\t\t\tnode = this.model.root;\n\t\t\tnode.collapsed = this.model.nodes[0].collapsed;\n\t\t}\n\t\tnode.toggleCollapse(true);\n\t\tthis.model.indexVisibleNodes();\n\t\tthis.list.size = this.size;\n\t\tif (dispatchEvent) this.dispatchEvent(new TreeEvent('tree.collapse', {component: this, node}));\n\t}\n\n\t_onListRender = () => {\n\t\tif (this.awaitFilter) {\n\t\t\tthis.filter(this.currentFilter);\n\t\t\tthis.awaitFilter = null;\n\t\t}\n\t}\n\n\t_onListMenu = (e: ListPointerEvent) => {\n\t\tthis.dispatchEvent(new TreePointerEvent('menu', e, {\n\t\t\ttree: this,\n\t\t\tnode: this.model.visibleNodes[e.index] as NodeModel\n\t\t}));\n\t}\n\n\tget itemStyle() {\n\t\tconst customStyle = this.options?.customStyle;\n\t\treturn [itemStyle, ...(customStyle ? (Array.isArray(customStyle) ? customStyle : [customStyle]) : [])];\n\t}\n\t\n\trender() {\n\t\tthis.logger.info(`render ${this.model?.visibleNodes.length ?? 0}`);\n\n\t\tconst list = html`\n\t\t\t<div class=\"main\" style=\"${styleMap({overflow: 'hidden', maxHeight: this.maxHeight ? dom.numToPixels(this.maxHeight) : null})}\">\n\t\t\t\t<og-list\n\t\t\t\t\tsize=\"${this.size}\"\n\t\t\t\t\t.customStyle=${this.itemStyle}\n\t\t\t\t\t?nativeHeight=\"${!this.maxHeight}\"\n\t\t\t\t\tmaxHeight=\"${this.maxHeight || null}\"\n\t\t\t\t\t@render=\"${this._onListRender}\"\n\t\t\t\t\t@list.menu=\"${this._onListMenu}\">\n\t\t\t\t</og-list>\n\t\t\t</div>\n\t\t`;\n\n\t\tconst loader = this.loading ? html`\n\t\t\t<div style=\"padding: 10px; text-align: center\">\n\t\t\t\t<og-loader></og-loader>\n\t\t\t</div>\n\t\t` : null;\n\n\t\tconst search = this.options.search ? html`\n\t\t\t<div class=\"toolbar\">\n\t\t\t\t<og-tree-search\n\t\t\t\t\t.tree=\"${this}\"\n\t\t\t\t\t@search=\"${this._onSearch}\">\n\t\t\t\t</og-tree-search>\n\t\t\t</div>\n\t\t` : null;\n\n\t\tconst alert = this.noMatches ? html`\n\t\t\t<og-alert text=\"No matches\" type=\"warning\"></og-alert>\n\t\t` : null;\n\n\t\tconst levels = this.hasGlobalLevels && !this.noMatches ? html`\n\t\t\t<div class=\"toolbar\">\n\t\t\t\t<og-tree-levels\n\t\t\t\t\tid=\"globalLevels\"\n\t\t\t\t\t.count=\"${(this.options.maxLevel ?? this.model.maxLevel) + 1}\"\n\t\t\t\t\t.selection=\"${this.selection.getLevelSelection(this.model.root)}\"\n\t\t\t\t\t@levelselect=\"${this._onGlobalLevelSelect}\">\n\t\t\t\t</og-tree-levels>\n\t\t\t</div>\n\t\t` : null;\n\n\t\treturn join([search, alert, levels, loader, list], () => ' ');\n\t}\n\n\tasync highlightNode(key: string) {\n\t\tconst node = this.model?.nodeMap.get(key);\n\t\tif (!node) {\n\t\t\tthis.pendingHighlight = key;\n\t\t\treturn;\n\t\t}\n\t\tnode.walkUp((n: NodeModel) => n.expand(true));\n\t\tthis.model.indexVisibleNodes();\n\t\tthis.list.selectedIndex = node.visibleIndex;\n\t\t\n\t\tthis.list.requestUpdate();\n\t\tawait this.list.updateComplete;\n\n\t\tconst index = Math.max(0, node.visibleIndex - constants.MAX_HIGHLIGHT_ITEM_OFFSET);\n\t\tthis.list.scrollToIndex(index);\n\t}\n\n\thighlightFirstSelectedNode() {\n\t\tif (!this.list) return; // TODO - fix this\n\t\tif (!this.selection?.count) return;\n\t\tconst key = this.selection.items.keys().next().value;\n\t\tconst node = this.model.nodeMap.get(key);\n\t\tif (!node || node.visibleIndex == null) {\n\t\t\tthis.list.selectedIndex = -1;\n\t\t\treturn;\n\t\t}\n\n\t\tthis.list.selectedIndex = node.visibleIndex;\n\t\tthis.list.scrollToIndex(node.index);\n\t}\n\n\trenderItems(all = false) {\n\t\tif (this.list) {\n\t\t\tthis.list.size = this.size;\n\t\t\tthis.list.renderItems(all);\n\t\t}\n\t}\n\n\tclearSelection() {\n\t\tthis.selection.clear();\n\t\tthis.requestUpdate();\n\t}\n\n\tasync filter(term?: string) {\n\t\tterm = (term ?? '').trim();\n\t\tif (term === this.currentFilter) return;\n\n\t\tthis.currentFilter = term;\n\t\t\n\t\tif (this.loading) {\n\t\t\tthis.awaitFilter = true;\n\t\t\treturn;\n\t\t}\n\n\t\tif (this.options.customSearch && this.adapter) {\n\t\t\tawait this.loadData({filter: term});\n\t\t\treturn;\n\t\t}\n\n\t\tif (term == null) {\n\t\t\tthis.filtering?.clear();\n\t\t\tthis.noMatches = false;\n\t\t} else {\n\t\t\tthis.filtering?.filter(term);\n\t\t\tthis.noMatches = this.size == 0;\n\t\t}\n\n\t\tthis.list.size = this.size;\n\t\tthis.list.select(0);\n\t\tthis.list.requestUpdate();\n\t}\n\n\tasync clearFilter() {\n\t\tif (this.searchBar?.searchInput) this.searchBar.searchInput.value = '';\n\t\tawait this.filter();\n\t}\n\n\n}"]}
1
+ {"version":3,"file":"tree.js","sourceRoot":"","sources":["../../src/ui/tree.ts"],"names":[],"mappings":"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","sourcesContent":["import { \n\tdom, List, log, ListSelectTrigger, ListSelectEvent, Expander, \n\tLevelExpandEvent, ListPointerEvent, Icon \n} from '@omegagrid/core';\nimport { Options, initOptions } from '../options';\nimport { TreeModel, TreeSource } from '../model/treeModel';\nimport { LitElement, html } from 'lit';\nimport { customElement, property, query, state } from 'lit/decorators.js';\nimport { style, itemStyle } from \"./tree.style\";\nimport Levels, { LevelSelectEvent } from './levels';\nimport { createItemRenderer } from './tree.renderer';\nimport { TreeSelectionModel, SerializedValue } from '../model/selectionModel';\nimport constants from '../constants';\nimport { NodeModel } from '../model/nodeModel';\nimport { TreeAdapter } from '../model/treeAdapter';\nimport { FilterModel } from '../model/filterModel';\nimport Search from './search';\nimport { styleMap } from 'lit-html/directives/style-map.js';\nimport { NodePlaceholder, SelectMode, TreeAdapterParams } from '../types';\nimport { join } from 'lit/directives/join.js';\n\nexport class TreeEvent extends Event {\n\n\tcomponent: Tree;\n\tnode: NodeModel;\n\n\tconstructor(type: string, args?: Partial<TreeEvent>) {\n\t\tsuper(type, {bubbles: false, cancelable: true, composed: false});\n\t\tObject.assign(this, args);\n\t}\n}\n\nexport class TreePointerEvent extends PointerEvent {\n\n\ttree: Tree;\n\tnode: NodeModel;\n\n\tconstructor(type: string, e: PointerEvent, args?: Partial<TreePointerEvent>) {\n\t\tsuper(`tree.${type}`, e);\n\t\tObject.assign(this, args);\n\t}\n}\n\nexport class TreeDropEvent extends DragEvent {\n\n\ttree: Tree;\n\tnode: NodeModel;\n\n\tconstructor(type: string, e: DragEvent, args?: Partial<TreeDropEvent>) {\n\t\tsuper(`tree.${type}`, e);\n\t\tObject.assign(this, args);\n\t}\n}\n\n@customElement('og-tree')\nexport class Tree extends LitElement {\n\n\tstatic styles = [style];\n\n\t@property({type: Object})\n\tmodel: TreeModel;\n\n\t@property({type: Object})\n\tadapter: TreeAdapter;\n\n\t@property({type: Object})\n\toptions: Options = initOptions();\n\n\t@property({type: Object})\n\tselection: TreeSelectionModel = new TreeSelectionModel(this.options);\n\n\t@property({type: Object})\n\tlogger: log.Logger = new log.Logger('Ωtree');\n\n\t@property({type: Number})\n\tmaxHeight: number = null;\n\n\t@property({type: Number})\n\titemHeight: number = constants.LIST_ITEM_HEIGHT;\n\t\n\t@property({type: Array})\n\tvalue: SerializedValue[];\n\n\t@property({type: Boolean})\n\tdisableAutoload = false;\n\t\n\t@query('og-list')\n\tlist: List;\n\n\t@query('og-tree-search')\n\tsearchBar: Search;\n\n\t@query('#globalLevels')\n\tglobalTreeLevels: Levels;\n\n\t@state()\n\tloading = false;\n\n\t@state()\n\tnoMatches = false;\n\n\tfiltering: FilterModel;\n\tawaitFilter = false;\n\tcurrentFilter = '';\n\tloadingNodes: Set<string> = new Set();\n\tpendingHighlight: string;\n\n\tget size () {\n\t\treturn this.model?.visibleNodes.length ?? 0;\n\t}\n\n\tget hasGlobalLevels() {\n\t\treturn (this.options.selectMode == SelectMode.Multiple || this.options.selectMode == SelectMode.MultipleLevels)\n\t\t\t&& this.options.globalLevels && this.model.maxLevel > 0;\n\t}\n\n\t_lastDragItem: HTMLElement;\n\t_onDragover = (e: DragEvent) => {\n\t\tif (!this.options.fileDrop) return;\n\t\te.preventDefault();\n\t\te.stopPropagation();\n\t\tif (e.dataTransfer.types[0] == 'Files') {\n\t\t\te.dataTransfer.dropEffect = 'move';\n\t\t\tconst item = e.composedPath().find((elm: HTMLElement) => elm.classList && elm.classList.contains('item')) as HTMLElement;\n\t\t\tthis._onDragLeave();\n\t\t\tif (item) item.classList.add('drag');\n\t\t\tthis._lastDragItem = item;\n\t\t}\n\t}\n\n\t_onDrop = (e: DragEvent) => {\n\t\te.preventDefault();\n\t\tthis._onDragLeave();\n\t\tconst item = e.composedPath().find((elm: HTMLElement) => elm.classList && elm.classList.contains('item')) as HTMLElement;\n\t\tconst node = this.model.nodes[parseInt(item.dataset.node)];\n\t\tthis.dispatchEvent(new TreeDropEvent('drop', e, {tree: this, node: node}));\n\t}\n\n\t_onDragLeave = () => {\n\t\tif (this._lastDragItem) this._lastDragItem.classList.remove('drag');\n\t\tthis._lastDragItem = null;\n\t}\n\n\tconstructor() {\n\t\tsuper();\n\t\tthis.addEventListener('dragover', this._onDragover);\n\t\tthis.addEventListener('dragleave', this._onDragLeave);\n\t\tthis.addEventListener('drop', this._onDrop);\n\t}\n\n\tdestroy() {\n\t\tthis.logger.info('destroy');\n\t}\n\n\tconnectedCallback() {\n\t\tsuper.connectedCallback();\n\t\tthis.logger.info('init');\n\t\tthis.tabIndex = 0;\n\t}\n\n\tsetSourceData(sourceData: TreeSource, options: Partial<Options> = null) {\n\t\tObject.assign(this.options, options ?? {});\n\t\tthis.model = new TreeModel(sourceData, this.options);\n\n\t\tif (sourceData?.length > 0 && sourceData[0].s !== undefined) {\n\t\t\tthis.selection.setItems(sourceData.filter(i => i.s).map(i => [i.k, 0, 1]));\n\t\t}\n\n\t\tthis.dispatchEvent(new TreeEvent('load', {component: this}));\n\t}\n\n\tsetValue(values: SerializedValue[]) {\n\t\tthis.selection.populate(values);\n\t}\n\n\tasync loadData(params?: TreeAdapterParams) {\n\t\tthis.loading = true;\n\t\tif (this.list) this.list.size = 0;\n\t\t\n\t\tthis.model = null;\n\t\tparams = params ?? {};\n\t\tconst [tree, options] = await Promise.all([this.adapter.getTree(params), this.adapter.getOptions()]);\n\t\tthis.setSourceData(tree, options);\n\t\tif (options?.pageSize > 0) {\n\t\t\tthis.updateNodeLoadState(this.model.root, this.model.root.children.length);\n\t\t\tthis.model.indexVisibleNodes();\n\t\t}\n\t\tthis.loading = false;\n\n\t\tif (this.pendingHighlight) {\n\t\t\tawait this.updateComplete;\n\t\t\tawait this.highlightNode(this.pendingHighlight);\n\t\t\tthis.pendingHighlight = null;\n\t\t}\n\t}\n\n\tasync loadMore(parent: NodeModel) {\n\t\tconst offset = parent.children.length;\n\t\tconst sourceData = await this.adapter.getTree({parent: parent, parentKey: parent.key, offset: offset});\n\t\tconst model = new TreeModel(sourceData, this.options);\n\t\tparent.insertChildren(model.root.children, offset);\n\t\tthis.updateNodeLoadState(parent, model.root.children.length);\n\t\tthis.model.indexNodesByTree(true);\n\t\tthis.list.size = this.size;\n\t\tthis.list.requestUpdate();\n\t}\n\n\tkeyActions = {\n\t\t'ArrowRight': () => {\n\t\t\tconst node = this.model.visibleNodes[this.list.selectedIndex] as NodeModel;\n\t\t\tif (node.collapsed) {\n\t\t\t\tthis.toggleNodeCollapse(node);\n\t\t\t\tthis.model.indexVisibleNodes();\n\t\t\t\tthis.list.size = this.size;\n\t\t\t}\n\t\t},\n\t\t'ArrowLeft': () => {\n\t\t\tconst node = this.model.visibleNodes[this.list.selectedIndex] as NodeModel;\n\t\t\tif (!node.collapsed) {\n\t\t\t\tthis.toggleNodeCollapse(node);\n\t\t\t\tthis.model.indexVisibleNodes();\n\t\t\t\tthis.list.size = this.size;\n\t\t\t}\n\t\t}\n\t}\n\t\n\twillUpdate(props: Map<PropertyKey, unknown>) {\n\t\tif (props.has('adapter') && this.adapter) {\n\t\t\tthis.model = null;\n\t\t\tthis.adapter.attach(this);\n\t\t\tif (!this.disableAutoload) this.loadData();\n\t\t}\n\n\t\t// if (props.has('value')) {\n\t\t// \tthis.setValue(this.value);\n\t\t// }\n\n\t\tthis.model = this.model ?? new TreeModel([], null);\n\t\tthis.filtering = new FilterModel(this.model);\n\t\tthis.selection.model = this.model;\n\n\t\tif (props.has('options')) {\n\t\t\tthis.options = initOptions(this.options);\n\t\t\tthis.model.options = this.options;\n\t\t\tthis.selection.options = this.options;\n\t\t}\n\t}\n\n\tupdated(changedProps: Map<PropertyKey, unknown>): void {\n\t\tif (changedProps.has('model') && this.list) {\n\t\t\tthis.list.size = this.size;\n\t\t\tthis.noMatches = this.noMatches && this.size == 0;\n\t\t\tthis.list.requestUpdate();\n\t\t}\n\t}\n\n\tasync firstUpdated() {\n\t\tif (this.value) {\n\t\t\tthis.selection.setItems(this.value ?? []);\n\t\t}\n\n\t\tthis.list.itemRenderer = createItemRenderer(this);\n\n\t\tdom.on(this.list, 'toggle', '.item', async (e, elm) => {\n\t\t\tconst node = this.model.nodes[parseInt(elm.dataset.node)];\n\t\t\tthis.toggleNodeCollapse(node);\n\t\t\tthis.model.indexVisibleNodes();\n\t\t\tthis.list.size = this.size;\n\t\t});\n\n\t\tdom.on(this.list, 'levelselect', '.item', (e: LevelExpandEvent, elm) => {\n\t\t\tthis.toggleNode(this.model.nodes[parseInt(elm.dataset.node)], e.level, true);\n\t\t});\n\t\t\n\t\tdom.on(this.list, 'contextmenu', '.item', (e, elm) => {\n\t\t\te.preventDefault();\n\t\t\tconst node = this.model.nodes[parseInt(elm.dataset.node)];\n\t\t\tthis.selection.select(node, 0, false);\n\t\t\tthis.list.renderItems(true);\n\t\t});\n\n\t\tthis.list.addEventListener('select', (e: ListSelectEvent) => {\n\t\t\te.stopPropagation();\n\t\t\tif (e.trigger != ListSelectTrigger.Arrow && !(e.elm instanceof Expander)) {\n\t\t\t\tconst item = this.model.visibleNodes[e.index];\n\t\t\t\tif (item instanceof NodeModel) {\n\t\t\t\t\tconst node = item as NodeModel;\n\t\t\t\t\tif (node.checkbox ?? this.options.selectMode != SelectMode.None) {\n\t\t\t\t\t\tthis.toggleNode(node, 0, true);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tthis.toggleNodeCollapse(node);\n\t\t\t\t\t\tthis.model.indexVisibleNodes();\n\t\t\t\t\t\tthis.list.size = this.size;\n\t\t\t\t\t}\n\t\t\t\t\tthis.dispatchEvent(new TreeEvent('select', {component: this, node}));\n\t\t\t\t} else if (item) {\n\t\t\t\t\tconst placeholder = item as NodePlaceholder;\n\t\t\t\t\tif (placeholder.loading) return;\n\t\t\t\t\tplaceholder.loading = true;\n\t\t\t\t\tplaceholder.element.querySelector<Icon>('og-icon').icon = 'hourglass-half';\n\t\t\t\t\tthis.loadMore(placeholder.parent);\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\n\t\tthis.list.addEventListener('keydown', (e: KeyboardEvent) => {\n\t\t\tconst action = this.keyActions[e.key as keyof typeof this.keyActions];\n\t\t\tif (action) {\n\t\t\t\taction();\n\t\t\t} else if (!isNaN(parseInt(e.key))) {\n\t\t\t\tconst level = parseInt(e.key);\n\t\t\t\tconst node = this.model.visibleNodes[this.list.selectedIndex] as NodeModel;\n\t\t\t\tif (node.subLevels >= level) {\n\t\t\t\t\tthis.toggleNode(node, level, true);\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t}\n\n\t_onGlobalLevelSelect = async (e: LevelSelectEvent) => {\n\t\tthis.toggleNode(this.model.root, e.level, true);\n\t\tthis.globalTreeLevels.requestUpdate();\n\t\tthis.requestUpdate();\n\t\tawait this.list.updateComplete;\n\t\tthis.list.renderItems(true);\n\t}\n\n\t_onSearch = () => {\n\t\tthis.list.size = this.size;\n\t\tthis.list.select(0);\n\t\tthis.renderItems(true);\n\t\tthis.noMatches = this.size == 0;\n\t}\n\n\ttoggleNode(node: NodeModel, level: number, dispatchEvent = false) {\n\t\tthis.selection.toggle(node, level);\n\t\tthis.list.renderItems(true);\n\t\tsetTimeout(() => this.list.focus()); // TODO: list looses focus for unknown reason\n\t\tif (dispatchEvent) {\n\t\t\tthis.dispatchEvent(new TreeEvent('change', {component: this, node}));\n\t\t}\n\t}\n\n\tupdateNodeLoadState(node: NodeModel, newNodeCount: number) {\n\t\tif (this.options.pageSize > 0) {\n\t\t\tif (newNodeCount < this.options.pageSize) node.count = node.children.length;\n\t\t\telse node.count = node.children.length + 1;\n\t\t}\n\t}\n\n\tasync toggleNodeCollapse(node: NodeModel, dispatchEvent = true) {\n\t\tnode.toggleCollapse();\n\t\tif (!node.isLoaded && !node.isPartialyLoaded && this.adapter && !this.loadingNodes.has(node.key)) {\n\t\t\tthis.loadingNodes.add(node.key);\n\t\t\tthis.list.requestUpdate();\n\t\t\tconst sourceData = await this.adapter.getTree({parent: node, parentKey: node.key, offset: 0});\n\t\t\tconst model = new TreeModel(sourceData, this.options);\n\t\t\tnode.insertChildren(model.root.children, 0);\n\t\t\tthis.updateNodeLoadState(node, node.children.length);\n\t\t\tthis.model.indexNodesByTree(true);\n\t\t\tthis.list.size = this.size;\n\t\t\tthis.list.requestUpdate();\n\t\t\tthis.loadingNodes.delete(node.key);\n\t\t\tif (this.globalTreeLevels) this.globalTreeLevels.count = this.model.maxLevel + 1;\n\t\t}\n\t\tif (dispatchEvent) this.dispatchEvent(new TreeEvent('tree.collapse', {component: this, node}));\n\t}\n\n\ttoggleTreeCollapse(node?: NodeModel, dispatchEvent = true) {\n\t\tif (this.model.nodes.length == 0) return;\n\t\tif (!node) {\n\t\t\tnode = this.model.root;\n\t\t\tnode.collapsed = this.model.nodes[0].collapsed;\n\t\t}\n\t\tnode.toggleCollapse(true);\n\t\tthis.model.indexVisibleNodes();\n\t\tthis.list.size = this.size;\n\t\tif (dispatchEvent) this.dispatchEvent(new TreeEvent('tree.collapse', {component: this, node}));\n\t}\n\n\t_onListRender = () => {\n\t\tif (this.awaitFilter) {\n\t\t\tthis.filter(this.currentFilter);\n\t\t\tthis.awaitFilter = null;\n\t\t}\n\t}\n\n\t_onListMenu = (e: ListPointerEvent) => {\n\t\tthis.dispatchEvent(new TreePointerEvent('menu', e, {\n\t\t\ttree: this,\n\t\t\tnode: this.model.visibleNodes[e.index] as NodeModel\n\t\t}));\n\t}\n\n\tget itemStyle() {\n\t\tconst customStyle = this.options?.customStyle;\n\t\treturn [itemStyle, ...(customStyle ? (Array.isArray(customStyle) ? customStyle : [customStyle]) : [])];\n\t}\n\t\n\trender() {\n\t\tthis.logger.info(`render ${this.model?.visibleNodes.length ?? 0}`);\n\n\t\tconst list = html`\n\t\t\t<div class=\"main\" style=\"${styleMap({overflow: 'hidden', maxHeight: this.maxHeight ? dom.numToPixels(this.maxHeight) : null})}\">\n\t\t\t\t<og-list\n\t\t\t\t\tsize=\"${this.size}\"\n\t\t\t\t\t.customStyle=${this.itemStyle}\n\t\t\t\t\t?nativeHeight=\"${!this.maxHeight}\"\n\t\t\t\t\tmaxHeight=\"${this.maxHeight || null}\"\n\t\t\t\t\t@render=\"${this._onListRender}\"\n\t\t\t\t\t@list.menu=\"${this._onListMenu}\">\n\t\t\t\t</og-list>\n\t\t\t</div>\n\t\t`;\n\n\t\tconst loader = this.loading ? html`\n\t\t\t<div style=\"padding: 10px; text-align: center\">\n\t\t\t\t<og-loader></og-loader>\n\t\t\t</div>\n\t\t` : null;\n\n\t\tconst search = this.options.search ? html`\n\t\t\t<div class=\"toolbar toolbar-search\">\n\t\t\t\t<og-tree-search\n\t\t\t\t\t.tree=\"${this}\"\n\t\t\t\t\t@search=\"${this._onSearch}\">\n\t\t\t\t</og-tree-search>\n\t\t\t</div>\n\t\t` : null;\n\n\t\tconst alert = this.noMatches ? html`\n\t\t\t<og-alert text=\"No matches\" type=\"warning\"></og-alert>\n\t\t` : null;\n\n\t\tconst levels = this.hasGlobalLevels && !this.noMatches ? html`\n\t\t\t<div class=\"toolbar\">\n\t\t\t\t<og-tree-levels\n\t\t\t\t\tid=\"globalLevels\"\n\t\t\t\t\t.count=\"${(this.options.maxLevel ?? this.model.maxLevel) + 1}\"\n\t\t\t\t\t.selection=\"${this.selection.getLevelSelection(this.model.root)}\"\n\t\t\t\t\t@levelselect=\"${this._onGlobalLevelSelect}\">\n\t\t\t\t</og-tree-levels>\n\t\t\t</div>\n\t\t` : null;\n\n\t\treturn join([search, alert, levels, loader, list], () => ' ');\n\t}\n\n\tasync highlightNode(key: string) {\n\t\tconst node = this.model?.nodeMap.get(key);\n\t\tif (!node) {\n\t\t\tthis.pendingHighlight = key;\n\t\t\treturn;\n\t\t}\n\t\tnode.walkUp((n: NodeModel) => n.expand(true));\n\t\tthis.model.indexVisibleNodes();\n\t\tthis.list.selectedIndex = node.visibleIndex;\n\t\t\n\t\tthis.list.requestUpdate();\n\t\tawait this.list.updateComplete;\n\n\t\tconst index = Math.max(0, node.visibleIndex - constants.MAX_HIGHLIGHT_ITEM_OFFSET);\n\t\tthis.list.scrollToIndex(index);\n\t}\n\n\thighlightFirstSelectedNode() {\n\t\tif (!this.list) return; // TODO - fix this\n\t\tif (!this.selection?.count) return;\n\t\tconst key = this.selection.items.keys().next().value;\n\t\tconst node = this.model.nodeMap.get(key);\n\t\tif (!node || node.visibleIndex == null) {\n\t\t\tthis.list.selectedIndex = -1;\n\t\t\treturn;\n\t\t}\n\n\t\tthis.list.selectedIndex = node.visibleIndex;\n\t\tthis.list.scrollToIndex(node.index);\n\t}\n\n\trenderItems(all = false) {\n\t\tif (this.list) {\n\t\t\tthis.list.size = this.size;\n\t\t\tthis.list.renderItems(all);\n\t\t}\n\t}\n\n\tclearSelection() {\n\t\tthis.selection.clear();\n\t\tthis.requestUpdate();\n\t}\n\n\tasync filter(term?: string) {\n\t\tterm = (term ?? '').trim();\n\t\tif (term === this.currentFilter) return;\n\n\t\tthis.currentFilter = term;\n\t\t\n\t\tif (this.loading) {\n\t\t\tthis.awaitFilter = true;\n\t\t\treturn;\n\t\t}\n\n\t\tif (this.options.customSearch && this.adapter) {\n\t\t\tawait this.loadData({filter: term});\n\t\t\treturn;\n\t\t}\n\n\t\tif (term == null) {\n\t\t\tthis.filtering?.clear();\n\t\t\tthis.noMatches = false;\n\t\t} else {\n\t\t\tthis.filtering?.filter(term);\n\t\t\tthis.noMatches = this.size == 0;\n\t\t}\n\n\t\tthis.list.size = this.size;\n\t\tthis.list.select(0);\n\t\tthis.list.requestUpdate();\n\t}\n\n\tasync clearFilter() {\n\t\tif (this.searchBar?.searchInput) this.searchBar.searchInput.value = '';\n\t\tawait this.filter();\n\t}\n\n\n}"]}
@@ -1 +1 @@
1
- {"version":3,"file":"tree.style.d.ts","sourceRoot":"","sources":["../../src/ui/tree.style.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,KAAK,yBAgCjB,CAAC;AAEF,eAAO,MAAM,SAAS,yBA2ErB,CAAC"}
1
+ {"version":3,"file":"tree.style.d.ts","sourceRoot":"","sources":["../../src/ui/tree.style.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,KAAK,yBAyCjB,CAAC;AAEF,eAAO,MAAM,SAAS,yBA2ErB,CAAC"}
@@ -29,6 +29,15 @@ export const style = css `
29
29
  line-height: 18px;
30
30
  }
31
31
 
32
+ .toolbar-search {
33
+ margin: 0;
34
+ border-bottom: 1px solid var(--og-accent-color);
35
+ }
36
+
37
+ .toolbar-search og-tree-search {
38
+ min-height: 20px;
39
+ }
40
+
32
41
  .main {
33
42
  flex: 1;
34
43
  }
@@ -1 +1 @@
1
- {"version":3,"file":"tree.style.js","sourceRoot":"","sources":["../../src/ui/tree.style.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAC1B,OAAO,SAAS,MAAM,cAAc,CAAC;AAErC,MAAM,CAAC,MAAM,KAAK,GAAG,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAgCvB,CAAC;AAEF,MAAM,CAAC,MAAM,SAAS,GAAG,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBAkDV,SAAS,CAAC,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;CAyBtC,CAAC","sourcesContent":["import { css } from 'lit';\nimport constants from '../constants';\n\nexport const style = css`\n\t:host {\n\t\tfont-size: var(--og-font-size);\n\t\tfont-family: var(--og-font-family);\n\t\tposition: relative;\n\t\twidth: 100%;\n\t\tdisplay: flex;\n\t\tflex-direction: column;\n\t\tuser-select: none;\n\t\toutline: none;\n\t}\n\n\tog-list {\n\t\twidth: 100%;\n\t\theight: 100%;\n\t\tflex: 1;\n\t}\n\n\t.toolbar {\n\t\tflex: 0;\n\t\tmin-height: 18px;\n\t\tmargin: 2px 2px 0 2px;\n\t}\n\n\t.toolbar > * {\n\t\theight: 18px;\n\t\tline-height: 18px;\n\t}\n\n\t.main {\n\t\tflex: 1;\n\t}\n`;\n\nexport const itemStyle = css`\n\t.item {\n\t\tdisplay: flex;\n\t\tposition: relative;\n\t\twhite-space: nowrap;\n\t}\n\n\t.item.drag {\n\t\tborder-bottom: 2px solid var(--og-text-color);\n\t}\n\n\t.item > div {\n\t\tflex: 0;\n\t\tmargin-left: 2px;\n\t}\n\n\t.item.filtered {\n\t\topacity: 0.5;\n\t}\n\n\t.item div.exp {\n\t\tmin-width: 20px;\n\t\tposition: relative;\n\t}\n\n\t.item div.chck {\n\t\tmin-width: 20px;\n\t\tpadding-left: 2px;\n \t}\n\n\t.item div.dir {\n\t\ttext-align: left;\n\t\tmin-width: 20px;\n\t\tpadding-left: 2px;\n\t}\n\n\t.item div.dir img {\n\t\theight: 18px;\n\t\tmargin-top: 2px;\n\t}\n\n\t.item div.txt {\n\t\tflex: 1;\n\t\toverflow: hidden;\n\t\ttext-overflow: ellipsis;\n\t}\n\n\t.item div.lvl {\n\t\tvertical-align: middle;\n\t\tline-height: 18px;\n\t\tmargin-right: ${constants.SLIDER_SIZE}px;\n\t}\n\n\t.item div.lvl {\n\t\tdisplay: flex;\n\t\tvertical-align: middle;\n\t\tline-height: 18px;\n\t\tpadding-top: 2px;\n\t}\n\n\t.item div.lvl og-tree-levels {\n\t\theight: 18px;\n\t}\n\n\t.item div.lvl.hideable {\n\t\tdisplay: none;\n\t}\n\n\t.item:hover div.lvl.hideable {\n\t\tdisplay: flex;\n\t}\n\t\n\t.item:hover div.lvl {\n\t\tdisplay: flex;\n\t}\n`;"]}
1
+ {"version":3,"file":"tree.style.js","sourceRoot":"","sources":["../../src/ui/tree.style.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAC1B,OAAO,SAAS,MAAM,cAAc,CAAC;AAErC,MAAM,CAAC,MAAM,KAAK,GAAG,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAyCvB,CAAC;AAEF,MAAM,CAAC,MAAM,SAAS,GAAG,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBAkDV,SAAS,CAAC,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;CAyBtC,CAAC","sourcesContent":["import { css } from 'lit';\nimport constants from '../constants';\n\nexport const style = css`\n\t:host {\n\t\tfont-size: var(--og-font-size);\n\t\tfont-family: var(--og-font-family);\n\t\tposition: relative;\n\t\twidth: 100%;\n\t\tdisplay: flex;\n\t\tflex-direction: column;\n\t\tuser-select: none;\n\t\toutline: none;\n\t}\n\n\tog-list {\n\t\twidth: 100%;\n\t\theight: 100%;\n\t\tflex: 1;\n\t}\n\n\t.toolbar {\n\t\tflex: 0;\n\t\tmin-height: 18px;\n\t\tmargin: 2px 2px 0 2px;\n\t}\n\n\t.toolbar > * {\n\t\theight: 18px;\n\t\tline-height: 18px;\n\t}\n\n\t.toolbar-search {\n\t\tmargin: 0;\n\t\tborder-bottom: 1px solid var(--og-accent-color);\n\t}\n\n\t.toolbar-search og-tree-search {\n\t\tmin-height: 20px;\n\t}\n\n\t.main {\n\t\tflex: 1;\n\t}\n`;\n\nexport const itemStyle = css`\n\t.item {\n\t\tdisplay: flex;\n\t\tposition: relative;\n\t\twhite-space: nowrap;\n\t}\n\n\t.item.drag {\n\t\tborder-bottom: 2px solid var(--og-text-color);\n\t}\n\n\t.item > div {\n\t\tflex: 0;\n\t\tmargin-left: 2px;\n\t}\n\n\t.item.filtered {\n\t\topacity: 0.5;\n\t}\n\n\t.item div.exp {\n\t\tmin-width: 20px;\n\t\tposition: relative;\n\t}\n\n\t.item div.chck {\n\t\tmin-width: 20px;\n\t\tpadding-left: 2px;\n \t}\n\n\t.item div.dir {\n\t\ttext-align: left;\n\t\tmin-width: 20px;\n\t\tpadding-left: 2px;\n\t}\n\n\t.item div.dir img {\n\t\theight: 18px;\n\t\tmargin-top: 2px;\n\t}\n\n\t.item div.txt {\n\t\tflex: 1;\n\t\toverflow: hidden;\n\t\ttext-overflow: ellipsis;\n\t}\n\n\t.item div.lvl {\n\t\tvertical-align: middle;\n\t\tline-height: 18px;\n\t\tmargin-right: ${constants.SLIDER_SIZE}px;\n\t}\n\n\t.item div.lvl {\n\t\tdisplay: flex;\n\t\tvertical-align: middle;\n\t\tline-height: 18px;\n\t\tpadding-top: 2px;\n\t}\n\n\t.item div.lvl og-tree-levels {\n\t\theight: 18px;\n\t}\n\n\t.item div.lvl.hideable {\n\t\tdisplay: none;\n\t}\n\n\t.item:hover div.lvl.hideable {\n\t\tdisplay: flex;\n\t}\n\t\n\t.item:hover div.lvl {\n\t\tdisplay: flex;\n\t}\n`;"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@omegagrid/tree",
3
- "version": "0.6.133",
3
+ "version": "0.6.135",
4
4
  "license": "UNLICENSED",
5
5
  "description": "Universal treeview component",
6
6
  "main": "./dist/index.js",
@@ -27,8 +27,8 @@
27
27
  "_prepublish": "yarn test && yarn lint"
28
28
  },
29
29
  "dependencies": {
30
- "@omegagrid/core": "^0.6.133",
31
- "@omegagrid/localize": "^0.6.133",
30
+ "@omegagrid/core": "^0.6.135",
31
+ "@omegagrid/localize": "^0.6.135",
32
32
  "date-fns": "^3.2.0",
33
33
  "lit": "^3.1.1",
34
34
  "lit-html": "^3.1.1",