@acorex-platform/framework-client 2.0.0-next.26 → 2.0.0-next.29
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/fesm2022/acorex-platform-framework-client-auth.mjs +8 -9
- package/fesm2022/acorex-platform-framework-client-auth.mjs.map +1 -1
- package/fesm2022/acorex-platform-framework-client-common.mjs +558 -106
- package/fesm2022/acorex-platform-framework-client-common.mjs.map +1 -1
- package/fesm2022/{acorex-platform-framework-client-layout-entity-acorex-platform-framework-client-layout-entity-BTLgOdQN.mjs → acorex-platform-framework-client-layout-entity-acorex-platform-framework-client-layout-entity-DmkFxSuJ.mjs} +13 -11
- package/fesm2022/acorex-platform-framework-client-layout-entity-acorex-platform-framework-client-layout-entity-DmkFxSuJ.mjs.map +1 -0
- package/fesm2022/{acorex-platform-framework-client-layout-entity-attachments-page.component-DH2Wq7ux.mjs → acorex-platform-framework-client-layout-entity-attachments-page.component-BV5WLQVo.mjs} +2 -2
- package/fesm2022/{acorex-platform-framework-client-layout-entity-attachments-page.component-DH2Wq7ux.mjs.map → acorex-platform-framework-client-layout-entity-attachments-page.component-BV5WLQVo.mjs.map} +1 -1
- package/fesm2022/{acorex-platform-framework-client-layout-entity-bulk-entity.command-DMgR7yq0.mjs → acorex-platform-framework-client-layout-entity-bulk-entity.command-O8zdiHRH.mjs} +2 -2
- package/fesm2022/{acorex-platform-framework-client-layout-entity-bulk-entity.command-DMgR7yq0.mjs.map → acorex-platform-framework-client-layout-entity-bulk-entity.command-O8zdiHRH.mjs.map} +1 -1
- package/fesm2022/{acorex-platform-framework-client-layout-entity-file-list-popup.component-DLt5p2Iy.mjs → acorex-platform-framework-client-layout-entity-file-list-popup.component-B3-0gJTQ.mjs} +2 -2
- package/fesm2022/{acorex-platform-framework-client-layout-entity-file-list-popup.component-DLt5p2Iy.mjs.map → acorex-platform-framework-client-layout-entity-file-list-popup.component-B3-0gJTQ.mjs.map} +1 -1
- package/fesm2022/{acorex-platform-framework-client-layout-entity-gallery-page.component-C_JIijQZ.mjs → acorex-platform-framework-client-layout-entity-gallery-page.component-CjfLUBPZ.mjs} +2 -2
- package/fesm2022/{acorex-platform-framework-client-layout-entity-gallery-page.component-C_JIijQZ.mjs.map → acorex-platform-framework-client-layout-entity-gallery-page.component-CjfLUBPZ.mjs.map} +1 -1
- package/fesm2022/acorex-platform-framework-client-layout-entity.mjs +1 -1
- package/fesm2022/acorex-platform-framework-client-layout-views.mjs +24 -8
- package/fesm2022/acorex-platform-framework-client-layout-views.mjs.map +1 -1
- package/fesm2022/{acorex-platform-framework-client-layout-widgets-acorex-platform-framework-client-layout-widgets-DRh91YCL.mjs → acorex-platform-framework-client-layout-widgets-acorex-platform-framework-client-layout-widgets-CpmGqDUE.mjs} +893 -153
- package/fesm2022/acorex-platform-framework-client-layout-widgets-acorex-platform-framework-client-layout-widgets-CpmGqDUE.mjs.map +1 -0
- package/fesm2022/{acorex-platform-framework-client-layout-widgets-repeater-widget-column.component-Ddx_b04d.mjs → acorex-platform-framework-client-layout-widgets-repeater-widget-column.component-XgjDH9Oc.mjs} +2 -2
- package/fesm2022/{acorex-platform-framework-client-layout-widgets-repeater-widget-column.component-Ddx_b04d.mjs.map → acorex-platform-framework-client-layout-widgets-repeater-widget-column.component-XgjDH9Oc.mjs.map} +1 -1
- package/fesm2022/{acorex-platform-framework-client-layout-widgets-text-block-widget-designer.component-DqIuIn76.mjs → acorex-platform-framework-client-layout-widgets-text-block-widget-designer.component-DDczHmAA.mjs} +2 -2
- package/fesm2022/{acorex-platform-framework-client-layout-widgets-text-block-widget-designer.component-DqIuIn76.mjs.map → acorex-platform-framework-client-layout-widgets-text-block-widget-designer.component-DDczHmAA.mjs.map} +1 -1
- package/fesm2022/acorex-platform-framework-client-layout-widgets.mjs +1 -1
- package/fesm2022/{acorex-platform-framework-client-themes-default-error-401.component-1lfBpY_d.mjs → acorex-platform-framework-client-themes-default-error-401.component-DszlyIaw.mjs} +5 -11
- package/fesm2022/acorex-platform-framework-client-themes-default-error-401.component-DszlyIaw.mjs.map +1 -0
- package/fesm2022/{acorex-platform-framework-client-themes-default-error-404.component-BeWyRCJr.mjs → acorex-platform-framework-client-themes-default-error-404.component-BusKNAit.mjs} +5 -11
- package/fesm2022/acorex-platform-framework-client-themes-default-error-404.component-BusKNAit.mjs.map +1 -0
- package/fesm2022/{acorex-platform-framework-client-themes-default-error-offline.component-PvveUj5c.mjs → acorex-platform-framework-client-themes-default-error-offline.component-Abf14p44.mjs} +15 -4
- package/fesm2022/acorex-platform-framework-client-themes-default-error-offline.component-Abf14p44.mjs.map +1 -0
- package/fesm2022/acorex-platform-framework-client-themes-default-error-page-go-home-B9VmB9Vt.mjs +19 -0
- package/fesm2022/acorex-platform-framework-client-themes-default-error-page-go-home-B9VmB9Vt.mjs.map +1 -0
- package/fesm2022/acorex-platform-framework-client-themes-default.mjs +15 -6
- package/fesm2022/acorex-platform-framework-client-themes-default.mjs.map +1 -1
- package/fesm2022/acorex-platform-framework-client-themes-shared.mjs +10 -4
- package/fesm2022/acorex-platform-framework-client-themes-shared.mjs.map +1 -1
- package/i18n/en-AU/platform-layout-widgets.json +7 -1
- package/i18n/en-US/platform-layout-widgets.json +7 -1
- package/i18n/fa-IR/platform-layout-widgets.json +7 -1
- package/package.json +2 -2
- package/types/acorex-platform-framework-client-auth.d.ts +21 -11
- package/types/acorex-platform-framework-client-common.d.ts +122 -7
- package/types/acorex-platform-framework-client-layout-widgets.d.ts +111 -8
- package/fesm2022/acorex-platform-framework-client-layout-entity-acorex-platform-framework-client-layout-entity-BTLgOdQN.mjs.map +0 -1
- package/fesm2022/acorex-platform-framework-client-layout-widgets-acorex-platform-framework-client-layout-widgets-DRh91YCL.mjs.map +0 -1
- package/fesm2022/acorex-platform-framework-client-themes-default-error-401.component-1lfBpY_d.mjs.map +0 -1
- package/fesm2022/acorex-platform-framework-client-themes-default-error-404.component-BeWyRCJr.mjs.map +0 -1
- package/fesm2022/acorex-platform-framework-client-themes-default-error-offline.component-PvveUj5c.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-
|
|
13
|
+
import { A as AXP_REPEATER_ENTITY_BY_KEY_LOOKUP } from './acorex-platform-framework-client-layout-widgets-acorex-platform-framework-client-layout-widgets-CpmGqDUE.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-
|
|
527
|
+
//# sourceMappingURL=acorex-platform-framework-client-layout-widgets-repeater-widget-column.component-XgjDH9Oc.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"acorex-platform-framework-client-layout-widgets-repeater-widget-column.component-Ddx_b04d.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-XgjDH9Oc.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-
|
|
8
|
+
import { t as textBlockStyleAttribute, a as textBlockContentClass } from './acorex-platform-framework-client-layout-widgets-acorex-platform-framework-client-layout-widgets-CpmGqDUE.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-
|
|
76
|
+
//# sourceMappingURL=acorex-platform-framework-client-layout-widgets-text-block-widget-designer.component-DDczHmAA.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"acorex-platform-framework-client-layout-widgets-text-block-widget-designer.component-
|
|
1
|
+
{"version":3,"file":"acorex-platform-framework-client-layout-widgets-text-block-widget-designer.component-DDczHmAA.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_COLUMN_RESOLVE_QUERY, d9 as AXP_SELECT_FILTER_DEFAULT_OPERATOR, da as AXP_SPACING_UNITS, db as AXP_default_Border_Box_Units, dc as AXP_default_Border_Box_Value, dd as AXP_default_Spacing_Box_Units, de as AXP_default_Spacing_Box_Value, df as DEFAULT_QRCODE_SIZE, dg as DEFAULT_STRATEGY_CONFIG, dh as STRATEGY_CONFIG_TOKEN, di as applyLeafVisibilityToDataListColumnTree, dj as flattenDataListWidgetColumns, dk as formatConditionBuilderChip, dl as formatConditionBuilderSentence, dm as isDataListColumnBand, dn as prepareNodeRendererChild, dp as resolveColorChooserGroups, dq as resolveDataListColumnWidth, dr as tokensToPlainText } from './acorex-platform-framework-client-layout-widgets-acorex-platform-framework-client-layout-widgets-DRh91YCL.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_COLUMN_RESOLVE_QUERY, d9 as AXP_SELECT_FILTER_DEFAULT_OPERATOR, da as AXP_SPACING_UNITS, db as AXP_default_Border_Box_Units, dc as AXP_default_Border_Box_Value, dd as AXP_default_Spacing_Box_Units, de as AXP_default_Spacing_Box_Value, df as DEFAULT_QRCODE_SIZE, dg as DEFAULT_STRATEGY_CONFIG, dh as STRATEGY_CONFIG_TOKEN, di as applyLeafVisibilityToDataListColumnTree, dj as displayQrcodeAttachmentFileId, dk as flattenDataListWidgetColumns, dl as formatConditionBuilderChip, dm as formatConditionBuilderSentence, dn as isDataListColumnBand, dp as prepareNodeRendererChild, dq as qrcodeAttachmentImageUrl, dr as resolveColorChooserGroups, ds as resolveDataListColumnWidth, dt as resolveQrcodeDisplayMode, du as tokensToPlainText } from './acorex-platform-framework-client-layout-widgets-acorex-platform-framework-client-layout-widgets-CpmGqDUE.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
|
|
@@ -3,18 +3,20 @@ import { AXButtonModule } from '@acorex/components/button';
|
|
|
3
3
|
import * as i2 from '@acorex/core/translation';
|
|
4
4
|
import { AXTranslationModule } from '@acorex/core/translation';
|
|
5
5
|
import { AXPSessionService } from '@acorex-platform/framework-client/auth';
|
|
6
|
-
import { AXPHomePageService } from '@acorex-platform/framework-client/common';
|
|
6
|
+
import { AXPHomePageService, AXPTabNavigationService } from '@acorex-platform/framework-client/common';
|
|
7
7
|
import * as i1 from '@angular/common';
|
|
8
8
|
import { CommonModule } from '@angular/common';
|
|
9
9
|
import * as i0 from '@angular/core';
|
|
10
10
|
import { inject, ChangeDetectionStrategy, Component } from '@angular/core';
|
|
11
11
|
import { Router } from '@angular/router';
|
|
12
|
+
import { a as axpGoHomeFromErrorPage } from './acorex-platform-framework-client-themes-default-error-page-go-home-B9VmB9Vt.mjs';
|
|
12
13
|
|
|
13
14
|
class AXPError401Component {
|
|
14
15
|
constructor() {
|
|
15
16
|
//#region ---- Services & Dependencies ----
|
|
16
17
|
this.sessionService = inject(AXPSessionService);
|
|
17
18
|
this.homePageService = inject(AXPHomePageService);
|
|
19
|
+
this.tabNavigation = inject(AXPTabNavigationService);
|
|
18
20
|
this.router = inject(Router);
|
|
19
21
|
//#endregion
|
|
20
22
|
//#region ---- State ----
|
|
@@ -23,15 +25,7 @@ class AXPError401Component {
|
|
|
23
25
|
//#endregion
|
|
24
26
|
//#region ---- UI Handlers ----
|
|
25
27
|
async goHome() {
|
|
26
|
-
|
|
27
|
-
await this.router.navigate(['/auth/account/tenant-chooser']);
|
|
28
|
-
return;
|
|
29
|
-
}
|
|
30
|
-
if (this.sessionService.application?.id == null) {
|
|
31
|
-
await this.router.navigate(['/auth/account/app-chooser']);
|
|
32
|
-
return;
|
|
33
|
-
}
|
|
34
|
-
await this.homePageService.navigateTo();
|
|
28
|
+
await axpGoHomeFromErrorPage(this.sessionService, this.router, this.tabNavigation, this.homePageService);
|
|
35
29
|
}
|
|
36
30
|
async signIn() {
|
|
37
31
|
await this.router.navigate(['/auth/login']);
|
|
@@ -45,4 +39,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImpor
|
|
|
45
39
|
}] });
|
|
46
40
|
|
|
47
41
|
export { AXPError401Component };
|
|
48
|
-
//# sourceMappingURL=acorex-platform-framework-client-themes-default-error-401.component-
|
|
42
|
+
//# sourceMappingURL=acorex-platform-framework-client-themes-default-error-401.component-DszlyIaw.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"acorex-platform-framework-client-themes-default-error-401.component-DszlyIaw.mjs","sources":["../../../../../libs/framework/client/themes/default/src/lib/pages/errors/error-401/error-401.component.ts","../../../../../libs/framework/client/themes/default/src/lib/pages/errors/error-401/error-401.component.html"],"sourcesContent":["import { AXButtonModule } from '@acorex/components/button';\nimport { AXTranslationModule } from '@acorex/core/translation';\nimport { AXPSessionService } from '@acorex-platform/framework-client/auth';\nimport { AXPHomePageService, AXPTabNavigationService } from '@acorex-platform/framework-client/common';\nimport { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, inject } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { axpGoHomeFromErrorPage } from '../error-page-go-home';\n\n@Component({\n selector: 'axp-error-401',\n templateUrl: './error-401.component.html',\n styleUrls: ['./error-401.component.css'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [CommonModule, AXButtonModule, AXTranslationModule],\n})\nexport class AXPError401Component {\n //#region ---- Services & Dependencies ----\n\n private readonly sessionService = inject(AXPSessionService);\n private readonly homePageService = inject(AXPHomePageService);\n private readonly tabNavigation = inject(AXPTabNavigationService);\n private readonly router = inject(Router);\n\n //#endregion\n\n //#region ---- State ----\n\n protected readonly isAuthorized$ = this.sessionService.isAuthorized$;\n\n //#endregion\n\n //#region ---- UI Handlers ----\n\n protected async goHome(): Promise<void> {\n await axpGoHomeFromErrorPage(\n this.sessionService,\n this.router,\n this.tabNavigation,\n this.homePageService,\n );\n }\n\n protected async signIn(): Promise<void> {\n await this.router.navigate(['/auth/login']);\n }\n\n //#endregion\n}\n","<div\n class=\"axp-error-401 h-full flex flex-col gap-8 items-center justify-center bg-lightest dark:bg-darkest\"\n>\n <img\n class=\"axp-error-401__image w-3/4 md:w-1/2 lg:w-1/3 xl:w-1/4\"\n src=\"/assets/images/pages/error/401.svg\"\n [attr.alt]=\"'@general:errors.401.image-alt' | translate | async\"\n />\n <div class=\"flex flex-col items-center gap-2 md:gap-4 text-center px-4\">\n <h1 class=\"font-bold text-2xl md:text-4xl text-neutral-900 dark:text-neutral-50\">\n {{ '@general:errors.401.title' | translate | async }}\n </h1>\n <p class=\"md:text-lg text-neutral-500 dark:text-neutral-300\">\n {{ '@general:errors.401.description' | translate | async }}\n </p>\n </div>\n <div class=\"flex flex-col gap-2 md:gap-4 md:flex-row\">\n @if (isAuthorized$ | async) {\n <ax-button\n (onClick)=\"goHome()\"\n class=\"px-4\"\n color=\"primary\"\n [text]=\"'@general:errors.401.actions.go-home.title' | translate | async\"\n ></ax-button>\n } @else {\n <ax-button\n (onClick)=\"signIn()\"\n class=\"px-4\"\n color=\"primary\"\n [text]=\"'@general:errors.401.actions.sign-in.title' | translate | async\"\n ></ax-button>\n }\n </div>\n</div>\n"],"names":["i2","i3"],"mappings":";;;;;;;;;;;;;MAgBa,oBAAoB,CAAA;AAPjC,IAAA,WAAA,GAAA;;AAUmB,QAAA,IAAA,CAAA,cAAc,GAAG,MAAM,CAAC,iBAAiB,CAAC;AAC1C,QAAA,IAAA,CAAA,eAAe,GAAG,MAAM,CAAC,kBAAkB,CAAC;AAC5C,QAAA,IAAA,CAAA,aAAa,GAAG,MAAM,CAAC,uBAAuB,CAAC;AAC/C,QAAA,IAAA,CAAA,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;;;AAMrB,QAAA,IAAA,CAAA,aAAa,GAAG,IAAI,CAAC,cAAc,CAAC,aAAa;AAoBrE,IAAA;;;AAdW,IAAA,MAAM,MAAM,GAAA;AACpB,QAAA,MAAM,sBAAsB,CAC1B,IAAI,CAAC,cAAc,EACnB,IAAI,CAAC,MAAM,EACX,IAAI,CAAC,aAAa,EAClB,IAAI,CAAC,eAAe,CACrB;IACH;AAEU,IAAA,MAAM,MAAM,GAAA;QACpB,MAAM,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,aAAa,CAAC,CAAC;IAC7C;8GA7BW,oBAAoB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAApB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,oBAAoB,yEChBjC,kvCAkCA,EAAA,MAAA,EAAA,CAAA,sTAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EDpBY,YAAY,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAE,cAAc,qXAAE,mBAAmB,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,SAAA,EAAA,IAAA,EAAA,OAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAC,EAAA,CAAA,gBAAA,EAAA,IAAA,EAAA,WAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;;2FAEhD,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBAPhC,SAAS;+BACE,eAAe,EAAA,eAAA,EAGR,uBAAuB,CAAC,MAAM,EAAA,OAAA,EACtC,CAAC,YAAY,EAAE,cAAc,EAAE,mBAAmB,CAAC,EAAA,QAAA,EAAA,kvCAAA,EAAA,MAAA,EAAA,CAAA,sTAAA,CAAA,EAAA;;;"}
|
|
@@ -3,32 +3,26 @@ import { AXButtonModule } from '@acorex/components/button';
|
|
|
3
3
|
import * as i2 from '@acorex/core/translation';
|
|
4
4
|
import { AXTranslationModule } from '@acorex/core/translation';
|
|
5
5
|
import { AXPSessionService } from '@acorex-platform/framework-client/auth';
|
|
6
|
-
import { AXPHomePageService } from '@acorex-platform/framework-client/common';
|
|
6
|
+
import { AXPHomePageService, AXPTabNavigationService } from '@acorex-platform/framework-client/common';
|
|
7
7
|
import * as i1 from '@angular/common';
|
|
8
8
|
import { CommonModule } from '@angular/common';
|
|
9
9
|
import * as i0 from '@angular/core';
|
|
10
10
|
import { inject, ChangeDetectionStrategy, Component } from '@angular/core';
|
|
11
11
|
import { Router } from '@angular/router';
|
|
12
|
+
import { a as axpGoHomeFromErrorPage } from './acorex-platform-framework-client-themes-default-error-page-go-home-B9VmB9Vt.mjs';
|
|
12
13
|
|
|
13
14
|
class AXPError404Component {
|
|
14
15
|
constructor() {
|
|
15
16
|
//#region ---- Services & Dependencies ----
|
|
16
17
|
this.sessionService = inject(AXPSessionService);
|
|
17
18
|
this.homePageService = inject(AXPHomePageService);
|
|
19
|
+
this.tabNavigation = inject(AXPTabNavigationService);
|
|
18
20
|
this.router = inject(Router);
|
|
19
21
|
}
|
|
20
22
|
//#endregion
|
|
21
23
|
//#region ---- UI Handlers ----
|
|
22
24
|
async goHome() {
|
|
23
|
-
|
|
24
|
-
await this.router.navigate(['/auth/account/tenant-chooser']);
|
|
25
|
-
return;
|
|
26
|
-
}
|
|
27
|
-
if (this.sessionService.application?.id == null) {
|
|
28
|
-
await this.router.navigate(['/auth/account/app-chooser']);
|
|
29
|
-
return;
|
|
30
|
-
}
|
|
31
|
-
await this.homePageService.navigateTo();
|
|
25
|
+
await axpGoHomeFromErrorPage(this.sessionService, this.router, this.tabNavigation, this.homePageService);
|
|
32
26
|
}
|
|
33
27
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXPError404Component, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
34
28
|
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "22.0.8", type: AXPError404Component, isStandalone: true, selector: "axp-error-404", ngImport: i0, template: "<div class=\"axp-error-404 h-full flex flex-col gap-8 items-center justify-center bg-lightest dark:bg-darkest\">\n <img\n class=\"axp-error-404__image w-3/4 md:w-1/2 lg:w-1/3 xl:w-1/3\"\n src=\"/assets/images/pages/error/404.svg\"\n [attr.alt]=\"'@general:errors.404.image-alt' | translate | async\"\n />\n <div class=\"flex flex-col items-center gap-2 md:gap-4 text-center px-4\">\n <h1 class=\"font-bold text-2xl md:text-4xl text-neutral-900 dark:text-neutral-50\">\n {{ '@general:errors.404.title' | translate | async }}\n </h1>\n <p class=\"md:text-lg text-neutral-500 dark:text-neutral-300\">\n {{ '@general:errors.404.description' | translate | async }}\n </p>\n </div>\n <div class=\"flex flex-col gap-2 md:gap-4 md:flex-row\">\n <ax-button\n (onClick)=\"goHome()\"\n class=\"px-4\"\n color=\"primary\"\n [text]=\"'@general:errors.404.actions.go-home.title' | translate | async\"\n ></ax-button>\n <ax-button\n class=\"px-4\"\n color=\"default\"\n [text]=\"'@general:errors.404.actions.contact-us.title' | translate | async\"\n ></ax-button>\n </div>\n</div>\n", styles: [".axp-error-404__image{filter:none}.axp-error-404__image:where(.ax-dark,.ax-dark *):not(:where(.ax-light,.ax-light *)){opacity:90%}:host-context(.dark) .axp-error-404__image,.dark .axp-error-404__image{filter:brightness(.92) contrast(1.05)}\n/*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: AXButtonModule }, { kind: "component", type: i3.AXButtonComponent, selector: "ax-button", inputs: ["disabled", "tabIndex", "color", "look", "text", "toggleable", "selected", "iconOnly", "type", "loadingText"], outputs: ["onBlur", "onFocus", "onClick", "selectedChange", "toggleableChange", "lookChange", "colorChange", "disabledChange", "loadingTextChange"] }, { kind: "ngmodule", type: AXTranslationModule }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "pipe", type: i2.AXTranslatorPipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
@@ -39,4 +33,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImpor
|
|
|
39
33
|
}] });
|
|
40
34
|
|
|
41
35
|
export { AXPError404Component };
|
|
42
|
-
//# sourceMappingURL=acorex-platform-framework-client-themes-default-error-404.component-
|
|
36
|
+
//# sourceMappingURL=acorex-platform-framework-client-themes-default-error-404.component-BusKNAit.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"acorex-platform-framework-client-themes-default-error-404.component-BusKNAit.mjs","sources":["../../../../../libs/framework/client/themes/default/src/lib/pages/errors/error-404/error-404.component.ts","../../../../../libs/framework/client/themes/default/src/lib/pages/errors/error-404/error-404.component.html"],"sourcesContent":["import { AXButtonModule } from '@acorex/components/button';\nimport { AXTranslationModule } from '@acorex/core/translation';\nimport { AXPSessionService } from '@acorex-platform/framework-client/auth';\nimport { AXPHomePageService, AXPTabNavigationService } from '@acorex-platform/framework-client/common';\nimport { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, inject } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { axpGoHomeFromErrorPage } from '../error-page-go-home';\n\n@Component({\n selector: 'axp-error-404',\n templateUrl: './error-404.component.html',\n styleUrls: ['./error-404.component.css'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [CommonModule, AXButtonModule, AXTranslationModule],\n})\nexport class AXPError404Component {\n //#region ---- Services & Dependencies ----\n\n private readonly sessionService = inject(AXPSessionService);\n private readonly homePageService = inject(AXPHomePageService);\n private readonly tabNavigation = inject(AXPTabNavigationService);\n private readonly router = inject(Router);\n\n //#endregion\n\n //#region ---- UI Handlers ----\n\n protected async goHome(): Promise<void> {\n await axpGoHomeFromErrorPage(\n this.sessionService,\n this.router,\n this.tabNavigation,\n this.homePageService,\n );\n }\n\n //#endregion\n}\n","<div class=\"axp-error-404 h-full flex flex-col gap-8 items-center justify-center bg-lightest dark:bg-darkest\">\n <img\n class=\"axp-error-404__image w-3/4 md:w-1/2 lg:w-1/3 xl:w-1/3\"\n src=\"/assets/images/pages/error/404.svg\"\n [attr.alt]=\"'@general:errors.404.image-alt' | translate | async\"\n />\n <div class=\"flex flex-col items-center gap-2 md:gap-4 text-center px-4\">\n <h1 class=\"font-bold text-2xl md:text-4xl text-neutral-900 dark:text-neutral-50\">\n {{ '@general:errors.404.title' | translate | async }}\n </h1>\n <p class=\"md:text-lg text-neutral-500 dark:text-neutral-300\">\n {{ '@general:errors.404.description' | translate | async }}\n </p>\n </div>\n <div class=\"flex flex-col gap-2 md:gap-4 md:flex-row\">\n <ax-button\n (onClick)=\"goHome()\"\n class=\"px-4\"\n color=\"primary\"\n [text]=\"'@general:errors.404.actions.go-home.title' | translate | async\"\n ></ax-button>\n <ax-button\n class=\"px-4\"\n color=\"default\"\n [text]=\"'@general:errors.404.actions.contact-us.title' | translate | async\"\n ></ax-button>\n </div>\n</div>\n"],"names":["i2","i3"],"mappings":";;;;;;;;;;;;;MAgBa,oBAAoB,CAAA;AAPjC,IAAA,WAAA,GAAA;;AAUmB,QAAA,IAAA,CAAA,cAAc,GAAG,MAAM,CAAC,iBAAiB,CAAC;AAC1C,QAAA,IAAA,CAAA,eAAe,GAAG,MAAM,CAAC,kBAAkB,CAAC;AAC5C,QAAA,IAAA,CAAA,aAAa,GAAG,MAAM,CAAC,uBAAuB,CAAC;AAC/C,QAAA,IAAA,CAAA,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;AAgBzC,IAAA;;;AAVW,IAAA,MAAM,MAAM,GAAA;AACpB,QAAA,MAAM,sBAAsB,CAC1B,IAAI,CAAC,cAAc,EACnB,IAAI,CAAC,MAAM,EACX,IAAI,CAAC,aAAa,EAClB,IAAI,CAAC,eAAe,CACrB;IACH;8GAnBW,oBAAoB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAApB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,oBAAoB,yEChBjC,ioCA4BA,EAAA,MAAA,EAAA,CAAA,sTAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EDdY,YAAY,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAE,cAAc,qXAAE,mBAAmB,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,SAAA,EAAA,IAAA,EAAA,OAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAC,EAAA,CAAA,gBAAA,EAAA,IAAA,EAAA,WAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;;2FAEhD,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBAPhC,SAAS;+BACE,eAAe,EAAA,eAAA,EAGR,uBAAuB,CAAC,MAAM,EAAA,OAAA,EACtC,CAAC,YAAY,EAAE,cAAc,EAAE,mBAAmB,CAAC,EAAA,QAAA,EAAA,ioCAAA,EAAA,MAAA,EAAA,CAAA,sTAAA,CAAA,EAAA;;;"}
|
|
@@ -2,14 +2,25 @@ import * as i3 from '@acorex/components/button';
|
|
|
2
2
|
import { AXButtonModule } from '@acorex/components/button';
|
|
3
3
|
import * as i2 from '@acorex/core/translation';
|
|
4
4
|
import { AXTranslationModule } from '@acorex/core/translation';
|
|
5
|
+
import { AXPSessionService } from '@acorex-platform/framework-client/auth';
|
|
6
|
+
import { AXPHomePageService, AXPTabNavigationService } from '@acorex-platform/framework-client/common';
|
|
5
7
|
import { AsyncPipe } from '@angular/common';
|
|
6
8
|
import * as i0 from '@angular/core';
|
|
7
|
-
import { ChangeDetectionStrategy, Component } from '@angular/core';
|
|
9
|
+
import { inject, ChangeDetectionStrategy, Component } from '@angular/core';
|
|
10
|
+
import { Router } from '@angular/router';
|
|
11
|
+
import { a as axpGoHomeFromErrorPage } from './acorex-platform-framework-client-themes-default-error-page-go-home-B9VmB9Vt.mjs';
|
|
8
12
|
|
|
9
13
|
class AXPErrorOfflineComponent {
|
|
10
|
-
constructor() {
|
|
14
|
+
constructor() {
|
|
15
|
+
this.sessionService = inject(AXPSessionService);
|
|
16
|
+
this.homePageService = inject(AXPHomePageService);
|
|
17
|
+
this.tabNavigation = inject(AXPTabNavigationService);
|
|
18
|
+
this.router = inject(Router);
|
|
19
|
+
}
|
|
11
20
|
ngOnInit() { }
|
|
12
|
-
goHome() {
|
|
21
|
+
async goHome() {
|
|
22
|
+
await axpGoHomeFromErrorPage(this.sessionService, this.router, this.tabNavigation, this.homePageService);
|
|
23
|
+
}
|
|
13
24
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXPErrorOfflineComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
14
25
|
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "22.0.8", type: AXPErrorOfflineComponent, isStandalone: true, selector: "axp-error-offline", ngImport: i0, template: "<div class=\"h-full flex flex-col gap-8 items-center justify-center\">\n <img class=\"w-3/4 md:w-1/2 lg:w-1/3 xl:w-1/4\" src=\"/assets/images/pages/error/offline.png\"\n [attr.alt]=\"('@general:errors.offline.image-alt' | translate | async) ?? ''\">\n <div class=\"flex flex-col items-center gap-2 md:gap-4\">\n <h1 class=\"font-bold text-2xl md:text-4xl\">{{ '@general:errors.offline.title' | translate | async }}</h1>\n <p class=\"md:text-lg text-neutral-400\">{{ '@general:errors.offline.description' | translate | async }}</p>\n\n </div>\n <div class=\"flex flex-col gap-2 md:gap-4 md:flex-row\">\n <ax-button (onClick)=\"goHome()\" class=\"px-4\" color=\"primary\" [text]=\"('@general:errors.offline.actions.go-home.title' | translate | async) ?? ''\"></ax-button>\n <ax-button class=\"px-4\" [color]=\"'default'\" [text]=\"('@general:errors.offline.actions.contact-us.title' | translate | async) ?? ''\"></ax-button>\n </div>\n</div>\n", styles: ["/*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */\n"], dependencies: [{ kind: "ngmodule", type: AXButtonModule }, { kind: "component", type: i3.AXButtonComponent, selector: "ax-button", inputs: ["disabled", "tabIndex", "color", "look", "text", "toggleable", "selected", "iconOnly", "type", "loadingText"], outputs: ["onBlur", "onFocus", "onClick", "selectedChange", "toggleableChange", "lookChange", "colorChange", "disabledChange", "loadingTextChange"] }, { kind: "ngmodule", type: AXTranslationModule }, { kind: "pipe", type: i2.AXTranslatorPipe, name: "translate" }, { kind: "pipe", type: AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.Eager }); }
|
|
15
26
|
}
|
|
@@ -19,4 +30,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImpor
|
|
|
19
30
|
}], ctorParameters: () => [] });
|
|
20
31
|
|
|
21
32
|
export { AXPErrorOfflineComponent };
|
|
22
|
-
//# sourceMappingURL=acorex-platform-framework-client-themes-default-error-offline.component-
|
|
33
|
+
//# sourceMappingURL=acorex-platform-framework-client-themes-default-error-offline.component-Abf14p44.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"acorex-platform-framework-client-themes-default-error-offline.component-Abf14p44.mjs","sources":["../../../../../libs/framework/client/themes/default/src/lib/pages/errors/error-offline/error-offline.component.ts","../../../../../libs/framework/client/themes/default/src/lib/pages/errors/error-offline/error-offline.component.html"],"sourcesContent":["import { AXButtonModule } from '@acorex/components/button';\nimport { AXTranslationModule } from '@acorex/core/translation';\nimport { AXPSessionService } from '@acorex-platform/framework-client/auth';\nimport { AXPHomePageService, AXPTabNavigationService } from '@acorex-platform/framework-client/common';\nimport { AsyncPipe } from '@angular/common';\nimport { Component, OnInit, ChangeDetectionStrategy, inject } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { axpGoHomeFromErrorPage } from '../error-page-go-home';\n\n@Component({\n selector: 'axp-error-offline',\n templateUrl: './error-offline.component.html',\n styleUrls: ['./error-offline.component.css'],\n changeDetection: ChangeDetectionStrategy.Eager,\n imports: [AXButtonModule, AXTranslationModule, AsyncPipe]\n})\nexport class AXPErrorOfflineComponent implements OnInit {\n private readonly sessionService = inject(AXPSessionService);\n private readonly homePageService = inject(AXPHomePageService);\n private readonly tabNavigation = inject(AXPTabNavigationService);\n private readonly router = inject(Router);\n\n constructor() {}\n ngOnInit(): void {}\n\n async goHome(): Promise<void> {\n await axpGoHomeFromErrorPage(\n this.sessionService,\n this.router,\n this.tabNavigation,\n this.homePageService,\n );\n }\n}\n","<div class=\"h-full flex flex-col gap-8 items-center justify-center\">\n <img class=\"w-3/4 md:w-1/2 lg:w-1/3 xl:w-1/4\" src=\"/assets/images/pages/error/offline.png\"\n [attr.alt]=\"('@general:errors.offline.image-alt' | translate | async) ?? ''\">\n <div class=\"flex flex-col items-center gap-2 md:gap-4\">\n <h1 class=\"font-bold text-2xl md:text-4xl\">{{ '@general:errors.offline.title' | translate | async }}</h1>\n <p class=\"md:text-lg text-neutral-400\">{{ '@general:errors.offline.description' | translate | async }}</p>\n\n </div>\n <div class=\"flex flex-col gap-2 md:gap-4 md:flex-row\">\n <ax-button (onClick)=\"goHome()\" class=\"px-4\" color=\"primary\" [text]=\"('@general:errors.offline.actions.go-home.title' | translate | async) ?? ''\"></ax-button>\n <ax-button class=\"px-4\" [color]=\"'default'\" [text]=\"('@general:errors.offline.actions.contact-us.title' | translate | async) ?? ''\"></ax-button>\n </div>\n</div>\n"],"names":["i1"],"mappings":";;;;;;;;;;;;MAgBa,wBAAwB,CAAA;AAMnC,IAAA,WAAA,GAAA;AALiB,QAAA,IAAA,CAAA,cAAc,GAAG,MAAM,CAAC,iBAAiB,CAAC;AAC1C,QAAA,IAAA,CAAA,eAAe,GAAG,MAAM,CAAC,kBAAkB,CAAC;AAC5C,QAAA,IAAA,CAAA,aAAa,GAAG,MAAM,CAAC,uBAAuB,CAAC;AAC/C,QAAA,IAAA,CAAA,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;IAEzB;AACf,IAAA,QAAQ,KAAU;AAElB,IAAA,MAAM,MAAM,GAAA;AACV,QAAA,MAAM,sBAAsB,CAC1B,IAAI,CAAC,cAAc,EACnB,IAAI,CAAC,MAAM,EACX,IAAI,CAAC,aAAa,EAClB,IAAI,CAAC,eAAe,CACrB;IACH;8GAhBW,wBAAwB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAxB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,wBAAwB,6EChBrC,i+BAaA,EAAA,MAAA,EAAA,CAAA,qEAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EDCc,cAAc,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,iBAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,UAAA,EAAA,OAAA,EAAA,MAAA,EAAA,MAAA,EAAA,YAAA,EAAA,UAAA,EAAA,UAAA,EAAA,MAAA,EAAA,aAAA,CAAA,EAAA,OAAA,EAAA,CAAA,QAAA,EAAA,SAAA,EAAA,SAAA,EAAA,gBAAA,EAAA,kBAAA,EAAA,YAAA,EAAA,aAAA,EAAA,gBAAA,EAAA,mBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAE,mBAAmB,0FAAE,SAAS,EAAA,IAAA,EAAA,OAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,KAAA,EAAA,CAAA,CAAA;;2FAE/C,wBAAwB,EAAA,UAAA,EAAA,CAAA;kBAPpC,SAAS;+BACI,mBAAmB,EAAA,eAAA,EAGZ,uBAAuB,CAAC,KAAK,EAAA,OAAA,EACrC,CAAC,cAAc,EAAE,mBAAmB,EAAE,SAAS,CAAC,EAAA,QAAA,EAAA,i+BAAA,EAAA,MAAA,EAAA,CAAA,qEAAA,CAAA,EAAA;;;"}
|
package/fesm2022/acorex-platform-framework-client-themes-default-error-page-go-home-B9VmB9Vt.mjs
ADDED
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Leaves a 401/404/offline page for Home and removes that error tab.
|
|
3
|
+
* The tab must not stay in the strip after Go home.
|
|
4
|
+
*/
|
|
5
|
+
async function axpGoHomeFromErrorPage(sessionService, router, tabNavigation, homePageService) {
|
|
6
|
+
if (sessionService.tenant?.id == null) {
|
|
7
|
+
await router.navigate(['/auth/account/tenant-chooser']);
|
|
8
|
+
return;
|
|
9
|
+
}
|
|
10
|
+
if (sessionService.application?.id == null) {
|
|
11
|
+
await router.navigate(['/auth/account/app-chooser']);
|
|
12
|
+
return;
|
|
13
|
+
}
|
|
14
|
+
tabNavigation.closeActiveErrorTab();
|
|
15
|
+
await homePageService.navigateTo();
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
export { axpGoHomeFromErrorPage as a };
|
|
19
|
+
//# sourceMappingURL=acorex-platform-framework-client-themes-default-error-page-go-home-B9VmB9Vt.mjs.map
|
package/fesm2022/acorex-platform-framework-client-themes-default-error-page-go-home-B9VmB9Vt.mjs.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"acorex-platform-framework-client-themes-default-error-page-go-home-B9VmB9Vt.mjs","sources":["../../../../../libs/framework/client/themes/default/src/lib/pages/errors/error-page-go-home.ts"],"sourcesContent":["import { AXPSessionService } from '@acorex-platform/framework-client/auth';\nimport { AXPHomePageService, AXPTabNavigationService } from '@acorex-platform/framework-client/common';\nimport type { Router } from '@angular/router';\n\n/**\n * Leaves a 401/404/offline page for Home and removes that error tab.\n * The tab must not stay in the strip after Go home.\n */\nexport async function axpGoHomeFromErrorPage(\n sessionService: AXPSessionService,\n router: Router,\n tabNavigation: AXPTabNavigationService,\n homePageService: AXPHomePageService,\n): Promise<void> {\n if (sessionService.tenant?.id == null) {\n await router.navigate(['/auth/account/tenant-chooser']);\n return;\n }\n\n if (sessionService.application?.id == null) {\n await router.navigate(['/auth/account/app-chooser']);\n return;\n }\n\n tabNavigation.closeActiveErrorTab();\n await homePageService.navigateTo();\n}\n"],"names":[],"mappings":"AAIA;;;AAGG;AACI,eAAe,sBAAsB,CAC1C,cAAiC,EACjC,MAAc,EACd,aAAsC,EACtC,eAAmC,EAAA;IAEnC,IAAI,cAAc,CAAC,MAAM,EAAE,EAAE,IAAI,IAAI,EAAE;QACrC,MAAM,MAAM,CAAC,QAAQ,CAAC,CAAC,8BAA8B,CAAC,CAAC;QACvD;IACF;IAEA,IAAI,cAAc,CAAC,WAAW,EAAE,EAAE,IAAI,IAAI,EAAE;QAC1C,MAAM,MAAM,CAAC,QAAQ,CAAC,CAAC,2BAA2B,CAAC,CAAC;QACpD;IACF;IAEA,aAAa,CAAC,mBAAmB,EAAE;AACnC,IAAA,MAAM,eAAe,CAAC,UAAU,EAAE;AACpC;;"}
|
|
@@ -48,7 +48,7 @@ import { RouterModule, Router, ActivatedRoute, NavigationStart, NavigationEnd, R
|
|
|
48
48
|
import { Subject, takeUntil, filter, combineLatest, firstValueFrom, take } from 'rxjs';
|
|
49
49
|
import { runtimeCommandPayloadData, isThemeSurfaceClass, isRuntimeHexSurfaceClass, AXP_THEME_SURFACE_STYLES, createRandomUuid, AXPKeyboardShortcutPriority } from '@acorex-platform/framework-shared/core';
|
|
50
50
|
import * as i1$2 from '@acorex/core/platform';
|
|
51
|
-
import { AXPSettingsService, AXPCommonSettings, axpIsEntityListRoute, axpReplaceEntityListRouteQueryParams, axpIsEntityListPath, AXPTabNavigationService, AXPTabPreviewService, AXP_HOME_TAB_KEY, axpResolveTabTitleParts, AXPMenuService, AXPMenuVisibilityService, axpMenuPathsMatch, AXPPlatformBrandingService, AXPTabRouteCacheRegistry, axpResolveTabKeyFromSnapshot, axpSnapshotDeclaresTabScope, axpPathFromSnapshot, axpEntityListNavigationTabKey, axpIsTabEligibleUrl, axpResolveTabKeyFromRouteConfig, AXP_PROTECTED_ROUTE_GUARDS, AXPCommonModule } from '@acorex-platform/framework-client/common';
|
|
51
|
+
import { AXPSettingsService, AXPCommonSettings, axpIsEntityListRoute, axpReplaceEntityListRouteQueryParams, axpIsEntityListPath, AXPTabNavigationService, AXPTabPreviewService, AXP_HOME_TAB_KEY, axpResolveTabTitleParts, AXPMenuService, AXPMenuVisibilityService, axpMenuPathsMatch, AXPPlatformBrandingService, AXPTabRouteCacheRegistry, axpResolveTabKeyFromSnapshot, axpSnapshotDeclaresTabScope, axpPathFromSnapshot, axpEntityListNavigationTabKey, axpIsTabEligibleUrl, axpInTabErrorSourceUrl, axpResolveTabKey, axpResolveTabKeyFromRouteConfig, AXP_PROTECTED_ROUTE_GUARDS, AXPCommonModule } from '@acorex-platform/framework-client/common';
|
|
52
52
|
import { DragDropModule, CdkDropList, CdkDrag, CdkDragHandle, CdkDragPreview } from '@angular/cdk/drag-drop';
|
|
53
53
|
import { AXDropdownButtonModule } from '@acorex/components/dropdown-button';
|
|
54
54
|
import { AXPPageLayoutBaseComponent, AXPPageLayoutComponent, AXPPageLayoutBase } from '@acorex-platform/framework-client/layout/views';
|
|
@@ -4567,7 +4567,7 @@ class AXPEntityReuseStrategy {
|
|
|
4567
4567
|
//#endregion
|
|
4568
4568
|
//#region ---- Detach / Attach ----
|
|
4569
4569
|
shouldDetach(route) {
|
|
4570
|
-
if (!this.routeCache.isEnabled() || !this.isTabCacheRoute(route)) {
|
|
4570
|
+
if (!this.routeCache.isEnabled() || !this.routeCache.canCache() || !this.isTabCacheRoute(route)) {
|
|
4571
4571
|
return false;
|
|
4572
4572
|
}
|
|
4573
4573
|
const scopedKey = this.scopedTabKeyFor(route);
|
|
@@ -4595,7 +4595,10 @@ class AXPEntityReuseStrategy {
|
|
|
4595
4595
|
}
|
|
4596
4596
|
}
|
|
4597
4597
|
shouldAttach(route) {
|
|
4598
|
-
if (!this.routeCache.isEnabled() ||
|
|
4598
|
+
if (!this.routeCache.isEnabled() ||
|
|
4599
|
+
!this.routeCache.canCache() ||
|
|
4600
|
+
this.routeCache.isAttachSuspended() ||
|
|
4601
|
+
!this.isTabCacheRoute(route)) {
|
|
4599
4602
|
return false;
|
|
4600
4603
|
}
|
|
4601
4604
|
const key = this.routeCacheKeyFor(route);
|
|
@@ -4779,6 +4782,10 @@ class AXPEntityReuseStrategy {
|
|
|
4779
4782
|
return true;
|
|
4780
4783
|
}
|
|
4781
4784
|
const targetUrl = router.serializeUrl(navigation.finalUrl);
|
|
4785
|
+
const errorSource = axpInTabErrorSourceUrl(targetUrl);
|
|
4786
|
+
if (errorSource) {
|
|
4787
|
+
return currentScoped !== axpResolveTabKey(router, errorSource);
|
|
4788
|
+
}
|
|
4782
4789
|
const targetPath = targetUrl.split('?')[0].split('#')[0];
|
|
4783
4790
|
const futureBase = axpResolveTabKeyFromRouteConfig(router.config, targetPath) ??
|
|
4784
4791
|
(targetPath.startsWith('/') ? targetPath : `/${targetPath}`);
|
|
@@ -4850,18 +4857,20 @@ function routesFacory() {
|
|
|
4850
4857
|
},
|
|
4851
4858
|
{
|
|
4852
4859
|
path: 'error',
|
|
4860
|
+
data: { rootLayout: true },
|
|
4861
|
+
loadComponent: () => Promise.resolve().then(function () { return rootLayout_component; }).then((c) => c.AXPRootLayoutComponent),
|
|
4853
4862
|
children: [
|
|
4854
4863
|
{
|
|
4855
4864
|
path: 'offline',
|
|
4856
|
-
loadComponent: () => import('./acorex-platform-framework-client-themes-default-error-offline.component-
|
|
4865
|
+
loadComponent: () => import('./acorex-platform-framework-client-themes-default-error-offline.component-Abf14p44.mjs').then((c) => c.AXPErrorOfflineComponent),
|
|
4857
4866
|
},
|
|
4858
4867
|
{
|
|
4859
4868
|
path: '404',
|
|
4860
|
-
loadComponent: () => import('./acorex-platform-framework-client-themes-default-error-404.component-
|
|
4869
|
+
loadComponent: () => import('./acorex-platform-framework-client-themes-default-error-404.component-BusKNAit.mjs').then((c) => c.AXPError404Component),
|
|
4861
4870
|
},
|
|
4862
4871
|
{
|
|
4863
4872
|
path: '401',
|
|
4864
|
-
loadComponent: () => import('./acorex-platform-framework-client-themes-default-error-401.component-
|
|
4873
|
+
loadComponent: () => import('./acorex-platform-framework-client-themes-default-error-401.component-DszlyIaw.mjs').then((c) => c.AXPError401Component),
|
|
4865
4874
|
},
|
|
4866
4875
|
],
|
|
4867
4876
|
},
|