@acorex/platform 21.0.0-next.76 → 21.0.0-next.79

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (44) hide show
  1. package/fesm2022/{acorex-platform-common-common-settings.provider-ChoT4m4k.mjs → acorex-platform-common-common-settings.provider-Ytey9uhY.mjs} +1 -42
  2. package/fesm2022/acorex-platform-common-common-settings.provider-Ytey9uhY.mjs.map +1 -0
  3. package/fesm2022/acorex-platform-common.mjs +580 -1445
  4. package/fesm2022/acorex-platform-common.mjs.map +1 -1
  5. package/fesm2022/acorex-platform-contracts.mjs +1 -1330
  6. package/fesm2022/acorex-platform-contracts.mjs.map +1 -1
  7. package/fesm2022/acorex-platform-core.mjs +5 -208
  8. package/fesm2022/acorex-platform-core.mjs.map +1 -1
  9. package/fesm2022/acorex-platform-layout-components.mjs.map +1 -1
  10. package/fesm2022/{acorex-platform-layout-entity-attachments-page.component-B0EkdqvH.mjs → acorex-platform-layout-entity-attachments-page.component-CwG6n_Yb.mjs} +3 -3
  11. package/fesm2022/{acorex-platform-layout-entity-attachments-page.component-B0EkdqvH.mjs.map → acorex-platform-layout-entity-attachments-page.component-CwG6n_Yb.mjs.map} +1 -1
  12. package/fesm2022/{acorex-platform-layout-entity-file-list-popup.component-_yrP5SQe.mjs → acorex-platform-layout-entity-file-list-popup.component--IeMZLIr.mjs} +4 -4
  13. package/fesm2022/{acorex-platform-layout-entity-file-list-popup.component-_yrP5SQe.mjs.map → acorex-platform-layout-entity-file-list-popup.component--IeMZLIr.mjs.map} +1 -1
  14. package/fesm2022/acorex-platform-layout-entity.mjs +694 -733
  15. package/fesm2022/acorex-platform-layout-entity.mjs.map +1 -1
  16. package/fesm2022/acorex-platform-layout-views.mjs +171 -372
  17. package/fesm2022/acorex-platform-layout-views.mjs.map +1 -1
  18. package/fesm2022/acorex-platform-layout-widget-core.mjs +103 -3
  19. package/fesm2022/acorex-platform-layout-widget-core.mjs.map +1 -1
  20. package/fesm2022/acorex-platform-layout-widgets-repeater-widget-column.component-J0zcGKBX.mjs +116 -0
  21. package/fesm2022/acorex-platform-layout-widgets-repeater-widget-column.component-J0zcGKBX.mjs.map +1 -0
  22. package/fesm2022/acorex-platform-layout-widgets.mjs +6 -11
  23. package/fesm2022/acorex-platform-layout-widgets.mjs.map +1 -1
  24. package/fesm2022/{acorex-platform-themes-default-entity-master-single-view.component-DrUwqKKA.mjs → acorex-platform-themes-default-entity-master-single-view.component-Br9p5aXT.mjs} +3 -2
  25. package/fesm2022/acorex-platform-themes-default-entity-master-single-view.component-Br9p5aXT.mjs.map +1 -0
  26. package/fesm2022/acorex-platform-themes-default.mjs +52 -643
  27. package/fesm2022/acorex-platform-themes-default.mjs.map +1 -1
  28. package/fesm2022/acorex-platform-workflow.mjs +8 -5
  29. package/fesm2022/acorex-platform-workflow.mjs.map +1 -1
  30. package/package.json +1 -1
  31. package/types/acorex-platform-common.d.ts +1056 -337
  32. package/types/acorex-platform-contracts.d.ts +4 -1679
  33. package/types/acorex-platform-core.d.ts +181 -92
  34. package/types/acorex-platform-layout-components.d.ts +1 -2
  35. package/types/acorex-platform-layout-entity.d.ts +221 -99
  36. package/types/acorex-platform-layout-views.d.ts +5 -39
  37. package/types/acorex-platform-layout-widget-core.d.ts +3 -2
  38. package/types/acorex-platform-layout-widgets.d.ts +4 -11
  39. package/types/acorex-platform-themes-default.d.ts +57 -120
  40. package/types/acorex-platform-workflow.d.ts +18 -5
  41. package/fesm2022/acorex-platform-common-common-settings.provider-ChoT4m4k.mjs.map +0 -1
  42. package/fesm2022/acorex-platform-layout-widgets-repeater-widget-column.component-CFyfix31.mjs +0 -513
  43. package/fesm2022/acorex-platform-layout-widgets-repeater-widget-column.component-CFyfix31.mjs.map +0 -1
  44. package/fesm2022/acorex-platform-themes-default-entity-master-single-view.component-DrUwqKKA.mjs.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"acorex-platform-contracts.mjs","sources":["../../../../libs/platform/contracts/src/lib/shims.types.ts","../../../../libs/platform/contracts/src/lib/mock-data.shims.ts","../../../../libs/platform/contracts/src/lib/core.types.ts","../../../../libs/platform/contracts/src/lib/data.types.ts","../../../../libs/platform/contracts/src/lib/property.types.ts","../../../../libs/platform/contracts/src/lib/filter.types.ts","../../../../libs/platform/contracts/src/lib/entity-model.types.ts","../../../../libs/platform/contracts/src/lib/entity-definition.types.ts","../../../../libs/platform/contracts/src/lib/entity-action.helpers.ts","../../../../libs/platform/contracts/src/lib/entity-datasource.keys.ts","../../../../libs/platform/contracts/src/lib/regional-settings.keys.ts","../../../../libs/platform/contracts/src/lib/widget-node.types.ts","../../../../libs/platform/contracts/src/lib/widgets-list.ts","../../../../libs/platform/contracts/src/lib/widgets-catalog.ts","../../../../libs/platform/contracts/src/lib/address.types.ts","../../../../libs/platform/contracts/src/lib/workflow-definition.types.ts","../../../../libs/platform/contracts/src/lib/activity.types.ts","../../../../libs/platform/contracts/src/lib/preview-widget-field.command.key.ts","../../../../libs/platform/contracts/src/lib/workflow-instance.types.ts","../../../../libs/platform/contracts/src/lib/file-storage.types.ts","../../../../libs/platform/contracts/src/lib/ai-output.types.ts","../../../../libs/platform/contracts/src/lib/spreadsheet.types.ts","../../../../libs/platform/contracts/src/lib/status.types.ts","../../../../libs/platform/contracts/src/lib/status-definition.types.ts","../../../../libs/platform/contracts/src/lib/statuses.types.ts","../../../../libs/platform/contracts/src/lib/multi-source.types.ts","../../../../libs/platform/contracts/src/lib/logo.types.ts","../../../../libs/platform/contracts/src/lib/index.ts","../../../../libs/platform/contracts/src/acorex-platform-contracts.ts"],"sourcesContent":["//#region ---- CDK / component shims (pure contracts, no @acorex/cdk) ----\n\nexport type AXDataSourceOperatorType =\n | 'endsWith'\n | 'startsWith'\n | 'in'\n | 'equal'\n | 'isNull'\n | 'isEmpty'\n | 'lt'\n | 'lte'\n | 'gt'\n | 'gte'\n | 'contains';\n\nexport interface AXDataSourceOperator {\n type: AXDataSourceOperatorType;\n negative?: boolean;\n}\n\nexport type AXStyleColorType = string;\n\nexport type AXPopupSizeType = string;\n\nexport type AXFilterLogic = 'and' | 'or';\n\nexport interface AXDataSourceFilterOption {\n field?: string;\n operator?: AXDataSourceOperator;\n value?: unknown;\n logic?: AXFilterLogic;\n filters?: AXDataSourceFilterOption[];\n}\n\n//#endregion\n","//#region ---- Mock data shims (no @acorex/core, no @acorex/platform/core) ----\n\nimport type { AXPMultiLanguageString } from './core.types';\n\n/**\n * Builds a locale map for mock seed data (`en-US` + `fa-IR`).\n * Standalone copy for connectivity mocks — no dependency on @acorex/core/translation.\n */\nexport function createMultiLanguageString(\n enUS: string,\n faIR?: string,\n): Record<string, string> {\n return {\n 'en-US': enUS,\n 'fa-IR': faIR ?? enUS,\n };\n}\n\n/**\n * Resolves {@link AXPMultiLanguageString} to a plain string for the given locale.\n * Standalone copy for connectivity mocks — no dependency on @acorex/core/translation.\n */\nexport function resolveMultiLanguageString(\n value: AXPMultiLanguageString | null | undefined,\n locale: string,\n): string {\n if (value == null || value === '') {\n return '';\n }\n\n if (typeof value === 'string') {\n return value;\n }\n\n const direct = value[locale];\n if (typeof direct === 'string' && direct.length > 0) {\n return direct;\n }\n\n const enUS = value['en-US'];\n if (typeof enUS === 'string' && enUS.length > 0) {\n return enUS;\n }\n\n for (const entry of Object.values(value)) {\n if (typeof entry === 'string' && entry.length > 0) {\n return entry;\n }\n }\n\n return '';\n}\n\n/**\n * Lightweight data helpers for mock seed files.\n * Standalone copy for connectivity mocks — no dependency on @acorex/platform/core.\n */\nexport class AXPDataGenerator {\n static uuid(): string {\n return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, (char) => {\n const random = (Math.random() * 16) | 0;\n const value = char === 'x' ? random : (random & 0x3) | 0x8;\n return value.toString(16);\n });\n }\n\n static number(max: number): number;\n static number(min: number, max: number): number;\n static number(...args: number[]): number {\n let min = 0;\n let max = 100;\n if (args.length === 1) max = args[0];\n if (args.length === 2) {\n min = args[0];\n max = args[1];\n }\n return Math.floor(Math.random() * (max - min + 1)) + min;\n }\n\n static date(): Date;\n static date(start: Date): Date;\n static date(start: Date, end: Date): Date;\n static date(...args: Date[]): Date {\n let start = new Date(2000, 0, 1);\n let end = new Date();\n\n if (args.length === 1) {\n start = args[0];\n } else if (args.length === 2) {\n start = args[0];\n end = args[1];\n }\n\n const startTime = start.getTime();\n const endTime = end.getTime();\n return new Date(startTime + Math.random() * (endTime - startTime));\n }\n\n static array<T>(length = 5, generator: () => T): T[] {\n return Array.from({ length }, generator);\n }\n\n static pick<T>(items: T[]): T;\n static pick<T>(items: T[], count: number): T[];\n static pick<T>(...args: unknown[]): T | T[] {\n if (args.length < 1) {\n throw new Error('Invalid parameters');\n }\n const items = args[0] as T[];\n const count = (args[1] as number | undefined) ?? 1;\n if (count < 1) {\n throw new Error('Count must be at least 1');\n }\n\n if (count >= items.length) {\n return [...items].sort(() => Math.random() - 0.5);\n }\n\n const shuffled = items.slice();\n for (let i = shuffled.length - 1; i > 0; i -= 1) {\n const j = Math.floor(Math.random() * (i + 1));\n [shuffled[i], shuffled[j]] = [shuffled[j], shuffled[i]];\n }\n return count === 1 ? shuffled.slice(0, count)[0] : shuffled.slice(0, count);\n }\n\n static string(length = 10): string {\n const chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789';\n return Array.from({ length }, () => chars.charAt(Math.floor(Math.random() * chars.length))).join('');\n }\n\n static boolean(): boolean {\n return Math.random() >= 0.5;\n }\n\n static item<T>(array: T[] = []): T | undefined {\n return array.length > 0 ? array[Math.floor(Math.random() * array.length)] : undefined;\n }\n\n static color(format: 'hsl' | 'rgb' | 'hex' = 'hex'): string {\n const h = Math.floor(Math.random() * 360);\n const s = Math.floor(Math.random() * 20) + 60;\n const l = Math.floor(Math.random() * 20) + 40;\n\n if (format === 'hsl') {\n return `hsl(${h}, ${s}%, ${l}%)`;\n }\n\n const { r, g, b } = this.hslToRgb(h, s / 100, l / 100);\n\n if (format === 'rgb') {\n return `rgb(${r}, ${g}, ${b})`;\n }\n\n const toHex = (val: number) => val.toString(16).padStart(2, '0');\n return `#${toHex(r)}${toHex(g)}${toHex(b)}`;\n }\n\n private static hslToRgb(h: number, s: number, l: number): { r: number; g: number; b: number } {\n const c = (1 - Math.abs(2 * l - 1)) * s;\n const x = c * (1 - Math.abs(((h / 60) % 2) - 1));\n const m = l - c / 2;\n let r = 0;\n let g = 0;\n let b = 0;\n\n if (h < 60) [r, g, b] = [c, x, 0];\n else if (h < 120) [r, g, b] = [x, c, 0];\n else if (h < 180) [r, g, b] = [0, c, x];\n else if (h < 240) [r, g, b] = [0, x, c];\n else if (h < 300) [r, g, b] = [x, 0, c];\n else [r, g, b] = [c, 0, x];\n\n return {\n r: Math.round((r + m) * 255),\n g: Math.round((g + m) * 255),\n b: Math.round((b + m) * 255),\n };\n }\n\n static alphanumeric(length = 10): string {\n const chars = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz';\n return Array.from({ length }, () => chars.charAt(Math.floor(Math.random() * chars.length))).join('');\n }\n\n static alphabet(length = 10): string {\n const chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz';\n return Array.from({ length }, () => chars.charAt(Math.floor(Math.random() * chars.length))).join('');\n }\n\n static phone(): string {\n const areaCode = this.number(100, 999);\n const exchangeCode = this.number(100, 999);\n const lineNumber = this.number(1000, 9999);\n return `${areaCode}-${exchangeCode}-${lineNumber}`;\n }\n\n static firstName(): string {\n const firstNames = ['John', 'Allen', 'Jak', 'Rose', 'Kate', 'Liam', 'Olivia', 'Noah', 'Emma', 'Ava'];\n return this.pick(firstNames);\n }\n\n static lastName(): string {\n const lastNames = ['Gates', 'Jonsen', 'Smith', 'Ford', 'Jakson', 'Brown', 'Johnson', 'Williams', 'Jones', 'Garcia'];\n return this.pick(lastNames);\n }\n\n static email(): string;\n static email(firstName: string, lastName: string): string;\n static email(...args: string[]): string {\n const domains = ['gmail.com', 'yahoo.com', 'outlook.com', 'example.com'];\n const domain = this.pick(domains);\n const separator = this.pick(['.', '_', '']);\n const randomSuffix = this.boolean() ? this.number(1, 99).toString() : '';\n\n if (args.length === 2) {\n const firstName = args[0].toLowerCase();\n const lastName = args[1].toLowerCase();\n return `${firstName}${separator}${lastName}${randomSuffix}@${domain}`;\n }\n\n const firstName = this.firstName().toLowerCase();\n const lastName = this.lastName().toLowerCase();\n return `${firstName}${separator}${lastName}${randomSuffix}@${domain}`;\n }\n\n static country(): string {\n const countries = ['USA', 'Canada', 'Mexico', 'Germany', 'France', 'Japan', 'Australia'];\n return this.pick(countries);\n }\n\n static city(): string {\n const cities = ['Los Angeles', 'Toronto', 'Vancouver', 'Berlin', 'Paris', 'Tokyo', 'Sydney'];\n return this.pick(cities);\n }\n\n static state(): string {\n const states = ['NY', 'CA', 'TX', 'ON', 'BC', 'NSW', 'BER', 'IDF', 'TYO'];\n return this.pick(states);\n }\n\n static address(): string {\n const streets = ['Main St', 'High St', 'Maple Ave', 'Oak St', 'Pine St', 'Cedar St'];\n const streetNumber = this.number(100, 9999);\n const street = this.pick(streets);\n const city = this.city();\n const state = this.state();\n const zip = this.number(10000, 99999);\n const country = this.country();\n return `${streetNumber} ${street}, ${city}, ${state} ${zip}, ${country}`;\n }\n\n static avatar(): string {\n return `https://avatar.iran.liara.run/public/${this.pick([35, 22, 16, 6, 31])}`;\n }\n}\n\n//#endregion\n","//#region ---- Core contract types (no Angular / no @acorex/*) ----\n\n/**\n * Plain or rich text that may be localized: a single string or a map of locale code to string.\n */\nexport type AXPMultiLanguageString = string | Record<string, string>;\n\nexport type AXPExpression = string;\n\nexport type AXPMetaData = Record<string, unknown>;\n\nexport type AXPOptionsData<T extends Record<string, unknown> = Record<string, any>> = T;\n\nexport interface AXPEntityReference {\n id: string;\n type: string;\n title?: string;\n metadata?: AXPMetaData;\n}\n\nexport interface AXPUserReference {\n id: string;\n type?: 'user';\n fullName?: string;\n username?: string;\n}\n\nexport type AXPContentType = 'text' | 'image' | 'file' | 'video' | 'link';\n\nexport interface AXPContent {\n content: string;\n contentType: AXPContentType;\n}\n\nexport type AXPFileStatus = 'attached' | 'uploading' | 'uploaded' | 'deleted' | 'remote' | 'editing';\n\nexport interface AXPFileSource {\n kind: 'blob' | 'url' | 'preview' | 'none' | 'fileId' | 'reference';\n value?: Blob | string | { id: string; type: string; title?: string; metadata?: AXPMetaData };\n}\n\nexport interface AXPFileListItem {\n id?: string;\n name: string;\n size?: number;\n status: AXPFileStatus;\n source?: AXPFileSource;\n meta?: AXPMetaData;\n readOnly?: boolean;\n title?: string;\n description?: string;\n}\n\nexport type AXPDataType = 'string' | 'number' | 'boolean' | 'date' | 'object' | 'array' | 'blob';\n\nexport type AXPWidgetTrigger = { event: string; action: string | string[]; disabled?: boolean };\n\nexport type AXPWidgetTriggers = AXPWidgetTrigger[];\n\nexport type AXPValidationRule = {\n rule: string;\n message?: string;\n options?: unknown;\n disabled?: boolean | AXPExpression;\n};\n\nexport type AXPValidationRules = AXPValidationRule[];\n\nexport interface AXPGridPlacement {\n colStart?: number;\n colEnd?: number;\n colSpan?: number;\n rowStart?: number;\n rowEnd?: number;\n rowSpan?: number;\n order?: string | number;\n}\n\nexport interface AXPGridLayoutOptions {\n positions?: {\n sm?: AXPGridPlacement;\n md?: AXPGridPlacement;\n lg?: AXPGridPlacement;\n xl?: AXPGridPlacement;\n xxl?: AXPGridPlacement;\n xxxl?: AXPGridPlacement;\n };\n}\n\nexport type AXPValueTransformerFunction = (value: unknown) => unknown;\n\nexport type AXPValueTransformerFunctions = {\n getter?: AXPValueTransformerFunction;\n setter?: AXPValueTransformerFunction;\n};\n\nexport enum AXPSystemActionType {\n View = 'view',\n Create = 'create',\n Update = 'update',\n Delete = 'delete',\n Approve = 'approve',\n Reject = 'reject',\n Submit = 'submit',\n Export = 'export',\n Import = 'import',\n Print = 'print',\n Assign = 'assign',\n Lock = 'lock',\n Unlock = 'unlock',\n Share = 'share',\n Configure = 'configure',\n Reorder = 'reorder',\n Preview = 'preview',\n Duplicate = 'duplicate',\n Archive = 'archive',\n Publish = 'publish',\n Unpublish = 'unpublish',\n Upload = 'upload',\n Download = 'download',\n Copy = 'copy',\n Move = 'move',\n Rename = 'rename',\n Restore = 'restore',\n Manage = 'manage',\n Info = 'info',\n Confirm = 'confirm',\n Design = 'design',\n VersionHistory = 'version-history',\n Compare = 'compare',\n Comments = 'comments',\n Sign = 'sign',\n Setup = 'setup',\n Send = 'send',\n Report = 'report',\n Sent = 'sent',\n Review = 'review',\n Generate = 'generate',\n Refresh = 'refresh',\n Reload = 'reload',\n Search = 'search',\n Filter = 'filter',\n Sort = 'sort',\n Start = 'start',\n Stop = 'stop',\n Pause = 'pause',\n Cancel = 'cancel',\n Close = 'close',\n Complete = 'complete',\n Save = 'save',\n SaveAs = 'save-as',\n Sync = 'sync',\n Reset = 'reset',\n Clear = 'clear',\n Distribution = 'distribution',\n}\n\n//#endregion\n","//#region ---- Category & entity operation types ----\n\nimport type { AXPMultiLanguageString } from './core.types';\n\nexport interface AXPCategoryEntity<TKey = string> {\n id: TKey;\n title: AXPMultiLanguageString;\n description?: AXPMultiLanguageString;\n parentId?: TKey;\n childrenCount: number;\n itemsCount?: number;\n totalChildrenCount?: number;\n totalItemsCount?: number;\n}\n\nexport interface AXPCategoryListItem<TKey extends string = string> {\n id: TKey;\n title: AXPMultiLanguageString;\n}\n\nexport interface AXPCategoryEntityWithItems<T> extends AXPCategoryEntity {\n items: T[];\n children?: AXPCategoryEntityWithItems<T>[];\n}\n\nexport interface AXPCategorizedEntity {\n categoryIds: string[];\n}\n\nexport interface AXPCategorizedEntityDto {\n categoryIds: string[];\n categories: AXPCategoryListItem[];\n}\n\nexport type AXPEntityOp =\n | 'initial'\n | 'create'\n | 'update'\n | 'delete'\n | 'getOne'\n | 'getAll'\n | 'query'\n | 'count'\n | 'queryAll'\n | 'getMany'\n | 'exists'\n | 'upsertOne'\n | 'aggregate';\n\n//#endregion\n","//#region ---- Property types ----\n\nimport type { AXPMultiLanguageString, AXPOptionsData, AXPDataType, AXPWidgetTriggers, AXPValidationRules } from './core.types';\n\nexport interface AXPPropertyGroup {\n name: string;\n title: AXPMultiLanguageString;\n icon?: string;\n description?: AXPMultiLanguageString;\n order?: number;\n}\n\nexport interface AXPPropertyInterface {\n type: string;\n options: AXPOptionsData;\n triggers?: AXPWidgetTriggers;\n}\n\nexport interface AXPProperty {\n name: string;\n title: AXPMultiLanguageString;\n description?: AXPMultiLanguageString;\n dataType: AXPDataType;\n validations?: AXPValidationRules;\n group?: AXPPropertyGroup | string;\n order?: number;\n interface: AXPPropertyInterface;\n}\n\n//#endregion\n","//#region ---- Filter types ----\n\nimport type { AXDataSourceFilterOption } from './shims.types';\nimport type { AXPOptionsData } from './core.types';\n\nexport interface AXPFilterTriggerDefinition {\n event: string;\n action: string;\n disabled?: boolean;\n}\n\nexport interface AXPFilterClause extends AXDataSourceFilterOption {\n id?: string;\n order?: number;\n filters?: AXPFilterClause[];\n}\n\nexport interface AXPFilterDefinition extends AXPFilterClause {\n title: string;\n isParametric?: boolean;\n icon?: string;\n widget: {\n type: string;\n options?: AXPOptionsData;\n };\n filterType: {\n advance: boolean;\n inline: boolean;\n preload?: {\n enabled?: boolean;\n required?: boolean;\n };\n };\n hidden?: boolean;\n /**\n * When true, the filter is not selectable. When a string, it is evaluated as an expression (e.g. `{{ ... }}`)\n * using the current filters context.\n */\n disabled?: boolean | string;\n /** Expression-driven triggers (events/actions); same semantics as entity `schema.interface.triggers`. */\n triggers?: AXPFilterTriggerDefinition[];\n}\n\nexport interface AXPFilterQuery extends Pick<AXPFilterDefinition, 'field' | 'value' | 'operator' | 'logic' | 'hidden'> {\n filters?: AXPFilterQuery[];\n displayText?: string;\n}\n\n//#endregion\n","//#region ---- Entity model & DTO types ----\n\nimport type { AXPUserReference } from './core.types';\n\nexport interface AXPAuditEvent {\n at?: Date;\n by?: AXPUserReference;\n reason?: string;\n source?: string;\n}\n\nexport interface AXPRecordAuditInfo {\n created?: AXPAuditEvent;\n updated?: AXPAuditEvent;\n deleted?: AXPAuditEvent;\n}\n\nexport interface AXPRecordStateInfo {\n isHidden?: boolean;\n isSystem?: boolean;\n isImmutable?: boolean;\n /** @deprecated Prefer explicit domain modeling over this flag. */\n isDistributed?: boolean;\n}\n\nexport interface AXPRecordOwnershipInfo {\n tenantId?: string;\n applicationId?: string;\n userId?: string;\n}\n\nexport interface AXPRecordWorkflowInfo {\n instanceId?: string | null;\n definitionId?: string | null;\n correlationId?: string | null;\n pinnedVersion?: number | null;\n}\n\nexport interface AXPEntityModel<Id> {\n id: Id;\n auditInfo?: AXPRecordAuditInfo;\n stateInfo?: AXPRecordStateInfo;\n ownershipInfo?: AXPRecordOwnershipInfo;\n workflowInfo?: AXPRecordWorkflowInfo;\n}\n\nexport interface AXPEntityCreateDto {}\n\nexport interface AXPEntityUpdateDto<Id> {\n id: Id;\n}\n\nexport interface AXPEntityOutputDto<Id> {\n id: Id;\n}\n\nexport interface AXPEntityDetailDto<Id> extends AXPEntityOutputDto<Id> {}\n\nexport interface AXPEntityListItemDto<Id> extends AXPEntityOutputDto<Id> {}\n\nexport interface AXPMockDto<Id> extends AXPEntityModel<Id> {}\n\n//#endregion\n","import type { AXPFilterDefinition } from './filter.types';\nimport {\n type AXPExpression,\n type AXPGridLayoutOptions,\n type AXPMetaData,\n type AXPOptionsData,\n type AXPValidationRules,\n type AXPValueTransformerFunctions,\n type AXPMultiLanguageString,\n AXPSystemActionType,\n} from './core.types';\nimport type { AXDataSourceOperator, AXPopupSizeType, AXStyleColorType } from './shims.types';\n\nexport interface AXEntityPropertyWidget {\n type: string;\n path?: string;\n id?: string;\n children?: AXEntityPropertyWidget[];\n mode: 'view' | 'edit';\n options?: Record<string, any>;\n triggers?: { event: string; action: string; disabled?: boolean }[];\n valueTransforms?: AXPValueTransformerFunctions;\n}\n\nexport enum AXPRelationshipKind {\n Association,\n Composition,\n Aggregation,\n}\n\nexport enum AXPRelationshipCardinality {\n OneToOne,\n OneToMany,\n ManyToMany,\n}\n\nexport interface AXPRelationship {\n id: string;\n from: string;\n to: string;\n kind: AXPRelationshipKind;\n cardinality: AXPRelationshipCardinality;\n}\n\nexport enum AXPEntityCommandScope {\n TypeLevel = 'typeLevel',\n Selected = 'selected',\n Individual = 'individual',\n Section = 'section',\n}\n\nexport enum AXPEntityQueryType {\n Single = 'single',\n List = 'list',\n}\n\nexport interface AXPEntityPropertyLayoutConfig extends AXPGridLayoutOptions {\n label?: {\n visible?: boolean;\n };\n order?: number;\n visible?: boolean | AXPExpression;\n}\n\nexport interface AXPEntityPropertyGroup {\n id: string;\n title: string;\n description?: string;\n permissions?: string[];\n icon?: string;\n}\n\nexport interface AXPEntityPropertyView {\n name: string;\n dataPath?: string;\n permissions?: string[];\n layout?: AXPEntityPropertyLayoutConfig;\n}\n\nexport interface AXPEntityPropertyUpdateView extends AXPEntityPropertyView {}\n\nexport interface AXPEntityPropertyCreateView extends AXPEntityPropertyView {\n defaultValue?: any;\n}\n\nexport interface AXPEntitySectionView {\n id: string;\n order?: number;\n collapsed?: boolean;\n layout?: AXPEntityPropertyLayoutConfig;\n}\n\nexport interface AXPEntityProperty {\n name: string;\n title: string;\n description?: string;\n groupId?: string;\n schema: {\n dataType: string;\n nullable?: boolean;\n readonly?: boolean | string;\n visible?: boolean | string;\n defaultValue?: any | string | ((context: any | null) => any);\n unique?: {\n enabled: boolean;\n };\n interface?: Partial<AXEntityPropertyWidget>;\n };\n options?: {\n filter?: {\n advance?: {\n enabled?: boolean;\n widgetType?: string;\n };\n inline?: {\n enabled?: boolean;\n };\n preload?: {\n enabled?: boolean;\n required?: boolean;\n };\n };\n sort?: {\n enabled?: boolean;\n };\n };\n validations?: AXPValidationRules;\n}\n\n/** Logical alignment for table column header/cell (respects RTL). */\nexport type AXPColumnContentAlign = 'start' | 'center' | 'end';\n\n/**\n * Column alignment: shorthand applies to both header and cell;\n * object form sets each side independently (omitted keys default to start).\n */\nexport type AXPColumnAlign =\n | AXPColumnContentAlign\n | {\n header?: AXPColumnContentAlign;\n cell?: AXPColumnContentAlign;\n };\n\n/** Shared field definition for list layouts (table columns, card fields, etc.). */\nexport interface AXPEntityDisplayField {\n name: string;\n title?: string;\n showAs?: {\n type: string;\n options?: Record<string, any>;\n };\n options?: {\n /** When string, evaluate against parent detail context (e.g. related list). */\n visible?: boolean | string;\n /** Optional dataPath override for field binding. */\n dataPath?: string;\n [name: string]: any;\n };\n}\n\n/** Card layout field presentation in master list card view. */\nexport type AXPCardFieldDisplay = 'simple' | 'badge';\n\n/** Badge color: semantic token or per-row expression (`{{ context.eval(...) }}`). */\nexport type AXPCardBadgeColor = AXStyleColorType | AXPExpression;\n\nexport interface AXPCardBadgeDisplayOptions {\n /** Semantic color or expression evaluated against row context. */\n color?: AXPCardBadgeColor;\n}\n\nexport interface AXPCardBadgeDisplay {\n type: 'badge';\n options?: AXPCardBadgeDisplayOptions;\n}\n\n/** Shorthand (`badge` / `simple`) or structured badge config with optional per-row color. */\nexport type AXPCardFieldDisplayConfig = AXPCardFieldDisplay | AXPCardBadgeDisplay;\n\n/** Card layout field in master list view. */\nexport type AXPCardField = AXPEntityDisplayField & {\n layout?: AXPEntityPropertyLayoutConfig;\n /**\n * Field presentation. Default: `simple` (card body).\n * Use `badge` or `{ type: 'badge', options: { color } }` for header chips beside title.\n */\n display?: AXPCardFieldDisplayConfig;\n /**\n * Badge color when presentation is badge-shaped.\n * Prefer `display: { type: 'badge', options: { color } }` for new definitions.\n * Omit for status fields — color is resolved from the status definition per row.\n */\n badgeColor?: AXPCardBadgeColor;\n};\n\n/** Whether the card field is shown as a header badge (not in the card body). */\nexport function isCardFieldBadgeDisplay(\n display: AXPCardFieldDisplayConfig | undefined,\n): display is 'badge' | AXPCardBadgeDisplay {\n if (display === 'badge') {\n return true;\n }\n return typeof display === 'object' && display !== null && display.type === 'badge';\n}\n\n/** Resolves static badge color config from {@link AXPCardField.display} and legacy {@link AXPCardField.badgeColor}. */\nexport function resolveCardFieldBadgeColor(\n field: Pick<AXPCardField, 'display' | 'badgeColor'>,\n): AXPCardBadgeColor | undefined {\n if (typeof field.display === 'object' && field.display.type === 'badge') {\n return field.display.options?.color ?? field.badgeColor;\n }\n if (field.display === 'badge') {\n return field.badgeColor;\n }\n return undefined;\n}\n\nexport interface AXPEntityTableColumn extends AXPEntityDisplayField {\n options?: AXPEntityDisplayField['options'] & {\n /** Initial column width (overrides widget column width when set). */\n width?: string;\n /** Header/cell alignment (shorthand or per-side). */\n align?: AXPColumnAlign;\n };\n}\n\nexport interface AXPEntityCommand {\n execute: string | Function; // As runnable expression\n permissions?: string[];\n}\n\nexport interface AXPEntityQuery {\n execute: string | Function; // As runnable expression\n type: AXPEntityQueryType;\n}\n\n\nexport type AXPCommandActionType = AXPSystemActionType;\n\nexport interface AXPCommandActionLook {\n color: AXStyleColorType;\n icon: string;\n}\n\nexport type AXPCommandActionPriority = 'primary' | 'secondary';\n\n//TODO: remove extra props\nexport type AXPCommandActionCallback =\n | string\n | {\n name: string;\n options?: {\n decoration?: {\n header?: {\n title?: string;\n };\n };\n process?: {\n data?: any;\n [name: string]: any;\n };\n layout?: {\n size?: AXPopupSizeType;\n };\n [name: string]: any;\n };\n metadata?: AXPMetaData;\n };\n\nexport interface AXPCommandActionDisplay extends Partial<AXPCommandActionLook> {\n name?: string;\n command: AXPCommandActionCallback;\n title: string;\n type: AXPSystemActionType | string;\n priority: 'primary' | 'secondary' | 'none';\n separated?: boolean;\n permissions?: string[];\n hidden?: boolean | string;\n disabled?: boolean | string;\n default?: boolean;\n order?: number;\n /**\n * Keyboard chords for this action (e.g. `'ctrl+shift+a'`).\n * Pass `[]` to disable shortcuts. When omitted, platform defaults may apply for known commands.\n */\n shortcuts?: string[];\n}\n\nexport interface AXPEntityAction extends AXPCommandActionDisplay {\n scope: AXPEntityCommandScope;\n /** Child actions for dropdown submenu */\n items?: AXPEntityAction[];\n}\n\nexport interface AXPEntity {\n plugins?: { name: string; options?: AXPOptionsData }[];\n /**\n * High-level rules: when expression evaluates true, apply actions to the given targets\n * (property/section/action). Reduces repetition of the same condition across many properties.\n * Evaluation context: form data, user, entity; precedence vs property-level visible/readonly\n * must be defined where rules are applied.\n */\n rules?: Array<{\n name: string;\n expression: AXPExpression;\n actions: Array<{\n target: {\n type: 'property' | 'section' | 'action';\n name: string;\n };\n values: AXPOptionsData;\n }>;\n }>;\n module: string;\n name: string;\n icon?: string;\n parentKey?: string;\n category?: AXPEntityCategoryPlugin;\n title: string;\n formats: {\n individual: string;\n plural: string;\n lookup?: string;\n displayName?: string;\n searchResult?: {\n title: string;\n description?: string;\n };\n };\n relatedEntities?: AXPRelatedEntity[];\n pages?: AXPEntityPage[];\n groups?: AXPEntityPropertyGroup[];\n properties: AXPEntityProperty[];\n columns?: AXPEntityTableColumn[];\n commands?: {\n create?: AXPEntityCommand | undefined;\n update?: AXPEntityCommand | undefined;\n delete?: AXPEntityCommand | undefined;\n [name: string]: AXPEntityCommand | undefined;\n };\n queries?: {\n byKey?: AXPEntityQuery;\n list?: AXPEntityQuery;\n lookup?: AXPEntityQuery;\n history?: AXPEntityQuery;\n comments?: AXPEntityQuery;\n [name: string]: AXPEntityQuery | undefined;\n };\n validations?: AXPValidationRules;\n interfaces?: {\n master?: {\n single?: AXPEntityMasterSingleLayoutView;\n list?: AXPEntityMasterListView;\n create?: AXPEntityMasterCreateLayoutView;\n update?: AXPEntityMasterUpdateLayoutView;\n };\n detail?: {\n list?: AXPEntityDetailListView;\n };\n };\n}\n\nfunction kebabCase(value: string): string {\n return value\n .replace(/([a-z0-9])([A-Z])/g, '$1-$2')\n .replace(/([A-Z])([A-Z][a-z])/g, '$1-$2')\n .replace(/[\\s_]+/g, '-')\n .replace(/-+/g, '-')\n .toLowerCase();\n}\n\nexport function getEntityInfo(entity: AXPEntity) {\n return {\n source: `${entity.module}.${entity.name}`,\n module: {\n route: kebabCase(entity.module),\n },\n entity: {\n route: kebabCase(entity.name),\n },\n };\n}\n\nexport function createQueryView(\n name: string,\n title: string,\n fixed: boolean,\n params: { columns?: string[]; conditions?: any[]; sorts?: AXPQuerySort[] } = {\n columns: [],\n conditions: [],\n sorts: [],\n },\n): AXPQueryView {\n params = Object.assign({ columns: [], sorts: [], conditions: [] }, params);\n return {\n name,\n title,\n fixed,\n columns: params.columns ?? [],\n conditions: params.conditions ?? [],\n sorts: params.sorts ?? [],\n };\n}\n\nexport function createAllQueryView(\n params: { columns?: string[]; conditions?: AXPQueryFilter[]; sorts?: AXPQuerySort[] } | undefined = {\n columns: [],\n sorts: [],\n conditions: [],\n },\n): AXPQueryView {\n params = Object.assign({ columns: [], sorts: [], conditions: [] }, params);\n return createQueryView('all', '@general:terms.interface.selection.all-items', true, {\n columns: params.columns ?? [],\n conditions: params.conditions ?? [],\n sorts: params.sorts ?? [],\n });\n}\n\nexport interface AXPRelatedEntity {\n entity: string;\n title?: string;\n icon?: string;\n columns?: string[] | AXPEntityTableColumn[];\n properties?: string[];\n excludeProperties?: string[];\n layout?: {\n type: 'tab-detail' | 'tab-list' | 'page-detail' | 'page-list' | 'merge-detail';\n order?: number;\n position?: 'before' | 'after' | 'middle';\n };\n conditions?: AXPQueryFilter[];\n customFilterDefinitions?: Partial<AXPFilterDefinition>[];\n hidden?: boolean | AXPExpression;\n actions?: AXPEntityAction[];\n /**\n * Controls inclusion on the host entity master **create** / **update** form.\n * Defaults depend on layout:\n * - **merge-detail**: omitted flags behave as **true** (opt-out with `false`).\n * - **tab-list** / **page-list**: omitted flags behave as **false** (opt-in with `true`).\n */\n appearOn?: {\n /** Include on host create form (see defaults above per layout type). */\n create?: boolean;\n /** Include on host update form (see defaults above per layout type). */\n update?: boolean;\n };\n /**\n * Relationship-level persistence strategy for merge-detail data.\n * Defaults:\n * - strategy: 'embedded'\n * - idField: last segment of dataPath + 'Id' (or 'relatedId' when dataPath is missing)\n * - map: undefined (pass-through)\n * - hydrate: 'eager' (applies to getOne only in mock)\n * - cascade.delete: 'none'\n */\n persistence?: {\n strategy?: 'embedded' | 'referenced';\n idField?: string;\n dataPath?: string;\n map?: Record<string, string>;\n hydrate?: 'eager' | 'lazy';\n cascade?: { delete?: 'none' | 'orphans' | 'all' };\n foreignKeyField?: string;\n };\n}\n\nexport interface AXPEntityPage {\n /**\n * Key to identify the component in the page component registry\n */\n componentKey: string;\n /**\n * Property name to render when the page component displays an entity field (e.g. 'questions', 'attachments').\n * Passed to the page component as pageConfig.field.\n */\n field?: string;\n /**\n * Title of the page (displayed in navigation)\n */\n title?: AXPMultiLanguageString;\n /**\n * Icon for the page (displayed in navigation)\n */\n icon?: string;\n /**\n * Description of the page\n */\n description?: AXPMultiLanguageString;\n /**\n * Layout configuration for page positioning\n */\n layout?: {\n /**\n * Order of the page (lower numbers appear first)\n */\n order?: number;\n /**\n * Position relative to the main page\n */\n position?: 'before' | 'after' | 'middle';\n };\n /**\n * Visibility condition (boolean or expression string)\n */\n hidden?: boolean | string;\n /**\n * Permissions required to view this page\n */\n permissions?: string[];\n /**\n * Controls inclusion on the host entity master **create** / **update** form wizard.\n * Omitted flags behave as **false** (opt-in with `true`), same as `tab-list` / `page-list` related entities.\n */\n appearOn?: {\n /** Include as a wizard step on host create form. */\n create?: boolean;\n /** Include as a wizard step on host update form. */\n update?: boolean;\n };\n\n options?: Record<string, any>;\n}\n\nexport interface AXPEntityCategoryPlugin {\n entity: string;\n title?: string;\n textField?: string;\n valueField?: string;\n conditions?: AXPQueryFilter[];\n applyConditions?: AXPQueryFilter[];\n}\n\nexport interface AXPEntityVersionHistory {\n enabled?: boolean;\n showInList?: boolean;\n showInDetail?: boolean;\n}\n\nexport interface AXPAggregate {\n id: string;\n name: string;\n title: AXPMultiLanguageString;\n entities: AXPEntity[];\n}\n\nexport interface AXPModule {\n name: string;\n title: AXPMultiLanguageString;\n aggregates: AXPAggregate[];\n relationships?: AXPRelationship[];\n}\n\nexport interface AXPApplication {\n name: string;\n title: AXPMultiLanguageString;\n modules: AXPModule[];\n}\n\nexport interface AXPEntityMasterLayoutView {\n title?: string;\n sections: AXPEntitySectionView[];\n properties?: AXPEntityPropertyView[];\n}\n\n/** Quick create config for lookup widgets (+ button) - uses subset of create form */\nexport interface AXPEntityQuickCreate {\n enabled?: boolean;\n properties?: string[];\n layout?: {\n size?: AXPopupSizeType;\n };\n excludeProperties?: string[];\n}\n\nexport interface AXPEntityMasterCreateLayoutView extends AXPEntityMasterLayoutView {\n steps?: {\n id: string;\n title: string;\n description?: string;\n };\n /** Quick create config for lookup widgets - uses subset of create form */\n quickCreate?: AXPEntityQuickCreate;\n}\n\nexport interface AXPEntityMasterUpdateLayoutView extends AXPEntityMasterLayoutView {}\n\nexport interface AXPEntityMasterSingleLayoutView extends AXPEntityMasterLayoutView {\n title: string;\n description?: string;\n actions?: AXPEntityAction[];\n}\n\nexport interface AXPEntityMasterListView {\n title?: string;\n description?: string;\n actions?: AXPEntityAction[];\n views: AXPQueryView[];\n layouts?: {\n table?: {\n enabled?: boolean;\n columns: AXPEntityTableColumn[];\n };\n card?: {\n enabled?: boolean;\n header: {\n /** Property path, expression (`{{ ... }}`), or literal — evaluated per row. */\n title?: string;\n description?: string;\n icon?: string;\n };\n fields: AXPCardField[];\n };\n };\n}\n\nexport type AXPEntityMasterListLayoutType = 'table' | 'card';\n\n/** Master list presentation: table or card with compact (collapsed) / expanded bodies. */\nexport type AXPEntityMasterListDisplayMode = 'table' | 'card-compact' | 'card-expanded';\n\nexport interface AXPEntityMasterListLayoutOption {\n id: AXPEntityMasterListLayoutType;\n title: string;\n icon?: string;\n}\n\n/** Resolves master list layouts that are currently enabled. */\nexport function resolveEnabledMasterListLayouts(\n layouts?: AXPEntityMasterListView['layouts'],\n): AXPEntityMasterListLayoutType[] {\n if (!layouts) {\n return ['table'];\n }\n\n const enabled: AXPEntityMasterListLayoutType[] = [];\n\n if (layouts.table?.enabled !== false) {\n enabled.push('table');\n }\n\n if (layouts.card && layouts.card.enabled !== false) {\n enabled.push('card');\n }\n\n return enabled.length > 0 ? enabled : ['table'];\n}\n\n/** First enabled layout; used as the default when no user preference is stored. */\nexport function resolveDefaultMasterListLayout(\n layouts?: AXPEntityMasterListView['layouts'],\n): AXPEntityMasterListLayoutType {\n return resolveEnabledMasterListLayouts(layouts)[0];\n}\n\nexport interface AXPEntityDetailListView {\n title?: string;\n description?: string;\n columns: AXPEntityTableColumn[];\n actions?: AXPEntityAction[];\n}\n\nexport interface AXPQueryView {\n name: string;\n fixed: boolean;\n title: string;\n columns: string[];\n conditions: AXPQueryFilter[];\n sorts: AXPQuerySort[];\n indexCol?: boolean;\n pageSize?: number;\n visible?: boolean;\n}\n\nexport interface AXPQueryFilter {\n name: string; // entity property name\n operator: AXDataSourceOperator;\n value: any;\n}\n\nexport interface AXPQuerySort {\n name: string; // entity property name\n dir: 'asc' | 'desc';\n}\n\n// new version\nexport enum AXPEntityType {\n Entity,\n AggregateRoot,\n ValueObject,\n}\n\nexport interface AXPEntityV2 {\n version: 2;\n\n module: string;\n aggregate: string;\n name: string;\n\n type: AXPEntityType;\n\n icon?: string;\n title: string;\n description?: string;\n\n plugins?: { name: string; options?: AXPOptionsData }[];\n pages?: AXPEntityPage[];\n groups?: AXPEntityPropertyGroup[];\n //TODO : change to fields\n properties: AXPEntityProperty[];\n\n formats: {\n individual: string;\n plural: string;\n lookup?: string;\n displayName?: string;\n searchResult?: {\n title: string;\n description?: string;\n };\n };\n columns?: AXPEntityTableColumn[];\n validations?: AXPValidationRules;\n interfaces?: {\n master?: {\n single?: AXPEntityMasterSingleLayoutView;\n list?: AXPEntityMasterListView;\n create?: AXPEntityMasterCreateLayoutView;\n update?: AXPEntityMasterUpdateLayoutView;\n };\n detail?: {\n list?: AXPEntityDetailListView;\n };\n };\n}\n","//#region ---- Entity action helpers (pure data, no Angular) ----\n\nimport type { AXPEntityAction, AXPQueryFilter, AXPRelatedEntity } from './entity-definition.types';\nimport { AXPEntityCommandScope } from './entity-definition.types';\nimport { AXPSystemActionType } from './core.types';\n\n//#region Master\n\nexport function entityMasterCreateAction(): AXPEntityAction {\n return {\n title: '@general:actions.create.title',\n command: {\n name: 'Entity:Create',\n },\n priority: 'primary',\n type: AXPSystemActionType.Create,\n scope: AXPEntityCommandScope.TypeLevel,\n };\n}\n\nexport function entityMasterEditAction(): AXPEntityAction {\n return {\n title: '@general:actions.edit.title',\n command: 'Entity:Update',\n priority: 'secondary',\n type: AXPSystemActionType.Update,\n scope: AXPEntityCommandScope.Individual,\n default: true,\n };\n}\n\nexport function entityMasterBulkDeleteAction(): AXPEntityAction {\n return {\n title: '@general:actions.delete-items.title',\n command: 'delete-entity',\n priority: 'primary',\n type: AXPSystemActionType.Delete,\n scope: AXPEntityCommandScope.Selected,\n order: 100,\n };\n}\n\nexport function entityMasterViewAction(): AXPEntityAction {\n return {\n title: '@general:actions.view.title',\n command: 'open-entity',\n priority: 'secondary',\n type: AXPSystemActionType.View,\n scope: AXPEntityCommandScope.Individual,\n default: true,\n };\n}\n\nexport function entityMasterDeleteAction(): AXPEntityAction {\n return {\n title: '@general:actions.delete.title',\n command: 'delete-entity',\n priority: 'secondary',\n type: AXPSystemActionType.Delete,\n scope: AXPEntityCommandScope.Individual,\n order: 100,\n shortcuts: ['ctrl+shift+delete'],\n };\n}\n\nexport function entityMasterCrudActions(options?: {\n create?: boolean;\n delete?: boolean;\n view?: boolean;\n edit?: boolean;\n}): AXPEntityAction[] {\n const opts = {\n create: true,\n delete: true,\n view: true,\n edit: false,\n ...options,\n };\n const actions: AXPEntityAction[] = [];\n\n if (opts.create) {\n actions.push(entityMasterCreateAction());\n }\n if (opts.delete) {\n actions.push(entityMasterBulkDeleteAction());\n actions.push(entityMasterDeleteAction());\n }\n if (opts.view) {\n actions.push(entityMasterViewAction());\n }\n\n if (opts.edit) {\n actions.push(entityMasterEditAction());\n }\n\n return actions;\n}\n\nexport function entityMasterRecordActions(): AXPEntityAction[] {\n return [entityMasterDeleteAction()];\n}\n\n//#endregion\n\n//#region Details\n\nexport function entityDetailsCreateActions(parentId: string): AXPEntityAction {\n return {\n title: '@general:actions.create.title',\n command: {\n name: 'Entity:Create',\n options: {\n process: {\n redirect: false,\n canCreateNewOne: true,\n data: {\n [parentId]: '{{context.eval(\"id\")}}',\n },\n },\n },\n },\n priority: 'primary',\n type: AXPSystemActionType.Create,\n scope: AXPEntityCommandScope.TypeLevel,\n };\n}\n\nexport function entityDetailsCreateActionsDeferredParent(): AXPEntityAction {\n return {\n title: '@general:actions.create.title',\n command: {\n name: 'Entity:Create',\n options: {\n process: {\n redirect: false,\n canCreateNewOne: true,\n data: {},\n },\n },\n },\n priority: 'primary',\n type: AXPSystemActionType.Create,\n scope: AXPEntityCommandScope.TypeLevel,\n };\n}\n\nexport function mergeForeignKeyFieldIntoCreateActions(\n foreignKeyField: string | undefined,\n actions: AXPEntityAction[] | undefined,\n): AXPEntityAction[] {\n if (!foreignKeyField || !actions?.length) {\n return actions ?? [];\n }\n return actions.map((a) => {\n const cmd = a.command;\n if (\n typeof cmd !== 'object' ||\n !cmd ||\n cmd.name !== 'Entity:Create' ||\n a.scope !== AXPEntityCommandScope.TypeLevel\n ) {\n return a;\n }\n const opts = (cmd.options ?? {}) as Record<string, unknown>;\n const proc = (opts['process'] ?? {}) as Record<string, unknown>;\n const data = { ...((proc['data'] as Record<string, unknown>) ?? {}) };\n if (data[foreignKeyField] === undefined || data[foreignKeyField] === null || data[foreignKeyField] === '') {\n data[foreignKeyField] = '{{ context.eval(\"id\") }}';\n }\n return {\n ...a,\n command: {\n ...cmd,\n options: { ...opts, process: { ...proc, data } },\n },\n } as AXPEntityAction;\n });\n}\n\nexport function collectNestedCreateHiddenProperties(relatedEntity: AXPRelatedEntity): string[] | undefined {\n const fk = relatedEntity.persistence?.foreignKeyField;\n const merged = [...(relatedEntity.excludeProperties ?? [])];\n if (fk) {\n merged.push(fk);\n }\n const unique = [...new Set(merged)];\n return unique.length ? unique : undefined;\n}\n\nexport function entityDetailsSimpleCondition(fk: string): AXPQueryFilter {\n return {\n name: fk,\n operator: { type: 'equal' },\n value: '{{context.eval(\"id\")}}',\n };\n}\n\nexport function entityDetailsReferenceCondition(type: string): AXPQueryFilter[] {\n return [\n {\n name: 'reference.id',\n operator: { type: 'equal' },\n value: '{{context.eval(\"id\")}}',\n },\n {\n name: 'reference.type',\n operator: { type: 'equal' },\n value: type,\n },\n ];\n}\n\nexport function entityDetailsEditAction(): AXPEntityAction {\n return {\n title: '@general:actions.edit.title',\n command: 'Entity:Update',\n priority: 'secondary',\n type: AXPSystemActionType.Update,\n default: true,\n scope: AXPEntityCommandScope.Individual,\n };\n}\n\nexport function entityDetailsNewEditAction(): AXPEntityAction {\n return {\n title: 'New Edit',\n command: {\n name: 'Entity:Update',\n },\n priority: 'secondary',\n type: AXPSystemActionType.Update,\n default: true,\n scope: AXPEntityCommandScope.Individual,\n };\n}\n\nexport function entityOverrideDetailsViewAction(): AXPEntityAction {\n return {\n title: '@general:actions.view.title',\n command: 'open-entity',\n priority: 'secondary',\n hidden: true,\n type: AXPSystemActionType.View,\n scope: AXPEntityCommandScope.Individual,\n };\n}\n\nexport function entityDetailsCrudActions(\n parentId?: string,\n options?: {\n create?: boolean;\n delete?: boolean;\n view?: boolean;\n edit?: boolean;\n },\n): AXPEntityAction[] {\n const opts = {\n create: true,\n delete: true,\n view: true,\n edit: true,\n ...options,\n };\n const actions: AXPEntityAction[] = [];\n if (opts.create) {\n if (parentId) {\n actions.push(entityDetailsCreateActions(parentId));\n } else {\n actions.push(entityDetailsCreateActionsDeferredParent());\n }\n }\n if (opts.edit) {\n actions.push(entityDetailsEditAction());\n }\n if (opts.view) {\n actions.push(entityOverrideDetailsViewAction());\n }\n return actions;\n}\n\nexport function entityDetailsReferenceCreateActions(type: string): AXPEntityAction[] {\n return [\n {\n title: '@general:actions.create.title',\n command: {\n name: 'Entity:Create',\n options: {\n process: {\n redirect: false,\n canCreateNewOne: true,\n data: {\n reference: {\n id: '{{context.eval(\"id\")}}',\n type: type,\n },\n },\n },\n },\n },\n priority: 'primary',\n type: AXPSystemActionType.Create,\n scope: AXPEntityCommandScope.TypeLevel,\n },\n entityDetailsEditAction(),\n entityOverrideDetailsViewAction(),\n ];\n}\n\n//#endregion\n","//#region ---- Entity datasource keys ----\n\n/** Platform entity layout datasource registry names. */\nexport const AXPEntityDataSourceKeys = {\n Entities: 'entities',\n} as const;\n\n//#endregion\n","//#region ---- Regional setting keys ----\n\n/**\n * Regional and locale-related setting keys used by platform widgets and components.\n * Most values use the `LocaleManagement:Setting:Regional.*` prefix; definitions live in the locale-management module where applicable.\n */\nexport enum AXPRegionalSetting {\n LocaleProfile = 'LocaleManagement:Setting:Regional.LocaleProfile',\n TimeZone = 'LocaleManagement:Setting:Regional.TimeZone',\n Language = 'LocaleManagement:Setting:Regional.Language',\n Country = 'LocaleManagement:Setting:Regional.Country',\n Calendar = 'LocaleManagement:Setting:Regional.Calendar',\n /** User-selected holiday calendars shown on the task board and other calendar views. */\n CalendarEvents = 'LocaleManagement:Setting:Regional.CalendarEvents',\n FirstDayOfWeek = 'LocaleManagement:Setting:Regional.FirstDayOfWeek',\n WeekendDays = 'LocaleManagement:Setting:Regional.WeekendDays',\n ShortDate = 'LocaleManagement:Setting:Regional.ShortDate',\n MediumDate = 'LocaleManagement:Setting:Regional.MediumDate',\n LongDate = 'LocaleManagement:Setting:Regional.LongDate',\n ShortTime = 'LocaleManagement:Setting:Regional.ShortTime',\n MediumTime = 'LocaleManagement:Setting:Regional.MediumTime',\n LongTime = 'LocaleManagement:Setting:Regional.LongTime',\n MeasurementUnits = 'LocaleManagement:Setting:Regional.MeasurementUnits',\n TemperatureUnits = 'LocaleManagement:Setting:Regional.TemperatureUnits',\n DistanceUnits = 'LocaleManagement:Setting:Regional.DistanceUnits',\n WeightUnits = 'LocaleManagement:Setting:Regional.WeightUnits',\n VolumeUnits = 'LocaleManagement:Setting:Regional.VolumeUnits',\n SpeedUnits = 'LocaleManagement:Setting:Regional.SpeedUnits',\n AreaUnits = 'LocaleManagement:Setting:Regional.AreaUnits',\n /** Default multi-language behavior for standard text field names; defined in locale-management `AXMRegionalSettingProvider`. */\n MultiLanguageSupport = 'LocaleManagement:Setting:Regional.MultiLanguageSupport',\n}\n\n//#endregion\n","//#region ---- Widget node types ----\n\nimport type {\n AXPExpression,\n AXPMetaData,\n AXPOptionsData,\n AXPValueTransformerFunctions,\n AXPWidgetTriggers,\n} from './core.types';\n\nexport type AXPWidgetRenderMode = 'view' | 'edit' | 'designer' | 'print' | 'column' | 'filter';\n\nexport interface AXPWidgetNode {\n type: string;\n mode?: AXPWidgetRenderMode;\n path?: string;\n name?: string;\n visible?: boolean | AXPExpression;\n defaultValue?: unknown;\n children?: AXPWidgetNode[];\n options?: AXPOptionsData;\n triggers?: AXPWidgetTriggers;\n meta?: AXPMetaData;\n valueTransforms?: AXPValueTransformerFunctions;\n}\n\n//#endregion\n","export const AXPWidgetsList = {\n Editors: {\n DocumentAttachment: 'document-attachment-editor',\n TagEditor: 'tag-editor',\n CheckBox: 'checkbox-editor',\n ColorBox: 'color-editor',\n ColorPalette: 'color-palette-editor',\n DateTimeBox: 'date-time-editor',\n AddressBox: 'address-editor',\n Direction: 'direction',\n LargeTextBox: 'large-text-editor',\n NumberBox: 'number-editor',\n UnitValueBox: 'number-unit-editor',\n PasswordBox: 'password-editor',\n QueryBuilder: 'query-builder-editor',\n RichText: 'rich-text-editor',\n SelectBox: 'select-editor',\n SelectionList: 'selection-list-editor',\n TextBox: 'text-editor',\n InlineDataTable: 'table-editor',\n ToggleSwitch: 'toggle-editor',\n FileTypeExtension: 'file-type-extension',\n MapBox: 'map',\n MediaGallery: 'gallery',\n SignatureBox: 'signature',\n LookupBox: 'lookup-editor',\n MultiSourceSelector: 'multi-source-selector-editor',\n EntityCategory: 'entity-category-editor',\n ContactBox: 'contact-editor',\n MetaDataBox: 'meta-data-editor',\n TemplateBox: 'template-box-editor',\n TemplateContentEditor: 'template-content-editor',\n TimeDuration: 'time-duration',\n DocumentUploader: 'document-uploader',\n MetaSelector: 'meta-selector-editor',\n MetaDataForm: 'meta-data-form-editor',\n ColumnFilterSelector: 'column-filter-selector-editor',\n DataListFilter: 'data-list-filter-editor',\n ListEditor: 'list-editor',\n ConnectedListsEditor: 'connected-lists-editor',\n SkillMatrix: 'skill-matrix-editor',\n ResponsibilitiesMatrix: 'responsibilities-matrix-editor',\n RiskMatrix: 'risk-matrix-editor',\n ProgressBox: 'progress-bar-editor',\n RatePicker: 'rate-picker-editor',\n ActivityCommandConfigurator: 'activity-command-configurator',\n WorkflowConfigurator: 'workflow-configurator',\n },\n Layouts: {\n AlertBox: 'alert-box-layout',\n BadgeLayout: 'badge-layout',\n BlockLayout: 'block-layout',\n RepeaterLayout: 'repeater-layout',\n TextBlockLayout: 'text-block-layout',\n FormField: 'form-field',\n PanelLayout: 'panel-layout',\n PageLayout: 'page-layout',\n DocumentLayout: 'document-layout',\n GridRowLayout: 'grid-row-layout',\n GridItemLayout: 'grid-item-layout',\n GridLayout: 'grid-layout',\n FlexLayout: 'flex-layout',\n FlexItemLayout: 'flex-item-layout',\n AdvancedGridLayout: 'advanced-grid-layout',\n AdvancedGridItemLayout: 'advanced-grid-item-layout',\n FieldsetLayout: 'fieldset-layout',\n TabsetLayout: 'tabset-layout',\n TabsetItemLayout: 'tabset-item',\n },\n Actions: {\n ActionButton: 'button-action',\n },\n Advanced: {\n CodeEditor: 'code-editor',\n JsonViewer: 'json-viewer',\n OutcomeResultsViewer: 'outcome-results-viewer',\n QRCode: 'qrcode',\n schedulerPicker: 'scheduler-picker',\n Signature: 'signature',\n Map: 'map',\n Gallery: 'gallery',\n Image: 'image',\n ImageMarker: 'image-marker',\n Avatar: 'avatar',\n Attachments: 'attachments',\n DataList: 'data-list',\n ListToolbar: 'list-toolbar',\n CronJob: 'cron-job',\n Status: 'status-widget',\n WidgetFieldConfigurator: 'widget-field-configurator',\n AnswersViewer: 'answers-viewer',\n },\n Templates: {\n Designer: 'template-designer',\n Template: 'template',\n },\n // Filters: {\n // StringFilter: 'string-filter',\n // SelectFilter: 'select-filter',\n // NumberFilter: 'number-filter',\n // DateTimeFilter: 'datetime-filter',\n // BooleanFilter: 'boolean-filter',\n // LookupFilter: 'lookup-filter',\n // },\n // PropertyEditors: {\n // Spacing: 'spacing',\n // GridOptions: 'grid-options',\n // GridItemOptions: 'grid-item-options',\n // FlexOptions: 'flex-options',\n // FlexItemOptions: 'flex-item-options',\n // Direction: 'direction',\n // Border: 'border',\n // AdvancedGridOptions: 'advanced-grid-options',\n // },\n // Validations: {\n // RequiredValidation: 'required-validation',\n // RegularExpressionValidation: 'regular-expression-validation',\n // MinLengthValidation: 'min-length-validation',\n // MaxLengthValidation: 'max-length-validation',\n // LessThanValidation: 'less-than-validation',\n // GreaterThanValidation: 'greater-than-validation',\n // EqualValidation: 'equal-validation',\n // CallbackValidation: 'callback-validation',\n // BetweenValidation: 'between-validation',\n // },\n Entity: {\n EntityList: 'entity-list',\n SelectorStructure: 'selector-structure',\n },\n Providers: {\n EntityDefinition: 'entity-definition-provider-editor',\n },\n ExpressionBuilders: {\n ConditionBuilder: 'condition-builder-editor',\n },\n Theme: {\n ThemeColorChooser: 'theme-color-chooser',\n // ThemeModeChooser: 'theme-mode-chooser',\n IconChooser: 'icon-chooser',\n FontSizeChooser: 'font-size-chooser',\n FontStyleChooser: 'font-style-chooser',\n // MenuOrientationChooser: 'menu-orientation-chooser',\n },\n // Features: {\n // Comment: 'comment',\n // Permissions: 'permissions',\n // },\n};\n","//#region ---- Widget catalog (deprecated; prefer AXPWidgetsList) ----\n\nconst AXPWidgetsCatalog = {\n timeDuration: 'time-duration',\n timeDurationFilter: 'time-duration-filter',\n checkbox: 'checkbox-editor',\n color: 'color-editor',\n connectedLists: 'connected-lists-editor',\n contact: 'contact-editor',\n dateTime: 'date-time-editor',\n largeText: 'large-text-editor',\n number: 'number-editor',\n numberUnit: 'number-unit-editor',\n password: 'password-editor',\n richText: 'rich-text-editor',\n select: 'select-editor',\n selectionList: 'selection-list-editor',\n text: 'text-editor',\n table: 'table-editor',\n toggle: 'toggle-editor',\n blockLayout: 'block-layout',\n pageLayout: 'page-layout',\n repeaterLayout: 'repeater-layout',\n textBlockLayout: 'text-block-layout',\n alertBoxLayout: 'alert-box-layout',\n badgeLayout: 'badge-layout',\n attachments: 'attachments',\n fileTypeExtension: 'file-type-extension',\n map: 'map',\n imageMarker: 'image-marker',\n image: 'image',\n gallery: 'gallery',\n signature: 'signature',\n buttonAction: 'button-action',\n document: 'document-layout',\n lookup: 'lookup-editor',\n formField: 'form-field',\n qrcode: 'qrcode',\n schedulerPicker: 'scheduler-picker',\n advancedGrid: 'advanced-grid-layout',\n advancedGridItem: 'advanced-grid-item-layout',\n grid: 'grid-layout',\n gridItem: 'grid-item-layout',\n template: 'template',\n templateDesigner: 'template-designer',\n cronJob: 'cron-job',\n spacing: 'spacing',\n direction: 'direction',\n border: 'border',\n flexLayout: 'flex-layout',\n flexItem: 'flex-item-layout',\n tableLayout: 'table-layout',\n tableItem: 'table-item-layout',\n avatar: 'avatar',\n themeModeChooser: 'theme-mode-chooser',\n menuOrientationChooser: 'menu-orientation-chooser',\n fontStyleChooser: 'font-style-chooser',\n fontSizeChooser: 'font-size-chooser',\n iconChooser: 'icon-chooser',\n icon: 'icon',\n themeColorChooser: 'theme-color-chooser',\n gridOptions: 'grid-options',\n gridItemOptions: 'grid-item-options',\n advancedGridOptions: 'advanced-grid-options',\n stringFilter: 'string-filter',\n numberFilter: 'number-filter',\n dateTimeFilter: 'datetime-filter',\n booleanFilter: 'boolean-filter',\n lookupFilter: 'lookup-filter',\n flexOptions: 'flex-options',\n flexItemOptions: 'flex-item-options',\n selectFilter: 'select-filter',\n requiredValidation: 'required-validation',\n regularExpressionValidation: 'regular-expression-validation',\n minLengthValidation: 'min-length-validation',\n maxLengthValidation: 'max-length-validation',\n lessThanValidation: 'less-than-validation',\n greaterThanValidation: 'greater-than-validation',\n betweenValidation: 'between-validation',\n equalValidation: 'equal-validation',\n callbackValidation: 'callback-validation',\n metaData: 'meta-data-editor',\n templateEditor: 'template-box-editor',\n templateContentEditor: 'template-content-editor',\n panel: 'panel',\n notification: 'notification',\n comment: 'comment',\n list: 'list-editor',\n dataList: 'data-list',\n listToolbar: 'list-toolbar',\n entityList: 'entity-list',\n pageComponent: 'page-component',\n editorJs: 'editor-js-editor',\n documentUploader: 'document-uploader',\n stepWizard: 'step-wizard',\n progressBar: 'progress-bar-editor',\n rate: 'rate-picker-editor',\n documentFileTypeFilter: 'document-file-type-filter',\n entityDefinitionProvider: 'entity-definition-provider-editor',\n} as const;\n\nexport { AXPWidgetsCatalog };\n\n//#endregion\n","//#region ---- Address Data Types ----\n\n/**\n * Address mode type - determines the display mode of the address widget\n * - simple: single text input for full address (one line)\n * - popup: readonly summary + button to edit in popup dialog\n * - expandable: expandable panel — collapsed shows full address, expanded shows inline form\n */\nexport type AXPAddressMode = 'simple' | 'popup' | 'expandable';\n\n/**\n * Address label option\n */\nexport interface AXPAddressLabel {\n id: string;\n name: string;\n}\n\n/**\n * Address data structure\n */\nexport interface AXPAddressData {\n street1: string;\n street2?: string;\n postalCode?: string;\n coordinates?: string; // lat,lng format\n full: string; // formatted full address\n label?: string; // if hasLabel enabled\n // Exposed fields from lookup widgets\n country?: { id?: string; title?: string };\n state?: { id?: string; title?: string };\n city?: { id?: string; title?: string };\n}\n\n//#endregion\n","import { type AXPMetaData, type AXPOptionsData, type AXPMultiLanguageString } from './core.types';\nimport { type AXPCategoryEntity, type AXPEntityOp } from './data.types';\nimport { type AXPProperty } from './property.types';\n\n//#region ---- Workflow definition (graph + metadata) ----\n\nexport interface AXPWorkflowDefinition {\n schemaVersion: 'acorex-platform-workflow/v1';\n\n name: string;\n title?: AXPMultiLanguageString | null;\n description?: AXPMultiLanguageString | null;\n\n variables?: AXPProperty[];\n inputs?: AXPProperty[];\n outputs?: AXPWorkflowOutputProperty[];\n\n graph: AXPWorkflowGraph;\n\n customProperties?: Record<string, any>;\n\n /** engine specific (Elsa, ...) */\n extensions?: AXPWorkflowExtensions;\n\n /**\n * Workflow bindings configuration.\n * Defines which entities and events should trigger this workflow.\n */\n bindings?: AXPWorkflowBinding[];\n}\n\n/**\n * Workflow Category - Extends AXPCategoryEntity for consistency and performance\n *\n * Inherited properties from AXPCategoryEntity:\n * - id: string - Unique identifier\n * - title: string - Display name\n * - description?: string - Category description\n * - parentId?: string - Parent category ID\n * - childrenCount: number - Direct child categories count (enables lazy loading)\n * - itemsCount?: number - Direct workflows count\n * - totalChildrenCount?: number - Total nested categories (optional, for analytics)\n * - totalItemsCount?: number - Total workflows in tree (optional, for analytics)\n */\nexport interface AXPWorkflowCategory extends AXPCategoryEntity {\n // No additional properties needed - all inherited from AXPCategoryEntity\n // Use: childrenCount instead of hasChild\n // Use: itemsCount instead of hasWorkflow\n}\n\n//#endregion\n\n//#region ---- Graph & activity instance ----\n\nexport interface AXPWorkflowGraph {\n startActivityId: string;\n activities: AXPWorkflowActivityInstance[];\n connections: AXPConnection[];\n\n /** purely designer */\n designer?: {\n nodes?: Record<string, { x: number; y: number; nodeId?: string; width?: number; height?: number }>;\n edges?: Array<{ from: string; to: string; vertices?: Array<{ x: number; y: number }> }>;\n /**\n * When true, the Activities page has applied its initial auto-arrange (or the graph already had\n * persisted node positions). Prevents re-running automatic layout on subsequent visits.\n */\n layoutArranged?: boolean;\n };\n}\n\nexport interface AXPWorkflowActivityInstance {\n id: string;\n nodeId?: string;\n\n /**\n * Activity name - references AXPActivityDefinition.name\n * Used to lookup activity definition for metadata (executionMode, title, etc.)\n */\n name: string;\n\n /**\n * Input values for this activity instance.\n * Key-value pairs where keys match {@link AXPProperty.name} from AXPActivityDefinition.inputs\n * Example: { \"message\": \"Hello\", \"duration\": 5000 }\n */\n inputs?: AXPOptionsData;\n\n title?: string;\n\n /**\n * Output mapping: process variable name → path in this activity's output (BPMN-style: activity → variable).\n * When this activity completes, each entry sets variables[variableName] = output[outputPath].\n * Example: { leaveRequestId: 'id' } → variables.leaveRequestId = activityOutput.id\n */\n outputToVariables?: AXPOptionsData;\n\n metadata?: AXPMetaData;\n\n /** engine-specific override */\n extensions?: Record<string, any>;\n}\n\nexport interface AXPConnection {\n source: { activtyName: string; port?: string | null };\n target: { activtyName: string; port?: string | null };\n vertices?: Array<{ x: number; y: number }>;\n}\n\n//#endregion\n\n//#region ---- Workflow I/O (built on AXPProperty) ----\n\n/**\n * Workflow output: same as {@link AXPProperty} with optional source path and engine metadata.\n */\nexport interface AXPWorkflowOutputProperty extends AXPProperty {\n /**\n * Optional: where this output comes from in your context/memory.\n * Example: \"$.result.orderId\" or \"vars.orderId\"\n */\n path?: string;\n metadata?: Record<string, any>;\n}\n\n//#endregion\n\n//#region ---- Engine extensions & bindings ----\n\n/**\n * Engine-specific extension bag for a workflow.\n * Keep ALL engine-only fields here (Elsa, StepFunctions adapter, etc).\n */\nexport interface AXPWorkflowExtensions {\n /**\n * Elsa-specific extensions (optional).\n */\n elsa?: AXPElsaWorkflowExtensions;\n /**\n * Other engines (future-proof).\n * Example: stepFunctions, logicApps, temporal, ...\n */\n [engine: string]: any;\n}\n\n/**\n * Elsa-only fields (Optional).\n * Put strategy/tool/schema/raw payload here to keep Core model global.\n */\nexport interface AXPElsaWorkflowExtensions {\n /**\n * Elsa schema URL (if you want to round-trip exact docs).\n * Example: \"https://elsaworkflows.io/schemas/workflow-definition/v3.0.0/schema.json\"\n */\n schema?: string;\n\n toolVersion?: string;\n materializerName?: string;\n\n /**\n * Elsa strategy/options (engine-level concerns).\n */\n options?: {\n activationStrategyType?: string | null;\n incidentStrategyType?: string | null;\n commitStrategyName?: string | null;\n autoUpdateConsumingWorkflows?: boolean;\n usableAsActivity?: boolean | null;\n activityCategory?: string | null;\n };\n\n /**\n * If you want lossless Elsa round-trip, keep the raw Elsa definition here.\n */\n rawDefinition?: any;\n}\n\n/**\n * Workflow binding configuration.\n * Defines which entities and events should trigger a workflow.\n */\nexport interface AXPWorkflowBinding {\n /**\n * Entity types this workflow applies to (e.g., ['ContentManagement.Promotion', 'ContentManagement.Article'])\n * Empty array means applies to all entities with workflow-run plugin enabled.\n */\n entityTypes: string[];\n\n /**\n * Event types that trigger this workflow (e.g., ['create', 'update'])\n * Uses AXPEntityOp directly (create, update, delete, etc.)\n */\n eventTypes: AXPEntityOp[];\n\n /**\n * Whether this binding is enabled\n */\n enabled: boolean;\n\n /**\n * Optional conditions for when to trigger (future enhancement)\n */\n conditions?: any;\n}\n\n//#endregion\n","import type { AXPMultiLanguageString } from './core.types';\nimport type { AXPCategoryEntity } from './data.types';\nimport type { AXPProperty } from './property.types';\nimport type { AXPWorkflowOutputProperty } from './workflow-definition.types';\n\n// ============================================\n// SIMPLIFIED ACTIVITY SYSTEM\n// ============================================\n\n/**\n * Type of task for inbox handling.\n * - 'human-task': Requires inbox - needs human interaction\n * - 'ui-activity': UI-only activity (no inbox) - immediate execution\n * - 'system-activity': System/backend activity (no inbox) - automated execution\n */\nexport type AXPTaskType = 'human-task' | 'ui-activity' | 'system-activity';\n\n/**\n * How the workflow engine should offer \"continue to next step?\" before an inline frontend activity.\n * Declared on {@link AXPActivityDefinition} and copied onto {@link AXPWorkflowTask} at runtime.\n */\nexport type AXPWorkflowContinuationBeforeInteractive =\n | 'default'\n /** Skip when opened from a task-board human-task primary action (e.g. start-fill, review). */\n | 'skip-when-chained-from-human-task'\n /** Skip for the natural assignee; initiator / reassign users still get the prompt (workflow-management). */\n | 'skip-for-assignee';\n\n/** Optional continuation UX metadata for an activity definition. */\nexport interface AXPWorkflowContinuationMetadata {\n beforeInteractive?: AXPWorkflowContinuationBeforeInteractive;\n}\n\n/**\n * Activity Category - Extends AXPCategoryEntity for consistency and performance\n *\n * Inherited properties from AXPCategoryEntity:\n * - id: string - Unique identifier\n * - title: string - Display name\n * - description?: string - Category description\n * - parentId?: string - Parent category ID\n * - childrenCount: number - Direct child categories count (enables lazy loading)\n * - itemsCount?: number - Direct activities count\n * - totalChildrenCount?: number - Total nested categories (optional, for analytics)\n * - totalItemsCount?: number - Total activities in tree (optional, for analytics)\n */\nexport interface AXPActivityCategory extends AXPCategoryEntity {\n // No additional properties needed - all inherited from AXPCategoryEntity\n // Use: childrenCount instead of hasChild\n // Use: itemsCount instead of hasActivity\n}\n\n/**\n * Lightweight category snapshot embedded in activity-definition records.\n */\nexport interface AXPActivityDefinitionCategoryRef {\n id: string;\n name: string;\n title: AXPMultiLanguageString;\n}\n\n/**\n * Activity Definition - Metadata for UI and tooling.\n * Contains all metadata needed for displaying activities in toolbox and designer.\n * The `name` property is used as the command key for execution.\n */\nexport interface AXPActivityDefinition {\n /**\n * Activity name - used as command key for execution.\n * This is the unique identifier for the activity.\n */\n name: string;\n\n /**\n * Activity type (e.g., \"workflow-activity:check-permission\").\n */\n type: string;\n\n /**\n * Display name for UI (plain or per-locale map).\n */\n title?: AXPMultiLanguageString;\n\n\n instanceTitle?: string;\n\n /**\n * Description of what the activity does (plain or per-locale map).\n */\n description?: AXPMultiLanguageString;\n\n /**\n * Category for grouping in toolbox.\n */\n category?: AXPActivityDefinitionCategoryRef;\n\n /**\n * Icon name or class.\n */\n icon?: string;\n\n /**\n * Where this activity should be executed.\n * - 'frontend': Execute in browser (UI activities, console, events)\n * - 'backend': Execute in backend (business logic, API calls)\n * - 'both': Execute in both frontend and backend (hybrid activities)\n *\n * Default: 'frontend'\n */\n executionMode?: 'frontend' | 'backend' | 'both';\n\n /**\n * Type of task for inbox handling.\n * - 'human-task': Requires inbox - needs human interaction\n * - 'ui-activity': UI-only activity (no inbox) - immediate execution\n * - 'system-activity': System/backend activity (no inbox) - automated execution\n *\n * Default: 'ui-activity' (for backward compatibility)\n */\n taskType?: AXPTaskType;\n\n /**\n * Input properties (form/schema for activity parameters).\n */\n inputs?: AXPProperty[];\n\n /**\n * Output properties (result shape + optional path/metadata).\n */\n outputs?: AXPWorkflowOutputProperty[];\n\n /**\n * Static outcomes (exit points).\n * Example: ['Done', 'Success', 'Failed']\n */\n outcomes?: string[];\n\n /**\n * Whether this activity is browsable in the toolbox.\n * Default: true\n */\n isBrowsable?: boolean;\n\n /**\n * Whether this activity is a container (can have children).\n * Default: false\n */\n isContainer?: boolean;\n\n /**\n * Continuation prompt behavior when this activity runs inline in the workflow manager.\n */\n workflowContinuation?: AXPWorkflowContinuationMetadata;\n}\n\n/**\n * Query result shape for activity-definition catalog endpoints.\n */\nexport interface AXPActivityDefinitionQueryResult {\n total: number;\n items: AXPActivityDefinition[];\n}\n\n// Note:\n// Previous versions defined dedicated activity result/command types here\n// (AXPActivityResult / AXPActivity) that wrapped output and outcome.\n// Activities are now modeled directly as AXPCommand with outcome stored in\n// AXPExecuteCommandResult.metadata.outcome.\n","/** Registration key for {@link AXPPreviewWidgetFieldCommand}; lives in contracts so consumers can reference it without importing the command implementation. */\nexport const AXP_PREVIEW_WIDGET_FIELD_COMMAND_KEY = 'Widget:Preview';\n","// ============================================\n// WORKFLOW INSTANCE v3.0.0 TYPES\n// Based on Elsa Workflow Instance schema: https://elsaworkflows.io/schemas/workflow-instance/v3.0.0/schema.json\n// Compatible with Elsa backend while using ACoreX naming conventions\n// ============================================\n\n/**\n * Workflow status.\n */\nexport type AXPWorkflowStatus = 'Running' | 'Finished';\n\n/**\n * Workflow sub-status.\n */\nexport type AXPWorkflowSubStatus = 'Pending' | 'Executing' | 'Suspended' | 'Finished' | 'Cancelled' | 'Faulted';\n\n/**\n * Activity status.\n */\nexport type AXPActivityStatus = 'Running' | 'Completed' | 'Canceled' | 'Faulted';\n\n/**\n * Exception state.\n */\nexport interface AXPExceptionState {\n /**\n * Exception type name.\n */\n type: string;\n\n /**\n * Exception message.\n */\n message: string;\n\n /**\n * Stack trace (nullable).\n */\n stackTrace?: string | null;\n\n /**\n * Inner exception (nullable).\n */\n innerException?: AXPExceptionState | null;\n}\n\n/**\n * Activity incident.\n */\nexport interface AXPActivityIncident {\n /**\n * Activity ID that caused the incident.\n */\n activityId: string;\n\n /**\n * Activity node ID.\n */\n activityNodeId: string;\n\n /**\n * Activity type.\n */\n activityType: string;\n\n /**\n * Incident message.\n */\n message: string;\n\n /**\n * Exception (nullable).\n */\n exception?: AXPExceptionState | null;\n\n /**\n * Timestamp (ISO date-time).\n */\n timestamp: string;\n}\n\n/**\n * Workflow fault state.\n */\nexport interface AXPWorkflowFaultState {\n /**\n * Exception (nullable).\n */\n exception?: AXPExceptionState | null;\n\n /**\n * Fault message.\n */\n message: string;\n\n /**\n * Faulted activity ID (nullable).\n */\n faultedActivityId?: string | null;\n}\n\n/**\n * Bookmark.\n */\nexport interface AXPBookmark {\n /**\n * Bookmark ID.\n */\n id: string;\n\n /**\n * Bookmark name.\n */\n name: string;\n\n /**\n * Bookmark hash.\n */\n hash: string;\n\n /**\n * Bookmark payload (nullable).\n */\n payload?: any | null;\n\n /**\n * Activity node ID.\n */\n activityNodeId: string;\n\n /**\n * Activity instance ID.\n */\n activityInstanceId: string;\n\n /**\n * Auto burn flag.\n */\n autoBurn?: boolean;\n\n /**\n * Callback method name (nullable).\n */\n callbackMethodName?: string | null;\n\n /**\n * Metadata (nullable).\n */\n metadata?: Record<string, string> | null;\n}\n\n/**\n * Completion callback state.\n */\nexport interface AXPCompletionCallbackState {\n /**\n * Owner activity instance ID.\n */\n ownerInstanceId: string;\n\n /**\n * Child activity node ID.\n */\n childNodeId: string;\n\n /**\n * Method name (nullable).\n */\n methodName?: string | null;\n}\n\n/**\n * Variable (for activity context).\n */\nexport interface AXPActivityVariable {\n /**\n * Variable ID.\n */\n id: string;\n\n /**\n * Variable name.\n */\n name: string;\n\n /**\n * Type name.\n */\n typeName: string;\n\n /**\n * Is array flag.\n */\n isArray?: boolean;\n\n /**\n * Variable value (nullable).\n */\n value?: any | null;\n\n /**\n * Storage driver type name (nullable).\n */\n storageDriverTypeName?: string | null;\n}\n\n/**\n * Activity execution context state.\n */\nexport interface AXPActivityExecutionContextState {\n /**\n * Context ID (activity instance ID).\n */\n id: string;\n\n /**\n * Parent context ID (nullable).\n */\n parentContextId?: string | null;\n\n /**\n * Scheduled activity node ID.\n */\n scheduledActivityNodeId: string;\n\n /**\n * Owner activity node ID (nullable).\n */\n ownerActivityNodeId?: string | null;\n\n /**\n * Properties bag.\n */\n properties: Record<string, any>;\n\n /**\n * Activity state (evaluated properties) (nullable).\n */\n activityState?: Record<string, any> | null;\n\n /**\n * Dynamic variables.\n */\n dynamicVariables: AXPActivityVariable[];\n\n /**\n * Activity status.\n */\n status: AXPActivityStatus;\n\n /**\n * Is executing flag.\n */\n isExecuting: boolean;\n\n /**\n * Fault count.\n */\n faultCount: number;\n\n /**\n * Started at timestamp (ISO date-time).\n */\n startedAt: string;\n\n /**\n * Completed at timestamp (ISO date-time, nullable).\n */\n completedAt?: string | null;\n\n /**\n * Tag (nullable).\n */\n tag?: any | null;\n}\n\n/**\n * Workflow state (internal execution state).\n */\nexport interface AXPWorkflowState {\n /**\n * State ID.\n */\n id: string;\n\n /**\n * Workflow definition ID.\n */\n definitionId: string;\n\n /**\n * Workflow definition version.\n */\n definitionVersion: number;\n\n /**\n * Correlation ID (nullable).\n */\n correlationId?: string | null;\n\n /**\n * Workflow status.\n */\n status: AXPWorkflowStatus;\n\n /**\n * Workflow sub-status.\n */\n subStatus: AXPWorkflowSubStatus;\n\n /**\n * Bookmarks.\n */\n bookmarks: AXPBookmark[];\n\n /**\n * Incidents.\n */\n incidents: AXPActivityIncident[];\n\n /**\n * Fault (nullable).\n */\n fault?: AXPWorkflowFaultState | null;\n\n /**\n * Completion callbacks.\n */\n completionCallbacks: AXPCompletionCallbackState[];\n\n /**\n * Activity execution contexts.\n */\n activityExecutionContexts: AXPActivityExecutionContextState[];\n\n /**\n * Input data.\n */\n input: Record<string, any>;\n\n /**\n * Output data.\n */\n output: Record<string, any>;\n\n /**\n * Properties bag.\n */\n properties: Record<string, any>;\n\n /**\n * Created at timestamp (ISO date-time).\n */\n createdAt: string;\n\n /**\n * Updated at timestamp (ISO date-time).\n */\n updatedAt: string;\n\n /**\n * Finished at timestamp (ISO date-time, nullable).\n */\n finishedAt?: string | null;\n\n /**\n * Total number of activities/steps in the workflow (for progress display).\n */\n totalSteps?: number;\n}\n\n/**\n * Workflow instance (stored in database).\n * This matches the Elsa Workflow Instance schema for backend compatibility.\n */\nexport interface AXPWorkflowInstance {\n /**\n * Schema reference.\n */\n $schema?: string;\n\n /**\n * Unique instance ID.\n */\n id: string;\n\n /**\n * Workflow definition ID.\n */\n definitionId: string;\n\n /**\n * Workflow definition version ID.\n */\n definitionVersionId: string;\n\n /**\n * Workflow definition version number.\n */\n version: number;\n\n /**\n * Parent workflow instance ID (nullable, for child workflows).\n */\n parentWorkflowInstanceId?: string | null;\n\n /**\n * Workflow state (internal execution state).\n */\n workflowState: AXPWorkflowState;\n\n /**\n * Workflow status.\n */\n status: AXPWorkflowStatus;\n\n /**\n * Workflow sub-status.\n */\n subStatus: AXPWorkflowSubStatus;\n\n /**\n * Correlation ID (nullable).\n */\n correlationId?: string | null;\n\n /**\n * Instance name (nullable).\n */\n name?: string | null;\n\n /**\n * Incident count.\n */\n incidentCount: number;\n\n /**\n * Created at timestamp (ISO date-time).\n */\n createdAt: string;\n\n /**\n * Updated at timestamp (ISO date-time).\n */\n updatedAt: string;\n\n /**\n * Finished at timestamp (ISO date-time, nullable).\n */\n finishedAt?: string | null;\n\n /**\n * Entity reference ID (for linking workflow instances to business entities).\n */\n entityRefId?: string | null;\n\n /**\n * Entity reference type (e.g., 'HumanCapitalManagement.LeaveRequest').\n */\n entityRefType?: string | null;\n}\n","import type { AXPMetaData } from './core.types';\n\nexport enum AXPFileStorageStatus {\n Temporary = 'temporary', // File is not yet associated with a parent entity\n Committed = 'committed', // File is fully associated and in use\n PendingDeletion = 'pendingDeletion', // File is marked for deletion but not yet removed\n Archived = 'archived', // File is archived and no longer actively used\n Error = 'error', // File encountered an error during processing\n}\n\n/**\n * Interface representing a file storage request in the Acorex platform.\n */\nexport interface AXPFileStorageCreateRequest {\n /**\n * The file to be stored.\n */\n file: File;\n\n /**\n * The name of the file.\n */\n name?: string;\n\n /**\n * The unique identifier of referenced entity.\n */\n refId: string;\n /**\n * The type of the referenced entity.\n */\n refType: string;\n /**\n * The category of the file. profile-picture, company-logo, policy, document, etc.\n */\n category: string;\n /**\n * The folder path where the file should be stored.\n * If null, the service will resolve the path based on metadata, user, tenant, or default rules.\n */\n path?: string;\n /**\n * Metadata associated with the file.\n */\n metadata?: AXPMetaData;\n\n /**\n * Indicates whether the file is primary or not.\n */\n isPrimary?: boolean;\n\n /**\n * Indicates the status of the file.\n */\n status?: AXPFileStorageStatus;\n}\n\nexport interface AXPFileStorageUpdateRequest {\n /**\n * The unique identifier for the stored file.\n */\n fileId: string;\n /**\n * The folder path where the file should be stored.\n * If null, the service will resolve the path based on metadata, user, tenant, or default rules.\n */\n path?: string;\n /**\n * The name of the file.\n */\n name?: string;\n /**\n * Metadata associated with the file.\n */\n metadata: AXPMetaData;\n\n /**\n * Indicates whether the file is primary or not.\n */\n isPrimary?: boolean;\n}\n\n/**\n * Represents information about a file stored in the AXP file storage system.\n */\nexport interface AXPFileStorageInfo {\n /**\n * The unique identifier for the stored file.\n */\n id?: string;\n /**\n * The unique identifier for the stored file.\n */\n fileId: string;\n\n /**\n * The unique identifier of referenced entity.\n */\n refId: string;\n /**\n * The type of the referenced entity.\n */\n refType: string;\n /**\n * The category of the file. profile-picture, company-logo, policy, document, etc.\n */\n category: string;\n\n /**\n * The URL where the file can be accessed.\n */\n url?: string;\n\n /**\n * The size of the file in bytes.\n */\n size: number;\n\n /**\n * The name of the file.\n */\n name?: string;\n\n /**\n * The MIME type of the file.\n */\n mimeType: string;\n\n /**\n * The date and time when the file was uploaded.\n */\n uploadedAt: Date;\n\n /**\n * Indicates whether the file is public or private.\n */\n isPublic: boolean;\n\n /**\n * Indicates whether the file is primary or not.\n */\n isPrimary?: boolean;\n\n status: AXPFileStorageStatus; // Updated to use enum\n\n binary: File;\n}\n\nexport interface AXPFileManyStorageInfo {\n /**\n * The unique identifier for the stored file.\n */\n id?: string;\n /**\n * The unique identifier for the stored file.\n */\n fileId: string;\n /**\n * The unique identifier of referenced entity.\n */\n refId: string;\n /**\n * The type of the referenced entity.\n */\n refType: string;\n /**\n * The size of the file in bytes.\n */\n size: number;\n\n /**\n * The name of the file.\n */\n name?: string;\n\n /**\n * The URL where the file can be accessed.\n */\n url?: string;\n\n /**\n * Optional title (e.g. for display in file list).\n */\n title?: string;\n\n /**\n * Optional description (e.g. for display in file list).\n */\n description?: string;\n}\n\n/**\n * Represents information about a file stored in the AXP file storage system.\n */\nexport interface AXPFileStorageFindRequest {\n /**\n * The unique identifier of referenced entity.\n */\n refId?: string;\n /**\n * The type of the referenced entity.\n */\n refType?: string;\n /**\n * The category of the file. profile-picture, company-logo, policy, document, etc.\n */\n category?: string;\n /**\n * The MIME type of the file.\n */\n mimeType?: string;\n /**\n * Indicates whether the file is public or private.\n */\n isPublic?: boolean;\n /**\n * Indicates whether the file is primary or not.\n */\n isPrimary?: boolean;\n /**\n * The date and time range when the file was uploaded.\n */\n uploadedAtRange?: { from: Date; to: Date };\n}\n","//#region ---- AI output contract types ----\n\n/** JSON data primitive for the specialist final deliverable. */\nexport type AXPAgentOutputKind = 'string' | 'object' | 'array';\n\n/** When `kind` is `object`, controls how the parsed value maps into chat transcript segments. */\nexport type AXPOutputTranscriptSegmentId = 'text' | 'node' | 'followUp' | 'file';\n\n//#endregion\n","//#region ---- Spreadsheet data types ----\n\nexport type AXPSpreadsheetCellValue = string | null;\n\n/** Matrix data: row id → column id → cell value id */\nexport type AXPSpreadsheetData = Record<string, Record<string, AXPSpreadsheetCellValue>>;\n\n//#endregion\n","//#region ---- System status types ----\n\n/** Standard system status types used across the platform. */\nexport enum AXPSystemStatusType {\n Todo = 'todo',\n InProgress = 'in-progress',\n InReview = 'in-review',\n Open = 'open',\n Closed = 'closed',\n Blocked = 'blocked',\n Done = 'done',\n Cancelled = 'cancelled',\n Draft = 'draft',\n PendingReview = 'pending-review',\n WaitingSignOff = 'waiting-sign-off',\n WaitingApproval = 'waiting-approval',\n Approved = 'approved',\n Published = 'published',\n Archived = 'archived',\n Rejected = 'rejected',\n Active = 'active',\n Inactive = 'inactive',\n Pending = 'pending',\n Completed = 'completed',\n Suspended = 'suspended',\n Failed = 'failed',\n Review = 'review',\n Expired = 'expired',\n}\n\n//#endregion\n","/**\n * Status Definition Types\n * Defines the structure for status definitions and their transitions\n */\n\n//#region ---- Status Definition Contracts ----\n\n/**\n * Status definition with metadata\n */\nexport interface AXPStatusDefinition {\n /**\n * Unique identifier for the status\n */\n name: string;\n\n /**\n * Display title for the status\n */\n title: string;\n\n /**\n * Color code or semantic color name for the status\n */\n color: string;\n\n /**\n * Optional icon class (e.g., 'fa-light fa-check')\n */\n icon?: string;\n\n /**\n * Optional description\n */\n description?: string;\n\n /**\n * Optional order for sorting\n */\n order?: number;\n\n /**\n * Whether this is a final status (end state)\n */\n isFinal?: boolean;\n\n /**\n * Whether this is an initial status (starting state)\n */\n isInitial?: boolean;\n\n /**\n * Whether list views should be automatically generated for this status\n */\n generateView?: boolean;\n}\n\n/**\n * Status transition definition\n */\nexport interface AXPStatusTransition {\n /**\n * Source status name\n */\n from: string;\n\n /**\n * Target status name\n */\n to: string;\n\n /**\n * Optional condition expression to evaluate before allowing transition\n * Uses expression evaluator syntax (e.g., \"{{user.isAdmin}}\", \"{{item.priority > 5}}\")\n */\n condition?: string;\n\n /**\n * Optional display title for the transition\n */\n title?: string;\n\n /**\n * Optional description\n */\n description?: string;\n\n /**\n * Optional command descriptor to execute for this transition\n * If not provided, defaults to Entity:UpdateStatus with entity, id, and status\n */\n command?: {\n name: string;\n options?: Record<string, unknown>;\n };\n\n /**\n * Whether this transition is automatic (no user action required)\n */\n isAutomatic?: boolean;\n\n /**\n * Whether this transition requires approval\n */\n requiresApproval?: boolean;\n}\n\n/**\n * Abstract class for status providers\n * Similar to AXPTaskBadgeProvider pattern\n */\nexport abstract class AXPStatusProvider {\n /**\n * Unique key for the status (e.g., 'task-management.status')\n */\n abstract readonly key: string;\n\n /**\n * List of available status definitions\n */\n abstract readonly statuses: AXPStatusDefinition[];\n\n /**\n * List of allowed transitions between statuses\n */\n abstract readonly transitions: AXPStatusTransition[];\n\n /**\n * Optional default status name\n */\n abstract readonly defaultStatus?: string;\n}\n\n//#endregion\n","import type { AXStyleColorType } from './shims.types';\nimport { AXPSystemStatusType } from './status.types';\nimport { AXPStatusDefinition } from './status-definition.types';\n\nconst i18n = (key: string) => `@general:statuses.${key}`;\n\n/**\n * Standard system status definitions\n * Provides consistent status definitions across the platform\n * Uses AXPStatusDefinition interface from status-definition.types.ts\n */\nexport const AXPSystemStatuses = Object.freeze({\n Open: {\n name: AXPSystemStatusType.Open,\n title: i18n('open.title'),\n icon: 'fa-light fa-circle',\n color: 'secondary',\n description: i18n('open.description'),\n order: 1,\n isInitial: true,\n isFinal: false,\n },\n Closed: {\n name: AXPSystemStatusType.Closed,\n title: i18n('closed.title'),\n icon: 'fa-light fa-circle',\n color: 'danger',\n description: i18n('closed.description'),\n order: 2,\n isInitial: false,\n isFinal: true,\n },\n Todo: {\n name: AXPSystemStatusType.Todo,\n title: i18n('todo.title'),\n icon: 'fa-light fa-circle',\n color: 'secondary',\n description: i18n('todo.description'),\n order: 1,\n isInitial: true,\n isFinal: false,\n },\n InProgress: {\n name: AXPSystemStatusType.InProgress,\n title: i18n('in-progress.title'),\n icon: 'fa-light fa-play',\n color: 'info',\n description: i18n('in-progress.description'),\n order: 2,\n isInitial: false,\n isFinal: false,\n },\n InReview: {\n name: AXPSystemStatusType.InReview,\n title: i18n('in-review.title'),\n icon: 'fa-light fa-eye',\n color: 'info',\n description: i18n('in-review.description'),\n order: 3,\n isInitial: false,\n isFinal: false,\n },\n Blocked: {\n name: AXPSystemStatusType.Blocked,\n title: i18n('blocked.title'),\n icon: 'fa-light fa-ban',\n color: 'danger',\n description: i18n('blocked.description'),\n order: 4,\n isInitial: false,\n isFinal: false,\n },\n Done: {\n name: AXPSystemStatusType.Done,\n title: i18n('done.title'),\n icon: 'fa-light fa-check-circle',\n color: 'success',\n description: i18n('done.description'),\n order: 5,\n isInitial: false,\n isFinal: true,\n },\n Cancelled: {\n name: AXPSystemStatusType.Cancelled,\n title: i18n('cancelled.title'),\n icon: 'fa-light fa-times-circle',\n color: 'neutral',\n description: i18n('cancelled.description'),\n order: 6,\n isInitial: false,\n isFinal: true,\n },\n Draft: {\n name: AXPSystemStatusType.Draft,\n title: i18n('draft.title'),\n icon: 'fa-light fa-file-pen',\n color: 'neutral',\n description: i18n('draft.description'),\n order: 1,\n isInitial: true,\n isFinal: false,\n },\n PendingReview: {\n name: AXPSystemStatusType.PendingReview,\n title: i18n('pending-review.title'),\n icon: 'fa-light fa-clock',\n color: 'warning',\n description: i18n('pending-review.description'),\n order: 2,\n isInitial: false,\n isFinal: false,\n },\n WaitingSignOff: {\n name: AXPSystemStatusType.WaitingSignOff,\n title: i18n('waiting-sign-off.title'),\n icon: 'fa-light fa-clock',\n color: 'warning',\n description: i18n('waiting-sign-off.description'),\n order: 3,\n isInitial: false,\n isFinal: false,\n },\n WaitingApproval: {\n name: AXPSystemStatusType.WaitingApproval,\n title: i18n('waiting-approval.title'),\n icon: 'fa-light fa-clock',\n color: 'warning',\n description: i18n('waiting-approval.description'),\n order: 1,\n isInitial: true,\n isFinal: false,\n },\n Approved: {\n name: AXPSystemStatusType.Approved,\n title: i18n('approved.title'),\n icon: 'fa-light fa-check-circle',\n color: 'success',\n description: i18n('approved.description'),\n order: 3,\n isInitial: false,\n isFinal: false,\n },\n Published: {\n name: AXPSystemStatusType.Published,\n title: i18n('published.title'),\n icon: 'fa-light fa-globe',\n color: 'primary',\n description: i18n('published.description'),\n order: 4,\n isInitial: false,\n isFinal: false,\n },\n Archived: {\n name: AXPSystemStatusType.Archived,\n title: i18n('archived.title'),\n icon: 'fa-light fa-archive',\n color: 'danger',\n description: i18n('archived.description'),\n order: 5,\n isInitial: false,\n isFinal: true,\n },\n Rejected: {\n name: AXPSystemStatusType.Rejected,\n title: i18n('rejected.title'),\n icon: 'fa-light fa-times-circle',\n color: 'danger',\n description: i18n('rejected.description'),\n order: 6,\n isInitial: false,\n isFinal: true,\n },\n Active: {\n name: AXPSystemStatusType.Active,\n title: i18n('active.title'),\n icon: 'fa-light fa-check-circle',\n color: 'success',\n description: i18n('active.description'),\n order: 1,\n isInitial: false,\n isFinal: false,\n },\n Inactive: {\n name: AXPSystemStatusType.Inactive,\n title: i18n('inactive.title'),\n icon: 'fa-light fa-circle',\n color: 'secondary',\n description: i18n('inactive.description'),\n order: 2,\n isInitial: false,\n isFinal: false,\n },\n Pending: {\n name: AXPSystemStatusType.Pending,\n title: i18n('pending.title'),\n icon: 'fa-light fa-clock',\n color: 'warning',\n description: i18n('pending.description'),\n order: 1,\n isInitial: true,\n isFinal: false,\n },\n Completed: {\n name: AXPSystemStatusType.Completed,\n title: i18n('completed.title'),\n icon: 'fa-light fa-check-circle',\n color: 'success',\n description: i18n('completed.description'),\n order: 10,\n isInitial: false,\n isFinal: true,\n },\n Suspended: {\n name: AXPSystemStatusType.Suspended,\n title: i18n('suspended.title'),\n icon: 'fa-light fa-pause-circle',\n color: 'neutral',\n description: i18n('suspended.description'),\n order: 5,\n isInitial: false,\n isFinal: false,\n },\n Failed: {\n name: AXPSystemStatusType.Failed,\n title: i18n('failed.title'),\n icon: 'fa-light fa-xmark-circle',\n color: 'danger',\n description: i18n('failed.description'),\n order: 10,\n isInitial: false,\n isFinal: true,\n },\n\n Review: {\n name: AXPSystemStatusType.Review,\n title: i18n('review.title'),\n icon: 'fa-light fa-eye',\n color: 'info',\n description: i18n('review.description'),\n order: 3,\n },\n Expired: {\n name: AXPSystemStatusType.Expired,\n title: i18n('expired.title'),\n icon: 'fa-light fa-clock',\n color: 'danger',\n description: i18n('expired.description'),\n order: 10,\n isInitial: false,\n isFinal: true,\n },\n} as const satisfies Record<string, AXPStatusDefinition>);\n\n/**\n * Get system status definition by type\n * @param type - Status type\n * @returns System status definition or undefined\n */\nexport function getSystemStatus(type: AXPSystemStatusType): AXPStatusDefinition {\n return Object.values(AXPSystemStatuses).find(status => status.name === type) as AXPStatusDefinition;\n}\n\n/**\n * Resolves the visual appearance (color and icon) for status\n * using the system statuses from the core module.\n * @param statusType - Status type string\n * @returns Color and icon for the status\n */\nexport function resolveStatusLook(statusType: string): { color: AXStyleColorType; icon: string } {\n const systemStatusType = statusType as AXPSystemStatusType;\n if (systemStatusType) {\n const systemStatus = getSystemStatus(systemStatusType);\n if (systemStatus) {\n return {\n color: systemStatus.color as AXStyleColorType,\n icon: systemStatus.icon || ''\n };\n }\n }\n\n return {\n color: 'secondary' as AXStyleColorType,\n icon: ''\n };\n}\n\n/**\n * Resolves the complete status information (title, description, icon, color) for a status\n * using the system statuses from the core module.\n * @param statusType - Status type string\n * @returns Complete status information as AXPStatusDefinition\n */\nexport function getStatusInfo(statusType: string): AXPStatusDefinition {\n const systemStatusType = statusType as AXPSystemStatusType;\n if (systemStatusType) {\n const systemStatus = getSystemStatus(systemStatusType);\n if (systemStatus) {\n return systemStatus;\n }\n }\n\n return {\n name: statusType,\n title: statusType,\n description: `Status: ${statusType}`,\n icon: '',\n color: 'secondary'\n };\n}\n\n/**\n * Get system status definition directly (no conversion needed since it's already AXPStatusDefinition)\n * @param statusType - Status type\n * @param overrides - Optional overrides for the status definition\n * @returns AXPStatusDefinition\n */\nexport function systemStatusToDefinition(\n statusType: AXPSystemStatusType,\n overrides?: Partial<AXPStatusDefinition>\n): AXPStatusDefinition {\n const systemStatus = getSystemStatus(statusType);\n if (!systemStatus) {\n throw new Error(`System status ${statusType} not found`);\n }\n\n return {\n ...systemStatus,\n ...overrides,\n };\n}\n","//#region ---- Multi-source reference ----\n\nexport interface AXPMultiSourceRef {\n sourceKey: string;\n refId?: string;\n displayName: string;\n data?: unknown;\n meta?: Record<string, unknown>;\n}\n\n//#endregion\n","//#region ---- Logo config ----\n\nexport interface AXPLogoConfig {\n width?: number;\n height?: number;\n}\n\n//#endregion\n","//#region ---- Contracts barrel ----\n\nexport * from './shims.types';\nexport * from './mock-data.shims';\nexport * from './core.types';\nexport * from './data.types';\nexport * from './property.types';\nexport * from './filter.types';\nexport * from './entity-model.types';\nexport * from './entity-definition.types';\nexport * from './entity-action.helpers';\nexport * from './entity-datasource.keys';\nexport * from './regional-settings.keys';\nexport * from './widget-node.types';\nexport * from './widgets-list';\nexport * from './widgets-catalog';\n\nexport * from './address.types';\nexport * from './workflow-definition.types';\nexport * from './activity.types';\nexport * from './preview-widget-field.command.key';\nexport * from './workflow-instance.types';\nexport * from './file-storage.types';\nexport * from './metadata.types';\nexport * from './ai-output.types';\nexport * from './spreadsheet.types';\nexport * from './status.types';\nexport * from './status-definition.types';\nexport * from './statuses.types';\nexport * from './multi-source.types';\nexport * from './logo.types';\n\n//#endregion\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"acorex-platform-contracts.mjs","sources":["../../../../libs/platform/contracts/src/lib/address.types.ts","../../../../libs/platform/contracts/src/lib/workflow-definition.types.ts","../../../../libs/platform/contracts/src/lib/activity.types.ts","../../../../libs/platform/contracts/src/lib/preview-widget-field.command.key.ts","../../../../libs/platform/contracts/src/lib/workflow-instance.types.ts","../../../../libs/platform/contracts/src/lib/file-storage.types.ts","../../../../libs/platform/contracts/src/lib/index.ts","../../../../libs/platform/contracts/src/acorex-platform-contracts.ts"],"sourcesContent":["//#region ---- Address Data Types ----\n\n/**\n * Address mode type - determines the display mode of the address widget\n * - simple: single text input for full address (one line)\n * - popup: readonly summary + button to edit in popup dialog\n * - expandable: expandable panel — collapsed shows full address, expanded shows inline form\n */\nexport type AXPAddressMode = 'simple' | 'popup' | 'expandable';\n\n/**\n * Address label option\n */\nexport interface AXPAddressLabel {\n id: string;\n name: string;\n}\n\n/**\n * Address data structure\n */\nexport interface AXPAddressData {\n street1: string;\n street2?: string;\n postalCode?: string;\n coordinates?: string; // lat,lng format\n full: string; // formatted full address\n label?: string; // if hasLabel enabled\n // Exposed fields from lookup widgets\n country?: { id?: string; title?: string };\n state?: { id?: string; title?: string };\n city?: { id?: string; title?: string };\n}\n\n//#endregion\n","import { type AXPProperty, AXPEntityOp, AXPMetaData, AXPOptionsData, type AXPMultiLanguageString } from '@acorex/platform/core';\n\n//#region ---- Workflow definition (graph + metadata) ----\n\nexport interface AXPWorkflowDefinition {\n schemaVersion: 'acorex-platform-workflow/v1';\n\n name: string;\n title?: AXPMultiLanguageString | null;\n description?: AXPMultiLanguageString | null;\n\n variables?: AXPProperty[];\n inputs?: AXPProperty[];\n outputs?: AXPWorkflowOutputProperty[];\n\n graph: AXPWorkflowGraph;\n\n customProperties?: Record<string, any>;\n\n /** engine specific (Elsa, ...) */\n extensions?: AXPWorkflowExtensions;\n\n /**\n * Workflow bindings configuration.\n * Defines which entities and events should trigger this workflow.\n */\n bindings?: AXPWorkflowBinding[];\n}\n\n//#endregion\n\n//#region ---- Graph & activity instance ----\n\nexport interface AXPWorkflowGraph {\n startActivityId: string;\n activities: AXPWorkflowActivityInstance[];\n connections: AXPConnection[];\n\n /** purely designer */\n designer?: {\n nodes?: Record<string, { x: number; y: number; nodeId?: string; width?: number; height?: number }>;\n edges?: Array<{ from: string; to: string; vertices?: Array<{ x: number; y: number }> }>;\n /**\n * When true, the Activities page has applied its initial auto-arrange (or the graph already had\n * persisted node positions). Prevents re-running automatic layout on subsequent visits.\n */\n layoutArranged?: boolean;\n };\n}\n\nexport interface AXPWorkflowActivityInstance {\n id: string;\n nodeId?: string;\n\n /**\n * Activity name - references AXPActivityDefinition.name\n * Used to lookup activity definition for metadata (executionMode, title, etc.)\n */\n name: string;\n\n /**\n * Input values for this activity instance.\n * Key-value pairs where keys match {@link AXPProperty.name} from AXPActivityDefinition.inputs\n * Example: { \"message\": \"Hello\", \"duration\": 5000 }\n */\n inputs?: AXPOptionsData;\n\n title?: string;\n\n /**\n * Output mapping: process variable name → path in this activity's output (BPMN-style: activity → variable).\n * When this activity completes, each entry sets variables[variableName] = output[outputPath].\n * Example: { leaveRequestId: 'id' } → variables.leaveRequestId = activityOutput.id\n */\n outputToVariables?: AXPOptionsData;\n\n metadata?: AXPMetaData;\n\n /** engine-specific override */\n extensions?: Record<string, any>;\n}\n\nexport interface AXPConnection {\n source: { activtyName: string; port?: string | null };\n target: { activtyName: string; port?: string | null };\n vertices?: Array<{ x: number; y: number }>;\n}\n\n//#endregion\n\n//#region ---- Workflow I/O (built on AXPProperty) ----\n\n/**\n * Workflow output: same as {@link AXPProperty} with optional source path and engine metadata.\n */\nexport interface AXPWorkflowOutputProperty extends AXPProperty {\n /**\n * Optional: where this output comes from in your context/memory.\n * Example: \"$.result.orderId\" or \"vars.orderId\"\n */\n path?: string;\n metadata?: Record<string, any>;\n}\n\n//#endregion\n\n//#region ---- Engine extensions & bindings ----\n\n/**\n * Engine-specific extension bag for a workflow.\n * Keep ALL engine-only fields here (Elsa, StepFunctions adapter, etc).\n */\nexport interface AXPWorkflowExtensions {\n /**\n * Elsa-specific extensions (optional).\n */\n elsa?: AXPElsaWorkflowExtensions;\n /**\n * Other engines (future-proof).\n * Example: stepFunctions, logicApps, temporal, ...\n */\n [engine: string]: any;\n}\n\n/**\n * Elsa-only fields (Optional).\n * Put strategy/tool/schema/raw payload here to keep Core model global.\n */\nexport interface AXPElsaWorkflowExtensions {\n /**\n * Elsa schema URL (if you want to round-trip exact docs).\n * Example: \"https://elsaworkflows.io/schemas/workflow-definition/v3.0.0/schema.json\"\n */\n schema?: string;\n\n toolVersion?: string;\n materializerName?: string;\n\n /**\n * Elsa strategy/options (engine-level concerns).\n */\n options?: {\n activationStrategyType?: string | null;\n incidentStrategyType?: string | null;\n commitStrategyName?: string | null;\n autoUpdateConsumingWorkflows?: boolean;\n usableAsActivity?: boolean | null;\n activityCategory?: string | null;\n };\n\n /**\n * If you want lossless Elsa round-trip, keep the raw Elsa definition here.\n */\n rawDefinition?: any;\n}\n\n/**\n * Workflow binding configuration.\n * Defines which entities and events should trigger a workflow.\n */\nexport interface AXPWorkflowBinding {\n /**\n * Entity types this workflow applies to (e.g., ['ContentManagement.Promotion', 'ContentManagement.Article'])\n * Empty array means applies to all entities with workflow-run plugin enabled.\n */\n entityTypes: string[];\n\n /**\n * Event types that trigger this workflow (e.g., ['create', 'update'])\n * Uses AXPEntityOp directly (create, update, delete, etc.)\n */\n eventTypes: AXPEntityOp[];\n\n /**\n * Whether this binding is enabled\n */\n enabled: boolean;\n\n /**\n * Optional conditions for when to trigger (future enhancement)\n */\n conditions?: any;\n}\n\n//#endregion\n","import type { AXPProperty } from '@acorex/platform/core';\nimport { AXPCategoryEntity, AXPMultiLanguageString } from '@acorex/platform/core';\nimport type { AXPWorkflowOutputProperty } from './workflow-definition.types';\n\n// ============================================\n// SIMPLIFIED ACTIVITY SYSTEM\n// ============================================\n\n/**\n * Type of task for inbox handling.\n * - 'human-task': Requires inbox - needs human interaction\n * - 'ui-activity': UI-only activity (no inbox) - immediate execution\n * - 'system-activity': System/backend activity (no inbox) - automated execution\n */\nexport type AXPTaskType = 'human-task' | 'ui-activity' | 'system-activity';\n\n/**\n * How the workflow engine should offer \"continue to next step?\" before an inline frontend activity.\n * Declared on {@link AXPActivityDefinition} and copied onto {@link AXPWorkflowTask} at runtime.\n */\nexport type AXPWorkflowContinuationBeforeInteractive =\n | 'default'\n /** Skip when opened from a task-board human-task primary action (e.g. start-fill, review). */\n | 'skip-when-chained-from-human-task'\n /** Skip for the natural assignee; initiator / reassign users still get the prompt (workflow-management). */\n | 'skip-for-assignee';\n\n/** Optional continuation UX metadata for an activity definition. */\nexport interface AXPWorkflowContinuationMetadata {\n beforeInteractive?: AXPWorkflowContinuationBeforeInteractive;\n}\n\n/**\n * Activity Category - Extends AXPCategoryEntity for consistency and performance\n *\n * Inherited properties from AXPCategoryEntity:\n * - id: string - Unique identifier\n * - title: string - Display name\n * - description?: string - Category description\n * - parentId?: string - Parent category ID\n * - childrenCount: number - Direct child categories count (enables lazy loading)\n * - itemsCount?: number - Direct activities count\n * - totalChildrenCount?: number - Total nested categories (optional, for analytics)\n * - totalItemsCount?: number - Total activities in tree (optional, for analytics)\n */\nexport interface AXPActivityCategory extends AXPCategoryEntity {\n // No additional properties needed - all inherited from AXPCategoryEntity\n // Use: childrenCount instead of hasChild\n // Use: itemsCount instead of hasActivity\n}\n\n/**\n * Lightweight category snapshot embedded in activity-definition records.\n */\nexport interface AXPActivityDefinitionCategoryRef {\n id: string;\n name: string;\n title: AXPMultiLanguageString;\n}\n\n/**\n * Activity Definition - Metadata for UI and tooling.\n * Contains all metadata needed for displaying activities in toolbox and designer.\n * The `name` property is used as the command key for execution.\n */\nexport interface AXPActivityDefinition {\n /**\n * Activity name - used as command key for execution.\n * This is the unique identifier for the activity.\n */\n name: string;\n\n /**\n * Activity type (e.g., \"workflow-activity:check-permission\").\n */\n type: string;\n\n /**\n * Display name for UI (plain or per-locale map).\n */\n title?: AXPMultiLanguageString;\n\n\n instanceTitle?: string;\n\n /**\n * Description of what the activity does (plain or per-locale map).\n */\n description?: AXPMultiLanguageString;\n\n /**\n * Category for grouping in toolbox.\n */\n category?: AXPActivityDefinitionCategoryRef;\n\n /**\n * Icon name or class.\n */\n icon?: string;\n\n /**\n * Where this activity should be executed.\n * - 'frontend': Execute in browser (UI activities, console, events)\n * - 'backend': Execute in backend (business logic, API calls)\n * - 'both': Execute in both frontend and backend (hybrid activities)\n *\n * Default: 'frontend'\n */\n executionMode?: 'frontend' | 'backend' | 'both';\n\n /**\n * Type of task for inbox handling.\n * - 'human-task': Requires inbox - needs human interaction\n * - 'ui-activity': UI-only activity (no inbox) - immediate execution\n * - 'system-activity': System/backend activity (no inbox) - automated execution\n *\n * Default: 'ui-activity' (for backward compatibility)\n */\n taskType?: AXPTaskType;\n\n /**\n * Input properties (form/schema for activity parameters).\n */\n inputs?: AXPProperty[];\n\n /**\n * Output properties (result shape + optional path/metadata).\n */\n outputs?: AXPWorkflowOutputProperty[];\n\n /**\n * Static outcomes (exit points).\n * Example: ['Done', 'Success', 'Failed']\n */\n outcomes?: string[];\n\n /**\n * Whether this activity is browsable in the toolbox.\n * Default: true\n */\n isBrowsable?: boolean;\n\n /**\n * Whether this activity is a container (can have children).\n * Default: false\n */\n isContainer?: boolean;\n\n /**\n * Continuation prompt behavior when this activity runs inline in the workflow manager.\n */\n workflowContinuation?: AXPWorkflowContinuationMetadata;\n}\n\n/**\n * Query result shape for activity-definition catalog endpoints.\n */\nexport interface AXPActivityDefinitionQueryResult {\n total: number;\n items: AXPActivityDefinition[];\n}\n\n// Note:\n// Previous versions defined dedicated activity result/command types here\n// (AXPActivityResult / AXPActivity) that wrapped output and outcome.\n// Activities are now modeled directly as AXPCommand with outcome stored in\n// AXPExecuteCommandResult.metadata.outcome.\n","/** Registration key for {@link AXPPreviewWidgetFieldCommand}; lives in contracts so consumers can reference it without importing the command implementation. */\nexport const AXP_PREVIEW_WIDGET_FIELD_COMMAND_KEY = 'Widget:Preview';\n","// ============================================\n// WORKFLOW INSTANCE v3.0.0 TYPES\n// Based on Elsa Workflow Instance schema: https://elsaworkflows.io/schemas/workflow-instance/v3.0.0/schema.json\n// Compatible with Elsa backend while using ACoreX naming conventions\n// ============================================\n\n/**\n * Workflow status.\n */\nexport type AXPWorkflowStatus = 'Running' | 'Finished';\n\n/**\n * Workflow sub-status.\n */\nexport type AXPWorkflowSubStatus = 'Pending' | 'Executing' | 'Suspended' | 'Finished' | 'Cancelled' | 'Faulted';\n\n/**\n * Activity status.\n */\nexport type AXPActivityStatus = 'Running' | 'Completed' | 'Canceled' | 'Faulted';\n\n/**\n * Exception state.\n */\nexport interface AXPExceptionState {\n /**\n * Exception type name.\n */\n type: string;\n\n /**\n * Exception message.\n */\n message: string;\n\n /**\n * Stack trace (nullable).\n */\n stackTrace?: string | null;\n\n /**\n * Inner exception (nullable).\n */\n innerException?: AXPExceptionState | null;\n}\n\n/**\n * Activity incident.\n */\nexport interface AXPActivityIncident {\n /**\n * Activity ID that caused the incident.\n */\n activityId: string;\n\n /**\n * Activity node ID.\n */\n activityNodeId: string;\n\n /**\n * Activity type.\n */\n activityType: string;\n\n /**\n * Incident message.\n */\n message: string;\n\n /**\n * Exception (nullable).\n */\n exception?: AXPExceptionState | null;\n\n /**\n * Timestamp (ISO date-time).\n */\n timestamp: string;\n}\n\n/**\n * Workflow fault state.\n */\nexport interface AXPWorkflowFaultState {\n /**\n * Exception (nullable).\n */\n exception?: AXPExceptionState | null;\n\n /**\n * Fault message.\n */\n message: string;\n\n /**\n * Faulted activity ID (nullable).\n */\n faultedActivityId?: string | null;\n}\n\n/**\n * Bookmark.\n */\nexport interface AXPBookmark {\n /**\n * Bookmark ID.\n */\n id: string;\n\n /**\n * Bookmark name.\n */\n name: string;\n\n /**\n * Bookmark hash.\n */\n hash: string;\n\n /**\n * Bookmark payload (nullable).\n */\n payload?: any | null;\n\n /**\n * Activity node ID.\n */\n activityNodeId: string;\n\n /**\n * Activity instance ID.\n */\n activityInstanceId: string;\n\n /**\n * Auto burn flag.\n */\n autoBurn?: boolean;\n\n /**\n * Callback method name (nullable).\n */\n callbackMethodName?: string | null;\n\n /**\n * Metadata (nullable).\n */\n metadata?: Record<string, string> | null;\n}\n\n/**\n * Completion callback state.\n */\nexport interface AXPCompletionCallbackState {\n /**\n * Owner activity instance ID.\n */\n ownerInstanceId: string;\n\n /**\n * Child activity node ID.\n */\n childNodeId: string;\n\n /**\n * Method name (nullable).\n */\n methodName?: string | null;\n}\n\n/**\n * Variable (for activity context).\n */\nexport interface AXPActivityVariable {\n /**\n * Variable ID.\n */\n id: string;\n\n /**\n * Variable name.\n */\n name: string;\n\n /**\n * Type name.\n */\n typeName: string;\n\n /**\n * Is array flag.\n */\n isArray?: boolean;\n\n /**\n * Variable value (nullable).\n */\n value?: any | null;\n\n /**\n * Storage driver type name (nullable).\n */\n storageDriverTypeName?: string | null;\n}\n\n/**\n * Activity execution context state.\n */\nexport interface AXPActivityExecutionContextState {\n /**\n * Context ID (activity instance ID).\n */\n id: string;\n\n /**\n * Parent context ID (nullable).\n */\n parentContextId?: string | null;\n\n /**\n * Scheduled activity node ID.\n */\n scheduledActivityNodeId: string;\n\n /**\n * Owner activity node ID (nullable).\n */\n ownerActivityNodeId?: string | null;\n\n /**\n * Properties bag.\n */\n properties: Record<string, any>;\n\n /**\n * Activity state (evaluated properties) (nullable).\n */\n activityState?: Record<string, any> | null;\n\n /**\n * Dynamic variables.\n */\n dynamicVariables: AXPActivityVariable[];\n\n /**\n * Activity status.\n */\n status: AXPActivityStatus;\n\n /**\n * Is executing flag.\n */\n isExecuting: boolean;\n\n /**\n * Fault count.\n */\n faultCount: number;\n\n /**\n * Started at timestamp (ISO date-time).\n */\n startedAt: string;\n\n /**\n * Completed at timestamp (ISO date-time, nullable).\n */\n completedAt?: string | null;\n\n /**\n * Tag (nullable).\n */\n tag?: any | null;\n}\n\n/**\n * Workflow state (internal execution state).\n */\nexport interface AXPWorkflowState {\n /**\n * State ID.\n */\n id: string;\n\n /**\n * Workflow definition ID.\n */\n definitionId: string;\n\n /**\n * Workflow definition version.\n */\n definitionVersion: number;\n\n /**\n * Correlation ID (nullable).\n */\n correlationId?: string | null;\n\n /**\n * Workflow status.\n */\n status: AXPWorkflowStatus;\n\n /**\n * Workflow sub-status.\n */\n subStatus: AXPWorkflowSubStatus;\n\n /**\n * Bookmarks.\n */\n bookmarks: AXPBookmark[];\n\n /**\n * Incidents.\n */\n incidents: AXPActivityIncident[];\n\n /**\n * Fault (nullable).\n */\n fault?: AXPWorkflowFaultState | null;\n\n /**\n * Completion callbacks.\n */\n completionCallbacks: AXPCompletionCallbackState[];\n\n /**\n * Activity execution contexts.\n */\n activityExecutionContexts: AXPActivityExecutionContextState[];\n\n /**\n * Input data.\n */\n input: Record<string, any>;\n\n /**\n * Output data.\n */\n output: Record<string, any>;\n\n /**\n * Properties bag.\n */\n properties: Record<string, any>;\n\n /**\n * Created at timestamp (ISO date-time).\n */\n createdAt: string;\n\n /**\n * Updated at timestamp (ISO date-time).\n */\n updatedAt: string;\n\n /**\n * Finished at timestamp (ISO date-time, nullable).\n */\n finishedAt?: string | null;\n\n /**\n * Total number of activities/steps in the workflow (for progress display).\n */\n totalSteps?: number;\n}\n\n/**\n * Workflow instance (stored in database).\n * This matches the Elsa Workflow Instance schema for backend compatibility.\n */\nexport interface AXPWorkflowInstance {\n /**\n * Schema reference.\n */\n $schema?: string;\n\n /**\n * Unique instance ID.\n */\n id: string;\n\n /**\n * Workflow definition ID.\n */\n definitionId: string;\n\n /**\n * Workflow definition version ID.\n */\n definitionVersionId: string;\n\n /**\n * Workflow definition version number.\n */\n version: number;\n\n /**\n * Parent workflow instance ID (nullable, for child workflows).\n */\n parentWorkflowInstanceId?: string | null;\n\n /**\n * Workflow state (internal execution state).\n */\n workflowState: AXPWorkflowState;\n\n /**\n * Workflow status.\n */\n status: AXPWorkflowStatus;\n\n /**\n * Workflow sub-status.\n */\n subStatus: AXPWorkflowSubStatus;\n\n /**\n * Correlation ID (nullable).\n */\n correlationId?: string | null;\n\n /**\n * Instance name (nullable).\n */\n name?: string | null;\n\n /**\n * Incident count.\n */\n incidentCount: number;\n\n /**\n * Created at timestamp (ISO date-time).\n */\n createdAt: string;\n\n /**\n * Updated at timestamp (ISO date-time).\n */\n updatedAt: string;\n\n /**\n * Finished at timestamp (ISO date-time, nullable).\n */\n finishedAt?: string | null;\n\n /**\n * Entity reference ID (for linking workflow instances to business entities).\n */\n entityRefId?: string | null;\n\n /**\n * Entity reference type (e.g., 'HumanCapitalManagement.LeaveRequest').\n */\n entityRefType?: string | null;\n}\n","import { AXPMetaData } from '@acorex/platform/core';\n\nexport enum AXPFileStorageStatus {\n Temporary = 'temporary', // File is not yet associated with a parent entity\n Committed = 'committed', // File is fully associated and in use\n PendingDeletion = 'pendingDeletion', // File is marked for deletion but not yet removed\n Archived = 'archived', // File is archived and no longer actively used\n Error = 'error', // File encountered an error during processing\n}\n\n/**\n * Interface representing a file storage request in the Acorex platform.\n */\nexport interface AXPFileStorageCreateRequest {\n /**\n * The file to be stored.\n */\n file: File;\n\n /**\n * The name of the file.\n */\n name?: string;\n\n /**\n * The unique identifier of referenced entity.\n */\n refId: string;\n /**\n * The type of the referenced entity.\n */\n refType: string;\n /**\n * The category of the file. profile-picture, company-logo, policy, document, etc.\n */\n category: string;\n /**\n * The folder path where the file should be stored.\n * If null, the service will resolve the path based on metadata, user, tenant, or default rules.\n */\n path?: string;\n /**\n * Metadata associated with the file.\n */\n metadata?: AXPMetaData;\n\n /**\n * Indicates whether the file is primary or not.\n */\n isPrimary?: boolean;\n\n /**\n * Indicates the status of the file.\n */\n status?: AXPFileStorageStatus;\n}\n\nexport interface AXPFileStorageUpdateRequest {\n /**\n * The unique identifier for the stored file.\n */\n fileId: string;\n /**\n * The folder path where the file should be stored.\n * If null, the service will resolve the path based on metadata, user, tenant, or default rules.\n */\n path?: string;\n /**\n * The name of the file.\n */\n name?: string;\n /**\n * Metadata associated with the file.\n */\n metadata: AXPMetaData;\n\n /**\n * Indicates whether the file is primary or not.\n */\n isPrimary?: boolean;\n}\n\n/**\n * Represents information about a file stored in the AXP file storage system.\n */\nexport interface AXPFileStorageInfo {\n /**\n * The unique identifier for the stored file.\n */\n id?: string;\n /**\n * The unique identifier for the stored file.\n */\n fileId: string;\n\n /**\n * The unique identifier of referenced entity.\n */\n refId: string;\n /**\n * The type of the referenced entity.\n */\n refType: string;\n /**\n * The category of the file. profile-picture, company-logo, policy, document, etc.\n */\n category: string;\n\n /**\n * The URL where the file can be accessed.\n */\n url?: string;\n\n /**\n * The size of the file in bytes.\n */\n size: number;\n\n /**\n * The name of the file.\n */\n name?: string;\n\n /**\n * The MIME type of the file.\n */\n mimeType: string;\n\n /**\n * The date and time when the file was uploaded.\n */\n uploadedAt: Date;\n\n /**\n * Indicates whether the file is public or private.\n */\n isPublic: boolean;\n\n /**\n * Indicates whether the file is primary or not.\n */\n isPrimary?: boolean;\n\n status: AXPFileStorageStatus; // Updated to use enum\n\n binary: File;\n}\n\nexport interface AXPFileManyStorageInfo {\n /**\n * The unique identifier for the stored file.\n */\n id?: string;\n /**\n * The unique identifier for the stored file.\n */\n fileId: string;\n /**\n * The unique identifier of referenced entity.\n */\n refId: string;\n /**\n * The type of the referenced entity.\n */\n refType: string;\n /**\n * The size of the file in bytes.\n */\n size: number;\n\n /**\n * The name of the file.\n */\n name?: string;\n\n /**\n * The URL where the file can be accessed.\n */\n url?: string;\n\n /**\n * Optional title (e.g. for display in file list).\n */\n title?: string;\n\n /**\n * Optional description (e.g. for display in file list).\n */\n description?: string;\n}\n\n/**\n * Represents information about a file stored in the AXP file storage system.\n */\nexport interface AXPFileStorageFindRequest {\n /**\n * The unique identifier of referenced entity.\n */\n refId?: string;\n /**\n * The type of the referenced entity.\n */\n refType?: string;\n /**\n * The category of the file. profile-picture, company-logo, policy, document, etc.\n */\n category?: string;\n /**\n * The MIME type of the file.\n */\n mimeType?: string;\n /**\n * Indicates whether the file is public or private.\n */\n isPublic?: boolean;\n /**\n * Indicates whether the file is primary or not.\n */\n isPrimary?: boolean;\n /**\n * The date and time range when the file was uploaded.\n */\n uploadedAtRange?: { from: Date; to: Date };\n}\n","//#region ---- Contracts barrel ----\n\nexport * from './address.types';\nexport * from './workflow-definition.types';\nexport * from './activity.types';\nexport * from './preview-widget-field.command.key';\nexport * from './workflow-instance.types';\nexport * from './file-storage.types';\nexport * from './metadata.types';\n\n//#endregion\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"AAAA;AAkCA;;ACsJA;;ACtBA;AACA;AACA;AACA;AACA;;ACtKA;AACO,MAAM,oCAAoC,GAAG;;ACDpD;AACA;AACA;AACA;AACA;;ICFY;AAAZ,CAAA,UAAY,oBAAoB,EAAA;AAC9B,IAAA,oBAAA,CAAA,WAAA,CAAA,GAAA,WAAuB;AACvB,IAAA,oBAAA,CAAA,WAAA,CAAA,GAAA,WAAuB;AACvB,IAAA,oBAAA,CAAA,iBAAA,CAAA,GAAA,iBAAmC;AACnC,IAAA,oBAAA,CAAA,UAAA,CAAA,GAAA,UAAqB;AACrB,IAAA,oBAAA,CAAA,OAAA,CAAA,GAAA,OAAe;AACjB,CAAC,EANW,oBAAoB,KAApB,oBAAoB,GAAA,EAAA,CAAA,CAAA;;ACFhC;AAUA;;ACVA;;AAEG;;;;"}