@omegagrid/tree 0.10.2 → 0.10.4

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.
Files changed (85) hide show
  1. package/dist/adapters/dateAdapter.d.ts +35 -0
  2. package/dist/adapters/dateAdapter.d.ts.map +1 -0
  3. package/dist/adapters/dateAdapter.js +222 -0
  4. package/dist/adapters/dateAdapter.js.map +1 -0
  5. package/dist/adapters/index.d.ts +2 -0
  6. package/dist/adapters/index.d.ts.map +1 -0
  7. package/dist/adapters/index.js +2 -0
  8. package/dist/adapters/index.js.map +1 -0
  9. package/dist/constants.d.ts +53 -0
  10. package/dist/constants.d.ts.map +1 -0
  11. package/dist/constants.js +11 -0
  12. package/dist/constants.js.map +1 -0
  13. package/dist/index.d.ts +6 -0
  14. package/dist/index.d.ts.map +1 -0
  15. package/dist/index.js +5 -0
  16. package/dist/index.js.map +1 -0
  17. package/dist/model/filterModel.d.ts +17 -0
  18. package/dist/model/filterModel.d.ts.map +1 -0
  19. package/dist/model/filterModel.js +60 -0
  20. package/dist/model/filterModel.js.map +1 -0
  21. package/dist/model/index.d.ts +5 -0
  22. package/dist/model/index.d.ts.map +1 -0
  23. package/dist/model/index.js +5 -0
  24. package/dist/model/index.js.map +1 -0
  25. package/dist/model/nodeModel.d.ts +100 -0
  26. package/dist/model/nodeModel.d.ts.map +1 -0
  27. package/dist/model/nodeModel.js +59 -0
  28. package/dist/model/nodeModel.js.map +1 -0
  29. package/dist/model/selectionModel.d.ts +39 -0
  30. package/dist/model/selectionModel.d.ts.map +1 -0
  31. package/dist/model/selectionModel.js +199 -0
  32. package/dist/model/selectionModel.js.map +1 -0
  33. package/dist/model/treeAdapter.d.ts +10 -0
  34. package/dist/model/treeAdapter.d.ts.map +1 -0
  35. package/dist/model/treeAdapter.js +10 -0
  36. package/dist/model/treeAdapter.js.map +1 -0
  37. package/dist/model/treeModel.d.ts +27 -0
  38. package/dist/model/treeModel.d.ts.map +1 -0
  39. package/dist/model/treeModel.js +97 -0
  40. package/dist/model/treeModel.js.map +1 -0
  41. package/dist/options.d.ts +35 -0
  42. package/dist/options.d.ts.map +1 -0
  43. package/dist/options.js +30 -0
  44. package/dist/options.js.map +1 -0
  45. package/dist/types.d.ts +42 -0
  46. package/dist/types.d.ts.map +1 -0
  47. package/dist/types.js +15 -0
  48. package/dist/types.js.map +1 -0
  49. package/dist/ui/dropdown.d.ts +68 -0
  50. package/dist/ui/dropdown.d.ts.map +1 -0
  51. package/dist/ui/dropdown.js +383 -0
  52. package/dist/ui/dropdown.js.map +1 -0
  53. package/dist/ui/dropdown.style.d.ts +2 -0
  54. package/dist/ui/dropdown.style.d.ts.map +1 -0
  55. package/dist/ui/dropdown.style.js +68 -0
  56. package/dist/ui/dropdown.style.js.map +1 -0
  57. package/dist/ui/index.d.ts +6 -0
  58. package/dist/ui/index.d.ts.map +1 -0
  59. package/dist/ui/index.js +6 -0
  60. package/dist/ui/index.js.map +1 -0
  61. package/dist/ui/levels.d.ts +13 -0
  62. package/dist/ui/levels.d.ts.map +1 -0
  63. package/dist/ui/levels.js +64 -0
  64. package/dist/ui/levels.js.map +1 -0
  65. package/dist/ui/menu.d.ts +14 -0
  66. package/dist/ui/menu.d.ts.map +1 -0
  67. package/dist/ui/menu.js +89 -0
  68. package/dist/ui/menu.js.map +1 -0
  69. package/dist/ui/search.d.ts +18 -0
  70. package/dist/ui/search.d.ts.map +1 -0
  71. package/dist/ui/search.js +92 -0
  72. package/dist/ui/search.js.map +1 -0
  73. package/dist/ui/tree.d.ts +86 -0
  74. package/dist/ui/tree.d.ts.map +1 -0
  75. package/dist/ui/tree.js +482 -0
  76. package/dist/ui/tree.js.map +1 -0
  77. package/dist/ui/tree.renderer.d.ts +7 -0
  78. package/dist/ui/tree.renderer.d.ts.map +1 -0
  79. package/dist/ui/tree.renderer.js +114 -0
  80. package/dist/ui/tree.renderer.js.map +1 -0
  81. package/dist/ui/tree.style.d.ts +3 -0
  82. package/dist/ui/tree.style.d.ts.map +1 -0
  83. package/dist/ui/tree.style.js +147 -0
  84. package/dist/ui/tree.style.js.map +1 -0
  85. package/package.json +3 -3
@@ -0,0 +1,114 @@
1
+ import { html, render } from "lit";
2
+ import { styleMap } from "lit/directives/style-map.js";
3
+ import { classMap } from "lit/directives/class-map.js";
4
+ import { SelectMode } from "../types";
5
+ import { dom, utils } from "@omegagrid/core";
6
+ import { NodeSelectionStatus } from "../model/selectionModel";
7
+ import { tree } from "@omegagrid/core";
8
+ import { msg } from "@omegagrid/localize";
9
+ const expanderStyle = styleMap({
10
+ display: 'block',
11
+ position: 'relative',
12
+ top: '5px',
13
+ left: '4px'
14
+ });
15
+ const checkboxPropertyMap = {
16
+ [NodeSelectionStatus.Checked]: {
17
+ value: 'checked',
18
+ color: null
19
+ },
20
+ [NodeSelectionStatus.CheckedByParent]: {
21
+ value: 'checked',
22
+ color: '#555555'
23
+ },
24
+ [NodeSelectionStatus.None]: {
25
+ value: 'none',
26
+ color: null
27
+ },
28
+ [NodeSelectionStatus.Unchecked]: {
29
+ value: 'unchecked',
30
+ color: '#ff0000'
31
+ }
32
+ };
33
+ export const createItemRenderer = (treeComponent) => (div, index, opts) => {
34
+ const item = treeComponent.model.visibleNodes[index];
35
+ if (item.placeholder)
36
+ return renderPlaceholder(div, item);
37
+ const node = item;
38
+ const selectionStatus = treeComponent.selection.getSelectionStatus(node);
39
+ const options = treeComponent.options;
40
+ const folderOptions = node.hasChildren ? (node.folder || options.folderOptions) : null;
41
+ const folderIcon = folderOptions ? html `
42
+ <og-icon .icon="${node.collapsed ? folderOptions.closedIcon : folderOptions.openIcon}"></og-icon>
43
+ ` : null;
44
+ div.dataset.node = node.index.toString();
45
+ div.classList.toggle('filtered', node.filterState != tree.FilterState.Matched);
46
+ const txtDiv = dom.createElement('div', { className: 'txt' });
47
+ txtDiv.style.textOverflow = opts && opts.measure ? 'clip' : 'ellipsis';
48
+ if (node.icon)
49
+ txtDiv.appendChild(dom.createElement('og-icon', { icon: node.icon, fixedWidth: true }));
50
+ if (node.renderer) {
51
+ const result = node.renderer(txtDiv, node);
52
+ if (utils.isString(result)) {
53
+ txtDiv.insertAdjacentHTML('beforeend', result);
54
+ }
55
+ else if (result) {
56
+ render(result, txtDiv);
57
+ }
58
+ }
59
+ else if (node.htmlValue)
60
+ txtDiv.insertAdjacentHTML('beforeend', node.htmlValue);
61
+ else
62
+ txtDiv.appendChild(document.createTextNode(node.value));
63
+ if (options.afterRenderer)
64
+ options.afterRenderer(div, node);
65
+ return html `
66
+ <div class="ind" style="min-width: ${node.level * options.levelIndent}px"></div>
67
+
68
+ ${options.expanders && (treeComponent.model.maxLevel > 0 || node.hasChildren) ? html `
69
+ <div class="exp" style="line-height: ${treeComponent.itemHeight}px">
70
+ ${node.hasChildren ? html `
71
+ <og-expander
72
+ state="${node.collapsed ? 'closed' : (node.isLoaded || node.isPartialyLoaded ? 'open' : 'waiting')}"
73
+ style="${expanderStyle}">
74
+ </og-expander>
75
+ ` : ''}
76
+ </div>
77
+ ` : ``}
78
+
79
+ ${options.selectMode != SelectMode.None && options.checkboxes && (node.checkbox ?? true) ? html `
80
+ <div class="chck">
81
+ <og-checkbox
82
+ .value="${checkboxPropertyMap[selectionStatus].value}"
83
+ .color="${checkboxPropertyMap[selectionStatus].color}">
84
+ </og-checkbox>
85
+ </div>
86
+ ` : ``}
87
+
88
+ ${folderIcon ? html `<div class="dir">${folderIcon}</div>` : ``}
89
+
90
+ ${txtDiv}
91
+
92
+ ${node.subLevels > 0 && (treeComponent.options.selectMode == SelectMode.Multiple || treeComponent.options.selectMode == SelectMode.MultipleLevels) ? html `
93
+ <div class="lvl ${classMap({ hideable: !treeComponent.options.levelsAlwaysVisible })}">
94
+ <og-tree-levels
95
+ count="${node.subLevels}"
96
+ .selection="${treeComponent.selection.getLevelSelection(node)}">
97
+ </og-tree-levels>
98
+ </div>
99
+ ` : ``}
100
+ `;
101
+ };
102
+ export const renderPlaceholder = (div, placeholder) => {
103
+ const node = placeholder.parent;
104
+ const options = node.model.options;
105
+ placeholder.element = div;
106
+ return html `
107
+ <div
108
+ class="placeholder"
109
+ style="${styleMap({ paddingLeft: `${(node.level + 1) * options.levelIndent + 5}px` })}">
110
+ <og-icon icon="download"></og-icon>${msg('load more')}
111
+ </div>
112
+ `;
113
+ };
114
+ //# sourceMappingURL=tree.renderer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tree.renderer.js","sourceRoot":"","sources":["../../src/ui/tree.renderer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAkB,IAAI,EAAE,MAAM,EAAE,MAAM,KAAK,CAAC;AACnD,OAAO,EAAE,QAAQ,EAAE,MAAM,6BAA6B,CAAC;AACvD,OAAO,EAAE,QAAQ,EAAE,MAAM,6BAA6B,CAAC;AACvD,OAAO,EAAmB,UAAU,EAAE,MAAM,UAAU,CAAC;AAEvD,OAAO,EAAgD,GAAG,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAC;AAC3F,OAAO,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAC9D,OAAO,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAC;AAEvC,OAAO,EAAE,GAAG,EAAE,MAAM,qBAAqB,CAAC;AAE1C,MAAM,aAAa,GAAG,QAAQ,CAAC;IAC9B,OAAO,EAAE,OAAO;IAChB,QAAQ,EAAE,UAAU;IACpB,GAAG,EAAE,KAAK;IACV,IAAI,EAAE,KAAK;CACX,CAAC,CAAC;AAEH,MAAM,mBAAmB,GAGpB;IACJ,CAAC,mBAAmB,CAAC,OAAO,CAAC,EAAE;QAC9B,KAAK,EAAE,SAAS;QAChB,KAAK,EAAE,IAAI;KACX;IACD,CAAC,mBAAmB,CAAC,eAAe,CAAC,EAAE;QACtC,KAAK,EAAE,SAAS;QAChB,KAAK,EAAE,SAAS;KAChB;IACD,CAAC,mBAAmB,CAAC,IAAI,CAAC,EAAE;QAC3B,KAAK,EAAE,MAAM;QACb,KAAK,EAAE,IAAI;KACX;IACD,CAAC,mBAAmB,CAAC,SAAS,CAAC,EAAE;QAChC,KAAK,EAAE,WAAW;QAClB,KAAK,EAAE,SAAS;KAChB;CACD,CAAC;AAEF,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,aAAmB,EAAE,EAAE,CAAC,CAAC,GAAmB,EAAE,KAAa,EAAE,IAA8B,EAAE,EAAE;IACjI,MAAM,IAAI,GAAG,aAAa,CAAC,KAAK,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;IACrD,IAAK,IAAwB,CAAC,WAAW;QAAE,OAAO,iBAAiB,CAAC,GAAG,EAAE,IAAuB,CAAC,CAAC;IAElG,MAAM,IAAI,GAAG,IAAiB,CAAC;IAC/B,MAAM,eAAe,GAAG,aAAa,CAAC,SAAS,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC;IACzE,MAAM,OAAO,GAAG,aAAa,CAAC,OAAO,CAAC;IACtC,MAAM,aAAa,GAAG,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,IAAI,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IACvF,MAAM,UAAU,GAAG,aAAa,CAAC,CAAC,CAAC,IAAI,CAAA;oBACpB,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC,CAAC,aAAa,CAAC,QAAQ;EACpF,CAAC,CAAC,CAAC,IAAI,CAAC;IAET,GAAG,CAAC,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC;IACzC,GAAG,CAAC,SAAS,CAAC,MAAM,CAAC,UAAU,EAAE,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;IAE/E,MAAM,MAAM,GAAG,GAAG,CAAC,aAAa,CAAiB,KAAK,EAAE,EAAC,SAAS,EAAE,KAAK,EAAC,CAAC,CAAC;IAC5E,MAAM,CAAC,KAAK,CAAC,YAAY,GAAG,IAAI,IAAI,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,UAAU,CAAC;IACvE,IAAI,IAAI,CAAC,IAAI;QAAE,MAAM,CAAC,WAAW,CAAC,GAAG,CAAC,aAAa,CAAO,SAAS,EAAE,EAAC,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,UAAU,EAAE,IAAI,EAAC,CAAC,CAAC,CAAC;IAC3G,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;QACnB,MAAM,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;QAC3C,IAAI,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;YAC5B,MAAM,CAAC,kBAAkB,CAAC,WAAW,EAAE,MAAgB,CAAC,CAAC;QAC1D,CAAC;aAAM,IAAI,MAAM,EAAE,CAAC;YACnB,MAAM,CAAC,MAA2B,EAAE,MAAM,CAAC,CAAC;QAC7C,CAAC;IACF,CAAC;SACI,IAAI,IAAI,CAAC,SAAS;QAAE,MAAM,CAAC,kBAAkB,CAAC,WAAW,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;;QAC3E,MAAM,CAAC,WAAW,CAAC,QAAQ,CAAC,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;IAE7D,IAAI,OAAO,CAAC,aAAa;QAAE,OAAO,CAAC,aAAa,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;IAC5D,OAAO,IAAI,CAAA;uCAC2B,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC,WAAW;;IAEnE,OAAO,CAAC,SAAS,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,QAAQ,GAAG,CAAC,IAAI,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,IAAI,CAAA;0CAC5C,aAAa,CAAC,UAAU;MAC5D,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAA;;eAEd,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC;eACzF,aAAa;;KAEvB,CAAC,CAAC,CAAC,EAAE;;GAEP,CAAC,CAAC,CAAC,EAAE;;IAEJ,OAAO,CAAC,UAAU,IAAI,UAAU,CAAC,IAAI,IAAI,OAAO,CAAC,UAAU,IAAI,CAAC,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAA;;;eAGlF,mBAAmB,CAAC,eAAe,CAAC,CAAC,KAAK;eAC1C,mBAAmB,CAAC,eAAe,CAAC,CAAC,KAAK;;;GAGtD,CAAC,CAAC,CAAC,EAAE;;IAEJ,UAAU,CAAC,CAAC,CAAC,IAAI,CAAA,oBAAoB,UAAU,QAAQ,CAAA,CAAC,CAAC,EAAE;;IAE3D,MAAM;;IAEN,IAAI,CAAC,SAAS,GAAG,CAAC,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,UAAU,IAAI,UAAU,CAAC,QAAQ,IAAI,aAAa,CAAC,OAAO,CAAC,UAAU,IAAI,UAAU,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,IAAI,CAAA;qBACtI,QAAQ,CAAC,EAAC,QAAQ,EAAE,CAAC,aAAa,CAAC,OAAO,CAAC,mBAAmB,EAAC,CAAC;;cAEvE,IAAI,CAAC,SAAS;mBACT,aAAa,CAAC,SAAS,CAAC,iBAAiB,CAAC,IAAI,CAAC;;;GAG/D,CAAC,CAAC,CAAC,EAAE;EACN,CAAC;AACH,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,GAAmB,EAAE,WAA4B,EAAE,EAAE;IACtF,MAAM,IAAI,GAAG,WAAW,CAAC,MAAM,CAAC;IAChC,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC;IACnC,WAAW,CAAC,OAAO,GAAG,GAAG,CAAC;IAC1B,OAAO,IAAI,CAAA;;;YAGA,QAAQ,CAAC,EAAC,WAAW,EAAE,GAAG,CAAC,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,GAAG,OAAO,CAAC,WAAW,GAAG,CAAC,IAAI,EAAC,CAAC;wCAC9C,GAAG,CAAC,WAAW,CAAC;;EAEtD,CAAC;AACH,CAAC,CAAC","sourcesContent":["import { TemplateResult, html, render } from \"lit\";\nimport { styleMap } from \"lit/directives/style-map.js\";\nimport { classMap } from \"lit/directives/class-map.js\";\nimport { NodePlaceholder, SelectMode } from \"../types\";\nimport { Tree } from \"./tree\";\nimport { CheckboxState, Icon, ListItemRendererOptions, dom, utils } from \"@omegagrid/core\";\nimport { NodeSelectionStatus } from \"../model/selectionModel\";\nimport { tree } from \"@omegagrid/core\";\nimport { NodeModel } from \"../model\";\nimport { msg } from \"@omegagrid/localize\";\n\nconst expanderStyle = styleMap({\n\tdisplay: 'block',\n\tposition: 'relative',\n\ttop: '5px',\n\tleft: '4px'\n});\n\nconst checkboxPropertyMap: Record<NodeSelectionStatus, {\n\tvalue: CheckboxState,\n\tcolor: string|null\n}> = {\n\t[NodeSelectionStatus.Checked]: {\n\t\tvalue: 'checked',\n\t\tcolor: null\n\t},\n\t[NodeSelectionStatus.CheckedByParent]: {\n\t\tvalue: 'checked',\n\t\tcolor: '#555555'\n\t},\n\t[NodeSelectionStatus.None]: {\n\t\tvalue: 'none',\n\t\tcolor: null\n\t},\n\t[NodeSelectionStatus.Unchecked]: {\n\t\tvalue: 'unchecked',\n\t\tcolor: '#ff0000'\n\t}\n};\n\nexport const createItemRenderer = (treeComponent: Tree) => (div: HTMLDivElement, index: number, opts?: ListItemRendererOptions) => {\n\tconst item = treeComponent.model.visibleNodes[index];\n\tif ((item as NodePlaceholder).placeholder) return renderPlaceholder(div, item as NodePlaceholder);\n\n\tconst node = item as NodeModel;\n\tconst selectionStatus = treeComponent.selection.getSelectionStatus(node);\n\tconst options = treeComponent.options;\n\tconst folderOptions = node.hasChildren ? (node.folder || options.folderOptions) : null;\n\tconst folderIcon = folderOptions ? html`\n\t\t<og-icon .icon=\"${node.collapsed ? folderOptions.closedIcon : folderOptions.openIcon}\"></og-icon>\n\t` : null;\n\n\tdiv.dataset.node = node.index.toString();\n\tdiv.classList.toggle('filtered', node.filterState != tree.FilterState.Matched);\n\n\tconst txtDiv = dom.createElement<HTMLDivElement>('div', {className: 'txt'});\n\ttxtDiv.style.textOverflow = opts && opts.measure ? 'clip' : 'ellipsis';\n\tif (node.icon) txtDiv.appendChild(dom.createElement<Icon>('og-icon', {icon: node.icon, fixedWidth: true}));\n\tif (node.renderer) {\n\t\tconst result = node.renderer(txtDiv, node);\n\t\tif (utils.isString(result)) {\n\t\t\ttxtDiv.insertAdjacentHTML('beforeend', result as string);\n\t\t} else if (result) {\n\t\t\trender(result as TemplateResult<1>, txtDiv);\n\t\t}\n\t}\n\telse if (node.htmlValue) txtDiv.insertAdjacentHTML('beforeend', node.htmlValue);\n\telse txtDiv.appendChild(document.createTextNode(node.value));\n\t\n\tif (options.afterRenderer) options.afterRenderer(div, node);\n\treturn html`\n\t\t<div class=\"ind\" style=\"min-width: ${node.level * options.levelIndent}px\"></div>\n\t\t\n\t\t${options.expanders && (treeComponent.model.maxLevel > 0 || node.hasChildren) ? html`\n\t\t\t<div class=\"exp\" style=\"line-height: ${treeComponent.itemHeight}px\">\n\t\t\t\t${node.hasChildren ? html`\n\t\t\t\t\t<og-expander \n\t\t\t\t\t\tstate=\"${node.collapsed ? 'closed' : (node.isLoaded || node.isPartialyLoaded ? 'open' : 'waiting')}\" \n\t\t\t\t\t\tstyle=\"${expanderStyle}\">\n\t\t\t\t\t</og-expander>\n\t\t\t\t` : ''}\n\t\t\t</div>\n\t\t` : ``}\n\n\t\t${options.selectMode != SelectMode.None && options.checkboxes && (node.checkbox ?? true) ? html`\n\t\t\t<div class=\"chck\">\n\t\t\t\t<og-checkbox\n\t\t\t\t\t.value=\"${checkboxPropertyMap[selectionStatus].value}\"\n\t\t\t\t\t.color=\"${checkboxPropertyMap[selectionStatus].color}\">\n\t\t\t\t</og-checkbox>\n\t\t\t</div>\n\t\t` : ``}\n\t\t\n\t\t${folderIcon ? html`<div class=\"dir\">${folderIcon}</div>`: ``}\n\n\t\t${txtDiv}\n\n\t\t${node.subLevels > 0 && (treeComponent.options.selectMode == SelectMode.Multiple || treeComponent.options.selectMode == SelectMode.MultipleLevels) ? html`\n\t\t\t<div class=\"lvl ${classMap({hideable: !treeComponent.options.levelsAlwaysVisible})}\">\n\t\t\t\t<og-tree-levels \n\t\t\t\t\tcount=\"${node.subLevels}\"\n\t\t\t\t\t.selection=\"${treeComponent.selection.getLevelSelection(node)}\">\n\t\t\t\t</og-tree-levels>\n\t\t\t</div>\n\t\t` : ``}\n\t`;\n};\n\nexport const renderPlaceholder = (div: HTMLDivElement, placeholder: NodePlaceholder) => {\n\tconst node = placeholder.parent;\n\tconst options = node.model.options;\n\tplaceholder.element = div;\n\treturn html`\n\t\t<div \n\t\t\tclass=\"placeholder\"\n\t\t\tstyle=\"${styleMap({paddingLeft: `${(node.level + 1) * options.levelIndent + 5}px`})}\">\n\t\t\t<og-icon icon=\"download\"></og-icon>${msg('load more')}\n\t\t</div>\n\t`;\n};"]}
@@ -0,0 +1,3 @@
1
+ export declare const style: import("lit").CSSResult;
2
+ export declare const itemStyle: import("lit").CSSResult;
3
+ //# sourceMappingURL=tree.style.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tree.style.d.ts","sourceRoot":"","sources":["../../src/ui/tree.style.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,KAAK,yBAiDjB,CAAC;AAEF,eAAO,MAAM,SAAS,yBA6FrB,CAAC"}
@@ -0,0 +1,147 @@
1
+ import { css } from 'lit';
2
+ import constants from '../constants';
3
+ export const style = css `
4
+ :host {
5
+ font-size: var(--og-font-size);
6
+ font-family: var(--og-font-family);
7
+ position: relative;
8
+ width: 100%;
9
+ display: flex;
10
+ flex-direction: column;
11
+ user-select: none;
12
+ outline: none;
13
+ }
14
+
15
+ og-alert {
16
+ border-radius: 0;
17
+ border-width: 0;
18
+ }
19
+
20
+ og-list {
21
+ width: 100%;
22
+ height: 100%;
23
+ flex: 1;
24
+ }
25
+
26
+ .toolbar {
27
+ flex: 0;
28
+ }
29
+
30
+ .toolbar-levels {
31
+ min-height: 18px;
32
+ margin: 2px 2px 0 2px;
33
+ }
34
+
35
+ .toolbar-levels > * {
36
+ height: 18px;
37
+ line-height: 18px;
38
+ }
39
+
40
+ .toolbar-search {
41
+ margin: 0;
42
+ border-bottom: 1px solid var(--og-border-color);
43
+ }
44
+
45
+ .toolbar-search og-tree-search {
46
+ min-height: 22px;
47
+ }
48
+
49
+ .main {
50
+ flex: 1;
51
+ }
52
+ `;
53
+ export const itemStyle = css `
54
+ .item {
55
+ display: flex;
56
+ position: relative;
57
+ white-space: nowrap;
58
+ }
59
+
60
+ .item.drag {
61
+ border-bottom: 2px solid var(--og-text-color);
62
+ }
63
+
64
+ .item > div {
65
+ flex: 0;
66
+ margin-left: 2px;
67
+ }
68
+
69
+ .item.filtered {
70
+ opacity: 0.5;
71
+ }
72
+
73
+ .item div.exp {
74
+ min-width: 20px;
75
+ position: relative;
76
+ }
77
+
78
+ .item div.chck {
79
+ min-width: 20px;
80
+ padding-left: 2px;
81
+ }
82
+
83
+ .item div.chck og-checkbox {
84
+ display: block;
85
+ margin-top: 3px;
86
+ }
87
+
88
+ .item div.dir {
89
+ text-align: left;
90
+ min-width: 20px;
91
+ padding-left: 2px;
92
+ }
93
+
94
+ .item div.dir og-icon {
95
+ height: 100%;
96
+ }
97
+
98
+ .item div.dir img {
99
+ height: 18px;
100
+ margin-top: 2px;
101
+ }
102
+
103
+ .item div.txt {
104
+ display: flex;
105
+ flex-direction: row;
106
+ flex: 1;
107
+ overflow: hidden;
108
+ text-overflow: ellipsis;
109
+ }
110
+
111
+ .item div.txt og-icon {
112
+ min-width: 20px;
113
+ margin-left: 2px;
114
+ display: flex;
115
+ height: 100%;
116
+ }
117
+
118
+ .item div.lvl {
119
+ vertical-align: middle;
120
+ line-height: 18px;
121
+ margin-right: ${constants.SLIDER_SIZE}px;
122
+ }
123
+
124
+ .item div.lvl {
125
+ display: flex;
126
+ vertical-align: middle;
127
+ line-height: 18px;
128
+ padding-top: 2px;
129
+ }
130
+
131
+ .item div.lvl og-tree-levels {
132
+ height: 18px;
133
+ }
134
+
135
+ .item div.lvl.hideable {
136
+ display: none;
137
+ }
138
+
139
+ .item:hover div.lvl.hideable {
140
+ display: flex;
141
+ }
142
+
143
+ .item:hover div.lvl {
144
+ display: flex;
145
+ }
146
+ `;
147
+ //# sourceMappingURL=tree.style.js.map
@@ -0,0 +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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAiDvB,CAAC;AAEF,MAAM,CAAC,MAAM,SAAS,GAAG,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBAoEV,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-alert {\n\t\tborder-radius: 0;\n\t\tborder-width: 0;\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}\n\n\t.toolbar-levels {\n\t\tmin-height: 18px;\n\t\tmargin: 2px 2px 0 2px;\n\t}\n\n\t.toolbar-levels > * {\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-border-color);\n\t}\n\n\t.toolbar-search og-tree-search {\n\t\tmin-height: 22px;\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.chck og-checkbox {\n\t\tdisplay: block;\n\t\tmargin-top: 3px;\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 og-icon {\n\t\theight: 100%;\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\tdisplay: flex;\n\t\tflex-direction: row;\n\t\tflex: 1;\n\t\toverflow: hidden;\n\t\ttext-overflow: ellipsis;\n\t}\n\n\t.item div.txt og-icon {\n\t\tmin-width: 20px;\n\t\tmargin-left: 2px;\n\t\tdisplay: flex;\n\t\theight: 100%;\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\n\t.item:hover div.lvl {\n\t\tdisplay: flex;\n\t}\n`;\n"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@omegagrid/tree",
3
- "version": "0.10.2",
3
+ "version": "0.10.4",
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.10.2",
31
- "@omegagrid/localize": "^0.10.2",
30
+ "@omegagrid/core": "^0.10.4",
31
+ "@omegagrid/localize": "^0.10.4",
32
32
  "date-fns": "^3.2.0",
33
33
  "lit": "^3.1.1",
34
34
  "lit-html": "^3.1.1",