@acorex-platform/module-common-client 0.0.33 → 0.0.37
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-module-common-client-acorex-platform-module-common-client-DsCvUxSh.mjs → acorex-platform-module-common-client-acorex-platform-module-common-client-BmGXSWg4.mjs} +40 -23
- package/fesm2022/acorex-platform-module-common-client-acorex-platform-module-common-client-BmGXSWg4.mjs.map +1 -0
- package/fesm2022/{acorex-platform-module-common-client-archive-entity.command-QmrPzKy_.mjs → acorex-platform-module-common-client-archive-entity.command-D0TFxo2b.mjs} +2 -2
- package/fesm2022/{acorex-platform-module-common-client-archive-entity.command-QmrPzKy_.mjs.map → acorex-platform-module-common-client-archive-entity.command-D0TFxo2b.mjs.map} +1 -1
- package/fesm2022/{acorex-platform-module-common-client-archive-entity.command.util-fd533YPY.mjs → acorex-platform-module-common-client-archive-entity.command.util-DrW2EjNj.mjs} +2 -2
- package/fesm2022/{acorex-platform-module-common-client-archive-entity.command.util-fd533YPY.mjs.map → acorex-platform-module-common-client-archive-entity.command.util-DrW2EjNj.mjs.map} +1 -1
- package/fesm2022/{acorex-platform-module-common-client-audit-info-column.component-CsqKKwwF.mjs → acorex-platform-module-common-client-audit-info-column.component-tMlIVjiu.mjs} +2 -2
- package/fesm2022/{acorex-platform-module-common-client-audit-info-column.component-CsqKKwwF.mjs.map → acorex-platform-module-common-client-audit-info-column.component-tMlIVjiu.mjs.map} +1 -1
- package/fesm2022/acorex-platform-module-common-client-audit-info-edit.component-COMMBgsX.mjs.map +1 -1
- package/fesm2022/acorex-platform-module-common-client-audit-info-view.component-UOTT-ir_.mjs.map +1 -1
- package/fesm2022/{acorex-platform-module-common-client-bulk-archive-entity.command-BfINUGph.mjs → acorex-platform-module-common-client-bulk-archive-entity.command-LNJekir_.mjs} +2 -2
- package/fesm2022/{acorex-platform-module-common-client-bulk-archive-entity.command-BfINUGph.mjs.map → acorex-platform-module-common-client-bulk-archive-entity.command-LNJekir_.mjs.map} +1 -1
- package/fesm2022/acorex-platform-module-common-client-bulk-disable-entity.command-DgoZVXQA.mjs.map +1 -1
- package/fesm2022/acorex-platform-module-common-client-bulk-enable-entity.command-C6fba__g.mjs.map +1 -1
- package/fesm2022/{acorex-platform-module-common-client-bulk-restore-archive-entity.command-CGy1Kdon.mjs → acorex-platform-module-common-client-bulk-restore-archive-entity.command-DV81VX8K.mjs} +2 -2
- package/fesm2022/{acorex-platform-module-common-client-bulk-restore-archive-entity.command-CGy1Kdon.mjs.map → acorex-platform-module-common-client-bulk-restore-archive-entity.command-DV81VX8K.mjs.map} +1 -1
- package/fesm2022/{acorex-platform-module-common-client-clone-entity.command-DgVI86z3.mjs → acorex-platform-module-common-client-clone-entity.command-CcjD0iDW.mjs} +2 -2
- package/fesm2022/{acorex-platform-module-common-client-clone-entity.command-DgVI86z3.mjs.map → acorex-platform-module-common-client-clone-entity.command-CcjD0iDW.mjs.map} +1 -1
- package/fesm2022/acorex-platform-module-common-client-contracts-entities-record-lock.mjs.map +1 -1
- package/fesm2022/acorex-platform-module-common-client-contracts-entities-version-entry.mjs.map +1 -1
- package/fesm2022/acorex-platform-module-common-client-contracts-entities-version-stream.mjs.map +1 -1
- package/fesm2022/acorex-platform-module-common-client-contracts-entity-catalog-acorex-platform-module-common-client-contracts-entity-catalog-C2WFbRne.mjs.map +1 -1
- package/fesm2022/acorex-platform-module-common-client-contracts-entity-catalog-record-lock.entity-CY6jfaD7.mjs.map +1 -1
- package/fesm2022/acorex-platform-module-common-client-contracts-entity-catalog-version-entry.entity-DCBxAIMJ.mjs.map +1 -1
- package/fesm2022/acorex-platform-module-common-client-contracts-entity-catalog-version-stream.entity-DbSB34vz.mjs.map +1 -1
- package/fesm2022/acorex-platform-module-common-client-contracts.mjs.map +1 -1
- package/fesm2022/acorex-platform-module-common-client-disable-entity.command-Bc1uH38V.mjs.map +1 -1
- package/fesm2022/acorex-platform-module-common-client-disable-entity.command.util-DQl6u2nj.mjs.map +1 -1
- package/fesm2022/acorex-platform-module-common-client-enable-entity.command-DeTumWIj.mjs.map +1 -1
- package/fesm2022/acorex-platform-module-common-client-get-current-time.command-Ck_SC5Bu.mjs.map +1 -1
- package/fesm2022/acorex-platform-module-common-client-local-entities.mjs.map +1 -1
- package/fesm2022/{acorex-platform-module-common-client-restore-archive-entity.command-Dx8CIcWc.mjs → acorex-platform-module-common-client-restore-archive-entity.command-CWJPmL4o.mjs} +2 -2
- package/fesm2022/{acorex-platform-module-common-client-restore-archive-entity.command-Dx8CIcWc.mjs.map → acorex-platform-module-common-client-restore-archive-entity.command-CWJPmL4o.mjs.map} +1 -1
- package/fesm2022/{acorex-platform-module-common-client-search-popup.component-D9gce0xf.mjs → acorex-platform-module-common-client-search-popup.component-CNJmksXt.mjs} +3 -3
- package/fesm2022/{acorex-platform-module-common-client-search-popup.component-D9gce0xf.mjs.map → acorex-platform-module-common-client-search-popup.component-CNJmksXt.mjs.map} +1 -1
- package/fesm2022/{acorex-platform-module-common-client-timeline-version-history-popup.component-Dg-TrXGF.mjs → acorex-platform-module-common-client-timeline-version-history-popup.component-DDpyY7mO.mjs} +3 -3
- package/fesm2022/{acorex-platform-module-common-client-timeline-version-history-popup.component-Dg-TrXGF.mjs.map → acorex-platform-module-common-client-timeline-version-history-popup.component-DDpyY7mO.mjs.map} +1 -1
- package/fesm2022/acorex-platform-module-common-client.mjs +1 -1
- package/package.json +1 -1
- package/fesm2022/acorex-platform-module-common-client-acorex-platform-module-common-client-DsCvUxSh.mjs.map +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"acorex-platform-module-common-client-acorex-platform-module-common-client-BmGXSWg4.mjs","sources":["../../../../libs/modules/common/client/src/lib/manifest.ts","../../../../libs/modules/common/client/src/lib/features/archive-plugin/archive.plugin.ts","../../../../libs/modules/common/client/src/lib/features/archive-plugin/archive-plugin.module.ts","../../../../libs/modules/common/client/src/lib/features/archive-plugin/archive-entity.override.ts","../../../../libs/modules/common/client/src/lib/features/history-plugin/history.plugin.ts","../../../../libs/modules/common/client/src/lib/features/history-plugin/commands/show-version-history-popup.command.ts","../../../../libs/modules/common/client/src/lib/features/history-plugin/components/version-history-page/version-history-page-component.provider.ts","../../../../libs/modules/common/client/src/lib/features/history-plugin/audit-info-widget.config.ts","../../../../libs/modules/common/client/src/lib/features/history-plugin/components/widget-definition.provider.ts","../../../../libs/modules/common/client/src/lib/features/history-plugin/services/client-versioning.service.ts","../../../../libs/modules/common/client/src/lib/features/history-plugin/history.module.ts","../../../../libs/modules/common/client/src/lib/features/compare/commands/compare.command.functions.ts","../../../../libs/modules/common/client/src/lib/features/history-plugin/utils/open-activity-log-compare.util.ts","../../../../libs/modules/common/client/src/lib/features/history-plugin/utils/version-history.utils.ts","../../../../libs/modules/common/client/src/lib/features/history-plugin/components/version-history-page/version-history-page.component.ts","../../../../libs/modules/common/client/src/lib/features/history-plugin/utils/entity-history-bar-chart.util.ts","../../../../libs/modules/common/client/src/lib/features/history-plugin/utils/entity-history-line-chart.util.ts","../../../../libs/modules/common/client/src/lib/features/avatar-plugin/avatar.plugin.ts","../../../../libs/modules/common/client/src/lib/features/avatar-plugin/avatar-plugin.module.ts","../../../../libs/modules/common/client/src/lib/features/category-plugin/category.plugin.ts","../../../../libs/modules/common/client/src/lib/features/category-plugin/entity.provider.ts","../../../../libs/modules/common/client/src/lib/features/category-plugin/category.module.ts","../../../../libs/modules/common/client/src/lib/features/catalog-scope-plugin/catalog-scope.plugin.ts","../../../../libs/modules/common/client/src/lib/features/catalog-scope-plugin/catalog-scope-enrichment.service.ts","../../../../libs/modules/common/client/src/lib/features/catalog-scope-plugin/catalog-scope-keys.util.ts","../../../../libs/modules/common/client/src/lib/features/catalog-scope-plugin/catalog-scope-resolver.middleware.ts","../../../../libs/modules/common/client/src/lib/features/catalog-scope-plugin/catalog-scope-validation.middleware.ts","../../../../libs/modules/common/client/src/lib/features/catalog-scope-plugin/catalog-scope.module.ts","../../../../libs/modules/common/client/src/lib/features/clone-plugin/clone.plugin.ts","../../../../libs/modules/common/client/src/lib/features/clone-plugin/clone-plugin.module.ts","../../../../libs/modules/common/client/src/lib/features/color-plugin/color.plugin.ts","../../../../libs/modules/common/client/src/lib/features/color-plugin/color-plugin.module.ts","../../../../libs/modules/common/client/src/lib/features/compare/compare-popup.component.ts","../../../../libs/modules/common/client/src/lib/features/compare/compare-popup.component.html","../../../../libs/modules/common/client/src/lib/features/compare/commands/compare.command.util.ts","../../../../libs/modules/common/client/src/lib/features/compare/commands/compare-entity-records.command.ts","../../../../libs/modules/common/client/src/lib/features/compare/commands/compare-entity-record-versions.command.ts","../../../../libs/modules/common/client/src/lib/features/compare/compare.plugin.ts","../../../../libs/modules/common/client/src/lib/features/compare/compare.module.ts","../../../../libs/modules/common/client/src/lib/features/computed-properties/computed-properties.middleware.ts","../../../../libs/modules/common/client/src/lib/features/computed-properties/computed-properties.plugin.ts","../../../../libs/modules/common/client/src/lib/features/computed-properties/computed-properties.module.ts","../../../../libs/modules/common/client/src/lib/features/description-plugin/description.plugin.ts","../../../../libs/modules/common/client/src/lib/features/description-plugin/description-plugin.module.ts","../../../../libs/modules/common/client/src/lib/features/disable-plugin/disable.plugin.ts","../../../../libs/modules/common/client/src/lib/features/disable-plugin/disable-plugin.module.ts","../../../../libs/modules/common/client/src/lib/features/default-plugin/default.plugin.ts","../../../../libs/modules/common/client/src/lib/features/default-plugin/default-plugin.module.ts","../../../../libs/modules/common/client/src/lib/features/derived-name-plugin/derived-name.plugin.ts","../../../../libs/modules/common/client/src/lib/features/derived-name-plugin/derived-name-plugin.module.ts","../../../../libs/modules/common/client/src/lib/features/icon-plugin/icon.plugin.ts","../../../../libs/modules/common/client/src/lib/features/icon-plugin/icon-plugin.module.ts","../../../../libs/modules/common/client/src/lib/features/lock-system/commands/lock-entity.command.helper.ts","../../../../libs/modules/common/client/src/lib/features/lock-system/commands/lock-entity.command.util.ts","../../../../libs/modules/common/client/src/lib/features/lock-system/commands/lock-entity.command.ts","../../../../libs/modules/common/client/src/lib/features/lock-system/commands/unlock-entity.command.ts","../../../../libs/modules/common/client/src/lib/features/lock-system/lock-evaluator-scope.provider.ts","../../../../libs/modules/common/client/src/lib/features/lock-system/lock-system.module.ts","../../../../libs/modules/common/client/src/lib/features/name-plugin/name.plugin.ts","../../../../libs/modules/common/client/src/lib/features/name-plugin/name-plugin.module.ts","../../../../libs/modules/common/client/src/lib/features/notes-plugin/notes.plugin.ts","../../../../libs/modules/common/client/src/lib/features/notes-plugin/notes-plugin.module.ts","../../../../libs/modules/common/client/src/lib/features/primary-plugin/primary.plugin.ts","../../../../libs/modules/common/client/src/lib/features/primary-plugin/primary-plugin.module.ts","../../../../libs/modules/common/client/src/lib/features/status/plugin/status.plugin.ts","../../../../libs/modules/common/client/src/lib/features/status/plugin/status-plugin.module.ts","../../../../libs/modules/common/client/src/lib/features/status/plugin/status.types.ts","../../../../libs/modules/common/client/src/lib/features/status/providers/task-status.provider.ts","../../../../libs/modules/common/client/src/lib/features/status/providers/approval-status.provider.ts","../../../../libs/modules/common/client/src/lib/features/status/providers/state-status.provider.ts","../../../../libs/modules/common/client/src/lib/features/title-plugin/title.plugin.ts","../../../../libs/modules/common/client/src/lib/features/title-plugin/title-plugin.module.ts","../../../../libs/modules/common/client/src/lib/features/unique-fields-plugin/unique-fields.plugin.ts","../../../../libs/modules/common/client/src/lib/features/unique-fields-plugin/unique-fields-plugin.module.ts","../../../../libs/modules/common/client/src/lib/validations/rules/at-least-one-of-validation-rule.class.ts","../../../../libs/modules/common/client/src/lib/validations/rules/unique-validation-rule.class.ts","../../../../libs/modules/common/client/src/lib/validations/utils/variable-name.util.ts","../../../../libs/modules/common/client/src/lib/validations/rules/variable-name-validation-rule.class.ts","../../../../libs/modules/common/client/src/lib/validations/validation-rules.module.ts","../../../../libs/modules/common/client/src/lib/evaluators/datetime.evaluator-scope.provider.ts","../../../../libs/modules/common/client/src/lib/evaluators/address.evaluator-scope.provider.ts","../../../../libs/modules/common/client/src/lib/evaluators/translate.evaluator-scope.provider.ts","../../../../libs/modules/common/client/src/lib/evaluators/utils.evaluator-scope.provider.ts","../../../../libs/modules/common/client/src/lib/middlewares/command-message-toast.middleware.ts","../../../../libs/modules/common/client/src/lib/middlewares/command-refresh.middleware.ts","../../../../libs/modules/common/client/src/lib/middlewares/command-middleware.module.ts","../../../../libs/modules/common/client/src/lib/menu.provider.ts","../../../../libs/modules/common/client/src/lib/settings.provider.ts","../../../../libs/modules/common/client/src/lib/evaluators/filter/filter-operator-evaluator-scope.provider.ts","../../../../libs/modules/common/client/src/lib/feature-definition.provider.ts","../../../../libs/modules/common/client/src/lib/multi-source-definitions/assignment-multi-source-definition.provider.ts","../../../../libs/modules/common/client/src/lib/catalog-scope-definition.provider.ts","../../../../libs/modules/common/client/src/lib/common.module.ts","../../../../libs/modules/common/client/src/lib/features/global-search/search.config.ts","../../../../libs/modules/common/client/src/lib/features/global-search/commands/open-global-search.command.ts","../../../../libs/modules/common/client/src/lib/features/global-search/search-slot.component.ts","../../../../libs/modules/common/client/src/lib/features/global-search/search.module.ts","../../../../libs/modules/common/client/src/lib/features/global-search/search.viewmodel.ts","../../../../libs/modules/common/client/src/lib/pages/resource-appointment-page/resource-appointment-page.config.ts","../../../../libs/modules/common/client/src/lib/pages/resource-appointment-page/resource-appointment-page.component.ts","../../../../libs/modules/common/client/src/lib/pages/resource-appointment-page/resource-appointment-page.component.html","../../../../libs/modules/common/client/src/acorex-platform-module-common-client.ts"],"sourcesContent":["//#region ---- Imports ----\n\nimport { AXPModuleManifest } from '@acorex-platform/framework-client/core';\nimport { RootConfig } from '@acorex-platform/module-common-client/contracts';\n\n//#endregion\n\n//#region ---- Manifest Definition ----\n\n/**\n * Common Module Manifest.\n * Defines module metadata, features, and provider references.\n */\nexport const CommonManifest: AXPModuleManifest = {\n name: RootConfig.module.name,\n version: '1.0.0',\n title: RootConfig.module.title,\n icon: RootConfig.module.icon,\n i18n: RootConfig.config.i18n,\n type: 'platform',\n domain: 'platform',\n required: true,\n\n // Module dependencies (optional)\n};\n\n//#endregion\n\n","\nimport { AXPEntityAction, AXPEntityCommandScope, createQueryView } from '@acorex-platform/framework-shared/entity';\nimport {\n AXPEntityActionPlugin,\n actionExists,\n ensureListActions,\n} from '@acorex-platform/framework-client/layout/entity';\nimport { AXPWidgetsList } from '@acorex-platform/framework-shared/core';\nimport { AXPCommonCommandKeys } from '@acorex-platform/module-common-client/contracts';\n\n//#region ---- Types ----\n\n/** Options for the archive plugin. */\nexport interface AXPArchivePluginOptions {\n /** Name of the boolean field used for archived state. Defaults to `'isArchived'`. */\n fieldName?: string;\n}\n\nconst DEFAULT_ARCHIVE_FIELD_NAME = 'isArchived';\n\n//#endregion\n\nexport const archivePlugin: AXPEntityActionPlugin = {\n name: 'archive',\n order: 65,\n apply: (ctx, options?: AXPArchivePluginOptions) => {\n ensureListActions(ctx);\n\n const fieldName = options?.fieldName ?? DEFAULT_ARCHIVE_FIELD_NAME;\n\n //#region ---- Add Archive Field Property ----\n\n // Ensure settings group exists\n const groupId = 'settings';\n const groups = ctx.groups.list() ?? [];\n if (!groups.some((g: any) => g.id === groupId)) {\n ctx.groups.add({ id: groupId, title: '@general:terms.interface.settings' } as any);\n }\n\n // Add archive property if it doesn't exist\n const props = ctx.properties.list();\n if (!props.some((p: any) => p.name === fieldName)) {\n ctx.properties.add({\n name: fieldName,\n title: '@general:terms.status.states.is-archived',\n groupId,\n schema: {\n dataType: 'boolean',\n interface: {\n type: AXPWidgetsList.Editors.ToggleSwitch,\n options: {\n // Default to false (not archived)\n defaultValue: false,\n trulyText: '@general:terms.status.options.archived',\n falsyText: '@general:terms.status.options.active',\n negative: true,\n nullValue: false,\n },\n },\n },\n validations: [],\n options: {\n sort: { enabled: true },\n filter: {\n advance: { enabled: true },\n inline: { enabled: true }\n }\n }\n } as any);\n }\n\n // Add archive field to columns for list view\n const columns = ctx.columns.list() ?? [];\n if (!columns.some((c: any) => c.name === fieldName)) {\n ctx.columns.add({\n name: fieldName,\n title: '@general:terms.status.states.is-active',\n width: 100,\n sortable: true,\n filterable: true,\n } as any);\n }\n\n //#endregion\n\n //#region ---- Add Archive Actions ----\n\n ctx.interfaces.update((i) => {\n const archiveCmdName = AXPCommonCommandKeys.Archive.Archive;\n const restoreArchiveCmdName = AXPCommonCommandKeys.Archive.Restore;\n const bulkArchiveCmdName = AXPCommonCommandKeys.Archive.BulkArchive;\n const bulkRestoreArchiveCmdName = AXPCommonCommandKeys.Archive.BulkRestore;\n\n // Add archive action to list view\n const listActions = (i as any).master.list.actions as AXPEntityAction[];\n if (!actionExists(listActions, archiveCmdName)) {\n listActions.push({\n title: '@general:actions.archive.title',\n command: {\n name: archiveCmdName,\n options: {\n refId: '{{ context.eval(\"id\") }}',\n refType: `${ctx.entity.module}.${ctx.entity.name}`,\n },\n },\n priority: 'secondary',\n type: 'archive',\n scope: AXPEntityCommandScope.Individual,\n hidden: `{{ context.eval(\"${fieldName}\") }}`,\n shortcuts: ['ctrl+shift+a'],\n });\n }\n\n // Add restore archive action to list view\n if (!actionExists(listActions, restoreArchiveCmdName)) {\n listActions.push({\n title: '@general:actions.restore-archive.title',\n command: {\n name: restoreArchiveCmdName,\n options: {\n refId: '{{ context.eval(\"id\") }}',\n refType: `${ctx.entity.module}.${ctx.entity.name}`,\n },\n },\n priority: 'secondary',\n type: 'update',\n scope: AXPEntityCommandScope.Individual,\n hidden: `{{ !context.eval(\"${fieldName}\") }}`,\n shortcuts: ['ctrl+shift+a'],\n });\n }\n\n // Add bulk archive action to list view\n if (!actionExists(listActions, bulkArchiveCmdName)) {\n listActions.push({\n title: '@general:actions.bulk-archive.title',\n command: {\n name: bulkArchiveCmdName,\n options: {\n refType: `${ctx.entity.module}.${ctx.entity.name}`,\n },\n },\n priority: 'secondary',\n type: 'archive',\n scope: AXPEntityCommandScope.Selected,\n });\n }\n\n // Add bulk restore archive action to list view\n if (!actionExists(listActions, bulkRestoreArchiveCmdName)) {\n listActions.push({\n title: '@general:actions.bulk-restore-archive.title',\n command: {\n name: bulkRestoreArchiveCmdName,\n options: {\n refType: `${ctx.entity.module}.${ctx.entity.name}`,\n },\n },\n priority: 'secondary',\n type: 'update',\n scope: AXPEntityCommandScope.Selected,\n });\n }\n\n // Add archive action to single view\n const singleActions = (i as any).master?.single?.actions as AXPEntityAction[] || [];\n if (!actionExists(singleActions, archiveCmdName)) {\n singleActions.push({\n title: '@general:actions.archive.title',\n command: {\n name: archiveCmdName,\n options: {\n refId: '{{ context.eval(\"id\") }}',\n refType: `${ctx.entity.module}.${ctx.entity.name}`,\n },\n },\n priority: 'secondary',\n type: 'archive',\n scope: AXPEntityCommandScope.Individual,\n hidden: `{{ context.eval(\"${fieldName}\") }}`,\n shortcuts: ['ctrl+shift+a'],\n });\n }\n\n // Add restore archive action to single view\n if (!actionExists(singleActions, restoreArchiveCmdName)) {\n singleActions.push({\n title: '@general:actions.restore-archive.title',\n command: {\n name: restoreArchiveCmdName,\n options: {\n refId: '{{ context.eval(\"id\") }}',\n refType: `${ctx.entity.module}.${ctx.entity.name}`,\n },\n },\n priority: 'secondary',\n type: 'update',\n scope: AXPEntityCommandScope.Individual,\n hidden: `{{ !context.eval(\"${fieldName}\") }}`,\n shortcuts: ['ctrl+shift+a'],\n });\n }\n\n return i as any;\n });\n\n //#endregion\n\n //#region ---- Update Interface Layouts ----\n\n // Add archive view to show only archived items\n ctx.interfaces.master.list.update((list) => {\n const next = list ?? { actions: [], views: [] };\n next.views = next.views ?? [];\n\n // Check if archive view already exists\n if (!next.views.some((v: any) => v.name === 'archived')) {\n next.views.push(\n createQueryView('archived', '@general:terms.status.states.is-archived', false, {\n conditions: [\n {\n name: fieldName,\n operator: { type: 'equal' },\n value: true,\n hidden: true\n },\n ],\n sorts: [\n { name: 'archivedAt', dir: 'desc' },\n { name: 'title', dir: 'asc' },\n ],\n })\n );\n }\n\n return next;\n });\n\n //#endregion\n },\n};\n","import { AXP_ENTITY_ACTION_PLUGIN } from '@acorex-platform/framework-client/layout/entity';\nimport { provideCommandSetups } from '@acorex-platform/framework-client/runtime';\nimport { AXPCommonCommandKeys } from '@acorex-platform/module-common-client/contracts';\nimport { NgModule } from '@angular/core';\nimport { archivePlugin } from './archive.plugin';\n\n@NgModule({\n providers: [\n { provide: AXP_ENTITY_ACTION_PLUGIN, multi: true, useValue: archivePlugin },\n provideCommandSetups([\n {\n key: AXPCommonCommandKeys.Archive.Archive,\n command: () =>\n import('./commands/archive-entity.command').then((m) => m.AXPArchiveEntityCommand),\n },\n {\n key: AXPCommonCommandKeys.Archive.Restore,\n command: () =>\n import('./commands/restore-archive-entity.command').then((m) => m.AXPRestoreArchiveEntityCommand),\n },\n {\n key: AXPCommonCommandKeys.Archive.BulkArchive,\n command: () =>\n import('./commands/bulk-archive-entity.command').then((m) => m.AXPBulkArchiveEntityCommand),\n },\n {\n key: AXPCommonCommandKeys.Archive.BulkRestore,\n command: () =>\n import('./commands/bulk-restore-archive-entity.command').then((m) => m.AXPBulkRestoreArchiveEntityCommand),\n },\n ]),\n ],\n})\nexport class AXPArchivePluginModule {}\n","import { InjectionToken } from '@angular/core';\n\n//#region ---- Entity archive override ----\n\n/** Routes archive/restore for entities that do not support generic entity update (e.g. engine-owned jobs). */\nexport interface AXPEntityArchiveOverride {\n refType: string;\n archive(refId: string): Promise<void>;\n restore(refId: string): Promise<void>;\n}\n\nexport const AXP_ENTITY_ARCHIVE_OVERRIDES = new InjectionToken<AXPEntityArchiveOverride[]>(\n 'AXP_ENTITY_ARCHIVE_OVERRIDES',\n);\n\n//#endregion\n","\nimport { AXPEntityAction, AXPEntityCommandScope } from '@acorex-platform/framework-shared/entity';\nimport {\n AXPEntityActionPlugin,\n actionExists,\n cloneLayoutArrays,\n ensureLayoutPropertyView,\n ensureLayoutSection,\n ensureListActions,\n resolveEntityPluginDetailPageOrder,\n} from '@acorex-platform/framework-client/layout/entity';\n\n/** How to show version history: popup (default) or full page. */\nexport type HistoryDisplayMode = 'page' | 'popup';\n\n/** Component key used when display is 'page'. Register via AXP_PAGE_COMPONENT_PROVIDER. */\nexport const HISTORY_PAGE_COMPONENT_KEY = 'entity-version-history-page';\n\nexport interface AXPHistoryPluginOptions {\n /** Where to show version history: popup (action) or page (tab). Default: 'page' */\n display?: HistoryDisplayMode;\n /** Title for the page when display is 'page'. Default: @activity-log:actions.view-history.title (Change History) */\n title?: string;\n /** Icon for the page when display is 'page'. Default: fa-light fa-clock-rotate-left */\n icon?: string;\n column?: {\n enabled?: boolean; // default: true\n visible?: boolean; // default: false\n };\n}\n\nconst DEFAULT_COLUMN_WIDTH = '180px';\nconst AUDIT_GROUP_ID = 'audit-info';\nconst SECTION_ORDER = 999;\n\nexport const historyPlugin: AXPEntityActionPlugin = {\n name: 'history',\n order: 50,\n apply: (ctx, options?: AXPHistoryPluginOptions) => {\n const opts = options ?? {};\n const displayMode: HistoryDisplayMode = opts.display ?? 'page';\n const columnEnabled = opts.column?.enabled ?? true;\n const columnVisible = opts.column?.visible ?? false;\n const fieldTitles = Object.fromEntries(\n ctx.properties.list()?.map((p: any) => [p.name, p.title]) ?? []\n );\n const entitySource = `${ctx.entity.module}.${ctx.entity.name}`;\n\n //#region ---- Change history action (list + single) or page ----\n\n if (displayMode === 'popup') {\n ensureListActions(ctx);\n const cmdName = 'show-version-history-popup';\n ctx.interfaces.update((i) => {\n const listActions = (i as any).master.list.actions as AXPEntityAction[];\n if (!actionExists(listActions, cmdName)) {\n listActions.push({\n title: '@activity-log:actions.view-history.title',\n command: {\n name: cmdName,\n options: {\n refId: '{{ context.eval(\"id\") }}',\n refType: entitySource,\n fieldTitles,\n },\n },\n priority: 'secondary',\n type: 'version-history',\n scope: AXPEntityCommandScope.Individual,\n shortcuts: ['ctrl+shift+h'],\n });\n }\n const singleActions =\n (i as any).master?.single?.actions as AXPEntityAction[] || [];\n if (!actionExists(singleActions, cmdName)) {\n singleActions.push({\n title: '@activity-log:actions.view-history.title',\n command: {\n name: cmdName,\n options: {\n refId: '{{ context.eval(\"id\") }}',\n refType: entitySource,\n fieldTitles,\n },\n },\n priority: 'secondary',\n type: 'version-history',\n scope: AXPEntityCommandScope.Individual,\n shortcuts: ['ctrl+shift+h'],\n });\n }\n return i as any;\n });\n } else {\n ctx.entity.pages ??= [];\n const pageExists = ctx.entity.pages.some(\n (p: { componentKey?: string }) => p.componentKey === HISTORY_PAGE_COMPONENT_KEY,\n );\n const historyPageOrder = resolveEntityPluginDetailPageOrder(\n { relatedEntities: ctx.entity.relatedEntities, pages: ctx.entity.pages },\n 'history',\n {\n componentKey: HISTORY_PAGE_COMPONENT_KEY,\n skipPage: pageExists\n ? { componentKey: HISTORY_PAGE_COMPONENT_KEY }\n : undefined,\n },\n );\n if (!pageExists) {\n const pageEntry = {\n componentKey: HISTORY_PAGE_COMPONENT_KEY,\n title: opts.title?.trim()\n ? opts.title\n : '@activity-log:actions.view-history.title',\n icon: opts.icon ?? 'fa-light fa-clock-rotate-left',\n layout: { order: historyPageOrder },\n refType: entitySource,\n options: { refType: entitySource },\n };\n (ctx.entity.pages as typeof pageEntry[]).push(pageEntry);\n } else {\n const pages = ctx.entity.pages as Array<{\n componentKey?: string;\n layout?: { order?: number; position?: 'before' | 'after' | 'middle' };\n }>;\n const index = pages.findIndex((p) => p.componentKey === HISTORY_PAGE_COMPONENT_KEY);\n if (index >= 0) {\n const existing = pages[index];\n pages[index] = {\n ...existing,\n layout: { ...(existing.layout ?? {}), order: historyPageOrder },\n };\n }\n }\n }\n\n //#endregion\n\n //#region ---- Audit section (detail view, always) ----\n\n const groups = ctx.groups.list() ?? [];\n if (!groups.some((g: any) => g.id === AUDIT_GROUP_ID)) {\n ctx.groups.add({\n id: AUDIT_GROUP_ID,\n title: '@general:terms.audit.section-title',\n } as any);\n }\n\n const props = ctx.properties.list();\n if (!props.some((p: any) => p.name === 'auditInfo')) {\n ctx.properties.add({\n name: 'auditInfo',\n title: '@general:terms.audit.section-title',\n groupId: AUDIT_GROUP_ID,\n schema: {\n dataType: 'object',\n readonly: true,\n interface: {\n type: 'audit-info-column',\n options: {\n entityInfo: {\n module: ctx.entity.module,\n name: ctx.entity.name,\n source: entitySource,\n fieldTitles,\n },\n hasHistoryPlugin: true,\n },\n },\n },\n validations: [],\n } as any);\n }\n\n const applyLayoutPatch = (layout: any) => {\n const next = cloneLayoutArrays(layout);\n ensureLayoutSection(next, {\n id: AUDIT_GROUP_ID,\n order: SECTION_ORDER,\n } as any);\n ensureLayoutPropertyView(next, {\n name: 'auditInfo',\n layout: { positions: { lg: { colSpan: 12, order: 1 } } },\n } as any);\n return next;\n };\n\n // ctx.interfaces.master.single.update((single) =>\n // applyLayoutPatch(\n // single ?? { title: ctx.entity.title, sections: [], properties: [] }\n // )\n // );\n\n //#endregion\n\n //#region ---- Audit column (list view) ----\n\n if (columnEnabled) {\n const columns = ctx.columns.list() ?? [];\n if (!columns.some((c: any) => c.name === 'auditInfo')) {\n const currentProps = ctx.properties.list();\n const auditInfoProperty = currentProps.find(\n (p: any) => p.name === 'auditInfo'\n );\n\n if (!auditInfoProperty) {\n ctx.properties.add({\n name: 'auditInfo',\n title: '@general:terms.audit.column-title',\n schema: {\n dataType: 'object',\n readonly: true,\n interface: {\n type: 'audit-info-column',\n options: {\n entityInfo: {\n module: ctx.entity.module,\n name: ctx.entity.name,\n source: entitySource,\n fieldTitles,\n },\n hasHistoryPlugin: true,\n },\n },\n },\n validations: [],\n } as any);\n }\n\n ctx.columns.add({\n name: 'auditInfo',\n title: '@general:terms.audit.modified',\n options: {\n width: DEFAULT_COLUMN_WIDTH,\n visible: columnVisible,\n dataPath: 'auditInfo',\n },\n });\n }\n }\n\n //#endregion\n },\n};\n","import {\n AXPCommand,\n pickInputOrOptionsField,\n type AXPCommandExecuteResultPromise,\n} from '@acorex-platform/framework-shared/runtime';\nimport { AXPopupService } from '@acorex/components/popup';\n\nimport { AXTranslationService } from '@acorex/core/translation';\nimport { inject, Injectable } from '@angular/core';\n\nexport interface ShowVersionHistoryPopupInput {\n refId?: string;\n refType?: string;\n fieldTitles?: Record<string, string>;\n fromDate?: Date;\n toDate?: Date;\n limit?: number;\n offset?: number;\n /** When invoked from entity action, fields may be under root or options */\n options?: Partial<ShowVersionHistoryPopupInput>;\n}\n\n/**\n * Opens the version history timeline popup for a given entity reference.\n */\n@Injectable({ providedIn: 'root' })\nexport class ShowVersionHistoryPopupCommand\n implements AXPCommand<ShowVersionHistoryPopupInput, void> {\n private readonly popupService = inject(AXPopupService);\n private readonly translate = inject(AXTranslationService);\n\n async execute(\n input: ShowVersionHistoryPopupInput | Record<string, unknown>\n ): AXPCommandExecuteResultPromise<void> {\n const opts = this.normalizeInput(input);\n if (!opts.refId || !opts.refType) {\n return {\n success: false,\n message: {\n text: await this.translate.translateAsync('@general:messages.entity.invalid-data'),\n },\n };\n }\n\n const comp = (\n await import(\n '../components/timeline-version-history-popup/timeline-version-history-popup.component'\n )\n ).AXMTimelineVersionHistoryPopupComponent;\n\n this.popupService.open(comp, {\n title: await this.translate.translateAsync('@activity-log:actions.view-history.title'),\n data: {\n refId: opts.refId,\n refType: opts.refType,\n fieldTitles: opts.fieldTitles ?? {},\n fromDate: opts.fromDate,\n toDate: opts.toDate,\n limit: opts.limit,\n offset: opts.offset,\n },\n });\n\n return { success: true, kind: 'object', data: undefined };\n }\n\n private normalizeInput(\n input: ShowVersionHistoryPopupInput | Record<string, unknown>\n ): ShowVersionHistoryPopupInput {\n return {\n refId: pickInputOrOptionsField<string>(input, 'refId'),\n refType: pickInputOrOptionsField<string>(input, 'refType'),\n fieldTitles: pickInputOrOptionsField<Record<string, string>>(input, 'fieldTitles'),\n fromDate: pickInputOrOptionsField<Date>(input, 'fromDate'),\n toDate: pickInputOrOptionsField<Date>(input, 'toDate'),\n limit: pickInputOrOptionsField<number>(input, 'limit'),\n offset: pickInputOrOptionsField<number>(input, 'offset'),\n };\n }\n}\n","import {\n AXPPageComponentDefinition,\n AXPPageComponentProvider,\n} from '@acorex-platform/framework-client/layout/components';\nimport { Injectable } from '@angular/core';\nimport { HISTORY_PAGE_COMPONENT_KEY } from '../../history.plugin';\n\n//#region ---- Version History Page Component Provider ----\n\n@Injectable()\nexport class AXMVersionHistoryPageComponentProvider implements AXPPageComponentProvider {\n async components(): Promise<AXPPageComponentDefinition[]> {\n return [\n {\n key: HISTORY_PAGE_COMPONENT_KEY,\n loader: () =>\n import('./version-history-page.component').then(\n (m) => m.AXMVersionHistoryPageComponent\n ),\n },\n ];\n }\n}\n\n//#endregion\n","import { AXPWidgetConfig, AXPWidgetGroupEnum } from '@acorex-platform/framework-shared/widget-core';\n\n\nexport const AXPHistoryAuditInfoWidget: AXPWidgetConfig = {\n name: 'audit-info-column',\n title: 'Audit Info',\n categories: [],\n groups: [AXPWidgetGroupEnum.EntityWidget],\n type: 'editor',\n icon: 'fa-light fa-info-circle',\n properties: [],\n components: {\n view: {\n component: () =>\n import('./components/audit-info-view.component').then(\n (c) => c.AXPAuditInfoViewComponent\n ),\n },\n edit: {\n component: () =>\n import('./components/audit-info-edit.component').then(\n (c) => c.AXPAuditInfoEditComponent\n ),\n },\n column: {\n component: () =>\n import('./components/audit-info-column.component').then(\n (c) => c.AXPAuditInfoColumnComponent\n ),\n },\n },\n};\n","//#region ---- Imports ----\n\nimport { AXPWidgetDefinitionProvider } from '@acorex-platform/framework-client/layout/widget-core';\nimport { Injectable } from '@angular/core';\nimport { AXPHistoryAuditInfoWidget } from '../audit-info-widget.config';\n\n//#endregion\n\n//#region ---- Audit Info Widgets Provider ----\n\n@Injectable()\nexport class AXPAuditInfoWidgetsProvider implements AXPWidgetDefinitionProvider {\n getWidgets() {\n return [AXPHistoryAuditInfoWidget];\n }\n}\n\n//#endregion","import { Injectable, inject } from '@angular/core';\nimport {\n AXPVersionChangeLine,\n AXPVersionEntry,\n AXPVersioningService,\n AXVChangeType,\n} from '@acorex-platform/framework-client/common';\nimport { AXPQueryService } from '@acorex-platform/framework-client/runtime';\nimport {\n resolveMultiLanguageString,\n runtimeQueryCollectionData,\n runtimeQueryPayloadData,\n} from '@acorex-platform/framework-shared/core';\nimport { ENTITY_GET_BY_ID_DEFAULT, ENTITY_QUERY_DEFAULT } from '@acorex-platform/framework-shared/runtime';\nimport { AXTranslationService } from '@acorex/core/translation';\n\n/** Must match {@link VERSION_STREAM_ENTITY} on the server. */\nconst VERSION_STREAM_ENTITY = 'Common.VersionStream';\n\n/** Must match {@link VERSION_ENTRY_ENTITY} on the server. */\nconst VERSION_ENTRY_ENTITY = 'Common.VersionEntry';\n\nconst USER_ENTITY = 'SecurityManagement.User';\n\n//#region ----- Client versioning service -----\n\n@Injectable()\nexport class AXPClientVersioningService extends AXPVersioningService {\n private readonly queryService = inject(AXPQueryService);\n private readonly translation = inject(AXTranslationService);\n\n override async getStreamIdIfExists(entityType: string, entityId: string): Promise<string | null> {\n const id = `${entityType}:${entityId}`;\n\n try {\n const result = await this.queryService.fetch(ENTITY_GET_BY_ID_DEFAULT, {\n entity: VERSION_STREAM_ENTITY,\n id,\n });\n if (runtimeQueryPayloadData(result) == null) {\n return null;\n }\n return id;\n } catch {\n return null;\n }\n }\n\n override async listEntries(\n streamId: string,\n options?: { limit?: number; offset?: number },\n ): Promise<AXPVersionEntry[]> {\n const result = await this.queryService.fetch(ENTITY_QUERY_DEFAULT, {\n entity: VERSION_ENTRY_ENTITY,\n skip: options?.offset ?? 0,\n take: options?.limit ?? 50,\n filter: {\n field: 'streamId',\n operator: { type: 'equal' },\n value: streamId,\n },\n sort: [{ field: 'versionNumber', dir: 'desc' }],\n });\n const items = (runtimeQueryCollectionData(result)?.items ?? []) as Record<string, unknown>[];\n const entries = items.map((item) => this.mapEntry(item));\n // New writes carry changedByName. Legacy rows may still need a one-shot user lookup.\n return this.fillMissingChangedByNames(entries);\n }\n\n override async getUiFriendlyDiff(\n _streamId: string,\n _v1: number,\n _v2: number,\n ): Promise<Array<{ badge: string; path: string; summary: string; oldValue?: unknown; newValue?: unknown }>> {\n return [];\n }\n\n private mapEntry(item: Record<string, unknown>): AXPVersionEntry {\n return {\n id: String(item['id'] ?? ''),\n streamId: String(item['streamId'] ?? ''),\n versionNumber: Number(item['versionNumber'] ?? 0),\n changeType: (item['changeType'] as AXVChangeType) ?? AXVChangeType.Update,\n changedBy: String(item['changedBy'] ?? 'system'),\n changedByName:\n typeof item['changedByName'] === 'string' && item['changedByName'].trim()\n ? item['changedByName'].trim()\n : undefined,\n changedAt: String(item['changedAt'] ?? new Date().toISOString()),\n snapshotJson: item['snapshotJson'],\n patchFromPrevJson: (item['patchFromPrevJson'] as AXPVersionEntry['patchFromPrevJson']) ?? [],\n summary: this.resolveSummary(item['summary']),\n changeLines: this.mapChangeLines(item['changeLines']),\n metadataJson: item['metadataJson'],\n };\n }\n\n /**\n * `undefined` = legacy entry (build from patch).\n * `[]` = intentional empty sub-rows (Create/Delete).\n */\n private mapChangeLines(raw: unknown): AXPVersionChangeLine[] | undefined {\n if (!Array.isArray(raw)) {\n return undefined;\n }\n return raw\n .map((line) => {\n if (!line || typeof line !== 'object') {\n return null;\n }\n const row = line as Record<string, unknown>;\n const path = typeof row['path'] === 'string' ? row['path'] : '';\n const field = row['field'];\n const text = row['text'];\n if (!path || field == null || text == null) {\n return null;\n }\n return {\n path,\n field: field as AXPVersionChangeLine['field'],\n text: text as AXPVersionChangeLine['text'],\n };\n })\n .filter((line): line is AXPVersionChangeLine => !!line);\n }\n\n private resolveSummary(raw: unknown): string | undefined {\n if (raw == null) {\n return undefined;\n }\n if (typeof raw === 'string') {\n return raw;\n }\n if (typeof raw === 'object') {\n const locale = this.translation.getActiveLang?.() ?? 'en-US';\n const resolved = resolveMultiLanguageString(raw as Record<string, string>, locale);\n return resolved || undefined;\n }\n return String(raw);\n }\n\n /** Only for legacy entries missing server-stamped `changedByName`. */\n private async fillMissingChangedByNames(entries: AXPVersionEntry[]): Promise<AXPVersionEntry[]> {\n const missingIds = [\n ...new Set(\n entries\n .filter((entry) => !entry.changedByName && entry.changedBy && entry.changedBy !== 'system')\n .map((entry) => entry.changedBy),\n ),\n ];\n if (!missingIds.length) {\n return entries;\n }\n\n const names = new Map<string, string>();\n try {\n const result = await this.queryService.fetch(ENTITY_QUERY_DEFAULT, {\n entity: USER_ENTITY,\n skip: 0,\n take: missingIds.length,\n filter: {\n field: 'id',\n operator: { type: 'in' },\n value: missingIds,\n },\n });\n const items = (runtimeQueryCollectionData(result)?.items ?? []) as Record<string, unknown>[];\n for (const item of items) {\n const id = String(item['id'] ?? '');\n if (!id) {\n continue;\n }\n const display =\n (typeof item['displayName'] === 'string' && item['displayName'].trim()) ||\n (typeof item['username'] === 'string' && item['username'].trim()) ||\n id;\n names.set(id, display);\n }\n } catch {\n return entries;\n }\n\n return entries.map((entry) =>\n entry.changedByName || !names.has(entry.changedBy)\n ? entry\n : { ...entry, changedByName: names.get(entry.changedBy) },\n );\n }\n}\n\n//#endregion\n","import { NgModule } from '@angular/core';\nimport { AXPVersioningService } from '@acorex-platform/framework-client/common';\nimport { AXP_PAGE_COMPONENT_PROVIDER } from '@acorex-platform/framework-client/layout/components';\nimport { provideCommandSetups } from '@acorex-platform/framework-client/runtime';\nimport { AXP_ENTITY_ACTION_PLUGIN } from '@acorex-platform/framework-client/layout/entity';\nimport { AXP_WIDGET_DEFINITION_PROVIDER } from '@acorex-platform/framework-client/layout/widget-core';\nimport { historyPlugin } from './history.plugin';\nimport { ShowVersionHistoryPopupCommand } from './commands/show-version-history-popup.command';\nimport { AXMVersionHistoryPageComponentProvider } from './components/version-history-page/version-history-page-component.provider';\nimport { AXPAuditInfoWidgetsProvider } from './components/widget-definition.provider';\nimport { AXPClientVersioningService } from './services/client-versioning.service';\n\n@NgModule({\n imports: [],\n providers: [\n { provide: AXPVersioningService, useClass: AXPClientVersioningService },\n { provide: AXP_PAGE_COMPONENT_PROVIDER, multi: true, useClass: AXMVersionHistoryPageComponentProvider },\n { provide: AXP_WIDGET_DEFINITION_PROVIDER, useClass: AXPAuditInfoWidgetsProvider, multi: true },\n ShowVersionHistoryPopupCommand,\n {\n provide: AXP_ENTITY_ACTION_PLUGIN,\n useValue: historyPlugin,\n multi: true,\n },\n provideCommandSetups([\n {\n key: 'show-version-history-popup',\n command: () =>\n import('./commands/show-version-history-popup.command').then(\n (m) => m.ShowVersionHistoryPopupCommand\n ),\n },\n ]),\n ],\n})\nexport class AXPHistoryModule {}\n","import type { AXPContextData } from '@acorex-platform/framework-shared/core';\n\nimport type { AXPActivityLog } from '@acorex-platform/framework-client/core';\n\nimport type {\n AXPCompareEntityRegistryServices,\n AXPComparePopupServices,\n AXPCompareVersionServices,\n AXPCompareViewField,\n AXPCompareViewInputs,\n AXPCompareViewMode,\n AXPCompareViewObject,\n} from './compare.types';\n\nexport function buildCompareObjectsFromActivities(\n activities: AXPActivityLog[],\n): AXPCompareViewObject[] {\n return activities.map((activity) => ({\n id: activity.id,\n title: activity.title,\n description: activity.user.title,\n context: structuredClone(activity.data ?? {}),\n }));\n}\n\nexport async function buildCompareFields(\n services: AXPCompareEntityRegistryServices,\n refType: string,\n): Promise<AXPCompareViewField[]> {\n const [moduleName, entityName] = refType.split('.');\n const entityRef = await services.entityRegistry.resolve(moduleName, entityName);\n\n return entityRef.properties\n .filter((property) => property.schema.interface && property.schema.visible !== false)\n .map((property) => ({\n path: property.name,\n title: property.title,\n description: property.description,\n widget: {\n type: property.schema.interface?.type!,\n name: property.name,\n path: property.name,\n options: property.schema.interface?.options,\n },\n }));\n}\n\nexport async function buildCompareRecordObjects(\n services: AXPCompareEntityRegistryServices,\n refType: string,\n ids: string[],\n): Promise<AXPCompareViewObject[]> {\n const [moduleName, entityName] = refType.split('.');\n const entityRef = await services.entityRegistry.resolve(moduleName, entityName);\n const getById = entityRef.queries?.byKey?.execute as ((id: string) => Promise<AXPContextData>) | undefined;\n\n if (!getById) {\n return [];\n }\n\n return Promise.all(\n ids.map(async (id) => {\n const object = await getById(id);\n return {\n id: String(object['id'] ?? id),\n title: String(object['title'] ?? id),\n description: object['description'] != null ? String(object['description']) : undefined,\n context: object,\n };\n }),\n );\n}\n\nexport async function buildCompareVersionObjects(\n services: AXPCompareVersionServices,\n refType: string,\n refId: string,\n ids: string[],\n): Promise<AXPCompareViewObject[]> {\n const streamId = await services.versioning.getStreamIdIfExists(refType, refId);\n const histories = streamId\n ? (await services.versioning.listEntries(streamId)).filter((entry) => ids.includes(entry.id))\n : [];\n\n return Promise.all(\n histories.map(async (history) => {\n const title = await services.translate.translateAsync(\n `@activity-log:terms.${history.changeType === 'Create' ? 'created' : history.changeType === 'Delete' ? 'deleted' : 'updated'}-by-title`,\n {\n params: {\n user: history.changedBy ?? 'system',\n date: services.formatService.format(new Date(history.changedAt ?? Date.now()), 'datetime', {\n format: 'short',\n }),\n },\n },\n );\n\n return {\n id: history.id,\n title,\n description: history.changedBy ?? 'system',\n context: structuredClone(history.snapshotJson ?? {}),\n };\n }),\n );\n}\n\nexport async function openComparePopup(\n services: AXPComparePopupServices,\n inputs: AXPCompareViewInputs,\n mode: AXPCompareViewMode,\n): Promise<void> {\n const { signal } = await import('@angular/core');\n const comp = (await import('../compare-popup.component')).AXPComparePopupComponent;\n\n services.popupService.open(comp, {\n title: await services.translate.translateAsync('Compare'),\n size: 'lg',\n data: {\n inputs: signal(inputs),\n mode: signal(mode),\n },\n });\n}\n","import type { AXPActivityLogCompareRequest } from '@acorex-platform/framework-client/layout/components';\nimport { AXTranslationService } from '@acorex/core/translation';\nimport { AXPopupService } from '@acorex/components/popup';\nimport { AXPEntityDefinitionRegistryService } from '@acorex-platform/framework-client/layout/entity';\nimport { Injector } from '@angular/core';\n\nimport {\n buildCompareFields,\n buildCompareObjectsFromActivities,\n openComparePopup,\n} from '../../compare/commands/compare.command.functions';\n\nexport async function openActivityLogVersionCompare(\n injector: Injector,\n event: AXPActivityLogCompareRequest,\n): Promise<void> {\n const refType = event.current.reference.type;\n const entityRegistry = injector.get(AXPEntityDefinitionRegistryService);\n const translate = injector.get(AXTranslationService);\n const popupService = injector.get(AXPopupService);\n\n const fields = await buildCompareFields({ entityRegistry }, refType);\n const objects = buildCompareObjectsFromActivities([event.previous, event.current]);\n await openComparePopup({ popupService, translate }, { fields, objects }, 'changes');\n}\n","import {\n AXPVersionChangeLine,\n AXPVersionEntry,\n AXVChangeType,\n CanonicalChange,\n} from '@acorex-platform/framework-client/common';\nimport {\n AXPSystemActionType,\n resolveMultiLanguageString,\n} from '@acorex-platform/framework-shared/core';\nimport { AXPActivityLog, AXPActivityLogChange } from '@acorex-platform/framework-client/core';\n\n//#region ---- Version History Utils ----\n\nconst ACTIVITY_LOG_CHANGES_SCOPE = '@activity-log:changes';\nconst LOOKUP_DISPLAY_KEYS = ['title', 'name', 'displayName', 'label', 'fullName', 'code'] as const;\n\n/** Removes field names from summary to avoid repetition (e.g. \"Fields changed: 3 (title, desc)\" → \"Fields changed: 3\"). */\nfunction stripFieldNamesFromSummary(summary: string): string {\n return summary.replace(/Fields changed:\\s*(\\d+)\\s*\\([^)]+\\)/g, 'Fields changed: $1');\n}\n\nexport function mapChangeType(\n t: AXVChangeType\n): AXPSystemActionType.Create | AXPSystemActionType.Update | AXPSystemActionType.Delete {\n switch (t) {\n case AXVChangeType.Create:\n return AXPSystemActionType.Create;\n case AXVChangeType.Delete:\n return AXPSystemActionType.Delete;\n default:\n return AXPSystemActionType.Update;\n }\n}\n\nexport function mapOpToAction(op: string): AXPSystemActionType {\n switch (op) {\n case 'add':\n return AXPSystemActionType.Create;\n case 'remove':\n return AXPSystemActionType.Delete;\n default:\n return AXPSystemActionType.Update;\n }\n}\n\n/** Kebab-case to camelCase for fieldTitles lookup (e.g. is-disabled -> isDisabled). */\nfunction toCamelCase(str: string): string {\n return str.replace(/-([a-z])/g, (_, c) => c.toUpperCase());\n}\n\n/**\n * Resolves the field lookup key from a JSON Pointer path. Uses last segment for leaf properties.\n * Handles path validation and [object Object] edge cases.\n * Exported for use by history layout resolver (path -> property lookup).\n */\nexport function resolvePathKey(path: unknown): string {\n if (path == null) return '';\n const str = typeof path === 'string' ? path : String(path);\n if (str.includes('[object Object]')) return '';\n const trimmed = str.startsWith('/') ? str.slice(1) : str;\n const segments = trimmed.split('/').filter(Boolean);\n return segments[segments.length - 1] ?? '';\n}\n\n/**\n * Resolves i18n fieldKey and actionKey for a patch change.\n * Returns structured keys for translate pipe.\n */\nfunction humanizeChangeToKeys(\n path: unknown,\n op: string,\n fieldTitles?: Record<string, string>\n): { fieldKey: string; actionKey: string; fieldKeyParams?: Record<string, string> } {\n const key = resolvePathKey(path);\n const camelKey = toCamelCase(key);\n const resolved =\n fieldTitles?.[camelKey] ?? fieldTitles?.[key];\n const actionKey = getActionKey(op);\n\n if (resolved) {\n return { fieldKey: resolved, actionKey };\n }\n const humanized = key ? humanizeKeyAsFallback(key) : 'Field';\n return {\n fieldKey: `${ACTIVITY_LOG_CHANGES_SCOPE}.unknown-field`,\n actionKey,\n fieldKeyParams: { name: humanized },\n };\n}\n\nfunction getActionKey(op: string): string {\n switch (op) {\n case 'add':\n return `${ACTIVITY_LOG_CHANGES_SCOPE}.added`;\n case 'remove':\n return `${ACTIVITY_LOG_CHANGES_SCOPE}.removed`;\n case 'rename':\n return `${ACTIVITY_LOG_CHANGES_SCOPE}.renamed`;\n case 'metadata':\n return `${ACTIVITY_LOG_CHANGES_SCOPE}.metadata-updated`;\n case 'replace':\n return `${ACTIVITY_LOG_CHANGES_SCOPE}.replaced`;\n default:\n return `${ACTIVITY_LOG_CHANGES_SCOPE}.updated`;\n }\n}\n\n/** For unknown field, use last path segment as fallback humanized text. */\nfunction humanizeKeyAsFallback(key: string): string {\n if (!key || key.includes('unknown-field')) return 'Field';\n return key\n .replace(/([A-Z])/g, ' $1')\n .replace(/-/g, ' ')\n .replace(/\\b\\w/g, (c) => c.toUpperCase())\n .trim();\n}\n\n/**\n * @deprecated Use humanizeChangeToKeys. Kept for backward compatibility.\n */\nexport function humanizeChange(\n path: string,\n op: string,\n fieldTitles?: Record<string, string>\n): string {\n const fieldLabel = humanizeKeyAsFallback(resolvePathKey(path));\n switch (op) {\n case 'add':\n return `${fieldLabel}: added`;\n case 'remove':\n return `${fieldLabel}: removed`;\n case 'rename':\n return `${fieldLabel}: renamed`;\n case 'metadata':\n return `${fieldLabel}: metadata updated`;\n case 'replace':\n return `${fieldLabel}: replaced`;\n default:\n return `${fieldLabel}: updated`;\n }\n}\n\n/**\n * Resolver to obtain a custom history layout for a given change path.\n * When the page provides this, it can resolve path -> property -> widget config -> historyLayout.\n */\nexport type GetHistoryLayoutResolver = (path: string) => unknown | undefined;\n\nconst MAX_SUMMARY_VALUE_LENGTH = 48;\n\nfunction isPlainObject(value: unknown): value is Record<string, unknown> {\n return !!value && typeof value === 'object' && !Array.isArray(value);\n}\n\nfunction formatObjectDisplay(value: Record<string, unknown>, locale: string): string | undefined {\n for (const key of LOOKUP_DISPLAY_KEYS) {\n const raw = value[key];\n if (raw == null) {\n continue;\n }\n if (typeof raw === 'string' || typeof raw === 'number' || typeof raw === 'boolean') {\n const text = String(raw).trim();\n if (text && text !== '[object Object]') {\n return text;\n }\n continue;\n }\n if (isPlainObject(raw)) {\n const mls = resolveMultiLanguageString(raw as Record<string, string>, locale);\n if (mls && mls !== '[object Object]') {\n return mls;\n }\n }\n }\n\n const asMls = resolveMultiLanguageString(value as Record<string, string>, locale);\n if (asMls && asMls !== '[object Object]') {\n return asMls;\n }\n return undefined;\n}\n\n/** Converts a value to a short display string for notification-style summary. */\nfunction toShortDisplayString(\n val: unknown,\n meta?: Record<string, unknown> | null,\n side?: 'old' | 'new',\n locale = 'en-US',\n): string {\n if (side === 'old' && typeof meta?.['displayOld'] === 'string' && meta['displayOld'].trim()) {\n return trimDisplay(meta['displayOld']);\n }\n if (side === 'new' && typeof meta?.['displayNew'] === 'string' && meta['displayNew'].trim()) {\n return trimDisplay(meta['displayNew']);\n }\n if (typeof meta?.['fileName'] === 'string' && meta['fileName'].trim()) {\n return trimDisplay(meta['fileName']);\n }\n\n if (val == null) return '—';\n if (typeof val === 'boolean') return val ? 'Yes' : 'No';\n if (typeof val === 'number') return String(val);\n if (val instanceof Date) return val.toISOString();\n if (typeof val === 'string') {\n if (!val.trim() || val === '[object Object]') return '—';\n return trimDisplay(val);\n }\n if (Array.isArray(val)) {\n if (val.length === 0) return '—';\n const parts = val\n .map((item) => toShortDisplayString(item, null, undefined, locale))\n .filter((part) => part && part !== '—');\n return parts.length ? trimDisplay(parts.join(', ')) : '—';\n }\n if (isPlainObject(val)) {\n const formatted = formatObjectDisplay(val, locale);\n if (formatted) {\n return trimDisplay(formatted);\n }\n }\n return '—';\n}\n\nfunction trimDisplay(value: string): string {\n if (value.length > MAX_SUMMARY_VALUE_LENGTH) {\n return `${value.slice(0, MAX_SUMMARY_VALUE_LENGTH)}…`;\n }\n return value;\n}\n\n/** Builds a short, human-readable notification-style summary for a change. */\nfunction buildChangeSummary(\n op: string,\n oldVal: unknown,\n newVal: unknown,\n meta?: Record<string, unknown> | null,\n locale = 'en-US',\n): string {\n const oldStr = toShortDisplayString(oldVal, meta, 'old', locale);\n const newStr = toShortDisplayString(newVal, meta, 'new', locale);\n switch (op) {\n case 'add':\n return newStr !== '—' ? `Added ${newStr}` : 'Added';\n case 'remove':\n return oldStr !== '—' ? `Removed ${oldStr}` : 'Removed';\n case 'replace':\n if (oldStr !== '—' && newStr !== '—') return `${oldStr} → ${newStr}`;\n if (newStr !== '—') return `Updated to ${newStr}`;\n if (oldStr !== '—') return `Cleared (was ${oldStr})`;\n return 'Updated';\n default:\n return newStr !== '—' ? `Updated ${newStr}` : 'Updated';\n }\n}\n\nfunction resolveActivityUser(entry: AXPVersionEntry): { id: string; name: string; title: string } {\n const id = (entry.changedBy || 'system').trim() || 'system';\n if (id === 'system') {\n return { id: 'system', name: 'System', title: 'System' };\n }\n const name = (entry.changedByName || id).trim() || id;\n return { id, name, title: name };\n}\n\nfunction resolveMls(value: string | Record<string, string>, locale: string): string {\n if (typeof value === 'string') {\n return value;\n }\n return resolveMultiLanguageString(value, locale) || '';\n}\n\nfunction mapServerChangeLines(\n lines: AXPVersionChangeLine[],\n getHistoryLayout: GetHistoryLayoutResolver | undefined,\n locale: string,\n): AXPActivityLogChange[] {\n return lines.slice(0, 20).map((line) => {\n const pathStr = line.path;\n const layout = getHistoryLayout?.(pathStr);\n const fieldLabel = resolveMls(line.field, locale);\n const summary = resolveMls(line.text, locale);\n return {\n type: AXPSystemActionType.Update,\n description: summary || fieldLabel,\n fieldLabel: fieldLabel || undefined,\n summary: summary || undefined,\n ...(layout != null && { layout }),\n };\n });\n}\n\n/** Legacy fallback when older entries have no stamped changeLines. */\nfunction mapPatchChanges(\n rawChanges: CanonicalChange[],\n fieldTitles: Record<string, string> | undefined,\n getHistoryLayout: GetHistoryLayoutResolver | undefined,\n locale: string,\n): AXPActivityLogChange[] {\n const seenFields = new Set<string>();\n const changes: AXPActivityLogChange[] = [];\n\n for (const c of rawChanges.slice(0, 20)) {\n const { fieldKey, actionKey, fieldKeyParams } = humanizeChangeToKeys(\n c.path,\n c.op,\n fieldTitles\n );\n const pathStr = typeof c.path === 'string' ? c.path : String(c.path ?? '');\n const dedupeKey = `${pathStr}|${c.op}|${JSON.stringify(c.newValue ?? c.oldValue ?? null)}`;\n if (seenFields.has(dedupeKey)) continue;\n seenFields.add(dedupeKey);\n\n const layout = getHistoryLayout?.(pathStr);\n const summary = buildChangeSummary(c.op, c.oldValue, c.newValue, c.meta, locale);\n const fallbackDesc = `${humanizeKeyAsFallback(resolvePathKey(c.path))}: ${c.op}`;\n const fieldLabel =\n (fieldKeyParams?.['name']\n ? humanizeKeyAsFallback(fieldKeyParams['name'])\n : undefined) ||\n (fieldTitles?.[toCamelCase(resolvePathKey(c.path))] ??\n fieldTitles?.[resolvePathKey(c.path)] ??\n humanizeKeyAsFallback(resolvePathKey(c.path)));\n\n changes.push({\n type: mapOpToAction(c.op),\n description: fallbackDesc,\n fieldKey,\n fieldKeyParams,\n actionKey,\n fieldLabel,\n oldValue: c.oldValue,\n newValue: c.newValue,\n summary,\n ...(layout != null && { layout }),\n });\n }\n\n return changes;\n}\n\nexport function versionEntriesToActivityLogs(\n entries: AXPVersionEntry[],\n refId: string,\n refType: string,\n fieldTitles?: Record<string, string>,\n getHistoryLayout?: GetHistoryLayoutResolver,\n locale = 'en-US',\n): AXPActivityLog[] {\n return entries.map((e) => {\n // Present (even empty) = server-stamped; missing = legacy fallback from patch.\n const hasServerLines = Array.isArray(e.changeLines);\n const changes = hasServerLines\n ? mapServerChangeLines(e.changeLines!, getHistoryLayout, locale)\n : mapPatchChanges(\n (e.patchFromPrevJson ?? []) as CanonicalChange[],\n fieldTitles,\n getHistoryLayout,\n locale,\n );\n\n const rawSummary =\n typeof e.summary === 'string'\n ? e.summary\n : e.summary && typeof e.summary === 'object'\n ? String(\n (e.summary as Record<string, string>)[locale] ??\n (e.summary as Record<string, string>)['en-US'] ??\n Object.values(e.summary as Record<string, string>)[0] ??\n '',\n )\n : '';\n const rawTitle = rawSummary || `${e.changeType} v${e.versionNumber}`;\n const title = stripFieldNamesFromSummary(rawTitle);\n\n return {\n id: e.id,\n title,\n date: new Date(e.changedAt),\n user: resolveActivityUser(e),\n reference: { id: refId, type: refType },\n changeType: mapChangeType(e.changeType),\n data: e.snapshotJson as Record<string, unknown>,\n changes,\n };\n });\n}\n\n//#endregion\n","\nimport {\n ChangeDetectionStrategy,\n Component,\n computed,\n inject,\n Injector,\n input,\n OnInit,\n signal,\n} from '@angular/core';\nimport { ActivatedRoute } from '@angular/router';\n\nimport { AXDecoratorModule } from '@acorex/components/decorators';\nimport { AXLoadingModule } from '@acorex/components/loading';\nimport { AXTranslationModule, AXTranslationService } from '@acorex/core/translation';\nimport { AXPVersionEntry, AXPVersioningService } from '@acorex-platform/framework-client/common';\nimport { AXPActivityLogCompareRequest, AXPActivityLogComponent } from '@acorex-platform/framework-client/layout/components';\nimport { AXPEntityDefinitionRegistryService } from '@acorex-platform/framework-client/layout/entity';\nimport { AXPPageLayoutBase, AXPPageLayoutBaseComponent } from '@acorex-platform/framework-client/layout/views';\nimport { AXPWidgetRegistryService } from '@acorex-platform/framework-client/layout/widget-core';\nimport { openActivityLogVersionCompare } from '../../utils/open-activity-log-compare.util';\nimport { resolvePathKey, versionEntriesToActivityLogs } from '../../utils/version-history.utils';\n\n//#region ---- Version History Page Component ----\n\n/**\n * Entity page component that shows version history for the current record.\n * Used when history plugin has display: 'page'. Resolves refId/refType from rootContext or route.\n */\n@Component({\n selector: 'axm-version-history-page',\n standalone: true,\n imports: [\n AXDecoratorModule,\n AXTranslationModule,\n AXLoadingModule,\n AXPActivityLogComponent\n],\n template: `\n <div class=\"p-4 min-h-[30vh] overflow-y-auto\">\n <axp-activity-log\n [activities]=\"activities()\"\n [loading]=\"isBusy()\"\n [enableCompare]=\"true\"\n [showActionType]=\"false\"\n (compareRequested)=\"onCompareRequested($event)\"\n ></axp-activity-log>\n </div>\n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n {\n provide: AXPPageLayoutBase,\n useExisting: AXMVersionHistoryPageComponent,\n },\n ],\n})\nexport class AXMVersionHistoryPageComponent extends AXPPageLayoutBaseComponent implements OnInit {\n rootContext = input.required<Record<string, unknown>>();\n pageConfig = input<Record<string, unknown>>();\n options = input<Record<string, unknown>>({});\n\n protected readonly isBusy = signal(false);\n protected readonly versions = signal<AXPVersionEntry[]>([]);\n\n protected readonly activities = computed(() => {\n const props = this.entityProperties();\n const getHistoryLayout = (path: string) => this.resolveHistoryLayout(path, props);\n const locale = this.translation.getActiveLang?.() ?? 'en-US';\n return versionEntriesToActivityLogs(\n this.versions(),\n this.refId,\n this.refType,\n this.fieldTitles,\n getHistoryLayout,\n locale,\n );\n });\n\n private refId = '';\n private refType = '';\n private fieldTitles: Record<string, string> = {};\n private readonly entityProperties = signal<\n Array<{ name: string; schema?: { interface?: { type?: string } } }>\n >([]);\n\n private readonly versioning = inject(AXPVersioningService);\n private readonly entityRegistry = inject(AXPEntityDefinitionRegistryService);\n private readonly widgetRegistry = inject(AXPWidgetRegistryService);\n private readonly injector = inject(Injector);\n private readonly route = inject(ActivatedRoute);\n private readonly translation = inject(AXTranslationService);\n\n /** Resolves custom history layout for a change path via property -> widget config -> historyLayout. */\n private resolveHistoryLayout(\n path: string,\n properties: Array<{ name: string; schema?: { interface?: { type?: string } } }>\n ): unknown {\n const key = resolvePathKey(path);\n const camelKey = key.replace(/-([a-z])/g, (_, c: string) => c.toUpperCase());\n const prop = properties.find(\n (p) => p.name === key || p.name === camelKey\n );\n const widgetType = prop?.schema?.interface?.type;\n if (!widgetType) return undefined;\n const config = this.widgetRegistry.resolve(widgetType);\n return config?.historyLayout;\n }\n\n override async ngOnInit(): Promise<void> {\n await super.ngOnInit();\n this.isBusy.set(true);\n const { refId, refType } = this.resolveEntityRef();\n if (!refId || !refType) {\n this.isBusy.set(false);\n return;\n }\n this.refId = refId;\n this.refType = refType;\n\n const [moduleName, entityName] = refType.split('.');\n if (moduleName && entityName) {\n try {\n const entity = await this.entityRegistry.resolve(moduleName, entityName);\n const props = entity.properties ?? [];\n this.entityProperties.set(props as Array<{ name: string; schema?: { interface?: { type?: string } } }>);\n this.fieldTitles = Object.fromEntries(\n props.map((p: { name: string; title: string }) => [\n p.name,\n p.title ?? p.name,\n ])\n );\n } catch {\n this.entityProperties.set([]);\n this.fieldTitles = {};\n }\n }\n\n const streamId = await this.versioning.getStreamIdIfExists(refType, refId);\n if (streamId) {\n const entries = await this.versioning.listEntries(streamId, {\n limit: 50,\n offset: 0,\n });\n this.versions.set(entries);\n } else {\n this.versions.set([]);\n }\n this.isBusy.set(false);\n }\n\n private resolveEntityRef(): { refId: string | null; refType: string | null } {\n const context = this.rootContext() ?? {};\n const ctx = context as Record<string, unknown>;\n\n let refType: string | null = null;\n const config = this.pageConfig();\n const opts = this.options();\n if (config && typeof (config as { refType?: string }).refType === 'string') {\n refType = (config as { refType: string }).refType;\n }\n if (!refType && opts && typeof (opts as { refType?: string }).refType === 'string') {\n refType = (opts as { refType: string }).refType;\n }\n if (!refType) {\n const moduleName = typeof ctx['moduleName'] === 'string' ? ctx['moduleName'] : null;\n const entityName = typeof ctx['entityName'] === 'string' ? ctx['entityName'] : null;\n if (moduleName && entityName) {\n refType = `${moduleName}.${entityName}`;\n }\n }\n if (!refType) {\n const module = this.route.snapshot.parent?.paramMap.get('module');\n const entity = this.route.snapshot.paramMap.get('entity');\n if (module && entity) {\n refType = `${module}.${entity}`;\n }\n }\n\n const refId =\n (typeof ctx['id'] === 'string' ? ctx['id'] : null) ??\n (typeof ctx['recordId'] === 'string' ? ctx['recordId'] : null) ??\n null;\n\n return { refId, refType };\n }\n\n protected async onCompareRequested(event: AXPActivityLogCompareRequest): Promise<void> {\n await openActivityLogVersionCompare(this.injector, event);\n }\n}\n\n//#endregion\n","//#region ---- Imports ----\n\nimport type { AXPVersionEntry } from '@acorex-platform/framework-client/common';\nimport type { AXPMultiLanguageString } from '@acorex-platform/framework-shared/core';\n\nimport { resolvePathKey } from './version-history.utils';\n\n//#endregion\n\n//#region ---- Types ----\n\nexport interface AXPEntityHistoryBarChartItem {\n id: string;\n label: string | AXPMultiLanguageString;\n value: number;\n color?: string;\n}\n\n//#endregion\n\n//#region ---- Aggregation ----\n\n/**\n * Aggregates version history patches into bar chart rows (change count per field).\n */\nexport function aggregateVersionHistoryBarChartItems(\n entries: AXPVersionEntry[],\n fieldTitles?: Record<string, string>,\n): AXPEntityHistoryBarChartItem[] {\n const counts = new Map<string, number>();\n\n for (const entry of entries) {\n for (const change of entry.patchFromPrevJson ?? []) {\n const pathKey = resolvePathKey(change.path);\n if (!pathKey) {\n continue;\n }\n\n const fieldKey = toCamelCase(pathKey);\n counts.set(fieldKey, (counts.get(fieldKey) ?? 0) + 1);\n }\n }\n\n const items: AXPEntityHistoryBarChartItem[] = [];\n for (const [fieldKey, value] of counts.entries()) {\n items.push({\n id: fieldKey,\n label: fieldTitles?.[fieldKey] ?? fieldKey,\n value,\n });\n }\n\n return items.sort((a, b) => b.value - a.value);\n}\n\nfunction toCamelCase(value: string): string {\n return value.replace(/-([a-z])/g, (_, char: string) => char.toUpperCase());\n}\n\n//#endregion\n","//#region ---- Imports ----\n\nimport { AXVChangeType, type AXPVersionEntry } from '@acorex-platform/framework-client/common';\nimport type { AXPMultiLanguageString } from '@acorex-platform/framework-shared/core';\nimport { get, isNumber, isString, orderBy } from 'lodash';\n\nimport { resolvePathKey } from './version-history.utils';\n\n//#endregion\n\n//#region ---- Types ----\n\nexport interface AXPEntityHistoryLineChartPoint {\n /** X-axis label (change date/time, same intent as history timeline). */\n x: number | string;\n /** Y-axis value (numeric field value after the change). */\n y: number;\n}\n\nexport interface AXPEntityHistoryLineChartSeries {\n id: string;\n label: string | AXPMultiLanguageString;\n lineColor?: string;\n fillColor?: string;\n data: AXPEntityHistoryLineChartPoint[];\n}\n\n//#endregion\n\n//#region ---- Helpers ----\n\nfunction toCamelCase(value: string): string {\n return value.replace(/-([a-z])/g, (_, char: string) => char.toUpperCase());\n}\n\nfunction fieldKeyFromPath(path: unknown): string {\n return toCamelCase(resolvePathKey(path));\n}\n\nfunction coerceNumber(value: unknown): number | undefined {\n if (isNumber(value) && Number.isFinite(value)) {\n return value;\n }\n\n if (isString(value) && value.trim()) {\n const parsed = Number(value.trim());\n return Number.isFinite(parsed) ? parsed : undefined;\n }\n\n return undefined;\n}\n\nfunction parseChangedAt(changedAt: string): number | undefined {\n const timestamp = Date.parse(changedAt);\n return Number.isNaN(timestamp) ? undefined : timestamp;\n}\n\n/** Formats version {@code changedAt} for chart x-axis labels (aligned with history timeline). */\nfunction formatHistoryChartDateLabel(changedAt: string): string {\n const date = new Date(changedAt);\n if (Number.isNaN(date.getTime())) {\n return changedAt;\n }\n\n return date.toLocaleString('en-US', {\n month: '2-digit',\n day: '2-digit',\n year: '2-digit',\n hour: '2-digit',\n minute: '2-digit',\n });\n}\n\nfunction findFieldPatch(entry: AXPVersionEntry, fieldName: string) {\n return (entry.patchFromPrevJson ?? []).find((change) => fieldKeyFromPath(change.path) === fieldName);\n}\n\nfunction hasFieldChange(entry: AXPVersionEntry, fieldName: string): boolean {\n return findFieldPatch(entry, fieldName) != null;\n}\n\nfunction resolveFieldValueAfterChange(entry: AXPVersionEntry, fieldName: string): number | undefined {\n const patch = findFieldPatch(entry, fieldName);\n if (patch) {\n const fromPatch = coerceNumber(patch.newValue);\n if (fromPatch != null) {\n return fromPatch;\n }\n }\n\n return coerceNumber(get(entry.snapshotJson, fieldName));\n}\n\n//#endregion\n\n//#region ---- Aggregation ----\n\n/**\n * Builds a line-chart series from version history for a numeric entity field.\n * X = change time ({@link AXPVersionEntry.changedAt}); Y = field value after each create/update that touched the field.\n * Matches the same patch/snapshot semantics used by the history plugin timeline.\n */\nexport function buildEntityFieldHistoryLineChartSeries(\n entries: AXPVersionEntry[],\n fieldName: string,\n seriesLabel: string | AXPMultiLanguageString,\n options?: { lineColor?: string; fillColor?: string; seriesId?: string },\n): AXPEntityHistoryLineChartSeries | null {\n const sortedEntries = orderBy(entries, ['versionNumber'], ['asc']);\n const points: Array<{ sortAt: number; point: AXPEntityHistoryLineChartPoint }> = [];\n\n for (const entry of sortedEntries) {\n const isCreate = entry.changeType === AXVChangeType.Create;\n const fieldChanged = hasFieldChange(entry, fieldName);\n if (!isCreate && !fieldChanged) {\n continue;\n }\n\n const y = resolveFieldValueAfterChange(entry, fieldName);\n const sortAt = parseChangedAt(entry.changedAt);\n if (y == null || sortAt == null) {\n continue;\n }\n\n points.push({\n sortAt,\n point: {\n x: formatHistoryChartDateLabel(entry.changedAt),\n y,\n },\n });\n }\n\n const firstChangeEntry = sortedEntries.find((entry) => hasFieldChange(entry, fieldName));\n const firstPatch = firstChangeEntry ? findFieldPatch(firstChangeEntry, fieldName) : undefined;\n const previousValue = firstPatch ? coerceNumber(firstPatch.oldValue) : undefined;\n\n if (firstChangeEntry && previousValue != null && firstPatch?.op === 'replace') {\n const previousEntry = sortedEntries.find(\n (entry) => entry.versionNumber === firstChangeEntry.versionNumber - 1,\n );\n const anchorEntry = previousEntry ?? firstChangeEntry;\n const sortAt = parseChangedAt(anchorEntry.changedAt);\n\n if (sortAt != null && !points.some((item) => item.point.y === previousValue && item.sortAt === sortAt)) {\n points.unshift({\n sortAt,\n point: {\n x: formatHistoryChartDateLabel(anchorEntry.changedAt),\n y: previousValue,\n },\n });\n }\n }\n\n const data = orderBy(points, ['sortAt'], ['asc']).map((item) => item.point);\n\n if (data.length === 0) {\n return null;\n }\n\n return {\n id: options?.seriesId ?? fieldName,\n label: seriesLabel,\n lineColor: options?.lineColor,\n fillColor: options?.fillColor,\n data,\n };\n}\n\n/** Product {@code basePrice} history as a line-chart series (date → base price). */\nexport function buildProductBasePriceHistoryLineChartSeries(\n entries: AXPVersionEntry[],\n): AXPEntityHistoryLineChartSeries | null {\n return buildEntityFieldHistoryLineChartSeries(\n entries,\n 'basePrice',\n '@product-catalog:products.entities.product.fields.base-price.title',\n {\n seriesId: 'base-price',\n lineColor: 'rgb(var(--ax-sys-color-primary-500))',\n fillColor: 'rgb(var(--ax-sys-color-primary-500) / 0.12)',\n },\n );\n}\n\n//#endregion\n","import {\n AXP_APPEARANCE_SECTION_ORDER,\n AXPEntityActionPlugin,\n cloneLayoutArrays,\n ensureLayoutPropertyView,\n ensureLayoutSection,\n ensureListActions,\n} from '@acorex-platform/framework-client/layout/entity';\nimport { AXPWidgetsList } from '@acorex-platform/framework-shared/core';\n\nexport interface AXPAvatarPluginOptions {\n group?: string;\n column?: {\n enabled?: boolean; // default: true\n visible?: boolean; // default: true\n width?: number; // default: 120\n };\n}\nexport const avatarPlugin: AXPEntityActionPlugin = {\n name: 'avatar',\n order: 75,\n apply: (ctx, options?: AXPAvatarPluginOptions) => {\n ensureListActions(ctx);\n\n const groupId = options?.group ?? 'appearance';\n const groups = ctx.groups.list() ?? [];\n if (!groups.some((g: any) => g.id === groupId)) {\n ctx.groups.add({ id: groupId, title: '@general:terms.interface.appearance' } as any);\n }\n\n const props = ctx.properties.list();\n if (!props.some((p: any) => p.name === 'avatar')) {\n ctx.properties.add({\n name: 'avatar',\n title: '@general:terms.common.avatar',\n groupId,\n schema: {\n dataType: 'string',\n interface: {\n type: AXPWidgetsList.Advanced.Image,\n options: {\n type: 'card',\n },\n },\n },\n validations: [],\n options: {\n sort: { enabled: false },\n filter: {\n advance: { enabled: false },\n inline: { enabled: false },\n },\n },\n } as any);\n }\n\n ctx.interfaces.master.create.update((create) => {\n const next = cloneLayoutArrays((create ?? { sections: [], properties: [] }) as any);\n ensureLayoutSection(next, { id: groupId, order: AXP_APPEARANCE_SECTION_ORDER } as any);\n ensureLayoutPropertyView(\n next,\n { name: 'avatar', layout: { positions: { lg: { colSpan: 6 } } } } as any,\n );\n return next;\n });\n\n ctx.interfaces.master.modify.update((update) => {\n const next = cloneLayoutArrays((update ?? { sections: [], properties: [] }) as any);\n ensureLayoutSection(next, { id: groupId, order: AXP_APPEARANCE_SECTION_ORDER } as any);\n ensureLayoutPropertyView(\n next,\n { name: 'avatar', layout: { positions: { lg: { colSpan: 6 } } } } as any,\n );\n return next;\n });\n\n ctx.interfaces.master.single.update((single) => {\n const next = cloneLayoutArrays((single ?? { title: ctx.entity.title, sections: [], properties: [] }) as any);\n ensureLayoutSection(next, { id: groupId, order: AXP_APPEARANCE_SECTION_ORDER } as any);\n ensureLayoutPropertyView(\n next,\n { name: 'avatar', layout: { positions: { lg: { colSpan: 6 } } } } as any,\n );\n return next;\n });\n },\n};\n","import { AXP_ENTITY_ACTION_PLUGIN } from '@acorex-platform/framework-client/layout/entity';\nimport { NgModule } from '@angular/core';\nimport { avatarPlugin } from './avatar.plugin';\n\n@NgModule({\n declarations: [],\n imports: [],\n exports: [],\n providers: [{ provide: AXP_ENTITY_ACTION_PLUGIN, multi: true, useValue: avatarPlugin }],\n})\nexport class AXPAvatarPluginModule {}\n","import { AXPCommonSettings, AXPSettingsService } from '@acorex-platform/framework-client/common';\nimport {\n AXP_CLASSIFICATION_SECTION_ORDER,\n AXPEntityActionPlugin,\n cloneLayoutArrays,\n ensureLayoutPropertyView,\n ensureLayoutSection,\n} from '@acorex-platform/framework-client/layout/entity';\nimport { inject } from '@angular/core';\nimport { AXPWidgetsList } from '@acorex-platform/framework-shared/core';\n\nexport interface AXPCategoryPluginOptions {\n /** Full entity key (e.g. 'myModule.Topic') to use instead of default {module}.{baseEntity}Category. When set, that entity must be defined elsewhere. */\n categoryEntity?: string;\n propertyName?: string; // default: categoryIds\n allowMultiple?: boolean; // default: true\n /** Display field name on the category entity (default: 'title') */\n textField?: string;\n /** Value field name on the category entity (default: 'id') */\n valueField?: string;\n /** Parent field name for hierarchy (default: 'parentId'). Used when category tree reads from entity definition. */\n parentKey?: string;\n /** When true, user cannot add/edit/delete categories from the category selector or sidebar. */\n readonly?: boolean;\n appearance?: {\n icon?: boolean;\n color?: boolean;\n };\n metaData?: {\n enabled: boolean;\n title?: string;\n };\n}\n\nexport const categoryPlugin: AXPEntityActionPlugin = {\n name: 'category',\n order: 45,\n apply: async (ctx, options?: AXPCategoryPluginOptions) => {\n const moduleName = ctx.entity.module;\n const baseEntityName = ctx.entity.name;\n const defaultCategoryEntityName = `${baseEntityName}Category`;\n\n const categoryEntityKey =\n options?.categoryEntity?.trim()?.length ? options.categoryEntity.trim() : `${moduleName}.${defaultCategoryEntityName}`;\n const textField = options?.textField?.trim()?.length ? options.textField!.trim() : 'title';\n const valueField = options?.valueField?.trim()?.length ? options.valueField!.trim() : 'id';\n\n const propertyName = options?.propertyName?.trim()?.length ? options.propertyName : 'categoryIds';\n const allowMultiple = options?.allowMultiple ?? true;\n const enableAppearance = options?.appearance ? (options.appearance.icon === true || options.appearance.color === true) : false;\n const enableMetaDataSelector = options?.metaData?.enabled ?? false;\n // Ensure group exists (prefer basic-info)\n const groupId = 'classification';\n const groups = ctx.groups.list() ?? [];\n if (!groups.some((g: any) => g.id === groupId)) {\n ctx.groups.add({ id: groupId, title: '@general:terms.interface.classification' } as any);\n }\n\n const settings = inject(AXPSettingsService);\n const showCategoryColumnsByDefault =\n (await settings.get(AXPCommonSettings.ShowCategoryColumnsByDefault)) !== false;\n ctx.columns.add({\n name: propertyName,\n options: {\n dataPath: 'categories',\n visible: showCategoryColumnsByDefault,\n },\n });\n\n // Ensure property exists\n const props = ctx.properties.list();\n if (!props.some((p: any) => p.name === propertyName)) {\n ctx.properties.add({\n name: propertyName,\n title: '@general:terms.classification.categories',\n groupId: groupId,\n schema: {\n dataType: 'array',\n interface: {\n type: AXPWidgetsList.Editors.EntityCategory,\n options: {\n entity: categoryEntityKey,\n multiple: allowMultiple,\n textField,\n valueField,\n readonly: options?.readonly === true,\n expose: [\n { source: valueField, target: `categories.{${valueField}}` },\n { source: textField, target: `categories.{${textField}}` },\n ],\n },\n },\n },\n } as any);\n }\n\n // Ensure category sidebar/filter block\n ctx.category.update((cat) => {\n return {\n entity: categoryEntityKey,\n title: '@general:terms.classification.categories',\n textField,\n valueField,\n applyConditions: [\n {\n name: propertyName,\n operator: { type: 'contains' },\n value: valueField,\n },\n ],\n };\n });\n\n // Ensure layout includes property in create/modify/single\n const applyLayoutPatch = (layout: any) => {\n const next = cloneLayoutArrays(layout);\n ensureLayoutSection(next, { id: groupId, order: AXP_CLASSIFICATION_SECTION_ORDER } as any);\n ensureLayoutPropertyView(next, {\n name: propertyName,\n layout: { positions: { lg: { colSpan: 6, order: 12 } } },\n } as any);\n return next;\n };\n\n ctx.interfaces.master.create.update((create) => applyLayoutPatch(create ?? { sections: [], properties: [] }));\n ctx.interfaces.master.modify.update((modify) => applyLayoutPatch(modify ?? { sections: [], properties: [] }));\n ctx.interfaces.master.single.update((single) =>\n applyLayoutPatch(single ?? { title: ctx.entity.title, sections: [], properties: [] }),\n );\n\n // Mark extension for dynamic category entity generation (or reference to custom entity)\n (ctx.entity as any).extensions ??= {};\n (ctx.entity as any).extensions.category = {\n entity: categoryEntityKey,\n propertyName,\n allowMultiple,\n textField,\n valueField,\n parentKey: options?.parentKey?.trim()?.length ? options.parentKey : undefined,\n readonly: options?.readonly === true,\n appearance: options?.appearance,\n metaData: options?.metaData,\n };\n },\n};\n","\nimport { AXPWidgetsCatalog, AXPWidgetsList } from '@acorex-platform/framework-shared/core';\nimport { AXPEntity, AXPEntityQueryType, createAllQueryView, entityMasterCrudActions, entityMasterDeleteAction } from '@acorex-platform/framework-shared/entity';\nimport { AXMEntityCrudServiceImpl, AXP_ENTITY_DEFINITION_LOADER, AXPEntityDefinitionLoader, AXPEntityDefinitionRegistryService } from '@acorex-platform/framework-client/layout/entity';\n\nimport { Injectable, Injector, inject, runInInjectionContext } from '@angular/core';\n\nfunction isIncompleteCategoryCompanion(entity: AXPEntity): boolean {\n const master = entity.interfaces?.master;\n return !master?.list && !master?.create && !master?.update && !master?.single;\n}\n\n@Injectable()\nexport class AXMEntityCategoryProvider implements AXPEntityDefinitionLoader {\n /**\n * Local: inject `{Entity}Category` on the client the same way as before.\n * Apps that ship `provideLocalEntityCatalog` (no Nest / no GetEntityLayout)\n * still get create/update/list/single plus CRUD queries.\n */\n readonly kind = 'local' as const;\n\n private injector = inject(Injector);\n\n async get(moduleName: string, entityName: string): Promise<AXPEntity | null> {\n // Generic per-entity Category provider (works for any module)\n if (entityName.endsWith('Category')) {\n // Prefer a custom local factory (has list/create/update/single).\n // Never defer to Domain:GetEntityLayout — client-only apps have no Nest,\n // and seeded companions are storage/schema, not the UI layout.\n const customEntity = await this.tryOtherLocalLoaders(moduleName, entityName);\n if (customEntity && !isIncompleteCategoryCompanion(customEntity)) {\n return null;\n }\n\n const fullKey = `${moduleName}.${entityName}`;\n const dataService = runInInjectionContext(this.injector, () => new AXMEntityCrudServiceImpl<any, any>(fullKey));\n\n // Check if base entity has appearance enabled using lazy injection\n const baseEntityName = entityName.replace('Category', '');\n let enableAppearance = false;\n let enableMetaDataSelector = false;\n let appearanceConfig: { icon?: boolean; color?: boolean } | undefined;\n let metaDataConfig: { enabled: boolean; title?: string } | undefined;\n\n try {\n // Use lazy injection to avoid circular dependency\n const entityRegistry = runInInjectionContext(this.injector, () => {\n try {\n return inject(AXPEntityDefinitionRegistryService);\n } catch {\n return null;\n }\n });\n\n if (entityRegistry) {\n try {\n const baseEntity = await entityRegistry.resolve(moduleName, baseEntityName);\n const categoryExt = (baseEntity as any)?.extensions?.category;\n if (categoryExt) {\n // Handle new structure\n if (categoryExt.appearance) {\n appearanceConfig = categoryExt.appearance;\n enableAppearance = categoryExt.appearance.icon === true || categoryExt.appearance.color === true;\n } else if (categoryExt.enableAppearance) {\n // Backward compatibility: if old structure exists, enable both icon and color\n enableAppearance = true;\n appearanceConfig = { icon: true, color: true };\n }\n\n if (categoryExt.metaData) {\n metaDataConfig = categoryExt.metaData;\n enableMetaDataSelector = categoryExt.metaData.enabled ?? false;\n } else if (categoryExt.enableMetaDataSelector) {\n // Backward compatibility\n enableMetaDataSelector = true;\n metaDataConfig = { enabled: true };\n }\n }\n\n // Check base entity's plugins for meta-data-form plugin to get its title\n // This title should be passed to meta-data-builder plugin\n const basePlugins = (baseEntity as any)?.plugins as Array<{ name: string; options?: any }> | undefined;\n const metaDataFormPlugin = basePlugins?.find((p) => p.name === 'meta-data-form');\n const metaDataFormTitle = metaDataFormPlugin?.options?.title;\n\n // Also check base entity's extensions in case meta-data-form plugin has already run\n const baseMetaDataFormExt = (baseEntity as any)?.extensions?.metaDataForm;\n const baseMetaDataFormExtTitle = baseMetaDataFormExt\n ? Object.values(baseMetaDataFormExt).find((ext: any) => ext?.title) as { title?: string } | undefined\n : undefined;\n\n // If we found a title from meta-data-form, store it in metaDataConfig for meta-data-builder to use\n if (enableMetaDataSelector) {\n if (!metaDataConfig) {\n metaDataConfig = { enabled: true };\n }\n if (!metaDataConfig.title) {\n metaDataConfig.title = metaDataFormTitle || baseMetaDataFormExtTitle?.title;\n }\n }\n } catch (error) {\n // Base entity not found or error loading, continue with default behavior\n console.warn(\n `Could not load base entity ${moduleName}.${baseEntityName} to check category plugin configuration:`,\n error,\n );\n }\n }\n } catch (error) {\n // Registry not available, continue with default behavior\n console.warn(`Entity registry not available, using default category configuration:`, error);\n }\n\n const entityDef: AXPEntity = {\n module: moduleName,\n name: entityName,\n parentKey: 'parentId',\n plugins: [\n // { name: 'lock' },\n // { name: 'compare' },\n ...(enableMetaDataSelector ? [{\n name: 'meta-data-builder',\n options: metaDataConfig?.title ? { title: metaDataConfig.title } : undefined\n }] : []),\n ],\n title: '@general:terms.classification.category',\n formats: {\n individual: '@general:terms.classification.category',\n plural: '@general:terms.classification.categories',\n searchResult: {\n title: '{{ title }}',\n description: '{{ module }}',\n },\n },\n relatedEntities: [],\n groups: [\n { id: 'basic-info', title: '@general:terms.interface.basic-info' },\n ...(enableAppearance ? [{ id: 'appearance', title: '@general:terms.interface.appearance' }] : []),\n ],\n properties: [\n {\n name: 'title',\n title: '@general:terms.common.title',\n groupId: 'basic-info',\n options: {\n sort: { enabled: true },\n filter: { advance: { enabled: true }, inline: { enabled: true } },\n },\n schema: { dataType: 'string', interface: { type: AXPWidgetsCatalog.text } },\n validations: [{ rule: 'required' }],\n },\n {\n name: 'parentId',\n title: '@general:terms.classification.parent',\n groupId: 'basic-info',\n schema: {\n dataType: 'string',\n interface: {\n type: AXPWidgetsList.Editors.EntityCategory,\n options: { entity: `${moduleName}.${entityName}` },\n },\n },\n },\n {\n name: 'description',\n title: '@general:terms.common.description',\n groupId: 'basic-info',\n schema: { dataType: 'string', interface: { type: AXPWidgetsCatalog.largeText } },\n },\n {\n name: 'childrenCount',\n title: '@general:terms.classification.children-count',\n groupId: 'basic-info',\n schema: {\n dataType: 'number',\n readonly: true,\n interface: { type: AXPWidgetsList.Editors.NumberBox },\n },\n },\n // Appearance properties (only if enabled)\n ...(enableAppearance ? [\n ...(appearanceConfig?.color !== false ? [\n {\n name: 'color',\n title: '@general:terms.common.color',\n groupId: 'appearance',\n schema: {\n dataType: 'string',\n interface: {\n type: AXPWidgetsList.Editors.ColorPalette,\n options: {},\n },\n },\n },\n ] : []),\n ...(appearanceConfig?.icon !== false ? [\n {\n name: 'icon',\n title: '@general:terms.common.icon',\n groupId: 'appearance',\n schema: {\n dataType: 'string',\n interface: {\n type: AXPWidgetsList.Theme.IconChooser,\n options: {},\n },\n },\n },\n ] : []),\n ] : []),\n ],\n columns: [{ name: 'title' }, { name: 'description' }],\n\n queries: {\n list: {\n execute: async (e: any) => {\n const res = await dataService.query(e);\n // enrich hasChild for tree views if childrenCount is available\n return {\n items: res.items.map((item: any) => ({ ...item, hasChild: (item.childrenCount ?? 0) > 0 })),\n total: res.total,\n };\n },\n type: AXPEntityQueryType.List,\n },\n },\n interfaces: {\n master: {\n create: {\n sections: [{ id: 'basic-info' }, ...(enableAppearance ? [{ id: 'appearance' }] : [])],\n properties: [\n { name: 'title', layout: { positions: { lg: { colSpan: 12, order: 1 } } } },\n { name: 'parentId', layout: { positions: { lg: { colSpan: 12, order: 2 } } } },\n { name: 'description', layout: { positions: { lg: { colSpan: 12, order: 3 } } } },\n // Appearance properties (only if enabled)\n ...(enableAppearance ? [\n ...(appearanceConfig?.color !== false ? [{ name: 'color', layout: { positions: { lg: { colSpan: 12, order: 4 } } } }] : []),\n ...(appearanceConfig?.icon !== false ? [{ name: 'icon', layout: { positions: { lg: { colSpan: 12, order: 5 } } } }] : []),\n ] : []),\n ],\n },\n update: {\n sections: [{ id: 'basic-info' }, ...(enableAppearance ? [{ id: 'appearance' }] : [])],\n properties: [\n { name: 'title', layout: { positions: { lg: { colSpan: 12, order: 1 } } } },\n { name: 'parentId', layout: { positions: { lg: { colSpan: 12, order: 2 } } } },\n { name: 'description', layout: { positions: { lg: { colSpan: 12, order: 3 } } } },\n // Appearance properties (only if enabled)\n ...(enableAppearance ? [\n ...(appearanceConfig?.color !== false ? [{ name: 'color', layout: { positions: { lg: { colSpan: 12, order: 4 } } } }] : []),\n ...(appearanceConfig?.icon !== false ? [{ name: 'icon', layout: { positions: { lg: { colSpan: 12, order: 5 } } } }] : []),\n ] : []),\n ],\n },\n single: {\n title: '{{title}}',\n sections: [\n { id: 'basic-info', layout: { positions: { lg: { colSpan: 12 } } } },\n ...(enableAppearance ? [{ id: 'appearance', layout: { positions: { lg: { colSpan: 12 } } } }] : []),\n ],\n properties: [\n { name: 'title', layout: { positions: { lg: { colSpan: 12, order: 1 } } } },\n { name: 'parentId', layout: { positions: { lg: { colSpan: 12, order: 2 } } } },\n { name: 'description', layout: { positions: { lg: { colSpan: 12, order: 3 } } } },\n // Appearance properties (only if enabled)\n ...(enableAppearance ? [\n ...(appearanceConfig?.color !== false ? [{ name: 'color', layout: { positions: { lg: { colSpan: 12, order: 4 } } } }] : []),\n ...(appearanceConfig?.icon !== false ? [{ name: 'icon', layout: { positions: { lg: { colSpan: 12, order: 5 } } } }] : []),\n ] : []),\n ],\n actions: [entityMasterDeleteAction()],\n },\n list: {\n actions: [...entityMasterCrudActions()],\n views: [createAllQueryView({ sorts: [{ name: 'title', dir: 'asc' }] })],\n },\n },\n },\n };\n\n return entityDef;\n }\n return null;\n }\n\n /**\n * Asks other **local** loaders (catalogs / extension factories) if they already\n * define this category. Remote `Domain:GetEntityLayout` is skipped so Nest-less\n * client apps keep runtime injection.\n */\n private async tryOtherLocalLoaders(moduleName: string, entityName: string): Promise<AXPEntity | null> {\n try {\n const raw = runInInjectionContext(this.injector, () => inject(AXP_ENTITY_DEFINITION_LOADER));\n const arr: unknown[] = Array.isArray(raw) ? raw : raw ? [raw] : [];\n for (const p of arr) {\n const loader = p instanceof Promise ? await p : (p as AXPEntityDefinitionLoader);\n if (loader === this) continue;\n if (loader.kind === 'remote') continue;\n const entity = await loader.get(moduleName, entityName);\n if (entity) return entity;\n }\n } catch {\n // Loaders not available (e.g. circular context), proceed with generation\n }\n return null;\n }\n\n async list(): Promise<{ name: string; module: string }[]> {\n return Promise.resolve([]);\n }\n}\n","import { NgModule, inject } from '@angular/core';\nimport { AXP_ENTITY_ACTION_PLUGIN, AXP_ENTITY_DEFINITION_LOADER } from '@acorex-platform/framework-client/layout/entity';\nimport { categoryPlugin } from './category.plugin';\nimport { AXP_PERMISSION_DEFINITION_PROVIDER, AXPPermissionDefinitionProvider } from '@acorex-platform/framework-client/auth';\nimport { AXMEntityCategoryProvider } from './entity.provider';\n\n@NgModule({\n providers: [\n { provide: AXP_ENTITY_ACTION_PLUGIN, multi: true, useValue: categoryPlugin },\n {\n provide: AXP_PERMISSION_DEFINITION_PROVIDER,\n multi: true,\n useFactory: () => {\n const provider: AXPPermissionDefinitionProvider = {\n define: async (context) => {\n // Generate permissions for any entity that declared category extension\n // We can’t scan registry here reliably at bootstrap; rely on generic pattern per module via wildcard\n // Consumers can still override with module-level providers.\n // No-op here; permissions will be added when category entity is resolved via provideEntity elsewhere if needed.\n },\n };\n return provider;\n },\n },\n {\n provide: AXP_ENTITY_DEFINITION_LOADER,\n useClass: AXMEntityCategoryProvider,\n multi: true,\n },\n ],\n})\nexport class AXPCategoryModule { }\n\n\n","//#region ---- Imports ----\n\nimport { AXPEntityActionPlugin, cloneLayoutArrays, ensureLayoutPropertyView, ensureLayoutSection } from '@acorex-platform/framework-client/layout/entity';\nimport { AXPWidgetsList } from '@acorex-platform/framework-shared/core';\n\n//#endregion\n\n//#region ---- Types ----\n\nconst DEFAULT_CATALOG_SCOPES_QUERY = 'PlatformManagement:ListCatalogScopes';\n\nexport interface AXPCatalogScopePluginOptions {\n /** Stored field name (default: `catalogScopeKeys`). */\n propertyName?: string;\n /** Allow multiple scope keys (default: true). */\n allowMultiple?: boolean;\n /** Restrict picker to a subset of registered scope keys. */\n allowedScopeKeys?: string[];\n /** Override data source / query key (default: PlatformManagement:ListCatalogScopes). */\n dataSource?: string;\n /** Show scope column on master list (default: false). */\n showInList?: boolean;\n /** Layout / group id (default: `classification`). */\n groupId?: string;\n /** Property layout order within classification (default: 14, before categories). */\n layoutOrder?: number;\n}\n\n//#endregion\n\n//#region ---- Plugin ----\n\nexport const catalogScopePlugin: AXPEntityActionPlugin = {\n name: 'catalog-scope',\n order: 46,\n apply: (ctx, options?: AXPCatalogScopePluginOptions) => {\n const propertyName = options?.propertyName?.trim()?.length ? options.propertyName!.trim() : 'catalogScopeKeys';\n const allowMultiple = options?.allowMultiple ?? true;\n const dataSource = options?.dataSource?.trim() || DEFAULT_CATALOG_SCOPES_QUERY;\n const showInList = options?.showInList ?? false;\n const groupId = options?.groupId?.trim() || 'classification';\n const layoutOrder = options?.layoutOrder ?? 14;\n\n const groups = ctx.groups.list() ?? [];\n if (!groups.some((g: { id?: string }) => g.id === groupId)) {\n ctx.groups.add({\n id: groupId,\n title: '@general:terms.interface.classification',\n } as any);\n }\n\n const props = ctx.properties.list();\n if (!props.some((p: { name?: string }) => p.name === propertyName)) {\n ctx.properties.add({\n name: propertyName,\n title: '@general:terms.classification.catalog-scopes',\n groupId,\n schema: {\n dataType: 'string',\n interface: {\n type: AXPWidgetsList.Editors.SelectBox,\n options: {\n multiple: allowMultiple,\n valueField: 'name',\n textField: 'title',\n cssClassField: 'cssClass',\n hasClearButton: true,\n allowSearch: true,\n storeValueFieldOnly: true,\n dataSource,\n ...(options?.allowedScopeKeys?.length ? { allowedScopeKeys: options.allowedScopeKeys } : {}),\n },\n },\n },\n validations: [{ rule: 'required' }],\n options: {\n sort: { enabled: false },\n filter: {\n advance: { enabled: true },\n inline: { enabled: false },\n },\n },\n } as any);\n }\n\n const columns = ctx.columns.list() ?? [];\n if (!columns.some((c: { name?: string }) => c.name === propertyName)) {\n ctx.columns.add({\n name: propertyName,\n title: '@general:terms.classification.catalog-scopes',\n width: 220,\n sortable: false,\n filterable: true,\n visible: showInList,\n showAs: {\n type: AXPWidgetsList.Editors.SelectBox,\n options: {\n valueField: 'name',\n textField: 'title',\n cssClassField: 'cssClass',\n multiple: allowMultiple,\n },\n },\n options: {\n dataPath: 'catalogScopes',\n },\n } as any);\n }\n\n const applyLayoutPatch = (layout: any) => {\n const next = cloneLayoutArrays(layout);\n ensureLayoutSection(next, { id: groupId, order: 150 } as any);\n ensureLayoutPropertyView(next, {\n name: propertyName,\n layout: { positions: { lg: { colSpan: 12, order: layoutOrder } } },\n } as any);\n return next;\n };\n\n ctx.interfaces.master.create.update((create) => applyLayoutPatch(create ?? { sections: [], properties: [] }));\n ctx.interfaces.master.modify.update((modify) => applyLayoutPatch(modify ?? { sections: [], properties: [] }));\n ctx.interfaces.master.single.update((single) => applyLayoutPatch(single ?? { title: ctx.entity.title, sections: [], properties: [] }) as any);\n\n (ctx.entity as any).extensions ??= {};\n (ctx.entity as any).extensions.catalogScope = {\n propertyName,\n allowMultiple,\n dataSource,\n allowedScopeKeys: options?.allowedScopeKeys,\n };\n },\n};\n\n//#endregion\n","//#region ---- Imports ----\n\nimport { AXPCatalogScopeDefinitionProviderService } from '@acorex-platform/framework-client/core';\nimport { Injectable, inject } from '@angular/core';\n\n//#endregion\n\n//#region ---- Types ----\n\nexport interface ResolvedCatalogScopeItem {\n name: string;\n title: string;\n /** Platform utility classes for the whole scope badge (from live provider definitions). */\n cssClass?: string;\n}\n\n//#endregion\n\n//#region ---- Service ----\n\n/**\n * Resolves catalog scope keys to display rows using registered module providers (source of truth for {@link cssClass}).\n */\n@Injectable({ providedIn: 'root' })\nexport class AXPCatalogScopeEnrichmentService {\n private readonly registry = inject(AXPCatalogScopeDefinitionProviderService);\n\n async resolveItems(keys: string[]): Promise<ResolvedCatalogScopeItem[]> {\n const items: ResolvedCatalogScopeItem[] = [];\n\n for (const name of keys) {\n const definition = await this.registry.get(name);\n items.push({\n name,\n title: definition ? this.registry.resolveTitle(definition) : name,\n cssClass: definition?.cssClass?.trim() || undefined,\n });\n }\n\n return items;\n }\n}\n\n//#endregion\n","//#region ---- Imports ----\n\nimport { castArray, get, isArray, isString, set, unset } from 'lodash';\n\n//#endregion\n\n//#region ---- Helpers ----\n\nfunction collectScopeKeysFromEntries(entries: unknown): string[] {\n const keys = new Set<string>();\n\n for (const entry of castArray(entries)) {\n if (isString(entry) && entry.trim()) {\n keys.add(entry.trim());\n continue;\n }\n if (entry != null && typeof entry === 'object' && !Array.isArray(entry)) {\n const name = (entry as Record<string, unknown>)['name'];\n if (typeof name === 'string' && name.trim()) {\n keys.add(name.trim());\n }\n }\n }\n\n return [...keys];\n}\n\n/**\n * Normalizes scope keys from stored property values and/or enriched `catalogScopes` rows.\n * Accepts string keys (persisted) and select-box row objects (`{ name, title, … }`).\n * Used on read/enrichment when both persisted keys and enriched rows may be present.\n */\nexport function normalizeCatalogScopeKeys(\n data: Record<string, unknown>,\n propertyName = 'catalogScopeKeys',\n enrichPath = 'catalogScopes',\n): string[] {\n const keys = new Set<string>();\n\n for (const key of collectScopeKeysFromEntries(get(data, propertyName))) {\n keys.add(key);\n }\n\n const scopes = get(data, enrichPath);\n if (isArray(scopes)) {\n for (const key of collectScopeKeysFromEntries(scopes)) {\n keys.add(key);\n }\n }\n\n return [...keys];\n}\n\n/**\n * Writes normalized string keys from the editable property only.\n * Clears stale {@link enrichPath} rows so removed selections are not merged back on save.\n */\nexport function applyNormalizedCatalogScopeKeys(\n data: Record<string, unknown>,\n propertyName = 'catalogScopeKeys',\n enrichPath = 'catalogScopes',\n): string[] {\n const keys = collectScopeKeysFromEntries(get(data, propertyName));\n set(data, propertyName, keys);\n unset(data, enrichPath);\n return keys;\n}\n\n//#endregion\n","//#region ---- Imports ----\n\nimport {\n AXPEntityDefinitionRegistryService,\n AXPEntityStorageMiddleware,\n} from '@acorex-platform/framework-client/layout/entity';\nimport { inject } from '@angular/core';\nimport { isEmpty, set } from 'lodash';\nimport { AXPCatalogScopeEnrichmentService } from './catalog-scope-enrichment.service';\nimport {\n applyNormalizedCatalogScopeKeys,\n normalizeCatalogScopeKeys,\n} from './catalog-scope-keys.util';\n\n//#endregion\n\n//#region ---- Types ----\n\nexport type { ResolvedCatalogScopeItem } from './catalog-scope-enrichment.service';\n\ninterface CatalogScopeExtension {\n propertyName: string;\n}\n\nconst READ_OPS = new Set(['getOne', 'getAll', 'query', 'queryAll']);\n\n//#endregion\n\n//#region ---- Helpers ----\n\nfunction readResultRows(result: unknown): Record<string, unknown>[] {\n if (!result || typeof result !== 'object') {\n return [];\n }\n\n if (Array.isArray(result)) {\n return result as Record<string, unknown>[];\n }\n\n const items = (result as { items?: unknown[] }).items;\n return Array.isArray(items) ? (items as Record<string, unknown>[]) : [];\n}\n\nasync function enrichRows(\n rows: Record<string, unknown>[],\n propertyName: string,\n enrichPath: string,\n enrichment: AXPCatalogScopeEnrichmentService,\n): Promise<void> {\n for (const row of rows) {\n if (!row) {\n continue;\n }\n\n const keys = normalizeCatalogScopeKeys(row, propertyName, enrichPath);\n if (isEmpty(keys)) {\n continue;\n }\n\n set(row, propertyName, keys);\n set(row, enrichPath, await enrichment.resolveItems(keys));\n }\n}\n\n//#endregion\n\n//#region ---- Middleware ----\n\n/**\n * Resolves {@link catalogScopePlugin} keys to `catalogScopes: [{ name, title, cssClass }]` on write and read.\n * {@link cssClass} always comes from registered providers on read (not stale persisted mock values).\n */\nexport const catalogScopeResolverMiddleware: AXPEntityStorageMiddleware = {\n target: {\n ops: ['create', 'update', 'getOne', 'getAll', 'query', 'queryAll', 'initial'],\n order: 9,\n },\n\n execute: async (ctx, next) => {\n const entityRegistry = inject(AXPEntityDefinitionRegistryService);\n const enrichment = inject(AXPCatalogScopeEnrichmentService);\n\n const [moduleName, entityName] = ctx.entityName.split('.');\n if (!moduleName || !entityName) {\n await next();\n return;\n }\n\n if (\n (ctx.op === 'create' || ctx.op === 'update' || ctx.op === 'initial') &&\n (ctx.data === undefined || ctx.data === null)\n ) {\n await next();\n return;\n }\n\n const def = await entityRegistry.resolve(moduleName, entityName).catch(() => null);\n const catalogExt = (def as { extensions?: { catalogScope?: CatalogScopeExtension } } | null)\n ?.extensions?.catalogScope;\n\n if (!catalogExt?.propertyName) {\n await next();\n return;\n }\n\n const propertyName = catalogExt.propertyName;\n const enrichPath = 'catalogScopes';\n\n try {\n if (ctx.op === 'initial' && Array.isArray(ctx.data)) {\n await enrichRows(ctx.data as Record<string, unknown>[], propertyName, enrichPath, enrichment);\n } else if (ctx.op === 'create' || ctx.op === 'update') {\n const data = ctx.data as Record<string, unknown>;\n const hasPayload = propertyName in data || enrichPath in data;\n if (hasPayload) {\n const keys = applyNormalizedCatalogScopeKeys(data, propertyName, enrichPath);\n if (!isEmpty(keys)) {\n set(data, enrichPath, await enrichment.resolveItems(keys));\n }\n }\n }\n } catch (error) {\n console.error('[catalog-scope-resolver] Failed to resolve on write:', error);\n }\n\n await next();\n\n if (READ_OPS.has(ctx.op) && ctx.result) {\n try {\n if (ctx.op === 'getOne') {\n await enrichRows([ctx.result as Record<string, unknown>], propertyName, enrichPath, enrichment);\n } else {\n await enrichRows(readResultRows(ctx.result), propertyName, enrichPath, enrichment);\n }\n } catch (error) {\n console.error('[catalog-scope-resolver] Failed to enrich on read:', error);\n }\n }\n },\n};\n\n//#endregion\n","//#region ---- Imports ----\n\nimport { AXPCatalogScopeDefinitionProviderService } from '@acorex-platform/framework-client/core';\nimport {\n AXPEntityDefinitionRegistryService,\n AXPEntityStorageMiddleware,\n AXPMiddlewareAbortError,\n} from '@acorex-platform/framework-client/layout/entity';\nimport { inject } from '@angular/core';\nimport { isEmpty } from 'lodash';\nimport { applyNormalizedCatalogScopeKeys } from './catalog-scope-keys.util';\n\n//#endregion\n\n//#region ---- Types ----\n\ninterface CatalogScopeExtension {\n propertyName: string;\n allowedScopeKeys?: string[];\n}\n\n//#endregion\n\n//#region ---- Middleware ----\n\n/**\n * Rejects unknown or inapplicable {@link catalogScopePlugin} keys on create/update.\n */\nexport const catalogScopeValidationMiddleware: AXPEntityStorageMiddleware = {\n target: {\n ops: ['create', 'update'],\n order: 6,\n },\n execute: async (ctx, next) => {\n const registry = inject(AXPEntityDefinitionRegistryService, { optional: true });\n const scopeRegistry = inject(AXPCatalogScopeDefinitionProviderService);\n\n if (!registry || ctx.data === undefined) {\n await next();\n return;\n }\n\n const parts = ctx.entityName.split('.');\n const moduleName = parts[0] ?? '';\n const entityName = parts.slice(1).join('.') || (parts[0] ?? '');\n\n const entity = await registry.resolve(moduleName, entityName).catch(() => null);\n const ext = (entity as { extensions?: { catalogScope?: CatalogScopeExtension } } | null)?.extensions\n ?.catalogScope;\n\n if (!ext?.propertyName) {\n await next();\n return;\n }\n\n const data = ctx.data as Record<string, unknown>;\n const propertyName = ext.propertyName;\n const enrichPath = 'catalogScopes';\n\n if (\n ctx.op === 'update' &&\n !(propertyName in data) &&\n !(enrichPath in data)\n ) {\n await next();\n return;\n }\n\n const keys = applyNormalizedCatalogScopeKeys(data, propertyName, enrichPath);\n\n if (isEmpty(keys)) {\n throw new AXPMiddlewareAbortError(\n `Catalog scope is required (${propertyName}).`,\n { code: 'VALIDATION_ERROR', status: 400 },\n );\n }\n\n const allowedSubset = ext.allowedScopeKeys?.length ? new Set(ext.allowedScopeKeys) : null;\n const errors: string[] = [];\n\n for (const key of keys) {\n if (allowedSubset && !allowedSubset.has(key)) {\n errors.push(`\"${key}\" is not allowed for this entity.`);\n continue;\n }\n\n const definition = await scopeRegistry.get(key);\n if (!definition) {\n errors.push(`Unknown catalog scope: \"${key}\".`);\n }\n }\n\n if (errors.length) {\n throw new AXPMiddlewareAbortError(errors.join(' '), {\n code: 'VALIDATION_ERROR',\n status: 400,\n details: { errors },\n });\n }\n\n await next();\n },\n};\n\n//#endregion\n","//#region ---- Imports ----\n\nimport { NgModule } from '@angular/core';\nimport {\n AXP_ENTITY_ACTION_PLUGIN,\n AXP_ENTITY_STORAGE_MIDDLEWARE,\n} from '@acorex-platform/framework-client/layout/entity';\nimport { catalogScopePlugin } from './catalog-scope.plugin';\nimport { catalogScopeResolverMiddleware } from './catalog-scope-resolver.middleware';\nimport { catalogScopeValidationMiddleware } from './catalog-scope-validation.middleware';\n\n//#endregion\n\n//#region ---- Module ----\n\n@NgModule({\n providers: [\n { provide: AXP_ENTITY_ACTION_PLUGIN, multi: true, useValue: catalogScopePlugin },\n {\n provide: AXP_ENTITY_STORAGE_MIDDLEWARE,\n multi: true,\n useValue: catalogScopeValidationMiddleware,\n },\n {\n provide: AXP_ENTITY_STORAGE_MIDDLEWARE,\n multi: true,\n useValue: catalogScopeResolverMiddleware,\n },\n ],\n})\nexport class AXPCatalogScopePluginModule {}\n\n//#endregion\n","\nimport { AXPEntityAction, AXPEntityCommandScope } from '@acorex-platform/framework-shared/entity';\nimport { AXPEntityActionPlugin, ensureListActions, actionExists } from '@acorex-platform/framework-client/layout/entity';\nimport { AXPCommonCommandKeys } from '@acorex-platform/module-common-client/contracts';\n\nexport const clonePlugin: AXPEntityActionPlugin = {\n name: 'clone',\n order: 60,\n apply: (ctx) => {\n ensureListActions(ctx);\n ctx.interfaces.update((i) => {\n const cmdName = AXPCommonCommandKeys.Clone.Clone;\n\n // Add clone action to list view\n const listActions = (i as any).master.list.actions as AXPEntityAction[];\n if (!actionExists(listActions, cmdName)) {\n listActions.push({\n title: '@general:actions.clone.title',\n command: {\n name: cmdName,\n options: {\n refId: '{{ context.eval(\"id\") }}',\n refType: `${ctx.entity.module}.${ctx.entity.name}`,\n },\n },\n priority: 'secondary',\n type: 'copy',\n scope: AXPEntityCommandScope.Individual,\n shortcuts: ['ctrl+shift+c'],\n });\n }\n\n // Add clone action to single view\n const singleActions = (i as any).master?.single?.actions as AXPEntityAction[] || [];\n if (!actionExists(singleActions, cmdName)) {\n singleActions.push({\n title: '@general:actions.clone.title',\n command: {\n name: cmdName,\n options: {\n refId: '{{ context.eval(\"id\") }}',\n refType: `${ctx.entity.module}.${ctx.entity.name}`,\n },\n },\n priority: 'secondary',\n type: 'copy',\n scope: AXPEntityCommandScope.Individual,\n shortcuts: ['ctrl+shift+c'],\n });\n }\n\n return i as any;\n });\n },\n};\n","import { AXP_ENTITY_ACTION_PLUGIN } from '@acorex-platform/framework-client/layout/entity';\nimport { provideCommandSetups } from '@acorex-platform/framework-client/runtime';\nimport { AXPCommonCommandKeys } from '@acorex-platform/module-common-client/contracts';\nimport { NgModule } from '@angular/core';\nimport { clonePlugin } from './clone.plugin';\n\n@NgModule({\n providers: [\n { provide: AXP_ENTITY_ACTION_PLUGIN, multi: true, useValue: clonePlugin },\n provideCommandSetups([\n {\n key: AXPCommonCommandKeys.Clone.Clone,\n command: () =>\n import('./commands/clone-entity.command').then((m) => m.AXPCloneEntityCommand),\n },\n ]),\n ],\n})\nexport class AXPClonePluginModule {}\n","import {\n AXP_APPEARANCE_SECTION_ORDER,\n AXPEntityActionPlugin,\n cloneLayoutArrays,\n ensureLayoutPropertyView,\n ensureLayoutSection,\n ensureListActions,\n} from '@acorex-platform/framework-client/layout/entity';\nimport { AXPWidgetsList } from '@acorex-platform/framework-shared/core';\n\n/**\n * `free`: default registered hex palette (material-design).\n * `theme`: eight theme surface rows (primary…danger + accent 1–3).\n * string: registered palette name (`pastel`, `vibrant`, …).\n * string[]: named sources, e.g. `['vibrant','pastel']` or `['theme','pastel']`.\n * A hex-only array still resolves as one custom row.\n */\nexport type AXPColorPluginPalette = 'free' | 'theme' | string | string[];\n\n/** @deprecated Use {@link AXPColorPluginOptions.palette}. */\nexport type AXPColorPluginMode = 'free' | 'theme';\n\nexport interface AXPColorPluginOptions {\n /**\n * Palette for `color-chooser`. Takes precedence over {@link mode} / {@link swatches}.\n */\n palette?: AXPColorPluginPalette;\n /**\n * @deprecated Use {@link palette}. `free` → default hex palette, `theme` → theme surfaces.\n */\n mode?: AXPColorPluginMode;\n /**\n * @deprecated Use {@link palette} with a name or name array.\n */\n swatches?: string | string[];\n group?: string;\n column?: {\n enabled?: boolean;\n visible?: boolean;\n width?: number;\n };\n}\n\nfunction resolveColorPluginPalette(options?: AXPColorPluginOptions): AXPColorPluginPalette {\n if (options?.palette != null) {\n return options.palette;\n }\n if (options?.mode === 'theme') {\n return 'theme';\n }\n if (options?.swatches != null) {\n return options.swatches;\n }\n return options?.mode ?? 'free';\n}\n\nexport const colorPlugin: AXPEntityActionPlugin = {\n name: 'color',\n order: 70,\n apply: (ctx, options?: AXPColorPluginOptions) => {\n ensureListActions(ctx);\n\n const groupId = options?.group ?? 'appearance';\n const groups = ctx.groups.list() ?? [];\n if (!groups.some((g: any) => g.id === groupId)) {\n ctx.groups.add({ id: groupId, title: `@general:terms.interface.${options?.group ?? 'appearance'}` } as any);\n }\n\n const palette = resolveColorPluginPalette(options);\n\n const props = ctx.properties.list();\n if (!props.some((p: any) => p.name === 'color')) {\n ctx.properties.add({\n name: 'color',\n title: '@general:terms.common.color',\n groupId,\n schema: {\n dataType: 'string',\n interface: {\n type: AXPWidgetsList.Editors.ColorChooser,\n options: {\n palette,\n },\n },\n },\n validations: [],\n options: {\n sort: { enabled: false },\n filter: {\n advance: { enabled: false },\n inline: { enabled: false },\n },\n },\n } as any);\n }\n\n //#region ----- Add Column to List View -----\n\n const columnEnabled = options?.column?.enabled ?? true;\n if (columnEnabled) {\n const columns = ctx.columns.list() ?? [];\n if (!columns.some((c: any) => c.name === 'color')) {\n ctx.columns.add({\n name: 'color',\n title: '@general:terms.common.color',\n options: {\n visible: options?.column?.visible ?? true,\n width: `${options?.column?.width ?? 120}px`,\n },\n });\n }\n }\n\n //#endregion\n\n ctx.interfaces.master.create.update((create) => {\n const next = cloneLayoutArrays((create ?? { sections: [], properties: [] }) as any);\n ensureLayoutSection(next, { id: groupId, order: AXP_APPEARANCE_SECTION_ORDER } as any);\n ensureLayoutPropertyView(next, { name: 'color', layout: { positions: { lg: { colSpan: 6 } } } } as any);\n return next;\n });\n\n ctx.interfaces.master.modify.update((update) => {\n const next = cloneLayoutArrays((update ?? { sections: [], properties: [] }) as any);\n ensureLayoutSection(next, { id: groupId, order: AXP_APPEARANCE_SECTION_ORDER } as any);\n ensureLayoutPropertyView(next, { name: 'color', layout: { positions: { lg: { colSpan: 6 } } } } as any);\n return next;\n });\n\n ctx.interfaces.master.single.update((single) => {\n const next = cloneLayoutArrays((single ?? { title: ctx.entity.title, sections: [], properties: [] }) as any);\n ensureLayoutSection(next, { id: groupId, order: AXP_APPEARANCE_SECTION_ORDER } as any);\n ensureLayoutPropertyView(next, { name: 'color', layout: { positions: { lg: { colSpan: 6 } } } } as any);\n return next;\n });\n },\n};\n","import { AXP_ENTITY_ACTION_PLUGIN } from '@acorex-platform/framework-client/layout/entity';\nimport { NgModule } from '@angular/core';\nimport { colorPlugin } from './color.plugin';\n\n@NgModule({\n declarations: [],\n imports: [],\n exports: [],\n providers: [{ provide: AXP_ENTITY_ACTION_PLUGIN, multi: true, useValue: colorPlugin }],\n})\nexport class AXPColorPluginModule { }\n","import { Component, ViewEncapsulation, input, signal, OnInit, ChangeDetectionStrategy } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nimport { AXButtonModule } from '@acorex/components/button';\nimport { AXBasePageComponent } from '@acorex/components/page';\nimport { AXDecoratorModule } from '@acorex/components/decorators';\nimport { AXTranslationModule } from '@acorex/core/translation';\nimport {\n AXPCompareViewComponent,\n type AXPCompareViewInputs,\n type AXPCompareViewMode,\n} from '@acorex-platform/framework-client/layout/components';\n\n@Component({\n selector: 'axp-compare-popup',\n standalone: true,\n imports: [\n // Angular\n CommonModule,\n // ACoreX\n AXDecoratorModule,\n AXButtonModule,\n AXTranslationModule,\n // Compare View\n AXPCompareViewComponent\n ],\n templateUrl: './compare-popup.component.html',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.Eager,\n providers: [],\n})\nexport class AXPComparePopupComponent extends AXBasePageComponent implements OnInit {\n inputs = input<AXPCompareViewInputs>();\n isBusy = signal(false);\n mode = input<AXPCompareViewMode>('compare');\n\n override ngOnInit(): void {\n super.ngOnInit();\n }\n} ","<ax-content>\n <div class=\"p-6 min-h-[30vh] overflow-y-auto\">\n <axp-compare-view [inputs]=\"inputs()\" [mode]=\"mode()\"></axp-compare-view>\n </div>\n</ax-content>\n<ax-footer>\n <ax-prefix></ax-prefix>\n <ax-suffix>\n <ax-button\n [text]=\"'@general:actions.close.title' | translate | async\"\n look=\"solid\"\n color=\"primary\"\n (onClick)=\"close()\"\n >\n </ax-button>\n </ax-suffix>\n</ax-footer>\n","import type { AXPContextData } from '@acorex-platform/framework-shared/core';\nimport {\n entityActionDataRows,\n resolveEntityActionCommandInput,\n} from '@acorex-platform/framework-shared/runtime';\n\nexport interface AXPCompareEntityRecordsContext {\n refType: string;\n records: AXPContextData[];\n}\n\nexport interface AXPCompareEntityRecordVersionsContext {\n refType: string;\n refId: string;\n ids: string[];\n}\n\nexport function normalizeCompareEntityRecordsInput(\n input: AXPContextData,\n): AXPCompareEntityRecordsContext | null {\n const resolved = resolveEntityActionCommandInput(input);\n const records = entityActionDataRows(resolved.data) as AXPContextData[];\n const refType = String(resolved.entity ?? resolved.entityInfo?.source ?? '');\n\n if (!refType || records.length === 0) {\n return null;\n }\n\n return { refType, records };\n}\n\nexport function normalizeCompareEntityRecordVersionsInput(\n input: AXPContextData,\n): AXPCompareEntityRecordVersionsContext | null {\n const resolved = resolveEntityActionCommandInput(input);\n const data = (entityActionDataRows(resolved.data)[0] ?? {}) as AXPContextData;\n\n const refType = String(data['refType'] ?? resolved.entity ?? '');\n const refId = String(data['refId'] ?? '');\n const ids = (data['ids'] ?? (input as AXPContextData)['ids']) as string[] | undefined;\n\n if (!refType || !refId || !ids?.length) {\n return null;\n }\n\n return { refType, refId, ids };\n}\n","import { AXPCommand, type AXPCommandExecuteResultPromise } from '@acorex-platform/framework-shared/runtime';\nimport { AXTranslationService } from '@acorex/core/translation';\nimport { AXPopupService } from '@acorex/components/popup';\nimport { AXPRuntimeCommandResult, type AXPContextData } from '@acorex-platform/framework-shared/core';\nimport { AXPEntityDefinitionRegistryService } from '@acorex-platform/framework-client/layout/entity';\nimport { inject, Injectable, Injector } from '@angular/core';\n\nimport {\n buildCompareFields,\n buildCompareRecordObjects,\n openComparePopup,\n} from './compare.command.functions';\nimport { normalizeCompareEntityRecordsInput } from './compare.command.util';\n\n@Injectable()\nexport class AXPCompareEntityRecordsCommand implements AXPCommand<AXPContextData, void> {\n private readonly injector = inject(Injector);\n\n async execute(input: AXPContextData): AXPCommandExecuteResultPromise<void> {\n const context = normalizeCompareEntityRecordsInput(input);\n const translationService = this.injector.get(AXTranslationService);\n\n if (!context) {\n return {\n success: false,\n message: {\n text: await translationService.translateAsync('@general:messages.entity.invalid-data'),\n },\n };\n }\n\n const ids = context.records\n .map((record) => record['id'])\n .filter((id): id is string => id != null && id !== '');\n\n if (ids.length === 0) {\n return {\n success: false,\n message: {\n text: await translationService.translateAsync('@general:messages.entity.invalid-data'),\n },\n };\n }\n\n const entityRegistry = this.injector.get(AXPEntityDefinitionRegistryService);\n const translate = this.injector.get(AXTranslationService);\n const popupService = this.injector.get(AXPopupService);\n\n const fields = await buildCompareFields({ entityRegistry }, context.refType);\n const objects = await buildCompareRecordObjects({ entityRegistry }, context.refType, ids);\n await openComparePopup({ popupService, translate }, { fields, objects }, 'compare');\n\n return {\n success: true,\n kind: 'object',\n data: undefined,\n metadata: { refresh: false },\n };\n }\n}\n","import { AXPCommand, type AXPCommandExecuteResultPromise } from '@acorex-platform/framework-shared/runtime';\nimport { AXFormatService } from '@acorex/core/format';\nimport { AXTranslationService } from '@acorex/core/translation';\nimport { AXPopupService } from '@acorex/components/popup';\nimport { AXPVersioningService } from '@acorex-platform/framework-client/common';\nimport { AXPRuntimeCommandResult, type AXPContextData } from '@acorex-platform/framework-shared/core';\nimport { AXPEntityDefinitionRegistryService } from '@acorex-platform/framework-client/layout/entity';\nimport { inject, Injectable, Injector } from '@angular/core';\n\nimport {\n buildCompareFields,\n buildCompareVersionObjects,\n openComparePopup,\n} from './compare.command.functions';\nimport { normalizeCompareEntityRecordVersionsInput } from './compare.command.util';\n\n@Injectable()\nexport class AXPCompareEntityRecordVersionsCommand implements AXPCommand<AXPContextData, void> {\n private readonly injector = inject(Injector);\n\n async execute(input: AXPContextData): AXPCommandExecuteResultPromise<void> {\n const context = normalizeCompareEntityRecordVersionsInput(input);\n const translationService = this.injector.get(AXTranslationService);\n\n if (!context) {\n return {\n success: false,\n message: {\n text: await translationService.translateAsync('@general:messages.entity.invalid-data'),\n },\n };\n }\n\n const versioning = this.injector.get(AXPVersioningService);\n const entityRegistry = this.injector.get(AXPEntityDefinitionRegistryService);\n const translate = this.injector.get(AXTranslationService);\n const formatService = this.injector.get(AXFormatService);\n const popupService = this.injector.get(AXPopupService);\n\n const fields = await buildCompareFields({ entityRegistry }, context.refType);\n const objects = await buildCompareVersionObjects(\n { versioning, translate, formatService },\n context.refType,\n context.refId,\n context.ids,\n );\n await openComparePopup({ popupService, translate }, { fields, objects }, 'changes');\n\n return {\n success: true,\n kind: 'object',\n data: undefined,\n metadata: { refresh: false },\n };\n }\n}\n","\nimport { AXPEntityCommandScope } from '@acorex-platform/framework-shared/entity';\nimport { AXPEntityActionPlugin, ensureListActions, actionExists } from '@acorex-platform/framework-client/layout/entity';\nimport { AXPCommonCommandKeys } from '@acorex-platform/module-common-client/contracts';\n\nexport const comparePlugin: AXPEntityActionPlugin = {\n name: 'compare',\n order: 50,\n apply: (ctx) => {\n ensureListActions(ctx);\n ctx.interfaces.update((i) => {\n const actions = (i as any).master.list.actions as any[];\n const cmdName = AXPCommonCommandKeys.Compare.EntityRecords;\n if (!actionExists(actions, cmdName)) {\n actions.push({\n title: '@activity-log:actions.compare-records.title',\n command: { name: cmdName },\n priority: 'secondary',\n type: 'compare',\n scope: AXPEntityCommandScope.Selected,\n });\n }\n return i as any;\n });\n },\n};\n","import { NgModule } from '@angular/core';\nimport { AXPComparePopupComponent } from './compare-popup.component';\nimport { AXP_ENTITY_ACTION_PLUGIN } from '@acorex-platform/framework-client/layout/entity';\nimport { provideCommandSetups } from '@acorex-platform/framework-client/runtime';\nimport { AXPCommonCommandKeys } from '@acorex-platform/module-common-client/contracts';\nimport { comparePlugin } from './compare.plugin';\n\n@NgModule({\n imports: [AXPComparePopupComponent],\n exports: [AXPComparePopupComponent],\n providers: [\n { provide: AXP_ENTITY_ACTION_PLUGIN, multi: true, useValue: comparePlugin },\n provideCommandSetups([\n {\n key: AXPCommonCommandKeys.Compare.EntityRecords,\n command: () =>\n import('./commands/compare-entity-records.command').then((m) => m.AXPCompareEntityRecordsCommand),\n },\n {\n key: AXPCommonCommandKeys.Compare.EntityRecordVersions,\n command: () =>\n import('./commands/compare-entity-record-versions.command').then(\n (m) => m.AXPCompareEntityRecordVersionsCommand,\n ),\n },\n ]),\n ],\n})\nexport class AXPCompareModule {}\n","\nimport { AXPEntity } from '@acorex-platform/framework-shared/entity';\nimport { getSmart } from '@acorex-platform/framework-shared/core';\nimport { AXPContextEvalFactory, AXPExpressionEvaluatorService } from '@acorex-platform/framework-client/core';\nimport {\n AXPEntityDefinitionRegistryService,\n AXPEntityStorageMiddleware,\n} from '@acorex-platform/framework-client/layout/entity';\nimport { inject } from '@angular/core';\nimport { get, set } from 'lodash';\n\nimport type { AXPComputedPropertyField, AXPComputedPropertyRecomputeOptions } from './computed-properties.plugin';\n\n//#region ---- Helpers ----\n\ntype ComputedReadOp = 'getOne' | 'getAll' | 'query';\n\nfunction shouldRecomputeField(field: AXPComputedPropertyField, op: string): boolean {\n const recompute = field.recompute;\n if (recompute === false) {\n return false;\n }\n if (recompute == null || recompute === true) {\n return op === 'getOne' || op === 'getAll' || op === 'query';\n }\n const options = recompute as AXPComputedPropertyRecomputeOptions;\n if (options.middleware === false) {\n return false;\n }\n const ops = options.ops ?? (['getOne', 'getAll', 'query'] as ComputedReadOp[]);\n return ops.includes(op as ComputedReadOp);\n}\n\nfunction extractTemplateTokens(template: string): string[] {\n const tokens: string[] = [];\n if (!template) {\n return tokens;\n }\n const regex = /\\{\\{\\s*([\\s\\S]*?)\\s*\\}\\}/g; // capture lazily until closing }}\n let match: RegExpExecArray | null;\n while ((match = regex.exec(template)) !== null) {\n const token = (match[1] || '').trim();\n if (token) {\n tokens.push(token);\n }\n }\n return tokens;\n}\n\nfunction getRootFromPath(path: string): string {\n const trimmed = path.trim();\n const clean = trimmed.replace(/^context\\.eval\\(['\"]|['\"]\\)$/g, '');\n const first = clean.split('.')[0];\n return first.replace(/\\{.*\\}$/, '');\n}\n\n/** Roots used for hydration (e.g. `positionAssignments` from `context.eval('positionAssignments')` inside larger expressions). */\nfunction extractContextEvalRoots(template: string): string[] {\n const roots: string[] = [];\n if (!template) {\n return roots;\n }\n const re = /context\\.eval\\(\\s*['\"]([^'\"]+)['\"]\\s*\\)/g;\n let m: RegExpExecArray | null;\n while ((m = re.exec(template)) !== null) {\n const path = (m[1] || '').trim();\n if (!path) continue;\n const root = path.split('.')[0];\n if (root) {\n roots.push(root);\n }\n }\n return roots;\n}\n\nfunction defaultIdField(dataPath?: string) {\n const leaf = (dataPath || '').split('.').filter(Boolean).pop() || 'related';\n return `${leaf}Id`;\n}\n\nexport const computedPropertiesMiddleware: AXPEntityStorageMiddleware = {\n target: { ops: ['getOne', 'getAll', 'query'], order: 12 },\n execute: async (ctx, next) => {\n const backend = ctx.entities;\n const registry = inject(AXPEntityDefinitionRegistryService);\n const expressionEvaluator = inject(AXPExpressionEvaluatorService);\n const contextEvalFactory = inject(AXPContextEvalFactory);\n\n await next();\n\n try {\n const [moduleName, entityName] = ctx.entityName.split('.');\n const def: AXPEntity = await registry.resolve(moduleName, entityName);\n const plugin = (def?.plugins || []).find((p: any) => p?.name === 'computed-property');\n if (!plugin?.options?.['fields']?.length) return;\n const allFields: AXPComputedPropertyField[] = plugin.options['fields'];\n const fields = allFields.filter((field) => shouldRecomputeField(field, ctx.op));\n\n if (!fields.length) return;\n\n const related: any[] = def?.relatedEntities || [];\n\n const rows: any[] = Array.isArray(ctx.result)\n ? ctx.result\n : Array.isArray(ctx.result?.items)\n ? ctx.result.items\n : ctx.result\n ? [ctx.result]\n : [];\n\n if (!rows.length) return;\n\n // Pre-hydrate merge-detail children used by fields (by root token)\n const roots = new Set<string>();\n for (const f of fields) {\n const tokens = extractTemplateTokens(f.value);\n tokens.forEach((t) => roots.add(getRootFromPath(t)));\n extractContextEvalRoots(f.value).forEach((r) => roots.add(r));\n }\n\n // For merge-detail referenced children, batch hydrate\n for (const root of roots) {\n const re = related.find(\n (r: any) => r?.persistence?.dataPath === root && (r?.persistence?.strategy || 'embedded') === 'referenced',\n );\n if (!re) continue;\n const p = re.persistence || {};\n const idField = p.idField || defaultIdField(p.dataPath);\n const ids = Array.from(new Set(rows.map((r) => get(r, idField)).filter((v) => v != null)));\n if (!ids.length) continue;\n try {\n const resp = await backend.query(re.entity, {\n skip: 0,\n take: ids.length || 1000,\n filter: { field: 'id', operator: { type: 'in' }, value: ids },\n });\n const items = resp?.items ?? [];\n const map = new Map<any, any>();\n for (const it of items) map.set((it as any).id, it);\n for (const row of rows) {\n const cid = get(row, idField);\n if (!cid) continue;\n const child = map.get(cid);\n if (child && p?.dataPath) set(row, p.dataPath, child);\n }\n } catch {}\n }\n\n // Compute per field for each row\n for (const row of rows) {\n for (const f of fields) {\n const tokens = extractTemplateTokens(f.value);\n const fieldRoots = new Set<string>();\n for (const t of tokens) {\n const raw = String(t).trim();\n const path = raw.replace(/^context\\.eval\\(['\"]|['\"]\\)$/g, '');\n fieldRoots.add(getRootFromPath(path));\n }\n extractContextEvalRoots(f.value).forEach((r) => fieldRoots.add(r));\n\n // Try to ensure data availability for each dependency root\n for (const root of fieldRoots) {\n if (!root) continue;\n let current = getSmart(row, root);\n if (current == null) {\n // Try merge-detail already covered above. If still missing, try list-related entities by entity name\n const reList = related.find(\n (r: any) =>\n (r?.layout?.type === 'page-list' || r?.layout?.type === 'tab-list') &&\n r?.persistence?.dataPath === root,\n );\n if (reList) {\n // Build filters: reList.conditions + field.conditions\n const baseFilters = (reList.conditions ?? []).map((c: any) => ({ ...c }));\n const extraFilters = (f.conditions ?? []).map((c: any) => ({ ...c }));\n const buildScope = () => ({ ...(row ?? {}), context: { eval: (path: string) => get(row, path) } });\n const evaluateValue = async (val: any) => {\n if (typeof val === 'string' && expressionEvaluator.isExpression(val)) {\n return await expressionEvaluator.evaluate(val, buildScope() as any);\n }\n return val;\n };\n let allFilters = await Promise.all(\n [...baseFilters, ...extraFilters].map(async (fl: any) => ({\n field: fl.name ?? fl.field,\n operator: fl.operator,\n value: await evaluateValue(fl.value),\n })),\n );\n\n // If no explicit parent filter exists, infer it: child.parentKey == row.id\n try {\n const [cm, ce] = (reList.entity || '').split('.');\n const childDef: any = await registry.resolve(cm, ce);\n const parentKey: string | undefined = childDef?.parentKey;\n if (parentKey && !allFilters.some((fl: any) => fl.field === parentKey)) {\n allFilters.push({ field: parentKey, operator: { type: 'equal' }, value: row?.id });\n }\n } catch {}\n try {\n const resp = await backend.query(reList.entity, {\n skip: 0,\n take: 1000,\n filter: allFilters.length ? { logic: 'and', filters: allFilters } : undefined,\n });\n const items = resp?.items ?? [];\n set(row, root, items);\n } catch {}\n }\n }\n }\n\n // Evaluate template and set computed value using expression evaluator\n const scope: any = {\n ...(row ?? {}),\n context: contextEvalFactory.createScope(row ?? {}),\n };\n const evaluated = await expressionEvaluator.evaluate(f.value, scope);\n set(row, f.name, evaluated || undefined);\n }\n }\n } catch {\n // swallow to avoid breaking main flow\n }\n },\n};\n","\nimport { AXPWidgetTypesMap } from '@acorex-platform/framework-shared/widget-core';\nimport {\n AXPEntityActionPlugin,\n cloneLayoutArrays,\n ensureLayoutPropertyView,\n ensureLayoutSection,\n} from '@acorex-platform/framework-client/layout/entity';\n\n//#region ---- Types ----\n\nexport type AXPComputedPropertyRecomputeOptions = {\n /** When false, storage middleware skips this field. Defaults to true. */\n middleware?: boolean;\n ops?: Array<'getOne' | 'getAll' | 'query' | 'create' | 'update'>;\n};\n\nexport type AXPComputedPropertyField = {\n name: string;\n title: string;\n value: string; // Expression-supported string, e.g. \"{{ context.eval('...') }}\"\n group: {\n id: string;\n title: string;\n };\n /** Whether the field is visible in forms and lists. Defaults to true. */\n visible?: boolean;\n /** Read-time (and optional write-time) recomputation via storage middleware. Defaults to read ops. */\n recompute?: boolean | AXPComputedPropertyRecomputeOptions;\n layout?: { order?: number; colSpan?: number; colStart?: number };\n conditions?: any[]; // Reserved for future logic (visibility/calculation)\n showAs?: {\n type: AXPWidgetTypesMap[keyof AXPWidgetTypesMap] | string;\n options?: Record<string, any>;\n };\n};\n\nexport type AXPComputedPropertiesPluginOptions = {\n fields?: AXPComputedPropertyField[];\n};\n\n//#endregion\n\n//#region ---- Plugin ----\n\nexport const computedPropertiesPlugin: AXPEntityActionPlugin = {\n name: 'computed-property',\n order: 55,\n apply: (ctx, options?: AXPComputedPropertiesPluginOptions) => {\n const fields = options?.fields ?? [];\n if (!fields.length) {\n return;\n }\n\n // Ensure default group exists\n const defaultGroupId = 'additional';\n const ensureGroup = (group: { id: string; title: string }) => {\n const id = group?.id || defaultGroupId;\n const groups = ctx.groups.list() ?? [];\n if (!groups.some((g: any) => g.id === id)) {\n ctx.groups.add({ id, title: group?.title } as any);\n }\n return id;\n };\n\n for (const f of fields) {\n const groupId = ensureGroup(f.group || { id: defaultGroupId });\n // If group is newly created and a custom title is provided, update it\n const groups = ctx.groups.list() ?? [];\n if (!groups.some((g: any) => g.id === groupId) && f.group?.title) {\n ctx.groups.add({ id: groupId, title: f.group.title } as any);\n }\n\n // Ensure property exists on entity\n const existing = ctx.properties.list().some((p: any) => p.name === f.name);\n if (!existing) {\n ctx.properties.add({\n name: f.name,\n title: f.title,\n groupId,\n schema: {\n dataType: 'string',\n readonly: true,\n defaultValue: f.value,\n interface: {\n type: f.showAs?.type || 'text-editor',\n options: { ...(f.showAs?.options ?? {}), readonly: true },\n },\n },\n } as any);\n }\n\n const isVisible = f.visible !== false;\n\n // Ensure the field appears in list columns when visible\n if (isVisible) {\n const entityAny: any = ctx.entity as any;\n const currentColumns: any[] = Array.isArray(entityAny.columns) ? entityAny.columns : [];\n const hasColumn = currentColumns.some((c: any) => (typeof c === 'string' ? c === f.name : c?.name === f.name));\n if (!hasColumn) {\n entityAny.columns = [...currentColumns, { name: f.name }];\n }\n }\n\n // Ensure Single (details) view shows it when visible\n if (isVisible) {\n ctx.interfaces.master.single.update((single) => {\n const next = cloneLayoutArrays((single ?? { title: ctx.entity.title, sections: [], properties: [] }) as any);\n ensureLayoutSection(next, { id: groupId, order: 90 } as any);\n ensureLayoutPropertyView(next, {\n name: f.name,\n layout: {\n positions: {\n lg: {\n colSpan: f.layout?.colSpan ?? 12,\n order: f.layout?.order ?? 99,\n ...(f.layout?.colStart != null ? { colStart: f.layout.colStart } : {}),\n },\n },\n label: { visible: true },\n },\n } as any);\n return next;\n });\n }\n }\n },\n};\n\n//#endregion\n","import { AXP_ENTITY_ACTION_PLUGIN, AXP_ENTITY_STORAGE_MIDDLEWARE } from '@acorex-platform/framework-client/layout/entity';\nimport { NgModule } from '@angular/core';\nimport { computedPropertiesMiddleware } from './computed-properties.middleware';\nimport { computedPropertiesPlugin } from './computed-properties.plugin';\n\n@NgModule({\n providers: [\n { provide: AXP_ENTITY_ACTION_PLUGIN, multi: true, useValue: computedPropertiesPlugin },\n { provide: AXP_ENTITY_STORAGE_MIDDLEWARE, multi: true, useValue: computedPropertiesMiddleware },\n ],\n})\nexport class AXPComputedPropertiesModule {}\n","import { AXPEntityMasterCreateLayoutView, AXPEntityMasterLayoutView, AXPEntityMasterSingleLayoutView, AXPEntityMasterUpdateLayoutView } from '@acorex-platform/framework-shared/entity';\nimport { AXPEntityActionPlugin } from '@acorex-platform/framework-client/layout/entity';\nimport { AXPWidgetsList } from '@acorex-platform/framework-shared/core';\n\nexport interface AXPDescriptionPluginOptions {\n /**\n * Optional title for the `description` field and column.\n * Can be a raw string or an i18n key. Defaults to '@general:terms.common.description'.\n */\n title?: string;\n /**\n * Optional group ID for the property. Defaults to 'basic-info'.\n */\n groupId?: string;\n /**\n * Whether to add a column in list view. Defaults to false.\n */\n column?: boolean;\n}\n\nexport const descriptionPlugin: AXPEntityActionPlugin = {\n name: 'description',\n order: 23,\n apply: (ctx, options?: AXPDescriptionPluginOptions) => {\n const title = options?.title ?? '@general:terms.common.description';\n const groupId = options?.groupId ?? 'basic-info';\n const addColumn = options?.column ?? false;\n\n //#region ---- Ensure Basic Info Group ----\n\n const groups = ctx.groups.list() ?? [];\n if (!groups.some((g) => g.id === groupId)) {\n ctx.groups.add({ id: groupId, title: '@general:terms.interface.basic-info' });\n }\n\n //#endregion\n\n //#region ---- Add Description Property ----\n\n const props = ctx.properties.list();\n if (!props.some((p) => p.name === 'description')) {\n ctx.properties.add({\n name: 'description',\n title,\n groupId,\n schema: {\n dataType: 'string',\n interface: {\n type: AXPWidgetsList.Editors.LargeTextBox,\n options: {\n rows: 4,\n },\n },\n },\n validations: [],\n options: {\n sort: { enabled: false },\n filter: {\n advance: { enabled: true },\n inline: { enabled: false },\n },\n },\n });\n }\n\n //#endregion\n\n //#region ---- Add Description Column ----\n\n if (addColumn) {\n const columns = ctx.columns.list() ?? [];\n if (!columns.some((c) => c.name === 'description')) {\n ctx.columns.add({\n name: 'description',\n title,\n options: {\n width: '300px',\n visible: false,\n },\n });\n }\n }\n\n //#endregion\n\n //#region ---- Update Interface Layouts ----\n\n const ensureLayoutProperty = <T extends AXPEntityMasterLayoutView>(layout: T): T => {\n layout.sections = layout.sections ?? [];\n if (!layout.sections.some((s) => s.id === groupId)) {\n layout.sections.push({ id: groupId, order: 10 });\n }\n\n layout.properties = layout.properties ?? [];\n if (!layout.properties.some((p) => p.name === 'description')) {\n layout.properties.push({\n name: 'description',\n layout: {\n positions: { lg: { colSpan: 12, order: 30 } },\n },\n });\n }\n\n return layout;\n };\n\n ctx.interfaces.master.create.update((create) =>\n ensureLayoutProperty((create ?? { sections: [], properties: [] }) as AXPEntityMasterCreateLayoutView)\n );\n ctx.interfaces.master.modify.update((modify) =>\n ensureLayoutProperty((modify ?? { sections: [], properties: [] }) as AXPEntityMasterUpdateLayoutView)\n );\n ctx.interfaces.master.single.update((single) =>\n ensureLayoutProperty((single ?? { title: ctx.entity.title, sections: [], properties: [] }) as AXPEntityMasterSingleLayoutView)\n );\n\n //#endregion\n },\n};\n\n","import { AXP_ENTITY_ACTION_PLUGIN } from '@acorex-platform/framework-client/layout/entity';\nimport { NgModule } from '@angular/core';\nimport { descriptionPlugin } from './description.plugin';\n\n@NgModule({\n declarations: [],\n imports: [],\n exports: [],\n providers: [{ provide: AXP_ENTITY_ACTION_PLUGIN, multi: true, useValue: descriptionPlugin }],\n})\nexport class AXPDescriptionPluginModule {}\n\n","\nimport { AXPEntityAction, AXPEntityCommandScope, type AXPEntityMasterSingleLayoutView, type AXPEntityMasterUpdateLayoutView, createQueryView } from '@acorex-platform/framework-shared/entity';\nimport { actionExists, AXPEntityActionPlugin, ensureListActions } from '@acorex-platform/framework-client/layout/entity';\nimport { AXPWidgetsList } from '@acorex-platform/framework-shared/core';\nimport { AXPCommonCommandKeys } from '@acorex-platform/module-common-client/contracts';\n\n//#region ---- Types ----\n\n/** Options for the disable plugin. */\nexport interface AXPDisablePluginOptions {\n /** Name of the boolean field used for disabled state. Defaults to `'isDisabled'`. */\n fieldName?: string;\n /**\n * When set, applied to the disable field schema `readonly`\n * (boolean or expression string, e.g. derived from another form field).\n */\n disableFieldReadonly?: boolean | string;\n}\n\nconst DEFAULT_DISABLE_FIELD_NAME = 'isDisabled';\n\n//#endregion\n\nexport const disablePlugin: AXPEntityActionPlugin = {\n name: 'disable',\n order: 70,\n apply: (ctx, options?: AXPDisablePluginOptions) => {\n ensureListActions(ctx);\n\n const fieldName = options?.fieldName ?? DEFAULT_DISABLE_FIELD_NAME;\n\n //#region ---- Add Disable Field Property ----\n\n // Ensure settings group exists\n const groupId = 'settings';\n const groups = ctx.groups.list() ?? [];\n if (!groups.some((g: any) => g.id === groupId)) {\n ctx.groups.add({ id: groupId, title: '@general:terms.interface.settings' } as any);\n }\n\n // Add disable field property if it doesn't exist\n const props = ctx.properties.list();\n if (!props.some((p: any) => p.name === fieldName)) {\n ctx.properties.add({\n name: fieldName,\n title: '@general:terms.status.states.is-disabled',\n groupId,\n schema: {\n dataType: 'boolean',\n ...(options?.disableFieldReadonly !== undefined\n ? { readonly: options.disableFieldReadonly }\n : {}),\n interface: {\n type: AXPWidgetsList.Editors.ToggleSwitch,\n options: {\n // Default to false (not disabled)\n defaultValue: false,\n // When isDisabled is true → show \"Disabled\" with danger visual (negative=true)\n // When isDisabled is false → show \"Enabled\" with success visual\n trulyText: '@general:terms.status.options.disabled',\n falsyText: '@general:terms.status.options.enabled',\n negative: true,\n nullValue: false,\n },\n },\n },\n validations: [],\n options: {\n sort: { enabled: true },\n filter: {\n advance: { enabled: true },\n inline: { enabled: true },\n },\n },\n } as any);\n }\n\n // Add disable field to columns for list view\n const columns = ctx.columns.list() ?? [];\n if (!columns.some((c: any) => c.name === fieldName)) {\n ctx.columns.add({\n name: fieldName,\n title: '@general:terms.status.states.is-enabled',\n width: 100,\n sortable: true,\n filterable: true,\n } as any);\n }\n\n //#endregion\n\n //#region ---- Add Disable Actions ----\n\n ctx.interfaces.update((i) => {\n const disableCmdName = AXPCommonCommandKeys.Disable.Disable;\n const enableCmdName = AXPCommonCommandKeys.Disable.Enable;\n const bulkDisableCmdName = AXPCommonCommandKeys.Disable.BulkDisable;\n const bulkEnableCmdName = AXPCommonCommandKeys.Disable.BulkEnable;\n\n // Add disable action to list view\n const listActions = (i as any).master.list.actions as AXPEntityAction[];\n if (!actionExists(listActions, disableCmdName)) {\n listActions.push({\n title: '@general:actions.disable.title',\n command: {\n name: disableCmdName,\n options: {\n refId: '{{ context.eval(\"id\") }}',\n refType: `${ctx.entity.module}.${ctx.entity.name}`,\n },\n },\n priority: 'secondary',\n type: 'disable',\n icon: 'fa-light fa-ban',\n scope: AXPEntityCommandScope.Individual,\n hidden: `{{ context.eval(\"${fieldName}\") }}`,\n });\n }\n\n // Add enable action to list view\n if (!actionExists(listActions, enableCmdName)) {\n listActions.push({\n title: '@general:actions.enable.title',\n command: {\n name: enableCmdName,\n options: {\n refId: '{{ context.eval(\"id\") }}',\n refType: `${ctx.entity.module}.${ctx.entity.name}`,\n },\n },\n priority: 'secondary',\n type: 'enable',\n icon: 'fa-light fa-check',\n scope: AXPEntityCommandScope.Individual,\n hidden: `{{ !context.eval(\"${fieldName}\") }}`,\n });\n }\n\n // Add bulk disable action to list view\n if (!actionExists(listActions, bulkDisableCmdName)) {\n listActions.push({\n title: '@general:actions.bulk-disable.title',\n command: {\n name: bulkDisableCmdName,\n options: {\n refType: `${ctx.entity.module}.${ctx.entity.name}`,\n },\n },\n priority: 'secondary',\n type: 'disable',\n icon: 'fa-light fa-ban',\n scope: AXPEntityCommandScope.Selected,\n });\n }\n\n // Add bulk enable action to list view\n if (!actionExists(listActions, bulkEnableCmdName)) {\n listActions.push({\n title: '@general:actions.bulk-enable.title',\n command: {\n name: bulkEnableCmdName,\n options: {\n refType: `${ctx.entity.module}.${ctx.entity.name}`,\n },\n },\n priority: 'secondary',\n type: 'enable',\n icon: 'fa-light fa-check',\n scope: AXPEntityCommandScope.Selected,\n });\n }\n\n // Add disable action to single view\n const singleActions = ((i as any).master?.single?.actions as AXPEntityAction[]) || [];\n if (!actionExists(singleActions, disableCmdName)) {\n singleActions.push({\n title: '@general:actions.disable.title',\n command: {\n name: disableCmdName,\n options: {\n refId: '{{ context.eval(\"id\") }}',\n refType: `${ctx.entity.module}.${ctx.entity.name}`,\n },\n },\n priority: 'secondary',\n type: 'disable',\n icon: 'fa-light fa-ban',\n scope: AXPEntityCommandScope.Individual,\n hidden: `{{ context.eval(\"${fieldName}\") }}`,\n });\n }\n\n // Add enable action to single view\n if (!actionExists(singleActions, enableCmdName)) {\n singleActions.push({\n title: '@general:actions.enable.title',\n command: {\n name: enableCmdName,\n options: {\n refId: '{{ context.eval(\"id\") }}',\n refType: `${ctx.entity.module}.${ctx.entity.name}`,\n },\n },\n priority: 'secondary',\n type: 'enable',\n icon: 'fa-light fa-check',\n scope: AXPEntityCommandScope.Individual,\n hidden: `{{ !context.eval(\"${fieldName}\") }}`,\n });\n }\n\n return i as any;\n });\n\n //#endregion\n\n //#region ---- Update Interface Layouts ----\n\n // Ensure layout includes property in modify/single\n const ensureIsDisabledLayout = <TLayout extends { sections: unknown[]; properties?: unknown[] }>(\n base: TLayout,\n ): TLayout => {\n // IMPORTANT:\n // Many entities reuse the same `sections` / `properties` arrays across create/update/single (shared reference).\n // Never mutate those arrays in-place; always clone before pushing to avoid leaking changes into other interfaces.\n const sections = [...base.sections] as TLayout['sections'];\n const properties = [...(base.properties ?? [])] as NonNullable<TLayout['properties']>;\n\n if (!sections.some((s: any) => s.id === groupId)) {\n sections.push({ id: groupId, order: 150 } as any);\n }\n\n if (!properties.some((p: any) => p.name === fieldName)) {\n properties.push({\n name: fieldName,\n layout: {\n positions: { lg: { colSpan: 6, order: 95 } },\n },\n } as any);\n }\n\n return {\n ...base,\n sections,\n properties,\n } as TLayout;\n };\n\n const ensureUpdateLayoutProperty = (\n layout: AXPEntityMasterUpdateLayoutView | undefined,\n ): AXPEntityMasterUpdateLayoutView => {\n const base: AXPEntityMasterUpdateLayoutView = layout ?? { sections: [], properties: [] };\n return ensureIsDisabledLayout(base);\n };\n\n const ensureSingleLayoutProperty = (\n layout: AXPEntityMasterSingleLayoutView | undefined,\n ): AXPEntityMasterSingleLayoutView => {\n const base: AXPEntityMasterSingleLayoutView = layout ?? { title: ctx.entity.title, sections: [], properties: [] };\n return ensureIsDisabledLayout(base);\n };\n\n ctx.interfaces.master.modify.update((modify) => ensureUpdateLayoutProperty(modify));\n ctx.interfaces.master.single.update((single) => ensureSingleLayoutProperty(single));\n\n // Add disabled view to show only disabled items\n ctx.interfaces.master.list.update((list) => {\n const next = list ?? { actions: [], views: [] };\n next.views = next.views ?? [];\n\n // Check if disabled view already exists\n if (!next.views.some((v: any) => v.name === 'disabled')) {\n next.views.push(\n createQueryView('disabled', '@general:terms.status.states.is-disabled', false, {\n conditions: [\n {\n name: fieldName,\n operator: { type: 'equal' },\n value: true,\n hidden: true,\n },\n ],\n sorts: [\n { name: 'disabledAt', dir: 'desc' },\n { name: 'title', dir: 'asc' },\n ],\n }),\n );\n }\n\n return next;\n });\n\n //#endregion\n },\n};\n","import { AXP_ENTITY_ACTION_PLUGIN } from '@acorex-platform/framework-client/layout/entity';\nimport { provideCommandSetups } from '@acorex-platform/framework-client/runtime';\nimport { AXPCommonCommandKeys } from '@acorex-platform/module-common-client/contracts';\nimport { NgModule } from '@angular/core';\nimport { disablePlugin } from './disable.plugin';\n\n@NgModule({\n providers: [\n { provide: AXP_ENTITY_ACTION_PLUGIN, multi: true, useValue: disablePlugin },\n provideCommandSetups([\n {\n key: AXPCommonCommandKeys.Disable.Disable,\n command: () =>\n import('./commands/disable-entity.command').then((m) => m.AXPDisableEntityCommand),\n },\n {\n key: AXPCommonCommandKeys.Disable.Enable,\n command: () =>\n import('./commands/enable-entity.command').then((m) => m.AXPEnableEntityCommand),\n },\n {\n key: AXPCommonCommandKeys.Disable.BulkDisable,\n command: () =>\n import('./commands/bulk-disable-entity.command').then((m) => m.AXPBulkDisableEntityCommand),\n },\n {\n key: AXPCommonCommandKeys.Disable.BulkEnable,\n command: () =>\n import('./commands/bulk-enable-entity.command').then((m) => m.AXPBulkEnableEntityCommand),\n },\n ]),\n ],\n})\nexport class AXPDisablePluginModule {}\n","import {\n AXPEntityActionPlugin,\n cloneLayoutArrays,\n ensureLayoutPropertyView,\n ensureLayoutSection,\n ensureListActions,\n} from '@acorex-platform/framework-client/layout/entity';\nimport { AXPWidgetsList } from '@acorex-platform/framework-shared/core';\n\nexport interface AXPDefaultPluginOptions {\n /**\n * Optional title for the `isDefault` field and column.\n * Can be a raw string or an i18n key. Defaults to '@general:terms.status.states.is-default'.\n */\n title?: string;\n}\n\nexport const defaultPlugin: AXPEntityActionPlugin = {\n name: 'default',\n order: 67,\n apply: (ctx, options?: AXPDefaultPluginOptions) => {\n ensureListActions(ctx);\n\n const title = options?.title ?? '@general:terms.status.states.is-default';\n\n //#region ---- Add isDefault Property ----\n\n // Ensure settings group exists\n const groupId = 'settings';\n const groups = ctx.groups.list() ?? [];\n if (!groups.some((g: any) => g.id === groupId)) {\n ctx.groups.add({ id: groupId, title: '@general:terms.interface.settings' } as any);\n }\n\n // Add isDefault property if it doesn't exist\n const props = ctx.properties.list();\n if (!props.some((p: any) => p.name === 'isDefault')) {\n ctx.properties.add({\n name: 'isDefault',\n title,\n groupId,\n schema: {\n dataType: 'boolean',\n interface: {\n type: AXPWidgetsList.Editors.ToggleSwitch,\n options: {\n // Default to false (not default)\n defaultValue: false,\n negative: false,\n nullValue: false,\n trulyText: '@general:terms.common.yes-no.yes',\n falsyText: '@general:terms.common.yes-no.no',\n },\n },\n },\n validations: [],\n options: {\n sort: { enabled: true },\n filter: {\n advance: { enabled: true },\n inline: { enabled: true },\n },\n },\n } as any);\n }\n\n //#endregion\n\n //#region ---- Add isDefault Column ----\n\n // Add isDefault to columns for list view\n const columns = ctx.columns.list() ?? [];\n if (!columns.some((c: any) => c.name === 'isDefault')) {\n ctx.columns.add({\n name: 'isDefault',\n title,\n width: 100,\n sortable: true,\n filterable: true,\n } as any);\n }\n\n //#endregion\n\n //#region ---- Update Interface Layouts ----\n\n // Ensure layout includes property in create/modify/single\n const applyLayoutPatch = (layout: any) => {\n const next = cloneLayoutArrays(layout);\n ensureLayoutSection(next, { id: groupId, order: 150 } as any);\n ensureLayoutPropertyView(next, {\n name: 'isDefault',\n layout: { positions: { lg: { colSpan: 6, order: 92 } } },\n } as any);\n return next;\n };\n\n ctx.interfaces.master.create.update((create) => applyLayoutPatch(create ?? { sections: [], properties: [] }));\n ctx.interfaces.master.modify.update((modify) => applyLayoutPatch(modify ?? { sections: [], properties: [] }));\n ctx.interfaces.master.single.update((single) => applyLayoutPatch(single ?? { title: ctx.entity.title, sections: [], properties: [] }));\n\n //#endregion\n },\n};\n\n","import { AXP_ENTITY_ACTION_PLUGIN } from '@acorex-platform/framework-client/layout/entity';\nimport { NgModule } from '@angular/core';\nimport { defaultPlugin } from './default.plugin';\n\n@NgModule({\n declarations: [],\n imports: [],\n exports: [],\n providers: [{ provide: AXP_ENTITY_ACTION_PLUGIN, multi: true, useValue: defaultPlugin }],\n})\nexport class AXPDefaultPluginModule {}\n\n\n","import {\n AXPEntityMasterCreateLayoutView,\n AXPEntityProperty,\n} from '@acorex-platform/framework-shared/entity';\nimport { AXPEntityActionPlugin } from '@acorex-platform/framework-client/layout/entity';\n\n//#region ---- Types ----\n\nexport interface AXPDerivedNamePluginOptions {\n /** Target programmatic field. Defaults to `name`. */\n nameField?: string;\n /** Source display field used to derive the name. Defaults to `title`. */\n sourceField?: string;\n /** Hide the name field on create dialog. Defaults to `true`. */\n hideOnCreate?: boolean;\n /** Lock name after the record exists. Defaults to `true`. */\n readonlyAfterCreate?: boolean;\n /** Ensure required + variable-name validations on the name field. Defaults to `true`. */\n enforceValidations?: boolean;\n}\n\nexport interface AXPDerivedNameExtension {\n nameField: string;\n sourceField: string;\n}\n\n//#endregion\n\n//#region ---- Plugin ----\n\nexport const derivedNamePlugin: AXPEntityActionPlugin = {\n name: 'derived-name',\n order: 22,\n apply: (ctx, options?: AXPDerivedNamePluginOptions) => {\n const nameField = options?.nameField ?? 'name';\n const sourceField = options?.sourceField ?? 'title';\n const hideOnCreate = options?.hideOnCreate !== false;\n const readonlyAfterCreate = options?.readonlyAfterCreate !== false;\n const enforceValidations = options?.enforceValidations !== false;\n\n const props = ctx.properties.list();\n const nameProp = props.find((p) => p.name === nameField);\n const sourceProp = props.find((p) => p.name === sourceField);\n\n if (!nameProp) {\n console.warn(`[derived-name-plugin] Name field \"${nameField}\" not found. Plugin skipped.`);\n return;\n }\n\n if (!sourceProp) {\n console.warn(`[derived-name-plugin] Source field \"${sourceField}\" not found. Plugin skipped.`);\n return;\n }\n\n ctx.properties.find(nameField).update((prop) => {\n const next = { ...prop } as AXPEntityProperty;\n next.schema = { ...(next.schema ?? {}) };\n\n if (readonlyAfterCreate) {\n next.schema.readonly = '{{ !!context.eval(\"id\") }}';\n }\n\n if (enforceValidations) {\n const validations = [...(next.validations ?? [])];\n if (!validations.some((v) => v.rule === 'required')) {\n validations.push({ rule: 'required' });\n }\n if (!validations.some((v) => v.rule === 'variable-name')) {\n validations.push({ rule: 'variable-name' });\n }\n next.validations = validations;\n }\n\n return next;\n });\n\n const triggerAction = `{{ if (!context.eval('id')) { context.set('${nameField}', utils.toVariableName(context.eval('${sourceField}'))); } }}`;\n const triggerEvent = `{{ events.context('${sourceField}') }}`;\n\n ctx.properties.find(sourceField).update((prop) => {\n const next = { ...prop } as AXPEntityProperty;\n next.schema = { ...(next.schema ?? {}) };\n next.schema.interface = { ...(next.schema.interface ?? {}) };\n\n const triggers = [...(next.schema.interface.triggers ?? [])];\n const alreadyConfigured = triggers.some(\n (t) => t.event === triggerEvent && t.action?.includes(`context.set('${nameField}'`),\n );\n\n if (!alreadyConfigured) {\n triggers.push({ event: triggerEvent, action: triggerAction });\n }\n\n next.schema.interface.triggers = triggers;\n return next;\n });\n\n if (hideOnCreate) {\n ctx.interfaces.master.create.update((create) => {\n const next = {\n ...(create ?? { sections: [], properties: [] }),\n sections: create?.sections ?? [],\n properties: (create?.properties ?? []).filter((p) => p.name !== nameField),\n };\n return next as AXPEntityMasterCreateLayoutView;\n });\n }\n\n const entity = ctx.entity as { extensions?: Record<string, unknown> };\n entity.extensions ??= {};\n entity.extensions['derivedName'] = {\n nameField,\n sourceField,\n } satisfies AXPDerivedNameExtension;\n },\n};\n\n//#endregion\n","import { AXP_ENTITY_ACTION_PLUGIN } from '@acorex-platform/framework-client/layout/entity';\nimport { NgModule } from '@angular/core';\nimport { derivedNamePlugin } from './derived-name.plugin';\n\n@NgModule({\n providers: [{ provide: AXP_ENTITY_ACTION_PLUGIN, multi: true, useValue: derivedNamePlugin }],\n})\nexport class AXPDerivedNamePluginModule {}\n","import {\n AXP_APPEARANCE_SECTION_ORDER,\n AXPEntityActionPlugin,\n cloneLayoutArrays,\n ensureLayoutPropertyView,\n ensureLayoutSection,\n ensureListActions,\n} from '@acorex-platform/framework-client/layout/entity';\nimport { AXPWidgetsList } from '@acorex-platform/framework-shared/core';\n\nexport interface AXPIconPluginOptions {\n column?: {\n enabled?: boolean; // default: true\n visible?: boolean; // default: true\n width?: number; // default: 120\n };\n}\n\nexport const iconPlugin: AXPEntityActionPlugin = {\n name: 'icon',\n order: 75,\n apply: (ctx, options?: AXPIconPluginOptions) => {\n ensureListActions(ctx);\n\n const groupId = 'appearance';\n const groups = ctx.groups.list() ?? [];\n if (!groups.some((g: any) => g.id === groupId)) {\n ctx.groups.add({ id: groupId, title: '@general:terms.interface.appearance' } as any);\n }\n\n const props = ctx.properties.list();\n if (!props.some((p: any) => p.name === 'icon')) {\n ctx.properties.add({\n name: 'icon',\n title: '@general:terms.common.icon',\n groupId,\n schema: {\n dataType: 'string',\n interface: {\n type: AXPWidgetsList.Theme.IconChooser,\n options: {},\n },\n },\n validations: [],\n options: {\n sort: { enabled: false },\n filter: {\n advance: { enabled: false },\n inline: { enabled: false },\n },\n },\n } as any);\n }\n\n //#region ---- Add Column to List View ----\n\n // Add icon column to list view if enabled (default: true)\n const columnEnabled = options?.column?.enabled ?? true;\n if (columnEnabled) {\n const columns = ctx.columns.list() ?? [];\n if (!columns.some((c: any) => c.name === 'icon')) {\n ctx.columns.add({\n name: 'icon',\n title: '@general:terms.common.icon',\n options: {\n visible: options?.column?.visible ?? false,\n width: `${options?.column?.width ?? 120}px`,\n },\n });\n }\n }\n\n //#endregion\n\n //#region ---- Update Interface Layouts ----\n\n // Ensure layout includes property in create/modify/single\n const applyLayoutPatch = (layout: any) => {\n const next = cloneLayoutArrays(layout);\n ensureLayoutSection(next, { id: groupId, order: AXP_APPEARANCE_SECTION_ORDER } as any);\n ensureLayoutPropertyView(next, { name: 'icon', layout: { positions: { lg: { colSpan: 6 } } } } as any);\n return next;\n };\n\n ctx.interfaces.master.create.update((create) => applyLayoutPatch(create ?? { sections: [], properties: [] }));\n ctx.interfaces.master.modify.update((modify) => applyLayoutPatch(modify ?? { sections: [], properties: [] }));\n ctx.interfaces.master.single.update((single) => applyLayoutPatch(single ?? { title: ctx.entity.title, sections: [], properties: [] }));\n\n //#endregion\n },\n};\n","import { AXP_ENTITY_ACTION_PLUGIN } from '@acorex-platform/framework-client/layout/entity';\nimport { NgModule } from '@angular/core';\nimport { iconPlugin } from './icon.plugin';\n\n@NgModule({\n declarations: [],\n imports: [],\n exports: [],\n providers: [{ provide: AXP_ENTITY_ACTION_PLUGIN, multi: true, useValue: iconPlugin }],\n})\nexport class AXPIconPluginModule {}\n","import { AXToastService } from '@acorex/components/toast';\nimport { AXTranslationService } from '@acorex/core/translation';\nimport type { AXPContextData } from '@acorex-platform/framework-shared/core';\nimport { AXPCommonSettings, AXPSettingsService } from '@acorex-platform/framework-client/common';\nimport { AXPEntityBroadcastService } from '@acorex-platform/framework-client/core';\nimport { inject, Injectable } from '@angular/core';\n\n@Injectable({ providedIn: 'root' })\nexport class AXPLockEntityCommandHelper {\n private readonly translationService = inject(AXTranslationService);\n private readonly toastService = inject(AXToastService);\n private readonly settingsService = inject(AXPSettingsService);\n private readonly entityEvents = inject(AXPEntityBroadcastService);\n\n async showSuccessToast(titleKey: string, contentKey?: string): Promise<void> {\n const enabled = await this.settingsService.get<boolean>(AXPCommonSettings.EnableOperationToasts);\n if (!enabled) {\n return;\n }\n\n this.toastService.show({\n color: 'success',\n title: await this.translationService.translateAsync(titleKey),\n content: contentKey ? await this.translationService.translateAsync(contentKey) : undefined,\n });\n }\n\n dispatchLockChanged(refType: string, meta?: AXPContextData): void {\n this.entityEvents.publishLayoutRefresh(refType, meta as Record<string, unknown> | undefined);\n }\n}\n","import type { AXPContextData } from '@acorex-platform/framework-shared/core';\nimport { resolveEntityActionRef } from '@acorex-platform/framework-shared/runtime';\n\nexport interface AXPLockCommandContext {\n refId: string;\n refType: string;\n}\n\nexport function normalizeLockInput(input: AXPContextData): AXPLockCommandContext | null {\n const resolved = resolveEntityActionRef(input);\n if (!resolved) {\n return null;\n }\n\n return { refId: resolved.refId, refType: resolved.refType };\n}\n","import { AXPActionMenuItem } from '@acorex-platform/framework-shared/core';\nimport { AXTranslationService } from '@acorex/core/translation';\nimport { AXPLockService } from '@acorex-platform/framework-client/common';\nimport { AXPSessionService } from '@acorex-platform/framework-client/auth';\nimport { AXPLayoutBuilderService } from '@acorex-platform/framework-client/layout/builder';\nimport { AXPCommand, type AXPCommandExecuteResultPromise } from '@acorex-platform/framework-shared/runtime';\nimport { AXPRuntimeCommandResult, type AXPContextData } from '@acorex-platform/framework-shared/core';\nimport { inject, Injectable } from '@angular/core';\n\nimport { AXPLockEntityCommandHelper } from './lock-entity.command.helper';\nimport { normalizeLockInput } from './lock-entity.command.util';\n\nexport interface AXPLockEntityCommandOutput {\n locked: boolean;\n lockDuration?: string;\n lockReason?: string;\n}\n\n@Injectable({ providedIn: 'root' })\nexport class AXPLockEntityCommand implements AXPCommand<AXPContextData, AXPLockEntityCommandOutput> {\n private readonly translationService = inject(AXTranslationService);\n private readonly layoutBuilder = inject(AXPLayoutBuilderService);\n private readonly lockService = inject(AXPLockService);\n private readonly sessionService = inject(AXPSessionService);\n private readonly helper = inject(AXPLockEntityCommandHelper);\n\n async execute(input: AXPContextData): AXPCommandExecuteResultPromise<AXPLockEntityCommandOutput> {\n const context = normalizeLockInput(input);\n if (!context) {\n return {\n success: false,\n message: {\n text: await this.translationService.translateAsync('@general:messages.entity.invalid-data'),\n },\n };\n }\n\n const durationOptions = [\n {\n value: '1h',\n text: await this.translationService.translateAsync('@lock-system:components.lock-dialog.fields.duration.options.1h'),\n hours: 1,\n },\n {\n value: '1d',\n text: await this.translationService.translateAsync('@lock-system:components.lock-dialog.fields.duration.options.1d'),\n hours: 24,\n },\n {\n value: 'infinite',\n text: await this.translationService.translateAsync('@lock-system:components.lock-dialog.fields.duration.options.infinite'),\n },\n ];\n\n const dialogTitle = await this.translationService.translateAsync('@lock-system:components.lock-dialog.title');\n\n const dialogRef = await this.layoutBuilder\n .create()\n .dialog((dialog) => {\n dialog\n .setTitle(dialogTitle)\n .setContext({ duration: '1h', reason: '' })\n .content((flex) => {\n flex\n .setDirection('column')\n .formField('@lock-system:components.lock-dialog.fields.duration.title', (field) => {\n field.path('duration');\n field.selectBox({\n valueField: 'value',\n textField: 'text',\n dataSource: durationOptions,\n validations: [{ rule: 'required' }],\n });\n })\n .formField('@lock-system:components.lock-dialog.fields.reason.title', (field) => {\n field.path('reason');\n field.largeTextBox({\n rows: 3,\n placeholder: '@lock-system:components.lock-dialog.fields.reason.placeholder',\n });\n });\n })\n .setActions((actions) => {\n actions.cancel('@lock-system:components.lock-dialog.actions.cancel');\n const confirmAction: AXPActionMenuItem = {\n title: '@lock-system:components.lock-dialog.actions.confirm',\n color: 'primary',\n command: { name: 'submit', options: { validate: true } },\n } as AXPActionMenuItem;\n actions.custom(confirmAction);\n });\n })\n .show();\n\n const action = dialogRef.action();\n if (action === 'cancel') {\n dialogRef.close();\n return {\n success: false, \n message: { details: { locked: false } },};\n }\n\n const form = dialogRef.context() as { duration?: string; reason?: string };\n const selected = form?.duration ?? '1h';\n const selectedDuration = durationOptions.find((d) => d.value === selected);\n const expireAt = selectedDuration?.hours\n ? new Date(Date.now() + selectedDuration.hours * 60 * 60 * 1000)\n : undefined;\n\n await this.lockService.lock({\n refId: context.refId,\n refType: context.refType,\n type: 'user',\n date: new Date().toISOString(),\n expireAt,\n lockedBy: {\n id: this.sessionService.user?.id ?? 'system',\n type: 'oidc.users',\n },\n });\n\n dialogRef.close();\n this.helper.dispatchLockChanged(context.refType);\n await this.helper.showSuccessToast(\n '@general:workflow.entity-modified-title',\n '@general:workflow.entity-modified-body',\n );\n\n return { success: true, kind: 'object',\n data: {\n locked: true,\n lockDuration: form?.duration ?? '1h',\n lockReason: form?.reason ?? '',\n },\n };\n }\n}\n","import { AXDialogService } from '@acorex/components/dialog';\nimport { AXTranslationService } from '@acorex/core/translation';\nimport { AXPLockService } from '@acorex-platform/framework-client/common';\nimport { AXPCommand, type AXPCommandExecuteResultPromise } from '@acorex-platform/framework-shared/runtime';\nimport { AXPRuntimeCommandResult, type AXPContextData } from '@acorex-platform/framework-shared/core';\nimport { inject, Injectable } from '@angular/core';\n\nimport { AXPLockEntityCommandHelper } from './lock-entity.command.helper';\nimport { normalizeLockInput } from './lock-entity.command.util';\n\nexport interface AXPUnlockEntityCommandOutput {\n unlocked: boolean;\n}\n\n@Injectable({ providedIn: 'root' })\nexport class AXPUnlockEntityCommand implements AXPCommand<AXPContextData, AXPUnlockEntityCommandOutput> {\n private readonly dialogService = inject(AXDialogService);\n private readonly translationService = inject(AXTranslationService);\n private readonly lockService = inject(AXPLockService);\n private readonly helper = inject(AXPLockEntityCommandHelper);\n\n async execute(input: AXPContextData): AXPCommandExecuteResultPromise<AXPUnlockEntityCommandOutput> {\n const context = normalizeLockInput(input);\n if (!context) {\n return {\n success: false,\n message: {\n text: await this.translationService.translateAsync('@general:messages.entity.invalid-data'),\n },\n };\n }\n\n const dialogResult = await this.dialogService.confirm(\n await this.translationService.translateAsync('@lock-system:components.unlock-dialog.title'),\n await this.translationService.translateAsync('@lock-system:components.unlock-dialog.description'),\n 'warning',\n 'horizontal',\n false,\n 'cancel',\n );\n\n if (!dialogResult.result) {\n return {\n success: false, \n message: { details: { unlocked: false } },};\n }\n\n try {\n await this.lockService.unlock({\n refId: context.refId,\n refType: context.refType,\n type: 'user',\n });\n\n this.helper.dispatchLockChanged(context.refType);\n await this.helper.showSuccessToast(\n '@general:workflow.entity-modified-title',\n '@general:workflow.entity-modified-body',\n );\n\n return { success: true, kind: 'object', data: { unlocked: true } };\n } catch (error) {\n console.error('Unlock failed:', error);\n\n await this.dialogService.alert(\n await this.translationService.translateAsync('@lock-system:messages.error.unlock.title'),\n await this.translationService.translateAsync('@lock-system:messages.error.unlock.description'),\n 'danger',\n );\n\n return {\n success: false,\n \n message: { details: { unlocked: false },\n text: error instanceof Error ? error.message : 'Unlock failed',\n },\n };\n }\n }\n}\n","import { AXPLockService } from \"@acorex-platform/framework-client/common\";\nimport { AXPExpressionEvaluatorScopeProvider, AXPExpressionEvaluatorScopeProviderContext } from \"@acorex-platform/framework-shared/core\";\nimport { inject } from \"@angular/core\";\n\nexport class AXMLockEvaluatorScopeProvider implements AXPExpressionEvaluatorScopeProvider {\n\n protected lockService = inject(AXPLockService , {\n optional: true,\n });\n\n async provide(context: AXPExpressionEvaluatorScopeProviderContext): Promise<void> {\n context.addScope('lock', {\n check: async (refId: string, refType: string) => {\n if(this.lockService){\n const lock = await this.lockService.check({\n refId, refType\n });\n return lock;\n }\n return false;\n }\n })\n }\n}","import { NgModule } from '@angular/core';\nimport { provideCommandSetups } from '@acorex-platform/framework-client/runtime';\nimport { AXPCommonCommandKeys } from '@acorex-platform/module-common-client/contracts';\nimport { AXP_EXPRESSION_EVALUATOR_SCOPE_PROVIDER } from '@acorex-platform/framework-client/core';\nimport { AXPLockEntityCommand } from './commands/lock-entity.command';\nimport { AXPUnlockEntityCommand } from './commands/unlock-entity.command';\nimport { AXMLockEvaluatorScopeProvider } from './lock-evaluator-scope.provider';\n\n@NgModule({\n imports: [],\n providers: [\n { provide: AXP_EXPRESSION_EVALUATOR_SCOPE_PROVIDER, multi: true, useClass: AXMLockEvaluatorScopeProvider },\n AXPLockEntityCommand,\n AXPUnlockEntityCommand,\n provideCommandSetups([\n {\n key: AXPCommonCommandKeys.Lock.Lock,\n command: () => import('./commands/lock-entity.command').then((m) => m.AXPLockEntityCommand),\n },\n {\n key: AXPCommonCommandKeys.Lock.Unlock,\n command: () => import('./commands/unlock-entity.command').then((m) => m.AXPUnlockEntityCommand),\n },\n ]),\n ],\n})\nexport class AXMLockSystemModule {}\n","import { AXPEntityMasterCreateLayoutView, AXPEntityMasterLayoutView, AXPEntityMasterSingleLayoutView, AXPEntityMasterUpdateLayoutView, AXPEntityProperty, AXPEntityPropertyGroup, AXPEntityTableColumn } from '@acorex-platform/framework-shared/entity';\nimport { AXPEntityActionPlugin } from '@acorex-platform/framework-client/layout/entity';\nimport { AXPWidgetsList } from '@acorex-platform/framework-shared/core';\n\nexport interface AXPNamePluginOptions {\n /**\n * Optional title for the `name` field and column.\n * Can be a raw string or an i18n key. Defaults to '@general:terms.common.name'.\n */\n title?: string;\n /**\n * Optional group ID for the property. Defaults to 'basic-info'.\n */\n groupId?: string;\n /**\n * Whether the field is required. Defaults to false.\n */\n required?: boolean;\n /**\n * Whether to add a column in list view. Defaults to true.\n */\n column?: boolean;\n}\n\nexport const namePlugin: AXPEntityActionPlugin = {\n name: 'name',\n order: 20,\n apply: (ctx, options?: AXPNamePluginOptions) => {\n const title = options?.title ?? '@general:terms.common.name';\n const groupId = options?.groupId ?? 'basic-info';\n const required = options?.required ?? false;\n const addColumn = options?.column ?? true;\n\n //#region ---- Ensure Basic Info Group ----\n\n const groups = ctx.groups.list() ?? [];\n if (!groups.some((g) => g.id === groupId)) {\n ctx.groups.add({ id: groupId, title: '@general:terms.interface.basic-info' });\n }\n\n //#endregion\n\n //#region ---- Add Name Property ----\n\n const props = ctx.properties.list();\n if (!props.some((p) => p.name === 'name')) {\n ctx.properties.add({\n name: 'name',\n title,\n groupId,\n schema: {\n dataType: 'string',\n interface: {\n type: AXPWidgetsList.Editors.TextBox,\n },\n },\n validations: required\n ? [\n {\n rule: 'required',\n },\n ]\n : [],\n options: {\n sort: { enabled: true },\n filter: {\n advance: { enabled: true },\n inline: { enabled: true },\n },\n },\n });\n }\n\n //#endregion\n\n //#region ---- Add Name Column ----\n\n if (addColumn) {\n const columns = ctx.columns.list() ?? [];\n if (!columns.some((c) => c.name === 'name')) {\n ctx.columns.add({\n name: 'name',\n title,\n options: {\n width: '200px',\n visible: true,\n },\n });\n }\n }\n\n //#endregion\n\n //#region ---- Update Interface Layouts ----\n\n const ensureLayoutProperty = <T extends AXPEntityMasterLayoutView>(layout: T): T => {\n layout.sections = layout.sections ?? [];\n if (!layout.sections.some((s) => s.id === groupId)) {\n layout.sections.push({ id: groupId, order: 10 });\n }\n\n layout.properties = layout.properties ?? [];\n if (!layout.properties.some((p) => p.name === 'name')) {\n layout.properties.push({\n name: 'name',\n layout: {\n // Width is applied by layout-ordering middleware (4+8 with title on md/lg).\n positions: { lg: { order: 10 } },\n },\n });\n }\n\n return layout;\n };\n\n ctx.interfaces.master.create.update((create) =>\n ensureLayoutProperty((create ?? { sections: [], properties: [] }) as AXPEntityMasterCreateLayoutView)\n );\n ctx.interfaces.master.modify.update((modify) =>\n ensureLayoutProperty((modify ?? { sections: [], properties: [] }) as AXPEntityMasterUpdateLayoutView)\n );\n ctx.interfaces.master.single.update((single) =>\n ensureLayoutProperty((single ?? { title: ctx.entity.title, sections: [], properties: [] }) as AXPEntityMasterSingleLayoutView)\n );\n\n //#endregion\n },\n};\n\n","import { AXP_ENTITY_ACTION_PLUGIN } from '@acorex-platform/framework-client/layout/entity';\nimport { NgModule } from '@angular/core';\nimport { namePlugin } from './name.plugin';\n\n@NgModule({\n declarations: [],\n imports: [],\n exports: [],\n providers: [{ provide: AXP_ENTITY_ACTION_PLUGIN, multi: true, useValue: namePlugin }],\n})\nexport class AXPNamePluginModule {}\n\n","import { AXPEntityMasterCreateLayoutView, AXPEntityMasterLayoutView, AXPEntityMasterSingleLayoutView, AXPEntityMasterUpdateLayoutView } from '@acorex-platform/framework-shared/entity';\nimport { AXPEntityActionPlugin } from '@acorex-platform/framework-client/layout/entity';\nimport { AXPWidgetsList } from '@acorex-platform/framework-shared/core';\n\nexport interface AXPNotesPluginOptions {\n /**\n * Optional title for the `notes` field and column.\n * Can be a raw string or an i18n key. Defaults to '@general:terms.common.notes'.\n */\n title?: string;\n /**\n * Optional group ID for the property. Defaults to 'additional-info'.\n */\n groupId?: string;\n /**\n * Whether to add a column in list view. Defaults to true.\n * When added, the column has visible: false by default (user can enable via column picker).\n */\n column?: boolean;\n}\n\nexport const notesPlugin: AXPEntityActionPlugin = {\n name: 'notes',\n order: 22,\n apply: (ctx, options?: AXPNotesPluginOptions) => {\n const title = options?.title ?? '@general:terms.common.notes';\n const groupId = options?.groupId ?? 'additional-info';\n const addColumn = options?.column ?? true;\n\n //#region ---- Ensure Additional Info Group ----\n\n const groups = ctx.groups.list() ?? [];\n if (!groups.some((g) => g.id === groupId)) {\n ctx.groups.add({ id: groupId, title: '@general:terms.interface.additional-info' });\n }\n\n //#endregion\n\n //#region ---- Add Notes Property ----\n\n const props = ctx.properties.list();\n if (!props.some((p) => p.name === 'notes')) {\n ctx.properties.add({\n name: 'notes',\n title,\n groupId,\n schema: {\n dataType: 'string',\n interface: {\n type: AXPWidgetsList.Editors.LargeTextBox,\n options: {\n rows: 4,\n },\n },\n },\n validations: [],\n options: {\n sort: { enabled: false },\n filter: {\n advance: { enabled: true },\n inline: { enabled: false },\n },\n },\n });\n }\n\n //#endregion\n\n //#region ---- Add Notes Column ----\n\n if (addColumn) {\n const columns = ctx.columns.list() ?? [];\n if (!columns.some((c) => c.name === 'notes')) {\n ctx.columns.add({\n name: 'notes',\n title,\n options: {\n width: '300px',\n visible: false,\n },\n });\n }\n }\n\n //#endregion\n\n //#region ---- Update Interface Layouts ----\n\n const ensureLayoutProperty = <T extends AXPEntityMasterLayoutView>(layout: T): T => {\n layout.sections = layout.sections ?? [];\n if (!layout.sections.some((s) => s.id === groupId)) {\n layout.sections.push({ id: groupId, order: 10 });\n }\n\n layout.properties = layout.properties ?? [];\n if (!layout.properties.some((p) => p.name === 'notes')) {\n layout.properties.push({\n name: 'notes',\n layout: {\n positions: { lg: { colSpan: 12, order: 40 } },\n },\n });\n }\n\n return layout;\n };\n\n ctx.interfaces.master.create.update((create) =>\n ensureLayoutProperty((create ?? { sections: [], properties: [] }) as AXPEntityMasterCreateLayoutView)\n );\n ctx.interfaces.master.modify.update((modify) =>\n ensureLayoutProperty((modify ?? { sections: [], properties: [] }) as AXPEntityMasterUpdateLayoutView)\n );\n ctx.interfaces.master.single.update((single) =>\n ensureLayoutProperty((single ?? { title: ctx.entity.title, sections: [], properties: [] }) as AXPEntityMasterSingleLayoutView)\n );\n\n //#endregion\n },\n};\n\n","import { AXP_ENTITY_ACTION_PLUGIN } from '@acorex-platform/framework-client/layout/entity';\nimport { NgModule } from '@angular/core';\nimport { notesPlugin } from './notes.plugin';\n\n@NgModule({\n declarations: [],\n imports: [],\n exports: [],\n providers: [{ provide: AXP_ENTITY_ACTION_PLUGIN, multi: true, useValue: notesPlugin }],\n})\nexport class AXPNotesPluginModule { }\n\n\n\n\n\n\n","\nimport { AXPEntityAction, AXPEntityCommandScope, createQueryView } from '@acorex-platform/framework-shared/entity';\nimport {\n AXPEntityActionPlugin,\n actionExists,\n cloneLayoutArrays,\n ensureLayoutPropertyView,\n ensureLayoutSection,\n ensureListActions,\n} from '@acorex-platform/framework-client/layout/entity';\nimport { AXPWidgetsList } from '@acorex-platform/framework-shared/core';\n\nexport const primaryPlugin: AXPEntityActionPlugin = {\n name: 'primary',\n order: 66,\n apply: (ctx) => {\n ensureListActions(ctx);\n\n //#region ---- Add isPrimary Property ----\n\n // Ensure settings group exists\n const groupId = 'settings';\n const groups = ctx.groups.list() ?? [];\n if (!groups.some((g: any) => g.id === groupId)) {\n ctx.groups.add({ id: groupId, title: '@general:terms.interface.settings' } as any);\n }\n\n // Add isPrimary property if it doesn't exist\n const props = ctx.properties.list();\n if (!props.some((p: any) => p.name === 'isPrimary')) {\n ctx.properties.add({\n name: 'isPrimary',\n title: '@general:terms.status.states.is-primary',\n groupId,\n schema: {\n dataType: 'boolean',\n interface: {\n type: AXPWidgetsList.Editors.ToggleSwitch,\n options: {\n // Default to false (not primary)\n defaultValue: false,\n negative: false,\n nullValue: false,\n },\n },\n },\n validations: [],\n options: {\n sort: { enabled: true },\n filter: {\n advance: { enabled: true },\n inline: { enabled: true },\n },\n },\n } as any);\n }\n\n //#endregion\n\n // Add isPrimary to columns for list view\n const columns = ctx.columns.list() ?? [];\n if (!columns.some((c: any) => c.name === 'isPrimary')) {\n ctx.columns.add({\n name: 'isPrimary',\n title: '@general:terms.status.states.is-primary',\n width: 100,\n sortable: true,\n filterable: true,\n } as any);\n }\n\n //#endregion\n\n //#region ---- Add Primary Actions ----\n\n ctx.interfaces.update((i) => {\n const setPrimaryCmdName = 'set-primary-entity';\n\n // Add set primary action to list view\n const listActions = (i as any).master.list.actions as AXPEntityAction[];\n if (!actionExists(listActions, setPrimaryCmdName)) {\n listActions.push({\n title: '@general:actions.set-primary.title',\n command: {\n name: setPrimaryCmdName,\n options: {\n refId: '{{ context.eval(\"id\") }}',\n refType: `${ctx.entity.module}.${ctx.entity.name}`,\n },\n },\n priority: 'secondary',\n type: 'update',\n scope: AXPEntityCommandScope.Individual,\n hidden: `{{ context.eval(\"isPrimary\") }}`,\n });\n }\n\n // Add set primary action to single view\n const singleActions = ((i as any).master?.single?.actions as AXPEntityAction[]) || [];\n if (!actionExists(singleActions, setPrimaryCmdName)) {\n singleActions.push({\n title: '@general:actions.set-primary.title',\n command: {\n name: setPrimaryCmdName,\n options: {\n refId: '{{ context.eval(\"id\") }}',\n refType: `${ctx.entity.module}.${ctx.entity.name}`,\n },\n },\n priority: 'secondary',\n type: 'update',\n scope: AXPEntityCommandScope.Individual,\n hidden: `{{ context.eval(\"isPrimary\") }}`,\n });\n }\n\n return i as any;\n });\n\n //#endregion\n\n //#region ---- Update Interface Layouts ----\n\n // Ensure layout includes property in create/modify/single\n const applyLayoutPatch = (layout: any) => {\n const next = cloneLayoutArrays(layout);\n ensureLayoutSection(next, { id: groupId, order: 150 } as any);\n ensureLayoutPropertyView(next, {\n name: 'isPrimary',\n layout: { positions: { lg: { colSpan: 6, order: 90 } } },\n } as any);\n return next;\n };\n\n ctx.interfaces.master.create.update((create) => applyLayoutPatch(create ?? { sections: [], properties: [] }));\n ctx.interfaces.master.modify.update((modify) => applyLayoutPatch(modify ?? { sections: [], properties: [] }));\n ctx.interfaces.master.single.update((single) =>\n applyLayoutPatch(single ?? { title: ctx.entity.title, sections: [], properties: [] }),\n );\n\n // Add primary view to show only primary items\n ctx.interfaces.master.list.update((list) => {\n const next = list ?? { actions: [], views: [] };\n next.views = next.views ?? [];\n\n // Check if primary view already exists\n if (!next.views.some((v: any) => v.name === 'primary')) {\n next.views.push(\n createQueryView('primary', '@general:terms.status.states.is-primary', false, {\n conditions: [\n {\n name: 'isPrimary',\n operator: { type: 'equal' },\n value: true,\n hidden: true,\n },\n ],\n sorts: [\n { name: 'updatedAt', dir: 'desc' },\n { name: 'title', dir: 'asc' },\n ],\n }),\n );\n }\n\n return next;\n });\n //#endregion\n },\n};\n","import { NgModule } from '@angular/core';\nimport { AXP_ENTITY_ACTION_PLUGIN } from '@acorex-platform/framework-client/layout/entity';\nimport { primaryPlugin } from './primary.plugin';\n\n@NgModule({\n providers: [\n // Register the primary plugin\n {\n provide: AXP_ENTITY_ACTION_PLUGIN,\n useValue: primaryPlugin,\n multi: true,\n },\n ],\n})\nexport class AXPPrimaryPluginModule { }\n","//#region ---- Imports ----\n\nimport { AXPStatusProvider, AXPWidgetsList } from '@acorex-platform/framework-shared/core';\nimport { AXPEntity, createQueryView } from '@acorex-platform/framework-shared/entity';\nimport { AXPEntityActionPlugin } from '@acorex-platform/framework-client/layout/entity';\nimport { AXPStatusDefinitionProviderService } from '@acorex-platform/framework-client/common';\n\nimport { inject, Injector, runInInjectionContext } from '@angular/core';\n\nimport { AXPStatusPluginOptions } from './status.types';\n\n//#endregion\n\n//#region ---- Primary plugin resolution ----\n\n/**\n * Field name of the status plugin that drives list columns, generated views, and single-page status.\n */\nfunction resolvePrimaryStatusField(entity: AXPEntity): string | null {\n const entries = (entity.plugins ?? []).filter((p) => p.name === 'status');\n if (entries.length === 0) {\n return null;\n }\n const explicit = entries.find((e) => (e.options as AXPStatusPluginOptions | undefined)?.isPrimary === true);\n const chosen =\n explicit ??\n entries.find((e) => (e.options as AXPStatusPluginOptions | undefined)?.isPrimary !== false) ??\n entries[0];\n const opts = chosen.options as AXPStatusPluginOptions | undefined;\n return opts?.field ?? 'statusId';\n}\n\n//#endregion\n\n//#region ---- Plugin ----\n\nexport const statusPlugin: AXPEntityActionPlugin = {\n name: 'status',\n order: 70,\n apply: async (ctx, options: AXPStatusPluginOptions = {}) => {\n const config = options ?? {};\n\n const injector = inject(Injector);\n const statusService = runInInjectionContext(injector, () => inject(AXPStatusDefinitionProviderService));\n\n let statusProvider: AXPStatusProvider | undefined;\n if (config.definition && typeof config.definition === 'string') {\n statusProvider = await statusService.getStatus(config.definition);\n if (!statusProvider) {\n console.warn(`Status provider with key \"${config.definition}\" not found.`);\n }\n } else if (config.definition && typeof config.definition === 'object') {\n statusProvider = {\n key: `custom.${config.field ?? 'statusId'}`,\n statuses: config.definition.statuses,\n transitions: config.definition.transitions,\n defaultStatus: config.definition.defaultStatus,\n };\n }\n\n if (!statusProvider) {\n console.warn('No status provider found. Please provide a valid definition key or provider object.');\n return;\n }\n\n const fieldName = config.field ?? 'statusId';\n const primaryField = resolvePrimaryStatusField(ctx.entity) ?? fieldName;\n const isThisPrimary = fieldName === primaryField;\n\n const groupId = config.groupId ?? 'status';\n const label = config.title ?? '@general:terms.status.title';\n\n //#region ---- Add status group ----\n\n const groups = ctx.groups.list() ?? [];\n if (!groups.some((g) => g.id === groupId)) {\n ctx.groups.add({ id: groupId, title: '@general:terms.status.title' } as any);\n }\n\n //#endregion\n\n //#region ---- Add status property ----\n\n const generateOptions = config.generate ?? {};\n const viewsGenerateConfig = generateOptions.views ?? {};\n const showInCreate = config.showInCreate !== false;\n const isReadonly = config.readonly === true;\n /** Readonly fields are never required; hidden-on-create status is filled by backend middleware. */\n const required = !isReadonly && showInCreate;\n const defaultStatus =\n config.defaultStatus ?? statusProvider.defaultStatus ?? statusProvider.statuses?.[0]?.name ?? null;\n\n const shouldGenerateViews = isThisPrimary && viewsGenerateConfig.enabled !== false;\n const props = ctx.properties.list();\n if (!props.some((p) => p.name === fieldName)) {\n const widgetOptions: Record<string, unknown> = {\n definitionKey: statusProvider.key,\n /** Full entity key for default `Entity:UpdateStatus` (e.g. `SecurityManagement.User`). */\n entityName: `${ctx.entity.module}.${ctx.entity.name}`,\n statusField: fieldName,\n };\n if (isReadonly) {\n widgetOptions['readonly'] = true;\n }\n ctx.properties.add({\n name: fieldName,\n title: label,\n groupId,\n schema: {\n dataType: 'string',\n defaultValue: defaultStatus,\n interface: {\n type: AXPWidgetsList.Advanced.Status,\n options: widgetOptions,\n },\n },\n validations: required ? [{ rule: 'required' }] : [],\n options: {\n sort: { enabled: true },\n filter: {\n advance: { enabled: true },\n inline: { enabled: true },\n },\n },\n } as any);\n }\n\n if (!showInCreate) {\n ctx.interfaces.master.create.update((create) => {\n const next = {\n ...create,\n sections: create?.sections ?? [],\n properties: (create?.properties ?? []).filter((p: any) => p.name !== fieldName),\n };\n return next as any;\n });\n }\n\n //#endregion\n\n //#region ---- List column (primary only) ----\n\n if (isThisPrimary) {\n const columns = ctx.columns.list() ?? [];\n if (!columns.some((c: any) => c.name === fieldName)) {\n const colOptions: Record<string, unknown> = {\n definitionKey: statusProvider.key,\n entity: `${ctx.entity.module}.${ctx.entity.name}`,\n fieldName: fieldName,\n };\n if (isReadonly) {\n colOptions['readonly'] = true;\n }\n ctx.columns.add({\n name: fieldName,\n title: label,\n width: 120,\n sortable: true,\n filterable: true,\n options: colOptions,\n } as any);\n }\n }\n\n //#endregion\n\n //#region ---- Generated list views (primary only) ----\n\n if (shouldGenerateViews) {\n const statusesForViews = statusProvider.statuses.filter((status) => status.generateView);\n\n if (statusesForViews.length > 0) {\n ctx.interfaces.master.list.update((list) => {\n const next = list ?? { views: [] };\n const views = next.views ?? [];\n\n if (!next.views) {\n next.views = views;\n }\n const existingViewNames = new Set(views.map((view: any) => view.name));\n\n statusesForViews.forEach((status) => {\n if (existingViewNames.has(status.name)) {\n return;\n }\n\n const viewTitle = status.title ?? status.name;\n\n views.push(\n createQueryView(status.name, viewTitle, true, {\n conditions: [\n {\n name: fieldName,\n operator: { type: 'equal' },\n value: status.name,\n },\n ],\n }),\n );\n\n existingViewNames.add(status.name);\n });\n\n next.views = views;\n\n return next;\n });\n }\n }\n\n //#endregion\n },\n};\n\n//#endregion\n","import { AXP_ENTITY_ACTION_PLUGIN } from '@acorex-platform/framework-client/layout/entity';\nimport { NgModule } from '@angular/core';\nimport { statusPlugin } from './status.plugin';\n\n/**\n * Status plugin: adds status property and UI. Default value on create is handled by\n * backend (e.g. connectivity/mock status-default.middleware) for security.\n */\n@NgModule({\n declarations: [],\n imports: [],\n exports: [],\n providers: [\n {\n provide: AXP_ENTITY_ACTION_PLUGIN,\n multi: true,\n useValue: statusPlugin,\n },\n ],\n})\nexport class AXPStatusPluginModule {}\n","/**\n * Comprehensive status management types and predefined statuses\n * This file contains all standard statuses with their transitions and metadata\n */\n\n//#region ---- Imports ----\n\nimport { AXPStatusDefinition, AXPStatusProvider, AXPStatusTransition } from '@acorex-platform/framework-shared/core';\n\n//#endregion\n\n//#region ---- Status Config Interface ----\n\n/**\n * Status configuration for entity status plugin\n */\nexport interface AXPStatusPluginOptions {\n /**\n * Field name for status in entity\n */\n field?: string;\n\n /**\n * Status definition key (from provider) or direct provider data\n */\n definition?: string | Pick<AXPStatusProvider, 'statuses' | 'transitions' | 'defaultStatus'>;\n\n /**\n * Optional i18n key or plain text for the property label and list column header (same string).\n * When omitted, `@general:terms.status.title` is used.\n */\n title?: string;\n\n /**\n * When multiple `status` plugins are on the same entity, exactly one should set `isPrimary: true`\n * to drive list column, generated list views, and the entity single page status chip.\n * Plugins with `isPrimary: false` register the property only (no column / no generated views from this plugin).\n * When omitted, primary is the first status plugin in entity definition order that is not `isPrimary: false`.\n */\n isPrimary?: boolean;\n\n /**\n * Property group id (default: `status`). Use the same id across plugins to group multiple status fields in one section.\n */\n groupId?: string;\n\n /**\n * When true, the status widget and list cell do not offer transitions (only explicitly defined transitions apply when false).\n */\n readonly?: boolean;\n\n /**\n * Whether to show status field in create form. When false, status is hidden; backend fills default.\n * Default: true\n */\n showInCreate?: boolean;\n\n /**\n * Default status value when creating. Overrides provider's defaultStatus.\n * Used by backend middleware to fill status when empty on create.\n */\n defaultStatus?: string;\n\n /**\n * Generation behaviours for status integration\n */\n generate?: AXPStatusPluginGenerateOptions;\n}\n\n//#endregion\n\n//#region ---- Utility Functions ----\n\n/**\n * Get status definition by name from provider\n */\nexport function getStatusByName(\n statusName: string,\n provider: AXPStatusProvider\n): AXPStatusDefinition | undefined {\n return provider.statuses.find((status) => status.name === statusName);\n}\n\n/**\n * Get all possible transitions from a status\n */\nexport function getTransitionsFromStatus(\n fromStatus: string,\n provider: AXPStatusProvider\n): AXPStatusTransition[] {\n return provider.transitions.filter((transition) => transition.from === fromStatus);\n}\n\n/**\n * Get all possible transitions to a status\n */\nexport function getTransitionsToStatus(\n toStatus: string,\n provider: AXPStatusProvider\n): AXPStatusTransition[] {\n return provider.transitions.filter((transition) => transition.to === toStatus);\n}\n\n/**\n * Check if a transition is valid\n */\nexport function isValidTransition(\n fromStatus: string,\n toStatus: string,\n provider: AXPStatusProvider\n): boolean {\n return provider.transitions.some(\n (transition) => transition.from === fromStatus && transition.to === toStatus\n );\n}\n\n/**\n * Get initial statuses\n */\nexport function getInitialStatuses(provider: AXPStatusProvider): AXPStatusDefinition[] {\n return provider.statuses.filter((status) => status.isInitial);\n}\n\n/**\n * Get final statuses\n */\nexport function getFinalStatuses(provider: AXPStatusProvider): AXPStatusDefinition[] {\n return provider.statuses.filter((status) => status.isFinal);\n}\n\n/**\n * Get active statuses\n */\nexport function getActiveStatuses(provider: AXPStatusProvider): AXPStatusDefinition[] {\n return provider.statuses;\n}\n\n//#endregion\n\n//#region ---- Generate Options ----\n\nexport interface AXPStatusPluginGenerateOptions {\n /**\n * List view generation config\n */\n views?: AXPStatusPluginGenerateViewsOptions;\n}\n\nexport interface AXPStatusPluginGenerateViewsOptions {\n /**\n * Enable view generation. Defaults to true.\n */\n enabled?: boolean;\n}\n\n//#endregion\n","import { AXPStatusDefinition, AXPStatusProvider, AXPStatusTransition, AXPSystemStatuses, AXPSystemStatusType } from '@acorex-platform/framework-shared/core';\n\n//#region ---- Task Status Provider ----\n\n/**\n * Task status provider for task management workflows\n * Provides statuses: Todo, InProgress, InReview, Blocked, Done, Cancelled\n */\nexport class TaskStatusProvider extends AXPStatusProvider {\n readonly key = 'common.status.task';\n\n readonly statuses: AXPStatusDefinition[] = [\n AXPSystemStatuses.Todo,\n AXPSystemStatuses.InProgress,\n AXPSystemStatuses.InReview,\n AXPSystemStatuses.Blocked,\n AXPSystemStatuses.Done,\n AXPSystemStatuses.Cancelled,\n ];\n\n readonly transitions: AXPStatusTransition[] = [\n {\n from: AXPSystemStatusType.Todo,\n to: AXPSystemStatusType.InProgress,\n title: '@general:statuses.transitions.start',\n },\n {\n from: AXPSystemStatusType.InProgress,\n to: AXPSystemStatusType.InReview,\n title: '@general:statuses.transitions.submit-review',\n },\n {\n from: AXPSystemStatusType.InProgress,\n to: AXPSystemStatusType.Blocked,\n title: '@general:statuses.transitions.block',\n },\n {\n from: AXPSystemStatusType.InProgress,\n to: AXPSystemStatusType.Done,\n title: '@general:statuses.transitions.complete',\n },\n {\n from: AXPSystemStatusType.InReview,\n to: AXPSystemStatusType.Done,\n title: '@general:statuses.transitions.approve',\n },\n {\n from: AXPSystemStatusType.InReview,\n to: AXPSystemStatusType.InProgress,\n title: '@general:statuses.transitions.request-changes',\n },\n {\n from: AXPSystemStatusType.Blocked,\n to: AXPSystemStatusType.InProgress,\n title: '@general:statuses.transitions.unblock',\n },\n {\n from: AXPSystemStatusType.Todo,\n to: AXPSystemStatusType.Cancelled,\n title: '@general:statuses.transitions.cancel',\n },\n {\n from: AXPSystemStatusType.InProgress,\n to: AXPSystemStatusType.Cancelled,\n title: '@general:statuses.transitions.cancel',\n },\n ];\n\n readonly defaultStatus = AXPSystemStatusType.Todo;\n}\n\n//#endregion\n\n","import { AXPStatusDefinition, AXPStatusProvider, AXPStatusTransition, AXPSystemStatuses, AXPSystemStatusType } from '@acorex-platform/framework-shared/core';\n\n//#region ---- Approval Status Provider ----\n\n/**\n * Approval status provider for content approval workflows\n * Provides statuses: Draft, PendingReview, Approved, Published, Archived, Rejected\n */\nexport class ApprovalStatusProvider extends AXPStatusProvider {\n readonly key = 'common.status.approval';\n\n readonly statuses: AXPStatusDefinition[] = [\n AXPSystemStatuses.Draft,\n AXPSystemStatuses.PendingReview,\n AXPSystemStatuses.Approved,\n AXPSystemStatuses.Published,\n AXPSystemStatuses.Archived,\n AXPSystemStatuses.Rejected,\n ];\n\n readonly transitions: AXPStatusTransition[] = [\n {\n from: AXPSystemStatusType.Draft,\n to: AXPSystemStatusType.PendingReview,\n title: '@general:statuses.transitions.submit',\n },\n {\n from: AXPSystemStatusType.PendingReview,\n to: AXPSystemStatusType.Approved,\n title: '@general:statuses.transitions.approve',\n },\n {\n from: AXPSystemStatusType.PendingReview,\n to: AXPSystemStatusType.Rejected,\n title: '@general:statuses.transitions.reject',\n },\n {\n from: AXPSystemStatusType.PendingReview,\n to: AXPSystemStatusType.Draft,\n title: '@general:statuses.transitions.request-changes',\n },\n {\n from: AXPSystemStatusType.Approved,\n to: AXPSystemStatusType.Published,\n title: '@general:statuses.transitions.publish',\n },\n {\n from: AXPSystemStatusType.Published,\n to: AXPSystemStatusType.Archived,\n title: '@general:statuses.transitions.archive',\n },\n {\n from: AXPSystemStatusType.Draft,\n to: AXPSystemStatusType.Archived,\n title: '@general:statuses.transitions.archive',\n },\n ];\n\n readonly defaultStatus = AXPSystemStatusType.Draft;\n}\n\n//#endregion\n\n","import { AXPStatusDefinition, AXPStatusProvider, AXPStatusTransition, AXPSystemStatuses, AXPSystemStatusType } from '@acorex-platform/framework-shared/core';\n\n//#region ---- State Status Provider ----\n\n/**\n * State status provider for entity state management\n * Provides statuses: Active, Inactive, Pending, Completed, Suspended, Failed\n */\nexport class StateStatusProvider extends AXPStatusProvider {\n readonly key = 'common.status.state';\n\n readonly statuses: AXPStatusDefinition[] = [\n AXPSystemStatuses.Active,\n AXPSystemStatuses.Inactive,\n AXPSystemStatuses.Pending,\n AXPSystemStatuses.Completed,\n AXPSystemStatuses.Suspended,\n AXPSystemStatuses.Failed,\n ];\n\n readonly transitions: AXPStatusTransition[] = [\n {\n from: AXPSystemStatusType.Pending,\n to: AXPSystemStatusType.Active,\n title: '@general:statuses.transitions.activate',\n },\n {\n from: AXPSystemStatusType.Active,\n to: AXPSystemStatusType.Inactive,\n title: '@general:statuses.transitions.deactivate',\n },\n {\n from: AXPSystemStatusType.Active,\n to: AXPSystemStatusType.Suspended,\n title: '@general:statuses.transitions.suspend',\n },\n {\n from: AXPSystemStatusType.Suspended,\n to: AXPSystemStatusType.Active,\n title: '@general:statuses.transitions.resume',\n },\n {\n from: AXPSystemStatusType.Pending,\n to: AXPSystemStatusType.Completed,\n title: '@general:statuses.transitions.complete',\n },\n {\n from: AXPSystemStatusType.Pending,\n to: AXPSystemStatusType.Failed,\n title: '@general:statuses.transitions.fail',\n },\n ];\n\n readonly defaultStatus = AXPSystemStatusType.Pending;\n}\n\n//#endregion\n\n","import { AXPEntityMasterCreateLayoutView, AXPEntityMasterLayoutView, AXPEntityMasterSingleLayoutView, AXPEntityMasterUpdateLayoutView, AXPEntityProperty, AXPEntityPropertyGroup, AXPEntityTableColumn } from '@acorex-platform/framework-shared/entity';\nimport { AXPEntityActionPlugin } from '@acorex-platform/framework-client/layout/entity';\nimport { AXPWidgetsList } from '@acorex-platform/framework-shared/core';\n\nexport interface AXPTitlePluginOptions {\n /**\n * Optional title for the `title` field and column.\n * Can be a raw string or an i18n key. Defaults to '@general:terms.common.title'.\n */\n title?: string;\n /**\n * Optional group ID for the property. Defaults to 'basic-info'.\n */\n groupId?: string;\n /**\n * Whether the field is required. Defaults to true.\n */\n required?: boolean;\n /**\n * Whether to add a column in list view. Defaults to true.\n */\n column?: boolean;\n}\n\nexport const titlePlugin: AXPEntityActionPlugin = {\n name: 'title',\n order: 21,\n apply: (ctx, options?: AXPTitlePluginOptions) => {\n const title = options?.title ?? '@general:terms.common.title';\n const groupId = options?.groupId ?? 'basic-info';\n const required = options?.required ?? true;\n const addColumn = options?.column ?? true;\n\n //#region ---- Ensure Basic Info Group ----\n\n const groups = ctx.groups.list() ?? [];\n if (!groups.some((g) => g.id === groupId)) {\n ctx.groups.add({ id: groupId, title: '@general:terms.interface.basic-info' });\n }\n\n //#endregion\n\n //#region ---- Add Title Property ----\n\n const props = ctx.properties.list();\n if (!props.some((p) => p.name === 'title')) {\n ctx.properties.add({\n name: 'title',\n title,\n groupId,\n schema: {\n dataType: 'string',\n interface: {\n type: AXPWidgetsList.Editors.TextBox,\n },\n },\n validations: required\n ? [\n {\n rule: 'required',\n },\n ]\n : [],\n options: {\n sort: { enabled: true },\n filter: {\n advance: { enabled: true },\n inline: { enabled: true },\n },\n },\n });\n }\n\n //#endregion\n\n //#region ---- Add Title Column ----\n\n if (addColumn) {\n const columns = ctx.columns.list() ?? [];\n if (!columns.some((c) => c.name === 'title')) {\n ctx.columns.add({\n name: 'title',\n title,\n options: {\n width: '200px',\n visible: true,\n },\n });\n }\n }\n\n //#endregion\n\n //#region ---- Update Interface Layouts ----\n\n const ensureLayoutProperty = <T extends AXPEntityMasterLayoutView>(layout: T): T => {\n layout.sections = layout.sections ?? [];\n if (!layout.sections.some((s) => s.id === groupId)) {\n layout.sections.push({ id: groupId, order: 10 });\n }\n\n layout.properties = layout.properties ?? [];\n if (!layout.properties.some((p) => p.name === 'title')) {\n layout.properties.push({\n name: 'title',\n layout: {\n positions: { lg: { colSpan: 12, order: 20 } },\n },\n });\n }\n\n return layout;\n };\n\n ctx.interfaces.master.create.update((create) =>\n ensureLayoutProperty((create ?? { sections: [], properties: [] }) as AXPEntityMasterCreateLayoutView)\n );\n ctx.interfaces.master.modify.update((modify) =>\n ensureLayoutProperty((modify ?? { sections: [], properties: [] }) as AXPEntityMasterUpdateLayoutView)\n );\n ctx.interfaces.master.single.update((single) =>\n ensureLayoutProperty((single ?? { title: ctx.entity.title, sections: [], properties: [] }) as AXPEntityMasterSingleLayoutView)\n );\n\n //#endregion\n },\n};\n\n","import { AXP_ENTITY_ACTION_PLUGIN } from '@acorex-platform/framework-client/layout/entity';\nimport { NgModule } from '@angular/core';\nimport { titlePlugin } from './title.plugin';\n\n@NgModule({\n declarations: [],\n imports: [],\n exports: [],\n providers: [{ provide: AXP_ENTITY_ACTION_PLUGIN, multi: true, useValue: titlePlugin }],\n})\nexport class AXPTitlePluginModule {}\n\n","import { AXPEntityActionPlugin } from '@acorex-platform/framework-client/layout/entity';\n\n//#region ---- Types ----\n\nexport interface UniqueFieldsPluginOptions {\n /**\n * Field name(s) to enforce uniqueness on.\n * Can be a single field name or an array of field names for composite uniqueness.\n */\n fields: string | string[];\n\n /**\n * Uniqueness scope:\n * - 'global': Unique across all records\n * - 'tenant': Unique within tenant (requires tenantId field)\n * - 'parent': Unique within parent entity (requires parentField option)\n */\n scope?: 'global' | 'tenant' | 'parent';\n\n /**\n * Parent field name for parent-scoped uniqueness.\n * Required when scope is 'parent'.\n */\n parentField?: string;\n\n /**\n * Custom error message template.\n * Use {{fieldTitle}} placeholder for field title.\n * If not provided, uses default message with field title.\n */\n message?: string;\n}\n\ninterface UniqueFieldConfig {\n fields: string[];\n scope: 'global' | 'tenant' | 'parent';\n parentField?: string;\n message?: string;\n}\n\n//#endregion\n\n//#region ---- Plugin Definition ----\n\n/**\n * Unique Fields Plugin\n * \n * Enforces uniqueness constraints on one or more entity fields.\n * Supports single-field and composite (multiple fields) uniqueness.\n * \n * Usage:\n * ```typescript\n * .applyPlugin(uniqueFieldsPlugin, {\n * fields: 'email', // Single field\n * scope: 'global'\n * })\n * \n * .applyPlugin(uniqueFieldsPlugin, {\n * fields: ['firstName', 'lastName'], // Composite uniqueness\n * scope: 'tenant'\n * })\n * \n * .applyPlugin(uniqueFieldsPlugin, {\n * fields: 'code',\n * scope: 'parent',\n * parentField: 'categoryId'\n * })\n * ```\n */\nexport const uniqueFieldsPlugin: AXPEntityActionPlugin = {\n name: 'unique-fields',\n order: 55, // After core plugins (45-50), before status management (65-70)\n apply: (ctx, options?: UniqueFieldsPluginOptions) => {\n if (!options || !options.fields) {\n console.warn('[unique-fields-plugin] No fields specified. Plugin will not be applied.');\n return;\n }\n\n // Normalize fields to array\n const fields = Array.isArray(options.fields) ? options.fields : [options.fields];\n if (fields.length === 0) {\n console.warn('[unique-fields-plugin] Empty fields array. Plugin will not be applied.');\n return;\n }\n\n // Validate scope and parentField\n const scope = options.scope ?? 'global';\n if (scope === 'parent' && !options.parentField) {\n console.warn('[unique-fields-plugin] Parent scope requires parentField option. Plugin will not be applied.');\n return;\n }\n\n // Verify fields exist — dotted paths (e.g. scopeInfo.tenantId) match the root property\n // or the platform ownership bag (always valid on AXPEntityModel).\n const props = ctx.properties.list();\n const missingFields = fields.filter((field) => {\n if (field === 'scopeInfo' || field.startsWith('scopeInfo.')) {\n return false;\n }\n const rootName = field.split('.')[0];\n return !props.some((p: { name?: string }) => p.name === field || p.name === rootName);\n });\n if (missingFields.length > 0) {\n console.warn(\n `[unique-fields-plugin] Fields not found in entity: ${missingFields.join(', ')}. Plugin will not be applied.`\n );\n return;\n }\n\n // Build configuration\n const config: UniqueFieldConfig = {\n fields,\n scope,\n parentField: options.parentField,\n message: options.message,\n };\n\n // Store configuration in entity extensions\n (ctx.entity as any).extensions ??= {};\n (ctx.entity as any).extensions.uniqueFields ??= [];\n (ctx.entity as any).extensions.uniqueFields.push(config);\n\n // Add client-side validation hint to properties\n // Note: Actual validation will be handled by middleware, but we can add a hint\n // for UI feedback if needed\n fields.forEach(fieldName => {\n const prop = props.find((p: any) => p.name === fieldName);\n if (prop && prop.schema) {\n // Mark schema as unique for potential UI hints\n // Only add if schema already exists (schema is required and must have dataType)\n prop.schema.unique = { enabled: true };\n }\n });\n },\n};\n\n//#endregion\n\n","import { NgModule } from '@angular/core';\nimport { AXP_ENTITY_ACTION_PLUGIN } from '@acorex-platform/framework-client/layout/entity';\nimport { uniqueFieldsPlugin } from './unique-fields.plugin';\n\n@NgModule({\n providers: [\n {\n provide: AXP_ENTITY_ACTION_PLUGIN,\n useValue: uniqueFieldsPlugin,\n multi: true,\n },\n ],\n})\nexport class AXPUniqueFieldsPluginModule {}\n\n","import { Injectable } from '@angular/core';\nimport {\n AXValidationRule,\n AXValidationRuleOptions,\n AXValidationRuleResult,\n} from '@acorex/core/validation';\n\n//#region ---- Types ----\n\nexport interface AXAtLeastOneOfValidationRuleOptions extends AXValidationRuleOptions {\n /** Dot paths on the persisted row / form root (e.g. `assetId`, `asset.id`). */\n paths?: string[];\n message?: string;\n}\n\n//#endregion\n\n//#region ---- At least one of validation rule ----\n\n/**\n * Client-side no-op for `at-least-one-of`.\n *\n * Custom validation rules are constructed from the validation module injector, which does not\n * include `AXPContextStore` (that store is provided on layout/widget hosts). Resolving the store\n * here caused NG0201 (no provider for `SignalStore`). Cross-field checks are enforced on save by\n * `entity-validation.middleware` in `@acorex-platform/client-connectivity-mock`.\n */\n@Injectable()\nexport class AtLeastOneOfValidationRule implements AXValidationRule {\n get name(): string {\n return 'at-least-one-of';\n }\n\n async validate(\n value: unknown,\n _options?: AXAtLeastOneOfValidationRuleOptions,\n ): Promise<AXValidationRuleResult> {\n return {\n rule: this.name,\n result: true,\n message: '',\n value,\n };\n }\n}\n\n//#endregion\n","import { Injectable } from '@angular/core';\nimport {\n AXValidationRule,\n AXValidationRuleOptions,\n AXValidationRuleResult,\n} from '@acorex/core/validation';\n\n//#region ---- Unique Validation Rule Class ----\n\n/**\n * Unique Validation Rule (client-side no-op).\n *\n * Uniqueness is enforced by the backend (entity-validation middleware). This rule is\n * registered so that entity properties with `validations: [{ rule: 'unique' }]` do not\n * trigger \"Invalid rule name: unique\" in the form. On create/update, the backend\n * validates uniqueness and excludes the current record on update.\n *\n * Usage in entity definitions:\n * ```typescript\n * validations: [\n * { rule: 'required' },\n * { rule: 'unique' }\n * ]\n * ```\n */\n@Injectable()\nexport class UniqueValidationRule implements AXValidationRule {\n get name(): string {\n return 'unique';\n }\n\n async validate(\n value: unknown,\n _options?: AXValidationRuleOptions\n ): Promise<AXValidationRuleResult> {\n return {\n rule: this.name,\n result: true,\n message: '',\n value,\n };\n }\n}\n\n//#endregion\n","//#region ---- Variable Name Utilities ----\n\n/**\n * Validates variable naming conventions:\n * - Must start with a letter (a-z, A-Z) or underscore (_)\n * - Can contain letters, numbers, underscores (_), and hyphens (-)\n */\nexport const VARIABLE_NAME_VALIDATION_PATTERN = '^[a-zA-Z_][a-zA-Z0-9_-]*$';\n\nconst VARIABLE_NAME_REGEX = new RegExp(VARIABLE_NAME_VALIDATION_PATTERN);\n\n/**\n * Returns true when the value satisfies {@link VARIABLE_NAME_VALIDATION_PATTERN}.\n */\nexport function isValidVariableName(value: unknown): boolean {\n return typeof value === 'string' && VARIABLE_NAME_REGEX.test(value);\n}\n\n/**\n * Converts a human-readable label (e.g. title) into a variable-name compatible slug.\n * Non-Latin input falls back to `fallbackPrefix-{hash}`.\n */\nexport function toVariableName(value: unknown, fallbackPrefix = 'item'): string {\n if (typeof value !== 'string') {\n return '';\n }\n\n const trimmed = value.trim();\n if (!trimmed) {\n return '';\n }\n\n const withoutMarks = trimmed.normalize('NFKD').replace(/\\p{M}/gu, '');\n let slug = withoutMarks\n .replace(/[^a-zA-Z0-9_-]+/g, '-')\n .replace(/^-+|-+$/g, '')\n .replace(/-+/g, '-')\n .toLowerCase();\n\n if (slug && !/^[a-zA-Z_]/.test(slug)) {\n slug = `_${slug}`;\n }\n\n if (slug && isValidVariableName(slug)) {\n return slug;\n }\n\n return `${fallbackPrefix}-${shortHash(trimmed)}`;\n}\n\nfunction shortHash(value: string): string {\n let hash = 2166136261;\n for (let i = 0; i < value.length; i++) {\n hash ^= value.charCodeAt(i);\n hash = Math.imul(hash, 16777619);\n }\n return (hash >>> 0).toString(36).slice(0, 10);\n}\n\n//#endregion\n","import { inject, Injectable } from '@angular/core';\nimport {\n AXValidationRule,\n AXValidationRuleOptions,\n AXValidationRuleResult,\n} from '@acorex/core/validation';\nimport { AXTranslationService } from '@acorex/core/translation';\nimport { VARIABLE_NAME_VALIDATION_PATTERN } from '../utils/variable-name.util';\n\nexport { VARIABLE_NAME_VALIDATION_PATTERN } from '../utils/variable-name.util';\n\n\n//#region ---- Variable Name Validation Rule Class ----\n\n/**\n * Variable Name Validation Rule Options\n */\nexport interface AXVariableNameValidationRuleOptions extends AXValidationRuleOptions {\n message?: string;\n}\n\n/**\n * Variable Name Validation Rule Class\n * \n * Validates that a field value follows variable naming conventions:\n * - Must start with a letter (a-z, A-Z) or underscore (_)\n * - Can contain letters, numbers, underscores (_), and hyphens (-)\n * - No spaces or special characters allowed\n * \n * Usage in entity definitions:\n * ```typescript\n * validations: [\n * { rule: 'variable-name' }\n * ]\n * ```\n */\n@Injectable()\nexport class VariableNameValidationRule implements AXValidationRule {\n private translationService = inject(AXTranslationService);\n\n\n get name(): string {\n return 'variable-name';\n }\n\n async validate(\n value: any,\n options?: AXVariableNameValidationRuleOptions,\n ): Promise<AXValidationRuleResult> {\n const defaultMessageKey = await this.translationService.translateAsync('@general:terms.validation.messages.variable-name-format');\n\n if (!value || typeof value !== 'string') {\n // Return translation key - UI component will handle translation\n const message = options?.message || defaultMessageKey;\n\n return {\n rule: this.name,\n result: false,\n message: message,\n value: value,\n };\n }\n\n const pattern = new RegExp(VARIABLE_NAME_VALIDATION_PATTERN);\n const isValid = pattern.test(value);\n\n if (isValid) {\n return {\n rule: this.name,\n result: true,\n message: '',\n value: value,\n };\n }\n\n // Return translation key - UI component will handle translation\n const message = options?.message || defaultMessageKey;\n\n return {\n rule: this.name,\n result: false,\n message: message,\n value: value,\n };\n }\n}\n\n//#endregion\n\n","import { NgModule } from '@angular/core';\nimport { AXValidationModule } from '@acorex/core/validation';\nimport { AtLeastOneOfValidationRule } from './rules/at-least-one-of-validation-rule.class';\nimport { UniqueValidationRule } from './rules/unique-validation-rule.class';\nimport { VariableNameValidationRule } from './rules/variable-name-validation-rule.class';\n\n//#region ---- Validation Rules Module ----\n\n/**\n * Validation Rules Module\n *\n * Registers custom validation rules globally using AXValidationModule.forChild.\n *\n * - 'variable-name': validates variable naming conventions.\n * - 'unique': client-side no-op; uniqueness is enforced by backend (entity-validation middleware).\n * - 'at-least-one-of': client-side no-op; cross-field check is enforced by entity-validation middleware on save.\n *\n * ```typescript\n * validations: [\n * { rule: 'required' },\n * { rule: 'variable-name' },\n * { rule: 'unique' }\n * ]\n * ```\n */\n@NgModule({\n imports: [\n AXValidationModule.forChild({\n rules: [VariableNameValidationRule, UniqueValidationRule, AtLeastOneOfValidationRule],\n }),\n ],\n exports: [],\n})\nexport class AXPValidationRulesModule {}\n\n//#endregion\n\n","import { AXCalendarService, AXTimeSpan } from \"@acorex/core/date-time\";\nimport { AXPExpressionEvaluatorScopeProvider, AXPExpressionEvaluatorScopeProviderContext } from \"@acorex-platform/framework-shared/core\";\nimport { inject } from \"@angular/core\";\n\nexport class AXPDateTimeEvaluatorScopeProvider implements AXPExpressionEvaluatorScopeProvider {\n\n private calendarService = inject(AXCalendarService);\n\n async provide(context: AXPExpressionEvaluatorScopeProviderContext): Promise<void> {\n context.addScope('date', {\n now: () => {\n return this.calendarService.now().date;\n },\n today: () => {\n return this.calendarService.now().startOf('day').date;\n },\n tomorrow: () => {\n return this.calendarService.now().add('day', 1).startOf('day').date;\n },\n yesterday: () => {\n return this.calendarService.now().add('day', -1).startOf('day').date;\n },\n addDays: (date: string, days: number) => {\n return this.calendarService.create(date).add('day', days).date;\n },\n duration: (startDate: string, endDate: string, unit: keyof AXTimeSpan = 'days') => {\n if (!startDate || !endDate) {\n return null;\n }\n\n try {\n const value = this.calendarService.create(startDate).duration(this.calendarService.create(endDate))[unit];\n const numericValue = Number(value);\n if (!Number.isFinite(numericValue)) {\n return null;\n }\n return Math.max(0, numericValue);\n } catch {\n return null;\n }\n },\n });\n }\n} ","import { formatAddressData, type AXPAddressData } from '@acorex-platform/framework-shared/core';\nimport { AXPExpressionEvaluatorScopeProvider, AXPExpressionEvaluatorScopeProviderContext } from '@acorex-platform/framework-shared/core';\n\n//#region ---- Address expression scope ----\n\n/**\n * Exposes address formatting in expression strings, e.g.\n * `{{ address.format({ street1: context.eval(\"street1\"), street2: context.eval(\"street2\"), country: context.eval(\"country\"), state: context.eval(\"state\"), city: context.eval(\"city\"), postalCode: context.eval(\"postalCode\") }) }}`.\n */\nexport class AXPAddressEvaluatorScopeProvider implements AXPExpressionEvaluatorScopeProvider {\n async provide(context: AXPExpressionEvaluatorScopeProviderContext): Promise<void> {\n context.addScope('address', {\n format: (data?: Partial<AXPAddressData> | Record<string, unknown>) => formatAddressData(data),\n });\n }\n}\n\n//#endregion\n","import { AXTranslateOptions, AXTranslationService } from \"@acorex/core/translation\";\nimport { AXPExpressionEvaluatorScopeProvider, AXPExpressionEvaluatorScopeProviderContext } from \"@acorex-platform/framework-shared/core\";\nimport { inject } from \"@angular/core\";\n\nexport class AXPTranslateEvaluatorScopeProvider implements AXPExpressionEvaluatorScopeProvider {\n\n private translateService = inject(AXTranslationService);\n\n\n async provide(context: AXPExpressionEvaluatorScopeProviderContext): Promise<void> {\n context.addScope('translate', {\n resolve: async (text:string , options? : AXTranslateOptions) => {\n return await this.translateService.translateAsync(text, options);\n },\n });\n }\n} ","import { AXPExpressionEvaluatorScopeProvider, AXPExpressionEvaluatorScopeProviderContext } from '@acorex-platform/framework-shared/core';\nimport { toVariableName } from '../validations/utils/variable-name.util';\n\n//#region ---- Utils Evaluator Scope Provider ----\n\n/**\n * Exposes shared string helpers for entity triggers, workflows, and templates.\n */\nexport class AXPUtilsEvaluatorScopeProvider implements AXPExpressionEvaluatorScopeProvider {\n async provide(context: AXPExpressionEvaluatorScopeProviderContext): Promise<void> {\n context.addScope('utils', {\n toVariableName: (value: unknown, fallbackPrefix?: string) => toVariableName(value, fallbackPrefix),\n });\n }\n}\n\n//#endregion\n","import { AXStyleColorType } from '@acorex/cdk/common';\nimport { AXToastService } from '@acorex/components/toast';\nimport { AXTranslationService } from '@acorex/core/translation';\nimport {\n AXPCommonSettings,\n AXPSettingsService,\n platformErrorI18nKey,\n} from '@acorex-platform/framework-client/common';\nimport { AXPCommandMiddleware } from '@acorex-platform/framework-client/runtime';\nimport {\n AUTH_LOGOUT_DEFAULT,\n AUTH_REFRESH_DEFAULT,\n AUTH_REGISTER_DEFAULT,\n AUTH_SIGN_IN_DEFAULT,\n AUTH_UPDATE_SESSION_DEFAULT,\n ENTITY_DELETE_DEFAULT,\n ENTITY_INSERT_DEFAULT,\n ENTITY_REMOVE_UI,\n ENTITY_UPDATE_DEFAULT,\n} from '@acorex-platform/framework-shared/runtime';\nimport { AXPCommonCommandKeys } from '@acorex-platform/module-common-client/contracts';\nimport { inject } from '@angular/core';\n\n//#region ---- Constants ----\n\n/** Low-level CRUD keys — feature commands (archive/delete/…) own their UX. */\nconst SILENT_TOAST_COMMAND_KEYS = new Set<string>([\n ENTITY_INSERT_DEFAULT,\n ENTITY_UPDATE_DEFAULT,\n ENTITY_DELETE_DEFAULT,\n ENTITY_REMOVE_UI,\n 'Entity:Bulk',\n AXPCommonCommandKeys.Archive.Archive,\n AXPCommonCommandKeys.Archive.Restore,\n AXPCommonCommandKeys.Archive.BulkArchive,\n AXPCommonCommandKeys.Archive.BulkRestore,\n AXPCommonCommandKeys.Disable.Disable,\n AXPCommonCommandKeys.Disable.Enable,\n AXPCommonCommandKeys.Disable.BulkDisable,\n AXPCommonCommandKeys.Disable.BulkEnable,\n // Auth session binds run while sessionService.isLoading is true; never toast / load settings here.\n AUTH_SIGN_IN_DEFAULT,\n AUTH_REGISTER_DEFAULT,\n AUTH_UPDATE_SESSION_DEFAULT,\n AUTH_REFRESH_DEFAULT,\n AUTH_LOGOUT_DEFAULT,\n // LDAP login slot owns the error toast (same pattern as password → Auth:SignIn).\n 'LdapExtension:SignIn',\n]);\n\n//#endregion\n\n//#region ---- Middleware ----\n\n/**\n * Displays a toast based on command execution outcome.\n * Prefers `message.text` (@i18n or plain); falls back to platform `message.code` → i18n.\n */\nexport const commandMessageToastMiddleware: AXPCommandMiddleware = async (context, next) => {\n if (SILENT_TOAST_COMMAND_KEYS.has(context.key)) {\n return await next(context);\n }\n\n const toastService = inject(AXToastService);\n const translationService = inject(AXTranslationService);\n const settingService = inject(AXPSettingsService);\n\n // Non-blocking read only. `settingsService.get()` → ensureLoaded → awaitSessionReady waits for\n // !session.isLoading; Auth/session commands set isLoading=true, which caused a ~15s deadlock.\n const enableOperationToasts = settingService.peekCached(AXPCommonSettings.EnableOperationToasts);\n if (enableOperationToasts === false) {\n return await next(context);\n }\n\n const result = await next(context);\n const message = result.message;\n const color = message?.type ?? (result.success ? 'success' : 'danger');\n\n let content: string | null = null;\n const text = message?.text;\n if (typeof text === 'string' && text.trim()) {\n content = text.startsWith('@') ? await translationService.translateAsync(text) : text;\n } else if (text && typeof text === 'object') {\n content = translationService.resolve(text);\n } else {\n const codeKey = platformErrorI18nKey(message?.code);\n if (codeKey) {\n content = await translationService.translateAsync(codeKey);\n }\n }\n\n if (content) {\n const title = result.success\n ? await translationService.translateAsync('@general:messages.generic.success.title')\n : await translationService.translateAsync('@general:messages.generic.error.title');\n\n toastService.show({\n color: color as AXStyleColorType,\n title,\n content,\n });\n }\n\n return result;\n};\n\n//#endregion\n","import { type AXPEntityRefreshMeta } from '@acorex-platform/framework-shared/entity';\nimport { AXPEntityBroadcastService } from '@acorex-platform/framework-client/core';\nimport { resolveEntityActionCommandInput } from '@acorex-platform/framework-shared/runtime';\nimport type { AXPRuntimeCommandResult } from '@acorex-platform/framework-shared/core';\n\nimport { AXPCommandMiddleware } from '@acorex-platform/framework-client/runtime';\nimport { inject } from '@angular/core';\n\n//#region ---- Helpers ----\n\n/** True when the command completed without a persisted change that needs a list reload. */\nfunction shouldSkipLayoutRefresh(result: AXPRuntimeCommandResult): boolean {\n if (!result.success) {\n return true;\n }\n if (result.metadata?.['refresh'] === false) {\n return true;\n }\n\n const metaOutcome = result.metadata?.['outcome'];\n if (typeof metaOutcome === 'string' && metaOutcome.toLowerCase() === 'cancelled') {\n return true;\n }\n\n const data = result.data;\n if (data != null && typeof data === 'object' && !Array.isArray(data)) {\n const outcome = (data as { outcome?: unknown }).outcome;\n if (typeof outcome === 'string' && outcome.toLowerCase() === 'cancelled') {\n return true;\n }\n }\n\n return false;\n}\n\n//#endregion\n\n//#region ---- Middleware ----\n\n/**\n * Dispatches an entity refresh event after successful command execution.\n * Skips cancel/dismiss and commands that opt out via `metadata.refresh: false`.\n */\nexport const commandRefreshMiddleware: AXPCommandMiddleware = async (context, next) => {\n const entityEvents = inject(AXPEntityBroadcastService);\n const result = await next(context);\n\n if (!shouldSkipLayoutRefresh(result)) {\n const resolved = resolveEntityActionCommandInput(context.input);\n if (resolved.entity) {\n entityEvents.publishLayoutRefresh(\n resolved.entity,\n resolved.meta as AXPEntityRefreshMeta | undefined,\n );\n }\n }\n\n return result;\n};\n\n//#endregion\n","import { NgModule } from '@angular/core';\nimport { provideCommandMiddleware } from '@acorex-platform/framework-client/runtime';\nimport { commandMessageToastMiddleware } from './command-message-toast.middleware';\nimport { commandRefreshMiddleware } from './command-refresh.middleware';\n\n@NgModule({\n providers: [\n provideCommandMiddleware([commandMessageToastMiddleware, commandRefreshMiddleware]),\n ],\n})\nexport class AXMCommonMiddlewaresModule { }\n\n","import { AXPSessionService } from '@acorex-platform/framework-client/auth';\nimport { AXPHomePageService, AXPMenuProvider, AXPMenuProviderContext } from '@acorex-platform/framework-client/common';\nimport { AXPEntityService } from '@acorex-platform/framework-client/layout/entity';\nimport { inject } from '@angular/core';\nimport { firstValueFrom } from 'rxjs';\nimport { RootConfig } from '@acorex-platform/module-common-client/contracts';\nimport { AXPCommonMenuKeys } from '@acorex-platform/module-common-client/contracts';\n\nexport class AXMMenuProvider implements AXPMenuProvider {\n private sessionService = inject(AXPSessionService);\n private homePageService = inject(AXPHomePageService);\n private entityService = inject(AXPEntityService);\n\n async provide(context: AXPMenuProviderContext): Promise<void> {\n const scope = RootConfig.config.i18n;\n const module = RootConfig.module;\n const appName = this.sessionService.application?.name;\n\n const isAuthorized = await firstValueFrom(this.sessionService.isAuthorized$);\n if (!isAuthorized) {\n return;\n }\n //\n const homePagePath = this.homePageService.getCurrent().path;\n if (homePagePath) {\n context.addItems([\n {\n name: AXPCommonMenuKeys.Home,\n priority: -10,\n text: '@general:terms.interface.navigation.home',\n path: homePagePath,\n icon: 'fa-light fa-grid-2',\n shortcuts: [{ keys: 'home', allowInEditableFields: false }],\n },\n {\n name: 'module-divider',\n priority: 100,\n text: '@general:menus.modules.title',\n type: 'group',\n },\n ]);\n }\n\n // Check if Foundation Data menu exists, create it if not\n const foundationDataMenu = context.find(AXPCommonMenuKeys.Configuration);\n if (!foundationDataMenu.exists) {\n context.addItems([\n {\n name: AXPCommonMenuKeys.Configuration,\n priority: 10000001,\n text: '@general:menus.foundation-data.title',\n icon: 'fa-light fa-database',\n type: 'menu',\n children: [],\n },\n ]);\n }\n\n // Ensure Date and Time menu exists under Configuration\n const dateAndTimeMenu = context.find(AXPCommonMenuKeys.DateAndTime);\n if (!dateAndTimeMenu.exists) {\n context.find(AXPCommonMenuKeys.Configuration).addItems([\n {\n name: AXPCommonMenuKeys.DateAndTime,\n priority: 8500,\n text: '@general:menus.date-and-time.title',\n icon: 'fa-light fa-clock',\n type: 'menu',\n children: [],\n },\n ]);\n }\n\n // Ensure Region menu exists under Configuration\n const regionMenu = context.find(AXPCommonMenuKeys.Region);\n if (!regionMenu.exists) {\n context.find(AXPCommonMenuKeys.Configuration).addItems([\n {\n name: AXPCommonMenuKeys.Region,\n priority: 8600,\n text: '@general:menus.region.title',\n icon: 'fa-light fa-globe',\n type: 'menu',\n children: [],\n },\n ]);\n }\n\n // Ensure People and Demographics menu exists under Configuration\n const peopleAndDemographicsMenu = context.find(AXPCommonMenuKeys.PeopleAndDemographics);\n if (!peopleAndDemographicsMenu.exists) {\n context.find(AXPCommonMenuKeys.Configuration).addItems([\n {\n name: AXPCommonMenuKeys.PeopleAndDemographics,\n priority: 8440,\n text: '@general:menus.people-and-demographics.title',\n icon: 'fa-light fa-user',\n type: 'menu',\n children: [],\n },\n ]);\n }\n\n // Ensure Project and Task menu exists under Configuration\n const ProjectMenu = context.find(AXPCommonMenuKeys.Projects);\n if (!ProjectMenu.exists) {\n context.find(AXPCommonMenuKeys.Configuration).addItems([\n {\n name: AXPCommonMenuKeys.Projects,\n priority: 8450,\n text: '@general:menus.projects.title',\n icon: 'fa-light fa-clipboard-list-check',\n type: 'menu',\n children: [],\n },\n ]);\n }\n\n // Ensure Scheduling and Events menu exists under Configuration\n const schedulingAndEventsMenu = context.find(AXPCommonMenuKeys.SchedulingAndEvents);\n if (!schedulingAndEventsMenu.exists) {\n context.find(AXPCommonMenuKeys.Configuration).addItems([\n {\n name: AXPCommonMenuKeys.SchedulingAndEvents,\n priority: 8930,\n text: '@general:menus.scheduling-and-events.title',\n icon: 'fa-light fa-calendar-days',\n type: 'menu',\n children: [],\n },\n ]);\n }\n\n // Ensure Data and Content menu exists under Configuration\n const dataAndContentMenu = context.find(AXPCommonMenuKeys.DataAndContent);\n if (!dataAndContentMenu.exists) {\n context.find(AXPCommonMenuKeys.Configuration).addItems([\n {\n name: AXPCommonMenuKeys.DataAndContent,\n priority: 8945,\n text: '@general:menus.data-and-content.title',\n icon: 'fa-light fa-folder-tree',\n type: 'menu',\n children: [],\n },\n ]);\n }\n\n // Intelligence config shell is owned by ai-management (Platform Console feature policy).\n\n const contactsMenu = context.find(AXPCommonMenuKeys.Contacts);\n if (!contactsMenu.exists) {\n context.addItems([\n {\n name: AXPCommonMenuKeys.Contacts,\n priority: 8010,\n text: '@general:menus.contacts.title',\n icon: 'fa-light fa-address-book',\n type: 'menu',\n children: [],\n },\n ]);\n }\n\n const planEquipmentMenu = context.find(AXPCommonMenuKeys.PlantEquipment);\n if (!planEquipmentMenu.exists) {\n context.addItems([\n {\n name: AXPCommonMenuKeys.PlantEquipment,\n priority: 8220,\n text: '@general:menus.plan-equipment.title',\n icon: 'fa-light fa-screwdriver-wrench',\n type: 'menu',\n children: [],\n },\n ]);\n }\n\n // Check if Administration group exists, create it if not\n const administrationGroup = context.find(AXPCommonMenuKeys.Administration);\n if (!administrationGroup.exists) {\n context.addItems([\n {\n name: AXPCommonMenuKeys.Administration,\n priority: 10000002,\n text: '@general:menus.administration.title',\n type: 'menu',\n icon: 'fa-light fa-screwdriver-wrench',\n children: [],\n },\n ]);\n }\n\n const administrationContentMenu = context.find(AXPCommonMenuKeys.Content);\n if (!administrationContentMenu.exists) {\n context.find(AXPCommonMenuKeys.Administration).addItems([\n {\n name: AXPCommonMenuKeys.Content,\n priority: 10,\n text: '@general:menus.content.title',\n icon: 'fa-light fa-paint-brush',\n type: 'menu',\n children: [],\n },\n ]);\n }\n\n const administrationMonitoringMenu = context.find(AXPCommonMenuKeys.Monitoring);\n if (!administrationMonitoringMenu.exists) {\n context.find(AXPCommonMenuKeys.Administration).addItems([\n {\n name: AXPCommonMenuKeys.Monitoring,\n priority: 12,\n text: '@general:menus.monitoring.title',\n icon: 'fa-light fa-chart-line',\n type: 'menu',\n children: [],\n },\n ]);\n }\n\n const administrationWorkflowsMenu = context.find(AXPCommonMenuKeys.Workflows);\n if (!administrationWorkflowsMenu.exists) {\n context.find(AXPCommonMenuKeys.Administration).addItems([\n {\n name: AXPCommonMenuKeys.Workflows,\n priority: 20,\n text: '@general:menus.workflows.title',\n icon: 'fa-light fa-diagram-project',\n type: 'menu',\n children: [],\n },\n ]);\n }\n\n // Check if Platform menu exists, create it if not (Applications, Tenants, Subscriptions)\n const platformMenu = context.find(AXPCommonMenuKeys.Platform);\n if (!platformMenu.exists) {\n context.addItems([\n {\n name: AXPCommonMenuKeys.Platform,\n priority: 9000,\n text: '@general:menus.platform.title',\n type: 'menu',\n icon: 'fa-light fa-cubes',\n children: [],\n },\n ]);\n }\n\n // Check if Commerce menu exists (Products, Orders, Supplier Products)\n const commerceMenu = context.find(AXPCommonMenuKeys.Commerce);\n if (!commerceMenu.exists) {\n context.addItems([\n {\n name: AXPCommonMenuKeys.Commerce,\n priority: 8200,\n text: '@general:menus.commerce.title',\n type: 'menu',\n icon: 'fa-light fa-cart-shopping',\n children: [],\n },\n ]);\n }\n\n // Check if Help menu exists, create it if not\n const helpMenu = context.find(AXPCommonMenuKeys.Help);\n if (!helpMenu.exists) {\n context.addItems([\n {\n name: AXPCommonMenuKeys.Help,\n priority: 100090001,\n text: '@general:menus.help.title',\n icon: 'fa-light fa-circle-question',\n type: 'menu',\n children: [],\n },\n ]);\n }\n\n // const PlanEquipmentMenu = context.find(AXPCommonMenuKeys.PlanEquipmentConfig);\n // if (!PlanEquipmentMenu.exists) {\n // context.addItems([\n // {\n // name: AXPCommonMenuKeys.PlanEquipmentAssets,\n // priority: 100090001,\n // text: '@general:menus.plan-equipment-assets.title',\n // icon: 'fa-light fa-boxes-stacked',\n // type: 'menu',\n // children: [],\n // },\n // {\n // name: AXPCommonMenuKeys.PlanEquipmentMaintenances,\n // priority: 100090001,\n // text: '@general:menus.plan-equipment-maintenances.title',\n // icon: 'fa-light fa-screwdriver-wrench',\n // type: 'menu',\n // children: [],\n // },\n // ]);\n // }\n }\n}\n","import { Injectable } from '@angular/core';\nimport {\n AXPSettingDefinitionProvider,\n AXPSettingDefinitionProviderContext,\n} from '@acorex-platform/framework-client/common';\nimport { AXPWidgetsList } from '@acorex-platform/framework-shared/core';\nimport {\n AXPVersionHistorySettings,\n AXP_VERSION_HISTORY_SETTING_DEFAULTS,\n} from '@acorex-platform/module-common-client/contracts';\n\n//#region ----- Common / version history settings -----\n\n@Injectable()\nexport class AXMSettingProvider implements AXPSettingDefinitionProvider {\n async provide(context: AXPSettingDefinitionProviderContext): Promise<void> {\n const retentionVisibility = `{{ context.eval('${AXPVersionHistorySettings.RetentionEnabled}') }}`;\n\n context\n .addGroup(\n 'version-history',\n '@common:version-history.settings.group.title',\n '@common:version-history.settings.group.description',\n 'fa-light fa-clock-rotate-left',\n undefined,\n 920,\n )\n .addSection(\n 'retention',\n '@common:version-history.settings.retention.title',\n '@common:version-history.settings.retention.description',\n )\n .addSetting({\n key: AXPVersionHistorySettings.RetentionEnabled,\n title: '@common:version-history.settings.retention.items.enabled.title',\n description: '@common:version-history.settings.retention.items.enabled.description',\n scope: 'P',\n overridableAt: [],\n isInherited: false,\n defaultValue: AXP_VERSION_HISTORY_SETTING_DEFAULTS[AXPVersionHistorySettings.RetentionEnabled],\n widget: { type: AXPWidgetsList.Editors.ToggleSwitch },\n })\n .addSetting({\n key: AXPVersionHistorySettings.RetentionPeriodDays,\n title: '@common:version-history.settings.retention.items.period.title',\n description: '@common:version-history.settings.retention.items.period.description',\n scope: 'P',\n overridableAt: [],\n isInherited: false,\n defaultValue: AXP_VERSION_HISTORY_SETTING_DEFAULTS[AXPVersionHistorySettings.RetentionPeriodDays],\n widget: {\n type: AXPWidgetsList.Editors.NumberBox,\n options: { minValue: 1, maxValue: 3650, visibility: retentionVisibility },\n },\n validationRules: [{ rule: 'required' }],\n })\n .addSetting({\n key: AXPVersionHistorySettings.RetentionBatchSize,\n title: '@common:version-history.settings.retention.items.batch-size.title',\n description: '@common:version-history.settings.retention.items.batch-size.description',\n scope: 'P',\n overridableAt: [],\n isInherited: false,\n defaultValue: AXP_VERSION_HISTORY_SETTING_DEFAULTS[AXPVersionHistorySettings.RetentionBatchSize],\n widget: {\n type: AXPWidgetsList.Editors.NumberBox,\n options: { minValue: 1, maxValue: 5000, visibility: retentionVisibility },\n },\n validationRules: [{ rule: 'required' }],\n })\n .addSetting({\n key: AXPVersionHistorySettings.RetentionPurgeCron,\n title: '@common:version-history.settings.retention.items.purge-cron.title',\n description: '@common:version-history.settings.retention.items.purge-cron.description',\n scope: 'P',\n overridableAt: [],\n isInherited: false,\n defaultValue: AXP_VERSION_HISTORY_SETTING_DEFAULTS[AXPVersionHistorySettings.RetentionPurgeCron],\n widget: {\n type: AXPWidgetsList.Editors.TextBox,\n options: { visibility: retentionVisibility },\n },\n })\n .endSection()\n .addSection(\n 'capture',\n '@common:version-history.settings.capture.title',\n '@common:version-history.settings.capture.description',\n )\n .addSetting({\n key: AXPVersionHistorySettings.SkipEmptyPatches,\n title: '@common:version-history.settings.capture.items.skip-empty.title',\n description: '@common:version-history.settings.capture.items.skip-empty.description',\n scope: 'P',\n overridableAt: [],\n isInherited: false,\n defaultValue: AXP_VERSION_HISTORY_SETTING_DEFAULTS[AXPVersionHistorySettings.SkipEmptyPatches],\n widget: { type: AXPWidgetsList.Editors.ToggleSwitch },\n })\n .endSection()\n .endGroup();\n }\n}\n\n//#endregion\n","import { AXTranslationService } from \"@acorex/core/translation\";\nimport { ALL_DEFAULT_OPERATORS } from \"@acorex-platform/framework-client/common\";\nimport { AXPExpressionEvaluatorScopeProvider, AXPExpressionEvaluatorScopeProviderContext } from \"@acorex-platform/framework-shared/core\";\nimport { inject } from \"@angular/core\";\n\nexport class AXMFilterOperatorEvaluatorScopeProvider implements AXPExpressionEvaluatorScopeProvider {\n\n\n protected translateService = inject(AXTranslationService, {\n optional: true,\n });\n\n async provide(context: AXPExpressionEvaluatorScopeProviderContext): Promise<void> {\n\n context.addScope('filter', {\n getTitle: async (operator: string) => {\n //return await this.translateService?.translateAsync(ALL_DEFAULT_OPERATORS.find((o) => o.name === operator)?.title ?? '');\n const result = ALL_DEFAULT_OPERATORS.find((o) => o.name === operator)?.title ?? '';\n return result;\n }\n })\n }\n}","//#region ---- Imports ----\n\nimport {\n AXPFeatureDefinitionProvider,\n AXPFeatureDefinitionProviderContext,\n} from '@acorex-platform/framework-client/core';\nimport { AXPCommonFeatureKeys } from '@acorex-platform/module-common-client/contracts';\n\n//#endregion\n\n//#region ---- Feature Definition Provider ----\n\n/**\n * Common Module Feature Definition Provider.\n * Provides feature definitions for the Common module.\n */\nexport class AXPCommonFeatureDefinitionProvider implements AXPFeatureDefinitionProvider {\n async provide(context: AXPFeatureDefinitionProviderContext): Promise<void> {\n // Global Search feature\n context.addFeature(AXPCommonFeatureKeys.GlobalSearch, {\n title: '@general:common.features.global-search.title',\n description: '@general:common.features.global-search.description',\n defaultValue: true,\n type: 'boolean',\n });\n\n // Advanced Export feature\n context.addFeature(AXPCommonFeatureKeys.AdvancedExport, {\n title: '@general:common.features.advanced-export.title',\n description: '@general:common.features.advanced-export.description',\n defaultValue: true,\n type: 'boolean',\n });\n\n // Activity Log feature\n context.addFeature(AXPCommonFeatureKeys.ActivityLog, {\n title: '@general:common.features.activity-log.title',\n description: '@general:common.features.activity-log.description',\n defaultValue: true,\n type: 'boolean',\n });\n\n // Data Import feature\n context.addFeature(AXPCommonFeatureKeys.DataImport, {\n title: '@general:common.features.data-import.title',\n description: '@general:common.features.data-import.description',\n defaultValue: true,\n type: 'boolean',\n });\n\n // Bulk Operations feature\n context.addFeature(AXPCommonFeatureKeys.BulkOperations, {\n title: '@general:common.features.bulk-operations.title',\n description: '@general:common.features.bulk-operations.description',\n defaultValue: true,\n type: 'boolean',\n });\n\n // Advanced Filtering feature\n context.addFeature(AXPCommonFeatureKeys.AdvancedFiltering, {\n title: '@general:common.features.advanced-filtering.title',\n description: '@general:common.features.advanced-filtering.description',\n defaultValue: true,\n type: 'boolean',\n });\n\n // Data Synchronization feature\n context.addFeature(AXPCommonFeatureKeys.DataSynchronization, {\n title: '@general:common.features.data-synchronization.title',\n description: '@general:common.features.data-synchronization.description',\n defaultValue: false,\n type: 'boolean',\n });\n }\n}\n\n//#endregion\n\n","import { Injectable } from '@angular/core';\nimport {\n AXPMultiSourceDefinitionProvider,\n AXPMultiSourceDefinitionProviderContext,\n AXPMultiSourceDefinition,\n AXPMultiSourceItem,\n AXPMultiSourceType,\n} from '@acorex-platform/framework-client/layout/entity';\n\n/**\n * Multi-source definition provider for assignment scenarios\n * Supports selecting from: Employee User, Position, Role, Department, Team\n */\n@Injectable()\nexport class AXCAssignmentMultiSourceDefinitionProvider implements AXPMultiSourceDefinitionProvider {\n //#region ---- Public Methods ----\n\n async provide(context: AXPMultiSourceDefinitionProviderContext): Promise<void> {\n // Define sources for assignment\n const sources: AXPMultiSourceItem[] = [\n {\n key: 'employee-user',\n title: '@security-management:users.terms.user',\n icon: 'far fa-user',\n description: '@security-management:users.terms.user-description',\n type: AXPMultiSourceType.Entity,\n entity: 'SecurityManagement.User',\n displayFormat: '{title} ({code})',\n valueTransform: (item: any) => ({\n sourceKey: 'employee-user',\n refId: item.id,\n displayName: item.title || item.name || item.code,\n data: item,\n }),\n },\n {\n key: 'position',\n title: '@organization-management:positions.terms.position',\n icon: 'far fa-briefcase',\n description: '@organization-management:positions.terms.position-description',\n type: AXPMultiSourceType.Entity,\n entity: 'OrganizationManagement.Position',\n displayFormat: '{title} ({code})',\n valueTransform: (item: any) => ({\n sourceKey: 'position',\n refId: item.id,\n displayName: item.title || item.name || item.code,\n data: item,\n }),\n },\n {\n key: 'role',\n title: '@security-management:roles.terms.role',\n icon: 'far fa-user-shield',\n description: '@security-management:roles.terms.role-description',\n type: AXPMultiSourceType.Entity,\n entity: 'SecurityManagement.Role',\n displayFormat: '{title} ({code})',\n valueTransform: (item: any) => ({\n sourceKey: 'role',\n refId: item.id,\n displayName: item.title || item.name || item.code,\n data: item,\n }),\n },\n {\n key: 'department',\n title: '@organization-management:departments.terms.department',\n icon: 'far fa-sitemap',\n description: '@organization-management:departments.terms.department-description',\n type: AXPMultiSourceType.Entity,\n entity: 'OrganizationManagement.Department',\n displayFormat: '{title} ({code})',\n valueTransform: (item: any) => ({\n sourceKey: 'department',\n refId: item.id,\n displayName: item.title || item.name || item.code,\n data: item,\n }),\n },\n {\n key: 'team',\n title: '@organization-management:teams.terms.team',\n icon: 'far fa-users',\n description: '@organization-management:teams.terms.team-description',\n type: AXPMultiSourceType.Entity,\n entity: 'OrganizationManagement.Team',\n displayFormat: '{title} ({code})',\n valueTransform: (item: any) => ({\n sourceKey: 'team',\n refId: item.id,\n displayName: item.title || item.name || item.code,\n data: item,\n }),\n },\n ];\n\n const definition: AXPMultiSourceDefinition = {\n name: 'assignment',\n title: '@common:terms.assignment',\n searchStrategy: 'tabs',\n defaultMultiple: true,\n sources,\n };\n\n context.addDefinition(definition);\n }\n\n //#endregion\n}\n\n","//#region ---- Imports ----\n\nimport { createMultiLanguageString } from '@acorex/core/translation';\nimport type {\n AXPCatalogScopeDefinition,\n AXPCatalogScopeDefinitionProvider,\n} from '@acorex-platform/framework-client/core';\nimport { Injectable } from '@angular/core';\nimport { COMMON_CATALOG_SCOPE_GENERAL } from '@acorex-platform/module-common-client/contracts';\n\n//#endregion\n\n//#region ---- Constants ----\n\nconst M = createMultiLanguageString;\n\nconst QUESTIONNAIRE = 'AssessmentManagement.Questionnaire';\nconst QUESTION_BANK_ITEM = 'AssessmentManagement.QuestionBankItem';\nconst WORKFLOW_DEFINITION = 'WorkflowManagement.WorkflowDefinition';\n\nconst COMMON_CATALOG_TARGETS = [\n QUESTIONNAIRE,\n QUESTION_BANK_ITEM,\n WORKFLOW_DEFINITION,\n] as const;\n\n//#endregion\n\n//#region ---- Provider ----\n\n@Injectable()\nexport class AXPCommonCatalogScopeDefinitionProvider\n implements AXPCatalogScopeDefinitionProvider\n{\n async items(): Promise<AXPCatalogScopeDefinition[]> {\n return [\n {\n name: COMMON_CATALOG_SCOPE_GENERAL,\n title: M('General', 'عمومی'),\n description: M(\n 'Shared questionnaires, question bank items, and workflows not tied to a specific business domain.',\n 'پرسشنامهها، آیتمهای بانک سؤال و گردشکارهای مشترک که به یک حوزه کسبوکار خاص وابسته نیستند.',\n ),\n targets: [...COMMON_CATALOG_TARGETS],\n icon: 'fa-light fa-grid-2',\n cssClass: 'lighter-surface',\n order: 0,\n },\n ];\n }\n}\n\n//#endregion\n","//#region ---- Platform Imports ----\n\nimport { AXP_PERMISSION_MODULES_RESOLVER } from '@acorex-platform/framework-client/auth';\nimport { AXP_MENU_PROVIDER, AXP_SETTING_DEFINITION_PROVIDER } from '@acorex-platform/framework-client/common';\nimport {\n AXP_CATALOG_SCOPE_DEFINITION_PROVIDER,\n AXP_EXPRESSION_EVALUATOR_SCOPE_PROVIDER,\n AXP_FEATURE_DEFINITION_PROVIDER,\n AXP_MODULE_MANIFEST_PROVIDER,\n} from '@acorex-platform/framework-client/core';\nimport { provideCommandSetups } from '@acorex-platform/framework-client/runtime';\nimport { resolvePermissionModules } from '@acorex-platform/module-common-client/contracts';\nimport { CommonManifest } from './manifest';\nimport { AXP_STATUS_PROVIDERS } from '@acorex-platform/framework-client/common';\nimport { AXPWidgetsModule } from '@acorex-platform/framework-client/layout/widgets';\nimport { NgModule } from '@angular/core';\n\n//#endregion\n\n//#region ---- Feature Plugin Modules ----\n\nimport { AXPArchivePluginModule } from './features/archive-plugin';\nimport { AXPHistoryModule } from './features/history-plugin';\nimport { AXPAvatarPluginModule } from './features/avatar-plugin';\nimport { AXPCategoryModule } from './features/category-plugin';\nimport { AXPCatalogScopePluginModule } from './features/catalog-scope-plugin';\nimport { AXPClonePluginModule } from './features/clone-plugin';\nimport { AXPColorPluginModule } from './features/color-plugin';\nimport { AXPCompareModule } from './features/compare';\nimport { AXPComputedPropertiesModule } from './features/computed-properties/computed-properties.module';\nimport { AXPDescriptionPluginModule } from './features/description-plugin';\nimport { AXPDisablePluginModule } from './features/disable-plugin';\nimport { AXPDefaultPluginModule } from './features/default-plugin';\nimport { AXPDerivedNamePluginModule } from './features/derived-name-plugin';\nimport { AXPGlobalSearchModule } from './features/global-search';\nimport { AXPIconPluginModule } from './features/icon-plugin';\nimport { AXMLockSystemModule } from './features/lock-system/lock-system.module';\nimport { AXPNamePluginModule } from './features/name-plugin';\nimport { AXPNotesPluginModule } from './features/notes-plugin';\nimport { AXPPrimaryPluginModule } from './features/primary-plugin';\nimport { AXPStatusPluginModule } from './features/status';\nimport { AXPTitlePluginModule } from './features/title-plugin';\nimport { AXPUniqueFieldsPluginModule } from './features/unique-fields-plugin';\nimport { AXPValidationRulesModule } from './validations';\n\n//#endregion\n\n//#region ---- Shared Providers & Evaluators ----\n\nimport { AXPDateTimeEvaluatorScopeProvider } from './evaluators/datetime.evaluator-scope.provider';\nimport { AXPAddressEvaluatorScopeProvider } from './evaluators/address.evaluator-scope.provider';\nimport { AXPTranslateEvaluatorScopeProvider } from './evaluators/translate.evaluator-scope.provider';\nimport { AXPUtilsEvaluatorScopeProvider } from './evaluators/utils.evaluator-scope.provider';\nimport { TaskStatusProvider, ApprovalStatusProvider, StateStatusProvider } from './features/status/providers';\n\n//#endregion\n\n//#region ---- Module Providers ----\n\nimport { AXMCommonMiddlewaresModule } from './middlewares/command-middleware.module';\nimport { AXMMenuProvider } from './menu.provider';\nimport { AXMSettingProvider } from './settings.provider';\nimport { AXMFilterOperatorEvaluatorScopeProvider } from './evaluators/filter/filter-operator-evaluator-scope.provider';\nimport { AXPCommonFeatureDefinitionProvider } from './feature-definition.provider';\nimport { AXP_MULTI_SOURCE_DEFINITION_PROVIDER } from '@acorex-platform/framework-client/layout/entity';\nimport { AXCAssignmentMultiSourceDefinitionProvider } from './multi-source-definitions';\nimport { AXPCommonCatalogScopeDefinitionProvider } from './catalog-scope-definition.provider';\n\n//#endregion\n\n@NgModule({\n imports: [\n //#region ---- Extension & System Plugins ----\n\n AXPCategoryModule,\n AXPCatalogScopePluginModule,\n AXMLockSystemModule,\n AXPHistoryModule,\n //#endregion\n\n //#region ---- Operation Plugins ----\n\n AXPClonePluginModule,\n\n //#endregion\n\n //#region ---- Status Management Plugins ----\n\n AXPArchivePluginModule,\n AXPDisablePluginModule,\n AXPDefaultPluginModule,\n AXPPrimaryPluginModule,\n AXPUniqueFieldsPluginModule,\n\n //#endregion\n\n //#region ---- Property Plugins ----\n\n AXPNamePluginModule,\n AXPDerivedNamePluginModule,\n AXPTitlePluginModule,\n AXPNotesPluginModule,\n AXPDescriptionPluginModule,\n AXPIconPluginModule,\n AXPColorPluginModule,\n AXPAvatarPluginModule,\n\n //#endregion\n\n //#region ---- Feature Modules ----\n\n // AXPGlobalSearchModule,\n AXPCompareModule,\n AXPStatusPluginModule,\n AXPComputedPropertiesModule,\n AXPValidationRulesModule,\n\n //#endregion\n\n //#region ---- Platform Modules ----\n\n AXPWidgetsModule,\n AXMCommonMiddlewaresModule,\n\n //#endregion\n ],\n exports: [],\n declarations: [],\n providers: [\n //#region ---- Permission → module map (edition filtering) ----\n\n {\n provide: AXP_PERMISSION_MODULES_RESOLVER,\n useValue: resolvePermissionModules,\n },\n\n //#endregion\n\n //#region ---- Menu Provider ----\n\n {\n provide: AXP_MENU_PROVIDER,\n useClass: AXMMenuProvider,\n multi: true,\n },\n\n //#endregion\n\n //#region ---- Settings Provider ----\n\n {\n provide: AXP_SETTING_DEFINITION_PROVIDER,\n useClass: AXMSettingProvider,\n multi: true,\n },\n\n //#endregion\n\n //#region ---- Expression Evaluator Scope Providers ----\n\n {\n provide: AXP_EXPRESSION_EVALUATOR_SCOPE_PROVIDER,\n useClass: AXPDateTimeEvaluatorScopeProvider,\n multi: true,\n },\n {\n provide: AXP_EXPRESSION_EVALUATOR_SCOPE_PROVIDER,\n useClass: AXPAddressEvaluatorScopeProvider,\n multi: true,\n },\n {\n provide: AXP_EXPRESSION_EVALUATOR_SCOPE_PROVIDER,\n useClass: AXPTranslateEvaluatorScopeProvider,\n multi: true,\n },\n {\n provide: AXP_EXPRESSION_EVALUATOR_SCOPE_PROVIDER,\n useClass: AXPUtilsEvaluatorScopeProvider,\n multi: true,\n },\n {\n provide: AXP_EXPRESSION_EVALUATOR_SCOPE_PROVIDER,\n useClass: AXMFilterOperatorEvaluatorScopeProvider,\n multi: true,\n },\n\n //#endregion\n\n //#region ---- Status Providers ----\n\n {\n provide: AXP_STATUS_PROVIDERS,\n useClass: TaskStatusProvider,\n multi: true,\n },\n {\n provide: AXP_STATUS_PROVIDERS,\n useClass: ApprovalStatusProvider,\n multi: true,\n },\n {\n provide: AXP_STATUS_PROVIDERS,\n useClass: StateStatusProvider,\n multi: true,\n },\n //#endregion\n\n //#region ---- Module Manifest Provider ----\n\n {\n provide: AXP_MODULE_MANIFEST_PROVIDER,\n useValue: CommonManifest,\n multi: true,\n },\n\n //#endregion\n\n //#region ---- Feature Definition Provider ----\n\n {\n provide: AXP_FEATURE_DEFINITION_PROVIDER,\n useClass: AXPCommonFeatureDefinitionProvider,\n multi: true,\n },\n\n //#endregion\n\n //#region ---- Catalog Scope Definition Provider ----\n\n {\n provide: AXP_CATALOG_SCOPE_DEFINITION_PROVIDER,\n useClass: AXPCommonCatalogScopeDefinitionProvider,\n multi: true,\n },\n\n //#endregion\n\n //#region ---- Multi-Source Definition Provider ----\n\n {\n provide: AXP_MULTI_SOURCE_DEFINITION_PROVIDER,\n useClass: AXCAssignmentMultiSourceDefinitionProvider,\n multi: true,\n },\n\n //#endregion\n\n //#region ---- Sample catalog commands (AI utilities) ----\n\n provideCommandSetups([\n {\n key: 'common.get_current_time',\n command: () =>\n import('./tools/get-current-time.command').then((m) => m.CommonGetCurrentTimeCommand),\n },\n ]),\n\n //#endregion\n ],\n})\nexport class AXMCommonModule { }\n","import { InjectionToken, Type } from \"@angular/core\";\n\nexport interface AXPGlobalSearchConfigs {\n window: () => Type<any>;\n}\n\nexport const AXP_GLOBAL_SEARCH_CONFIG_TOKEN = new InjectionToken<AXPGlobalSearchConfigs>('AXP_GLOBAL_SEARCH_CONFIG_TOKEN');","import { AXPopupService } from '@acorex/components/popup';\nimport { AXPSearchDisplayResult } from '@acorex-platform/framework-client/common';\nimport { AXPCommandExecutor } from '@acorex-platform/framework-client/runtime';\nimport {\n AXPCommand,\n pickInputOrOptionsField,\n type AXPCommandExecuteResultPromise,\n} from '@acorex-platform/framework-shared/runtime';\nimport { inject, Injectable } from '@angular/core';\n\nimport { AXP_GLOBAL_SEARCH_CONFIG_TOKEN } from '../search.config';\n\nexport interface AXPGlobalSearchCommandInput {\n text?: string | null;\n options?: Partial<AXPGlobalSearchCommandInput>;\n}\n\n/**\n * Opens the global search popup and executes the command selected by the user.\n */\n@Injectable({ providedIn: 'root' })\nexport class AXPGlobalSearchCommand implements AXPCommand<AXPGlobalSearchCommandInput, void> {\n //#region ----- Services & Dependencies -----\n\n private readonly popupService = inject(AXPopupService);\n private readonly commandExecutor = inject(AXPCommandExecutor);\n private readonly config = inject(AXP_GLOBAL_SEARCH_CONFIG_TOKEN);\n\n //#endregion\n\n //#region ----- State -----\n\n /** In-flight search popup session (open until the popup closes). */\n private activeShow: AXPCommandExecuteResultPromise<void> | null = null;\n\n //#endregion\n\n //#region ----- Public Methods -----\n\n /** True while the global search popup is opening or already visible. */\n get isOpen(): boolean {\n return this.activeShow != null;\n }\n\n async execute(\n input: AXPGlobalSearchCommandInput | Record<string, unknown>\n ): AXPCommandExecuteResultPromise<void> {\n if (this.activeShow) {\n return { success: true, kind: 'object', data: undefined };\n }\n\n this.activeShow = this.openSearch(input).finally(() => {\n this.activeShow = null;\n });\n\n return this.activeShow;\n }\n\n //#endregion\n\n //#region ----- Popup -----\n\n private async openSearch(\n input: AXPGlobalSearchCommandInput | Record<string, unknown>\n ): AXPCommandExecuteResultPromise<void> {\n const text = pickInputOrOptionsField<string | null>(input, 'text');\n const component = await this.config.window();\n const popup = await this.popupService.open(component, {\n title: 'Search...',\n size: 'fit',\n closeOnBackdropClick: true,\n data: {\n text,\n },\n header: false,\n });\n\n if (popup.data) {\n const result = popup.data as AXPSearchDisplayResult;\n if (result?.command) {\n const commandName = result.command.name;\n const commandOptions = result.command.options ?? {};\n await this.commandExecutor.execute(commandName, commandOptions);\n }\n }\n\n return { success: true, kind: 'object', data: undefined };\n }\n\n //#endregion\n}\n","import { AXPKeyboardShortcutPriority } from '@acorex-platform/framework-shared/core';\nimport { AXButtonModule } from '@acorex/components/button';\nimport { AXDecoratorModule } from '@acorex/components/decorators';\nimport { AXKBDComponent, AXKBDItemComponent } from '@acorex/components/kbd';\nimport { AsyncPipe } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n DestroyRef,\n computed,\n inject,\n} from '@angular/core';\nimport { AXTranslationModule } from '@acorex/core/translation';\nimport { AXPTabNavigationService } from '@acorex-platform/framework-client/common';\nimport { AXPCommonCommandKeys } from '@acorex-platform/module-common-client/contracts';\nimport {\n AXPKeyboardShortcutRegistry,\n chordToKbdItemKeys,\n} from '@acorex-platform/framework-client/core';\nimport { AXPCommandExecutor } from '@acorex-platform/framework-client/runtime';\nimport { AXPLayoutThemeService } from '@acorex-platform/framework-client/themes/shared';\n\nimport { AXPGlobalSearchCommand } from './commands/open-global-search.command';\n\n@Component({\n template: `\n @if (compactSearch()) {\n <ax-button\n [color]=\"themeStore.headerButtonColor()\"\n [look]=\"themeStore.headerButtonLook()\"\n [iconOnly]=\"true\"\n [title]=\"'@global-search:terms.search-placeholder' | translate | async\"\n (onClick)=\"startSearch()\"\n >\n <ax-icon icon=\"far fa-search\"></ax-icon>\n </ax-button>\n } @else {\n <ax-button\n [color]=\"themeStore.headerButtonColor()\"\n [look]=\"themeStore.headerButtonLook()\"\n class=\"flex md:hidden\"\n (onClick)=\"startSearch()\"\n >\n <ax-icon class=\"fa-regular fa-search\"></ax-icon>\n </ax-button>\n <div\n [class]=\"searchBarClass()\"\n (click)=\"startSearch()\"\n >\n <div class=\"flex items-center gap-2\">\n <i class=\"fa-light fa-search text-xl\"></i>\n <span>{{\n '@global-search:terms.search-placeholder' | translate | async\n }}</span>\n </div>\n <ax-kbd [class.ax-dark]=\"themeStore.headerBrandEnabled()\" look=\"blank\">\n <ax-kbd-item [keys]=\"searchShortcutKeys\"></ax-kbd-item>\n </ax-kbd>\n </div>\n }\n `,\n imports: [\n AXButtonModule,\n AXDecoratorModule,\n AXKBDComponent,\n AXKBDItemComponent,\n AXTranslationModule,\n AsyncPipe,\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class AXPGlobalSearchSlotComponent {\n //#region ---- Services & Dependencies ----\n\n private readonly commandExecutor = inject(AXPCommandExecutor);\n private readonly searchCommand = inject(AXPGlobalSearchCommand);\n private readonly shortcutRegistry = inject(AXPKeyboardShortcutRegistry);\n private readonly destroyRef = inject(DestroyRef);\n private readonly tabNavigation = inject(AXPTabNavigationService);\n protected readonly themeStore = inject(AXPLayoutThemeService);\n\n protected readonly searchShortcutKeys = chordToKbdItemKeys('ctrl+k');\n protected readonly compactSearch = computed(\n () => this.tabNavigation.effectiveMode() === 'tabular',\n );\n\n protected readonly searchBarClass = computed(() => {\n const base =\n 'h-10 w-72 rounded-default cursor-pointer justify-between hidden md:flex items-center px-3';\n if (!this.themeStore.headerBrandEnabled()) {\n return `${base} light-surface hover:dark-surface`;\n }\n return `${base} bg-primary-200/15 hover:bg-primary-200/30 text-primary-text`;\n });\n\n //#endregion\n\n //#region ---- Lifecycle ----\n\n constructor() {\n this.shortcutRegistry.register({\n owner: this.destroyRef,\n id: 'global-search',\n priority: AXPKeyboardShortcutPriority.Global,\n group: '@general:keyboard-shortcuts.groups.global',\n shortcuts: [\n {\n keys: ['ctrl+k'],\n title: '@general:keyboard-shortcuts.actions.global-search',\n allowInEditableFields: true,\n when: () => !this.searchCommand.isOpen,\n handler: () => {\n void this.startSearch();\n },\n },\n ],\n });\n }\n\n //#endregion\n\n //#region ---- UI Handlers ----\n\n protected async startSearch(): Promise<void> {\n await this.commandExecutor.execute(\n AXPCommonCommandKeys.GlobalSearch.Open,\n {},\n );\n }\n\n //#endregion\n}\n","import { NgModule } from '@angular/core';\nimport { AXPCommonCommandKeys } from '@acorex-platform/module-common-client/contracts';\nimport { AXPComponentSlotModule } from '@acorex-platform/framework-client/core';\nimport { provideCommandSetups } from '@acorex-platform/framework-client/runtime';\nimport { AXPCommonFeatureKeys } from '@acorex-platform/module-common-client/contracts';\nimport { AXPGlobalSearchCommand } from './commands/open-global-search.command';\nimport { AXPGlobalSearchSlotComponent } from './search-slot.component';\nimport { AXP_GLOBAL_SEARCH_CONFIG_TOKEN } from './search.config';\n\n@NgModule({\n imports: [\n AXPComponentSlotModule.forChild({\n 'root-header-start': [\n {\n priority: 0,\n name: 'search',\n component: AXPGlobalSearchSlotComponent,\n features: [AXPCommonFeatureKeys.GlobalSearch],\n },\n ],\n }),\n ],\n exports: [],\n declarations: [],\n providers: [\n {\n provide: AXP_GLOBAL_SEARCH_CONFIG_TOKEN,\n useValue: {\n window: () =>\n import('./search-popup.component').then((c) => c.AXPGlobalSearchPopupComponent),\n },\n },\n AXPGlobalSearchCommand,\n provideCommandSetups([\n {\n key: AXPCommonCommandKeys.GlobalSearch.Open,\n command: () =>\n import('./commands/open-global-search.command').then((m) => m.AXPGlobalSearchCommand),\n },\n ]),\n ],\n})\nexport class AXPGlobalSearchModule {}\n","import { AXPSearchDisplayGroupResult, AXPSearchDisplayResult, AXPSearchService, AXPSettingsService } from \"@acorex-platform/framework-client/common\";\nimport { AXPPlatformScope } from '@acorex-platform/framework-shared/core';\n\nimport { computed, inject, signal } from \"@angular/core\";\nimport { Subject } from \"rxjs\";\n\nexport class AXPGlobalSearchViewModel {\n\n private settingKeys = {\n recent: \"global-search:recents:items\",\n pinned: \"global-search:pinned:items\"\n }\n\n private searchService = inject(AXPSearchService);\n private settingsService = inject(AXPSettingsService);\n\n private _text = signal<string | null>(null);\n public text = this._text.asReadonly();\n\n private _results = signal<AXPSearchDisplayGroupResult[]>([]);\n public results = this._results.asReadonly();\n\n private _isBusy = signal(false);\n public isBusy = this._isBusy.asReadonly();\n\n public isEmpty = computed(() => this.text() && this.results().length == 0);\n\n public isValid = computed(() => (this.text()?.length ?? 0) > 2);\n\n public isStart = computed(() => !this.isEmpty() && this.results().length == 0);\n\n public isWelcome = computed(() => this.isStart() && this.pinnedItems().length == 0 && this.recentItems().length == 0);\n\n private _recentItems = signal<AXPSearchDisplayResult[]>([]);\n private _pinnedItems = signal<AXPSearchDisplayResult[]>([]);\n public pinnedItems = this._pinnedItems.asReadonly();\n public recentItems = computed(() => this.getTopRecentItems());\n\n public readonly onItemSelected = new Subject<AXPSearchDisplayResult>();\n\n constructor() {\n this.loadSettings();\n }\n\n public async search(text: string): Promise<void> {\n this._isBusy.set(true);\n this._text.set(text);\n\n if (!this.isValid()) {\n this._results.set([]);\n } else {\n await new Promise((resolve) => setTimeout(resolve, 250));\n const results = await this.searchService.search(text);\n this._results.set(results);\n }\n\n this._isBusy.set(false);\n }\n\n public async execute(item: AXPSearchDisplayResult): Promise<void> {\n this.onItemSelected.next(item);\n await this.updateSelectionHistory(item);\n }\n\n public async pin(item: AXPSearchDisplayResult): Promise<void> {\n const currentPinned = this._pinnedItems();\n if (!currentPinned.some(i => i.id === item.id)) {\n this._pinnedItems.set([item, ...currentPinned].slice(0, 5));\n await this.saveSettings();\n }\n }\n\n public async unpin(item: AXPSearchDisplayResult): Promise<void> {\n const currentPinned = this._pinnedItems();\n this._pinnedItems.set(currentPinned.filter(i => i.id !== item.id));\n await this.saveSettings();\n }\n\n public async togglePin(item: AXPSearchDisplayResult): Promise<void> {\n if (this.isPinned(item)) {\n await this.unpin(item);\n } else {\n await this.pin(item);\n }\n }\n\n public isPinned(item: AXPSearchDisplayResult): boolean {\n const currentPinned = this._pinnedItems();\n return currentPinned.some(i => i.id === item.id);\n }\n\n private async updateSelectionHistory(item: AXPSearchDisplayResult): Promise<void> {\n // Update recent selections\n const currentHistory = this._recentItems();\n const updatedHistory = [item, ...currentHistory.filter(i => i.id !== item.id)].slice(0, 5);\n this._recentItems.set(updatedHistory);\n\n // Save updated settings\n await this.saveSettings();\n }\n\n private getTopRecentItems(): AXPSearchDisplayResult[] {\n const pinnedIds = new Set(this._pinnedItems().map(item => item.id));\n return this._recentItems().filter(item => !pinnedIds.has(item.id)).slice(0, 5);\n }\n\n public async clearRecentItems() {\n this._recentItems.set([]);\n await this.settingsService.scope(AXPPlatformScope.User).set(this.settingKeys.recent, []);\n }\n\n private async loadSettings(): Promise<void> {\n // Load recent selections\n const recent = await this.settingsService.get<AXPSearchDisplayResult[]>(this.settingKeys.recent);\n if (recent) {\n this._recentItems.set(recent.slice(0, 5));\n }\n\n // Load pinned items\n const pinned = await this.settingsService.get<AXPSearchDisplayResult[]>(this.settingKeys.pinned);\n if (pinned) {\n this._pinnedItems.set(pinned.slice(0, 5));\n }\n }\n\n private async saveSettings(): Promise<void> {\n // Save recent selections\n await this.settingsService.scope(AXPPlatformScope.User).set(this.settingKeys.recent, this._recentItems().slice(0, 5));\n\n // Save pinned items\n await this.settingsService.scope(AXPPlatformScope.User).set(this.settingKeys.pinned, this._pinnedItems().slice(0, 5));\n }\n}\n","//#region ---- Imports ----\n\nimport { AXPBreadcrumbItem } from '@acorex-platform/framework-shared/core';\n\nimport { InjectionToken } from '@angular/core';\n\n//#endregion\n\n//#region ---- Config Interface ----\n\n/**\n * Configuration for the resource appointment page.\n * Provide via AXP_RESOURCE_APPOINTMENT_PAGE_CONFIG to customize title, description, breadcrumbs, and board options.\n */\nexport interface AXPResourceAppointmentPageConfig {\n /** Page title (translation key e.g. '@module:feature.page-title' or literal). */\n pageTitle: string;\n /** Optional page description (translation key or literal). */\n pageDescription?: string | null;\n /** Optional page icon (e.g. 'fa-light fa-calendar-lines'). */\n pageIcon?: string | null;\n /** Optional breadcrumb items (in addition to default home). */\n breadcrumbs?: AXPBreadcrumbItem[];\n /** Whether to show resource headers in timeline views. Default true. */\n showResourceHeaders?: boolean;\n /** Whether to show appointments that have no resourceId. Default true. */\n showUnassignedAppointments?: boolean;\n}\n\n//#endregion\n\n//#region ---- Injection Token ----\n\nexport const AXP_RESOURCE_APPOINTMENT_PAGE_CONFIG = new InjectionToken<AXPResourceAppointmentPageConfig>(\n 'AXP_RESOURCE_APPOINTMENT_PAGE_CONFIG',\n);\n\n//#endregion\n","//#region ---- Imports ----\n\nimport { AXTranslationModule } from '@acorex/core/translation';\nimport { AXPBreadcrumbItem } from '@acorex-platform/framework-shared/core';\nimport { AXPResourceAppointmentComponent, AXPThemeLayoutBlockComponent } from '@acorex-platform/framework-client/layout/components';\nimport { AXPPageLayoutBase, AXPPageLayoutBaseComponent, AXPPageLayoutComponent } from '@acorex-platform/framework-client/layout/views';\n\nimport { ChangeDetectionStrategy, Component, inject, OnInit, signal, ViewEncapsulation } from '@angular/core';\nimport { ActivatedRoute } from '@angular/router';\nimport {\n AXP_RESOURCE_APPOINTMENT_PAGE_CONFIG,\n AXPResourceAppointmentPageConfig,\n} from './resource-appointment-page.config';\n\n//#endregion\n\n@Component({\n selector: 'axp-resource-appointment-page',\n templateUrl: './resource-appointment-page.component.html',\n styleUrls: ['./resource-appointment-page.component.css'],\n imports: [\n AXTranslationModule,\n AXPPageLayoutComponent,\n AXPThemeLayoutBlockComponent,\n AXPResourceAppointmentComponent\n],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n providers: [\n {\n provide: AXPPageLayoutBase,\n useExisting: AXPResourceAppointmentPageComponent,\n },\n ],\n})\nexport class AXPResourceAppointmentPageComponent extends AXPPageLayoutBaseComponent implements OnInit {\n //#region ---- Services & Dependencies ----\n\n private readonly pageConfig = inject(AXP_RESOURCE_APPOINTMENT_PAGE_CONFIG, { optional: true });\n private readonly route = inject(ActivatedRoute);\n\n //#endregion\n\n //#region ---- Route / Params ----\n\n /** Active provider name from route param 'provider-name'. */\n protected readonly providerName = signal<string | undefined>(undefined);\n\n //#endregion\n\n //#region ---- Computed / Config ----\n\n protected get config(): AXPResourceAppointmentPageConfig | null {\n return this.pageConfig ?? null;\n }\n\n protected get showResourceHeaders(): boolean {\n return this.config?.showResourceHeaders ?? true;\n }\n\n protected get showUnassignedAppointments(): boolean {\n return this.config?.showUnassignedAppointments ?? true;\n }\n\n //#endregion\n\n //#region ---- Lifecycle ----\n\n override async ngOnInit(): Promise<void> {\n await super.ngOnInit();\n const initial = this.route.snapshot.paramMap.get('provider-name') ?? undefined;\n this.providerName.set(initial);\n this.route.paramMap.subscribe((params) => {\n const name = params.get('provider-name') ?? undefined;\n if (name !== this.providerName()) {\n this.providerName.set(name);\n }\n });\n }\n\n //#endregion\n\n //#region ---- Page Metadata Overrides ----\n\n override async getPageTitle(): Promise<string> {\n if (this.config?.pageTitle) {\n const translated = await this.translateService.translateAsync(this.config.pageTitle);\n if (translated !== this.config.pageTitle) return translated;\n return this.config.pageTitle;\n }\n return this.translateService.translateAsync('@common:pages.resource-appointment.page-title');\n }\n\n override async getPageDescription(): Promise<string | null> {\n if (this.config?.pageDescription != null && this.config.pageDescription !== '') {\n const translated = await this.translateService.translateAsync(this.config.pageDescription);\n if (translated !== this.config.pageDescription) return translated;\n return this.config.pageDescription;\n }\n return this.translateService.translateAsync('@common:pages.resource-appointment.page-description');\n }\n\n override getPageIcon(): string | null {\n return this.config?.pageIcon ?? null;\n }\n\n override async getPageBreadcrumbs(): Promise<AXPBreadcrumbItem[]> {\n return this.config?.breadcrumbs ?? [];\n }\n\n //#endregion\n}\n","<axp-page-layout>\n <!-- <axp-layout-start-side class=\"border-e lightest-surface h-full min-w-0\">\n <axp-layout-header class=\"flex flex-row! items-center justify-center gap-2 border-b\">\n <span class=\"text-sm font-medium\">\n {{ title() || ('@general:terms.resource-appointment' | translate | async) || 'Resource appointment' }}\n </span>\n </axp-layout-header>\n </axp-layout-start-side> -->\n\n <axp-page-content class=\"flex flex-col min-h-0\">\n <axp-resource-appointment\n [showResourceHeaders]=\"showResourceHeaders\"\n [showUnassignedAppointments]=\"showUnassignedAppointments\"\n [providerName]=\"providerName()\"\n class=\"axp-resource-appointment-page__board flex-1 min-h-0\"\n />\n </axp-page-content>\n</axp-page-layout>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["toCamelCase","i3","i1","AXPCommonCommandKeys","i2"],"mappings":"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"}
|