@api-client/ui 0.6.2 → 0.6.3
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.
- package/build/src/modeling/internals/DomainBrowser.d.ts.map +1 -1
- package/build/src/modeling/internals/DomainBrowser.js +4 -1
- package/build/src/modeling/internals/DomainBrowser.js.map +1 -1
- package/build/tsconfig.tsbuildinfo +1 -1
- package/package.json +1 -1
- package/src/modeling/internals/DomainBrowser.ts +4 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DomainBrowser.d.ts","sourceRoot":"","sources":["../../../../src/modeling/internals/DomainBrowser.ts"],"names":[],"mappings":"AAAA,OAAO,EAAQ,OAAO,EAAE,KAAK,cAAc,EAAE,KAAK,cAAc,EAAE,MAAM,KAAK,CAAA;AAI7E,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAA;AACtD,OAAO,KAAK,EACV,sBAAsB,EACtB,qBAAqB,EACrB,uBAAuB,EACvB,wBAAwB,EACzB,MAAM,aAAa,CAAA;AACpB,OAAO,EAKL,KAAK,YAAY,EACjB,KAAK,WAAW,EAChB,KAAK,eAAe,EACrB,MAAM,6BAA6B,CAAA;AAGpC,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAA;AAElE,UAAU,eAAe;IACvB;;OAEG;IACH,KAAK,EAAE,CAAC,eAAe,GAAG,WAAW,GAAG,YAAY,CAAC,EAAE,CAAA;IACvD;;OAEG;IACH,QAAQ,CAAC,EAAE,wBAAwB,CAAA;IACnC;;OAEG;IACH,MAAM,CAAC,EAAE,eAAe,GAAG,WAAW,CAAA;CACvC;AAED,UAAU,eAAe;IACvB;;OAEG;IACH,WAAW,EAAE,sBAAsB,EAAE,CAAA;IACrC;;OAEG;IACH,QAAQ,CAAC,EAAE,wBAAwB,CAAA;CACpC;AAED;;;;;;GAMG;AACH,MAAM,CAAC,OAAO,OAAO,aAAc,SAAQ,eAAe;IACxD;;OAEG;IAC0B,QAAQ,CAAC,UAAU,UAAQ;IACxD;;OAEG;IACyB,QAAQ,CAAC,MAAM,EAAE,uBAAuB,CAAS;IAC7E;;;OAGG;IACwB,QAAQ,CAAC,OAAO,EAAE,qBAAqB,EAAE,GAAG,SAAS,CAAA;IAChF;;;OAGG;IACM,QAAQ,CAAC,WAAW,EAAE,QAAQ,GAAG,QAAQ,CAAW;IAC7D;;OAEG;IACM,QAAQ,CAAC,mBAAmB,UAAQ;IAE7C;;OAEG;IACH,MAAM,EAAE,eAAe,CAEtB;IAED;;OAEG;IACH,OAAO,CAAC,EAAE,eAAe,CAAA;IAEzB;;OAEG;IACH,IAAI,eAAe,IAAI,eAAe,GAAG,eAAe,CAQvD;cAEkB,UAAU,CAAC,EAAE,EAAE,cAAc,CAAC,IAAI,CAAC,GAAG,IAAI;IAW7D,SAAS,CAAC,qBAAqB,IAAI,IAAI;IAcvC;;;OAGG;IACH,SAAS,CAAC,qBAAqB,CAAC,SAAS,EAAE,eAAe,GAAG,eAAe,GAAG,IAAI;IAgCnF;;;OAGG;IACH,SAAS,CAAC,wBAAwB,IAAI,IAAI;IA6B1C;;OAEG;cACa,WAAW,IAAI,OAAO,CAAC,IAAI,CAAC;IAiB5C;;;;OAIG;IACH,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO;IAQhC;;;OAGG;IACH,SAAS,CAAC,eAAe,CAAC,CAAC,EAAE,WAAW,CAAC,kBAAkB,CAAC,GAAG,IAAI;IAUnE;;OAEG;IACH,SAAS,CAAC,gBAAgB,IAAI,IAAI;IAiBlC;;;;;;;OAOG;IACH,YAAY,CAAC,SAAS,EAAE,eAAe,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI;IAe7F;;;;OAIG;IACH,SAAS,CAAC,gBAAgB,CAAC,CAAC,EAAE,KAAK,GAAG,IAAI;IAa1C;;;OAGG;IACH,SAAS,CAAC,gBAAgB,CAAC,CAAC,EAAE,WAAW,CAAC;QAAE,IAAI,EAAE,WAAW,CAAA;KAAE,CAAC,GAAG,IAAI;
|
|
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.
|
|
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"]}
|