@api-client/ui 0.6.2 → 0.6.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -24,7 +24,8 @@ import { type AssociationSemantic } from '@api-client/core/modeling/Semantics.js
24
24
  /**
25
25
  * An element that specializes in editing properties of a domain association.
26
26
  *
27
- * @fires startactivityforresult - Dispatched when the user clicks on the "pick" button.
27
+ * @fires domainbrowserbrowse - Dispatched when the user clicks on the "pick" button. The detail object
28
+ * has the full intent configuration.
28
29
  * @fires change - Dispatched when the user changes the value of one of the inputs.
29
30
  * @fires DomainAssociationEditor#openentity - A custom event with the `key` and `type` when a property was selected.
30
31
  * @fires DomainAssociationEditor#delete - A custom event with the `key` and `type` when a property was selected.
@@ -1 +1 @@
1
- {"version":3,"file":"DomainAssociationEditor.d.ts","sourceRoot":"","sources":["../../../../src/modeling/internals/DomainAssociationEditor.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"DomainAssociationEditor.d.ts","sourceRoot":"","sources":["../../../../src/modeling/internals/DomainAssociationEditor.ts"],"names":[],"mappings":"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"}
@@ -143,7 +143,7 @@ let DomainAssociationEditor = (() => {
143
143
  allowed: [DomainEntityKind],
144
144
  withRecent: true,
145
145
  };
146
- const result = await Events.Domain.Browse.browse(data);
146
+ const result = await Events.Domain.Browse.browse(data, this);
147
147
  if (!result) {
148
148
  return;
149
149
  }
@@ -679,7 +679,8 @@ let DomainAssociationEditor = (() => {
679
679
  /**
680
680
  * An element that specializes in editing properties of a domain association.
681
681
  *
682
- * @fires startactivityforresult - Dispatched when the user clicks on the "pick" button.
682
+ * @fires domainbrowserbrowse - Dispatched when the user clicks on the "pick" button. The detail object
683
+ * has the full intent configuration.
683
684
  * @fires change - Dispatched when the user changes the value of one of the inputs.
684
685
  * @fires DomainAssociationEditor#openentity - A custom event with the `key` and `type` when a property was selected.
685
686
  * @fires DomainAssociationEditor#delete - A custom event with the `key` and `type` when a property was selected.
@@ -1 +1 @@
1
- {"version":3,"file":"DomainAssociationEditor.js","sourceRoot":"","sources":["../../../../src/modeling/internals/DomainAssociationEditor.ts"],"names":[],"mappings":"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","sourcesContent":["import { nothing, type TemplateResult, type PropertyValues, html } from 'lit'\nimport { state } from 'lit/decorators.js'\nimport { live } from 'lit/directives/live.js'\nimport { DomainAssociation } from '@api-client/core/modeling/DomainAssociation.js'\nimport { DomainEntityKind } from '@api-client/core/models/kinds.js'\nimport type { DomainEntity } from '@api-client/core/modeling/DomainEntity.js'\nimport { cancelEvent } from '@api-client/core/lib/events/Utils.js'\nimport type { UiCheckboxElement } from '../../md/checkbox/ui-checkbox.js'\nimport { ModelingElement } from './ModelingElement.js'\nimport type { UiSwitchElement } from '../../md/switch/ui-switch.js'\nimport { Events } from '../../events/Events.js'\nimport { renderHelp } from '../../help/render.js'\nimport type { DomainBrowseInit, DomainSelectionInfo } from '../types.js'\nimport {\n type AssociationSemantic,\n getSemanticsByCategory,\n SemanticCategory,\n SemanticScope,\n SemanticType,\n} from '@api-client/core/modeling/Semantics.js'\nimport type { TaxonomyDialog } from '../dialogs/TaxonomyDialog.js'\nimport { TagsTaxonomy } from '../dialogs/TagsTaxonomy.js'\nimport { CategoryTaxonomy } from '../dialogs/CategoryTaxonomy.js'\n\n/**\n * Dispatched when the user wants to navigate to a parent entity.\n *\n * @event DomainAssociationEditor#openentity\n * @type {CustomEvent}\n * @property {object} detail - The event details.\n * @property {string} detail.key - The key of the parent entity to navigate to.\n * @property {string} detail.kind - The kind of the parent entity. It will always be `DomainEntityKind`.\n */\n\n/**\n * Dispatched when the user deletes a property.\n *\n * @event DomainAssociationEditor#delete\n * @type {CustomEvent}\n * @property {object} detail - The event details.\n * @property {string} detail.key - The key of the parent entity to navigate to.\n * @property {string} detail.kind - The kind of the parent entity. It will always be `DomainEntityKind`.\n */\n\n/**\n * An element that specializes in editing properties of a domain association.\n *\n * @fires startactivityforresult - Dispatched when the user clicks on the \"pick\" button.\n * @fires change - Dispatched when the user changes the value of one of the inputs.\n * @fires DomainAssociationEditor#openentity - A custom event with the `key` and `type` when a property was selected.\n * @fires DomainAssociationEditor#delete - A custom event with the `key` and `type` when a property was selected.\n */\nexport default class DomainAssociationEditor extends ModelingElement {\n /**\n * The `DomainAssociation` object being edited.\n * This is updated when the `selected` property changes.\n */\n @state() private accessor domainElement: DomainAssociation | undefined\n\n protected override willUpdate(cp: PropertyValues<this>): void {\n if (cp.has('selected') || cp.has('root') || cp.has('namespace')) {\n this.computeAssociation()\n }\n super.willUpdate(cp)\n }\n\n protected async computeAssociation(): Promise<void> {\n const { root, selected, namespace } = this\n this.domainElement = undefined\n if (!root || !selected) {\n this.domainElement = undefined\n return\n }\n // MD components have issues updating values\n // so we need to wait for the updateComplete to remove them.\n await this.updateComplete\n this.domainElement = root.findAssociation(selected, namespace)\n }\n\n /**\n * Sets the value of one of the \"attribute\" fields.\n * These are the checkboxes located in the \"Attributes\" section.\n *\n * @param name The name of the attribute to set.\n * @param value The boolean option to set as the value.\n * @throws {TypeError} When the passed name is not a valid attribute name.\n * @throws {TypeError} When the passed value is not a boolean value.\n * @fires change - Dispatched when an attribute value is updated.\n */\n setModelAttribute(name: string, value: boolean): void {\n if (!DomainAssociation.isValidAttribute(name)) {\n throw new TypeError(`Invalid attribute name: ${name}.`)\n }\n if (typeof value !== 'boolean') {\n throw new TypeError(`Invalid attribute value: ${value}.`)\n }\n const { domainElement } = this\n if (!domainElement) {\n return\n }\n domainElement[name] = value\n this.notifyChange()\n this.requestUpdate()\n }\n\n /**\n * Sets the value of the association's `schema.linked` property.\n * @param value The value to set the `linked` property to.\n */\n setSchemaLinked(value: boolean): void {\n const { domainElement } = this\n if (!domainElement) {\n return\n }\n const schema = domainElement.ensureSchema()\n schema.linked = value\n this.notifyChange()\n this.requestUpdate()\n }\n\n /**\n * A handler for the one of the metadata inputs value change.\n *\n * It supports the following fields:\n *\n * - `name`\n * - `displayName`\n * - `description`\n */\n protected handleMetaChange(e: Event): void {\n const { domainElement } = this\n if (!domainElement) {\n return\n }\n const node = e.target as HTMLInputElement\n const { name, value } = node\n if (value && !node.reportValidity()) {\n return\n }\n if (!['name', 'displayName', 'description'].includes(name as string)) {\n return\n }\n if (name === 'name' && !value) {\n return\n }\n domainElement.info[name as 'name' | 'description' | 'displayName'] = value\n this.notifyChange()\n }\n\n /**\n * A handler for any of the checkboxes in the `attributes` section.\n * It calls the `setModelAttribute()` method.\n */\n protected handleAttributeOptionChange(e: Event): void {\n const checkbox = e.target as UiCheckboxElement\n const { name = '', checked } = checkbox\n this.setModelAttribute(name, !!checked)\n }\n\n protected handleLinkedChange(e: Event): void {\n const checkbox = e.target as UiSwitchElement\n const { name, checked } = checkbox\n if (name !== 'linked') {\n return\n }\n this.setSchemaLinked(!!checked)\n }\n\n protected async handleSelectTarget(): Promise<void> {\n const domain = this.domainElement?.domain\n if (!domain) {\n throw new Error('Domain is not defined for the domain association.')\n }\n const data: DomainBrowseInit = {\n reason: 'pick',\n domain,\n allowed: [DomainEntityKind],\n withRecent: true,\n }\n const result = await Events.Domain.Browse.browse(data)\n if (!result) {\n return\n }\n if (result.result === 'canceled') {\n return\n }\n if (result.kind !== DomainEntityKind) {\n return\n }\n this.addTarget(result.selected, result.domain)\n }\n\n protected handleDeleteTarget(e: Event): void {\n const button = e.target as HTMLButtonElement\n const { key, namespace } = button.dataset\n if (!key || !namespace) {\n return\n }\n const { domainElement, root } = this\n if (!domainElement || !root) {\n return\n }\n let entity: DomainEntity | undefined\n if (root.key === namespace) {\n entity = root.findEntity(key)\n } else {\n // const foreign = root.foreign.find((item) => item.key === namespace)\n // if (!foreign) {\n // throw new Error(`Namespace ${namespace} not found.`)\n // }\n // entity = foreign.findEntity(key)\n throw new Error(`Foreign namespaces are not supported yet.`)\n }\n if (entity) {\n domainElement.removeTarget(entity)\n this.notifyChange()\n this.requestUpdate()\n }\n }\n\n protected handleNavigateTarget(e: Event): void {\n const item = e.currentTarget as HTMLElement\n const { key } = item.dataset\n if (!key) {\n return\n }\n const detail: DomainSelectionInfo = {\n key,\n kind: DomainEntityKind,\n domain: this.root?.key || '',\n }\n this.dispatchEvent(new CustomEvent('openentity', { detail }))\n }\n\n protected handleUnionTypeChange(e: Event): void {\n const select = e.target as HTMLSelectElement\n const { value } = select\n const { domainElement } = this\n if (!domainElement) {\n return\n }\n const schema = domainElement.ensureSchema()\n schema.unionType = value as 'allOf' | 'anyOf' | 'oneOf' | 'not'\n this.notifyChange()\n this.requestUpdate()\n }\n\n protected handleTargetDragEnter(e: DragEvent): void {\n const dt = e.dataTransfer\n if (!dt) {\n return\n }\n const hasJsonData = dt.types.includes('application/json')\n if (!hasJsonData) {\n return\n }\n const zone = e.currentTarget as HTMLElement\n zone.classList.add('drop-zone')\n dt.dropEffect = 'link'\n dt.effectAllowed = 'link'\n }\n\n protected handleTargetDragOver(e: DragEvent): void {\n const dt = e.dataTransfer\n if (!dt) {\n return\n }\n const hasJsonData = dt.types.includes('application/json')\n if (!hasJsonData) {\n return\n }\n e.preventDefault()\n }\n\n protected handleTargetDragLeave(e: DragEvent): void {\n const dt = e.dataTransfer\n if (!dt) {\n return\n }\n const zone = e.currentTarget as HTMLElement\n zone.classList.remove('drop-zone')\n }\n\n protected handleTargetDrop(e: DragEvent): void {\n const dt = e.dataTransfer\n if (!dt) {\n return\n }\n const zone = e.currentTarget as HTMLElement\n zone.classList.remove('drop-zone')\n const raw = dt.getData('application/json')\n const data = JSON.parse(raw) as { items: DomainSelectionInfo[] }\n const entities = data.items.filter((item) => item.kind === DomainEntityKind)\n if (entities.length === 0 || !this.domainElement || !this.root) {\n return\n }\n for (const info of entities) {\n const entity = this.root.findEntity(info.key, info.domain)\n if (!entity) {\n throw new Error(`Entity with key ${info.key} not found in namespace ${info.domain}.`)\n }\n this.domainElement.addTarget(entity)\n }\n this.notifyChange()\n this.requestUpdate()\n }\n\n /**\n * Adds a target entity to the association.\n *\n * @param key The key of the target entity to add.\n * @param nsKey The namespace key of the target entity, if it is in a foreign namespace.\n */\n protected addTarget(key: string, nsKey?: string): void {\n const { domainElement, root } = this\n if (!domainElement || !root) {\n return\n }\n const entity = root.findEntity(key, nsKey)\n if (entity) {\n domainElement.addTarget(entity)\n } else {\n throw new Error(`Entity with key ${key} not found in namespace ${nsKey || root.key}.`)\n }\n this.notifyChange()\n this.requestUpdate()\n }\n\n protected handleDelete(): void {\n const { domainElement } = this\n if (!domainElement) {\n return\n }\n const { root } = this\n if (!root) {\n return\n }\n root.removeAssociation(domainElement.key)\n this.dispatchEvent(new CustomEvent('delete', { detail: { key: domainElement.key, kind: domainElement.kind } }))\n }\n\n protected handleDeleteTaxonomy(e: Event): void {\n const button = e.currentTarget as HTMLButtonElement\n const { id } = button.dataset\n if (!id) {\n return\n }\n this.domainElement?.removeSemantic(id as SemanticType)\n }\n\n protected handleTaxonomySelect(e: CustomEvent<{ item: HTMLElement }>): void {\n const { value } = e.detail.item.dataset\n if (value) {\n this.domainElement?.addSemantic({\n id: value as SemanticType,\n })\n this.requestUpdate()\n }\n }\n\n protected handleConfigureTaxonomy(e: Event): void {\n const button = e.currentTarget as HTMLButtonElement\n const { id } = button.dataset\n if (!id) {\n return\n }\n const element = this.domainElement\n if (!element) {\n return\n }\n let dialog: TaxonomyDialog\n if (id === SemanticType.Tags) {\n dialog = new TagsTaxonomy(element)\n } else if (id === SemanticType.Categories) {\n dialog = new CategoryTaxonomy(element)\n } else {\n throw new TypeError(`Unsupported taxonomy type: ${id}.`)\n }\n dialog.run()\n }\n\n protected override render(): TemplateResult | typeof nothing {\n const { domainElement } = this\n if (!domainElement) {\n return nothing\n }\n return this.renderForm(domainElement)\n }\n\n protected renderForm(model: DomainAssociation): TemplateResult {\n return html`\n <form name=\"association\" @submit=\"${cancelEvent}\" data-key=\"${model.key}\" class=\"modeling-form\">\n ${this.renderMetaInputs(model)} ${this.renderAttributes(model)} ${this.renderTargetEntitySection(model)}\n ${this.renderSchema(model)} ${this.renderDataGovernanceSection(model)}\n </form>\n `\n }\n\n protected renderMetaInputs(model: DomainAssociation): TemplateResult {\n const disabled = !this.canEdit\n const formatError =\n 'Name must start with a letter or underscore and can only contain letters, numbers, and underscores.'\n return html`\n <div class=\"editor-section\">\n <div class=\"row input-row\">\n <ui-outlined-text-field\n class=\"input\"\n name=\"name\"\n .value=\"${live(model.info.name || '')}\"\n label=\"Name\"\n required\n minLength=\"2\"\n maxLength=\"59\"\n pattern=\"[a-zA-Z_][a-zA-Z0-9_]+\"\n .invalidText=\"${formatError}\"\n ?disabled=\"${disabled}\"\n @change=\"${this.handleMetaChange}\"\n ></ui-outlined-text-field>\n ${renderHelp('association', 'name-input')}\n </div>\n <div class=\"row input-row\">\n <ui-outlined-text-field\n class=\"input\"\n name=\"displayName\"\n .value=\"${live(model.info.displayName || '')}\"\n label=\"Display name (optional)\"\n @change=\"${this.handleMetaChange}\"\n ?disabled=\"${disabled}\"\n ></ui-outlined-text-field>\n ${renderHelp('association', 'displayName-input')}\n </div>\n <div class=\"row input-row\">\n <ui-outlined-text-field\n class=\"input\"\n name=\"description\"\n .value=\"${live(model.info.description || '')}\"\n label=\"Description (optional)\"\n @change=\"${this.handleMetaChange}\"\n ?disabled=\"${disabled}\"\n ></ui-outlined-text-field>\n ${renderHelp('association', 'description-input')}\n </div>\n </div>\n `\n }\n\n protected renderAttributes(model: DomainAssociation): TemplateResult {\n return html`<div class=\"editor-section\">\n <div class=\"section-title title-medium\">Attributes</div>\n ${this.renderAttributeOptions(model)}\n </div>`\n }\n\n protected renderAttributeOptions(model: DomainAssociation): TemplateResult {\n const { required = false, multiple = false } = model\n const disabled = !this.canEdit\n return html`<div class=\"checkbox-group\">\n <div class=\"row\">\n <div class=\"input checkbox\">\n <ui-checkbox\n id=\"att-required\"\n .checked=\"${required}\"\n name=\"required\"\n ?disabled=\"${disabled}\"\n @change=\"${this.handleAttributeOptionChange}\"\n ></ui-checkbox>\n <div class=\"label\">\n <label for=\"att-required\" class=\"body-medium\">Required</label>\n </div>\n </div>\n ${renderHelp('association', 'required-checkbox')}\n </div>\n <div class=\"row\">\n <div class=\"input checkbox metadata\">\n <ui-checkbox\n id=\"att-multiple\"\n .checked=\"${multiple}\"\n name=\"multiple\"\n ?disabled=\"${disabled}\"\n @change=\"${this.handleAttributeOptionChange}\"\n ></ui-checkbox>\n <div class=\"label\">\n <label for=\"att-multiple\" class=\"body-medium\">Multiple values</label>\n <span class=\"body-small meta\">Creates an array of values.</span>\n </div>\n </div>\n ${renderHelp('association', 'multiple-checkbox')}\n </div>\n </div>`\n }\n\n protected renderSchema(model: DomainAssociation): TemplateResult | typeof nothing {\n const { linked = false } = model.schema || {}\n const disabled = !this.canEdit\n return html`<div class=\"editor-section\">\n <div class=\"section-title title-medium\">Schema</div>\n <div class=\"row\">\n <div class=\"input\">\n <ui-switch\n .checked=\"${linked}\"\n name=\"linked\"\n id=\"linked\"\n @change=\"${this.handleLinkedChange}\"\n ?disabled=\"${disabled}\"\n ></ui-switch>\n <label for=\"linked\" class=\"body-medium\">Use the reference key to access schema.</label>\n </div>\n ${renderHelp('association', 'linked-switch')}\n </div>\n </div>`\n }\n\n protected renderTargetEntitySection(model: DomainAssociation): TemplateResult {\n return html`<div\n class=\"editor-section\"\n @dragenter=\"${this.handleTargetDragEnter}\"\n @dragover=\"${this.handleTargetDragOver}\"\n @dragleave=\"${this.handleTargetDragLeave}\"\n @drop=\"${this.handleTargetDrop}\"\n >\n <div class=\"section-title title-medium\">Target entity</div>\n ${this.renderChooseTargetButton()} ${this.renderTargetEntities(model)}\n </div>`\n }\n\n /**\n * Renders the section with the current target entity.\n *\n * @todo: The UI only allows to select one target entity.\n * We need to add a way to select multiple target entities.\n */\n protected renderTargetEntities(model: DomainAssociation): TemplateResult | typeof nothing {\n const targets = [...model.listTargets()]\n if (!targets.length) {\n return nothing\n }\n return html`${this.renderTargetItems(targets)} ${targets.length > 1 ? this.renderUnionType(model) : nothing}`\n }\n\n protected renderChooseTargetButton(): TemplateResult {\n const disabled = !this.canEdit\n return html`<div class=\"row\">\n <ui-button color=\"tonal\" type=\"button\" @click=\"${this.handleSelectTarget}\" ?disabled=\"${disabled}\"\n >Choose target entity</ui-button\n >\n ${renderHelp('association', 'target-selector')}\n </div>`\n }\n\n protected renderTargetItems(targets: DomainEntity[]): TemplateResult | typeof nothing {\n if (!targets.length) {\n return nothing\n }\n const disabled = !this.canEdit\n return html`<ui-chip-set>\n ${targets.map((item) => {\n const label = item.info.getLabel()\n return html`<ui-chip\n type=\"input\"\n class=\"target-chip\"\n data-key=\"${item.key}\"\n data-namespace=\"${item.domain.key}\"\n removable\n title=\"Open the association target\"\n aria-label=\"Open the association target ${label}\"\n ?disabled=\"${disabled}\"\n @remove=\"${this.handleDeleteTarget}\"\n @click=\"${this.handleNavigateTarget}\"\n >${label}</ui-chip\n >`\n })}\n </ui-chip-set> `\n }\n\n protected renderUnionType(model: DomainAssociation): TemplateResult {\n const { schema } = model\n const unionType = schema?.unionType || 'anyOf'\n const supportingText = 'Used with multiple entities.'\n const disabled = !this.canEdit\n return html`<div class=\"row input-row\">\n <ui-select\n label=\"Union type\"\n class=\"input\"\n name=\"unionType\"\n .value=\"${unionType}\"\n .supportingText=\"${supportingText}\"\n ?disabled=\"${disabled}\"\n @change=\"${this.handleUnionTypeChange}\"\n >\n <ui-option value=\"allOf\">\n <div>All of</div>\n <div slot=\"supporting-text\">Combines all fields into a single schema.</div>\n </ui-option>\n <ui-option value=\"anyOf\">\n <div>Any of (default)</div>\n <div slot=\"supporting-text\">Any of the schemas are valid (separately).</div>\n </ui-option>\n <ui-option value=\"oneOf\">\n <div>One of</div>\n <div slot=\"supporting-text\">Same as Any of, but different validation rules.</div>\n </ui-option>\n </ui-select>\n ${renderHelp('association', 'unionType-select')}\n </div>`\n }\n\n protected renderDataGovernanceSection(model: DomainAssociation): TemplateResult | typeof nothing {\n // TODO: Add classification UI (data tagging)\n const tax = this.renderTaxonomyInput(model)\n if (tax === nothing) {\n return nothing\n }\n return html`<div class=\"editor-section\">\n <div class=\"section-title title-medium\">Data Governance</div>\n ${tax}\n </div>`\n }\n\n protected renderTaxonomyInput(model: DomainAssociation): TemplateResult | typeof nothing {\n const allCategories = getSemanticsByCategory(SemanticScope.Association)\n const selectedSemantics: AssociationSemantic[] = []\n const filteredCategories: Record<string, AssociationSemantic[]> = {}\n\n // Filter categories and semantics, excluding already selected ones\n for (const category of Object.keys(allCategories)) {\n const semantics = allCategories[category as SemanticCategory].filter((s) => {\n // Check if this semantic is already selected\n if (model.semantics.some((ms) => ms.id === s.id)) {\n selectedSemantics.push(s as AssociationSemantic)\n return false\n }\n return true\n }) as AssociationSemantic[]\n\n if (semantics.length > 0) {\n filteredCategories[category] = semantics\n }\n }\n\n if (Object.keys(filteredCategories).length === 0 && selectedSemantics.length === 0) {\n return nothing\n }\n\n return html`<div class=\"taxonomy\">\n <ui-button\n id=\"taxonomy-menu-anchor\"\n popoverTarget=\"taxonomy-menu\"\n color=\"outlined\"\n aria-label=\"Add association taxonomy\"\n ?disabled=\"${!this.canEdit}\"\n >\n <ui-icon slot=\"icon\">add</ui-icon>Add taxonomy\n </ui-button>\n <ui-menu popover=\"auto\" id=\"taxonomy-menu\" class=\"taxonomy-menu\" @select=\"${this.handleTaxonomySelect}\">\n ${this.renderTaxonomyCategories(filteredCategories)}\n </ui-menu>\n ${renderHelp('association', 'taxonomy-select')}\n </div>\n ${this.renderSelectedSemantics(selectedSemantics)}`\n }\n\n protected renderSelectedSemantics(selected: AssociationSemantic[]): TemplateResult | typeof nothing {\n if (selected.length === 0) {\n return nothing\n }\n const items = selected.map((semantic) => this.renderTaxonomyItem(semantic))\n return html`<div class=\"enabled-taxonomy\">${items}</div>`\n }\n\n protected renderTaxonomyItem(semantic: AssociationSemantic): TemplateResult {\n const canEdit = this.canEdit\n return html`<div class=\"taxonomy-item\">\n <span class=\"label body-large\">${semantic.displayName}</span>\n ${semantic.hasConfig\n ? html`<ui-button\n color=\"text\"\n data-id=\"${semantic.id}\"\n @click=\"${this.handleConfigureTaxonomy}\"\n ?disabled=\"${!canEdit}\"\n >Configure</ui-button\n >`\n : nothing}\n ${canEdit\n ? html`<ui-icon-button\n type=\"button\"\n data-id=\"${semantic.id}\"\n @click=\"${this.handleDeleteTaxonomy}\"\n ?disabled=\"${!canEdit}\"\n ><ui-icon icon=\"deleteOutline\"></ui-icon\n ></ui-icon-button>`\n : nothing}\n </div>`\n }\n\n protected renderTaxonomyCategories(categories: Record<string, AssociationSemantic[]>): TemplateResult[] {\n const items: TemplateResult[] = []\n const entries = Object.entries(categories)\n const cLen = entries.length\n\n entries.forEach(([categoryName, semantics], categoryIndex) => {\n // Add category title as a non-selectable menu item\n items.push(html` <div class=\"menu-category-title title-small\">${categoryName}</div> `)\n\n // Add semantics from this category\n for (const semantic of semantics) {\n items.push(html`\n <ui-menu-item data-value=\"${semantic.id}\" lines=\"two\">\n <div>${semantic.displayName}</div>\n <div slot=\"supporting-text\">${semantic.description}</div>\n </ui-menu-item>\n `)\n }\n\n // Add divider after each category except the last one\n if (categoryIndex < cLen - 1) {\n items.push(html`<ui-divider></ui-divider>`)\n }\n })\n\n return items\n }\n}\n"]}
1
+ {"version":3,"file":"DomainAssociationEditor.js","sourceRoot":"","sources":["../../../../src/modeling/internals/DomainAssociationEditor.ts"],"names":[],"mappings":"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","sourcesContent":["import { nothing, type TemplateResult, type PropertyValues, html } from 'lit'\nimport { state } from 'lit/decorators.js'\nimport { live } from 'lit/directives/live.js'\nimport { DomainAssociation } from '@api-client/core/modeling/DomainAssociation.js'\nimport { DomainEntityKind } from '@api-client/core/models/kinds.js'\nimport type { DomainEntity } from '@api-client/core/modeling/DomainEntity.js'\nimport { cancelEvent } from '@api-client/core/lib/events/Utils.js'\nimport type { UiCheckboxElement } from '../../md/checkbox/ui-checkbox.js'\nimport { ModelingElement } from './ModelingElement.js'\nimport type { UiSwitchElement } from '../../md/switch/ui-switch.js'\nimport { Events } from '../../events/Events.js'\nimport { renderHelp } from '../../help/render.js'\nimport type { DomainBrowseInit, DomainSelectionInfo } from '../types.js'\nimport {\n type AssociationSemantic,\n getSemanticsByCategory,\n SemanticCategory,\n SemanticScope,\n SemanticType,\n} from '@api-client/core/modeling/Semantics.js'\nimport type { TaxonomyDialog } from '../dialogs/TaxonomyDialog.js'\nimport { TagsTaxonomy } from '../dialogs/TagsTaxonomy.js'\nimport { CategoryTaxonomy } from '../dialogs/CategoryTaxonomy.js'\n\n/**\n * Dispatched when the user wants to navigate to a parent entity.\n *\n * @event DomainAssociationEditor#openentity\n * @type {CustomEvent}\n * @property {object} detail - The event details.\n * @property {string} detail.key - The key of the parent entity to navigate to.\n * @property {string} detail.kind - The kind of the parent entity. It will always be `DomainEntityKind`.\n */\n\n/**\n * Dispatched when the user deletes a property.\n *\n * @event DomainAssociationEditor#delete\n * @type {CustomEvent}\n * @property {object} detail - The event details.\n * @property {string} detail.key - The key of the parent entity to navigate to.\n * @property {string} detail.kind - The kind of the parent entity. It will always be `DomainEntityKind`.\n */\n\n/**\n * An element that specializes in editing properties of a domain association.\n *\n * @fires domainbrowserbrowse - Dispatched when the user clicks on the \"pick\" button. The detail object\n * has the full intent configuration.\n * @fires change - Dispatched when the user changes the value of one of the inputs.\n * @fires DomainAssociationEditor#openentity - A custom event with the `key` and `type` when a property was selected.\n * @fires DomainAssociationEditor#delete - A custom event with the `key` and `type` when a property was selected.\n */\nexport default class DomainAssociationEditor extends ModelingElement {\n /**\n * The `DomainAssociation` object being edited.\n * This is updated when the `selected` property changes.\n */\n @state() private accessor domainElement: DomainAssociation | undefined\n\n protected override willUpdate(cp: PropertyValues<this>): void {\n if (cp.has('selected') || cp.has('root') || cp.has('namespace')) {\n this.computeAssociation()\n }\n super.willUpdate(cp)\n }\n\n protected async computeAssociation(): Promise<void> {\n const { root, selected, namespace } = this\n this.domainElement = undefined\n if (!root || !selected) {\n this.domainElement = undefined\n return\n }\n // MD components have issues updating values\n // so we need to wait for the updateComplete to remove them.\n await this.updateComplete\n this.domainElement = root.findAssociation(selected, namespace)\n }\n\n /**\n * Sets the value of one of the \"attribute\" fields.\n * These are the checkboxes located in the \"Attributes\" section.\n *\n * @param name The name of the attribute to set.\n * @param value The boolean option to set as the value.\n * @throws {TypeError} When the passed name is not a valid attribute name.\n * @throws {TypeError} When the passed value is not a boolean value.\n * @fires change - Dispatched when an attribute value is updated.\n */\n setModelAttribute(name: string, value: boolean): void {\n if (!DomainAssociation.isValidAttribute(name)) {\n throw new TypeError(`Invalid attribute name: ${name}.`)\n }\n if (typeof value !== 'boolean') {\n throw new TypeError(`Invalid attribute value: ${value}.`)\n }\n const { domainElement } = this\n if (!domainElement) {\n return\n }\n domainElement[name] = value\n this.notifyChange()\n this.requestUpdate()\n }\n\n /**\n * Sets the value of the association's `schema.linked` property.\n * @param value The value to set the `linked` property to.\n */\n setSchemaLinked(value: boolean): void {\n const { domainElement } = this\n if (!domainElement) {\n return\n }\n const schema = domainElement.ensureSchema()\n schema.linked = value\n this.notifyChange()\n this.requestUpdate()\n }\n\n /**\n * A handler for the one of the metadata inputs value change.\n *\n * It supports the following fields:\n *\n * - `name`\n * - `displayName`\n * - `description`\n */\n protected handleMetaChange(e: Event): void {\n const { domainElement } = this\n if (!domainElement) {\n return\n }\n const node = e.target as HTMLInputElement\n const { name, value } = node\n if (value && !node.reportValidity()) {\n return\n }\n if (!['name', 'displayName', 'description'].includes(name as string)) {\n return\n }\n if (name === 'name' && !value) {\n return\n }\n domainElement.info[name as 'name' | 'description' | 'displayName'] = value\n this.notifyChange()\n }\n\n /**\n * A handler for any of the checkboxes in the `attributes` section.\n * It calls the `setModelAttribute()` method.\n */\n protected handleAttributeOptionChange(e: Event): void {\n const checkbox = e.target as UiCheckboxElement\n const { name = '', checked } = checkbox\n this.setModelAttribute(name, !!checked)\n }\n\n protected handleLinkedChange(e: Event): void {\n const checkbox = e.target as UiSwitchElement\n const { name, checked } = checkbox\n if (name !== 'linked') {\n return\n }\n this.setSchemaLinked(!!checked)\n }\n\n protected async handleSelectTarget(): Promise<void> {\n const domain = this.domainElement?.domain\n if (!domain) {\n throw new Error('Domain is not defined for the domain association.')\n }\n const data: DomainBrowseInit = {\n reason: 'pick',\n domain,\n allowed: [DomainEntityKind],\n withRecent: true,\n }\n const result = await Events.Domain.Browse.browse(data, this)\n if (!result) {\n return\n }\n if (result.result === 'canceled') {\n return\n }\n if (result.kind !== DomainEntityKind) {\n return\n }\n this.addTarget(result.selected, result.domain)\n }\n\n protected handleDeleteTarget(e: Event): void {\n const button = e.target as HTMLButtonElement\n const { key, namespace } = button.dataset\n if (!key || !namespace) {\n return\n }\n const { domainElement, root } = this\n if (!domainElement || !root) {\n return\n }\n let entity: DomainEntity | undefined\n if (root.key === namespace) {\n entity = root.findEntity(key)\n } else {\n // const foreign = root.foreign.find((item) => item.key === namespace)\n // if (!foreign) {\n // throw new Error(`Namespace ${namespace} not found.`)\n // }\n // entity = foreign.findEntity(key)\n throw new Error(`Foreign namespaces are not supported yet.`)\n }\n if (entity) {\n domainElement.removeTarget(entity)\n this.notifyChange()\n this.requestUpdate()\n }\n }\n\n protected handleNavigateTarget(e: Event): void {\n const item = e.currentTarget as HTMLElement\n const { key } = item.dataset\n if (!key) {\n return\n }\n const detail: DomainSelectionInfo = {\n key,\n kind: DomainEntityKind,\n domain: this.root?.key || '',\n }\n this.dispatchEvent(new CustomEvent('openentity', { detail }))\n }\n\n protected handleUnionTypeChange(e: Event): void {\n const select = e.target as HTMLSelectElement\n const { value } = select\n const { domainElement } = this\n if (!domainElement) {\n return\n }\n const schema = domainElement.ensureSchema()\n schema.unionType = value as 'allOf' | 'anyOf' | 'oneOf' | 'not'\n this.notifyChange()\n this.requestUpdate()\n }\n\n protected handleTargetDragEnter(e: DragEvent): void {\n const dt = e.dataTransfer\n if (!dt) {\n return\n }\n const hasJsonData = dt.types.includes('application/json')\n if (!hasJsonData) {\n return\n }\n const zone = e.currentTarget as HTMLElement\n zone.classList.add('drop-zone')\n dt.dropEffect = 'link'\n dt.effectAllowed = 'link'\n }\n\n protected handleTargetDragOver(e: DragEvent): void {\n const dt = e.dataTransfer\n if (!dt) {\n return\n }\n const hasJsonData = dt.types.includes('application/json')\n if (!hasJsonData) {\n return\n }\n e.preventDefault()\n }\n\n protected handleTargetDragLeave(e: DragEvent): void {\n const dt = e.dataTransfer\n if (!dt) {\n return\n }\n const zone = e.currentTarget as HTMLElement\n zone.classList.remove('drop-zone')\n }\n\n protected handleTargetDrop(e: DragEvent): void {\n const dt = e.dataTransfer\n if (!dt) {\n return\n }\n const zone = e.currentTarget as HTMLElement\n zone.classList.remove('drop-zone')\n const raw = dt.getData('application/json')\n const data = JSON.parse(raw) as { items: DomainSelectionInfo[] }\n const entities = data.items.filter((item) => item.kind === DomainEntityKind)\n if (entities.length === 0 || !this.domainElement || !this.root) {\n return\n }\n for (const info of entities) {\n const entity = this.root.findEntity(info.key, info.domain)\n if (!entity) {\n throw new Error(`Entity with key ${info.key} not found in namespace ${info.domain}.`)\n }\n this.domainElement.addTarget(entity)\n }\n this.notifyChange()\n this.requestUpdate()\n }\n\n /**\n * Adds a target entity to the association.\n *\n * @param key The key of the target entity to add.\n * @param nsKey The namespace key of the target entity, if it is in a foreign namespace.\n */\n protected addTarget(key: string, nsKey?: string): void {\n const { domainElement, root } = this\n if (!domainElement || !root) {\n return\n }\n const entity = root.findEntity(key, nsKey)\n if (entity) {\n domainElement.addTarget(entity)\n } else {\n throw new Error(`Entity with key ${key} not found in namespace ${nsKey || root.key}.`)\n }\n this.notifyChange()\n this.requestUpdate()\n }\n\n protected handleDelete(): void {\n const { domainElement } = this\n if (!domainElement) {\n return\n }\n const { root } = this\n if (!root) {\n return\n }\n root.removeAssociation(domainElement.key)\n this.dispatchEvent(new CustomEvent('delete', { detail: { key: domainElement.key, kind: domainElement.kind } }))\n }\n\n protected handleDeleteTaxonomy(e: Event): void {\n const button = e.currentTarget as HTMLButtonElement\n const { id } = button.dataset\n if (!id) {\n return\n }\n this.domainElement?.removeSemantic(id as SemanticType)\n }\n\n protected handleTaxonomySelect(e: CustomEvent<{ item: HTMLElement }>): void {\n const { value } = e.detail.item.dataset\n if (value) {\n this.domainElement?.addSemantic({\n id: value as SemanticType,\n })\n this.requestUpdate()\n }\n }\n\n protected handleConfigureTaxonomy(e: Event): void {\n const button = e.currentTarget as HTMLButtonElement\n const { id } = button.dataset\n if (!id) {\n return\n }\n const element = this.domainElement\n if (!element) {\n return\n }\n let dialog: TaxonomyDialog\n if (id === SemanticType.Tags) {\n dialog = new TagsTaxonomy(element)\n } else if (id === SemanticType.Categories) {\n dialog = new CategoryTaxonomy(element)\n } else {\n throw new TypeError(`Unsupported taxonomy type: ${id}.`)\n }\n dialog.run()\n }\n\n protected override render(): TemplateResult | typeof nothing {\n const { domainElement } = this\n if (!domainElement) {\n return nothing\n }\n return this.renderForm(domainElement)\n }\n\n protected renderForm(model: DomainAssociation): TemplateResult {\n return html`\n <form name=\"association\" @submit=\"${cancelEvent}\" data-key=\"${model.key}\" class=\"modeling-form\">\n ${this.renderMetaInputs(model)} ${this.renderAttributes(model)} ${this.renderTargetEntitySection(model)}\n ${this.renderSchema(model)} ${this.renderDataGovernanceSection(model)}\n </form>\n `\n }\n\n protected renderMetaInputs(model: DomainAssociation): TemplateResult {\n const disabled = !this.canEdit\n const formatError =\n 'Name must start with a letter or underscore and can only contain letters, numbers, and underscores.'\n return html`\n <div class=\"editor-section\">\n <div class=\"row input-row\">\n <ui-outlined-text-field\n class=\"input\"\n name=\"name\"\n .value=\"${live(model.info.name || '')}\"\n label=\"Name\"\n required\n minLength=\"2\"\n maxLength=\"59\"\n pattern=\"[a-zA-Z_][a-zA-Z0-9_]+\"\n .invalidText=\"${formatError}\"\n ?disabled=\"${disabled}\"\n @change=\"${this.handleMetaChange}\"\n ></ui-outlined-text-field>\n ${renderHelp('association', 'name-input')}\n </div>\n <div class=\"row input-row\">\n <ui-outlined-text-field\n class=\"input\"\n name=\"displayName\"\n .value=\"${live(model.info.displayName || '')}\"\n label=\"Display name (optional)\"\n @change=\"${this.handleMetaChange}\"\n ?disabled=\"${disabled}\"\n ></ui-outlined-text-field>\n ${renderHelp('association', 'displayName-input')}\n </div>\n <div class=\"row input-row\">\n <ui-outlined-text-field\n class=\"input\"\n name=\"description\"\n .value=\"${live(model.info.description || '')}\"\n label=\"Description (optional)\"\n @change=\"${this.handleMetaChange}\"\n ?disabled=\"${disabled}\"\n ></ui-outlined-text-field>\n ${renderHelp('association', 'description-input')}\n </div>\n </div>\n `\n }\n\n protected renderAttributes(model: DomainAssociation): TemplateResult {\n return html`<div class=\"editor-section\">\n <div class=\"section-title title-medium\">Attributes</div>\n ${this.renderAttributeOptions(model)}\n </div>`\n }\n\n protected renderAttributeOptions(model: DomainAssociation): TemplateResult {\n const { required = false, multiple = false } = model\n const disabled = !this.canEdit\n return html`<div class=\"checkbox-group\">\n <div class=\"row\">\n <div class=\"input checkbox\">\n <ui-checkbox\n id=\"att-required\"\n .checked=\"${required}\"\n name=\"required\"\n ?disabled=\"${disabled}\"\n @change=\"${this.handleAttributeOptionChange}\"\n ></ui-checkbox>\n <div class=\"label\">\n <label for=\"att-required\" class=\"body-medium\">Required</label>\n </div>\n </div>\n ${renderHelp('association', 'required-checkbox')}\n </div>\n <div class=\"row\">\n <div class=\"input checkbox metadata\">\n <ui-checkbox\n id=\"att-multiple\"\n .checked=\"${multiple}\"\n name=\"multiple\"\n ?disabled=\"${disabled}\"\n @change=\"${this.handleAttributeOptionChange}\"\n ></ui-checkbox>\n <div class=\"label\">\n <label for=\"att-multiple\" class=\"body-medium\">Multiple values</label>\n <span class=\"body-small meta\">Creates an array of values.</span>\n </div>\n </div>\n ${renderHelp('association', 'multiple-checkbox')}\n </div>\n </div>`\n }\n\n protected renderSchema(model: DomainAssociation): TemplateResult | typeof nothing {\n const { linked = false } = model.schema || {}\n const disabled = !this.canEdit\n return html`<div class=\"editor-section\">\n <div class=\"section-title title-medium\">Schema</div>\n <div class=\"row\">\n <div class=\"input\">\n <ui-switch\n .checked=\"${linked}\"\n name=\"linked\"\n id=\"linked\"\n @change=\"${this.handleLinkedChange}\"\n ?disabled=\"${disabled}\"\n ></ui-switch>\n <label for=\"linked\" class=\"body-medium\">Use the reference key to access schema.</label>\n </div>\n ${renderHelp('association', 'linked-switch')}\n </div>\n </div>`\n }\n\n protected renderTargetEntitySection(model: DomainAssociation): TemplateResult {\n return html`<div\n class=\"editor-section\"\n @dragenter=\"${this.handleTargetDragEnter}\"\n @dragover=\"${this.handleTargetDragOver}\"\n @dragleave=\"${this.handleTargetDragLeave}\"\n @drop=\"${this.handleTargetDrop}\"\n >\n <div class=\"section-title title-medium\">Target entity</div>\n ${this.renderChooseTargetButton()} ${this.renderTargetEntities(model)}\n </div>`\n }\n\n /**\n * Renders the section with the current target entity.\n *\n * @todo: The UI only allows to select one target entity.\n * We need to add a way to select multiple target entities.\n */\n protected renderTargetEntities(model: DomainAssociation): TemplateResult | typeof nothing {\n const targets = [...model.listTargets()]\n if (!targets.length) {\n return nothing\n }\n return html`${this.renderTargetItems(targets)} ${targets.length > 1 ? this.renderUnionType(model) : nothing}`\n }\n\n protected renderChooseTargetButton(): TemplateResult {\n const disabled = !this.canEdit\n return html`<div class=\"row\">\n <ui-button color=\"tonal\" type=\"button\" @click=\"${this.handleSelectTarget}\" ?disabled=\"${disabled}\"\n >Choose target entity</ui-button\n >\n ${renderHelp('association', 'target-selector')}\n </div>`\n }\n\n protected renderTargetItems(targets: DomainEntity[]): TemplateResult | typeof nothing {\n if (!targets.length) {\n return nothing\n }\n const disabled = !this.canEdit\n return html`<ui-chip-set>\n ${targets.map((item) => {\n const label = item.info.getLabel()\n return html`<ui-chip\n type=\"input\"\n class=\"target-chip\"\n data-key=\"${item.key}\"\n data-namespace=\"${item.domain.key}\"\n removable\n title=\"Open the association target\"\n aria-label=\"Open the association target ${label}\"\n ?disabled=\"${disabled}\"\n @remove=\"${this.handleDeleteTarget}\"\n @click=\"${this.handleNavigateTarget}\"\n >${label}</ui-chip\n >`\n })}\n </ui-chip-set> `\n }\n\n protected renderUnionType(model: DomainAssociation): TemplateResult {\n const { schema } = model\n const unionType = schema?.unionType || 'anyOf'\n const supportingText = 'Used with multiple entities.'\n const disabled = !this.canEdit\n return html`<div class=\"row input-row\">\n <ui-select\n label=\"Union type\"\n class=\"input\"\n name=\"unionType\"\n .value=\"${unionType}\"\n .supportingText=\"${supportingText}\"\n ?disabled=\"${disabled}\"\n @change=\"${this.handleUnionTypeChange}\"\n >\n <ui-option value=\"allOf\">\n <div>All of</div>\n <div slot=\"supporting-text\">Combines all fields into a single schema.</div>\n </ui-option>\n <ui-option value=\"anyOf\">\n <div>Any of (default)</div>\n <div slot=\"supporting-text\">Any of the schemas are valid (separately).</div>\n </ui-option>\n <ui-option value=\"oneOf\">\n <div>One of</div>\n <div slot=\"supporting-text\">Same as Any of, but different validation rules.</div>\n </ui-option>\n </ui-select>\n ${renderHelp('association', 'unionType-select')}\n </div>`\n }\n\n protected renderDataGovernanceSection(model: DomainAssociation): TemplateResult | typeof nothing {\n // TODO: Add classification UI (data tagging)\n const tax = this.renderTaxonomyInput(model)\n if (tax === nothing) {\n return nothing\n }\n return html`<div class=\"editor-section\">\n <div class=\"section-title title-medium\">Data Governance</div>\n ${tax}\n </div>`\n }\n\n protected renderTaxonomyInput(model: DomainAssociation): TemplateResult | typeof nothing {\n const allCategories = getSemanticsByCategory(SemanticScope.Association)\n const selectedSemantics: AssociationSemantic[] = []\n const filteredCategories: Record<string, AssociationSemantic[]> = {}\n\n // Filter categories and semantics, excluding already selected ones\n for (const category of Object.keys(allCategories)) {\n const semantics = allCategories[category as SemanticCategory].filter((s) => {\n // Check if this semantic is already selected\n if (model.semantics.some((ms) => ms.id === s.id)) {\n selectedSemantics.push(s as AssociationSemantic)\n return false\n }\n return true\n }) as AssociationSemantic[]\n\n if (semantics.length > 0) {\n filteredCategories[category] = semantics\n }\n }\n\n if (Object.keys(filteredCategories).length === 0 && selectedSemantics.length === 0) {\n return nothing\n }\n\n return html`<div class=\"taxonomy\">\n <ui-button\n id=\"taxonomy-menu-anchor\"\n popoverTarget=\"taxonomy-menu\"\n color=\"outlined\"\n aria-label=\"Add association taxonomy\"\n ?disabled=\"${!this.canEdit}\"\n >\n <ui-icon slot=\"icon\">add</ui-icon>Add taxonomy\n </ui-button>\n <ui-menu popover=\"auto\" id=\"taxonomy-menu\" class=\"taxonomy-menu\" @select=\"${this.handleTaxonomySelect}\">\n ${this.renderTaxonomyCategories(filteredCategories)}\n </ui-menu>\n ${renderHelp('association', 'taxonomy-select')}\n </div>\n ${this.renderSelectedSemantics(selectedSemantics)}`\n }\n\n protected renderSelectedSemantics(selected: AssociationSemantic[]): TemplateResult | typeof nothing {\n if (selected.length === 0) {\n return nothing\n }\n const items = selected.map((semantic) => this.renderTaxonomyItem(semantic))\n return html`<div class=\"enabled-taxonomy\">${items}</div>`\n }\n\n protected renderTaxonomyItem(semantic: AssociationSemantic): TemplateResult {\n const canEdit = this.canEdit\n return html`<div class=\"taxonomy-item\">\n <span class=\"label body-large\">${semantic.displayName}</span>\n ${semantic.hasConfig\n ? html`<ui-button\n color=\"text\"\n data-id=\"${semantic.id}\"\n @click=\"${this.handleConfigureTaxonomy}\"\n ?disabled=\"${!canEdit}\"\n >Configure</ui-button\n >`\n : nothing}\n ${canEdit\n ? html`<ui-icon-button\n type=\"button\"\n data-id=\"${semantic.id}\"\n @click=\"${this.handleDeleteTaxonomy}\"\n ?disabled=\"${!canEdit}\"\n ><ui-icon icon=\"deleteOutline\"></ui-icon\n ></ui-icon-button>`\n : nothing}\n </div>`\n }\n\n protected renderTaxonomyCategories(categories: Record<string, AssociationSemantic[]>): TemplateResult[] {\n const items: TemplateResult[] = []\n const entries = Object.entries(categories)\n const cLen = entries.length\n\n entries.forEach(([categoryName, semantics], categoryIndex) => {\n // Add category title as a non-selectable menu item\n items.push(html` <div class=\"menu-category-title title-small\">${categoryName}</div> `)\n\n // Add semantics from this category\n for (const semantic of semantics) {\n items.push(html`\n <ui-menu-item data-value=\"${semantic.id}\" lines=\"two\">\n <div>${semantic.displayName}</div>\n <div slot=\"supporting-text\">${semantic.description}</div>\n </ui-menu-item>\n `)\n }\n\n // Add divider after each category except the last one\n if (categoryIndex < cLen - 1) {\n items.push(html`<ui-divider></ui-divider>`)\n }\n })\n\n return items\n }\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"DomainBrowser.d.ts","sourceRoot":"","sources":["../../../../src/modeling/internals/DomainBrowser.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"DomainBrowser.d.ts","sourceRoot":"","sources":["../../../../src/modeling/internals/DomainBrowser.ts"],"names":[],"mappings":"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"}
@@ -333,7 +333,10 @@ let DomainBrowser = (() => {
333
333
  }
334
334
  this.setupAllowedSelection(state);
335
335
  this.requestUpdate();
336
- this.notifySelected(state.selected);
336
+ if (this.hasAllowedSelection) {
337
+ // We only notify the selection if it is allowed.
338
+ this.notifySelected(state.selected);
339
+ }
337
340
  }
338
341
  notifySelected(selected) {
339
342
  this.dispatchEvent(new CustomEvent('select', { detail: selected, bubbles: false, composed: false }));
@@ -1 +1 @@
1
- {"version":3,"file":"DomainBrowser.js","sourceRoot":"","sources":["../../../../src/modeling/internals/DomainBrowser.ts"],"names":[],"mappings":"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","sourcesContent":["import { html, nothing, type PropertyValues, type TemplateResult } from 'lit'\nimport { property, state } from 'lit/decorators.js'\nimport { ifDefined } from 'lit/directives/if-defined.js'\nimport { classMap } from 'lit/directives/class-map.js'\nimport { ModelingElement } from './ModelingElement.js'\nimport type {\n DomainBrowseRecentItem,\n DomainBrowserPickItem,\n DomainBrowserPickReason,\n DomainBrowseSelectedItem,\n} from '../types.js'\nimport {\n DomainEntityKind,\n DomainFileKind,\n DomainModelKind,\n DomainNamespaceKind,\n type DomainEntity,\n type DomainModel,\n type DomainNamespace,\n} from '@api-client/core/browser.js'\nimport { Events } from '../../events/Events.js'\nimport { getDomainIconType } from '../lib/ui_mapping.js'\nimport type { TabSelectionDetail } from '../../md/tabs/ui-tabs.js'\n\ninterface DomainPartition {\n /**\n * The list of currently rendered items.\n */\n items: (DomainNamespace | DomainModel | DomainEntity)[]\n /**\n * The currently selected item.\n */\n selected?: DomainBrowseSelectedItem\n /**\n * The parent object, if any\n */\n parent?: DomainNamespace | DomainModel\n}\n\ninterface RecentPartition {\n /**\n * The list of recently picked items.\n */\n currentList: DomainBrowseRecentItem[]\n /**\n * The currently selected item.\n */\n selected?: DomainBrowseSelectedItem\n}\n\n/**\n * An element that provides browsing capabilities for a data domain.\n *\n * @fires select - Fired when a domain item is selected or deselected.\n * The detail contains `DomainBrowseSelectedItem` with the selected item's key, kind,\n * namespace, and whether it's a parent (can be opened), or `undefined` if deselected.\n */\nexport default class DomainBrowser extends ModelingElement {\n /**\n * Whether to include recent items in the browsing.\n */\n @property({ type: Boolean }) accessor withRecent = false\n /**\n * The reason to browse the domain.\n */\n @property({ type: String }) accessor reason: DomainBrowserPickReason = 'pick'\n /**\n * Specifies which items are allowed to select in the UI to return the result\n * back to the application. By default all data domain items are allowed.\n */\n @property({ type: Array }) accessor allowed: DomainBrowserPickItem[] | undefined\n /**\n * The currently selected tab.\n * @default 'domain'\n */\n @state() accessor selectedTab: 'recent' | 'domain' = 'domain'\n /**\n * Whether there is an allowed selection.\n */\n @state() accessor hasAllowedSelection = false\n\n /**\n * The recent browsing partition state.\n */\n recent: RecentPartition = {\n currentList: [],\n }\n\n /**\n * The current data domain partition state.\n */\n current?: DomainPartition\n\n /**\n * Returns the active browsing partition based on the selected tab.\n */\n get activePartition(): DomainPartition | RecentPartition {\n if (this.selectedTab === 'recent') {\n return this.recent\n }\n if (!this.current) {\n throw new Error('Browsing domain partition is not set.')\n }\n return this.current\n }\n\n protected override willUpdate(cp: PropertyValues<this>): void {\n super.willUpdate(cp)\n if (cp.has('root')) {\n this.setupCurrentPartition()\n this.setupRecent()\n }\n if (cp.has('withRecent')) {\n this.setupRecent()\n }\n }\n\n protected setupCurrentPartition(): void {\n const { root } = this\n if (!root) {\n this.current = undefined\n this.hasAllowedSelection = false\n return\n }\n this.current = {\n items: [],\n }\n this.setupAllowedSelection(this.current)\n this.updateBrowsingDomainList()\n }\n\n /**\n * Sets up whether a selection is allowed based on the current state.\n * @param partition - The partition to check.\n */\n protected setupAllowedSelection(partition: DomainPartition | RecentPartition): void {\n const { allowed = [] } = this\n const { selected } = partition\n if (!Array.isArray(allowed) || allowed.length === 0) {\n if (selected) {\n this.hasAllowedSelection = true\n }\n return\n }\n if (!selected) {\n this.hasAllowedSelection = false\n return\n }\n const { kind } = selected\n if (!kind) {\n this.hasAllowedSelection = false\n return\n }\n this.hasAllowedSelection = allowed.some((item) => {\n if (item === DomainEntityKind) {\n return kind === DomainEntityKind\n }\n if (item === DomainModelKind) {\n return kind === DomainModelKind\n }\n if (item === DomainNamespaceKind) {\n return kind === DomainNamespaceKind || kind === DomainFileKind\n }\n return false\n })\n }\n\n /**\n * Updates the current list of items in a browsing domain partition.\n * @param partition - The partition to update.\n */\n protected updateBrowsingDomainList(): void {\n const { root, current } = this\n if (!current || !root) {\n return\n }\n current.items = []\n const { parent } = current\n if (!parent) {\n current.items = [...root.listNamespaces(), ...root.listModels()]\n if (root.dependencies.size > 0) {\n for (const foreign of root.dependencies.values()) {\n current.items.push(...root.listForeignNamespaces(foreign.key))\n current.items.push(...root.listForeignModels(foreign.key))\n }\n }\n } else if (parent.kind === DomainModelKind) {\n const model = root.findModel(parent.key, parent.namespace)\n if (model) {\n current.items = [...model.listEntities()]\n }\n } else if (parent.kind === DomainNamespaceKind) {\n const namespace = root.findNamespace(parent.key, parent.namespace)\n if (namespace) {\n current.items = [...namespace.listNamespaces(), ...namespace.listModels()]\n }\n }\n this.requestUpdate()\n }\n\n /**\n * Requests the recent items from the context provider if `withRecent` is enabled.\n */\n protected async setupRecent(): Promise<void> {\n if (!this.withRecent) {\n this.recent.currentList = []\n if (this.selectedTab === 'recent') {\n this.selectedTab = 'domain'\n }\n return\n }\n const { root } = this\n if (!root) {\n this.recent.currentList = []\n return\n }\n const result = await Events.Domain.Browse.recent(root.key, this.allowed, this)\n this.recent.currentList = result ?? []\n }\n\n /**\n * Checks if an item is selected.\n * @param key The key of the item to check.\n * @returns True if the item is selected, false otherwise.\n */\n isSelected(key: string): boolean {\n const browsing = this.activePartition\n if (!browsing.selected) {\n return false\n }\n return browsing.selected.key === key\n }\n\n /**\n * Handles the tab selection event.\n * @param e - The tab selection event.\n */\n protected handleTabSelect(e: CustomEvent<TabSelectionDetail>): void {\n const { item } = e.detail\n const { key } = item.dataset\n if (!key) {\n return\n }\n this.selectedTab = key as 'recent' | 'domain'\n this.requestUpdate()\n }\n\n /**\n * Handles the click event to go back to the parent.\n */\n protected handleParentBack(): void {\n const source = this.current\n if (!source || !source.parent) {\n return\n }\n if (this.selectedTab === 'domain') {\n const domainElement = source.parent as DomainNamespace | DomainModel\n const ns = domainElement.getParentInstance()\n if (!ns || ns.key === ns.domain.key) {\n source.parent = undefined\n } else {\n this.selectParent(source, ns.key, ns.kind, ns.domain.key)\n }\n this.updateBrowsingDomainList()\n }\n }\n\n /**\n * Selects a parent item.\n *\n * @param partition - The partition to select the parent in.\n * @param key - The key of the parent item.\n * @param kind - The kind of the parent item.\n * @throws {Error} If the root is not set or the item is not found.\n */\n selectParent(partition: DomainPartition, key: string, kind: string, namespace?: string): void {\n const { root } = this\n if (!root) {\n throw new Error(`Unable to select parent. The root is not set.`)\n }\n if (kind === DomainModelKind) {\n partition.parent = root.findModel(key, namespace)\n } else if (kind === DomainNamespaceKind) {\n partition.parent = root.findNamespace(key, namespace)\n }\n if (!partition.parent) {\n throw new Error(`Unable to select parent. The item with key \"${key}\" was not found.`)\n }\n }\n\n /**\n * Handles the click event to open a parent item.\n *\n * @param e - The click event.\n */\n protected handleOpenParent(e: Event): void {\n e.preventDefault()\n e.stopPropagation()\n const button = e.currentTarget as HTMLElement\n const item = button.parentElement as HTMLElement\n const { kind, key, parent, namespace } = item.dataset\n if (!key || !kind || !parent || parent !== 'true' || !this.current) {\n return\n }\n this.selectParent(this.current, key, kind, namespace)\n this.updateBrowsingDomainList()\n }\n\n /**\n * Handles the selection event on a list.\n * @param e The selection event.\n */\n protected handleItemSelect(e: CustomEvent<{ item: HTMLElement }>): void {\n const { item } = e.detail\n if (!item) {\n return\n }\n const { kind, key, parent, namespace } = item.dataset\n if (!key || !kind || !parent || !namespace) {\n return\n }\n const state = this.activePartition\n if (this.isSelected(key)) {\n state.selected = undefined\n } else {\n state.selected = {\n key,\n kind,\n isParent: parent === 'true',\n namespace,\n }\n }\n this.setupAllowedSelection(state)\n this.requestUpdate()\n this.notifySelected(state.selected)\n }\n\n notifySelected(selected: DomainBrowseSelectedItem | undefined): void {\n this.dispatchEvent(\n new CustomEvent<DomainBrowseSelectedItem>('select', { detail: selected, bubbles: false, composed: false })\n )\n }\n\n override render(): TemplateResult | typeof nothing {\n if (!this.root) {\n return nothing\n }\n const result: (TemplateResult | typeof nothing)[] = []\n result.push(this.renderHeader())\n if (this.selectedTab === 'recent') {\n result.push(this.renderRecent())\n } else if (this.selectedTab === 'domain') {\n result.push(this.renderBrowsingDomain())\n }\n return html`${result}`\n }\n\n /**\n * Renders the header of the dialog.\n * @private\n */\n protected renderHeader(): TemplateResult | typeof nothing {\n if (this.selectedTab === 'recent') {\n return this.renderTabs()\n }\n const activePartition = this.current\n if (!activePartition) {\n return nothing\n }\n const { parent } = activePartition\n if (parent) {\n return this.renderParentHeader(parent)\n }\n return this.renderTabs()\n }\n\n /**\n * Renders the tabs.\n * @private\n */\n protected renderTabs(): TemplateResult {\n const { withRecent, selectedTab, root } = this\n return html`<ui-tabs @change=\"${this.handleTabSelect}\" class=\"tabs\">\n ${withRecent\n ? html`<ui-tab aria-controls=\"recent\" data-key=\"recent\" ?selected=\"${selectedTab === 'recent'}\">Recent</ui-tab>`\n : nothing}\n ${root?.key\n ? html`<ui-tab aria-controls=\"domain\" data-key=\"domain\" ?selected=\"${selectedTab === 'domain'}\"\n >Data domain</ui-tab\n >`\n : nothing}\n </ui-tabs>`\n }\n\n /**\n * Renders the parent header.\n * @private\n * @param parent - The parent item.\n */\n protected renderParentHeader(parent: DomainNamespace | DomainModel): TemplateResult {\n const label = parent.info.displayName || parent.info.name\n return html`<div class=\"parent-header\">\n <ui-icon-button @click=\"${this.handleParentBack}\"><ui-icon>arrow_back</ui-icon></ui-icon-button>\n <h2 class=\"title-medium\">${label}</h2>\n </div>\n <ui-divider></ui-divider>`\n }\n\n /**\n * Renders the recent items.\n * @private\n */\n protected renderRecent(): TemplateResult {\n const { recent } = this\n return html`<div id=\"recent\">${this.renderRecentItems(recent.currentList)}</div>`\n }\n\n /**\n * Renders the browsing domain items.\n * @private\n */\n protected renderBrowsingDomain(): TemplateResult | typeof nothing {\n const { current } = this\n if (!current) {\n return nothing\n }\n return html`<div id=\"domain\">${this.renderDomainItems(current.items)}</div>`\n }\n\n /**\n * Renders the domain items.\n * @private\n * @param items - The items to render.\n */\n protected renderDomainItems(items: (DomainNamespace | DomainModel | DomainEntity)[]): TemplateResult {\n const empty = items.length === 0\n if (empty) {\n return html`<p class=\"empty-list body-medium\">No items found.</p>`\n }\n return html`<ui-list selectActive class=\"domain-list\" @select=\"${this.handleItemSelect}\">\n ${items.map((item) => this.renderDomainItem(item))}\n </ui-list>`\n }\n\n protected renderRecentItems(items: DomainBrowseRecentItem[]): TemplateResult {\n const empty = items.length === 0\n if (empty) {\n return html`<p class=\"empty-list body-medium\">No items found.</p>`\n }\n return html`<ui-list selectActive class=\"domain-list\" @select=\"${this.handleItemSelect}\">\n ${items.map((item) => this.renderRecentItem(item))}\n </ui-list>`\n }\n\n protected renderDomainItem(item: DomainNamespace | DomainModel | DomainEntity): TemplateResult {\n const isParent = [DomainModelKind, DomainNamespaceKind].includes(item.kind)\n return this.renderItem(item.key, item.kind, item.info.getLabel(), { isParent, domain: item.namespace })\n }\n\n protected renderRecentItem(item: DomainBrowseRecentItem): TemplateResult {\n const { key, kind, label } = item\n return this.renderItem(key, kind, label, { domain: this.root?.key })\n }\n\n /**\n * Renders a generic item.\n * @private\n * @param key - The key of the item.\n * @param kind - The kind of the item.\n * @param label - The label of the item.\n * @param {{ noParent?: boolean }} opts - Additional options.\n */\n protected renderItem(\n key: string,\n kind: string,\n label: string,\n opts: { isParent?: boolean; domain?: string } = {}\n ): TemplateResult {\n const isSelected = this.isSelected(key)\n const parentValue = opts.isParent ? 'true' : 'false'\n const classes = {\n select: isSelected,\n }\n const icon = getDomainIconType(kind)\n return html`<ui-list-item\n data-kind=\"${kind}\"\n data-key=\"${key}\"\n data-parent=\"${parentValue}\"\n data-namespace=\"${ifDefined(opts.domain)}\"\n class=\"${classMap(classes)}\"\n >\n <ui-icon slot=\"start\" class=\"icon\" icon=\"${icon}\"></ui-icon>\n <span>${label}</span>\n ${isSelected && opts.isParent\n ? html`<ui-button color=\"filled\" slot=\"end\" @click=\"${this.handleOpenParent}\">Open</ui-button>`\n : nothing}\n </ui-list-item>`\n }\n}\n"]}
1
+ {"version":3,"file":"DomainBrowser.js","sourceRoot":"","sources":["../../../../src/modeling/internals/DomainBrowser.ts"],"names":[],"mappings":"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","sourcesContent":["import { html, nothing, type PropertyValues, type TemplateResult } from 'lit'\nimport { property, state } from 'lit/decorators.js'\nimport { ifDefined } from 'lit/directives/if-defined.js'\nimport { classMap } from 'lit/directives/class-map.js'\nimport { ModelingElement } from './ModelingElement.js'\nimport type {\n DomainBrowseRecentItem,\n DomainBrowserPickItem,\n DomainBrowserPickReason,\n DomainBrowseSelectedItem,\n} from '../types.js'\nimport {\n DomainEntityKind,\n DomainFileKind,\n DomainModelKind,\n DomainNamespaceKind,\n type DomainEntity,\n type DomainModel,\n type DomainNamespace,\n} from '@api-client/core/browser.js'\nimport { Events } from '../../events/Events.js'\nimport { getDomainIconType } from '../lib/ui_mapping.js'\nimport type { TabSelectionDetail } from '../../md/tabs/ui-tabs.js'\n\ninterface DomainPartition {\n /**\n * The list of currently rendered items.\n */\n items: (DomainNamespace | DomainModel | DomainEntity)[]\n /**\n * The currently selected item.\n */\n selected?: DomainBrowseSelectedItem\n /**\n * The parent object, if any\n */\n parent?: DomainNamespace | DomainModel\n}\n\ninterface RecentPartition {\n /**\n * The list of recently picked items.\n */\n currentList: DomainBrowseRecentItem[]\n /**\n * The currently selected item.\n */\n selected?: DomainBrowseSelectedItem\n}\n\n/**\n * An element that provides browsing capabilities for a data domain.\n *\n * @fires select - Fired when a domain item is selected or deselected.\n * The detail contains `DomainBrowseSelectedItem` with the selected item's key, kind,\n * namespace, and whether it's a parent (can be opened), or `undefined` if deselected.\n */\nexport default class DomainBrowser extends ModelingElement {\n /**\n * Whether to include recent items in the browsing.\n */\n @property({ type: Boolean }) accessor withRecent = false\n /**\n * The reason to browse the domain.\n */\n @property({ type: String }) accessor reason: DomainBrowserPickReason = 'pick'\n /**\n * Specifies which items are allowed to select in the UI to return the result\n * back to the application. By default all data domain items are allowed.\n */\n @property({ type: Array }) accessor allowed: DomainBrowserPickItem[] | undefined\n /**\n * The currently selected tab.\n * @default 'domain'\n */\n @state() accessor selectedTab: 'recent' | 'domain' = 'domain'\n /**\n * Whether there is an allowed selection.\n */\n @state() accessor hasAllowedSelection = false\n\n /**\n * The recent browsing partition state.\n */\n recent: RecentPartition = {\n currentList: [],\n }\n\n /**\n * The current data domain partition state.\n */\n current?: DomainPartition\n\n /**\n * Returns the active browsing partition based on the selected tab.\n */\n get activePartition(): DomainPartition | RecentPartition {\n if (this.selectedTab === 'recent') {\n return this.recent\n }\n if (!this.current) {\n throw new Error('Browsing domain partition is not set.')\n }\n return this.current\n }\n\n protected override willUpdate(cp: PropertyValues<this>): void {\n super.willUpdate(cp)\n if (cp.has('root')) {\n this.setupCurrentPartition()\n this.setupRecent()\n }\n if (cp.has('withRecent')) {\n this.setupRecent()\n }\n }\n\n protected setupCurrentPartition(): void {\n const { root } = this\n if (!root) {\n this.current = undefined\n this.hasAllowedSelection = false\n return\n }\n this.current = {\n items: [],\n }\n this.setupAllowedSelection(this.current)\n this.updateBrowsingDomainList()\n }\n\n /**\n * Sets up whether a selection is allowed based on the current state.\n * @param partition - The partition to check.\n */\n protected setupAllowedSelection(partition: DomainPartition | RecentPartition): void {\n const { allowed = [] } = this\n const { selected } = partition\n if (!Array.isArray(allowed) || allowed.length === 0) {\n if (selected) {\n this.hasAllowedSelection = true\n }\n return\n }\n if (!selected) {\n this.hasAllowedSelection = false\n return\n }\n const { kind } = selected\n if (!kind) {\n this.hasAllowedSelection = false\n return\n }\n this.hasAllowedSelection = allowed.some((item) => {\n if (item === DomainEntityKind) {\n return kind === DomainEntityKind\n }\n if (item === DomainModelKind) {\n return kind === DomainModelKind\n }\n if (item === DomainNamespaceKind) {\n return kind === DomainNamespaceKind || kind === DomainFileKind\n }\n return false\n })\n }\n\n /**\n * Updates the current list of items in a browsing domain partition.\n * @param partition - The partition to update.\n */\n protected updateBrowsingDomainList(): void {\n const { root, current } = this\n if (!current || !root) {\n return\n }\n current.items = []\n const { parent } = current\n if (!parent) {\n current.items = [...root.listNamespaces(), ...root.listModels()]\n if (root.dependencies.size > 0) {\n for (const foreign of root.dependencies.values()) {\n current.items.push(...root.listForeignNamespaces(foreign.key))\n current.items.push(...root.listForeignModels(foreign.key))\n }\n }\n } else if (parent.kind === DomainModelKind) {\n const model = root.findModel(parent.key, parent.namespace)\n if (model) {\n current.items = [...model.listEntities()]\n }\n } else if (parent.kind === DomainNamespaceKind) {\n const namespace = root.findNamespace(parent.key, parent.namespace)\n if (namespace) {\n current.items = [...namespace.listNamespaces(), ...namespace.listModels()]\n }\n }\n this.requestUpdate()\n }\n\n /**\n * Requests the recent items from the context provider if `withRecent` is enabled.\n */\n protected async setupRecent(): Promise<void> {\n if (!this.withRecent) {\n this.recent.currentList = []\n if (this.selectedTab === 'recent') {\n this.selectedTab = 'domain'\n }\n return\n }\n const { root } = this\n if (!root) {\n this.recent.currentList = []\n return\n }\n const result = await Events.Domain.Browse.recent(root.key, this.allowed, this)\n this.recent.currentList = result ?? []\n }\n\n /**\n * Checks if an item is selected.\n * @param key The key of the item to check.\n * @returns True if the item is selected, false otherwise.\n */\n isSelected(key: string): boolean {\n const browsing = this.activePartition\n if (!browsing.selected) {\n return false\n }\n return browsing.selected.key === key\n }\n\n /**\n * Handles the tab selection event.\n * @param e - The tab selection event.\n */\n protected handleTabSelect(e: CustomEvent<TabSelectionDetail>): void {\n const { item } = e.detail\n const { key } = item.dataset\n if (!key) {\n return\n }\n this.selectedTab = key as 'recent' | 'domain'\n this.requestUpdate()\n }\n\n /**\n * Handles the click event to go back to the parent.\n */\n protected handleParentBack(): void {\n const source = this.current\n if (!source || !source.parent) {\n return\n }\n if (this.selectedTab === 'domain') {\n const domainElement = source.parent as DomainNamespace | DomainModel\n const ns = domainElement.getParentInstance()\n if (!ns || ns.key === ns.domain.key) {\n source.parent = undefined\n } else {\n this.selectParent(source, ns.key, ns.kind, ns.domain.key)\n }\n this.updateBrowsingDomainList()\n }\n }\n\n /**\n * Selects a parent item.\n *\n * @param partition - The partition to select the parent in.\n * @param key - The key of the parent item.\n * @param kind - The kind of the parent item.\n * @throws {Error} If the root is not set or the item is not found.\n */\n selectParent(partition: DomainPartition, key: string, kind: string, namespace?: string): void {\n const { root } = this\n if (!root) {\n throw new Error(`Unable to select parent. The root is not set.`)\n }\n if (kind === DomainModelKind) {\n partition.parent = root.findModel(key, namespace)\n } else if (kind === DomainNamespaceKind) {\n partition.parent = root.findNamespace(key, namespace)\n }\n if (!partition.parent) {\n throw new Error(`Unable to select parent. The item with key \"${key}\" was not found.`)\n }\n }\n\n /**\n * Handles the click event to open a parent item.\n *\n * @param e - The click event.\n */\n protected handleOpenParent(e: Event): void {\n e.preventDefault()\n e.stopPropagation()\n const button = e.currentTarget as HTMLElement\n const item = button.parentElement as HTMLElement\n const { kind, key, parent, namespace } = item.dataset\n if (!key || !kind || !parent || parent !== 'true' || !this.current) {\n return\n }\n this.selectParent(this.current, key, kind, namespace)\n this.updateBrowsingDomainList()\n }\n\n /**\n * Handles the selection event on a list.\n * @param e The selection event.\n */\n protected handleItemSelect(e: CustomEvent<{ item: HTMLElement }>): void {\n const { item } = e.detail\n if (!item) {\n return\n }\n const { kind, key, parent, namespace } = item.dataset\n if (!key || !kind || !parent || !namespace) {\n return\n }\n const state = this.activePartition\n if (this.isSelected(key)) {\n state.selected = undefined\n } else {\n state.selected = {\n key,\n kind,\n isParent: parent === 'true',\n namespace,\n }\n }\n this.setupAllowedSelection(state)\n this.requestUpdate()\n if (this.hasAllowedSelection) {\n // We only notify the selection if it is allowed.\n this.notifySelected(state.selected)\n }\n }\n\n notifySelected(selected: DomainBrowseSelectedItem | undefined): void {\n this.dispatchEvent(\n new CustomEvent<DomainBrowseSelectedItem>('select', { detail: selected, bubbles: false, composed: false })\n )\n }\n\n override render(): TemplateResult | typeof nothing {\n if (!this.root) {\n return nothing\n }\n const result: (TemplateResult | typeof nothing)[] = []\n result.push(this.renderHeader())\n if (this.selectedTab === 'recent') {\n result.push(this.renderRecent())\n } else if (this.selectedTab === 'domain') {\n result.push(this.renderBrowsingDomain())\n }\n return html`${result}`\n }\n\n /**\n * Renders the header of the dialog.\n * @private\n */\n protected renderHeader(): TemplateResult | typeof nothing {\n if (this.selectedTab === 'recent') {\n return this.renderTabs()\n }\n const activePartition = this.current\n if (!activePartition) {\n return nothing\n }\n const { parent } = activePartition\n if (parent) {\n return this.renderParentHeader(parent)\n }\n return this.renderTabs()\n }\n\n /**\n * Renders the tabs.\n * @private\n */\n protected renderTabs(): TemplateResult {\n const { withRecent, selectedTab, root } = this\n return html`<ui-tabs @change=\"${this.handleTabSelect}\" class=\"tabs\">\n ${withRecent\n ? html`<ui-tab aria-controls=\"recent\" data-key=\"recent\" ?selected=\"${selectedTab === 'recent'}\">Recent</ui-tab>`\n : nothing}\n ${root?.key\n ? html`<ui-tab aria-controls=\"domain\" data-key=\"domain\" ?selected=\"${selectedTab === 'domain'}\"\n >Data domain</ui-tab\n >`\n : nothing}\n </ui-tabs>`\n }\n\n /**\n * Renders the parent header.\n * @private\n * @param parent - The parent item.\n */\n protected renderParentHeader(parent: DomainNamespace | DomainModel): TemplateResult {\n const label = parent.info.displayName || parent.info.name\n return html`<div class=\"parent-header\">\n <ui-icon-button @click=\"${this.handleParentBack}\"><ui-icon>arrow_back</ui-icon></ui-icon-button>\n <h2 class=\"title-medium\">${label}</h2>\n </div>\n <ui-divider></ui-divider>`\n }\n\n /**\n * Renders the recent items.\n * @private\n */\n protected renderRecent(): TemplateResult {\n const { recent } = this\n return html`<div id=\"recent\">${this.renderRecentItems(recent.currentList)}</div>`\n }\n\n /**\n * Renders the browsing domain items.\n * @private\n */\n protected renderBrowsingDomain(): TemplateResult | typeof nothing {\n const { current } = this\n if (!current) {\n return nothing\n }\n return html`<div id=\"domain\">${this.renderDomainItems(current.items)}</div>`\n }\n\n /**\n * Renders the domain items.\n * @private\n * @param items - The items to render.\n */\n protected renderDomainItems(items: (DomainNamespace | DomainModel | DomainEntity)[]): TemplateResult {\n const empty = items.length === 0\n if (empty) {\n return html`<p class=\"empty-list body-medium\">No items found.</p>`\n }\n return html`<ui-list selectActive class=\"domain-list\" @select=\"${this.handleItemSelect}\">\n ${items.map((item) => this.renderDomainItem(item))}\n </ui-list>`\n }\n\n protected renderRecentItems(items: DomainBrowseRecentItem[]): TemplateResult {\n const empty = items.length === 0\n if (empty) {\n return html`<p class=\"empty-list body-medium\">No items found.</p>`\n }\n return html`<ui-list selectActive class=\"domain-list\" @select=\"${this.handleItemSelect}\">\n ${items.map((item) => this.renderRecentItem(item))}\n </ui-list>`\n }\n\n protected renderDomainItem(item: DomainNamespace | DomainModel | DomainEntity): TemplateResult {\n const isParent = [DomainModelKind, DomainNamespaceKind].includes(item.kind)\n return this.renderItem(item.key, item.kind, item.info.getLabel(), { isParent, domain: item.namespace })\n }\n\n protected renderRecentItem(item: DomainBrowseRecentItem): TemplateResult {\n const { key, kind, label } = item\n return this.renderItem(key, kind, label, { domain: this.root?.key })\n }\n\n /**\n * Renders a generic item.\n * @private\n * @param key - The key of the item.\n * @param kind - The kind of the item.\n * @param label - The label of the item.\n * @param {{ noParent?: boolean }} opts - Additional options.\n */\n protected renderItem(\n key: string,\n kind: string,\n label: string,\n opts: { isParent?: boolean; domain?: string } = {}\n ): TemplateResult {\n const isSelected = this.isSelected(key)\n const parentValue = opts.isParent ? 'true' : 'false'\n const classes = {\n select: isSelected,\n }\n const icon = getDomainIconType(kind)\n return html`<ui-list-item\n data-kind=\"${kind}\"\n data-key=\"${key}\"\n data-parent=\"${parentValue}\"\n data-namespace=\"${ifDefined(opts.domain)}\"\n class=\"${classMap(classes)}\"\n >\n <ui-icon slot=\"start\" class=\"icon\" icon=\"${icon}\"></ui-icon>\n <span>${label}</span>\n ${isSelected && opts.isParent\n ? html`<ui-button color=\"filled\" slot=\"end\" @click=\"${this.handleOpenParent}\">Open</ui-button>`\n : nothing}\n </ui-list-item>`\n }\n}\n"]}
@@ -28,6 +28,9 @@ import type { UiListSelection } from '../../md/list/ui-list.js';
28
28
  * An element that provides an editor interface for a domain entity.
29
29
  * @fires DomainEntityEditor#select - A custom event with the `key` and `type` when a property was selected.
30
30
  * @fires DomainEntityEditor#openentity - A custom event with the `key` and `type` when a property was selected.
31
+ * @fires domainbrowserbrowse - Dispatched when the user clicks on the "choose parent" button. The detail object
32
+ * has the full intent configuration.
33
+ * @fires domainrename - Dispatched when the user renames the entity.
31
34
  */
32
35
  export default class DomainEntityEditor extends ModelingElement {
33
36
  protected domainElement: DomainEntity | undefined;
@@ -1 +1 @@
1
- {"version":3,"file":"DomainEntityEditor.d.ts","sourceRoot":"","sources":["../../../../src/modeling/internals/DomainEntityEditor.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"DomainEntityEditor.d.ts","sourceRoot":"","sources":["../../../../src/modeling/internals/DomainEntityEditor.ts"],"names":[],"mappings":"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"}
@@ -281,7 +281,7 @@ let DomainEntityEditor = (() => {
281
281
  allowed: [DomainEntityKind],
282
282
  withRecent: true,
283
283
  };
284
- const result = await Events.Domain.Browse.browse(data);
284
+ const result = await Events.Domain.Browse.browse(data, this);
285
285
  if (!result) {
286
286
  return;
287
287
  }
@@ -1178,6 +1178,9 @@ let DomainEntityEditor = (() => {
1178
1178
  * An element that provides an editor interface for a domain entity.
1179
1179
  * @fires DomainEntityEditor#select - A custom event with the `key` and `type` when a property was selected.
1180
1180
  * @fires DomainEntityEditor#openentity - A custom event with the `key` and `type` when a property was selected.
1181
+ * @fires domainbrowserbrowse - Dispatched when the user clicks on the "choose parent" button. The detail object
1182
+ * has the full intent configuration.
1183
+ * @fires domainrename - Dispatched when the user renames the entity.
1181
1184
  */
1182
1185
  export default DomainEntityEditor;
1183
1186
  //# sourceMappingURL=DomainEntityEditor.js.map