{"version":3,"file":"default-tree.element-vBLWWck7.js","sources":["../../../src/packages/core/tree/default/default-tree.element.ts"],"sourcesContent":["import type {\r\n\tUmbTreeItemModel,\r\n\tUmbTreeItemModelBase,\r\n\tUmbTreeRootModel,\r\n\tUmbTreeSelectionConfiguration,\r\n\tUmbTreeStartNode,\r\n} from '../types.js';\r\nimport type { UmbDefaultTreeContext } from './default-tree.context.js';\r\nimport { UMB_TREE_CONTEXT } from './default-tree.context-token.js';\r\nimport type { PropertyValueMap } from '@umbraco-cms/backoffice/external/lit';\r\nimport { html, nothing, customElement, property, state, repeat } from '@umbraco-cms/backoffice/external/lit';\r\nimport { UmbLitElement } from '@umbraco-cms/backoffice/lit-element';\r\n\r\n@customElement('umb-default-tree')\r\nexport class UmbDefaultTreeElement extends UmbLitElement {\r\n\tprivate _selectionConfiguration: UmbTreeSelectionConfiguration = {\r\n\t\tmultiple: false,\r\n\t\tselectable: true,\r\n\t\tselection: [],\r\n\t};\r\n\r\n\t@property({ type: Object, attribute: false })\r\n\tselectionConfiguration: UmbTreeSelectionConfiguration = this._selectionConfiguration;\r\n\r\n\t@property({ type: Boolean, attribute: false })\r\n\thideTreeItemActions: boolean = false;\r\n\r\n\t@property({ type: Boolean, attribute: false })\r\n\thideTreeRoot: boolean = false;\r\n\r\n\t@property({ type: Object, attribute: false })\r\n\tstartNode?: UmbTreeStartNode;\r\n\r\n\t@property({ type: Boolean, attribute: false })\r\n\tfoldersOnly?: boolean = false;\r\n\r\n\t@property({ attribute: false })\r\n\tselectableFilter: (item: UmbTreeItemModelBase) => boolean = () => true;\r\n\r\n\t@property({ attribute: false })\r\n\tfilter: (item: UmbTreeItemModelBase) => boolean = () => true;\r\n\r\n\t@state()\r\n\tprivate _rootItems: UmbTreeItemModel[] = [];\r\n\r\n\t@state()\r\n\tprivate _treeRoot?: UmbTreeRootModel;\r\n\r\n\t@state()\r\n\tprivate _currentPage = 1;\r\n\r\n\t@state()\r\n\tprivate _totalPages = 1;\r\n\r\n\t#treeContext?: UmbDefaultTreeContext;\r\n\t#init: Promise;\r\n\r\n\tconstructor() {\r\n\t\tsuper();\r\n\r\n\t\tthis.#init = Promise.all([\r\n\t\t\t// TODO: Notice this can be retrieve via a api property. [NL]\r\n\t\t\tthis.consumeContext(UMB_TREE_CONTEXT, (instance) => {\r\n\t\t\t\tthis.#treeContext = instance;\r\n\t\t\t\tthis.observe(this.#treeContext.treeRoot, (treeRoot) => (this._treeRoot = treeRoot));\r\n\t\t\t\tthis.observe(this.#treeContext.rootItems, (rootItems) => (this._rootItems = rootItems));\r\n\t\t\t\tthis.observe(this.#treeContext.pagination.currentPage, (value) => (this._currentPage = value));\r\n\t\t\t\tthis.observe(this.#treeContext.pagination.totalPages, (value) => (this._totalPages = value));\r\n\t\t\t}).asPromise(),\r\n\t\t]);\r\n\t}\r\n\r\n\tprotected override async updated(\r\n\t\t_changedProperties: PropertyValueMap | Map,\r\n\t): Promise {\r\n\t\tsuper.updated(_changedProperties);\r\n\t\tawait this.#init;\r\n\r\n\t\tif (_changedProperties.has('selectionConfiguration')) {\r\n\t\t\tthis._selectionConfiguration = this.selectionConfiguration;\r\n\r\n\t\t\tthis.#treeContext!.selection.setMultiple(this._selectionConfiguration.multiple ?? false);\r\n\t\t\tthis.#treeContext!.selection.setSelectable(this._selectionConfiguration.selectable ?? true);\r\n\t\t\tthis.#treeContext!.selection.setSelection(this._selectionConfiguration.selection ?? []);\r\n\t\t}\r\n\r\n\t\tif (_changedProperties.has('startNode')) {\r\n\t\t\tthis.#treeContext!.setStartNode(this.startNode);\r\n\t\t}\r\n\r\n\t\tif (_changedProperties.has('hideTreeRoot')) {\r\n\t\t\tthis.#treeContext!.setHideTreeRoot(this.hideTreeRoot);\r\n\t\t}\r\n\r\n\t\tif (_changedProperties.has('foldersOnly')) {\r\n\t\t\tthis.#treeContext!.setFoldersOnly(this.foldersOnly ?? false);\r\n\t\t}\r\n\r\n\t\tif (_changedProperties.has('selectableFilter')) {\r\n\t\t\tthis.#treeContext!.selectableFilter = this.selectableFilter;\r\n\t\t}\r\n\r\n\t\tif (_changedProperties.has('filter')) {\r\n\t\t\tthis.#treeContext!.filter = this.filter;\r\n\t\t}\r\n\t}\r\n\r\n\tgetSelection() {\r\n\t\treturn this.#treeContext?.selection.getSelection();\r\n\t}\r\n\r\n\toverride render() {\r\n\t\treturn html` ${this.#renderTreeRoot()} ${this.#renderRootItems()}`;\r\n\t}\r\n\r\n\t#renderTreeRoot() {\r\n\t\tif (this.hideTreeRoot || this._treeRoot === undefined) return nothing;\r\n\t\treturn html`\r\n\t\t\t\r\n\t\t`;\r\n\t}\r\n\r\n\t#renderRootItems() {\r\n\t\t// only show the root items directly if the tree root is hidden\r\n\t\tif (this.hideTreeRoot === true) {\r\n\t\t\treturn html`\r\n\t\t\t\t${repeat(\r\n\t\t\t\t\tthis._rootItems,\r\n\t\t\t\t\t(item, index) => item.name + '___' + index,\r\n\t\t\t\t\t(item) =>\r\n\t\t\t\t\t\thtml``,\r\n\t\t\t\t)}\r\n\t\t\t\t${this.#renderPaging()}\r\n\t\t\t`;\r\n\t\t} else {\r\n\t\t\treturn nothing;\r\n\t\t}\r\n\t}\r\n\r\n\t#onLoadMoreClick = (event: any) => {\r\n\t\tevent.stopPropagation();\r\n\t\tconst next = (this._currentPage = this._currentPage + 1);\r\n\t\tthis.#treeContext?.pagination.setCurrentPageNumber(next);\r\n\t};\r\n\r\n\t#renderPaging() {\r\n\t\tif (this._totalPages <= 1 || this._currentPage === this._totalPages) {\r\n\t\t\treturn nothing;\r\n\t\t}\r\n\r\n\t\treturn html` `;\r\n\t}\r\n}\r\n\r\nexport default UmbDefaultTreeElement;\r\n\r\ndeclare global {\r\n\tinterface HTMLElementTagNameMap {\r\n\t\t'umb-default-tree': UmbDefaultTreeElement;\r\n\t}\r\n}\r\n"],"names":["_treeContext","_init","_UmbDefaultTreeElement_instances","renderTreeRoot_fn","renderRootItems_fn","_onLoadMoreClick","renderPaging_fn","UmbDefaultTreeElement","UmbLitElement","__privateAdd","event","next","__privateGet","__privateSet","UMB_TREE_CONTEXT","instance","treeRoot","rootItems","value","_changedProperties","html","__privateMethod","nothing","repeat","item","index","__decorateClass","property","state","customElement","UmbDefaultTreeElement$1"],"mappings":"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"}