@acorex/platform 0.0.0-ACOREX

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 (116) hide show
  1. package/README.md +7 -0
  2. package/auth/README.md +3 -0
  3. package/common/README.md +3 -0
  4. package/core/README.md +4 -0
  5. package/fesm2022/acorex-platform-auth.mjs +1362 -0
  6. package/fesm2022/acorex-platform-auth.mjs.map +1 -0
  7. package/fesm2022/acorex-platform-common-common-settings.provider-G9XcXXOG.mjs +127 -0
  8. package/fesm2022/acorex-platform-common-common-settings.provider-G9XcXXOG.mjs.map +1 -0
  9. package/fesm2022/acorex-platform-common.mjs +4601 -0
  10. package/fesm2022/acorex-platform-common.mjs.map +1 -0
  11. package/fesm2022/acorex-platform-core.mjs +4374 -0
  12. package/fesm2022/acorex-platform-core.mjs.map +1 -0
  13. package/fesm2022/acorex-platform-domain.mjs +3234 -0
  14. package/fesm2022/acorex-platform-domain.mjs.map +1 -0
  15. package/fesm2022/acorex-platform-layout-builder.mjs +2847 -0
  16. package/fesm2022/acorex-platform-layout-builder.mjs.map +1 -0
  17. package/fesm2022/acorex-platform-layout-components-binding-expression-editor-popup.component-CXEdvDTf.mjs +121 -0
  18. package/fesm2022/acorex-platform-layout-components-binding-expression-editor-popup.component-CXEdvDTf.mjs.map +1 -0
  19. package/fesm2022/acorex-platform-layout-components.mjs +8583 -0
  20. package/fesm2022/acorex-platform-layout-components.mjs.map +1 -0
  21. package/fesm2022/acorex-platform-layout-designer.mjs +2474 -0
  22. package/fesm2022/acorex-platform-layout-designer.mjs.map +1 -0
  23. package/fesm2022/acorex-platform-layout-entity.mjs +19150 -0
  24. package/fesm2022/acorex-platform-layout-entity.mjs.map +1 -0
  25. package/fesm2022/acorex-platform-layout-views.mjs +1468 -0
  26. package/fesm2022/acorex-platform-layout-views.mjs.map +1 -0
  27. package/fesm2022/acorex-platform-layout-widget-core.mjs +2950 -0
  28. package/fesm2022/acorex-platform-layout-widget-core.mjs.map +1 -0
  29. package/fesm2022/acorex-platform-layout-widgets-button-widget-designer.component-Dy7jF-oD.mjs +72 -0
  30. package/fesm2022/acorex-platform-layout-widgets-button-widget-designer.component-Dy7jF-oD.mjs.map +1 -0
  31. package/fesm2022/acorex-platform-layout-widgets-file-list-popup.component-9uCkMxcc.mjs +158 -0
  32. package/fesm2022/acorex-platform-layout-widgets-file-list-popup.component-9uCkMxcc.mjs.map +1 -0
  33. package/fesm2022/acorex-platform-layout-widgets-image-preview.popup-C_EPAvCU.mjs +29 -0
  34. package/fesm2022/acorex-platform-layout-widgets-image-preview.popup-C_EPAvCU.mjs.map +1 -0
  35. package/fesm2022/acorex-platform-layout-widgets-page-widget-designer.component-D10yO28c.mjs +172 -0
  36. package/fesm2022/acorex-platform-layout-widgets-page-widget-designer.component-D10yO28c.mjs.map +1 -0
  37. package/fesm2022/acorex-platform-layout-widgets-repeater-widget-column.component-BGQqY5Mw.mjs +111 -0
  38. package/fesm2022/acorex-platform-layout-widgets-repeater-widget-column.component-BGQqY5Mw.mjs.map +1 -0
  39. package/fesm2022/acorex-platform-layout-widgets-tabular-data-edit-popup.component-DmzNTYiS.mjs +274 -0
  40. package/fesm2022/acorex-platform-layout-widgets-tabular-data-edit-popup.component-DmzNTYiS.mjs.map +1 -0
  41. package/fesm2022/acorex-platform-layout-widgets-tabular-data-view-popup.component-BNG_588B.mjs +64 -0
  42. package/fesm2022/acorex-platform-layout-widgets-tabular-data-view-popup.component-BNG_588B.mjs.map +1 -0
  43. package/fesm2022/acorex-platform-layout-widgets-text-block-widget-designer.component-Vo4fWHtX.mjs +34 -0
  44. package/fesm2022/acorex-platform-layout-widgets-text-block-widget-designer.component-Vo4fWHtX.mjs.map +1 -0
  45. package/fesm2022/acorex-platform-layout-widgets.mjs +29791 -0
  46. package/fesm2022/acorex-platform-layout-widgets.mjs.map +1 -0
  47. package/fesm2022/acorex-platform-native.mjs +155 -0
  48. package/fesm2022/acorex-platform-native.mjs.map +1 -0
  49. package/fesm2022/acorex-platform-runtime-catalog-command-definition.mjs +20 -0
  50. package/fesm2022/acorex-platform-runtime-catalog-command-definition.mjs.map +1 -0
  51. package/fesm2022/acorex-platform-runtime-catalog-query-definition.mjs +20 -0
  52. package/fesm2022/acorex-platform-runtime-catalog-query-definition.mjs.map +1 -0
  53. package/fesm2022/acorex-platform-runtime.mjs +899 -0
  54. package/fesm2022/acorex-platform-runtime.mjs.map +1 -0
  55. package/fesm2022/acorex-platform-themes-default-entity-master-create-view.component-Cvvr4HnL.mjs +160 -0
  56. package/fesm2022/acorex-platform-themes-default-entity-master-create-view.component-Cvvr4HnL.mjs.map +1 -0
  57. package/fesm2022/acorex-platform-themes-default-entity-master-modify-view.component-TYoLN1Jq.mjs +120 -0
  58. package/fesm2022/acorex-platform-themes-default-entity-master-modify-view.component-TYoLN1Jq.mjs.map +1 -0
  59. package/fesm2022/acorex-platform-themes-default-entity-master-single-view.component-C2z5Lq9y.mjs +237 -0
  60. package/fesm2022/acorex-platform-themes-default-entity-master-single-view.component-C2z5Lq9y.mjs.map +1 -0
  61. package/fesm2022/acorex-platform-themes-default-error-401.component-C7EYJzSr.mjs +31 -0
  62. package/fesm2022/acorex-platform-themes-default-error-401.component-C7EYJzSr.mjs.map +1 -0
  63. package/fesm2022/acorex-platform-themes-default-error-404.component-7MVLMwIa.mjs +25 -0
  64. package/fesm2022/acorex-platform-themes-default-error-404.component-7MVLMwIa.mjs.map +1 -0
  65. package/fesm2022/acorex-platform-themes-default-error-offline.component-DR6G8gPC.mjs +19 -0
  66. package/fesm2022/acorex-platform-themes-default-error-offline.component-DR6G8gPC.mjs.map +1 -0
  67. package/fesm2022/acorex-platform-themes-default.mjs +2589 -0
  68. package/fesm2022/acorex-platform-themes-default.mjs.map +1 -0
  69. package/fesm2022/acorex-platform-themes-shared-icon-chooser-column.component-CqkWJYdv.mjs +55 -0
  70. package/fesm2022/acorex-platform-themes-shared-icon-chooser-column.component-CqkWJYdv.mjs.map +1 -0
  71. package/fesm2022/acorex-platform-themes-shared-icon-chooser-view.component-BOTuLdWN.mjs +57 -0
  72. package/fesm2022/acorex-platform-themes-shared-icon-chooser-view.component-BOTuLdWN.mjs.map +1 -0
  73. package/fesm2022/acorex-platform-themes-shared-settings.provider-DSs1o1M6.mjs +168 -0
  74. package/fesm2022/acorex-platform-themes-shared-settings.provider-DSs1o1M6.mjs.map +1 -0
  75. package/fesm2022/acorex-platform-themes-shared-theme-color-chooser-column.component-CHfrTtol.mjs +65 -0
  76. package/fesm2022/acorex-platform-themes-shared-theme-color-chooser-column.component-CHfrTtol.mjs.map +1 -0
  77. package/fesm2022/acorex-platform-themes-shared-theme-color-chooser-view.component-BSmvnUVq.mjs +64 -0
  78. package/fesm2022/acorex-platform-themes-shared-theme-color-chooser-view.component-BSmvnUVq.mjs.map +1 -0
  79. package/fesm2022/acorex-platform-themes-shared.mjs +2125 -0
  80. package/fesm2022/acorex-platform-themes-shared.mjs.map +1 -0
  81. package/fesm2022/acorex-platform-workflow.mjs +2501 -0
  82. package/fesm2022/acorex-platform-workflow.mjs.map +1 -0
  83. package/fesm2022/acorex-platform.mjs +6 -0
  84. package/fesm2022/acorex-platform.mjs.map +1 -0
  85. package/layout/builder/README.md +1578 -0
  86. package/layout/components/README.md +3 -0
  87. package/layout/designer/README.md +4 -0
  88. package/layout/entity/README.md +4 -0
  89. package/layout/views/README.md +3 -0
  90. package/layout/widget-core/README.md +4 -0
  91. package/layout/widgets/README.md +3 -0
  92. package/native/README.md +4 -0
  93. package/package.json +103 -0
  94. package/runtime/README.md +3 -0
  95. package/themes/default/README.md +3 -0
  96. package/themes/shared/README.md +3 -0
  97. package/types/acorex-platform-auth.d.ts +680 -0
  98. package/types/acorex-platform-common.d.ts +2926 -0
  99. package/types/acorex-platform-core.d.ts +2896 -0
  100. package/types/acorex-platform-domain.d.ts +2353 -0
  101. package/types/acorex-platform-layout-builder.d.ts +926 -0
  102. package/types/acorex-platform-layout-components.d.ts +2903 -0
  103. package/types/acorex-platform-layout-designer.d.ts +422 -0
  104. package/types/acorex-platform-layout-entity.d.ts +3189 -0
  105. package/types/acorex-platform-layout-views.d.ts +667 -0
  106. package/types/acorex-platform-layout-widget-core.d.ts +1086 -0
  107. package/types/acorex-platform-layout-widgets.d.ts +5478 -0
  108. package/types/acorex-platform-native.d.ts +28 -0
  109. package/types/acorex-platform-runtime-catalog-command-definition.d.ts +137 -0
  110. package/types/acorex-platform-runtime-catalog-query-definition.d.ts +125 -0
  111. package/types/acorex-platform-runtime.d.ts +470 -0
  112. package/types/acorex-platform-themes-default.d.ts +573 -0
  113. package/types/acorex-platform-themes-shared.d.ts +170 -0
  114. package/types/acorex-platform-workflow.d.ts +1806 -0
  115. package/types/acorex-platform.d.ts +2 -0
  116. package/workflow/README.md +4 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"acorex-platform-runtime.mjs","sources":["../../../../libs/platform/runtime/src/lib/commands/define-command.ts","../../../../libs/platform/runtime/src/lib/commands/catalog-command-definition.ts","../../../../libs/platform/runtime/src/lib/shared/catalog-metadata.types.ts","../../../../libs/platform/runtime/src/lib/commands/command-definition.types.ts","../../../../libs/platform/runtime/src/lib/commands/command-events.service.ts","../../../../libs/platform/runtime/src/lib/commands/command.middleware.ts","../../../../libs/platform/runtime/src/lib/commands/command.registry.ts","../../../../libs/platform/runtime/src/lib/commands/command.extension.token.ts","../../../../libs/platform/runtime/src/lib/commands/command.executor.ts","../../../../libs/platform/runtime/src/lib/commands/command.service.ts","../../../../libs/platform/runtime/src/lib/commands/provide-command-middleware.ts","../../../../libs/platform/runtime/src/lib/commands/provide-command-setups.ts","../../../../libs/platform/runtime/src/lib/queries/define-query.ts","../../../../libs/platform/runtime/src/lib/queries/catalog-query-definition.ts","../../../../libs/platform/runtime/src/lib/queries/query.registry.ts","../../../../libs/platform/runtime/src/lib/queries/query.extension.token.ts","../../../../libs/platform/runtime/src/lib/queries/provide-query-middleware.ts","../../../../libs/platform/runtime/src/lib/queries/provide-query-setups.ts","../../../../libs/platform/runtime/src/lib/queries/query-definition.types.ts","../../../../libs/platform/runtime/src/lib/queries/query.middleware.ts","../../../../libs/platform/runtime/src/lib/queries/query.executor.ts","../../../../libs/platform/runtime/src/lib/queries/query.service.ts","../../../../libs/platform/runtime/src/lib/views/view.middleware.ts","../../../../libs/platform/runtime/src/lib/views/view.registry.ts","../../../../libs/platform/runtime/src/lib/views/view.extension.token.ts","../../../../libs/platform/runtime/src/lib/views/view.executor.ts","../../../../libs/platform/runtime/src/lib/views/view.service.ts","../../../../libs/platform/runtime/src/lib/views/provide-view-setups.ts","../../../../libs/platform/runtime/src/lib/policy/policy.middleware.ts","../../../../libs/platform/runtime/src/lib/policy/policy.interface.ts","../../../../libs/platform/runtime/src/lib/policy/policy.extension.token.ts","../../../../libs/platform/runtime/src/lib/policy/policy.registry.ts","../../../../libs/platform/runtime/src/lib/policy/policy.service.ts","../../../../libs/platform/runtime/src/lib/policy/policy.directive.ts","../../../../libs/platform/runtime/src/lib/policy/policy-middleware-provider.ts","../../../../libs/platform/runtime/src/lib/views/provide-view-middleware.ts","../../../../libs/platform/runtime/src/lib/runtime.module.ts","../../../../libs/platform/runtime/src/index.ts","../../../../libs/platform/runtime/src/acorex-platform-runtime.ts"],"sourcesContent":["import type { AXPCommandMetadataDefinition } from './command-definition.types';\n\n//#region ---- defineCommand ----\n\n/**\n * Typed identity helper for command metadata sidecars.\n */\nexport function defineCommand<T extends AXPCommandMetadataDefinition>(definition: T): T {\n return definition;\n}\n\n//#endregion\n","/**\n * Build-time command metadata only. Safe under Node (e.g. generate-runtime-catalog) without loading the command executor stack.\n * Sidecars should import `defineCommand` from here or from `@acorex/platform/runtime/catalog-command-definition`.\n */\nexport { defineCommand } from './define-command';\nexport type {\n AXPCommandAiContractsMetadata,\n AXPCommandAiMetadata,\n AXPCommandAiNextStepMetadata,\n AXPCommandAiPerformanceCost,\n AXPCommandAiPerformanceMetadata,\n AXPCommandAiResultSemanticsMetadata,\n AXPCommandAiSafetyKind,\n AXPCommandAiSafetyMetadata,\n AXPCommandAiUsageMetadata,\n AXPCommandCapability,\n AXPCommandExecutionMode,\n AXPCommandInterfaceDefinitionValue,\n AXPCommandMetadataDefinition,\n AXPCommandOutcomeDefinition,\n AXPCommandSchemaPropertyDefinition,\n AXPCommandValidationRuleValue,\n} from './command-definition.types';\n","/**\n * Shared build-time metadata shapes for command and query catalog definitions.\n * Lives under `shared/` so secondary ng-packagr entries under `commands/` or `queries/` share a common `src/lib` compilation root.\n */\n\n//#region ---- Schema row ----\n\n/** Command metadata validation: rule key + optional rule options only. */\nexport interface AXPCommandValidationRuleValue {\n rule: string;\n options?: Record<string, unknown>;\n}\n\n/**\n * Widget/interface reference for a schema property (name + optional widget options).\n */\nexport interface AXPCommandInterfaceDefinitionValue {\n name: string;\n options?: Record<string, unknown>;\n}\n\n/**\n * One input/output property description (same structural role as AXPPropertyDefinition).\n */\nexport interface AXPCommandSchemaPropertyDefinition {\n name: string;\n title: string;\n description?: string;\n icon?: string;\n defaultValue?: unknown;\n disabled?: boolean;\n interface: AXPCommandInterfaceDefinitionValue;\n validations?: AXPCommandValidationRuleValue[];\n}\n\n//#endregion\n\n//#region ---- AI ----\n\n/** Structured usage hints for planners and assistants (prefer over duplicating rules only in `description`). */\nexport interface AXPCommandAiUsageMetadata {\n whenToUse?: string[];\n avoidWhen?: string[];\n /** Registry keys or tool names that commonly follow this command/query. */\n followUpTools?: string[];\n}\n\n/** Declarative contracts: what the tool provides, who depends on it, and guarantees (not workflow `outcomes`). */\nexport interface AXPCommandAiContractsMetadata {\n provides?: string[];\n requiredBy?: string[];\n guarantees?: string[];\n}\n\nexport type AXPCommandAiSafetyKind = 'read-only' | 'mutating';\n\nexport interface AXPCommandAiSafetyMetadata {\n kind?: AXPCommandAiSafetyKind;\n sideEffects?: boolean;\n requiresConfirmation?: boolean;\n}\n\nexport type AXPCommandAiPerformanceCost = 'low' | 'medium' | 'high';\n\nexport interface AXPCommandAiPerformanceMetadata {\n cost?: AXPCommandAiPerformanceCost;\n cacheable?: boolean;\n}\n\nexport interface AXPCommandAiNextStepMetadata {\n when: string;\n action: string;\n}\n\n/**\n * How to interpret a successful payload for agents (documentation only; not command workflow outcomes).\n */\nexport interface AXPCommandAiResultSemanticsMetadata {\n noMatch?: string;\n exactMatch?: string;\n multipleMatches?: string;\n failed?: string;\n /** Full catalog listing (e.g. no entity filter). */\n catalog?: string;\n}\n\nexport interface AXPCommandAiMetadata {\n shortDescription?: string;\n tags?: string[];\n usage?: AXPCommandAiUsageMetadata;\n contracts?: AXPCommandAiContractsMetadata;\n safety?: AXPCommandAiSafetyMetadata;\n performance?: AXPCommandAiPerformanceMetadata;\n nextSteps?: AXPCommandAiNextStepMetadata[];\n resultSemantics?: AXPCommandAiResultSemanticsMetadata;\n /**\n * Default input fragment merged for AI/tool invocations (catalog & tooling).\n * Runtime merge for a given command is applied in the AI module (not the generic command executor).\n */\n toolInputDefaults?: Record<string, unknown>;\n /**\n * Optional JSON Schema fragment for LLM tool `parameters` (OpenAI-style function calling).\n * Merged over the auto-generated schema from catalog `inputs` (`properties` / `required` deep-merged).\n * Use when widget-to-type inference is insufficient (e.g. `object`, `array`, `enum`, `format`).\n */\n toolParametersSchema?: Record<string, unknown>;\n}\n\n//#endregion\n\n//#region ---- Execution / capabilities ----\n\nexport type AXPCommandExecutionMode = 'frontend' | 'backend' | 'both';\n\n/**\n * Where this command is intended to appear in product tooling (AI agents, workflow automation pickers, etc.).\n * Omitted = not declared here; runtimes may fall back to other metadata (e.g. `ai.tags`).\n */\nexport type AXPCommandCapability = 'ai' | 'workflow';\n\n//#endregion\n","/**\n * Build-time command metadata for AXPCommand implementations.\n * `inputs` / `outputs` are schema rows (same family as entity optionDefinitions).\n * Validation entries: only `rule` name and optional `options` (no title/message on rules).\n * Do not import from Angular templates; sidecars may import `defineCommand` from `@acorex/platform/runtime`.\n *\n * Query metadata (fetch-only, no outcomes) is defined in `../queries/query-definition.types.ts` with `defineQuery`.\n */\n\nimport type {\n AXPCommandAiMetadata,\n AXPCommandCapability,\n AXPCommandExecutionMode,\n AXPCommandSchemaPropertyDefinition,\n} from '../shared/catalog-metadata.types';\n\nexport * from '../shared/catalog-metadata.types';\n\n//#region ---- Outcomes ----\n\nexport type AXPCommandOutcomeDefinition =\n | {\n mode: 'static';\n values: string[];\n }\n | {\n mode: 'dynamic';\n summary: string;\n derivesFrom: string;\n examples?: string[];\n };\n\n//#endregion\n\n//#region ---- Root ----\n\nexport interface AXPCommandMetadataDefinition {\n /** Runtime registration key (provideCommand / provideCommandSetups). */\n key: string;\n title: string;\n description: string;\n executionMode: AXPCommandExecutionMode;\n /** Input parameters as schema rows. */\n inputs?: AXPCommandSchemaPropertyDefinition[];\n /** Output shape as schema rows. */\n outputs?: AXPCommandSchemaPropertyDefinition[];\n outcomes: AXPCommandOutcomeDefinition;\n ai?: AXPCommandAiMetadata;\n /** Optional list of surfaces that may list or invoke this command as a tool/activity. */\n capabilities?: AXPCommandCapability[];\n}\n\n//#endregion\n","//#region ---- Imports ----\n\nimport { inject, Injectable } from '@angular/core';\nimport { AXPExecuteCommandResult } from '@acorex/platform/core';\nimport { AXPBroadcastEventService } from '@acorex/platform/core';\nimport { AXPDistributedEventListenerService } from '@acorex/platform/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 this.broadcast.publish(COMMAND_EXECUTION_EVENT_KEY, event);\n await this.distributedEvents?.dispatch(COMMAND_EXECUTION_EVENT_KEY, event);\n }\n\n //#endregion\n}\n\n//#endregion\n\n","import { AXPExecuteCommandResult } from '@acorex/platform/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 './command.interface';\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/core';\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/core';\nimport { AXPCommand } from './command.interface';\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 './command.interface';\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","import type { AXPQueryMetadataDefinition } from './query-definition.types';\n\n//#region ---- defineQuery ----\n\n/**\n * Typed identity helper for query metadata sidecars.\n */\nexport function defineQuery<T extends AXPQueryMetadataDefinition>(definition: T): T {\n return definition;\n}\n\n//#endregion\n","/**\n * Build-time query metadata only. Safe under Node (e.g. generate-runtime-catalog) without loading the query executor stack.\n * Sidecars should import `defineQuery` from here or from `@acorex/platform/runtime/catalog-query-definition`.\n */\nexport { defineQuery } from './define-query';\n","// queries/query.registry.ts\nimport { Injectable } from '@angular/core';\nimport { AXPQuery } from './query.interface';\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 './query.interface';\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} ","/**\n * Build-time query metadata for AXPQuery implementations.\n * Mirrors command metadata shape except there are no `outcomes` (queries only `fetch`).\n * `inputs` / `outputs` are schema rows (same family as entity optionDefinitions).\n */\n\nimport type {\n AXPCommandAiMetadata,\n AXPCommandCapability,\n AXPCommandExecutionMode,\n AXPCommandSchemaPropertyDefinition,\n} from '../shared/catalog-metadata.types';\n\n//#region ---- Root ----\n\n/** One input/output property description for query definitions (same as command schema rows). */\nexport type AXPQuerySchemaPropertyDefinition = AXPCommandSchemaPropertyDefinition;\n\nexport interface AXPQueryMetadataDefinition {\n /** Runtime registration key (provideQuerySetups). */\n key: string;\n title: string;\n description: string;\n executionMode: AXPCommandExecutionMode;\n /** Query input / filter parameters as schema rows. */\n inputs?: AXPQuerySchemaPropertyDefinition[];\n /** Documented result shape as schema rows. */\n outputs?: AXPQuerySchemaPropertyDefinition[];\n ai?: AXPCommandAiMetadata;\n /** Optional list of surfaces that may list or invoke this query as a tool (e.g. AI assistants). */\n capabilities?: AXPCommandCapability[];\n}\n\n//#endregion\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 './query.interface';\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/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 './view.interface';\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/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 './view.interface';\nimport { AXPViewMiddleware } from './view.middleware';\nimport { AXPViewRegistry } from './view.registry';\nimport { AXPViewExecutor } from './view.executor';\nimport { AXPViewDefinition } from '@acorex/platform/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 './view.interface';\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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"}
@@ -0,0 +1,160 @@
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 i10 from '@acorex/core/translation';
26
+ import { AXTranslationService, AXTranslationModule } from '@acorex/core/translation';
27
+ import * as i1$1 from '@acorex/platform/core';
28
+ import { AXPExpressionEvaluatorService, AXPComponentSlotModule, AXPGridLayoutDirective, AXPContextStore } from '@acorex/platform/core';
29
+ import * as i7 from '@acorex/platform/layout/widget-core';
30
+ import { AXPWidgetContainerComponent, AXPWidgetCoreModule } from '@acorex/platform/layout/widget-core';
31
+ import { AXPWidgetsModule } from '@acorex/platform/layout/widgets';
32
+ import { AXPWorkflowService } from '@acorex/platform/workflow';
33
+ import { get } from 'lodash-es';
34
+
35
+ class AXPEntityMasterCreateViewComponent extends AXBasePageComponent {
36
+ constructor() {
37
+ super(...arguments);
38
+ this.container = viewChild(AXPWidgetContainerComponent, ...(ngDevMode ? [{ debugName: "container" }] : /* istanbul ignore next */ []));
39
+ this.evaluator = inject(AXPExpressionEvaluatorService);
40
+ this.toastService = inject(AXToastService);
41
+ this.translationService = inject(AXTranslationService);
42
+ this.workflow = inject(AXPWorkflowService);
43
+ this.hiddenProperties = signal([], ...(ngDevMode ? [{ debugName: "hiddenProperties" }] : /* istanbul ignore next */ []));
44
+ this.#visibilityEffect = effect(async () => {
45
+ const formContext = this.vm.context();
46
+ const allElements = this.vm.sections().flatMap((section) => section.elements());
47
+ const visibilityConfig = allElements.map((element) => ({
48
+ name: element.name(),
49
+ visible: element.isVisible(),
50
+ }));
51
+ const evaluatedElements = await this.evaluator.evaluate(visibilityConfig, {
52
+ context: {
53
+ eval: (path) => get(formContext, path),
54
+ },
55
+ });
56
+ const hiddenElementNames = evaluatedElements
57
+ .filter((element) => element.visible == false)
58
+ .map((element) => element.name);
59
+ this.hiddenProperties.set(hiddenElementNames);
60
+ }, ...(ngDevMode ? [{ debugName: "#visibilityEffect" }] : /* istanbul ignore next */ []));
61
+ }
62
+ ngAfterViewInit() {
63
+ this.vm.builder = this.container().builderService;
64
+ }
65
+ #visibilityEffect;
66
+ handleCloseClick() {
67
+ this.close();
68
+ }
69
+ async handleBackClick() {
70
+ //await this.vm.executeCommand('back');
71
+ }
72
+ async handleNextClick(form) {
73
+ // const formResult = await form.validate();
74
+ // if (formResult.result) {
75
+ // await this.vm.executeCommand('next');
76
+ // }
77
+ }
78
+ async handleSaveClick(form) {
79
+ const formResult = await form.validate();
80
+ if (formResult.result) {
81
+ try {
82
+ const record = await this.vm.save();
83
+ this.close({ save: true, recordId: record?.id, item: record, redirect: this.vm.redirect() });
84
+ }
85
+ catch (error) {
86
+ const errorMessage = error?.message ||
87
+ error?.toString() ||
88
+ (await this.translationService.translateAsync('@general:messages.generic.error.description'));
89
+ // this.toastService.show({
90
+ // color: 'danger',
91
+ // title: await this.translationService.translateAsync('@general:messages.generic.error.title'),
92
+ // content: errorMessage,
93
+ // location: 'bottom-center',
94
+ // closeButton: true,
95
+ // timeOut: 5000,
96
+ // timeOutProgress: true,
97
+ // });
98
+ }
99
+ }
100
+ }
101
+ async handleSaveAndNewClick(form) {
102
+ const formResult = await form.validate();
103
+ if (formResult.result) {
104
+ try {
105
+ const record = await this.vm.save();
106
+ this.close({ save: true, recordId: record?.id, item: record, redirect: false });
107
+ await this.vm.createNewOne();
108
+ }
109
+ catch (error) {
110
+ const errorMessage = error?.message ||
111
+ error?.toString() ||
112
+ (await this.translationService.translateAsync('@general:messages.generic.error.description'));
113
+ // this.toastService.show({
114
+ // color: 'danger',
115
+ // title: await this.translationService.translateAsync('@general:messages.generic.error.title'),
116
+ // content: errorMessage,
117
+ // location: 'bottom-center',
118
+ // closeButton: true,
119
+ // timeOut: 5000,
120
+ // timeOutProgress: true,
121
+ // });
122
+ }
123
+ }
124
+ }
125
+ async handleContextChange(e) {
126
+ this.vm.context.set(e.data);
127
+ }
128
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPEntityMasterCreateViewComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
129
+ 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\n id=\"axp-entity-form-create\"\n class=\"ax-flex ax-flex-col ax-gap-6 ax-p-4 ax-pb-8\"\n #form\n [messageStyle]=\"'bottom'\"\n [updateOn]=\"'blur'\"\n >\n <!-- Begin Sections -->\n <div class=\"ax-grid ax-grid-cols-12 ax-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=\"ax-pb-4\">\n <span class=\"ax-font-bold ax-text-xl\">{{ section.title() | translate | async }}</span>\n @if (section.description()) {\n <p class=\"ax-text-sm ax-text-gray-500\">{{ section.description() }}</p>\n }\n </div>\n }\n <div class=\"ax-card-body !ax-grid !ax-grid-cols-12 !ax-gap-4\">\n @for (attr of section.elements(); track $index) {\n <ax-form-field\n [attr.id]=\"'axp-field-' + attr.name()\"\n class=\"ax-flex ax-flex-col ax-gap-1\"\n [axp-grid-layout]=\"attr.layout()\"\n [class.ax-hidden]=\"hiddenProperties().includes(attr.name())\"\n >\n @if (attr.layout().label?.visible != false) {\n <ax-label class=\"ax-font-semibold ax-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\n axp-widget-renderer\n [node]=\"attr.node()\"\n [mode]=\"'edit'\"\n #widget=\"widgetRenderer\"\n ></ng-container>\n </ax-form-field>\n }\n </div>\n </ax-form>\n </div>\n }\n </div>\n <!-- Finish Sections -->\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\n id=\"axp-btn-cancel\"\n look=\"solid\"\n [color]=\"'default'\"\n [text]=\"'@general:actions.cancel.title' | translate | async\"\n (onClick)=\"handleCloseClick()\"\n >\n </ax-button>\n @if (vm.canCreateNewOne()) {\n <ax-dropdown-button\n id=\"axp-btn-save\"\n [disabled]=\"vm.isInProgress()\"\n color=\"primary\"\n [text]=\"'@general:actions.save.title' | translate | async\"\n look=\"solid\"\n (onClick)=\"handleSaveClick(form)\"\n >\n @if (vm.isInProgress()) {\n <ax-loading></ax-loading>\n }\n <ax-button-item-list>\n <ax-button-item\n id=\"axp-btn-save-and-new\"\n [text]=\"('@general:actions.save-and-new.title' | translate | async) ?? ''\"\n (onClick)=\"handleSaveAndNewClick(form)\"\n >\n </ax-button-item>\n </ax-button-item-list>\n </ax-dropdown-button>\n } @else {\n <ax-button\n id=\"axp-btn-save\"\n look=\"solid\"\n color=\"primary\"\n [text]=\"'@general:actions.save.title' | translate | async\"\n (onClick)=\"handleSaveClick(form)\"\n >\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>\n", 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: "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", "color", "look", "text", "type", "mode"], outputs: ["onBlur", "onFocus", "onClick", "selectedChange", "lookChange", "colorChange", "disabledChange"] }, { kind: "ngmodule", type: AXTranslationModule }, { kind: "ngmodule", type:
130
+ //
131
+ 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: i10.AXTranslatorPipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
132
+ }
133
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPEntityMasterCreateViewComponent, decorators: [{
134
+ type: Component,
135
+ args: [{ imports: [
136
+ CommonModule,
137
+ FormsModule,
138
+ AXFormModule,
139
+ AXDecoratorModule,
140
+ CommonModule,
141
+ AXButtonModule,
142
+ AXDialogModule,
143
+ AXLoadingModule,
144
+ AXTabsModule,
145
+ AXTooltipModule,
146
+ AXValidationModule,
147
+ AXLabelModule,
148
+ AXDropdownModule,
149
+ AXDropdownButtonModule,
150
+ AXTranslationModule,
151
+ //
152
+ AXPWidgetCoreModule,
153
+ AXPComponentSlotModule,
154
+ AXPWidgetsModule,
155
+ AXPGridLayoutDirective,
156
+ ], 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\n id=\"axp-entity-form-create\"\n class=\"ax-flex ax-flex-col ax-gap-6 ax-p-4 ax-pb-8\"\n #form\n [messageStyle]=\"'bottom'\"\n [updateOn]=\"'blur'\"\n >\n <!-- Begin Sections -->\n <div class=\"ax-grid ax-grid-cols-12 ax-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=\"ax-pb-4\">\n <span class=\"ax-font-bold ax-text-xl\">{{ section.title() | translate | async }}</span>\n @if (section.description()) {\n <p class=\"ax-text-sm ax-text-gray-500\">{{ section.description() }}</p>\n }\n </div>\n }\n <div class=\"ax-card-body !ax-grid !ax-grid-cols-12 !ax-gap-4\">\n @for (attr of section.elements(); track $index) {\n <ax-form-field\n [attr.id]=\"'axp-field-' + attr.name()\"\n class=\"ax-flex ax-flex-col ax-gap-1\"\n [axp-grid-layout]=\"attr.layout()\"\n [class.ax-hidden]=\"hiddenProperties().includes(attr.name())\"\n >\n @if (attr.layout().label?.visible != false) {\n <ax-label class=\"ax-font-semibold ax-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\n axp-widget-renderer\n [node]=\"attr.node()\"\n [mode]=\"'edit'\"\n #widget=\"widgetRenderer\"\n ></ng-container>\n </ax-form-field>\n }\n </div>\n </ax-form>\n </div>\n }\n </div>\n <!-- Finish Sections -->\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\n id=\"axp-btn-cancel\"\n look=\"solid\"\n [color]=\"'default'\"\n [text]=\"'@general:actions.cancel.title' | translate | async\"\n (onClick)=\"handleCloseClick()\"\n >\n </ax-button>\n @if (vm.canCreateNewOne()) {\n <ax-dropdown-button\n id=\"axp-btn-save\"\n [disabled]=\"vm.isInProgress()\"\n color=\"primary\"\n [text]=\"'@general:actions.save.title' | translate | async\"\n look=\"solid\"\n (onClick)=\"handleSaveClick(form)\"\n >\n @if (vm.isInProgress()) {\n <ax-loading></ax-loading>\n }\n <ax-button-item-list>\n <ax-button-item\n id=\"axp-btn-save-and-new\"\n [text]=\"('@general:actions.save-and-new.title' | translate | async) ?? ''\"\n (onClick)=\"handleSaveAndNewClick(form)\"\n >\n </ax-button-item>\n </ax-button-item-list>\n </ax-dropdown-button>\n } @else {\n <ax-button\n id=\"axp-btn-save\"\n look=\"solid\"\n color=\"primary\"\n [text]=\"'@general:actions.save.title' | translate | async\"\n (onClick)=\"handleSaveClick(form)\"\n >\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>\n" }]
157
+ }], propDecorators: { container: [{ type: i0.ViewChild, args: [i0.forwardRef(() => AXPWidgetContainerComponent), { isSignal: true }] }] } });
158
+
159
+ export { AXPEntityMasterCreateViewComponent };
160
+ //# sourceMappingURL=acorex-platform-themes-default-entity-master-create-view.component-Cvvr4HnL.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"acorex-platform-themes-default-entity-master-create-view.component-Cvvr4HnL.mjs","sources":["../../../../libs/platform/themes/default/src/lib/layouts/entity-layouts/entity-master-create-view/entity-master-create-view.component.ts","../../../../libs/platform/themes/default/src/lib/layouts/entity-layouts/entity-master-create-view/entity-master-create-view.component.html"],"sourcesContent":["import { AXButtonModule } from '@acorex/components/button';\nimport { AXDecoratorModule } from '@acorex/components/decorators';\nimport { AXDialogModule } from '@acorex/components/dialog';\nimport { AXDropdownButtonModule } from '@acorex/components/dropdown-button';\nimport { AXFormComponent, AXFormModule } from '@acorex/components/form';\nimport { AXLabelModule } from '@acorex/components/label';\nimport { AXLoadingModule } from '@acorex/components/loading';\nimport { AXBasePageComponent } from '@acorex/components/page';\nimport { AXTabsModule } from '@acorex/components/tabs';\nimport { AXTooltipModule } from '@acorex/components/tooltip';\nimport { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, effect, inject, signal, viewChild } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\n\nimport { AXValidationModule } from '@acorex/core/validation';\n\nimport { AXDropdownModule } from '@acorex/components/dropdown';\nimport { AXToastService } from '@acorex/components/toast';\nimport { AXTranslationModule, AXTranslationService } from '@acorex/core/translation';\nimport {\n AXPComponentSlotModule,\n AXPContextChangeEvent,\n AXPContextStore,\n AXPExpressionEvaluatorService,\n AXPGridLayoutDirective,\n} from '@acorex/platform/core';\nimport { AXPEntityMasterCreateViewModel } from '@acorex/platform/layout/entity';\nimport {\n AXPWidgetContainerComponent,\n AXPWidgetCoreModule,\n} from '@acorex/platform/layout/widget-core';\nimport { AXPWidgetsModule } from '@acorex/platform/layout/widgets';\nimport { AXPWorkflowService } from '@acorex/platform/workflow';\nimport { get } from 'lodash-es';\n\n@Component({\n templateUrl: './entity-master-create-view.component.html',\n imports: [\n CommonModule,\n FormsModule,\n AXFormModule,\n AXDecoratorModule,\n CommonModule,\n AXButtonModule,\n AXDialogModule,\n AXLoadingModule,\n AXTabsModule,\n AXTooltipModule,\n AXValidationModule,\n AXLabelModule,\n AXDropdownModule,\n AXDropdownButtonModule,\n AXTranslationModule,\n //\n AXPWidgetCoreModule,\n AXPComponentSlotModule,\n AXPWidgetsModule,\n AXPGridLayoutDirective,\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [AXPContextStore],\n})\nexport class AXPEntityMasterCreateViewComponent extends AXBasePageComponent {\n protected vm!: AXPEntityMasterCreateViewModel;\n\n private container = viewChild(AXPWidgetContainerComponent);\n private evaluator = inject(AXPExpressionEvaluatorService);\n private toastService = inject(AXToastService);\n private translationService = inject(AXTranslationService);\n\n protected workflow = inject(AXPWorkflowService);\n\n ngAfterViewInit() {\n this.vm.builder = this.container()!.builderService;\n }\n protected hiddenProperties = signal<string[]>([]);\n\n #visibilityEffect = effect(async () => {\n const formContext = this.vm.context();\n const allElements = this.vm.sections().flatMap((section) => section.elements());\n const visibilityConfig = allElements.map((element) => ({\n name: element.name(),\n visible: element.isVisible(),\n }));\n\n const evaluatedElements = await this.evaluator.evaluate(visibilityConfig, {\n context: {\n eval: (path: string) => get(formContext, path),\n },\n });\n\n const hiddenElementNames = evaluatedElements\n .filter((element: { name: string; visible: boolean }) => element.visible == false)\n .map((element: { name: string; visible: boolean }) => element.name);\n this.hiddenProperties.set(hiddenElementNames);\n });\n\n protected handleCloseClick() {\n this.close();\n }\n\n protected async handleBackClick() {\n //await this.vm.executeCommand('back');\n }\n\n protected async handleNextClick(form: AXFormComponent) {\n // const formResult = await form.validate();\n // if (formResult.result) {\n // await this.vm.executeCommand('next');\n // }\n }\n\n protected async handleSaveClick(form: AXFormComponent) {\n const formResult = await form.validate();\n if (formResult.result) {\n try {\n const record = await this.vm.save();\n\n this.close({ save: true, recordId: record?.id, item: record, redirect: this.vm.redirect() });\n } catch (error: any) {\n const errorMessage =\n error?.message ||\n error?.toString() ||\n (await this.translationService.translateAsync('@general:messages.generic.error.description'));\n // this.toastService.show({\n // color: 'danger',\n // title: await this.translationService.translateAsync('@general:messages.generic.error.title'),\n // content: errorMessage,\n // location: 'bottom-center',\n // closeButton: true,\n // timeOut: 5000,\n // timeOutProgress: true,\n // });\n }\n }\n }\n\n protected async handleSaveAndNewClick(form: AXFormComponent) {\n const formResult = await form.validate();\n if (formResult.result) {\n try {\n const record = await this.vm.save();\n this.close({ save: true, recordId: record?.id, item: record, redirect: false });\n await this.vm.createNewOne();\n } catch (error: any) {\n const errorMessage =\n error?.message ||\n error?.toString() ||\n (await this.translationService.translateAsync('@general:messages.generic.error.description'));\n // this.toastService.show({\n // color: 'danger',\n // title: await this.translationService.translateAsync('@general:messages.generic.error.title'),\n // content: errorMessage,\n // location: 'bottom-center',\n // closeButton: true,\n // timeOut: 5000,\n // timeOutProgress: true,\n // });\n }\n }\n }\n\n protected async handleContextChange(e: AXPContextChangeEvent) {\n this.vm.context.set(e.data);\n }\n}\n","<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\n id=\"axp-entity-form-create\"\n class=\"ax-flex ax-flex-col ax-gap-6 ax-p-4 ax-pb-8\"\n #form\n [messageStyle]=\"'bottom'\"\n [updateOn]=\"'blur'\"\n >\n <!-- Begin Sections -->\n <div class=\"ax-grid ax-grid-cols-12 ax-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=\"ax-pb-4\">\n <span class=\"ax-font-bold ax-text-xl\">{{ section.title() | translate | async }}</span>\n @if (section.description()) {\n <p class=\"ax-text-sm ax-text-gray-500\">{{ section.description() }}</p>\n }\n </div>\n }\n <div class=\"ax-card-body !ax-grid !ax-grid-cols-12 !ax-gap-4\">\n @for (attr of section.elements(); track $index) {\n <ax-form-field\n [attr.id]=\"'axp-field-' + attr.name()\"\n class=\"ax-flex ax-flex-col ax-gap-1\"\n [axp-grid-layout]=\"attr.layout()\"\n [class.ax-hidden]=\"hiddenProperties().includes(attr.name())\"\n >\n @if (attr.layout().label?.visible != false) {\n <ax-label class=\"ax-font-semibold ax-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\n axp-widget-renderer\n [node]=\"attr.node()\"\n [mode]=\"'edit'\"\n #widget=\"widgetRenderer\"\n ></ng-container>\n </ax-form-field>\n }\n </div>\n </ax-form>\n </div>\n }\n </div>\n <!-- Finish Sections -->\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\n id=\"axp-btn-cancel\"\n look=\"solid\"\n [color]=\"'default'\"\n [text]=\"'@general:actions.cancel.title' | translate | async\"\n (onClick)=\"handleCloseClick()\"\n >\n </ax-button>\n @if (vm.canCreateNewOne()) {\n <ax-dropdown-button\n id=\"axp-btn-save\"\n [disabled]=\"vm.isInProgress()\"\n color=\"primary\"\n [text]=\"'@general:actions.save.title' | translate | async\"\n look=\"solid\"\n (onClick)=\"handleSaveClick(form)\"\n >\n @if (vm.isInProgress()) {\n <ax-loading></ax-loading>\n }\n <ax-button-item-list>\n <ax-button-item\n id=\"axp-btn-save-and-new\"\n [text]=\"('@general:actions.save-and-new.title' | translate | async) ?? ''\"\n (onClick)=\"handleSaveAndNewClick(form)\"\n >\n </ax-button-item>\n </ax-button-item-list>\n </ax-dropdown-button>\n } @else {\n <ax-button\n id=\"axp-btn-save\"\n look=\"solid\"\n color=\"primary\"\n [text]=\"'@general:actions.save.title' | translate | async\"\n (onClick)=\"handleSaveClick(form)\"\n >\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>\n"],"names":["i8","i9"],"mappings":"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"}
@@ -0,0 +1,120 @@
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 { AXDropdownModule } from '@acorex/components/dropdown';
7
+ import * as i6 from '@acorex/components/dropdown-button';
8
+ import { AXDropdownButtonModule } from '@acorex/components/dropdown-button';
9
+ import * as i1 from '@acorex/components/form';
10
+ import { AXFormModule } from '@acorex/components/form';
11
+ import * as i5 from '@acorex/components/label';
12
+ import { AXLabelModule } from '@acorex/components/label';
13
+ import * as i4 from '@acorex/components/loading';
14
+ import { AXLoadingModule } from '@acorex/components/loading';
15
+ import { AXBasePageComponent } from '@acorex/components/page';
16
+ import { AXTabsModule } from '@acorex/components/tabs';
17
+ import { AXTooltipModule } from '@acorex/components/tooltip';
18
+ import * as i10 from '@acorex/core/translation';
19
+ import { AXTranslationModule } from '@acorex/core/translation';
20
+ import { AXValidationModule } from '@acorex/core/validation';
21
+ import * as i1$1 from '@acorex/platform/core';
22
+ import { AXPExpressionEvaluatorService, AXPGridLayoutDirective, AXPComponentSlotModule, AXPContextStore } from '@acorex/platform/core';
23
+ import * as i7 from '@acorex/platform/layout/widget-core';
24
+ import { AXPWidgetContainerComponent, AXPPageStatus, AXPWidgetCoreModule } from '@acorex/platform/layout/widget-core';
25
+ import { AXPWidgetsModule } from '@acorex/platform/layout/widgets';
26
+ import { AXPWorkflowService } from '@acorex/platform/workflow';
27
+ import * as i1$2 from '@angular/common';
28
+ import { CommonModule } from '@angular/common';
29
+ import * as i0 from '@angular/core';
30
+ import { inject, viewChild, signal, effect, ChangeDetectionStrategy, Component } from '@angular/core';
31
+ import { FormsModule } from '@angular/forms';
32
+ import { get } from 'lodash-es';
33
+
34
+ class AXPEntityMasterModifyViewComponent extends AXBasePageComponent {
35
+ constructor() {
36
+ super(...arguments);
37
+ this.workflow = inject(AXPWorkflowService);
38
+ this.evaluator = inject(AXPExpressionEvaluatorService);
39
+ this.container = viewChild(AXPWidgetContainerComponent, ...(ngDevMode ? [{ debugName: "container" }] : /* istanbul ignore next */ []));
40
+ this.hiddenProperties = signal([], ...(ngDevMode ? [{ debugName: "hiddenProperties" }] : /* istanbul ignore next */ []));
41
+ this.#visibilityEffect = effect(async () => {
42
+ const formContext = this.vm.context();
43
+ const allElements = this.vm.sections().flatMap((section) => section.elements());
44
+ const visibilityConfig = allElements.map((element) => ({
45
+ name: element.name(),
46
+ visible: element.isVisible(),
47
+ }));
48
+ const evaluatedElements = await this.evaluator.evaluate(visibilityConfig, {
49
+ context: {
50
+ eval: (path) => get(formContext, path),
51
+ },
52
+ });
53
+ const hiddenElementNames = evaluatedElements
54
+ .filter((element) => element.visible == false)
55
+ .map((element) => element.name);
56
+ this.hiddenProperties.set(hiddenElementNames);
57
+ }, ...(ngDevMode ? [{ debugName: "#visibilityEffect" }] : /* istanbul ignore next */ []));
58
+ }
59
+ #visibilityEffect;
60
+ ngAfterViewInit() {
61
+ this.vm.builder = this.container().builderService;
62
+ }
63
+ handleCloseClick() {
64
+ this.close();
65
+ }
66
+ async handleSaveClick(form) {
67
+ const formResult = await form.validate();
68
+ if (formResult.result) {
69
+ try {
70
+ await this.vm.save();
71
+ this.close({ result: true, context: this.vm.context() });
72
+ }
73
+ catch (error) {
74
+ this.vm.builder.setStatus(AXPPageStatus.Error);
75
+ }
76
+ }
77
+ }
78
+ async handleSectionDiscard(form) {
79
+ this.close({ result: false });
80
+ }
81
+ async handleSectionReset(form) {
82
+ this.vm.reset();
83
+ }
84
+ async handleContextChange(e) {
85
+ this.vm.context.set(e.data);
86
+ }
87
+ ngOnDestroy() { }
88
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPEntityMasterModifyViewComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
89
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.9", type: AXPEntityMasterModifyViewComponent, 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-modify-header\" [context]=\"vm.context()\"></axp-component-slot>\n<axp-widgets-container [context]=\"vm.context()\" (onContextChanged)=\"handleContextChange($event)\">\n <ax-form id=\"axp-entity-form-edit\" class=\"ax-flex ax-flex-col ax-gap-6 ax-p-4 ax-pb-8\" #form [messageStyle]=\"'bottom'\"\n [updateOn]=\"'blur'\">\n <!-- Begin Sections -->\n <div class=\"ax-grid ax-grid-cols-12 ax-gap-4\">\n @for (section of vm.sections(); track section.name()) {\n <div class=\"ax-col-span-12\">\n <ax-form>\n @if (vm.sections().length > 1 && !section.description()) {\n <div class=\"ax-pb-4\">\n <span class=\"ax-font-bold ax-text-xl\">{{ section.title() | translate | async }}</span>\n @if (section.description()) {\n <p class=\"ax-text-sm ax-text-gray-500\">{{ section.description() }}</p>\n }\n </div>\n }\n <div class=\"ax-card-body !ax-grid !ax-grid-cols-12 !ax-gap-4\">\n @for (attr of section.elements(); track $index) {\n <ax-form-field [attr.id]=\"'axp-field-' + attr.name()\" class=\"ax-flex ax-flex-col ax-gap-1\"\n [axp-grid-layout]=\"attr.layout()\" [class.ax-hidden]=\"hiddenProperties().includes(attr.name())\">\n @if (attr.layout().label?.visible != false) {\n <ax-label class=\"ax-font-semibold ax-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 </ax-form-field>\n }\n </div>\n </ax-form>\n </div>\n }\n </div>\n <!-- Finish Sections -->\n </ax-form>\n</axp-widgets-container>\n@if (slot.isEmpty()) {\n<ax-footer id=\"axp-entity-footer-edit\">\n <ax-prefix>\n <axp-component-slot name=\"entity-modify-footer-prefix\" [context]=\"vm.context()\"></axp-component-slot>\n </ax-prefix>\n <ax-suffix>\n <ax-dropdown-button [mode]=\"'split'\" id=\"axp-btn-discard\"\n [text]=\"'@general:actions.discard.title' | translate | async\" (onClick)=\"handleSectionDiscard(form)\">\n <ax-button-item-list>\n <ax-button-item id=\"axp-btn-reset\" [text]=\"('@general:actions.reset.title' | translate | async) ?? ' '\"\n (onClick)=\"handleSectionReset(form)\">\n <ax-prefix>\n <ax-icon icon=\"fa-solid fa-rotate-left fa-flip-horizontal\"></ax-icon>\n </ax-prefix>\n </ax-button-item>\n\n </ax-button-item-list>\n </ax-dropdown-button>\n\n <ax-button id=\"axp-btn-apply\" [disabled]=\"vm.isInProgress()\" color=\"primary\"\n [text]=\"'@general:actions.apply.title' | translate | async\" (onClick)=\"handleSaveClick(form)\">\n @if (vm.isInProgress()) {\n <ax-loading></ax-loading>\n }\n </ax-button>\n <axp-component-slot name=\"entity-modify-footer-suffix\" [context]=\"vm.context()\"></axp-component-slot>\n </ax-suffix>\n</ax-footer>\n}\n<axp-component-slot name=\"entity-modify-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: "ngmodule", type: AXDecoratorModule }, { kind: "component", type: i2.AXDecoratorIconComponent, selector: "ax-icon", inputs: ["icon"] }, { 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", "color", "look", "text", "type", "mode"], outputs: ["onBlur", "onFocus", "onClick", "selectedChange", "lookChange", "colorChange", "disabledChange"] }, { kind: "ngmodule", type:
90
+ //
91
+ 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: AXPWidgetsModule }, { kind: "directive", type: AXPGridLayoutDirective, selector: "[axp-grid-layout]", inputs: ["axp-grid-layout"] }, { kind: "ngmodule", type: AXTranslationModule }, { kind: "ngmodule", type: AXPComponentSlotModule }, { kind: "directive", type: i1$1.AXPComponentSlotDirective, selector: "axp-component-slot", inputs: ["name", "host", "context"], exportAs: ["slot"] }, { kind: "pipe", type: i1$2.AsyncPipe, name: "async" }, { kind: "pipe", type: i10.AXTranslatorPipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
92
+ }
93
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPEntityMasterModifyViewComponent, decorators: [{
94
+ type: Component,
95
+ args: [{ imports: [
96
+ CommonModule,
97
+ FormsModule,
98
+ AXFormModule,
99
+ AXDecoratorModule,
100
+ CommonModule,
101
+ AXButtonModule,
102
+ AXDialogModule,
103
+ AXLoadingModule,
104
+ AXTabsModule,
105
+ AXTooltipModule,
106
+ AXValidationModule,
107
+ AXLabelModule,
108
+ AXDropdownModule,
109
+ AXDropdownButtonModule,
110
+ //
111
+ AXPWidgetCoreModule,
112
+ AXPWidgetsModule,
113
+ AXPGridLayoutDirective,
114
+ AXTranslationModule,
115
+ AXPComponentSlotModule,
116
+ ], changeDetection: ChangeDetectionStrategy.OnPush, providers: [AXPContextStore], template: "<axp-component-slot name=\"entity-modify-header\" [context]=\"vm.context()\"></axp-component-slot>\n<axp-widgets-container [context]=\"vm.context()\" (onContextChanged)=\"handleContextChange($event)\">\n <ax-form id=\"axp-entity-form-edit\" class=\"ax-flex ax-flex-col ax-gap-6 ax-p-4 ax-pb-8\" #form [messageStyle]=\"'bottom'\"\n [updateOn]=\"'blur'\">\n <!-- Begin Sections -->\n <div class=\"ax-grid ax-grid-cols-12 ax-gap-4\">\n @for (section of vm.sections(); track section.name()) {\n <div class=\"ax-col-span-12\">\n <ax-form>\n @if (vm.sections().length > 1 && !section.description()) {\n <div class=\"ax-pb-4\">\n <span class=\"ax-font-bold ax-text-xl\">{{ section.title() | translate | async }}</span>\n @if (section.description()) {\n <p class=\"ax-text-sm ax-text-gray-500\">{{ section.description() }}</p>\n }\n </div>\n }\n <div class=\"ax-card-body !ax-grid !ax-grid-cols-12 !ax-gap-4\">\n @for (attr of section.elements(); track $index) {\n <ax-form-field [attr.id]=\"'axp-field-' + attr.name()\" class=\"ax-flex ax-flex-col ax-gap-1\"\n [axp-grid-layout]=\"attr.layout()\" [class.ax-hidden]=\"hiddenProperties().includes(attr.name())\">\n @if (attr.layout().label?.visible != false) {\n <ax-label class=\"ax-font-semibold ax-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 </ax-form-field>\n }\n </div>\n </ax-form>\n </div>\n }\n </div>\n <!-- Finish Sections -->\n </ax-form>\n</axp-widgets-container>\n@if (slot.isEmpty()) {\n<ax-footer id=\"axp-entity-footer-edit\">\n <ax-prefix>\n <axp-component-slot name=\"entity-modify-footer-prefix\" [context]=\"vm.context()\"></axp-component-slot>\n </ax-prefix>\n <ax-suffix>\n <ax-dropdown-button [mode]=\"'split'\" id=\"axp-btn-discard\"\n [text]=\"'@general:actions.discard.title' | translate | async\" (onClick)=\"handleSectionDiscard(form)\">\n <ax-button-item-list>\n <ax-button-item id=\"axp-btn-reset\" [text]=\"('@general:actions.reset.title' | translate | async) ?? ' '\"\n (onClick)=\"handleSectionReset(form)\">\n <ax-prefix>\n <ax-icon icon=\"fa-solid fa-rotate-left fa-flip-horizontal\"></ax-icon>\n </ax-prefix>\n </ax-button-item>\n\n </ax-button-item-list>\n </ax-dropdown-button>\n\n <ax-button id=\"axp-btn-apply\" [disabled]=\"vm.isInProgress()\" color=\"primary\"\n [text]=\"'@general:actions.apply.title' | translate | async\" (onClick)=\"handleSaveClick(form)\">\n @if (vm.isInProgress()) {\n <ax-loading></ax-loading>\n }\n </ax-button>\n <axp-component-slot name=\"entity-modify-footer-suffix\" [context]=\"vm.context()\"></axp-component-slot>\n </ax-suffix>\n</ax-footer>\n}\n<axp-component-slot name=\"entity-modify-footer\" #slot=\"slot\" [context]=\"vm.context()\"></axp-component-slot>" }]
117
+ }], propDecorators: { container: [{ type: i0.ViewChild, args: [i0.forwardRef(() => AXPWidgetContainerComponent), { isSignal: true }] }] } });
118
+
119
+ export { AXPEntityMasterModifyViewComponent };
120
+ //# sourceMappingURL=acorex-platform-themes-default-entity-master-modify-view.component-TYoLN1Jq.mjs.map