@acorex-platform/framework-client 0.0.59 → 0.0.60

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.
Files changed (38) hide show
  1. package/fesm2022/acorex-platform-framework-client-auth.mjs +397 -93
  2. package/fesm2022/acorex-platform-framework-client-auth.mjs.map +1 -1
  3. package/fesm2022/acorex-platform-framework-client-common.mjs +33 -31
  4. package/fesm2022/acorex-platform-framework-client-common.mjs.map +1 -1
  5. package/fesm2022/acorex-platform-framework-client-layout-components.mjs +12 -4
  6. package/fesm2022/acorex-platform-framework-client-layout-components.mjs.map +1 -1
  7. package/fesm2022/{acorex-platform-framework-client-layout-entity-acorex-platform-framework-client-layout-entity-BBuYugjl.mjs → acorex-platform-framework-client-layout-entity-acorex-platform-framework-client-layout-entity-D0jDsA6M.mjs} +80 -13
  8. package/fesm2022/acorex-platform-framework-client-layout-entity-acorex-platform-framework-client-layout-entity-D0jDsA6M.mjs.map +1 -0
  9. package/fesm2022/{acorex-platform-framework-client-layout-entity-attachments-page.component-DZDf_nVq.mjs → acorex-platform-framework-client-layout-entity-attachments-page.component-Bdvd1iYt.mjs} +2 -2
  10. package/fesm2022/{acorex-platform-framework-client-layout-entity-attachments-page.component-DZDf_nVq.mjs.map → acorex-platform-framework-client-layout-entity-attachments-page.component-Bdvd1iYt.mjs.map} +1 -1
  11. package/fesm2022/{acorex-platform-framework-client-layout-entity-bulk-entity.command-CFFv3jDs.mjs → acorex-platform-framework-client-layout-entity-bulk-entity.command-CsTP8YHv.mjs} +2 -2
  12. package/fesm2022/{acorex-platform-framework-client-layout-entity-bulk-entity.command-CFFv3jDs.mjs.map → acorex-platform-framework-client-layout-entity-bulk-entity.command-CsTP8YHv.mjs.map} +1 -1
  13. package/fesm2022/{acorex-platform-framework-client-layout-entity-gallery-page.component-BDNPJg_6.mjs → acorex-platform-framework-client-layout-entity-gallery-page.component-UvMk0GbU.mjs} +2 -2
  14. package/fesm2022/{acorex-platform-framework-client-layout-entity-gallery-page.component-BDNPJg_6.mjs.map → acorex-platform-framework-client-layout-entity-gallery-page.component-UvMk0GbU.mjs.map} +1 -1
  15. package/fesm2022/acorex-platform-framework-client-layout-entity.mjs +1 -1
  16. package/fesm2022/acorex-platform-framework-client-layout-widget-core.mjs +165 -28
  17. package/fesm2022/acorex-platform-framework-client-layout-widget-core.mjs.map +1 -1
  18. package/fesm2022/{acorex-platform-framework-client-layout-widgets-acorex-platform-framework-client-layout-widgets-Rv0K9r_e.mjs → acorex-platform-framework-client-layout-widgets-acorex-platform-framework-client-layout-widgets-KrDsAa3H.mjs} +555 -121
  19. package/fesm2022/acorex-platform-framework-client-layout-widgets-acorex-platform-framework-client-layout-widgets-KrDsAa3H.mjs.map +1 -0
  20. package/fesm2022/{acorex-platform-framework-client-layout-widgets-repeater-widget-column.component-Dzqn3rGa.mjs → acorex-platform-framework-client-layout-widgets-repeater-widget-column.component-BDlo6nTx.mjs} +2 -2
  21. package/fesm2022/{acorex-platform-framework-client-layout-widgets-repeater-widget-column.component-Dzqn3rGa.mjs.map → acorex-platform-framework-client-layout-widgets-repeater-widget-column.component-BDlo6nTx.mjs.map} +1 -1
  22. package/fesm2022/{acorex-platform-framework-client-layout-widgets-text-block-widget-designer.component-C97rrrmu.mjs → acorex-platform-framework-client-layout-widgets-text-block-widget-designer.component-By3wntCB.mjs} +2 -2
  23. package/fesm2022/{acorex-platform-framework-client-layout-widgets-text-block-widget-designer.component-C97rrrmu.mjs.map → acorex-platform-framework-client-layout-widgets-text-block-widget-designer.component-By3wntCB.mjs.map} +1 -1
  24. package/fesm2022/acorex-platform-framework-client-layout-widgets.mjs +1 -1
  25. package/fesm2022/acorex-platform-framework-client-themes-default.mjs +4 -4
  26. package/fesm2022/acorex-platform-framework-client-themes-default.mjs.map +1 -1
  27. package/layout/builder/README.md +10 -0
  28. package/layout/widget-core/README.md +47 -3
  29. package/layout/widgets/README.md +8 -2
  30. package/package.json +2 -2
  31. package/types/acorex-platform-framework-client-auth.d.ts +60 -1
  32. package/types/acorex-platform-framework-client-common.d.ts +3 -2
  33. package/types/acorex-platform-framework-client-layout-components.d.ts +3 -1
  34. package/types/acorex-platform-framework-client-layout-entity.d.ts +8 -1
  35. package/types/acorex-platform-framework-client-layout-widget-core.d.ts +39 -0
  36. package/types/acorex-platform-framework-client-layout-widgets.d.ts +25 -5
  37. package/fesm2022/acorex-platform-framework-client-layout-entity-acorex-platform-framework-client-layout-entity-BBuYugjl.mjs.map +0 -1
  38. package/fesm2022/acorex-platform-framework-client-layout-widgets-acorex-platform-framework-client-layout-widgets-Rv0K9r_e.mjs.map +0 -1
@@ -10,7 +10,7 @@ import * as i0 from '@angular/core';
10
10
  import { inject, signal, viewChild, effect, untracked, computed, Input, ChangeDetectionStrategy, Component } from '@angular/core';
11
11
  import { AXPWidgetsList } from '@acorex-platform/framework-shared/core';
12
12
  import { isNil, get } from 'lodash-es';
13
- import { A as AXP_REPEATER_ENTITY_BY_KEY_LOOKUP } from './acorex-platform-framework-client-layout-widgets-acorex-platform-framework-client-layout-widgets-Rv0K9r_e.mjs';
13
+ import { A as AXP_REPEATER_ENTITY_BY_KEY_LOOKUP } from './acorex-platform-framework-client-layout-widgets-acorex-platform-framework-client-layout-widgets-KrDsAa3H.mjs';
14
14
 
15
15
  //#endregion
16
16
  //#region ---- Constants ----
@@ -524,4 +524,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImpor
524
524
  }], moreButton: [{ type: i0.ViewChild, args: ['moreButton', { isSignal: true }] }], morePopover: [{ type: i0.ViewChild, args: ['morePopover', { isSignal: true }] }] } });
525
525
 
526
526
  export { AXPRepeaterWidgetColumnComponent };
527
- //# sourceMappingURL=acorex-platform-framework-client-layout-widgets-repeater-widget-column.component-Dzqn3rGa.mjs.map
527
+ //# sourceMappingURL=acorex-platform-framework-client-layout-widgets-repeater-widget-column.component-BDlo6nTx.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"acorex-platform-framework-client-layout-widgets-repeater-widget-column.component-Dzqn3rGa.mjs","sources":["../../../../../libs/framework/client/layout/widgets/src/lib/widgets/layout/repeater/repeater-column-display.util.ts","../../../../../libs/framework/client/layout/widgets/src/lib/widgets/layout/repeater/repeater-widget-column.component.ts","../../../../../libs/framework/client/layout/widgets/src/lib/widgets/layout/repeater/repeater-widget-column.component.html"],"sourcesContent":["import { type AXPMultiLanguageString, type AXPWidgetNode, AXPWidgetsList } from '@acorex-platform/framework-shared/core';\nimport { isValidMultiLanguageObject, resolveMultiLanguageString } from '@acorex/core/translation';\n\nimport type { AXPRepeaterEntityByKeyLookup } from './repeater-entity-lookup.token';\nimport { get, isNil } from 'lodash-es';\n\n//#region ---- Types ----\n\nexport interface RepeaterLookupColumnHint {\n entity: string;\n valueField: string;\n textField: string;\n fkPath: string;\n displayPath?: string;\n}\n\n//#endregion\n\n//#region ---- Constants ----\n\nconst LAYOUT_WIDGET_TYPES = new Set<string>(Object.values(AXPWidgetsList.Layouts));\n\nconst LOOKUP_WIDGET_TYPE = AXPWidgetsList.Editors.LookupBox;\n\nconst NESTED_DISPLAY_FIELDS = ['title', 'name', 'displayName', 'label', 'text', 'code'] as const;\n\nconst SKIP_ITEM_ROOT_KEYS = new Set(['id', 'startDate', 'endDate', '__meta__']);\n\n//#endregion\n\n//#region ---- Raw value normalization ----\n\n/**\n * Normalizes repeater column values from grid rows (array, single object, or JSON string).\n */\nexport function normalizeRepeaterColumnItems(raw: unknown, rowData?: unknown, dataPath?: string): unknown[] {\n let value = raw;\n\n if (isNil(value) && rowData != null && dataPath) {\n value = get(rowData, dataPath);\n }\n\n if (typeof value === 'string') {\n const trimmed = value.trim();\n if (trimmed.startsWith('[') || trimmed.startsWith('{')) {\n try {\n value = JSON.parse(trimmed);\n } catch {\n return trimmed ? [trimmed] : [];\n }\n } else if (trimmed) {\n return [trimmed];\n } else {\n return [];\n }\n }\n\n if (isNil(value)) {\n return [];\n }\n\n return (Array.isArray(value) ? value : [value]).filter((item) => item != null);\n}\n\nfunction resolveLookupFkValue(item: unknown, hint: RepeaterLookupColumnHint): unknown {\n if (item == null || typeof item !== 'object') {\n return undefined;\n }\n\n const direct = get(item, hint.fkPath);\n if (direct != null && direct !== '') {\n if (typeof direct === 'object') {\n return get(direct, hint.valueField) ?? get(direct, 'id');\n }\n return direct;\n }\n\n if (hint.fkPath.endsWith('Id')) {\n const base = hint.fkPath.slice(0, -2);\n const nestedId = get(item, `${base}.id`);\n if (nestedId != null && nestedId !== '') {\n return nestedId;\n }\n\n const nestedObject = get(item, base);\n if (nestedObject != null && typeof nestedObject === 'object') {\n return get(nestedObject, hint.valueField) ?? get(nestedObject, 'id');\n }\n }\n\n return undefined;\n}\n\nfunction extractNestedDisplayFallback(\n item: Record<string, unknown>,\n locale: string,\n resolveMultiLanguage: (ml: AXPMultiLanguageString) => string,\n): string {\n for (const value of Object.values(item)) {\n if (value == null || typeof value !== 'object' || Array.isArray(value)) {\n continue;\n }\n\n for (const field of NESTED_DISPLAY_FIELDS) {\n const text = resolveDisplayValue(get(value, field), locale, resolveMultiLanguage);\n if (text) {\n return text;\n }\n }\n }\n\n return '';\n}\n\n//#endregion\n\n//#region ---- Column mode resolution ----\n\n/**\n * Layout/container nodes wrap edit UI; leaf editors (contact, text, lookup, …) render per-item in columns.\n */\nexport function isRepeaterLayoutWidgetNode(node: AXPWidgetNode): boolean {\n return LAYOUT_WIDGET_TYPES.has(String(node.type));\n}\n\n/**\n * Collects non-layout widget nodes under a repeater row template (one per editable field).\n */\nexport function collectRepeaterRowEditorLeaves(root: AXPWidgetNode | undefined): AXPWidgetNode[] {\n if (!root) {\n return [];\n }\n\n const leaves: AXPWidgetNode[] = [];\n\n const visit = (node: AXPWidgetNode): void => {\n const children = node.children ?? [];\n\n if (!isRepeaterLayoutWidgetNode(node)) {\n leaves.push(node);\n return;\n }\n\n for (const child of children) {\n visit(child);\n }\n };\n\n visit(root);\n return leaves;\n}\n\n/**\n * Widget column when the row template is a single leaf editor (e.g. ContactBox).\n * Text column when the row is a multi-field layout (e.g. GridLayout with lookup + dates).\n */\nexport function resolveRepeaterColumnDisplayMode(rowTemplate: AXPWidgetNode | undefined): 'widget' | 'text' {\n if (!rowTemplate) {\n return 'text';\n }\n\n if (!isRepeaterLayoutWidgetNode(rowTemplate)) {\n return 'widget';\n }\n\n return collectRepeaterRowEditorLeaves(rowTemplate).length === 1 ? 'widget' : 'text';\n}\n\n/**\n * Node passed to `axp-widget-renderer` for widget-mode columns (direct leaf or single nested editor).\n */\nexport function resolveRepeaterWidgetColumnNode(rowTemplate: AXPWidgetNode | undefined): AXPWidgetNode | undefined {\n if (!rowTemplate) {\n return undefined;\n }\n\n if (!isRepeaterLayoutWidgetNode(rowTemplate)) {\n return rowTemplate;\n }\n\n const leaves = collectRepeaterRowEditorLeaves(rowTemplate);\n return leaves.length === 1 ? leaves[0] : undefined;\n}\n\n//#endregion\n\n//#region ---- Text display inference ----\n\nfunction flattenRepeaterRowNodes(root: AXPWidgetNode | undefined): AXPWidgetNode[] {\n if (!root) {\n return [];\n }\n\n const nodes: AXPWidgetNode[] = [];\n const visit = (node: AXPWidgetNode): void => {\n nodes.push(node);\n for (const child of node.children ?? []) {\n visit(child);\n }\n };\n visit(root);\n return nodes;\n}\n\nfunction isLookupWidget(node: AXPWidgetNode): boolean {\n return String(node.type) === LOOKUP_WIDGET_TYPE;\n}\n\nfunction resolveLookupExposeDisplayPath(node: AXPWidgetNode): string | undefined {\n const expose = node.options?.['expose'] as Array<{ source?: string; target?: string }> | undefined;\n const textField = String(node.options?.['textField'] ?? 'title').trim() || 'title';\n\n if (expose?.length) {\n const preferred = expose.find((entry) => entry.source === textField && entry.target?.trim());\n if (preferred?.target) {\n return preferred.target.trim();\n }\n\n const titleTarget = expose.find(\n (entry) =>\n entry.target?.trim() &&\n (entry.source === 'title' || entry.target.endsWith('.title') || entry.target === 'title'),\n );\n if (titleTarget?.target) {\n return titleTarget.target.trim();\n }\n\n const firstTarget = expose.find((entry) => entry.target?.trim());\n if (firstTarget?.target) {\n return firstTarget.target.trim();\n }\n }\n\n const binding = String(node.path ?? node.name ?? '').trim();\n if (binding.endsWith('Id')) {\n const base = binding.slice(0, -2);\n if (base) {\n return `${base}.${textField}`;\n }\n }\n\n return undefined;\n}\n\nexport function inferRepeaterDisplayPathFromTemplate(rowTemplate: AXPWidgetNode | undefined): string | undefined {\n return resolveRepeaterLookupColumnHint(rowTemplate)?.displayPath;\n}\n\n/**\n * Lookup metadata from the repeater row template (used to hydrate FK ids in list rows).\n */\nexport function resolveRepeaterLookupColumnHint(rowTemplate: AXPWidgetNode | undefined): RepeaterLookupColumnHint | undefined {\n for (const node of flattenRepeaterRowNodes(rowTemplate)) {\n if (!isLookupWidget(node)) {\n continue;\n }\n\n const entity = String(node.options?.['entity'] ?? '').trim();\n const fkPath = String(node.path ?? node.name ?? '').trim();\n if (!entity || !fkPath) {\n continue;\n }\n\n return {\n entity,\n valueField: String(node.options?.['valueField'] ?? 'id').trim() || 'id',\n textField: String(node.options?.['textField'] ?? 'title').trim() || 'title',\n fkPath,\n displayPath: resolveLookupExposeDisplayPath(node),\n };\n }\n\n return undefined;\n}\n\nexport function inferRepeaterDisplayPathFromItem(item: unknown): string | undefined {\n if (item == null || typeof item !== 'object' || Array.isArray(item)) {\n return undefined;\n }\n\n const record = item as Record<string, unknown>;\n\n for (const [key, value] of Object.entries(record)) {\n if (SKIP_ITEM_ROOT_KEYS.has(key) || key.endsWith('Id')) {\n continue;\n }\n if (value == null || typeof value !== 'object' || Array.isArray(value)) {\n continue;\n }\n\n for (const field of NESTED_DISPLAY_FIELDS) {\n if (!isNil(get(value, field))) {\n return `${key}.${field}`;\n }\n }\n }\n\n for (const field of NESTED_DISPLAY_FIELDS) {\n if (!isNil(get(record, field))) {\n return field;\n }\n }\n\n return undefined;\n}\n\nexport function resolveRepeaterItemDisplayPath(\n rowTemplate: AXPWidgetNode | undefined,\n sampleItem?: unknown,\n): string | undefined {\n return inferRepeaterDisplayPathFromTemplate(rowTemplate) ?? inferRepeaterDisplayPathFromItem(sampleItem);\n}\n\nfunction resolveDisplayValue(\n value: unknown,\n locale: string,\n resolveMultiLanguage: (ml: AXPMultiLanguageString) => string,\n): string {\n if (isNil(value)) {\n return '';\n }\n\n if (typeof value === 'string' || typeof value === 'number' || typeof value === 'boolean') {\n return String(value).trim();\n }\n\n if (typeof value === 'object' && !Array.isArray(value)) {\n if (isValidMultiLanguageObject(value)) {\n return resolveMultiLanguage(value as AXPMultiLanguageString).trim();\n }\n\n const resolved = resolveMultiLanguageString(value as AXPMultiLanguageString, locale).trim();\n if (resolved && resolved !== '[object Object]') {\n return resolved;\n }\n }\n\n return '';\n}\n\nexport function extractRepeaterItemDisplayText(\n item: unknown,\n displayPath: string | undefined,\n locale: string,\n resolveMultiLanguage: (ml: AXPMultiLanguageString) => string,\n): string {\n if (item == null) {\n return '';\n }\n\n if (typeof item === 'string' || typeof item === 'number' || typeof item === 'boolean') {\n return String(item).trim();\n }\n\n if (typeof item !== 'object') {\n return '';\n }\n\n const path = displayPath ?? inferRepeaterDisplayPathFromItem(item);\n if (path) {\n const fromPath = resolveDisplayValue(get(item, path), locale, resolveMultiLanguage);\n if (fromPath) {\n return fromPath;\n }\n }\n\n return extractNestedDisplayFallback(item as Record<string, unknown>, locale, resolveMultiLanguage);\n}\n\nexport function extractRepeaterDisplayTexts(\n items: unknown[],\n rowTemplate: AXPWidgetNode | undefined,\n locale: string,\n resolveMultiLanguage: (ml: AXPMultiLanguageString) => string,\n): string[] {\n const filtered = items.filter((item) => item != null);\n if (filtered.length === 0) {\n return [];\n }\n\n const displayPath = resolveRepeaterItemDisplayPath(rowTemplate, filtered[0]);\n\n return filtered\n .map((item) => extractRepeaterItemDisplayText(item, displayPath, locale, resolveMultiLanguage))\n .filter((text) => text.length > 0);\n}\n\n/**\n * Resolves repeater column labels, hydrating lookup FK ids when list rows omit nested snapshots.\n */\nexport async function resolveRepeaterDisplayTextsWithHydration(\n items: unknown[],\n rowTemplate: AXPWidgetNode | undefined,\n entityLookup: AXPRepeaterEntityByKeyLookup | undefined,\n locale: string,\n resolveMultiLanguage: (ml: AXPMultiLanguageString) => string,\n): Promise<string[]> {\n const filtered = items.filter((item) => item != null);\n if (filtered.length === 0) {\n return [];\n }\n\n const displayPath = resolveRepeaterItemDisplayPath(rowTemplate, filtered[0]);\n const lookupHint = resolveRepeaterLookupColumnHint(rowTemplate);\n const lookupCache = new Map<string, string>();\n\n const resolveLookupTitle = async (id: unknown): Promise<string> => {\n const hint = lookupHint;\n if (!hint) {\n return '';\n }\n\n if (id != null && typeof id === 'object') {\n const inline = resolveDisplayValue(get(id, hint.textField), locale, resolveMultiLanguage);\n if (inline) {\n return inline;\n }\n }\n\n if (id == null || id === '') {\n return '';\n }\n\n if (!hint.entity.includes('.') || !entityLookup) {\n return '';\n }\n\n const cacheKey = String(id);\n const cached = lookupCache.get(cacheKey);\n if (cached != null) {\n return cached;\n }\n\n try {\n const row = await entityLookup.byKey(hint.entity, cacheKey);\n const text = resolveDisplayValue(get(row, hint.textField), locale, resolveMultiLanguage);\n lookupCache.set(cacheKey, text);\n return text;\n } catch {\n lookupCache.set(cacheKey, '');\n return '';\n }\n };\n\n const texts = await Promise.all(\n filtered.map(async (item) => {\n const inline = extractRepeaterItemDisplayText(item, displayPath, locale, resolveMultiLanguage);\n if (inline) {\n return inline;\n }\n\n if (!lookupHint) {\n return '';\n }\n\n const fkValue = resolveLookupFkValue(item, lookupHint);\n if (fkValue != null && typeof fkValue === 'object') {\n const fromEmbedded = await resolveLookupTitle(fkValue);\n if (fromEmbedded) {\n return fromEmbedded;\n }\n }\n\n return resolveLookupTitle(fkValue);\n }),\n );\n\n return texts.filter((text) => text.length > 0);\n}\n\n//#endregion\n","import { AXBadgeModule } from '@acorex/components/badge';\nimport { AXPColumnWidgetComponent, AXPWidgetCoreModule, AXPWidgetCoreService } from '@acorex-platform/framework-client/layout/widget-core';\nimport { AXButtonModule } from '@acorex/components/button';\nimport { AXPopoverComponent, AXPopoverModule } from '@acorex/components/popover';\nimport { AXTranslationService } from '@acorex/core/translation';\nimport { AXPMultiLanguageString, type AXPWidgetNode } from '@acorex-platform/framework-shared/core';\nimport { AXPContextStore } from '@acorex-platform/framework-client/core';\nimport {\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n Input,\n OnChanges,\n SimpleChanges,\n computed,\n effect,\n inject,\n signal,\n untracked,\n viewChild,\n} from '@angular/core';\n\nimport {\n extractRepeaterDisplayTexts,\n normalizeRepeaterColumnItems,\n resolveRepeaterColumnDisplayMode,\n resolveRepeaterDisplayTextsWithHydration,\n resolveRepeaterWidgetColumnNode,\n} from './repeater-column-display.util';\nimport { AXP_REPEATER_ENTITY_BY_KEY_LOOKUP } from './repeater-entity-lookup.token';\n\n@Component({\n selector: 'axp-repeater-widget-column',\n templateUrl: './repeater-widget-column.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [AXBadgeModule, AXButtonModule, AXPopoverModule, AXPWidgetCoreModule],\n providers: [AXPWidgetCoreService, AXPContextStore],\n inputs: ['rawValue', 'rowData'],\n})\nexport class AXPRepeaterWidgetColumnComponent extends AXPColumnWidgetComponent<any[]> implements OnChanges {\n //#region ---- Services & Dependencies ----\n\n private readonly translation = inject(AXTranslationService);\n private readonly entityLookup = inject(AXP_REPEATER_ENTITY_BY_KEY_LOOKUP, { optional: true });\n\n //#endregion\n\n //#region ---- Inputs ----\n\n private readonly rawValueSignal = signal<unknown>(null);\n private readonly rowDataSignal = signal<unknown>(null);\n\n @Input('rawValue')\n set rawValueInput(value: unknown) {\n this.rawValueSignal.set(value);\n }\n\n @Input('rowData')\n set rowDataInput(value: unknown) {\n this.rowDataSignal.set(value);\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes['rawValue']) {\n this.rawValueSignal.set(changes['rawValue'].currentValue);\n }\n if (changes['rowData']) {\n this.rowDataSignal.set(changes['rowData'].currentValue);\n }\n }\n\n //#endregion\n\n //#region ---- View Children ----\n\n protected moreButton = viewChild<ElementRef>('moreButton');\n protected morePopover = viewChild<AXPopoverComponent>('morePopover');\n\n //#endregion\n\n //#region ---- Properties ----\n\n protected maxVisible: number = this.options['maxVisible'] ?? 2;\n\n protected get rowTemplate(): AXPWidgetNode | undefined {\n return this.options['children']?.[0];\n }\n\n protected get columnDisplayMode(): 'widget' | 'text' {\n return resolveRepeaterColumnDisplayMode(this.rowTemplate);\n }\n\n protected get childWidgetNode(): AXPWidgetNode | undefined {\n return this.columnDisplayMode === 'widget' ? resolveRepeaterWidgetColumnNode(this.rowTemplate) : undefined;\n }\n\n //#endregion\n\n //#region ---- Signals ----\n\n protected isMorePopoverOpen = signal(false);\n protected resolvedDisplayTexts = signal<string[]>([]);\n\n //#endregion\n\n //#region ---- Node Cache ----\n\n private nodeCache = new Map<number, AXPWidgetNode>();\n private lastItems: unknown[] = [];\n private hydrateRequestId = 0;\n\n private clearCacheIfNeeded(): void {\n const currentItems = this.allItems();\n if (\n currentItems.length !== this.lastItems.length ||\n currentItems.some((item, idx) => item !== this.lastItems[idx])\n ) {\n this.nodeCache.clear();\n this.lastItems = [...currentItems];\n }\n }\n\n //#endregion\n\n //#region ---- Effects ----\n\n private readonly hydrateDisplayTexts = effect((onCleanup) => {\n if (this.columnDisplayMode !== 'text') {\n untracked(() => this.resolvedDisplayTexts.set([]));\n return;\n }\n\n const items = this.displayItems();\n const locale = this.translation.getActiveLang();\n const resolveMultiLanguage = (value: AXPMultiLanguageString) => this.translation.resolve(value);\n\n const syncTexts = extractRepeaterDisplayTexts(items, this.rowTemplate, locale, resolveMultiLanguage);\n untracked(() => this.resolvedDisplayTexts.set(syncTexts));\n\n const requestId = ++this.hydrateRequestId;\n let cancelled = false;\n onCleanup(() => {\n cancelled = true;\n });\n\n void resolveRepeaterDisplayTextsWithHydration(\n items,\n this.rowTemplate,\n this.entityLookup ?? undefined,\n locale,\n resolveMultiLanguage,\n ).then((texts) => {\n if (!cancelled && requestId === this.hydrateRequestId) {\n this.resolvedDisplayTexts.set(texts);\n }\n });\n });\n\n //#endregion\n\n //#region ---- Computed Properties ----\n\n protected useTextDisplay = computed(() => this.columnDisplayMode === 'text');\n\n protected displayItems = computed(() =>\n normalizeRepeaterColumnItems(\n this.rawValueSignal(),\n this.rowDataSignal(),\n this.path ?? (this.options['columnName'] as string | undefined),\n ),\n );\n\n protected allItems = computed(() => this.displayItems());\n\n protected visibleItems = computed(() => this.allItems().slice(0, this.maxVisible));\n\n protected visibleDisplayTexts = computed(() => this.resolvedDisplayTexts().slice(0, this.maxVisible));\n\n protected hasMoreItems = computed(() => {\n if (this.useTextDisplay()) {\n return this.resolvedDisplayTexts().length > this.maxVisible;\n }\n return this.allItems().length > this.maxVisible;\n });\n\n protected popoverItemCount = computed(() =>\n this.useTextDisplay() ? this.resolvedDisplayTexts().length : this.allItems().length,\n );\n\n //#endregion\n\n //#region ---- UI Handlers ----\n\n protected showMoreItems(): void {\n this.openMorePopover();\n }\n\n protected onMorePopoverOpenChange(event: unknown): void {\n this.isMorePopoverOpen.set(!!event);\n }\n\n protected getItemNode(item: unknown, index: number): AXPWidgetNode | undefined {\n const childWidgetNode = this.childWidgetNode;\n if (!childWidgetNode) {\n return undefined;\n }\n\n this.clearCacheIfNeeded();\n\n const cachedNode = this.nodeCache.get(index);\n if (cachedNode) {\n return cachedNode;\n }\n\n const child = childWidgetNode;\n const childBindingRaw = child.path ?? child.name;\n const childBinding =\n childBindingRaw != null && String(childBindingRaw).trim() !== '' ? String(childBindingRaw).trim() : '';\n const baseItemPath = `${this.path}[${index}]`;\n const itemPath = childBinding && childBinding !== '.' ? `${baseItemPath}.${childBinding}` : baseItemPath;\n\n const node: AXPWidgetNode = {\n ...child,\n path: itemPath,\n defaultValue: item,\n options: {\n ...child.options,\n rawValue: item,\n rowData: this.rowDataSignal(),\n },\n };\n\n this.nodeCache.set(index, node);\n return node;\n }\n\n //#endregion\n\n //#region ---- Private Methods ----\n\n private openMorePopover(): void {\n if (this.morePopover() && this.moreButton()) {\n this.morePopover()!.target = this.moreButton()!.nativeElement;\n this.morePopover()!.open();\n this.isMorePopoverOpen.set(true);\n }\n }\n\n //#endregion\n}\n","@if (useTextDisplay()) {\n <div class=\"relative flex min-w-0 items-center gap-1\">\n @for (text of visibleDisplayTexts(); track $index) {\n <span class=\"truncate\">{{ text }}</span>\n @if ($index < visibleDisplayTexts().length - 1) {\n <span class=\"text-muted shrink-0\">,</span>\n }\n } @empty {\n <span class=\"text-muted\">---</span>\n }\n\n @if (hasMoreItems()) {\n <span\n class=\"absolute flex end-0 h-full cursor-pointer items-center px-1 hover:primary-lighter-surface\"\n (click)=\"showMoreItems()\"\n #moreButton\n >\n <i class=\"fa-light fa-ellipsis-vertical\"></i>\n </span>\n }\n </div>\n} @else {\n <div class=\"relative flex min-w-0 flex-col items-stretch gap-0.5\">\n @for (item of visibleItems(); track $index) {\n @if (childWidgetNode) {\n <ng-container\n axp-widget-renderer\n [node]=\"getItemNode(item, $index)!\"\n [mode]=\"'view'\"\n [parentNode]=\"null\"\n [index]=\"$index\"\n ></ng-container>\n }\n } @empty {\n <span class=\"text-muted\">---</span>\n }\n\n @if (hasMoreItems()) {\n <span\n class=\"absolute flex end-0 h-full cursor-pointer items-center px-1 hover:primary-lighter-surface\"\n (click)=\"showMoreItems()\"\n #moreButton\n >\n <i class=\"fa-light fa-ellipsis-vertical\"></i>\n </span>\n }\n </div>\n}\n\n<ax-popover [openOn]=\"'manual'\" #morePopover (openChange)=\"onMorePopoverOpenChange($event)\">\n <div class=\"lightest-surface min-w-[280px] rounded-lg border p-4 shadow-lg\">\n <div class=\"mb-4 border-b pb-2\">\n <h3 class=\"text-base font-semibold\">All {{ popoverItemCount() }} Items</h3>\n </div>\n <div class=\"max-h-64 flex flex-col gap-3 overflow-auto\" style=\"max-height: max(30dvh, 10rem)\">\n @if (useTextDisplay()) {\n @for (text of resolvedDisplayTexts(); track $index) {\n <div class=\"truncate\">{{ text }}</div>\n }\n } @else {\n @for (item of allItems(); track $index) {\n <div>\n @if (childWidgetNode) {\n <ng-container\n axp-widget-renderer\n [node]=\"getItemNode(item, $index)!\"\n [mode]=\"'view'\"\n [parentNode]=\"null\"\n [index]=\"$index\"\n ></ng-container>\n }\n </div>\n }\n }\n </div>\n </div>\n</ax-popover>\n"],"names":["i2"],"mappings":"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"}
1
+ {"version":3,"file":"acorex-platform-framework-client-layout-widgets-repeater-widget-column.component-BDlo6nTx.mjs","sources":["../../../../../libs/framework/client/layout/widgets/src/lib/widgets/layout/repeater/repeater-column-display.util.ts","../../../../../libs/framework/client/layout/widgets/src/lib/widgets/layout/repeater/repeater-widget-column.component.ts","../../../../../libs/framework/client/layout/widgets/src/lib/widgets/layout/repeater/repeater-widget-column.component.html"],"sourcesContent":["import { type AXPMultiLanguageString, type AXPWidgetNode, AXPWidgetsList } from '@acorex-platform/framework-shared/core';\nimport { isValidMultiLanguageObject, resolveMultiLanguageString } from '@acorex/core/translation';\n\nimport type { AXPRepeaterEntityByKeyLookup } from './repeater-entity-lookup.token';\nimport { get, isNil } from 'lodash-es';\n\n//#region ---- Types ----\n\nexport interface RepeaterLookupColumnHint {\n entity: string;\n valueField: string;\n textField: string;\n fkPath: string;\n displayPath?: string;\n}\n\n//#endregion\n\n//#region ---- Constants ----\n\nconst LAYOUT_WIDGET_TYPES = new Set<string>(Object.values(AXPWidgetsList.Layouts));\n\nconst LOOKUP_WIDGET_TYPE = AXPWidgetsList.Editors.LookupBox;\n\nconst NESTED_DISPLAY_FIELDS = ['title', 'name', 'displayName', 'label', 'text', 'code'] as const;\n\nconst SKIP_ITEM_ROOT_KEYS = new Set(['id', 'startDate', 'endDate', '__meta__']);\n\n//#endregion\n\n//#region ---- Raw value normalization ----\n\n/**\n * Normalizes repeater column values from grid rows (array, single object, or JSON string).\n */\nexport function normalizeRepeaterColumnItems(raw: unknown, rowData?: unknown, dataPath?: string): unknown[] {\n let value = raw;\n\n if (isNil(value) && rowData != null && dataPath) {\n value = get(rowData, dataPath);\n }\n\n if (typeof value === 'string') {\n const trimmed = value.trim();\n if (trimmed.startsWith('[') || trimmed.startsWith('{')) {\n try {\n value = JSON.parse(trimmed);\n } catch {\n return trimmed ? [trimmed] : [];\n }\n } else if (trimmed) {\n return [trimmed];\n } else {\n return [];\n }\n }\n\n if (isNil(value)) {\n return [];\n }\n\n return (Array.isArray(value) ? value : [value]).filter((item) => item != null);\n}\n\nfunction resolveLookupFkValue(item: unknown, hint: RepeaterLookupColumnHint): unknown {\n if (item == null || typeof item !== 'object') {\n return undefined;\n }\n\n const direct = get(item, hint.fkPath);\n if (direct != null && direct !== '') {\n if (typeof direct === 'object') {\n return get(direct, hint.valueField) ?? get(direct, 'id');\n }\n return direct;\n }\n\n if (hint.fkPath.endsWith('Id')) {\n const base = hint.fkPath.slice(0, -2);\n const nestedId = get(item, `${base}.id`);\n if (nestedId != null && nestedId !== '') {\n return nestedId;\n }\n\n const nestedObject = get(item, base);\n if (nestedObject != null && typeof nestedObject === 'object') {\n return get(nestedObject, hint.valueField) ?? get(nestedObject, 'id');\n }\n }\n\n return undefined;\n}\n\nfunction extractNestedDisplayFallback(\n item: Record<string, unknown>,\n locale: string,\n resolveMultiLanguage: (ml: AXPMultiLanguageString) => string,\n): string {\n for (const value of Object.values(item)) {\n if (value == null || typeof value !== 'object' || Array.isArray(value)) {\n continue;\n }\n\n for (const field of NESTED_DISPLAY_FIELDS) {\n const text = resolveDisplayValue(get(value, field), locale, resolveMultiLanguage);\n if (text) {\n return text;\n }\n }\n }\n\n return '';\n}\n\n//#endregion\n\n//#region ---- Column mode resolution ----\n\n/**\n * Layout/container nodes wrap edit UI; leaf editors (contact, text, lookup, …) render per-item in columns.\n */\nexport function isRepeaterLayoutWidgetNode(node: AXPWidgetNode): boolean {\n return LAYOUT_WIDGET_TYPES.has(String(node.type));\n}\n\n/**\n * Collects non-layout widget nodes under a repeater row template (one per editable field).\n */\nexport function collectRepeaterRowEditorLeaves(root: AXPWidgetNode | undefined): AXPWidgetNode[] {\n if (!root) {\n return [];\n }\n\n const leaves: AXPWidgetNode[] = [];\n\n const visit = (node: AXPWidgetNode): void => {\n const children = node.children ?? [];\n\n if (!isRepeaterLayoutWidgetNode(node)) {\n leaves.push(node);\n return;\n }\n\n for (const child of children) {\n visit(child);\n }\n };\n\n visit(root);\n return leaves;\n}\n\n/**\n * Widget column when the row template is a single leaf editor (e.g. ContactBox).\n * Text column when the row is a multi-field layout (e.g. GridLayout with lookup + dates).\n */\nexport function resolveRepeaterColumnDisplayMode(rowTemplate: AXPWidgetNode | undefined): 'widget' | 'text' {\n if (!rowTemplate) {\n return 'text';\n }\n\n if (!isRepeaterLayoutWidgetNode(rowTemplate)) {\n return 'widget';\n }\n\n return collectRepeaterRowEditorLeaves(rowTemplate).length === 1 ? 'widget' : 'text';\n}\n\n/**\n * Node passed to `axp-widget-renderer` for widget-mode columns (direct leaf or single nested editor).\n */\nexport function resolveRepeaterWidgetColumnNode(rowTemplate: AXPWidgetNode | undefined): AXPWidgetNode | undefined {\n if (!rowTemplate) {\n return undefined;\n }\n\n if (!isRepeaterLayoutWidgetNode(rowTemplate)) {\n return rowTemplate;\n }\n\n const leaves = collectRepeaterRowEditorLeaves(rowTemplate);\n return leaves.length === 1 ? leaves[0] : undefined;\n}\n\n//#endregion\n\n//#region ---- Text display inference ----\n\nfunction flattenRepeaterRowNodes(root: AXPWidgetNode | undefined): AXPWidgetNode[] {\n if (!root) {\n return [];\n }\n\n const nodes: AXPWidgetNode[] = [];\n const visit = (node: AXPWidgetNode): void => {\n nodes.push(node);\n for (const child of node.children ?? []) {\n visit(child);\n }\n };\n visit(root);\n return nodes;\n}\n\nfunction isLookupWidget(node: AXPWidgetNode): boolean {\n return String(node.type) === LOOKUP_WIDGET_TYPE;\n}\n\nfunction resolveLookupExposeDisplayPath(node: AXPWidgetNode): string | undefined {\n const expose = node.options?.['expose'] as Array<{ source?: string; target?: string }> | undefined;\n const textField = String(node.options?.['textField'] ?? 'title').trim() || 'title';\n\n if (expose?.length) {\n const preferred = expose.find((entry) => entry.source === textField && entry.target?.trim());\n if (preferred?.target) {\n return preferred.target.trim();\n }\n\n const titleTarget = expose.find(\n (entry) =>\n entry.target?.trim() &&\n (entry.source === 'title' || entry.target.endsWith('.title') || entry.target === 'title'),\n );\n if (titleTarget?.target) {\n return titleTarget.target.trim();\n }\n\n const firstTarget = expose.find((entry) => entry.target?.trim());\n if (firstTarget?.target) {\n return firstTarget.target.trim();\n }\n }\n\n const binding = String(node.path ?? node.name ?? '').trim();\n if (binding.endsWith('Id')) {\n const base = binding.slice(0, -2);\n if (base) {\n return `${base}.${textField}`;\n }\n }\n\n return undefined;\n}\n\nexport function inferRepeaterDisplayPathFromTemplate(rowTemplate: AXPWidgetNode | undefined): string | undefined {\n return resolveRepeaterLookupColumnHint(rowTemplate)?.displayPath;\n}\n\n/**\n * Lookup metadata from the repeater row template (used to hydrate FK ids in list rows).\n */\nexport function resolveRepeaterLookupColumnHint(rowTemplate: AXPWidgetNode | undefined): RepeaterLookupColumnHint | undefined {\n for (const node of flattenRepeaterRowNodes(rowTemplate)) {\n if (!isLookupWidget(node)) {\n continue;\n }\n\n const entity = String(node.options?.['entity'] ?? '').trim();\n const fkPath = String(node.path ?? node.name ?? '').trim();\n if (!entity || !fkPath) {\n continue;\n }\n\n return {\n entity,\n valueField: String(node.options?.['valueField'] ?? 'id').trim() || 'id',\n textField: String(node.options?.['textField'] ?? 'title').trim() || 'title',\n fkPath,\n displayPath: resolveLookupExposeDisplayPath(node),\n };\n }\n\n return undefined;\n}\n\nexport function inferRepeaterDisplayPathFromItem(item: unknown): string | undefined {\n if (item == null || typeof item !== 'object' || Array.isArray(item)) {\n return undefined;\n }\n\n const record = item as Record<string, unknown>;\n\n for (const [key, value] of Object.entries(record)) {\n if (SKIP_ITEM_ROOT_KEYS.has(key) || key.endsWith('Id')) {\n continue;\n }\n if (value == null || typeof value !== 'object' || Array.isArray(value)) {\n continue;\n }\n\n for (const field of NESTED_DISPLAY_FIELDS) {\n if (!isNil(get(value, field))) {\n return `${key}.${field}`;\n }\n }\n }\n\n for (const field of NESTED_DISPLAY_FIELDS) {\n if (!isNil(get(record, field))) {\n return field;\n }\n }\n\n return undefined;\n}\n\nexport function resolveRepeaterItemDisplayPath(\n rowTemplate: AXPWidgetNode | undefined,\n sampleItem?: unknown,\n): string | undefined {\n return inferRepeaterDisplayPathFromTemplate(rowTemplate) ?? inferRepeaterDisplayPathFromItem(sampleItem);\n}\n\nfunction resolveDisplayValue(\n value: unknown,\n locale: string,\n resolveMultiLanguage: (ml: AXPMultiLanguageString) => string,\n): string {\n if (isNil(value)) {\n return '';\n }\n\n if (typeof value === 'string' || typeof value === 'number' || typeof value === 'boolean') {\n return String(value).trim();\n }\n\n if (typeof value === 'object' && !Array.isArray(value)) {\n if (isValidMultiLanguageObject(value)) {\n return resolveMultiLanguage(value as AXPMultiLanguageString).trim();\n }\n\n const resolved = resolveMultiLanguageString(value as AXPMultiLanguageString, locale).trim();\n if (resolved && resolved !== '[object Object]') {\n return resolved;\n }\n }\n\n return '';\n}\n\nexport function extractRepeaterItemDisplayText(\n item: unknown,\n displayPath: string | undefined,\n locale: string,\n resolveMultiLanguage: (ml: AXPMultiLanguageString) => string,\n): string {\n if (item == null) {\n return '';\n }\n\n if (typeof item === 'string' || typeof item === 'number' || typeof item === 'boolean') {\n return String(item).trim();\n }\n\n if (typeof item !== 'object') {\n return '';\n }\n\n const path = displayPath ?? inferRepeaterDisplayPathFromItem(item);\n if (path) {\n const fromPath = resolveDisplayValue(get(item, path), locale, resolveMultiLanguage);\n if (fromPath) {\n return fromPath;\n }\n }\n\n return extractNestedDisplayFallback(item as Record<string, unknown>, locale, resolveMultiLanguage);\n}\n\nexport function extractRepeaterDisplayTexts(\n items: unknown[],\n rowTemplate: AXPWidgetNode | undefined,\n locale: string,\n resolveMultiLanguage: (ml: AXPMultiLanguageString) => string,\n): string[] {\n const filtered = items.filter((item) => item != null);\n if (filtered.length === 0) {\n return [];\n }\n\n const displayPath = resolveRepeaterItemDisplayPath(rowTemplate, filtered[0]);\n\n return filtered\n .map((item) => extractRepeaterItemDisplayText(item, displayPath, locale, resolveMultiLanguage))\n .filter((text) => text.length > 0);\n}\n\n/**\n * Resolves repeater column labels, hydrating lookup FK ids when list rows omit nested snapshots.\n */\nexport async function resolveRepeaterDisplayTextsWithHydration(\n items: unknown[],\n rowTemplate: AXPWidgetNode | undefined,\n entityLookup: AXPRepeaterEntityByKeyLookup | undefined,\n locale: string,\n resolveMultiLanguage: (ml: AXPMultiLanguageString) => string,\n): Promise<string[]> {\n const filtered = items.filter((item) => item != null);\n if (filtered.length === 0) {\n return [];\n }\n\n const displayPath = resolveRepeaterItemDisplayPath(rowTemplate, filtered[0]);\n const lookupHint = resolveRepeaterLookupColumnHint(rowTemplate);\n const lookupCache = new Map<string, string>();\n\n const resolveLookupTitle = async (id: unknown): Promise<string> => {\n const hint = lookupHint;\n if (!hint) {\n return '';\n }\n\n if (id != null && typeof id === 'object') {\n const inline = resolveDisplayValue(get(id, hint.textField), locale, resolveMultiLanguage);\n if (inline) {\n return inline;\n }\n }\n\n if (id == null || id === '') {\n return '';\n }\n\n if (!hint.entity.includes('.') || !entityLookup) {\n return '';\n }\n\n const cacheKey = String(id);\n const cached = lookupCache.get(cacheKey);\n if (cached != null) {\n return cached;\n }\n\n try {\n const row = await entityLookup.byKey(hint.entity, cacheKey);\n const text = resolveDisplayValue(get(row, hint.textField), locale, resolveMultiLanguage);\n lookupCache.set(cacheKey, text);\n return text;\n } catch {\n lookupCache.set(cacheKey, '');\n return '';\n }\n };\n\n const texts = await Promise.all(\n filtered.map(async (item) => {\n const inline = extractRepeaterItemDisplayText(item, displayPath, locale, resolveMultiLanguage);\n if (inline) {\n return inline;\n }\n\n if (!lookupHint) {\n return '';\n }\n\n const fkValue = resolveLookupFkValue(item, lookupHint);\n if (fkValue != null && typeof fkValue === 'object') {\n const fromEmbedded = await resolveLookupTitle(fkValue);\n if (fromEmbedded) {\n return fromEmbedded;\n }\n }\n\n return resolveLookupTitle(fkValue);\n }),\n );\n\n return texts.filter((text) => text.length > 0);\n}\n\n//#endregion\n","import { AXBadgeModule } from '@acorex/components/badge';\nimport { AXPColumnWidgetComponent, AXPWidgetCoreModule, AXPWidgetCoreService } from '@acorex-platform/framework-client/layout/widget-core';\nimport { AXButtonModule } from '@acorex/components/button';\nimport { AXPopoverComponent, AXPopoverModule } from '@acorex/components/popover';\nimport { AXTranslationService } from '@acorex/core/translation';\nimport { AXPMultiLanguageString, type AXPWidgetNode } from '@acorex-platform/framework-shared/core';\nimport { AXPContextStore } from '@acorex-platform/framework-client/core';\nimport {\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n Input,\n OnChanges,\n SimpleChanges,\n computed,\n effect,\n inject,\n signal,\n untracked,\n viewChild,\n} from '@angular/core';\n\nimport {\n extractRepeaterDisplayTexts,\n normalizeRepeaterColumnItems,\n resolveRepeaterColumnDisplayMode,\n resolveRepeaterDisplayTextsWithHydration,\n resolveRepeaterWidgetColumnNode,\n} from './repeater-column-display.util';\nimport { AXP_REPEATER_ENTITY_BY_KEY_LOOKUP } from './repeater-entity-lookup.token';\n\n@Component({\n selector: 'axp-repeater-widget-column',\n templateUrl: './repeater-widget-column.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [AXBadgeModule, AXButtonModule, AXPopoverModule, AXPWidgetCoreModule],\n providers: [AXPWidgetCoreService, AXPContextStore],\n inputs: ['rawValue', 'rowData'],\n})\nexport class AXPRepeaterWidgetColumnComponent extends AXPColumnWidgetComponent<any[]> implements OnChanges {\n //#region ---- Services & Dependencies ----\n\n private readonly translation = inject(AXTranslationService);\n private readonly entityLookup = inject(AXP_REPEATER_ENTITY_BY_KEY_LOOKUP, { optional: true });\n\n //#endregion\n\n //#region ---- Inputs ----\n\n private readonly rawValueSignal = signal<unknown>(null);\n private readonly rowDataSignal = signal<unknown>(null);\n\n @Input('rawValue')\n set rawValueInput(value: unknown) {\n this.rawValueSignal.set(value);\n }\n\n @Input('rowData')\n set rowDataInput(value: unknown) {\n this.rowDataSignal.set(value);\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes['rawValue']) {\n this.rawValueSignal.set(changes['rawValue'].currentValue);\n }\n if (changes['rowData']) {\n this.rowDataSignal.set(changes['rowData'].currentValue);\n }\n }\n\n //#endregion\n\n //#region ---- View Children ----\n\n protected moreButton = viewChild<ElementRef>('moreButton');\n protected morePopover = viewChild<AXPopoverComponent>('morePopover');\n\n //#endregion\n\n //#region ---- Properties ----\n\n protected maxVisible: number = this.options['maxVisible'] ?? 2;\n\n protected get rowTemplate(): AXPWidgetNode | undefined {\n return this.options['children']?.[0];\n }\n\n protected get columnDisplayMode(): 'widget' | 'text' {\n return resolveRepeaterColumnDisplayMode(this.rowTemplate);\n }\n\n protected get childWidgetNode(): AXPWidgetNode | undefined {\n return this.columnDisplayMode === 'widget' ? resolveRepeaterWidgetColumnNode(this.rowTemplate) : undefined;\n }\n\n //#endregion\n\n //#region ---- Signals ----\n\n protected isMorePopoverOpen = signal(false);\n protected resolvedDisplayTexts = signal<string[]>([]);\n\n //#endregion\n\n //#region ---- Node Cache ----\n\n private nodeCache = new Map<number, AXPWidgetNode>();\n private lastItems: unknown[] = [];\n private hydrateRequestId = 0;\n\n private clearCacheIfNeeded(): void {\n const currentItems = this.allItems();\n if (\n currentItems.length !== this.lastItems.length ||\n currentItems.some((item, idx) => item !== this.lastItems[idx])\n ) {\n this.nodeCache.clear();\n this.lastItems = [...currentItems];\n }\n }\n\n //#endregion\n\n //#region ---- Effects ----\n\n private readonly hydrateDisplayTexts = effect((onCleanup) => {\n if (this.columnDisplayMode !== 'text') {\n untracked(() => this.resolvedDisplayTexts.set([]));\n return;\n }\n\n const items = this.displayItems();\n const locale = this.translation.getActiveLang();\n const resolveMultiLanguage = (value: AXPMultiLanguageString) => this.translation.resolve(value);\n\n const syncTexts = extractRepeaterDisplayTexts(items, this.rowTemplate, locale, resolveMultiLanguage);\n untracked(() => this.resolvedDisplayTexts.set(syncTexts));\n\n const requestId = ++this.hydrateRequestId;\n let cancelled = false;\n onCleanup(() => {\n cancelled = true;\n });\n\n void resolveRepeaterDisplayTextsWithHydration(\n items,\n this.rowTemplate,\n this.entityLookup ?? undefined,\n locale,\n resolveMultiLanguage,\n ).then((texts) => {\n if (!cancelled && requestId === this.hydrateRequestId) {\n this.resolvedDisplayTexts.set(texts);\n }\n });\n });\n\n //#endregion\n\n //#region ---- Computed Properties ----\n\n protected useTextDisplay = computed(() => this.columnDisplayMode === 'text');\n\n protected displayItems = computed(() =>\n normalizeRepeaterColumnItems(\n this.rawValueSignal(),\n this.rowDataSignal(),\n this.path ?? (this.options['columnName'] as string | undefined),\n ),\n );\n\n protected allItems = computed(() => this.displayItems());\n\n protected visibleItems = computed(() => this.allItems().slice(0, this.maxVisible));\n\n protected visibleDisplayTexts = computed(() => this.resolvedDisplayTexts().slice(0, this.maxVisible));\n\n protected hasMoreItems = computed(() => {\n if (this.useTextDisplay()) {\n return this.resolvedDisplayTexts().length > this.maxVisible;\n }\n return this.allItems().length > this.maxVisible;\n });\n\n protected popoverItemCount = computed(() =>\n this.useTextDisplay() ? this.resolvedDisplayTexts().length : this.allItems().length,\n );\n\n //#endregion\n\n //#region ---- UI Handlers ----\n\n protected showMoreItems(): void {\n this.openMorePopover();\n }\n\n protected onMorePopoverOpenChange(event: unknown): void {\n this.isMorePopoverOpen.set(!!event);\n }\n\n protected getItemNode(item: unknown, index: number): AXPWidgetNode | undefined {\n const childWidgetNode = this.childWidgetNode;\n if (!childWidgetNode) {\n return undefined;\n }\n\n this.clearCacheIfNeeded();\n\n const cachedNode = this.nodeCache.get(index);\n if (cachedNode) {\n return cachedNode;\n }\n\n const child = childWidgetNode;\n const childBindingRaw = child.path ?? child.name;\n const childBinding =\n childBindingRaw != null && String(childBindingRaw).trim() !== '' ? String(childBindingRaw).trim() : '';\n const baseItemPath = `${this.path}[${index}]`;\n const itemPath = childBinding && childBinding !== '.' ? `${baseItemPath}.${childBinding}` : baseItemPath;\n\n const node: AXPWidgetNode = {\n ...child,\n path: itemPath,\n defaultValue: item,\n options: {\n ...child.options,\n rawValue: item,\n rowData: this.rowDataSignal(),\n },\n };\n\n this.nodeCache.set(index, node);\n return node;\n }\n\n //#endregion\n\n //#region ---- Private Methods ----\n\n private openMorePopover(): void {\n if (this.morePopover() && this.moreButton()) {\n this.morePopover()!.target = this.moreButton()!.nativeElement;\n this.morePopover()!.open();\n this.isMorePopoverOpen.set(true);\n }\n }\n\n //#endregion\n}\n","@if (useTextDisplay()) {\n <div class=\"relative flex min-w-0 items-center gap-1\">\n @for (text of visibleDisplayTexts(); track $index) {\n <span class=\"truncate\">{{ text }}</span>\n @if ($index < visibleDisplayTexts().length - 1) {\n <span class=\"text-muted shrink-0\">,</span>\n }\n } @empty {\n <span class=\"text-muted\">---</span>\n }\n\n @if (hasMoreItems()) {\n <span\n class=\"absolute flex end-0 h-full cursor-pointer items-center px-1 hover:primary-lighter-surface\"\n (click)=\"showMoreItems()\"\n #moreButton\n >\n <i class=\"fa-light fa-ellipsis-vertical\"></i>\n </span>\n }\n </div>\n} @else {\n <div class=\"relative flex min-w-0 flex-col items-stretch gap-0.5\">\n @for (item of visibleItems(); track $index) {\n @if (childWidgetNode) {\n <ng-container\n axp-widget-renderer\n [node]=\"getItemNode(item, $index)!\"\n [mode]=\"'view'\"\n [parentNode]=\"null\"\n [index]=\"$index\"\n ></ng-container>\n }\n } @empty {\n <span class=\"text-muted\">---</span>\n }\n\n @if (hasMoreItems()) {\n <span\n class=\"absolute flex end-0 h-full cursor-pointer items-center px-1 hover:primary-lighter-surface\"\n (click)=\"showMoreItems()\"\n #moreButton\n >\n <i class=\"fa-light fa-ellipsis-vertical\"></i>\n </span>\n }\n </div>\n}\n\n<ax-popover [openOn]=\"'manual'\" #morePopover (openChange)=\"onMorePopoverOpenChange($event)\">\n <div class=\"lightest-surface min-w-[280px] rounded-lg border p-4 shadow-lg\">\n <div class=\"mb-4 border-b pb-2\">\n <h3 class=\"text-base font-semibold\">All {{ popoverItemCount() }} Items</h3>\n </div>\n <div class=\"max-h-64 flex flex-col gap-3 overflow-auto\" style=\"max-height: max(30dvh, 10rem)\">\n @if (useTextDisplay()) {\n @for (text of resolvedDisplayTexts(); track $index) {\n <div class=\"truncate\">{{ text }}</div>\n }\n } @else {\n @for (item of allItems(); track $index) {\n <div>\n @if (childWidgetNode) {\n <ng-container\n axp-widget-renderer\n [node]=\"getItemNode(item, $index)!\"\n [mode]=\"'view'\"\n [parentNode]=\"null\"\n [index]=\"$index\"\n ></ng-container>\n }\n </div>\n }\n }\n </div>\n </div>\n</ax-popover>\n"],"names":["i2"],"mappings":"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"}
@@ -5,7 +5,7 @@ import { AXPLayoutBaseWidgetComponent } from '@acorex-platform/framework-client/
5
5
  import { AsyncPipe } from '@angular/common';
6
6
  import * as i0 from '@angular/core';
7
7
  import { computed, HostBinding, ViewEncapsulation, ChangeDetectionStrategy, Component } from '@angular/core';
8
- import { t as textBlockStyleAttribute, a as textBlockContentClass } from './acorex-platform-framework-client-layout-widgets-acorex-platform-framework-client-layout-widgets-Rv0K9r_e.mjs';
8
+ import { t as textBlockStyleAttribute, a as textBlockContentClass } from './acorex-platform-framework-client-layout-widgets-acorex-platform-framework-client-layout-widgets-KrDsAa3H.mjs';
9
9
 
10
10
  class AXPTextBlockWidgetDesignerComponent extends AXPLayoutBaseWidgetComponent {
11
11
  constructor() {
@@ -73,4 +73,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImpor
73
73
  }] } });
74
74
 
75
75
  export { AXPTextBlockWidgetDesignerComponent };
76
- //# sourceMappingURL=acorex-platform-framework-client-layout-widgets-text-block-widget-designer.component-C97rrrmu.mjs.map
76
+ //# sourceMappingURL=acorex-platform-framework-client-layout-widgets-text-block-widget-designer.component-By3wntCB.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"acorex-platform-framework-client-layout-widgets-text-block-widget-designer.component-C97rrrmu.mjs","sources":["../../../../../libs/framework/client/layout/widgets/src/lib/widgets/layout/text-block/text-block-widget-designer.component.ts"],"sourcesContent":["import { AXSafePipe } from '@acorex/core/pipes';\nimport { AXTranslationModule } from '@acorex/core/translation';\nimport { AXPLayoutBaseWidgetComponent } from '@acorex-platform/framework-client/layout/widget-core';\n\nimport { AsyncPipe } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, computed, HostBinding, ViewEncapsulation } from '@angular/core';\nimport { textBlockContentClass, textBlockStyleAttribute } from './text-block-style';\n\n@Component({\n selector: 'axp-text-block-widget-designer',\n template: `\n @if (isRichText()) {\n <div\n [class]=\"contentClass()\"\n [attr.style]=\"customStyle()\"\n [innerHTML]=\"content() | translate | async | safe: 'html'\"\n ></div>\n } @else {\n <div [class]=\"contentClass()\" [attr.style]=\"customStyle()\">\n {{ content() | translate | async }}\n </div>\n }\n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n imports: [AXTranslationModule, AXSafePipe, AsyncPipe],\n})\nexport class AXPTextBlockWidgetDesignerComponent extends AXPLayoutBaseWidgetComponent {\n protected content = computed<string>(() => (this.options()['content'] as string) ?? '');\n protected customStyle = computed(() => textBlockStyleAttribute(this.options()['style']));\n protected contentClass = computed(() => textBlockContentClass(this.customStyle()));\n\n protected isRichText = computed(() => {\n const format = this.options()['format'];\n const id =\n typeof format === 'object' && format != null && 'id' in format\n ? String((format as { id: unknown }).id)\n : format;\n return id !== 'plain';\n });\n\n @HostBinding('class')\n private get __class(): Record<string, boolean> {\n return {\n block: true,\n 'axp-text-block-widget-view': true,\n };\n }\n}\n"],"names":[],"mappings":";;;;;;;;;AA2BM,MAAO,mCAAoC,SAAQ,4BAA4B,CAAA;AAnBrF,IAAA,WAAA,GAAA;;AAoBY,QAAA,IAAA,CAAA,OAAO,GAAG,QAAQ,CAAS,MAAO,IAAI,CAAC,OAAO,EAAE,CAAC,SAAS,CAAY,IAAI,EAAE;oFAAC;AAC7E,QAAA,IAAA,CAAA,WAAW,GAAG,QAAQ,CAAC,MAAM,uBAAuB,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,CAAC;wFAAC;AAC9E,QAAA,IAAA,CAAA,YAAY,GAAG,QAAQ,CAAC,MAAM,qBAAqB,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;yFAAC;AAExE,QAAA,IAAA,CAAA,UAAU,GAAG,QAAQ,CAAC,MAAK;YACnC,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC,QAAQ,CAAC;AACvC,YAAA,MAAM,EAAE,GACN,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,IAAI,IAAI,IAAI,IAAI,IAAI;AACtD,kBAAE,MAAM,CAAE,MAA0B,CAAC,EAAE;kBACrC,MAAM;YACZ,OAAO,EAAE,KAAK,OAAO;QACvB,CAAC;uFAAC;AASH,IAAA;AAPC,IAAA,IACY,OAAO,GAAA;QACjB,OAAO;AACL,YAAA,KAAK,EAAE,IAAI;AACX,YAAA,4BAA4B,EAAE,IAAI;SACnC;IACH;8GApBW,mCAAmC,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAnC,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,mCAAmC,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,gCAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,OAAA,EAAA,cAAA,EAAA,EAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAjBpC;;;;;;;;;;;;AAYT,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAGS,mBAAmB,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,EAAA,CAAA,gBAAA,EAAA,IAAA,EAAA,WAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAE,UAAU,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAE,SAAS,EAAA,IAAA,EAAA,OAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA;;2FAEzC,mCAAmC,EAAA,UAAA,EAAA,CAAA;kBAnB/C,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,gCAAgC;AAC1C,oBAAA,QAAQ,EAAE;;;;;;;;;;;;AAYT,EAAA,CAAA;oBACD,eAAe,EAAE,uBAAuB,CAAC,MAAM;oBAC/C,aAAa,EAAE,iBAAiB,CAAC,IAAI;AACrC,oBAAA,OAAO,EAAE,CAAC,mBAAmB,EAAE,UAAU,EAAE,SAAS,CAAC;AACtD,iBAAA;;sBAeE,WAAW;uBAAC,OAAO;;;"}
1
+ {"version":3,"file":"acorex-platform-framework-client-layout-widgets-text-block-widget-designer.component-By3wntCB.mjs","sources":["../../../../../libs/framework/client/layout/widgets/src/lib/widgets/layout/text-block/text-block-widget-designer.component.ts"],"sourcesContent":["import { AXSafePipe } from '@acorex/core/pipes';\nimport { AXTranslationModule } from '@acorex/core/translation';\nimport { AXPLayoutBaseWidgetComponent } from '@acorex-platform/framework-client/layout/widget-core';\n\nimport { AsyncPipe } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, computed, HostBinding, ViewEncapsulation } from '@angular/core';\nimport { textBlockContentClass, textBlockStyleAttribute } from './text-block-style';\n\n@Component({\n selector: 'axp-text-block-widget-designer',\n template: `\n @if (isRichText()) {\n <div\n [class]=\"contentClass()\"\n [attr.style]=\"customStyle()\"\n [innerHTML]=\"content() | translate | async | safe: 'html'\"\n ></div>\n } @else {\n <div [class]=\"contentClass()\" [attr.style]=\"customStyle()\">\n {{ content() | translate | async }}\n </div>\n }\n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n imports: [AXTranslationModule, AXSafePipe, AsyncPipe],\n})\nexport class AXPTextBlockWidgetDesignerComponent extends AXPLayoutBaseWidgetComponent {\n protected content = computed<string>(() => (this.options()['content'] as string) ?? '');\n protected customStyle = computed(() => textBlockStyleAttribute(this.options()['style']));\n protected contentClass = computed(() => textBlockContentClass(this.customStyle()));\n\n protected isRichText = computed(() => {\n const format = this.options()['format'];\n const id =\n typeof format === 'object' && format != null && 'id' in format\n ? String((format as { id: unknown }).id)\n : format;\n return id !== 'plain';\n });\n\n @HostBinding('class')\n private get __class(): Record<string, boolean> {\n return {\n block: true,\n 'axp-text-block-widget-view': true,\n };\n }\n}\n"],"names":[],"mappings":";;;;;;;;;AA2BM,MAAO,mCAAoC,SAAQ,4BAA4B,CAAA;AAnBrF,IAAA,WAAA,GAAA;;AAoBY,QAAA,IAAA,CAAA,OAAO,GAAG,QAAQ,CAAS,MAAO,IAAI,CAAC,OAAO,EAAE,CAAC,SAAS,CAAY,IAAI,EAAE;oFAAC;AAC7E,QAAA,IAAA,CAAA,WAAW,GAAG,QAAQ,CAAC,MAAM,uBAAuB,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,CAAC;wFAAC;AAC9E,QAAA,IAAA,CAAA,YAAY,GAAG,QAAQ,CAAC,MAAM,qBAAqB,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;yFAAC;AAExE,QAAA,IAAA,CAAA,UAAU,GAAG,QAAQ,CAAC,MAAK;YACnC,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC,QAAQ,CAAC;AACvC,YAAA,MAAM,EAAE,GACN,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,IAAI,IAAI,IAAI,IAAI,IAAI;AACtD,kBAAE,MAAM,CAAE,MAA0B,CAAC,EAAE;kBACrC,MAAM;YACZ,OAAO,EAAE,KAAK,OAAO;QACvB,CAAC;uFAAC;AASH,IAAA;AAPC,IAAA,IACY,OAAO,GAAA;QACjB,OAAO;AACL,YAAA,KAAK,EAAE,IAAI;AACX,YAAA,4BAA4B,EAAE,IAAI;SACnC;IACH;8GApBW,mCAAmC,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAnC,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,mCAAmC,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,gCAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,OAAA,EAAA,cAAA,EAAA,EAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAjBpC;;;;;;;;;;;;AAYT,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAGS,mBAAmB,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,EAAA,CAAA,gBAAA,EAAA,IAAA,EAAA,WAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAE,UAAU,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAE,SAAS,EAAA,IAAA,EAAA,OAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA;;2FAEzC,mCAAmC,EAAA,UAAA,EAAA,CAAA;kBAnB/C,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,gCAAgC;AAC1C,oBAAA,QAAQ,EAAE;;;;;;;;;;;;AAYT,EAAA,CAAA;oBACD,eAAe,EAAE,uBAAuB,CAAC,MAAM;oBAC/C,aAAa,EAAE,iBAAiB,CAAC,IAAI;AACrC,oBAAA,OAAO,EAAE,CAAC,mBAAmB,EAAE,UAAU,EAAE,SAAS,CAAC;AACtD,iBAAA;;sBAeE,WAAW;uBAAC,OAAO;;;"}
@@ -1,4 +1,4 @@
1
- export { b as AXPAdvancedGridItemWidget, c as AXPAdvancedGridItemWidgetDesignerComponent, d as AXPAdvancedGridItemWidgetViewComponent, e as AXPAdvancedGridOptionsWidget, f as AXPAdvancedGridOptionsWidgetEditComponent, g as AXPAdvancedGridWidget, h as AXPAdvancedGridWidgetDesignerComponent, i as AXPAdvancedGridWidgetViewComponent, j as AXPAvatarWidget, k as AXPAvatarWidgetColumnComponent, l as AXPAvatarWidgetDesignerComponent, m as AXPAvatarWidgetEditComponent, n as AXPAvatarWidgetViewComponent, o as AXPBetweenExpressionValidationWidget, p as AXPBetweenValidationWidgetEditComponent, q as AXPBlockWidget, r as AXPBlockWidgetDesignerComponent, s as AXPBlockWidgetViewComponent, u as AXPBorderWidget, v as AXPBorderWidgetEditComponent, w as AXPButtonWidget, x as AXPButtonWidgetColumnComponent, y as AXPButtonWidgetViewComponent, z as AXPCallbackValidationWidget, B as AXPCallbackValidationWidgetEditComponent, C as AXPCheckBoxWidget, D as AXPCheckBoxWidgetColumnComponent, E as AXPCheckBoxWidgetDesignerComponent, F as AXPCheckBoxWidgetEditComponent, G as AXPCheckBoxWidgetPrintComponent, H as AXPCheckBoxWidgetViewComponent, I as AXPCodeEditorWidget, J as AXPColorBoxWidget, K as AXPColorBoxWidgetColumnComponent, L as AXPColorBoxWidgetDesignerComponent, M as AXPColorBoxWidgetEditComponent, N as AXPColorBoxWidgetViewComponent, O as AXPColorChooserWidget, P as AXPColorChooserWidgetColumnComponent, Q as AXPColorChooserWidgetDesignerComponent, R as AXPColorChooserWidgetEditComponent, S as AXPColorChooserWidgetViewComponent, T as AXPColorPaletteWidget, U as AXPColorPaletteWidgetColumnComponent, V as AXPColorPaletteWidgetDesignerComponent, W as AXPColorPaletteWidgetEditComponent, X as AXPColorPaletteWidgetViewComponent, Y as AXPConditionBuilderWidget, Z as AXPConditionBuilderWidgetEditComponent, _ as AXPConditionBuilderWidgetViewComponent, $ as AXPConditionClauseWidget, a0 as AXPConditionClauseWidgetEditComponent, a1 as AXPConnectedDragDropListsWidget, a2 as AXPConnectedListsWidgetColumnComponent, a3 as AXPConnectedListsWidgetEditComponent, a4 as AXPConnectedListsWidgetViewComponent, a5 as AXPContactWidget, a6 as AXPContactWidgetColumnComponent, a7 as AXPContactWidgetEditComponent, a8 as AXPContactWidgetViewComponent, a9 as AXPDataListColumnFooterComponent, aa as AXPDataListWidget, ab as AXPDataListWidgetViewComponent, ac as AXPDataSourceOptionsWidget, ad as AXPDataSourceOptionsWidgetEditComponent, ae as AXPDateTimeBoxWidget, af as AXPDateTimeBoxWidgetColumnComponent, ag as AXPDateTimeBoxWidgetEditComponent, ah as AXPDateTimeBoxWidgetViewComponent, ai as AXPDirectionWidget, aj as AXPDirectionWidgetEditComponent, ak as AXPDragDropListWidget, al as AXPEqualValidationWidget, am as AXPEqualValidationWidgetEditComponent, an as AXPFieldsetWidget, ao as AXPFieldsetWidgetDesignerComponent, ap as AXPFieldsetWidgetViewComponent, aq as AXPFileViewerWidget, ar as AXPFileViewerWidgetEditComponent, as as AXPFileViewerWidgetViewComponent, at as AXPFlexItemOptionsWidget, au as AXPFlexItemOptionsWidgetEditComponent, av as AXPFlexItemWidget, aw as AXPFlexItemWidgetDesignerComponent, ax as AXPFlexItemWidgetViewComponent, ay as AXPFlexOptionsWidget, az as AXPFlexOptionsWidgetEditComponent, aA as AXPFlexWidget, aB as AXPFlexWidgetDesignerComponent, aC as AXPFlexWidgetViewComponent, aD as AXPGetWidgetsForAIQuery, aE as AXPGreaterThanExpressionValidationWidget, aF as AXPGreaterThanValidationWidgetEditComponent, aG as AXPGridItemOptionsWidget, aH as AXPGridItemOptionsWidgetEditComponent, aI as AXPGridOptionsWidget, aJ as AXPGridOptionsWidgetEditComponent, aK as AXPImageMarkerPopupComponent, aL as AXPImageMarkerWidget, aM as AXPImageMarkerWidgetColumnComponent, aN as AXPImageMarkerWidgetEditComponent, aO as AXPImageMarkerWidgetViewComponent, aP as AXPIntegrationConnectionActionsService, aQ as AXPIntegrationConnectionsPanelWidget, aR as AXPIntegrationConnectionsPanelWidgetEditComponent, aS as AXPItemConfiguratorWidget, aT as AXPItemConfiguratorWidgetColumnComponent, aU as AXPItemConfiguratorWidgetEditComponent, aV as AXPJsonViewerWidget, aW as AXPJsonViewerWidgetEditComponent, aX as AXPJsonViewerWidgetViewComponent, aY as AXPLargeTextWidget, aZ as AXPLargeTextWidgetColumnComponent, a_ as AXPLargeTextWidgetEditComponent, a$ as AXPLargeTextWidgetPrintComponent, b0 as AXPLargeTextWidgetViewComponent, b1 as AXPLessThanExpressionValidationWidget, b2 as AXPLessThanValidationWidgetEditComponent, b3 as AXPListStylingRulesExtendedWidget, b4 as AXPListWidgetColumnComponent, b5 as AXPListWidgetEditComponent, b6 as AXPListWidgetViewComponent, b7 as AXPLocalDataSourceSheetWidget, b8 as AXPLocalDataSourceSheetWidgetEditComponent, b9 as AXPMapWidgetEditComponent, ba as AXPMapWidgetViewComponent, bb as AXPMaxLengthExpressionValidationWidget, bc as AXPMaxLengthValidationWidgetEditComponent, bd as AXPMinLengthExpressionValidationWidget, be as AXPMinLengthValidationWidgetEditComponent, bf as AXPNodeRendererWidget, bg as AXPNodeRendererWidgetDesignerComponent, bh as AXPNodeRendererWidgetEditComponent, bi as AXPNodeRendererWidgetViewComponent, bj as AXPNumberBoxWidget, bk as AXPNumberBoxWidgetColumnComponent, bl as AXPNumberBoxWidgetEditComponent, bm as AXPNumberBoxWidgetPrintComponent, bn as AXPNumberBoxWidgetViewComponent, bo as AXPOutcomeResultsViewerWidget, bp as AXPOutcomeResultsViewerWidgetViewComponent, bq as AXPPageWidget, br as AXPPageWidgetViewComponent, bs as AXPPasswordBoxWidget, bt as AXPPasswordBoxWidgetColumnComponent, bu as AXPPasswordBoxWidgetEditComponent, bv as AXPPasswordBoxWidgetViewComponent, bw as AXPProgressBarWidget, bx as AXPProgressBarWidgetColumnComponent, by as AXPProgressBarWidgetEditComponent, bz as AXPProgressBarWidgetViewComponent, bA as AXPProviderSelectWidgetColumnComponent, bB as AXPProviderSelectWidgetEditBase, bC as AXPProviderSelectWidgetViewComponent, bD as AXPQrcodeViewerService, bE as AXPQrcodeWidget, bF as AXPQrcodeWidgetColumnComponent, bG as AXPQrcodeWidgetEditComponent, bH as AXPQrcodeWidgetViewComponent, bI as AXPRatePickerWidget, bJ as AXPRatePickerWidgetColumnComponent, bK as AXPRatePickerWidgetEditComponent, bL as AXPRatePickerWidgetViewComponent, bM as AXPRegularExpressionValidationWidget, bN as AXPRegularExpressionValidationWidgetEditComponent, bO as AXPRepeaterWidget, bP as AXPRepeaterWidgetDesignerComponent, bQ as AXPRepeaterWidgetEditComponent, bR as AXPRepeaterWidgetViewComponent, bS as AXPRequiredValidationWidget, bT as AXPRequiredValidationWidgetEditComponent, bU as AXPRichTextWidget, bV as AXPRichTextWidgetColumnComponent, bW as AXPRichTextWidgetEditComponent, bX as AXPRichTextWidgetPrintComponent, bY as AXPRichTextWidgetViewComponent, bZ as AXPSchedulerPickerWidget, b_ as AXPSelectBoxWidget, b$ as AXPSelectBoxWidgetColumnComponent, c0 as AXPSelectBoxWidgetEditComponent, c1 as AXPSelectBoxWidgetViewComponent, c2 as AXPSelectLanguagePopup, c3 as AXPSelectionListWidget, c4 as AXPSelectionListWidgetColumnComponent, c5 as AXPSelectionListWidgetDesignerComponent, c6 as AXPSelectionListWidgetEditComponent, c7 as AXPSelectionListWidgetViewComponent, c8 as AXPSignatureWidget, c9 as AXPSignatureWidgetColumnComponent, ca as AXPSignatureWidgetEditComponent, cb as AXPSignatureWidgetViewComponent, cc as AXPSpacingWidget, cd as AXPSpacingWidgetEditComponent, ce as AXPStatusChipComponent, cf as AXPStatusWidget, cg as AXPStatusWidgetColumnComponent, ch as AXPStatusWidgetEditComponent, ci as AXPStatusWidgetViewComponent, cj as AXPStepWizardWidget, ck as AXPStepWizardWidgetDesignerComponent, cl as AXPStepWizardWidgetViewComponent, cm as AXPStopwatchWidget, cn as AXPStopwatchWidgetViewComponent, co as AXPTableItemWidget, cp as AXPTableItemWidgetDesignerComponent, cq as AXPTableItemWidgetViewComponent, cr as AXPTableWidget, cs as AXPTableWidgetDesignerComponent, ct as AXPTableWidgetViewComponent, cu as AXPTagEditorWidget, cv as AXPTagEditorWidgetColumnComponent, cw as AXPTagEditorWidgetEditComponent, cx as AXPTagEditorWidgetViewComponent, cy as AXPTemplateBoxWidget, cz as AXPTemplateBoxWidgetColumnComponent, cA as AXPTemplateBoxWidgetEditComponent, cB as AXPTemplateBoxWidgetPrintComponent, cC as AXPTemplateBoxWidgetViewComponent, cD as AXPTextBoxWidget, cE as AXPTextBoxWidgetColumnComponent, cF as AXPTextBoxWidgetEditComponent, cG as AXPTextBoxWidgetPrintComponent, cH as AXPTextBoxWidgetViewComponent, cI as AXPToggleWidget, cJ as AXPToggleWidgetColumnComponent, cK as AXPToggleWidgetEditComponent, cL as AXPToggleWidgetPrintComponent, cM as AXPToggleWidgetViewComponent, cN as AXPWidgetFieldConfiguratorWidget, cO as AXPWidgetFieldConfiguratorWidgetColumnComponent, cP as AXPWidgetFieldConfiguratorWidgetEditComponent, cQ as AXPWidgetsModule, cR as AXP_ABSOLUTE_UNITS, cS as AXP_BORDER_RADIUS_UNITS, cT as AXP_BORDER_WIDTH_UNITS, cU as AXP_CONDITION_CLAUSE_WIDGET_NAME, cV as AXP_DATA_LIST_CMD_DELETE, cW as AXP_DATA_LIST_CMD_EDIT, cX as AXP_DATA_LIST_PENDING_DELETE_KEY, cY as AXP_DATETIME_FILTER_DEFAULT_OPERATOR, cZ as AXP_Flex_Box_Align_Options, c_ as AXP_Flex_Box_Alignments, c$ as AXP_Flex_Box_Justify_Options, d0 as AXP_Grid_Box_Align_Items_Options, d1 as AXP_Grid_Box_Alignments, d2 as AXP_Grid_Box_Justify_Items_Options, d3 as AXP_LIST_STYLING_RULES_WIDGET_NAME, d4 as AXP_LOCAL_DATA_SOURCE_SHEET_WIDGET_NAME, d5 as AXP_RELATIVE_UNITS, d6 as AXP_RELATIVE_UNITS_NO_PERCENT, A as AXP_REPEATER_ENTITY_BY_KEY_LOOKUP, d7 as AXP_ROW_EXPR_PREFIX, d8 as AXP_SELECT_FILTER_DEFAULT_OPERATOR, d9 as AXP_SPACING_UNITS, da as AXP_default_Border_Box_Units, db as AXP_default_Border_Box_Value, dc as AXP_default_Spacing_Box_Units, dd as AXP_default_Spacing_Box_Value, de as DEFAULT_QRCODE_SIZE, df as DEFAULT_STRATEGY_CONFIG, dg as STRATEGY_CONFIG_TOKEN, dh as applyLeafVisibilityToDataListColumnTree, di as flattenDataListWidgetColumns, dj as formatConditionBuilderChip, dk as formatConditionBuilderSentence, dl as isDataListColumnBand, dm as prepareNodeRendererChild, dn as resolveColorChooserGroups, dp as resolveDataListColumnWidth, dq as tokensToPlainText } from './acorex-platform-framework-client-layout-widgets-acorex-platform-framework-client-layout-widgets-Rv0K9r_e.mjs';
1
+ export { b as AXPAdvancedGridItemWidget, c as AXPAdvancedGridItemWidgetDesignerComponent, d as AXPAdvancedGridItemWidgetViewComponent, e as AXPAdvancedGridOptionsWidget, f as AXPAdvancedGridOptionsWidgetEditComponent, g as AXPAdvancedGridWidget, h as AXPAdvancedGridWidgetDesignerComponent, i as AXPAdvancedGridWidgetViewComponent, j as AXPAvatarWidget, k as AXPAvatarWidgetColumnComponent, l as AXPAvatarWidgetDesignerComponent, m as AXPAvatarWidgetEditComponent, n as AXPAvatarWidgetViewComponent, o as AXPBetweenExpressionValidationWidget, p as AXPBetweenValidationWidgetEditComponent, q as AXPBlockWidget, r as AXPBlockWidgetDesignerComponent, s as AXPBlockWidgetViewComponent, u as AXPBorderWidget, v as AXPBorderWidgetEditComponent, w as AXPButtonWidget, x as AXPButtonWidgetColumnComponent, y as AXPButtonWidgetViewComponent, z as AXPCallbackValidationWidget, B as AXPCallbackValidationWidgetEditComponent, C as AXPCheckBoxWidget, D as AXPCheckBoxWidgetColumnComponent, E as AXPCheckBoxWidgetDesignerComponent, F as AXPCheckBoxWidgetEditComponent, G as AXPCheckBoxWidgetPrintComponent, H as AXPCheckBoxWidgetViewComponent, I as AXPCodeEditorWidget, J as AXPColorBoxWidget, K as AXPColorBoxWidgetColumnComponent, L as AXPColorBoxWidgetDesignerComponent, M as AXPColorBoxWidgetEditComponent, N as AXPColorBoxWidgetViewComponent, O as AXPColorChooserWidget, P as AXPColorChooserWidgetColumnComponent, Q as AXPColorChooserWidgetDesignerComponent, R as AXPColorChooserWidgetEditComponent, S as AXPColorChooserWidgetViewComponent, T as AXPColorPaletteWidget, U as AXPColorPaletteWidgetColumnComponent, V as AXPColorPaletteWidgetDesignerComponent, W as AXPColorPaletteWidgetEditComponent, X as AXPColorPaletteWidgetViewComponent, Y as AXPConditionBuilderWidget, Z as AXPConditionBuilderWidgetEditComponent, _ as AXPConditionBuilderWidgetViewComponent, $ as AXPConditionClauseWidget, a0 as AXPConditionClauseWidgetEditComponent, a1 as AXPConnectedDragDropListsWidget, a2 as AXPConnectedListsWidgetColumnComponent, a3 as AXPConnectedListsWidgetEditComponent, a4 as AXPConnectedListsWidgetViewComponent, a5 as AXPContactWidget, a6 as AXPContactWidgetColumnComponent, a7 as AXPContactWidgetEditComponent, a8 as AXPContactWidgetViewComponent, a9 as AXPDataListColumnFooterComponent, aa as AXPDataListWidget, ab as AXPDataListWidgetViewComponent, ac as AXPDataSourceOptionsWidget, ad as AXPDataSourceOptionsWidgetEditComponent, ae as AXPDateTimeBoxWidget, af as AXPDateTimeBoxWidgetColumnComponent, ag as AXPDateTimeBoxWidgetEditComponent, ah as AXPDateTimeBoxWidgetViewComponent, ai as AXPDirectionWidget, aj as AXPDirectionWidgetEditComponent, ak as AXPDragDropListWidget, al as AXPEqualValidationWidget, am as AXPEqualValidationWidgetEditComponent, an as AXPFieldsetWidget, ao as AXPFieldsetWidgetDesignerComponent, ap as AXPFieldsetWidgetViewComponent, aq as AXPFileViewerWidget, ar as AXPFileViewerWidgetEditComponent, as as AXPFileViewerWidgetViewComponent, at as AXPFlexItemOptionsWidget, au as AXPFlexItemOptionsWidgetEditComponent, av as AXPFlexItemWidget, aw as AXPFlexItemWidgetDesignerComponent, ax as AXPFlexItemWidgetViewComponent, ay as AXPFlexOptionsWidget, az as AXPFlexOptionsWidgetEditComponent, aA as AXPFlexWidget, aB as AXPFlexWidgetDesignerComponent, aC as AXPFlexWidgetViewComponent, aD as AXPGetWidgetsForAIQuery, aE as AXPGreaterThanExpressionValidationWidget, aF as AXPGreaterThanValidationWidgetEditComponent, aG as AXPGridItemOptionsWidget, aH as AXPGridItemOptionsWidgetEditComponent, aI as AXPGridOptionsWidget, aJ as AXPGridOptionsWidgetEditComponent, aK as AXPImageMarkerPopupComponent, aL as AXPImageMarkerWidget, aM as AXPImageMarkerWidgetColumnComponent, aN as AXPImageMarkerWidgetEditComponent, aO as AXPImageMarkerWidgetViewComponent, aP as AXPIntegrationConnectionActionsService, aQ as AXPIntegrationConnectionsPanelWidget, aR as AXPIntegrationConnectionsPanelWidgetEditComponent, aS as AXPItemConfiguratorWidget, aT as AXPItemConfiguratorWidgetColumnComponent, aU as AXPItemConfiguratorWidgetEditComponent, aV as AXPJsonViewerWidget, aW as AXPJsonViewerWidgetEditComponent, aX as AXPJsonViewerWidgetViewComponent, aY as AXPLargeTextWidget, aZ as AXPLargeTextWidgetColumnComponent, a_ as AXPLargeTextWidgetEditComponent, a$ as AXPLargeTextWidgetPrintComponent, b0 as AXPLargeTextWidgetViewComponent, b1 as AXPLessThanExpressionValidationWidget, b2 as AXPLessThanValidationWidgetEditComponent, b3 as AXPListStylingRulesExtendedWidget, b4 as AXPListWidgetColumnComponent, b5 as AXPListWidgetEditComponent, b6 as AXPListWidgetViewComponent, b7 as AXPLocalDataSourceSheetWidget, b8 as AXPLocalDataSourceSheetWidgetEditComponent, b9 as AXPMapWidgetEditComponent, ba as AXPMapWidgetViewComponent, bb as AXPMaxLengthExpressionValidationWidget, bc as AXPMaxLengthValidationWidgetEditComponent, bd as AXPMinLengthExpressionValidationWidget, be as AXPMinLengthValidationWidgetEditComponent, bf as AXPNodeRendererWidget, bg as AXPNodeRendererWidgetDesignerComponent, bh as AXPNodeRendererWidgetEditComponent, bi as AXPNodeRendererWidgetViewComponent, bj as AXPNumberBoxWidget, bk as AXPNumberBoxWidgetColumnComponent, bl as AXPNumberBoxWidgetEditComponent, bm as AXPNumberBoxWidgetPrintComponent, bn as AXPNumberBoxWidgetViewComponent, bo as AXPOutcomeResultsViewerWidget, bp as AXPOutcomeResultsViewerWidgetViewComponent, bq as AXPPageWidget, br as AXPPageWidgetViewComponent, bs as AXPPasswordBoxWidget, bt as AXPPasswordBoxWidgetColumnComponent, bu as AXPPasswordBoxWidgetEditComponent, bv as AXPPasswordBoxWidgetViewComponent, bw as AXPProgressBarWidget, bx as AXPProgressBarWidgetColumnComponent, by as AXPProgressBarWidgetEditComponent, bz as AXPProgressBarWidgetViewComponent, bA as AXPProviderSelectWidgetColumnComponent, bB as AXPProviderSelectWidgetEditBase, bC as AXPProviderSelectWidgetViewComponent, bD as AXPQrcodeViewerService, bE as AXPQrcodeWidget, bF as AXPQrcodeWidgetColumnComponent, bG as AXPQrcodeWidgetEditComponent, bH as AXPQrcodeWidgetViewComponent, bI as AXPRatePickerWidget, bJ as AXPRatePickerWidgetColumnComponent, bK as AXPRatePickerWidgetEditComponent, bL as AXPRatePickerWidgetViewComponent, bM as AXPRegularExpressionValidationWidget, bN as AXPRegularExpressionValidationWidgetEditComponent, bO as AXPRepeaterWidget, bP as AXPRepeaterWidgetDesignerComponent, bQ as AXPRepeaterWidgetEditComponent, bR as AXPRepeaterWidgetViewComponent, bS as AXPRequiredValidationWidget, bT as AXPRequiredValidationWidgetEditComponent, bU as AXPRichTextWidget, bV as AXPRichTextWidgetColumnComponent, bW as AXPRichTextWidgetEditComponent, bX as AXPRichTextWidgetPrintComponent, bY as AXPRichTextWidgetViewComponent, bZ as AXPSchedulerPickerWidget, b_ as AXPSelectBoxWidget, b$ as AXPSelectBoxWidgetColumnComponent, c0 as AXPSelectBoxWidgetEditComponent, c1 as AXPSelectBoxWidgetViewComponent, c2 as AXPSelectLanguagePopup, c3 as AXPSelectionListWidget, c4 as AXPSelectionListWidgetColumnComponent, c5 as AXPSelectionListWidgetDesignerComponent, c6 as AXPSelectionListWidgetEditComponent, c7 as AXPSelectionListWidgetViewComponent, c8 as AXPSignatureWidget, c9 as AXPSignatureWidgetColumnComponent, ca as AXPSignatureWidgetEditComponent, cb as AXPSignatureWidgetViewComponent, cc as AXPSpacingWidget, cd as AXPSpacingWidgetEditComponent, ce as AXPStatusChipComponent, cf as AXPStatusWidget, cg as AXPStatusWidgetColumnComponent, ch as AXPStatusWidgetEditComponent, ci as AXPStatusWidgetViewComponent, cj as AXPStepWizardWidget, ck as AXPStepWizardWidgetDesignerComponent, cl as AXPStepWizardWidgetViewComponent, cm as AXPStopwatchWidget, cn as AXPStopwatchWidgetViewComponent, co as AXPTableItemWidget, cp as AXPTableItemWidgetDesignerComponent, cq as AXPTableItemWidgetViewComponent, cr as AXPTableWidget, cs as AXPTableWidgetDesignerComponent, ct as AXPTableWidgetViewComponent, cu as AXPTagEditorWidget, cv as AXPTagEditorWidgetColumnComponent, cw as AXPTagEditorWidgetEditComponent, cx as AXPTagEditorWidgetViewComponent, cy as AXPTemplateBoxWidget, cz as AXPTemplateBoxWidgetColumnComponent, cA as AXPTemplateBoxWidgetEditComponent, cB as AXPTemplateBoxWidgetPrintComponent, cC as AXPTemplateBoxWidgetViewComponent, cD as AXPTextBoxWidget, cE as AXPTextBoxWidgetColumnComponent, cF as AXPTextBoxWidgetEditComponent, cG as AXPTextBoxWidgetPrintComponent, cH as AXPTextBoxWidgetViewComponent, cI as AXPToggleWidget, cJ as AXPToggleWidgetColumnComponent, cK as AXPToggleWidgetEditComponent, cL as AXPToggleWidgetPrintComponent, cM as AXPToggleWidgetViewComponent, cN as AXPWidgetFieldConfiguratorWidget, cO as AXPWidgetFieldConfiguratorWidgetColumnComponent, cP as AXPWidgetFieldConfiguratorWidgetEditComponent, cQ as AXPWidgetsModule, cR as AXP_ABSOLUTE_UNITS, cS as AXP_BORDER_RADIUS_UNITS, cT as AXP_BORDER_WIDTH_UNITS, cU as AXP_CONDITION_CLAUSE_WIDGET_NAME, cV as AXP_DATA_LIST_CMD_DELETE, cW as AXP_DATA_LIST_CMD_EDIT, cX as AXP_DATA_LIST_PENDING_DELETE_KEY, cY as AXP_DATETIME_FILTER_DEFAULT_OPERATOR, cZ as AXP_Flex_Box_Align_Options, c_ as AXP_Flex_Box_Alignments, c$ as AXP_Flex_Box_Justify_Options, d0 as AXP_Grid_Box_Align_Items_Options, d1 as AXP_Grid_Box_Alignments, d2 as AXP_Grid_Box_Justify_Items_Options, d3 as AXP_LIST_STYLING_RULES_WIDGET_NAME, d4 as AXP_LOCAL_DATA_SOURCE_SHEET_WIDGET_NAME, d5 as AXP_RELATIVE_UNITS, d6 as AXP_RELATIVE_UNITS_NO_PERCENT, A as AXP_REPEATER_ENTITY_BY_KEY_LOOKUP, d7 as AXP_ROW_EXPR_PREFIX, d8 as AXP_SELECT_FILTER_DEFAULT_OPERATOR, d9 as AXP_SPACING_UNITS, da as AXP_default_Border_Box_Units, db as AXP_default_Border_Box_Value, dc as AXP_default_Spacing_Box_Units, dd as AXP_default_Spacing_Box_Value, de as DEFAULT_QRCODE_SIZE, df as DEFAULT_STRATEGY_CONFIG, dg as STRATEGY_CONFIG_TOKEN, dh as applyLeafVisibilityToDataListColumnTree, di as flattenDataListWidgetColumns, dj as formatConditionBuilderChip, dk as formatConditionBuilderSentence, dl as isDataListColumnBand, dm as prepareNodeRendererChild, dn as resolveColorChooserGroups, dp as resolveDataListColumnWidth, dq as tokensToPlainText } from './acorex-platform-framework-client-layout-widgets-acorex-platform-framework-client-layout-widgets-KrDsAa3H.mjs';
2
2
  export * from '@acorex-platform/framework-client/layout/widget-core';
3
3
  export { AXP_WIDGET_AI_AGENT_ASSIST_FOLLOW_UP_CHIPS_LAYOUT, AXP_WIDGET_AI_AGENT_CHART_LAYOUT, AXP_WIDGET_AI_AGENT_FORM_LAYOUT, AXP_WIDGET_AI_AGENT_NAMES, matchesWidgetAiAgent } from '@acorex-platform/framework-shared/runtime';
4
4
  //# sourceMappingURL=acorex-platform-framework-client-layout-widgets.mjs.map
@@ -2372,7 +2372,7 @@ class AXPEntityMasterListDataTableComponent {
2372
2372
  }));
2373
2373
  }
2374
2374
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXPEntityMasterListDataTableComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
2375
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.8", type: AXPEntityMasterListDataTableComponent, isStandalone: true, selector: "axp-entity-master-list-data-table", inputs: { vm: { classPropertyName: "vm", publicName: "vm", isSignal: true, isRequired: true, transformFunction: null } }, outputs: { pageChanged: "pageChanged" }, host: { styleAttribute: "height: -webkit-fill-available;" }, viewQueries: [{ propertyName: "gridRef", first: true, predicate: ["grid"], descendants: true, isSignal: true }], ngImport: i0, template: "<ax-data-table\n id=\"axp-entity-table\"\n [allowReordering]=\"true\"\n (onColumnsOrderChanged)=\"onColumnsOrderChanged($event)\"\n #grid\n [showFooter]=\"showFooter()\"\n class=\"flex-1\"\n [paging]=\"true\"\n [fetchDataMode]=\"'manual'\"\n [parentField]=\"vm().parentKey()\"\n [loading]=\"{ enabled: true, animation: true }\"\n [dataSource]=\"vm().dataSource\"\n [highlightText]=\"vm().inlineFilterHighlightText()\"\n [rowCssClass]=\"resolveRowCssClass\"\n [cellCssClass]=\"resolveCellCssClass\"\n (selectedRowsChange)=\"handleSelectedRowsChange($event)\"\n (onRowDbClick)=\"handleRowDbClick($event)\"\n (onColumnSizeChanged)=\"onColumnSizeChanged($event)\"\n (onPageChanged)=\"onPageChanged($event)\"\n>\n @if (vm().showIndexColumn()) {\n <ax-index-column\n id=\"axp-table-col-index\"\n [caption]=\"('@general:terms.common.row-number' | translate | async)!\"\n fixed=\"start\"\n [width]=\"'80px'\"\n [padZero]=\"false\"\n ></ax-index-column>\n }\n @if (vm().selectedScopeActionsCount()) {\n <ax-select-column id=\"axp-table-col-select\" fixed=\"start\" [width]=\"'60px'\"></ax-select-column>\n }\n\n @for (node of vm().columnTree(); track trackColumnTreeNode(node)) {\n @if (node.kind === 'band') {\n @if (node.visible) {\n <axp-widget-column-renderer\n [attr.id]=\"'axp-table-col-band-' + node.name\"\n [caption]=\"node.title\"\n [columnKey]=\"node.name\"\n customWidth=\"\"\n >\n @for (child of node.children; track trackColumnTreeNode(child)) {\n @if (child.kind === 'band') {\n @if (child.visible) {\n <axp-widget-column-renderer\n [attr.id]=\"'axp-table-col-band-' + child.name\"\n [caption]=\"child.title\"\n [columnKey]=\"child.name\"\n customWidth=\"\"\n >\n @for (grand of child.children; track trackColumnTreeNode(grand)) {\n @if (grand.kind === 'leaf' && grand.visible) {\n <ng-template #grandFooterCell>\n <!--->\n <!-- ----- Footer aggregate for this nested column ----- -->\n @if (grand.column.column.footer) {\n <axp-data-list-column-footer\n [column]=\"footerColumn(grand.column)\"\n [state]=\"vm().columnFooter()\"\n />\n }\n </ng-template>\n <axp-widget-column-renderer\n [attr.id]=\"'axp-table-col-' + grand.column.name\"\n [expandHandler]=\"firstExpandLeafName() === grand.column.name && !!vm().parentKey()\"\n [caption]=\"(grand.column.title | translate | async)!\"\n [columnKey]=\"grand.column.name\"\n [node]=\"grand.column.node()\"\n [customWidth]=\"grand.column.width ?? ''\"\n [sortEnabled]=\"!!grand.column.sortEnabled\"\n [headerSortDirection]=\"resolveColumnSortDirection(vm().sortedFields(), grand.column.name)\"\n [headerSortPriority]=\"resolveColumnSortIndex(vm().sortedFields(), grand.column.name)\"\n [footerTemplate]=\"grandFooterCell\"\n (sortToggle)=\"handleColumnSort(grand.column.name, $event)\"\n />\n }\n }\n </axp-widget-column-renderer>\n }\n } @else {\n @if (child.visible) {\n <ng-template #childFooterCell>\n <!--->\n <!-- ----- Footer aggregate for this grouped column ----- -->\n @if (child.column.column.footer) {\n <axp-data-list-column-footer\n [column]=\"footerColumn(child.column)\"\n [state]=\"vm().columnFooter()\"\n />\n }\n </ng-template>\n <axp-widget-column-renderer\n [attr.id]=\"'axp-table-col-' + child.column.name\"\n [expandHandler]=\"firstExpandLeafName() === child.column.name && !!vm().parentKey()\"\n [caption]=\"(child.column.title | translate | async)!\"\n [columnKey]=\"child.column.name\"\n [node]=\"child.column.node()\"\n [customWidth]=\"child.column.width ?? ''\"\n [sortEnabled]=\"!!child.column.sortEnabled\"\n [headerSortDirection]=\"resolveColumnSortDirection(vm().sortedFields(), child.column.name)\"\n [headerSortPriority]=\"resolveColumnSortIndex(vm().sortedFields(), child.column.name)\"\n [footerTemplate]=\"childFooterCell\"\n (sortToggle)=\"handleColumnSort(child.column.name, $event)\"\n />\n }\n }\n }\n </axp-widget-column-renderer>\n }\n } @else {\n @if (node.visible) {\n <ng-template #colFooterCell>\n <!--->\n <!-- ----- Footer aggregate for this column ----- -->\n @if (node.column.column.footer) {\n <axp-data-list-column-footer [column]=\"footerColumn(node.column)\" [state]=\"vm().columnFooter()\" />\n }\n </ng-template>\n <axp-widget-column-renderer\n [attr.id]=\"'axp-table-col-' + node.column.name\"\n [expandHandler]=\"firstExpandLeafName() === node.column.name && !!vm().parentKey()\"\n [caption]=\"(node.column.title | translate | async)!\"\n [columnKey]=\"node.column.name\"\n [node]=\"node.column.node()\"\n [customWidth]=\"node.column.width ?? ''\"\n [sortEnabled]=\"!!node.column.sortEnabled\"\n [headerSortDirection]=\"resolveColumnSortDirection(vm().sortedFields(), node.column.name)\"\n [headerSortPriority]=\"resolveColumnSortIndex(vm().sortedFields(), node.column.name)\"\n [footerTemplate]=\"colFooterCell\"\n (sortToggle)=\"handleColumnSort(node.column.name, $event)\"\n />\n }\n }\n }\n\n @if (getCommandRowItems().length) {\n <ax-command-column\n id=\"axp-table-col-commands\"\n fixed=\"end\"\n [width]=\"getCommandRowItems().length * 70 + 'px'\"\n [items]=\"getCommandRowItems()\"\n (onItemClick)=\"handleRowCommandClick($event)\"\n ></ax-command-column>\n }\n <ax-dropdown-command-column\n id=\"axp-table-col-dropdown-commands\"\n fixed=\"end\"\n [width]=\"'60px'\"\n [items]=\"getDropdownRowItems\"\n (onItemClick)=\"handleRowCommandClick($event)\"\n ></ax-dropdown-command-column>\n</ax-data-table>\n", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: AXDataTableModule }, { kind: "component", type: i8.AXDataTableComponent, selector: "ax-data-table", inputs: ["dataSource", "selectedRows", "parentField", "hasChildrenField", "rowDetailsTemplate", "rowCssClass", "cellCssClass", "highlightText", "look", "rowTemplate", "emptyTemplate", "noDataTemplate", "alternative", "showHeader", "fixedHeader", "showFooter", "fixedFooter", "itemHeight", "allowReordering", "paging", "fetchDataMode", "loading", "focusedRow"], outputs: ["selectedRowsChange", "focusedRowChange", "onRowClick", "onRowDbClick", "onColumnsOrderChanged", "onColumnSizeChanged", "onPageChanged"] }, { kind: "component", type: i8.AXRowIndexColumnComponent, selector: "ax-index-column", inputs: ["width", "caption", "fixed", "footerTemplate", "padZero"] }, { kind: "component", type: i8.AXRowSelectColumnComponent, selector: "ax-select-column", inputs: ["width", "caption", "fixed", "advanceSelect"] }, { kind: "component", type: i8.AXRowCommandColumnComponent, selector: "ax-command-column", inputs: ["width", "caption", "fixed", "footerTemplate", "items"], outputs: ["onItemClick"] }, { kind: "component", type: i8.AXRowDropdownCommandColumnComponent, selector: "ax-dropdown-command-column", inputs: ["width", "caption", "fixed", "footerTemplate", "emptyStateTemplate", "emptyStateText", "items"], outputs: ["onItemClick"] }, { kind: "ngmodule", type: AXTranslationModule }, { kind: "ngmodule", type: AXPWidgetCoreModule }, { kind: "component", type: i7$1.AXPWidgetColumnRendererComponent, selector: "axp-widget-column-renderer", inputs: ["caption", "customExpandIcon", "customCollapseIcon", "customWidth", "columnKey", "node", "footerTemplate", "expandHandler", "sortEnabled", "headerSortDirection", "headerSortPriority", "columnFixed", "cellTemplate", "headerTemplate"], outputs: ["sortToggle"] }, { kind: "ngmodule", type: AXPWidgetsModule }, { kind: "component", type: AXPDataListColumnFooterComponent, selector: "axp-data-list-column-footer", inputs: ["column", "state"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "pipe", type: i2.AXTranslatorPipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
2375
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.8", type: AXPEntityMasterListDataTableComponent, isStandalone: true, selector: "axp-entity-master-list-data-table", inputs: { vm: { classPropertyName: "vm", publicName: "vm", isSignal: true, isRequired: true, transformFunction: null } }, outputs: { pageChanged: "pageChanged" }, host: { styleAttribute: "height: -webkit-fill-available;" }, viewQueries: [{ propertyName: "gridRef", first: true, predicate: ["grid"], descendants: true, isSignal: true }], ngImport: i0, template: "<ax-data-table\n id=\"axp-entity-table\"\n [allowReordering]=\"true\"\n (onColumnsOrderChanged)=\"onColumnsOrderChanged($event)\"\n #grid\n [showFooter]=\"showFooter()\"\n class=\"flex-1\"\n [paging]=\"true\"\n [fetchDataMode]=\"'manual'\"\n [parentField]=\"vm().gridParentField()\"\n [loading]=\"{ enabled: true, animation: true }\"\n [dataSource]=\"vm().dataSource\"\n [highlightText]=\"vm().inlineFilterHighlightText()\"\n [rowCssClass]=\"resolveRowCssClass\"\n [cellCssClass]=\"resolveCellCssClass\"\n (selectedRowsChange)=\"handleSelectedRowsChange($event)\"\n (onRowDbClick)=\"handleRowDbClick($event)\"\n (onColumnSizeChanged)=\"onColumnSizeChanged($event)\"\n (onPageChanged)=\"onPageChanged($event)\"\n>\n @if (vm().showIndexColumn()) {\n <ax-index-column\n id=\"axp-table-col-index\"\n [caption]=\"('@general:terms.common.row-number' | translate | async)!\"\n fixed=\"start\"\n [width]=\"'80px'\"\n [padZero]=\"false\"\n ></ax-index-column>\n }\n @if (vm().selectedScopeActionsCount()) {\n <ax-select-column id=\"axp-table-col-select\" fixed=\"start\" [width]=\"'60px'\"></ax-select-column>\n }\n\n @for (node of vm().columnTree(); track trackColumnTreeNode(node)) {\n @if (node.kind === 'band') {\n @if (node.visible) {\n <axp-widget-column-renderer\n [attr.id]=\"'axp-table-col-band-' + node.name\"\n [caption]=\"node.title\"\n [columnKey]=\"node.name\"\n customWidth=\"\"\n >\n @for (child of node.children; track trackColumnTreeNode(child)) {\n @if (child.kind === 'band') {\n @if (child.visible) {\n <axp-widget-column-renderer\n [attr.id]=\"'axp-table-col-band-' + child.name\"\n [caption]=\"child.title\"\n [columnKey]=\"child.name\"\n customWidth=\"\"\n >\n @for (grand of child.children; track trackColumnTreeNode(grand)) {\n @if (grand.kind === 'leaf' && grand.visible) {\n <ng-template #grandFooterCell>\n <!--->\n <!-- ----- Footer aggregate for this nested column ----- -->\n @if (grand.column.column.footer) {\n <axp-data-list-column-footer\n [column]=\"footerColumn(grand.column)\"\n [state]=\"vm().columnFooter()\"\n />\n }\n </ng-template>\n <axp-widget-column-renderer\n [attr.id]=\"'axp-table-col-' + grand.column.name\"\n [expandHandler]=\"firstExpandLeafName() === grand.column.name && !!vm().gridParentField()\"\n [caption]=\"(grand.column.title | translate | async)!\"\n [columnKey]=\"grand.column.name\"\n [node]=\"grand.column.node()\"\n [customWidth]=\"grand.column.width ?? ''\"\n [sortEnabled]=\"!!grand.column.sortEnabled\"\n [headerSortDirection]=\"resolveColumnSortDirection(vm().sortedFields(), grand.column.name)\"\n [headerSortPriority]=\"resolveColumnSortIndex(vm().sortedFields(), grand.column.name)\"\n [footerTemplate]=\"grandFooterCell\"\n (sortToggle)=\"handleColumnSort(grand.column.name, $event)\"\n />\n }\n }\n </axp-widget-column-renderer>\n }\n } @else {\n @if (child.visible) {\n <ng-template #childFooterCell>\n <!--->\n <!-- ----- Footer aggregate for this grouped column ----- -->\n @if (child.column.column.footer) {\n <axp-data-list-column-footer\n [column]=\"footerColumn(child.column)\"\n [state]=\"vm().columnFooter()\"\n />\n }\n </ng-template>\n <axp-widget-column-renderer\n [attr.id]=\"'axp-table-col-' + child.column.name\"\n [expandHandler]=\"firstExpandLeafName() === child.column.name && !!vm().gridParentField()\"\n [caption]=\"(child.column.title | translate | async)!\"\n [columnKey]=\"child.column.name\"\n [node]=\"child.column.node()\"\n [customWidth]=\"child.column.width ?? ''\"\n [sortEnabled]=\"!!child.column.sortEnabled\"\n [headerSortDirection]=\"resolveColumnSortDirection(vm().sortedFields(), child.column.name)\"\n [headerSortPriority]=\"resolveColumnSortIndex(vm().sortedFields(), child.column.name)\"\n [footerTemplate]=\"childFooterCell\"\n (sortToggle)=\"handleColumnSort(child.column.name, $event)\"\n />\n }\n }\n }\n </axp-widget-column-renderer>\n }\n } @else {\n @if (node.visible) {\n <ng-template #colFooterCell>\n <!--->\n <!-- ----- Footer aggregate for this column ----- -->\n @if (node.column.column.footer) {\n <axp-data-list-column-footer [column]=\"footerColumn(node.column)\" [state]=\"vm().columnFooter()\" />\n }\n </ng-template>\n <axp-widget-column-renderer\n [attr.id]=\"'axp-table-col-' + node.column.name\"\n [expandHandler]=\"firstExpandLeafName() === node.column.name && !!vm().gridParentField()\"\n [caption]=\"(node.column.title | translate | async)!\"\n [columnKey]=\"node.column.name\"\n [node]=\"node.column.node()\"\n [customWidth]=\"node.column.width ?? ''\"\n [sortEnabled]=\"!!node.column.sortEnabled\"\n [headerSortDirection]=\"resolveColumnSortDirection(vm().sortedFields(), node.column.name)\"\n [headerSortPriority]=\"resolveColumnSortIndex(vm().sortedFields(), node.column.name)\"\n [footerTemplate]=\"colFooterCell\"\n (sortToggle)=\"handleColumnSort(node.column.name, $event)\"\n />\n }\n }\n }\n\n @if (getCommandRowItems().length) {\n <ax-command-column\n id=\"axp-table-col-commands\"\n fixed=\"end\"\n [width]=\"getCommandRowItems().length * 70 + 'px'\"\n [items]=\"getCommandRowItems()\"\n (onItemClick)=\"handleRowCommandClick($event)\"\n ></ax-command-column>\n }\n <ax-dropdown-command-column\n id=\"axp-table-col-dropdown-commands\"\n fixed=\"end\"\n [width]=\"'60px'\"\n [items]=\"getDropdownRowItems\"\n (onItemClick)=\"handleRowCommandClick($event)\"\n ></ax-dropdown-command-column>\n</ax-data-table>\n", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: AXDataTableModule }, { kind: "component", type: i8.AXDataTableComponent, selector: "ax-data-table", inputs: ["dataSource", "selectedRows", "parentField", "hasChildrenField", "rowDetailsTemplate", "rowCssClass", "cellCssClass", "highlightText", "look", "rowTemplate", "emptyTemplate", "noDataTemplate", "alternative", "showHeader", "fixedHeader", "showFooter", "fixedFooter", "itemHeight", "allowReordering", "paging", "fetchDataMode", "loading", "focusedRow"], outputs: ["selectedRowsChange", "focusedRowChange", "onRowClick", "onRowDbClick", "onColumnsOrderChanged", "onColumnSizeChanged", "onPageChanged"] }, { kind: "component", type: i8.AXRowIndexColumnComponent, selector: "ax-index-column", inputs: ["width", "caption", "fixed", "footerTemplate", "padZero"] }, { kind: "component", type: i8.AXRowSelectColumnComponent, selector: "ax-select-column", inputs: ["width", "caption", "fixed", "advanceSelect"] }, { kind: "component", type: i8.AXRowCommandColumnComponent, selector: "ax-command-column", inputs: ["width", "caption", "fixed", "footerTemplate", "items"], outputs: ["onItemClick"] }, { kind: "component", type: i8.AXRowDropdownCommandColumnComponent, selector: "ax-dropdown-command-column", inputs: ["width", "caption", "fixed", "footerTemplate", "emptyStateTemplate", "emptyStateText", "items"], outputs: ["onItemClick"] }, { kind: "ngmodule", type: AXTranslationModule }, { kind: "ngmodule", type: AXPWidgetCoreModule }, { kind: "component", type: i7$1.AXPWidgetColumnRendererComponent, selector: "axp-widget-column-renderer", inputs: ["caption", "customExpandIcon", "customCollapseIcon", "customWidth", "columnKey", "node", "footerTemplate", "expandHandler", "sortEnabled", "headerSortDirection", "headerSortPriority", "columnFixed", "cellTemplate", "headerTemplate"], outputs: ["sortToggle"] }, { kind: "ngmodule", type: AXPWidgetsModule }, { kind: "component", type: AXPDataListColumnFooterComponent, selector: "axp-data-list-column-footer", inputs: ["column", "state"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "pipe", type: i2.AXTranslatorPipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
2376
2376
  }
2377
2377
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXPEntityMasterListDataTableComponent, decorators: [{
2378
2378
  type: Component,
@@ -2385,7 +2385,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImpor
2385
2385
  AXPDataListColumnFooterComponent,
2386
2386
  ], host: {
2387
2387
  style: 'height: -webkit-fill-available;',
2388
- }, template: "<ax-data-table\n id=\"axp-entity-table\"\n [allowReordering]=\"true\"\n (onColumnsOrderChanged)=\"onColumnsOrderChanged($event)\"\n #grid\n [showFooter]=\"showFooter()\"\n class=\"flex-1\"\n [paging]=\"true\"\n [fetchDataMode]=\"'manual'\"\n [parentField]=\"vm().parentKey()\"\n [loading]=\"{ enabled: true, animation: true }\"\n [dataSource]=\"vm().dataSource\"\n [highlightText]=\"vm().inlineFilterHighlightText()\"\n [rowCssClass]=\"resolveRowCssClass\"\n [cellCssClass]=\"resolveCellCssClass\"\n (selectedRowsChange)=\"handleSelectedRowsChange($event)\"\n (onRowDbClick)=\"handleRowDbClick($event)\"\n (onColumnSizeChanged)=\"onColumnSizeChanged($event)\"\n (onPageChanged)=\"onPageChanged($event)\"\n>\n @if (vm().showIndexColumn()) {\n <ax-index-column\n id=\"axp-table-col-index\"\n [caption]=\"('@general:terms.common.row-number' | translate | async)!\"\n fixed=\"start\"\n [width]=\"'80px'\"\n [padZero]=\"false\"\n ></ax-index-column>\n }\n @if (vm().selectedScopeActionsCount()) {\n <ax-select-column id=\"axp-table-col-select\" fixed=\"start\" [width]=\"'60px'\"></ax-select-column>\n }\n\n @for (node of vm().columnTree(); track trackColumnTreeNode(node)) {\n @if (node.kind === 'band') {\n @if (node.visible) {\n <axp-widget-column-renderer\n [attr.id]=\"'axp-table-col-band-' + node.name\"\n [caption]=\"node.title\"\n [columnKey]=\"node.name\"\n customWidth=\"\"\n >\n @for (child of node.children; track trackColumnTreeNode(child)) {\n @if (child.kind === 'band') {\n @if (child.visible) {\n <axp-widget-column-renderer\n [attr.id]=\"'axp-table-col-band-' + child.name\"\n [caption]=\"child.title\"\n [columnKey]=\"child.name\"\n customWidth=\"\"\n >\n @for (grand of child.children; track trackColumnTreeNode(grand)) {\n @if (grand.kind === 'leaf' && grand.visible) {\n <ng-template #grandFooterCell>\n <!--->\n <!-- ----- Footer aggregate for this nested column ----- -->\n @if (grand.column.column.footer) {\n <axp-data-list-column-footer\n [column]=\"footerColumn(grand.column)\"\n [state]=\"vm().columnFooter()\"\n />\n }\n </ng-template>\n <axp-widget-column-renderer\n [attr.id]=\"'axp-table-col-' + grand.column.name\"\n [expandHandler]=\"firstExpandLeafName() === grand.column.name && !!vm().parentKey()\"\n [caption]=\"(grand.column.title | translate | async)!\"\n [columnKey]=\"grand.column.name\"\n [node]=\"grand.column.node()\"\n [customWidth]=\"grand.column.width ?? ''\"\n [sortEnabled]=\"!!grand.column.sortEnabled\"\n [headerSortDirection]=\"resolveColumnSortDirection(vm().sortedFields(), grand.column.name)\"\n [headerSortPriority]=\"resolveColumnSortIndex(vm().sortedFields(), grand.column.name)\"\n [footerTemplate]=\"grandFooterCell\"\n (sortToggle)=\"handleColumnSort(grand.column.name, $event)\"\n />\n }\n }\n </axp-widget-column-renderer>\n }\n } @else {\n @if (child.visible) {\n <ng-template #childFooterCell>\n <!--->\n <!-- ----- Footer aggregate for this grouped column ----- -->\n @if (child.column.column.footer) {\n <axp-data-list-column-footer\n [column]=\"footerColumn(child.column)\"\n [state]=\"vm().columnFooter()\"\n />\n }\n </ng-template>\n <axp-widget-column-renderer\n [attr.id]=\"'axp-table-col-' + child.column.name\"\n [expandHandler]=\"firstExpandLeafName() === child.column.name && !!vm().parentKey()\"\n [caption]=\"(child.column.title | translate | async)!\"\n [columnKey]=\"child.column.name\"\n [node]=\"child.column.node()\"\n [customWidth]=\"child.column.width ?? ''\"\n [sortEnabled]=\"!!child.column.sortEnabled\"\n [headerSortDirection]=\"resolveColumnSortDirection(vm().sortedFields(), child.column.name)\"\n [headerSortPriority]=\"resolveColumnSortIndex(vm().sortedFields(), child.column.name)\"\n [footerTemplate]=\"childFooterCell\"\n (sortToggle)=\"handleColumnSort(child.column.name, $event)\"\n />\n }\n }\n }\n </axp-widget-column-renderer>\n }\n } @else {\n @if (node.visible) {\n <ng-template #colFooterCell>\n <!--->\n <!-- ----- Footer aggregate for this column ----- -->\n @if (node.column.column.footer) {\n <axp-data-list-column-footer [column]=\"footerColumn(node.column)\" [state]=\"vm().columnFooter()\" />\n }\n </ng-template>\n <axp-widget-column-renderer\n [attr.id]=\"'axp-table-col-' + node.column.name\"\n [expandHandler]=\"firstExpandLeafName() === node.column.name && !!vm().parentKey()\"\n [caption]=\"(node.column.title | translate | async)!\"\n [columnKey]=\"node.column.name\"\n [node]=\"node.column.node()\"\n [customWidth]=\"node.column.width ?? ''\"\n [sortEnabled]=\"!!node.column.sortEnabled\"\n [headerSortDirection]=\"resolveColumnSortDirection(vm().sortedFields(), node.column.name)\"\n [headerSortPriority]=\"resolveColumnSortIndex(vm().sortedFields(), node.column.name)\"\n [footerTemplate]=\"colFooterCell\"\n (sortToggle)=\"handleColumnSort(node.column.name, $event)\"\n />\n }\n }\n }\n\n @if (getCommandRowItems().length) {\n <ax-command-column\n id=\"axp-table-col-commands\"\n fixed=\"end\"\n [width]=\"getCommandRowItems().length * 70 + 'px'\"\n [items]=\"getCommandRowItems()\"\n (onItemClick)=\"handleRowCommandClick($event)\"\n ></ax-command-column>\n }\n <ax-dropdown-command-column\n id=\"axp-table-col-dropdown-commands\"\n fixed=\"end\"\n [width]=\"'60px'\"\n [items]=\"getDropdownRowItems\"\n (onItemClick)=\"handleRowCommandClick($event)\"\n ></ax-dropdown-command-column>\n</ax-data-table>\n" }]
2388
+ }, template: "<ax-data-table\n id=\"axp-entity-table\"\n [allowReordering]=\"true\"\n (onColumnsOrderChanged)=\"onColumnsOrderChanged($event)\"\n #grid\n [showFooter]=\"showFooter()\"\n class=\"flex-1\"\n [paging]=\"true\"\n [fetchDataMode]=\"'manual'\"\n [parentField]=\"vm().gridParentField()\"\n [loading]=\"{ enabled: true, animation: true }\"\n [dataSource]=\"vm().dataSource\"\n [highlightText]=\"vm().inlineFilterHighlightText()\"\n [rowCssClass]=\"resolveRowCssClass\"\n [cellCssClass]=\"resolveCellCssClass\"\n (selectedRowsChange)=\"handleSelectedRowsChange($event)\"\n (onRowDbClick)=\"handleRowDbClick($event)\"\n (onColumnSizeChanged)=\"onColumnSizeChanged($event)\"\n (onPageChanged)=\"onPageChanged($event)\"\n>\n @if (vm().showIndexColumn()) {\n <ax-index-column\n id=\"axp-table-col-index\"\n [caption]=\"('@general:terms.common.row-number' | translate | async)!\"\n fixed=\"start\"\n [width]=\"'80px'\"\n [padZero]=\"false\"\n ></ax-index-column>\n }\n @if (vm().selectedScopeActionsCount()) {\n <ax-select-column id=\"axp-table-col-select\" fixed=\"start\" [width]=\"'60px'\"></ax-select-column>\n }\n\n @for (node of vm().columnTree(); track trackColumnTreeNode(node)) {\n @if (node.kind === 'band') {\n @if (node.visible) {\n <axp-widget-column-renderer\n [attr.id]=\"'axp-table-col-band-' + node.name\"\n [caption]=\"node.title\"\n [columnKey]=\"node.name\"\n customWidth=\"\"\n >\n @for (child of node.children; track trackColumnTreeNode(child)) {\n @if (child.kind === 'band') {\n @if (child.visible) {\n <axp-widget-column-renderer\n [attr.id]=\"'axp-table-col-band-' + child.name\"\n [caption]=\"child.title\"\n [columnKey]=\"child.name\"\n customWidth=\"\"\n >\n @for (grand of child.children; track trackColumnTreeNode(grand)) {\n @if (grand.kind === 'leaf' && grand.visible) {\n <ng-template #grandFooterCell>\n <!--->\n <!-- ----- Footer aggregate for this nested column ----- -->\n @if (grand.column.column.footer) {\n <axp-data-list-column-footer\n [column]=\"footerColumn(grand.column)\"\n [state]=\"vm().columnFooter()\"\n />\n }\n </ng-template>\n <axp-widget-column-renderer\n [attr.id]=\"'axp-table-col-' + grand.column.name\"\n [expandHandler]=\"firstExpandLeafName() === grand.column.name && !!vm().gridParentField()\"\n [caption]=\"(grand.column.title | translate | async)!\"\n [columnKey]=\"grand.column.name\"\n [node]=\"grand.column.node()\"\n [customWidth]=\"grand.column.width ?? ''\"\n [sortEnabled]=\"!!grand.column.sortEnabled\"\n [headerSortDirection]=\"resolveColumnSortDirection(vm().sortedFields(), grand.column.name)\"\n [headerSortPriority]=\"resolveColumnSortIndex(vm().sortedFields(), grand.column.name)\"\n [footerTemplate]=\"grandFooterCell\"\n (sortToggle)=\"handleColumnSort(grand.column.name, $event)\"\n />\n }\n }\n </axp-widget-column-renderer>\n }\n } @else {\n @if (child.visible) {\n <ng-template #childFooterCell>\n <!--->\n <!-- ----- Footer aggregate for this grouped column ----- -->\n @if (child.column.column.footer) {\n <axp-data-list-column-footer\n [column]=\"footerColumn(child.column)\"\n [state]=\"vm().columnFooter()\"\n />\n }\n </ng-template>\n <axp-widget-column-renderer\n [attr.id]=\"'axp-table-col-' + child.column.name\"\n [expandHandler]=\"firstExpandLeafName() === child.column.name && !!vm().gridParentField()\"\n [caption]=\"(child.column.title | translate | async)!\"\n [columnKey]=\"child.column.name\"\n [node]=\"child.column.node()\"\n [customWidth]=\"child.column.width ?? ''\"\n [sortEnabled]=\"!!child.column.sortEnabled\"\n [headerSortDirection]=\"resolveColumnSortDirection(vm().sortedFields(), child.column.name)\"\n [headerSortPriority]=\"resolveColumnSortIndex(vm().sortedFields(), child.column.name)\"\n [footerTemplate]=\"childFooterCell\"\n (sortToggle)=\"handleColumnSort(child.column.name, $event)\"\n />\n }\n }\n }\n </axp-widget-column-renderer>\n }\n } @else {\n @if (node.visible) {\n <ng-template #colFooterCell>\n <!--->\n <!-- ----- Footer aggregate for this column ----- -->\n @if (node.column.column.footer) {\n <axp-data-list-column-footer [column]=\"footerColumn(node.column)\" [state]=\"vm().columnFooter()\" />\n }\n </ng-template>\n <axp-widget-column-renderer\n [attr.id]=\"'axp-table-col-' + node.column.name\"\n [expandHandler]=\"firstExpandLeafName() === node.column.name && !!vm().gridParentField()\"\n [caption]=\"(node.column.title | translate | async)!\"\n [columnKey]=\"node.column.name\"\n [node]=\"node.column.node()\"\n [customWidth]=\"node.column.width ?? ''\"\n [sortEnabled]=\"!!node.column.sortEnabled\"\n [headerSortDirection]=\"resolveColumnSortDirection(vm().sortedFields(), node.column.name)\"\n [headerSortPriority]=\"resolveColumnSortIndex(vm().sortedFields(), node.column.name)\"\n [footerTemplate]=\"colFooterCell\"\n (sortToggle)=\"handleColumnSort(node.column.name, $event)\"\n />\n }\n }\n }\n\n @if (getCommandRowItems().length) {\n <ax-command-column\n id=\"axp-table-col-commands\"\n fixed=\"end\"\n [width]=\"getCommandRowItems().length * 70 + 'px'\"\n [items]=\"getCommandRowItems()\"\n (onItemClick)=\"handleRowCommandClick($event)\"\n ></ax-command-column>\n }\n <ax-dropdown-command-column\n id=\"axp-table-col-dropdown-commands\"\n fixed=\"end\"\n [width]=\"'60px'\"\n [items]=\"getDropdownRowItems\"\n (onItemClick)=\"handleRowCommandClick($event)\"\n ></ax-dropdown-command-column>\n</ax-data-table>\n" }]
2389
2389
  }], propDecorators: { vm: [{ type: i0.Input, args: [{ isSignal: true, alias: "vm", required: true }] }], pageChanged: [{ type: i0.Output, args: ["pageChanged"] }], gridRef: [{ type: i0.ViewChild, args: ['grid', { isSignal: true }] }] } });
2390
2390
  /** Maps short tokens (`warning`) to `ax-row-color-*`; keeps full surfaces (`primary-light-surface`). */
2391
2391
  function toDataTableRowStylingClass(cssClass) {
@@ -2988,7 +2988,7 @@ class AXPEntityMasterListViewComponent extends AXPPageLayoutBaseComponent {
2988
2988
  }
2989
2989
  }
2990
2990
  scheduleRestoreExpandedRows() {
2991
- if (!this.vm.parentKey() || this.restoreExpandedRowsScheduled) {
2991
+ if (!this.vm.gridParentField() || this.restoreExpandedRowsScheduled) {
2992
2992
  return;
2993
2993
  }
2994
2994
  this.restoreExpandedRowsScheduled = true;
@@ -2998,7 +2998,7 @@ class AXPEntityMasterListViewComponent extends AXPPageLayoutBaseComponent {
2998
2998
  });
2999
2999
  }
3000
3000
  async restoreExpandedRows() {
3001
- if (!this.vm.parentKey() || this.isRestoringExpandedRows) {
3001
+ if (!this.vm.gridParentField() || this.isRestoringExpandedRows) {
3002
3002
  return;
3003
3003
  }
3004
3004
  const expandedRowIds = this.vm.getExpandedRowIds();