@omegagrid/tree 0.9.38 → 0.9.40
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.
- package/dist/options.d.ts +4 -0
- package/dist/options.d.ts.map +1 -1
- package/dist/options.js.map +1 -1
- package/dist/ui/dropdown.d.ts +6 -5
- package/dist/ui/dropdown.d.ts.map +1 -1
- package/dist/ui/dropdown.js +24 -6
- package/dist/ui/dropdown.js.map +1 -1
- package/dist/ui/tree.d.ts.map +1 -1
- package/dist/ui/tree.js +3 -1
- package/dist/ui/tree.js.map +1 -1
- package/package.json +3 -3
package/dist/options.d.ts
CHANGED
|
@@ -3,6 +3,7 @@ import { NodeModel } from "./model/nodeModel";
|
|
|
3
3
|
import { FolderOptions, ItemProperty, ItemTypeOptions, SelectMode } from "./types";
|
|
4
4
|
import { TemplateResult } from "lit-html";
|
|
5
5
|
import { CSSResultOrNative } from "lit";
|
|
6
|
+
import { SelectedItemParams } from "./model";
|
|
6
7
|
export type Options = {
|
|
7
8
|
alwaysRefresh?: boolean;
|
|
8
9
|
nodeHeight?: number;
|
|
@@ -27,5 +28,8 @@ export type Options = {
|
|
|
27
28
|
nodeRenderer?: (div: HTMLDivElement, node: NodeModel) => string | TemplateResult<1> | void;
|
|
28
29
|
afterRenderer?: (div: HTMLDivElement, node: NodeModel) => void;
|
|
29
30
|
} & CommonOptions;
|
|
31
|
+
export type TreeDropdownOptions = Options & {
|
|
32
|
+
textRenderer?: (selectedItems: Map<string, SelectedItemParams>) => string | TemplateResult<1>;
|
|
33
|
+
};
|
|
30
34
|
export declare function initOptions(options?: Partial<Options>, origOptions?: Options): Options;
|
|
31
35
|
//# sourceMappingURL=options.d.ts.map
|
package/dist/options.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"options.d.ts","sourceRoot":"","sources":["../src/options.ts"],"names":[],"mappings":"AACA,OAAO,EAAqB,aAAa,EAAE,MAAM,iBAAiB,CAAC;AACnE,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAC9C,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,eAAe,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACnF,OAAO,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAC1C,OAAO,EAAE,iBAAiB,EAAE,MAAM,KAAK,CAAC;
|
|
1
|
+
{"version":3,"file":"options.d.ts","sourceRoot":"","sources":["../src/options.ts"],"names":[],"mappings":"AACA,OAAO,EAAqB,aAAa,EAAE,MAAM,iBAAiB,CAAC;AACnE,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAC9C,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,eAAe,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACnF,OAAO,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAC1C,OAAO,EAAE,iBAAiB,EAAE,MAAM,KAAK,CAAC;AACxC,OAAO,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAC;AAE7C,MAAM,MAAM,OAAO,GAAG;IACrB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,UAAU,CAAC,EAAE,UAAU,GAAC,MAAM,CAAC;IAC/B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,aAAa,CAAC,EAAE,aAAa,CAAC;IAC9B,cAAc,CAAC,EAAE,YAAY,EAAE,CAAC;IAChC,eAAe,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC;IAClD,WAAW,CAAC,EAAE,iBAAiB,GAAC,MAAM,GAAC,CAAC,iBAAiB,GAAC,MAAM,CAAC,EAAE,CAAC;IACpE,YAAY,CAAC,EAAE,CAAC,GAAG,EAAE,cAAc,EAAE,IAAI,EAAE,SAAS,KAAK,MAAM,GAAC,cAAc,CAAC,CAAC,CAAC,GAAC,IAAI,CAAC;IACvF,aAAa,CAAC,EAAE,CAAC,GAAG,EAAE,cAAc,EAAE,IAAI,EAAE,SAAS,KAAK,IAAI,CAAA;CAC9D,GAAG,aAAa,CAAC;AAElB,MAAM,MAAM,mBAAmB,GAAG,OAAO,GAAG;IAC3C,YAAY,CAAC,EAAE,CAAC,aAAa,EAAE,GAAG,CAAC,MAAM,EAAE,kBAAkB,CAAC,KAAK,MAAM,GAAC,cAAc,CAAC,CAAC,CAAC,CAAA;CAC3F,CAAA;AAqBD,wBAAgB,WAAW,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC,OAAO,CAAC,EAAE,WAAW,GAAE,OAAc,GAAG,OAAO,CAO5F"}
|
package/dist/options.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"options.js","sourceRoot":"","sources":["../src/options.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,aAAa,CAAC;AACpC,OAAO,EAAE,iBAAiB,EAAiB,MAAM,iBAAiB,CAAC;AAEnE,OAAO,EAAgD,UAAU,EAAE,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"options.js","sourceRoot":"","sources":["../src/options.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,aAAa,CAAC;AACpC,OAAO,EAAE,iBAAiB,EAAiB,MAAM,iBAAiB,CAAC;AAEnE,OAAO,EAAgD,UAAU,EAAE,MAAM,SAAS,CAAC;AAkCnF,MAAM,eAAe,GAAqB;IACzC,UAAU,EAAE,SAAS,CAAC,mBAAmB;IACzC,qBAAqB,EAAE,SAAS,CAAC,uBAAuB;IACxD,UAAU,EAAE,UAAU,CAAC,cAAc;IACrC,WAAW,EAAE,EAAE;IACf,QAAQ,EAAE,IAAI;IACd,YAAY,EAAE,IAAI;IAClB,mBAAmB,EAAE,IAAI;IACzB,UAAU,EAAE,IAAI;IAChB,cAAc,EAAE,EAAE;IAClB,eAAe,EAAE,EAAE;IACnB,SAAS,EAAE,IAAI;IACf,MAAM,EAAE,KAAK;IACb,UAAU,EAAE,IAAI;IAChB,SAAS,EAAE,KAAK;IAChB,aAAa,EAAE,IAAI;IACnB,aAAa,EAAE,KAAK;CACpB,CAAC;AAEF,MAAM,UAAU,WAAW,CAAC,OAA0B,EAAE,cAAuB,IAAI;IAClF,OAAO;QACN,GAAG,iBAAiB,CAAC,OAAO,EAAE,WAAW,CAAC;QAC1C,GAAG,eAAe;QAClB,GAAG,WAAW;QACd,GAAG,OAAO;KACV,CAAC;AACH,CAAC","sourcesContent":["import constants from \"./constants\";\nimport { initCommonOptions, CommonOptions } from \"@omegagrid/core\";\nimport { NodeModel } from \"./model/nodeModel\";\nimport { FolderOptions, ItemProperty, ItemTypeOptions, SelectMode } from \"./types\";\nimport { TemplateResult } from \"lit-html\";\nimport { CSSResultOrNative } from \"lit\";\nimport { SelectedItemParams } from \"./model\";\n\nexport type Options = {\n\talwaysRefresh?: boolean,\n\tnodeHeight?: number,\n\trenderingNodeTreshold?: number,\n\tselectMode?: SelectMode|string,\n\tlevelIndent?: number,\n\tmaxLevel?: number,\n\tglobalLevels?: boolean,\n\tlevelsAlwaysVisible?: boolean,\n\tcheckboxes?: boolean,\n\texpanders?: boolean,\n\tallowEmpty?: boolean,\n\tautoClose?: boolean,\n\tsearch?: boolean,\n\tfileDrop?: boolean,\n\tpageSize?: number,\n\tcustomSearch?: boolean,\n\tfolderOptions?: FolderOptions,\n\titemProperties?: ItemProperty[],\n\titemTypeOptions?: Record<string, ItemTypeOptions>,\n\tcustomStyle?: CSSResultOrNative|string|(CSSResultOrNative|string)[],\n\tnodeRenderer?: (div: HTMLDivElement, node: NodeModel) => string|TemplateResult<1>|void,\n\tafterRenderer?: (div: HTMLDivElement, node: NodeModel) => void\n} & CommonOptions;\n\nexport type TreeDropdownOptions = Options & {\n\ttextRenderer?: (selectedItems: Map<string, SelectedItemParams>) => string|TemplateResult<1>\n}\n\nconst DEFAULT_OPTIONS: Partial<Options> = {\n\tnodeHeight: constants.DEFAULT_NODE_HEIGHT,\n\trenderingNodeTreshold: constants.RENDERING_NODE_TRESHOLD,\n\tselectMode: SelectMode.MultipleLevels,\n\tlevelIndent: 10,\n\tmaxLevel: null,\n\tglobalLevels: true,\n\tlevelsAlwaysVisible: true,\n\tallowEmpty: true,\n\titemProperties: [],\n\titemTypeOptions: {},\n\texpanders: true,\n\tsearch: false,\n\tcheckboxes: true,\n\tautoClose: false,\n\tfolderOptions: null,\n\talwaysRefresh: false\n};\n\nexport function initOptions(options?: Partial<Options>, origOptions: Options = null): Options {\n\treturn {\n\t\t...initCommonOptions(options, origOptions),\n\t\t...DEFAULT_OPTIONS,\n\t\t...origOptions,\n\t\t...options,\n\t};\n}"]}
|
package/dist/ui/dropdown.d.ts
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
import { Button, Dropdown, Tooltip, Input } from "@omegagrid/core";
|
|
2
2
|
import { TreeModel, TreeSource } from "../model/treeModel";
|
|
3
3
|
import { SelectedItemParams, TreeSelectionModel, SerializedValue } from "../model/selectionModel";
|
|
4
|
-
import {
|
|
4
|
+
import { TreeDropdownOptions } from "../options";
|
|
5
5
|
import { TreeAdapter } from "../model/treeAdapter";
|
|
6
6
|
import { Tree, TreeEvent } from "./tree";
|
|
7
7
|
import { NodeModel } from "../model";
|
|
8
8
|
export declare class TreeDropdown extends Dropdown {
|
|
9
9
|
static styles: import("lit").CSSResult[];
|
|
10
|
-
options:
|
|
10
|
+
options: TreeDropdownOptions;
|
|
11
11
|
model: TreeModel;
|
|
12
12
|
adapter: TreeAdapter;
|
|
13
13
|
selection: TreeSelectionModel;
|
|
@@ -46,14 +46,15 @@ export declare class TreeDropdown extends Dropdown {
|
|
|
46
46
|
focus(): void;
|
|
47
47
|
constructor();
|
|
48
48
|
connectedCallback(): void;
|
|
49
|
-
setSourceData(sourceData: TreeSource, options?: Partial<
|
|
50
|
-
updateOptions(options: Partial<
|
|
49
|
+
setSourceData(sourceData: TreeSource, options?: Partial<TreeDropdownOptions>): void;
|
|
50
|
+
updateOptions(options: Partial<TreeDropdownOptions>): void;
|
|
51
51
|
adjustWidth(): void;
|
|
52
52
|
clearSelection(dispatchEvent?: boolean): Promise<void>;
|
|
53
53
|
_onMouseOver: () => void;
|
|
54
54
|
_onMouseOut: () => void;
|
|
55
55
|
getSelectionItems(): [NodeModel, [number, boolean][], boolean][];
|
|
56
|
-
getButtonContentHtml(): import("lit-html").TemplateResult<1>;
|
|
56
|
+
getButtonContentHtml(): string | import("lit-html").TemplateResult<1>;
|
|
57
|
+
getSelectionHtml(): import("lit-html").TemplateResult<1>;
|
|
57
58
|
getSelectionText(): string;
|
|
58
59
|
_debounceFilter: {
|
|
59
60
|
(this: unknown, ...args: [term: string] & any[]): Promise<void>;
|
|
@@ -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,
|
|
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,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAE9D,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;AAKrC,qBACa,YAAa,SAAQ,QAAQ;IAEzC,MAAM,CAAC,MAAM,4BAA+B;IAG5C,OAAO,EAAE,mBAAmB,CAAiB;IAG7C,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;;uBAvEZ,CAAC;MA2EN;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;IAOjB,KAAK;;IAmBL,iBAAiB;IASjB,aAAa,CAAC,UAAU,EAAE,UAAU,EAAE,OAAO,GAAE,OAAO,CAAC,mBAAmB,CAAQ;IAMlF,aAAa,CAAC,OAAO,EAAE,OAAO,CAAC,mBAAmB,CAAC;IAKnD,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;IA2BpB,gBAAgB;IAehB,gBAAgB;IAOhB,eAAe;;uBAnTP,CAAC;MAsTD;IAER,QAAQ,GAAU,GAAG,UAAU,mBAK9B;IAED,eAAe,GAAI,GAAG,aAAa,UAmBlC;IAED,YAAY,eAAoD;IAEhE,MAAM,6CAmCJ;CACF"}
|
package/dist/ui/dropdown.js
CHANGED
|
@@ -16,6 +16,8 @@ import { join } from 'lit/directives/join.js';
|
|
|
16
16
|
import { debounce } from "ts-debounce";
|
|
17
17
|
import { NodeModel } from "../model";
|
|
18
18
|
import { style } from "./dropdown.style";
|
|
19
|
+
import { unsafeHTML } from "lit-html/directives/unsafe-html.js";
|
|
20
|
+
import { html as htmlUtils } from "@omegagrid/core";
|
|
19
21
|
let TreeDropdown = class TreeDropdown extends Dropdown {
|
|
20
22
|
get hasCrossButton() {
|
|
21
23
|
return this.cross && ((this.selection.count > 0 && this.options.allowEmpty) || this.searchTerm !== '');
|
|
@@ -97,7 +99,6 @@ let TreeDropdown = class TreeDropdown extends Dropdown {
|
|
|
97
99
|
await this.updateComplete;
|
|
98
100
|
if (this.input)
|
|
99
101
|
this.input.value = '';
|
|
100
|
-
await this.tree.updateComplete;
|
|
101
102
|
this.tree.clearFilter();
|
|
102
103
|
}
|
|
103
104
|
focus() {
|
|
@@ -125,9 +126,9 @@ let TreeDropdown = class TreeDropdown extends Dropdown {
|
|
|
125
126
|
this._debounceWidthUpdate = debounce(() => {
|
|
126
127
|
if (!this.dropdown || !this.dropdown.isConnected)
|
|
127
128
|
return;
|
|
128
|
-
dom.fixElementPosition(this.dropdown);
|
|
129
129
|
if (this.dynamicWidth)
|
|
130
130
|
this.adjustWidth();
|
|
131
|
+
dom.fixElementPosition(this.dropdown);
|
|
131
132
|
});
|
|
132
133
|
this._onTreeRender = () => {
|
|
133
134
|
this._debounceWidthUpdate();
|
|
@@ -137,9 +138,9 @@ let TreeDropdown = class TreeDropdown extends Dropdown {
|
|
|
137
138
|
if (this.contentDiv && this.contentDiv.scrollWidth > this.contentDiv.clientWidth) {
|
|
138
139
|
if (!this.tooltip.parentElement) {
|
|
139
140
|
document.body.appendChild(this.tooltip);
|
|
140
|
-
this.tooltip.
|
|
141
|
+
dom.setSize(this.tooltip, { w: this.button.offsetWidth });
|
|
141
142
|
}
|
|
142
|
-
this.tooltip.content = this.
|
|
143
|
+
this.tooltip.content = this.getSelectionHtml();
|
|
143
144
|
this.tooltip.attachTo(this.button, 'bottom');
|
|
144
145
|
}
|
|
145
146
|
};
|
|
@@ -196,7 +197,7 @@ let TreeDropdown = class TreeDropdown extends Dropdown {
|
|
|
196
197
|
color="${this.color}"
|
|
197
198
|
class="main"
|
|
198
199
|
style="flex: 1"
|
|
199
|
-
caret>
|
|
200
|
+
.caret="${this.openDirection}">
|
|
200
201
|
${this.buttonInput ? '' : html `
|
|
201
202
|
<div class="content" slot="content">
|
|
202
203
|
${this.getButtonContentHtml()}
|
|
@@ -277,6 +278,9 @@ let TreeDropdown = class TreeDropdown extends Dropdown {
|
|
|
277
278
|
});
|
|
278
279
|
}
|
|
279
280
|
getButtonContentHtml() {
|
|
281
|
+
if (this.options?.textRenderer) {
|
|
282
|
+
return this.options.textRenderer(this.selectedItems);
|
|
283
|
+
}
|
|
280
284
|
const items = this.getSelectionItems();
|
|
281
285
|
const caption = this.caption ? html `<div class="caption">${this.caption}</div>` : null;
|
|
282
286
|
const placeholder = this.placeholder ? html `<div class="placeholder">${this.placeholder}</div>` : null;
|
|
@@ -295,8 +299,22 @@ let TreeDropdown = class TreeDropdown extends Dropdown {
|
|
|
295
299
|
? html `${caption}${placeholder ? html `: ${placeholder}` : ``}`
|
|
296
300
|
: (placeholder ? html `${placeholder}` : html ` `));
|
|
297
301
|
}
|
|
302
|
+
getSelectionHtml() {
|
|
303
|
+
const items = this.getSelectionItems();
|
|
304
|
+
if (items.length === 0)
|
|
305
|
+
null;
|
|
306
|
+
return html `${unsafeHTML(items.map(([node, levels, red]) => [
|
|
307
|
+
node && node.icon ? `<og-icon icon="${node.icon}"></og-icon>` : ``,
|
|
308
|
+
red
|
|
309
|
+
? `<span style="color:#ff0000">${node.value}</span>`
|
|
310
|
+
: `<span>${node.value}</span>`,
|
|
311
|
+
levels.length > 0
|
|
312
|
+
? levels.map(level => `<og-icon class="lvl" icon="circle-${level[0]}">${level[0]}</og-icon>`).join('')
|
|
313
|
+
: ``
|
|
314
|
+
].join('')).join(', '))}`;
|
|
315
|
+
}
|
|
298
316
|
getSelectionText() {
|
|
299
|
-
return this.getSelectionItems().map(([node, levels]) => node.value + (levels.length > 0
|
|
317
|
+
return this.getSelectionItems().map(([node, levels]) => htmlUtils.escapeHTML(node.value) + (levels.length > 0
|
|
300
318
|
? ` (${levels.map(level => level[0]).join(',')})`
|
|
301
319
|
: '')).join(',');
|
|
302
320
|
}
|
package/dist/ui/dropdown.js.map
CHANGED
|
@@ -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\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`<div class=\"caption\">${this.caption}</div>` : null;\n\t\tconst placeholder = this.placeholder ? html`<div class=\"placeholder\">${this.placeholder}</div>` : null;\n\t\treturn items.length > 0 ? html`${caption ? html`${caption}:` : ``}${join(map(items, ([node, levels, red]) => html`\n\t\t\t<div class=\"itm\">\n\t\t\t\t${node && node.icon ? html`<og-icon .icon=\"${node.icon}\"></og-icon>` : null}\n\t\t\t\t${red \n\t\t\t\t\t? html`<div style=\"color:#ff0000\">${node.value}</div>` \n\t\t\t\t\t: html`<div>${node.value}</div>`\n\t\t\t\t}\n\t\t\t\t${levels.length > 0 \n\t\t\t\t\t? html`${map(levels, level => html`\n\t\t\t\t\t\t<og-icon class=\"lvl\" icon=\"circle-${level[0]}\">${level[0]}</og-icon>\n\t\t\t\t\t`)}` : ``\n\t\t\t\t}\n\t\t\t</div>\n\t\t`), html`<div class=\"sep\">,</div>`)}` : (caption \n\t\t\t? html`${caption}${placeholder ? html`: ${placeholder}` : ``}` \n\t\t\t: (placeholder ? html`${placeholder}` : html` `)\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\tclass=\"main\"\n\t\t\tstyle=\"flex: 1\" \n\t\t\tcaret>\n\t\t\t${this.buttonInput ? '' : html`\n\t\t\t\t<div class=\"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\tclass=\"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, TreeDropdownOptions } 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\";\nimport { unsafeHTML } from \"lit-html/directives/unsafe-html.js\";\nimport { html as htmlUtils } from \"@omegagrid/core\";\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: TreeDropdownOptions = 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\tif (this.dynamicWidth) this.adjustWidth();\n\t\tdom.fixElementPosition(this.dropdown);\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\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<TreeDropdownOptions> = 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<TreeDropdownOptions>) {\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\tdom.setSize(this.tooltip, {w: this.button.offsetWidth});\n\t\t\t}\n\t\t\tthis.tooltip.content = this.getSelectionHtml();\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\tif (this.options?.textRenderer) {\n\t\t\treturn this.options.textRenderer(this.selectedItems);\n\t\t}\n\n\t\tconst items = this.getSelectionItems();\n\t\tconst caption = this.caption ? html`<div class=\"caption\">${this.caption}</div>` : null;\n\t\tconst placeholder = this.placeholder ? html`<div class=\"placeholder\">${this.placeholder}</div>` : null;\n\t\treturn items.length > 0 ? html`${caption ? html`${caption}:` : ``}${join(map(items, ([node, levels, red]) => html`\n\t\t\t<div class=\"itm\">\n\t\t\t\t${node && node.icon ? html`<og-icon .icon=\"${node.icon}\"></og-icon>` : null}\n\t\t\t\t${red \n\t\t\t\t\t? html`<div style=\"color:#ff0000\">${node.value}</div>` \n\t\t\t\t\t: html`<div>${node.value}</div>`\n\t\t\t\t}\n\t\t\t\t${levels.length > 0 \n\t\t\t\t\t? html`${map(levels, level => html`\n\t\t\t\t\t\t<og-icon class=\"lvl\" icon=\"circle-${level[0]}\">${level[0]}</og-icon>\n\t\t\t\t\t`)}` : ``\n\t\t\t\t}\n\t\t\t</div>\n\t\t`), html`<div class=\"sep\">,</div>`)}` : (caption \n\t\t\t? html`${caption}${placeholder ? html`: ${placeholder}` : ``}` \n\t\t\t: (placeholder ? html`${placeholder}` : html` `)\n\t\t);\n\t}\n\n\tgetSelectionHtml() {\n\t\tconst items = this.getSelectionItems();\n\t\tif (items.length === 0) null;\n\n\t\treturn html`${unsafeHTML(items.map(([node, levels, red]) => [\n\t\t\tnode && node.icon ? `<og-icon icon=\"${node.icon}\"></og-icon>` : ``,\n\t\t\tred \n\t\t\t\t? `<span style=\"color:#ff0000\">${node.value}</span>` \n\t\t\t\t: `<span>${node.value}</span>`,\n\t\t\tlevels.length > 0 \n\t\t\t\t? levels.map(level => `<og-icon class=\"lvl\" icon=\"circle-${level[0]}\">${level[0]}</og-icon>`).join('') \n\t\t\t\t: ``\n\t\t].join('')).join(', '))}`;\n\t}\n\n\tgetSelectionText() {\n\t\treturn this.getSelectionItems().map(([node, levels]) => htmlUtils.escapeHTML(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\tclass=\"main\"\n\t\t\tstyle=\"flex: 1\" \n\t\t\t.caret=\"${this.openDirection}\">\n\t\t\t${this.buttonInput ? '' : html`\n\t\t\t\t<div class=\"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\tclass=\"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/tree.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tree.d.ts","sourceRoot":"","sources":["../../src/ui/tree.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"tree.d.ts","sourceRoot":"","sources":["../../src/ui/tree.ts"],"names":[],"mappings":"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"}
|
package/dist/ui/tree.js
CHANGED
|
@@ -404,7 +404,7 @@ let Tree = class Tree extends LitElement {
|
|
|
404
404
|
if (term === this.currentFilter)
|
|
405
405
|
return;
|
|
406
406
|
this.currentFilter = term;
|
|
407
|
-
if (this.loading) {
|
|
407
|
+
if (this.loading || !this.firstUpdated) {
|
|
408
408
|
this.awaitFilter = true;
|
|
409
409
|
return;
|
|
410
410
|
}
|
|
@@ -427,6 +427,8 @@ let Tree = class Tree extends LitElement {
|
|
|
427
427
|
async clearFilter() {
|
|
428
428
|
if (this.searchBar?.searchInput)
|
|
429
429
|
this.searchBar.searchInput.value = '';
|
|
430
|
+
if (!this.firstUpdated)
|
|
431
|
+
return;
|
|
430
432
|
await this.filter();
|
|
431
433
|
}
|
|
432
434
|
};
|
package/dist/ui/tree.js.map
CHANGED
|
@@ -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\tasync refresh() {\n\t\tawait this.loadData({filter: this.currentFilter});\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 toolbar-levels\">\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\tasync refresh() {\n\t\tawait this.loadData({filter: this.currentFilter});\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 toolbar-levels\">\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 || !this.firstUpdated) {\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\tif (!this.firstUpdated) return;\n\t\tawait this.filter();\n\t}\n\n\n}"]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@omegagrid/tree",
|
|
3
|
-
"version": "0.9.
|
|
3
|
+
"version": "0.9.40",
|
|
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.9.
|
|
31
|
-
"@omegagrid/localize": "^0.9.
|
|
30
|
+
"@omegagrid/core": "^0.9.40",
|
|
31
|
+
"@omegagrid/localize": "^0.9.40",
|
|
32
32
|
"date-fns": "^3.2.0",
|
|
33
33
|
"lit": "^3.1.1",
|
|
34
34
|
"lit-html": "^3.1.1",
|