{"version":3,"file":"index.js","sources":["../../../src/packages/data-type/reference/repository/constants.ts","../../../src/packages/data-type/components/data-type-input/data-type-input.context.ts","../../../src/packages/data-type/components/data-type-input/data-type-input.element.ts","../../../src/packages/data-type/components/data-type-flow-input/data-type-flow-input.element.ts","../../../src/packages/data-type/components/ref-data-type/ref-data-type.element.ts","../../../src/packages/data-type/components/property-editor-config/property-editor-config.element.ts","../../../src/packages/data-type/repository/manager/data-type-item-repository-manager.ts"],"sourcesContent":["export const UMB_DATA_TYPE_REFERENCE_REPOSITORY_ALIAS = 'Umb.Repository.DataType.Reference';\r\n","import { UMB_DATA_TYPE_ITEM_REPOSITORY_ALIAS } from '../../constants.js';\r\nimport type { UmbDataTypeItemModel } from '../../repository/item/types.js';\r\nimport type { UmbDataTypePickerModalData, UmbDataTypePickerModalValue } from '../../modals/constants.js';\r\nimport { UMB_DATA_TYPE_PICKER_MODAL } from '../../modals/constants.js';\r\nimport type { UmbDataTypeTreeItemModel } from '../../tree/types.js';\r\nimport type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api';\r\nimport { UmbPickerInputContext } from '@umbraco-cms/backoffice/picker-input';\r\n\r\nexport class UmbDataTypePickerInputContext extends UmbPickerInputContext<\r\n\tUmbDataTypeItemModel,\r\n\tUmbDataTypeTreeItemModel,\r\n\tUmbDataTypePickerModalData,\r\n\tUmbDataTypePickerModalValue\r\n> {\r\n\tconstructor(host: UmbControllerHost) {\r\n\t\tsuper(host, UMB_DATA_TYPE_ITEM_REPOSITORY_ALIAS, UMB_DATA_TYPE_PICKER_MODAL);\r\n\t}\r\n}\r\n\r\n/** @deprecated Use `UmbDataTypePickerInputContext` instead. This method will be removed in Umbraco 15. */\r\nexport { UmbDataTypePickerInputContext as UmbDataTypePickerContext };\r\n","import type { UmbDataTypeItemModel } from '../../repository/item/types.js';\r\nimport { UmbDataTypePickerInputContext } from './data-type-input.context.js';\r\nimport { css, html, customElement, nothing, property, repeat, state } from '@umbraco-cms/backoffice/external/lit';\r\nimport { splitStringToArray } from '@umbraco-cms/backoffice/utils';\r\nimport { UmbChangeEvent } from '@umbraco-cms/backoffice/event';\r\nimport { UmbLitElement } from '@umbraco-cms/backoffice/lit-element';\r\nimport { UmbSorterController } from '@umbraco-cms/backoffice/sorter';\r\nimport { UUIFormControlMixin } from '@umbraco-cms/backoffice/external/uui';\r\n\r\n// TODO: Rename to 'umb-input-data-type'. [LK]\r\n@customElement('umb-data-type-input')\r\nexport class UmbDataTypeInputElement extends UUIFormControlMixin(UmbLitElement, '') {\r\n\t#sorter = new UmbSorterController<string>(this, {\r\n\t\tgetUniqueOfElement: (element) => {\r\n\t\t\treturn element.id;\r\n\t\t},\r\n\t\tgetUniqueOfModel: (modelEntry) => {\r\n\t\t\treturn modelEntry;\r\n\t\t},\r\n\t\tidentifier: 'Umb.SorterIdentifier.InputDataType',\r\n\t\titemSelector: 'uui-ref-node-data-type',\r\n\t\tcontainerSelector: 'uui-ref-list',\r\n\t\tonChange: ({ model }) => {\r\n\t\t\tthis.selection = model;\r\n\t\t\tthis.dispatchEvent(new UmbChangeEvent());\r\n\t\t},\r\n\t});\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\t@property({ type: Array })\r\n\tpublic set selection(uniques: Array<string>) {\r\n\t\tthis.#pickerContext.setSelection(uniques ?? []);\r\n\t\tthis.#sorter.setModel(uniques);\r\n\t}\r\n\tpublic get selection(): Array<string> {\r\n\t\treturn this.#pickerContext.getSelection();\r\n\t}\r\n\r\n\t@property()\r\n\tpublic override set value(uniques: string) {\r\n\t\tthis.selection = splitStringToArray(uniques);\r\n\t}\r\n\tpublic override get value(): string {\r\n\t\treturn this.selection.join(',');\r\n\t}\r\n\r\n\t@state()\r\n\tprivate _items?: Array<UmbDataTypeItemModel>;\r\n\r\n\t#pickerContext = new UmbDataTypePickerInputContext(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(',')), '_observeSelection');\r\n\t\tthis.observe(this.#pickerContext.selectedItems, (selectedItems) => (this._items = selectedItems), '_observerItems');\r\n\t}\r\n\r\n\tprotected override getFormElement() {\r\n\t\treturn undefined;\r\n\t}\r\n\r\n\t#openPicker() {\r\n\t\tthis.#pickerContext.openPicker({\r\n\t\t\thideTreeRoot: true,\r\n\t\t});\r\n\t}\r\n\r\n\t#removeItem(item: UmbDataTypeItemModel) {\r\n\t\tthis.#pickerContext.requestRemoveItem(item.unique);\r\n\t}\r\n\r\n\toverride render() {\r\n\t\treturn html`${this.#renderItems()} ${this.#renderAddButton()}`;\r\n\t}\r\n\r\n\t#renderAddButton() {\r\n\t\tif (this.max > 0 && this.selection.length >= this.max) return nothing;\r\n\t\treturn html`\r\n\t\t\t<uui-button\r\n\t\t\t\tid=\"btn-add\"\r\n\t\t\t\tlook=\"placeholder\"\r\n\t\t\t\t@click=${this.#openPicker}\r\n\t\t\t\tlabel=\"${this.localize.term('general_choose')}\"></uui-button>\r\n\t\t`;\r\n\t}\r\n\r\n\t#renderItems() {\r\n\t\tif (!this._items) return nothing;\r\n\t\treturn html`\r\n\t\t\t<uui-ref-list>\r\n\t\t\t\t${repeat(\r\n\t\t\t\t\tthis._items,\r\n\t\t\t\t\t(item) => item.unique,\r\n\t\t\t\t\t(item) => this.#renderItem(item),\r\n\t\t\t\t)}\r\n\t\t\t</uui-ref-list>\r\n\t\t`;\r\n\t}\r\n\r\n\t#renderItem(item: UmbDataTypeItemModel) {\r\n\t\tif (!item.unique) return;\r\n\t\treturn html`\r\n\t\t\t<uui-ref-node-data-type name=${item.name} id=${item.unique}>\r\n\t\t\t\t<uui-action-bar slot=\"actions\">\r\n\t\t\t\t\t<uui-button @click=${() => this.#removeItem(item)} label=${this.localize.term('general_remove')}></uui-button>\r\n\t\t\t\t</uui-action-bar>\r\n\t\t\t</uui-ref-node-data-type>\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 UmbDataTypeInputElement;\r\n\r\ndeclare global {\r\n\tinterface HTMLElementTagNameMap {\r\n\t\t'umb-data-type-input': UmbDataTypeInputElement;\r\n\t}\r\n}\r\n","import { UMB_DATA_TYPE_PICKER_FLOW_MODAL, UMB_DATATYPE_WORKSPACE_MODAL } from '../../constants.js';\r\nimport { css, html, customElement, property, state, type PropertyValueMap } from '@umbraco-cms/backoffice/external/lit';\r\nimport { UmbLitElement } from '@umbraco-cms/backoffice/lit-element';\r\nimport { UmbModalRouteRegistrationController } from '@umbraco-cms/backoffice/router';\r\nimport { UmbChangeEvent } from '@umbraco-cms/backoffice/event';\r\nimport { UMB_VALIDATION_EMPTY_LOCALIZATION_KEY, UmbFormControlMixin } from '@umbraco-cms/backoffice/validation';\r\n\r\n// Note: Does only support picking a single data type. But this could be developed later into this same component. To follow other picker input components.\r\n/**\r\n * Form control for picking or creating a data type.\r\n * @element umb-data-type-flow-input\r\n * @fires change - when the value of the input changes\r\n * @fires blur - when the input loses focus\r\n * @fires focus - when the input gains focus\r\n */\r\n@customElement('umb-data-type-flow-input')\r\nexport class UmbInputDataTypeElement extends UmbFormControlMixin(UmbLitElement, '') {\r\n\tprotected override getFormElement() {\r\n\t\treturn undefined;\r\n\t}\r\n\r\n\t@state()\r\n\tprivate _ids?: Array<string>;\r\n\r\n\t/**\r\n\t * @param {string} dataTypeId\r\n\t * @default\r\n\t */\r\n\t@property({ type: String, attribute: false })\r\n\toverride set value(dataTypeId: string) {\r\n\t\tsuper.value = dataTypeId ?? '';\r\n\t\tthis._ids = super.value\r\n\t\t\t.split(',')\r\n\t\t\t.map((tag) => tag.trim())\r\n\t\t\t.filter((id) => id.length !== 0);\r\n\t}\r\n\toverride get value(): string {\r\n\t\treturn super.value?.toString() ?? '';\r\n\t}\r\n\r\n\t#editDataTypeModal;\r\n\r\n\t@state()\r\n\tprivate _createRoute?: string;\r\n\r\n\tconstructor() {\r\n\t\tsuper();\r\n\r\n\t\tthis.#editDataTypeModal = new UmbModalRouteRegistrationController(this, UMB_DATATYPE_WORKSPACE_MODAL);\r\n\r\n\t\tnew UmbModalRouteRegistrationController(this, UMB_DATA_TYPE_PICKER_FLOW_MODAL)\r\n\t\t\t.onSetup(() => {\r\n\t\t\t\treturn {\r\n\t\t\t\t\tdata: {},\r\n\t\t\t\t\tvalue: { selection: this._ids ?? [] },\r\n\t\t\t\t};\r\n\t\t\t})\r\n\t\t\t.onSubmit((submitData) => {\r\n\t\t\t\t// TODO: we maybe should set the alias to null, if no selection?\r\n\t\t\t\tthis.value = submitData?.selection.join(',') ?? '';\r\n\t\t\t\tthis.dispatchEvent(new UmbChangeEvent());\r\n\t\t\t})\r\n\t\t\t.observeRouteBuilder((routeBuilder) => {\r\n\t\t\t\tthis._createRoute = routeBuilder(null);\r\n\t\t\t});\r\n\t}\r\n\r\n\tprotected override firstUpdated(_changedProperties: PropertyValueMap<any> | Map<PropertyKey, unknown>): void {\r\n\t\tsuper.firstUpdated(_changedProperties);\r\n\r\n\t\tthis.addValidator(\r\n\t\t\t'valueMissing',\r\n\t\t\t() => UMB_VALIDATION_EMPTY_LOCALIZATION_KEY,\r\n\t\t\t() => this.hasAttribute('required') && !this.value,\r\n\t\t);\r\n\t}\r\n\r\n\toverride focus() {\r\n\t\tthis.shadowRoot?.querySelector('umb-ref-data-type')?.focus();\r\n\t}\r\n\r\n\toverride render() {\r\n\t\treturn this._ids && this._ids.length > 0\r\n\t\t\t? html`\r\n\t\t\t\t\t<umb-ref-data-type\r\n\t\t\t\t\t\tdata-type-id=${this._ids[0]}\r\n\t\t\t\t\t\t@open=${() => {\r\n\t\t\t\t\t\t\t// TODO: Could use something smarter for workspace modals, as I would like to avoid setting the rest of the URL here:\r\n\t\t\t\t\t\t\tthis.#editDataTypeModal?.open({}, 'edit/' + this._ids![0]);\r\n\t\t\t\t\t\t}}\r\n\t\t\t\t\t\tstandalone>\r\n\t\t\t\t\t\t<uui-action-bar slot=\"actions\">\r\n\t\t\t\t\t\t\t<uui-button label=\"Change\" .href=${this._createRoute}></uui-button>\r\n\t\t\t\t\t\t</uui-action-bar>\r\n\t\t\t\t\t</umb-ref-data-type>\r\n\t\t\t\t`\r\n\t\t\t: html`\r\n\t\t\t\t\t<uui-button\r\n\t\t\t\t\t\tid=\"empty-state-button\"\r\n\t\t\t\t\t\tlabel=\"Select Property Editor\"\r\n\t\t\t\t\t\tlook=\"placeholder\"\r\n\t\t\t\t\t\tcolor=\"default\"\r\n\t\t\t\t\t\t@blur=${() => {\r\n\t\t\t\t\t\t\tthis.pristine = false;\r\n\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t.href=${this._createRoute}></uui-button>\r\n\t\t\t\t`;\r\n\t}\r\n\r\n\tstatic override styles = [\r\n\t\tcss`\r\n\t\t\t#empty-state-button {\r\n\t\t\t\twidth: 100%;\r\n\t\t\t\t--uui-button-padding-top-factor: 4;\r\n\t\t\t\t--uui-button-padding-bottom-factor: 4;\r\n\t\t\t}\r\n\t\t\t:host(:invalid:not([pristine])) #empty-state-button {\r\n\t\t\t\t--uui-button-border-color: var(--uui-color-danger);\r\n\t\t\t\t--uui-button-border-width: 2px;\r\n\t\t\t\t--uui-button-contrast: var(--uui-color-danger);\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-data-type-flow-input': UmbInputDataTypeElement;\r\n\t}\r\n}\r\n","import { UmbDataTypeDetailRepository } from '../../repository/detail/data-type-detail.repository.js';\r\nimport { UUIIconRequestEvent, UUIRefNodeElement } from '@umbraco-cms/backoffice/external/uui';\r\nimport { html, customElement, property, state, css } from '@umbraco-cms/backoffice/external/lit';\r\nimport { UmbElementMixin } from '@umbraco-cms/backoffice/element-api';\r\nimport { umbExtensionsRegistry } from '@umbraco-cms/backoffice/extension-registry';\r\n\r\n/**\r\n * @element umb-ref-data-type\r\n * @description - Component for displaying a reference to a Data Type\r\n * @augments UUIRefNodeElement\r\n */\r\n@customElement('umb-ref-data-type')\r\nexport class UmbRefDataTypeElement extends UmbElementMixin(UUIRefNodeElement) {\r\n\t@state()\r\n\tprotected override fallbackIcon =\r\n\t\t`<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\" fill=\"currentColor\"><path d=\"M255.981 440.734c-4.422 0-8.895-.159-13.293-.471l1.682-23.62c15.395 1.095 31.076-.014 46.053-3.277l5.039 23.137a185.943 185.943 0 0 1-39.481 4.231zm-43.253-5.094a183.61 183.61 0 0 1-49.174-19.657l11.864-20.49a159.927 159.927 0 0 0 42.833 17.123l-5.523 23.024zm111.734-8.02l-8.781-21.991a160.553 160.553 0 0 0 39.949-23.097l14.666 18.593a184.376 184.376 0 0 1-45.834 26.495zm-185.815-28.926a185.575 185.575 0 0 1-35.652-39.114l19.596-13.293a161.956 161.956 0 0 0 31.105 34.125l-15.049 18.282zm253.834-18.216l-17.492-15.96a161.321 161.321 0 0 0 25.924-38.192l21.297 10.353a184.986 184.986 0 0 1-29.729 43.799zM88.097 333.183a183.381 183.381 0 0 1-14.977-50.791l23.438-3.355a159.869 159.869 0 0 0 13.047 44.243l-21.508 9.903zm345.082-24.798l-22.711-6.705c4.355-14.761 6.566-30.131 6.566-45.679h23.678c0 17.818-2.533 35.444-7.533 52.384zM94.96 252.634l-23.672-.483c.365-17.809 3.266-35.378 8.625-52.224l22.566 7.181c-4.671 14.677-7.203 29.996-7.519 45.526zm320.881-16.346a159.854 159.854 0 0 0-12.115-44.503l21.713-9.45a183.696 183.696 0 0 1 13.908 51.088l-23.506 2.865zM112.546 182.67l-21.072-10.798a184.915 184.915 0 0 1 30.633-43.168l17.154 16.319a161.599 161.599 0 0 0-26.715 37.647zm278.68-14.155a161.801 161.801 0 0 0-30.389-34.763l15.426-17.966a185.512 185.512 0 0 1 34.832 39.846l-19.869 12.883zm-232.239-41.101l-14.273-18.894a184.318 184.318 0 0 1 46.375-25.533l8.322 22.169a160.705 160.705 0 0 0-40.424 22.258zm180.444-9.19a160.053 160.053 0 0 0-42.466-18.02l6.009-22.903a183.633 183.633 0 0 1 48.748 20.684l-12.291 20.239zM224.825 97.956l-4.553-23.239a186.147 186.147 0 0 1 35.705-3.45h.004c5.711 0 11.473.266 17.129.786l-2.174 23.58c-15.306-1.414-31.072-.624-46.111 2.323z\"/></svg>`;\r\n\t//icon-circle-dotted.svg\r\n\r\n\t@property({ type: String, attribute: 'data-type-id' })\r\n\tpublic get dataTypeId(): string | undefined {\r\n\t\treturn undefined;\r\n\t}\r\n\tpublic set dataTypeId(value: string | undefined) {\r\n\t\tthis.setDataTypeId(value);\r\n\t}\r\n\r\n\tasync setDataTypeId(value: string | undefined) {\r\n\t\tif (value) {\r\n\t\t\tthis.observe(\r\n\t\t\t\t(await this.repository.requestByUnique(value)).asObservable(),\r\n\t\t\t\t(dataType) => {\r\n\t\t\t\t\tif (dataType) {\r\n\t\t\t\t\t\tthis.name = dataType.name ?? '';\r\n\t\t\t\t\t\tthis.propertyEditorSchemaAlias = dataType.editorAlias ?? '';\r\n\t\t\t\t\t\tif (dataType.editorUiAlias ?? '' !== this.propertyEditorUiAlias) {\r\n\t\t\t\t\t\t\tthis.propertyEditorUiAlias = dataType.editorUiAlias ?? '';\r\n\t\t\t\t\t\t\tthis.#getIconFromUiAlias();\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t},\r\n\t\t\t\t'dataType',\r\n\t\t\t);\r\n\t\t} else {\r\n\t\t\tthis.removeUmbControllerByAlias('dataType');\r\n\t\t}\r\n\t}\r\n\r\n\trepository = new UmbDataTypeDetailRepository(this);\r\n\r\n\t/**\r\n\t * Property Editor UI Alias\r\n\t */\r\n\t@state()\r\n\tpropertyEditorUiAlias = '';\r\n\r\n\t/**\r\n\t * Property Editor Model Alias\r\n\t */\r\n\t@state()\r\n\tpropertyEditorSchemaAlias = '';\r\n\r\n\tasync #getIconFromUiAlias() {\r\n\t\tif (!this.propertyEditorUiAlias) return;\r\n\t\tthis.observe(\r\n\t\t\tumbExtensionsRegistry.byTypeAndAlias('propertyEditorUi', this.propertyEditorUiAlias),\r\n\t\t\tasync (manifestPropertyEditorUi) => {\r\n\t\t\t\tconst icon = manifestPropertyEditorUi?.meta.icon;\r\n\t\t\t\t/**\r\n\t\t\t\t * [LI] We have the icon name now, but because this element extends from uui-ref-node, it wants the icon via the icon slot.\r\n\t\t\t\t * From what I can see, this is not possible via this file, but this is the file that have the datatype data....\r\n\t\t\t\t * Instead, overwriting the fallbackIcon property which requires a SVG...\r\n\t\t\t\t */\r\n\t\t\t\tif (icon) {\r\n\t\t\t\t\tthis.#requestIconSVG(icon);\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t\t'_observeIcon',\r\n\t\t);\r\n\t}\r\n\r\n\t#requestIconSVG(iconName: string) {\r\n\t\tif (iconName !== '' && iconName !== null) {\r\n\t\t\tconst event = new UUIIconRequestEvent(UUIIconRequestEvent.ICON_REQUEST, {\r\n\t\t\t\tdetail: { iconName: iconName },\r\n\t\t\t});\r\n\t\t\tthis.dispatchEvent(event);\r\n\t\t\tif (event.icon !== null) {\r\n\t\t\t\tevent.icon.then((iconSvg: string) => {\r\n\t\t\t\t\tthis.fallbackIcon = iconSvg;\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\tprotected override renderDetail() {\r\n\t\tconst details: string[] = [];\r\n\r\n\t\tif (this.propertyEditorUiAlias !== '') {\r\n\t\t\tdetails.push(this.propertyEditorUiAlias);\r\n\t\t} else {\r\n\t\t\tdetails.push('Property Editor UI Missing');\r\n\t\t}\r\n\t\t/*\r\n\t\t// TODO: Revisit if its fine to leave this out:\r\n\t\tif (this.propertyEditorSchemaAlias !== '') {\r\n\t\t\tdetails.push(this.propertyEditorSchemaAlias);\r\n\t\t} else {\r\n\t\t\tdetails.push('Property Editor Model Missing');\r\n\t\t}\r\n\t\t*/\r\n\r\n\t\tif (this.detail !== '') {\r\n\t\t\tdetails.push(this.detail);\r\n\t\t}\r\n\t\treturn html`<small id=\"detail\">${details.join(' | ')}<slot name=\"detail\"></slot></small>`;\r\n\t}\r\n\r\n\tstatic override styles = [\r\n\t\t...UUIRefNodeElement.styles,\r\n\t\tcss`\r\n\t\t\t#detail {\r\n\t\t\t\tword-break: break-all;\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-data-type': UmbRefDataTypeElement;\r\n\t}\r\n}\r\n","import { UMB_DATA_TYPE_WORKSPACE_CONTEXT } from '../../workspace/data-type-workspace.context-token.js';\r\nimport { html, customElement, state, ifDefined, repeat } from '@umbraco-cms/backoffice/external/lit';\r\nimport { UmbTextStyles } from '@umbraco-cms/backoffice/style';\r\nimport type { PropertyEditorSettingsProperty } from '@umbraco-cms/backoffice/property-editor';\r\nimport { UmbLitElement } from '@umbraco-cms/backoffice/lit-element';\r\nimport { UmbDataPathPropertyValueQuery } from '@umbraco-cms/backoffice/validation';\r\n\r\n/**\r\n * @element umb-property-editor-config\r\n * @description - Element for displaying the configuration for a Property Editor based on a Property Editor UI Alias and a Property Editor Model alias.\r\n * This element requires a UMB_DATA_TYPE_WORKSPACE_CONTEXT to be present.\r\n */\r\n@customElement('umb-property-editor-config')\r\nexport class UmbPropertyEditorConfigElement extends UmbLitElement {\r\n\t// TODO: Make this element generic, so its not bound to DATA-TYPEs. This will require moving some functionality of Data-Type-Context to this. and this might need to self provide a variant Context for its inner property editor UIs. [NL]\r\n\t#workspaceContext?: typeof UMB_DATA_TYPE_WORKSPACE_CONTEXT.TYPE;\r\n\r\n\t@state()\r\n\tprivate _properties: Array<PropertyEditorSettingsProperty> = [];\r\n\r\n\tconstructor() {\r\n\t\tsuper();\r\n\r\n\t\t// This now connects to the workspace, as the variant does not know about the layout details.\r\n\t\tthis.consumeContext(UMB_DATA_TYPE_WORKSPACE_CONTEXT, (instance) => {\r\n\t\t\tthis.#workspaceContext = instance;\r\n\t\t\tthis.#observeProperties();\r\n\t\t});\r\n\t}\r\n\r\n\t#observeProperties() {\r\n\t\tif (!this.#workspaceContext) return;\r\n\t\tthis.observe(\r\n\t\t\tthis.#workspaceContext.properties,\r\n\t\t\t(properties) => {\r\n\t\t\t\tthis._properties = properties as Array<PropertyEditorSettingsProperty>;\r\n\t\t\t},\r\n\t\t\t'observeProperties',\r\n\t\t);\r\n\t}\r\n\r\n\toverride render() {\r\n\t\treturn this._properties?.length > 0\r\n\t\t\t? repeat(\r\n\t\t\t\t\tthis._properties,\r\n\t\t\t\t\t(property) => property.alias,\r\n\t\t\t\t\t(property) =>\r\n\t\t\t\t\t\thtml`<umb-property\r\n\t\t\t\t\t\t\tdata-path=\"$.values[${UmbDataPathPropertyValueQuery(property)}].value\"\r\n\t\t\t\t\t\t\tlabel=${property.label}\r\n\t\t\t\t\t\t\tdescription=${ifDefined(property.description)}\r\n\t\t\t\t\t\t\talias=${property.alias}\r\n\t\t\t\t\t\t\tproperty-editor-ui-alias=${property.propertyEditorUiAlias}\r\n\t\t\t\t\t\t\t.config=${property.config}></umb-property>`,\r\n\t\t\t\t)\r\n\t\t\t: html`<umb-localize key=\"editdatatype_noConfiguration\"\r\n\t\t\t\t\t>There is no configuration for this property editor.</umb-localize\r\n\t\t\t\t>`;\r\n\t}\r\n\r\n\tstatic override styles = [UmbTextStyles];\r\n}\r\n\r\nexport default UmbPropertyEditorConfigElement;\r\n\r\ndeclare global {\r\n\tinterface HTMLElementTagNameMap {\r\n\t\t'umb-property-editor-config': UmbPropertyEditorConfigElement;\r\n\t}\r\n}\r\n","import type { UmbDataTypeItemModel } from '../item/types.js';\r\nimport { UMB_DATA_TYPE_ITEM_REPOSITORY_ALIAS } from '../item/constants.js';\r\nimport { UmbRepositoryItemsManager } from '@umbraco-cms/backoffice/repository';\r\nimport type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api';\r\n\r\nexport class UmbDataTypeItemRepositoryManager extends UmbRepositoryItemsManager<UmbDataTypeItemModel> {\r\n\tconstructor(host: UmbControllerHost) {\r\n\t\tsuper(host, UMB_DATA_TYPE_ITEM_REPOSITORY_ALIAS);\r\n\t}\r\n}\r\n"],"names":["UMB_DATA_TYPE_REFERENCE_REPOSITORY_ALIAS","UmbDataTypePickerInputContext","UmbPickerInputContext","host","UMB_DATA_TYPE_ITEM_REPOSITORY_ALIAS","UMB_DATA_TYPE_PICKER_MODAL","_sorter","_pickerContext","_UmbDataTypeInputElement_instances","openPicker_fn","removeItem_fn","renderAddButton_fn","renderItems_fn","renderItem_fn","UmbDataTypeInputElement","UUIFormControlMixin","UmbLitElement","__privateAdd","UmbSorterController","element","modelEntry","model","UmbChangeEvent","__privateGet","selection","selectedItems","value","uniques","splitStringToArray","html","__privateMethod","item","nothing","repeat","css","__decorateClass","property","state","customElement","_editDataTypeModal","UmbInputDataTypeElement","UmbFormControlMixin","__privateSet","UmbModalRouteRegistrationController","UMB_DATATYPE_WORKSPACE_MODAL","UMB_DATA_TYPE_PICKER_FLOW_MODAL","submitData","routeBuilder","dataTypeId","tag","id","_changedProperties","UMB_VALIDATION_EMPTY_LOCALIZATION_KEY","_UmbRefDataTypeElement_instances","getIconFromUiAlias_fn","requestIconSVG_fn","UmbRefDataTypeElement","UmbElementMixin","UUIRefNodeElement","UmbDataTypeDetailRepository","dataType","details","umbExtensionsRegistry","manifestPropertyEditorUi","icon","iconName","event","UUIIconRequestEvent","iconSvg","_workspaceContext","_UmbPropertyEditorConfigElement_instances","observeProperties_fn","UmbPropertyEditorConfigElement","UMB_DATA_TYPE_WORKSPACE_CONTEXT","instance","UmbDataPathPropertyValueQuery","ifDefined","properties","UmbTextStyles","UmbDataTypeItemRepositoryManager","UmbRepositoryItemsManager"],"mappings":";;;;;;;;;;;;;;;;;;AAAO,MAAMA,KAA2C;ACQjD,MAAMC,WAAsCC,GAKjD;AAAA,EACD,YAAYC,GAAyB;AAC9B,UAAAA,GAAMC,GAAqCC,EAA0B;AAAA,EAAA;AAE7E;;;;;;;+TCjBAC,GAAAC,GAAAC,GAAAC,GAAAC,GAAAC,GAAAC,GAAAC;AAWO,IAAMC,IAAN,cAAsCC,GAAoBC,GAAe,EAAE,EAAE;AAAA,EAqFnF,cAAc;AACP,UAAA,GAtFDC,EAAA,MAAAT,CAAA,GACIS,EAAA,MAAAX,GAAA,IAAIY,GAA4B,MAAM;AAAA,MAC/C,oBAAoB,CAACC,MACbA,EAAQ;AAAA,MAEhB,kBAAkB,CAACC,MACXA;AAAA,MAER,YAAY;AAAA,MACZ,cAAc;AAAA,MACd,mBAAmB;AAAA,MACnB,UAAU,CAAC,EAAE,OAAAC,QAAY;AACxB,aAAK,YAAYA,GACZ,KAAA,cAAc,IAAIC,GAAgB;AAAA,MAAA;AAAA,IACxC,CACA,CAAA,GAuBY,KAAA,aAAA,8BAuBA,KAAA,aAAA,kDAsBIL,EAAA,MAAAV,GAAA,IAAIN,GAA8B,IAAI,CAAA,GAKjD,KAAA;AAAA,MACJ;AAAA,MACA,MAAM,KAAK;AAAA,MACX,MAAM,CAAC,CAAC,KAAK,OAAOsB,QAAKhB,CAAe,EAAA,aAAA,EAAe,SAAS,KAAK;AAAA,IACtE,GAEK,KAAA;AAAA,MACJ;AAAA,MACA,MAAM,KAAK;AAAA,MACX,MAAM,CAAC,CAAC,KAAK,OAAOgB,QAAKhB,CAAe,EAAA,aAAA,EAAe,SAAS,KAAK;AAAA,IACtE,GAEA,KAAK,QAAQgB,EAAA,MAAKhB,CAAe,EAAA,WAAW,CAACiB,MAAe,KAAK,QAAQA,EAAU,KAAK,GAAG,GAAI,mBAAmB,GAC7G,KAAA,QAAQD,QAAKhB,CAAe,EAAA,eAAe,CAACkB,MAAmB,KAAK,SAASA,GAAgB,gBAAgB;AAAA,EAAA;AAAA,EA7EnH,IAAW,IAAIC,GAAe;AAC7BH,IAAAA,EAAA,MAAKhB,GAAe,MAAMmB;AAAA,EAAA;AAAA,EAE3B,IAAW,MAAc;AACxB,WAAOH,QAAKhB,CAAe,EAAA;AAAA,EAAA;AAAA,EAmB5B,IAAW,IAAImB,GAAe;AAC7BH,IAAAA,EAAA,MAAKhB,GAAe,MAAMmB;AAAA,EAAA;AAAA,EAE3B,IAAW,MAAc;AACxB,WAAOH,QAAKhB,CAAe,EAAA;AAAA,EAAA;AAAA,EAa5B,IAAW,UAAUoB,GAAwB;AAC5CJ,IAAAA,EAAA,MAAKhB,CAAe,EAAA,aAAaoB,KAAW,CAAA,CAAE,GACzCJ,EAAA,MAAAjB,CAAA,EAAQ,SAASqB,CAAO;AAAA,EAAA;AAAA,EAE9B,IAAW,YAA2B;AAC9B,WAAAJ,EAAA,MAAKhB,GAAe,aAAa;AAAA,EAAA;AAAA,EAIzC,IAAoB,MAAMoB,GAAiB;AACrC,SAAA,YAAYC,GAAmBD,CAAO;AAAA,EAAA;AAAA,EAE5C,IAAoB,QAAgB;AAC5B,WAAA,KAAK,UAAU,KAAK,GAAG;AAAA,EAAA;AAAA,EA2BZ,iBAAiB;AAAA,EAC5B;AAAA,EAaC,SAAS;AACjB,WAAOE,IAAOC,EAAK,MAAAtB,GAAAI,CAAA,EAAL,UAAmB,IAAIkB,EAAA,MAAKtB,MAAL,KAAuB,IAAA,CAAA;AAAA,EAAA;AA6C9D;AAnKCF,IAAA,oBAAA,QAAA;AAkFAC,IAAA,oBAAA,QAAA;AAnFMC,IAAA,oBAAA,QAAA;AA4GNC,IAAW,WAAG;AACbc,EAAAA,EAAA,MAAKhB,GAAe,WAAW;AAAA,IAC9B,cAAc;AAAA,EAAA,CACd;AACF;AAEAG,IAAW,SAACqB,GAA4B;AAClCR,EAAAA,EAAA,MAAAhB,CAAA,EAAe,kBAAkBwB,EAAK,MAAM;AAClD;AAMApB,IAAgB,WAAG;AACd,SAAA,KAAK,MAAM,KAAK,KAAK,UAAU,UAAU,KAAK,MAAYqB,IACvDH;AAAA;AAAA;AAAA;AAAA,aAIIC,QAAKtB,GAAWC,CAAA,CAAA;AAAA,aAChB,KAAK,SAAS,KAAK,gBAAgB,CAAC;AAAA;AAEhD;AAEAG,IAAY,WAAG;AACV,SAAC,KAAK,SACHiB;AAAA;AAAA,MAEHI;AAAA,IACD,KAAK;AAAA,IACL,CAACF,MAASA,EAAK;AAAA,IACf,CAACA,MAASD,EAAK,MAAAtB,GAAAK,CAAA,EAAL,KAAiB,MAAAkB,CAAA;AAAA,EAC3B,CAAA;AAAA;AAAA,MAPsBC;AAU1B;AAEAnB,IAAW,SAACkB,GAA4B;AACnC,MAACA,EAAK;AACH,WAAAF;AAAA,kCACyBE,EAAK,IAAI,OAAOA,EAAK,MAAM;AAAA;AAAA,0BAEnC,MAAMD,EAAK,MAAAtB,GAAAE,CAAA,EAAL,KAAiB,MAAAqB,CAAA,CAAK,UAAU,KAAK,SAAS,KAAK,gBAAgB,CAAC;AAAA;AAAA;AAAA;AAInG;AA3JYjB,EA6JI,SAAS;AAAA,EACxBoB;AAAA;AAAA;AAAA;AAAA;AAKD;AA3IWC,EAAA;AAAA,EADVC,EAAS,EAAE,MAAM,OAAQ,CAAA;AAAA,GAvBdtB,EAwBD,WAAA,OAAA,CAAA;AAcXqB,EAAA;AAAA,EADCC,EAAS,EAAE,MAAM,QAAQ,WAAW,cAAe,CAAA;AAAA,GArCxCtB,EAsCZ,WAAA,cAAA,CAAA;AASWqB,EAAA;AAAA,EADVC,EAAS,EAAE,MAAM,OAAQ,CAAA;AAAA,GA9CdtB,EA+CD,WAAA,OAAA,CAAA;AAcXqB,EAAA;AAAA,EADCC,EAAS,EAAE,MAAM,QAAQ,WAAW,cAAe,CAAA;AAAA,GA5DxCtB,EA6DZ,WAAA,cAAA,CAAA;AAGWqB,EAAA;AAAA,EADVC,EAAS,EAAE,MAAM,MAAO,CAAA;AAAA,GA/DbtB,EAgED,WAAA,aAAA,CAAA;AASSqB,EAAA;AAAA,EADnBC,EAAS;AAAA,GAxEEtB,EAyEQ,WAAA,SAAA,CAAA;AAQZqB,EAAA;AAAA,EADPE,EAAM;AAAA,GAhFKvB,EAiFJ,WAAA,UAAA,CAAA;AAjFIA,IAANqB,EAAA;AAAA,EADNG,EAAc,qBAAqB;AAAA,GACvBxB,CAAA;;;;;;;mUCXbyB;AAgBO,IAAMC,IAAN,cAAsCC,GAAoBzB,GAAe,EAAE,EAAE;AAAA,EA6BnF,cAAc;AACP,UAAA,GANPC,GAAA,MAAAsB,CAAA,GAQCG,GAAA,MAAKH,GAAqB,IAAII,EAAoC,MAAMC,EAA4B,CAAA,GAEpG,IAAID,EAAoC,MAAME,EAA+B,EAC3E,QAAQ,OACD;AAAA,MACN,MAAM,CAAC;AAAA,MACP,OAAO,EAAE,WAAW,KAAK,QAAQ,CAAG,EAAA;AAAA,IACrC,EACA,EACA,SAAS,CAACC,MAAe;AAEzB,WAAK,QAAQA,GAAY,UAAU,KAAK,GAAG,KAAK,IAC3C,KAAA,cAAc,IAAIxB,GAAgB;AAAA,IAAA,CACvC,EACA,oBAAoB,CAACyB,MAAiB;AACjC,WAAA,eAAeA,EAAa,IAAI;AAAA,IAAA,CACrC;AAAA,EAAA;AAAA,EA/CgB,iBAAiB;AAAA,EAC5B;AAAA,EAWR,IAAa,MAAMC,GAAoB;AACtC,UAAM,QAAQA,KAAc,IAC5B,KAAK,OAAO,MAAM,MAChB,MAAM,GAAG,EACT,IAAI,CAACC,MAAQA,EAAI,KAAM,CAAA,EACvB,OAAO,CAACC,MAAOA,EAAG,WAAW,CAAC;AAAA,EAAA;AAAA,EAEjC,IAAa,QAAgB;AACrB,WAAA,MAAM,OAAO,SAAA,KAAc;AAAA,EAAA;AAAA,EA8BhB,aAAaC,GAA6E;AAC5G,UAAM,aAAaA,CAAkB,GAEhC,KAAA;AAAA,MACJ;AAAA,MACA,MAAMC;AAAA,MACN,MAAM,KAAK,aAAa,UAAU,KAAK,CAAC,KAAK;AAAA,IAC9C;AAAA,EAAA;AAAA,EAGQ,QAAQ;AAChB,SAAK,YAAY,cAAc,mBAAmB,GAAG,MAAM;AAAA,EAAA;AAAA,EAGnD,SAAS;AACjB,WAAO,KAAK,QAAQ,KAAK,KAAK,SAAS,IACpCvB;AAAA;AAAA,qBAEgB,KAAK,KAAK,CAAC,CAAC;AAAA,cACnB,MAAM;AAERN,MAAAA,GAAA,MAAAgB,CAAA,GAAoB,KAAK,IAAI,UAAU,KAAK,KAAM,CAAC,CAAC;AAAA,IACzD,CAAA;AAAA;AAAA;AAAA,0CAGmC,KAAK,YAAY;AAAA;AAAA;AAAA,QAItDV;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,cAMS,MAAM;AACb,WAAK,WAAW;AAAA,IAChB,CAAA;AAAA,cACO,KAAK,YAAY;AAAA;AAAA,EAAA;AAkB/B;AAnFCU,IAAA,oBAAA,QAAA;AAxBYC,EA6FI,SAAS;AAAA,EACxBN;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAYD;AApGQC,EAAA;AAAA,EADPE,EAAM;AAAA,GALKG,EAMJ,WAAA,QAAA,CAAA;AAOKL,EAAA;AAAA,EADZC,EAAS,EAAE,MAAM,QAAQ,WAAW,GAAO,CAAA;AAAA,GAZhCI,EAaC,WAAA,SAAA,CAAA;AAcLL,EAAA;AAAA,EADPE,EAAM;AAAA,GA1BKG,EA2BJ,WAAA,gBAAA,CAAA;AA3BIA,IAANL,EAAA;AAAA,EADNG,EAAc,0BAA0B;AAAA,GAC5BE,CAAA;;;;;;;iPChBba,GAAAC,GAAAC;AAYO,IAAMC,IAAN,cAAoCC,GAAgBC,CAAiB,EAAE;AAAA,EAAvE,cAAA;AAAA,UAAA,GAAA,SAAA,GAAAzC,GAAA,MAAAoC,CAAA,GAEN,KAAmB,eAClB,wvDAgCY,KAAA,aAAA,IAAIM,GAA4B,IAAI,GAMzB,KAAA,wBAAA,IAMI,KAAA,4BAAA;AAAA,EAAA;AAAA,EAxC5B,IAAW,aAAiC;AAAA,EACpC;AAAA,EAER,IAAW,WAAWjC,GAA2B;AAChD,SAAK,cAAcA,CAAK;AAAA,EAAA;AAAA,EAGzB,MAAM,cAAcA,GAA2B;AAC9C,IAAIA,IACE,KAAA;AAAA,OACH,MAAM,KAAK,WAAW,gBAAgBA,CAAK,GAAG,aAAa;AAAA,MAC5D,CAACkC,MAAa;AACb,QAAIA,MACE,KAAA,OAAOA,EAAS,QAAQ,IACxB,KAAA,4BAA4BA,EAAS,eAAe,KACrDA,EAAS,iBAAwB,KAAK,0BAAZ,QACxB,KAAA,wBAAwBA,EAAS,iBAAiB,IACvD9B,EAAA,MAAKuB,GAALC,CAAA,EAAA,KAAA,IAAA;AAAA,MAGH;AAAA,MACA;AAAA,IACD,IAEA,KAAK,2BAA2B,UAAU;AAAA,EAC3C;AAAA,EAkDkB,eAAe;AACjC,UAAMO,IAAoB,CAAC;AAEvB,WAAA,KAAK,0BAA0B,KAC1BA,EAAA,KAAK,KAAK,qBAAqB,IAEvCA,EAAQ,KAAK,4BAA4B,GAWtC,KAAK,WAAW,MACXA,EAAA,KAAK,KAAK,MAAM,GAElBhC,uBAA0BgC,EAAQ,KAAK,KAAK,CAAC;AAAA,EAAA;AAWtD;AAjHOR,IAAA,oBAAA,QAAA;AAiDAC,IAAmB,iBAAG;AACvB,EAAC,KAAK,yBACL,KAAA;AAAA,IACJQ,GAAsB,eAAe,oBAAoB,KAAK,qBAAqB;AAAA,IACnF,OAAOC,MAA6B;AAC7B,YAAAC,IAAOD,GAA0B,KAAK;AAM5C,MAAIC,KACHlC,EAAA,MAAKuB,MAAL,KAAqB,MAAAW,CAAA;AAAA,IAEvB;AAAA,IACA;AAAA,EACD;AACD;AAEAT,IAAe,SAACU,GAAkB;AAC7B,MAAAA,MAAa,MAAMA,MAAa,MAAM;AACzC,UAAMC,IAAQ,IAAIC,EAAoBA,EAAoB,cAAc;AAAA,MACvE,QAAQ,EAAE,UAAAF,EAAmB;AAAA,IAAA,CAC7B;AACD,SAAK,cAAcC,CAAK,GACpBA,EAAM,SAAS,QACZA,EAAA,KAAK,KAAK,CAACE,MAAoB;AACpC,WAAK,eAAeA;AAAA,IAAA,CACpB;AAAA,EACF;AAEF;AAhFYZ,EAyGI,SAAS;AAAA,EACxB,GAAGE,EAAkB;AAAA,EACrBxB;AAAA;AAAA;AAAA;AAAA;AAKD;AA9GmBC,EAAA;AAAA,EADlBE,EAAM;AAAA,GADKmB,EAEO,WAAA,gBAAA,CAAA;AAKRrB,EAAA;AAAA,EADVC,EAAS,EAAE,MAAM,QAAQ,WAAW,eAAgB,CAAA;AAAA,GANzCoB,EAOD,WAAA,cAAA,CAAA;AAkCXrB,EAAA;AAAA,EADCE,EAAM;AAAA,GAxCKmB,EAyCZ,WAAA,yBAAA,CAAA;AAMArB,EAAA;AAAA,EADCE,EAAM;AAAA,GA9CKmB,EA+CZ,WAAA,6BAAA,CAAA;AA/CYA,IAANrB,EAAA;AAAA,EADNG,EAAc,mBAAmB;AAAA,GACrBkB,CAAA;;;;;;;0XCZba,GAAAC,GAAAC;AAaa,IAAAC,IAAN,cAA6CxD,EAAc;AAAA,EAOjE,cAAc;AACP,UAAA,GARDC,EAAA,MAAAqD,CAAA,GAENrD,EAAA,MAAAoD,CAAA,GAGA,KAAQ,cAAqD,CAAC,GAMxD,KAAA,eAAeI,IAAiC,CAACC,MAAa;AAClE,MAAAhC,GAAA,MAAK2B,GAAoBK,CAAA,GACzB5C,GAAA,MAAKwC,GAALC,EAAA,EAAA,KAAA,IAAA;AAAA,IAAA,CACA;AAAA,EAAA;AAAA,EAcO,SAAS;AACV,WAAA,KAAK,aAAa,SAAS,IAC/BtC;AAAA,MACA,KAAK;AAAA,MACL,CAACG,MAAaA,EAAS;AAAA,MACvB,CAACA,MACAP;AAAA,6BACuB8C,GAA8BvC,CAAQ,CAAC;AAAA,eACrDA,EAAS,KAAK;AAAA,qBACRwC,GAAUxC,EAAS,WAAW,CAAC;AAAA,eACrCA,EAAS,KAAK;AAAA,kCACKA,EAAS,qBAAqB;AAAA,iBAC/CA,EAAS,MAAM;AAAA,IAE3B,IAAAP;AAAA;AAAA;AAAA,EAAA;AAML;AA9CCwC,IAAA,oBAAA,QAAA;AAFMC,IAAA,oBAAA,QAAA;AAiBNC,KAAkB,WAAG;AAChB,EAAChD,QAAK8C,CAAmB,KACxB,KAAA;AAAA,IACJ9C,QAAK8C,CAAkB,EAAA;AAAA,IACvB,CAACQ,MAAe;AACf,WAAK,cAAcA;AAAA,IACpB;AAAA,IACA;AAAA,EACD;AACD;AA1BYL,EA+CI,SAAS,CAACM,EAAa;AA1C/B3C,GAAA;AAAA,EADPE,EAAM;AAAA,GAJKmC,EAKJ,WAAA,eAAA,CAAA;AALIA,IAANrC,GAAA;AAAA,EADNG,EAAc,4BAA4B;AAAA,GAC9BkC,CAAA;ACRN,MAAMO,WAAyCC,GAAgD;AAAA,EACrG,YAAY7E,GAAyB;AACpC,UAAMA,GAAMC,CAAmC;AAAA,EAAA;AAEjD;"}