{"version":3,"file":"culture-and-hostnames-modal.element-BYx6mjLk.js","sources":["../../../src/packages/documents/documents/entity-actions/culture-and-hostnames/repository/culture-and-hostnames.server.data.ts","../../../src/packages/documents/documents/entity-actions/culture-and-hostnames/repository/culture-and-hostnames.repository.ts","../../../src/packages/documents/documents/entity-actions/culture-and-hostnames/modal/culture-and-hostnames-modal.element.ts"],"sourcesContent":["import { DocumentService } from '@umbraco-cms/backoffice/external/backend-api';\r\nimport type { UpdateDomainsRequestModel } from '@umbraco-cms/backoffice/external/backend-api';\r\nimport type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api';\r\nimport { tryExecuteAndNotify } from '@umbraco-cms/backoffice/resources';\r\n\r\n/**\r\n * A data source for the Document Culture and Hostnames that fetches data from the server\r\n * @class UmbDocumentCultureAndHostnamesServerDataSource\r\n * @implements {RepositoryDetailDataSource}\r\n */\r\nexport class UmbDocumentCultureAndHostnamesServerDataSource {\r\n\t#host: UmbControllerHost;\r\n\r\n\t/**\r\n\t * Creates an instance of UmbDocumentCultureAndHostnamesServerDataSource.\r\n\t * @param {UmbControllerHost} host - The controller host for this controller to be appended to\r\n\t * @memberof UmbDocumentCultureAndHostnamesServerDataSource\r\n\t */\r\n\tconstructor(host: UmbControllerHost) {\r\n\t\tthis.#host = host;\r\n\t}\r\n\r\n\t/**\r\n\t * Fetches the Culture and Hostnames for the given Document unique\r\n\t * @param {string} unique\r\n\t * @memberof UmbDocumentCultureAndHostnamesServerDataSource\r\n\t */\r\n\tasync read(unique: string) {\r\n\t\tif (!unique) throw new Error('Unique is missing');\r\n\t\treturn tryExecuteAndNotify(this.#host, DocumentService.getDocumentByIdDomains({ id: unique }));\r\n\t}\r\n\r\n\t/**\r\n\t * Updates Culture and Hostnames for the given Document unique\r\n\t * @param {string} unique\r\n\t * @param {UpdateDomainsRequestModel} data\r\n\t * @memberof UmbDocumentCultureAndHostnamesServerDataSource\r\n\t */\r\n\tasync update(unique: string, data: UpdateDomainsRequestModel) {\r\n\t\tif (!unique) throw new Error('Unique is missing');\r\n\t\treturn tryExecuteAndNotify(this.#host, DocumentService.putDocumentByIdDomains({ id: unique, requestBody: data }));\r\n\t}\r\n}\r\n","import { UmbDocumentCultureAndHostnamesServerDataSource } from './culture-and-hostnames.server.data.js';\r\nimport type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api';\r\nimport { UmbControllerBase } from '@umbraco-cms/backoffice/class-api';\r\nimport { UMB_NOTIFICATION_CONTEXT } from '@umbraco-cms/backoffice/notification';\r\nimport type { UmbApi } from '@umbraco-cms/backoffice/extension-api';\r\nimport type { UpdateDomainsRequestModel } from '@umbraco-cms/backoffice/external/backend-api';\r\n\r\nexport class UmbDocumentCultureAndHostnamesRepository extends UmbControllerBase implements UmbApi {\r\n\t#dataSource = new UmbDocumentCultureAndHostnamesServerDataSource(this);\r\n\r\n\t#notificationContext?: typeof UMB_NOTIFICATION_CONTEXT.TYPE;\r\n\r\n\tconstructor(host: UmbControllerHost) {\r\n\t\tsuper(host);\r\n\r\n\t\tthis.consumeContext(UMB_NOTIFICATION_CONTEXT, (instance) => {\r\n\t\t\tthis.#notificationContext = instance;\r\n\t\t});\r\n\t}\r\n\r\n\tasync readCultureAndHostnames(unique: string) {\r\n\t\tif (!unique) throw new Error('Unique is missing');\r\n\r\n\t\tconst { data, error } = await this.#dataSource.read(unique);\r\n\t\tif (!error) {\r\n\t\t\treturn { data };\r\n\t\t}\r\n\t\treturn { error };\r\n\t}\r\n\r\n\tasync updateCultureAndHostnames(unique: string, data: UpdateDomainsRequestModel) {\r\n\t\tif (!unique) throw new Error('Unique is missing');\r\n\t\tif (!data) throw new Error('Data is missing');\r\n\r\n\t\tconst { error } = await this.#dataSource.update(unique, data);\r\n\t\tif (!error) {\r\n\t\t\tconst notification = { data: { message: `Cultures and hostnames saved` } };\r\n\t\t\tthis.#notificationContext?.peek('positive', notification);\r\n\t\t}\r\n\t\treturn { error };\r\n\t}\r\n}\r\n\r\nexport { UmbDocumentCultureAndHostnamesRepository as api };\r\n","import { UmbDocumentCultureAndHostnamesRepository } from '../repository/index.js';\r\nimport type {\r\n\tUmbCultureAndHostnamesModalData,\r\n\tUmbCultureAndHostnamesModalValue,\r\n} from './culture-and-hostnames-modal.token.js';\r\nimport { css, customElement, html, query, repeat, state } from '@umbraco-cms/backoffice/external/lit';\r\nimport { UmbLanguageCollectionRepository } from '@umbraco-cms/backoffice/language';\r\nimport { UmbModalBaseElement } from '@umbraco-cms/backoffice/modal';\r\nimport { UmbTextStyles } from '@umbraco-cms/backoffice/style';\r\nimport type { DomainPresentationModel } from '@umbraco-cms/backoffice/external/backend-api';\r\nimport type { UmbLanguageDetailModel } from '@umbraco-cms/backoffice/language';\r\nimport type { UUIInputEvent, UUIPopoverContainerElement, UUISelectEvent } from '@umbraco-cms/backoffice/external/uui';\r\n\r\n@customElement('umb-culture-and-hostnames-modal')\r\nexport class UmbCultureAndHostnamesModalElement extends UmbModalBaseElement<\r\n\tUmbCultureAndHostnamesModalData,\r\n\tUmbCultureAndHostnamesModalValue\r\n> {\r\n\t#documentRepository = new UmbDocumentCultureAndHostnamesRepository(this);\r\n\t#languageCollectionRepository = new UmbLanguageCollectionRepository(this);\r\n\r\n\t#unique?: string | null;\r\n\r\n\t@state()\r\n\tprivate _languageModel: Array = [];\r\n\r\n\t@state()\r\n\tprivate _defaultIsoCode?: string | null;\r\n\r\n\t@state()\r\n\tprivate _domains: Array = [];\r\n\r\n\t@query('#more-options')\r\n\tpopoverContainerElement?: UUIPopoverContainerElement;\r\n\r\n\t// Init\r\n\r\n\toverride firstUpdated() {\r\n\t\tthis.#unique = this.data?.unique;\r\n\t\tthis.#requestLanguages();\r\n\t\tthis.#readDomains();\r\n\t}\r\n\r\n\tasync #readDomains() {\r\n\t\tif (!this.#unique) return;\r\n\t\tconst { data } = await this.#documentRepository.readCultureAndHostnames(this.#unique);\r\n\r\n\t\tif (!data) return;\r\n\t\tthis._defaultIsoCode = data.defaultIsoCode;\r\n\t\tthis._domains = data.domains;\r\n\t}\r\n\r\n\tasync #requestLanguages() {\r\n\t\tconst { data } = await this.#languageCollectionRepository.requestCollection({});\r\n\t\tif (!data) return;\r\n\t\tthis._languageModel = data.items;\r\n\t}\r\n\r\n\t// Modal\r\n\r\n\tasync #handleSave() {\r\n\t\tthis.value = { defaultIsoCode: this._defaultIsoCode, domains: this._domains };\r\n\t\tawait this.#documentRepository.updateCultureAndHostnames(this.#unique!, this.value);\r\n\t\tthis.modalContext?.submit();\r\n\t}\r\n\r\n\t#handleCancel() {\r\n\t\tthis.modalContext?.reject();\r\n\t}\r\n\r\n\t// Events\r\n\r\n\t#onChangeLanguage(e: UUISelectEvent) {\r\n\t\tconst defaultIsoCode = e.target.value as string;\r\n\t\tif (defaultIsoCode === 'inherit') {\r\n\t\t\tthis._defaultIsoCode = null;\r\n\t\t} else {\r\n\t\t\tthis._defaultIsoCode = defaultIsoCode;\r\n\t\t}\r\n\t}\r\n\r\n\t#onChangeDomainLanguage(e: UUISelectEvent, index: number) {\r\n\t\tconst isoCode = e.target.value as string;\r\n\t\tthis._domains = this._domains.map((domain, i) => (index === i ? { ...domain, isoCode } : domain));\r\n\t}\r\n\r\n\t#onChangeDomainHostname(e: UUIInputEvent, index: number) {\r\n\t\tconst domainName = e.target.value as string;\r\n\t\tthis._domains = this._domains.map((domain, i) => (index === i ? { ...domain, domainName } : domain));\r\n\t}\r\n\r\n\tasync #onRemoveDomain(index: number) {\r\n\t\tthis._domains = this._domains.filter((d, i) => index !== i);\r\n\t}\r\n\r\n\t#onAddDomain(useCurrentDomain?: boolean) {\r\n\t\tconst defaultModel = this._languageModel.find((model) => model.isDefault);\r\n\t\tif (useCurrentDomain) {\r\n\t\t\t// TODO: This ignorer is just needed for JSON SCHEMA TO WORK, As its not updated with latest TS jet.\r\n\t\t\t// eslint-disable-next-line @typescript-eslint/ban-ts-comment\r\n\t\t\t// @ts-ignore\r\n\t\t\tthis.popoverContainerElement?.hidePopover();\r\n\t\t\tthis._domains = [...this._domains, { isoCode: defaultModel?.unique ?? '', domainName: window.location.host }];\r\n\t\t} else {\r\n\t\t\tthis._domains = [...this._domains, { isoCode: defaultModel?.unique ?? '', domainName: '' }];\r\n\t\t}\r\n\t}\r\n\r\n\t// Renders\r\n\r\n\toverride render() {\r\n\t\treturn html`\r\n\t\t\t\r\n\t\t\t\t${this.#renderCultureSection()} ${this.#renderDomainSection()}\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\t#renderCultureSection() {\r\n\t\treturn html`\r\n\t\t\t\r\n\t\t\t\t${this.localize.term('assignDomain_language')}\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t${this.localize.term('assignDomain_inherit')}\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t${this.#renderLanguageModelOptions()}\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\t#renderDomainSection() {\r\n\t\treturn html`\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\tValid domain names are: \"example.com\", \"www.example.com\", \"example.com:8080\", or\r\n\t\t\t\t\t\"https://www.example.com/\".
Furthermore also one-level paths in domains are supported, eg.\r\n\t\t\t\t\t\"example.com/en\" or \"/en\".\r\n\t\t\t\t
\r\n\t\t\t\t${this.#renderDomains()} ${this.#renderAddNewDomainButton()}\r\n\t\t\t
\r\n\t\t`;\r\n\t}\r\n\r\n\t#renderDomains() {\r\n\t\tif (!this._domains?.length) return;\r\n\t\treturn html`\r\n\t\t\t
\r\n\t\t\t\t${repeat(\r\n\t\t\t\t\tthis._domains,\r\n\t\t\t\t\t(domain) => domain.isoCode,\r\n\t\t\t\t\t(domain, index) => html`\r\n\t\t\t\t\t\t this.#onChangeDomainHostname(e, index)}>\r\n\t\t\t\t\t\t this.#onChangeDomainLanguage(e, index)}>\r\n\t\t\t\t\t\t\t ${this.#renderLanguageModelOptions()} \r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t this.#onRemoveDomain(index)}>\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\t\t\t
\r\n\t\t`;\r\n\t}\r\n\r\n\t#renderLanguageModelOptions() {\r\n\t\treturn html`${repeat(\r\n\t\t\tthis._languageModel,\r\n\t\t\t(model) => model.unique,\r\n\t\t\t(model) => html`${model.name}`,\r\n\t\t)}`;\r\n\t}\r\n\r\n\t#renderAddNewDomainButton() {\r\n\t\treturn html`\r\n\t\t\t\r\n\t\t\t\t this.#onAddDomain()}>\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t this.#onAddDomain(true)}>\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\tuui-button-group {\r\n\t\t\t\twidth: 100%;\r\n\t\t\t}\r\n\r\n\t\t\tuui-box:first-child {\r\n\t\t\t\tmargin-bottom: var(--uui-size-layout-1);\r\n\t\t\t}\r\n\r\n\t\t\t#dropdown {\r\n\t\t\t\tflex-grow: 0;\r\n\t\t\t}\r\n\r\n\t\t\t#domains {\r\n\t\t\t\tmargin-top: var(--uui-size-layout-1);\r\n\t\t\t\tmargin-bottom: var(--uui-size-2);\r\n\t\t\t\tdisplay: grid;\r\n\t\t\t\tgrid-template-columns: 1fr 1fr auto;\r\n\t\t\t\tgrid-gap: var(--uui-size-1);\r\n\t\t\t}\r\n\t\t`,\r\n\t];\r\n}\r\n\r\nexport default UmbCultureAndHostnamesModalElement;\r\n\r\ndeclare global {\r\n\tinterface HTMLElementTagNameMap {\r\n\t\t'umb-culture-and-hostnames-modal': UmbCultureAndHostnamesModalElement;\r\n\t}\r\n}\r\n"],"names":["UmbDocumentCultureAndHostnamesServerDataSource","#host","host","unique","tryExecuteAndNotify","DocumentService","data","UmbDocumentCultureAndHostnamesRepository","UmbControllerBase","#dataSource","#notificationContext","UMB_NOTIFICATION_CONTEXT","instance","error","notification","_documentRepository","_languageCollectionRepository","_unique","_UmbCultureAndHostnamesModalElement_instances","readDomains_fn","requestLanguages_fn","handleSave_fn","handleCancel_fn","onChangeLanguage_fn","onChangeDomainLanguage_fn","onChangeDomainHostname_fn","onRemoveDomain_fn","onAddDomain_fn","renderCultureSection_fn","renderDomainSection_fn","renderDomains_fn","renderLanguageModelOptions_fn","renderAddNewDomainButton_fn","UmbCultureAndHostnamesModalElement","UmbModalBaseElement","__privateAdd","UmbLanguageCollectionRepository","__privateSet","__privateMethod","html","__privateGet","defaultIsoCode","index","isoCode","domain","i","domainName","d","useCurrentDomain","defaultModel","model","repeat","e","UmbTextStyles","css","__decorateClass","state","query","customElement","UmbCultureAndHostnamesModalElement$1"],"mappings":"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"}