{"version":3,"file":"tree-item-element-base-Dhz0yUOc.js","sources":["../../../src/packages/core/tree/entity-actions/reload-tree-item-children/reload-tree-item-children-request.event.ts","../../../src/packages/core/tree/tree-item/tree-item-base/tree-item-context-base.ts","../../../src/packages/core/tree/tree-item/tree-item-base/tree-item-element-base.ts"],"sourcesContent":["import { UmbEntityActionEvent, type UmbEntityActionEventArgs } from '@umbraco-cms/backoffice/entity-action';\r\n\r\n/**\r\n * @deprecated Use `UmbRequestReloadChildrenOfEntityEvent` instead.\r\n */\r\nexport class UmbRequestReloadTreeItemChildrenEvent extends UmbEntityActionEvent {\r\n\tstatic readonly TYPE = 'request-reload-tree-item-children';\r\n\r\n\tconstructor(args: UmbEntityActionEventArgs) {\r\n\t\tsuper(UmbRequestReloadTreeItemChildrenEvent.TYPE, args);\r\n\t}\r\n}\r\n","import type { UmbTreeItemContext } from '../tree-item-context.interface.js';\r\nimport { UMB_TREE_CONTEXT, type UmbDefaultTreeContext } from '../../default/index.js';\r\nimport type { UmbTreeItemModel, UmbTreeRootModel } from '../../types.js';\r\nimport { UmbRequestReloadTreeItemChildrenEvent } from '../../entity-actions/reload-tree-item-children/index.js';\r\nimport type { ManifestTreeItem } from '../../extensions/types.js';\r\nimport { map } from '@umbraco-cms/backoffice/external/rxjs';\r\nimport { UmbArrayState, UmbBooleanState, UmbObjectState, UmbStringState } from '@umbraco-cms/backoffice/observable-api';\r\nimport type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api';\r\nimport { UmbContextBase } from '@umbraco-cms/backoffice/class-api';\r\nimport { UmbContextToken } from '@umbraco-cms/backoffice/context-api';\r\nimport { UMB_SECTION_CONTEXT, UMB_SECTION_SIDEBAR_CONTEXT } from '@umbraco-cms/backoffice/section';\r\nimport { umbExtensionsRegistry } from '@umbraco-cms/backoffice/extension-registry';\r\nimport { UMB_ACTION_EVENT_CONTEXT } from '@umbraco-cms/backoffice/action';\r\nimport {\r\n\tUmbRequestReloadChildrenOfEntityEvent,\r\n\tUmbRequestReloadStructureForEntityEvent,\r\n} from '@umbraco-cms/backoffice/entity-action';\r\nimport type { UmbEntityActionEvent } from '@umbraco-cms/backoffice/entity-action';\r\nimport { UmbPaginationManager, debounce } from '@umbraco-cms/backoffice/utils';\r\nimport { UmbChangeEvent } from '@umbraco-cms/backoffice/event';\r\n\r\nexport abstract class UmbTreeItemContextBase<\r\n\t\tTreeItemType extends UmbTreeItemModel,\r\n\t\tTreeRootType extends UmbTreeRootModel,\r\n\t>\r\n\textends UmbContextBase>\r\n\timplements UmbTreeItemContext\r\n{\r\n\tpublic unique?: string | null;\r\n\tpublic entityType?: string;\r\n\tpublic readonly pagination = new UmbPaginationManager();\r\n\r\n\t#manifest?: ManifestTreeItem;\r\n\r\n\tprotected readonly _treeItem = new UmbObjectState(undefined);\r\n\treadonly treeItem = this._treeItem.asObservable();\r\n\r\n\t// eslint-disable-next-line @typescript-eslint/ban-ts-comment\r\n\t// @ts-ignore\r\n\t#childItems = new UmbArrayState([], (x) => x.unique);\r\n\treadonly childItems = this.#childItems.asObservable();\r\n\r\n\t#hasChildren = new UmbBooleanState(false);\r\n\treadonly hasChildren = this.#hasChildren.asObservable();\r\n\r\n\t#isLoading = new UmbBooleanState(false);\r\n\treadonly isLoading = this.#isLoading.asObservable();\r\n\r\n\t#isSelectable = new UmbBooleanState(false);\r\n\treadonly isSelectable = this.#isSelectable.asObservable();\r\n\r\n\t#isSelectableContext = new UmbBooleanState(false);\r\n\treadonly isSelectableContext = this.#isSelectableContext.asObservable();\r\n\r\n\t#isSelected = new UmbBooleanState(false);\r\n\treadonly isSelected = this.#isSelected.asObservable();\r\n\r\n\t#isActive = new UmbBooleanState(false);\r\n\treadonly isActive = this.#isActive.asObservable();\r\n\r\n\t#hasActions = new UmbBooleanState(false);\r\n\treadonly hasActions = this.#hasActions.asObservable();\r\n\r\n\t#path = new UmbStringState('');\r\n\treadonly path = this.#path.asObservable();\r\n\r\n\t#foldersOnly = new UmbBooleanState(false);\r\n\treadonly foldersOnly = this.#foldersOnly.asObservable();\r\n\r\n\ttreeContext?: UmbDefaultTreeContext;\r\n\t#sectionContext?: typeof UMB_SECTION_CONTEXT.TYPE;\r\n\t#sectionSidebarContext?: typeof UMB_SECTION_SIDEBAR_CONTEXT.TYPE;\r\n\t#actionEventContext?: typeof UMB_ACTION_EVENT_CONTEXT.TYPE;\r\n\r\n\t// TODO: get this from the tree context\r\n\t#paging = {\r\n\t\tskip: 0,\r\n\t\ttake: 50,\r\n\t};\r\n\r\n\tconstructor(host: UmbControllerHost) {\r\n\t\tsuper(host, UMB_TREE_ITEM_CONTEXT);\r\n\t\tthis.pagination.setPageSize(this.#paging.take);\r\n\t\tthis.#consumeContexts();\r\n\r\n\t\t// listen for page changes on the pagination manager\r\n\t\tthis.pagination.addEventListener(UmbChangeEvent.TYPE, this.#onPageChange);\r\n\r\n\t\t/* TODO: revisit. This is a temp solution to notify the parent it needs to reload its children\r\n\t\tthere might be a better way to do this through a tree item parent context.\r\n\t\tIt does not look like there is a way to have a \"dynamic\" parent context that will stop when a\r\n\t\tspecific parent is reached (a tree item unique that matches the parentUnique of this item) */\r\n\t\tconst hostElement = this.getHostElement();\r\n\t\t// eslint-disable-next-line @typescript-eslint/ban-ts-comment\r\n\t\t// @ts-ignore\r\n\t\thostElement.addEventListener('temp-reload-tree-item-parent', (event: CustomEvent) => {\r\n\t\t\tconst treeItem = this.getTreeItem();\r\n\t\t\t// eslint-disable-next-line @typescript-eslint/ban-ts-comment\r\n\t\t\t// @ts-ignore\r\n\t\t\tconst unique = treeItem?.unique;\r\n\t\t\tif (event.detail.unique === unique) {\r\n\t\t\t\tevent.stopPropagation();\r\n\t\t\t\tthis.loadChildren();\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\twindow.addEventListener('navigationend', this.#debouncedCheckIsActive);\r\n\t}\r\n\r\n\t/**\r\n\t * Sets the manifest\r\n\t * @param {ManifestCollection} manifest\r\n\t * @memberof UmbCollectionContext\r\n\t */\r\n\tpublic set manifest(manifest: ManifestTreeItem | undefined) {\r\n\t\tif (this.#manifest === manifest) return;\r\n\t\tthis.#manifest = manifest;\r\n\t}\r\n\tpublic get manifest() {\r\n\t\treturn this.#manifest;\r\n\t}\r\n\r\n\t// TODO: Be aware that this method, could be removed and we can use the getter method instead [NL]\r\n\t/**\r\n\t * Returns the manifest.\r\n\t * @returns {ManifestCollection}\r\n\t * @memberof UmbCollectionContext\r\n\t */\r\n\tpublic getManifest() {\r\n\t\treturn this.#manifest;\r\n\t}\r\n\r\n\tpublic setTreeItem(treeItem: TreeItemType | undefined) {\r\n\t\tif (!treeItem) {\r\n\t\t\tthis._treeItem.setValue(undefined);\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\t// Only check for undefined. The tree root has null as unique\r\n\t\tif (treeItem.unique === undefined) throw new Error('Could not create tree item context, unique is missing');\r\n\t\tthis.unique = treeItem.unique;\r\n\r\n\t\tif (!treeItem.entityType) throw new Error('Could not create tree item context, tree item type is missing');\r\n\t\tthis.entityType = treeItem.entityType;\r\n\r\n\t\tthis.#hasChildren.setValue(treeItem.hasChildren || false);\r\n\t\tthis._treeItem.setValue(treeItem);\r\n\r\n\t\t// Update observers:\r\n\t\tthis.#observeActions();\r\n\t\tthis.#observeIsSelectable();\r\n\t\tthis.#observeIsSelected();\r\n\t\tthis.#observeSectionPath();\r\n\t}\r\n\r\n\t/**\r\n\t * Load children of the tree item\r\n\t * @memberof UmbTreeItemContextBase\r\n\t */\r\n\tpublic loadChildren = () => this.#loadChildren();\r\n\r\n\t/**\r\n\t * Load more children of the tree item\r\n\t * @memberof UmbTreeItemContextBase\r\n\t */\r\n\tpublic loadMore = () => this.#loadChildren(true);\r\n\r\n\tasync #loadChildren(loadMore = false) {\r\n\t\tif (this.unique === undefined) throw new Error('Could not request children, unique key is missing');\r\n\t\tif (this.entityType === undefined) throw new Error('Could not request children, entity type is missing');\r\n\r\n\t\t// TODO: wait for tree context to be ready\r\n\t\tconst repository = this.treeContext?.getRepository();\r\n\t\tif (!repository) throw new Error('Could not request children, repository is missing');\r\n\r\n\t\tthis.#isLoading.setValue(true);\r\n\r\n\t\tconst skip = loadMore ? this.#paging.skip : 0;\r\n\t\tconst take = loadMore ? this.#paging.take : this.pagination.getCurrentPageNumber() * this.#paging.take;\r\n\t\tconst foldersOnly = this.#foldersOnly.getValue();\r\n\t\tconst additionalArgs = this.treeContext?.getAdditionalRequestArgs();\r\n\r\n\t\tconst { data } = await repository.requestTreeItemsOf({\r\n\t\t\tparent: {\r\n\t\t\t\tunique: this.unique,\r\n\t\t\t\tentityType: this.entityType,\r\n\t\t\t},\r\n\t\t\tfoldersOnly,\r\n\t\t\tskip,\r\n\t\t\ttake,\r\n\t\t\t...additionalArgs,\r\n\t\t});\r\n\r\n\t\tif (data) {\r\n\t\t\tif (loadMore) {\r\n\t\t\t\tconst currentItems = this.#childItems.getValue();\r\n\t\t\t\tthis.#childItems.setValue([...currentItems, ...data.items]);\r\n\t\t\t} else {\r\n\t\t\t\tthis.#childItems.setValue(data.items);\r\n\t\t\t}\r\n\r\n\t\t\tthis.#hasChildren.setValue(data.total > 0);\r\n\t\t\tthis.pagination.setTotalItems(data.total);\r\n\t\t}\r\n\r\n\t\tthis.#isLoading.setValue(false);\r\n\t}\r\n\r\n\tpublic toggleContextMenu() {\r\n\t\tif (!this.getTreeItem() || !this.entityType || this.unique === undefined) {\r\n\t\t\tthrow new Error('Could not request children, tree item is not set');\r\n\t\t}\r\n\r\n\t\tthis.#sectionSidebarContext?.toggleContextMenu(this.getHostElement(), {\r\n\t\t\tentityType: this.entityType,\r\n\t\t\tunique: this.unique,\r\n\t\t\theadline: this.getTreeItem()?.name || '',\r\n\t\t});\r\n\t}\r\n\r\n\tpublic select() {\r\n\t\tif (this.unique === undefined) throw new Error('Could not select. Unique is missing');\r\n\t\tthis.treeContext?.selection.select(this.unique);\r\n\t}\r\n\r\n\tpublic deselect() {\r\n\t\tif (this.unique === undefined) throw new Error('Could not deselect. Unique is missing');\r\n\t\tthis.treeContext?.selection.deselect(this.unique);\r\n\t}\r\n\r\n\tasync #consumeContexts() {\r\n\t\tthis.consumeContext(UMB_SECTION_CONTEXT, (instance) => {\r\n\t\t\tthis.#sectionContext = instance;\r\n\t\t\tthis.#observeSectionPath();\r\n\t\t});\r\n\r\n\t\tthis.consumeContext(UMB_SECTION_SIDEBAR_CONTEXT, (instance) => {\r\n\t\t\tthis.#sectionSidebarContext = instance;\r\n\t\t});\r\n\r\n\t\tthis.consumeContext(UMB_TREE_CONTEXT, (treeContext) => {\r\n\t\t\t// eslint-disable-next-line @typescript-eslint/ban-ts-comment\r\n\t\t\t// @ts-ignore\r\n\t\t\tthis.treeContext = treeContext;\r\n\t\t\tthis.#observeIsSelectable();\r\n\t\t\tthis.#observeIsSelected();\r\n\t\t\tthis.#observeFoldersOnly();\r\n\t\t});\r\n\r\n\t\tthis.consumeContext(UMB_ACTION_EVENT_CONTEXT, (instance) => {\r\n\t\t\tthis.#actionEventContext?.removeEventListener(\r\n\t\t\t\tUmbRequestReloadTreeItemChildrenEvent.TYPE,\r\n\t\t\t\tthis.#onReloadRequest as EventListener,\r\n\t\t\t);\r\n\r\n\t\t\tthis.#actionEventContext?.removeEventListener(\r\n\t\t\t\tUmbRequestReloadChildrenOfEntityEvent.TYPE,\r\n\t\t\t\tthis.#onReloadRequest as EventListener,\r\n\t\t\t);\r\n\r\n\t\t\tthis.#actionEventContext?.removeEventListener(\r\n\t\t\t\tUmbRequestReloadStructureForEntityEvent.TYPE,\r\n\t\t\t\tthis.#onReloadStructureRequest as unknown as EventListener,\r\n\t\t\t);\r\n\r\n\t\t\tthis.#actionEventContext = instance;\r\n\r\n\t\t\tthis.#actionEventContext.addEventListener(\r\n\t\t\t\tUmbRequestReloadTreeItemChildrenEvent.TYPE,\r\n\t\t\t\tthis.#onReloadRequest as EventListener,\r\n\t\t\t);\r\n\r\n\t\t\tthis.#actionEventContext.addEventListener(\r\n\t\t\t\tUmbRequestReloadChildrenOfEntityEvent.TYPE,\r\n\t\t\t\tthis.#onReloadRequest as EventListener,\r\n\t\t\t);\r\n\r\n\t\t\tthis.#actionEventContext.addEventListener(\r\n\t\t\t\tUmbRequestReloadStructureForEntityEvent.TYPE,\r\n\t\t\t\tthis.#onReloadStructureRequest as unknown as EventListener,\r\n\t\t\t);\r\n\t\t});\r\n\t}\r\n\r\n\tgetTreeItem() {\r\n\t\treturn this._treeItem.getValue();\r\n\t}\r\n\r\n\t#observeIsSelectable() {\r\n\t\tif (!this.treeContext) return;\r\n\t\tthis.observe(\r\n\t\t\tthis.treeContext.selection.selectable,\r\n\t\t\t(value) => {\r\n\t\t\t\tthis.#isSelectableContext.setValue(value);\r\n\r\n\t\t\t\t// If the tree is selectable, check if this item is selectable\r\n\t\t\t\tif (value === true) {\r\n\t\t\t\t\tconst isSelectable = this.treeContext?.selectableFilter?.(this.getTreeItem()!) ?? true;\r\n\t\t\t\t\tthis.#isSelectable.setValue(isSelectable);\r\n\t\t\t\t\tthis.#checkIsActive();\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t\t'observeIsSelectable',\r\n\t\t);\r\n\t}\r\n\r\n\t#observeIsSelected() {\r\n\t\tif (!this.treeContext || !this.unique) return;\r\n\r\n\t\tthis.observe(\r\n\t\t\tthis.treeContext.selection.selection.pipe(map((selection) => selection.includes(this.unique!))),\r\n\t\t\t(isSelected) => {\r\n\t\t\t\tthis.#isSelected.setValue(isSelected);\r\n\t\t\t},\r\n\t\t\t'observeIsSelected',\r\n\t\t);\r\n\t}\r\n\r\n\t#observeFoldersOnly() {\r\n\t\tif (!this.treeContext || this.unique === undefined) return;\r\n\r\n\t\tthis.observe(\r\n\t\t\tthis.treeContext.foldersOnly,\r\n\t\t\t(foldersOnly) => {\r\n\t\t\t\tthis.#foldersOnly.setValue(foldersOnly);\r\n\t\t\t},\r\n\t\t\t'observeFoldersOnly',\r\n\t\t);\r\n\t}\r\n\r\n\t#observeSectionPath() {\r\n\t\tif (!this.#sectionContext) return;\r\n\r\n\t\tthis.observe(\r\n\t\t\tthis.#sectionContext.pathname,\r\n\t\t\t(pathname) => {\r\n\t\t\t\tif (!pathname || !this.entityType || this.unique === undefined) return;\r\n\t\t\t\tconst path = this.constructPath(pathname, this.entityType, this.unique);\r\n\t\t\t\tthis.#path.setValue(path);\r\n\t\t\t\tthis.#checkIsActive();\r\n\t\t\t},\r\n\t\t\t'observeSectionPath',\r\n\t\t);\r\n\t}\r\n\r\n\t#observeActions() {\r\n\t\tthis.observe(\r\n\t\t\tumbExtensionsRegistry\r\n\t\t\t\t.byType('entityAction')\r\n\t\t\t\t.pipe(map((actions) => actions.filter((action) => action.forEntityTypes.includes(this.entityType!)))),\r\n\t\t\t(actions) => {\r\n\t\t\t\tthis.#hasActions.setValue(actions.length > 0);\r\n\t\t\t},\r\n\t\t\t'observeActions',\r\n\t\t);\r\n\t}\r\n\r\n\t#onReloadRequest = (event: UmbEntityActionEvent) => {\r\n\t\tif (event.getUnique() !== this.unique) return;\r\n\t\tif (event.getEntityType() !== this.entityType) return;\r\n\t\tthis.loadChildren();\r\n\t};\r\n\r\n\t#onReloadStructureRequest = async (event: UmbRequestReloadStructureForEntityEvent) => {\r\n\t\tif (!this.unique) return;\r\n\t\tif (event.getUnique() !== this.unique) return;\r\n\t\tif (event.getEntityType() !== this.entityType) return;\r\n\r\n\t\t/* TODO: revisit. This is a temp solution to notify the parent it needs to reload its children\r\n\t\tthere might be a better way to do this through a tree item parent context.\r\n\t\tIt does not look like there is a way to have a \"dynamic\" parent context that will stop when a\r\n\t\tspecific parent is reached (a tree item unique that matches the parentUnique of this item) */\r\n\t\tconst treeItem = this.getTreeItem();\r\n\t\tconst parentUnique = treeItem?.parent.unique;\r\n\r\n\t\tconst customEvent = new CustomEvent('temp-reload-tree-item-parent', {\r\n\t\t\tdetail: { unique: parentUnique },\r\n\t\t\tbubbles: true,\r\n\t\t\tcomposed: true,\r\n\t\t});\r\n\t\tthis.getHostElement().dispatchEvent(customEvent);\r\n\t};\r\n\r\n\t#onPageChange = (event: UmbChangeEvent) => {\r\n\t\tconst target = event.target as UmbPaginationManager;\r\n\t\tthis.#paging.skip = target.getSkip();\r\n\t\tthis.loadMore();\r\n\t};\r\n\r\n\t#debouncedCheckIsActive = debounce(() => this.#checkIsActive(), 100);\r\n\r\n\t#checkIsActive() {\r\n\t\t// don't set the active state if the item is selectable\r\n\t\tconst isSelectable = this.#isSelectable.getValue();\r\n\r\n\t\tif (isSelectable) {\r\n\t\t\tthis.#isActive.setValue(false);\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tconst path = this.#path.getValue();\r\n\t\tconst location = window.location.pathname;\r\n\t\tconst isActive = location.includes(path);\r\n\t\tthis.#isActive.setValue(isActive);\r\n\t}\r\n\r\n\t// TODO: use router context\r\n\tconstructPath(pathname: string, entityType: string, unique: string | null) {\r\n\t\t// TODO: Encode uniques [NL]\r\n\t\treturn `section/${pathname}/workspace/${entityType}/edit/${unique}`;\r\n\t}\r\n\r\n\toverride destroy(): void {\r\n\t\tthis.#actionEventContext?.removeEventListener(\r\n\t\t\tUmbRequestReloadTreeItemChildrenEvent.TYPE,\r\n\t\t\tthis.#onReloadRequest as EventListener,\r\n\t\t);\r\n\r\n\t\tthis.#actionEventContext?.removeEventListener(\r\n\t\t\tUmbRequestReloadChildrenOfEntityEvent.TYPE,\r\n\t\t\tthis.#onReloadRequest as EventListener,\r\n\t\t);\r\n\r\n\t\tthis.#actionEventContext?.removeEventListener(\r\n\t\t\tUmbRequestReloadStructureForEntityEvent.TYPE,\r\n\t\t\tthis.#onReloadStructureRequest as unknown as EventListener,\r\n\t\t);\r\n\t\twindow.removeEventListener('navigationend', this.#debouncedCheckIsActive);\r\n\t\tsuper.destroy();\r\n\t}\r\n}\r\n\r\nexport const UMB_TREE_ITEM_CONTEXT = new UmbContextToken>('UmbTreeItemContext');\r\n","import type { UmbTreeItemContext } from '../index.js';\r\nimport type { UmbTreeItemModel } from '../../types.js';\r\nimport { UMB_TREE_ITEM_CONTEXT } from './tree-item-context-base.js';\r\nimport { html, nothing, state, ifDefined, repeat, property } from '@umbraco-cms/backoffice/external/lit';\r\nimport { UmbLitElement } from '@umbraco-cms/backoffice/lit-element';\r\n\r\nexport abstract class UmbTreeItemElementBase extends UmbLitElement {\r\n\t_item?: TreeItemModelType;\r\n\t@property({ type: Object, attribute: false })\r\n\tget item(): TreeItemModelType | undefined {\r\n\t\treturn this._item;\r\n\t}\r\n\tset item(newVal: TreeItemModelType) {\r\n\t\tthis._item = newVal;\r\n\t\tthis.#initTreeItem();\r\n\t}\r\n\r\n\t@property({ type: Boolean, attribute: false })\r\n\thideActions: boolean = false;\r\n\r\n\t@state()\r\n\tprotected _isActive = false;\r\n\r\n\t@state()\r\n\tprivate _childItems?: TreeItemModelType[];\r\n\r\n\t@state()\r\n\tprivate _href?: string;\r\n\r\n\t@state()\r\n\tprivate _isLoading = false;\r\n\r\n\t@state()\r\n\tprivate _isSelectableContext = false;\r\n\r\n\t@state()\r\n\tprivate _isSelectable = false;\r\n\r\n\t@state()\r\n\tprivate _isSelected = false;\r\n\r\n\t@state()\r\n\tprivate _hasChildren = false;\r\n\r\n\t@state()\r\n\tprivate _iconSlotHasChildren = false;\r\n\r\n\t@state()\r\n\tprivate _totalPages = 1;\r\n\r\n\t@state()\r\n\tprivate _currentPage = 1;\r\n\r\n\t#treeItemContext?: UmbTreeItemContext;\r\n\r\n\tconstructor() {\r\n\t\tsuper();\r\n\r\n\t\t// TODO: Notice this can be retrieve via a api property. [NL]\r\n\t\tthis.consumeContext(UMB_TREE_ITEM_CONTEXT, (instance) => {\r\n\t\t\tthis.#treeItemContext = instance;\r\n\t\t\tif (!this.#treeItemContext) return;\r\n\r\n\t\t\tthis.#initTreeItem();\r\n\r\n\t\t\t// TODO: investigate if we can make an observe decorator\r\n\t\t\tthis.observe(this.#treeItemContext.treeItem, (value) => (this._item = value));\r\n\t\t\tthis.observe(this.#treeItemContext.childItems, (value) => (this._childItems = value));\r\n\t\t\tthis.observe(this.#treeItemContext.hasChildren, (value) => (this._hasChildren = value));\r\n\t\t\tthis.observe(this.#treeItemContext.isActive, (value) => (this._isActive = value));\r\n\t\t\tthis.observe(this.#treeItemContext.isLoading, (value) => (this._isLoading = value));\r\n\t\t\tthis.observe(this.#treeItemContext.isSelectableContext, (value) => (this._isSelectableContext = value));\r\n\t\t\tthis.observe(this.#treeItemContext.isSelectable, (value) => (this._isSelectable = value));\r\n\t\t\tthis.observe(this.#treeItemContext.isSelected, (value) => (this._isSelected = value));\r\n\t\t\tthis.observe(this.#treeItemContext.path, (value) => (this._href = value));\r\n\t\t\tthis.observe(this.#treeItemContext.pagination.currentPage, (value) => (this._currentPage = value));\r\n\t\t\tthis.observe(this.#treeItemContext.pagination.totalPages, (value) => (this._totalPages = value));\r\n\t\t});\r\n\t}\r\n\r\n\t#initTreeItem() {\r\n\t\tif (!this.#treeItemContext) return;\r\n\t\tif (!this._item) return;\r\n\t\tthis.#treeItemContext.setTreeItem(this._item);\r\n\t}\r\n\r\n\tprivate _handleSelectedItem(event: Event) {\r\n\t\tevent.stopPropagation();\r\n\t\tthis.#treeItemContext?.select();\r\n\t}\r\n\r\n\tprivate _handleDeselectedItem(event: Event) {\r\n\t\tevent.stopPropagation();\r\n\t\tthis.#treeItemContext?.deselect();\r\n\t}\r\n\r\n\t// TODO: do we want to catch and emit a backoffice event here?\r\n\tprivate _onShowChildren() {\r\n\t\tthis.#treeItemContext?.loadChildren();\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.#treeItemContext?.pagination.setCurrentPageNumber(next);\r\n\t};\r\n\r\n\t// Note: Currently we want to prevent opening when the item is in a selectable context, but this might change in the future.\r\n\t// If we like to be able to open items in selectable context, then we might want to make it as a menu item action, so you have to click ... and chose an action called 'Edit'\r\n\toverride render() {\r\n\t\tconst label = this.localize.string(this._item?.name ?? '');\r\n\t\treturn html`\r\n\t\t\t\r\n\t\t\t\t${this.renderIconContainer()} ${this.renderLabel()} ${this.#renderActions()} ${this.#renderChildItems()}\r\n\t\t\t\t\r\n\t\t\t\t${this.#renderPaging()}\r\n\t\t\t\r\n\t\t`;\r\n\t}\r\n\r\n\t#hasNodes = (e: Event) => {\r\n\t\treturn (e.target as HTMLSlotElement).assignedNodes({ flatten: true }).length > 0;\r\n\t};\r\n\r\n\trenderIconContainer() {\r\n\t\treturn html`\r\n\t\t\t {\r\n\t\t\t\t\tthis._iconSlotHasChildren = this.#hasNodes(e);\r\n\t\t\t\t}}>\r\n\t\t\t${!this._iconSlotHasChildren ? this.#renderIcon() : nothing}\r\n\t\t`;\r\n\t}\r\n\r\n\t#renderIcon() {\r\n\t\tconst icon = this._item?.icon;\r\n\t\tconst isFolder = this._item?.isFolder;\r\n\t\tconst iconWithoutColor = icon?.split(' ')[0];\r\n\r\n\t\tif (icon && iconWithoutColor) {\r\n\t\t\treturn html``;\r\n\t\t}\r\n\r\n\t\tif (isFolder) {\r\n\t\t\treturn html``;\r\n\t\t}\r\n\r\n\t\treturn html``;\r\n\t}\r\n\r\n\trenderLabel() {\r\n\t\treturn html``;\r\n\t}\r\n\r\n\t#renderActions() {\r\n\t\tif (this.hideActions) return;\r\n\t\treturn this.#treeItemContext && this._item\r\n\t\t\t? html`\r\n\t\t\t\t`\r\n\t\t\t: '';\r\n\t}\r\n\r\n\t#renderChildItems() {\r\n\t\treturn html`\r\n\t\t\t${this._childItems\r\n\t\t\t\t? repeat(\r\n\t\t\t\t\t\tthis._childItems,\r\n\t\t\t\t\t\t(item, index) => item.name + '___' + index,\r\n\t\t\t\t\t\t(item) =>\r\n\t\t\t\t\t\t\thtml``,\r\n\t\t\t\t\t)\r\n\t\t\t\t: ''}\r\n\t\t`;\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"],"names":["UmbRequestReloadTreeItemChildrenEvent","UmbEntityActionEvent","args","UmbTreeItemContextBase","UmbContextBase","host","UMB_TREE_ITEM_CONTEXT","UmbPaginationManager","UmbObjectState","#childItems","UmbArrayState","x","#hasChildren","UmbBooleanState","#isLoading","#isSelectable","#isSelectableContext","#isSelected","#isActive","#hasActions","#path","UmbStringState","#foldersOnly","#paging","#loadChildren","#onReloadRequest","event","#onReloadStructureRequest","parentUnique","customEvent","#onPageChange","target","#debouncedCheckIsActive","debounce","#checkIsActive","#consumeContexts","UmbChangeEvent","unique","#manifest","#sectionContext","#sectionSidebarContext","#actionEventContext","manifest","treeItem","#observeActions","#observeIsSelectable","#observeIsSelected","#observeSectionPath","loadMore","repository","skip","take","foldersOnly","additionalArgs","data","currentItems","UMB_SECTION_CONTEXT","instance","UMB_SECTION_SIDEBAR_CONTEXT","UMB_TREE_CONTEXT","treeContext","#observeFoldersOnly","UMB_ACTION_EVENT_CONTEXT","UmbRequestReloadChildrenOfEntityEvent","UmbRequestReloadStructureForEntityEvent","value","isSelectable","map","selection","isSelected","pathname","path","umbExtensionsRegistry","actions","action","isActive","entityType","UmbContextToken","UmbTreeItemElementBase","UmbLitElement","#onLoadMoreClick","next","#treeItemContext","#hasNodes","#initTreeItem","newVal","label","html","ifDefined","#renderActions","#renderChildItems","#renderPaging","nothing","#renderIcon","icon","isFolder","iconWithoutColor","repeat","item","index","__decorateClass","property","state"],"mappings":"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"}