@acorex-platform/module-common-client 0.0.54 → 0.0.56

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (65) hide show
  1. package/fesm2022/{acorex-platform-module-common-client-acorex-platform-module-common-client-Cd7vTe3G.mjs → acorex-platform-module-common-client-acorex-platform-module-common-client-BtSt1xRl.mjs} +232 -39
  2. package/fesm2022/acorex-platform-module-common-client-acorex-platform-module-common-client-BtSt1xRl.mjs.map +1 -0
  3. package/fesm2022/{acorex-platform-module-common-client-archive-entity.command-DiOJ6IkD.mjs → acorex-platform-module-common-client-archive-entity.command-BOV-yh5h.mjs} +2 -2
  4. package/fesm2022/{acorex-platform-module-common-client-archive-entity.command-DiOJ6IkD.mjs.map → acorex-platform-module-common-client-archive-entity.command-BOV-yh5h.mjs.map} +1 -1
  5. package/fesm2022/{acorex-platform-module-common-client-archive-entity.command.util-DhCNqo2R.mjs → acorex-platform-module-common-client-archive-entity.command.util-Cd65r7rb.mjs} +2 -2
  6. package/fesm2022/{acorex-platform-module-common-client-archive-entity.command.util-DhCNqo2R.mjs.map → acorex-platform-module-common-client-archive-entity.command.util-Cd65r7rb.mjs.map} +1 -1
  7. package/fesm2022/{acorex-platform-module-common-client-audit-info-column.component-DihrUmRM.mjs → acorex-platform-module-common-client-audit-info-column.component-DhYUlBgr.mjs} +9 -4
  8. package/fesm2022/acorex-platform-module-common-client-audit-info-column.component-DhYUlBgr.mjs.map +1 -0
  9. package/fesm2022/{acorex-platform-module-common-client-audit-info-edit.component-COMMBgsX.mjs → acorex-platform-module-common-client-audit-info-edit.component-aCgPXlef.mjs} +23 -2
  10. package/fesm2022/acorex-platform-module-common-client-audit-info-edit.component-aCgPXlef.mjs.map +1 -0
  11. package/fesm2022/{acorex-platform-module-common-client-audit-info-view.component-UOTT-ir_.mjs → acorex-platform-module-common-client-audit-info-view.component-lgzqcHCv.mjs} +23 -2
  12. package/fesm2022/acorex-platform-module-common-client-audit-info-view.component-lgzqcHCv.mjs.map +1 -0
  13. package/fesm2022/acorex-platform-module-common-client-audit-info.util-CUlUTX8l.mjs +9 -0
  14. package/fesm2022/acorex-platform-module-common-client-audit-info.util-CUlUTX8l.mjs.map +1 -0
  15. package/fesm2022/{acorex-platform-module-common-client-bulk-archive-entity.command-D01227SB.mjs → acorex-platform-module-common-client-bulk-archive-entity.command-B-S45xY1.mjs} +2 -2
  16. package/fesm2022/{acorex-platform-module-common-client-bulk-archive-entity.command-D01227SB.mjs.map → acorex-platform-module-common-client-bulk-archive-entity.command-B-S45xY1.mjs.map} +1 -1
  17. package/fesm2022/{acorex-platform-module-common-client-bulk-restore-archive-entity.command-CaTT2Rqd.mjs → acorex-platform-module-common-client-bulk-restore-archive-entity.command-CqZxZrkm.mjs} +2 -2
  18. package/fesm2022/{acorex-platform-module-common-client-bulk-restore-archive-entity.command-CaTT2Rqd.mjs.map → acorex-platform-module-common-client-bulk-restore-archive-entity.command-CqZxZrkm.mjs.map} +1 -1
  19. package/fesm2022/{acorex-platform-module-common-client-clone-entity.command-BxT9kdpw.mjs → acorex-platform-module-common-client-clone-entity.command-DmmdZyoL.mjs} +2 -2
  20. package/fesm2022/{acorex-platform-module-common-client-clone-entity.command-BxT9kdpw.mjs.map → acorex-platform-module-common-client-clone-entity.command-DmmdZyoL.mjs.map} +1 -1
  21. package/fesm2022/acorex-platform-module-common-client-contracts.mjs +57 -1
  22. package/fesm2022/acorex-platform-module-common-client-contracts.mjs.map +1 -1
  23. package/fesm2022/{acorex-platform-module-common-client-create-entity-version-draft.command-DLNMbq3M.mjs → acorex-platform-module-common-client-create-entity-version-draft.command-CbLI7jvZ.mjs} +14 -2
  24. package/fesm2022/acorex-platform-module-common-client-create-entity-version-draft.command-CbLI7jvZ.mjs.map +1 -0
  25. package/fesm2022/{acorex-platform-module-common-client-delete-entity-version-draft.command-Dq0zjfak.mjs → acorex-platform-module-common-client-delete-entity-version-draft.command-CLWHs4DO.mjs} +14 -2
  26. package/fesm2022/acorex-platform-module-common-client-delete-entity-version-draft.command-CLWHs4DO.mjs.map +1 -0
  27. package/fesm2022/{acorex-platform-module-common-client-publish-entity-version.command-BtyWjtJj.mjs → acorex-platform-module-common-client-publish-entity-version.command-JNy0K1ZR.mjs} +14 -2
  28. package/fesm2022/acorex-platform-module-common-client-publish-entity-version.command-JNy0K1ZR.mjs.map +1 -0
  29. package/fesm2022/{acorex-platform-module-common-client-restore-archive-entity.command-BWF8iH1Z.mjs → acorex-platform-module-common-client-restore-archive-entity.command-Bami3ybY.mjs} +2 -2
  30. package/fesm2022/{acorex-platform-module-common-client-restore-archive-entity.command-BWF8iH1Z.mjs.map → acorex-platform-module-common-client-restore-archive-entity.command-Bami3ybY.mjs.map} +1 -1
  31. package/fesm2022/{acorex-platform-module-common-client-search-popup.component-B4LA5yh1.mjs → acorex-platform-module-common-client-search-popup.component-DVE0Hc3g.mjs} +2 -2
  32. package/fesm2022/{acorex-platform-module-common-client-search-popup.component-B4LA5yh1.mjs.map → acorex-platform-module-common-client-search-popup.component-DVE0Hc3g.mjs.map} +1 -1
  33. package/fesm2022/acorex-platform-module-common-client-show-entity-version-history.command-CoFbuUYP.mjs +553 -0
  34. package/fesm2022/acorex-platform-module-common-client-show-entity-version-history.command-CoFbuUYP.mjs.map +1 -0
  35. package/fesm2022/{acorex-platform-module-common-client-timeline-version-history-popup.component-CPmN0kme.mjs → acorex-platform-module-common-client-timeline-version-history-popup.component-Ap83-gMD.mjs} +2 -2
  36. package/fesm2022/{acorex-platform-module-common-client-timeline-version-history-popup.component-CPmN0kme.mjs.map → acorex-platform-module-common-client-timeline-version-history-popup.component-Ap83-gMD.mjs.map} +1 -1
  37. package/fesm2022/{acorex-platform-module-common-client-versioning-entity.command.util-CKlJNPHa.mjs → acorex-platform-module-common-client-versioning-entity.command.util-Bibv8EgV.mjs} +18 -1
  38. package/fesm2022/acorex-platform-module-common-client-versioning-entity.command.util-Bibv8EgV.mjs.map +1 -0
  39. package/fesm2022/acorex-platform-module-common-client.mjs +1 -1
  40. package/i18n/en-AU/_feature-sample.json +47 -0
  41. package/i18n/en-AU/_module-sample.json +114 -0
  42. package/i18n/en-AU/common.json +1164 -0
  43. package/i18n/en-AU/global-search.json +38 -0
  44. package/i18n/en-AU/lock-system.json +66 -0
  45. package/i18n/en-US/_feature-sample.json +47 -0
  46. package/i18n/en-US/_module-sample.json +114 -0
  47. package/i18n/en-US/common.json +1164 -0
  48. package/i18n/en-US/global-search.json +38 -0
  49. package/i18n/en-US/lock-system.json +66 -0
  50. package/i18n/fa-IR/_feature-sample.json +48 -0
  51. package/i18n/fa-IR/_module-sample.json +115 -0
  52. package/i18n/fa-IR/common.json +1164 -0
  53. package/i18n/fa-IR/global-search.json +38 -0
  54. package/i18n/fa-IR/lock-system.json +66 -0
  55. package/package.json +1 -1
  56. package/types/acorex-platform-module-common-client-contracts.d.ts +42 -2
  57. package/types/acorex-platform-module-common-client.d.ts +5 -1
  58. package/fesm2022/acorex-platform-module-common-client-acorex-platform-module-common-client-Cd7vTe3G.mjs.map +0 -1
  59. package/fesm2022/acorex-platform-module-common-client-audit-info-column.component-DihrUmRM.mjs.map +0 -1
  60. package/fesm2022/acorex-platform-module-common-client-audit-info-edit.component-COMMBgsX.mjs.map +0 -1
  61. package/fesm2022/acorex-platform-module-common-client-audit-info-view.component-UOTT-ir_.mjs.map +0 -1
  62. package/fesm2022/acorex-platform-module-common-client-create-entity-version-draft.command-DLNMbq3M.mjs.map +0 -1
  63. package/fesm2022/acorex-platform-module-common-client-delete-entity-version-draft.command-Dq0zjfak.mjs.map +0 -1
  64. package/fesm2022/acorex-platform-module-common-client-publish-entity-version.command-BtyWjtJj.mjs.map +0 -1
  65. package/fesm2022/acorex-platform-module-common-client-versioning-entity.command.util-CKlJNPHa.mjs.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"acorex-platform-module-common-client-clone-entity.command-BxT9kdpw.mjs","sources":["../../../../libs/modules/common/client/src/lib/features/clone-plugin/commands/clone-entity.command.helper.ts","../../../../libs/modules/common/client/src/lib/features/clone-plugin/clone-identifier-fields.util.ts","../../../../libs/modules/common/client/src/lib/features/clone-plugin/commands/clone-entity.command.util.ts","../../../../libs/modules/common/client/src/lib/features/clone-plugin/commands/clone-entity.command.ts"],"sourcesContent":["import { AXDialogService } from '@acorex/components/dialog';\nimport { AXLoadingDialogService } from '@acorex/components/loading-dialog';\nimport { AXToastService } from '@acorex/components/toast';\nimport { AXTranslationService } from '@acorex/core/translation';\nimport type { AXPContextData } from '@acorex-platform/framework-shared/core';\nimport { AXPCommonSettings, AXPSettingsService } from '@acorex-platform/framework-client/common';\nimport { AXPEntityBroadcastService } from '@acorex-platform/framework-client/core';\nimport { AXPEntityDefinitionRegistryService } from '@acorex-platform/framework-client/layout/entity';\nimport type { AXPEntity } from '@acorex-platform/framework-shared/entity';\nimport { inject, Injectable } from '@angular/core';\n\n@Injectable({ providedIn: 'root' })\nexport class AXPCloneEntityCommandHelper {\n private readonly entityRegistry = inject(AXPEntityDefinitionRegistryService);\n private readonly dialogService = inject(AXDialogService);\n private readonly loadingDialog = inject(AXLoadingDialogService);\n private readonly translationService = inject(AXTranslationService);\n private readonly toastService = inject(AXToastService);\n private readonly settingsService = inject(AXPSettingsService);\n private readonly entityEvents = inject(AXPEntityBroadcastService);\n\n async resolveEntity(refType: string): Promise<AXPEntity> {\n const [moduleName, entityName] = refType.split('.');\n return this.entityRegistry.resolve(moduleName, entityName);\n }\n\n async fetchEntityData(refType: string, refId: string): Promise<AXPContextData> {\n const entityDefinition = await this.resolveEntity(refType);\n\n if (entityDefinition.queries?.byKey) {\n const queryExec = entityDefinition.queries.byKey.execute as\n | ((id: string) => Promise<AXPContextData>)\n | undefined;\n\n if (!queryExec) {\n throw new Error('Entity byKey query is not executable');\n }\n\n return queryExec(refId);\n }\n\n return { id: refId };\n }\n\n async createEntity(refType: string, data: AXPContextData): Promise<string> {\n const entityDefinition = await this.resolveEntity(refType);\n const createExec = entityDefinition.commands?.create?.execute as\n | ((payload: AXPContextData) => Promise<string>)\n | undefined;\n\n if (!createExec) {\n throw new Error('Entity does not support create operation');\n }\n\n return createExec(data);\n }\n\n async confirm(titleKey: string, messageKey: string, messageParams?: AXPContextData): Promise<boolean> {\n const dialogResult = await this.dialogService.confirm(\n await this.translationService.translateAsync(titleKey),\n await this.translationService.translateAsync(messageKey, { params: messageParams }),\n 'warning',\n 'horizontal',\n false,\n 'cancel',\n );\n return dialogResult.result === true;\n }\n\n showLoading(title: string, status: string) {\n return this.loadingDialog.show({\n title,\n mode: 'indeterminate',\n status,\n });\n }\n\n async showSuccessToast(titleKey: string, contentKey?: string): Promise<void> {\n const enabled = await this.settingsService.get<boolean>(AXPCommonSettings.EnableOperationToasts);\n if (!enabled) {\n return;\n }\n\n this.toastService.show({\n color: 'success',\n title: await this.translationService.translateAsync(titleKey),\n content: contentKey ? await this.translationService.translateAsync(contentKey) : undefined,\n });\n }\n\n dispatchCloned(refType: string, _originalId: string, newId: string, meta?: AXPContextData): void {\n this.entityEvents.publishLayoutRefresh(refType, {\n ...(meta as Record<string, unknown> | undefined),\n highlightRowId: newId,\n resetPagination: true,\n });\n }\n}\n","import type { AXPContextData } from '@acorex-platform/framework-shared/core';\nimport { AXPEntity } from '@acorex-platform/framework-shared/entity';\nimport { isValidVariableName, toVariableName } from '../../validations/utils/variable-name.util';\nimport { AXPDerivedNameExtension } from '../derived-name-plugin/derived-name.plugin';\n\n//#region ---- Constants ----\n\nexport const CLONE_TITLE_SUFFIX = ' (Copy)';\nexport const CLONE_CODE_SUFFIX = '_copy';\n\n//#endregion\n\n//#region ---- Clone Identifier Field Preparation ----\n\n/**\n * Adjusts common identifier fields after cloning.\n * Uses entity metadata (derived-name plugin, variable-name validation) to pick a safe strategy.\n */\nexport function prepareCloneIdentifierFields(\n clonedData: AXPContextData,\n entityDefinition: AXPEntity,\n): void {\n const derivedName = (entityDefinition as { extensions?: { derivedName?: AXPDerivedNameExtension } }).extensions\n ?.derivedName;\n const properties = entityDefinition.properties ?? [];\n\n const propertyHasVariableNameRule = (fieldName: string): boolean =>\n properties.some(\n (prop) =>\n prop.name === fieldName && prop.validations?.some((validation) => validation.rule === 'variable-name'),\n );\n\n const title = clonedData['title'];\n if (typeof title === 'string' && title.trim()) {\n clonedData['title'] = `${title.trim()}${CLONE_TITLE_SUFFIX}`;\n }\n\n if (Object.prototype.hasOwnProperty.call(clonedData, 'name')) {\n clonedData['name'] = resolveClonedName(clonedData, derivedName, propertyHasVariableNameRule('name'));\n }\n\n const code = clonedData['code'];\n if (typeof code === 'string' && code.trim()) {\n clonedData['code'] = `${code.trim()}${CLONE_CODE_SUFFIX}`;\n }\n}\n\nfunction resolveClonedName(\n clonedData: AXPContextData,\n derivedName: AXPDerivedNameExtension | undefined,\n hasVariableNameValidation: boolean,\n): string {\n const sourceField = derivedName?.sourceField ?? 'title';\n const sourceValue = clonedData[sourceField];\n\n if (derivedName || hasVariableNameValidation) {\n const fromSource = toVariableName(sourceValue);\n if (fromSource) {\n return fromSource;\n }\n }\n\n const currentName = clonedData['name'];\n if (typeof currentName === 'string' && currentName.trim()) {\n const suffixed = `${currentName.trim()}${CLONE_CODE_SUFFIX}`;\n if (isValidVariableName(suffixed)) {\n return suffixed;\n }\n\n const fromTitle = toVariableName(clonedData['title']);\n if (fromTitle) {\n return fromTitle;\n }\n\n return toVariableName(currentName, 'clone');\n }\n\n return toVariableName(clonedData['title'], 'clone');\n}\n\n//#endregion\n","import type { AXPContextData } from '@acorex-platform/framework-shared/core';\nimport type { AXPEntity } from '@acorex-platform/framework-shared/entity';\nimport { resolveEntityActionRef } from '@acorex-platform/framework-shared/runtime';\n\nimport { prepareCloneIdentifierFields } from '../clone-identifier-fields.util';\n\nexport interface AXPCloneCommandContext {\n refId: string;\n refType: string;\n rowData?: AXPContextData;\n}\n\nexport function normalizeCloneInput(input: AXPContextData): AXPCloneCommandContext | null {\n const resolved = resolveEntityActionRef(input);\n if (!resolved) {\n return null;\n }\n\n return {\n refId: resolved.refId,\n refType: resolved.refType,\n rowData: resolved.rowData as AXPContextData | undefined,\n };\n}\n\nexport function prepareClonedData(originalData: AXPContextData, entityDefinition: AXPEntity): AXPContextData {\n const clonedData = { ...originalData };\n\n delete clonedData['id'];\n delete clonedData['createdAt'];\n delete clonedData['updatedAt'];\n delete clonedData['createdBy'];\n delete clonedData['updatedBy'];\n delete clonedData['version'];\n delete clonedData['isArchived'];\n delete clonedData['archivedAt'];\n delete clonedData['isDisabled'];\n delete clonedData['disabledAt'];\n\n prepareCloneIdentifierFields(clonedData, entityDefinition);\n\n if (clonedData['isActive'] !== undefined) {\n clonedData['isActive'] = true;\n }\n if (clonedData['status'] !== undefined) {\n clonedData['status'] = 'draft';\n }\n\n return clonedData;\n}\n\nexport function buildCloneRefreshMeta(\n entityDefinition: AXPEntity,\n clonedData: AXPContextData,\n): AXPContextData {\n const meta: AXPContextData = {};\n if (entityDefinition.parentKey && clonedData[entityDefinition.parentKey] != null) {\n meta['refreshTargetId'] = clonedData[entityDefinition.parentKey];\n }\n return meta;\n}\n","import { AXPCommand, type AXPCommandExecuteResultPromise } from '@acorex-platform/framework-shared/runtime';\nimport { AXTranslationService } from '@acorex/core/translation';\nimport { AXPRuntimeCommandResult, type AXPContextData } from '@acorex-platform/framework-shared/core';\nimport { inject, Injectable } from '@angular/core';\n\nimport { AXPCloneEntityCommandHelper } from './clone-entity.command.helper';\nimport {\n buildCloneRefreshMeta,\n normalizeCloneInput,\n prepareClonedData,\n} from './clone-entity.command.util';\n\n@Injectable({ providedIn: 'root' })\nexport class AXPCloneEntityCommand implements AXPCommand<AXPContextData, { newId: string }> {\n private readonly helper = inject(AXPCloneEntityCommandHelper);\n private readonly translationService = inject(AXTranslationService);\n\n async execute(input: AXPContextData): AXPCommandExecuteResultPromise<{ newId: string }> {\n const context = normalizeCloneInput(input);\n if (!context) {\n return {\n success: false,\n message: {\n text: await this.translationService.translateAsync('@general:messages.entity.invalid-data'),\n },\n };\n }\n\n const confirmed = await this.helper.confirm(\n '@general:actions.clone.confirm.title',\n '@general:actions.clone.confirm.message',\n );\n if (!confirmed) {\n return { success: false };\n }\n\n const loadingDialog = this.helper.showLoading(\n await this.translationService.translateAsync('@general:actions.clone.confirm.processing'),\n 'Cloning...',\n );\n\n try {\n const entityDefinition = await this.helper.resolveEntity(context.refType);\n const originalData = await this.helper.fetchEntityData(context.refType, context.refId);\n const clonedData = prepareClonedData(originalData, entityDefinition);\n const newId = await this.helper.createEntity(context.refType, clonedData);\n\n const meta = buildCloneRefreshMeta(entityDefinition, clonedData);\n this.helper.dispatchCloned(context.refType, context.refId, newId, meta);\n await this.helper.showSuccessToast('@general:workflow.entity-cloned', '@general:workflow.entity-cloned-body');\n\n return { success: true, kind: 'object', data: { newId } };\n } catch (error) {\n console.error('Clone operation failed:', error);\n return {\n success: false,\n message: {\n text: error instanceof Error ? error.message : 'Clone operation failed',\n },\n };\n } finally {\n loadingDialog.close();\n }\n }\n}\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"acorex-platform-module-common-client-clone-entity.command-DmmdZyoL.mjs","sources":["../../../../libs/modules/common/client/src/lib/features/clone-plugin/commands/clone-entity.command.helper.ts","../../../../libs/modules/common/client/src/lib/features/clone-plugin/clone-identifier-fields.util.ts","../../../../libs/modules/common/client/src/lib/features/clone-plugin/commands/clone-entity.command.util.ts","../../../../libs/modules/common/client/src/lib/features/clone-plugin/commands/clone-entity.command.ts"],"sourcesContent":["import { AXDialogService } from '@acorex/components/dialog';\nimport { AXLoadingDialogService } from '@acorex/components/loading-dialog';\nimport { AXToastService } from '@acorex/components/toast';\nimport { AXTranslationService } from '@acorex/core/translation';\nimport type { AXPContextData } from '@acorex-platform/framework-shared/core';\nimport { AXPCommonSettings, AXPSettingsService } from '@acorex-platform/framework-client/common';\nimport { AXPEntityBroadcastService } from '@acorex-platform/framework-client/core';\nimport { AXPEntityDefinitionRegistryService } from '@acorex-platform/framework-client/layout/entity';\nimport type { AXPEntity } from '@acorex-platform/framework-shared/entity';\nimport { inject, Injectable } from '@angular/core';\n\n@Injectable({ providedIn: 'root' })\nexport class AXPCloneEntityCommandHelper {\n private readonly entityRegistry = inject(AXPEntityDefinitionRegistryService);\n private readonly dialogService = inject(AXDialogService);\n private readonly loadingDialog = inject(AXLoadingDialogService);\n private readonly translationService = inject(AXTranslationService);\n private readonly toastService = inject(AXToastService);\n private readonly settingsService = inject(AXPSettingsService);\n private readonly entityEvents = inject(AXPEntityBroadcastService);\n\n async resolveEntity(refType: string): Promise<AXPEntity> {\n const [moduleName, entityName] = refType.split('.');\n return this.entityRegistry.resolve(moduleName, entityName);\n }\n\n async fetchEntityData(refType: string, refId: string): Promise<AXPContextData> {\n const entityDefinition = await this.resolveEntity(refType);\n\n if (entityDefinition.queries?.byKey) {\n const queryExec = entityDefinition.queries.byKey.execute as\n | ((id: string) => Promise<AXPContextData>)\n | undefined;\n\n if (!queryExec) {\n throw new Error('Entity byKey query is not executable');\n }\n\n return queryExec(refId);\n }\n\n return { id: refId };\n }\n\n async createEntity(refType: string, data: AXPContextData): Promise<string> {\n const entityDefinition = await this.resolveEntity(refType);\n const createExec = entityDefinition.commands?.create?.execute as\n | ((payload: AXPContextData) => Promise<string>)\n | undefined;\n\n if (!createExec) {\n throw new Error('Entity does not support create operation');\n }\n\n return createExec(data);\n }\n\n async confirm(titleKey: string, messageKey: string, messageParams?: AXPContextData): Promise<boolean> {\n const dialogResult = await this.dialogService.confirm(\n await this.translationService.translateAsync(titleKey),\n await this.translationService.translateAsync(messageKey, { params: messageParams }),\n 'warning',\n 'horizontal',\n false,\n 'cancel',\n );\n return dialogResult.result === true;\n }\n\n showLoading(title: string, status: string) {\n return this.loadingDialog.show({\n title,\n mode: 'indeterminate',\n status,\n });\n }\n\n async showSuccessToast(titleKey: string, contentKey?: string): Promise<void> {\n const enabled = await this.settingsService.get<boolean>(AXPCommonSettings.EnableOperationToasts);\n if (!enabled) {\n return;\n }\n\n this.toastService.show({\n color: 'success',\n title: await this.translationService.translateAsync(titleKey),\n content: contentKey ? await this.translationService.translateAsync(contentKey) : undefined,\n });\n }\n\n dispatchCloned(refType: string, _originalId: string, newId: string, meta?: AXPContextData): void {\n this.entityEvents.publishLayoutRefresh(refType, {\n ...(meta as Record<string, unknown> | undefined),\n highlightRowId: newId,\n resetPagination: true,\n });\n }\n}\n","import type { AXPContextData } from '@acorex-platform/framework-shared/core';\nimport { AXPEntity } from '@acorex-platform/framework-shared/entity';\nimport { isValidVariableName, toVariableName } from '../../validations/utils/variable-name.util';\nimport { AXPDerivedNameExtension } from '../derived-name-plugin/derived-name.plugin';\n\n//#region ---- Constants ----\n\nexport const CLONE_TITLE_SUFFIX = ' (Copy)';\nexport const CLONE_CODE_SUFFIX = '_copy';\n\n//#endregion\n\n//#region ---- Clone Identifier Field Preparation ----\n\n/**\n * Adjusts common identifier fields after cloning.\n * Uses entity metadata (derived-name plugin, variable-name validation) to pick a safe strategy.\n */\nexport function prepareCloneIdentifierFields(\n clonedData: AXPContextData,\n entityDefinition: AXPEntity,\n): void {\n const derivedName = (entityDefinition as { extensions?: { derivedName?: AXPDerivedNameExtension } }).extensions\n ?.derivedName;\n const properties = entityDefinition.properties ?? [];\n\n const propertyHasVariableNameRule = (fieldName: string): boolean =>\n properties.some(\n (prop) =>\n prop.name === fieldName && prop.validations?.some((validation) => validation.rule === 'variable-name'),\n );\n\n const title = clonedData['title'];\n if (typeof title === 'string' && title.trim()) {\n clonedData['title'] = `${title.trim()}${CLONE_TITLE_SUFFIX}`;\n }\n\n if (Object.prototype.hasOwnProperty.call(clonedData, 'name')) {\n clonedData['name'] = resolveClonedName(clonedData, derivedName, propertyHasVariableNameRule('name'));\n }\n\n const code = clonedData['code'];\n if (typeof code === 'string' && code.trim()) {\n clonedData['code'] = `${code.trim()}${CLONE_CODE_SUFFIX}`;\n }\n}\n\nfunction resolveClonedName(\n clonedData: AXPContextData,\n derivedName: AXPDerivedNameExtension | undefined,\n hasVariableNameValidation: boolean,\n): string {\n const sourceField = derivedName?.sourceField ?? 'title';\n const sourceValue = clonedData[sourceField];\n\n if (derivedName || hasVariableNameValidation) {\n const fromSource = toVariableName(sourceValue);\n if (fromSource) {\n return fromSource;\n }\n }\n\n const currentName = clonedData['name'];\n if (typeof currentName === 'string' && currentName.trim()) {\n const suffixed = `${currentName.trim()}${CLONE_CODE_SUFFIX}`;\n if (isValidVariableName(suffixed)) {\n return suffixed;\n }\n\n const fromTitle = toVariableName(clonedData['title']);\n if (fromTitle) {\n return fromTitle;\n }\n\n return toVariableName(currentName, 'clone');\n }\n\n return toVariableName(clonedData['title'], 'clone');\n}\n\n//#endregion\n","import type { AXPContextData } from '@acorex-platform/framework-shared/core';\nimport type { AXPEntity } from '@acorex-platform/framework-shared/entity';\nimport { resolveEntityActionRef } from '@acorex-platform/framework-shared/runtime';\n\nimport { prepareCloneIdentifierFields } from '../clone-identifier-fields.util';\n\nexport interface AXPCloneCommandContext {\n refId: string;\n refType: string;\n rowData?: AXPContextData;\n}\n\nexport function normalizeCloneInput(input: AXPContextData): AXPCloneCommandContext | null {\n const resolved = resolveEntityActionRef(input);\n if (!resolved) {\n return null;\n }\n\n return {\n refId: resolved.refId,\n refType: resolved.refType,\n rowData: resolved.rowData as AXPContextData | undefined,\n };\n}\n\nexport function prepareClonedData(originalData: AXPContextData, entityDefinition: AXPEntity): AXPContextData {\n const clonedData = { ...originalData };\n\n delete clonedData['id'];\n delete clonedData['createdAt'];\n delete clonedData['updatedAt'];\n delete clonedData['createdBy'];\n delete clonedData['updatedBy'];\n delete clonedData['version'];\n delete clonedData['isArchived'];\n delete clonedData['archivedAt'];\n delete clonedData['isDisabled'];\n delete clonedData['disabledAt'];\n\n prepareCloneIdentifierFields(clonedData, entityDefinition);\n\n if (clonedData['isActive'] !== undefined) {\n clonedData['isActive'] = true;\n }\n if (clonedData['status'] !== undefined) {\n clonedData['status'] = 'draft';\n }\n\n return clonedData;\n}\n\nexport function buildCloneRefreshMeta(\n entityDefinition: AXPEntity,\n clonedData: AXPContextData,\n): AXPContextData {\n const meta: AXPContextData = {};\n if (entityDefinition.parentKey && clonedData[entityDefinition.parentKey] != null) {\n meta['refreshTargetId'] = clonedData[entityDefinition.parentKey];\n }\n return meta;\n}\n","import { AXPCommand, type AXPCommandExecuteResultPromise } from '@acorex-platform/framework-shared/runtime';\nimport { AXTranslationService } from '@acorex/core/translation';\nimport { AXPRuntimeCommandResult, type AXPContextData } from '@acorex-platform/framework-shared/core';\nimport { inject, Injectable } from '@angular/core';\n\nimport { AXPCloneEntityCommandHelper } from './clone-entity.command.helper';\nimport {\n buildCloneRefreshMeta,\n normalizeCloneInput,\n prepareClonedData,\n} from './clone-entity.command.util';\n\n@Injectable({ providedIn: 'root' })\nexport class AXPCloneEntityCommand implements AXPCommand<AXPContextData, { newId: string }> {\n private readonly helper = inject(AXPCloneEntityCommandHelper);\n private readonly translationService = inject(AXTranslationService);\n\n async execute(input: AXPContextData): AXPCommandExecuteResultPromise<{ newId: string }> {\n const context = normalizeCloneInput(input);\n if (!context) {\n return {\n success: false,\n message: {\n text: await this.translationService.translateAsync('@general:messages.entity.invalid-data'),\n },\n };\n }\n\n const confirmed = await this.helper.confirm(\n '@general:actions.clone.confirm.title',\n '@general:actions.clone.confirm.message',\n );\n if (!confirmed) {\n return { success: false };\n }\n\n const loadingDialog = this.helper.showLoading(\n await this.translationService.translateAsync('@general:actions.clone.confirm.processing'),\n 'Cloning...',\n );\n\n try {\n const entityDefinition = await this.helper.resolveEntity(context.refType);\n const originalData = await this.helper.fetchEntityData(context.refType, context.refId);\n const clonedData = prepareClonedData(originalData, entityDefinition);\n const newId = await this.helper.createEntity(context.refType, clonedData);\n\n const meta = buildCloneRefreshMeta(entityDefinition, clonedData);\n this.helper.dispatchCloned(context.refType, context.refId, newId, meta);\n await this.helper.showSuccessToast('@general:workflow.entity-cloned', '@general:workflow.entity-cloned-body');\n\n return { success: true, kind: 'object', data: { newId } };\n } catch (error) {\n console.error('Clone operation failed:', error);\n return {\n success: false,\n message: {\n text: error instanceof Error ? error.message : 'Clone operation failed',\n },\n };\n } finally {\n loadingDialog.close();\n }\n }\n}\n"],"names":[],"mappings":"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"}
@@ -33,6 +33,7 @@ const AXPCommonCommandKeys = {
33
33
  CreateDraft: 'create-entity-version-draft',
34
34
  Publish: 'publish-entity-version',
35
35
  DeleteDraft: 'delete-entity-version-draft',
36
+ ShowHistory: 'show-entity-version-history',
36
37
  },
37
38
  };
38
39
  //#endregion
@@ -411,6 +412,7 @@ const AXPPermissionKeyModules = {
411
412
  'ContentDocuments:Permission:Access': AXPPermissionDomainModules.ContentDocuments,
412
413
  'ContentDocuments:Permission:Setup': AXPPermissionDomainModules.ContentDocuments,
413
414
  'ContentDocuments:Permission:MaintainDocuments': ['DocumentManagement'],
415
+ 'ContentDocuments:Permission:MaintainVersioning': ['DocumentManagement'],
414
416
  'ContentDocuments:Permission:DistributeDocuments': ['DocumentManagement'],
415
417
  'ContentDocuments:Permission:MaintainContent': ['ContentManagement'],
416
418
  'ContentDocuments:Permission:MaintainFormTemplates': ['AssessmentManagement'],
@@ -580,6 +582,7 @@ const AXP_VERSIONING_ERROR_CODES = {
580
582
  HostContentLocked: 'VERSIONING_HOST_CONTENT_LOCKED',
581
583
  NoDraft: 'VERSIONING_NO_DRAFT',
582
584
  InvalidPublish: 'VERSIONING_INVALID_PUBLISH',
585
+ CreateDenied: 'VERSIONING_CREATE_DENIED',
583
586
  };
584
587
  const AXP_VERSIONING_ERROR_I18N = {
585
588
  [AXP_VERSIONING_ERROR_CODES.DraftExists]: '@general:errors.versioning.draft-exists',
@@ -588,7 +591,46 @@ const AXP_VERSIONING_ERROR_I18N = {
588
591
  [AXP_VERSIONING_ERROR_CODES.HostContentLocked]: '@general:errors.versioning.host-content-locked',
589
592
  [AXP_VERSIONING_ERROR_CODES.NoDraft]: '@general:errors.versioning.no-draft',
590
593
  [AXP_VERSIONING_ERROR_CODES.InvalidPublish]: '@general:errors.versioning.invalid-publish',
594
+ [AXP_VERSIONING_ERROR_CODES.CreateDenied]: '@general:errors.versioning.create-denied',
591
595
  };
596
+ /**
597
+ * Legacy tenant-wide key (kept so existing role grants still work).
598
+ * New grants use {@link maintainVersioningPermissionKey}.
599
+ */
600
+ const AXP_VERSIONING_MAINTAIN_PERMISSION_LEGACY = 'ContentDocuments:Permission:MaintainVersioning';
601
+ /**
602
+ * @deprecated Use {@link maintainVersioningPermissionKey} for the host entity.
603
+ * Alias of {@link AXP_VERSIONING_MAINTAIN_PERMISSION_LEGACY}.
604
+ */
605
+ const AXP_VERSIONING_CREATE_DRAFT_PERMISSION = AXP_VERSIONING_MAINTAIN_PERMISSION_LEGACY;
606
+ /** Runtime query that lists host entities which declare the versioning plugin. */
607
+ const AXP_VERSIONING_LIST_HOST_ENTITIES_QUERY = 'Common:ListVersioningHostEntities';
608
+ /**
609
+ * Seed-time hosts that declare the versioning plugin in module catalogs.
610
+ * Administrator seed grants these keys; the role UI also discovers new hosts at runtime.
611
+ */
612
+ const AXP_VERSIONING_SEEDED_HOST_ENTITIES = [
613
+ 'DocumentManagement.Document',
614
+ 'FinancialCore.FiscalCalendar',
615
+ ];
616
+ /**
617
+ * Per-entity Maintain Versioning key: `{Module}:Permission:{Entity}.MaintainVersioning`.
618
+ */
619
+ function maintainVersioningPermissionKey(hostEntityName) {
620
+ const [moduleName, entityName] = String(hostEntityName ?? '').split('.');
621
+ if (!moduleName || !entityName) {
622
+ return '';
623
+ }
624
+ return `${moduleName}:Permission:${entityName}.MaintainVersioning`;
625
+ }
626
+ /** True when the user has the per-entity key or the legacy tenant-wide key. */
627
+ function isMaintainVersioningPermissionGranted(hasPermission, hostEntityName) {
628
+ const key = maintainVersioningPermissionKey(hostEntityName);
629
+ if (key && hasPermission(key)) {
630
+ return true;
631
+ }
632
+ return hasPermission(AXP_VERSIONING_MAINTAIN_PERMISSION_LEGACY);
633
+ }
592
634
  /** Fields that live only on the host published row. */
593
635
  const AXP_VERSIONING_HOST_OWN_FIELDS = new Set([
594
636
  AXPVersioningField.Version,
@@ -616,6 +658,20 @@ const AXP_VERSIONING_STRUCTURAL_FIELDS = new Set([
616
658
  'auditInfo',
617
659
  'id',
618
660
  ]);
661
+ /**
662
+ * Display identity and live attributes on the published host.
663
+ * Renaming or editing metadata is not a new revision; replacing the file still is.
664
+ * Still snapshotted onto companions so publish can copy the latest values.
665
+ */
666
+ const AXP_VERSIONING_HOST_IDENTITY_FIELDS = new Set([
667
+ 'title',
668
+ 'name',
669
+ 'description',
670
+ 'metaDataForm',
671
+ 'expirationDate',
672
+ 'documentType',
673
+ 'distributionEnabled',
674
+ ]);
619
675
  function versionCompanionEntityName(hostEntityName) {
620
676
  return `${hostEntityName}Version`;
621
677
  }
@@ -642,5 +698,5 @@ function isVersionCompanionEntityName(entityName) {
642
698
  * Generated bundle index. Do not edit.
643
699
  */
644
700
 
645
- export { AXMCommonSettings, AXMLockSystemSettings, AXPCommonCommandKeys, AXPCommonFeatureKeys, AXPCommonMenuKeys, AXPCommonPermissionGroupKeys, AXPPermissionDomainModules, AXPPermissionKeyModules, AXPVersionHistorySettings, AXPVersioningField, AXPVersioningStatus, AXP_VERSIONING_COMPANION_OWN_FIELDS, AXP_VERSIONING_ERROR_CODES, AXP_VERSIONING_ERROR_I18N, AXP_VERSIONING_HOST_OWN_FIELDS, AXP_VERSIONING_PLUGIN_NAME, AXP_VERSIONING_STRUCTURAL_FIELDS, AXP_VERSION_HISTORY_SETTING_DEFAULTS, COMMON_CATALOG_SCOPE_GENERAL, CommonManifest, RootConfig, hostEntityNameFromCompanion, humanizePermissionCapability, isPermissionEnabledForModules, isVersionCompanionEntityName, resolvePermissionI18nKeys, resolvePermissionModules, resolvePermissionTitleDisplay, versionCompanionEntityName };
701
+ export { AXMCommonSettings, AXMLockSystemSettings, AXPCommonCommandKeys, AXPCommonFeatureKeys, AXPCommonMenuKeys, AXPCommonPermissionGroupKeys, AXPPermissionDomainModules, AXPPermissionKeyModules, AXPVersionHistorySettings, AXPVersioningField, AXPVersioningStatus, AXP_VERSIONING_COMPANION_OWN_FIELDS, AXP_VERSIONING_CREATE_DRAFT_PERMISSION, AXP_VERSIONING_ERROR_CODES, AXP_VERSIONING_ERROR_I18N, AXP_VERSIONING_HOST_IDENTITY_FIELDS, AXP_VERSIONING_HOST_OWN_FIELDS, AXP_VERSIONING_LIST_HOST_ENTITIES_QUERY, AXP_VERSIONING_MAINTAIN_PERMISSION_LEGACY, AXP_VERSIONING_PLUGIN_NAME, AXP_VERSIONING_SEEDED_HOST_ENTITIES, AXP_VERSIONING_STRUCTURAL_FIELDS, AXP_VERSION_HISTORY_SETTING_DEFAULTS, COMMON_CATALOG_SCOPE_GENERAL, CommonManifest, RootConfig, hostEntityNameFromCompanion, humanizePermissionCapability, isMaintainVersioningPermissionGranted, isPermissionEnabledForModules, isVersionCompanionEntityName, maintainVersioningPermissionKey, resolvePermissionI18nKeys, resolvePermissionModules, resolvePermissionTitleDisplay, versionCompanionEntityName };
646
702
  //# sourceMappingURL=acorex-platform-module-common-client-contracts.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"acorex-platform-module-common-client-contracts.mjs","sources":["../../../../libs/modules/common/contracts/src/catalog-scope.keys.ts","../../../../libs/modules/common/contracts/src/commands.keys.ts","../../../../libs/modules/common/contracts/src/features.keys.ts","../../../../libs/modules/common/contracts/src/menu.keys.ts","../../../../libs/modules/common/contracts/src/permission-group.keys.ts","../../../../libs/modules/common/contracts/src/permission-display.util.ts","../../../../libs/modules/common/contracts/src/permission-module.map.ts","../../../../libs/modules/common/contracts/src/settings.keys.ts","../../../../libs/modules/common/contracts/src/version-history.settings.keys.ts","../../../../libs/modules/common/contracts/src/root-config.ts","../../../../libs/modules/common/contracts/src/manifest.ts","../../../../libs/modules/common/contracts/src/versioning.constants.ts","../../../../libs/modules/common/contracts/src/versioning.types.ts","../../../../libs/modules/common/contracts/src/index.ts","../../../../libs/modules/common/contracts/src/acorex-platform-module-common-client-contracts.ts"],"sourcesContent":["/** Cross-module catalog scope for shared questionnaires, question bank items, and workflows. */\nexport const COMMON_CATALOG_SCOPE_GENERAL = 'common.general';\n","//#region ---- Command keys ----\n\nexport const AXPCommonCommandKeys = {\n Archive: {\n Archive: 'archive-entity',\n Restore: 'restore-archive-entity',\n BulkArchive: 'bulk-archive-entity',\n BulkRestore: 'bulk-restore-archive-entity',\n },\n Disable: {\n Disable: 'disable-entity',\n Enable: 'enable-entity',\n BulkDisable: 'bulk-disable-entity',\n BulkEnable: 'bulk-enable-entity',\n },\n Clone: {\n Clone: 'clone-entity',\n },\n Compare: {\n EntityRecords: 'compare-entity-records',\n EntityRecordVersions: 'compare-entity-record-versions',\n },\n GlobalSearch: {\n Open: 'global-search',\n },\n Lock: {\n Lock: 'lock-popup',\n Unlock: 'unlock-confirm',\n },\n Versioning: {\n CreateDraft: 'create-entity-version-draft',\n Publish: 'publish-entity-version',\n DeleteDraft: 'delete-entity-version-draft',\n },\n} as const;\n\n//#endregion\n","export const AXPCommonFeatureKeys = {\n GlobalSearch: 'Common:Feature:GlobalSearch',\n AdvancedExport: 'Common:Feature:AdvancedExport',\n ActivityLog: 'Common:Feature:ActivityLog',\n DataImport: 'Common:Feature:DataImport',\n BulkOperations: 'Common:Feature:BulkOperations',\n AdvancedFiltering: 'Common:Feature:AdvancedFiltering',\n DataSynchronization: 'Common:Feature:DataSynchronization',\n} as const;\n\n","export const AXPCommonMenuKeys = {\n Home: 'Common:Menu:Home',\n Administration: 'Common:Menu:Administration',\n Help: 'Common:Menu:Help',\n Configuration: 'Common:Menu:Configuration',\n Contacts: 'Common:Menu:Contacts',\n Platform: 'Common:Menu:Platform',\n /** Administration > Publishing (Promotions, Page Builder, Dashboards, Announcements) */\n Content: 'Common:Menu:Administration:Content',\n /** Administration > Monitoring (Communications, Jobs) */\n Monitoring: 'Common:Menu:Administration:Monitoring',\n /** Administration > Workflows (Workflow Definitions, Instances, Studio, Activities) */\n Workflows: 'Common:Menu:Administration:Workflows',\n /** Commerce (Products, Orders, Supplier Products) */\n Commerce: 'Common:Menu:Commerce',\n /** Configuration > Meeting (Meeting Types, Meeting Role Types) */\n Meeting: 'Common:Menu:Configuration:Meeting',\n /** Organization (Teams, Positions, Employees, Leave - merged with Staff) */\n Organization: 'Common:Menu:Organization',\n /** Configuration > Organization (Job Definitions, Employment Types, etc.) */\n OrganizationConfig: 'Common:Menu:Configuration:Organization',\n /** Configuration > Help Desk (Issue Types) */\n HelpDeskConfig: 'Common:Menu:Configuration:HelpDesk',\n /** Configuration > Document Management (Document Types) */\n DocumentManagementConfig: 'Common:Menu:Configuration:DocumentManagement',\n /** Configuration > Forms & Assessments (Question Bank, Questionnaires, Form Templates) */\n FormsAndAssessments: 'Common:Menu:Configuration:FormsAndAssessments',\n /** Configuration > Reservation (Types, Statuses, Classes) */\n ReservationConfig: 'Common:Menu:Configuration:Reservation',\n /** Configuration > Date and Time (Timezones, Calendars, Calendar Event Types) */\n DateAndTime: 'Common:Menu:Configuration:DateAndTime',\n /** Configuration > Region and Locale (Location Types, Geographic Regions, Languages) */\n Region: 'Common:Menu:Configuration:Region',\n /** Configuration > People and Demographics (personal reference data) */\n PeopleAndDemographics: 'Common:Menu:Configuration:PeopleAndDemographics',\n /** Configuration > Health (health reference data and catalogs) */\n Health: 'Common:Menu:Configuration:Health',\n /** Configuration > Projects (Project + Task reference data) */\n Projects: 'Common:Menu:Configuration:Projects',\n /** Configuration > Scheduling and Events (Meeting + Reservation types) */\n SchedulingAndEvents: 'Common:Menu:Configuration:SchedulingAndEvents',\n /** Configuration > Data and Content (Documents + Data Definitions) */\n DataAndContent: 'Common:Menu:Configuration:DataAndContent',\n /** Configuration > Platform Definitions (Entity / Command / Query / Plugin / Widget catalogs) */\n PlatformDefinitions: 'Common:Menu:Configuration:PlatformDefinitions',\n /** Configuration > Intelligence (AI Management) */\n AiManagementConfig: 'Common:Menu:Configuration:AiManagement',\n /** Plant & Equipment (top-level menu group) */\n PlantEquipment: 'Common:Menu:PlantEquipment',\n} as const;\n","/**\n * Shared permission group ids for the role UI.\n * Modules contribute capabilities via addGroup(these keys) so domains stay aligned\n * (same nesting idea as {@link AXPCommonCommandKeys}).\n *\n * Format: `Common:PermissionGroup:{Domain}` or `Common:PermissionGroup:{Root}:{Section}`\n * - `Domain.Root` — left-nav root group id\n * - `Domain.Section` — optional right-panel section under that root\n * Root `order` values follow the catalog in permission-design.mdc (lower first).\n * See `.cursor/rules/core-rules/permission-design.mdc`.\n *\n * @example\n * groups.SalesCustomers.Root\n * groups.SalesCustomers.Customers\n * groups.SuppliersProcurement.Root\n * groups.Administration.SecurityAccess\n */\nexport const AXPCommonPermissionGroupKeys = {\n //#region ---- Business domains ----\n\n PeopleOrganization: {\n Root: 'Common:PermissionGroup:PeopleOrganization',\n Structure: 'Common:PermissionGroup:PeopleOrganization:Structure',\n Workforce: 'Common:PermissionGroup:PeopleOrganization:Workforce',\n Attendance: 'Common:PermissionGroup:PeopleOrganization:Attendance',\n },\n Learning: {\n Root: 'Common:PermissionGroup:Learning',\n },\n SafetyRisk: {\n Root: 'Common:PermissionGroup:SafetyRisk',\n WorkplaceSafety: 'Common:PermissionGroup:SafetyRisk:WorkplaceSafety',\n Risk: 'Common:PermissionGroup:SafetyRisk:Risk',\n Health: 'Common:PermissionGroup:SafetyRisk:Health',\n Assessments: 'Common:PermissionGroup:SafetyRisk:Assessments',\n },\n Finance: {\n Root: 'Common:PermissionGroup:Finance',\n },\n SalesCustomers: {\n Root: 'Common:PermissionGroup:SalesCustomers',\n Customers: 'Common:PermissionGroup:SalesCustomers:Customers',\n Sales: 'Common:PermissionGroup:SalesCustomers:Sales',\n Products: 'Common:PermissionGroup:SalesCustomers:Products',\n Orders: 'Common:PermissionGroup:SalesCustomers:Orders',\n Subscriptions: 'Common:PermissionGroup:SalesCustomers:Subscriptions',\n },\n SuppliersProcurement: {\n Root: 'Common:PermissionGroup:SuppliersProcurement',\n SuppliersSubcontractors: 'Common:PermissionGroup:SuppliersProcurement:SuppliersSubcontractors',\n },\n ProjectsWork: {\n Root: 'Common:PermissionGroup:ProjectsWork',\n Projects: 'Common:PermissionGroup:ProjectsWork:Projects',\n Tasks: 'Common:PermissionGroup:ProjectsWork:Tasks',\n TimeTracking: 'Common:PermissionGroup:ProjectsWork:TimeTracking',\n },\n AssetsMaintenance: {\n Root: 'Common:PermissionGroup:AssetsMaintenance',\n Assets: 'Common:PermissionGroup:AssetsMaintenance:Assets',\n Maintenance: 'Common:PermissionGroup:AssetsMaintenance:Maintenance',\n },\n Collaboration: {\n Root: 'Common:PermissionGroup:Collaboration',\n Conversations: 'Common:PermissionGroup:Collaboration:Conversations',\n Scheduling: 'Common:PermissionGroup:Collaboration:Scheduling',\n Communications: 'Common:PermissionGroup:Collaboration:Communications',\n HelpDesk: 'Common:PermissionGroup:Collaboration:HelpDesk',\n },\n ContentDocuments: {\n Root: 'Common:PermissionGroup:ContentDocuments',\n Documents: 'Common:PermissionGroup:ContentDocuments:Documents',\n Content: 'Common:PermissionGroup:ContentDocuments:Content',\n FormTemplates: 'Common:PermissionGroup:ContentDocuments:FormTemplates',\n },\n InsightsReporting: {\n Root: 'Common:PermissionGroup:InsightsReporting',\n Reports: 'Common:PermissionGroup:InsightsReporting:Reports',\n ActivityInsight: 'Common:PermissionGroup:InsightsReporting:ActivityInsight',\n Data: 'Common:PermissionGroup:InsightsReporting:Data',\n },\n\n //#endregion\n\n //#region ---- Platform roots ----\n\n ApplicationsPlatform: {\n Root: 'Common:PermissionGroup:ApplicationsPlatform',\n Applications: 'Common:PermissionGroup:ApplicationsPlatform:Applications',\n TenancyShell: 'Common:PermissionGroup:ApplicationsPlatform:TenancyShell',\n Configuration: 'Common:PermissionGroup:ApplicationsPlatform:Configuration',\n DevTools: 'Common:PermissionGroup:ApplicationsPlatform:DevTools',\n },\n Administration: {\n Root: 'Common:PermissionGroup:Administration',\n SecurityAccess: 'Common:PermissionGroup:Administration:SecurityAccess',\n Settings: 'Common:PermissionGroup:Administration:Settings',\n Integrations: 'Common:PermissionGroup:Administration:Integrations',\n Workflow: 'Common:PermissionGroup:Administration:Workflow',\n Rules: 'Common:PermissionGroup:Administration:Rules',\n Ai: 'Common:PermissionGroup:Administration:Ai',\n Dashboards: 'Common:PermissionGroup:Administration:Dashboards',\n Jobs: 'Common:PermissionGroup:Administration:Jobs',\n Observability: 'Common:PermissionGroup:Administration:Observability',\n },\n\n //#endregion\n} as const;\n","//#region ----- Permission display keys -----\n\n/**\n * Maps conceptual permission keys (`Domain:Permission:Capability`) to the\n * shared `@common:{domain}.permissions.{capability}.(title|description)` i18n\n * keys used by client permission-definition providers.\n */\nexport function resolvePermissionI18nKeys(\n permissionKey: string,\n): { titleKey: string; descriptionKey: string } | null {\n const parts = permissionKey.split(':');\n if (parts.length < 3 || parts[1] !== 'Permission') {\n return null;\n }\n\n const domainKebab = pascalToKebab(parts[0] ?? '');\n const capabilityKebab = pascalToKebab(parts[parts.length - 1] ?? '');\n if (!domainKebab || !capabilityKebab) {\n return null;\n }\n\n const base = `@common:${domainKebab}.permissions.${capabilityKebab}`;\n return {\n titleKey: `${base}.title`,\n descriptionKey: `${base}.description`,\n };\n}\n\n/** Fallback label when no i18n key can be derived (last capability segment). */\nexport function humanizePermissionCapability(permissionKey: string): string {\n const capability = permissionKey.split(':').pop() ?? permissionKey;\n return capability\n .replace(/([a-z0-9])([A-Z])/g, '$1 $2')\n .replace(/([A-Z]+)([A-Z][a-z])/g, '$1 $2')\n .trim();\n}\n\n/**\n * Value for report/UI display columns: prefer the i18n title key (translated by\n * text widgets), otherwise a humanized capability label.\n */\nexport function resolvePermissionTitleDisplay(permissionKey: string): string {\n return resolvePermissionI18nKeys(permissionKey)?.titleKey ?? humanizePermissionCapability(permissionKey);\n}\n\nfunction pascalToKebab(value: string): string {\n return value\n .replace(/([a-z0-9])([A-Z])/g, '$1-$2')\n .replace(/([A-Z]+)([A-Z][a-z])/g, '$1-$2')\n .replace(/_/g, '-')\n .toLowerCase()\n .replace(/-+/g, '-')\n .replace(/^-|-$/g, '');\n}\n\n//#endregion\n","//#region ----- Types -----\n\n/**\n * Resolves which edition module name(s) a conceptual permission key belongs to.\n * Used to filter role grants / permission editor by application edition modules.\n */\nexport type AXPPermissionModulesResolver = (permissionKey: string) => readonly string[];\n\n//#endregion\n\n//#region ----- Domain → modules (Access / Setup = any-module) -----\n\n/**\n * Contributing Nx / edition module names per conceptual domain prefix.\n * Access and Setup keys use this full list (match if ANY module is enabled).\n */\nexport const AXPPermissionDomainModules = {\n Administration: [\n 'SecurityManagement',\n 'IntegrationManagement',\n 'WorkflowManagement',\n 'RuleEngineManagement',\n 'AiManagement',\n 'DashboardManagement',\n 'BackgroundJobManagement',\n 'SystemInsight',\n ],\n /**\n * Platform Console catalog modules for Access ANY-match.\n * SettingsManagement is intentionally omitted — product apps enable it for\n * MaintainTenantSettings without unlocking Applications & Platform Access.\n */\n ApplicationsPlatform: [\n 'ApplicationManagement',\n 'TenantManagement',\n 'PlatformManagement',\n 'AppBuilder',\n 'IdentifierManagement',\n 'LocaleManagement',\n 'PlatformDevTools',\n ],\n PeopleOrganization: [\n 'OrganizationManagement',\n 'HumanCapitalManagement',\n 'PersonCore',\n 'AttendanceManagement',\n 'LocationManagement',\n ],\n SafetyRisk: [\n 'WorkplaceSafetyManagement',\n 'RiskManagement',\n 'HealthCore',\n 'AssessmentManagement',\n ],\n ProjectsWork: ['ProjectManagement', 'TaskManagement', 'TimesheetManagement'],\n AssetsMaintenance: ['AssetManagement', 'MaintenanceManagement', 'MeasurementCore'],\n Collaboration: [\n 'Conversation',\n 'CalendarManagement',\n 'MeetingManagement',\n 'CommunicationManagement',\n 'BulletinManagement',\n 'ReservationManagement',\n 'HelpDesk',\n 'ContactCore',\n ],\n ContentDocuments: ['DocumentManagement', 'ContentManagement', 'AssessmentManagement'],\n InsightsReporting: ['ReportManagement', 'DataManagement', 'ActivityInsight', 'TestManagement'],\n SalesCustomers: [\n 'CustomerManagement',\n 'ProductCatalog',\n 'OrderManagement',\n 'SubscriptionManagement',\n 'BusinessCore',\n ],\n Procurement: ['SupplierManagement', 'ProcurementManagement'],\n Learning: ['LearningManagement'],\n Finance: ['FinancialCore'],\n} as const;\n\n//#endregion\n\n//#region ----- Permission key → modules -----\n\n/**\n * Owner / contributing modules for each conceptual permission key.\n * - Access & Setup → all domain modules (any-module match)\n * - Unique Maintain/Manage/View/… → registering owner module only\n */\nexport const AXPPermissionKeyModules: Readonly<Record<string, readonly string[]>> = {\n // Administration\n 'Administration:Permission:Access': AXPPermissionDomainModules.Administration,\n 'Administration:Permission:MaintainUsersAndRoles': ['SecurityManagement'],\n 'Administration:Permission:ManageSessions': ['SecurityManagement'],\n 'Administration:Permission:MaintainPolicies': ['SecurityManagement'],\n 'Administration:Permission:ViewIntegrations': ['IntegrationManagement'],\n 'Administration:Permission:MaintainConnections': ['IntegrationManagement'],\n 'Administration:Permission:ManageIntegrationActions': ['IntegrationManagement'],\n 'Administration:Permission:MaintainWorkflows': ['WorkflowManagement'],\n 'Administration:Permission:ManageWorkflowActions': ['WorkflowManagement'],\n 'Administration:Permission:ViewRules': ['RuleEngineManagement'],\n 'Administration:Permission:MaintainRules': ['RuleEngineManagement'],\n 'Administration:Permission:ManageRuleActions': ['RuleEngineManagement'],\n 'Administration:Permission:MaintainAi': ['AiManagement'],\n 'Administration:Permission:UseAiAssist': ['AiManagement'],\n 'Administration:Permission:MaintainDashboards': ['DashboardManagement'],\n 'Administration:Permission:ViewJobs': ['BackgroundJobManagement'],\n 'Administration:Permission:ManageJobActions': ['BackgroundJobManagement'],\n 'Administration:Permission:ViewObservability': ['SystemInsight'],\n 'Administration:Permission:MaintainObservability': ['SystemInsight'],\n\n // Applications & Platform\n 'ApplicationsPlatform:Permission:Access': AXPPermissionDomainModules.ApplicationsPlatform,\n 'ApplicationsPlatform:Permission:MaintainApplications': ['ApplicationManagement'],\n 'ApplicationsPlatform:Permission:MaintainTenants': ['TenantManagement'],\n 'ApplicationsPlatform:Permission:MaintainPlatformShell': ['PlatformManagement'],\n 'ApplicationsPlatform:Permission:MaintainLandingPages': ['AppBuilder'],\n 'ApplicationsPlatform:Permission:MaintainIdentifiers': ['IdentifierManagement'],\n 'ApplicationsPlatform:Permission:MaintainTenantSettings': ['SettingsManagement'],\n /** Platform-wide settings — Platform Console only (not product-app SettingsManagement). */\n 'ApplicationsPlatform:Permission:MaintainPlatformSettings': ['PlatformManagement'],\n 'ApplicationsPlatform:Permission:MaintainLocales': ['LocaleManagement'],\n 'ApplicationsPlatform:Permission:UseDevTools': ['PlatformDevTools'],\n 'ApplicationsPlatform:Permission:MaintainSoftwareDefinitions': ['SoftwareManagement'],\n\n // People & Organization\n 'PeopleOrganization:Permission:Access': AXPPermissionDomainModules.PeopleOrganization,\n 'PeopleOrganization:Permission:Setup': AXPPermissionDomainModules.PeopleOrganization,\n 'PeopleOrganization:Permission:ViewOrganization': ['OrganizationManagement'],\n 'PeopleOrganization:Permission:MaintainOrganization': ['OrganizationManagement'],\n 'PeopleOrganization:Permission:MaintainTeams': ['OrganizationManagement'],\n 'PeopleOrganization:Permission:DesignJobs': ['OrganizationManagement'],\n 'PeopleOrganization:Permission:MaintainEmployees': ['HumanCapitalManagement'],\n 'PeopleOrganization:Permission:ManageEmployeeActions': ['HumanCapitalManagement'],\n 'PeopleOrganization:Permission:MaintainPersons': ['PersonCore'],\n 'PeopleOrganization:Permission:MaintainAttendance': ['AttendanceManagement'],\n 'PeopleOrganization:Permission:ManageAttendanceActions': ['AttendanceManagement'],\n\n // Safety & Risk\n 'SafetyRisk:Permission:Access': AXPPermissionDomainModules.SafetyRisk,\n 'SafetyRisk:Permission:Setup': AXPPermissionDomainModules.SafetyRisk,\n 'SafetyRisk:Permission:MaintainSafety': ['WorkplaceSafetyManagement'],\n 'SafetyRisk:Permission:MaintainRisk': ['RiskManagement'],\n 'SafetyRisk:Permission:MaintainHealth': ['HealthCore'],\n 'SafetyRisk:Permission:MaintainAssessments': ['AssessmentManagement'],\n\n // Projects & Work\n 'ProjectsWork:Permission:Access': AXPPermissionDomainModules.ProjectsWork,\n 'ProjectsWork:Permission:Setup': AXPPermissionDomainModules.ProjectsWork,\n 'ProjectsWork:Permission:MaintainProjects': ['ProjectManagement'],\n 'ProjectsWork:Permission:MaintainTasks': ['TaskManagement'],\n 'ProjectsWork:Permission:ViewAllTasks': ['TaskManagement'],\n 'ProjectsWork:Permission:MaintainTimesheets': ['TimesheetManagement'],\n 'ProjectsWork:Permission:ManageTimesheetActions': ['TimesheetManagement'],\n 'ProjectsWork:Permission:ViewTimesheetReports': ['TimesheetManagement'],\n\n // Assets & Maintenance\n 'AssetsMaintenance:Permission:Access': AXPPermissionDomainModules.AssetsMaintenance,\n 'AssetsMaintenance:Permission:Setup': AXPPermissionDomainModules.AssetsMaintenance,\n 'AssetsMaintenance:Permission:MaintainAssets': ['AssetManagement'],\n 'AssetsMaintenance:Permission:MaintainMaintenance': ['MaintenanceManagement'],\n\n // Collaboration\n 'Collaboration:Permission:Access': AXPPermissionDomainModules.Collaboration,\n 'Collaboration:Permission:Setup': AXPPermissionDomainModules.Collaboration,\n 'Collaboration:Permission:MaintainConversations': ['Conversation'],\n 'Collaboration:Permission:MaintainCalendars': ['CalendarManagement'],\n 'Collaboration:Permission:MaintainMeetings': ['MeetingManagement'],\n 'Collaboration:Permission:MaintainCommunications': ['CommunicationManagement'],\n 'Collaboration:Permission:ViewBulletins': ['BulletinManagement'],\n 'Collaboration:Permission:MaintainBulletins': ['BulletinManagement'],\n 'Collaboration:Permission:PublishBulletins': ['BulletinManagement'],\n 'Collaboration:Permission:ModerateBulletinDiscussions': ['BulletinManagement'],\n 'Collaboration:Permission:MaintainReservations': ['ReservationManagement'],\n 'Collaboration:Permission:MaintainHelpDesk': ['HelpDesk'],\n\n // Content & Documents\n 'ContentDocuments:Permission:Access': AXPPermissionDomainModules.ContentDocuments,\n 'ContentDocuments:Permission:Setup': AXPPermissionDomainModules.ContentDocuments,\n 'ContentDocuments:Permission:MaintainDocuments': ['DocumentManagement'],\n 'ContentDocuments:Permission:DistributeDocuments': ['DocumentManagement'],\n 'ContentDocuments:Permission:MaintainContent': ['ContentManagement'],\n 'ContentDocuments:Permission:MaintainFormTemplates': ['AssessmentManagement'],\n\n // Insights & Reporting\n 'InsightsReporting:Permission:Access': AXPPermissionDomainModules.InsightsReporting,\n 'InsightsReporting:Permission:Setup': AXPPermissionDomainModules.InsightsReporting,\n 'InsightsReporting:Permission:MaintainReports': ['ReportManagement'],\n 'InsightsReporting:Permission:MaintainData': ['DataManagement'],\n 'InsightsReporting:Permission:ViewActivityInsight': ['ActivityInsight'],\n 'InsightsReporting:Permission:ManageActivityInsight': ['ActivityInsight'],\n 'InsightsReporting:Permission:MaintainTestResults': ['TestManagement'],\n\n // Sales & Customers / Commerce\n 'SalesCustomers:Permission:Access': AXPPermissionDomainModules.SalesCustomers,\n 'SalesCustomers:Permission:Setup': AXPPermissionDomainModules.SalesCustomers,\n 'SalesCustomers:Permission:MaintainCustomers': ['CustomerManagement'],\n 'SalesCustomers:Permission:MaintainSales': ['CustomerManagement'],\n 'SalesCustomers:Permission:MaintainProducts': ['ProductCatalog'],\n 'SalesCustomers:Permission:MaintainOrders': ['OrderManagement'],\n 'SalesCustomers:Permission:MaintainSubscriptions': ['SubscriptionManagement'],\n\n // Procurement\n 'Procurement:Permission:Access': AXPPermissionDomainModules.Procurement,\n 'Procurement:Permission:Setup': AXPPermissionDomainModules.Procurement,\n 'Procurement:Permission:MaintainSuppliers': ['SupplierManagement'],\n 'Procurement:Permission:MaintainProcurement': ['ProcurementManagement'],\n\n // Learning\n 'Learning:Permission:Access': AXPPermissionDomainModules.Learning,\n 'Learning:Permission:Setup': AXPPermissionDomainModules.Learning,\n 'Learning:Permission:MaintainLearning': ['LearningManagement'],\n\n // Finance\n 'Finance:Permission:Access': AXPPermissionDomainModules.Finance,\n 'Finance:Permission:Setup': AXPPermissionDomainModules.Finance,\n 'Finance:Permission:MaintainFinance': ['FinancialCore'],\n} as const;\n\n//#endregion\n\n//#region ----- Helpers -----\n\n/**\n * Returns edition module names for a permission key.\n * Unknown keys fall back to the legacy `{Prefix}:…` module-prefix convention.\n */\nexport function resolvePermissionModules(permissionKey: string): readonly string[] {\n const mapped = AXPPermissionKeyModules[permissionKey];\n if (mapped?.length) {\n return mapped;\n }\n\n // Dynamic keys (e.g. AiManagement assist helpers) or legacy Module:Permission:…\n const separatorIndex = permissionKey.indexOf(':');\n if (separatorIndex <= 0) {\n return [];\n }\n return [permissionKey.slice(0, separatorIndex)];\n}\n\n/**\n * True when the permission is available for the enabled edition modules (ANY match).\n */\nexport function isPermissionEnabledForModules(\n permissionKey: string,\n enabledModules: readonly string[],\n): boolean {\n if (!enabledModules.length) {\n return false;\n }\n const enabled = new Set(enabledModules);\n return resolvePermissionModules(permissionKey).some((moduleName) => enabled.has(moduleName));\n}\n\n//#endregion\n","export enum AXMLockSystemSettings {\n LockSystem = 'Common:Setting:LockSystem.Enabled',\n}\n\nexport enum AXMCommonSettings {\n QuickSearchEnabled = 'Common:Setting:Entity.QuickSearchEnabled',\n}\n","//#region ----- Version history platform settings -----\n\nexport enum AXPVersionHistorySettings {\n RetentionEnabled = 'Common:Setting:VersionHistory.Retention.Enabled',\n RetentionPeriodDays = 'Common:Setting:VersionHistory.Retention.PeriodDays',\n RetentionBatchSize = 'Common:Setting:VersionHistory.Retention.BatchSize',\n RetentionPurgeCron = 'Common:Setting:VersionHistory.Retention.PurgeCron',\n SkipEmptyPatches = 'Common:Setting:VersionHistory.SkipEmptyPatches',\n}\n\nexport const AXP_VERSION_HISTORY_SETTING_DEFAULTS = {\n [AXPVersionHistorySettings.RetentionEnabled]: true,\n [AXPVersionHistorySettings.RetentionPeriodDays]: 365,\n [AXPVersionHistorySettings.RetentionBatchSize]: 500,\n [AXPVersionHistorySettings.RetentionPurgeCron]: '0 3 * * *',\n [AXPVersionHistorySettings.SkipEmptyPatches]: true,\n} as const;\n\n//#endregion\n","const config = {\n i18n: 'common',\n module: 'Common',\n};\n\nexport const RootConfig = {\n config,\n module: {\n route: 'common',\n name: config.module,\n title: '@general:common.module.title',\n icon: 'fa-light fa-file-invoice',\n },\n entities: {\n recordLock: {\n name: 'RecordLock',\n title: 'Record Lock',\n titlePlural: 'Record Locks',\n icon: 'fa-light fa-lock',\n source: `${config.module}.RecordLock`,\n },\n versionStream: {\n name: 'VersionStream',\n title: 'Version Stream',\n titlePlural: 'Version Streams',\n icon: 'fa-light fa-code-branch',\n source: `${config.module}.VersionStream`,\n },\n versionEntry: {\n name: 'VersionEntry',\n title: 'Version Entry',\n titlePlural: 'Version Entries',\n icon: 'fa-light fa-clock-rotate-left',\n source: `${config.module}.VersionEntry`,\n },\n },\n} as const;\n","//#region ---- Imports ----\n\nimport { AXPModuleManifest } from '@acorex-platform/framework-shared/core';\nimport { RootConfig } from './root-config';\n\n//#endregion\n\n//#region ---- Manifest Definition ----\n\n/**\n * Common Module Manifest.\n * Defines module metadata, features, and provider references.\n */\nexport const CommonManifest: AXPModuleManifest = {\n name: RootConfig.module.name,\n version: '1.0.0',\n title: RootConfig.module.title,\n icon: RootConfig.module.icon,\n i18n: RootConfig.config.i18n,\n type: 'platform',\n domain: 'platform',\n required: true,\n\n // Module dependencies (optional)\n};\n\n//#endregion\n\n","//#region ----- Entity versioning (publication) constants -----\n\n/** Entity plugin name. Independent from the `history` plugin. */\nexport const AXP_VERSIONING_PLUGIN_NAME = 'versioning';\n\nexport const AXPVersioningField = {\n Version: 'version',\n VersionId: 'versionId',\n VersioningEnabled: 'versioningEnabled',\n SourceId: 'sourceId',\n VersionNumber: 'versionNumber',\n VersioningStatus: 'versioningStatus',\n} as const;\n\nexport const AXPVersioningStatus = {\n Draft: 'draft',\n Published: 'published',\n} as const;\n\nexport type AXPVersioningStatusValue =\n (typeof AXPVersioningStatus)[keyof typeof AXPVersioningStatus];\n\nexport const AXP_VERSIONING_ERROR_CODES = {\n DraftExists: 'VERSIONING_DRAFT_EXISTS',\n NotEligible: 'VERSIONING_NOT_ELIGIBLE',\n PublishedImmutable: 'VERSIONING_PUBLISHED_IMMUTABLE',\n HostContentLocked: 'VERSIONING_HOST_CONTENT_LOCKED',\n NoDraft: 'VERSIONING_NO_DRAFT',\n InvalidPublish: 'VERSIONING_INVALID_PUBLISH',\n} as const;\n\nexport const AXP_VERSIONING_ERROR_I18N: Record<string, string> = {\n [AXP_VERSIONING_ERROR_CODES.DraftExists]: '@general:errors.versioning.draft-exists',\n [AXP_VERSIONING_ERROR_CODES.NotEligible]: '@general:errors.versioning.not-eligible',\n [AXP_VERSIONING_ERROR_CODES.PublishedImmutable]: '@general:errors.versioning.published-immutable',\n [AXP_VERSIONING_ERROR_CODES.HostContentLocked]: '@general:errors.versioning.host-content-locked',\n [AXP_VERSIONING_ERROR_CODES.NoDraft]: '@general:errors.versioning.no-draft',\n [AXP_VERSIONING_ERROR_CODES.InvalidPublish]: '@general:errors.versioning.invalid-publish',\n};\n\n/** Fields that live only on the host published row. */\nexport const AXP_VERSIONING_HOST_OWN_FIELDS = new Set<string>([\n AXPVersioningField.Version,\n AXPVersioningField.VersionId,\n AXPVersioningField.VersioningEnabled,\n]);\n\n/** Fields that live only on the companion version row. */\nexport const AXP_VERSIONING_COMPANION_OWN_FIELDS = new Set<string>([\n AXPVersioningField.SourceId,\n AXPVersioningField.VersionNumber,\n AXPVersioningField.VersioningStatus,\n]);\n\n/**\n * Host fields that may change while a published version is current\n * (move in a folder, entity binding). Content fields are blocked when versioning is on.\n */\nexport const AXP_VERSIONING_STRUCTURAL_FIELDS = new Set<string>([\n 'parentId',\n 'refType',\n 'refId',\n 'statusId',\n 'status',\n 'scopeInfo',\n 'stateInfo',\n 'auditInfo',\n 'id',\n]);\n\nexport function versionCompanionEntityName(hostEntityName: string): string {\n return `${hostEntityName}Version`;\n}\n\nexport function hostEntityNameFromCompanion(companionEntityName: string): string | null {\n if (!companionEntityName.endsWith('Version')) {\n return null;\n }\n if (companionEntityName.endsWith('VersionEntry') || companionEntityName.endsWith('VersionStream')) {\n return null;\n }\n return companionEntityName.slice(0, -'Version'.length);\n}\n\nexport function isVersionCompanionEntityName(entityName: string): boolean {\n return hostEntityNameFromCompanion(entityName) != null;\n}\n\n//#endregion\n","//#region ----- Entity versioning plugin types -----\n\nimport type { AXPExpression } from '@acorex-platform/framework-shared/core';\nimport type { AXPEntityDetailDto } from '@acorex-platform/framework-shared/entity';\n\nexport interface AXPVersioningPluginOptions {\n /**\n * Host field that marks whether this record uses draft/publish versioning.\n * Default: `versioningEnabled`.\n */\n enabledField?: string;\n /**\n * Optional expression evaluated against the host row (client action hide).\n * Server still uses {@link enabledField}.\n */\n enabledWhen?: AXPExpression | string;\n}\n\n/** Host row for versioning commands (generic plugin; extra fields allowed). */\nexport interface AXPVersioningHostDto extends AXPEntityDetailDto<string> {\n version?: number;\n versionId?: string;\n versioningEnabled?: boolean;\n}\n\n/** Companion `{Entity}Version` row. Create may send only `sourceId`. */\nexport interface AXPVersioningCompanionDto extends AXPEntityDetailDto<string> {\n sourceId?: string;\n versionNumber?: number;\n versioningStatus?: string;\n}\n\n//#endregion\n","//#region ---- Contracts barrel ----\n\nexport * from './catalog-scope.keys';\nexport * from './commands.keys';\nexport * from './features.keys';\nexport * from './menu.keys';\nexport * from './permission-group.keys';\nexport * from './permission-display.util';\nexport * from './permission-module.map';\nexport * from './settings.keys';\nexport * from './version-history.settings.keys';\n\nexport * from './root-config';\nexport * from './manifest';\nexport * from './versioning.constants';\nexport * from './versioning.types';\n\n//#endregion\n\n// Entity layout factories live in server; keep barrel as empty module for compatibility.\nexport {};\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-common-client-contracts.mjs","sources":["../../../../libs/modules/common/contracts/src/catalog-scope.keys.ts","../../../../libs/modules/common/contracts/src/commands.keys.ts","../../../../libs/modules/common/contracts/src/features.keys.ts","../../../../libs/modules/common/contracts/src/menu.keys.ts","../../../../libs/modules/common/contracts/src/permission-group.keys.ts","../../../../libs/modules/common/contracts/src/permission-display.util.ts","../../../../libs/modules/common/contracts/src/permission-module.map.ts","../../../../libs/modules/common/contracts/src/settings.keys.ts","../../../../libs/modules/common/contracts/src/version-history.settings.keys.ts","../../../../libs/modules/common/contracts/src/root-config.ts","../../../../libs/modules/common/contracts/src/manifest.ts","../../../../libs/modules/common/contracts/src/versioning.constants.ts","../../../../libs/modules/common/contracts/src/versioning.types.ts","../../../../libs/modules/common/contracts/src/index.ts","../../../../libs/modules/common/contracts/src/acorex-platform-module-common-client-contracts.ts"],"sourcesContent":["/** Cross-module catalog scope for shared questionnaires, question bank items, and workflows. */\nexport const COMMON_CATALOG_SCOPE_GENERAL = 'common.general';\n","//#region ---- Command keys ----\n\nexport const AXPCommonCommandKeys = {\n Archive: {\n Archive: 'archive-entity',\n Restore: 'restore-archive-entity',\n BulkArchive: 'bulk-archive-entity',\n BulkRestore: 'bulk-restore-archive-entity',\n },\n Disable: {\n Disable: 'disable-entity',\n Enable: 'enable-entity',\n BulkDisable: 'bulk-disable-entity',\n BulkEnable: 'bulk-enable-entity',\n },\n Clone: {\n Clone: 'clone-entity',\n },\n Compare: {\n EntityRecords: 'compare-entity-records',\n EntityRecordVersions: 'compare-entity-record-versions',\n },\n GlobalSearch: {\n Open: 'global-search',\n },\n Lock: {\n Lock: 'lock-popup',\n Unlock: 'unlock-confirm',\n },\n Versioning: {\n CreateDraft: 'create-entity-version-draft',\n Publish: 'publish-entity-version',\n DeleteDraft: 'delete-entity-version-draft',\n ShowHistory: 'show-entity-version-history',\n },\n} as const;\n\n//#endregion\n","export const AXPCommonFeatureKeys = {\n GlobalSearch: 'Common:Feature:GlobalSearch',\n AdvancedExport: 'Common:Feature:AdvancedExport',\n ActivityLog: 'Common:Feature:ActivityLog',\n DataImport: 'Common:Feature:DataImport',\n BulkOperations: 'Common:Feature:BulkOperations',\n AdvancedFiltering: 'Common:Feature:AdvancedFiltering',\n DataSynchronization: 'Common:Feature:DataSynchronization',\n} as const;\n\n","export const AXPCommonMenuKeys = {\n Home: 'Common:Menu:Home',\n Administration: 'Common:Menu:Administration',\n Help: 'Common:Menu:Help',\n Configuration: 'Common:Menu:Configuration',\n Contacts: 'Common:Menu:Contacts',\n Platform: 'Common:Menu:Platform',\n /** Administration > Publishing (Promotions, Page Builder, Dashboards, Announcements) */\n Content: 'Common:Menu:Administration:Content',\n /** Administration > Monitoring (Communications, Jobs) */\n Monitoring: 'Common:Menu:Administration:Monitoring',\n /** Administration > Workflows (Workflow Definitions, Instances, Studio, Activities) */\n Workflows: 'Common:Menu:Administration:Workflows',\n /** Commerce (Products, Orders, Supplier Products) */\n Commerce: 'Common:Menu:Commerce',\n /** Configuration > Meeting (Meeting Types, Meeting Role Types) */\n Meeting: 'Common:Menu:Configuration:Meeting',\n /** Organization (Teams, Positions, Employees, Leave - merged with Staff) */\n Organization: 'Common:Menu:Organization',\n /** Configuration > Organization (Job Definitions, Employment Types, etc.) */\n OrganizationConfig: 'Common:Menu:Configuration:Organization',\n /** Configuration > Help Desk (Issue Types) */\n HelpDeskConfig: 'Common:Menu:Configuration:HelpDesk',\n /** Configuration > Document Management (Document Types) */\n DocumentManagementConfig: 'Common:Menu:Configuration:DocumentManagement',\n /** Configuration > Forms & Assessments (Question Bank, Questionnaires, Form Templates) */\n FormsAndAssessments: 'Common:Menu:Configuration:FormsAndAssessments',\n /** Configuration > Reservation (Types, Statuses, Classes) */\n ReservationConfig: 'Common:Menu:Configuration:Reservation',\n /** Configuration > Date and Time (Timezones, Calendars, Calendar Event Types) */\n DateAndTime: 'Common:Menu:Configuration:DateAndTime',\n /** Configuration > Region and Locale (Location Types, Geographic Regions, Languages) */\n Region: 'Common:Menu:Configuration:Region',\n /** Configuration > People and Demographics (personal reference data) */\n PeopleAndDemographics: 'Common:Menu:Configuration:PeopleAndDemographics',\n /** Configuration > Health (health reference data and catalogs) */\n Health: 'Common:Menu:Configuration:Health',\n /** Configuration > Projects (Project + Task reference data) */\n Projects: 'Common:Menu:Configuration:Projects',\n /** Configuration > Scheduling and Events (Meeting + Reservation types) */\n SchedulingAndEvents: 'Common:Menu:Configuration:SchedulingAndEvents',\n /** Configuration > Data and Content (Documents + Data Definitions) */\n DataAndContent: 'Common:Menu:Configuration:DataAndContent',\n /** Configuration > Platform Definitions (Entity / Command / Query / Plugin / Widget catalogs) */\n PlatformDefinitions: 'Common:Menu:Configuration:PlatformDefinitions',\n /** Configuration > Intelligence (AI Management) */\n AiManagementConfig: 'Common:Menu:Configuration:AiManagement',\n /** Plant & Equipment (top-level menu group) */\n PlantEquipment: 'Common:Menu:PlantEquipment',\n} as const;\n","/**\n * Shared permission group ids for the role UI.\n * Modules contribute capabilities via addGroup(these keys) so domains stay aligned\n * (same nesting idea as {@link AXPCommonCommandKeys}).\n *\n * Format: `Common:PermissionGroup:{Domain}` or `Common:PermissionGroup:{Root}:{Section}`\n * - `Domain.Root` — left-nav root group id\n * - `Domain.Section` — optional right-panel section under that root\n * Root `order` values follow the catalog in permission-design.mdc (lower first).\n * See `.cursor/rules/core-rules/permission-design.mdc`.\n *\n * @example\n * groups.SalesCustomers.Root\n * groups.SalesCustomers.Customers\n * groups.SuppliersProcurement.Root\n * groups.Administration.SecurityAccess\n */\nexport const AXPCommonPermissionGroupKeys = {\n //#region ---- Business domains ----\n\n PeopleOrganization: {\n Root: 'Common:PermissionGroup:PeopleOrganization',\n Structure: 'Common:PermissionGroup:PeopleOrganization:Structure',\n Workforce: 'Common:PermissionGroup:PeopleOrganization:Workforce',\n Attendance: 'Common:PermissionGroup:PeopleOrganization:Attendance',\n },\n Learning: {\n Root: 'Common:PermissionGroup:Learning',\n },\n SafetyRisk: {\n Root: 'Common:PermissionGroup:SafetyRisk',\n WorkplaceSafety: 'Common:PermissionGroup:SafetyRisk:WorkplaceSafety',\n Risk: 'Common:PermissionGroup:SafetyRisk:Risk',\n Health: 'Common:PermissionGroup:SafetyRisk:Health',\n Assessments: 'Common:PermissionGroup:SafetyRisk:Assessments',\n },\n Finance: {\n Root: 'Common:PermissionGroup:Finance',\n },\n SalesCustomers: {\n Root: 'Common:PermissionGroup:SalesCustomers',\n Customers: 'Common:PermissionGroup:SalesCustomers:Customers',\n Sales: 'Common:PermissionGroup:SalesCustomers:Sales',\n Products: 'Common:PermissionGroup:SalesCustomers:Products',\n Orders: 'Common:PermissionGroup:SalesCustomers:Orders',\n Subscriptions: 'Common:PermissionGroup:SalesCustomers:Subscriptions',\n },\n SuppliersProcurement: {\n Root: 'Common:PermissionGroup:SuppliersProcurement',\n SuppliersSubcontractors: 'Common:PermissionGroup:SuppliersProcurement:SuppliersSubcontractors',\n },\n ProjectsWork: {\n Root: 'Common:PermissionGroup:ProjectsWork',\n Projects: 'Common:PermissionGroup:ProjectsWork:Projects',\n Tasks: 'Common:PermissionGroup:ProjectsWork:Tasks',\n TimeTracking: 'Common:PermissionGroup:ProjectsWork:TimeTracking',\n },\n AssetsMaintenance: {\n Root: 'Common:PermissionGroup:AssetsMaintenance',\n Assets: 'Common:PermissionGroup:AssetsMaintenance:Assets',\n Maintenance: 'Common:PermissionGroup:AssetsMaintenance:Maintenance',\n },\n Collaboration: {\n Root: 'Common:PermissionGroup:Collaboration',\n Conversations: 'Common:PermissionGroup:Collaboration:Conversations',\n Scheduling: 'Common:PermissionGroup:Collaboration:Scheduling',\n Communications: 'Common:PermissionGroup:Collaboration:Communications',\n HelpDesk: 'Common:PermissionGroup:Collaboration:HelpDesk',\n },\n ContentDocuments: {\n Root: 'Common:PermissionGroup:ContentDocuments',\n Documents: 'Common:PermissionGroup:ContentDocuments:Documents',\n Content: 'Common:PermissionGroup:ContentDocuments:Content',\n FormTemplates: 'Common:PermissionGroup:ContentDocuments:FormTemplates',\n },\n InsightsReporting: {\n Root: 'Common:PermissionGroup:InsightsReporting',\n Reports: 'Common:PermissionGroup:InsightsReporting:Reports',\n ActivityInsight: 'Common:PermissionGroup:InsightsReporting:ActivityInsight',\n Data: 'Common:PermissionGroup:InsightsReporting:Data',\n },\n\n //#endregion\n\n //#region ---- Platform roots ----\n\n ApplicationsPlatform: {\n Root: 'Common:PermissionGroup:ApplicationsPlatform',\n Applications: 'Common:PermissionGroup:ApplicationsPlatform:Applications',\n TenancyShell: 'Common:PermissionGroup:ApplicationsPlatform:TenancyShell',\n Configuration: 'Common:PermissionGroup:ApplicationsPlatform:Configuration',\n DevTools: 'Common:PermissionGroup:ApplicationsPlatform:DevTools',\n },\n Administration: {\n Root: 'Common:PermissionGroup:Administration',\n SecurityAccess: 'Common:PermissionGroup:Administration:SecurityAccess',\n Settings: 'Common:PermissionGroup:Administration:Settings',\n Integrations: 'Common:PermissionGroup:Administration:Integrations',\n Workflow: 'Common:PermissionGroup:Administration:Workflow',\n Rules: 'Common:PermissionGroup:Administration:Rules',\n Ai: 'Common:PermissionGroup:Administration:Ai',\n Dashboards: 'Common:PermissionGroup:Administration:Dashboards',\n Jobs: 'Common:PermissionGroup:Administration:Jobs',\n Observability: 'Common:PermissionGroup:Administration:Observability',\n },\n\n //#endregion\n} as const;\n","//#region ----- Permission display keys -----\n\n/**\n * Maps conceptual permission keys (`Domain:Permission:Capability`) to the\n * shared `@common:{domain}.permissions.{capability}.(title|description)` i18n\n * keys used by client permission-definition providers.\n */\nexport function resolvePermissionI18nKeys(\n permissionKey: string,\n): { titleKey: string; descriptionKey: string } | null {\n const parts = permissionKey.split(':');\n if (parts.length < 3 || parts[1] !== 'Permission') {\n return null;\n }\n\n const domainKebab = pascalToKebab(parts[0] ?? '');\n const capabilityKebab = pascalToKebab(parts[parts.length - 1] ?? '');\n if (!domainKebab || !capabilityKebab) {\n return null;\n }\n\n const base = `@common:${domainKebab}.permissions.${capabilityKebab}`;\n return {\n titleKey: `${base}.title`,\n descriptionKey: `${base}.description`,\n };\n}\n\n/** Fallback label when no i18n key can be derived (last capability segment). */\nexport function humanizePermissionCapability(permissionKey: string): string {\n const capability = permissionKey.split(':').pop() ?? permissionKey;\n return capability\n .replace(/([a-z0-9])([A-Z])/g, '$1 $2')\n .replace(/([A-Z]+)([A-Z][a-z])/g, '$1 $2')\n .trim();\n}\n\n/**\n * Value for report/UI display columns: prefer the i18n title key (translated by\n * text widgets), otherwise a humanized capability label.\n */\nexport function resolvePermissionTitleDisplay(permissionKey: string): string {\n return resolvePermissionI18nKeys(permissionKey)?.titleKey ?? humanizePermissionCapability(permissionKey);\n}\n\nfunction pascalToKebab(value: string): string {\n return value\n .replace(/([a-z0-9])([A-Z])/g, '$1-$2')\n .replace(/([A-Z]+)([A-Z][a-z])/g, '$1-$2')\n .replace(/_/g, '-')\n .toLowerCase()\n .replace(/-+/g, '-')\n .replace(/^-|-$/g, '');\n}\n\n//#endregion\n","//#region ----- Types -----\n\n/**\n * Resolves which edition module name(s) a conceptual permission key belongs to.\n * Used to filter role grants / permission editor by application edition modules.\n */\nexport type AXPPermissionModulesResolver = (permissionKey: string) => readonly string[];\n\n//#endregion\n\n//#region ----- Domain → modules (Access / Setup = any-module) -----\n\n/**\n * Contributing Nx / edition module names per conceptual domain prefix.\n * Access and Setup keys use this full list (match if ANY module is enabled).\n */\nexport const AXPPermissionDomainModules = {\n Administration: [\n 'SecurityManagement',\n 'IntegrationManagement',\n 'WorkflowManagement',\n 'RuleEngineManagement',\n 'AiManagement',\n 'DashboardManagement',\n 'BackgroundJobManagement',\n 'SystemInsight',\n ],\n /**\n * Platform Console catalog modules for Access ANY-match.\n * SettingsManagement is intentionally omitted — product apps enable it for\n * MaintainTenantSettings without unlocking Applications & Platform Access.\n */\n ApplicationsPlatform: [\n 'ApplicationManagement',\n 'TenantManagement',\n 'PlatformManagement',\n 'AppBuilder',\n 'IdentifierManagement',\n 'LocaleManagement',\n 'PlatformDevTools',\n ],\n PeopleOrganization: [\n 'OrganizationManagement',\n 'HumanCapitalManagement',\n 'PersonCore',\n 'AttendanceManagement',\n 'LocationManagement',\n ],\n SafetyRisk: [\n 'WorkplaceSafetyManagement',\n 'RiskManagement',\n 'HealthCore',\n 'AssessmentManagement',\n ],\n ProjectsWork: ['ProjectManagement', 'TaskManagement', 'TimesheetManagement'],\n AssetsMaintenance: ['AssetManagement', 'MaintenanceManagement', 'MeasurementCore'],\n Collaboration: [\n 'Conversation',\n 'CalendarManagement',\n 'MeetingManagement',\n 'CommunicationManagement',\n 'BulletinManagement',\n 'ReservationManagement',\n 'HelpDesk',\n 'ContactCore',\n ],\n ContentDocuments: ['DocumentManagement', 'ContentManagement', 'AssessmentManagement'],\n InsightsReporting: ['ReportManagement', 'DataManagement', 'ActivityInsight', 'TestManagement'],\n SalesCustomers: [\n 'CustomerManagement',\n 'ProductCatalog',\n 'OrderManagement',\n 'SubscriptionManagement',\n 'BusinessCore',\n ],\n Procurement: ['SupplierManagement', 'ProcurementManagement'],\n Learning: ['LearningManagement'],\n Finance: ['FinancialCore'],\n} as const;\n\n//#endregion\n\n//#region ----- Permission key → modules -----\n\n/**\n * Owner / contributing modules for each conceptual permission key.\n * - Access & Setup → all domain modules (any-module match)\n * - Unique Maintain/Manage/View/… → registering owner module only\n */\nexport const AXPPermissionKeyModules: Readonly<Record<string, readonly string[]>> = {\n // Administration\n 'Administration:Permission:Access': AXPPermissionDomainModules.Administration,\n 'Administration:Permission:MaintainUsersAndRoles': ['SecurityManagement'],\n 'Administration:Permission:ManageSessions': ['SecurityManagement'],\n 'Administration:Permission:MaintainPolicies': ['SecurityManagement'],\n 'Administration:Permission:ViewIntegrations': ['IntegrationManagement'],\n 'Administration:Permission:MaintainConnections': ['IntegrationManagement'],\n 'Administration:Permission:ManageIntegrationActions': ['IntegrationManagement'],\n 'Administration:Permission:MaintainWorkflows': ['WorkflowManagement'],\n 'Administration:Permission:ManageWorkflowActions': ['WorkflowManagement'],\n 'Administration:Permission:ViewRules': ['RuleEngineManagement'],\n 'Administration:Permission:MaintainRules': ['RuleEngineManagement'],\n 'Administration:Permission:ManageRuleActions': ['RuleEngineManagement'],\n 'Administration:Permission:MaintainAi': ['AiManagement'],\n 'Administration:Permission:UseAiAssist': ['AiManagement'],\n 'Administration:Permission:MaintainDashboards': ['DashboardManagement'],\n 'Administration:Permission:ViewJobs': ['BackgroundJobManagement'],\n 'Administration:Permission:ManageJobActions': ['BackgroundJobManagement'],\n 'Administration:Permission:ViewObservability': ['SystemInsight'],\n 'Administration:Permission:MaintainObservability': ['SystemInsight'],\n\n // Applications & Platform\n 'ApplicationsPlatform:Permission:Access': AXPPermissionDomainModules.ApplicationsPlatform,\n 'ApplicationsPlatform:Permission:MaintainApplications': ['ApplicationManagement'],\n 'ApplicationsPlatform:Permission:MaintainTenants': ['TenantManagement'],\n 'ApplicationsPlatform:Permission:MaintainPlatformShell': ['PlatformManagement'],\n 'ApplicationsPlatform:Permission:MaintainLandingPages': ['AppBuilder'],\n 'ApplicationsPlatform:Permission:MaintainIdentifiers': ['IdentifierManagement'],\n 'ApplicationsPlatform:Permission:MaintainTenantSettings': ['SettingsManagement'],\n /** Platform-wide settings — Platform Console only (not product-app SettingsManagement). */\n 'ApplicationsPlatform:Permission:MaintainPlatformSettings': ['PlatformManagement'],\n 'ApplicationsPlatform:Permission:MaintainLocales': ['LocaleManagement'],\n 'ApplicationsPlatform:Permission:UseDevTools': ['PlatformDevTools'],\n 'ApplicationsPlatform:Permission:MaintainSoftwareDefinitions': ['SoftwareManagement'],\n\n // People & Organization\n 'PeopleOrganization:Permission:Access': AXPPermissionDomainModules.PeopleOrganization,\n 'PeopleOrganization:Permission:Setup': AXPPermissionDomainModules.PeopleOrganization,\n 'PeopleOrganization:Permission:ViewOrganization': ['OrganizationManagement'],\n 'PeopleOrganization:Permission:MaintainOrganization': ['OrganizationManagement'],\n 'PeopleOrganization:Permission:MaintainTeams': ['OrganizationManagement'],\n 'PeopleOrganization:Permission:DesignJobs': ['OrganizationManagement'],\n 'PeopleOrganization:Permission:MaintainEmployees': ['HumanCapitalManagement'],\n 'PeopleOrganization:Permission:ManageEmployeeActions': ['HumanCapitalManagement'],\n 'PeopleOrganization:Permission:MaintainPersons': ['PersonCore'],\n 'PeopleOrganization:Permission:MaintainAttendance': ['AttendanceManagement'],\n 'PeopleOrganization:Permission:ManageAttendanceActions': ['AttendanceManagement'],\n\n // Safety & Risk\n 'SafetyRisk:Permission:Access': AXPPermissionDomainModules.SafetyRisk,\n 'SafetyRisk:Permission:Setup': AXPPermissionDomainModules.SafetyRisk,\n 'SafetyRisk:Permission:MaintainSafety': ['WorkplaceSafetyManagement'],\n 'SafetyRisk:Permission:MaintainRisk': ['RiskManagement'],\n 'SafetyRisk:Permission:MaintainHealth': ['HealthCore'],\n 'SafetyRisk:Permission:MaintainAssessments': ['AssessmentManagement'],\n\n // Projects & Work\n 'ProjectsWork:Permission:Access': AXPPermissionDomainModules.ProjectsWork,\n 'ProjectsWork:Permission:Setup': AXPPermissionDomainModules.ProjectsWork,\n 'ProjectsWork:Permission:MaintainProjects': ['ProjectManagement'],\n 'ProjectsWork:Permission:MaintainTasks': ['TaskManagement'],\n 'ProjectsWork:Permission:ViewAllTasks': ['TaskManagement'],\n 'ProjectsWork:Permission:MaintainTimesheets': ['TimesheetManagement'],\n 'ProjectsWork:Permission:ManageTimesheetActions': ['TimesheetManagement'],\n 'ProjectsWork:Permission:ViewTimesheetReports': ['TimesheetManagement'],\n\n // Assets & Maintenance\n 'AssetsMaintenance:Permission:Access': AXPPermissionDomainModules.AssetsMaintenance,\n 'AssetsMaintenance:Permission:Setup': AXPPermissionDomainModules.AssetsMaintenance,\n 'AssetsMaintenance:Permission:MaintainAssets': ['AssetManagement'],\n 'AssetsMaintenance:Permission:MaintainMaintenance': ['MaintenanceManagement'],\n\n // Collaboration\n 'Collaboration:Permission:Access': AXPPermissionDomainModules.Collaboration,\n 'Collaboration:Permission:Setup': AXPPermissionDomainModules.Collaboration,\n 'Collaboration:Permission:MaintainConversations': ['Conversation'],\n 'Collaboration:Permission:MaintainCalendars': ['CalendarManagement'],\n 'Collaboration:Permission:MaintainMeetings': ['MeetingManagement'],\n 'Collaboration:Permission:MaintainCommunications': ['CommunicationManagement'],\n 'Collaboration:Permission:ViewBulletins': ['BulletinManagement'],\n 'Collaboration:Permission:MaintainBulletins': ['BulletinManagement'],\n 'Collaboration:Permission:PublishBulletins': ['BulletinManagement'],\n 'Collaboration:Permission:ModerateBulletinDiscussions': ['BulletinManagement'],\n 'Collaboration:Permission:MaintainReservations': ['ReservationManagement'],\n 'Collaboration:Permission:MaintainHelpDesk': ['HelpDesk'],\n\n // Content & Documents\n 'ContentDocuments:Permission:Access': AXPPermissionDomainModules.ContentDocuments,\n 'ContentDocuments:Permission:Setup': AXPPermissionDomainModules.ContentDocuments,\n 'ContentDocuments:Permission:MaintainDocuments': ['DocumentManagement'],\n 'ContentDocuments:Permission:MaintainVersioning': ['DocumentManagement'],\n 'ContentDocuments:Permission:DistributeDocuments': ['DocumentManagement'],\n 'ContentDocuments:Permission:MaintainContent': ['ContentManagement'],\n 'ContentDocuments:Permission:MaintainFormTemplates': ['AssessmentManagement'],\n\n // Insights & Reporting\n 'InsightsReporting:Permission:Access': AXPPermissionDomainModules.InsightsReporting,\n 'InsightsReporting:Permission:Setup': AXPPermissionDomainModules.InsightsReporting,\n 'InsightsReporting:Permission:MaintainReports': ['ReportManagement'],\n 'InsightsReporting:Permission:MaintainData': ['DataManagement'],\n 'InsightsReporting:Permission:ViewActivityInsight': ['ActivityInsight'],\n 'InsightsReporting:Permission:ManageActivityInsight': ['ActivityInsight'],\n 'InsightsReporting:Permission:MaintainTestResults': ['TestManagement'],\n\n // Sales & Customers / Commerce\n 'SalesCustomers:Permission:Access': AXPPermissionDomainModules.SalesCustomers,\n 'SalesCustomers:Permission:Setup': AXPPermissionDomainModules.SalesCustomers,\n 'SalesCustomers:Permission:MaintainCustomers': ['CustomerManagement'],\n 'SalesCustomers:Permission:MaintainSales': ['CustomerManagement'],\n 'SalesCustomers:Permission:MaintainProducts': ['ProductCatalog'],\n 'SalesCustomers:Permission:MaintainOrders': ['OrderManagement'],\n 'SalesCustomers:Permission:MaintainSubscriptions': ['SubscriptionManagement'],\n\n // Procurement\n 'Procurement:Permission:Access': AXPPermissionDomainModules.Procurement,\n 'Procurement:Permission:Setup': AXPPermissionDomainModules.Procurement,\n 'Procurement:Permission:MaintainSuppliers': ['SupplierManagement'],\n 'Procurement:Permission:MaintainProcurement': ['ProcurementManagement'],\n\n // Learning\n 'Learning:Permission:Access': AXPPermissionDomainModules.Learning,\n 'Learning:Permission:Setup': AXPPermissionDomainModules.Learning,\n 'Learning:Permission:MaintainLearning': ['LearningManagement'],\n\n // Finance\n 'Finance:Permission:Access': AXPPermissionDomainModules.Finance,\n 'Finance:Permission:Setup': AXPPermissionDomainModules.Finance,\n 'Finance:Permission:MaintainFinance': ['FinancialCore'],\n} as const;\n\n//#endregion\n\n//#region ----- Helpers -----\n\n/**\n * Returns edition module names for a permission key.\n * Unknown keys fall back to the legacy `{Prefix}:…` module-prefix convention.\n */\nexport function resolvePermissionModules(permissionKey: string): readonly string[] {\n const mapped = AXPPermissionKeyModules[permissionKey];\n if (mapped?.length) {\n return mapped;\n }\n\n // Dynamic keys (e.g. AiManagement assist helpers) or legacy Module:Permission:…\n const separatorIndex = permissionKey.indexOf(':');\n if (separatorIndex <= 0) {\n return [];\n }\n return [permissionKey.slice(0, separatorIndex)];\n}\n\n/**\n * True when the permission is available for the enabled edition modules (ANY match).\n */\nexport function isPermissionEnabledForModules(\n permissionKey: string,\n enabledModules: readonly string[],\n): boolean {\n if (!enabledModules.length) {\n return false;\n }\n const enabled = new Set(enabledModules);\n return resolvePermissionModules(permissionKey).some((moduleName) => enabled.has(moduleName));\n}\n\n//#endregion\n","export enum AXMLockSystemSettings {\n LockSystem = 'Common:Setting:LockSystem.Enabled',\n}\n\nexport enum AXMCommonSettings {\n QuickSearchEnabled = 'Common:Setting:Entity.QuickSearchEnabled',\n}\n","//#region ----- Version history platform settings -----\n\nexport enum AXPVersionHistorySettings {\n RetentionEnabled = 'Common:Setting:VersionHistory.Retention.Enabled',\n RetentionPeriodDays = 'Common:Setting:VersionHistory.Retention.PeriodDays',\n RetentionBatchSize = 'Common:Setting:VersionHistory.Retention.BatchSize',\n RetentionPurgeCron = 'Common:Setting:VersionHistory.Retention.PurgeCron',\n SkipEmptyPatches = 'Common:Setting:VersionHistory.SkipEmptyPatches',\n}\n\nexport const AXP_VERSION_HISTORY_SETTING_DEFAULTS = {\n [AXPVersionHistorySettings.RetentionEnabled]: true,\n [AXPVersionHistorySettings.RetentionPeriodDays]: 365,\n [AXPVersionHistorySettings.RetentionBatchSize]: 500,\n [AXPVersionHistorySettings.RetentionPurgeCron]: '0 3 * * *',\n [AXPVersionHistorySettings.SkipEmptyPatches]: true,\n} as const;\n\n//#endregion\n","const config = {\n i18n: 'common',\n module: 'Common',\n};\n\nexport const RootConfig = {\n config,\n module: {\n route: 'common',\n name: config.module,\n title: '@general:common.module.title',\n icon: 'fa-light fa-file-invoice',\n },\n entities: {\n recordLock: {\n name: 'RecordLock',\n title: 'Record Lock',\n titlePlural: 'Record Locks',\n icon: 'fa-light fa-lock',\n source: `${config.module}.RecordLock`,\n },\n versionStream: {\n name: 'VersionStream',\n title: 'Version Stream',\n titlePlural: 'Version Streams',\n icon: 'fa-light fa-code-branch',\n source: `${config.module}.VersionStream`,\n },\n versionEntry: {\n name: 'VersionEntry',\n title: 'Version Entry',\n titlePlural: 'Version Entries',\n icon: 'fa-light fa-clock-rotate-left',\n source: `${config.module}.VersionEntry`,\n },\n },\n} as const;\n","//#region ---- Imports ----\n\nimport { AXPModuleManifest } from '@acorex-platform/framework-shared/core';\nimport { RootConfig } from './root-config';\n\n//#endregion\n\n//#region ---- Manifest Definition ----\n\n/**\n * Common Module Manifest.\n * Defines module metadata, features, and provider references.\n */\nexport const CommonManifest: AXPModuleManifest = {\n name: RootConfig.module.name,\n version: '1.0.0',\n title: RootConfig.module.title,\n icon: RootConfig.module.icon,\n i18n: RootConfig.config.i18n,\n type: 'platform',\n domain: 'platform',\n required: true,\n\n // Module dependencies (optional)\n};\n\n//#endregion\n\n","//#region ----- Entity versioning (publication) constants -----\n\n/** Entity plugin name. Independent from the `history` plugin. */\nexport const AXP_VERSIONING_PLUGIN_NAME = 'versioning';\n\nexport const AXPVersioningField = {\n Version: 'version',\n VersionId: 'versionId',\n VersioningEnabled: 'versioningEnabled',\n SourceId: 'sourceId',\n VersionNumber: 'versionNumber',\n VersioningStatus: 'versioningStatus',\n} as const;\n\nexport const AXPVersioningStatus = {\n Draft: 'draft',\n Published: 'published',\n} as const;\n\nexport type AXPVersioningStatusValue =\n (typeof AXPVersioningStatus)[keyof typeof AXPVersioningStatus];\n\nexport const AXP_VERSIONING_ERROR_CODES = {\n DraftExists: 'VERSIONING_DRAFT_EXISTS',\n NotEligible: 'VERSIONING_NOT_ELIGIBLE',\n PublishedImmutable: 'VERSIONING_PUBLISHED_IMMUTABLE',\n HostContentLocked: 'VERSIONING_HOST_CONTENT_LOCKED',\n NoDraft: 'VERSIONING_NO_DRAFT',\n InvalidPublish: 'VERSIONING_INVALID_PUBLISH',\n CreateDenied: 'VERSIONING_CREATE_DENIED',\n} as const;\n\nexport const AXP_VERSIONING_ERROR_I18N: Record<string, string> = {\n [AXP_VERSIONING_ERROR_CODES.DraftExists]: '@general:errors.versioning.draft-exists',\n [AXP_VERSIONING_ERROR_CODES.NotEligible]: '@general:errors.versioning.not-eligible',\n [AXP_VERSIONING_ERROR_CODES.PublishedImmutable]: '@general:errors.versioning.published-immutable',\n [AXP_VERSIONING_ERROR_CODES.HostContentLocked]: '@general:errors.versioning.host-content-locked',\n [AXP_VERSIONING_ERROR_CODES.NoDraft]: '@general:errors.versioning.no-draft',\n [AXP_VERSIONING_ERROR_CODES.InvalidPublish]: '@general:errors.versioning.invalid-publish',\n [AXP_VERSIONING_ERROR_CODES.CreateDenied]: '@general:errors.versioning.create-denied',\n};\n\n/**\n * Legacy tenant-wide key (kept so existing role grants still work).\n * New grants use {@link maintainVersioningPermissionKey}.\n */\nexport const AXP_VERSIONING_MAINTAIN_PERMISSION_LEGACY =\n 'ContentDocuments:Permission:MaintainVersioning';\n\n/**\n * @deprecated Use {@link maintainVersioningPermissionKey} for the host entity.\n * Alias of {@link AXP_VERSIONING_MAINTAIN_PERMISSION_LEGACY}.\n */\nexport const AXP_VERSIONING_CREATE_DRAFT_PERMISSION =\n AXP_VERSIONING_MAINTAIN_PERMISSION_LEGACY;\n\n/** Runtime query that lists host entities which declare the versioning plugin. */\nexport const AXP_VERSIONING_LIST_HOST_ENTITIES_QUERY =\n 'Common:ListVersioningHostEntities';\n\n/**\n * Seed-time hosts that declare the versioning plugin in module catalogs.\n * Administrator seed grants these keys; the role UI also discovers new hosts at runtime.\n */\nexport const AXP_VERSIONING_SEEDED_HOST_ENTITIES = [\n 'DocumentManagement.Document',\n 'FinancialCore.FiscalCalendar',\n] as const;\n\n/**\n * Per-entity Maintain Versioning key: `{Module}:Permission:{Entity}.MaintainVersioning`.\n */\nexport function maintainVersioningPermissionKey(hostEntityName: string): string {\n const [moduleName, entityName] = String(hostEntityName ?? '').split('.');\n if (!moduleName || !entityName) {\n return '';\n }\n return `${moduleName}:Permission:${entityName}.MaintainVersioning`;\n}\n\n/** True when the user has the per-entity key or the legacy tenant-wide key. */\nexport function isMaintainVersioningPermissionGranted(\n hasPermission: (key: string) => boolean,\n hostEntityName: string,\n): boolean {\n const key = maintainVersioningPermissionKey(hostEntityName);\n if (key && hasPermission(key)) {\n return true;\n }\n return hasPermission(AXP_VERSIONING_MAINTAIN_PERMISSION_LEGACY);\n}\n\n/** Fields that live only on the host published row. */\nexport const AXP_VERSIONING_HOST_OWN_FIELDS = new Set<string>([\n AXPVersioningField.Version,\n AXPVersioningField.VersionId,\n AXPVersioningField.VersioningEnabled,\n]);\n\n/** Fields that live only on the companion version row. */\nexport const AXP_VERSIONING_COMPANION_OWN_FIELDS = new Set<string>([\n AXPVersioningField.SourceId,\n AXPVersioningField.VersionNumber,\n AXPVersioningField.VersioningStatus,\n]);\n\n/**\n * Host fields that may change while a published version is current\n * (move in a folder, entity binding). Content fields are blocked when versioning is on.\n */\nexport const AXP_VERSIONING_STRUCTURAL_FIELDS = new Set<string>([\n 'parentId',\n 'refType',\n 'refId',\n 'statusId',\n 'status',\n 'scopeInfo',\n 'stateInfo',\n 'auditInfo',\n 'id',\n]);\n\n/**\n * Display identity and live attributes on the published host.\n * Renaming or editing metadata is not a new revision; replacing the file still is.\n * Still snapshotted onto companions so publish can copy the latest values.\n */\nexport const AXP_VERSIONING_HOST_IDENTITY_FIELDS = new Set<string>([\n 'title',\n 'name',\n 'description',\n 'metaDataForm',\n 'expirationDate',\n 'documentType',\n 'distributionEnabled',\n]);\n\nexport function versionCompanionEntityName(hostEntityName: string): string {\n return `${hostEntityName}Version`;\n}\n\nexport function hostEntityNameFromCompanion(companionEntityName: string): string | null {\n if (!companionEntityName.endsWith('Version')) {\n return null;\n }\n if (companionEntityName.endsWith('VersionEntry') || companionEntityName.endsWith('VersionStream')) {\n return null;\n }\n return companionEntityName.slice(0, -'Version'.length);\n}\n\nexport function isVersionCompanionEntityName(entityName: string): boolean {\n return hostEntityNameFromCompanion(entityName) != null;\n}\n\n//#endregion\n","//#region ----- Entity versioning plugin types -----\n\nimport type { AXPExpression } from '@acorex-platform/framework-shared/core';\nimport type { AXPEntityDetailDto } from '@acorex-platform/framework-shared/entity';\n\nexport interface AXPVersioningPluginOptions {\n /**\n * Host field that marks whether this record uses draft/publish versioning.\n * Default: `versioningEnabled`.\n */\n enabledField?: string;\n /**\n * Optional expression evaluated against the host row (client action hide).\n * Server still uses {@link enabledField}.\n */\n enabledWhen?: AXPExpression | string;\n}\n\n/** Host row for versioning commands (generic plugin; extra fields allowed). */\nexport interface AXPVersioningHostDto extends AXPEntityDetailDto<string> {\n version?: number;\n versionId?: string;\n versioningEnabled?: boolean;\n /** Stamped onto the host payload when a maintainer sees an open draft. */\n versioningStatus?: string;\n}\n\n/** One host entity that declares the versioning plugin (permission auto-registration). */\nexport interface AXPVersioningHostEntityListItem {\n module: string;\n name: string;\n fullName: string;\n title?: string;\n}\n\n/** Companion `{Entity}Version` row. Create may send only `sourceId`. */\nexport interface AXPVersioningCompanionDto extends AXPEntityDetailDto<string> {\n sourceId?: string;\n versionNumber?: number;\n versioningStatus?: string;\n}\n\n//#endregion\n","//#region ---- Contracts barrel ----\n\nexport * from './catalog-scope.keys';\nexport * from './commands.keys';\nexport * from './features.keys';\nexport * from './menu.keys';\nexport * from './permission-group.keys';\nexport * from './permission-display.util';\nexport * from './permission-module.map';\nexport * from './settings.keys';\nexport * from './version-history.settings.keys';\n\nexport * from './root-config';\nexport * from './manifest';\nexport * from './versioning.constants';\nexport * from './versioning.types';\n\n//#endregion\n\n// Entity layout factories live in server; keep barrel as empty module for compatibility.\nexport {};\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -1,12 +1,15 @@
1
1
  import { AXTranslationService } from '@acorex/core/translation';
2
+ import { AXPSessionService } from '@acorex-platform/framework-client/auth';
3
+ import { isMaintainVersioningPermissionGranted, AXP_VERSIONING_ERROR_CODES } from '@acorex-platform/module-common-client/contracts';
2
4
  import * as i0 from '@angular/core';
3
5
  import { inject, Injectable } from '@angular/core';
4
- import { A as AXPVersioningEntityCommandHelper, n as normalizeVersioningInput } from './acorex-platform-module-common-client-versioning-entity.command.util-CKlJNPHa.mjs';
6
+ import { A as AXPVersioningEntityCommandHelper, n as normalizeVersioningInput } from './acorex-platform-module-common-client-versioning-entity.command.util-Bibv8EgV.mjs';
5
7
 
6
8
  class AXPCreateEntityVersionDraftCommand {
7
9
  constructor() {
8
10
  this.helper = inject(AXPVersioningEntityCommandHelper);
9
11
  this.translationService = inject(AXTranslationService);
12
+ this.sessionService = inject(AXPSessionService);
10
13
  }
11
14
  async execute(input) {
12
15
  const context = normalizeVersioningInput(input);
@@ -18,6 +21,15 @@ class AXPCreateEntityVersionDraftCommand {
18
21
  },
19
22
  };
20
23
  }
24
+ if (!isMaintainVersioningPermissionGranted((key) => this.sessionService.authorize(key), context.refType)) {
25
+ await this.helper.showErrorToastFor({ code: AXP_VERSIONING_ERROR_CODES.CreateDenied }, '@general:errors.versioning.create-denied');
26
+ return {
27
+ success: false,
28
+ message: {
29
+ text: await this.translationService.translateAsync('@general:errors.versioning.create-denied'),
30
+ },
31
+ };
32
+ }
21
33
  const loadingDialog = this.helper.showLoading(await this.translationService.translateAsync('@general:actions.versioning.create-draft.processing'), 'Creating version...');
22
34
  try {
23
35
  const versionId = await this.helper.companionData(context.companionEntity).create({
@@ -43,4 +55,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImpor
43
55
  }] });
44
56
 
45
57
  export { AXPCreateEntityVersionDraftCommand };
46
- //# sourceMappingURL=acorex-platform-module-common-client-create-entity-version-draft.command-DLNMbq3M.mjs.map
58
+ //# sourceMappingURL=acorex-platform-module-common-client-create-entity-version-draft.command-CbLI7jvZ.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"acorex-platform-module-common-client-create-entity-version-draft.command-CbLI7jvZ.mjs","sources":["../../../../libs/modules/common/client/src/lib/features/versioning-plugin/commands/create-entity-version-draft.command.ts"],"sourcesContent":["import { AXPCommand, type AXPCommandExecuteResultPromise } from '@acorex-platform/framework-shared/runtime';\nimport type { AXPContextData } from '@acorex-platform/framework-shared/core';\nimport { AXTranslationService } from '@acorex/core/translation';\nimport { AXPSessionService } from '@acorex-platform/framework-client/auth';\nimport {\n AXP_VERSIONING_ERROR_CODES,\n isMaintainVersioningPermissionGranted,\n} from '@acorex-platform/module-common-client/contracts';\nimport { inject, Injectable } from '@angular/core';\n\nimport { AXPVersioningEntityCommandHelper } from './versioning-entity.command.helper';\nimport { normalizeVersioningInput } from './versioning-entity.command.util';\n\n@Injectable({ providedIn: 'root' })\nexport class AXPCreateEntityVersionDraftCommand implements AXPCommand<AXPContextData, { versionId: string }> {\n private readonly helper = inject(AXPVersioningEntityCommandHelper);\n private readonly translationService = inject(AXTranslationService);\n private readonly sessionService = inject(AXPSessionService);\n\n async execute(input: AXPContextData): AXPCommandExecuteResultPromise<{ versionId: string }> {\n const context = normalizeVersioningInput(input);\n if (!context) {\n return {\n success: false,\n message: {\n text: await this.translationService.translateAsync('@general:messages.entity.invalid-data'),\n },\n };\n }\n\n if (!isMaintainVersioningPermissionGranted((key) => this.sessionService.authorize(key), context.refType)) {\n await this.helper.showErrorToastFor(\n { code: AXP_VERSIONING_ERROR_CODES.CreateDenied },\n '@general:errors.versioning.create-denied',\n );\n return {\n success: false,\n message: {\n text: await this.translationService.translateAsync('@general:errors.versioning.create-denied'),\n },\n };\n }\n\n const loadingDialog = this.helper.showLoading(\n await this.translationService.translateAsync('@general:actions.versioning.create-draft.processing'),\n 'Creating version...',\n );\n\n try {\n const versionId = await this.helper.companionData(context.companionEntity).create({\n sourceId: context.refId,\n });\n this.helper.dispatchRefresh(context.refType);\n loadingDialog.close();\n await this.helper.showSuccessToast(\n '@general:actions.versioning.create-draft.success.title',\n '@general:actions.versioning.create-draft.success.description',\n );\n return { success: true, kind: 'object', data: { versionId: String(versionId) } };\n } catch (error) {\n loadingDialog.close();\n await this.helper.showErrorToastFor(error, '@general:messages.generic.error.description');\n return { success: false };\n }\n }\n}\n"],"names":[],"mappings":";;;;;;;MAca,kCAAkC,CAAA;AAD/C,IAAA,WAAA,GAAA;AAEmB,QAAA,IAAA,CAAA,MAAM,GAAG,MAAM,CAAC,gCAAgC,CAAC;AACjD,QAAA,IAAA,CAAA,kBAAkB,GAAG,MAAM,CAAC,oBAAoB,CAAC;AACjD,QAAA,IAAA,CAAA,cAAc,GAAG,MAAM,CAAC,iBAAiB,CAAC;AAgD5D,IAAA;IA9CC,MAAM,OAAO,CAAC,KAAqB,EAAA;AACjC,QAAA,MAAM,OAAO,GAAG,wBAAwB,CAAC,KAAK,CAAC;QAC/C,IAAI,CAAC,OAAO,EAAE;YACZ,OAAO;AACL,gBAAA,OAAO,EAAE,KAAK;AACd,gBAAA,OAAO,EAAE;oBACP,IAAI,EAAE,MAAM,IAAI,CAAC,kBAAkB,CAAC,cAAc,CAAC,uCAAuC,CAAC;AAC5F,iBAAA;aACF;QACH;QAEA,IAAI,CAAC,qCAAqC,CAAC,CAAC,GAAG,KAAK,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,OAAO,CAAC,OAAO,CAAC,EAAE;AACxG,YAAA,MAAM,IAAI,CAAC,MAAM,CAAC,iBAAiB,CACjC,EAAE,IAAI,EAAE,0BAA0B,CAAC,YAAY,EAAE,EACjD,0CAA0C,CAC3C;YACD,OAAO;AACL,gBAAA,OAAO,EAAE,KAAK;AACd,gBAAA,OAAO,EAAE;oBACP,IAAI,EAAE,MAAM,IAAI,CAAC,kBAAkB,CAAC,cAAc,CAAC,0CAA0C,CAAC;AAC/F,iBAAA;aACF;QACH;QAEA,MAAM,aAAa,GAAG,IAAI,CAAC,MAAM,CAAC,WAAW,CAC3C,MAAM,IAAI,CAAC,kBAAkB,CAAC,cAAc,CAAC,qDAAqD,CAAC,EACnG,qBAAqB,CACtB;AAED,QAAA,IAAI;AACF,YAAA,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC,MAAM,CAAC;gBAChF,QAAQ,EAAE,OAAO,CAAC,KAAK;AACxB,aAAA,CAAC;YACF,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC,OAAO,CAAC,OAAO,CAAC;YAC5C,aAAa,CAAC,KAAK,EAAE;YACrB,MAAM,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAChC,wDAAwD,EACxD,8DAA8D,CAC/D;YACD,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,EAAE,SAAS,EAAE,MAAM,CAAC,SAAS,CAAC,EAAE,EAAE;QAClF;QAAE,OAAO,KAAK,EAAE;YACd,aAAa,CAAC,KAAK,EAAE;YACrB,MAAM,IAAI,CAAC,MAAM,CAAC,iBAAiB,CAAC,KAAK,EAAE,6CAA6C,CAAC;AACzF,YAAA,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE;QAC3B;IACF;8GAlDW,kCAAkC,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAAlC,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,kCAAkC,cADrB,MAAM,EAAA,CAAA,CAAA;;2FACnB,kCAAkC,EAAA,UAAA,EAAA,CAAA;kBAD9C,UAAU;mBAAC,EAAE,UAAU,EAAE,MAAM,EAAE;;;"}
@@ -1,12 +1,15 @@
1
1
  import { AXTranslationService } from '@acorex/core/translation';
2
+ import { AXPSessionService } from '@acorex-platform/framework-client/auth';
2
3
  import * as i0 from '@angular/core';
3
4
  import { inject, Injectable } from '@angular/core';
4
- import { A as AXPVersioningEntityCommandHelper, n as normalizeVersioningInput } from './acorex-platform-module-common-client-versioning-entity.command.util-CKlJNPHa.mjs';
5
+ import { A as AXPVersioningEntityCommandHelper, n as normalizeVersioningInput } from './acorex-platform-module-common-client-versioning-entity.command.util-Bibv8EgV.mjs';
6
+ import { isMaintainVersioningPermissionGranted, AXP_VERSIONING_ERROR_CODES } from '@acorex-platform/module-common-client/contracts';
5
7
 
6
8
  class AXPDeleteEntityVersionDraftCommand {
7
9
  constructor() {
8
10
  this.helper = inject(AXPVersioningEntityCommandHelper);
9
11
  this.translationService = inject(AXTranslationService);
12
+ this.sessionService = inject(AXPSessionService);
10
13
  }
11
14
  async execute(input) {
12
15
  const context = normalizeVersioningInput(input);
@@ -18,6 +21,15 @@ class AXPDeleteEntityVersionDraftCommand {
18
21
  },
19
22
  };
20
23
  }
24
+ if (!isMaintainVersioningPermissionGranted((key) => this.sessionService.authorize(key), context.refType)) {
25
+ await this.helper.showErrorToastFor({ code: AXP_VERSIONING_ERROR_CODES.CreateDenied }, '@general:errors.versioning.create-denied');
26
+ return {
27
+ success: false,
28
+ message: {
29
+ text: await this.translationService.translateAsync('@general:errors.versioning.create-denied'),
30
+ },
31
+ };
32
+ }
21
33
  const confirmed = await this.helper.confirm('@general:actions.versioning.delete-draft.confirm.title', '@general:actions.versioning.delete-draft.confirm.message');
22
34
  if (!confirmed) {
23
35
  return { success: false };
@@ -51,4 +63,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImpor
51
63
  }] });
52
64
 
53
65
  export { AXPDeleteEntityVersionDraftCommand };
54
- //# sourceMappingURL=acorex-platform-module-common-client-delete-entity-version-draft.command-Dq0zjfak.mjs.map
66
+ //# sourceMappingURL=acorex-platform-module-common-client-delete-entity-version-draft.command-CLWHs4DO.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"acorex-platform-module-common-client-delete-entity-version-draft.command-CLWHs4DO.mjs","sources":["../../../../libs/modules/common/client/src/lib/features/versioning-plugin/commands/delete-entity-version-draft.command.ts"],"sourcesContent":["import { AXPCommand, type AXPCommandExecuteResultPromise } from '@acorex-platform/framework-shared/runtime';\nimport type { AXPContextData } from '@acorex-platform/framework-shared/core';\nimport { AXTranslationService } from '@acorex/core/translation';\nimport { AXPSessionService } from '@acorex-platform/framework-client/auth';\nimport { inject, Injectable } from '@angular/core';\n\nimport { AXPVersioningEntityCommandHelper } from './versioning-entity.command.helper';\nimport { normalizeVersioningInput } from './versioning-entity.command.util';\nimport {\n AXP_VERSIONING_ERROR_CODES,\n isMaintainVersioningPermissionGranted,\n} from '@acorex-platform/module-common-client/contracts';\n\n@Injectable({ providedIn: 'root' })\nexport class AXPDeleteEntityVersionDraftCommand implements AXPCommand<AXPContextData, void> {\n private readonly helper = inject(AXPVersioningEntityCommandHelper);\n private readonly translationService = inject(AXTranslationService);\n private readonly sessionService = inject(AXPSessionService);\n\n async execute(input: AXPContextData): AXPCommandExecuteResultPromise<void> {\n const context = normalizeVersioningInput(input);\n if (!context) {\n return {\n success: false,\n message: {\n text: await this.translationService.translateAsync('@general:messages.entity.invalid-data'),\n },\n };\n }\n\n if (!isMaintainVersioningPermissionGranted((key) => this.sessionService.authorize(key), context.refType)) {\n await this.helper.showErrorToastFor(\n { code: AXP_VERSIONING_ERROR_CODES.CreateDenied },\n '@general:errors.versioning.create-denied',\n );\n return {\n success: false,\n message: {\n text: await this.translationService.translateAsync('@general:errors.versioning.create-denied'),\n },\n };\n }\n\n const confirmed = await this.helper.confirm(\n '@general:actions.versioning.delete-draft.confirm.title',\n '@general:actions.versioning.delete-draft.confirm.message',\n );\n if (!confirmed) {\n return { success: false };\n }\n\n const loadingDialog = this.helper.showLoading(\n await this.translationService.translateAsync('@general:actions.versioning.delete-draft.processing'),\n 'Deleting draft...',\n );\n\n try {\n const draft = await this.helper.findDraft(context.companionEntity, context.refId);\n if (!draft?.id) {\n loadingDialog.close();\n await this.helper.showErrorToastFor(\n { error: { code: 'VERSIONING_NO_DRAFT', message: '@general:errors.versioning.no-draft' } },\n '@general:errors.versioning.no-draft',\n );\n return { success: false };\n }\n\n await this.helper.companionData(context.companionEntity).delete(String(draft.id));\n this.helper.dispatchRefresh(context.refType);\n loadingDialog.close();\n await this.helper.showSuccessToast(\n '@general:actions.versioning.delete-draft.success.title',\n '@general:actions.versioning.delete-draft.success.description',\n );\n return { success: true, kind: 'object', data: undefined };\n } catch (error) {\n loadingDialog.close();\n await this.helper.showErrorToastFor(error, '@general:messages.generic.error.description');\n return { success: false };\n }\n }\n}\n"],"names":[],"mappings":"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"}
@@ -1,12 +1,15 @@
1
1
  import { AXTranslationService } from '@acorex/core/translation';
2
+ import { AXPSessionService } from '@acorex-platform/framework-client/auth';
2
3
  import * as i0 from '@angular/core';
3
4
  import { inject, Injectable } from '@angular/core';
4
- import { A as AXPVersioningEntityCommandHelper, n as normalizeVersioningInput } from './acorex-platform-module-common-client-versioning-entity.command.util-CKlJNPHa.mjs';
5
+ import { A as AXPVersioningEntityCommandHelper, n as normalizeVersioningInput } from './acorex-platform-module-common-client-versioning-entity.command.util-Bibv8EgV.mjs';
6
+ import { isMaintainVersioningPermissionGranted, AXP_VERSIONING_ERROR_CODES } from '@acorex-platform/module-common-client/contracts';
5
7
 
6
8
  class AXPPublishEntityVersionCommand {
7
9
  constructor() {
8
10
  this.helper = inject(AXPVersioningEntityCommandHelper);
9
11
  this.translationService = inject(AXTranslationService);
12
+ this.sessionService = inject(AXPSessionService);
10
13
  }
11
14
  async execute(input) {
12
15
  const context = normalizeVersioningInput(input);
@@ -18,6 +21,15 @@ class AXPPublishEntityVersionCommand {
18
21
  },
19
22
  };
20
23
  }
24
+ if (!isMaintainVersioningPermissionGranted((key) => this.sessionService.authorize(key), context.refType)) {
25
+ await this.helper.showErrorToastFor({ code: AXP_VERSIONING_ERROR_CODES.CreateDenied }, '@general:errors.versioning.create-denied');
26
+ return {
27
+ success: false,
28
+ message: {
29
+ text: await this.translationService.translateAsync('@general:errors.versioning.create-denied'),
30
+ },
31
+ };
32
+ }
21
33
  if (!context.skipConfirm) {
22
34
  const confirmed = await this.helper.confirm('@general:actions.versioning.publish.confirm.title', '@general:actions.versioning.publish.confirm.message');
23
35
  if (!confirmed) {
@@ -55,4 +67,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImpor
55
67
  }] });
56
68
 
57
69
  export { AXPPublishEntityVersionCommand };
58
- //# sourceMappingURL=acorex-platform-module-common-client-publish-entity-version.command-BtyWjtJj.mjs.map
70
+ //# sourceMappingURL=acorex-platform-module-common-client-publish-entity-version.command-JNy0K1ZR.mjs.map