@omegagrid/tree 0.10.57 → 0.10.58

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.
@@ -57,7 +57,7 @@ export const createItemRenderer = (treeComponent) => (div, index, opts) => {
57
57
  }
58
58
  }
59
59
  else if (node.htmlValue)
60
- txtDiv.insertAdjacentHTML('beforeend', node.htmlValue);
60
+ txtDiv.insertAdjacentHTML('beforeend', `<div>${node.htmlValue}</div>`);
61
61
  else
62
62
  txtDiv.appendChild(document.createTextNode(node.value));
63
63
  if (options.afterRenderer)
@@ -1 +1 @@
1
- {"version":3,"file":"tree.renderer.js","sourceRoot":"","sources":["../../src/ui/tree.renderer.ts"],"names":[],"mappings":"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","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};"]}
1
+ {"version":3,"file":"tree.renderer.js","sourceRoot":"","sources":["../../src/ui/tree.renderer.ts"],"names":[],"mappings":"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","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', `<div>${node.htmlValue}</div>`);\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};"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@omegagrid/tree",
3
- "version": "0.10.57",
3
+ "version": "0.10.58",
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.57",
31
- "@omegagrid/localize": "^0.10.57",
30
+ "@omegagrid/core": "^0.10.58",
31
+ "@omegagrid/localize": "^0.10.58",
32
32
  "date-fns": "^3.2.0",
33
33
  "lit": "^3.1.1",
34
34
  "lit-html": "^3.1.1",