@acorex-platform/module-identifier-management-client 0.0.18 → 0.0.24

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.
@@ -1,11 +1,29 @@
1
- import { AXPWidgetsList } from '@acorex-platform/framework-shared/core';
2
1
  export { IDENTIFIER_RULE_ENTITY } from '@acorex-platform/framework-shared/core';
3
- import { createAllQueryView, entityMasterCrudActions, entityMasterDeleteAction } from '@acorex-platform/framework-shared/entity';
4
2
 
3
+ /**
4
+ * Applications & Platform capabilities used by this module.
5
+ * Domain capability keys for this module. Root groups live in `AXPCommonPermissionGroupKeys` (common contracts).
6
+ */
7
+ const AXPApplicationsPlatformPermissionKeys = {
8
+ Access: 'ApplicationsPlatform:Permission:Access',
9
+ MaintainApplications: 'ApplicationsPlatform:Permission:MaintainApplications',
10
+ MaintainTenants: 'ApplicationsPlatform:Permission:MaintainTenants',
11
+ MaintainPlatformShell: 'ApplicationsPlatform:Permission:MaintainPlatformShell',
12
+ MaintainLandingPages: 'ApplicationsPlatform:Permission:MaintainLandingPages',
13
+ MaintainIdentifiers: 'ApplicationsPlatform:Permission:MaintainIdentifiers',
14
+ MaintainTenantSettings: 'ApplicationsPlatform:Permission:MaintainTenantSettings',
15
+ MaintainPlatformSettings: 'ApplicationsPlatform:Permission:MaintainPlatformSettings',
16
+ MaintainLocales: 'ApplicationsPlatform:Permission:MaintainLocales',
17
+ UseDevTools: 'ApplicationsPlatform:Permission:UseDevTools',
18
+ };
19
+ /**
20
+ * @deprecated Prefer {@link AXPApplicationsPlatformPermissionKeys}.
21
+ * Legacy nested shape kept so existing imports compile during migration.
22
+ */
5
23
  const AXMPermissionsKeys = {
6
24
  IdentifierManagement: {
7
- Management: 'IdentifierManagement:Permission:Management',
8
- IdentifierRules: 'IdentifierManagement:Permission:IdentifierRules',
25
+ Management: AXPApplicationsPlatformPermissionKeys.MaintainIdentifiers,
26
+ IdentifierRules: AXPApplicationsPlatformPermissionKeys.MaintainIdentifiers,
9
27
  },
10
28
  };
11
29
 
@@ -40,146 +58,17 @@ const RootConfig = {
40
58
  },
41
59
  };
42
60
 
43
- //#region ---- Identifier rule domain model ----
61
+ //#region ---- Identifier runtime keys ----
62
+ const AXPIdentifierCommandKeys = {
63
+ Generate: 'Identifier:Generate',
64
+ Peek: 'Identifier:Peek',
65
+ Validate: 'Identifier:Validate',
66
+ CommitWithToken: 'Identifier:CommitWithToken',
67
+ CommitByCode: 'Identifier:CommitByCode',
68
+ };
44
69
  //#endregion
45
70
 
46
- //#region ---- Identifier rule entity ----
47
- async function identifierRuleFactory() {
48
- const i18n = `${RootConfig.config.i18n}:entities.identifier-rule`;
49
- const entityDef = {
50
- module: RootConfig.module.name,
51
- name: RootConfig.entities.identifierRule.name,
52
- title: RootConfig.entities.identifierRule.title,
53
- icon: RootConfig.entities.identifierRule.icon,
54
- plugins: [
55
- { name: 'clone' },
56
- { name: 'disable' },
57
- {
58
- name: 'unique-fields',
59
- options: { fields: 'name', scope: 'global' },
60
- },
61
- ],
62
- formats: {
63
- individual: RootConfig.entities.identifierRule.title,
64
- plural: RootConfig.entities.identifierRule.titlePlural,
65
- searchResult: { title: '{{ title }}', description: '{{ entity }} · {{ pattern }}' },
66
- },
67
- groups: [
68
- { id: 'basic-info', title: `@${i18n}.groups.basic-info` },
69
- { id: 'pattern', title: `@${i18n}.groups.pattern` },
70
- { id: 'scope', title: `@${i18n}.groups.scope` },
71
- ],
72
- properties: [
73
- {
74
- name: 'name',
75
- title: '@general:terms.common.name',
76
- groupId: 'basic-info',
77
- schema: {
78
- dataType: 'string',
79
- readonly: '{{ !!context.eval("id") }}',
80
- interface: { type: AXPWidgetsList.Editors.TextBox },
81
- },
82
- validations: [{ rule: 'required' }, { rule: 'variable-name' }],
83
- options: {
84
- sort: { enabled: true },
85
- filter: { inline: { enabled: true }, advance: { enabled: true } },
86
- },
87
- },
88
- {
89
- name: 'title',
90
- title: '@general:terms.common.title',
91
- groupId: 'basic-info',
92
- schema: { dataType: 'string', interface: { type: AXPWidgetsList.Editors.TextBox } },
93
- validations: [{ rule: 'required' }],
94
- options: {
95
- sort: { enabled: true },
96
- filter: { inline: { enabled: true }, advance: { enabled: true } },
97
- },
98
- },
99
- {
100
- name: 'entity',
101
- title: `@${i18n}.fields.entity.title`,
102
- groupId: 'basic-info',
103
- schema: { dataType: 'string', interface: { type: AXPWidgetsList.Editors.TextBox } },
104
- validations: [{ rule: 'required' }],
105
- options: {
106
- filter: { inline: { enabled: true }, advance: { enabled: true } },
107
- },
108
- },
109
- {
110
- name: 'pattern',
111
- title: `@${i18n}.fields.pattern.title`,
112
- groupId: 'pattern',
113
- schema: {
114
- dataType: 'string',
115
- interface: {
116
- type: AXPWidgetsList.Advanced.CodeEditor,
117
- options: { language: 'plaintext', lineNumbers: true },
118
- },
119
- },
120
- validations: [{ rule: 'required' }],
121
- },
122
- {
123
- name: 'scopeConfig',
124
- title: `@${i18n}.fields.scope-config.title`,
125
- groupId: 'scope',
126
- schema: {
127
- dataType: 'object',
128
- interface: {
129
- type: AXPWidgetsList.Advanced.CodeEditor,
130
- options: { language: 'json', lineNumbers: true, placeholder: '{}' },
131
- },
132
- },
133
- },
134
- ],
135
- columns: [{ name: 'name' }, { name: 'title' }, { name: 'entity' }, { name: 'pattern' }],
136
- interfaces: {
137
- master: {
138
- create: {
139
- sections: [{ id: 'basic-info' }, { id: 'pattern' }, { id: 'scope' }],
140
- properties: [
141
- { name: 'name', layout: { positions: { lg: { colSpan: 6, order: 1 } } } },
142
- { name: 'title', layout: { positions: { lg: { colSpan: 6, order: 2 } } } },
143
- { name: 'entity', layout: { positions: { lg: { colSpan: 12, order: 3 } } } },
144
- { name: 'pattern', layout: { positions: { lg: { colSpan: 12, order: 1 } } } },
145
- { name: 'scopeConfig', layout: { positions: { lg: { colSpan: 12, order: 1 } } } },
146
- ],
147
- },
148
- update: {
149
- sections: [{ id: 'basic-info' }, { id: 'pattern' }, { id: 'scope' }],
150
- properties: [
151
- { name: 'name', layout: { positions: { lg: { colSpan: 6, order: 1 } } } },
152
- { name: 'title', layout: { positions: { lg: { colSpan: 6, order: 2 } } } },
153
- { name: 'entity', layout: { positions: { lg: { colSpan: 12, order: 3 } } } },
154
- { name: 'pattern', layout: { positions: { lg: { colSpan: 12, order: 1 } } } },
155
- { name: 'scopeConfig', layout: { positions: { lg: { colSpan: 12, order: 1 } } } },
156
- ],
157
- },
158
- single: {
159
- title: '{{title}}',
160
- sections: [
161
- { id: 'basic-info', layout: { positions: { lg: { colSpan: 12 } } } },
162
- { id: 'pattern', layout: { positions: { lg: { colSpan: 12 } } } },
163
- { id: 'scope', layout: { positions: { lg: { colSpan: 12 } } } },
164
- ],
165
- properties: [
166
- { name: 'name', layout: { positions: { lg: { colSpan: 6, order: 1 } } } },
167
- { name: 'title', layout: { positions: { lg: { colSpan: 6, order: 2 } } } },
168
- { name: 'entity', layout: { positions: { lg: { colSpan: 12, order: 3 } } } },
169
- { name: 'pattern', layout: { positions: { lg: { colSpan: 12, order: 1 } } } },
170
- { name: 'scopeConfig', layout: { positions: { lg: { colSpan: 12, order: 1 } } } },
171
- ],
172
- actions: [entityMasterDeleteAction()],
173
- },
174
- list: {
175
- actions: [...entityMasterCrudActions()],
176
- views: [createAllQueryView({ sorts: [{ name: 'title', dir: 'asc' }] })],
177
- },
178
- },
179
- },
180
- };
181
- return entityDef;
182
- }
71
+ //#region ---- Identifier rule domain model ----
183
72
  //#endregion
184
73
 
185
74
  //#region ---- Contracts barrel ----
@@ -188,5 +77,5 @@ async function identifierRuleFactory() {
188
77
  * Generated bundle index. Do not edit.
189
78
  */
190
79
 
191
- export { AXMPermissionsKeys, AXPIdentifierManagementMenuKeys, RootConfig, identifierRuleFactory };
80
+ export { AXMPermissionsKeys, AXPApplicationsPlatformPermissionKeys, AXPIdentifierCommandKeys, AXPIdentifierManagementMenuKeys, RootConfig };
192
81
  //# sourceMappingURL=acorex-platform-module-identifier-management-client-contracts.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"acorex-platform-module-identifier-management-client-contracts.mjs","sources":["../../../../libs/modules/identifier-management/contracts/src/permission.keys.ts","../../../../libs/modules/identifier-management/contracts/src/menu.keys.ts","../../../../libs/modules/identifier-management/contracts/src/identifier-rule.types.ts","../../../../libs/modules/identifier-management/contracts/src/root-config.ts","../../../../libs/modules/identifier-management/contracts/src/entities/identifier-rule/identifier-rule.types.ts","../../../../libs/modules/identifier-management/contracts/src/entities/identifier-rule/identifier-rule.entity.ts","../../../../libs/modules/identifier-management/contracts/src/index.ts","../../../../libs/modules/identifier-management/contracts/src/acorex-platform-module-identifier-management-client-contracts.ts"],"sourcesContent":["export const AXMPermissionsKeys = {\n IdentifierManagement: {\n Management: 'IdentifierManagement:Permission:Management',\n IdentifierRules: 'IdentifierManagement:Permission:IdentifierRules',\n },\n};\n","export const AXPIdentifierManagementMenuKeys = {\n Root: 'IdentifierManagement:Menu',\n IdentifierRules: 'IdentifierManagement:Menu:IdentifierRules',\n} as const;\n","//#region ---- Identifier rule contracts ----\n\nexport type { AXPIdentifierRule } from '@acorex-platform/framework-shared/core';\n\nexport { IDENTIFIER_RULE_ENTITY } from '@acorex-platform/framework-shared/core';\n\n//#endregion\n","const config = {\n i18n: 'identifier-management',\n module: 'IdentifierManagement',\n} as const;\n\nexport const RootConfig = {\n config,\n module: {\n module: 'identifier-management',\n name: config.module,\n title: `@${config.i18n}:module.title`,\n icon: 'fa-light fa-hashtag',\n },\n entities: {\n identifierRule: {\n name: 'IdentifierRule',\n source: `${config.module}.IdentifierRule`,\n title: `@${config.i18n}:entities.identifier-rule.title`,\n titlePlural: `@${config.i18n}:entities.identifier-rule.plural`,\n icon: 'fa-light fa-barcode',\n },\n },\n} as const;\n","\n//#region ---- Identifier rule domain model ----\n\nimport { AXPIdentifierRule } from \"../../identifier-rule.types\";\n\nexport interface AXMIdentifierManagementIdentifierRuleEntityModel extends AXPIdentifierRule {\n id: string;\n}\n\n//#endregion\n","import { AXPWidgetsList } from '@acorex-platform/framework-shared/core';\nimport {\n AXPEntity,\n createAllQueryView,\n entityMasterCrudActions,\n entityMasterDeleteAction,\n} from '@acorex-platform/framework-shared/entity';\nimport { RootConfig } from '../../root-config';\n\n//#region ---- Identifier rule entity ----\n\nexport async function identifierRuleFactory(): Promise<AXPEntity | null> {\n const i18n = `${RootConfig.config.i18n}:entities.identifier-rule`;\n\n const entityDef: AXPEntity = {\n module: RootConfig.module.name,\n name: RootConfig.entities.identifierRule.name,\n title: RootConfig.entities.identifierRule.title,\n icon: RootConfig.entities.identifierRule.icon,\n plugins: [\n { name: 'clone' },\n { name: 'disable' },\n {\n name: 'unique-fields',\n options: { fields: 'name', scope: 'global' },\n },\n ],\n formats: {\n individual: RootConfig.entities.identifierRule.title,\n plural: RootConfig.entities.identifierRule.titlePlural,\n searchResult: { title: '{{ title }}', description: '{{ entity }} · {{ pattern }}' },\n },\n groups: [\n { id: 'basic-info', title: `@${i18n}.groups.basic-info` },\n { id: 'pattern', title: `@${i18n}.groups.pattern` },\n { id: 'scope', title: `@${i18n}.groups.scope` },\n ],\n properties: [\n {\n name: 'name',\n title: '@general:terms.common.name',\n groupId: 'basic-info',\n schema: {\n dataType: 'string',\n readonly: '{{ !!context.eval(\"id\") }}',\n interface: { type: AXPWidgetsList.Editors.TextBox },\n },\n validations: [{ rule: 'required' }, { rule: 'variable-name' }],\n options: {\n sort: { enabled: true },\n filter: { inline: { enabled: true }, advance: { enabled: true } },\n },\n },\n {\n name: 'title',\n title: '@general:terms.common.title',\n groupId: 'basic-info',\n schema: { dataType: 'string', interface: { type: AXPWidgetsList.Editors.TextBox } },\n validations: [{ rule: 'required' }],\n options: {\n sort: { enabled: true },\n filter: { inline: { enabled: true }, advance: { enabled: true } },\n },\n },\n {\n name: 'entity',\n title: `@${i18n}.fields.entity.title`,\n groupId: 'basic-info',\n schema: { dataType: 'string', interface: { type: AXPWidgetsList.Editors.TextBox } },\n validations: [{ rule: 'required' }],\n options: {\n filter: { inline: { enabled: true }, advance: { enabled: true } },\n },\n },\n {\n name: 'pattern',\n title: `@${i18n}.fields.pattern.title`,\n groupId: 'pattern',\n schema: {\n dataType: 'string',\n interface: {\n type: AXPWidgetsList.Advanced.CodeEditor,\n options: { language: 'plaintext', lineNumbers: true },\n },\n },\n validations: [{ rule: 'required' }],\n },\n {\n name: 'scopeConfig',\n title: `@${i18n}.fields.scope-config.title`,\n groupId: 'scope',\n schema: {\n dataType: 'object',\n interface: {\n type: AXPWidgetsList.Advanced.CodeEditor,\n options: { language: 'json', lineNumbers: true, placeholder: '{}' },\n },\n },\n },\n ],\n columns: [{ name: 'name' }, { name: 'title' }, { name: 'entity' }, { name: 'pattern' }],\n interfaces: {\n master: {\n create: {\n sections: [{ id: 'basic-info' }, { id: 'pattern' }, { id: 'scope' }],\n properties: [\n { name: 'name', layout: { positions: { lg: { colSpan: 6, order: 1 } } } },\n { name: 'title', layout: { positions: { lg: { colSpan: 6, order: 2 } } } },\n { name: 'entity', layout: { positions: { lg: { colSpan: 12, order: 3 } } } },\n { name: 'pattern', layout: { positions: { lg: { colSpan: 12, order: 1 } } } },\n { name: 'scopeConfig', layout: { positions: { lg: { colSpan: 12, order: 1 } } } },\n ],\n },\n update: {\n sections: [{ id: 'basic-info' }, { id: 'pattern' }, { id: 'scope' }],\n properties: [\n { name: 'name', layout: { positions: { lg: { colSpan: 6, order: 1 } } } },\n { name: 'title', layout: { positions: { lg: { colSpan: 6, order: 2 } } } },\n { name: 'entity', layout: { positions: { lg: { colSpan: 12, order: 3 } } } },\n { name: 'pattern', layout: { positions: { lg: { colSpan: 12, order: 1 } } } },\n { name: 'scopeConfig', layout: { positions: { lg: { colSpan: 12, order: 1 } } } },\n ],\n },\n single: {\n title: '{{title}}',\n sections: [\n { id: 'basic-info', layout: { positions: { lg: { colSpan: 12 } } } },\n { id: 'pattern', layout: { positions: { lg: { colSpan: 12 } } } },\n { id: 'scope', layout: { positions: { lg: { colSpan: 12 } } } },\n ],\n properties: [\n { name: 'name', layout: { positions: { lg: { colSpan: 6, order: 1 } } } },\n { name: 'title', layout: { positions: { lg: { colSpan: 6, order: 2 } } } },\n { name: 'entity', layout: { positions: { lg: { colSpan: 12, order: 3 } } } },\n { name: 'pattern', layout: { positions: { lg: { colSpan: 12, order: 1 } } } },\n { name: 'scopeConfig', layout: { positions: { lg: { colSpan: 12, order: 1 } } } },\n ],\n actions: [entityMasterDeleteAction()],\n },\n list: {\n actions: [...entityMasterCrudActions()],\n views: [createAllQueryView({ sorts: [{ name: 'title', dir: 'asc' }] })],\n },\n },\n },\n };\n\n return entityDef;\n}\n\n//#endregion\n","//#region ---- Contracts barrel ----\n\nexport * from './permission.keys';\n\nexport * from './menu.keys';\n\nexport * from './identifier-rule.types';\n\nexport { IDENTIFIER_RULE_ENTITY } from './identifier-rule.types';\n\nexport * from './root-config';\n\n//#endregion\n\nexport * from './entities';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"acorex-platform-module-identifier-management-client-contracts.mjs","sources":["../../../../libs/modules/identifier-management/contracts/src/permission.keys.ts","../../../../libs/modules/identifier-management/contracts/src/menu.keys.ts","../../../../libs/modules/identifier-management/contracts/src/identifier-rule.types.ts","../../../../libs/modules/identifier-management/contracts/src/root-config.ts","../../../../libs/modules/identifier-management/contracts/src/runtime.keys.ts","../../../../libs/modules/identifier-management/contracts/src/entities/identifier-rule/identifier-rule.types.ts","../../../../libs/modules/identifier-management/contracts/src/index.ts","../../../../libs/modules/identifier-management/contracts/src/acorex-platform-module-identifier-management-client-contracts.ts"],"sourcesContent":["/**\n * Applications & Platform capabilities used by this module.\n * Domain capability keys for this module. Root groups live in `AXPCommonPermissionGroupKeys` (common contracts).\n */\nexport const AXPApplicationsPlatformPermissionKeys = {\n Access: 'ApplicationsPlatform:Permission:Access',\n MaintainApplications: 'ApplicationsPlatform:Permission:MaintainApplications',\n MaintainTenants: 'ApplicationsPlatform:Permission:MaintainTenants',\n MaintainPlatformShell: 'ApplicationsPlatform:Permission:MaintainPlatformShell',\n MaintainLandingPages: 'ApplicationsPlatform:Permission:MaintainLandingPages',\n MaintainIdentifiers: 'ApplicationsPlatform:Permission:MaintainIdentifiers',\n MaintainTenantSettings: 'ApplicationsPlatform:Permission:MaintainTenantSettings',\n MaintainPlatformSettings: 'ApplicationsPlatform:Permission:MaintainPlatformSettings',\n MaintainLocales: 'ApplicationsPlatform:Permission:MaintainLocales',\n UseDevTools: 'ApplicationsPlatform:Permission:UseDevTools',\n} as const;\n\n/**\n * @deprecated Prefer {@link AXPApplicationsPlatformPermissionKeys}.\n * Legacy nested shape kept so existing imports compile during migration.\n */\nexport const AXMPermissionsKeys = {\n IdentifierManagement: {\n Management: AXPApplicationsPlatformPermissionKeys.MaintainIdentifiers,\n IdentifierRules: AXPApplicationsPlatformPermissionKeys.MaintainIdentifiers,\n },\n} as const;\n","export const AXPIdentifierManagementMenuKeys = {\n Root: 'IdentifierManagement:Menu',\n IdentifierRules: 'IdentifierManagement:Menu:IdentifierRules',\n} as const;\n","//#region ---- Identifier rule contracts ----\n\nexport type { AXPIdentifierRule } from '@acorex-platform/framework-shared/core';\n\nexport { IDENTIFIER_RULE_ENTITY } from '@acorex-platform/framework-shared/core';\n\n//#endregion\n","const config = {\n i18n: 'identifier-management',\n module: 'IdentifierManagement',\n} as const;\n\nexport const RootConfig = {\n config,\n module: {\n module: 'identifier-management',\n name: config.module,\n title: `@${config.i18n}:module.title`,\n icon: 'fa-light fa-hashtag',\n },\n entities: {\n identifierRule: {\n name: 'IdentifierRule',\n source: `${config.module}.IdentifierRule`,\n title: `@${config.i18n}:entities.identifier-rule.title`,\n titlePlural: `@${config.i18n}:entities.identifier-rule.plural`,\n icon: 'fa-light fa-barcode',\n },\n },\n} as const;\n","//#region ---- Identifier runtime keys ----\n\nexport const AXPIdentifierCommandKeys = {\n Generate: 'Identifier:Generate',\n Peek: 'Identifier:Peek',\n Validate: 'Identifier:Validate',\n CommitWithToken: 'Identifier:CommitWithToken',\n CommitByCode: 'Identifier:CommitByCode',\n} as const;\n\n//#endregion\n","\n//#region ---- Identifier rule domain model ----\n\nimport { AXPIdentifierRule } from \"../../identifier-rule.types\";\n\nexport interface AXMIdentifierManagementIdentifierRuleEntityModel extends AXPIdentifierRule {\n id: string;\n}\n\n//#endregion\n","//#region ---- Contracts barrel ----\n\nexport * from './permission.keys';\n\nexport * from './menu.keys';\n\nexport * from './identifier-rule.types';\n\nexport { IDENTIFIER_RULE_ENTITY } from './identifier-rule.types';\n\nexport * from './root-config';\n\nexport * from './runtime.keys';\n\n//#endregion\n\nexport * from './entities';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;AAAA;;;AAGG;AACI,MAAM,qCAAqC,GAAG;AACnD,IAAA,MAAM,EAAE,wCAAwC;AAChD,IAAA,oBAAoB,EAAE,sDAAsD;AAC5E,IAAA,eAAe,EAAE,iDAAiD;AAClE,IAAA,qBAAqB,EAAE,uDAAuD;AAC9E,IAAA,oBAAoB,EAAE,sDAAsD;AAC5E,IAAA,mBAAmB,EAAE,qDAAqD;AAC1E,IAAA,sBAAsB,EAAE,wDAAwD;AAChF,IAAA,wBAAwB,EAAE,0DAA0D;AACpF,IAAA,eAAe,EAAE,iDAAiD;AAClE,IAAA,WAAW,EAAE,6CAA6C;;AAG5D;;;AAGG;AACI,MAAM,kBAAkB,GAAG;AAChC,IAAA,oBAAoB,EAAE;QACpB,UAAU,EAAE,qCAAqC,CAAC,mBAAmB;QACrE,eAAe,EAAE,qCAAqC,CAAC,mBAAmB;AAC3E,KAAA;;;ACzBI,MAAM,+BAA+B,GAAG;AAC7C,IAAA,IAAI,EAAE,2BAA2B;AACjC,IAAA,eAAe,EAAE,2CAA2C;;;ACF9D;AAMA;;ACNA,MAAM,MAAM,GAAG;AACb,IAAA,IAAI,EAAE,uBAAuB;AAC7B,IAAA,MAAM,EAAE,sBAAsB;CACtB;AAEH,MAAM,UAAU,GAAG;IACxB,MAAM;AACN,IAAA,MAAM,EAAE;AACN,QAAA,MAAM,EAAE,uBAAuB;QAC/B,IAAI,EAAE,MAAM,CAAC,MAAM;AACnB,QAAA,KAAK,EAAE,CAAA,CAAA,EAAI,MAAM,CAAC,IAAI,CAAA,aAAA,CAAe;AACrC,QAAA,IAAI,EAAE,qBAAqB;AAC5B,KAAA;AACD,IAAA,QAAQ,EAAE;AACR,QAAA,cAAc,EAAE;AACd,YAAA,IAAI,EAAE,gBAAgB;AACtB,YAAA,MAAM,EAAE,CAAA,EAAG,MAAM,CAAC,MAAM,CAAA,eAAA,CAAiB;AACzC,YAAA,KAAK,EAAE,CAAA,CAAA,EAAI,MAAM,CAAC,IAAI,CAAA,+BAAA,CAAiC;AACvD,YAAA,WAAW,EAAE,CAAA,CAAA,EAAI,MAAM,CAAC,IAAI,CAAA,gCAAA,CAAkC;AAC9D,YAAA,IAAI,EAAE,qBAAqB;AAC5B,SAAA;AACF,KAAA;;;ACrBH;AAEO,MAAM,wBAAwB,GAAG;AACtC,IAAA,QAAQ,EAAE,qBAAqB;AAC/B,IAAA,IAAI,EAAE,iBAAiB;AACvB,IAAA,QAAQ,EAAE,qBAAqB;AAC/B,IAAA,eAAe,EAAE,4BAA4B;AAC7C,IAAA,YAAY,EAAE,yBAAyB;;AAGzC;;ACTA;AAQA;;ACTA;;ACAA;;AAEG;;;;"}
@@ -1,11 +1,14 @@
1
1
  import * as i0 from '@angular/core';
2
2
  import { InjectionToken, inject, Injectable, NgModule } from '@angular/core';
3
- import { AXPEntityService, AXP_ENTITY_ACTION_PLUGIN, AXP_ENTITY_DEFINITION_LOADER, AXPEntityStorageService } from '@acorex-platform/framework-client/layout/entity';
3
+ import { AXPEntityService, AXP_ENTITY_ACTION_PLUGIN } from '@acorex-platform/framework-client/layout/entity';
4
4
  import { AXP_EXPRESSION_EVALUATOR_SCOPE_PROVIDER, AXP_MODULE_MANIFEST_PROVIDER, AXPDataGenerator } from '@acorex-platform/framework-client/core';
5
- import { RootConfig, AXMPermissionsKeys, AXPIdentifierManagementMenuKeys, IDENTIFIER_RULE_ENTITY } from '@acorex-platform/module-identifier-management-client/contracts';
5
+ import { RootConfig, AXPApplicationsPlatformPermissionKeys, AXPIdentifierManagementMenuKeys, IDENTIFIER_RULE_ENTITY } from '@acorex-platform/module-identifier-management-client/contracts';
6
6
  import { AXP_MENU_PROVIDER, AXP_SETTING_DEFINITION_PROVIDER, AXPSearchCommandProvider } from '@acorex-platform/framework-client/common';
7
7
  import { AXPSessionService, AXP_PERMISSION_DEFINITION_PROVIDER } from '@acorex-platform/framework-client/auth';
8
- import { AXPCommonMenuKeys } from '@acorex-platform/module-common-client/contracts';
8
+ import { AXPCommonPermissionGroupKeys, AXPCommonMenuKeys } from '@acorex-platform/module-common-client/contracts';
9
+ import { AXPQueryService } from '@acorex-platform/framework-client/runtime';
10
+ import { runtimeQueryCollectionData } from '@acorex-platform/framework-shared/core';
11
+ import { ENTITY_QUERY_DEFAULT } from '@acorex-platform/framework-shared/runtime';
9
12
  import { get } from 'lodash';
10
13
 
11
14
  //#region ---- Imports ----
@@ -21,6 +24,8 @@ const IdentifierManagementManifest = {
21
24
  title: RootConfig.module.title,
22
25
  icon: RootConfig.module.icon,
23
26
  i18n: RootConfig.config.i18n,
27
+ type: 'platform',
28
+ domain: 'platform',
24
29
  required: true,
25
30
  // Module dependencies (optional)
26
31
  };
@@ -98,16 +103,30 @@ const identifierPlugin = {
98
103
  },
99
104
  };
100
105
 
106
+ //#endregion
107
+ //#region ---- Permission Definition Provider ----
108
+ /**
109
+ * Registers MaintainIdentifiers under Applications & Platform.
110
+ */
101
111
  class AXMPermissionDefinitionProvider {
102
112
  async define(context) {
103
- const keys = AXMPermissionsKeys.IdentifierManagement;
113
+ const keys = AXPApplicationsPlatformPermissionKeys;
114
+ const groups = AXPCommonPermissionGroupKeys;
115
+ const P = '@common:applications-platform.permissions';
116
+ const G = '@common:permission-groups';
117
+ context.addGroup(groups.ApplicationsPlatform.Root, `${G}.applications-platform.title`, `${G}.applications-platform.description`, { order: 110 });
104
118
  context
105
- .addGroup(RootConfig.module.name, '@identifier-management:permissions.manage.title', '@identifier-management:permissions.manage.description')
106
- .addPermission(keys.IdentifierRules, '@identifier-management:entities.identifier-rule.permissions.manage.title', '@identifier-management:entities.identifier-rule.permissions.manage.description')
119
+ .addGroup(groups.ApplicationsPlatform.Configuration, `${G}.applications-platform-configuration.title`, `${G}.applications-platform-configuration.description`, { parent: groups.ApplicationsPlatform.Root, order: 30 })
120
+ .addPermission(keys.MaintainIdentifiers, `${P}.maintain-identifiers.title`, `${P}.maintain-identifiers.description`, { modules: ['IdentifierManagement'], requiredFeatures: ['IdentifierManagement'] })
107
121
  .endPermission()
108
122
  .endGroup();
109
123
  }
124
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXMPermissionDefinitionProvider, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
125
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXMPermissionDefinitionProvider }); }
110
126
  }
127
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXMPermissionDefinitionProvider, decorators: [{
128
+ type: Injectable
129
+ }] });
111
130
 
112
131
  class AXMMenuProvider {
113
132
  constructor() {
@@ -124,44 +143,13 @@ class AXMMenuProvider {
124
143
  priority: 4,
125
144
  policy: {
126
145
  features: [module.name],
127
- permissions: [AXMPermissionsKeys.IdentifierManagement.IdentifierRules],
146
+ permissions: [AXPApplicationsPlatformPermissionKeys.MaintainIdentifiers],
128
147
  },
129
148
  },
130
149
  ]);
131
150
  }
132
151
  }
133
152
 
134
- class AXMEntityProvider {
135
- preload() {
136
- const module = RootConfig.module.name;
137
- return Array.from(Object.values(RootConfig.entities)).map((entity) => ({
138
- module: module,
139
- entity: entity.name,
140
- }));
141
- }
142
- async get(moduleName, entityName) {
143
- if (moduleName == RootConfig.module.name) {
144
- switch (entityName) {
145
- case RootConfig.entities.identifierRule.name:
146
- return (await import('@acorex-platform/module-identifier-management-client/contracts')).identifierRuleFactory();
147
- default:
148
- break;
149
- }
150
- }
151
- return null;
152
- }
153
- async list() {
154
- const m = RootConfig.module.name;
155
- const entities = Object.values(RootConfig.entities);
156
- return Promise.resolve(entities.map((e) => ({ name: e.name, module: m })));
157
- }
158
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXMEntityProvider, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
159
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXMEntityProvider }); }
160
- }
161
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXMEntityProvider, decorators: [{
162
- type: Injectable
163
- }] });
164
-
165
153
  class AXMSettingProvider {
166
154
  async provide(context) {
167
155
  // context
@@ -191,9 +179,9 @@ class AXMSettingProvider {
191
179
  }
192
180
 
193
181
  class AXMIdentifierManagementModule {
194
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXMIdentifierManagementModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
195
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "21.2.9", ngImport: i0, type: AXMIdentifierManagementModule }); }
196
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXMIdentifierManagementModule, providers: [
182
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXMIdentifierManagementModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
183
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "22.0.8", ngImport: i0, type: AXMIdentifierManagementModule }); }
184
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXMIdentifierManagementModule, providers: [
197
185
  // Module-specific providers (not part of manifest system)
198
186
  {
199
187
  provide: AXP_ENTITY_ACTION_PLUGIN,
@@ -222,11 +210,6 @@ class AXMIdentifierManagementModule {
222
210
  useClass: AXMMenuProvider,
223
211
  multi: true,
224
212
  },
225
- {
226
- provide: AXP_ENTITY_DEFINITION_LOADER,
227
- useClass: AXMEntityProvider,
228
- multi: true,
229
- },
230
213
  {
231
214
  provide: AXP_SETTING_DEFINITION_PROVIDER,
232
215
  useClass: AXMSettingProvider,
@@ -234,7 +217,7 @@ class AXMIdentifierManagementModule {
234
217
  },
235
218
  ] }); }
236
219
  }
237
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXMIdentifierManagementModule, decorators: [{
220
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXMIdentifierManagementModule, decorators: [{
238
221
  type: NgModule,
239
222
  args: [{
240
223
  imports: [],
@@ -269,11 +252,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImpor
269
252
  useClass: AXMMenuProvider,
270
253
  multi: true,
271
254
  },
272
- {
273
- provide: AXP_ENTITY_DEFINITION_LOADER,
274
- useClass: AXMEntityProvider,
275
- multi: true,
276
- },
277
255
  {
278
256
  provide: AXP_SETTING_DEFINITION_PROVIDER,
279
257
  useClass: AXMSettingProvider,
@@ -304,13 +282,11 @@ class AXMSearchCommandProvider extends AXPSearchCommandProvider {
304
282
 
305
283
  //#region ---- Identifier rule repository ----
306
284
  /**
307
-
308
- * Loads identifier rules from {@link IDENTIFIER_RULE_ENTITY} entity storage (mock or API).
309
-
285
+ * Loads identifier rules from {@link IDENTIFIER_RULE_ENTITY} via {@link ENTITY_QUERY_DEFAULT}.
310
286
  */
311
287
  class AXPIdentifierRuleRepository {
312
288
  constructor() {
313
- this.storage = inject(AXPEntityStorageService);
289
+ this.queryService = inject(AXPQueryService);
314
290
  }
315
291
  async findById(id) {
316
292
  const rules = await this.listAll();
@@ -322,8 +298,12 @@ class AXPIdentifierRuleRepository {
322
298
  }
323
299
  async listAll() {
324
300
  try {
325
- const response = await this.storage.query(IDENTIFIER_RULE_ENTITY, { skip: 0, take: 1000 });
326
- const items = response.items ?? [];
301
+ const response = await this.queryService.fetch(ENTITY_QUERY_DEFAULT, {
302
+ entity: IDENTIFIER_RULE_ENTITY,
303
+ skip: 0,
304
+ take: 1000,
305
+ });
306
+ const items = runtimeQueryCollectionData(response)?.items ?? [];
327
307
  return items
328
308
  .map((item) => this.mapEntityToRule(item))
329
309
  .filter((rule) => rule != null);
@@ -344,9 +324,7 @@ class AXPIdentifierRuleRepository {
344
324
  const scopeConfig = get(record, 'scopeConfig');
345
325
  const enabledLegacy = get(record, 'enabled');
346
326
  const isDisabledRaw = get(record, 'isDisabled');
347
- const isDisabled = typeof isDisabledRaw === 'boolean'
348
- ? isDisabledRaw
349
- : enabledLegacy === false;
327
+ const isDisabled = typeof isDisabledRaw === 'boolean' ? isDisabledRaw : enabledLegacy === false;
350
328
  return {
351
329
  name: nameRaw,
352
330
  title: String(get(record, 'title') ?? nameRaw),
@@ -358,10 +336,10 @@ class AXPIdentifierRuleRepository {
358
336
  : {},
359
337
  };
360
338
  }
361
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPIdentifierRuleRepository, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
362
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPIdentifierRuleRepository, providedIn: 'root' }); }
339
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXPIdentifierRuleRepository, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
340
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXPIdentifierRuleRepository, providedIn: 'root' }); }
363
341
  }
364
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPIdentifierRuleRepository, decorators: [{
342
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXPIdentifierRuleRepository, decorators: [{
365
343
  type: Injectable,
366
344
  args: [{ providedIn: 'root' }]
367
345
  }] });
@@ -411,10 +389,10 @@ class AXPTokenRegistryService {
411
389
  Array.from(this.handlers.values()).forEach(put);
412
390
  return Array.from(map.values()).sort((a, b) => (b.priority ?? 0) - (a.priority ?? 0));
413
391
  }
414
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPTokenRegistryService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
415
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPTokenRegistryService, providedIn: 'root' }); }
392
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXPTokenRegistryService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
393
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXPTokenRegistryService, providedIn: 'root' }); }
416
394
  }
417
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPTokenRegistryService, decorators: [{
395
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXPTokenRegistryService, decorators: [{
418
396
  type: Injectable,
419
397
  args: [{ providedIn: 'root' }]
420
398
  }] });
@@ -523,10 +501,10 @@ class DateToken {
523
501
  return y + m + day;
524
502
  }
525
503
  }
526
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: DateToken, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
527
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: DateToken }); }
504
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: DateToken, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
505
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: DateToken }); }
528
506
  }
529
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: DateToken, decorators: [{
507
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: DateToken, decorators: [{
530
508
  type: Injectable
531
509
  }] });
532
510
  class ConstToken {
@@ -537,10 +515,10 @@ class ConstToken {
537
515
  async eval(token) {
538
516
  return token.args.join(':');
539
517
  }
540
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: ConstToken, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
541
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: ConstToken }); }
518
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: ConstToken, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
519
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: ConstToken }); }
542
520
  }
543
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: ConstToken, decorators: [{
521
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: ConstToken, decorators: [{
544
522
  type: Injectable
545
523
  }] });
546
524
  class FieldToken {
@@ -555,10 +533,10 @@ class FieldToken {
555
533
  const value = ctx.request.payload?.[key];
556
534
  return value == null ? '' : String(value);
557
535
  }
558
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: FieldToken, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
559
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: FieldToken }); }
536
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: FieldToken, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
537
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: FieldToken }); }
560
538
  }
561
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: FieldToken, decorators: [{
539
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: FieldToken, decorators: [{
562
540
  type: Injectable
563
541
  }] });
564
542
  class TenantToken {
@@ -569,10 +547,10 @@ class TenantToken {
569
547
  async eval(_t, ctx) {
570
548
  return ctx.request.tenantId ?? '';
571
549
  }
572
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: TenantToken, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
573
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: TenantToken }); }
550
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: TenantToken, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
551
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: TenantToken }); }
574
552
  }
575
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: TenantToken, decorators: [{
553
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: TenantToken, decorators: [{
576
554
  type: Injectable
577
555
  }] });
578
556
  class AppToken {
@@ -583,10 +561,10 @@ class AppToken {
583
561
  async eval(_t, ctx) {
584
562
  return ctx.request.appId ?? '';
585
563
  }
586
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AppToken, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
587
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AppToken }); }
564
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AppToken, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
565
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AppToken }); }
588
566
  }
589
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AppToken, decorators: [{
567
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AppToken, decorators: [{
590
568
  type: Injectable
591
569
  }] });
592
570
  class SeqToken {
@@ -601,10 +579,10 @@ class SeqToken {
601
579
  const n = await ctx.services.sequence.next(ctx.cache.get('scopeHash'), ruleId, { pad, consume });
602
580
  return pad ? padNumber(n, pad) : String(n);
603
581
  }
604
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: SeqToken, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
605
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: SeqToken }); }
582
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: SeqToken, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
583
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: SeqToken }); }
606
584
  }
607
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: SeqToken, decorators: [{
585
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: SeqToken, decorators: [{
608
586
  type: Injectable
609
587
  }] });
610
588
  class CheckToken {
@@ -617,10 +595,10 @@ class CheckToken {
617
595
  const acc = String(ctx.cache.get('__acc__') ?? '');
618
596
  return ctx.services.checksum.compute(algo, acc);
619
597
  }
620
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: CheckToken, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
621
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: CheckToken }); }
598
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: CheckToken, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
599
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: CheckToken }); }
622
600
  }
623
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: CheckToken, decorators: [{
601
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: CheckToken, decorators: [{
624
602
  type: Injectable
625
603
  }] });
626
604
 
@@ -638,5 +616,5 @@ const AXP_DEFAULT_TOKEN_PROVIDERS = [
638
616
  * Generated bundle index. Do not edit.
639
617
  */
640
618
 
641
- export { AXMEntityProvider, AXMIdentifierManagementModule, AXMMenuProvider, AXMSearchCommandProvider, AXMSettingProvider, AXPIdentifierRuleRepository, AXPIdentifierService, AXPSimplePatternEngine, AXPTokenRegistryService, AXP_DEFAULT_TOKEN_PROVIDERS, AXP_IDENTIFIER_RULES, AXP_IDENTIFIER_SERVICE, AXP_TOKEN_HANDLERS, AppToken, CheckToken, ConstToken, DateToken, FieldToken, SeqToken, TenantToken, buildScopeHash, padNumber, uuid };
619
+ export { AXMIdentifierManagementModule, AXMMenuProvider, AXMSearchCommandProvider, AXMSettingProvider, AXPIdentifierRuleRepository, AXPIdentifierService, AXPSimplePatternEngine, AXPTokenRegistryService, AXP_DEFAULT_TOKEN_PROVIDERS, AXP_IDENTIFIER_RULES, AXP_IDENTIFIER_SERVICE, AXP_TOKEN_HANDLERS, AppToken, CheckToken, ConstToken, DateToken, FieldToken, SeqToken, TenantToken, buildScopeHash, padNumber, uuid };
642
620
  //# sourceMappingURL=acorex-platform-module-identifier-management-client.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"acorex-platform-module-identifier-management-client.mjs","sources":["../../../../libs/modules/identifier-management/client/src/lib/manifest.ts","../../../../libs/modules/identifier-management/client/src/lib/features/shared/core/identifier.types.ts","../../../../libs/modules/identifier-management/client/src/lib/features/shared/identifier-evaluator-scope.provider.ts","../../../../libs/modules/identifier-management/client/src/lib/features/shared/identifier.plugin.ts","../../../../libs/modules/identifier-management/client/src/lib/permission-definition.provider.ts","../../../../libs/modules/identifier-management/client/src/lib/menu.provider.ts","../../../../libs/modules/identifier-management/client/src/lib/entity.provider.ts","../../../../libs/modules/identifier-management/client/src/lib/setting.provider.ts","../../../../libs/modules/identifier-management/client/src/lib/identifier-management.module.ts","../../../../libs/modules/identifier-management/client/src/lib/search-command.provider.ts","../../../../libs/modules/identifier-management/client/src/lib/features/shared/core/identifier-rule.repository.ts","../../../../libs/modules/identifier-management/client/src/lib/features/shared/core/tokens.types.ts","../../../../libs/modules/identifier-management/client/src/lib/features/shared/core/token-registry.service.ts","../../../../libs/modules/identifier-management/client/src/lib/features/shared/core/engine.ts","../../../../libs/modules/identifier-management/client/src/lib/features/shared/core/utils.ts","../../../../libs/modules/identifier-management/client/src/lib/features/shared/core/tokens-default.ts","../../../../libs/modules/identifier-management/client/src/lib/features/shared/core/tokens-default.providers.ts","../../../../libs/modules/identifier-management/client/src/acorex-platform-module-identifier-management-client.ts"],"sourcesContent":["//#region ---- Imports ----\n\nimport { AXPModuleManifest } from '@acorex-platform/framework-client/core';\nimport { RootConfig } from '@acorex-platform/module-identifier-management-client/contracts';\n\n//#endregion\n\n//#region ---- Manifest Definition ----\n\n/**\n * Identifier Management Module Manifest.\n * Defines module metadata, features, and provider references.\n */\nexport const IdentifierManagementManifest: 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 required: true,\n\n // Module dependencies (optional)\n};\n\n//#endregion\n\n","//#region ---- Imports ----\n\nimport { InjectionToken } from '@angular/core';\nimport type { AXPIdentifierRule } from '@acorex-platform/module-identifier-management-client/contracts';\n\n//#endregion\n\n//#region ---- Public Types: Requests & Results ----\n\nexport interface AXPIdentifierRequest {\n /** Identifier id, e.g. 'employee-code' */\n id: string;\n /** Optional tenant partition */\n tenantId?: string;\n /** Optional application partition */\n appId?: string;\n /** Arbitrary payload for tokens to read from */\n payload?: Record<string, unknown>;\n}\n\nexport interface AXPIdentifierResult {\n code: string;\n ruleId: string;\n scopeHash: string;\n consumed: boolean;\n meta?: Record<string, unknown>;\n}\n\nexport interface AXPIdentifierPeekResult extends AXPIdentifierResult {\n consumed: false;\n commitToken: string; // opaque token for safe finalization\n}\n\n//#endregion\n\n//#region ---- Rule Definition ----\n\nexport type { AXPIdentifierRule };\n\n//#endregion\n\n//#region ---- Main Port (UI) ----\n\nexport abstract class AXPIdentifierService {\n abstract generate(req: AXPIdentifierRequest): Promise<AXPIdentifierResult>;\n abstract peek(req: AXPIdentifierRequest): Promise<AXPIdentifierPeekResult>;\n abstract validate(code: string, entity: string, tenantId?: string): Promise<boolean>;\n abstract commitWithToken(token: string): Promise<AXPIdentifierResult>;\n /** Optional helper for manual codes; stricter and may reject if not next sequence */\n abstract commitByCode(req: AXPIdentifierRequest, code: string): Promise<AXPIdentifierResult>;\n}\n\n\nexport const AXP_IDENTIFIER_SERVICE = new InjectionToken<AXPIdentifierService>('AXP_IDENTIFIER_SERVICE');\n\n//#endregion\n\n//#region ---- DI Tokens ----\n\n/** @deprecated Rules are loaded from {@link IDENTIFIER_RULE_ENTITY} entity storage. */\nexport const AXP_IDENTIFIER_RULES = new InjectionToken<AXPIdentifierRule[]>(\n 'AXP_IDENTIFIER_RULES'\n);\n\n//#endregion\n\n\n","import { AXPExpressionEvaluatorScopeProvider, AXPExpressionEvaluatorScopeProviderContext } from \"@acorex-platform/framework-shared/core\";\nimport { inject } from \"@angular/core\";\nimport { AXP_IDENTIFIER_SERVICE } from \"./core/identifier.types\";\nimport { AXPSessionService } from \"@acorex-platform/framework-client/auth\";\n\nexport class AXMIdentifierEvaluatorScopeProvider implements AXPExpressionEvaluatorScopeProvider {\n\n protected identifierService = inject(AXP_IDENTIFIER_SERVICE);\n protected sessionService = inject(AXPSessionService);\n\n async provide(context: AXPExpressionEvaluatorScopeProviderContext): Promise<void> {\n context.addScope('identifier', {\n peek: async (id: string) => {\n const identifier = await this.identifierService.peek({\n id,\n tenantId: this.sessionService.tenant?.id,\n appId: this.sessionService.application?.id,\n });\n return identifier.code;\n },\n generate: async (id: string) => {\n const identifier = await this.identifierService.generate({\n id,\n tenantId: this.sessionService.tenant?.id,\n appId: this.sessionService.application?.id,\n });\n return identifier.code;\n }\n })\n }\n}","import { AXPEntityActionPlugin } from \"@acorex-platform/framework-client/layout/entity\";\n\nconst IDENTIFIER_DEFAULT_VALUE = (rule: string) => `{{ identifier.peek(\"${rule}\") }}`;\n\nexport const identifierPlugin: AXPEntityActionPlugin = {\n name: 'identifier',\n order: 40,\n apply: (ctx, options: { field: string; rule: string }) => {\n if (!options?.field || !options?.rule) return;\n\n const defaultValue = IDENTIFIER_DEFAULT_VALUE(options.rule);\n const entity = ctx.entity as any;\n\n // Direct property: update in-place\n const propHandle = ctx.properties.find(options.field);\n const existingProp = propHandle.get();\n if (existingProp) {\n propHandle.update((p) => {\n const next = { ...p } as any;\n next.schema = { ...(next.schema ?? {}) };\n next.schema.defaultValue = defaultValue;\n return next;\n });\n } else if (options.field.includes('.')) {\n // Nested path (e.g. party.code): use generic propertyOverrides extension\n entity.extensions ??= {};\n entity.extensions.propertyOverrides ??= {};\n entity.extensions.propertyOverrides[options.field] = {\n schema: { ...(entity.extensions.propertyOverrides[options.field]?.schema ?? {}), defaultValue },\n };\n }\n\n entity.extensions ??= {};\n entity.extensions.identifier = { field: options.field, rule: options.rule };\n },\n};\n\n","import {\n AXPPermissionDefinitionProvider,\n AXPPermissionDefinitionProviderContext,\n} from '@acorex-platform/framework-client/auth';\nimport { AXMPermissionsKeys, RootConfig } from '@acorex-platform/module-identifier-management-client/contracts';\n\nexport class AXMPermissionDefinitionProvider implements AXPPermissionDefinitionProvider {\n async define(context: AXPPermissionDefinitionProviderContext): Promise<void> {\n const keys = AXMPermissionsKeys.IdentifierManagement;\n\n context\n .addGroup(\n RootConfig.module.name,\n '@identifier-management:permissions.manage.title',\n '@identifier-management:permissions.manage.description',\n )\n .addPermission(\n keys.IdentifierRules,\n '@identifier-management:entities.identifier-rule.permissions.manage.title',\n '@identifier-management:entities.identifier-rule.permissions.manage.description',\n )\n .endPermission()\n .endGroup();\n }\n}\n","import { AXPCommonMenuKeys } from '@acorex-platform/module-common-client/contracts';\nimport {\n AXPIdentifierManagementMenuKeys,\n AXMPermissionsKeys,\n RootConfig,\n} from '@acorex-platform/module-identifier-management-client/contracts';\nimport { AXPMenuProvider, AXPMenuProviderContext } from '@acorex-platform/framework-client/common';\nimport { AXPEntityService } from '@acorex-platform/framework-client/layout/entity';\nimport { inject } from '@angular/core';\n\nexport class AXMMenuProvider implements AXPMenuProvider {\n private entityService = inject(AXPEntityService);\n\n async provide(context: AXPMenuProviderContext): Promise<void> {\n const module = RootConfig.module;\n\n context.find(AXPCommonMenuKeys.Platform).addItems([\n {\n name: AXPIdentifierManagementMenuKeys.IdentifierRules,\n text: RootConfig.entities.identifierRule.titlePlural,\n path: this.entityService.createPath(module.name, RootConfig.entities.identifierRule.name),\n icon: RootConfig.entities.identifierRule.icon,\n priority: 4,\n policy: {\n features: [module.name],\n permissions: [AXMPermissionsKeys.IdentifierManagement.IdentifierRules],\n },\n },\n ]);\n }\n}\n","\nimport { AXPEntity } from '@acorex-platform/framework-shared/entity';\nimport {\n AXPEntityDefinitionLoader,\n AXPEntityDefinitionPreloader,\n AXPEntityPreloadEntity,\n} from '@acorex-platform/framework-client/layout/entity';\nimport { Injectable } from '@angular/core';\nimport { RootConfig } from '@acorex-platform/module-identifier-management-client/contracts';\n\n@Injectable()\nexport class AXMEntityProvider implements AXPEntityDefinitionLoader, AXPEntityDefinitionPreloader {\n public preload(): AXPEntityPreloadEntity[] {\n const module = RootConfig.module.name;\n return Array.from(Object.values(RootConfig.entities)).map((entity: { name: string }) => ({\n module: module,\n entity: entity.name,\n }));\n }\n\n async get(moduleName: string, entityName: string): Promise<AXPEntity | null> {\n if (moduleName == RootConfig.module.name) {\n switch (entityName) {\n case RootConfig.entities.identifierRule.name:\n return (await import('@acorex-platform/module-identifier-management-client/contracts')).identifierRuleFactory();\n default:\n break;\n }\n }\n return null;\n }\n\n async list(): Promise<{ name: string; module: string }[]> {\n const m = RootConfig.module.name;\n const entities = Object.values(RootConfig.entities) as { name: string }[];\n return Promise.resolve(entities.map((e) => ({ name: e.name, module: m })));\n }\n}\n","import { AXPSettingDefinitionProvider, AXPSettingDefinitionProviderContext } from '@acorex-platform/framework-client/common';\n\nexport class AXMSettingProvider implements AXPSettingDefinitionProvider {\n async provide(context: AXPSettingDefinitionProviderContext): Promise<void> {\n // context\n // // Add Form Template Group\n // .addGroup('form-template', 'Form Template', 'Settings related to form templates.', RootConfig.module.icon)\n // // Start Interface Section\n // .addSection('interface', 'UI Interface', 'Customize the user interface for forms.')\n // .addSetting({\n // key: 'history-panel',\n // title: 'Show History Panel',\n // scope: 'U',\n // isInherited: true,\n // defaultValue: false,\n // widget: {\n // type: AXPWidgetsCatalog.toggle,\n // },\n // description: 'Enable or disable the history panel for forms.',\n // validationRules: [\n // {\n // rule: 'required',\n // },\n // ],\n // })\n // .endSection()\n // .endGroup();\n }\n}\n","import { NgModule } from \"@angular/core\";\nimport { AXP_ENTITY_ACTION_PLUGIN, AXP_ENTITY_DEFINITION_LOADER } from '@acorex-platform/framework-client/layout/entity';\nimport { AXP_EXPRESSION_EVALUATOR_SCOPE_PROVIDER, AXP_MODULE_MANIFEST_PROVIDER } from '@acorex-platform/framework-client/core';\nimport { IdentifierManagementManifest } from './manifest';\nimport { AXP_MENU_PROVIDER, AXP_SETTING_DEFINITION_PROVIDER } from '@acorex-platform/framework-client/common';\nimport { AXP_PERMISSION_DEFINITION_PROVIDER } from '@acorex-platform/framework-client/auth';\nimport { AXMIdentifierEvaluatorScopeProvider } from './features/shared/identifier-evaluator-scope.provider';\nimport { identifierPlugin } from \"./features/shared/identifier.plugin\";\nimport { AXMPermissionDefinitionProvider } from './permission-definition.provider';\nimport { AXMMenuProvider } from './menu.provider';\nimport { AXMEntityProvider } from './entity.provider';\nimport { AXMSettingProvider } from './setting.provider';\n\n@NgModule({\n imports: [],\n exports: [],\n declarations: [],\n providers: [\n // Module-specific providers (not part of manifest system)\n {\n provide: AXP_ENTITY_ACTION_PLUGIN,\n useValue: identifierPlugin,\n multi: true,\n },\n {\n provide: AXP_EXPRESSION_EVALUATOR_SCOPE_PROVIDER,\n useClass: AXMIdentifierEvaluatorScopeProvider,\n multi: true,\n },\n // Module Manifest Provider\n {\n provide: AXP_MODULE_MANIFEST_PROVIDER,\n useValue: IdentifierManagementManifest,\n multi: true,\n },\n // Provider references (now using tokens)\n {\n provide: AXP_PERMISSION_DEFINITION_PROVIDER,\n useClass: AXMPermissionDefinitionProvider,\n multi: true,\n },\n {\n provide: AXP_MENU_PROVIDER,\n useClass: AXMMenuProvider,\n multi: true,\n },\n {\n provide: AXP_ENTITY_DEFINITION_LOADER,\n useClass: AXMEntityProvider,\n multi: true,\n },\n {\n provide: AXP_SETTING_DEFINITION_PROVIDER,\n useClass: AXMSettingProvider,\n multi: true,\n },\n ]\n})\nexport class AXMIdentifierManagementModule { }\n","import { AXPSearchCommandProvider, AXPSearchResult } from '@acorex-platform/framework-client/common';\n\nexport class AXMSearchCommandProvider extends AXPSearchCommandProvider {\n commands: AXPSearchResult[] = [\n // {\n // group: 'command',\n // title: 'New Form Template',\n // icon: RootConfig.entities.template.icon,\n // description: 'Create a new form template for designing reusable forms.', // Added description\n // commands: {\n // 'create-entity': {\n // entity: `${RootConfig.module.name}.${RootConfig.entities.template.name}`,\n // },\n // },\n // }\n ];\n}\n","import { AXPEntityStorageService } from '@acorex-platform/framework-client/layout/entity';\r\r\nimport {\r\r\n IDENTIFIER_RULE_ENTITY,\r\r\n type AXPIdentifierRule,\r\r\n} from '@acorex-platform/module-identifier-management-client/contracts';\r\r\nimport { inject, Injectable } from '@angular/core';\r\r\nimport { get } from 'lodash';\r\r\n\r\r\n//#region ---- Identifier rule repository ----\r\r\n\r\r\n/**\r\r\n * Loads identifier rules from {@link IDENTIFIER_RULE_ENTITY} entity storage (mock or API).\r\r\n */\r\r\n@Injectable({ providedIn: 'root' })\r\r\nexport class AXPIdentifierRuleRepository {\r\r\n private readonly storage = inject(AXPEntityStorageService);\r\r\n\r\r\n async findById(id: string): Promise<AXPIdentifierRule | undefined> {\r\r\n const rules = await this.listAll();\r\r\n return rules.find((rule) => rule.name === id && !rule.isDisabled);\r\r\n }\r\r\n\r\r\n async listEnabled(): Promise<AXPIdentifierRule[]> {\r\r\n const rules = await this.listAll();\r\r\n return rules.filter((rule) => !rule.isDisabled);\r\r\n }\r\r\n\r\r\n private async listAll(): Promise<AXPIdentifierRule[]> {\r\r\n try {\r\r\n const response = await this.storage.query(IDENTIFIER_RULE_ENTITY, { skip: 0, take: 1000 });\r\r\n const items = response.items ?? [];\r\r\n return items\r\r\n .map((item) => this.mapEntityToRule(item))\r\r\n .filter((rule): rule is AXPIdentifierRule => rule != null);\r\r\n } catch {\r\r\n return [];\r\r\n }\r\r\n }\r\r\n\r\r\n private mapEntityToRule(record: unknown): AXPIdentifierRule | null {\r\r\n if (!record || typeof record !== 'object') {\r\r\n return null;\r\r\n }\r\r\n const nameRaw = get(record, 'name') ?? get(record, 'id');\r\r\n const pattern = get(record, 'pattern');\r\r\n if (typeof nameRaw !== 'string' || typeof pattern !== 'string') {\r\r\n return null;\r\r\n }\r\r\n const scopeConfig = get(record, 'scopeConfig');\r\r\n const enabledLegacy = get(record, 'enabled');\r\r\n const isDisabledRaw = get(record, 'isDisabled');\r\r\n const isDisabled =\r\r\n typeof isDisabledRaw === 'boolean'\r\r\n ? isDisabledRaw\r\r\n : enabledLegacy === false;\r\r\n\r\r\n return {\r\r\n name: nameRaw,\r\r\n title: String(get(record, 'title') ?? nameRaw),\r\r\n entity: String(get(record, 'entity') ?? ''),\r\r\n pattern,\r\r\n isDisabled,\r\r\n scopeConfig:\r\r\n scopeConfig && typeof scopeConfig === 'object'\r\r\n ? (scopeConfig as AXPIdentifierRule['scopeConfig'])\r\r\n : {},\r\r\n };\r\r\n }\r\r\n}\r\r\n\r\r\n//#endregion\r\r\n","//#region ---- Token Contracts ----\n\nimport { AXPIdentifierRequest } from './identifier.types';\nimport { InjectionToken } from '@angular/core';\n\nexport interface AXPPatternToken {\n name: string;\n args: string[];\n raw: string;\n index: number;\n}\n\nexport interface AXPEvalServices {\n sequence: AXPSequenceProvider;\n checksum: AXPChecksumProvider;\n lookup?: AXPLookupProvider;\n policy?: AXPPolicyProvider;\n clock?: AXPClockProvider;\n}\n\nexport interface AXPEvalContext {\n pattern: string;\n request: AXPIdentifierRequest;\n cache: Map<string, unknown>;\n now: Date;\n services: AXPEvalServices;\n evaluationMode: 'preview' | 'commit';\n}\n\nexport interface AXPTokenHandler {\n readonly name: string;\n readonly priority?: number;\n validate?(token: AXPPatternToken): void | never;\n eval(token: AXPPatternToken, ctx: AXPEvalContext): Promise<string>;\n meta?: {\n title?: string;\n description?: string;\n category?: string;\n examples?: string[];\n argHints?: string[];\n version?: string;\n };\n}\n\nexport interface AXPTokenRegistry {\n register(handler: AXPTokenHandler): void;\n unregister(name: string): void;\n get(name: string): AXPTokenHandler | undefined;\n list(): AXPTokenHandler[];\n}\n\n//#endregion\n\n//#region ---- Sequence & Utilities ----\n\nexport interface AXPSequenceProvider {\n next(scopeHash: string, ruleId: string, options?: { pad?: number; consume?: boolean }): Promise<number>;\n}\n\nexport interface AXPChecksumProvider {\n compute(algo: 'luhn' | 'mod11', input: string): string;\n}\n\nexport interface AXPLookupProvider {\n get(key: string, params?: Record<string, unknown>): Promise<string | undefined>;\n}\n\nexport interface AXPPolicyProvider {\n isAllowed(tokenName: string, request: AXPIdentifierRequest): boolean;\n}\n\nexport interface AXPClockProvider {\n now(): Date;\n}\n\n//#endregion\n\n//#region ---- DI Tokens ----\n\nexport const AXP_TOKEN_HANDLERS = new InjectionToken<AXPTokenHandler[]>(\n 'AXP_TOKEN_HANDLERS'\n);\n\n//#endregion\n\n\n","//#region ---- Imports ----\n\nimport { Injectable, inject } from '@angular/core';\nimport { AXPTokenHandler, AXPTokenRegistry, AXP_TOKEN_HANDLERS } from './tokens.types';\n\n//#endregion\n\n@Injectable({ providedIn: 'root' })\nexport class AXPTokenRegistryService implements AXPTokenRegistry {\n //#region ---- Fields ----\n\n private readonly handlers = new Map<string, AXPTokenHandler>();\n private readonly providerHandlers = inject(AXP_TOKEN_HANDLERS, { optional: true }) ?? [];\n\n //#endregion\n\n //#region ---- Public API ----\n\n register(handler: AXPTokenHandler): void {\n const existing = this.handlers.get(handler.name);\n if (!existing || (handler.priority ?? 0) > (existing.priority ?? 0)) {\n this.handlers.set(handler.name, handler);\n }\n }\n\n unregister(name: string): void {\n this.handlers.delete(name);\n }\n\n get(name: string): AXPTokenHandler | undefined {\n // provider-provided take precedence by priority\n const fromProviders = this.providerHandlers\n .filter((h) => h.name === name)\n .sort((a, b) => (b.priority ?? 0) - (a.priority ?? 0))[0];\n if (fromProviders) return fromProviders;\n return this.handlers.get(name);\n }\n\n list(): AXPTokenHandler[] {\n const map = new Map<string, AXPTokenHandler>();\n const put = (h: AXPTokenHandler) => {\n const prev = map.get(h.name);\n if (!prev || (h.priority ?? 0) > (prev.priority ?? 0)) map.set(h.name, h);\n };\n this.providerHandlers.forEach(put);\n Array.from(this.handlers.values()).forEach(put);\n return Array.from(map.values()).sort((a, b) => (b.priority ?? 0) - (a.priority ?? 0));\n }\n\n //#endregion\n}\n\n\n","//#region ---- Imports ----\n\nimport { AXPEvalContext, AXPPatternToken } from './tokens.types';\nimport { inject } from '@angular/core';\nimport { AXPTokenRegistryService } from './token-registry.service';\n\n//#endregion\n\n//#region ---- Engine Contracts ----\n\nexport type AXPCompiledFragment = AXPPatternToken | { type: 'literal'; text: string };\n\nexport interface AXPCompiledPattern {\n pattern: string;\n tokens: AXPCompiledFragment[];\n}\n\nexport interface AXPPatternEngine {\n compile(pattern: string): AXPCompiledPattern;\n evaluate(compiled: AXPCompiledPattern, ctx: AXPEvalContext): Promise<string>;\n}\n\n//#endregion\n\n//#region ---- Simple Pattern Engine Impl ----\n\nconst TOKEN_REGEX = /\\{([^{}]+)\\}/g; // matches {token[:args]}\n\nexport class AXPSimplePatternEngine implements AXPPatternEngine {\n private readonly registry = inject(AXPTokenRegistryService);\n\n compile(pattern: string): AXPCompiledPattern {\n const tokens: AXPCompiledFragment[] = [];\n let match: RegExpExecArray | null;\n let index = 0;\n let lastIndex = 0;\n while ((match = TOKEN_REGEX.exec(pattern)) !== null) {\n // push any literal text before this token\n const literal = pattern.slice(lastIndex, match.index);\n if (literal) {\n tokens.push({ type: 'literal', text: literal });\n }\n const raw = match[0];\n const inner = match[1];\n const [name, ...args] = inner.split(':');\n const token: AXPPatternToken = {\n name: name.trim(),\n args: args.length ? inner.substring(inner.indexOf(':') + 1).split(':') : [],\n raw,\n index: index++,\n };\n const handler = this.registry.get(token.name);\n if (!handler) {\n throw new Error(`Unknown token: ${token.name}`);\n }\n handler.validate?.(token);\n tokens.push(token);\n lastIndex = match.index + raw.length;\n }\n // trailing literal\n const tail = pattern.slice(lastIndex);\n if (tail) {\n tokens.push({ type: 'literal', text: tail });\n }\n return { pattern, tokens };\n }\n\n async evaluate(compiled: AXPCompiledPattern, ctx: AXPEvalContext): Promise<string> {\n let built = '';\n for (const frag of compiled.tokens) {\n if ((frag as any).type === 'literal') {\n built += (frag as any).text as string;\n continue;\n }\n const token = frag as AXPPatternToken;\n ctx.cache.set('__acc__', built);\n const handler = this.registry.get(token.name);\n if (!handler) {\n throw new Error(`Unknown token at eval: ${token.name}`);\n }\n const fragment = await handler.eval(token, ctx);\n built += fragment;\n }\n return built;\n }\n}\n\n//#endregion\n\n\n","//#region ---- Imports ----\n\nimport {AXPDataGenerator} from '@acorex-platform/framework-client/core';\n\n//#endregion\n\n//#region ---- Utility Functions ----\n\nexport function buildScopeHash(parts: Array<string | undefined>): string {\n return parts.filter(Boolean).join('|');\n}\n\nexport function padNumber(num: number, size: number): string {\n const s = String(num);\n if (s.length >= size) return s;\n return '0'.repeat(size - s.length) + s;\n}\n\nexport function uuid(): string {\n return AXPDataGenerator.uuid();\n}\n\n//#endregion\n\n","//#region ---- Imports ----\n\nimport { AXPEvalContext, AXPPatternToken, AXPTokenHandler } from './tokens.types';\nimport { padNumber } from './utils';\nimport { Injectable } from '@angular/core';\n\n//#endregion\n\n//#region ---- Built-in Token Handlers (Injectable) ----\n\n@Injectable()\nexport class DateToken implements AXPTokenHandler {\n readonly name = 'date';\n readonly meta = { title: 'Date', description: 'Formats current date', argHints: ['YYYY', 'YYYYMM', 'YYYYMMDD'] };\n async eval(token: AXPPatternToken, ctx: AXPEvalContext): Promise<string> {\n const fmt = token.args[0] ?? 'YYYYMMDD';\n const d = ctx.services.clock?.now() ?? ctx.now;\n const y = String(d.getFullYear());\n const m = padNumber(d.getMonth() + 1, 2);\n const day = padNumber(d.getDate(), 2);\n switch (fmt) {\n case 'YYYY':\n return y;\n case 'YYYYMM':\n return y + m;\n case 'YYYYMMDD':\n default:\n return y + m + day;\n }\n }\n}\n\n@Injectable()\nexport class ConstToken implements AXPTokenHandler {\n readonly name = 'const';\n readonly meta = { title: 'Constant', description: 'Fixed literal value' };\n async eval(token: AXPPatternToken): Promise<string> {\n return token.args.join(':');\n }\n}\n\n@Injectable()\nexport class FieldToken implements AXPTokenHandler {\n readonly name = 'field';\n readonly meta = { title: 'Field', description: 'Reads a value from request.payload' };\n async eval(token: AXPPatternToken, ctx: AXPEvalContext): Promise<string> {\n const key = token.args[0];\n if (!key) return '';\n const value = ctx.request.payload?.[key];\n return value == null ? '' : String(value);\n }\n}\n\n@Injectable()\nexport class TenantToken implements AXPTokenHandler {\n readonly name = 'tenant';\n readonly meta = { title: 'Tenant', description: 'Tenant scope identifier' };\n async eval(_t: AXPPatternToken, ctx: AXPEvalContext): Promise<string> {\n return ctx.request.tenantId ?? '';\n }\n}\n\n@Injectable()\nexport class AppToken implements AXPTokenHandler {\n readonly name = 'app';\n readonly meta = { title: 'App', description: 'Application scope identifier' };\n async eval(_t: AXPPatternToken, ctx: AXPEvalContext): Promise<string> {\n return ctx.request.appId ?? '';\n }\n}\n\n@Injectable()\nexport class SeqToken implements AXPTokenHandler {\n readonly name = 'seq';\n readonly meta = { title: 'Sequence', description: 'Auto-increment sequence', argHints: ['pad'] };\n async eval(token: AXPPatternToken, ctx: AXPEvalContext): Promise<string> {\n const pad = Number(token.args[0] ?? '0') || 0;\n const consume = ctx.evaluationMode === 'commit';\n const ruleId = ctx.cache.get('ruleId') as string;\n const n = await ctx.services.sequence.next(ctx.cache.get('scopeHash') as string, ruleId, { pad, consume });\n return pad ? padNumber(n, pad) : String(n);\n }\n}\n\n@Injectable()\nexport class CheckToken implements AXPTokenHandler {\n readonly name = 'check';\n readonly meta = { title: 'Checksum', description: 'Checksum of the string built so far', argHints: ['luhn|mod11'] };\n async eval(token: AXPPatternToken, ctx: AXPEvalContext): Promise<string> {\n const algo = (token.args[0] as 'luhn' | 'mod11') ?? 'luhn';\n const acc = String(ctx.cache.get('__acc__') ?? '');\n return ctx.services.checksum.compute(algo, acc);\n }\n}\n\n//#endregion\n","import { Provider } from '@angular/core';\nimport { AXP_TOKEN_HANDLERS } from './tokens.types';\nimport { AppToken, CheckToken, ConstToken, DateToken, FieldToken, SeqToken, TenantToken } from './tokens-default';\n\nexport const AXP_DEFAULT_TOKEN_PROVIDERS: Provider[] = [\n { provide: AXP_TOKEN_HANDLERS, useClass: DateToken, multi: true },\n { provide: AXP_TOKEN_HANDLERS, useClass: ConstToken, multi: true },\n { provide: AXP_TOKEN_HANDLERS, useClass: FieldToken, multi: true },\n { provide: AXP_TOKEN_HANDLERS, useClass: TenantToken, multi: true },\n { provide: AXP_TOKEN_HANDLERS, useClass: AppToken, multi: true },\n { provide: AXP_TOKEN_HANDLERS, useClass: SeqToken, multi: true },\n { provide: AXP_TOKEN_HANDLERS, useClass: CheckToken, multi: true },\n];\n\n\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"acorex-platform-module-identifier-management-client.mjs","sources":["../../../../libs/modules/identifier-management/client/src/lib/manifest.ts","../../../../libs/modules/identifier-management/client/src/lib/features/shared/core/identifier.types.ts","../../../../libs/modules/identifier-management/client/src/lib/features/shared/identifier-evaluator-scope.provider.ts","../../../../libs/modules/identifier-management/client/src/lib/features/shared/identifier.plugin.ts","../../../../libs/modules/identifier-management/client/src/lib/permission-definition.provider.ts","../../../../libs/modules/identifier-management/client/src/lib/menu.provider.ts","../../../../libs/modules/identifier-management/client/src/lib/setting.provider.ts","../../../../libs/modules/identifier-management/client/src/lib/identifier-management.module.ts","../../../../libs/modules/identifier-management/client/src/lib/search-command.provider.ts","../../../../libs/modules/identifier-management/client/src/lib/features/shared/core/identifier-rule.repository.ts","../../../../libs/modules/identifier-management/client/src/lib/features/shared/core/tokens.types.ts","../../../../libs/modules/identifier-management/client/src/lib/features/shared/core/token-registry.service.ts","../../../../libs/modules/identifier-management/client/src/lib/features/shared/core/engine.ts","../../../../libs/modules/identifier-management/client/src/lib/features/shared/core/utils.ts","../../../../libs/modules/identifier-management/client/src/lib/features/shared/core/tokens-default.ts","../../../../libs/modules/identifier-management/client/src/lib/features/shared/core/tokens-default.providers.ts","../../../../libs/modules/identifier-management/client/src/acorex-platform-module-identifier-management-client.ts"],"sourcesContent":["//#region ---- Imports ----\n\nimport { AXPModuleManifest } from '@acorex-platform/framework-client/core';\nimport { RootConfig } from '@acorex-platform/module-identifier-management-client/contracts';\n\n//#endregion\n\n//#region ---- Manifest Definition ----\n\n/**\n * Identifier Management Module Manifest.\n * Defines module metadata, features, and provider references.\n */\nexport const IdentifierManagementManifest: 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 ---- Imports ----\n\nimport { InjectionToken } from '@angular/core';\nimport type { AXPIdentifierRule } from '@acorex-platform/module-identifier-management-client/contracts';\n\n//#endregion\n\n//#region ---- Public Types: Requests & Results ----\n\nexport interface AXPIdentifierRequest {\n /** Identifier id, e.g. 'employee-code' */\n id: string;\n /** Optional tenant partition */\n tenantId?: string;\n /** Optional application partition */\n appId?: string;\n /** Arbitrary payload for tokens to read from */\n payload?: Record<string, unknown>;\n}\n\nexport interface AXPIdentifierResult {\n code: string;\n ruleId: string;\n scopeHash: string;\n consumed: boolean;\n meta?: Record<string, unknown>;\n}\n\nexport interface AXPIdentifierPeekResult extends AXPIdentifierResult {\n consumed: false;\n commitToken: string; // opaque token for safe finalization\n}\n\n//#endregion\n\n//#region ---- Rule Definition ----\n\nexport type { AXPIdentifierRule };\n\n//#endregion\n\n//#region ---- Main Port (UI) ----\n\nexport abstract class AXPIdentifierService {\n abstract generate(req: AXPIdentifierRequest): Promise<AXPIdentifierResult>;\n abstract peek(req: AXPIdentifierRequest): Promise<AXPIdentifierPeekResult>;\n abstract validate(code: string, entity: string, tenantId?: string): Promise<boolean>;\n abstract commitWithToken(token: string): Promise<AXPIdentifierResult>;\n /** Optional helper for manual codes; stricter and may reject if not next sequence */\n abstract commitByCode(req: AXPIdentifierRequest, code: string): Promise<AXPIdentifierResult>;\n}\n\n\nexport const AXP_IDENTIFIER_SERVICE = new InjectionToken<AXPIdentifierService>('AXP_IDENTIFIER_SERVICE');\n\n//#endregion\n\n//#region ---- DI Tokens ----\n\n/** @deprecated Rules are loaded from {@link IDENTIFIER_RULE_ENTITY} entity storage. */\nexport const AXP_IDENTIFIER_RULES = new InjectionToken<AXPIdentifierRule[]>(\n 'AXP_IDENTIFIER_RULES'\n);\n\n//#endregion\n\n\n","import { AXPExpressionEvaluatorScopeProvider, AXPExpressionEvaluatorScopeProviderContext } from \"@acorex-platform/framework-shared/core\";\nimport { inject } from \"@angular/core\";\nimport { AXP_IDENTIFIER_SERVICE } from \"./core/identifier.types\";\nimport { AXPSessionService } from \"@acorex-platform/framework-client/auth\";\n\nexport class AXMIdentifierEvaluatorScopeProvider implements AXPExpressionEvaluatorScopeProvider {\n\n protected identifierService = inject(AXP_IDENTIFIER_SERVICE);\n protected sessionService = inject(AXPSessionService);\n\n async provide(context: AXPExpressionEvaluatorScopeProviderContext): Promise<void> {\n context.addScope('identifier', {\n peek: async (id: string) => {\n const identifier = await this.identifierService.peek({\n id,\n tenantId: this.sessionService.tenant?.id,\n appId: this.sessionService.application?.id,\n });\n return identifier.code;\n },\n generate: async (id: string) => {\n const identifier = await this.identifierService.generate({\n id,\n tenantId: this.sessionService.tenant?.id,\n appId: this.sessionService.application?.id,\n });\n return identifier.code;\n }\n })\n }\n}","import { AXPEntityActionPlugin } from \"@acorex-platform/framework-client/layout/entity\";\n\nconst IDENTIFIER_DEFAULT_VALUE = (rule: string) => `{{ identifier.peek(\"${rule}\") }}`;\n\nexport const identifierPlugin: AXPEntityActionPlugin = {\n name: 'identifier',\n order: 40,\n apply: (ctx, options: { field: string; rule: string }) => {\n if (!options?.field || !options?.rule) return;\n\n const defaultValue = IDENTIFIER_DEFAULT_VALUE(options.rule);\n const entity = ctx.entity as any;\n\n // Direct property: update in-place\n const propHandle = ctx.properties.find(options.field);\n const existingProp = propHandle.get();\n if (existingProp) {\n propHandle.update((p) => {\n const next = { ...p } as any;\n next.schema = { ...(next.schema ?? {}) };\n next.schema.defaultValue = defaultValue;\n return next;\n });\n } else if (options.field.includes('.')) {\n // Nested path (e.g. party.code): use generic propertyOverrides extension\n entity.extensions ??= {};\n entity.extensions.propertyOverrides ??= {};\n entity.extensions.propertyOverrides[options.field] = {\n schema: { ...(entity.extensions.propertyOverrides[options.field]?.schema ?? {}), defaultValue },\n };\n }\n\n entity.extensions ??= {};\n entity.extensions.identifier = { field: options.field, rule: options.rule };\n },\n};\n\n","//#region ---- Imports ----\n\nimport {\n AXPPermissionDefinitionProvider,\n AXPPermissionDefinitionProviderContext,\n} from '@acorex-platform/framework-client/auth';\nimport {\n AXPCommonPermissionGroupKeys\n} from '@acorex-platform/module-common-client/contracts';\nimport {\n AXPApplicationsPlatformPermissionKeys\n} from '@acorex-platform/module-identifier-management-client/contracts';\n\nimport { Injectable } from '@angular/core';\n\n//#endregion\n\n//#region ---- Permission Definition Provider ----\n\n/**\n * Registers MaintainIdentifiers under Applications & Platform.\n */\n@Injectable()\nexport class AXMPermissionDefinitionProvider implements AXPPermissionDefinitionProvider {\n async define(context: AXPPermissionDefinitionProviderContext): Promise<void> {\n const keys = AXPApplicationsPlatformPermissionKeys;\n const groups = AXPCommonPermissionGroupKeys;\n const P = '@common:applications-platform.permissions';\n const G = '@common:permission-groups';\n\n context.addGroup(groups.ApplicationsPlatform.Root, `${G}.applications-platform.title`, `${G}.applications-platform.description`, { order: 110 });\n\n context\n .addGroup(\n groups.ApplicationsPlatform.Configuration,\n `${G}.applications-platform-configuration.title`,\n `${G}.applications-platform-configuration.description`,\n { parent: groups.ApplicationsPlatform.Root, order: 30 },\n )\n .addPermission(\n keys.MaintainIdentifiers,\n `${P}.maintain-identifiers.title`,\n `${P}.maintain-identifiers.description`,\n { modules: ['IdentifierManagement'], requiredFeatures: ['IdentifierManagement'] },\n )\n .endPermission()\n .endGroup();\n }\n}\n\n//#endregion\n","import { AXPCommonMenuKeys } from '@acorex-platform/module-common-client/contracts';\nimport {\n AXPApplicationsPlatformPermissionKeys,\n AXPIdentifierManagementMenuKeys,\n RootConfig,\n} from '@acorex-platform/module-identifier-management-client/contracts';\nimport { AXPMenuProvider, AXPMenuProviderContext } from '@acorex-platform/framework-client/common';\nimport { AXPEntityService } from '@acorex-platform/framework-client/layout/entity';\nimport { inject } from '@angular/core';\n\nexport class AXMMenuProvider implements AXPMenuProvider {\n private entityService = inject(AXPEntityService);\n\n async provide(context: AXPMenuProviderContext): Promise<void> {\n const module = RootConfig.module;\n\n context.find(AXPCommonMenuKeys.Platform).addItems([\n {\n name: AXPIdentifierManagementMenuKeys.IdentifierRules,\n text: RootConfig.entities.identifierRule.titlePlural,\n path: this.entityService.createPath(module.name, RootConfig.entities.identifierRule.name),\n icon: RootConfig.entities.identifierRule.icon,\n priority: 4,\n policy: {\n features: [module.name],\n permissions: [AXPApplicationsPlatformPermissionKeys.MaintainIdentifiers],\n },\n },\n ]);\n }\n}\n","import { AXPSettingDefinitionProvider, AXPSettingDefinitionProviderContext } from '@acorex-platform/framework-client/common';\n\nexport class AXMSettingProvider implements AXPSettingDefinitionProvider {\n async provide(context: AXPSettingDefinitionProviderContext): Promise<void> {\n // context\n // // Add Form Template Group\n // .addGroup('form-template', 'Form Template', 'Settings related to form templates.', RootConfig.module.icon)\n // // Start Interface Section\n // .addSection('interface', 'UI Interface', 'Customize the user interface for forms.')\n // .addSetting({\n // key: 'history-panel',\n // title: 'Show History Panel',\n // scope: 'U',\n // isInherited: true,\n // defaultValue: false,\n // widget: {\n // type: AXPWidgetsCatalog.toggle,\n // },\n // description: 'Enable or disable the history panel for forms.',\n // validationRules: [\n // {\n // rule: 'required',\n // },\n // ],\n // })\n // .endSection()\n // .endGroup();\n }\n}\n","import { NgModule } from \"@angular/core\";\nimport { AXP_ENTITY_ACTION_PLUGIN } from '@acorex-platform/framework-client/layout/entity';\nimport { AXP_EXPRESSION_EVALUATOR_SCOPE_PROVIDER, AXP_MODULE_MANIFEST_PROVIDER } from '@acorex-platform/framework-client/core';\nimport { IdentifierManagementManifest } from './manifest';\nimport { AXP_MENU_PROVIDER, AXP_SETTING_DEFINITION_PROVIDER } from '@acorex-platform/framework-client/common';\nimport { AXP_PERMISSION_DEFINITION_PROVIDER } from '@acorex-platform/framework-client/auth';\nimport { AXMIdentifierEvaluatorScopeProvider } from './features/shared/identifier-evaluator-scope.provider';\nimport { identifierPlugin } from \"./features/shared/identifier.plugin\";\nimport { AXMPermissionDefinitionProvider } from './permission-definition.provider';\nimport { AXMMenuProvider } from './menu.provider';\n\nimport { AXMSettingProvider } from './setting.provider';\n\n@NgModule({\n imports: [],\n exports: [],\n declarations: [],\n providers: [\n // Module-specific providers (not part of manifest system)\n {\n provide: AXP_ENTITY_ACTION_PLUGIN,\n useValue: identifierPlugin,\n multi: true,\n },\n {\n provide: AXP_EXPRESSION_EVALUATOR_SCOPE_PROVIDER,\n useClass: AXMIdentifierEvaluatorScopeProvider,\n multi: true,\n },\n // Module Manifest Provider\n {\n provide: AXP_MODULE_MANIFEST_PROVIDER,\n useValue: IdentifierManagementManifest,\n multi: true,\n },\n // Provider references (now using tokens)\n {\n provide: AXP_PERMISSION_DEFINITION_PROVIDER,\n useClass: AXMPermissionDefinitionProvider,\n multi: true,\n },\n {\n provide: AXP_MENU_PROVIDER,\n useClass: AXMMenuProvider,\n multi: true,\n },\n \n {\n provide: AXP_SETTING_DEFINITION_PROVIDER,\n useClass: AXMSettingProvider,\n multi: true,\n },\n ]\n})\nexport class AXMIdentifierManagementModule { }\n","import { AXPSearchCommandProvider, AXPSearchResult } from '@acorex-platform/framework-client/common';\n\nexport class AXMSearchCommandProvider extends AXPSearchCommandProvider {\n commands: AXPSearchResult[] = [\n // {\n // group: 'command',\n // title: 'New Form Template',\n // icon: RootConfig.entities.template.icon,\n // description: 'Create a new form template for designing reusable forms.', // Added description\n // commands: {\n // 'create-entity': {\n // entity: `${RootConfig.module.name}.${RootConfig.entities.template.name}`,\n // },\n // },\n // }\n ];\n}\n","import { AXPQueryService } from '@acorex-platform/framework-client/runtime';\nimport { runtimeQueryCollectionData } from '@acorex-platform/framework-shared/core';\nimport { ENTITY_QUERY_DEFAULT } from '@acorex-platform/framework-shared/runtime';\nimport {\n IDENTIFIER_RULE_ENTITY,\n type AXPIdentifierRule,\n} from '@acorex-platform/module-identifier-management-client/contracts';\nimport { inject, Injectable } from '@angular/core';\nimport { get } from 'lodash';\n\n//#region ---- Identifier rule repository ----\n\n/**\n * Loads identifier rules from {@link IDENTIFIER_RULE_ENTITY} via {@link ENTITY_QUERY_DEFAULT}.\n */\n@Injectable({ providedIn: 'root' })\nexport class AXPIdentifierRuleRepository {\n private readonly queryService = inject(AXPQueryService);\n\n async findById(id: string): Promise<AXPIdentifierRule | undefined> {\n const rules = await this.listAll();\n return rules.find((rule) => rule.name === id && !rule.isDisabled);\n }\n\n async listEnabled(): Promise<AXPIdentifierRule[]> {\n const rules = await this.listAll();\n return rules.filter((rule) => !rule.isDisabled);\n }\n\n private async listAll(): Promise<AXPIdentifierRule[]> {\n try {\n const response = await this.queryService.fetch(ENTITY_QUERY_DEFAULT, {\n entity: IDENTIFIER_RULE_ENTITY,\n skip: 0,\n take: 1000,\n });\n const items = runtimeQueryCollectionData(response)?.items ?? [];\n return items\n .map((item) => this.mapEntityToRule(item))\n .filter((rule): rule is AXPIdentifierRule => rule != null);\n } catch {\n return [];\n }\n }\n\n private mapEntityToRule(record: unknown): AXPIdentifierRule | null {\n if (!record || typeof record !== 'object') {\n return null;\n }\n const nameRaw = get(record, 'name') ?? get(record, 'id');\n const pattern = get(record, 'pattern');\n if (typeof nameRaw !== 'string' || typeof pattern !== 'string') {\n return null;\n }\n const scopeConfig = get(record, 'scopeConfig');\n const enabledLegacy = get(record, 'enabled');\n const isDisabledRaw = get(record, 'isDisabled');\n const isDisabled =\n typeof isDisabledRaw === 'boolean' ? isDisabledRaw : enabledLegacy === false;\n\n return {\n name: nameRaw,\n title: String(get(record, 'title') ?? nameRaw),\n entity: String(get(record, 'entity') ?? ''),\n pattern,\n isDisabled,\n scopeConfig:\n scopeConfig && typeof scopeConfig === 'object'\n ? (scopeConfig as AXPIdentifierRule['scopeConfig'])\n : {},\n };\n }\n}\n\n//#endregion\n","//#region ---- Token Contracts ----\n\nimport { AXPIdentifierRequest } from './identifier.types';\nimport { InjectionToken } from '@angular/core';\n\nexport interface AXPPatternToken {\n name: string;\n args: string[];\n raw: string;\n index: number;\n}\n\nexport interface AXPEvalServices {\n sequence: AXPSequenceProvider;\n checksum: AXPChecksumProvider;\n lookup?: AXPLookupProvider;\n policy?: AXPPolicyProvider;\n clock?: AXPClockProvider;\n}\n\nexport interface AXPEvalContext {\n pattern: string;\n request: AXPIdentifierRequest;\n cache: Map<string, unknown>;\n now: Date;\n services: AXPEvalServices;\n evaluationMode: 'preview' | 'commit';\n}\n\nexport interface AXPTokenHandler {\n readonly name: string;\n readonly priority?: number;\n validate?(token: AXPPatternToken): void | never;\n eval(token: AXPPatternToken, ctx: AXPEvalContext): Promise<string>;\n meta?: {\n title?: string;\n description?: string;\n category?: string;\n examples?: string[];\n argHints?: string[];\n version?: string;\n };\n}\n\nexport interface AXPTokenRegistry {\n register(handler: AXPTokenHandler): void;\n unregister(name: string): void;\n get(name: string): AXPTokenHandler | undefined;\n list(): AXPTokenHandler[];\n}\n\n//#endregion\n\n//#region ---- Sequence & Utilities ----\n\nexport interface AXPSequenceProvider {\n next(scopeHash: string, ruleId: string, options?: { pad?: number; consume?: boolean }): Promise<number>;\n}\n\nexport interface AXPChecksumProvider {\n compute(algo: 'luhn' | 'mod11', input: string): string;\n}\n\nexport interface AXPLookupProvider {\n get(key: string, params?: Record<string, unknown>): Promise<string | undefined>;\n}\n\nexport interface AXPPolicyProvider {\n isAllowed(tokenName: string, request: AXPIdentifierRequest): boolean;\n}\n\nexport interface AXPClockProvider {\n now(): Date;\n}\n\n//#endregion\n\n//#region ---- DI Tokens ----\n\nexport const AXP_TOKEN_HANDLERS = new InjectionToken<AXPTokenHandler[]>(\n 'AXP_TOKEN_HANDLERS'\n);\n\n//#endregion\n\n\n","//#region ---- Imports ----\n\nimport { Injectable, inject } from '@angular/core';\nimport { AXPTokenHandler, AXPTokenRegistry, AXP_TOKEN_HANDLERS } from './tokens.types';\n\n//#endregion\n\n@Injectable({ providedIn: 'root' })\nexport class AXPTokenRegistryService implements AXPTokenRegistry {\n //#region ---- Fields ----\n\n private readonly handlers = new Map<string, AXPTokenHandler>();\n private readonly providerHandlers = inject(AXP_TOKEN_HANDLERS, { optional: true }) ?? [];\n\n //#endregion\n\n //#region ---- Public API ----\n\n register(handler: AXPTokenHandler): void {\n const existing = this.handlers.get(handler.name);\n if (!existing || (handler.priority ?? 0) > (existing.priority ?? 0)) {\n this.handlers.set(handler.name, handler);\n }\n }\n\n unregister(name: string): void {\n this.handlers.delete(name);\n }\n\n get(name: string): AXPTokenHandler | undefined {\n // provider-provided take precedence by priority\n const fromProviders = this.providerHandlers\n .filter((h) => h.name === name)\n .sort((a, b) => (b.priority ?? 0) - (a.priority ?? 0))[0];\n if (fromProviders) return fromProviders;\n return this.handlers.get(name);\n }\n\n list(): AXPTokenHandler[] {\n const map = new Map<string, AXPTokenHandler>();\n const put = (h: AXPTokenHandler) => {\n const prev = map.get(h.name);\n if (!prev || (h.priority ?? 0) > (prev.priority ?? 0)) map.set(h.name, h);\n };\n this.providerHandlers.forEach(put);\n Array.from(this.handlers.values()).forEach(put);\n return Array.from(map.values()).sort((a, b) => (b.priority ?? 0) - (a.priority ?? 0));\n }\n\n //#endregion\n}\n\n\n","//#region ---- Imports ----\n\nimport { AXPEvalContext, AXPPatternToken } from './tokens.types';\nimport { inject } from '@angular/core';\nimport { AXPTokenRegistryService } from './token-registry.service';\n\n//#endregion\n\n//#region ---- Engine Contracts ----\n\nexport type AXPCompiledFragment = AXPPatternToken | { type: 'literal'; text: string };\n\nexport interface AXPCompiledPattern {\n pattern: string;\n tokens: AXPCompiledFragment[];\n}\n\nexport interface AXPPatternEngine {\n compile(pattern: string): AXPCompiledPattern;\n evaluate(compiled: AXPCompiledPattern, ctx: AXPEvalContext): Promise<string>;\n}\n\n//#endregion\n\n//#region ---- Simple Pattern Engine Impl ----\n\nconst TOKEN_REGEX = /\\{([^{}]+)\\}/g; // matches {token[:args]}\n\nexport class AXPSimplePatternEngine implements AXPPatternEngine {\n private readonly registry = inject(AXPTokenRegistryService);\n\n compile(pattern: string): AXPCompiledPattern {\n const tokens: AXPCompiledFragment[] = [];\n let match: RegExpExecArray | null;\n let index = 0;\n let lastIndex = 0;\n while ((match = TOKEN_REGEX.exec(pattern)) !== null) {\n // push any literal text before this token\n const literal = pattern.slice(lastIndex, match.index);\n if (literal) {\n tokens.push({ type: 'literal', text: literal });\n }\n const raw = match[0];\n const inner = match[1];\n const [name, ...args] = inner.split(':');\n const token: AXPPatternToken = {\n name: name.trim(),\n args: args.length ? inner.substring(inner.indexOf(':') + 1).split(':') : [],\n raw,\n index: index++,\n };\n const handler = this.registry.get(token.name);\n if (!handler) {\n throw new Error(`Unknown token: ${token.name}`);\n }\n handler.validate?.(token);\n tokens.push(token);\n lastIndex = match.index + raw.length;\n }\n // trailing literal\n const tail = pattern.slice(lastIndex);\n if (tail) {\n tokens.push({ type: 'literal', text: tail });\n }\n return { pattern, tokens };\n }\n\n async evaluate(compiled: AXPCompiledPattern, ctx: AXPEvalContext): Promise<string> {\n let built = '';\n for (const frag of compiled.tokens) {\n if ((frag as any).type === 'literal') {\n built += (frag as any).text as string;\n continue;\n }\n const token = frag as AXPPatternToken;\n ctx.cache.set('__acc__', built);\n const handler = this.registry.get(token.name);\n if (!handler) {\n throw new Error(`Unknown token at eval: ${token.name}`);\n }\n const fragment = await handler.eval(token, ctx);\n built += fragment;\n }\n return built;\n }\n}\n\n//#endregion\n\n\n","//#region ---- Imports ----\n\nimport {AXPDataGenerator} from '@acorex-platform/framework-client/core';\n\n//#endregion\n\n//#region ---- Utility Functions ----\n\nexport function buildScopeHash(parts: Array<string | undefined>): string {\n return parts.filter(Boolean).join('|');\n}\n\nexport function padNumber(num: number, size: number): string {\n const s = String(num);\n if (s.length >= size) return s;\n return '0'.repeat(size - s.length) + s;\n}\n\nexport function uuid(): string {\n return AXPDataGenerator.uuid();\n}\n\n//#endregion\n\n","//#region ---- Imports ----\n\nimport { AXPEvalContext, AXPPatternToken, AXPTokenHandler } from './tokens.types';\nimport { padNumber } from './utils';\nimport { Injectable } from '@angular/core';\n\n//#endregion\n\n//#region ---- Built-in Token Handlers (Injectable) ----\n\n@Injectable()\nexport class DateToken implements AXPTokenHandler {\n readonly name = 'date';\n readonly meta = { title: 'Date', description: 'Formats current date', argHints: ['YYYY', 'YYYYMM', 'YYYYMMDD'] };\n async eval(token: AXPPatternToken, ctx: AXPEvalContext): Promise<string> {\n const fmt = token.args[0] ?? 'YYYYMMDD';\n const d = ctx.services.clock?.now() ?? ctx.now;\n const y = String(d.getFullYear());\n const m = padNumber(d.getMonth() + 1, 2);\n const day = padNumber(d.getDate(), 2);\n switch (fmt) {\n case 'YYYY':\n return y;\n case 'YYYYMM':\n return y + m;\n case 'YYYYMMDD':\n default:\n return y + m + day;\n }\n }\n}\n\n@Injectable()\nexport class ConstToken implements AXPTokenHandler {\n readonly name = 'const';\n readonly meta = { title: 'Constant', description: 'Fixed literal value' };\n async eval(token: AXPPatternToken): Promise<string> {\n return token.args.join(':');\n }\n}\n\n@Injectable()\nexport class FieldToken implements AXPTokenHandler {\n readonly name = 'field';\n readonly meta = { title: 'Field', description: 'Reads a value from request.payload' };\n async eval(token: AXPPatternToken, ctx: AXPEvalContext): Promise<string> {\n const key = token.args[0];\n if (!key) return '';\n const value = ctx.request.payload?.[key];\n return value == null ? '' : String(value);\n }\n}\n\n@Injectable()\nexport class TenantToken implements AXPTokenHandler {\n readonly name = 'tenant';\n readonly meta = { title: 'Tenant', description: 'Tenant scope identifier' };\n async eval(_t: AXPPatternToken, ctx: AXPEvalContext): Promise<string> {\n return ctx.request.tenantId ?? '';\n }\n}\n\n@Injectable()\nexport class AppToken implements AXPTokenHandler {\n readonly name = 'app';\n readonly meta = { title: 'App', description: 'Application scope identifier' };\n async eval(_t: AXPPatternToken, ctx: AXPEvalContext): Promise<string> {\n return ctx.request.appId ?? '';\n }\n}\n\n@Injectable()\nexport class SeqToken implements AXPTokenHandler {\n readonly name = 'seq';\n readonly meta = { title: 'Sequence', description: 'Auto-increment sequence', argHints: ['pad'] };\n async eval(token: AXPPatternToken, ctx: AXPEvalContext): Promise<string> {\n const pad = Number(token.args[0] ?? '0') || 0;\n const consume = ctx.evaluationMode === 'commit';\n const ruleId = ctx.cache.get('ruleId') as string;\n const n = await ctx.services.sequence.next(ctx.cache.get('scopeHash') as string, ruleId, { pad, consume });\n return pad ? padNumber(n, pad) : String(n);\n }\n}\n\n@Injectable()\nexport class CheckToken implements AXPTokenHandler {\n readonly name = 'check';\n readonly meta = { title: 'Checksum', description: 'Checksum of the string built so far', argHints: ['luhn|mod11'] };\n async eval(token: AXPPatternToken, ctx: AXPEvalContext): Promise<string> {\n const algo = (token.args[0] as 'luhn' | 'mod11') ?? 'luhn';\n const acc = String(ctx.cache.get('__acc__') ?? '');\n return ctx.services.checksum.compute(algo, acc);\n }\n}\n\n//#endregion\n","import { Provider } from '@angular/core';\nimport { AXP_TOKEN_HANDLERS } from './tokens.types';\nimport { AppToken, CheckToken, ConstToken, DateToken, FieldToken, SeqToken, TenantToken } from './tokens-default';\n\nexport const AXP_DEFAULT_TOKEN_PROVIDERS: Provider[] = [\n { provide: AXP_TOKEN_HANDLERS, useClass: DateToken, multi: true },\n { provide: AXP_TOKEN_HANDLERS, useClass: ConstToken, multi: true },\n { provide: AXP_TOKEN_HANDLERS, useClass: FieldToken, multi: true },\n { provide: AXP_TOKEN_HANDLERS, useClass: TenantToken, multi: true },\n { provide: AXP_TOKEN_HANDLERS, useClass: AppToken, multi: true },\n { provide: AXP_TOKEN_HANDLERS, useClass: SeqToken, multi: true },\n { provide: AXP_TOKEN_HANDLERS, useClass: CheckToken, multi: true },\n];\n\n\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@acorex-platform/module-identifier-management-client",
3
- "version": "0.0.18",
3
+ "version": "0.0.24",
4
4
  "sideEffects": false,
5
5
  "peerDependencies": {
6
6
  "@angular/common": "^21.0.0",
@@ -1,11 +1,30 @@
1
1
  import { AXPIdentifierRule } from '@acorex-platform/framework-shared/core';
2
2
  export { AXPIdentifierRule, IDENTIFIER_RULE_ENTITY } from '@acorex-platform/framework-shared/core';
3
- import { AXPEntity } from '@acorex-platform/framework-shared/entity';
4
3
 
4
+ /**
5
+ * Applications & Platform capabilities used by this module.
6
+ * Domain capability keys for this module. Root groups live in `AXPCommonPermissionGroupKeys` (common contracts).
7
+ */
8
+ declare const AXPApplicationsPlatformPermissionKeys: {
9
+ readonly Access: "ApplicationsPlatform:Permission:Access";
10
+ readonly MaintainApplications: "ApplicationsPlatform:Permission:MaintainApplications";
11
+ readonly MaintainTenants: "ApplicationsPlatform:Permission:MaintainTenants";
12
+ readonly MaintainPlatformShell: "ApplicationsPlatform:Permission:MaintainPlatformShell";
13
+ readonly MaintainLandingPages: "ApplicationsPlatform:Permission:MaintainLandingPages";
14
+ readonly MaintainIdentifiers: "ApplicationsPlatform:Permission:MaintainIdentifiers";
15
+ readonly MaintainTenantSettings: "ApplicationsPlatform:Permission:MaintainTenantSettings";
16
+ readonly MaintainPlatformSettings: "ApplicationsPlatform:Permission:MaintainPlatformSettings";
17
+ readonly MaintainLocales: "ApplicationsPlatform:Permission:MaintainLocales";
18
+ readonly UseDevTools: "ApplicationsPlatform:Permission:UseDevTools";
19
+ };
20
+ /**
21
+ * @deprecated Prefer {@link AXPApplicationsPlatformPermissionKeys}.
22
+ * Legacy nested shape kept so existing imports compile during migration.
23
+ */
5
24
  declare const AXMPermissionsKeys: {
6
- IdentifierManagement: {
7
- Management: string;
8
- IdentifierRules: string;
25
+ readonly IdentifierManagement: {
26
+ readonly Management: "ApplicationsPlatform:Permission:MaintainIdentifiers";
27
+ readonly IdentifierRules: "ApplicationsPlatform:Permission:MaintainIdentifiers";
9
28
  };
10
29
  };
11
30
 
@@ -36,11 +55,17 @@ declare const RootConfig: {
36
55
  };
37
56
  };
38
57
 
58
+ declare const AXPIdentifierCommandKeys: {
59
+ readonly Generate: "Identifier:Generate";
60
+ readonly Peek: "Identifier:Peek";
61
+ readonly Validate: "Identifier:Validate";
62
+ readonly CommitWithToken: "Identifier:CommitWithToken";
63
+ readonly CommitByCode: "Identifier:CommitByCode";
64
+ };
65
+
39
66
  interface AXMIdentifierManagementIdentifierRuleEntityModel extends AXPIdentifierRule {
40
67
  id: string;
41
68
  }
42
69
 
43
- declare function identifierRuleFactory(): Promise<AXPEntity | null>;
44
-
45
- export { AXMPermissionsKeys, AXPIdentifierManagementMenuKeys, RootConfig, identifierRuleFactory };
70
+ export { AXMPermissionsKeys, AXPApplicationsPlatformPermissionKeys, AXPIdentifierCommandKeys, AXPIdentifierManagementMenuKeys, RootConfig };
46
71
  export type { AXMIdentifierManagementIdentifierRuleEntityModel };
@@ -1,7 +1,5 @@
1
1
  import * as i0 from '@angular/core';
2
2
  import { InjectionToken, Provider } from '@angular/core';
3
- import { AXPEntity } from '@acorex-platform/framework-shared/entity';
4
- import { AXPEntityDefinitionLoader, AXPEntityDefinitionPreloader, AXPEntityPreloadEntity } from '@acorex-platform/framework-client/layout/entity';
5
3
  import { AXPMenuProvider, AXPMenuProviderContext, AXPSearchCommandProvider, AXPSearchResult, AXPSettingDefinitionProvider, AXPSettingDefinitionProviderContext } from '@acorex-platform/framework-client/common';
6
4
  import { AXPIdentifierRule } from '@acorex-platform/module-identifier-management-client/contracts';
7
5
  export { AXPIdentifierRule } from '@acorex-platform/module-identifier-management-client/contracts';
@@ -12,17 +10,6 @@ declare class AXMIdentifierManagementModule {
12
10
  static ɵinj: i0.ɵɵInjectorDeclaration<AXMIdentifierManagementModule>;
13
11
  }
14
12
 
15
- declare class AXMEntityProvider implements AXPEntityDefinitionLoader, AXPEntityDefinitionPreloader {
16
- preload(): AXPEntityPreloadEntity[];
17
- get(moduleName: string, entityName: string): Promise<AXPEntity | null>;
18
- list(): Promise<{
19
- name: string;
20
- module: string;
21
- }[]>;
22
- static ɵfac: i0.ɵɵFactoryDeclaration<AXMEntityProvider, never>;
23
- static ɵprov: i0.ɵɵInjectableDeclaration<AXMEntityProvider>;
24
- }
25
-
26
13
  declare class AXMMenuProvider implements AXPMenuProvider {
27
14
  private entityService;
28
15
  provide(context: AXPMenuProviderContext): Promise<void>;
@@ -71,12 +58,10 @@ declare const AXP_IDENTIFIER_SERVICE: InjectionToken<AXPIdentifierService>;
71
58
  declare const AXP_IDENTIFIER_RULES: InjectionToken<AXPIdentifierRule[]>;
72
59
 
73
60
  /**
74
-
75
- * Loads identifier rules from {@link IDENTIFIER_RULE_ENTITY} entity storage (mock or API).
76
-
61
+ * Loads identifier rules from {@link IDENTIFIER_RULE_ENTITY} via {@link ENTITY_QUERY_DEFAULT}.
77
62
  */
78
63
  declare class AXPIdentifierRuleRepository {
79
- private readonly storage;
64
+ private readonly queryService;
80
65
  findById(id: string): Promise<AXPIdentifierRule | undefined>;
81
66
  listEnabled(): Promise<AXPIdentifierRule[]>;
82
67
  private listAll;
@@ -255,5 +240,5 @@ declare function buildScopeHash(parts: Array<string | undefined>): string;
255
240
  declare function padNumber(num: number, size: number): string;
256
241
  declare function uuid(): string;
257
242
 
258
- export { AXMEntityProvider, AXMIdentifierManagementModule, AXMMenuProvider, AXMSearchCommandProvider, AXMSettingProvider, AXPIdentifierRuleRepository, AXPIdentifierService, AXPSimplePatternEngine, AXPTokenRegistryService, AXP_DEFAULT_TOKEN_PROVIDERS, AXP_IDENTIFIER_RULES, AXP_IDENTIFIER_SERVICE, AXP_TOKEN_HANDLERS, AppToken, CheckToken, ConstToken, DateToken, FieldToken, SeqToken, TenantToken, buildScopeHash, padNumber, uuid };
243
+ export { AXMIdentifierManagementModule, AXMMenuProvider, AXMSearchCommandProvider, AXMSettingProvider, AXPIdentifierRuleRepository, AXPIdentifierService, AXPSimplePatternEngine, AXPTokenRegistryService, AXP_DEFAULT_TOKEN_PROVIDERS, AXP_IDENTIFIER_RULES, AXP_IDENTIFIER_SERVICE, AXP_TOKEN_HANDLERS, AppToken, CheckToken, ConstToken, DateToken, FieldToken, SeqToken, TenantToken, buildScopeHash, padNumber, uuid };
259
244
  export type { AXPChecksumProvider, AXPClockProvider, AXPCompiledFragment, AXPCompiledPattern, AXPEvalContext, AXPEvalServices, AXPIdentifierPeekResult, AXPIdentifierRequest, AXPIdentifierResult, AXPLookupProvider, AXPPatternEngine, AXPPatternToken, AXPPolicyProvider, AXPSequenceProvider, AXPTokenHandler, AXPTokenRegistry };