{"version":3,"file":"unsupported-property.element-Dd3V2WoH.js","sources":["../../../src/packages/core/property/components/property-layout/property-layout.element.ts","../../../src/packages/core/property/property-dataset/property-dataset-context.token.ts","../../../src/packages/core/property/property-dataset/nameable-property-dataset-context.token.ts","../../../src/packages/core/property/property-dataset/property-dataset-base-context.ts","../../../src/packages/core/property/property-dataset/property-dataset.element.ts","../../../src/packages/core/property/components/property/property.context.ts","../../../src/packages/core/property/components/property/property.element.ts","../../../src/packages/core/property/components/unsupported-property/unsupported-property.element.ts"],"sourcesContent":["import { css, customElement, html, property, when } from '@umbraco-cms/backoffice/external/lit';\r\nimport { UmbLitElement } from '@umbraco-cms/backoffice/lit-element';\r\nimport { UmbTextStyles } from '@umbraco-cms/backoffice/style';\r\n\r\nimport '@umbraco-cms/backoffice/ufm';\r\n\r\n/**\r\n * @element umb-property-layout\r\n * @description - Element for displaying a property in an workspace.\r\n * @slot editor - Slot for rendering the Property Editor\r\n * @slot description - Slot for rendering things below the label.\r\n * @slot action-menu - Slot for rendering the Property Action Menu\r\n */\r\n@customElement('umb-property-layout')\r\nexport class UmbPropertyLayoutElement extends UmbLitElement {\r\n\t/**\r\n\t * Alias. The technical name of the property.\r\n\t * @type {string}\r\n\t * @attr\r\n\t * @default ''\r\n\t */\r\n\t@property({ type: String })\r\n\tpublic alias = '';\r\n\r\n\t/**\r\n\t * Label. Name of the property.\r\n\t * @type {string}\r\n\t * @attr\r\n\t * @default ''\r\n\t */\r\n\t@property({ type: String })\r\n\tpublic label = '';\r\n\r\n\t/**\r\n\t * Orientation: Horizontal is the default where label goes left and editor right.\r\n\t * Vertical is where label goes above the editor.\r\n\t * @enum ['horizontal', 'vertical']\r\n\t * @attr\r\n\t * @default ''\r\n\t */\r\n\t@property({ type: String, reflect: true })\r\n\tpublic orientation: 'horizontal' | 'vertical' = 'horizontal';\r\n\r\n\t/**\r\n\t * Description: render a description underneath the label.\r\n\t * @type {string}\r\n\t * @attr\r\n\t * @default ''\r\n\t */\r\n\t@property({ type: String })\r\n\tpublic description = '';\r\n\r\n\t/**\r\n\t * @description Make the property appear invalid.\r\n\t * @type {boolean}\r\n\t * @attr\r\n\t * @default undefined\r\n\t */\r\n\t@property({ type: Boolean, reflect: true })\r\n\tpublic invalid?: boolean;\r\n\r\n\t/**\r\n\t * @description Display a mandatory indicator.\r\n\t * @type {boolean}\r\n\t * @attr\r\n\t * @default false\r\n\t */\r\n\t@property({ type: Boolean, reflect: true })\r\n\tpublic mandatory?: boolean;\r\n\r\n\toverride render() {\r\n\t\t// TODO: Only show alias on label if user has access to DocumentType within settings:\r\n\t\treturn html`\r\n\t\t\t<div id=\"headerColumn\">\r\n\t\t\t\t<uui-label id=\"label\" title=${this.alias} ?required=${this.mandatory}>\r\n\t\t\t\t\t${this.localize.string(this.label)}\r\n\t\t\t\t\t${when(this.invalid, () => html`<uui-badge color=\"danger\" attention>!</uui-badge>`)}\r\n\t\t\t\t</uui-label>\r\n\t\t\t\t<slot name=\"action-menu\"></slot>\r\n\t\t\t\t${this.#renderDescription()}\r\n\t\t\t\t<slot name=\"description\"></slot>\r\n\t\t\t</div>\r\n\t\t\t<div id=\"editorColumn\">\r\n\t\t\t\t<umb-form-validation-message>\r\n\t\t\t\t\t<slot name=\"editor\"></slot>\r\n\t\t\t\t</umb-form-validation-message>\r\n\t\t\t</div>\r\n\t\t`;\r\n\t}\r\n\r\n\t#renderDescription() {\r\n\t\tif (!this.description) return;\r\n\t\tconst ufmValue = { alias: this.alias, label: this.label, description: this.description };\r\n\t\treturn html`<umb-ufm-render id=\"description\" .markdown=${this.description} .value=${ufmValue}></umb-ufm-render>`;\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: grid;\r\n\t\t\t\tgrid-template-columns: 200px minmax(0, 1fr);\r\n\t\t\t\tcolumn-gap: var(--uui-size-layout-2);\r\n\t\t\t\tborder-bottom: 1px solid var(--uui-color-divider);\r\n\t\t\t\tpadding: var(--uui-size-layout-1) 0;\r\n\t\t\t}\r\n\r\n\t\t\t:host(:last-of-type) {\r\n\t\t\t\tborder-bottom: none;\r\n\t\t\t}\r\n\r\n\t\t\t:host > div {\r\n\t\t\t\tgrid-column: span 2;\r\n\t\t\t}\r\n\t\t\t/*@container (width > 600px) {*/\r\n\t\t\t:host(:not([orientation='vertical'])) > div {\r\n\t\t\t\tgrid-column: span 1;\r\n\t\t\t}\r\n\t\t\t/*}*/\r\n\r\n\t\t\t#headerColumn {\r\n\t\t\t\tposition: relative;\r\n\t\t\t\theight: min-content;\r\n\t\t\t}\r\n\t\t\t/*@container (width > 600px) {*/\r\n\t\t\t:host(:not([orientation='vertical'])) #headerColumn {\r\n\t\t\t\tposition: sticky;\r\n\t\t\t\ttop: calc(var(--uui-size-space-2) * -1);\r\n\t\t\t}\r\n\t\t\t/*}*/\r\n\r\n\t\t\t#label {\r\n\t\t\t\tposition: relative;\r\n\t\t\t\tword-break: break-word;\r\n\t\t\t}\r\n\t\t\t:host([invalid]) #label {\r\n\t\t\t\tcolor: var(--uui-color-danger);\r\n\t\t\t}\r\n\t\t\tuui-badge {\r\n\t\t\t\tright: -30px;\r\n\t\t\t}\r\n\r\n\t\t\t#description {\r\n\t\t\t\tcolor: var(--uui-color-text-alt);\r\n\t\t\t}\r\n\r\n\t\t\t#editorColumn {\r\n\t\t\t\tmargin-top: var(--uui-size-space-3);\r\n\t\t\t}\r\n\t\t\t/*@container (width > 600px) {*/\r\n\t\t\t:host(:not([orientation='vertical'])) #editorColumn {\r\n\t\t\t\tmargin-top: 0;\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-property-layout': UmbPropertyLayoutElement;\r\n\t}\r\n}\r\n","import type { UmbPropertyDatasetContext } from './property-dataset-context.interface.js';\r\nimport { UmbContextToken } from '@umbraco-cms/backoffice/context-api';\r\n\r\nexport const UMB_PROPERTY_DATASET_CONTEXT = new UmbContextToken<UmbPropertyDatasetContext>('UmbPropertyDatasetContext');\r\n","import type { UmbPropertyDatasetContext } from './property-dataset-context.interface.js';\r\nimport type { UmbNameablePropertyDatasetContext } from './nameable-property-dataset-context.interface.js';\r\nimport { UMB_PROPERTY_DATASET_CONTEXT } from './property-dataset-context.token.js';\r\nimport { UmbContextToken } from '@umbraco-cms/backoffice/context-api';\r\n\r\nexport const isNameablePropertyDatasetContext = (\r\n\tcontext: UmbPropertyDatasetContext,\r\n): context is UmbNameablePropertyDatasetContext => 'setName' in context;\r\n\r\nexport const UMB_NAMEABLE_PROPERTY_DATASET_CONTEXT = new UmbContextToken<\r\n\tUmbPropertyDatasetContext,\r\n\tUmbNameablePropertyDatasetContext\r\n>(UMB_PROPERTY_DATASET_CONTEXT.toString(), undefined, isNameablePropertyDatasetContext);\r\n","import type { UmbPropertyValueData } from '../types/property-value-data.type.js';\r\nimport { UMB_PROPERTY_DATASET_CONTEXT } from './property-dataset-context.token.js';\r\nimport type { UmbPropertyDatasetContext } from './property-dataset-context.interface.js';\r\nimport type { UmbNameablePropertyDatasetContext } from './nameable-property-dataset-context.interface.js';\r\nimport type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api';\r\nimport { UmbContextBase } from '@umbraco-cms/backoffice/class-api';\r\nimport { UmbArrayState, UmbBooleanState, UmbStringState } from '@umbraco-cms/backoffice/observable-api';\r\nimport { UmbVariantId } from '@umbraco-cms/backoffice/variant';\r\n\r\n/**\r\n * A base property dataset context implementation.\r\n * @class UmbPropertyDatasetContextBase\r\n * @augments {UmbContextBase}\r\n */\r\nexport class UmbPropertyDatasetContextBase\r\n\textends UmbContextBase<typeof UMB_PROPERTY_DATASET_CONTEXT.TYPE>\r\n\timplements UmbPropertyDatasetContext, UmbNameablePropertyDatasetContext\r\n{\r\n\t#name = new UmbStringState(undefined);\r\n\tname = this.#name.asObservable();\r\n\r\n\t#properties = new UmbArrayState<UmbPropertyValueData>([], (x) => x.alias);\r\n\tpublic readonly properties = this.#properties.asObservable();\r\n\t/**\r\n\t * @deprecated - use `properties` instead.\r\n\t */\r\n\treadonly values = this.properties;\r\n\r\n\tprivate _entityType!: string;\r\n\tprivate _unique!: string;\r\n\r\n\t#readOnly = new UmbBooleanState(false);\r\n\tpublic readOnly = this.#readOnly.asObservable();\r\n\r\n\tgetEntityType() {\r\n\t\treturn this._entityType;\r\n\t}\r\n\tgetUnique() {\r\n\t\treturn this._unique;\r\n\t}\r\n\tgetName() {\r\n\t\treturn this.#name.getValue();\r\n\t}\r\n\tsetName(name: string | undefined) {\r\n\t\tthis.#name.setValue(name);\r\n\t}\r\n\tgetVariantId() {\r\n\t\treturn UmbVariantId.CreateInvariant();\r\n\t}\r\n\t// variant id for a specific property?\r\n\r\n\tconstructor(host: UmbControllerHost) {\r\n\t\t// The controller alias, is a very generic name cause we want only one of these for this controller host.\r\n\t\tsuper(host, UMB_PROPERTY_DATASET_CONTEXT);\r\n\t}\r\n\r\n\t/**\r\n\t * @function propertyValueByAlias\r\n\t * @param {string} propertyAlias - the alias to observe\r\n\t * @returns {Promise<Observable<ReturnType | undefined> | undefined>} - an Observable for the value of this property.\r\n\t */\r\n\tasync propertyValueByAlias<ReturnType = unknown>(propertyAlias: string) {\r\n\t\treturn this.#properties.asObservablePart((values) => {\r\n\t\t\tconst valueObj = values.find((x) => x.alias === propertyAlias);\r\n\t\t\treturn valueObj ? (valueObj.value as ReturnType) : undefined;\r\n\t\t});\r\n\t}\r\n\r\n\t/**\r\n\t * @function setPropertyValue\r\n\t * @param {string} alias - The alias to set this value for\r\n\t * @param {PromiseLike<unknown>} value - value can be a promise resolving into the actual value or the raw value it self.\r\n\t * @description Set the value of this property.\r\n\t */\r\n\tsetPropertyValue(alias: string, value: unknown) {\r\n\t\tthis.#properties.appendOne({ alias, value });\r\n\t}\r\n\r\n\t/**\r\n\t * @deprecated Use `getProperties`\r\n\t * @returns {Array<UmbPropertyValueData>} - Array of properties as objects with alias and value properties.\r\n\t */\r\n\tgetValues() {\r\n\t\treturn this.#properties.getValue();\r\n\t}\r\n\t/**\r\n\t * @param {Array<UmbPropertyValueData>} properties - Properties array with alias and value properties.\r\n\t * @deprecated Use `setProperties`\r\n\t */\r\n\tsetValues(properties: Array<UmbPropertyValueData>) {\r\n\t\tthis.#properties.setValue(properties);\r\n\t}\r\n\r\n\t/**\r\n\t * @returns {Array<UmbPropertyValueData>} - Array of properties as objects with alias and value properties.\r\n\t */\r\n\tasync getProperties() {\r\n\t\treturn this.#properties.getValue();\r\n\t}\r\n\t/**\r\n\t * @param {Array<UmbPropertyValueData>} properties - Properties array with alias and value properties.\r\n\t */\r\n\tsetProperties(properties: Array<UmbPropertyValueData>) {\r\n\t\tthis.#properties.setValue(properties);\r\n\t}\r\n\r\n\t/**\r\n\t * Gets the read-only state of the current variant culture.\r\n\t * @returns {*} {boolean}\r\n\t */\r\n\tgetReadOnly(): boolean {\r\n\t\treturn this.#readOnly.getValue();\r\n\t}\r\n}\r\n","import type { UmbPropertyValueData } from '../types/property-value-data.type.js';\r\nimport { UmbPropertyDatasetContextBase } from './property-dataset-base-context.js';\r\nimport { UmbLitElement } from '@umbraco-cms/backoffice/lit-element';\r\nimport { customElement, html, property } from '@umbraco-cms/backoffice/external/lit';\r\nimport { UmbChangeEvent } from '@umbraco-cms/backoffice/event';\r\n\r\n/**\r\n * @element umb-property-dataset\r\n * @description - Element for hosting a property dataset. This is needed for umb-property to work.\r\n * @slot default - Slot for rendering content within.\r\n */\r\n@customElement('umb-property-dataset')\r\nexport class UmbPropertyDatasetElement extends UmbLitElement {\r\n\t// Determine wether state change should fire an event when the value is changed.\r\n\t#allowChangeEvent = false;\r\n\r\n\tpublic readonly context: UmbPropertyDatasetContextBase;\r\n\r\n\t@property({ attribute: false })\r\n\t/**\r\n\t * The value of the dataset.\r\n\t * @returns {Array<UmbPropertyValueData>} - The value of the dataset\r\n\t * @example\r\n\t * ```ts\r\n\t * const dataSet = [\r\n\t * \t{\r\n\t * \t\talias: 'testAlias',\r\n\t * \t\tvalue: 'value as a string',\r\n\t * \t},\r\n\t * {\r\n\t * \t\talias: 'anotherAlias',\r\n\t * \t\tvalue: 123,\r\n\t * \t}\r\n\t * ]\r\n\t *\r\n\t * html`\r\n\t * <umb-property-dataset .value=\"${dataSet}\">\r\n\t * \t<umb-property\r\n\t * \t\tlabel=\"My label for this property\"\r\n\t * \t\tdescription=\"The description to show on the property\"\r\n\t * \t\talias=\"testAlias\"\r\n\t * \t\tproperty-editor-ui-alias=\"Umb.PropertyEditorUi.TextBox\"\r\n\t * \t\t.config=${...}>\r\n\t * \t</umb-property>\r\n\t * </umb-property-dataset>\r\n\t * `\r\n\t * ```\r\n\t */\r\n\tpublic set value(value: Array<UmbPropertyValueData>) {\r\n\t\tthis.#allowChangeEvent = false;\r\n\t\tthis.context.setValues(value);\r\n\t\t// Above might not trigger a observer callback (if no change), so set the allow change event to true:\r\n\t\tthis.#allowChangeEvent = true;\r\n\t}\r\n\tpublic get value(): Array<UmbPropertyValueData> {\r\n\t\treturn this.context.getValues();\r\n\t}\r\n\r\n\t@property({ attribute: false })\r\n\t/**\r\n\t * The name of the dataset, this name varies depending on the use-case. But this is either\r\n\t * @property name\r\n\t * @type {string}\r\n\t * @returns {string}\r\n\t * @example\r\n\t * ```ts\r\n\t * html`\r\n\t * <umb-property-dataset name=\"My variant name\">\r\n\t * \t...\r\n\t * </umb-property-dataset>\r\n\t * `\r\n\t */\r\n\tpublic set name(value: string | undefined) {\r\n\t\tthis.#allowChangeEvent = false;\r\n\t\tthis.context.setName(value);\r\n\t\t// Above might not trigger a observer callback (if no change), so set the allow change event to true:\r\n\t\tthis.#allowChangeEvent = true;\r\n\t}\r\n\tpublic get name(): string | undefined {\r\n\t\treturn this.context.getName();\r\n\t}\r\n\r\n\tconstructor() {\r\n\t\tsuper();\r\n\r\n\t\t// Prevent any child events escaping this element.\r\n\t\tthis.addEventListener('change', (e) => {\r\n\t\t\tif (e.target !== this) {\r\n\t\t\t\te.stopImmediatePropagation();\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\tthis.context = new UmbPropertyDatasetContextBase(this);\r\n\t\t// prevent the first change event from firing:\r\n\t\tthis.#allowChangeEvent = false;\r\n\t\tthis.observe(this.context.name, this.#observerCallback);\r\n\t\t// prevent the first change event from firing:\r\n\t\tthis.#allowChangeEvent = false;\r\n\t\tthis.observe(this.context.properties, this.#observerCallback);\r\n\t}\r\n\r\n\t#observerCallback = () => {\r\n\t\tif (this.#allowChangeEvent) {\r\n\t\t\tthis.dispatchEvent(new UmbChangeEvent());\r\n\t\t} else {\r\n\t\t\t// Set allow change event to true.\r\n\t\t\tthis.#allowChangeEvent = true;\r\n\t\t}\r\n\t};\r\n\r\n\toverride render() {\r\n\t\treturn html`<slot></slot>`;\r\n\t}\r\n}\r\n\r\nexport default UmbPropertyDatasetElement;\r\n\r\ndeclare global {\r\n\tinterface HTMLElementTagNameMap {\r\n\t\t'umb-property-dataset': UmbPropertyDatasetElement;\r\n\t}\r\n}\r\n","import { UMB_PROPERTY_DATASET_CONTEXT } from '../../property-dataset/index.js';\r\nimport type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api';\r\nimport { UmbContextBase } from '@umbraco-cms/backoffice/class-api';\r\nimport {\r\n\tUmbArrayState,\r\n\tUmbBasicState,\r\n\tUmbBooleanState,\r\n\tUmbClassState,\r\n\tUmbDeepState,\r\n\tUmbObjectState,\r\n\tUmbStringState,\r\n} from '@umbraco-cms/backoffice/observable-api';\r\nimport { UmbContextToken } from '@umbraco-cms/backoffice/context-api';\r\nimport type { UmbVariantId } from '@umbraco-cms/backoffice/variant';\r\nimport type {\r\n\tManifestPropertyEditorUi,\r\n\tUmbPropertyEditorConfigProperty,\r\n\tUmbPropertyEditorUiElement,\r\n} from '@umbraco-cms/backoffice/property-editor';\r\nimport { UmbPropertyEditorConfigCollection } from '@umbraco-cms/backoffice/property-editor';\r\nimport type {\r\n\tUmbPropertyTypeAppearanceModel,\r\n\tUmbPropertyTypeValidationModel,\r\n} from '@umbraco-cms/backoffice/content-type';\r\n\r\nexport class UmbPropertyContext<ValueType = any> extends UmbContextBase<UmbPropertyContext<ValueType>> {\r\n\t#alias = new UmbStringState(undefined);\r\n\tpublic readonly alias = this.#alias.asObservable();\r\n\r\n\t#label = new UmbStringState(undefined);\r\n\tpublic readonly label = this.#label.asObservable();\r\n\r\n\t#description = new UmbStringState(undefined);\r\n\tpublic readonly description = this.#description.asObservable();\r\n\r\n\t#appearance = new UmbObjectState<UmbPropertyTypeAppearanceModel | undefined>(undefined);\r\n\tpublic readonly appearance = this.#appearance.asObservable();\r\n\r\n\t#value = new UmbDeepState<ValueType | undefined>(undefined);\r\n\tpublic readonly value = this.#value.asObservable();\r\n\r\n\t#configValues = new UmbArrayState<UmbPropertyEditorConfigProperty>([], (x) => x.alias);\r\n\tpublic readonly configValues = this.#configValues.asObservable();\r\n\r\n\t#config = new UmbClassState<UmbPropertyEditorConfigCollection | undefined>(undefined);\r\n\tpublic readonly config = this.#config.asObservable();\r\n\r\n\t#validation = new UmbObjectState<UmbPropertyTypeValidationModel | undefined>(undefined);\r\n\tpublic readonly validation = this.#validation.asObservable();\r\n\r\n\tpublic readonly validationMandatory = this.#validation.asObservablePart((x) => x?.mandatory);\r\n\tpublic readonly validationMandatoryMessage = this.#validation.asObservablePart((x) => x?.mandatoryMessage);\r\n\r\n\t#dataPath = new UmbStringState(undefined);\r\n\tpublic readonly dataPath = this.#dataPath.asObservable();\r\n\r\n\t#editor = new UmbBasicState<UmbPropertyEditorUiElement | undefined>(undefined);\r\n\tpublic readonly editor = this.#editor.asObservable();\r\n\r\n\t#editorManifest = new UmbBasicState<ManifestPropertyEditorUi | undefined>(undefined);\r\n\tpublic readonly editorManifest = this.#editorManifest.asObservable();\r\n\r\n\t#isReadOnly = new UmbBooleanState(false);\r\n\tpublic readonly isReadOnly = this.#isReadOnly.asObservable();\r\n\r\n\t/**\r\n\t * Set the property editor UI element for this property.\r\n\t * @param {UmbPropertyEditorUiElement | undefined} editorElement The property editor UI element\r\n\t */\r\n\tsetEditor(editorElement: UmbPropertyEditorUiElement | undefined) {\r\n\t\tthis.#editor.setValue(editorElement ?? undefined);\r\n\t}\r\n\r\n\t/**\r\n\t * Get the property editor UI element for this property.\r\n\t * @returns {UmbPropertyEditorUiElement | undefined} The property editor UI element\r\n\t */\r\n\tgetEditor(): UmbPropertyEditorUiElement | undefined {\r\n\t\treturn this.#editor.getValue();\r\n\t}\r\n\r\n\t/**\r\n\t * Set the property editor manifest for this property.\r\n\t * @param {ManifestPropertyEditorUi | undefined} manifest The property editor manifest\r\n\t */\r\n\tsetEditorManifest(manifest: ManifestPropertyEditorUi | undefined) {\r\n\t\tthis.#editorManifest.setValue(manifest ?? undefined);\r\n\t}\r\n\r\n\t/**\r\n\t * Get the property editor manifest for this property.\r\n\t * @returns {UmbPropertyEditorUiElement | undefined} The property editor manifest\r\n\t */\r\n\tgetEditorManifest(): ManifestPropertyEditorUi | undefined {\r\n\t\treturn this.#editorManifest.getValue();\r\n\t}\r\n\r\n\t// property variant ID:\r\n\t#variantId = new UmbClassState<UmbVariantId | undefined>(undefined);\r\n\tpublic readonly variantId = this.#variantId.asObservable();\r\n\r\n\t#variantDifference = new UmbStringState(undefined);\r\n\tpublic readonly variantDifference = this.#variantDifference.asObservable();\r\n\r\n\t#datasetContext?: typeof UMB_PROPERTY_DATASET_CONTEXT.TYPE;\r\n\r\n\tconstructor(host: UmbControllerHost) {\r\n\t\tsuper(host, UMB_PROPERTY_CONTEXT);\r\n\r\n\t\tthis.consumeContext(UMB_PROPERTY_DATASET_CONTEXT, (variantContext) => {\r\n\t\t\tthis.#datasetContext = variantContext;\r\n\t\t\tthis.setVariantId(variantContext.getVariantId?.());\r\n\t\t\tthis._generateVariantDifferenceString();\r\n\t\t\tthis._observeProperty();\r\n\t\t});\r\n\r\n\t\tthis.observe(\r\n\t\t\tthis.alias,\r\n\t\t\t() => {\r\n\t\t\t\tthis._observeProperty();\r\n\t\t\t},\r\n\t\t\tnull,\r\n\t\t);\r\n\r\n\t\tthis.observe(\r\n\t\t\tthis.configValues,\r\n\t\t\t(configValues) => {\r\n\t\t\t\tthis.#config.setValue(configValues ? new UmbPropertyEditorConfigCollection(configValues) : undefined);\r\n\t\t\t},\r\n\t\t\tnull,\r\n\t\t);\r\n\r\n\t\tthis.observe(\r\n\t\t\tthis.variantId,\r\n\t\t\t() => {\r\n\t\t\t\tthis._generateVariantDifferenceString();\r\n\t\t\t},\r\n\t\t\tnull,\r\n\t\t);\r\n\t}\r\n\r\n\tprivate async _observeProperty(): Promise<void> {\r\n\t\tconst alias = this.#alias.getValue();\r\n\t\tif (!this.#datasetContext || !alias) return;\r\n\r\n\t\tthis.observe(\r\n\t\t\tawait this.#datasetContext.propertyVariantId?.(alias),\r\n\t\t\t(variantId) => {\r\n\t\t\t\tthis.#variantId.setValue(variantId);\r\n\t\t\t},\r\n\t\t\t'observeVariantId',\r\n\t\t);\r\n\r\n\t\tthis.observe(\r\n\t\t\tawait this.#datasetContext.propertyValueByAlias<ValueType>(alias),\r\n\t\t\t(value) => {\r\n\t\t\t\tthis.#value.setValue(value);\r\n\t\t\t},\r\n\t\t\t'observeValue',\r\n\t\t);\r\n\r\n\t\tthis.observe(this.#datasetContext.readOnly, (value) => {\r\n\t\t\tthis.#isReadOnly.setValue(value);\r\n\t\t});\r\n\t}\r\n\r\n\tprivate _generateVariantDifferenceString() {\r\n\t\tif (!this.#datasetContext) return;\r\n\t\tconst contextVariantId = this.#datasetContext.getVariantId?.() ?? undefined;\r\n\t\tconst propertyVariantId = this.#variantId.getValue();\r\n\r\n\t\tlet shareMessage;\r\n\t\tif (contextVariantId && propertyVariantId) {\r\n\t\t\tif (contextVariantId.segment !== propertyVariantId.segment) {\r\n\t\t\t\t// TODO: Translate this, ideally the actual culture is mentioned in the message:\r\n\t\t\t\tshareMessage = 'Shared across culture';\r\n\t\t\t}\r\n\t\t\tif (contextVariantId.culture !== propertyVariantId.culture) {\r\n\t\t\t\t// TODO: Translate this:\r\n\t\t\t\tshareMessage = 'Shared';\r\n\t\t\t}\r\n\t\t}\r\n\t\tthis.#variantDifference.setValue(shareMessage);\r\n\t}\r\n\r\n\t/**\r\n\t * Set the alias of this property.\r\n\t * @param {string | undefined} alias - The alias of the property\r\n\t * @memberof UmbPropertyContext\r\n\t */\r\n\tpublic setAlias(alias: string | undefined): void {\r\n\t\tthis.#alias.setValue(alias);\r\n\t}\r\n\r\n\t/**\r\n\t * Get the alias of this property.\r\n\t * @returns {*} {(string | undefined)}\r\n\t * @memberof UmbPropertyContext\r\n\t */\r\n\tpublic getAlias(): string | undefined {\r\n\t\treturn this.#alias.getValue();\r\n\t}\r\n\r\n\t/**\r\n\t * Set the label of this property.\r\n\t * @param {(string | undefined)} label - The label of the property\r\n\t * @memberof UmbPropertyContext\r\n\t */\r\n\tpublic setLabel(label: string | undefined): void {\r\n\t\tthis.#label.setValue(label);\r\n\t}\r\n\r\n\t/**\r\n\t * Get the label of this property.\r\n\t * @returns {(string | undefined)} - the label\r\n\t * @memberof UmbPropertyContext\r\n\t */\r\n\tpublic getLabel(): string | undefined {\r\n\t\treturn this.#label.getValue();\r\n\t}\r\n\r\n\t/**\r\n\t * Set the description of this property.\r\n\t * @param {(string | undefined)} description\r\n\t * @memberof UmbPropertyContext\r\n\t */\r\n\tpublic setDescription(description: string | undefined): void {\r\n\t\tthis.#description.setValue(description);\r\n\t}\r\n\r\n\t/**\r\n\t * Get the description of this property.\r\n\t * @returns {*} {(string | undefined)}\r\n\t * @memberof UmbPropertyContext\r\n\t */\r\n\tpublic getDescription(): string | undefined {\r\n\t\treturn this.#description.getValue();\r\n\t}\r\n\r\n\t/**\r\n\t * Set the appearance of this property.\r\n\t * @param {UmbPropertyTypeAppearanceModel | undefined} appearance - the appearance properties of this property\r\n\t * @memberof UmbPropertyContext\r\n\t */\r\n\tpublic setAppearance(appearance: UmbPropertyTypeAppearanceModel | undefined): void {\r\n\t\tthis.#appearance.setValue(appearance);\r\n\t}\r\n\r\n\t/**\r\n\t * Get the appearance of this property.\r\n\t * @returns {UmbPropertyTypeAppearanceModel | undefined}- the appearance properties of this property\r\n\t * @memberof UmbPropertyContext\r\n\t */\r\n\tpublic getAppearance(): UmbPropertyTypeAppearanceModel | undefined {\r\n\t\treturn this.#appearance.getValue();\r\n\t}\r\n\r\n\t/**\r\n\t * Set the value of this property.\r\n\t * @param {unknown} value - the whole value to be set\r\n\t */\r\n\tpublic setValue(value: ValueType | undefined): void {\r\n\t\tconst alias = this.#alias.getValue();\r\n\t\tif (!this.#datasetContext || !alias) return;\r\n\t\tthis.#datasetContext?.setPropertyValue(alias, value);\r\n\t}\r\n\r\n\t/**\r\n\t * Gets the current value of this property.\r\n\t * Notice this is not reactive, you should us the `value` observable for that.\r\n\t * @returns {unknown} - the current value of this property\r\n\t */\r\n\tpublic getValue(): ValueType | undefined {\r\n\t\treturn this.#value.getValue();\r\n\t}\r\n\r\n\t/**\r\n\t * Set the config of this property.\r\n\t * @param {Array<UmbPropertyEditorConfigProperty> | undefined} config - Array of configurations for this property\r\n\t * @memberof UmbPropertyContext\r\n\t */\r\n\tpublic setConfig(config: Array<UmbPropertyEditorConfigProperty> | undefined): void {\r\n\t\tthis.#configValues.setValue(config ?? []);\r\n\t}\r\n\r\n\t/**\r\n\t * Get the config of this property.\r\n\t * @returns {Array<UmbPropertyEditorConfigProperty> | undefined} - Array of configurations for this property\r\n\t * @memberof UmbPropertyContext\r\n\t */\r\n\tpublic getConfig(): Array<UmbPropertyEditorConfigProperty> | undefined {\r\n\t\treturn this.#configValues.getValue();\r\n\t}\r\n\r\n\t/**\r\n\t * Set the variant ID of this property.\r\n\t * @param {UmbVariantId | undefined} variantId - The property Variant ID, not necessary the same as the Property Dataset Context VariantId.\r\n\t * @memberof UmbPropertyContext\r\n\t */\r\n\tpublic setVariantId(variantId: UmbVariantId | undefined): void {\r\n\t\tthis.#variantId.setValue(variantId);\r\n\t}\r\n\r\n\t/**\r\n\t * Get the variant ID of this property.\r\n\t * @returns {UmbVariantId | undefined} - The property Variant ID, not necessary the same as the Property Dataset Context VariantId.\r\n\t * @memberof UmbPropertyContext\r\n\t */\r\n\tpublic getVariantId(): UmbVariantId | undefined {\r\n\t\treturn this.#variantId.getValue();\r\n\t}\r\n\r\n\t/**\r\n\t * Set the validation of this property.\r\n\t * @param {UmbPropertyTypeValidationModel | undefined} validation - Object holding the Validation Properties.\r\n\t * @memberof UmbPropertyContext\r\n\t */\r\n\tpublic setValidation(validation: UmbPropertyTypeValidationModel | undefined): void {\r\n\t\tthis.#validation.setValue(validation);\r\n\t}\r\n\r\n\t/**\r\n\t * Get the validation of this property.\r\n\t * @returns {UmbPropertyTypeValidationModel | undefined} - Object holding the Validation Properties.\r\n\t * @memberof UmbPropertyContext\r\n\t */\r\n\tpublic getValidation(): UmbPropertyTypeValidationModel | undefined {\r\n\t\treturn this.#validation.getValue();\r\n\t}\r\n\r\n\t/**\r\n\t * Get the read only state of this property\r\n\t * @returns {boolean} - If property is in read-only mode.\r\n\t * @memberof UmbPropertyContext\r\n\t */\r\n\tpublic getIsReadOnly(): boolean {\r\n\t\treturn this.#isReadOnly.getValue();\r\n\t}\r\n\r\n\tpublic setDataPath(dataPath: string | undefined): void {\r\n\t\tthis.#dataPath.setValue(dataPath);\r\n\t}\r\n\r\n\tpublic getDataPath(): string | undefined {\r\n\t\treturn this.#dataPath.getValue();\r\n\t}\r\n\r\n\t/**\r\n\t * Reset the value of this property.\r\n\t * @memberof UmbPropertyContext\r\n\t */\r\n\tpublic resetValue(): void {\r\n\t\tthis.setValue(undefined); // TODO: We should get the value from the server aka. the value from the persisted data. (Most workspaces holds this data, via dataset) [NL]\r\n\t}\r\n\r\n\t/**\r\n\t * Clear the value of this property.\r\n\t * @memberof UmbPropertyContext\r\n\t */\r\n\tpublic clearValue(): void {\r\n\t\tthis.setValue(undefined); // TODO: We should get the default value from Property Editor maybe even later the DocumentType, as that would hold the default value for the property. (Get it via the dataset) [NL]\r\n\t}\r\n\r\n\tpublic override destroy(): void {\r\n\t\tsuper.destroy();\r\n\t\tthis.#alias.destroy();\r\n\t\tthis.#label.destroy();\r\n\t\tthis.#description.destroy();\r\n\t\tthis.#appearance.destroy();\r\n\t\tthis.#configValues.destroy();\r\n\t\tthis.#value.destroy();\r\n\t\tthis.#config.destroy();\r\n\t\tthis.#isReadOnly.destroy();\r\n\t\tthis.#datasetContext = undefined;\r\n\t}\r\n}\r\n\r\nexport const UMB_PROPERTY_CONTEXT = new UmbContextToken<UmbPropertyContext>('UmbPropertyContext');\r\n","import { UmbPropertyContext } from './property.context.js';\r\nimport { css, customElement, html, property, state, nothing } from '@umbraco-cms/backoffice/external/lit';\r\nimport { createExtensionElement, UmbExtensionsApiInitializer } from '@umbraco-cms/backoffice/extension-api';\r\nimport { umbExtensionsRegistry } from '@umbraco-cms/backoffice/extension-registry';\r\nimport { UmbLitElement } from '@umbraco-cms/backoffice/lit-element';\r\nimport { UmbTextStyles } from '@umbraco-cms/backoffice/style';\r\nimport {\r\n\tUmbBindServerValidationToFormControl,\r\n\tUmbFormControlValidator,\r\n\tUmbObserveValidationStateController,\r\n} from '@umbraco-cms/backoffice/validation';\r\nimport type {\r\n\tManifestPropertyEditorUi,\r\n\tUmbPropertyEditorConfigCollection,\r\n\tUmbPropertyEditorConfig,\r\n} from '@umbraco-cms/backoffice/property-editor';\r\nimport type {\r\n\tUmbPropertyTypeAppearanceModel,\r\n\tUmbPropertyTypeValidationModel,\r\n} from '@umbraco-cms/backoffice/content-type';\r\nimport type { UmbObserverController } from '@umbraco-cms/backoffice/observable-api';\r\nimport { UMB_MARK_ATTRIBUTE_NAME } from '@umbraco-cms/backoffice/const';\r\nimport { UmbRoutePathAddendumContext } from '@umbraco-cms/backoffice/router';\r\n\r\n/**\r\n * @element umb-property\r\n * @description Component for displaying a property with editor from extension registry.\r\n *\tThe Element will render a Property Editor based on the Property Editor UI alias passed to the element.\r\n * This will also render all Property Actions related to the Property Editor UI Alias.\r\n */\r\n\r\n@customElement('umb-property')\r\nexport class UmbPropertyElement extends UmbLitElement {\r\n\t/**\r\n\t * Label. Name of the property\r\n\t * @type {string}\r\n\t * @default\r\n\t */\r\n\t@property({ type: String })\r\n\tpublic set label(label: string | undefined) {\r\n\t\tthis.#propertyContext.setLabel(label);\r\n\t}\r\n\tpublic get label() {\r\n\t\treturn this.#propertyContext.getLabel();\r\n\t}\r\n\r\n\t/**\r\n\t * Description: render a description underneath the label.\r\n\t * @type {string}\r\n\t * @default\r\n\t */\r\n\t@property({ type: String })\r\n\tpublic set description(description: string | undefined) {\r\n\t\tthis.#propertyContext.setDescription(description);\r\n\t}\r\n\tpublic get description() {\r\n\t\treturn this.#propertyContext.getDescription();\r\n\t}\r\n\r\n\t/**\r\n\t * Appearance: Appearance settings for the property.\r\n\t */\r\n\t@property({ type: Object, attribute: false })\r\n\tpublic set appearance(appearance: UmbPropertyTypeAppearanceModel | undefined) {\r\n\t\tthis.#propertyContext.setAppearance(appearance);\r\n\t}\r\n\tpublic get appearance() {\r\n\t\treturn this.#propertyContext.getAppearance();\r\n\t}\r\n\r\n\t/**\r\n\t * Alias\r\n\t * @public\r\n\t * @type {string}\r\n\t * @default\r\n\t */\r\n\t@property({ type: String })\r\n\tpublic set alias(alias: string) {\r\n\t\tthis.setAttribute(UMB_MARK_ATTRIBUTE_NAME, 'property:' + alias);\r\n\t\tthis.#propertyContext.setAlias(alias);\r\n\t}\r\n\tpublic get alias() {\r\n\t\treturn this.#propertyContext.getAlias() ?? '';\r\n\t}\r\n\r\n\t/**\r\n\t * Property Editor UI Alias. Render the Property Editor UI registered for this alias.\r\n\t * @public\r\n\t * @type {string}\r\n\t * @default\r\n\t */\r\n\t@property({ type: String, attribute: 'property-editor-ui-alias' })\r\n\tpublic set propertyEditorUiAlias(value: string | undefined) {\r\n\t\tthis._propertyEditorUiAlias = value;\r\n\t\tthis._observePropertyEditorUI();\r\n\t}\r\n\tpublic get propertyEditorUiAlias(): string {\r\n\t\treturn this._propertyEditorUiAlias ?? '';\r\n\t}\r\n\tprivate _propertyEditorUiAlias?: string;\r\n\r\n\t/**\r\n\t * Config. Configuration to pass to the Property Editor UI. This is also the configuration data stored on the Data Type.\r\n\t * @public\r\n\t * @type {string}\r\n\t * @default\r\n\t */\r\n\t@property({ type: Array, attribute: false })\r\n\tpublic set config(value: UmbPropertyEditorConfig | undefined) {\r\n\t\tthis.#propertyContext.setConfig(value);\r\n\t}\r\n\tpublic get config(): UmbPropertyEditorConfig | undefined {\r\n\t\treturn this.#propertyContext.getConfig();\r\n\t}\r\n\r\n\t/**\r\n\t * Validation: Validation settings for the property.\r\n\t */\r\n\t@property({ type: Object, attribute: false })\r\n\tpublic set validation(validation: UmbPropertyTypeValidationModel | undefined) {\r\n\t\tthis.#propertyContext.setValidation(validation);\r\n\t}\r\n\tpublic get validation() {\r\n\t\treturn this.#propertyContext.getValidation();\r\n\t}\r\n\r\n\t/**\r\n\t * DataPath, declare the path to the value of the data that this property represents.\r\n\t * @public\r\n\t * @type {string}\r\n\t * @default\r\n\t */\r\n\t@property({ type: String, attribute: 'data-path' })\r\n\tpublic set dataPath(dataPath: string | undefined) {\r\n\t\tthis.#propertyContext.setDataPath(dataPath);\r\n\t\tnew UmbObserveValidationStateController(this, dataPath, (invalid) => {\r\n\t\t\tthis._invalid = invalid;\r\n\t\t});\r\n\t}\r\n\tpublic get dataPath(): string | undefined {\r\n\t\treturn this.#propertyContext.getDataPath();\r\n\t}\r\n\r\n\t@state()\r\n\tprivate _variantDifference?: string;\r\n\r\n\t@state()\r\n\tprivate _element?: ManifestPropertyEditorUi['ELEMENT_TYPE'];\r\n\r\n\t@state()\r\n\tprivate _invalid?: boolean;\r\n\r\n\t@state()\r\n\tprivate _alias?: string;\r\n\r\n\t@state()\r\n\tprivate _label?: string;\r\n\r\n\t@state()\r\n\tprivate _description?: string;\r\n\r\n\t@state()\r\n\tprivate _orientation: 'horizontal' | 'vertical' = 'horizontal';\r\n\r\n\t@state()\r\n\tprivate _mandatory?: boolean;\r\n\r\n\t@state()\r\n\tprivate _supportsReadOnly: boolean = false;\r\n\r\n\t@state()\r\n\tprivate _isReadOnly = false;\r\n\r\n\t#propertyContext = new UmbPropertyContext(this);\r\n\t#pathAddendum = new UmbRoutePathAddendumContext(this);\r\n\r\n\t#controlValidator?: UmbFormControlValidator;\r\n\t#validationMessageBinder?: UmbBindServerValidationToFormControl;\r\n\t#valueObserver?: UmbObserverController<unknown>;\r\n\t#configObserver?: UmbObserverController<UmbPropertyEditorConfigCollection | undefined>;\r\n\t#extensionsController?: UmbExtensionsApiInitializer<any>;\r\n\r\n\tconstructor() {\r\n\t\tsuper();\r\n\r\n\t\tthis.observe(\r\n\t\t\tthis.#propertyContext.alias,\r\n\t\t\t(alias) => {\r\n\t\t\t\tthis._alias = alias;\r\n\t\t\t\tthis.#pathAddendum.setAddendum(alias);\r\n\t\t\t},\r\n\t\t\tnull,\r\n\t\t);\r\n\r\n\t\tthis.observe(\r\n\t\t\tthis.#propertyContext.label,\r\n\t\t\t(label) => {\r\n\t\t\t\tthis._label = label;\r\n\t\t\t\tif (this._element) {\r\n\t\t\t\t\tthis._element.name = label;\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t\tnull,\r\n\t\t);\r\n\r\n\t\tthis.observe(\r\n\t\t\tthis.#propertyContext.description,\r\n\t\t\t(description) => {\r\n\t\t\t\tthis._description = description;\r\n\t\t\t},\r\n\t\t\tnull,\r\n\t\t);\r\n\r\n\t\tthis.observe(\r\n\t\t\tthis.#propertyContext.variantDifference,\r\n\t\t\t(variantDifference) => {\r\n\t\t\t\tthis._variantDifference = variantDifference;\r\n\t\t\t},\r\n\t\t\tnull,\r\n\t\t);\r\n\r\n\t\tthis.observe(\r\n\t\t\tthis.#propertyContext.appearance,\r\n\t\t\t(appearance) => {\r\n\t\t\t\tthis._orientation = appearance?.labelOnTop ? 'vertical' : 'horizontal';\r\n\t\t\t},\r\n\t\t\tnull,\r\n\t\t);\r\n\r\n\t\tthis.observe(\r\n\t\t\tthis.#propertyContext.validationMandatory,\r\n\t\t\t(mandatory) => {\r\n\t\t\t\tthis._mandatory = mandatory;\r\n\t\t\t\tif (this._element) {\r\n\t\t\t\t\tthis._element.mandatory = mandatory;\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t\tnull,\r\n\t\t);\r\n\r\n\t\tthis.observe(\r\n\t\t\tthis.#propertyContext.isReadOnly,\r\n\t\t\t(value) => {\r\n\t\t\t\tthis._isReadOnly = value;\r\n\t\t\t\tthis._element?.toggleAttribute('readonly', value);\r\n\t\t\t},\r\n\t\t\tnull,\r\n\t\t);\r\n\t}\r\n\r\n\tprivate _onPropertyEditorChange = (e: CustomEvent): void => {\r\n\t\tconst target = e.composedPath()[0] as any;\r\n\t\tif (this._element !== target) {\r\n\t\t\tconsole.error(\r\n\t\t\t\t\"Property Editor received a Change Event who's target is not the Property Editor Element. Do not make bubble and composed change events.\",\r\n\t\t\t);\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\t//this.value = target.value; // Sets value in context.\r\n\t\tthis.#propertyContext.setValue(target.value);\r\n\t\te.stopPropagation();\r\n\t};\r\n\r\n\tprivate _observePropertyEditorUI(): void {\r\n\t\tif (this._propertyEditorUiAlias) {\r\n\t\t\tthis.observe(\r\n\t\t\t\tumbExtensionsRegistry.byTypeAndAlias('propertyEditorUi', this._propertyEditorUiAlias),\r\n\t\t\t\t(manifest) => {\r\n\t\t\t\t\tthis._gotEditorUI(manifest);\r\n\t\t\t\t},\r\n\t\t\t\t'_observePropertyEditorUI',\r\n\t\t\t);\r\n\t\t}\r\n\t}\r\n\r\n\tprivate async _gotEditorUI(manifest?: ManifestPropertyEditorUi | null): Promise<void> {\r\n\t\tthis.#extensionsController?.destroy();\r\n\t\tthis.#propertyContext.setEditor(undefined);\r\n\t\tthis.#propertyContext.setEditorManifest(manifest ?? undefined);\r\n\r\n\t\tif (!manifest) {\r\n\t\t\t// TODO: if propertyEditorUiAlias didn't exist in store, we should do some nice fail UI.\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tconst el = await createExtensionElement(manifest);\r\n\t\tthis._supportsReadOnly = manifest.meta.supportsReadOnly || false;\r\n\r\n\t\tif (el) {\r\n\t\t\tconst oldElement = this._element;\r\n\r\n\t\t\t// cleanup:\r\n\t\t\tthis.#valueObserver?.destroy();\r\n\t\t\tthis.#configObserver?.destroy();\r\n\t\t\tthis.#controlValidator?.destroy();\r\n\t\t\toldElement?.removeEventListener('change', this._onPropertyEditorChange as any as EventListener);\r\n\t\t\toldElement?.removeEventListener('property-value-change', this._onPropertyEditorChange as any as EventListener);\r\n\t\t\toldElement?.destroy?.();\r\n\r\n\t\t\tthis._element = el as ManifestPropertyEditorUi['ELEMENT_TYPE'];\r\n\r\n\t\t\tthis.#propertyContext.setEditor(this._element);\r\n\r\n\t\t\tif (this._element) {\r\n\t\t\t\tthis._element.addEventListener('change', this._onPropertyEditorChange as any as EventListener);\r\n\t\t\t\tthis._element.addEventListener('property-value-change', this._onPropertyEditorChange as any as EventListener);\r\n\t\t\t\t// No need to observe mandatory or label, as we already do so and set it on the _element if present: [NL]\r\n\t\t\t\tthis._element.mandatory = this._mandatory;\r\n\t\t\t\tthis._element.name = this._label;\r\n\r\n\t\t\t\t// No need for a controller alias, as the clean is handled via the observer prop:\r\n\t\t\t\tthis.#valueObserver = this.observe(\r\n\t\t\t\t\tthis.#propertyContext.value,\r\n\t\t\t\t\t(value) => {\r\n\t\t\t\t\t\t// Set the value on the element:\r\n\t\t\t\t\t\tthis._element!.value = value;\r\n\t\t\t\t\t\tif (this.#validationMessageBinder) {\r\n\t\t\t\t\t\t\tthis.#validationMessageBinder.value = value;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t},\r\n\t\t\t\t\tnull,\r\n\t\t\t\t);\r\n\t\t\t\tthis.#configObserver = this.observe(\r\n\t\t\t\t\tthis.#propertyContext.config,\r\n\t\t\t\t\t(config) => {\r\n\t\t\t\t\t\tif (config) {\r\n\t\t\t\t\t\t\tthis._element!.config = config;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t},\r\n\t\t\t\t\tnull,\r\n\t\t\t\t);\r\n\t\t\t\tthis.#configObserver = this.observe(\r\n\t\t\t\t\tthis.#propertyContext.validationMandatoryMessage,\r\n\t\t\t\t\t(mandatoryMessage) => {\r\n\t\t\t\t\t\tif (mandatoryMessage) {\r\n\t\t\t\t\t\t\tthis._element!.mandatoryMessage = mandatoryMessage ?? undefined;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t},\r\n\t\t\t\t\tnull,\r\n\t\t\t\t);\r\n\r\n\t\t\t\tif ('checkValidity' in this._element) {\r\n\t\t\t\t\tconst dataPath = this.dataPath;\r\n\t\t\t\t\tthis.#controlValidator = new UmbFormControlValidator(this, this._element as any, dataPath);\r\n\t\t\t\t\t// We trust blindly that the dataPath will be present at this stage and not arrive later than this moment. [NL]\r\n\t\t\t\t\tif (dataPath) {\r\n\t\t\t\t\t\tthis.#validationMessageBinder = new UmbBindServerValidationToFormControl(\r\n\t\t\t\t\t\t\tthis,\r\n\t\t\t\t\t\t\tthis._element as any,\r\n\t\t\t\t\t\t\tdataPath,\r\n\t\t\t\t\t\t);\r\n\t\t\t\t\t\tthis.#validationMessageBinder.value = this.#propertyContext.getValue();\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\tthis._element.toggleAttribute('readonly', this._isReadOnly);\r\n\t\t\t\tthis.#createController(manifest);\r\n\t\t\t}\r\n\r\n\t\t\tthis.requestUpdate('element', oldElement);\r\n\t\t}\r\n\t}\r\n\r\n\t#createController(propertyEditorUiManifest: ManifestPropertyEditorUi): void {\r\n\t\tif (this.#extensionsController) {\r\n\t\t\tthis.#extensionsController.destroy();\r\n\t\t}\r\n\r\n\t\tthis.#extensionsController = new UmbExtensionsApiInitializer(\r\n\t\t\tthis,\r\n\t\t\tumbExtensionsRegistry,\r\n\t\t\t'propertyContext',\r\n\t\t\t[],\r\n\t\t\t(manifest) => manifest.forPropertyEditorUis.includes(propertyEditorUiManifest.alias),\r\n\t\t);\r\n\t}\r\n\r\n\toverride render() {\r\n\t\treturn html`\r\n\t\t\t<umb-property-layout\r\n\t\t\t\tid=\"layout\"\r\n\t\t\t\t.alias=${this._alias ?? ''}\r\n\t\t\t\t.label=${this._label ?? ''}\r\n\t\t\t\t.description=${this._description ?? ''}\r\n\t\t\t\t.orientation=${this._orientation ?? 'horizontal'}\r\n\t\t\t\t?mandatory=${this._mandatory}\r\n\t\t\t\t?invalid=${this._invalid}>\r\n\t\t\t\t${this.#renderPropertyActionMenu()}\r\n\t\t\t\t${this._variantDifference\r\n\t\t\t\t\t? html`<div id=\"variant-info\" slot=\"description\">\r\n\t\t\t\t\t\t\t<uui-tag look=\"secondary\">${this._variantDifference}</uui-tag>\r\n\t\t\t\t\t\t</div> `\r\n\t\t\t\t\t: ''}\r\n\t\t\t\t${this.#renderPropertyEditor()}\r\n\t\t\t</umb-property-layout>\r\n\t\t`;\r\n\t}\r\n\r\n\t#renderPropertyActionMenu() {\r\n\t\tif (!this._propertyEditorUiAlias) return nothing;\r\n\t\treturn html`\r\n\t\t\t<umb-property-action-menu\r\n\t\t\t\tslot=\"action-menu\"\r\n\t\t\t\tid=\"action-menu\"\r\n\t\t\t\t.propertyEditorUiAlias=${this._propertyEditorUiAlias}>\r\n\t\t\t</umb-property-action-menu>\r\n\t\t`;\r\n\t}\r\n\r\n\t#renderPropertyEditor() {\r\n\t\treturn html`\r\n\t\t\t<div id=\"editor\" slot=\"editor\">\r\n\t\t\t\t${this._isReadOnly && this._supportsReadOnly === false ? html`<div id=\"overlay\"></div>` : nothing}\r\n\t\t\t\t${this._element}\r\n\t\t\t</div>\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\tdisplay: block;\r\n\t\t\t}\r\n\r\n\t\t\tp {\r\n\t\t\t\tcolor: var(--uui-color-text-alt);\r\n\t\t\t}\r\n\r\n\t\t\t#action-menu {\r\n\t\t\t\topacity: 0;\r\n\t\t\t\ttransition: opacity 90ms;\r\n\t\t\t}\r\n\r\n\t\t\t#layout:focus-within #action-menu,\r\n\t\t\t#layout:hover #action-menu,\r\n\t\t\t#action-menu[open] {\r\n\t\t\t\topacity: 1;\r\n\t\t\t}\r\n\r\n\t\t\t#variant-info {\r\n\t\t\t\topacity: 0;\r\n\t\t\t\ttransition: opacity 90ms;\r\n\t\t\t\tmargin-top: var(--uui-size-space-2);\r\n\t\t\t\tmargin-left: calc(var(--uui-size-space-1) * -1);\r\n\t\t\t}\r\n\r\n\t\t\t#layout:focus-within #variant-info,\r\n\t\t\t#layout:hover #variant-info {\r\n\t\t\t\topacity: 1;\r\n\t\t\t}\r\n\r\n\t\t\t#editor {\r\n\t\t\t\tposition: relative;\r\n\t\t\t}\r\n\r\n\t\t\t#overlay {\r\n\t\t\t\tposition: absolute;\r\n\t\t\t\ttop: 0;\r\n\t\t\t\tleft: 0;\r\n\t\t\t\tright: 0;\r\n\t\t\t\tbottom: 0;\r\n\t\t\t\tbackground-color: white;\r\n\t\t\t\topacity: 0.5;\r\n\t\t\t\tz-index: 1000;\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-property': UmbPropertyElement;\r\n\t}\r\n}\r\n","import { css, customElement, html, property } from '@umbraco-cms/backoffice/external/lit';\r\nimport { UmbLitElement } from '@umbraco-cms/backoffice/lit-element';\r\nimport { UmbTextStyles } from '@umbraco-cms/backoffice/style';\r\n\r\n/**\r\n * @description Component for displaying an unsupported property\r\n */\r\n\r\n@customElement('umb-unsupported-property')\r\nexport class UmbUnsupportedPropertyElement extends UmbLitElement {\r\n\t@property({ type: String })\r\n\tpublic alias = '';\r\n\r\n\t@property({ type: String })\r\n\tpublic schema = '';\r\n\r\n\toverride render() {\r\n\t\treturn html`<div id=\"not-supported\">\r\n\t\t\t<umb-localize key=\"blockEditor_propertyEditorNotSupported\" .args=${[this.alias, this.schema]}></umb-localize>\r\n\t\t</div>`;\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\tpadding: var(--uui-size-layout-1) 0;\r\n\t\t\t}\r\n\r\n\t\t\t#not-supported {\r\n\t\t\t\tbackground-color: var(--uui-color-danger);\r\n\t\t\t\tcolor: var(--uui-color-surface);\r\n\t\t\t\tpadding: var(--uui-size-space-4);\r\n\t\t\t\tborder-radius: var(--uui-border-radius);\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-unsupported-property': UmbUnsupportedPropertyElement;\r\n\t}\r\n}\r\n"],"names":["_UmbPropertyLayoutElement_instances","renderDescription_fn","UmbPropertyLayoutElement","UmbLitElement","__privateAdd","html","when","__privateMethod","ufmValue","UmbTextStyles","css","__decorateClass","property","customElement","UMB_PROPERTY_DATASET_CONTEXT","UmbContextToken","isNameablePropertyDatasetContext","context","UMB_NAMEABLE_PROPERTY_DATASET_CONTEXT","UmbPropertyDatasetContextBase","UmbContextBase","host","#name","UmbStringState","#properties","UmbArrayState","x","#readOnly","UmbBooleanState","name","UmbVariantId","propertyAlias","values","valueObj","alias","value","properties","_allowChangeEvent","_observerCallback","UmbPropertyDatasetElement","__privateGet","UmbChangeEvent","__privateSet","e","UmbPropertyContext","UMB_PROPERTY_CONTEXT","#alias","#label","#description","#appearance","UmbObjectState","#value","UmbDeepState","#configValues","#config","UmbClassState","#validation","#dataPath","#editor","UmbBasicState","#editorManifest","#isReadOnly","#variantId","#variantDifference","variantContext","#datasetContext","configValues","UmbPropertyEditorConfigCollection","editorElement","manifest","variantId","contextVariantId","propertyVariantId","shareMessage","label","description","appearance","config","validation","dataPath","_propertyContext","_pathAddendum","_controlValidator","_validationMessageBinder","_valueObserver","_configObserver","_extensionsController","_UmbPropertyElement_instances","createController_fn","renderPropertyActionMenu_fn","renderPropertyEditor_fn","UmbPropertyElement","UmbRoutePathAddendumContext","target","variantDifference","mandatory","UMB_MARK_ATTRIBUTE_NAME","UmbObserveValidationStateController","invalid","umbExtensionsRegistry","el","createExtensionElement","oldElement","mandatoryMessage","UmbFormControlValidator","UmbBindServerValidationToFormControl","propertyEditorUiManifest","UmbExtensionsApiInitializer","nothing","state","UmbUnsupportedPropertyElement"],"mappings":"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"}