@acorex-platform/framework-client 0.0.10 → 0.0.14

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 (119) hide show
  1. package/fesm2022/acorex-platform-framework-client-auth.mjs +285 -50
  2. package/fesm2022/acorex-platform-framework-client-auth.mjs.map +1 -1
  3. package/fesm2022/{acorex-platform-framework-client-common-common-settings.provider-CbzOYCnI.mjs → acorex-platform-framework-client-common-common-settings.provider-Euotv9l0.mjs} +55 -36
  4. package/fesm2022/acorex-platform-framework-client-common-common-settings.provider-Euotv9l0.mjs.map +1 -0
  5. package/fesm2022/acorex-platform-framework-client-common-settings-dialog.helper-DQNOCRL6.mjs +29 -0
  6. package/fesm2022/acorex-platform-framework-client-common-settings-dialog.helper-DQNOCRL6.mjs.map +1 -0
  7. package/fesm2022/acorex-platform-framework-client-common.mjs +1576 -408
  8. package/fesm2022/acorex-platform-framework-client-common.mjs.map +1 -1
  9. package/fesm2022/acorex-platform-framework-client-core.mjs +561 -25
  10. package/fesm2022/acorex-platform-framework-client-core.mjs.map +1 -1
  11. package/fesm2022/acorex-platform-framework-client-layout-builder.mjs +154 -42
  12. package/fesm2022/acorex-platform-framework-client-layout-builder.mjs.map +1 -1
  13. package/fesm2022/{acorex-platform-framework-client-layout-components-binding-expression-editor-popup.component-CWVU3wXL.mjs → acorex-platform-framework-client-layout-components-binding-expression-editor-popup.component-CjnQ9hAJ.mjs} +7 -7
  14. package/fesm2022/acorex-platform-framework-client-layout-components-binding-expression-editor-popup.component-CjnQ9hAJ.mjs.map +1 -0
  15. package/fesm2022/acorex-platform-framework-client-layout-components-file-provider-picker.popup.component-fFen8w8M.mjs +77 -0
  16. package/fesm2022/acorex-platform-framework-client-layout-components-file-provider-picker.popup.component-fFen8w8M.mjs.map +1 -0
  17. package/fesm2022/acorex-platform-framework-client-layout-components.mjs +2378 -1274
  18. package/fesm2022/acorex-platform-framework-client-layout-components.mjs.map +1 -1
  19. package/fesm2022/acorex-platform-framework-client-layout-designer.mjs +92 -84
  20. package/fesm2022/acorex-platform-framework-client-layout-designer.mjs.map +1 -1
  21. package/fesm2022/{acorex-platform-framework-client-layout-entity-attachments-page.component-CxBxxpmA.mjs → acorex-platform-framework-client-layout-entity-attachments-page.component-BzUM-JMC.mjs} +3 -3
  22. package/fesm2022/{acorex-platform-framework-client-layout-entity-attachments-page.component-CxBxxpmA.mjs.map → acorex-platform-framework-client-layout-entity-attachments-page.component-BzUM-JMC.mjs.map} +1 -1
  23. package/fesm2022/{acorex-platform-framework-client-layout-entity-file-list-popup.component-l0JAHKIH.mjs → acorex-platform-framework-client-layout-entity-file-list-popup.component-Ci_CTFtq.mjs} +6 -6
  24. package/fesm2022/acorex-platform-framework-client-layout-entity-file-list-popup.component-Ci_CTFtq.mjs.map +1 -0
  25. package/fesm2022/acorex-platform-framework-client-layout-entity-gallery-page.component-DmiB__JR.mjs +256 -0
  26. package/fesm2022/acorex-platform-framework-client-layout-entity-gallery-page.component-DmiB__JR.mjs.map +1 -0
  27. package/fesm2022/acorex-platform-framework-client-layout-entity.mjs +17599 -17114
  28. package/fesm2022/acorex-platform-framework-client-layout-entity.mjs.map +1 -1
  29. package/fesm2022/acorex-platform-framework-client-layout-views.mjs +120 -70
  30. package/fesm2022/acorex-platform-framework-client-layout-views.mjs.map +1 -1
  31. package/fesm2022/acorex-platform-framework-client-layout-widget-core.mjs +302 -263
  32. package/fesm2022/acorex-platform-framework-client-layout-widget-core.mjs.map +1 -1
  33. package/fesm2022/{acorex-platform-framework-client-layout-widgets-button-widget-designer.component-CpkWwygb.mjs → acorex-platform-framework-client-layout-widgets-button-widget-designer.component-CIwpAXbL.mjs} +2 -2
  34. package/fesm2022/acorex-platform-framework-client-layout-widgets-button-widget-designer.component-CIwpAXbL.mjs.map +1 -0
  35. package/fesm2022/{acorex-platform-framework-client-layout-widgets-image-preview.popup-C_EPAvCU.mjs → acorex-platform-framework-client-layout-widgets-image-preview.popup-CazpERbX.mjs} +3 -3
  36. package/fesm2022/acorex-platform-framework-client-layout-widgets-image-preview.popup-CazpERbX.mjs.map +1 -0
  37. package/fesm2022/{acorex-platform-framework-client-layout-widgets-page-widget-designer.component-CmtTq2Mt.mjs → acorex-platform-framework-client-layout-widgets-page-widget-designer.component-DKkJi40s.mjs} +5 -5
  38. package/fesm2022/{acorex-platform-framework-client-layout-widgets-page-widget-designer.component-CmtTq2Mt.mjs.map → acorex-platform-framework-client-layout-widgets-page-widget-designer.component-DKkJi40s.mjs.map} +1 -1
  39. package/fesm2022/{acorex-platform-framework-client-layout-widgets-repeater-widget-column.component-DSx0E3NV.mjs → acorex-platform-framework-client-layout-widgets-repeater-widget-column.component-DtYZfA79.mjs} +3 -3
  40. package/fesm2022/{acorex-platform-framework-client-layout-widgets-repeater-widget-column.component-DSx0E3NV.mjs.map → acorex-platform-framework-client-layout-widgets-repeater-widget-column.component-DtYZfA79.mjs.map} +1 -1
  41. package/fesm2022/{acorex-platform-framework-client-layout-widgets-tabular-data-edit-popup.component-DdfcGV1C.mjs → acorex-platform-framework-client-layout-widgets-tabular-data-edit-popup.component-nMUtxAyy.mjs} +10 -10
  42. package/fesm2022/acorex-platform-framework-client-layout-widgets-tabular-data-edit-popup.component-nMUtxAyy.mjs.map +1 -0
  43. package/fesm2022/{acorex-platform-framework-client-layout-widgets-tabular-data-view-popup.component-CntopmDS.mjs → acorex-platform-framework-client-layout-widgets-tabular-data-view-popup.component-DvUSZ4hJ.mjs} +5 -5
  44. package/fesm2022/acorex-platform-framework-client-layout-widgets-tabular-data-view-popup.component-DvUSZ4hJ.mjs.map +1 -0
  45. package/fesm2022/acorex-platform-framework-client-layout-widgets-text-block-widget-designer.component-BihIfkZW.mjs +61 -0
  46. package/fesm2022/acorex-platform-framework-client-layout-widgets-text-block-widget-designer.component-BihIfkZW.mjs.map +1 -0
  47. package/fesm2022/acorex-platform-framework-client-layout-widgets.mjs +2218 -1504
  48. package/fesm2022/acorex-platform-framework-client-layout-widgets.mjs.map +1 -1
  49. package/fesm2022/acorex-platform-framework-client-realtime.mjs +227 -0
  50. package/fesm2022/acorex-platform-framework-client-realtime.mjs.map +1 -0
  51. package/fesm2022/acorex-platform-framework-client-runtime.mjs +201 -13
  52. package/fesm2022/acorex-platform-framework-client-runtime.mjs.map +1 -1
  53. package/fesm2022/acorex-platform-framework-client-themes-default-entity-master-create-view.component-QIFX11dh.mjs +158 -0
  54. package/fesm2022/acorex-platform-framework-client-themes-default-entity-master-create-view.component-QIFX11dh.mjs.map +1 -0
  55. package/fesm2022/acorex-platform-framework-client-themes-default-entity-master-modify-view.component-BBdellyL.mjs +119 -0
  56. package/fesm2022/acorex-platform-framework-client-themes-default-entity-master-modify-view.component-BBdellyL.mjs.map +1 -0
  57. package/fesm2022/{acorex-platform-framework-client-themes-default-entity-master-single-view.component-D1a7UI71.mjs → acorex-platform-framework-client-themes-default-entity-master-single-view.component-CIf1VWNW.mjs} +5 -6
  58. package/fesm2022/acorex-platform-framework-client-themes-default-entity-master-single-view.component-CIf1VWNW.mjs.map +1 -0
  59. package/fesm2022/acorex-platform-framework-client-themes-default-error-401.component-C_czT_JC.mjs +48 -0
  60. package/fesm2022/acorex-platform-framework-client-themes-default-error-401.component-C_czT_JC.mjs.map +1 -0
  61. package/fesm2022/acorex-platform-framework-client-themes-default-error-404.component-C2Wu0YtF.mjs +42 -0
  62. package/fesm2022/acorex-platform-framework-client-themes-default-error-404.component-C2Wu0YtF.mjs.map +1 -0
  63. package/fesm2022/acorex-platform-framework-client-themes-default-error-offline.component-DRz-kVsT.mjs +19 -0
  64. package/fesm2022/acorex-platform-framework-client-themes-default-error-offline.component-DRz-kVsT.mjs.map +1 -0
  65. package/fesm2022/acorex-platform-framework-client-themes-default.mjs +123 -96
  66. package/fesm2022/acorex-platform-framework-client-themes-default.mjs.map +1 -1
  67. package/fesm2022/{acorex-platform-framework-client-themes-shared-icon-chooser-column.component-CXSGiTCK.mjs → acorex-platform-framework-client-themes-shared-icon-chooser-column.component-Ci_oH7NE.mjs} +3 -3
  68. package/fesm2022/acorex-platform-framework-client-themes-shared-icon-chooser-column.component-Ci_oH7NE.mjs.map +1 -0
  69. package/fesm2022/{acorex-platform-framework-client-themes-shared-icon-chooser-view.component-BY5clQ1J.mjs → acorex-platform-framework-client-themes-shared-icon-chooser-view.component-Lb1G2Xz7.mjs} +3 -3
  70. package/fesm2022/acorex-platform-framework-client-themes-shared-icon-chooser-view.component-Lb1G2Xz7.mjs.map +1 -0
  71. package/fesm2022/{acorex-platform-framework-client-themes-shared-settings.provider-DEL2YOTP.mjs → acorex-platform-framework-client-themes-shared-settings.provider-D2XPkc71.mjs} +11 -2
  72. package/fesm2022/acorex-platform-framework-client-themes-shared-settings.provider-D2XPkc71.mjs.map +1 -0
  73. package/fesm2022/{acorex-platform-framework-client-themes-shared-theme-color-chooser-column.component-BXl8u4Yp.mjs → acorex-platform-framework-client-themes-shared-theme-color-chooser-column.component-D4ubvFYf.mjs} +7 -7
  74. package/fesm2022/acorex-platform-framework-client-themes-shared-theme-color-chooser-column.component-D4ubvFYf.mjs.map +1 -0
  75. package/fesm2022/{acorex-platform-framework-client-themes-shared-theme-color-chooser-view.component-i2sOOkVj.mjs → acorex-platform-framework-client-themes-shared-theme-color-chooser-view.component-Br8j_BF_.mjs} +7 -7
  76. package/fesm2022/acorex-platform-framework-client-themes-shared-theme-color-chooser-view.component-Br8j_BF_.mjs.map +1 -0
  77. package/fesm2022/acorex-platform-framework-client-themes-shared.mjs +124 -112
  78. package/fesm2022/acorex-platform-framework-client-themes-shared.mjs.map +1 -1
  79. package/fesm2022/acorex-platform-framework-client-workflow.mjs +26 -483
  80. package/fesm2022/acorex-platform-framework-client-workflow.mjs.map +1 -1
  81. package/package.json +14 -9
  82. package/types/acorex-platform-framework-client-auth.d.ts +76 -5
  83. package/types/acorex-platform-framework-client-common.d.ts +499 -129
  84. package/types/acorex-platform-framework-client-core.d.ts +291 -10
  85. package/types/acorex-platform-framework-client-layout-builder.d.ts +81 -31
  86. package/types/acorex-platform-framework-client-layout-components.d.ts +295 -41
  87. package/types/acorex-platform-framework-client-layout-entity.d.ts +1895 -1743
  88. package/types/acorex-platform-framework-client-layout-views.d.ts +8 -18
  89. package/types/acorex-platform-framework-client-layout-widget-core.d.ts +20 -35
  90. package/types/acorex-platform-framework-client-layout-widgets.d.ts +167 -33
  91. package/types/acorex-platform-framework-client-realtime.d.ts +100 -0
  92. package/types/acorex-platform-framework-client-runtime.d.ts +60 -2
  93. package/types/acorex-platform-framework-client-themes-default.d.ts +4 -48
  94. package/types/acorex-platform-framework-client-workflow.d.ts +16 -127
  95. package/fesm2022/acorex-platform-framework-client-common-common-settings.provider-CbzOYCnI.mjs.map +0 -1
  96. package/fesm2022/acorex-platform-framework-client-layout-components-binding-expression-editor-popup.component-CWVU3wXL.mjs.map +0 -1
  97. package/fesm2022/acorex-platform-framework-client-layout-entity-file-list-popup.component-l0JAHKIH.mjs.map +0 -1
  98. package/fesm2022/acorex-platform-framework-client-layout-widgets-button-widget-designer.component-CpkWwygb.mjs.map +0 -1
  99. package/fesm2022/acorex-platform-framework-client-layout-widgets-image-preview.popup-C_EPAvCU.mjs.map +0 -1
  100. package/fesm2022/acorex-platform-framework-client-layout-widgets-tabular-data-edit-popup.component-DdfcGV1C.mjs.map +0 -1
  101. package/fesm2022/acorex-platform-framework-client-layout-widgets-tabular-data-view-popup.component-CntopmDS.mjs.map +0 -1
  102. package/fesm2022/acorex-platform-framework-client-layout-widgets-text-block-widget-designer.component-B5kSWxGk.mjs +0 -34
  103. package/fesm2022/acorex-platform-framework-client-layout-widgets-text-block-widget-designer.component-B5kSWxGk.mjs.map +0 -1
  104. package/fesm2022/acorex-platform-framework-client-themes-default-entity-master-create-view.component-DnTHwsDJ.mjs +0 -160
  105. package/fesm2022/acorex-platform-framework-client-themes-default-entity-master-create-view.component-DnTHwsDJ.mjs.map +0 -1
  106. package/fesm2022/acorex-platform-framework-client-themes-default-entity-master-modify-view.component-BpR9g6QS.mjs +0 -121
  107. package/fesm2022/acorex-platform-framework-client-themes-default-entity-master-modify-view.component-BpR9g6QS.mjs.map +0 -1
  108. package/fesm2022/acorex-platform-framework-client-themes-default-entity-master-single-view.component-D1a7UI71.mjs.map +0 -1
  109. package/fesm2022/acorex-platform-framework-client-themes-default-error-401.component-D--_MIar.mjs +0 -48
  110. package/fesm2022/acorex-platform-framework-client-themes-default-error-401.component-D--_MIar.mjs.map +0 -1
  111. package/fesm2022/acorex-platform-framework-client-themes-default-error-404.component-Byyqk8pH.mjs +0 -42
  112. package/fesm2022/acorex-platform-framework-client-themes-default-error-404.component-Byyqk8pH.mjs.map +0 -1
  113. package/fesm2022/acorex-platform-framework-client-themes-default-error-offline.component-DR6G8gPC.mjs +0 -19
  114. package/fesm2022/acorex-platform-framework-client-themes-default-error-offline.component-DR6G8gPC.mjs.map +0 -1
  115. package/fesm2022/acorex-platform-framework-client-themes-shared-icon-chooser-column.component-CXSGiTCK.mjs.map +0 -1
  116. package/fesm2022/acorex-platform-framework-client-themes-shared-icon-chooser-view.component-BY5clQ1J.mjs.map +0 -1
  117. package/fesm2022/acorex-platform-framework-client-themes-shared-settings.provider-DEL2YOTP.mjs.map +0 -1
  118. package/fesm2022/acorex-platform-framework-client-themes-shared-theme-color-chooser-column.component-BXl8u4Yp.mjs.map +0 -1
  119. package/fesm2022/acorex-platform-framework-client-themes-shared-theme-color-chooser-view.component-i2sOOkVj.mjs.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"acorex-platform-framework-client-runtime.mjs","sources":["../../../../../libs/framework/client/runtime/src/lib/commands/command-events.service.ts","../../../../../libs/framework/client/runtime/src/lib/commands/command.middleware.ts","../../../../../libs/framework/client/runtime/src/lib/commands/command.registry.ts","../../../../../libs/framework/client/runtime/src/lib/commands/command.extension.token.ts","../../../../../libs/framework/client/runtime/src/lib/commands/command.executor.ts","../../../../../libs/framework/client/runtime/src/lib/commands/command.service.ts","../../../../../libs/framework/client/runtime/src/lib/commands/provide-command-middleware.ts","../../../../../libs/framework/client/runtime/src/lib/commands/provide-command-setups.ts","../../../../../libs/framework/client/runtime/src/lib/queries/query.registry.ts","../../../../../libs/framework/client/runtime/src/lib/queries/query.extension.token.ts","../../../../../libs/framework/client/runtime/src/lib/queries/provide-query-middleware.ts","../../../../../libs/framework/client/runtime/src/lib/queries/provide-query-setups.ts","../../../../../libs/framework/client/runtime/src/lib/queries/query.middleware.ts","../../../../../libs/framework/client/runtime/src/lib/queries/query.executor.ts","../../../../../libs/framework/client/runtime/src/lib/queries/query.service.ts","../../../../../libs/framework/client/runtime/src/lib/views/view.middleware.ts","../../../../../libs/framework/client/runtime/src/lib/views/view.registry.ts","../../../../../libs/framework/client/runtime/src/lib/views/view.extension.token.ts","../../../../../libs/framework/client/runtime/src/lib/views/view.executor.ts","../../../../../libs/framework/client/runtime/src/lib/views/view.service.ts","../../../../../libs/framework/client/runtime/src/lib/views/provide-view-setups.ts","../../../../../libs/framework/client/runtime/src/lib/policy/policy.middleware.ts","../../../../../libs/framework/client/runtime/src/lib/policy/policy.interface.ts","../../../../../libs/framework/client/runtime/src/lib/policy/policy.extension.token.ts","../../../../../libs/framework/client/runtime/src/lib/policy/policy.registry.ts","../../../../../libs/framework/client/runtime/src/lib/policy/policy.service.ts","../../../../../libs/framework/client/runtime/src/lib/policy/policy.directive.ts","../../../../../libs/framework/client/runtime/src/lib/policy/policy-middleware-provider.ts","../../../../../libs/framework/client/runtime/src/lib/views/provide-view-middleware.ts","../../../../../libs/framework/client/runtime/src/lib/runtime.module.ts","../../../../../libs/framework/client/runtime/src/index.ts","../../../../../libs/framework/client/runtime/src/acorex-platform-framework-client-runtime.ts"],"sourcesContent":["//#region ---- Imports ----\n\nimport { inject, Injectable } from '@angular/core';\nimport { AXPExecuteCommandResult } from '@acorex-platform/framework-shared/core';\nimport { AXPBroadcastEventService } from '@acorex-platform/framework-client/core';\nimport { AXPDistributedEventListenerService } from '@acorex-platform/framework-client/core';\n\n//#endregion\n\n//#region ---- Types ----\n\nexport type AXPCommandExecutionStage = 'before' | 'after';\n\nexport interface AXPCommandExecutionEvent<TInput = unknown, TResult = unknown> {\n stage: AXPCommandExecutionStage;\n key: string;\n input: TInput;\n success?: boolean;\n result?: AXPExecuteCommandResult<TResult> | null;\n error?: unknown;\n}\n\ntype CommandExecutionHandler<TInput, TResult> = (event: AXPCommandExecutionEvent<TInput, TResult>) => void;\n\n//#endregion\n\nconst COMMAND_EXECUTION_EVENT_KEY = '@commands:execution';\n\n@Injectable({ providedIn: 'root' })\nexport class AXPCommandEventsService {\n //#region ---- Services & Dependencies ----\n\n private readonly broadcast = inject(AXPBroadcastEventService);\n private readonly distributedEvents = inject(AXPDistributedEventListenerService, { optional: true });\n\n //#endregion\n\n //#region ---- Public API ----\n\n listen<TInput = unknown, TResult = unknown>(\n handler: CommandExecutionHandler<TInput, TResult>,\n ): () => void {\n const subscription = this.broadcast\n .listen<AXPCommandExecutionEvent<TInput, TResult>>(COMMAND_EXECUTION_EVENT_KEY)\n .subscribe(({ data }) => handler(data));\n\n return () => subscription.unsubscribe();\n }\n\n async emit<TInput = unknown, TResult = unknown>(\n event: AXPCommandExecutionEvent<TInput, TResult>,\n ): Promise<void> {\n const safePayload = this.serializeForBroadcast(event);\n this.broadcast.publish(COMMAND_EXECUTION_EVENT_KEY, safePayload);\n await this.distributedEvents?.dispatch(COMMAND_EXECUTION_EVENT_KEY, safePayload);\n }\n\n //#endregion\n\n //#region ---- Broadcast payload (structured-clone safe) ----\n\n /**\n * Removes functions, symbols, and cycles so {@link AXPBroadcastEventService.publish}\n * can use `BroadcastChannel.postMessage` without DataCloneError (e.g. command input with `dialogRef`).\n */\n private serializeForBroadcast<TInput, TResult>(\n event: AXPCommandExecutionEvent<TInput, TResult>,\n ): AXPCommandExecutionEvent {\n return {\n stage: event.stage,\n key: event.key,\n success: event.success,\n input: this.stripNonSerializable(event.input),\n result:\n event.result === undefined || event.result === null\n ? event.result\n : (this.stripNonSerializable(event.result) as AXPExecuteCommandResult<TResult>),\n error:\n event.error instanceof Error\n ? { name: event.error.name, message: event.error.message }\n : this.stripNonSerializable(event.error),\n };\n }\n\n private stripNonSerializable(value: unknown): unknown {\n const seen = new WeakSet<object>();\n\n const walk = (v: unknown): unknown => {\n if (v === null || v === undefined) {\n return v;\n }\n const t = typeof v;\n if (t === 'function' || t === 'symbol') {\n return undefined;\n }\n if (t === 'bigint') {\n return v.toString();\n }\n if (t !== 'object') {\n return v;\n }\n if (v instanceof Date) {\n return v.toISOString();\n }\n if (Array.isArray(v)) {\n if (seen.has(v)) {\n return '[Circular]';\n }\n seen.add(v);\n return v.map((item) => walk(item)).filter((item) => item !== undefined);\n }\n if (seen.has(v)) {\n return '[Circular]';\n }\n seen.add(v);\n const obj = v as Record<string, unknown>;\n const out: Record<string, unknown> = {};\n for (const key of Object.keys(obj)) {\n const child = walk(obj[key]);\n if (child !== undefined) {\n out[key] = child;\n }\n }\n return out;\n };\n\n return walk(value);\n }\n\n //#endregion\n}\n\n","import { AXPExecuteCommandResult } from '@acorex-platform/framework-shared/core';\n\n//#region ---- Middleware Types ----\n\n/**\n * Represents a middleware function in the command execution pipeline.\n */\nexport type AXPCommandMiddleware<TInput = any, TResult = any> = (\n input: TInput,\n next: (input: TInput) => Promise<AXPExecuteCommandResult<TResult>>\n) => Promise<AXPExecuteCommandResult<TResult>>;\n\n//#endregion\n\n//#region ---- Middleware Composition ----\n\n/**\n * Creates a composed handler by chaining the provided command middlewares.\n */\nexport function composeCommandMiddlewares<TInput, TResult>(\n middlewares: AXPCommandMiddleware<TInput, TResult>[]\n): (\n handler: (input: TInput) => Promise<AXPExecuteCommandResult<TResult>>\n) => (input: TInput) => Promise<AXPExecuteCommandResult<TResult>> {\n return (\n handler: (input: TInput) => Promise<AXPExecuteCommandResult<TResult>>\n ) => {\n let composed = handler;\n\n for (let i = middlewares.length - 1; i >= 0; i--) {\n const mw = middlewares[i];\n const next = composed;\n\n composed = (input: TInput) => mw(input, next);\n }\n\n return composed;\n };\n}\n\n//#endregion\n","import { Injectable } from '@angular/core';\nimport { AXPCommand } from '@acorex-platform/framework-shared/runtime';\nimport { AXPCommandMiddleware } from './command.middleware';\n\n@Injectable({ providedIn: 'root' })\nexport class AXPCommandRegistry {\n private registry = new Map<string, () => Promise<AXPCommand>>();\n private middlewares: AXPCommandMiddleware[] = [];\n\n register(key: string, loader: () => Promise<AXPCommand>): void {\n this.registry.set(key, loader);\n }\n\n unregister(key: string): boolean {\n return this.registry.delete(key);\n }\n\n use(middleware: AXPCommandMiddleware): void {\n this.middlewares.push(middleware);\n }\n\n exists(key: string): boolean {\n return this.registry.has(key);\n }\n\n getLoader(key: string): (() => Promise<AXPCommand>) | undefined {\n return this.registry.get(key);\n }\n\n getMiddlewares(): readonly AXPCommandMiddleware[] {\n return [...this.middlewares];\n }\n\n getRegisteredKeys(): string[] {\n return Array.from(this.registry.keys());\n }\n\n clear(): void {\n this.registry.clear();\n this.middlewares.length = 0;\n }\n}\n","// plugins/command.extension.token.ts\nimport { InjectionToken } from '@angular/core';\nimport { AXPCommandMiddleware } from './command.middleware';\n\nexport interface AXPCommandExtension {\n target: string | RegExp;\n middleware: AXPCommandMiddleware;\n}\n\nexport const AXP_COMMAND_EXTENSION = new InjectionToken<AXPCommandExtension[]>('AXP_COMMAND_EXTENSION');\n","import { EnvironmentInjector, Injectable, inject, runInInjectionContext } from '@angular/core';\nimport { AXPExecuteCommandResult } from '@acorex-platform/framework-shared/core';\n\nimport { AXPCommandMiddleware, composeCommandMiddlewares } from './command.middleware';\nimport { AXPCommandRegistry } from './command.registry';\nimport { AXP_COMMAND_EXTENSION } from './command.extension.token';\nimport { AXPCommandEventsService, AXPCommandExecutionEvent } from './command-events.service';\n\n@Injectable({ providedIn: 'root' })\nexport class AXPCommandExecutor {\n private readonly injector = inject(EnvironmentInjector);\n private readonly registry = inject(AXPCommandRegistry);\n private readonly extensions = inject(AXP_COMMAND_EXTENSION, { optional: true });\n private readonly commandEvents = inject(AXPCommandEventsService);\n\n async execute<TInput = any, TResult = any>(\n key: string,\n input: TInput\n ): Promise<AXPExecuteCommandResult<TResult> | null> {\n const loader = this.registry.getLoader(key);\n if (!loader) {\n throw new Error(`Command '${key}' is not registered`);\n }\n\n const command = await loader();\n const handler = (i: TInput) => command.execute(i) as Promise<AXPExecuteCommandResult<TResult>>;\n\n const pluginMiddlewares = this.getPluginMiddlewares(key);\n const globalMiddlewares = this.registry.getMiddlewares();\n\n const wrappedMiddlewares: AXPCommandMiddleware<TInput, TResult>[] = [\n ...globalMiddlewares,\n ...pluginMiddlewares,\n ].map(middleware => {\n return (input: TInput, next: (input: TInput) => Promise<AXPExecuteCommandResult<TResult>>) =>\n runInInjectionContext(this.injector, () => middleware(input, next));\n });\n\n const composed = composeCommandMiddlewares<TInput, TResult>(wrappedMiddlewares)(handler);\n\n const beforeEvent = {\n stage: 'before' as const,\n key,\n input,\n } satisfies AXPCommandExecutionEvent<TInput>;\n\n await this.commandEvents.emit(beforeEvent);\n\n try {\n const result = await composed(input);\n\n const afterEvent = {\n stage: 'after' as const,\n key,\n input,\n success: true,\n result,\n } satisfies AXPCommandExecutionEvent<TInput, TResult>;\n\n await this.commandEvents.emit(afterEvent);\n\n return result;\n } catch (error) {\n const afterEvent = {\n stage: 'after' as const,\n key,\n input,\n success: false,\n error,\n } satisfies AXPCommandExecutionEvent<TInput, TResult>;\n\n await this.commandEvents.emit(afterEvent);\n\n throw error;\n }\n }\n\n private getPluginMiddlewares(key: string): AXPCommandMiddleware[] {\n return this.extensions\n ?.filter(ext => ext.target instanceof RegExp ? ext.target.test(key) : ext.target === key)\n .map(ext => ext.middleware) ?? [];\n }\n} ","import { Injectable, inject } from '@angular/core';\nimport { AXPExecuteCommandResult } from '@acorex-platform/framework-shared/core';\n\nimport { AXPCommand } from '@acorex-platform/framework-shared/runtime';\nimport { AXPCommandMiddleware } from './command.middleware';\nimport { AXPCommandRegistry } from './command.registry';\nimport { AXPCommandExecutor } from './command.executor';\n\n@Injectable({ providedIn: 'root' })\nexport class AXPCommandService {\n private readonly registry = inject(AXPCommandRegistry);\n private readonly executor = inject(AXPCommandExecutor);\n\n // Registry methods\n register(key: string, loader: () => Promise<AXPCommand>): void {\n this.registry.register(key, loader);\n }\n\n unregister(key: string): boolean {\n return this.registry.unregister(key);\n }\n\n use(middleware: AXPCommandMiddleware): void {\n this.registry.use(middleware);\n }\n\n exists(key: string): boolean {\n return this.registry.exists(key);\n }\n\n getRegisteredKeys(): string[] {\n return this.registry.getRegisteredKeys();\n }\n\n clear(): void {\n this.registry.clear();\n }\n\n // Executor methods\n async execute<TInput = any, TResult = any>(\n key: string,\n input: TInput\n ): Promise<AXPExecuteCommandResult<TResult> | null> {\n return this.executor.execute<TInput, TResult>(key, input);\n }\n} ","import {\n EnvironmentProviders,\n inject,\n InjectionToken,\n makeEnvironmentProviders\n} from '@angular/core';\nimport { AXPCommandRegistry } from './command.registry';\nimport { AXPCommandMiddleware } from './command.middleware';\nimport { AXP_COMMAND_EXTENSION } from './command.extension.token';\n\nexport const AXP_COMMAND_MIDDLEWARE_SETUP = new InjectionToken<void>('AXP_COMMAND_MIDDLEWARE_SETUP');\n\ntype AXPCommandMiddlewareEntry =\n (AXPCommandMiddleware | { target: string | RegExp; middleware: AXPCommandMiddleware })[];\n\nexport function provideCommandMiddleware(\n entries: AXPCommandMiddlewareEntry\n): EnvironmentProviders {\n const global: AXPCommandMiddleware[] = [];\n const extensions: { target: string | RegExp; middleware: AXPCommandMiddleware }[] = [];\n\n for (const entry of entries) {\n if (typeof entry === 'function') {\n global.push(entry);\n } else {\n extensions.push(entry);\n }\n }\n\n return makeEnvironmentProviders([\n // Plugin middleware entries\n ...extensions.map(ext => ({\n provide: AXP_COMMAND_EXTENSION,\n useValue: ext,\n multi: true\n })),\n\n // Global middleware setup (triggered via this token)\n {\n provide: AXP_COMMAND_MIDDLEWARE_SETUP,\n useFactory: () => {\n const registry = inject(AXPCommandRegistry);\n for (const mw of global) {\n registry.use(mw);\n }\n return true;\n }\n }\n ]);\n}","import { EnvironmentInjector, EnvironmentProviders, inject, InjectionToken, makeEnvironmentProviders, runInInjectionContext, Type } from '@angular/core';\nimport { AXPCommandRegistry } from './command.registry';\nimport { AXPCommand } from '@acorex-platform/framework-shared/runtime';\n\n\nexport const AXP_COMMAND_SETUP = new InjectionToken<void>('AXP_COMMAND_SETUP');\n\n\ntype AXPCommandLoader = {\n key: string;\n command: () => Type<AXPCommand> | Promise<Type<AXPCommand>>;\n};\n\n\nexport function provideCommandSetups(entries: AXPCommandLoader[]): EnvironmentProviders {\n\n return makeEnvironmentProviders([\n {\n provide: AXP_COMMAND_SETUP,\n useFactory: () => {\n const registry = inject(AXPCommandRegistry);\n const injector = inject(EnvironmentInjector);\n\n for (const entry of entries) {\n registry.register(entry.key, async () => {\n const CommandType = await entry.command();\n // Try to get from DI first, if fails create new instance\n try {\n return injector.get(CommandType);\n } catch (e) {\n // If not in DI (e.g., for activities), create new instance\n return runInInjectionContext(injector, () => new CommandType());\n }\n });\n }\n\n return true;\n },\n multi: true\n }\n ]);\n}\n\n\nexport function provideCommand(\n key: string,\n loader: () => Type<AXPCommand> | Promise<Type<AXPCommand>>\n): EnvironmentProviders {\n return provideCommandSetups([\n {\n key,\n command: loader\n }\n ]);\n}\n\n\n","// queries/query.registry.ts\nimport { Injectable } from '@angular/core';\nimport { AXPQuery } from '@acorex-platform/framework-shared/runtime';\nimport { AXPQueryMiddleware } from './query.middleware';\n\n@Injectable({ providedIn: 'root' })\nexport class AXPQueryRegistry {\n private registry = new Map<string, () => Promise<AXPQuery>>();\n private middlewares: AXPQueryMiddleware[] = [];\n\n register(key: string, loader: () => Promise<AXPQuery>): void {\n this.registry.set(key, loader);\n }\n\n unregister(key: string): boolean {\n return this.registry.delete(key);\n }\n\n use(middleware: AXPQueryMiddleware): void {\n this.middlewares.push(middleware);\n }\n\n exists(key: string): boolean {\n return this.registry.has(key);\n }\n\n getLoader(key: string): (() => Promise<AXPQuery>) | undefined {\n return this.registry.get(key);\n }\n\n getMiddlewares(): readonly AXPQueryMiddleware[] {\n return [...this.middlewares];\n }\n\n getRegisteredKeys(): string[] {\n return Array.from(this.registry.keys());\n }\n\n clear(): void {\n this.registry.clear();\n this.middlewares.length = 0;\n }\n}\n","// plugins/query.extension.token.ts\nimport { InjectionToken } from '@angular/core';\nimport { AXPQueryMiddleware } from './query.middleware';\n\nexport interface AXPQueryExtension {\n target: string | RegExp;\n middleware: AXPQueryMiddleware;\n}\n\nexport const AXP_QUERY_EXTENSION = new InjectionToken<AXPQueryExtension[]>('AXP_QUERY_EXTENSION');\n","import {\n EnvironmentProviders,\n inject,\n InjectionToken,\n makeEnvironmentProviders\n} from '@angular/core';\nimport { AXPQueryRegistry } from './query.registry';\nimport { AXPQueryMiddleware } from './query.middleware';\nimport { AXP_QUERY_EXTENSION } from './query.extension.token';\n\nexport const AXP_QUERY_MIDDLEWARE_SETUP = new InjectionToken<void>('AXP_QUERY_MIDDLEWARE_SETUP');\n\ntype AXPQueryMiddlewareEntry =\n (AXPQueryMiddleware | { key: string; middleware: AXPQueryMiddleware })[];\n\nexport function provideQueryMiddleware(\n entries: AXPQueryMiddlewareEntry\n): EnvironmentProviders {\n const global: AXPQueryMiddleware[] = [];\n const extensions: { key: string; middleware: AXPQueryMiddleware }[] = [];\n\n for (const entry of entries) {\n if (typeof entry === 'function') {\n global.push(entry);\n } else {\n extensions.push(entry);\n }\n }\n\n return makeEnvironmentProviders([\n // Plugin middleware entries\n ...extensions.map(ext => ({\n provide: AXP_QUERY_EXTENSION,\n useValue: ext,\n multi: true\n })),\n\n // Global middleware setup (triggered via this token)\n {\n provide: AXP_QUERY_MIDDLEWARE_SETUP,\n useFactory: () => {\n const registry = inject(AXPQueryRegistry);\n for (const mw of global) {\n registry.use(mw);\n }\n return true;\n }\n }\n ]);\n} ","import { EnvironmentInjector, EnvironmentProviders, inject, InjectionToken, makeEnvironmentProviders, Provider, Type } from '@angular/core';\nimport { AXPQueryRegistry } from './query.registry';\nimport { AXPQuery } from '@acorex-platform/framework-shared/runtime';\n\nexport const AXP_QUERY_SETUP = new InjectionToken<void>('AXP_QUERY_SETUP');\n\ntype AXPQueryLoaderEntry = {\n key: string,\n loader: () => Type<AXPQuery> | Promise<Type<AXPQuery>>;\n};\n\nexport function provideQuerySetups(\n entries: AXPQueryLoaderEntry[]\n): EnvironmentProviders {\n return makeEnvironmentProviders([\n {\n provide: AXP_QUERY_SETUP,\n useFactory: () => {\n const registry = inject(AXPQueryRegistry);\n const injector = inject(EnvironmentInjector);\n\n for (const entry of entries) {\n registry.register(entry.key, async () => {\n const CommandType = await entry.loader();\n return injector.get(CommandType);\n });\n }\n\n return true;\n },\n multi: true\n }\n ]);\n} ","// queries/query.middleware.ts\nexport type AXPQueryMiddleware<TInput = any, TResult = any> = (\n input: TInput,\n next: (input: TInput) => Promise<TResult>\n) => Promise<TResult>;\n\nexport function composeQueryMiddlewares<TInput, TResult>(\n middlewares: AXPQueryMiddleware<TInput, TResult>[]\n): (handler: (input: TInput) => Promise<TResult>) => (input: TInput) => Promise<TResult> {\n return (handler: (input: TInput) => Promise<TResult>) => {\n let composed = handler;\n\n for (let i = middlewares.length - 1; i >= 0; i--) {\n const mw = middlewares[i];\n const next = composed;\n\n composed = (input: TInput) => mw(input, next);\n }\n\n return composed;\n };\n}\n","import { Injectable, EnvironmentInjector, inject, runInInjectionContext } from '@angular/core';\nimport { AXPQueryMiddleware, composeQueryMiddlewares } from './query.middleware';\nimport { AXPQueryRegistry } from './query.registry';\nimport { AXP_QUERY_EXTENSION } from './query.extension.token';\n\n@Injectable({ providedIn: 'root' })\nexport class AXPQueryExecutor {\n private readonly injector = inject(EnvironmentInjector);\n private readonly registry = inject(AXPQueryRegistry);\n private readonly extensions = inject(AXP_QUERY_EXTENSION, { optional: true });\n\n async fetch<TInput = any, TResult = any>(\n key: string,\n input: TInput\n ): Promise<TResult | null> {\n const loader = this.registry.getLoader(key);\n if (!loader) {\n return null;\n }\n\n const query = await loader();\n const handler = (i: TInput) => query.fetch(i);\n\n const pluginMiddlewares = this.getPluginMiddlewares(key);\n const globalMiddlewares = this.registry.getMiddlewares();\n\n const wrappedMiddlewares = [...globalMiddlewares, ...pluginMiddlewares].map(middleware => {\n return (input: TInput, next: (input: TInput) => Promise<TResult>) =>\n runInInjectionContext(this.injector, () => middleware(input, next));\n });\n\n const composed = composeQueryMiddlewares(wrappedMiddlewares)(handler);\n return composed(input);\n }\n\n private getPluginMiddlewares(key: string): AXPQueryMiddleware[] {\n return this.extensions\n ?.filter(ext => ext.target instanceof RegExp ? ext.target.test(key) : ext.target === key)\n .map(ext => ext.middleware) ?? [];\n }\n} ","import { Injectable, inject } from '@angular/core';\nimport { AXPQuery } from '@acorex-platform/framework-shared/runtime';\nimport { AXPQueryMiddleware } from './query.middleware';\nimport { AXPQueryRegistry } from './query.registry';\nimport { AXPQueryExecutor } from './query.executor';\n\n@Injectable({ providedIn: 'root' })\nexport class AXPQueryService {\n private readonly registry = inject(AXPQueryRegistry);\n private readonly executor = inject(AXPQueryExecutor);\n\n // Registry methods\n register(key: string, loader: () => Promise<AXPQuery>): void {\n this.registry.register(key, loader);\n }\n\n unregister(key: string): boolean {\n return this.registry.unregister(key);\n }\n\n use(middleware: AXPQueryMiddleware): void {\n this.registry.use(middleware);\n }\n\n exists(key: string): boolean {\n return this.registry.exists(key);\n }\n\n getRegisteredKeys(): string[] {\n return this.registry.getRegisteredKeys();\n }\n\n clear(): void {\n this.registry.clear();\n }\n\n // Executor methods\n async fetch<TInput = any, TResult = any>(\n key: string,\n input: TInput\n ): Promise<TResult | null> {\n return this.executor.fetch<TInput, TResult>(key, input);\n }\n} ","import { AXPViewDefinition } from '@acorex-platform/framework-shared/core';\n\nexport type AXPViewMiddleware<TInput = any> = (\n input: TInput,\n next: (input: TInput) => Promise<AXPViewDefinition>\n) => Promise<AXPViewDefinition>;\n\nexport function composeViewMiddlewares<TInput>(\n middlewares: AXPViewMiddleware<TInput>[]\n): (handler: (input: TInput) => Promise<AXPViewDefinition>) => (input: TInput) => Promise<AXPViewDefinition> {\n return (handler: (input: TInput) => Promise<AXPViewDefinition>) => {\n let composed = handler;\n\n for (let i = middlewares.length - 1; i >= 0; i--) {\n const mw = middlewares[i];\n const next = composed;\n\n composed = (input: TInput) => mw(input, next);\n }\n\n return composed;\n };\n} ","import { Injectable } from '@angular/core';\nimport { AXPViewProvider } from '@acorex-platform/framework-shared/runtime';\nimport { AXPViewMiddleware } from './view.middleware';\n\n@Injectable({ providedIn: 'root' })\nexport class AXPViewRegistry {\n private registry = new Map<string, () => Promise<AXPViewProvider>>();\n private middlewares: AXPViewMiddleware[] = [];\n\n register(key: string, loader: () => Promise<AXPViewProvider>): void {\n this.registry.set(key, loader);\n }\n\n unregister(key: string): boolean {\n return this.registry.delete(key);\n }\n\n use(middleware: AXPViewMiddleware): void {\n this.middlewares.push(middleware);\n }\n\n exists(key: string): boolean {\n return this.registry.has(key);\n }\n\n getLoader(key: string): (() => Promise<AXPViewProvider>) | undefined {\n return this.registry.get(key);\n }\n\n getMiddlewares(): readonly AXPViewMiddleware[] {\n return [...this.middlewares];\n }\n\n getRegisteredKeys(): string[] {\n return Array.from(this.registry.keys());\n }\n\n clear(): void {\n this.registry.clear();\n this.middlewares.length = 0;\n }\n} ","import { InjectionToken } from '@angular/core';\nimport { AXPViewMiddleware } from './view.middleware';\n\nexport interface AXPViewExtension {\n target: string | RegExp;\n middleware: AXPViewMiddleware;\n}\n\nexport const AXP_VIEW_EXTENSION = new InjectionToken<AXPViewExtension[]>('AXP_VIEW_EXTENSION'); ","import { Injectable, EnvironmentInjector, inject, runInInjectionContext } from '@angular/core';\nimport { AXPViewMiddleware, composeViewMiddlewares } from './view.middleware';\nimport { AXPViewRegistry } from './view.registry';\nimport { AXP_VIEW_EXTENSION } from './view.extension.token';\nimport { AXPViewDefinition } from '@acorex-platform/framework-shared/core';\n\n@Injectable({ providedIn: 'root' })\nexport class AXPViewExecutor {\n private readonly injector = inject(EnvironmentInjector);\n private readonly registry = inject(AXPViewRegistry);\n private readonly extensions = inject(AXP_VIEW_EXTENSION, { optional: true });\n\n async provide<TInput = any>(\n key: string,\n input: TInput\n ): Promise<AXPViewDefinition | null> {\n const loader = this.registry.getLoader(key);\n if (!loader) {\n return null;\n }\n\n const provider = await loader();\n const handler = (i: TInput) => provider.provide(i);\n\n const pluginMiddlewares = this.getPluginMiddlewares(key);\n const globalMiddlewares = this.registry.getMiddlewares();\n\n const wrappedMiddlewares = [...globalMiddlewares, ...pluginMiddlewares].map(middleware => {\n return (input: TInput, next: (input: TInput) => Promise<AXPViewDefinition>) =>\n runInInjectionContext(this.injector, () => middleware(input, next));\n });\n\n const composed = composeViewMiddlewares(wrappedMiddlewares)(handler);\n return composed(input);\n }\n\n private getPluginMiddlewares(key: string): AXPViewMiddleware[] {\n return this.extensions\n ?.filter(ext => ext.target instanceof RegExp ? ext.target.test(key) : ext.target === key)\n .map(ext => ext.middleware) ?? [];\n }\n} ","import { Injectable, inject } from '@angular/core';\nimport { AXPViewProvider } from '@acorex-platform/framework-shared/runtime';\nimport { AXPViewMiddleware } from './view.middleware';\nimport { AXPViewRegistry } from './view.registry';\nimport { AXPViewExecutor } from './view.executor';\nimport { AXPViewDefinition } from '@acorex-platform/framework-shared/core';\n\n@Injectable({ providedIn: 'root' })\nexport class AXPViewService {\n private readonly registry = inject(AXPViewRegistry);\n private readonly executor = inject(AXPViewExecutor);\n\n //#region ---- Registry Methods ----\n\n register(key: string, loader: () => Promise<AXPViewProvider>): void {\n this.registry.register(key, loader);\n }\n\n unregister(key: string): boolean {\n return this.registry.unregister(key);\n }\n\n use(middleware: AXPViewMiddleware): void {\n this.registry.use(middleware);\n }\n\n exists(key: string): boolean {\n return this.registry.exists(key);\n }\n\n getRegisteredKeys(): string[] {\n return this.registry.getRegisteredKeys();\n }\n\n clear(): void {\n this.registry.clear();\n }\n\n //#endregion\n\n //#region ---- Executor Methods ----\n\n async provide<TInput = any>(\n key: string,\n input: TInput\n ): Promise<AXPViewDefinition | null> {\n return this.executor.provide<TInput>(key, input);\n }\n\n //#endregion\n} ","import { EnvironmentProviders, inject, InjectionToken, makeEnvironmentProviders, Provider } from '@angular/core';\nimport { AXPViewRegistry } from './view.registry';\nimport { AXPViewProvider } from '@acorex-platform/framework-shared/runtime';\n\nexport const AXP_VIEW_SETUP = new InjectionToken<void>('AXP_VIEW_SETUP');\n\nexport function provideViewSetups(providers: Provider[]): EnvironmentProviders {\n return makeEnvironmentProviders([\n ...providers,\n {\n provide: AXP_VIEW_SETUP,\n useFactory: () => {\n const registry = inject(AXPViewRegistry);\n\n // Setup will be handled by the provided registration functions\n return;\n },\n multi: true\n }\n ]);\n}\n\nexport function provideViewSetup(\n key: string,\n loader: () => Promise<AXPViewProvider>\n): Provider {\n return {\n provide: AXP_VIEW_SETUP,\n useFactory: () => {\n const registry = inject(AXPViewRegistry);\n registry.register(key, loader);\n return;\n },\n multi: true\n };\n} ","import { AXPPolicyEngineContext } from \"./policy.interface\";\n\nexport type AXPPolicyEngineMiddleware = (\n context: AXPPolicyEngineContext,\n next: (context: AXPPolicyEngineContext) => Promise<void>,\n) => Promise<void>;\n\nexport function composePolicyEngineMiddlewares(\n middlewares: AXPPolicyEngineMiddleware[]\n): (handler: (context: AXPPolicyEngineContext) => Promise<void>) => (context: AXPPolicyEngineContext) => Promise<void> {\n return (handler) => {\n let composed = handler;\n for (let i = middlewares.length - 1; i >= 0; i--) {\n const mw = middlewares[i];\n const next = composed;\n composed = (context: AXPPolicyEngineContext) => mw(context, next);\n }\n return composed;\n };\n} ","import { AXPPolicyOptions } from \"./policy.types\";\n\nexport interface AXPPolicy {\n apply(context: AXPPolicyEngineContext): Promise<void>;\n}\n\n\nexport class AXPPolicyEngineContext {\n\n private _id: string;\n private _sender: AXPPolicyOptions['sender'];\n private _visible = true;\n private _enabled = true;\n\n constructor(options: AXPPolicyOptions) {\n this._id = options.id;\n this._sender = options.sender;\n }\n\n public get sender(): AXPPolicyOptions['sender'] {\n return this._sender;\n }\n\n public get id() {\n return this._id;\n }\n\n public get visible() {\n return this._visible;\n }\n\n public get enabled() {\n return this._enabled;\n }\n\n setVisible(visible: boolean) {\n this._visible = visible;\n return this;\n }\n setEnabled(enabled: boolean) {\n this._enabled = enabled;\n return this;\n }\n} \n","// plugins/command.extension.token.ts\nimport { InjectionToken } from '@angular/core';\nimport { AXPPolicyEngineMiddleware } from './policy.middleware';\n\nexport interface AXPPolicyExtension {\n key: string;\n middleware: AXPPolicyEngineMiddleware;\n}\n\nexport const AXP_POLICY_EXTENSION = new InjectionToken<AXPPolicyExtension[]>('AXP_POLICY_EXTENSION');\n","import { EnvironmentInjector, Inject, inject, Injectable, Optional, runInInjectionContext } from '@angular/core';\nimport { AXPPolicyEngineMiddleware, composePolicyEngineMiddlewares } from './policy.middleware';\nimport { AXPPolicyEngineContext } from './policy.interface';\nimport { AXPPolicyOptions } from './policy.types';\nimport { AXPPolicy } from './policy.interface';\nimport { AXP_POLICY_EXTENSION } from './policy.extension.token';\nimport { AXPPolicyExtension } from './policy.extension.token';\n\n@Injectable({ providedIn: 'root' })\nexport class AXPPolicyEngineRegistry {\n private registry = new Map<string, () => Promise<AXPPolicy>>();\n private middlewares: AXPPolicyEngineMiddleware[] = [];\n private extensions = inject(AXP_POLICY_EXTENSION, { optional: true });\n\n private injector = inject(EnvironmentInjector);\n\n\n use(mw: AXPPolicyEngineMiddleware): void {\n this.middlewares.push(mw);\n }\n\n exists(key: string): boolean {\n return this.registry.has(key);\n }\n\n getPolicies(): string[] {\n return Array.from(this.registry.keys());\n }\n\n register(key: string, loader: () => Promise<AXPPolicy>): void {\n this.registry.set(key, loader);\n }\n\n\n private getPluginMiddlewares(key: string): AXPPolicyEngineMiddleware[] {\n return this.extensions\n ?.filter(ext => ext.key === key)\n .map(ext => ext.middleware) ?? [];\n }\n\n\n\n async execute(\n policy: string,\n instance: AXPPolicyOptions\n ): Promise<AXPPolicyEngineContext> {\n const loader = this.registry.get(policy);\n if (!loader) {\n throw new Error(`${policy} not implemented`);\n }\n const context = new AXPPolicyEngineContext(instance);\n const applier = await loader();\n const handler = (i: AXPPolicyEngineContext) => applier.apply(i);\n\n const pluginMws = this.getPluginMiddlewares(policy);\n\n const wrappedMws = [...this.middlewares, ...pluginMws].map(mw => {\n return (input: AXPPolicyEngineContext, next: (input: AXPPolicyEngineContext) => Promise<void>) =>\n runInInjectionContext(this.injector, () => mw(input, next));\n });\n\n const composed = composePolicyEngineMiddlewares(wrappedMws)(handler);\n await composed(context);\n return context;\n }\n} ","import { inject, Injectable } from \"@angular/core\";\nimport { AXPPolicyEngineRegistry } from \"./policy.registry\";\nimport { AXPPolicyOptions } from \"./policy.types\";\n\n@Injectable({\n providedIn: 'root'\n})\nexport class AXPPolicyEngineService {\n private registry = inject(AXPPolicyEngineRegistry);\n\n\n\n async apply(options: AXPPolicyOptions) {\n const allPolicies = this.registry.getPolicies().filter(p => (options.policies?.length ?? 0) == 0 || options.policies?.includes(p));\n\n await Promise.all(allPolicies.map(async policy => {\n const context = await this.registry.execute(policy, options);\n return context;\n }));\n\n\n\n //\n // if (instance instanceof HTMLElement) {\n // if (context.visible === false) {\n // instance.style.display = 'none';\n // } else {\n // instance.style.display = '';\n // }\n // }\n // //\n // if (instance instanceof MXBaseComponent) {\n // if (context.visible === false) {\n // instance.getHostElement().style.display = 'none';\n // } else {\n // instance.getHostElement().style.display = '';\n // }\n // }\n // // Handle disabled state for interactive components\n // if (instance instanceof MXInteractiveComponent) {\n // if (context.enabled === false) {\n // instance.disabled = true;\n // } else {\n // instance.disabled = false;\n // }\n // }\n // // TODO: Handle object properties \n // if (instance instanceof Object) {\n // if (context.visible === false) {\n // set(instance, 'visible', false);\n // }\n // if (context.enabled === false) {\n // set(instance, 'disabled', true);\n // }\n // }\n }\n\n\n\n}\n","import { Directive, ElementRef, input, effect, inject } from '@angular/core';\nimport { AXPPolicyEngineService } from './policy.service';\nimport { castArray } from 'lodash-es';\n\n@Directive({\n selector: '[axp-apply-policy]',\n standalone: true\n})\nexport class AXPPolicyEngineDirective {\n policy = input.required<string | undefined | null>({ alias: 'axp-apply-policy' });\n private service = inject(AXPPolicyEngineService);\n private elementRef = inject(ElementRef<HTMLElement>);\n\n\n #eff = effect(async () => {\n const policy = this.policy();\n if (!policy) {\n return;\n }\n await this.service.apply({\n id: this.elementRef.nativeElement.id,\n policies: castArray(policy),\n sender: this.elementRef.nativeElement\n });\n });\n\n}\n","import { EnvironmentInjector, EnvironmentProviders, inject, InjectionToken, makeEnvironmentProviders, Type } from '@angular/core';\nimport { AXPPolicyEngineRegistry } from './policy.registry';\nimport { AXPPolicy } from './policy.interface';\n\nexport const AXP_POLICY_ENGINE_MIDDLEWARE_SETUP = new InjectionToken<void>('AXP_POLICY_ENGINE_MIDDLEWARE_SETUP');\n\n\n\ntype AXPPolicyLoader = {\n key: string;\n policy: () => Type<AXPPolicy> | Promise<Type<AXPPolicy>>;\n};\n\n\nexport function providePolicySetups(entries: AXPPolicyLoader[]): EnvironmentProviders {\n return makeEnvironmentProviders([\n {\n provide: AXP_POLICY_ENGINE_MIDDLEWARE_SETUP,\n useFactory: () => {\n const registry = inject(AXPPolicyEngineRegistry);\n const injector = inject(EnvironmentInjector);\n\n for (const entry of entries) {\n registry.register(entry.key, async () => {\n const PolicyType = await entry.policy();\n return injector.get(PolicyType);\n });\n }\n\n return true;\n }\n }\n ]);\n}","import { EnvironmentProviders, inject, InjectionToken, makeEnvironmentProviders, Provider } from '@angular/core';\nimport { AXPViewRegistry } from './view.registry';\nimport { AXPViewMiddleware } from './view.middleware';\n\nexport const AXP_VIEW_MIDDLEWARE_SETUP = new InjectionToken<void>('AXP_VIEW_MIDDLEWARE_SETUP');\n\nexport function provideViewMiddleware(middlewares: AXPViewMiddleware[]): EnvironmentProviders {\n return makeEnvironmentProviders([\n {\n provide: AXP_VIEW_MIDDLEWARE_SETUP,\n useFactory: () => {\n const registry = inject(AXPViewRegistry);\n middlewares.forEach(middleware => registry.use(middleware));\n return;\n },\n multi: true\n }\n ]);\n}\n\nexport function provideViewMiddlewareSetup(\n middleware: AXPViewMiddleware\n): Provider {\n return {\n provide: AXP_VIEW_MIDDLEWARE_SETUP,\n useFactory: () => {\n const registry = inject(AXPViewRegistry);\n registry.use(middleware);\n return;\n },\n multi: true\n };\n} ","import { NgModule, Inject, isDevMode, Optional, inject } from \"@angular/core\";\nimport { AXP_COMMAND_SETUP } from \"./commands/provide-command-setups\";\nimport { AXP_COMMAND_MIDDLEWARE_SETUP } from \"./commands/provide-command-middleware\";\nimport { AXP_QUERY_SETUP } from \"./queries/provide-query-setups\";\nimport { AXP_QUERY_MIDDLEWARE_SETUP } from \"./queries/provide-query-middleware\";\nimport { AXP_VIEW_SETUP } from \"./views/provide-view-setups\";\nimport { AXP_VIEW_MIDDLEWARE_SETUP } from \"./views/provide-view-middleware\";\nimport { AXP_POLICY_ENGINE_MIDDLEWARE_SETUP } from \"./policy/policy-middleware-provider\";\n\n@NgModule()\nexport class AXPRuntimeModule {\n\n private _commandSetup = inject(AXP_COMMAND_SETUP, { optional: true });\n private _commandMiddlewareSetup = inject(AXP_COMMAND_MIDDLEWARE_SETUP, { optional: true });\n\n private _querySetup = inject(AXP_QUERY_SETUP, { optional: true });\n private _queryMiddlewareSetup = inject(AXP_QUERY_MIDDLEWARE_SETUP, { optional: true });\n\n private _viewSetup = inject(AXP_VIEW_SETUP, { optional: true });\n private _viewMiddlewareSetup = inject(AXP_VIEW_MIDDLEWARE_SETUP, { optional: true });\n\n private _policyEngineSetup = inject(AXP_POLICY_ENGINE_MIDDLEWARE_SETUP, { optional: true });\n\n constructor() {\n if (isDevMode() && false) {\n console.log('[AXPRuntimeModule] Command Setup:', this._commandSetup);\n console.log('[AXPRuntimeModule] Command Middleware Setup:', this._commandMiddlewareSetup);\n console.log('[AXPRuntimeModule] Query Setup:', this._querySetup);\n console.log('[AXPRuntimeModule] Query Middleware Setup:', this._queryMiddlewareSetup);\n console.log('[AXPRuntimeModule] View Setup:', this._viewSetup);\n console.log('[AXPRuntimeModule] View Middleware Setup:', this._viewMiddlewareSetup);\n console.log('[AXPRuntimeModule] Policy Engine Setup:', this._policyEngineSetup);\n }\n }\n}\n","// Commands\nexport * from './lib/commands';\n\n// Queries\nexport * from './lib/queries';\n\n// Views\nexport * from './lib/views';\n\n// Policy\nexport * from './lib/policy';\n\n// Runtime\nexport * from './lib/runtime.module';\n\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-framework-client-runtime.mjs","sources":["../../../../../libs/framework/client/runtime/src/lib/commands/command-events.service.ts","../../../../../libs/framework/client/runtime/src/lib/commands/command.middleware.ts","../../../../../libs/framework/client/runtime/src/lib/commands/command.registry.ts","../../../../../libs/framework/client/runtime/src/lib/commands/command.extension.token.ts","../../../../../libs/framework/client/runtime/src/lib/runtime-remote.hooks.ts","../../../../../libs/framework/client/runtime/src/lib/commands/command.executor.ts","../../../../../libs/framework/client/runtime/src/lib/commands/command.service.ts","../../../../../libs/framework/client/runtime/src/lib/commands/provide-command-middleware.ts","../../../../../libs/framework/client/runtime/src/lib/commands/provide-command-setups.ts","../../../../../libs/framework/client/runtime/src/lib/queries/query.registry.ts","../../../../../libs/framework/client/runtime/src/lib/queries/query.extension.token.ts","../../../../../libs/framework/client/runtime/src/lib/queries/provide-query-middleware.ts","../../../../../libs/framework/client/runtime/src/lib/queries/provide-query-setups.ts","../../../../../libs/framework/client/runtime/src/lib/queries/query-events.service.ts","../../../../../libs/framework/client/runtime/src/lib/queries/query.middleware.ts","../../../../../libs/framework/client/runtime/src/lib/queries/query.executor.ts","../../../../../libs/framework/client/runtime/src/lib/queries/query.service.ts","../../../../../libs/framework/client/runtime/src/lib/views/view.middleware.ts","../../../../../libs/framework/client/runtime/src/lib/views/view.registry.ts","../../../../../libs/framework/client/runtime/src/lib/views/view.extension.token.ts","../../../../../libs/framework/client/runtime/src/lib/views/view.executor.ts","../../../../../libs/framework/client/runtime/src/lib/views/view.service.ts","../../../../../libs/framework/client/runtime/src/lib/views/provide-view-setups.ts","../../../../../libs/framework/client/runtime/src/lib/policy/policy.middleware.ts","../../../../../libs/framework/client/runtime/src/lib/policy/policy.interface.ts","../../../../../libs/framework/client/runtime/src/lib/policy/policy.extension.token.ts","../../../../../libs/framework/client/runtime/src/lib/policy/policy.registry.ts","../../../../../libs/framework/client/runtime/src/lib/policy/policy.service.ts","../../../../../libs/framework/client/runtime/src/lib/policy/policy.directive.ts","../../../../../libs/framework/client/runtime/src/lib/policy/policy-middleware-provider.ts","../../../../../libs/framework/client/runtime/src/lib/views/provide-view-middleware.ts","../../../../../libs/framework/client/runtime/src/lib/runtime.module.ts","../../../../../libs/framework/client/runtime/src/index.ts","../../../../../libs/framework/client/runtime/src/acorex-platform-framework-client-runtime.ts"],"sourcesContent":["//#region ---- Imports ----\n\nimport { inject, Injectable } from '@angular/core';\nimport { AXPExecuteCommandResult } from '@acorex-platform/framework-shared/core';\nimport { AXPBroadcastEventService } from '@acorex-platform/framework-client/core';\nimport { AXPDistributedEventListenerService } from '@acorex-platform/framework-client/core';\n\n//#endregion\n\n//#region ---- Types ----\n\nexport type AXPCommandExecutionStage = 'before' | 'after';\n\nexport interface AXPCommandExecutionEvent<TInput = unknown, TResult = unknown> {\n executionId: string;\n stage: AXPCommandExecutionStage;\n key: string;\n input: TInput;\n success?: boolean;\n result?: AXPExecuteCommandResult<TResult> | null;\n error?: unknown;\n durationMs?: number;\n}\n\ntype CommandExecutionHandler<TInput, TResult> = (event: AXPCommandExecutionEvent<TInput, TResult>) => void;\n\n//#endregion\n\nconst COMMAND_EXECUTION_EVENT_KEY = '@commands:execution';\n\n@Injectable({ providedIn: 'root' })\nexport class AXPCommandEventsService {\n //#region ---- Services & Dependencies ----\n\n private readonly broadcast = inject(AXPBroadcastEventService);\n private readonly distributedEvents = inject(AXPDistributedEventListenerService, { optional: true });\n\n //#endregion\n\n //#region ---- Public API ----\n\n listen<TInput = unknown, TResult = unknown>(\n handler: CommandExecutionHandler<TInput, TResult>,\n ): () => void {\n const subscription = this.broadcast\n .listen<AXPCommandExecutionEvent<TInput, TResult>>(COMMAND_EXECUTION_EVENT_KEY)\n .subscribe(({ data }) => handler(data));\n\n return () => subscription.unsubscribe();\n }\n\n async emit<TInput = unknown, TResult = unknown>(\n event: AXPCommandExecutionEvent<TInput, TResult>,\n ): Promise<void> {\n const safePayload = this.serializeForBroadcast(event);\n this.broadcast.publish(COMMAND_EXECUTION_EVENT_KEY, safePayload);\n await this.distributedEvents?.dispatch(COMMAND_EXECUTION_EVENT_KEY, safePayload);\n }\n\n //#endregion\n\n //#region ---- Broadcast payload (structured-clone safe) ----\n\n /**\n * Removes functions, symbols, and cycles so {@link AXPBroadcastEventService.publish}\n * can use `BroadcastChannel.postMessage` without DataCloneError (e.g. command input with `dialogRef`).\n */\n private serializeForBroadcast<TInput, TResult>(\n event: AXPCommandExecutionEvent<TInput, TResult>,\n ): AXPCommandExecutionEvent {\n return {\n executionId: event.executionId,\n stage: event.stage,\n key: event.key,\n success: event.success,\n durationMs: event.durationMs,\n input: this.stripNonSerializable(event.input),\n result:\n event.result === undefined || event.result === null\n ? event.result\n : (this.stripNonSerializable(event.result) as AXPExecuteCommandResult<TResult>),\n error:\n event.error instanceof Error\n ? { name: event.error.name, message: event.error.message }\n : this.stripNonSerializable(event.error),\n };\n }\n\n private stripNonSerializable(value: unknown): unknown {\n const seen = new WeakSet<object>();\n\n const walk = (v: unknown): unknown => {\n if (v === null || v === undefined) {\n return v;\n }\n const t = typeof v;\n if (t === 'function' || t === 'symbol') {\n return undefined;\n }\n if (t === 'bigint') {\n return v.toString();\n }\n if (t !== 'object') {\n return v;\n }\n if (v instanceof Date) {\n return v.toISOString();\n }\n if (Array.isArray(v)) {\n if (seen.has(v)) {\n return '[Circular]';\n }\n seen.add(v);\n return v.map((item) => walk(item)).filter((item) => item !== undefined);\n }\n if (seen.has(v)) {\n return '[Circular]';\n }\n seen.add(v);\n const obj = v as Record<string, unknown>;\n const out: Record<string, unknown> = {};\n for (const key of Object.keys(obj)) {\n const child = walk(obj[key]);\n if (child !== undefined) {\n out[key] = child;\n }\n }\n return out;\n };\n\n return walk(value);\n }\n\n //#endregion\n}\n\n","import { AXPExecuteCommandResult } from '@acorex-platform/framework-shared/core';\n\n//#region ---- Middleware Types ----\n\n/**\n * Represents a middleware function in the command execution pipeline.\n */\nexport type AXPCommandMiddleware<TInput = any, TResult = any> = (\n input: TInput,\n next: (input: TInput) => Promise<AXPExecuteCommandResult<TResult>>\n) => Promise<AXPExecuteCommandResult<TResult>>;\n\n//#endregion\n\n//#region ---- Middleware Composition ----\n\n/**\n * Creates a composed handler by chaining the provided command middlewares.\n */\nexport function composeCommandMiddlewares<TInput, TResult>(\n middlewares: AXPCommandMiddleware<TInput, TResult>[]\n): (\n handler: (input: TInput) => Promise<AXPExecuteCommandResult<TResult>>\n) => (input: TInput) => Promise<AXPExecuteCommandResult<TResult>> {\n return (\n handler: (input: TInput) => Promise<AXPExecuteCommandResult<TResult>>\n ) => {\n let composed = handler;\n\n for (let i = middlewares.length - 1; i >= 0; i--) {\n const mw = middlewares[i];\n const next = composed;\n\n composed = (input: TInput) => mw(input, next);\n }\n\n return composed;\n };\n}\n\n//#endregion\n","import { Injectable } from '@angular/core';\nimport { AXPCommand } from '@acorex-platform/framework-shared/runtime';\nimport { AXPCommandMiddleware } from './command.middleware';\n\n@Injectable({ providedIn: 'root' })\nexport class AXPCommandRegistry {\n private registry = new Map<string, () => Promise<AXPCommand>>();\n private middlewares: AXPCommandMiddleware[] = [];\n\n register(key: string, loader: () => Promise<AXPCommand>): void {\n this.registry.set(key, loader);\n }\n\n unregister(key: string): boolean {\n return this.registry.delete(key);\n }\n\n use(middleware: AXPCommandMiddleware): void {\n this.middlewares.push(middleware);\n }\n\n exists(key: string): boolean {\n return this.registry.has(key);\n }\n\n getLoader(key: string): (() => Promise<AXPCommand>) | undefined {\n return this.registry.get(key);\n }\n\n getMiddlewares(): readonly AXPCommandMiddleware[] {\n return [...this.middlewares];\n }\n\n getRegisteredKeys(): string[] {\n return Array.from(this.registry.keys());\n }\n\n clear(): void {\n this.registry.clear();\n this.middlewares.length = 0;\n }\n}\n","// plugins/command.extension.token.ts\nimport { InjectionToken } from '@angular/core';\nimport { AXPCommandMiddleware } from './command.middleware';\n\nexport interface AXPCommandExtension {\n target: string | RegExp;\n middleware: AXPCommandMiddleware;\n}\n\nexport const AXP_COMMAND_EXTENSION = new InjectionToken<AXPCommandExtension[]>('AXP_COMMAND_EXTENSION');\n","import type { AXPExecuteCommandResult } from '@acorex-platform/framework-shared/core';\n\n//#region ---- Runtime remote execute hooks ----\n\n/**\n * Distributed hook keys for remote (non-local) command/query execution.\n * Connectivity (or another transport) implements these via {@link AXPHookService.runAsync}.\n */\nexport const AXPRuntimeRemoteHookKeys = {\n CommandExecute: 'runtime.command.execute',\n QueryExecute: 'runtime.query.execute',\n} as const;\n\nexport interface AXPRuntimeCommandExecuteHookPayload {\n name: string;\n input: unknown;\n /** Set by a provider when it handled the remote call (even if success is false). */\n handled?: boolean;\n result?: AXPExecuteCommandResult | null;\n}\n\nexport interface AXPRuntimeQueryExecuteHookPayload {\n name: string;\n input: unknown;\n /** Set by a provider when it handled the remote call. */\n handled?: boolean;\n /** Unwrapped query result matching local {@link AXPQueryService.fetch} return shape. */\n result?: unknown;\n}\n\n//#endregion\n","import { EnvironmentInjector, Injectable, inject, runInInjectionContext } from '@angular/core';\nimport { AXPExecuteCommandResult } from '@acorex-platform/framework-shared/core';\nimport { AXPHookService } from '@acorex-platform/framework-client/core';\n\nimport { AXPCommandMiddleware, composeCommandMiddlewares } from './command.middleware';\nimport { AXPCommandRegistry } from './command.registry';\nimport { AXP_COMMAND_EXTENSION } from './command.extension.token';\nimport { AXPCommandEventsService, AXPCommandExecutionEvent } from './command-events.service';\nimport {\n AXPRuntimeRemoteHookKeys,\n type AXPRuntimeCommandExecuteHookPayload,\n} from '../runtime-remote.hooks';\n\n@Injectable({ providedIn: 'root' })\nexport class AXPCommandExecutor {\n private readonly injector = inject(EnvironmentInjector);\n private readonly registry = inject(AXPCommandRegistry);\n private readonly extensions = inject(AXP_COMMAND_EXTENSION, { optional: true });\n private readonly commandEvents = inject(AXPCommandEventsService);\n private readonly hooks = inject(AXPHookService);\n\n async execute<TInput = any, TResult = any>(\n key: string,\n input: TInput,\n ): Promise<AXPExecuteCommandResult<TResult> | null> {\n if (this.registry.exists(key)) {\n return this.executeLocal<TInput, TResult>(key, input);\n }\n\n return this.executeRemote<TInput, TResult>(key, input);\n }\n\n private async executeLocal<TInput, TResult>(\n key: string,\n input: TInput,\n ): Promise<AXPExecuteCommandResult<TResult> | null> {\n const loader = this.registry.getLoader(key);\n if (!loader) {\n throw new Error(`Command '${key}' is not registered`);\n }\n\n const command = await loader();\n const handler = (i: TInput) => command.execute(i) as Promise<AXPExecuteCommandResult<TResult>>;\n\n const pluginMiddlewares = this.getPluginMiddlewares(key);\n const globalMiddlewares = this.registry.getMiddlewares();\n\n const wrappedMiddlewares: AXPCommandMiddleware<TInput, TResult>[] = [\n ...globalMiddlewares,\n ...pluginMiddlewares,\n ].map((middleware) => {\n return (input: TInput, next: (input: TInput) => Promise<AXPExecuteCommandResult<TResult>>) =>\n runInInjectionContext(this.injector, () => middleware(input, next));\n });\n\n const composed = composeCommandMiddlewares<TInput, TResult>(wrappedMiddlewares)(handler);\n\n return this.runWithEvents(key, input, () => composed(input));\n }\n\n private async executeRemote<TInput, TResult>(\n key: string,\n input: TInput,\n ): Promise<AXPExecuteCommandResult<TResult> | null> {\n return this.runWithEvents(key, input, async () => {\n const payload = await this.hooks.runAsync<AXPRuntimeCommandExecuteHookPayload>(\n AXPRuntimeRemoteHookKeys.CommandExecute,\n { name: key, input },\n );\n\n if (!payload.handled) {\n throw new Error(`Command '${key}' is not registered and no remote handler is available`);\n }\n\n return (payload.result ?? null) as AXPExecuteCommandResult<TResult> | null;\n });\n }\n\n private async runWithEvents<TInput, TResult>(\n key: string,\n input: TInput,\n run: () => Promise<AXPExecuteCommandResult<TResult> | null>,\n ): Promise<AXPExecuteCommandResult<TResult> | null> {\n const executionId = crypto.randomUUID();\n const startedAt = performance.now();\n\n const beforeEvent = {\n executionId,\n stage: 'before' as const,\n key,\n input,\n } satisfies AXPCommandExecutionEvent<TInput>;\n\n await this.commandEvents.emit(beforeEvent);\n\n try {\n const result = await run();\n const durationMs = Math.round(performance.now() - startedAt);\n\n const afterEvent = {\n executionId,\n stage: 'after' as const,\n key,\n input,\n success: true,\n result,\n durationMs,\n } satisfies AXPCommandExecutionEvent<TInput, TResult>;\n\n await this.commandEvents.emit(afterEvent);\n\n return result;\n } catch (error) {\n const durationMs = Math.round(performance.now() - startedAt);\n\n const afterEvent = {\n executionId,\n stage: 'after' as const,\n key,\n input,\n success: false,\n error,\n durationMs,\n } satisfies AXPCommandExecutionEvent<TInput, TResult>;\n\n await this.commandEvents.emit(afterEvent);\n\n throw error;\n }\n }\n\n private getPluginMiddlewares(key: string): AXPCommandMiddleware[] {\n return (\n this.extensions\n ?.filter((ext) => (ext.target instanceof RegExp ? ext.target.test(key) : ext.target === key))\n .map((ext) => ext.middleware) ?? []\n );\n }\n}\n","import { Injectable, inject } from '@angular/core';\nimport { AXPExecuteCommandResult } from '@acorex-platform/framework-shared/core';\n\nimport { AXPCommand } from '@acorex-platform/framework-shared/runtime';\nimport { AXPCommandMiddleware } from './command.middleware';\nimport { AXPCommandRegistry } from './command.registry';\nimport { AXPCommandExecutor } from './command.executor';\n\n@Injectable({ providedIn: 'root' })\nexport class AXPCommandService {\n private readonly registry = inject(AXPCommandRegistry);\n private readonly executor = inject(AXPCommandExecutor);\n\n // Registry methods\n register(key: string, loader: () => Promise<AXPCommand>): void {\n this.registry.register(key, loader);\n }\n\n unregister(key: string): boolean {\n return this.registry.unregister(key);\n }\n\n use(middleware: AXPCommandMiddleware): void {\n this.registry.use(middleware);\n }\n\n exists(key: string): boolean {\n return this.registry.exists(key);\n }\n\n getRegisteredKeys(): string[] {\n return this.registry.getRegisteredKeys();\n }\n\n clear(): void {\n this.registry.clear();\n }\n\n // Executor methods\n async execute<TInput = any, TResult = any>(\n key: string,\n input: TInput\n ): Promise<AXPExecuteCommandResult<TResult> | null> {\n return this.executor.execute<TInput, TResult>(key, input);\n }\n} ","import {\n EnvironmentProviders,\n inject,\n InjectionToken,\n makeEnvironmentProviders\n} from '@angular/core';\nimport { AXPCommandRegistry } from './command.registry';\nimport { AXPCommandMiddleware } from './command.middleware';\nimport { AXP_COMMAND_EXTENSION } from './command.extension.token';\n\nexport const AXP_COMMAND_MIDDLEWARE_SETUP = new InjectionToken<void>('AXP_COMMAND_MIDDLEWARE_SETUP');\n\ntype AXPCommandMiddlewareEntry =\n (AXPCommandMiddleware | { target: string | RegExp; middleware: AXPCommandMiddleware })[];\n\nexport function provideCommandMiddleware(\n entries: AXPCommandMiddlewareEntry\n): EnvironmentProviders {\n const global: AXPCommandMiddleware[] = [];\n const extensions: { target: string | RegExp; middleware: AXPCommandMiddleware }[] = [];\n\n for (const entry of entries) {\n if (typeof entry === 'function') {\n global.push(entry);\n } else {\n extensions.push(entry);\n }\n }\n\n return makeEnvironmentProviders([\n // Plugin middleware entries\n ...extensions.map(ext => ({\n provide: AXP_COMMAND_EXTENSION,\n useValue: ext,\n multi: true\n })),\n\n // Global middleware setup (triggered via this token)\n {\n provide: AXP_COMMAND_MIDDLEWARE_SETUP,\n useFactory: () => {\n const registry = inject(AXPCommandRegistry);\n for (const mw of global) {\n registry.use(mw);\n }\n return true;\n }\n }\n ]);\n}","import { EnvironmentInjector, EnvironmentProviders, inject, InjectionToken, makeEnvironmentProviders, runInInjectionContext, Type } from '@angular/core';\nimport { AXPCommandRegistry } from './command.registry';\nimport { AXPCommand } from '@acorex-platform/framework-shared/runtime';\n\n\nexport const AXP_COMMAND_SETUP = new InjectionToken<void>('AXP_COMMAND_SETUP');\n\n\ntype AXPCommandLoader = {\n key: string;\n command: () => Type<AXPCommand> | Promise<Type<AXPCommand>>;\n};\n\n\nexport function provideCommandSetups(entries: AXPCommandLoader[]): EnvironmentProviders {\n\n return makeEnvironmentProviders([\n {\n provide: AXP_COMMAND_SETUP,\n useFactory: () => {\n const registry = inject(AXPCommandRegistry);\n const injector = inject(EnvironmentInjector);\n\n for (const entry of entries) {\n registry.register(entry.key, async () => {\n const CommandType = await entry.command();\n // Try to get from DI first, if fails create new instance\n try {\n return injector.get(CommandType);\n } catch (e) {\n // If not in DI (e.g., for activities), create new instance\n return runInInjectionContext(injector, () => new CommandType());\n }\n });\n }\n\n return true;\n },\n multi: true\n }\n ]);\n}\n\n\nexport function provideCommand(\n key: string,\n loader: () => Type<AXPCommand> | Promise<Type<AXPCommand>>\n): EnvironmentProviders {\n return provideCommandSetups([\n {\n key,\n command: loader\n }\n ]);\n}\n\n\n","// queries/query.registry.ts\nimport { Injectable } from '@angular/core';\nimport { AXPQuery } from '@acorex-platform/framework-shared/runtime';\nimport { AXPQueryMiddleware } from './query.middleware';\n\n@Injectable({ providedIn: 'root' })\nexport class AXPQueryRegistry {\n private registry = new Map<string, () => Promise<AXPQuery>>();\n private middlewares: AXPQueryMiddleware[] = [];\n\n register(key: string, loader: () => Promise<AXPQuery>): void {\n this.registry.set(key, loader);\n }\n\n unregister(key: string): boolean {\n return this.registry.delete(key);\n }\n\n use(middleware: AXPQueryMiddleware): void {\n this.middlewares.push(middleware);\n }\n\n exists(key: string): boolean {\n return this.registry.has(key);\n }\n\n getLoader(key: string): (() => Promise<AXPQuery>) | undefined {\n return this.registry.get(key);\n }\n\n getMiddlewares(): readonly AXPQueryMiddleware[] {\n return [...this.middlewares];\n }\n\n getRegisteredKeys(): string[] {\n return Array.from(this.registry.keys());\n }\n\n clear(): void {\n this.registry.clear();\n this.middlewares.length = 0;\n }\n}\n","// plugins/query.extension.token.ts\nimport { InjectionToken } from '@angular/core';\nimport { AXPQueryMiddleware } from './query.middleware';\n\nexport interface AXPQueryExtension {\n target: string | RegExp;\n middleware: AXPQueryMiddleware;\n}\n\nexport const AXP_QUERY_EXTENSION = new InjectionToken<AXPQueryExtension[]>('AXP_QUERY_EXTENSION');\n","import {\n EnvironmentProviders,\n inject,\n InjectionToken,\n makeEnvironmentProviders\n} from '@angular/core';\nimport { AXPQueryRegistry } from './query.registry';\nimport { AXPQueryMiddleware } from './query.middleware';\nimport { AXP_QUERY_EXTENSION } from './query.extension.token';\n\nexport const AXP_QUERY_MIDDLEWARE_SETUP = new InjectionToken<void>('AXP_QUERY_MIDDLEWARE_SETUP');\n\ntype AXPQueryMiddlewareEntry =\n (AXPQueryMiddleware | { key: string; middleware: AXPQueryMiddleware })[];\n\nexport function provideQueryMiddleware(\n entries: AXPQueryMiddlewareEntry\n): EnvironmentProviders {\n const global: AXPQueryMiddleware[] = [];\n const extensions: { key: string; middleware: AXPQueryMiddleware }[] = [];\n\n for (const entry of entries) {\n if (typeof entry === 'function') {\n global.push(entry);\n } else {\n extensions.push(entry);\n }\n }\n\n return makeEnvironmentProviders([\n // Plugin middleware entries\n ...extensions.map(ext => ({\n provide: AXP_QUERY_EXTENSION,\n useValue: ext,\n multi: true\n })),\n\n // Global middleware setup (triggered via this token)\n {\n provide: AXP_QUERY_MIDDLEWARE_SETUP,\n useFactory: () => {\n const registry = inject(AXPQueryRegistry);\n for (const mw of global) {\n registry.use(mw);\n }\n return true;\n }\n }\n ]);\n} ","import { EnvironmentInjector, EnvironmentProviders, inject, InjectionToken, makeEnvironmentProviders, Provider, Type } from '@angular/core';\nimport { AXPQueryRegistry } from './query.registry';\nimport { AXPQuery } from '@acorex-platform/framework-shared/runtime';\n\nexport const AXP_QUERY_SETUP = new InjectionToken<void>('AXP_QUERY_SETUP');\n\ntype AXPQueryLoaderEntry = {\n key: string,\n loader: () => Type<AXPQuery> | Promise<Type<AXPQuery>>;\n};\n\nexport function provideQuerySetups(\n entries: AXPQueryLoaderEntry[]\n): EnvironmentProviders {\n return makeEnvironmentProviders([\n {\n provide: AXP_QUERY_SETUP,\n useFactory: () => {\n const registry = inject(AXPQueryRegistry);\n const injector = inject(EnvironmentInjector);\n\n for (const entry of entries) {\n registry.register(entry.key, async () => {\n const CommandType = await entry.loader();\n return injector.get(CommandType);\n });\n }\n\n return true;\n },\n multi: true\n }\n ]);\n} ","//#region ---- Imports ----\n\nimport { inject, Injectable } from '@angular/core';\nimport { AXPBroadcastEventService } from '@acorex-platform/framework-client/core';\nimport { AXPDistributedEventListenerService } from '@acorex-platform/framework-client/core';\n\n//#endregion\n\n//#region ---- Types ----\n\nexport type AXPQueryExecutionStage = 'before' | 'after';\n\nexport interface AXPQueryExecutionEvent<TInput = unknown, TResult = unknown> {\n executionId: string;\n stage: AXPQueryExecutionStage;\n key: string;\n input: TInput;\n success?: boolean;\n result?: TResult | null;\n error?: unknown;\n durationMs?: number;\n}\n\ntype QueryExecutionHandler<TInput, TResult> = (event: AXPQueryExecutionEvent<TInput, TResult>) => void;\n\n//#endregion\n\nconst QUERY_EXECUTION_EVENT_KEY = '@queries:execution';\n\n@Injectable({ providedIn: 'root' })\nexport class AXPQueryEventsService {\n //#region ---- Services & Dependencies ----\n\n private readonly broadcast = inject(AXPBroadcastEventService);\n private readonly distributedEvents = inject(AXPDistributedEventListenerService, { optional: true });\n\n //#endregion\n\n //#region ---- Public API ----\n\n listen<TInput = unknown, TResult = unknown>(\n handler: QueryExecutionHandler<TInput, TResult>,\n ): () => void {\n const subscription = this.broadcast\n .listen<AXPQueryExecutionEvent<TInput, TResult>>(QUERY_EXECUTION_EVENT_KEY)\n .subscribe(({ data }) => handler(data));\n\n return () => subscription.unsubscribe();\n }\n\n async emit<TInput = unknown, TResult = unknown>(\n event: AXPQueryExecutionEvent<TInput, TResult>,\n ): Promise<void> {\n const safePayload = this.serializeForBroadcast(event);\n this.broadcast.publish(QUERY_EXECUTION_EVENT_KEY, safePayload);\n await this.distributedEvents?.dispatch(QUERY_EXECUTION_EVENT_KEY, safePayload);\n }\n\n //#endregion\n\n //#region ---- Broadcast payload ----\n\n private serializeForBroadcast<TInput, TResult>(\n event: AXPQueryExecutionEvent<TInput, TResult>,\n ): AXPQueryExecutionEvent {\n return {\n executionId: event.executionId,\n stage: event.stage,\n key: event.key,\n success: event.success,\n durationMs: event.durationMs,\n input: this.stripNonSerializable(event.input),\n result: event.result === undefined || event.result === null\n ? event.result\n : (this.stripNonSerializable(event.result) as TResult),\n error:\n event.error instanceof Error\n ? { name: event.error.name, message: event.error.message }\n : this.stripNonSerializable(event.error),\n };\n }\n\n private stripNonSerializable(value: unknown): unknown {\n const seen = new WeakSet<object>();\n\n const walk = (v: unknown): unknown => {\n if (v === null || v === undefined) {\n return v;\n }\n const t = typeof v;\n if (t === 'function' || t === 'symbol') {\n return undefined;\n }\n if (t === 'bigint') {\n return v.toString();\n }\n if (t !== 'object') {\n return v;\n }\n if (v instanceof Date) {\n return v.toISOString();\n }\n if (Array.isArray(v)) {\n if (seen.has(v)) {\n return '[Circular]';\n }\n seen.add(v);\n return v.map((item) => walk(item)).filter((item) => item !== undefined);\n }\n if (seen.has(v)) {\n return '[Circular]';\n }\n seen.add(v);\n const obj = v as Record<string, unknown>;\n const out: Record<string, unknown> = {};\n for (const key of Object.keys(obj)) {\n const child = walk(obj[key]);\n if (child !== undefined) {\n out[key] = child;\n }\n }\n return out;\n };\n\n return walk(value);\n }\n\n //#endregion\n}\n","// queries/query.middleware.ts\nexport type AXPQueryMiddleware<TInput = any, TResult = any> = (\n input: TInput,\n next: (input: TInput) => Promise<TResult>\n) => Promise<TResult>;\n\nexport function composeQueryMiddlewares<TInput, TResult>(\n middlewares: AXPQueryMiddleware<TInput, TResult>[]\n): (handler: (input: TInput) => Promise<TResult>) => (input: TInput) => Promise<TResult> {\n return (handler: (input: TInput) => Promise<TResult>) => {\n let composed = handler;\n\n for (let i = middlewares.length - 1; i >= 0; i--) {\n const mw = middlewares[i];\n const next = composed;\n\n composed = (input: TInput) => mw(input, next);\n }\n\n return composed;\n };\n}\n","import { Injectable, EnvironmentInjector, inject, runInInjectionContext } from '@angular/core';\nimport { AXPHookService } from '@acorex-platform/framework-client/core';\nimport { AXPQueryMiddleware, composeQueryMiddlewares } from './query.middleware';\nimport { AXPQueryRegistry } from './query.registry';\nimport { AXP_QUERY_EXTENSION } from './query.extension.token';\nimport { AXPQueryEventsService, AXPQueryExecutionEvent } from './query-events.service';\nimport {\n AXPRuntimeRemoteHookKeys,\n type AXPRuntimeQueryExecuteHookPayload,\n} from '../runtime-remote.hooks';\n\n@Injectable({ providedIn: 'root' })\nexport class AXPQueryExecutor {\n private readonly injector = inject(EnvironmentInjector);\n private readonly registry = inject(AXPQueryRegistry);\n private readonly extensions = inject(AXP_QUERY_EXTENSION, { optional: true });\n private readonly queryEvents = inject(AXPQueryEventsService);\n private readonly hooks = inject(AXPHookService);\n\n async fetch<TInput = any, TResult = any>(key: string, input: TInput): Promise<TResult | null> {\n if (this.registry.exists(key)) {\n return this.fetchLocal<TInput, TResult>(key, input);\n }\n\n return this.fetchRemote<TInput, TResult>(key, input);\n }\n\n private async fetchLocal<TInput, TResult>(key: string, input: TInput): Promise<TResult | null> {\n const loader = this.registry.getLoader(key);\n if (!loader) {\n throw new Error(`Query '${key}' is not registered`);\n }\n\n const query = await loader();\n const handler = (i: TInput) => query.fetch(i);\n\n const pluginMiddlewares = this.getPluginMiddlewares(key);\n const globalMiddlewares = this.registry.getMiddlewares();\n\n const wrappedMiddlewares = [...globalMiddlewares, ...pluginMiddlewares].map((middleware) => {\n return (input: TInput, next: (input: TInput) => Promise<TResult>) =>\n runInInjectionContext(this.injector, () => middleware(input, next));\n });\n\n const composed = composeQueryMiddlewares(wrappedMiddlewares)(handler);\n\n return this.runWithEvents(key, input, () => composed(input));\n }\n\n private async fetchRemote<TInput, TResult>(key: string, input: TInput): Promise<TResult | null> {\n return this.runWithEvents(key, input, async () => {\n const payload = await this.hooks.runAsync<AXPRuntimeQueryExecuteHookPayload>(\n AXPRuntimeRemoteHookKeys.QueryExecute,\n { name: key, input },\n );\n\n if (!payload.handled) {\n throw new Error(`Query '${key}' is not registered and no remote handler is available`);\n }\n\n return (payload.result ?? null) as TResult | null;\n });\n }\n\n private async runWithEvents<TInput, TResult>(\n key: string,\n input: TInput,\n run: () => Promise<TResult | null>,\n ): Promise<TResult | null> {\n const executionId = crypto.randomUUID();\n const startedAt = performance.now();\n\n const beforeEvent = {\n executionId,\n stage: 'before' as const,\n key,\n input,\n } satisfies AXPQueryExecutionEvent<TInput>;\n\n await this.queryEvents.emit(beforeEvent);\n\n try {\n const result = await run();\n const durationMs = Math.round(performance.now() - startedAt);\n\n const afterEvent = {\n executionId,\n stage: 'after' as const,\n key,\n input,\n success: true,\n result,\n durationMs,\n } satisfies AXPQueryExecutionEvent<TInput, TResult>;\n\n await this.queryEvents.emit(afterEvent);\n\n return result;\n } catch (error) {\n const durationMs = Math.round(performance.now() - startedAt);\n\n const afterEvent = {\n executionId,\n stage: 'after' as const,\n key,\n input,\n success: false,\n error,\n durationMs,\n } satisfies AXPQueryExecutionEvent<TInput, TResult>;\n\n await this.queryEvents.emit(afterEvent);\n\n throw error;\n }\n }\n\n private getPluginMiddlewares(key: string): AXPQueryMiddleware[] {\n return (\n this.extensions\n ?.filter((ext) => (ext.target instanceof RegExp ? ext.target.test(key) : ext.target === key))\n .map((ext) => ext.middleware) ?? []\n );\n }\n}\n","import { Injectable, inject } from '@angular/core';\nimport { AXPQuery } from '@acorex-platform/framework-shared/runtime';\nimport { AXPQueryMiddleware } from './query.middleware';\nimport { AXPQueryRegistry } from './query.registry';\nimport { AXPQueryExecutor } from './query.executor';\n\n@Injectable({ providedIn: 'root' })\nexport class AXPQueryService {\n private readonly registry = inject(AXPQueryRegistry);\n private readonly executor = inject(AXPQueryExecutor);\n\n // Registry methods\n register(key: string, loader: () => Promise<AXPQuery>): void {\n this.registry.register(key, loader);\n }\n\n unregister(key: string): boolean {\n return this.registry.unregister(key);\n }\n\n use(middleware: AXPQueryMiddleware): void {\n this.registry.use(middleware);\n }\n\n exists(key: string): boolean {\n return this.registry.exists(key);\n }\n\n getRegisteredKeys(): string[] {\n return this.registry.getRegisteredKeys();\n }\n\n clear(): void {\n this.registry.clear();\n }\n\n // Executor methods\n async fetch<TInput = any, TResult = any>(\n key: string,\n input: TInput\n ): Promise<TResult | null> {\n return this.executor.fetch<TInput, TResult>(key, input);\n }\n} ","import { AXPViewDefinition } from '@acorex-platform/framework-shared/core';\n\nexport type AXPViewMiddleware<TInput = any> = (\n input: TInput,\n next: (input: TInput) => Promise<AXPViewDefinition>\n) => Promise<AXPViewDefinition>;\n\nexport function composeViewMiddlewares<TInput>(\n middlewares: AXPViewMiddleware<TInput>[]\n): (handler: (input: TInput) => Promise<AXPViewDefinition>) => (input: TInput) => Promise<AXPViewDefinition> {\n return (handler: (input: TInput) => Promise<AXPViewDefinition>) => {\n let composed = handler;\n\n for (let i = middlewares.length - 1; i >= 0; i--) {\n const mw = middlewares[i];\n const next = composed;\n\n composed = (input: TInput) => mw(input, next);\n }\n\n return composed;\n };\n} ","import { Injectable } from '@angular/core';\nimport { AXPViewProvider } from '@acorex-platform/framework-shared/runtime';\nimport { AXPViewMiddleware } from './view.middleware';\n\n@Injectable({ providedIn: 'root' })\nexport class AXPViewRegistry {\n private registry = new Map<string, () => Promise<AXPViewProvider>>();\n private middlewares: AXPViewMiddleware[] = [];\n\n register(key: string, loader: () => Promise<AXPViewProvider>): void {\n this.registry.set(key, loader);\n }\n\n unregister(key: string): boolean {\n return this.registry.delete(key);\n }\n\n use(middleware: AXPViewMiddleware): void {\n this.middlewares.push(middleware);\n }\n\n exists(key: string): boolean {\n return this.registry.has(key);\n }\n\n getLoader(key: string): (() => Promise<AXPViewProvider>) | undefined {\n return this.registry.get(key);\n }\n\n getMiddlewares(): readonly AXPViewMiddleware[] {\n return [...this.middlewares];\n }\n\n getRegisteredKeys(): string[] {\n return Array.from(this.registry.keys());\n }\n\n clear(): void {\n this.registry.clear();\n this.middlewares.length = 0;\n }\n} ","import { InjectionToken } from '@angular/core';\nimport { AXPViewMiddleware } from './view.middleware';\n\nexport interface AXPViewExtension {\n target: string | RegExp;\n middleware: AXPViewMiddleware;\n}\n\nexport const AXP_VIEW_EXTENSION = new InjectionToken<AXPViewExtension[]>('AXP_VIEW_EXTENSION'); ","import { Injectable, EnvironmentInjector, inject, runInInjectionContext } from '@angular/core';\nimport { AXPViewMiddleware, composeViewMiddlewares } from './view.middleware';\nimport { AXPViewRegistry } from './view.registry';\nimport { AXP_VIEW_EXTENSION } from './view.extension.token';\nimport { AXPViewDefinition } from '@acorex-platform/framework-shared/core';\n\n@Injectable({ providedIn: 'root' })\nexport class AXPViewExecutor {\n private readonly injector = inject(EnvironmentInjector);\n private readonly registry = inject(AXPViewRegistry);\n private readonly extensions = inject(AXP_VIEW_EXTENSION, { optional: true });\n\n async provide<TInput = any>(\n key: string,\n input: TInput\n ): Promise<AXPViewDefinition | null> {\n const loader = this.registry.getLoader(key);\n if (!loader) {\n return null;\n }\n\n const provider = await loader();\n const handler = (i: TInput) => provider.provide(i);\n\n const pluginMiddlewares = this.getPluginMiddlewares(key);\n const globalMiddlewares = this.registry.getMiddlewares();\n\n const wrappedMiddlewares = [...globalMiddlewares, ...pluginMiddlewares].map(middleware => {\n return (input: TInput, next: (input: TInput) => Promise<AXPViewDefinition>) =>\n runInInjectionContext(this.injector, () => middleware(input, next));\n });\n\n const composed = composeViewMiddlewares(wrappedMiddlewares)(handler);\n return composed(input);\n }\n\n private getPluginMiddlewares(key: string): AXPViewMiddleware[] {\n return this.extensions\n ?.filter(ext => ext.target instanceof RegExp ? ext.target.test(key) : ext.target === key)\n .map(ext => ext.middleware) ?? [];\n }\n} ","import { Injectable, inject } from '@angular/core';\nimport { AXPViewProvider } from '@acorex-platform/framework-shared/runtime';\nimport { AXPViewMiddleware } from './view.middleware';\nimport { AXPViewRegistry } from './view.registry';\nimport { AXPViewExecutor } from './view.executor';\nimport { AXPViewDefinition } from '@acorex-platform/framework-shared/core';\n\n@Injectable({ providedIn: 'root' })\nexport class AXPViewService {\n private readonly registry = inject(AXPViewRegistry);\n private readonly executor = inject(AXPViewExecutor);\n\n //#region ---- Registry Methods ----\n\n register(key: string, loader: () => Promise<AXPViewProvider>): void {\n this.registry.register(key, loader);\n }\n\n unregister(key: string): boolean {\n return this.registry.unregister(key);\n }\n\n use(middleware: AXPViewMiddleware): void {\n this.registry.use(middleware);\n }\n\n exists(key: string): boolean {\n return this.registry.exists(key);\n }\n\n getRegisteredKeys(): string[] {\n return this.registry.getRegisteredKeys();\n }\n\n clear(): void {\n this.registry.clear();\n }\n\n //#endregion\n\n //#region ---- Executor Methods ----\n\n async provide<TInput = any>(\n key: string,\n input: TInput\n ): Promise<AXPViewDefinition | null> {\n return this.executor.provide<TInput>(key, input);\n }\n\n //#endregion\n} ","import { EnvironmentProviders, inject, InjectionToken, makeEnvironmentProviders, Provider } from '@angular/core';\nimport { AXPViewRegistry } from './view.registry';\nimport { AXPViewProvider } from '@acorex-platform/framework-shared/runtime';\n\nexport const AXP_VIEW_SETUP = new InjectionToken<void>('AXP_VIEW_SETUP');\n\nexport function provideViewSetups(providers: Provider[]): EnvironmentProviders {\n return makeEnvironmentProviders([\n ...providers,\n {\n provide: AXP_VIEW_SETUP,\n useFactory: () => {\n const registry = inject(AXPViewRegistry);\n\n // Setup will be handled by the provided registration functions\n return;\n },\n multi: true\n }\n ]);\n}\n\nexport function provideViewSetup(\n key: string,\n loader: () => Promise<AXPViewProvider>\n): Provider {\n return {\n provide: AXP_VIEW_SETUP,\n useFactory: () => {\n const registry = inject(AXPViewRegistry);\n registry.register(key, loader);\n return;\n },\n multi: true\n };\n} ","import { AXPPolicyEngineContext } from \"./policy.interface\";\n\nexport type AXPPolicyEngineMiddleware = (\n context: AXPPolicyEngineContext,\n next: (context: AXPPolicyEngineContext) => Promise<void>,\n) => Promise<void>;\n\nexport function composePolicyEngineMiddlewares(\n middlewares: AXPPolicyEngineMiddleware[]\n): (handler: (context: AXPPolicyEngineContext) => Promise<void>) => (context: AXPPolicyEngineContext) => Promise<void> {\n return (handler) => {\n let composed = handler;\n for (let i = middlewares.length - 1; i >= 0; i--) {\n const mw = middlewares[i];\n const next = composed;\n composed = (context: AXPPolicyEngineContext) => mw(context, next);\n }\n return composed;\n };\n} ","import { AXPPolicyOptions } from \"./policy.types\";\n\nexport interface AXPPolicy {\n apply(context: AXPPolicyEngineContext): Promise<void>;\n}\n\n\nexport class AXPPolicyEngineContext {\n\n private _id: string;\n private _sender: AXPPolicyOptions['sender'];\n private _visible = true;\n private _enabled = true;\n\n constructor(options: AXPPolicyOptions) {\n this._id = options.id;\n this._sender = options.sender;\n }\n\n public get sender(): AXPPolicyOptions['sender'] {\n return this._sender;\n }\n\n public get id() {\n return this._id;\n }\n\n public get visible() {\n return this._visible;\n }\n\n public get enabled() {\n return this._enabled;\n }\n\n setVisible(visible: boolean) {\n this._visible = visible;\n return this;\n }\n setEnabled(enabled: boolean) {\n this._enabled = enabled;\n return this;\n }\n} \n","// plugins/command.extension.token.ts\nimport { InjectionToken } from '@angular/core';\nimport { AXPPolicyEngineMiddleware } from './policy.middleware';\n\nexport interface AXPPolicyExtension {\n key: string;\n middleware: AXPPolicyEngineMiddleware;\n}\n\nexport const AXP_POLICY_EXTENSION = new InjectionToken<AXPPolicyExtension[]>('AXP_POLICY_EXTENSION');\n","import { EnvironmentInjector, Inject, inject, Injectable, Optional, runInInjectionContext } from '@angular/core';\nimport { AXPPolicyEngineMiddleware, composePolicyEngineMiddlewares } from './policy.middleware';\nimport { AXPPolicyEngineContext } from './policy.interface';\nimport { AXPPolicyOptions } from './policy.types';\nimport { AXPPolicy } from './policy.interface';\nimport { AXP_POLICY_EXTENSION } from './policy.extension.token';\nimport { AXPPolicyExtension } from './policy.extension.token';\n\n@Injectable({ providedIn: 'root' })\nexport class AXPPolicyEngineRegistry {\n private registry = new Map<string, () => Promise<AXPPolicy>>();\n private middlewares: AXPPolicyEngineMiddleware[] = [];\n private extensions = inject(AXP_POLICY_EXTENSION, { optional: true });\n\n private injector = inject(EnvironmentInjector);\n\n\n use(mw: AXPPolicyEngineMiddleware): void {\n this.middlewares.push(mw);\n }\n\n exists(key: string): boolean {\n return this.registry.has(key);\n }\n\n getPolicies(): string[] {\n return Array.from(this.registry.keys());\n }\n\n register(key: string, loader: () => Promise<AXPPolicy>): void {\n this.registry.set(key, loader);\n }\n\n\n private getPluginMiddlewares(key: string): AXPPolicyEngineMiddleware[] {\n return this.extensions\n ?.filter(ext => ext.key === key)\n .map(ext => ext.middleware) ?? [];\n }\n\n\n\n async execute(\n policy: string,\n instance: AXPPolicyOptions\n ): Promise<AXPPolicyEngineContext> {\n const loader = this.registry.get(policy);\n if (!loader) {\n throw new Error(`${policy} not implemented`);\n }\n const context = new AXPPolicyEngineContext(instance);\n const applier = await loader();\n const handler = (i: AXPPolicyEngineContext) => applier.apply(i);\n\n const pluginMws = this.getPluginMiddlewares(policy);\n\n const wrappedMws = [...this.middlewares, ...pluginMws].map(mw => {\n return (input: AXPPolicyEngineContext, next: (input: AXPPolicyEngineContext) => Promise<void>) =>\n runInInjectionContext(this.injector, () => mw(input, next));\n });\n\n const composed = composePolicyEngineMiddlewares(wrappedMws)(handler);\n await composed(context);\n return context;\n }\n} ","import { inject, Injectable } from \"@angular/core\";\nimport { AXPPolicyEngineRegistry } from \"./policy.registry\";\nimport { AXPPolicyOptions } from \"./policy.types\";\n\n@Injectable({\n providedIn: 'root'\n})\nexport class AXPPolicyEngineService {\n private registry = inject(AXPPolicyEngineRegistry);\n\n\n\n async apply(options: AXPPolicyOptions) {\n const allPolicies = this.registry.getPolicies().filter(p => (options.policies?.length ?? 0) == 0 || options.policies?.includes(p));\n\n await Promise.all(allPolicies.map(async policy => {\n const context = await this.registry.execute(policy, options);\n return context;\n }));\n\n\n\n //\n // if (instance instanceof HTMLElement) {\n // if (context.visible === false) {\n // instance.style.display = 'none';\n // } else {\n // instance.style.display = '';\n // }\n // }\n // //\n // if (instance instanceof MXBaseComponent) {\n // if (context.visible === false) {\n // instance.getHostElement().style.display = 'none';\n // } else {\n // instance.getHostElement().style.display = '';\n // }\n // }\n // // Handle disabled state for interactive components\n // if (instance instanceof MXInteractiveComponent) {\n // if (context.enabled === false) {\n // instance.disabled = true;\n // } else {\n // instance.disabled = false;\n // }\n // }\n // // TODO: Handle object properties \n // if (instance instanceof Object) {\n // if (context.visible === false) {\n // set(instance, 'visible', false);\n // }\n // if (context.enabled === false) {\n // set(instance, 'disabled', true);\n // }\n // }\n }\n\n\n\n}\n","import { Directive, ElementRef, input, effect, inject } from '@angular/core';\nimport { AXPPolicyEngineService } from './policy.service';\nimport { castArray } from 'lodash-es';\n\n@Directive({\n selector: '[axp-apply-policy]',\n standalone: true\n})\nexport class AXPPolicyEngineDirective {\n policy = input.required<string | undefined | null>({ alias: 'axp-apply-policy' });\n private service = inject(AXPPolicyEngineService);\n private elementRef = inject(ElementRef<HTMLElement>);\n\n\n #eff = effect(async () => {\n const policy = this.policy();\n if (!policy) {\n return;\n }\n await this.service.apply({\n id: this.elementRef.nativeElement.id,\n policies: castArray(policy),\n sender: this.elementRef.nativeElement\n });\n });\n\n}\n","import { EnvironmentInjector, EnvironmentProviders, inject, InjectionToken, makeEnvironmentProviders, Type } from '@angular/core';\nimport { AXPPolicyEngineRegistry } from './policy.registry';\nimport { AXPPolicy } from './policy.interface';\n\nexport const AXP_POLICY_ENGINE_MIDDLEWARE_SETUP = new InjectionToken<void>('AXP_POLICY_ENGINE_MIDDLEWARE_SETUP');\n\n\n\ntype AXPPolicyLoader = {\n key: string;\n policy: () => Type<AXPPolicy> | Promise<Type<AXPPolicy>>;\n};\n\n\nexport function providePolicySetups(entries: AXPPolicyLoader[]): EnvironmentProviders {\n return makeEnvironmentProviders([\n {\n provide: AXP_POLICY_ENGINE_MIDDLEWARE_SETUP,\n useFactory: () => {\n const registry = inject(AXPPolicyEngineRegistry);\n const injector = inject(EnvironmentInjector);\n\n for (const entry of entries) {\n registry.register(entry.key, async () => {\n const PolicyType = await entry.policy();\n return injector.get(PolicyType);\n });\n }\n\n return true;\n }\n }\n ]);\n}","import { EnvironmentProviders, inject, InjectionToken, makeEnvironmentProviders, Provider } from '@angular/core';\nimport { AXPViewRegistry } from './view.registry';\nimport { AXPViewMiddleware } from './view.middleware';\n\nexport const AXP_VIEW_MIDDLEWARE_SETUP = new InjectionToken<void>('AXP_VIEW_MIDDLEWARE_SETUP');\n\nexport function provideViewMiddleware(middlewares: AXPViewMiddleware[]): EnvironmentProviders {\n return makeEnvironmentProviders([\n {\n provide: AXP_VIEW_MIDDLEWARE_SETUP,\n useFactory: () => {\n const registry = inject(AXPViewRegistry);\n middlewares.forEach(middleware => registry.use(middleware));\n return;\n },\n multi: true\n }\n ]);\n}\n\nexport function provideViewMiddlewareSetup(\n middleware: AXPViewMiddleware\n): Provider {\n return {\n provide: AXP_VIEW_MIDDLEWARE_SETUP,\n useFactory: () => {\n const registry = inject(AXPViewRegistry);\n registry.use(middleware);\n return;\n },\n multi: true\n };\n} ","import { NgModule, Inject, isDevMode, Optional, inject } from \"@angular/core\";\nimport { AXP_COMMAND_SETUP } from \"./commands/provide-command-setups\";\nimport { AXP_COMMAND_MIDDLEWARE_SETUP } from \"./commands/provide-command-middleware\";\nimport { AXP_QUERY_SETUP } from \"./queries/provide-query-setups\";\nimport { AXP_QUERY_MIDDLEWARE_SETUP } from \"./queries/provide-query-middleware\";\nimport { AXP_VIEW_SETUP } from \"./views/provide-view-setups\";\nimport { AXP_VIEW_MIDDLEWARE_SETUP } from \"./views/provide-view-middleware\";\nimport { AXP_POLICY_ENGINE_MIDDLEWARE_SETUP } from \"./policy/policy-middleware-provider\";\n\n@NgModule()\nexport class AXPRuntimeModule {\n\n private _commandSetup = inject(AXP_COMMAND_SETUP, { optional: true });\n private _commandMiddlewareSetup = inject(AXP_COMMAND_MIDDLEWARE_SETUP, { optional: true });\n\n private _querySetup = inject(AXP_QUERY_SETUP, { optional: true });\n private _queryMiddlewareSetup = inject(AXP_QUERY_MIDDLEWARE_SETUP, { optional: true });\n\n private _viewSetup = inject(AXP_VIEW_SETUP, { optional: true });\n private _viewMiddlewareSetup = inject(AXP_VIEW_MIDDLEWARE_SETUP, { optional: true });\n\n private _policyEngineSetup = inject(AXP_POLICY_ENGINE_MIDDLEWARE_SETUP, { optional: true });\n\n constructor() {\n if (isDevMode() && false) {\n console.log('[AXPRuntimeModule] Command Setup:', this._commandSetup);\n console.log('[AXPRuntimeModule] Command Middleware Setup:', this._commandMiddlewareSetup);\n console.log('[AXPRuntimeModule] Query Setup:', this._querySetup);\n console.log('[AXPRuntimeModule] Query Middleware Setup:', this._queryMiddlewareSetup);\n console.log('[AXPRuntimeModule] View Setup:', this._viewSetup);\n console.log('[AXPRuntimeModule] View Middleware Setup:', this._viewMiddlewareSetup);\n console.log('[AXPRuntimeModule] Policy Engine Setup:', this._policyEngineSetup);\n }\n }\n}\n","// Commands\nexport * from './lib/commands';\n\n// Queries\nexport * from './lib/queries';\n\n// Views\nexport * from './lib/views';\n\n// Policy\nexport * from './lib/policy';\n\n// Runtime\nexport * from './lib/runtime.module';\nexport * from './lib/runtime-remote.hooks';\n\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -0,0 +1,158 @@
1
+ import * as i3 from '@acorex/components/button';
2
+ import { AXButtonModule } from '@acorex/components/button';
3
+ import * as i2 from '@acorex/components/decorators';
4
+ import { AXDecoratorModule } from '@acorex/components/decorators';
5
+ import { AXDialogModule } from '@acorex/components/dialog';
6
+ import * as i6 from '@acorex/components/dropdown-button';
7
+ import { AXDropdownButtonModule } from '@acorex/components/dropdown-button';
8
+ import * as i1 from '@acorex/components/form';
9
+ import { AXFormModule } from '@acorex/components/form';
10
+ import * as i5 from '@acorex/components/label';
11
+ import { AXLabelModule } from '@acorex/components/label';
12
+ import * as i4 from '@acorex/components/loading';
13
+ import { AXLoadingModule } from '@acorex/components/loading';
14
+ import { AXBasePageComponent } from '@acorex/components/page';
15
+ import { AXTabsModule } from '@acorex/components/tabs';
16
+ import { AXTooltipModule } from '@acorex/components/tooltip';
17
+ import * as i1$2 from '@angular/common';
18
+ import { CommonModule } from '@angular/common';
19
+ import * as i0 from '@angular/core';
20
+ import { viewChild, inject, signal, effect, ChangeDetectionStrategy, Component } from '@angular/core';
21
+ import { FormsModule } from '@angular/forms';
22
+ import { AXValidationModule } from '@acorex/core/validation';
23
+ import { AXDropdownModule } from '@acorex/components/dropdown';
24
+ import { AXToastService } from '@acorex/components/toast';
25
+ import * as i3$1 from '@acorex/core/translation';
26
+ import { AXTranslationService, AXTranslationModule } from '@acorex/core/translation';
27
+ import * as i1$1 from '@acorex-platform/framework-client/core';
28
+ import { AXPExpressionEvaluatorService, AXPComponentSlotModule, AXPGridLayoutDirective, AXPContextStore } from '@acorex-platform/framework-client/core';
29
+ import * as i7 from '@acorex-platform/framework-client/layout/widget-core';
30
+ import { AXPWidgetContainerComponent, AXPWidgetCoreModule } from '@acorex-platform/framework-client/layout/widget-core';
31
+ import { AXPWidgetsModule } from '@acorex-platform/framework-client/layout/widgets';
32
+ import { get } from 'lodash-es';
33
+
34
+ class AXPEntityMasterCreateViewComponent extends AXBasePageComponent {
35
+ constructor() {
36
+ super(...arguments);
37
+ this.container = viewChild(AXPWidgetContainerComponent, ...(ngDevMode ? [{ debugName: "container" }] : /* istanbul ignore next */ []));
38
+ this.evaluator = inject(AXPExpressionEvaluatorService);
39
+ this.toastService = inject(AXToastService);
40
+ this.translationService = inject(AXTranslationService);
41
+ this.hiddenProperties = signal([], ...(ngDevMode ? [{ debugName: "hiddenProperties" }] : /* istanbul ignore next */ []));
42
+ this.#visibilityEffect = effect(async () => {
43
+ const formContext = this.vm.context();
44
+ const allElements = this.vm.sections().flatMap((section) => section.elements());
45
+ const visibilityConfig = allElements.map((element) => ({
46
+ name: element.name(),
47
+ visible: element.isVisible(),
48
+ }));
49
+ const evaluatedElements = await this.evaluator.evaluate(visibilityConfig, {
50
+ context: {
51
+ eval: (path) => get(formContext, path),
52
+ },
53
+ });
54
+ const hiddenElementNames = evaluatedElements
55
+ .filter((element) => element.visible == false)
56
+ .map((element) => element.name);
57
+ this.hiddenProperties.set(hiddenElementNames);
58
+ }, ...(ngDevMode ? [{ debugName: "#visibilityEffect" }] : /* istanbul ignore next */ []));
59
+ }
60
+ ngAfterViewInit() {
61
+ this.vm.builder = this.container().builderService;
62
+ }
63
+ #visibilityEffect;
64
+ handleCloseClick() {
65
+ this.close();
66
+ }
67
+ async handleBackClick() {
68
+ //await this.vm.executeCommand('back');
69
+ }
70
+ async handleNextClick(form) {
71
+ // const formResult = await form.validate();
72
+ // if (formResult.result) {
73
+ // await this.vm.executeCommand('next');
74
+ // }
75
+ }
76
+ async handleSaveClick(form) {
77
+ const formResult = await form.validate();
78
+ if (formResult.result) {
79
+ try {
80
+ const record = await this.vm.save();
81
+ this.close({ save: true, recordId: record?.id, item: record, redirect: this.vm.redirect() });
82
+ }
83
+ catch (error) {
84
+ const errorMessage = error?.message ||
85
+ error?.toString() ||
86
+ (await this.translationService.translateAsync('@general:messages.generic.error.description'));
87
+ // this.toastService.show({
88
+ // color: 'danger',
89
+ // title: await this.translationService.translateAsync('@general:messages.generic.error.title'),
90
+ // content: errorMessage,
91
+ // location: 'bottom-center',
92
+ // closeButton: true,
93
+ // timeOut: 5000,
94
+ // timeOutProgress: true,
95
+ // });
96
+ }
97
+ }
98
+ }
99
+ async handleSaveAndNewClick(form) {
100
+ const formResult = await form.validate();
101
+ if (formResult.result) {
102
+ try {
103
+ const record = await this.vm.save();
104
+ this.close({ save: true, recordId: record?.id, item: record, redirect: false });
105
+ await this.vm.createNewOne();
106
+ }
107
+ catch (error) {
108
+ const errorMessage = error?.message ||
109
+ error?.toString() ||
110
+ (await this.translationService.translateAsync('@general:messages.generic.error.description'));
111
+ // this.toastService.show({
112
+ // color: 'danger',
113
+ // title: await this.translationService.translateAsync('@general:messages.generic.error.title'),
114
+ // content: errorMessage,
115
+ // location: 'bottom-center',
116
+ // closeButton: true,
117
+ // timeOut: 5000,
118
+ // timeOutProgress: true,
119
+ // });
120
+ }
121
+ }
122
+ }
123
+ async handleContextChange(e) {
124
+ this.vm.context.set(e.data);
125
+ }
126
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPEntityMasterCreateViewComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
127
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.9", type: AXPEntityMasterCreateViewComponent, isStandalone: true, selector: "ng-component", providers: [AXPContextStore], viewQueries: [{ propertyName: "container", first: true, predicate: AXPWidgetContainerComponent, descendants: true, isSignal: true }], usesInheritance: true, ngImport: i0, template: "<axp-component-slot name=\"entity-create-header\" [context]=\"vm.context()\"></axp-component-slot>\n<axp-widgets-container [context]=\"vm.context()\" (onContextChanged)=\"handleContextChange($event)\">\n <ax-form id=\"axp-entity-form-create\" class=\"flex flex-col gap-6 p-4 pb-8\" #form [messageStyle]=\"'bottom'\"\n [updateOn]=\"'blur'\">\n <!-- Begin Sections -->\n <div class=\"grid grid-cols-12 gap-4\">\n @for (section of vm.sections(); track section.name()) {\n <div [axp-grid-layout]=\"section.layout()\">\n <ax-form #form>\n @if (vm.sections().length > 1 && !section.description()) {\n <div class=\"pb-4\">\n <span class=\"font-bold text-xl\">{{ section.title() | translate | async }}</span>\n @if (section.description()) {\n <p class=\"text-sm text-gray-500\">{{ section.description() }}</p>\n }\n </div>\n }\n <div class=\"card-body grid! grid-cols-12! gap-4!\">\n @for (attr of section.elements(); track $index) {\n <ax-form-field [attr.id]=\"'axp-field-' + attr.name()\" class=\"flex flex-col gap-1\"\n [axp-grid-layout]=\"attr.layout()\" [class.hidden]=\"hiddenProperties().includes(attr.name())\">\n @if (attr.layout().label?.visible != false) {\n <ax-label class=\"font-semibold text-sm\" [required]=\"attr.isRequired()\">\n @if (attr.title()) {\n {{ attr.title() | translate | async }}\n } @else {\n &nbsp;\n }\n </ax-label>\n }\n <ng-container axp-widget-renderer [node]=\"attr.node()\" [mode]=\"'edit'\"\n #widget=\"widgetRenderer\"></ng-container>\n @if (attr.description()) {\n <p class=\"text-sm mt-1 font-normal opacity-75\">\n {{ attr.description() | translate | async }}\n </p>\n }\n </ax-form-field>\n }\n </div>\n </ax-form>\n </div>\n }\n </div>\n <!-- Finish Sections -->\n <ax-validation-summary [displayMode]=\"'toast'\" [autoHide]=\"true\"></ax-validation-summary>\n </ax-form>\n</axp-widgets-container>\n@if (slot.isEmpty()) {\n<ax-footer id=\"axp-entity-footer-create\">\n <ax-prefix>\n <axp-component-slot name=\"entity-create-footer-prefix\" [context]=\"vm.context()\"></axp-component-slot>\n </ax-prefix>\n <ax-suffix>\n <ax-button id=\"axp-btn-cancel\" look=\"solid\" [color]=\"'default'\"\n [text]=\"'@general:actions.cancel.title' | translate | async\" (onClick)=\"handleCloseClick()\">\n </ax-button>\n @if (vm.canCreateNewOne()) {\n <ax-dropdown-button id=\"axp-btn-save\" [disabled]=\"vm.isInProgress()\" color=\"primary\"\n [text]=\"'@general:actions.save.title' | translate | async\" look=\"solid\" (onClick)=\"handleSaveClick(form)\">\n @if (vm.isInProgress()) {\n <ax-loading></ax-loading>\n }\n <ax-button-item-list>\n <ax-button-item id=\"axp-btn-save-and-new\"\n [text]=\"('@general:actions.save-and-new.title' | translate | async) ?? ''\"\n (onClick)=\"handleSaveAndNewClick(form)\">\n </ax-button-item>\n </ax-button-item-list>\n </ax-dropdown-button>\n } @else {\n <ax-button id=\"axp-btn-save\" look=\"solid\" color=\"primary\" [text]=\"'@general:actions.save.title' | translate | async\"\n (onClick)=\"handleSaveClick(form)\">\n @if (vm.isInProgress()) {\n <ax-loading></ax-loading>\n }\n </ax-button>\n }\n <axp-component-slot name=\"entity-create-footer-suffix\" [context]=\"vm.context()\"></axp-component-slot>\n </ax-suffix>\n</ax-footer>\n}\n\n<axp-component-slot name=\"entity-create-footer\" #slot=\"slot\" [context]=\"vm.context()\"></axp-component-slot>", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: FormsModule }, { kind: "ngmodule", type: AXFormModule }, { kind: "component", type: i1.AXFormFieldComponent, selector: "ax-form-field", inputs: ["labelMode"] }, { kind: "component", type: i1.AXFormComponent, selector: "ax-form", inputs: ["disabled", "readonly", "labelMode", "look", "messageStyle", "updateOn", "inUserInteractionActive"], outputs: ["onValidate", "updateOnChange"] }, { kind: "component", type: i1.AXValidationSummaryComponent, selector: "ax-validation-summary", inputs: ["title", "displayMode", "timeOut", "autoHide"] }, { kind: "ngmodule", type: AXDecoratorModule }, { kind: "component", type: i2.AXDecoratorGenericComponent, selector: "ax-footer, ax-header, ax-content, ax-divider, ax-form-hint, ax-prefix, ax-suffix, ax-text, ax-title, ax-subtitle, ax-placeholder, ax-overlay" }, { kind: "ngmodule", type: AXButtonModule }, { kind: "component", type: i3.AXButtonComponent, selector: "ax-button", inputs: ["disabled", "size", "tabIndex", "color", "look", "text", "toggleable", "selected", "iconOnly", "type", "loadingText"], outputs: ["onBlur", "onFocus", "onClick", "selectedChange", "toggleableChange", "lookChange", "colorChange", "disabledChange", "loadingTextChange"] }, { kind: "component", type: i3.AXButtonItemComponent, selector: "ax-button-item", inputs: ["color", "disabled", "text", "selected", "divided", "data", "name"], outputs: ["onClick", "onFocus", "onBlur", "disabledChange"] }, { kind: "component", type: i3.AXButtonItemListComponent, selector: "ax-button-item-list", inputs: ["items", "closeParentOnClick", "lockOnLoading"], outputs: ["onItemClick"] }, { kind: "ngmodule", type: AXDialogModule }, { kind: "ngmodule", type: AXLoadingModule }, { kind: "component", type: i4.AXLoadingComponent, selector: "ax-loading", inputs: ["visible", "type", "context"], outputs: ["visibleChange"] }, { kind: "ngmodule", type: AXTabsModule }, { kind: "ngmodule", type: AXTooltipModule }, { kind: "ngmodule", type: AXValidationModule }, { kind: "ngmodule", type: AXLabelModule }, { kind: "component", type: i5.AXLabelComponent, selector: "ax-label", inputs: ["required", "for"], outputs: ["requiredChange"] }, { kind: "ngmodule", type: AXDropdownModule }, { kind: "ngmodule", type: AXDropdownButtonModule }, { kind: "component", type: i6.AXDropdownButtonComponent, selector: "ax-dropdown-button", inputs: ["disabled", "size", "text", "color", "look", "type", "mode"], outputs: ["onBlur", "onFocus", "onClick", "selectedChange", "lookChange", "colorChange", "disabledChange"] }, { kind: "ngmodule", type: AXTranslationModule }, { kind: "ngmodule", type:
128
+ //
129
+ AXPWidgetCoreModule }, { kind: "component", type: i7.AXPWidgetContainerComponent, selector: "axp-widgets-container", inputs: ["context", "functions"], outputs: ["onContextChanged"] }, { kind: "directive", type: i7.AXPWidgetRendererDirective, selector: "[axp-widget-renderer]", inputs: ["parentNode", "index", "mode", "node"], outputs: ["onOptionsChanged", "onValueChanged", "onLoad"], exportAs: ["widgetRenderer"] }, { kind: "ngmodule", type: AXPComponentSlotModule }, { kind: "directive", type: i1$1.AXPComponentSlotDirective, selector: "axp-component-slot", inputs: ["name", "host", "context"], exportAs: ["slot"] }, { kind: "ngmodule", type: AXPWidgetsModule }, { kind: "directive", type: AXPGridLayoutDirective, selector: "[axp-grid-layout]", inputs: ["axp-grid-layout"] }, { kind: "pipe", type: i1$2.AsyncPipe, name: "async" }, { kind: "pipe", type: i3$1.AXTranslatorPipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
130
+ }
131
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPEntityMasterCreateViewComponent, decorators: [{
132
+ type: Component,
133
+ args: [{ imports: [
134
+ CommonModule,
135
+ FormsModule,
136
+ AXFormModule,
137
+ AXDecoratorModule,
138
+ CommonModule,
139
+ AXButtonModule,
140
+ AXDialogModule,
141
+ AXLoadingModule,
142
+ AXTabsModule,
143
+ AXTooltipModule,
144
+ AXValidationModule,
145
+ AXLabelModule,
146
+ AXDropdownModule,
147
+ AXDropdownButtonModule,
148
+ AXTranslationModule,
149
+ //
150
+ AXPWidgetCoreModule,
151
+ AXPComponentSlotModule,
152
+ AXPWidgetsModule,
153
+ AXPGridLayoutDirective,
154
+ ], changeDetection: ChangeDetectionStrategy.OnPush, providers: [AXPContextStore], template: "<axp-component-slot name=\"entity-create-header\" [context]=\"vm.context()\"></axp-component-slot>\n<axp-widgets-container [context]=\"vm.context()\" (onContextChanged)=\"handleContextChange($event)\">\n <ax-form id=\"axp-entity-form-create\" class=\"flex flex-col gap-6 p-4 pb-8\" #form [messageStyle]=\"'bottom'\"\n [updateOn]=\"'blur'\">\n <!-- Begin Sections -->\n <div class=\"grid grid-cols-12 gap-4\">\n @for (section of vm.sections(); track section.name()) {\n <div [axp-grid-layout]=\"section.layout()\">\n <ax-form #form>\n @if (vm.sections().length > 1 && !section.description()) {\n <div class=\"pb-4\">\n <span class=\"font-bold text-xl\">{{ section.title() | translate | async }}</span>\n @if (section.description()) {\n <p class=\"text-sm text-gray-500\">{{ section.description() }}</p>\n }\n </div>\n }\n <div class=\"card-body grid! grid-cols-12! gap-4!\">\n @for (attr of section.elements(); track $index) {\n <ax-form-field [attr.id]=\"'axp-field-' + attr.name()\" class=\"flex flex-col gap-1\"\n [axp-grid-layout]=\"attr.layout()\" [class.hidden]=\"hiddenProperties().includes(attr.name())\">\n @if (attr.layout().label?.visible != false) {\n <ax-label class=\"font-semibold text-sm\" [required]=\"attr.isRequired()\">\n @if (attr.title()) {\n {{ attr.title() | translate | async }}\n } @else {\n &nbsp;\n }\n </ax-label>\n }\n <ng-container axp-widget-renderer [node]=\"attr.node()\" [mode]=\"'edit'\"\n #widget=\"widgetRenderer\"></ng-container>\n @if (attr.description()) {\n <p class=\"text-sm mt-1 font-normal opacity-75\">\n {{ attr.description() | translate | async }}\n </p>\n }\n </ax-form-field>\n }\n </div>\n </ax-form>\n </div>\n }\n </div>\n <!-- Finish Sections -->\n <ax-validation-summary [displayMode]=\"'toast'\" [autoHide]=\"true\"></ax-validation-summary>\n </ax-form>\n</axp-widgets-container>\n@if (slot.isEmpty()) {\n<ax-footer id=\"axp-entity-footer-create\">\n <ax-prefix>\n <axp-component-slot name=\"entity-create-footer-prefix\" [context]=\"vm.context()\"></axp-component-slot>\n </ax-prefix>\n <ax-suffix>\n <ax-button id=\"axp-btn-cancel\" look=\"solid\" [color]=\"'default'\"\n [text]=\"'@general:actions.cancel.title' | translate | async\" (onClick)=\"handleCloseClick()\">\n </ax-button>\n @if (vm.canCreateNewOne()) {\n <ax-dropdown-button id=\"axp-btn-save\" [disabled]=\"vm.isInProgress()\" color=\"primary\"\n [text]=\"'@general:actions.save.title' | translate | async\" look=\"solid\" (onClick)=\"handleSaveClick(form)\">\n @if (vm.isInProgress()) {\n <ax-loading></ax-loading>\n }\n <ax-button-item-list>\n <ax-button-item id=\"axp-btn-save-and-new\"\n [text]=\"('@general:actions.save-and-new.title' | translate | async) ?? ''\"\n (onClick)=\"handleSaveAndNewClick(form)\">\n </ax-button-item>\n </ax-button-item-list>\n </ax-dropdown-button>\n } @else {\n <ax-button id=\"axp-btn-save\" look=\"solid\" color=\"primary\" [text]=\"'@general:actions.save.title' | translate | async\"\n (onClick)=\"handleSaveClick(form)\">\n @if (vm.isInProgress()) {\n <ax-loading></ax-loading>\n }\n </ax-button>\n }\n <axp-component-slot name=\"entity-create-footer-suffix\" [context]=\"vm.context()\"></axp-component-slot>\n </ax-suffix>\n</ax-footer>\n}\n\n<axp-component-slot name=\"entity-create-footer\" #slot=\"slot\" [context]=\"vm.context()\"></axp-component-slot>" }]
155
+ }], propDecorators: { container: [{ type: i0.ViewChild, args: [i0.forwardRef(() => AXPWidgetContainerComponent), { isSignal: true }] }] } });
156
+
157
+ export { AXPEntityMasterCreateViewComponent };
158
+ //# sourceMappingURL=acorex-platform-framework-client-themes-default-entity-master-create-view.component-QIFX11dh.mjs.map