{"version":3,"file":"menu-item-layout.element-BDBCn75F.js","sources":["../../../src/packages/core/menu/components/menu-item/menu-item-default.element.ts","../../../src/packages/core/menu/components/menu/menu.element.ts","../../../src/packages/core/menu/components/menu-item-layout/menu-item-layout.element.ts"],"sourcesContent":["import type { UmbMenuItemElement } from '../../menu-item-element.interface.js';\r\nimport type { ManifestMenuItem } from '../../menu-item.extension.js';\r\nimport { customElement, html, property, state } from '@umbraco-cms/backoffice/external/lit';\r\nimport { UmbLitElement } from '@umbraco-cms/backoffice/lit-element';\r\nimport { UMB_SECTION_CONTEXT } from '@umbraco-cms/backoffice/section';\r\n\r\n@customElement('umb-menu-item-default')\r\nexport class UmbMenuItemDefaultElement extends UmbLitElement implements UmbMenuItemElement {\r\n\t#pathname?: string;\r\n\r\n\t@property({ type: Object, attribute: false })\r\n\tprivate _manifest!: ManifestMenuItem;\r\n\tpublic get manifest(): ManifestMenuItem {\r\n\t\treturn this._manifest;\r\n\t}\r\n\tpublic set manifest(value: ManifestMenuItem) {\r\n\t\tthis._manifest = value;\r\n\t\tthis.#constructHref();\r\n\t}\r\n\r\n\t@state()\r\n\tprivate _href?: string;\r\n\r\n\tconstructor() {\r\n\t\tsuper();\r\n\r\n\t\tthis.consumeContext(UMB_SECTION_CONTEXT, (sectionContext) => {\r\n\t\t\tthis.observe(\r\n\t\t\t\tsectionContext?.pathname,\r\n\t\t\t\t(pathname) => {\r\n\t\t\t\t\tthis.#pathname = pathname;\r\n\t\t\t\t\tthis.#constructHref();\r\n\t\t\t\t},\r\n\t\t\t\t'observePathname',\r\n\t\t\t);\r\n\t\t});\r\n\t}\r\n\r\n\t#constructHref() {\r\n\t\tif (!this.#pathname || !this.manifest) return;\r\n\t\tthis._href = `section/${this.#pathname}/workspace/${this.manifest.meta.entityType}`;\r\n\t}\r\n\r\n\toverride render() {\r\n\t\treturn html`\r\n\t\t\t\r\n\t\t\t\r\n\t\t`;\r\n\t}\r\n}\r\n\r\ndeclare global {\r\n\tinterface HTMLElementTagNameMap {\r\n\t\t'umb-menu-item-default': UmbMenuItemDefaultElement;\r\n\t}\r\n}\r\n","import type { ManifestMenu } from '../../menu.extension.js';\r\nimport type { ManifestMenuItem } from '../../menu-item.extension.js';\r\nimport { html, customElement, property } from '@umbraco-cms/backoffice/external/lit';\r\nimport { UmbLitElement } from '@umbraco-cms/backoffice/lit-element';\r\n\r\nimport '../menu-item/menu-item-default.element.js';\r\n\r\n@customElement('umb-menu')\r\nexport class UmbMenuElement extends UmbLitElement {\r\n\t@property({ attribute: false })\r\n\tmanifest?: ManifestMenu;\r\n\r\n\tconstructor() {\r\n\t\tsuper();\r\n\t\t//this.provideContext(UMB_MENU_CONTEXT, new UmbMenuContext());\r\n\t}\r\n\r\n\toverride render() {\r\n\t\treturn html`\r\n\t\t\t items.meta.menus.includes(this.manifest!.alias)}>\r\n\t\t\t\r\n\t\t`;\r\n\t}\r\n}\r\n\r\nexport default UmbMenuElement;\r\n\r\ndeclare global {\r\n\tinterface HTMLElementTagNameMap {\r\n\t\t'umb-menu': UmbMenuElement;\r\n\t}\r\n}\r\n","import { html, customElement, property, ifDefined, state } from '@umbraco-cms/backoffice/external/lit';\r\nimport { UmbLitElement } from '@umbraco-cms/backoffice/lit-element';\r\nimport { debounce } from '@umbraco-cms/backoffice/utils';\r\n\r\n/**\r\n * @element umb-menu-item-layout\r\n * @description\r\n * A menu item layout to render he backoffice menu item look.\r\n * This supports nested menu items, and if a `entityType` is provided, it will render the entity actions for it.\r\n */\r\n@customElement('umb-menu-item-layout')\r\nexport class UmbMenuItemLayoutElement extends UmbLitElement {\r\n\t@property({ type: String, attribute: 'entity-type' })\r\n\tpublic entityType?: string;\r\n\r\n\t/**\r\n\t * The icon name for the icon to show in this menu item.\r\n\t */\r\n\t@property({ type: String, attribute: 'icon-name' })\r\n\tpublic iconName = '';\r\n\r\n\t/**\r\n\t * The label for this menu item.\r\n\t */\r\n\t@property({ type: String })\r\n\tpublic label = '';\r\n\r\n\t/**\r\n\t * Declare if this item has children, this will show the expand symbol.\r\n\t */\r\n\t@property({ type: Boolean, attribute: 'has-children' })\r\n\tpublic hasChildren = false;\r\n\r\n\t/**\r\n\t * Define a href for this menu item.\r\n\t */\r\n\t@property({ type: String })\r\n\tpublic href?: string;\r\n\r\n\t/**\r\n\t * Set an anchor tag target, only used when using href.\r\n\t * @type {string}\r\n\t * @attr\r\n\t * @default undefined\r\n\t */\r\n\t@property({ type: String })\r\n\tpublic target?: '_blank' | '_parent' | '_self' | '_top';\r\n\r\n\t@state()\r\n\tprivate _isActive = false;\r\n\r\n\toverride connectedCallback() {\r\n\t\tsuper.connectedCallback();\r\n\t\twindow.addEventListener('navigationend', this.#debouncedCheckIsActive);\r\n\t}\r\n\r\n\t#debouncedCheckIsActive = debounce(() => this.#checkIsActive(), 100);\r\n\r\n\t#checkIsActive() {\r\n\t\tif (!this.href) {\r\n\t\t\tthis._isActive = false;\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tconst location = window.location.pathname;\r\n\t\tthis._isActive = location.includes(this.href);\r\n\t}\r\n\r\n\toverride render() {\r\n\t\treturn html`\r\n\t\t\t\r\n\t\t\t${this.entityType\r\n\t\t\t\t? html`\r\n\t\t\t\t\t`\r\n\t\t\t\t: ''}\r\n\t\t\t\r\n\t\t`;\r\n\t}\r\n\r\n\toverride disconnectedCallback() {\r\n\t\tsuper.disconnectedCallback();\r\n\t\twindow.removeEventListener('navigationend', this.#debouncedCheckIsActive);\r\n\t}\r\n}\r\n\r\ndeclare global {\r\n\tinterface HTMLElementTagNameMap {\r\n\t\t'umb-menu-item-layout': UmbMenuItemLayoutElement;\r\n\t}\r\n}\r\n"],"names":["_pathname","_UmbMenuItemDefaultElement_instances","constructHref_fn","UmbMenuItemDefaultElement","UmbLitElement","__privateAdd","UMB_SECTION_CONTEXT","sectionContext","pathname","__privateSet","__privateMethod","value","html","__privateGet","__decorateClass","property","state","customElement","UmbMenuElement","items","_debouncedCheckIsActive","_UmbMenuItemLayoutElement_instances","checkIsActive_fn","UmbMenuItemLayoutElement","debounce","ifDefined","location"],"mappings":"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"}