@acorex-platform/module-platform-management-client 0.0.28 → 0.0.32
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/fesm2022/{acorex-platform-module-platform-management-client-acorex-platform-module-platform-management-client-V_ao4WVM.mjs → acorex-platform-module-platform-management-client-acorex-platform-module-platform-management-client-Dhg_zr0Y.mjs} +52 -18
- package/fesm2022/acorex-platform-module-platform-management-client-acorex-platform-module-platform-management-client-Dhg_zr0Y.mjs.map +1 -0
- package/fesm2022/acorex-platform-module-platform-management-client-contracts.mjs +23 -1
- package/fesm2022/acorex-platform-module-platform-management-client-contracts.mjs.map +1 -1
- package/fesm2022/{acorex-platform-module-platform-management-client-create-user-query.command-2Qu7aoCp.mjs → acorex-platform-module-platform-management-client-create-user-query.command-BZMFLEua.mjs} +3 -7
- package/fesm2022/acorex-platform-module-platform-management-client-create-user-query.command-BZMFLEua.mjs.map +1 -0
- package/fesm2022/{acorex-platform-module-platform-management-client-execute-token.command-DNuHR-0y.mjs → acorex-platform-module-platform-management-client-execute-token.command-B_xwW9lb.mjs} +1 -4
- package/fesm2022/acorex-platform-module-platform-management-client-execute-token.command-B_xwW9lb.mjs.map +1 -0
- package/fesm2022/{acorex-platform-module-platform-management-client-menu-list.component-C5HH5-Dw.mjs → acorex-platform-module-platform-management-client-menu-list.component-DiKmJva5.mjs} +3 -3
- package/fesm2022/{acorex-platform-module-platform-management-client-menu-list.component-C5HH5-Dw.mjs.map → acorex-platform-module-platform-management-client-menu-list.component-DiKmJva5.mjs.map} +1 -1
- package/fesm2022/{acorex-platform-module-platform-management-client-rest-api-generator-widget-column.component-CYb2zOSj.mjs → acorex-platform-module-platform-management-client-rest-api-generator-widget-column.component-BR1FlwWM.mjs} +2 -2
- package/fesm2022/{acorex-platform-module-platform-management-client-rest-api-generator-widget-column.component-CYb2zOSj.mjs.map → acorex-platform-module-platform-management-client-rest-api-generator-widget-column.component-BR1FlwWM.mjs.map} +1 -1
- package/fesm2022/{acorex-platform-module-platform-management-client-rest-api-generator-widget-edit.component-BBwrzcXa.mjs → acorex-platform-module-platform-management-client-rest-api-generator-widget-edit.component-DwPKSgdP.mjs} +2 -2
- package/fesm2022/{acorex-platform-module-platform-management-client-rest-api-generator-widget-edit.component-BBwrzcXa.mjs.map → acorex-platform-module-platform-management-client-rest-api-generator-widget-edit.component-DwPKSgdP.mjs.map} +1 -1
- package/fesm2022/{acorex-platform-module-platform-management-client-rest-api-generator-widget-view.component-DBlZVz6u.mjs → acorex-platform-module-platform-management-client-rest-api-generator-widget-view.component-DPhBXqGo.mjs} +2 -2
- package/fesm2022/{acorex-platform-module-platform-management-client-rest-api-generator-widget-view.component-DBlZVz6u.mjs.map → acorex-platform-module-platform-management-client-rest-api-generator-widget-view.component-DPhBXqGo.mjs.map} +1 -1
- package/fesm2022/acorex-platform-module-platform-management-client.mjs +1 -1
- package/package.json +3 -3
- package/types/acorex-platform-module-platform-management-client-contracts.d.ts +49 -2
- package/fesm2022/acorex-platform-module-platform-management-client-acorex-platform-module-platform-management-client-V_ao4WVM.mjs.map +0 -1
- package/fesm2022/acorex-platform-module-platform-management-client-create-user-query.command-2Qu7aoCp.mjs.map +0 -1
- package/fesm2022/acorex-platform-module-platform-management-client-execute-token.command-DNuHR-0y.mjs.map +0 -1
|
@@ -152,6 +152,28 @@ const RootConfig = {
|
|
|
152
152
|
const AXM_RELOAD_RUNTIME_MEMORY_COMMAND_KEY = 'PlatformManagement:ReloadRuntimeMemory';
|
|
153
153
|
//#endregion
|
|
154
154
|
|
|
155
|
+
//#region ----- Reindex quick search contracts -----
|
|
156
|
+
/** Public server command: rebuild the Elasticsearch quick-search index. */
|
|
157
|
+
const AXM_REINDEX_QUICK_SEARCH_COMMAND_KEY = 'PlatformManagement:ReindexQuickSearch';
|
|
158
|
+
/** Daily UTC cron for the platform-scope catch-up schedule (after retention purge at 03:00). */
|
|
159
|
+
const AXM_REINDEX_QUICK_SEARCH_SCHEDULE_CRON = '0 4 * * *';
|
|
160
|
+
/**
|
|
161
|
+
* Hours subtracted from schedule `lastSuccessAt` so rows updated during the previous
|
|
162
|
+
* run are not missed (finish-time watermark vs scan-start).
|
|
163
|
+
*/
|
|
164
|
+
const AXM_REINDEX_QUICK_SEARCH_CHECKPOINT_OVERLAP_HOURS = 2;
|
|
165
|
+
/**
|
|
166
|
+
* First-run / no-checkpoint fallback window when a scheduled job has no `lastSuccessAt`.
|
|
167
|
+
* Manual runs only use this when `lookbackHours` is set explicitly.
|
|
168
|
+
*/
|
|
169
|
+
const AXM_REINDEX_QUICK_SEARCH_LOOKBACK_HOURS = 26;
|
|
170
|
+
/** Tray / job-engine flags so Background Tasks can show a determinate progress bar. */
|
|
171
|
+
const AXM_REINDEX_QUICK_SEARCH_JOB_CAPABILITIES = {
|
|
172
|
+
supportsProgress: true,
|
|
173
|
+
supportsCooperativeCancellation: true,
|
|
174
|
+
};
|
|
175
|
+
//#endregion
|
|
176
|
+
|
|
155
177
|
//#region ----- Token resolve contracts -----
|
|
156
178
|
/** Server command: resolve a PlatformManagement token by name via `expression`. */
|
|
157
179
|
const AXM_TOKEN_RESOLVE_COMMAND_KEY = 'PlatformManagement.Tokens:Resolve';
|
|
@@ -175,5 +197,5 @@ const AXM_TOKEN_RESOLVE_COMMAND_KEY = 'PlatformManagement.Tokens:Resolve';
|
|
|
175
197
|
* Generated bundle index. Do not edit.
|
|
176
198
|
*/
|
|
177
199
|
|
|
178
|
-
export { AXM_RELOAD_RUNTIME_MEMORY_COMMAND_KEY, AXM_TOKEN_RESOLVE_COMMAND_KEY, AXPApplicationsPlatformPermissionKeys, AXPPlatformManagementFeatureKeys, AXPPlatformManagementMenuKeys, AXPPlatformManagementPermissionKeys, RootConfig };
|
|
200
|
+
export { AXM_REINDEX_QUICK_SEARCH_CHECKPOINT_OVERLAP_HOURS, AXM_REINDEX_QUICK_SEARCH_COMMAND_KEY, AXM_REINDEX_QUICK_SEARCH_JOB_CAPABILITIES, AXM_REINDEX_QUICK_SEARCH_LOOKBACK_HOURS, AXM_REINDEX_QUICK_SEARCH_SCHEDULE_CRON, AXM_RELOAD_RUNTIME_MEMORY_COMMAND_KEY, AXM_TOKEN_RESOLVE_COMMAND_KEY, AXPApplicationsPlatformPermissionKeys, AXPPlatformManagementFeatureKeys, AXPPlatformManagementMenuKeys, AXPPlatformManagementPermissionKeys, RootConfig };
|
|
179
201
|
//# sourceMappingURL=acorex-platform-module-platform-management-client-contracts.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"acorex-platform-module-platform-management-client-contracts.mjs","sources":["../../../../libs/modules/platform-management/contracts/src/features.keys.ts","../../../../libs/modules/platform-management/contracts/src/menu.keys.ts","../../../../libs/modules/platform-management/contracts/src/permission.keys.ts","../../../../libs/modules/platform-management/contracts/src/root-config.ts","../../../../libs/modules/platform-management/contracts/src/reload-runtime-memory.types.ts","../../../../libs/modules/platform-management/contracts/src/entities/token/token-resolve.types.ts","../../../../libs/modules/platform-management/contracts/src/entities/command-definition/command-definition.types.ts","../../../../libs/modules/platform-management/contracts/src/entities/query-definition/query-definition.types.ts","../../../../libs/modules/platform-management/contracts/src/entities/plugin-definition/plugin-definition.types.ts","../../../../libs/modules/platform-management/contracts/src/entities/widget/widget.types.ts","../../../../libs/modules/platform-management/contracts/src/entities/entity-definition/entity-definition.types.ts","../../../../libs/modules/platform-management/contracts/src/entities/entity-access-policy/entity-access-policy.types.ts","../../../../libs/modules/platform-management/contracts/src/index.ts","../../../../libs/modules/platform-management/contracts/src/acorex-platform-module-platform-management-client-contracts.ts"],"sourcesContent":["export const AXPPlatformManagementFeatureKeys = {\n MenuCustomization: 'PlatformManagement:Feature:menu-customization',\n AutoCheckUpdates: 'PlatformManagement:Feature:auto-check-updates',\n MaxTokens: 'PlatformManagement:Feature:max-tokens',\n} as const;\n\n","export const AXPPlatformManagementMenuKeys = {\n AdministrationGroup: 'administration:group',\n Root: 'platform-management:menu',\n Tokens: 'platform-management:menu:tokens',\n Glossary: 'platform-management:menu:glossary',\n UserMenuManagement: 'platform-management:user:menus',\n MenuManagement: 'platform-management:menus',\n EntityDefinitions: 'platform-management:menu:entity-definitions',\n CommandDefinitions: 'platform-management:menu:command-definitions',\n QueryDefinitions: 'platform-management:menu:query-definitions',\n PluginDefinitions: 'platform-management:menu:plugin-definitions',\n Widgets: 'platform-management:menu:widgets',\n} as const;\n","/**\n * Applications & Platform capabilities used by this module.\n * Domain capability keys for this module. Root groups live in `AXPCommonPermissionGroupKeys` (common contracts).\n */\nexport const AXPApplicationsPlatformPermissionKeys = {\n Access: 'ApplicationsPlatform:Permission:Access',\n MaintainApplications: 'ApplicationsPlatform:Permission:MaintainApplications',\n MaintainTenants: 'ApplicationsPlatform:Permission:MaintainTenants',\n MaintainPlatformShell: 'ApplicationsPlatform:Permission:MaintainPlatformShell',\n MaintainLandingPages: 'ApplicationsPlatform:Permission:MaintainLandingPages',\n MaintainIdentifiers: 'ApplicationsPlatform:Permission:MaintainIdentifiers',\n MaintainTenantSettings: 'ApplicationsPlatform:Permission:MaintainTenantSettings',\n MaintainPlatformSettings: 'ApplicationsPlatform:Permission:MaintainPlatformSettings',\n MaintainLocales: 'ApplicationsPlatform:Permission:MaintainLocales',\n UseDevTools: 'ApplicationsPlatform:Permission:UseDevTools',\n} as const;\n\n/**\n * @deprecated Prefer {@link AXPApplicationsPlatformPermissionKeys}.\n * Legacy nested shape kept so existing imports compile during migration.\n */\nexport const AXPPlatformManagementPermissionKeys = {\n PlatformManagement: {\n Management: AXPApplicationsPlatformPermissionKeys.MaintainPlatformShell,\n Administration: AXPApplicationsPlatformPermissionKeys.MaintainPlatformShell,\n Token: {\n Management: AXPApplicationsPlatformPermissionKeys.MaintainPlatformShell,\n View: AXPApplicationsPlatformPermissionKeys.MaintainPlatformShell,\n Edit: AXPApplicationsPlatformPermissionKeys.MaintainPlatformShell,\n Delete: AXPApplicationsPlatformPermissionKeys.MaintainPlatformShell,\n Create: AXPApplicationsPlatformPermissionKeys.MaintainPlatformShell,\n },\n MenuManagement: {\n Management: AXPApplicationsPlatformPermissionKeys.MaintainPlatformShell,\n View: AXPApplicationsPlatformPermissionKeys.MaintainPlatformShell,\n Edit: AXPApplicationsPlatformPermissionKeys.MaintainPlatformShell,\n Delete: AXPApplicationsPlatformPermissionKeys.MaintainPlatformShell,\n Create: AXPApplicationsPlatformPermissionKeys.MaintainPlatformShell,\n },\n },\n} as const;\n","const config = {\n i18n: 'platform-management',\n};\n\nexport const RootConfig = {\n config,\n module: {\n route: 'platform-management',\n name: 'PlatformManagement',\n title: `@${config.i18n}:module.title`,\n icon: 'fa-light fa-cogs',\n },\n entities: {\n localizationManagement: {\n name: 'Localization Management',\n title: `@${config.i18n}:localization-management.entities.localization-management.title`,\n icon: 'fa-light fa-globe',\n },\n token: {\n name: 'Tokens',\n title: `@${config.i18n}:tokens.entities.token.title`,\n icon: 'fa-light fa-object-exclude',\n },\n commandDefinition: {\n name: 'CommandDefinition',\n title: `@${config.i18n}:command-definitions.entities.command-definition.title`,\n titlePlural: `@${config.i18n}:command-definitions.entities.command-definition.title-plural`,\n icon: 'fa-light fa-terminal',\n },\n queryDefinition: {\n name: 'QueryDefinition',\n title: `@${config.i18n}:query-definitions.entities.query-definition.title`,\n titlePlural: `@${config.i18n}:query-definitions.entities.query-definition.title-plural`,\n icon: 'fa-light fa-database',\n },\n pluginDefinition: {\n name: 'PluginDefinition',\n title: `@${config.i18n}:plugin-definitions.entities.plugin-definition.title`,\n titlePlural: `@${config.i18n}:plugin-definitions.entities.plugin-definition.title-plural`,\n icon: 'fa-light fa-puzzle-piece',\n },\n widget: {\n name: 'Widget',\n title: `@${config.i18n}:widgets.entities.widget.title`,\n titlePlural: `@${config.i18n}:widgets.entities.widget.title-plural`,\n icon: 'fa-light fa-cubes',\n },\n entityDefinition: {\n name: 'EntityDefinition',\n title: `@${config.i18n}:entity-definitions.entities.entity-definition.title`,\n titlePlural: `@${config.i18n}:entity-definitions.entities.entity-definition.title-plural`,\n icon: 'fa-light fa-diagram-project',\n },\n entityAccessPolicy: {\n name: 'EntityAccessPolicy',\n title: `@${config.i18n}:entity-access-policies.entities.entity-access-policy.title`,\n titlePlural: `@${config.i18n}:entity-access-policies.entities.entity-access-policy.title-plural`,\n icon: 'fa-light fa-shield-keyhole',\n },\n },\n queries: {\n listRegisteredQueries: 'PlatformManagement:ListRegisteredQueries',\n dashboard: {\n tenantsKpi: 'PlatformManagement:Dashboard:TenantsKpi',\n usersKpi: 'PlatformManagement:Dashboard:UsersKpi',\n applicationsKpi: 'PlatformManagement:Dashboard:ApplicationsKpi',\n errorsKpi: 'PlatformManagement:Dashboard:ErrorsKpi',\n onlineUsersKpi: 'PlatformManagement:Dashboard:OnlineUsersKpi',\n todayLoggedInUsersKpi: 'PlatformManagement:Dashboard:TodayLoggedInUsersKpi',\n todayOnlineByHourLine: 'PlatformManagement:Dashboard:TodayOnlineByHourLine',\n tenantsByStatusBar: 'PlatformManagement:Dashboard:TenantsByStatusBar',\n applicationsByEditionDonut: 'PlatformManagement:Dashboard:ApplicationsByEditionDonut',\n errorsTrendLine: 'PlatformManagement:Dashboard:ErrorsTrendLine',\n jobsByStatusBar: 'PlatformManagement:Dashboard:JobsByStatusBar',\n },\n reports: {\n userActivityTimeline: 'PlatformManagement:Reports:UserActivityTimeline',\n userPresenceSummary: 'PlatformManagement:Reports:UserPresenceSummary',\n userPresenceDaily: 'PlatformManagement:Reports:UserPresenceDaily',\n userPresenceDailyChart: 'PlatformManagement:Reports:UserPresenceDailyChart',\n userPresenceTimeline: 'PlatformManagement:Reports:UserPresenceTimeline',\n userPresenceAwayBusy: 'PlatformManagement:Reports:UserPresenceAwayBusy',\n tenantPresenceSnapshot: 'PlatformManagement:Reports:TenantPresenceSnapshot',\n tenantPresenceWhoWasAround: 'PlatformManagement:Reports:TenantPresenceWhoWasAround',\n tenantPresenceDailyTrend: 'PlatformManagement:Reports:TenantPresenceDailyTrend',\n },\n },\n} as const;\n\n","//#region ----- Reload runtime memory contracts -----\n\n/** Public server command: reload in-memory entity schemas from domain definitions. */\nexport const AXM_RELOAD_RUNTIME_MEMORY_COMMAND_KEY = 'PlatformManagement:ReloadRuntimeMemory';\n\nexport interface AXMReloadRuntimeMemoryResult {\n schemaCount: number;\n policiesReloaded: boolean;\n}\n\n//#endregion\n","//#region ----- Token resolve contracts -----\n\n/** Server command: resolve a PlatformManagement token by name via `expression`. */\nexport const AXM_TOKEN_RESOLVE_COMMAND_KEY = 'PlatformManagement.Tokens:Resolve';\n\nexport interface AXMTokenResolveRequest {\n /** Token name (`PlatformManagement.Tokens.name`). */\n tokenName?: string;\n}\n\nexport interface AXMTokenResolveResult {\n tokenName: string;\n /** Resolved value; omitted/null when expression is empty or token missing. */\n value?: unknown;\n kind?: string;\n dataType?: string;\n}\n\n//#endregion\n","import type { AXPCommandCapability } from '@acorex-platform/framework-shared/domain';\nimport type { AXPPropertyDefinition } from '@acorex-platform/framework-shared/domain';\nimport type { AXPEntityModel } from '@acorex-platform/framework-shared/entity';\n\n//#region ---- Command definition entity model ----\n\nexport interface AXMCommandDefinitionEntityModel extends AXPEntityModel<string> {\n name: string;\n active: boolean;\n catalogTitle?: string;\n description?: string;\n executionMode?: 'frontend' | 'backend' | 'both';\n capabilities?: AXPCommandCapability[];\n inputOptionDefinitions?: AXPPropertyDefinition[];\n outputOptionDefinitions?: AXPPropertyDefinition[];\n outcomesDefinitionJson?: string;\n aiMetadataJson?: string;\n categories?: unknown[];\n}\n\n//#endregion\n","import type { AXPQueryRegistryRecord } from '@acorex-platform/framework-shared/domain';\nimport type { AXPEntityModel } from '@acorex-platform/framework-shared/entity';\n\n//#region ---- Query definition entity model ----\n\nexport interface AXMQueryDefinitionEntityModel\n extends AXPEntityModel<string>,\n Omit<AXPQueryRegistryRecord, 'name' | 'active'> {\n name: string;\n active: boolean;\n}\n\n//#endregion\n","import type { AXPPluginRegistryRecord } from '@acorex-platform/framework-shared/domain';\nimport type { AXPEntityModel } from '@acorex-platform/framework-shared/entity';\n\n//#region ---- Plugin definition entity model ----\n\nexport interface AXMPluginDefinitionEntityModel\n extends AXPEntityModel<string>,\n Omit<AXPPluginRegistryRecord, 'name' | 'active'> {\n name: string;\n active: boolean;\n}\n\n//#endregion\n","import type { AXPWidgetRegistryRecord } from '@acorex-platform/framework-shared/domain';\nimport type { AXPEntityModel } from '@acorex-platform/framework-shared/entity';\n\n//#region ---- Widget entity model ----\n\nexport interface AXMWidgetEntityModel\n extends AXPEntityModel<string>,\n Omit<AXPWidgetRegistryRecord, 'name' | 'active'> {\n name: string;\n active: boolean;\n}\n\n//#endregion\n","import type { AXPEntityModel } from '@acorex-platform/framework-shared/entity';\r\n\r\n//#region ---- Entity definition catalog model ----\r\n\r\n/**\r\n * Row shape in `PlatformManagement.EntityDefinition` (domain definition store).\r\n * Seeded from module `*.entity.ts` catalogs via domain-definition seed.\r\n */\r\nexport interface AXMEntityDefinitionEntityModel extends AXPEntityModel<string> {\r\n /** Logical key: `Module.Entity`. */\r\n name: string;\r\n /** Full serializable {@link AXPEntity} from the module factory. */\r\n content?: Record<string, unknown>;\r\n}\r\n\r\n//#endregion\r\n","import type { AXPEntityModel } from '@acorex-platform/framework-shared/entity';\n\n//#region ---- EntityAccessPolicy model ----\n\n/**\n * Platform-wide row governing read/write access expressions for an entity\n * (exact name or pattern such as `SystemInsight.*` / `*`).\n */\nexport interface AXMPlatformManagementEntityAccessPolicyEntityModel\n extends AXPEntityModel<string> {\n entityName: string;\n /** Builtin name or inline expression. */\n read: string;\n /** Builtin name or inline expression. */\n write: string;\n enabled?: boolean;\n description?: string;\n}\n\n//#endregion\n","//#region ---- Contracts barrel ----\n\nexport * from './features.keys';\nexport * from './menu.keys';\nexport * from './permission.keys';\n\nexport * from './root-config';\nexport * from './reload-runtime-memory.types';\n\n//#endregion\n\nexport * from './entities';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"acorex-platform-module-platform-management-client-contracts.mjs","sources":["../../../../libs/modules/platform-management/contracts/src/features.keys.ts","../../../../libs/modules/platform-management/contracts/src/menu.keys.ts","../../../../libs/modules/platform-management/contracts/src/permission.keys.ts","../../../../libs/modules/platform-management/contracts/src/root-config.ts","../../../../libs/modules/platform-management/contracts/src/reload-runtime-memory.types.ts","../../../../libs/modules/platform-management/contracts/src/reindex-quick-search.types.ts","../../../../libs/modules/platform-management/contracts/src/entities/token/token-resolve.types.ts","../../../../libs/modules/platform-management/contracts/src/entities/command-definition/command-definition.types.ts","../../../../libs/modules/platform-management/contracts/src/entities/query-definition/query-definition.types.ts","../../../../libs/modules/platform-management/contracts/src/entities/plugin-definition/plugin-definition.types.ts","../../../../libs/modules/platform-management/contracts/src/entities/widget/widget.types.ts","../../../../libs/modules/platform-management/contracts/src/entities/entity-definition/entity-definition.types.ts","../../../../libs/modules/platform-management/contracts/src/entities/entity-access-policy/entity-access-policy.types.ts","../../../../libs/modules/platform-management/contracts/src/index.ts","../../../../libs/modules/platform-management/contracts/src/acorex-platform-module-platform-management-client-contracts.ts"],"sourcesContent":["export const AXPPlatformManagementFeatureKeys = {\n MenuCustomization: 'PlatformManagement:Feature:menu-customization',\n AutoCheckUpdates: 'PlatformManagement:Feature:auto-check-updates',\n MaxTokens: 'PlatformManagement:Feature:max-tokens',\n} as const;\n\n","export const AXPPlatformManagementMenuKeys = {\n AdministrationGroup: 'administration:group',\n Root: 'platform-management:menu',\n Tokens: 'platform-management:menu:tokens',\n Glossary: 'platform-management:menu:glossary',\n UserMenuManagement: 'platform-management:user:menus',\n MenuManagement: 'platform-management:menus',\n EntityDefinitions: 'platform-management:menu:entity-definitions',\n CommandDefinitions: 'platform-management:menu:command-definitions',\n QueryDefinitions: 'platform-management:menu:query-definitions',\n PluginDefinitions: 'platform-management:menu:plugin-definitions',\n Widgets: 'platform-management:menu:widgets',\n} as const;\n","/**\n * Applications & Platform capabilities used by this module.\n * Domain capability keys for this module. Root groups live in `AXPCommonPermissionGroupKeys` (common contracts).\n */\nexport const AXPApplicationsPlatformPermissionKeys = {\n Access: 'ApplicationsPlatform:Permission:Access',\n MaintainApplications: 'ApplicationsPlatform:Permission:MaintainApplications',\n MaintainTenants: 'ApplicationsPlatform:Permission:MaintainTenants',\n MaintainPlatformShell: 'ApplicationsPlatform:Permission:MaintainPlatformShell',\n MaintainLandingPages: 'ApplicationsPlatform:Permission:MaintainLandingPages',\n MaintainIdentifiers: 'ApplicationsPlatform:Permission:MaintainIdentifiers',\n MaintainTenantSettings: 'ApplicationsPlatform:Permission:MaintainTenantSettings',\n MaintainPlatformSettings: 'ApplicationsPlatform:Permission:MaintainPlatformSettings',\n MaintainLocales: 'ApplicationsPlatform:Permission:MaintainLocales',\n UseDevTools: 'ApplicationsPlatform:Permission:UseDevTools',\n} as const;\n\n/**\n * @deprecated Prefer {@link AXPApplicationsPlatformPermissionKeys}.\n * Legacy nested shape kept so existing imports compile during migration.\n */\nexport const AXPPlatformManagementPermissionKeys = {\n PlatformManagement: {\n Management: AXPApplicationsPlatformPermissionKeys.MaintainPlatformShell,\n Administration: AXPApplicationsPlatformPermissionKeys.MaintainPlatformShell,\n Token: {\n Management: AXPApplicationsPlatformPermissionKeys.MaintainPlatformShell,\n View: AXPApplicationsPlatformPermissionKeys.MaintainPlatformShell,\n Edit: AXPApplicationsPlatformPermissionKeys.MaintainPlatformShell,\n Delete: AXPApplicationsPlatformPermissionKeys.MaintainPlatformShell,\n Create: AXPApplicationsPlatformPermissionKeys.MaintainPlatformShell,\n },\n MenuManagement: {\n Management: AXPApplicationsPlatformPermissionKeys.MaintainPlatformShell,\n View: AXPApplicationsPlatformPermissionKeys.MaintainPlatformShell,\n Edit: AXPApplicationsPlatformPermissionKeys.MaintainPlatformShell,\n Delete: AXPApplicationsPlatformPermissionKeys.MaintainPlatformShell,\n Create: AXPApplicationsPlatformPermissionKeys.MaintainPlatformShell,\n },\n },\n} as const;\n","const config = {\n i18n: 'platform-management',\n};\n\nexport const RootConfig = {\n config,\n module: {\n route: 'platform-management',\n name: 'PlatformManagement',\n title: `@${config.i18n}:module.title`,\n icon: 'fa-light fa-cogs',\n },\n entities: {\n localizationManagement: {\n name: 'Localization Management',\n title: `@${config.i18n}:localization-management.entities.localization-management.title`,\n icon: 'fa-light fa-globe',\n },\n token: {\n name: 'Tokens',\n title: `@${config.i18n}:tokens.entities.token.title`,\n icon: 'fa-light fa-object-exclude',\n },\n commandDefinition: {\n name: 'CommandDefinition',\n title: `@${config.i18n}:command-definitions.entities.command-definition.title`,\n titlePlural: `@${config.i18n}:command-definitions.entities.command-definition.title-plural`,\n icon: 'fa-light fa-terminal',\n },\n queryDefinition: {\n name: 'QueryDefinition',\n title: `@${config.i18n}:query-definitions.entities.query-definition.title`,\n titlePlural: `@${config.i18n}:query-definitions.entities.query-definition.title-plural`,\n icon: 'fa-light fa-database',\n },\n pluginDefinition: {\n name: 'PluginDefinition',\n title: `@${config.i18n}:plugin-definitions.entities.plugin-definition.title`,\n titlePlural: `@${config.i18n}:plugin-definitions.entities.plugin-definition.title-plural`,\n icon: 'fa-light fa-puzzle-piece',\n },\n widget: {\n name: 'Widget',\n title: `@${config.i18n}:widgets.entities.widget.title`,\n titlePlural: `@${config.i18n}:widgets.entities.widget.title-plural`,\n icon: 'fa-light fa-cubes',\n },\n entityDefinition: {\n name: 'EntityDefinition',\n title: `@${config.i18n}:entity-definitions.entities.entity-definition.title`,\n titlePlural: `@${config.i18n}:entity-definitions.entities.entity-definition.title-plural`,\n icon: 'fa-light fa-diagram-project',\n },\n entityAccessPolicy: {\n name: 'EntityAccessPolicy',\n title: `@${config.i18n}:entity-access-policies.entities.entity-access-policy.title`,\n titlePlural: `@${config.i18n}:entity-access-policies.entities.entity-access-policy.title-plural`,\n icon: 'fa-light fa-shield-keyhole',\n },\n },\n queries: {\n listRegisteredQueries: 'PlatformManagement:ListRegisteredQueries',\n dashboard: {\n tenantsKpi: 'PlatformManagement:Dashboard:TenantsKpi',\n usersKpi: 'PlatformManagement:Dashboard:UsersKpi',\n applicationsKpi: 'PlatformManagement:Dashboard:ApplicationsKpi',\n errorsKpi: 'PlatformManagement:Dashboard:ErrorsKpi',\n onlineUsersKpi: 'PlatformManagement:Dashboard:OnlineUsersKpi',\n todayLoggedInUsersKpi: 'PlatformManagement:Dashboard:TodayLoggedInUsersKpi',\n todayOnlineByHourLine: 'PlatformManagement:Dashboard:TodayOnlineByHourLine',\n tenantsByStatusBar: 'PlatformManagement:Dashboard:TenantsByStatusBar',\n applicationsByEditionDonut: 'PlatformManagement:Dashboard:ApplicationsByEditionDonut',\n errorsTrendLine: 'PlatformManagement:Dashboard:ErrorsTrendLine',\n jobsByStatusBar: 'PlatformManagement:Dashboard:JobsByStatusBar',\n },\n reports: {\n userActivityTimeline: 'PlatformManagement:Reports:UserActivityTimeline',\n userPresenceSummary: 'PlatformManagement:Reports:UserPresenceSummary',\n userPresenceDaily: 'PlatformManagement:Reports:UserPresenceDaily',\n userPresenceDailyChart: 'PlatformManagement:Reports:UserPresenceDailyChart',\n userPresenceTimeline: 'PlatformManagement:Reports:UserPresenceTimeline',\n userPresenceAwayBusy: 'PlatformManagement:Reports:UserPresenceAwayBusy',\n tenantPresenceSnapshot: 'PlatformManagement:Reports:TenantPresenceSnapshot',\n tenantPresenceWhoWasAround: 'PlatformManagement:Reports:TenantPresenceWhoWasAround',\n tenantPresenceDailyTrend: 'PlatformManagement:Reports:TenantPresenceDailyTrend',\n },\n },\n} as const;\n\n","//#region ----- Reload runtime memory contracts -----\n\n/** Public server command: reload in-memory entity schemas from domain definitions. */\nexport const AXM_RELOAD_RUNTIME_MEMORY_COMMAND_KEY = 'PlatformManagement:ReloadRuntimeMemory';\n\nexport interface AXMReloadRuntimeMemoryResult {\n schemaCount: number;\n policiesReloaded: boolean;\n}\n\n//#endregion\n","//#region ----- Reindex quick search contracts -----\n\n/** Public server command: rebuild the Elasticsearch quick-search index. */\nexport const AXM_REINDEX_QUICK_SEARCH_COMMAND_KEY = 'PlatformManagement:ReindexQuickSearch';\n\n/** Daily UTC cron for the platform-scope catch-up schedule (after retention purge at 03:00). */\nexport const AXM_REINDEX_QUICK_SEARCH_SCHEDULE_CRON = '0 4 * * *';\n\n/**\n * Hours subtracted from schedule `lastSuccessAt` so rows updated during the previous\n * run are not missed (finish-time watermark vs scan-start).\n */\nexport const AXM_REINDEX_QUICK_SEARCH_CHECKPOINT_OVERLAP_HOURS = 2;\n\n/**\n * First-run / no-checkpoint fallback window when a scheduled job has no `lastSuccessAt`.\n * Manual runs only use this when `lookbackHours` is set explicitly.\n */\nexport const AXM_REINDEX_QUICK_SEARCH_LOOKBACK_HOURS = 26;\n\n/** Tray / job-engine flags so Background Tasks can show a determinate progress bar. */\nexport const AXM_REINDEX_QUICK_SEARCH_JOB_CAPABILITIES = {\n supportsProgress: true,\n supportsCooperativeCancellation: true,\n} as const;\n\nexport interface AXMReindexQuickSearchInput {\n /**\n * When true (default for interactive execute), queue a background job and return immediately.\n * Ignored when the handler is already running inside a background-job worker.\n */\n async?: boolean;\n /** When set, rebuild only this entity instead of the full index. */\n entityName?: string;\n /** When true, drop and recreate the index, then walk every row (slow on large databases). */\n reset?: boolean;\n /**\n * Incremental window when `reset` is false and no schedule checkpoint exists.\n * Omitted → {@link AXM_REINDEX_QUICK_SEARCH_LOOKBACK_HOURS}. `0` walks every row.\n * Scheduled runs prefer `lastSuccessAt` minus {@link AXM_REINDEX_QUICK_SEARCH_CHECKPOINT_OVERLAP_HOURS}.\n */\n lookbackHours?: number;\n}\n\nexport interface AXMReindexQuickSearchResult {\n indexed: number;\n jobId?: string;\n queued?: boolean;\n entityName?: string;\n reset?: boolean;\n lookbackHours?: number;\n /** Lower bound used for incremental Mongo filter, when a window was applied. */\n updatedSince?: string;\n}\n\n//#endregion\n","//#region ----- Token resolve contracts -----\n\n/** Server command: resolve a PlatformManagement token by name via `expression`. */\nexport const AXM_TOKEN_RESOLVE_COMMAND_KEY = 'PlatformManagement.Tokens:Resolve';\n\nexport interface AXMTokenResolveRequest {\n /** Token name (`PlatformManagement.Tokens.name`). */\n tokenName?: string;\n}\n\nexport interface AXMTokenResolveResult {\n tokenName: string;\n /** Resolved value; omitted/null when expression is empty or token missing. */\n value?: unknown;\n kind?: string;\n dataType?: string;\n}\n\n//#endregion\n","import type { AXPCommandCapability } from '@acorex-platform/framework-shared/domain';\nimport type { AXPPropertyDefinition } from '@acorex-platform/framework-shared/domain';\nimport type { AXPEntityModel } from '@acorex-platform/framework-shared/entity';\n\n//#region ---- Command definition entity model ----\n\nexport interface AXMCommandDefinitionEntityModel extends AXPEntityModel<string> {\n name: string;\n active: boolean;\n catalogTitle?: string;\n description?: string;\n executionMode?: 'frontend' | 'backend' | 'both';\n capabilities?: AXPCommandCapability[];\n inputOptionDefinitions?: AXPPropertyDefinition[];\n outputOptionDefinitions?: AXPPropertyDefinition[];\n outcomesDefinitionJson?: string;\n aiMetadataJson?: string;\n categories?: unknown[];\n}\n\n//#endregion\n","import type { AXPQueryRegistryRecord } from '@acorex-platform/framework-shared/domain';\nimport type { AXPEntityModel } from '@acorex-platform/framework-shared/entity';\n\n//#region ---- Query definition entity model ----\n\nexport interface AXMQueryDefinitionEntityModel\n extends AXPEntityModel<string>,\n Omit<AXPQueryRegistryRecord, 'name' | 'active'> {\n name: string;\n active: boolean;\n}\n\n//#endregion\n","import type { AXPPluginRegistryRecord } from '@acorex-platform/framework-shared/domain';\nimport type { AXPEntityModel } from '@acorex-platform/framework-shared/entity';\n\n//#region ---- Plugin definition entity model ----\n\nexport interface AXMPluginDefinitionEntityModel\n extends AXPEntityModel<string>,\n Omit<AXPPluginRegistryRecord, 'name' | 'active'> {\n name: string;\n active: boolean;\n}\n\n//#endregion\n","import type { AXPWidgetRegistryRecord } from '@acorex-platform/framework-shared/domain';\nimport type { AXPEntityModel } from '@acorex-platform/framework-shared/entity';\n\n//#region ---- Widget entity model ----\n\nexport interface AXMWidgetEntityModel\n extends AXPEntityModel<string>,\n Omit<AXPWidgetRegistryRecord, 'name' | 'active'> {\n name: string;\n active: boolean;\n}\n\n//#endregion\n","import type { AXPEntityModel } from '@acorex-platform/framework-shared/entity';\r\n\r\n//#region ---- Entity definition catalog model ----\r\n\r\n/**\r\n * Row shape in `PlatformManagement.EntityDefinition` (domain definition store).\r\n * Seeded from module `*.entity.ts` catalogs via domain-definition seed.\r\n */\r\nexport interface AXMEntityDefinitionEntityModel extends AXPEntityModel<string> {\r\n /** Logical key: `Module.Entity`. */\r\n name: string;\r\n /** Full serializable {@link AXPEntity} from the module factory. */\r\n content?: Record<string, unknown>;\r\n}\r\n\r\n//#endregion\r\n","import type { AXPEntityModel } from '@acorex-platform/framework-shared/entity';\n\n//#region ---- EntityAccessPolicy model ----\n\n/**\n * Platform-wide row governing read/write access expressions for an entity\n * (exact name or pattern such as `SystemInsight.*` / `*`).\n */\nexport interface AXMPlatformManagementEntityAccessPolicyEntityModel\n extends AXPEntityModel<string> {\n entityName: string;\n /** Builtin name or inline expression. */\n read: string;\n /** Builtin name or inline expression. */\n write: string;\n enabled?: boolean;\n description?: string;\n}\n\n//#endregion\n","//#region ---- Contracts barrel ----\n\nexport * from './features.keys';\nexport * from './menu.keys';\nexport * from './permission.keys';\n\nexport * from './root-config';\nexport * from './reload-runtime-memory.types';\nexport * from './reindex-quick-search.types';\n\n//#endregion\n\nexport * from './entities';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
@@ -8,7 +8,7 @@ import { inject, Injectable } from '@angular/core';
|
|
|
8
8
|
import { AXPWidgetsList } from '@acorex-platform/framework-shared/core';
|
|
9
9
|
import { parsePropertyExposeEntries } from '@acorex-platform/framework-shared/entity';
|
|
10
10
|
import { C as CREATE_USER_QUERY_I18N, a as CREATE_USER_QUERY_WIZARD_NAME, b as CREATE_USER_QUERY_ENTITY_CATALOG } from './acorex-platform-module-platform-management-client-create-user-query.types-DdygAori.mjs';
|
|
11
|
-
import { n as normalizeRestApiOutput, c as createEmptyRestApiOutput, R as REST_API_GENERATOR_WIDGET_NAME } from './acorex-platform-module-platform-management-client-acorex-platform-module-platform-management-client-
|
|
11
|
+
import { n as normalizeRestApiOutput, c as createEmptyRestApiOutput, R as REST_API_GENERATOR_WIDGET_NAME } from './acorex-platform-module-platform-management-client-acorex-platform-module-platform-management-client-Dhg_zr0Y.mjs';
|
|
12
12
|
|
|
13
13
|
//#region ----- Imports -----
|
|
14
14
|
//#endregion
|
|
@@ -1063,11 +1063,7 @@ async function openAdvancedPlaceholder(args) {
|
|
|
1063
1063
|
.setTitle(CREATE_USER_QUERY_I18N.titles.advanced)
|
|
1064
1064
|
.setMessage(CREATE_USER_QUERY_I18N.placeholders.advanced)
|
|
1065
1065
|
.setSize('md')
|
|
1066
|
-
.setCloseButton(true)
|
|
1067
|
-
.setActions((actions) => {
|
|
1068
|
-
actions.cancel('@general:actions.close.title');
|
|
1069
|
-
})
|
|
1070
|
-
.onAction(async () => null);
|
|
1066
|
+
.setCloseButton(true);
|
|
1071
1067
|
})
|
|
1072
1068
|
.show();
|
|
1073
1069
|
return null;
|
|
@@ -1539,4 +1535,4 @@ function resolveSourceKind(input) {
|
|
|
1539
1535
|
}
|
|
1540
1536
|
|
|
1541
1537
|
export { AXMCreateUserQueryCommand };
|
|
1542
|
-
//# sourceMappingURL=acorex-platform-module-platform-management-client-create-user-query.command-
|
|
1538
|
+
//# sourceMappingURL=acorex-platform-module-platform-management-client-create-user-query.command-BZMFLEua.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"acorex-platform-module-platform-management-client-create-user-query.command-BZMFLEua.mjs","sources":["../../../../libs/modules/platform-management/client/src/lib/features/query-definition/create-user-query-entity-fields.util.ts","../../../../libs/modules/platform-management/client/src/lib/features/query-definition/create-user-query.wizard.ts","../../../../libs/modules/platform-management/client/src/lib/features/query-definition/create-user-query.command.ts"],"sourcesContent":["//#region ----- Imports -----\n\nimport {\n parsePropertyExposeEntries,\n type AXPEntity,\n type AXPEntityProperty,\n type AXPRelatedEntity,\n} from '@acorex-platform/framework-shared/entity';\n\nimport type { AXPUserQueryEntityFieldGroup } from './create-user-query.types';\n\n//#endregion\n\n//#region ----- Constants -----\n\nconst LOOKUP_WIDGET_TYPES = new Set(['lookup-editor', 'select-editor']);\n\nexport const USER_QUERY_RELATED_DEPTH = 3;\n\n//#endregion\n\n//#region ----- Public API -----\n\nexport function parseEntityFullName(fullName: string): { module: string; name: string } | null {\n const trimmed = fullName.trim();\n const separator = trimmed.indexOf('.');\n if (separator <= 0 || separator === trimmed.length - 1) {\n return null;\n }\n\n return {\n module: trimmed.slice(0, separator),\n name: trimmed.slice(separator + 1),\n };\n}\n\nexport function resolvePickedEntityFullName(value: unknown): string {\n if (typeof value === 'string') {\n return value.trim();\n }\n\n if (value == null || typeof value !== 'object') {\n return '';\n }\n\n const record = value as Record<string, unknown>;\n const id = typeof record['id'] === 'string' ? record['id'].trim() : '';\n if (id.includes('.')) {\n return id;\n }\n\n const moduleName = typeof record['module_id'] === 'string' ? record['module_id'].trim() : '';\n const name = typeof record['name'] === 'string' ? record['name'].trim() : '';\n if (moduleName && name) {\n return `${moduleName}.${name}`;\n }\n\n return id;\n}\n\nexport function collectUserQueryEntityFieldGroups(\n entity: AXPEntity,\n relatedByName: ReadonlyMap<string, AXPEntity>,\n): AXPUserQueryEntityFieldGroup[] {\n return collectGroups(entity, relatedByName, '', new Set());\n}\n\nexport function flattenEntityFieldGroups(groups: AXPUserQueryEntityFieldGroup[]): AXPUserQueryEntityFieldGroup[] {\n const result: AXPUserQueryEntityFieldGroup[] = [];\n const walk = (group: AXPUserQueryEntityFieldGroup): void => {\n result.push(group);\n for (const child of group.children ?? []) {\n walk(child);\n }\n };\n for (const group of groups) {\n walk(group);\n }\n return result;\n}\n\nexport function defaultSelectedFieldGroups(\n groups: AXPUserQueryEntityFieldGroup[],\n): Record<string, string[]> {\n const selected: Record<string, string[]> = {};\n for (const group of flattenEntityFieldGroups(groups)) {\n selected[group.id] = [];\n }\n for (const group of groups) {\n if (group.kind !== 'relation') {\n selected[group.id] = group.items.map((item) => item.path);\n }\n }\n return selected;\n}\n\nexport function collectSelectedFieldGroupPaths(\n fieldGroups: Record<string, string[]> | undefined,\n groups: Array<{ id: string; children?: Array<{ id: string; children?: unknown[] }> }>,\n): string[] {\n const paths: string[] = [];\n const walk = (group: { id: string; children?: Array<{ id: string; children?: unknown[] }> }): void => {\n paths.push(...normalizeSelectedFieldPaths(fieldGroups?.[group.id]));\n for (const child of group.children ?? []) {\n walk(child as { id: string; children?: Array<{ id: string; children?: unknown[] }> });\n }\n };\n for (const group of groups) {\n walk(group);\n }\n return paths;\n}\n\nexport function withRequiredIdField(paths: string[]): string[] {\n const unique: string[] = [];\n const seen = new Set<string>();\n\n for (const path of paths) {\n const trimmed = path.trim();\n if (!trimmed || seen.has(trimmed)) {\n continue;\n }\n seen.add(trimmed);\n unique.push(trimmed);\n }\n\n if (!seen.has('id')) {\n unique.unshift('id');\n }\n\n return unique;\n}\n\nexport function normalizeSelectedFieldPaths(value: unknown): string[] {\n if (!Array.isArray(value)) {\n return [];\n }\n\n const paths: string[] = [];\n for (const item of value) {\n if (typeof item === 'string') {\n paths.push(item);\n continue;\n }\n if (item != null && typeof item === 'object') {\n const path = (item as { path?: unknown }).path;\n if (typeof path === 'string') {\n paths.push(path);\n }\n }\n }\n\n return paths;\n}\n\n//#endregion\n\n//#region ----- Group collection -----\n\nfunction collectGroups(\n entity: AXPEntity,\n relatedByName: ReadonlyMap<string, AXPEntity>,\n pathPrefix: string,\n ancestry: ReadonlySet<string>,\n): AXPUserQueryEntityFieldGroup[] {\n const groups: AXPUserQueryEntityFieldGroup[] = [];\n const { host, lookups } = collectHostAndLookups(entity, pathPrefix);\n\n if (host.items.length) {\n groups.push(host);\n }\n groups.push(...lookups);\n\n const hostFullName = `${entity.module}.${entity.name}`;\n const nextAncestry = new Set(ancestry);\n nextAncestry.add(hostFullName);\n\n for (const related of entity.relatedEntities ?? []) {\n const group = collectRelatedGroup(related, relatedByName, pathPrefix, nextAncestry);\n if (group) {\n groups.push(group);\n }\n }\n\n return groups;\n}\n\nfunction collectHostAndLookups(\n entity: AXPEntity | undefined,\n pathPrefix: string,\n allowedNames?: Set<string>,\n): { host: AXPUserQueryEntityFieldGroup; lookups: AXPUserQueryEntityFieldGroup[] } {\n const hostItems: AXPUserQueryEntityFieldGroup['items'] = [];\n const lookups: AXPUserQueryEntityFieldGroup[] = [];\n\n for (const property of entity?.properties ?? []) {\n const name = property.name?.trim();\n if (!name || name.toLowerCase() === 'id') {\n continue;\n }\n if (allowedNames && !allowedNames.has(name)) {\n continue;\n }\n\n if (isLookupProperty(property)) {\n const lookupGroup = collectLookupGroup(property, pathPrefix);\n if (lookupGroup) {\n lookups.push(lookupGroup);\n }\n continue;\n }\n\n hostItems.push({\n path: joinPath(pathPrefix, name),\n title: property.title,\n fallback: name,\n });\n }\n\n return {\n host: {\n id: pathPrefix ? `rel_${sanitizeGroupId(pathPrefix)}_fields` : 'host',\n kind: pathPrefix ? 'relation' : 'host',\n title: '',\n fallback: 'fields',\n items: hostItems,\n },\n lookups,\n };\n}\n\nfunction collectLookupGroup(property: AXPEntityProperty, pathPrefix: string): AXPUserQueryEntityFieldGroup | null {\n const name = property.name?.trim();\n if (!name) {\n return null;\n }\n\n const items: AXPUserQueryEntityFieldGroup['items'] = [\n {\n path: joinPath(pathPrefix, name),\n title: property.title,\n fallback: name,\n },\n ];\n\n const opts = property.schema?.interface?.options;\n for (const entry of parsePropertyExposeEntries(opts)) {\n const target = entry.target.trim();\n if (!target || target === name) {\n continue;\n }\n\n items.push({\n path: joinPath(pathPrefix, target),\n title: entry.source,\n fallback: entry.source.trim() || target,\n });\n }\n\n return {\n id: `lookup_${sanitizeGroupId(joinPath(pathPrefix, name))}`,\n kind: 'lookup',\n title: property.title,\n fallback: name,\n items,\n };\n}\n\nfunction collectRelatedGroup(\n related: AXPRelatedEntity,\n relatedByName: ReadonlyMap<string, AXPEntity>,\n pathPrefix: string,\n ancestry: ReadonlySet<string>,\n): AXPUserQueryEntityFieldGroup | null {\n if (related.hidden === true) {\n return null;\n }\n\n const entityName = related.entity?.trim();\n if (!entityName || ancestry.has(entityName)) {\n return null;\n }\n\n const relatedEntity = relatedByName.get(entityName);\n const dataPath = related.persistence?.dataPath?.trim() || entityName.split('.').pop() || entityName;\n const pathRoot = joinPath(pathPrefix, dataPath);\n const allowed = resolveAllowedPropertyNames(related, relatedEntity);\n const { host, lookups } = collectHostAndLookups(relatedEntity, pathRoot, allowed);\n\n const childAncestry = new Set(ancestry);\n childAncestry.add(entityName);\n\n const children: AXPUserQueryEntityFieldGroup[] = [...lookups];\n for (const nested of relatedEntity?.relatedEntities ?? []) {\n const child = collectRelatedGroup(nested, relatedByName, pathRoot, childAncestry);\n if (child) {\n children.push(child);\n }\n }\n\n if (!host.items.length && !children.length) {\n return null;\n }\n\n return {\n id: `rel_${sanitizeGroupId(pathRoot)}`,\n kind: 'relation',\n title: related.title,\n fallback: entityName,\n items: host.items,\n children: children.length ? children : undefined,\n };\n}\n\nfunction resolveAllowedPropertyNames(\n related: AXPRelatedEntity,\n relatedEntity: AXPEntity | undefined,\n): Set<string> | undefined {\n const excluded = new Set(\n (related.excludeProperties ?? [])\n .filter((name): name is string => typeof name === 'string')\n .map((name) => name.trim())\n .filter(Boolean),\n );\n\n const fromConfig = Array.isArray(related.properties)\n ? related.properties.filter((name): name is string => typeof name === 'string' && name.trim().length > 0)\n : [];\n\n if (fromConfig.length) {\n return new Set(fromConfig.map((name) => name.trim()).filter((name) => name.toLowerCase() !== 'id' && !excluded.has(name)));\n }\n\n if (!excluded.size) {\n return undefined;\n }\n\n const names = (relatedEntity?.properties ?? [])\n .map((property) => property.name?.trim() ?? '')\n .filter((name) => name && name.toLowerCase() !== 'id' && !excluded.has(name));\n return new Set(names);\n}\n\nfunction isLookupProperty(property: AXPEntityProperty): boolean {\n const iface = property.schema?.interface;\n const opts = iface?.options;\n const lookupEntity = typeof opts?.['entity'] === 'string' ? String(opts['entity']).trim() : '';\n if (!lookupEntity) {\n return false;\n }\n\n const widgetType = typeof iface?.type === 'string' ? iface.type : '';\n if (LOOKUP_WIDGET_TYPES.has(widgetType)) {\n return true;\n }\n\n return /(Ids|IDs|Id|ID)$/i.test(property.name);\n}\n\nfunction joinPath(prefix: string, segment: string): string {\n return prefix ? `${prefix}.${segment}` : segment;\n}\n\nfunction sanitizeGroupId(value: string): string {\n return value.replace(/[^a-zA-Z0-9]+/g, '_').replace(/^_|_$/g, '');\n}\n\n//#endregion\n\n","//#region ----- Imports -----\n\nimport type { AXPEntity } from '@acorex-platform/framework-shared/entity';\nimport { AXPWidgetsList, type AXPWidgetNode } from '@acorex-platform/framework-shared/core';\nimport type { AXPEntityResolver } from '@acorex-platform/framework-client/layout/entity';\nimport type {\n AXPLayoutBuilderService,\n AXPStepWizardGuardPayload,\n IDialogBuilder,\n IFieldsetContainerBuilder,\n IFlexContainerBuilder,\n ILayoutBuilder,\n IPanelContainerBuilder,\n} from '@acorex-platform/framework-client/layout/builder';\nimport { resolveLayoutBuilderDialogResult } from '@acorex-platform/framework-client/layout/builder';\nimport type { AXRestApiOutput } from '@acorex/components/rest-api-generator';\nimport { AXToastService } from '@acorex/components/toast';\nimport { AXTranslationService } from '@acorex/core/translation';\n\nimport {\n collectSelectedFieldGroupPaths,\n collectUserQueryEntityFieldGroups,\n defaultSelectedFieldGroups,\n parseEntityFullName,\n resolvePickedEntityFullName,\n USER_QUERY_RELATED_DEPTH,\n withRequiredIdField,\n} from './create-user-query-entity-fields.util';\nimport {\n CREATE_USER_QUERY_ENTITY_CATALOG,\n CREATE_USER_QUERY_I18N as i18n,\n CREATE_USER_QUERY_WIZARD_NAME,\n type AXPUserQueryApiTestResult,\n type AXPUserQueryEntityFieldGroup,\n type AXPUserQueryEntityFieldGroupView,\n type AXPUserQuerySourceKind,\n type AXPUserQueryStaticItem,\n type AXPUserQueryWizardContext,\n type AXPUserQueryWizardSource,\n} from './create-user-query.types';\nimport { REST_API_GENERATOR_WIDGET_NAME } from '../rest-api-generator-widget/rest-api-generator-widget.constants';\nimport { createEmptyRestApiOutput, normalizeRestApiOutput } from '../rest-api-generator-widget/parse-http-request.util';\n\n//#endregion\n\n//#region ----- Types -----\n\nexport interface AXPOpenCreateUserQueryWizardArgs {\n layoutBuilder: AXPLayoutBuilderService;\n toastService: AXToastService;\n translationService: AXTranslationService;\n entityResolver: AXPEntityResolver;\n sourceKind: AXPUserQuerySourceKind;\n}\n\nconst ENTITY_WIZARD_BACK = 'back';\nconst API_WIZARD_BACK = 'back';\n\ntype EntityFieldsDialogResult = AXPUserQueryWizardContext | typeof ENTITY_WIZARD_BACK;\ntype ApiFieldsDialogResult = AXPUserQueryWizardContext | typeof API_WIZARD_BACK;\ntype FieldGroupLayoutHost = ILayoutBuilder | IFlexContainerBuilder;\n\n//#endregion\n\n//#region ----- Public API -----\n\nexport async function openCreateUserQueryWizard(\n args: AXPOpenCreateUserQueryWizardArgs,\n): Promise<AXPUserQueryWizardContext | null> {\n if (args.sourceKind === 'advanced') {\n return openAdvancedPlaceholder(args);\n }\n\n if (args.sourceKind === 'entity') {\n return openEntitySourceWizard(args);\n }\n\n if (args.sourceKind === 'api') {\n return openApiSourceWizard(args);\n }\n\n const result = await args.layoutBuilder\n .create()\n .dialog<AXPUserQueryWizardContext | null>((dialog) => {\n configureSimpleSourceWizard(dialog, args);\n })\n .show();\n\n return resolveLayoutBuilderDialogResult<AXPUserQueryWizardContext>(result);\n}\n\n//#endregion\n\n//#region ----- Entity sub-steps -----\n\nasync function openEntitySourceWizard(\n args: AXPOpenCreateUserQueryWizardArgs,\n): Promise<AXPUserQueryWizardContext | null> {\n let entityName = '';\n let previousFields: Record<string, string[]> | undefined;\n\n while (true) {\n const picked = await openEntityPickDialog(args, entityName);\n if (!picked) {\n return null;\n }\n\n const graph = await loadEntityFieldGraph(args, picked);\n if (!graph) {\n entityName = picked;\n continue;\n }\n\n const selectedGroups =\n picked === entityName && previousFields != null ? previousFields : graph.defaultGroups;\n\n const outcome = await openEntityFieldsDialog(args, picked, graph.groups, selectedGroups);\n if (outcome === ENTITY_WIZARD_BACK) {\n entityName = picked;\n previousFields = selectedGroups;\n continue;\n }\n\n return outcome;\n }\n}\n\nasync function openEntityPickDialog(\n args: AXPOpenCreateUserQueryWizardArgs,\n entityName: string,\n): Promise<string | null> {\n const result = await args.layoutBuilder\n .create()\n .dialog<string | null>((dialog) => {\n dialog\n .setTitle(i18n.titles.entity)\n .setSize('lg')\n .setCloseButton(true)\n .setContext(createInitialContext('entity', entityName))\n .content((flex) => {\n flex.setDirection('column').setGap('16px').stepWizard((wizard) => {\n wizard\n .name(CREATE_USER_QUERY_WIZARD_NAME)\n .setLook('circular-icon')\n .setLinear(true)\n .setDirection('horizontal')\n .setShowActions(false)\n .step('entity', i18n.steps.entity, (step) => {\n step.setIcon('fa-light fa-database').content((layout) => {\n fillEntityPickStep(layout);\n });\n })\n .step('fields', i18n.steps.fields, (step) => {\n step.setIcon('fa-light fa-diagram-project').content((layout) => {\n fillHintStep(layout, i18n.steps.fields, i18n.placeholders.fieldsNext);\n });\n })\n .step('contract', i18n.steps.contract, (step) => {\n step.setIcon('fa-light fa-file-contract').content((layout) => {\n fillContractPlaceholderStep(layout);\n });\n });\n });\n })\n .setActions((actions) => {\n actions\n .cancel('@general:actions.cancel.title')\n .custom({\n title: '@general:actions.next.title',\n command: 'continue-to-fields',\n icon: 'fa-regular fa-arrow-right',\n color: 'primary',\n hidden: '{{!api.getStatus().isFirst}}',\n predicateApiWidgetName: CREATE_USER_QUERY_WIZARD_NAME,\n } as never)\n .custom({\n title: '@general:actions.next.title',\n command: `widget:${CREATE_USER_QUERY_WIZARD_NAME}.next`,\n icon: 'fa-regular fa-arrow-right',\n color: 'primary',\n hidden: '{{api.getStatus().isFirst || api.getStatus().isLast}}',\n predicateApiWidgetName: CREATE_USER_QUERY_WIZARD_NAME,\n } as never)\n .custom({\n title: '@general:actions.submit.title',\n command: `widget:${CREATE_USER_QUERY_WIZARD_NAME}.submit`,\n icon: 'fa-regular fa-check',\n color: 'success',\n hidden: '{{!api.getStatus().isLast}}',\n predicateApiWidgetName: CREATE_USER_QUERY_WIZARD_NAME,\n } as never);\n })\n .onAction(async (dialogRef) => {\n if (dialogRef.action() === 'cancel') {\n return null;\n }\n\n const context = (dialogRef.context() as AXPUserQueryWizardContext) ?? null;\n const name = resolvePickedEntityFullName(context?.source?.entity?.entityName);\n if (!name) {\n throw new Error(i18n.errors.entityRequired);\n }\n\n return name;\n });\n })\n .show();\n\n return resolveLayoutBuilderDialogResult<string>(result);\n}\n\nasync function openEntityFieldsDialog(\n args: AXPOpenCreateUserQueryWizardArgs,\n entityName: string,\n groups: AXPUserQueryEntityFieldGroupView[],\n selectedGroups: Record<string, string[]>,\n): Promise<EntityFieldsDialogResult | null> {\n const result = await args.layoutBuilder\n .create()\n .dialog<EntityFieldsDialogResult | null>((dialog) => {\n dialog\n .setTitle(i18n.titles.entity)\n .setSize('xl')\n .setCloseButton(true)\n .setContext(createInitialContext('entity', entityName, [], selectedGroups))\n .content((flex) => {\n flex.setDirection('column').setGap('16px').stepWizard((wizard) => {\n wizard\n .name(CREATE_USER_QUERY_WIZARD_NAME)\n .setLook('circular-icon')\n .setLinear(true)\n .setDirection('horizontal')\n .setShowActions(false)\n .setGuards({\n next: (payload) => canLeaveEntityFieldsStep(payload, args, groups),\n })\n .step('fields', i18n.steps.fields, (step) => {\n step.setIcon('fa-light fa-diagram-project').content((layout) => {\n fillEntityFieldsStep(layout, entityName, groups);\n });\n })\n .step('contract', i18n.steps.contract, (step) => {\n step.setIcon('fa-light fa-file-contract').content((layout) => {\n fillContractPlaceholderStep(layout);\n });\n });\n });\n })\n .setActions((actions) => {\n actions\n .cancel('@general:actions.cancel.title')\n .custom({\n title: '@general:actions.previous.title',\n command: 'back-to-entity',\n icon: 'fa-regular fa-arrow-left',\n color: 'primary',\n position: 'prefix',\n hidden: '{{!api.getStatus().isFirst}}',\n predicateApiWidgetName: CREATE_USER_QUERY_WIZARD_NAME,\n } as never)\n .custom({\n title: '@general:actions.previous.title',\n command: `widget:${CREATE_USER_QUERY_WIZARD_NAME}.previous`,\n icon: 'fa-regular fa-arrow-left',\n color: 'primary',\n position: 'prefix',\n hidden: '{{api.getStatus().isFirst}}',\n predicateApiWidgetName: CREATE_USER_QUERY_WIZARD_NAME,\n } as never)\n .custom({\n title: '@general:actions.next.title',\n command: `widget:${CREATE_USER_QUERY_WIZARD_NAME}.next`,\n icon: 'fa-regular fa-arrow-right',\n color: 'primary',\n hidden: '{{api.getStatus().isLast}}',\n predicateApiWidgetName: CREATE_USER_QUERY_WIZARD_NAME,\n } as never)\n .custom({\n title: '@general:actions.submit.title',\n command: `widget:${CREATE_USER_QUERY_WIZARD_NAME}.submit`,\n icon: 'fa-regular fa-check',\n color: 'success',\n hidden: '{{!api.getStatus().isLast}}',\n predicateApiWidgetName: CREATE_USER_QUERY_WIZARD_NAME,\n } as never);\n })\n .onAction(async (dialogRef) => {\n if (dialogRef.action() === 'cancel') {\n return null;\n }\n\n if (dialogRef.action() === 'back-to-entity') {\n return ENTITY_WIZARD_BACK;\n }\n\n const context = (dialogRef.context() as AXPUserQueryWizardContext) ?? null;\n if (!context) {\n return null;\n }\n\n const fields = withRequiredIdField(\n collectSelectedFieldGroupPaths(context.source?.entity?.fieldGroups, groups),\n );\n if (countFieldGroupItems(groups) > 0 && fields.filter((path) => path !== 'id').length === 0) {\n throw new Error(i18n.errors.fieldsRequired);\n }\n\n return {\n ...context,\n source: {\n ...context.source,\n kind: 'entity',\n entity: {\n entityName,\n fields,\n fieldGroups: context.source?.entity?.fieldGroups,\n },\n },\n };\n });\n })\n .show();\n\n return resolveLayoutBuilderDialogResult<EntityFieldsDialogResult>(result);\n}\n\nasync function loadEntityFieldGraph(\n args: AXPOpenCreateUserQueryWizardArgs,\n entityName: string,\n): Promise<{ groups: AXPUserQueryEntityFieldGroupView[]; defaultGroups: Record<string, string[]> } | null> {\n const parsed = parseEntityFullName(entityName);\n if (!parsed) {\n await showWizardWarning(args, i18n.errors.entityLoadFailed);\n return null;\n }\n\n const entity = await args.entityResolver.get(parsed.module, parsed.name);\n if (!entity) {\n await showWizardWarning(args, i18n.errors.entityLoadFailed);\n return null;\n }\n\n const relatedByName = await loadRelatedEntityClosure(args.entityResolver, entity.relatedEntities ?? []);\n const groups = collectUserQueryEntityFieldGroups(entity, relatedByName);\n\n return {\n groups: await toFieldGroupViews(groups, args.translationService),\n defaultGroups: defaultSelectedFieldGroups(groups),\n };\n}\n\nasync function loadRelatedEntityClosure(\n entityResolver: AXPEntityResolver,\n roots: Array<{ entity?: string }>,\n): Promise<Map<string, AXPEntity>> {\n const relatedByName = new Map<string, AXPEntity>();\n let pending = [...new Set(roots.map((item) => item.entity?.trim() ?? '').filter(Boolean))];\n\n for (let depth = 1; depth <= USER_QUERY_RELATED_DEPTH && pending.length > 0; depth += 1) {\n const batch = pending.filter((name) => !relatedByName.has(name));\n pending = [];\n\n await Promise.all(\n batch.map(async (fullName) => {\n const parsed = parseEntityFullName(fullName);\n if (!parsed) {\n return;\n }\n\n const definition = await entityResolver.get(parsed.module, parsed.name);\n if (!definition) {\n return;\n }\n\n relatedByName.set(fullName, definition);\n for (const nested of definition.relatedEntities ?? []) {\n const nestedName = nested.entity?.trim();\n if (nestedName && !relatedByName.has(nestedName)) {\n pending.push(nestedName);\n }\n }\n }),\n );\n }\n\n return relatedByName;\n}\n\n//#endregion\n\n//#region ----- API sub-steps -----\n\nasync function openApiSourceWizard(\n args: AXPOpenCreateUserQueryWizardArgs,\n): Promise<AXPUserQueryWizardContext | null> {\n let previous = createApiWizardContext();\n\n while (true) {\n const tested = await openApiSourceDialog(args, previous);\n if (!tested) {\n return null;\n }\n\n const groups = inferJsonFieldGroups(tested.source?.api?.lastTest?.body);\n const views = await toFieldGroupViews(groups, args.translationService);\n const selected =\n isSameApiRequest(previous, tested) && previous.source?.api?.fieldGroups\n ? previous.source.api.fieldGroups\n : defaultHostFieldGroups(groups);\n\n const outcome = await openApiFieldsDialog(args, tested, views, selected);\n if (outcome === API_WIZARD_BACK) {\n previous = tested;\n continue;\n }\n\n return outcome;\n }\n}\n\nasync function openApiSourceDialog(\n args: AXPOpenCreateUserQueryWizardArgs,\n previous: AXPUserQueryWizardContext,\n): Promise<AXPUserQueryWizardContext | null> {\n const result = await args.layoutBuilder\n .create()\n .dialog<AXPUserQueryWizardContext | null>((dialog) => {\n dialog\n .setTitle(i18n.titles.api)\n .setSize('xl')\n .setCloseButton(true)\n .setContext(previous)\n .content((flex) => {\n flex.setDirection('column').setGap('16px').stepWizard((wizard) => {\n wizard\n .name(CREATE_USER_QUERY_WIZARD_NAME)\n .setLook('circular-icon')\n .setLinear(true)\n .setDirection('horizontal')\n .setShowActions(false)\n .step('source', i18n.steps.source, (step) => {\n step.setIcon('fa-light fa-cloud-arrow-up').content((layout) => {\n fillApiSourceStep(layout);\n });\n })\n .step('fields', i18n.steps.fields, (step) => {\n step.setIcon('fa-light fa-diagram-project').content((layout) => {\n fillHintStep(layout, i18n.steps.fields, i18n.placeholders.apiFieldsNext);\n });\n })\n .step('contract', i18n.steps.contract, (step) => {\n step.setIcon('fa-light fa-file-contract').content((layout) => {\n fillContractPlaceholderStep(layout);\n });\n });\n });\n })\n .setActions((actions) => {\n actions\n .cancel('@general:actions.cancel.title')\n .custom({\n title: '@general:actions.next.title',\n command: 'continue-to-fields',\n icon: 'fa-regular fa-arrow-right',\n color: 'primary',\n hidden: '{{!api.getStatus().isFirst}}',\n predicateApiWidgetName: CREATE_USER_QUERY_WIZARD_NAME,\n } as never)\n .custom({\n title: '@general:actions.next.title',\n command: `widget:${CREATE_USER_QUERY_WIZARD_NAME}.next`,\n icon: 'fa-regular fa-arrow-right',\n color: 'primary',\n hidden: '{{api.getStatus().isFirst || api.getStatus().isLast}}',\n predicateApiWidgetName: CREATE_USER_QUERY_WIZARD_NAME,\n } as never)\n .custom({\n title: '@general:actions.submit.title',\n command: `widget:${CREATE_USER_QUERY_WIZARD_NAME}.submit`,\n icon: 'fa-regular fa-check',\n color: 'success',\n hidden: '{{!api.getStatus().isLast}}',\n predicateApiWidgetName: CREATE_USER_QUERY_WIZARD_NAME,\n } as never);\n })\n .onAction(async (dialogRef) => {\n if (dialogRef.action() === 'cancel') {\n return null;\n }\n\n const context = (dialogRef.context() as AXPUserQueryWizardContext) ?? null;\n const request = normalizeRestApiOutput(context?.source?.api?.request);\n if (!request.url) {\n throw new Error(i18n.errors.apiUrlRequired);\n }\n\n const lastTest = await runRestApiRequest(request);\n if (!lastTest.ok) {\n await showApiTestFailure(args, lastTest);\n throw new Error(lastTest.status === 0 ? i18n.errors.apiTestNetwork : i18n.errors.apiTestFailed);\n }\n\n await showWizardWarning(args, i18n.placeholders.apiTestOk, { status: String(lastTest.status) }, 'success');\n\n return createApiWizardContext({\n connectionId: context?.source?.api?.connectionId,\n request,\n lastTest,\n fieldGroups: context?.source?.api?.fieldGroups,\n });\n });\n })\n .show();\n\n return resolveLayoutBuilderDialogResult<AXPUserQueryWizardContext>(result);\n}\n\nasync function openApiFieldsDialog(\n args: AXPOpenCreateUserQueryWizardArgs,\n tested: AXPUserQueryWizardContext,\n groups: AXPUserQueryEntityFieldGroupView[],\n selectedGroups: Record<string, string[]>,\n): Promise<ApiFieldsDialogResult | null> {\n const result = await args.layoutBuilder\n .create()\n .dialog<ApiFieldsDialogResult | null>((dialog) => {\n dialog\n .setTitle(i18n.titles.api)\n .setSize('xl')\n .setCloseButton(true)\n .setContext(createApiWizardContext(tested.source?.api, selectedGroups))\n .content((flex) => {\n flex.setDirection('column').setGap('16px').stepWizard((wizard) => {\n wizard\n .name(CREATE_USER_QUERY_WIZARD_NAME)\n .setLook('circular-icon')\n .setLinear(true)\n .setDirection('horizontal')\n .setShowActions(false)\n .setGuards({\n next: (payload) => canLeaveApiFieldsStep(payload, args, groups),\n })\n .step('fields', i18n.steps.fields, (step) => {\n step.setIcon('fa-light fa-diagram-project').content((layout) => {\n fillApiFieldsStep(layout, groups);\n });\n })\n .step('contract', i18n.steps.contract, (step) => {\n step.setIcon('fa-light fa-file-contract').content((layout) => {\n fillContractPlaceholderStep(layout);\n });\n });\n });\n })\n .setActions((actions) => {\n actions\n .cancel('@general:actions.cancel.title')\n .custom({\n title: '@general:actions.previous.title',\n command: 'back-to-source',\n icon: 'fa-regular fa-arrow-left',\n color: 'primary',\n position: 'prefix',\n hidden: '{{!api.getStatus().isFirst}}',\n predicateApiWidgetName: CREATE_USER_QUERY_WIZARD_NAME,\n } as never)\n .custom({\n title: '@general:actions.previous.title',\n command: `widget:${CREATE_USER_QUERY_WIZARD_NAME}.previous`,\n icon: 'fa-regular fa-arrow-left',\n color: 'primary',\n position: 'prefix',\n hidden: '{{api.getStatus().isFirst}}',\n predicateApiWidgetName: CREATE_USER_QUERY_WIZARD_NAME,\n } as never)\n .custom({\n title: '@general:actions.next.title',\n command: `widget:${CREATE_USER_QUERY_WIZARD_NAME}.next`,\n icon: 'fa-regular fa-arrow-right',\n color: 'primary',\n hidden: '{{api.getStatus().isLast}}',\n predicateApiWidgetName: CREATE_USER_QUERY_WIZARD_NAME,\n } as never)\n .custom({\n title: '@general:actions.submit.title',\n command: `widget:${CREATE_USER_QUERY_WIZARD_NAME}.submit`,\n icon: 'fa-regular fa-check',\n color: 'success',\n hidden: '{{!api.getStatus().isLast}}',\n predicateApiWidgetName: CREATE_USER_QUERY_WIZARD_NAME,\n } as never);\n })\n .onAction(async (dialogRef) => {\n if (dialogRef.action() === 'cancel') {\n return null;\n }\n\n if (dialogRef.action() === 'back-to-source') {\n return API_WIZARD_BACK;\n }\n\n const context = (dialogRef.context() as AXPUserQueryWizardContext) ?? null;\n if (!context) {\n return null;\n }\n\n const fields = collectSelectedFieldGroupPaths(context.source?.api?.fieldGroups, groups);\n if (countFieldGroupItems(groups) > 0 && fields.length === 0) {\n throw new Error(i18n.errors.fieldsRequired);\n }\n\n return createApiWizardContext({\n ...tested.source?.api,\n fields,\n fieldGroups: context.source?.api?.fieldGroups,\n });\n });\n })\n .show();\n\n return resolveLayoutBuilderDialogResult<ApiFieldsDialogResult>(result);\n}\n\nfunction fillApiFieldsStep(layout: ILayoutBuilder, groups: AXPUserQueryEntityFieldGroupView[]): void {\n layout.flex((flex) => {\n flex.setDirection('column').setGap('16px').setAlignItems('stretch');\n flex.fieldset((fieldset) => {\n fieldset\n .setTitle(i18n.fields.sample)\n .setDescription(i18n.placeholders.selectedApiHint)\n .setIcon('fa-light fa-code')\n .setCols(1)\n .formField(i18n.fields.status, (field) => {\n field.path('source.api.lastTest.status').textBox().readonly(true);\n })\n .formField(i18n.fields.sample, (field) => {\n field.path('source.api.lastTest.body').customWidget('json-viewer', {}).layout(1);\n });\n });\n\n for (const group of groups) {\n renderFieldGroup(flex, group, 'source.api.fieldGroups');\n }\n });\n}\n\nasync function canLeaveApiFieldsStep(\n payload: AXPStepWizardGuardPayload,\n args: AXPOpenCreateUserQueryWizardArgs,\n groups: AXPUserQueryEntityFieldGroupView[],\n): Promise<boolean> {\n if (payload.step?.id !== 'fields') {\n return true;\n }\n\n if (countFieldGroupItems(groups) === 0) {\n return true;\n }\n\n const context = (payload.context ?? {}) as AXPUserQueryWizardContext;\n const selected = collectSelectedFieldGroupPaths(context.source?.api?.fieldGroups, groups);\n if (selected.length > 0) {\n return true;\n }\n\n await showWizardWarning(args, i18n.errors.fieldsRequired);\n return false;\n}\n\nfunction createApiWizardContext(\n api?: AXPUserQueryWizardSource['api'],\n fieldGroups: Record<string, string[]> = {},\n): AXPUserQueryWizardContext {\n const base = createInitialContext('api');\n return {\n ...base,\n source: {\n ...base.source,\n api: {\n request: api?.request ?? createEmptyRestApiOutput(),\n connectionId: api?.connectionId,\n lastTest: api?.lastTest\n ? { ...api.lastTest, status: String(api.lastTest.status) }\n : undefined,\n fields: api?.fields ?? [],\n fieldGroups: Object.keys(fieldGroups).length ? fieldGroups : (api?.fieldGroups ?? {}),\n },\n },\n };\n}\n\nfunction isSameApiRequest(left: AXPUserQueryWizardContext, right: AXPUserQueryWizardContext): boolean {\n return JSON.stringify(left.source?.api?.request) === JSON.stringify(right.source?.api?.request);\n}\n\nasync function showApiTestFailure(\n args: AXPOpenCreateUserQueryWizardArgs,\n lastTest: AXPUserQueryApiTestResult,\n): Promise<void> {\n if (Number(lastTest.status) === 0) {\n await showWizardWarning(args, i18n.errors.apiTestNetwork);\n return;\n }\n\n await showWizardWarning(args, i18n.errors.apiTestFailed, { status: String(lastTest.status) });\n}\n\nasync function runRestApiRequest(value: AXRestApiOutput | null | undefined): Promise<AXPUserQueryApiTestResult> {\n const request = normalizeRestApiOutput(value);\n const url = buildApiRequestUrl(request);\n if (!url) {\n return { ok: false, status: 0, body: null };\n }\n\n const headers: Record<string, string> = {};\n if (request.headers['ContentType'].trim()) {\n headers['Content-Type'] = request.headers['ContentType'].trim();\n }\n if (request.headers['Authorization'].trim()) {\n headers['Authorization'] = request.headers['Authorization'].trim();\n }\n for (const [key, headerValue] of Object.entries(request.headers)) {\n if (key === 'Authorization' || key === 'ContentType' || key === 'tempId') {\n continue;\n }\n if (typeof headerValue === 'string' && headerValue.trim()) {\n headers[key] = headerValue.trim();\n }\n }\n\n try {\n const response = await fetch(url, {\n method: request.method,\n headers,\n body: request.method === 'GET' || !request.body.trim() ? undefined : request.body,\n credentials: 'omit',\n signal: AbortSignal.timeout(15000),\n });\n const text = (await response.text()).trim();\n let body: unknown = text || null;\n if (text) {\n try {\n body = JSON.parse(text) as unknown;\n } catch {\n body = text;\n }\n }\n\n return {\n ok: response.status >= 200 && response.status < 300,\n status: response.status,\n body,\n };\n } catch {\n return { ok: false, status: 0, body: null };\n }\n}\n\nfunction buildApiRequestUrl(request: AXRestApiOutput): string {\n const base = request.url.trim();\n if (!base) {\n return '';\n }\n\n const params = new URLSearchParams();\n for (const query of request.queries ?? []) {\n for (const [key, value] of Object.entries(query)) {\n if (key === 'tempId' || !String(key).trim() || value == null || !String(value).trim()) {\n continue;\n }\n params.append(key, String(value).trim());\n }\n }\n\n const search = params.toString();\n if (!search) {\n return base;\n }\n\n return base.includes('?') ? `${base}&${search}` : `${base}?${search}`;\n}\n\nfunction inferJsonFieldGroups(sample: unknown): AXPUserQueryEntityFieldGroup[] {\n const root = firstPlainObject(sample);\n if (!root) {\n return [];\n }\n\n const envelope = splitJsonEnvelope(root);\n if (!envelope) {\n return jsonGroupsFromObject(root, '', 0, true);\n }\n\n const groups = jsonGroupsFromObject(envelope.record, envelope.path, 0, true);\n if (envelope.meta.length > 0) {\n groups.push({\n id: 'response',\n kind: 'lookup',\n title: i18n.fields.response,\n fallback: 'response',\n items: envelope.meta,\n });\n }\n\n return groups;\n}\n\nfunction splitJsonEnvelope(\n root: Record<string, unknown>,\n): { record: Record<string, unknown>; path: string; meta: AXPUserQueryEntityFieldGroup['items'] } | null {\n const payloadKeys = ['data', 'result', 'results', 'items', 'records', 'value', 'payload', 'content'];\n const flagKeys = new Set(['ok', 'success', 'status', 'kind', 'error', 'code', 'message']);\n const metaObjectKeys = new Set(['info', 'meta', 'pagination', 'support', 'links', 'page']);\n const keys = Object.keys(root);\n const namedPayload = payloadKeys.find((key) => root[key] != null);\n const hasFlag = keys.some((key) => flagKeys.has(key) && isJsonScalar(root[key]));\n\n let payloadKey = namedPayload;\n if (payloadKey) {\n const rest = keys.filter((key) => key !== payloadKey);\n const restAreMeta = rest.every(\n (key) => isJsonScalar(root[key]) || flagKeys.has(key) || metaObjectKeys.has(key),\n );\n if (!hasFlag && !restAreMeta) {\n payloadKey = undefined;\n }\n } else {\n const arrayKeys = keys.filter((key) => {\n const value = root[key];\n return Array.isArray(value) && value.some((item) => isPlainObject(item));\n });\n const otherKeys = keys.filter((key) => !arrayKeys.includes(key));\n if (\n arrayKeys.length === 1 &&\n otherKeys.length > 0 &&\n otherKeys.every((key) => isJsonScalar(root[key]))\n ) {\n payloadKey = arrayKeys[0];\n }\n }\n\n if (!payloadKey) {\n return null;\n }\n\n const payload = root[payloadKey];\n const meta: AXPUserQueryEntityFieldGroup['items'] = [];\n for (const [key, value] of Object.entries(root)) {\n if (key === payloadKey || !isJsonScalar(value)) {\n continue;\n }\n meta.push({ path: key, fallback: key });\n }\n\n if (Array.isArray(payload)) {\n const record = firstPlainObject(payload);\n if (!record) {\n return null;\n }\n return { record, path: payloadKey, meta };\n }\n\n if (isPlainObject(payload)) {\n const items = payload['items'];\n if (Array.isArray(items)) {\n const record = firstPlainObject(items);\n if (record) {\n for (const [key, value] of Object.entries(payload)) {\n if (key === 'items' || !isJsonScalar(value)) {\n continue;\n }\n meta.push({ path: `${payloadKey}.${key}`, fallback: key });\n }\n return { record, path: `${payloadKey}.items`, meta };\n }\n }\n\n return { record: payload, path: payloadKey, meta };\n }\n\n meta.push({ path: payloadKey, fallback: payloadKey });\n return { record: { value: payload }, path: payloadKey, meta };\n}\n\nfunction jsonGroupsFromObject(\n value: Record<string, unknown>,\n prefix: string,\n depth: number,\n asHost = false,\n): AXPUserQueryEntityFieldGroup[] {\n const scalars: AXPUserQueryEntityFieldGroup['items'] = [];\n const nested: Array<{ key: string; path: string; value: Record<string, unknown> }> = [];\n\n for (const [key, raw] of Object.entries(value)) {\n const path = prefix ? `${prefix}.${key}` : key;\n const unwrapped = Array.isArray(raw) ? firstPlainObject(raw) : raw;\n if (isPlainObject(unwrapped) && depth < 2) {\n nested.push({ key, path, value: unwrapped });\n continue;\n }\n\n scalars.push({ path, fallback: key });\n }\n\n const groups: AXPUserQueryEntityFieldGroup[] = [];\n if (scalars.length > 0) {\n const leaf = prefix.includes('.') ? (prefix.split('.').pop() ?? prefix) : prefix;\n const isHost = (asHost && depth === 0) || !prefix;\n groups.push({\n id: isHost ? 'host' : `rel_${prefix.replace(/[^a-zA-Z0-9]+/g, '_')}_fields`,\n kind: isHost ? 'host' : 'relation',\n title: leaf,\n fallback: leaf || 'fields',\n items: scalars,\n });\n }\n\n if (depth >= 2) {\n return groups;\n }\n\n for (const item of nested) {\n const children = jsonGroupsFromObject(item.value, item.path, depth + 1, false);\n groups.push({\n id: `rel_${item.path.replace(/[^a-zA-Z0-9]+/g, '_')}`,\n kind: 'relation',\n title: item.key,\n fallback: item.key,\n items: [],\n children: children.length > 0 ? children : undefined,\n });\n }\n\n return groups;\n}\n\nfunction defaultHostFieldGroups(groups: AXPUserQueryEntityFieldGroup[]): Record<string, string[]> {\n const selected: Record<string, string[]> = {};\n const walk = (group: AXPUserQueryEntityFieldGroup): void => {\n selected[group.id] = group.kind === 'host' ? group.items.map((item) => item.path) : [];\n for (const child of group.children ?? []) {\n walk(child);\n }\n };\n for (const group of groups) {\n walk(group);\n }\n return selected;\n}\n\nfunction firstPlainObject(value: unknown): Record<string, unknown> | null {\n if (Array.isArray(value)) {\n for (const item of value) {\n const found = firstPlainObject(item);\n if (found) {\n return found;\n }\n }\n return null;\n }\n\n return isPlainObject(value) ? value : null;\n}\n\nfunction isPlainObject(value: unknown): value is Record<string, unknown> {\n return value != null && typeof value === 'object' && !Array.isArray(value);\n}\n\nfunction isJsonScalar(value: unknown): boolean {\n if (value == null) {\n return true;\n }\n\n const type = typeof value;\n return type === 'string' || type === 'number' || type === 'boolean';\n}\n\n//#endregion\n\n//#region ----- Advanced placeholder -----\n\nasync function openAdvancedPlaceholder(\n args: AXPOpenCreateUserQueryWizardArgs,\n): Promise<null> {\n await args.layoutBuilder\n .create()\n .dialog((dialog) => {\n dialog\n .setTitle(i18n.titles.advanced)\n .setMessage(i18n.placeholders.advanced)\n .setSize('md')\n .setCloseButton(true);\n })\n .show();\n\n return null;\n}\n\n//#endregion\n\n//#region ----- Simple source wizard -----\n\nfunction configureSimpleSourceWizard(\n dialog: IDialogBuilder<AXPUserQueryWizardContext | null>,\n args: AXPOpenCreateUserQueryWizardArgs,\n): void {\n dialog\n .setTitle(dialogTitleKey(args.sourceKind))\n .setSize(args.sourceKind === 'api' ? 'xl' : 'lg')\n .setCloseButton(true)\n .setContext(createInitialContext(args.sourceKind))\n .content((flex) => {\n flex.setDirection('column').setGap('16px').stepWizard((wizard) => {\n wizard\n .name(CREATE_USER_QUERY_WIZARD_NAME)\n .setLook('circular-icon')\n .setLinear(true)\n .setDirection('horizontal')\n .setShowActions(false)\n .setGuards({\n next: (payload) => canLeaveSourceStep(payload, args),\n })\n .step('source', i18n.steps.source, (step) => {\n step.setIcon(sourceStepIcon(args.sourceKind)).content((layout) => {\n fillSourceStep(layout, args);\n });\n })\n .step('contract', i18n.steps.contract, (step) => {\n step.setIcon('fa-light fa-file-contract').content((layout) => {\n fillContractPlaceholderStep(layout);\n });\n });\n });\n })\n .setActions((actions) => {\n actions\n .cancel('@general:actions.cancel.title')\n .custom({\n title: '@general:actions.previous.title',\n command: `widget:${CREATE_USER_QUERY_WIZARD_NAME}.previous`,\n icon: 'fa-regular fa-arrow-left',\n color: 'primary',\n position: 'prefix',\n disabled: '{{api.getStatus().isFirst}}',\n predicateApiWidgetName: CREATE_USER_QUERY_WIZARD_NAME,\n } as never)\n .custom({\n title: '@general:actions.next.title',\n command: `widget:${CREATE_USER_QUERY_WIZARD_NAME}.next`,\n icon: 'fa-regular fa-arrow-right',\n color: 'primary',\n hidden: '{{api.getStatus().isLast}}',\n predicateApiWidgetName: CREATE_USER_QUERY_WIZARD_NAME,\n } as never)\n .custom({\n title: '@general:actions.submit.title',\n command: `widget:${CREATE_USER_QUERY_WIZARD_NAME}.submit`,\n icon: 'fa-regular fa-check',\n color: 'success',\n hidden: '{{!api.getStatus().isLast}}',\n predicateApiWidgetName: CREATE_USER_QUERY_WIZARD_NAME,\n } as never);\n })\n .onAction(async (dialogRef) => {\n if (dialogRef.action() === 'cancel') {\n return null;\n }\n\n return (dialogRef.context() as AXPUserQueryWizardContext) ?? null;\n });\n}\n\n//#endregion\n\n//#region ----- Step bodies -----\n\nfunction fillSourceStep(layout: ILayoutBuilder, args: AXPOpenCreateUserQueryWizardArgs): void {\n switch (args.sourceKind) {\n case 'static':\n fillStaticSourceStep(layout);\n return;\n case 'api':\n fillApiSourceStep(layout);\n return;\n default:\n return;\n }\n}\n\nfunction fillEntityPickStep(layout: ILayoutBuilder, readonly = false): void {\n layout.fieldset((fieldset) => {\n fieldset.setTitle(i18n.steps.entity).setIcon('fa-light fa-database').setCols(1);\n if (!readonly) {\n fieldset.setDescription(i18n.placeholders.fieldsNext);\n }\n\n fieldset.formField(i18n.fields.entity, (field) => {\n field.path('source.entity.entityName').lookupBox({\n entity: CREATE_USER_QUERY_ENTITY_CATALOG,\n valueField: 'id',\n textField: 'id',\n columns: ['name', 'module_id'],\n look: 'select',\n searchable: true,\n allowClear: !readonly,\n validations: readonly ? undefined : [{ rule: 'required' }],\n });\n if (readonly) {\n field.readonly(true);\n }\n });\n });\n}\n\nfunction fillEntityFieldsStep(\n layout: ILayoutBuilder,\n entityName: string,\n groups: AXPUserQueryEntityFieldGroupView[],\n): void {\n layout.flex((flex) => {\n flex.setDirection('column').setGap('16px').setAlignItems('stretch');\n flex.fieldset((fieldset) => {\n fieldset\n .setTitle(entityName)\n .setDescription(i18n.placeholders.selectedEntityHint)\n .setIcon('fa-light fa-database')\n .setLook('group');\n });\n\n for (const group of groups) {\n renderFieldGroup(flex, group);\n }\n });\n}\n\nfunction renderFieldGroup(\n layout: FieldGroupLayoutHost,\n group: AXPUserQueryEntityFieldGroupView,\n fieldGroupsPath = 'source.entity.fieldGroups',\n): void {\n if (group.kind === 'relation' && (group.children?.length ?? 0) > 0) {\n layout.panel((panel) => {\n panel.setCaption(group.title).setIcon('fa-light fa-link').setLook('outline');\n if (group.items.length) {\n panel.fieldset((fieldset) => {\n appendFieldGroupList(fieldset, group, i18n.fields.hostFields, fieldGroupsPath);\n });\n }\n for (const child of group.children ?? []) {\n renderFieldGroupOnPanel(panel, child, fieldGroupsPath);\n }\n });\n return;\n }\n\n layout.fieldset((fieldset) => {\n appendFieldGroupList(fieldset, group, group.title, fieldGroupsPath);\n });\n}\n\nfunction renderFieldGroupOnPanel(\n panel: IPanelContainerBuilder,\n group: AXPUserQueryEntityFieldGroupView,\n fieldGroupsPath = 'source.entity.fieldGroups',\n): void {\n if ((group.children?.length ?? 0) > 0) {\n panel.panel((inner) => {\n inner.setCaption(group.title).setIcon('fa-light fa-link').setLook('outline');\n if (group.items.length) {\n inner.fieldset((fieldset) => {\n appendFieldGroupList(fieldset, group, i18n.fields.hostFields, fieldGroupsPath);\n });\n }\n for (const child of group.children ?? []) {\n renderFieldGroupOnPanel(inner, child, fieldGroupsPath);\n }\n });\n return;\n }\n\n panel.fieldset((fieldset) => {\n appendFieldGroupList(fieldset, group, group.title, fieldGroupsPath);\n });\n}\n\nfunction appendFieldGroupList(\n fieldset: IFieldsetContainerBuilder,\n group: AXPUserQueryEntityFieldGroupView,\n title: string,\n fieldGroupsPath = 'source.entity.fieldGroups',\n): void {\n fieldset.setTitle(title).setIcon(fieldGroupIcon(group.kind)).setCols(1);\n if (group.kind === 'host') {\n fieldset.setDescription(\n fieldGroupsPath.startsWith('source.api') ? i18n.placeholders.apiFields : i18n.placeholders.entityFields,\n );\n }\n\n if (!group.items.length) {\n return;\n }\n\n fieldset.formField(' ', (field) => {\n field.path(`${fieldGroupsPath}.${group.id}`).selectionList({\n dataSource: group.items,\n valueField: 'path',\n textField: 'text',\n multiple: true,\n searchable: group.items.length > 8,\n direction: { id: 'vertical' } as never,\n } as never);\n });\n}\n\nfunction fieldGroupIcon(kind: AXPUserQueryEntityFieldGroupView['kind']): string {\n if (kind === 'relation') {\n return 'fa-light fa-link';\n }\n if (kind === 'lookup') {\n return 'fa-light fa-diagram-nested';\n }\n return 'fa-light fa-list';\n}\n\nfunction fillHintStep(layout: ILayoutBuilder, titleKey: string, descriptionKey: string): void {\n layout.fieldset((fieldset) => {\n fieldset.setTitle(titleKey).setDescription(descriptionKey).setIcon('fa-light fa-diagram-project').setLook('group');\n });\n}\n\nfunction fillStaticSourceStep(layout: ILayoutBuilder): void {\n layout.fieldset((fieldset) => {\n fieldset\n .setTitle(i18n.steps.source)\n .setDescription(i18n.placeholders.itemsHint)\n .setIcon('fa-light fa-list')\n .setCols(1)\n .formField(' ', (field) => {\n field\n .path('source.static.items')\n .setShowLabel(false)\n .customWidget(AXPWidgetsList.Layouts.RepeaterLayout, {\n hasControls: true,\n allowReorder: true,\n children: staticItemRepeaterChildren(),\n })\n .layout(1);\n });\n });\n}\n\nfunction staticItemRepeaterChildren(): AXPWidgetNode[] {\n return [\n {\n type: AXPWidgetsList.Layouts.FlexLayout,\n mode: 'edit',\n options: {\n flexDirection: 'row',\n gap: '12px',\n alignItems: 'stretch',\n },\n children: [\n staticItemRepeaterField(i18n.fields.value, 'value'),\n staticItemRepeaterField(i18n.fields.title, 'title'),\n ],\n },\n ];\n}\n\nfunction staticItemRepeaterField(label: string, path: string): AXPWidgetNode {\n return {\n type: AXPWidgetsList.Layouts.FlexItemLayout,\n options: { grow: 1 },\n children: [\n {\n type: AXPWidgetsList.Layouts.FormField,\n options: { label, showLabel: true },\n children: [\n {\n type: AXPWidgetsList.Editors.TextBox,\n path,\n name: path,\n mode: 'edit',\n },\n ],\n },\n ],\n };\n}\n\nfunction fillApiSourceStep(layout: ILayoutBuilder): void {\n layout.fieldset((fieldset) => {\n fieldset\n .setTitle(i18n.steps.source)\n .setDescription(i18n.placeholders.apiFieldsNext)\n .setIcon('fa-light fa-cloud-arrow-up')\n .setCols(1)\n .formField(i18n.fields.connection, (field) => {\n field\n .path('source.api.connectionId')\n .lookupBox({\n entity: 'IntegrationManagement.IntegrationConnection',\n searchable: true,\n allowClear: true,\n })\n .layout(1);\n })\n .formField(i18n.fields.request, (field) => {\n field.path('source.api.request').customWidget(REST_API_GENERATOR_WIDGET_NAME, {}).layout(1);\n });\n });\n}\n\nfunction fillContractPlaceholderStep(layout: ILayoutBuilder): void {\n layout.fieldset((fieldset) => {\n fieldset\n .setTitle(i18n.steps.contract)\n .setDescription(i18n.placeholders.contract)\n .setIcon('fa-light fa-file-contract')\n .setLook('group');\n });\n}\n\n//#endregion\n\n//#region ----- Guards & helpers -----\n\nasync function canLeaveSourceStep(\n payload: AXPStepWizardGuardPayload,\n args: AXPOpenCreateUserQueryWizardArgs,\n): Promise<boolean> {\n if (payload.step?.id !== 'source') {\n return true;\n }\n\n const context = (payload.context ?? {}) as AXPUserQueryWizardContext;\n const errorKey = sourceStepErrorKey(args.sourceKind, context);\n if (!errorKey) {\n return true;\n }\n\n await showWizardWarning(args, errorKey);\n return false;\n}\n\nasync function canLeaveEntityFieldsStep(\n payload: AXPStepWizardGuardPayload,\n args: AXPOpenCreateUserQueryWizardArgs,\n groups: AXPUserQueryEntityFieldGroupView[],\n): Promise<boolean> {\n if (payload.step?.id !== 'fields') {\n return true;\n }\n\n if (countFieldGroupItems(groups) === 0) {\n return true;\n }\n\n const context = (payload.context ?? {}) as AXPUserQueryWizardContext;\n const selected = collectSelectedFieldGroupPaths(context.source?.entity?.fieldGroups, groups).filter(\n (path) => path !== 'id',\n );\n if (selected.length > 0) {\n return true;\n }\n\n await showWizardWarning(args, i18n.errors.fieldsRequired);\n return false;\n}\n\nfunction sourceStepErrorKey(\n sourceKind: AXPUserQuerySourceKind,\n context: AXPUserQueryWizardContext,\n): string | null {\n if (sourceKind === 'static') {\n const hasValue = (context.source?.static?.items ?? []).some((row) => String(row?.value ?? '').trim());\n return hasValue ? null : i18n.errors.staticRequired;\n }\n\n if (sourceKind === 'api') {\n const url = context.source?.api?.request?.url?.trim() ?? '';\n return url ? null : i18n.errors.apiUrlRequired;\n }\n\n return null;\n}\n\nfunction createInitialContext(\n sourceKind: AXPUserQuerySourceKind,\n entityName = '',\n fields: string[] = [],\n fieldGroups: Record<string, string[]> = {},\n): AXPUserQueryWizardContext {\n const items: AXPUserQueryStaticItem[] = [{ value: '', title: '' }];\n\n return {\n sourceKind,\n source: {\n kind: sourceKind,\n entity: { entityName, fields, fieldGroups },\n static: { items },\n api: { request: createEmptyRestApiOutput() },\n },\n };\n}\n\nfunction countFieldGroupItems(groups: AXPUserQueryEntityFieldGroupView[]): number {\n let count = 0;\n const walk = (group: AXPUserQueryEntityFieldGroupView): void => {\n count += group.items.length;\n for (const child of group.children ?? []) {\n walk(child);\n }\n };\n for (const group of groups) {\n walk(group);\n }\n return count;\n}\n\nasync function toFieldGroupViews(\n groups: AXPUserQueryEntityFieldGroup[],\n translationService: AXTranslationService,\n): Promise<AXPUserQueryEntityFieldGroupView[]> {\n const hostTitle = resolveLabel(translationService, i18n.fields.hostFields, 'Fields');\n\n const mapGroup = async (group: AXPUserQueryEntityFieldGroup): Promise<AXPUserQueryEntityFieldGroupView> => {\n const resolvedName = resolveLabel(translationService, group.title, group.fallback);\n let title = resolvedName;\n if (group.kind === 'host') {\n title = hostTitle;\n } else if (group.kind === 'relation') {\n title = await formatRelatedGroupTitle(translationService, resolvedName);\n }\n\n const children = group.children?.length\n ? await Promise.all(group.children.map((child) => mapGroup(child)))\n : undefined;\n\n return {\n id: group.id,\n kind: group.kind,\n title,\n items: group.items.map((item) => ({\n path: item.path,\n text: resolveLabel(translationService, item.title, item.fallback),\n })),\n children,\n };\n };\n\n return Promise.all(groups.map((group) => mapGroup(group)));\n}\n\nasync function formatRelatedGroupTitle(\n translationService: AXTranslationService,\n name: string,\n): Promise<string> {\n const translated = await translationService.translateAsync(i18n.placeholders.relatedTo, { params: { name } });\n return typeof translated === 'string' && translated.trim() ? translated.trim() : name;\n}\n\nfunction resolveLabel(translationService: AXTranslationService, value: unknown, fallback: string): string {\n if (value == null || value === '') {\n return fallback;\n }\n\n const resolved = translationService.resolve(value as never);\n const text = typeof resolved === 'string' ? resolved.trim() : '';\n return text || fallback;\n}\n\nasync function showWizardWarning(\n args: AXPOpenCreateUserQueryWizardArgs,\n errorKey: string,\n params?: Record<string, string>,\n color: 'warning' | 'success' = 'warning',\n): Promise<void> {\n const message = await args.translationService.translateAsync(errorKey, params ? { params } : undefined);\n args.toastService.show({\n color,\n content: message,\n closeButton: true,\n timeOut: 4000,\n timeOutProgress: true,\n });\n}\n\nfunction dialogTitleKey(sourceKind: AXPUserQuerySourceKind): string {\n if (sourceKind === 'static') {\n return i18n.titles.static;\n }\n if (sourceKind === 'api') {\n return i18n.titles.api;\n }\n return i18n.titles.entity;\n}\n\nfunction sourceStepIcon(sourceKind: AXPUserQuerySourceKind): string {\n if (sourceKind === 'static') {\n return 'fa-light fa-list';\n }\n if (sourceKind === 'api') {\n return 'fa-light fa-cloud-arrow-up';\n }\n return 'fa-light fa-database';\n}\n\n//#endregion\n","//#region ----- Imports -----\n\nimport { AXPLayoutBuilderService } from '@acorex-platform/framework-client/layout/builder';\nimport { AXPEntityResolver } from '@acorex-platform/framework-client/layout/entity';\nimport {\n AXPCommand,\n entityActionDataRecord,\n resolveEntityActionCommandInput,\n type AXPCommandExecuteResultPromise,\n type AXPEntityActionCommandInput,\n} from '@acorex-platform/framework-shared/runtime';\nimport { AXToastService } from '@acorex/components/toast';\nimport { AXTranslationService } from '@acorex/core/translation';\nimport { Injectable, inject } from '@angular/core';\n\nimport { openCreateUserQueryWizard } from './create-user-query.wizard';\nimport type { AXPUserQuerySourceKind } from './create-user-query.types';\n\n//#endregion\n\n//#region ----- Command -----\n\n/**\n * Opens the user-query create wizard. Step 1 configures the source; nothing is persisted.\n */\n@Injectable({ providedIn: 'root' })\nexport class AXMCreateUserQueryCommand implements AXPCommand<AXPEntityActionCommandInput> {\n //#region ----- Services & Dependencies -----\n\n private readonly layoutBuilder = inject(AXPLayoutBuilderService);\n private readonly entityResolver = inject(AXPEntityResolver);\n private readonly toastService = inject(AXToastService);\n private readonly translationService = inject(AXTranslationService);\n\n //#endregion\n\n //#region ----- Execution -----\n\n async execute(input: AXPEntityActionCommandInput = {}): AXPCommandExecuteResultPromise {\n const sourceKind = resolveSourceKind(input);\n\n await openCreateUserQueryWizard({\n layoutBuilder: this.layoutBuilder,\n toastService: this.toastService,\n translationService: this.translationService,\n entityResolver: this.entityResolver,\n sourceKind,\n });\n\n return {\n success: true,\n kind: 'object',\n data: { sourceKind },\n metadata: { refresh: false },\n };\n }\n\n //#endregion\n}\n\n//#endregion\n\n//#region ----- Helpers -----\n\nfunction resolveSourceKind(input: AXPEntityActionCommandInput): AXPUserQuerySourceKind {\n const resolved = resolveEntityActionCommandInput(input);\n const data = entityActionDataRecord(resolved.data) ?? {};\n const options = (resolved.options ?? {}) as Record<string, unknown>;\n const process = (options['process'] ?? {}) as Record<string, unknown>;\n const processData = (process['data'] ?? {}) as Record<string, unknown>;\n const raw = data['sourceKind'] ?? processData['sourceKind'];\n\n if (raw === 'static' || raw === 'api' || raw === 'advanced' || raw === 'entity') {\n return raw;\n }\n\n return 'entity';\n}\n\n//#endregion\n"],"names":["i18n"],"mappings":"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"}
|
|
@@ -83,9 +83,6 @@ class ExecuteTokenCommand {
|
|
|
83
83
|
})
|
|
84
84
|
.setContext({
|
|
85
85
|
value: displayValue,
|
|
86
|
-
})
|
|
87
|
-
.setActions((actions) => {
|
|
88
|
-
actions.cancel('@general:actions.close.title');
|
|
89
86
|
});
|
|
90
87
|
})
|
|
91
88
|
.show();
|
|
@@ -149,4 +146,4 @@ function resolveExecuteTokenInput(raw) {
|
|
|
149
146
|
}
|
|
150
147
|
|
|
151
148
|
export { ExecuteTokenCommand };
|
|
152
|
-
//# sourceMappingURL=acorex-platform-module-platform-management-client-execute-token.command-
|
|
149
|
+
//# sourceMappingURL=acorex-platform-module-platform-management-client-execute-token.command-B_xwW9lb.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"acorex-platform-module-platform-management-client-execute-token.command-B_xwW9lb.mjs","sources":["../../../../libs/modules/platform-management/client/src/lib/features/token/commands/execute-token.command.ts"],"sourcesContent":["//#region ----- Imports -----\n\nimport { AXPCommand, type AXPCommandExecuteResultPromise } from '@acorex-platform/framework-shared/runtime';\nimport { runtimeCommandPayloadData } from '@acorex-platform/framework-shared/core';\nimport { AXPCommandExecutor } from '@acorex-platform/framework-client/runtime';\nimport { AXPLayoutBuilderService, IWidgetBuilder } from '@acorex-platform/framework-client/layout/builder';\nimport { AXToastService } from '@acorex/components/toast';\nimport { AXTranslationService } from '@acorex/core/translation';\nimport { Injectable, inject } from '@angular/core';\nimport {\n AXM_TOKEN_RESOLVE_COMMAND_KEY,\n type AXMTokenResolveRequest,\n type AXMTokenResolveResult,\n} from '@acorex-platform/module-platform-management-client/contracts';\n\n//#endregion\n\n//#region ----- Command Input/Output Types -----\n\n/**\n * Input for ExecuteToken command.\n */\nexport interface ExecuteTokenCommandInput {\n /**\n * Token name to execute.\n */\n tokenName?: string;\n\n /**\n * Token title (for display).\n */\n tokenTitle?: string;\n data?: { name?: string; title?: string };\n options?: Partial<ExecuteTokenCommandInput>;\n}\n\n//#endregion\n\n//#region ----- Execute Token Command -----\n\n/**\n * UI command: resolves token value on the server, then shows the result in a dialog.\n */\n@Injectable()\nexport class ExecuteTokenCommand implements AXPCommand<ExecuteTokenCommandInput, void> {\n //#region ----- Services & Dependencies -----\n\n private readonly commandExecutor = inject(AXPCommandExecutor);\n private readonly layoutBuilder = inject(AXPLayoutBuilderService);\n private readonly toastService = inject(AXToastService);\n private readonly translationService = inject(AXTranslationService);\n\n //#endregion\n\n //#region ----- Command Implementation -----\n\n async execute(raw: ExecuteTokenCommandInput): AXPCommandExecuteResultPromise<void> {\n try {\n const input = resolveExecuteTokenInput(raw);\n const tokenName = input.tokenName?.trim() ?? '';\n\n if (!tokenName) {\n const failedTitle = await this.translationService.translateAsync(\n '@platform-management:tokens.messages.execute-failed.title',\n );\n const failedContent = await this.translationService.translateAsync(\n '@platform-management:tokens.messages.execute-failed.content',\n { params: { tokenName: 'undefined' } },\n );\n\n this.toastService.show({\n color: 'warning',\n title: failedTitle,\n content: failedContent,\n closeButton: true,\n timeOut: 5000,\n });\n\n return {\n success: false,\n message: { text: failedContent },\n };\n }\n\n const resolveResult = await this.commandExecutor.execute<\n AXMTokenResolveRequest,\n AXMTokenResolveResult\n >(AXM_TOKEN_RESOLVE_COMMAND_KEY, { tokenName });\n\n const __d_resolveResult = runtimeCommandPayloadData(resolveResult);\n const tokenValue = __d_resolveResult?.value;\n const serverMessage =\n typeof resolveResult?.message?.text === 'string' ? resolveResult.message.text.trim() : '';\n\n if (!resolveResult?.success || tokenValue === undefined || tokenValue === null) {\n const failedTitle = await this.translationService.translateAsync(\n '@platform-management:tokens.messages.execute-failed.title',\n );\n const fallbackContent = await this.translationService.translateAsync(\n '@platform-management:tokens.messages.execute-failed.content',\n { params: { tokenName } },\n );\n // Prefer the server reason (e.g. missing expression scope) over the generic empty-value copy.\n const failedContent = serverMessage || fallbackContent;\n\n this.toastService.show({\n color: 'warning',\n title: failedTitle,\n content: failedContent,\n closeButton: true,\n timeOut: 5000,\n });\n\n return {\n success: false,\n message: {\n text: failedContent,\n },\n };\n }\n\n const isObjectValue = tokenValue !== null && typeof tokenValue === 'object';\n const displayValue = isObjectValue ? tokenValue : this.formatValueAsString(tokenValue);\n\n const dialogTitleKey = '@platform-management:tokens.components.execute-token-dialog.title';\n const dialogTitleBase = await this.translationService.translateAsync(dialogTitleKey);\n const dialogTitle = `${dialogTitleBase}: ${tokenName}`;\n\n await this.layoutBuilder\n .create()\n .dialog((dialog) => {\n dialog\n .setTitle(dialogTitle)\n .setSize('lg')\n .setCloseButton(true)\n .content((content) => {\n content.customWidget('json-viewer', (widget: IWidgetBuilder) => {\n widget.path('value');\n });\n })\n .setContext({\n value: displayValue,\n });\n })\n .show();\n\n return {\n success: true,\n kind: 'object',\n data: undefined,\n metadata: { refresh: false },\n };\n } catch (error: any) {\n const errorTitle = await this.translationService.translateAsync(\n '@platform-management:tokens.messages.execute-error.title',\n );\n const errorContent = await this.translationService.translateAsync(\n '@platform-management:tokens.messages.execute-error.content',\n { params: { error: error.message || 'Unknown error' } },\n );\n\n this.toastService.show({\n color: 'danger',\n title: errorTitle,\n content: errorContent,\n closeButton: true,\n timeOut: 5000,\n });\n\n return {\n success: false,\n message: {\n text: errorContent,\n },\n };\n }\n }\n\n //#endregion\n\n //#region ----- Utility Methods -----\n\n private formatValueAsString(value: any): string {\n if (value === null || value === undefined) {\n return '';\n }\n\n if (typeof value === 'string') {\n return value;\n }\n\n if (typeof value === 'object') {\n try {\n return JSON.stringify(value, null, 2);\n } catch {\n return String(value);\n }\n }\n\n return String(value);\n }\n\n //#endregion\n}\n\nfunction resolveExecuteTokenInput(raw: ExecuteTokenCommandInput): ExecuteTokenCommandInput {\n const options = raw?.options;\n const data = raw?.data;\n return {\n tokenName: options?.tokenName ?? raw?.tokenName ?? data?.name ?? '',\n tokenTitle: options?.tokenTitle ?? raw?.tokenTitle ?? data?.title,\n };\n}\n\n//#endregion\n"],"names":[],"mappings":"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"}
|