{"version":3,"file":"index.js","sources":["../../../../src/packages/core/section/section-picker-modal/section-picker-modal.token.ts","../../../../src/packages/core/section/paths.ts","../../../../src/packages/core/section/components/input-section/input-section.context.ts","../../../../src/packages/core/section/components/input-section/input-section.element.ts","../../../../src/packages/core/section/components/ref-section/ref-section.element.ts","../../../../src/packages/core/section/section-default.element.ts","../../../../src/packages/core/section/section-main/section-main.element.ts","../../../../src/packages/core/section/section-sidebar/section-sidebar.context.ts","../../../../src/packages/core/section/section-sidebar/section-sidebar.element.ts","../../../../src/packages/core/section/section-sidebar-context-menu/section-sidebar-context-menu.element.ts","../../../../src/packages/core/menu/section-sidebar-menu/section-sidebar-menu.element.ts","../../../../src/packages/core/menu/section-sidebar-menu-with-entity-actions/section-sidebar-menu-with-entity-actions.element.ts","../../../../src/packages/core/section/section.context.ts"],"sourcesContent":["import { UmbModalToken } from '../../modal/token/modal-token.js';\r\n\r\nexport interface UmbSectionPickerModalData {\r\n\tmultiple: boolean;\r\n\tselection: Array;\r\n}\r\n\r\nexport interface UmbSectionPickerModalValue {\r\n\tselection: Array;\r\n}\r\n\r\nexport const UMB_SECTION_PICKER_MODAL = new UmbModalToken(\r\n\t'Umb.Modal.SectionPicker',\r\n\t{\r\n\t\tmodal: {\r\n\t\t\ttype: 'sidebar',\r\n\t\t\tsize: 'small',\r\n\t\t},\r\n\t},\r\n);\r\n","import { UmbPathPattern } from '../router/path-pattern.class.js';\r\n\r\nexport const UMB_SECTION_PATH_PATTERN = new UmbPathPattern<{ sectionName: string }>('section/:sectionName');\r\n","import type { UmbSectionItemModel } from '../../repository/types.js';\r\nimport { UMB_SECTION_PICKER_MODAL } from '../../section-picker-modal/section-picker-modal.token.js';\r\nimport { UMB_SECTION_ITEM_REPOSITORY_ALIAS } from '../../constants.js';\r\nimport { UmbPickerInputContext } from '@umbraco-cms/backoffice/picker-input';\r\nimport type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api';\r\n\r\nexport class UmbSectionPickerInputContext extends UmbPickerInputContext {\r\n\tconstructor(host: UmbControllerHost) {\r\n\t\tsuper(host, UMB_SECTION_ITEM_REPOSITORY_ALIAS, UMB_SECTION_PICKER_MODAL);\r\n\t}\r\n}\r\n\r\n/** @deprecated Use `UmbSectionPickerInputContext` instead. This method will be removed in Umbraco 15. */\r\nexport { UmbSectionPickerInputContext as UmbSectionPickerContext };\r\n","import type { UmbSectionItemModel } from '../../types.js';\r\nimport { UmbSectionPickerInputContext } from './input-section.context.js';\r\nimport { css, html, customElement, property, state } from '@umbraco-cms/backoffice/external/lit';\r\nimport { UmbLitElement } from '@umbraco-cms/backoffice/lit-element';\r\nimport { splitStringToArray } from '@umbraco-cms/backoffice/utils';\r\nimport { UmbFormControlMixin } from '@umbraco-cms/backoffice/validation';\r\n\r\n@customElement('umb-input-section')\r\nexport class UmbInputSectionElement extends UmbFormControlMixin(\r\n\tUmbLitElement,\r\n) {\r\n\t/**\r\n\t * This is a minimum amount of selected items in this input.\r\n\t * @type {number}\r\n\t * @attr\r\n\t * @default\r\n\t */\r\n\t@property({ type: Number })\r\n\tpublic set min(value: number) {\r\n\t\tthis.#pickerContext.min = value;\r\n\t}\r\n\tpublic get min(): number {\r\n\t\treturn this.#pickerContext.min;\r\n\t}\r\n\r\n\t/**\r\n\t * Min validation message.\r\n\t * @type {boolean}\r\n\t * @attr\r\n\t * @default\r\n\t */\r\n\t@property({ type: String, attribute: 'min-message' })\r\n\tminMessage = 'This field need more items';\r\n\r\n\t/**\r\n\t * This is a maximum amount of selected items in this input.\r\n\t * @type {number}\r\n\t * @attr\r\n\t * @default\r\n\t */\r\n\t@property({ type: Number })\r\n\tpublic set max(value: number) {\r\n\t\tthis.#pickerContext.max = value;\r\n\t}\r\n\tpublic get max(): number {\r\n\t\treturn this.#pickerContext.max;\r\n\t}\r\n\r\n\t/**\r\n\t * Max validation message.\r\n\t * @type {boolean}\r\n\t * @attr\r\n\t * @default\r\n\t */\r\n\t@property({ type: String, attribute: 'min-message' })\r\n\tmaxMessage = 'This field exceeds the allowed amount of items';\r\n\r\n\tpublic set selection(uniques: Array) {\r\n\t\tthis.#pickerContext.setSelection(uniques);\r\n\t}\r\n\tpublic get selection(): Array {\r\n\t\treturn this.#pickerContext.getSelection();\r\n\t}\r\n\r\n\t@property({ type: String })\r\n\tpublic override set value(selectionString: string | undefined) {\r\n\t\tthis.selection = splitStringToArray(selectionString);\r\n\t}\r\n\tpublic override get value(): string | undefined {\r\n\t\treturn this.selection.length > 0 ? this.selection.join(',') : undefined;\r\n\t}\r\n\r\n\t@state()\r\n\tprivate _items?: Array;\r\n\r\n\t#pickerContext = new UmbSectionPickerInputContext(this);\r\n\r\n\tconstructor() {\r\n\t\tsuper();\r\n\r\n\t\tthis.addValidator(\r\n\t\t\t'rangeUnderflow',\r\n\t\t\t() => this.minMessage,\r\n\t\t\t() => !!this.min && this.#pickerContext.getSelection().length < this.min,\r\n\t\t);\r\n\r\n\t\tthis.addValidator(\r\n\t\t\t'rangeOverflow',\r\n\t\t\t() => this.maxMessage,\r\n\t\t\t() => !!this.max && this.#pickerContext.getSelection().length > this.max,\r\n\t\t);\r\n\r\n\t\tthis.observe(this.#pickerContext.selection, (selection) => (this.value = selection.join(',')));\r\n\t\tthis.observe(this.#pickerContext.selectedItems, (selectedItems) => (this._items = selectedItems));\r\n\t}\r\n\r\n\tprotected override getFormElement() {\r\n\t\treturn undefined;\r\n\t}\r\n\r\n\toverride render() {\r\n\t\treturn html`\r\n\t\t\t${this._items?.map((item) => this._renderItem(item))}\r\n\t\t\t this.#pickerContext.openPicker()}\r\n\t\t\t\tlabel=${this.localize.term('general_choose')}>\r\n\t\t`;\r\n\t}\r\n\r\n\tprivate _renderItem(item: UmbSectionItemModel) {\r\n\t\tif (!item.unique) return;\r\n\t\treturn html` \r\n\t\t\t\r\n\t\t\t\t this.#pickerContext.requestRemoveItem(item.unique)} label=\"Remove ${item.name}\"\r\n\t\t\t\t\t>Remove\r\n\t\t\t\r\n\t\t`;\r\n\t}\r\n\r\n\tstatic override styles = [\r\n\t\tcss`\r\n\t\t\t#btn-add {\r\n\t\t\t\twidth: 100%;\r\n\t\t\t}\r\n\t\t`,\r\n\t];\r\n}\r\n\r\nexport default UmbInputSectionElement;\r\n\r\ndeclare global {\r\n\tinterface HTMLElementTagNameMap {\r\n\t\t'umb-input-section': UmbInputSectionElement;\r\n\t}\r\n}\r\n","import type { UmbSectionItemModel } from '../../repository/types.js';\r\nimport { UUIRefElement } from '@umbraco-cms/backoffice/external/uui';\r\nimport { html, customElement, css, property } from '@umbraco-cms/backoffice/external/lit';\r\nimport { UmbElementMixin } from '@umbraco-cms/backoffice/element-api';\r\n\r\n@customElement('umb-ref-section')\r\nexport class UmbRefSectionElement extends UmbElementMixin(UUIRefElement) {\r\n\t@property({ type: Object, attribute: false })\r\n\titem?: UmbSectionItemModel;\r\n\r\n\toverride render() {\r\n\t\treturn html`\r\n\t\t\t
\r\n\t\t\t\t
${this.item?.meta.label ? this.localize.string(this.item.meta.label) : this.item?.name}
\r\n\t\t\t
\r\n\t\t\t\r\n\t\t\t\r\n\t\t`;\r\n\t}\r\n\r\n\tstatic override styles = [\r\n\t\t...UUIRefElement.styles,\r\n\t\tcss`\r\n\t\t\t#name {\r\n\t\t\t\tfont-weight: 700;\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-ref-section': UmbRefSectionElement;\r\n\t}\r\n}\r\n","import type { ManifestSectionRoute } from './extensions/section-route.extension.js';\r\nimport type { UmbSectionMainViewElement } from './section-main-views/section-main-views.element.js';\r\nimport type { ManifestSection, UmbSectionElement } from './types.js';\r\nimport { UmbTextStyles } from '@umbraco-cms/backoffice/style';\r\nimport { css, html, nothing, customElement, property, state, repeat } from '@umbraco-cms/backoffice/external/lit';\r\nimport { umbExtensionsRegistry } from '@umbraco-cms/backoffice/extension-registry';\r\nimport type { IRoute, IRoutingInfo, PageComponent, UmbRoute } from '@umbraco-cms/backoffice/router';\r\nimport { UmbLitElement } from '@umbraco-cms/backoffice/lit-element';\r\nimport type { UmbExtensionElementInitializer } from '@umbraco-cms/backoffice/extension-api';\r\nimport {\r\n\tUmbExtensionsElementInitializer,\r\n\tUmbExtensionsManifestInitializer,\r\n\tcreateExtensionApi,\r\n\tcreateExtensionElement,\r\n} from '@umbraco-cms/backoffice/extension-api';\r\nimport { aliasToPath } from '@umbraco-cms/backoffice/utils';\r\nimport { UMB_MARK_ATTRIBUTE_NAME } from '@umbraco-cms/backoffice/const';\r\n\r\n/**\r\n * @class UmbBaseSectionElement\r\n * @description - Element hosting sections and section navigation.\r\n */\r\n@customElement('umb-section-default')\r\nexport class UmbSectionDefaultElement extends UmbLitElement implements UmbSectionElement {\r\n\tprivate _manifest?: ManifestSection | undefined;\r\n\r\n\t@property({ type: Object, attribute: false })\r\n\tpublic get manifest(): ManifestSection | undefined {\r\n\t\treturn this._manifest;\r\n\t}\r\n\tpublic set manifest(value: ManifestSection | undefined) {\r\n\t\tconst oldValue = this._manifest;\r\n\t\tif (oldValue === value) return;\r\n\t\tthis._manifest = value;\r\n\r\n\t\tthis.requestUpdate('manifest', oldValue);\r\n\t}\r\n\r\n\t@state()\r\n\tprivate _routes?: Array;\r\n\r\n\t@state()\r\n\tprivate _sidebarApps?: Array>;\r\n\r\n\t@state()\r\n\t_splitPanelPosition = '300px';\r\n\r\n\tconstructor() {\r\n\t\tsuper();\r\n\r\n\t\tnew UmbExtensionsElementInitializer(this, umbExtensionsRegistry, 'sectionSidebarApp', null, (sidebarApps) => {\r\n\t\t\tconst oldValue = this._sidebarApps;\r\n\t\t\tsidebarApps.forEach((sidebarApp) => {\r\n\t\t\t\tsidebarApp.component?.setAttribute(UMB_MARK_ATTRIBUTE_NAME, 'section-sidebar:' + sidebarApp.manifest.alias);\r\n\t\t\t});\r\n\t\t\tthis._sidebarApps = sidebarApps;\r\n\t\t\tthis.requestUpdate('_sidebarApps', oldValue);\r\n\t\t});\r\n\r\n\t\tthis.#observeRoutes();\r\n\r\n\t\tconst splitPanelPosition = localStorage.getItem('umb-split-panel-position');\r\n\t\tif (splitPanelPosition) {\r\n\t\t\tthis._splitPanelPosition = splitPanelPosition;\r\n\t\t}\r\n\t}\r\n\r\n\t#observeRoutes(): void {\r\n\t\tnew UmbExtensionsManifestInitializer(\r\n\t\t\tthis,\r\n\t\t\tumbExtensionsRegistry,\r\n\t\t\t'sectionRoute',\r\n\t\t\tnull,\r\n\t\t\tasync (sectionRouteExtensions) => {\r\n\t\t\t\t// TODO: we only support extensions with an element prop\r\n\t\t\t\tconst extensionsWithElement = sectionRouteExtensions.filter((extension) => extension.manifest.element);\r\n\t\t\t\tconst extensionsWithoutElement = sectionRouteExtensions.filter((extension) => !extension.manifest.element);\r\n\t\t\t\tif (extensionsWithoutElement.length > 0) throw new Error('sectionRoute extensions must have an element');\r\n\r\n\t\t\t\tconst routes: Array = await Promise.all(\r\n\t\t\t\t\textensionsWithElement.map(async (extensionController) => {\r\n\t\t\t\t\t\tconst api = await createExtensionApi(this, extensionController.manifest);\r\n\r\n\t\t\t\t\t\treturn {\r\n\t\t\t\t\t\t\tpath:\r\n\t\t\t\t\t\t\t\tapi?.getPath?.() ||\r\n\t\t\t\t\t\t\t\textensionController.manifest.meta?.path ||\r\n\t\t\t\t\t\t\t\taliasToPath(extensionController.manifest.alias),\r\n\t\t\t\t\t\t\tcomponent: () => createExtensionElement(extensionController.manifest),\r\n\t\t\t\t\t\t\tsetup: (element: PageComponent, info: IRoutingInfo) => {\r\n\t\t\t\t\t\t\t\tapi?.setup?.(element, info);\r\n\t\t\t\t\t\t\t},\r\n\t\t\t\t\t\t};\r\n\t\t\t\t\t}),\r\n\t\t\t\t);\r\n\r\n\t\t\t\tthis.#createRoutes(routes);\r\n\t\t\t},\r\n\t\t\t'umbRouteExtensionApisInitializer',\r\n\t\t);\r\n\t}\r\n\r\n\t#createRoutes(routes: Array) {\r\n\t\tthis._routes = [\r\n\t\t\t...routes,\r\n\t\t\t{\r\n\t\t\t\tpath: '**',\r\n\t\t\t\tcomponent: () => import('./section-main-views/section-main-views.element.js'),\r\n\t\t\t\tsetup: (element) => {\r\n\t\t\t\t\t(element as UmbSectionMainViewElement).sectionAlias = this.manifest?.alias;\r\n\t\t\t\t},\r\n\t\t\t},\r\n\t\t];\r\n\t}\r\n\r\n\t#onSplitPanelChange(event: CustomEvent) {\r\n\t\tconst position = event.detail.position;\r\n\t\tlocalStorage.setItem('umb-split-panel-position', position.toString());\r\n\t}\r\n\r\n\toverride render() {\r\n\t\treturn html`\r\n\t\t\t\r\n\t\t\t\t${this._sidebarApps && this._sidebarApps.length > 0\r\n\t\t\t\t\t? html`\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t${repeat(\r\n\t\t\t\t\t\t\t\t\tthis._sidebarApps,\r\n\t\t\t\t\t\t\t\t\t(app) => app.alias,\r\n\t\t\t\t\t\t\t\t\t(app) => app.component,\r\n\t\t\t\t\t\t\t\t)}\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t`\r\n\t\t\t\t\t: nothing}\r\n\t\t\t\t\r\n\t\t\t\t\t${this._routes && this._routes.length > 0\r\n\t\t\t\t\t\t? html``\r\n\t\t\t\t\t\t: nothing}\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\tstatic override styles = [\r\n\t\tUmbTextStyles,\r\n\t\tcss`\r\n\t\t\t:host {\r\n\t\t\t\tflex: 1 1 auto;\r\n\t\t\t\theight: 100%;\r\n\t\t\t\tdisplay: flex;\r\n\t\t\t}\r\n\r\n\t\t\tumb-split-panel {\r\n\t\t\t\t--umb-split-panel-start-min-width: 200px;\r\n\t\t\t\t--umb-split-panel-start-max-width: 400px;\r\n\t\t\t\t--umb-split-panel-end-min-width: 600px;\r\n\t\t\t\t--umb-split-panel-slot-overflow: visible;\r\n\t\t\t}\r\n\t\t\t@media only screen and (min-width: 800px) {\r\n\t\t\t\tumb-split-panel {\r\n\t\t\t\t\t--umb-split-panel-initial-position: 300px;\r\n\t\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-section-default': UmbSectionDefaultElement;\r\n\t}\r\n}\r\n","import { UmbTextStyles } from '@umbraco-cms/backoffice/style';\r\nimport { css, html, LitElement, customElement } from '@umbraco-cms/backoffice/external/lit';\r\n\r\n@customElement('umb-section-main')\r\nexport class UmbSectionMainElement extends LitElement {\r\n\toverride render() {\r\n\t\treturn html`\r\n\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\tstatic override styles = [\r\n\t\tUmbTextStyles,\r\n\t\tcss`\r\n\t\t\t:host {\r\n\t\t\t\tflex: 1 1 auto;\r\n\t\t\t\theight: 100%;\r\n\t\t\t\tmin-width: 0;\r\n\t\t\t}\r\n\r\n\t\t\tmain {\r\n\t\t\t\tposition: relative;\r\n\t\t\t\tdisplay: flex;\r\n\t\t\t\tflex-direction: column;\r\n\t\t\t\theight: 100%;\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-section-main': UmbSectionMainElement;\r\n\t}\r\n}\r\n","import type { UmbOpenContextMenuArgs } from './types.js';\r\nimport { UmbContextToken } from '@umbraco-cms/backoffice/context-api';\r\nimport { UmbContextBase } from '@umbraco-cms/backoffice/class-api';\r\nimport type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api';\r\nimport { UmbStringState, UmbBooleanState } from '@umbraco-cms/backoffice/observable-api';\r\n\r\nexport class UmbSectionSidebarContext extends UmbContextBase {\r\n\t#contextMenuIsOpen = new UmbBooleanState(false);\r\n\tcontextMenuIsOpen = this.#contextMenuIsOpen.asObservable();\r\n\r\n\t#entityType = new UmbStringState(undefined);\r\n\tentityType = this.#entityType.asObservable();\r\n\r\n\t#unique = new UmbStringState(undefined);\r\n\tunique = this.#unique.asObservable();\r\n\r\n\t#headline = new UmbStringState(undefined);\r\n\theadline = this.#headline.asObservable();\r\n\r\n\t#contextElement: Element | undefined = undefined;\r\n\r\n\tconstructor(host: UmbControllerHost) {\r\n\t\tsuper(host, UMB_SECTION_SIDEBAR_CONTEXT);\r\n\t}\r\n\r\n\ttoggleContextMenu(host: Element, args: UmbOpenContextMenuArgs) {\r\n\t\tthis.openContextMenu(host, args);\r\n\t}\r\n\r\n\t// TODO: we wont get notified about tree item name changes because we don't have a subscription\r\n\t// we need to figure out how we best can handle this when we only know the entity and unique id\r\n\topenContextMenu(host: Element, args: UmbOpenContextMenuArgs) {\r\n\t\tthis.#entityType.setValue(args.entityType);\r\n\t\tthis.#unique.setValue(args.unique);\r\n\t\tthis.#headline.setValue(args.headline);\r\n\t\tthis.#contextMenuIsOpen.setValue(true);\r\n\t\tthis.#contextElement = host;\r\n\t}\r\n\r\n\tcloseContextMenu() {\r\n\t\tthis.#contextMenuIsOpen.setValue(false);\r\n\t\tthis.#entityType.setValue(undefined);\r\n\t\tthis.#unique.setValue(undefined);\r\n\t\tthis.#headline.setValue(undefined);\r\n\t\tthis.#contextElement = undefined;\r\n\t}\r\n\r\n\tgetContextElement() {\r\n\t\treturn this.#contextElement;\r\n\t}\r\n}\r\n\r\nexport const UMB_SECTION_SIDEBAR_CONTEXT = new UmbContextToken('UmbSectionSidebarContext');\r\n","import { UmbSectionSidebarContext } from './section-sidebar.context.js';\r\nimport { UMB_MARK_ATTRIBUTE_NAME } from '@umbraco-cms/backoffice/const';\r\nimport { css, html, customElement, type PropertyValueMap } from '@umbraco-cms/backoffice/external/lit';\r\nimport { UmbLitElement } from '@umbraco-cms/backoffice/lit-element';\r\n\r\n@customElement('umb-section-sidebar')\r\nexport class UmbSectionSidebarElement extends UmbLitElement {\r\n\tconstructor() {\r\n\t\tsuper();\r\n\t\tnew UmbSectionSidebarContext(this);\r\n\t}\r\n\r\n\tprotected override firstUpdated(_changedProperties: PropertyValueMap | Map): void {\r\n\t\tsuper.firstUpdated(_changedProperties);\r\n\t\tthis.setAttribute(UMB_MARK_ATTRIBUTE_NAME, 'section-sidebar');\r\n\t}\r\n\r\n\toverride render() {\r\n\t\treturn html`\r\n\t\t\t\r\n\t\t\t\t\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\tstatic override styles = [\r\n\t\tcss`\r\n\t\t\t:host {\r\n\t\t\t\tflex: 0 0 var(--umb-section-sidebar-width);\r\n\t\t\t\tbackground-color: var(--uui-color-surface);\r\n\t\t\t\theight: 100%;\r\n\t\t\t\tborder-right: 1px solid var(--uui-color-border);\r\n\t\t\t\tfont-weight: 500;\r\n\t\t\t\tdisplay: flex;\r\n\t\t\t\tflex-direction: column;\r\n\t\t\t\tz-index: 10;\r\n\t\t\t\tposition: relative;\r\n\t\t\t\tpadding-bottom: var(--uui-size-4);\r\n\t\t\t\tbox-sizing: border-box;\r\n\t\t\t}\r\n\r\n\t\t\t#scroll-container {\r\n\t\t\t\theight: 100%;\r\n\t\t\t\toverflow-y: auto;\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-section-sidebar': UmbSectionSidebarElement;\r\n\t}\r\n}\r\n","import type { UmbSectionSidebarContext } from '../section-sidebar/index.js';\r\nimport { UMB_SECTION_SIDEBAR_CONTEXT } from '../section-sidebar/index.js';\r\nimport { UmbTextStyles } from '@umbraco-cms/backoffice/style';\r\nimport { css, html, nothing, customElement, state } from '@umbraco-cms/backoffice/external/lit';\r\nimport { UmbLitElement } from '@umbraco-cms/backoffice/lit-element';\r\nimport { observeMultiple } from '@umbraco-cms/backoffice/observable-api';\r\nimport type { UmbContextRequestEvent } from '@umbraco-cms/backoffice/context-api';\r\n\r\n@customElement('umb-section-sidebar-context-menu')\r\nexport class UmbSectionSidebarContextMenuElement extends UmbLitElement {\r\n\t#sectionSidebarContext?: UmbSectionSidebarContext;\r\n\r\n\t@state()\r\n\tprivate _isOpen = false;\r\n\r\n\t@state()\r\n\tprivate _entityType?: string;\r\n\r\n\t@state()\r\n\tprivate _unique?: string | null;\r\n\r\n\t@state()\r\n\tprivate _headline?: string;\r\n\r\n\tconstructor() {\r\n\t\tsuper();\r\n\r\n\t\tthis.consumeContext(UMB_SECTION_SIDEBAR_CONTEXT, (instance) => {\r\n\t\t\tthis.#sectionSidebarContext = instance;\r\n\t\t\tthis.#observeEntityModel();\r\n\r\n\t\t\tif (this.#sectionSidebarContext) {\r\n\t\t\t\t// make prettier not break the lines on the next 4 lines:\r\n\t\t\t\t// prettier-ignore\r\n\t\t\t\tthis.observe( this.#sectionSidebarContext.contextMenuIsOpen, (value) => (this._isOpen = value), '_observeContextMenuIsOpen');\r\n\t\t\t\t// prettier-ignore\r\n\t\t\t\tthis.observe(this.#sectionSidebarContext.headline, (value) => (this._headline = value), '_observeHeadline');\r\n\t\t\t} else {\r\n\t\t\t\tthis.removeUmbControllerByAlias('_observeContextMenuIsOpen');\r\n\t\t\t\tthis.removeUmbControllerByAlias('_observeHeadline');\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n\r\n\t#observeEntityModel() {\r\n\t\tif (!this.#sectionSidebarContext) {\r\n\t\t\tthis.removeUmbControllerByAlias('_observeEntityModel');\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tthis.observe(\r\n\t\t\tobserveMultiple([this.#sectionSidebarContext.unique, this.#sectionSidebarContext.entityType]),\r\n\t\t\t(values) => {\r\n\t\t\t\tthis._unique = values[0];\r\n\t\t\t\tthis._entityType = values[1];\r\n\t\t\t},\r\n\t\t\t'_observeEntityModel',\r\n\t\t);\r\n\t}\r\n\r\n\t#closeContextMenu() {\r\n\t\tthis.#sectionSidebarContext?.closeContextMenu();\r\n\t}\r\n\r\n\t#onActionExecuted(event: CustomEvent) {\r\n\t\tevent.stopPropagation();\r\n\t\tthis.#closeContextMenu();\r\n\t}\r\n\r\n\t#proxyContextRequests(event: UmbContextRequestEvent) {\r\n\t\tif (!this.#sectionSidebarContext) return;\r\n\t\t// Note for this hack (The if-sentence): [NL]\r\n\t\t// We do not currently have a good enough control to ensure that the proxy is last, meaning if another context is provided at this element, it might respond after the proxy event has been dispatched.\r\n\t\t// To avoid such this hack just prevents proxying the event if its a request for its own context.\r\n\t\tif (event.contextAlias !== UMB_SECTION_SIDEBAR_CONTEXT.contextAlias) {\r\n\t\t\tevent.stopImmediatePropagation();\r\n\t\t\tthis.#sectionSidebarContext.getContextElement()?.dispatchEvent(event.clone());\r\n\t\t}\r\n\t}\r\n\r\n\toverride render() {\r\n\t\treturn html`\r\n\t\t\t${this.#renderBackdrop()}\r\n\t\t\t
\r\n\t\t\t\t\r\n\t\t\t\t${this.#renderModal()}\r\n\t\t\t
\r\n\t\t`;\r\n\t}\r\n\r\n\t#renderBackdrop() {\r\n\t\t// TODO: add keyboard support (close on escape)\r\n\r\n\t\treturn this._isOpen ? html`
` : nothing;\r\n\t}\r\n\r\n\t#renderModal() {\r\n\t\treturn this._isOpen && this._unique !== undefined && this._entityType\r\n\t\t\t? html`\r\n\t\t\t\t\t${this._headline ? html`

${this.localize.string(this._headline)}

` : nothing}\r\n\t\t\t\t\t\r\n\t\t\t\t
`\r\n\t\t\t: nothing;\r\n\t}\r\n\r\n\tstatic override styles = [\r\n\t\tUmbTextStyles,\r\n\t\tcss`\r\n\t\t\t:host {\r\n\t\t\t\tdisplay: block;\r\n\t\t\t\twidth: 100%;\r\n\t\t\t\theight: 100%;\r\n\t\t\t\tz-index: 1;\r\n\t\t\t}\r\n\t\t\t#backdrop {\r\n\t\t\t\tcontent: '';\r\n\t\t\t\tposition: absolute;\r\n\t\t\t\tinset: 0px;\r\n\t\t\t\tbackground-color: black;\r\n\t\t\t\topacity: 0.5;\r\n\t\t\t\twidth: 100vw;\r\n\t\t\t\theight: 100vh;\r\n\t\t\t\tz-index: -1;\r\n\t\t\t}\r\n\t\t\t#relative-wrapper {\r\n\t\t\t\tbackground-color: var(--uui-color-surface);\r\n\t\t\t\tposition: relative;\r\n\t\t\t\tdisplay: flex;\r\n\t\t\t\tflex-direction: column;\r\n\t\t\t\twidth: 100%;\r\n\t\t\t\theight: 100%;\r\n\t\t\t}\r\n\t\t\t#action-modal {\r\n\t\t\t\tposition: absolute;\r\n\t\t\t\theight: 100%;\r\n\t\t\t\tz-index: 1;\r\n\t\t\t\ttop: 0;\r\n\t\t\t\tright: calc(var(--umb-section-sidebar-width) * -1);\r\n\t\t\t\twidth: var(--umb-section-sidebar-width);\r\n\t\t\t\tborder: none;\r\n\t\t\t\tborder-left: 1px solid var(--uui-color-border);\r\n\t\t\t\tborder-right: 1px solid var(--uui-color-border);\r\n\t\t\t\tbackground-color: var(--uui-color-surface);\r\n\t\t\t}\r\n\r\n\t\t\t#action-modal h3 {\r\n\t\t\t\tpadding: var(--uui-size-4) var(--uui-size-8);\r\n\t\t\t\tmargin: 0;\r\n\t\t\t\tmin-height: var(--umb-header-layout-height);\r\n\t\t\t\tbox-sizing: border-box;\r\n\t\t\t\tdisplay: flex;\r\n\t\t\t\talign-items: center;\r\n\t\t\t}\r\n\t\t\t#action-modal umb-entity-action-list {\r\n\t\t\t\t--uui-menu-item-flat-structure: 0;\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-section-sidebar-context-menu': UmbSectionSidebarContextMenuElement;\r\n\t}\r\n}\r\n","import type { ManifestMenu } from '../menu.extension.js';\r\nimport type { ManifestSectionSidebarAppBaseMenu, ManifestSectionSidebarAppMenuKind } from './types.js';\r\nimport { UmbTextStyles } from '@umbraco-cms/backoffice/style';\r\nimport { css, html, customElement, property } from '@umbraco-cms/backoffice/external/lit';\r\nimport type { UmbExtensionManifestKind } from '@umbraco-cms/backoffice/extension-registry';\r\nimport { umbExtensionsRegistry } from '@umbraco-cms/backoffice/extension-registry';\r\nimport { UmbLitElement } from '@umbraco-cms/backoffice/lit-element';\r\n\r\n// TODO: Move to separate file:\r\nconst manifest: UmbExtensionManifestKind = {\r\n\ttype: 'kind',\r\n\talias: 'Umb.Kind.SectionSidebarAppMenu',\r\n\tmatchKind: 'menu',\r\n\tmatchType: 'sectionSidebarApp',\r\n\tmanifest: {\r\n\t\ttype: 'sectionSidebarApp',\r\n\t\telementName: 'umb-section-sidebar-menu',\r\n\t},\r\n};\r\numbExtensionsRegistry.register(manifest);\r\n\r\n@customElement('umb-section-sidebar-menu')\r\nexport class UmbSectionSidebarMenuElement<\r\n\tManifestType extends ManifestSectionSidebarAppBaseMenu = ManifestSectionSidebarAppMenuKind,\r\n> extends UmbLitElement {\r\n\t@property({ type: Object, attribute: false })\r\n\tmanifest?: ManifestType;\r\n\r\n\trenderHeader() {\r\n\t\t/*\r\n\t\tNotice we are not using the UUI-H3 here, we would need to wrap it into uui-text for this to take action,\r\n\t\tbut it does look odd so lets return to this later. I have made a few corrections especially for this component. [NL]\r\n\t\t*/\r\n\t\treturn html`

${this.localize.string(this.manifest?.meta?.label ?? '')}

`;\r\n\t}\r\n\r\n\toverride render() {\r\n\t\treturn html`\r\n\t\t\t${this.renderHeader()}\r\n\t\t\t menu.alias === this.manifest?.meta?.menu}\"\r\n\t\t\t\tdefault-element=\"umb-menu\">\r\n\t\t`;\r\n\t}\r\n\r\n\tstatic override styles = [\r\n\t\tUmbTextStyles,\r\n\t\tcss`\r\n\t\t\th3 {\r\n\t\t\t\tmargin: var(--uui-size-5) 0;\r\n\t\t\t\tpadding: var(--uui-size-4) var(--uui-size-8);\r\n\t\t\t\tfont-size: 15px;\r\n\t\t\t}\r\n\t\t`,\r\n\t];\r\n}\r\n\r\nexport default UmbSectionSidebarMenuElement;\r\n\r\ndeclare global {\r\n\tinterface HTMLElementTagNameMap {\r\n\t\t'umb-section-sidebar-menu': UmbSectionSidebarMenuElement;\r\n\t}\r\n}\r\n","import { UmbSectionSidebarMenuElement } from '../section-sidebar-menu/section-sidebar-menu.element.js';\r\nimport type { ManifestSectionSidebarAppMenuWithEntityActionsKind } from '../section-sidebar-menu/types.js';\r\nimport { css, html, customElement } from '@umbraco-cms/backoffice/external/lit';\r\nimport type { UmbExtensionManifestKind } from '@umbraco-cms/backoffice/extension-registry';\r\nimport { umbExtensionsRegistry } from '@umbraco-cms/backoffice/extension-registry';\r\n\r\nconst manifestWithEntityActions: UmbExtensionManifestKind = {\r\n\ttype: 'kind',\r\n\talias: 'Umb.Kind.SectionSidebarAppMenuWithEntityActions',\r\n\tmatchKind: 'menuWithEntityActions',\r\n\tmatchType: 'sectionSidebarApp',\r\n\tmanifest: {\r\n\t\ttype: 'sectionSidebarApp',\r\n\t\telementName: 'umb-section-sidebar-menu-with-entity-actions',\r\n\t},\r\n};\r\numbExtensionsRegistry.register(manifestWithEntityActions);\r\n\r\n@customElement('umb-section-sidebar-menu-with-entity-actions')\r\nexport class UmbSectionSidebarMenuWithEntityActionsElement extends UmbSectionSidebarMenuElement {\r\n\toverride renderHeader() {\r\n\t\treturn html`\r\n\t\t\t
\r\n\t\t\t\t

${this.localize.string(this.manifest?.meta?.label ?? '')}

\r\n\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\tstatic override styles = [\r\n\t\t...UmbSectionSidebarMenuElement.styles,\r\n\t\tcss`\r\n\t\t\t#header {\r\n\t\t\t\tdisplay: flex;\r\n\t\t\t\tflex-direction: row;\r\n\t\t\t\talign-items: center;\r\n\t\t\t}\r\n\t\t\t#header > :first-child {\r\n\t\t\t\tflex-grow: 1;\r\n\t\t\t}\r\n\t\t`,\r\n\t];\r\n}\r\n\r\nexport default UmbSectionSidebarMenuWithEntityActionsElement;\r\n\r\ndeclare global {\r\n\tinterface HTMLElementTagNameMap {\r\n\t\t'umb-section-sidebar-menu-with-entity-actions': UmbSectionSidebarMenuElement;\r\n\t}\r\n}\r\n","import type { ManifestSection } from '@umbraco-cms/backoffice/section';\r\nimport { UmbStringState } from '@umbraco-cms/backoffice/observable-api';\r\nimport { UmbContextToken } from '@umbraco-cms/backoffice/context-api';\r\n\r\nexport class UmbSectionContext {\r\n\t#manifestAlias = new UmbStringState(undefined);\r\n\t#manifestPathname = new UmbStringState(undefined);\r\n\t#manifestLabel = new UmbStringState(undefined);\r\n\tpublic readonly alias = this.#manifestAlias.asObservable();\r\n\tpublic readonly pathname = this.#manifestPathname.asObservable();\r\n\tpublic readonly label = this.#manifestLabel.asObservable();\r\n\r\n\tconstructor(manifest: ManifestSection) {\r\n\t\tthis.setManifest(manifest);\r\n\t}\r\n\r\n\tpublic setManifest(manifest?: ManifestSection) {\r\n\t\tthis.#manifestAlias.setValue(manifest?.alias);\r\n\t\tthis.#manifestPathname.setValue(manifest?.meta?.pathname);\r\n\t\tthis.#manifestLabel.setValue(manifest ? manifest.meta?.label || manifest.name : undefined);\r\n\t}\r\n\r\n\tgetPathname() {\r\n\t\treturn this.#manifestPathname.getValue();\r\n\t}\r\n}\r\n\r\nexport const UMB_SECTION_CONTEXT = new UmbContextToken('UmbSectionContext');\r\n"],"names":["UMB_SECTION_PICKER_MODAL","UmbModalToken","UMB_SECTION_PATH_PATTERN","UmbPathPattern","UmbSectionPickerInputContext","UmbPickerInputContext","host","UMB_SECTION_ITEM_REPOSITORY_ALIAS","_pickerContext","UmbInputSectionElement","UmbFormControlMixin","UmbLitElement","__privateAdd","__privateGet","selection","selectedItems","value","uniques","selectionString","splitStringToArray","html","item","css","__decorateClass","property","state","customElement","UmbRefSectionElement","UmbElementMixin","UUIRefElement","_UmbSectionDefaultElement_instances","observeRoutes_fn","createRoutes_fn","onSplitPanelChange_fn","UmbSectionDefaultElement","UmbExtensionsElementInitializer","umbExtensionsRegistry","sidebarApps","oldValue","sidebarApp","UMB_MARK_ATTRIBUTE_NAME","__privateMethod","splitPanelPosition","repeat","app","nothing","UmbExtensionsManifestInitializer","sectionRouteExtensions","extensionsWithElement","extension","routes","extensionController","api","createExtensionApi","aliasToPath","createExtensionElement","element","info","event","position","UmbTextStyles","UmbSectionMainElement","LitElement","UmbSectionSidebarContext","UmbContextBase","UMB_SECTION_SIDEBAR_CONTEXT","#contextMenuIsOpen","UmbBooleanState","#entityType","UmbStringState","#unique","#headline","#contextElement","args","UmbContextToken","UmbSectionSidebarElement","_changedProperties","_sectionSidebarContext","_UmbSectionSidebarContextMenuElement_instances","observeEntityModel_fn","closeContextMenu_fn","onActionExecuted_fn","proxyContextRequests_fn","renderBackdrop_fn","renderModal_fn","UmbSectionSidebarContextMenuElement","instance","__privateSet","observeMultiple","values","manifest","UmbSectionSidebarMenuElement","menu","manifestWithEntityActions","UmbSectionSidebarMenuWithEntityActionsElement","UmbSectionContext","#manifestAlias","#manifestPathname","#manifestLabel","UMB_SECTION_CONTEXT"],"mappings":"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"}