@acorex-platform/module-human-capital-management-client 0.0.30 → 0.0.33

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (60) hide show
  1. package/fesm2022/{acorex-platform-module-human-capital-management-client-acorex-platform-module-human-capital-management-client-DlWna0Lz.mjs → acorex-platform-module-human-capital-management-client-acorex-platform-module-human-capital-management-client-DmqiCOti.mjs} +7 -7
  2. package/fesm2022/{acorex-platform-module-human-capital-management-client-acorex-platform-module-human-capital-management-client-DlWna0Lz.mjs.map → acorex-platform-module-human-capital-management-client-acorex-platform-module-human-capital-management-client-DmqiCOti.mjs.map} +1 -1
  3. package/fesm2022/acorex-platform-module-human-capital-management-client-contracts-entities-employee.mjs +559 -0
  4. package/fesm2022/acorex-platform-module-human-capital-management-client-contracts-entities-employee.mjs.map +1 -0
  5. package/fesm2022/acorex-platform-module-human-capital-management-client-contracts-entities-employment-type.mjs +182 -0
  6. package/fesm2022/acorex-platform-module-human-capital-management-client-contracts-entities-employment-type.mjs.map +1 -0
  7. package/fesm2022/acorex-platform-module-human-capital-management-client-contracts-entities-leave-request.mjs +374 -0
  8. package/fesm2022/acorex-platform-module-human-capital-management-client-contracts-entities-leave-request.mjs.map +1 -0
  9. package/fesm2022/acorex-platform-module-human-capital-management-client-contracts-entities-leave-type.mjs +182 -0
  10. package/fesm2022/acorex-platform-module-human-capital-management-client-contracts-entities-leave-type.mjs.map +1 -0
  11. package/fesm2022/acorex-platform-module-human-capital-management-client-contracts-entities-lifecycle-event-type.mjs +189 -0
  12. package/fesm2022/acorex-platform-module-human-capital-management-client-contracts-entities-lifecycle-event-type.mjs.map +1 -0
  13. package/fesm2022/acorex-platform-module-human-capital-management-client-contracts-entities-lifecycle-event.mjs +307 -0
  14. package/fesm2022/acorex-platform-module-human-capital-management-client-contracts-entities-lifecycle-event.mjs.map +1 -0
  15. package/fesm2022/acorex-platform-module-human-capital-management-client-contracts-entities-position-assignment.mjs +377 -0
  16. package/fesm2022/acorex-platform-module-human-capital-management-client-contracts-entities-position-assignment.mjs.map +1 -0
  17. package/fesm2022/acorex-platform-module-human-capital-management-client-contracts-entity-catalog-acorex-platform-module-human-capital-management-client-contracts-entity-catalog-YSqg0InM.mjs +109 -0
  18. package/fesm2022/acorex-platform-module-human-capital-management-client-contracts-entity-catalog-acorex-platform-module-human-capital-management-client-contracts-entity-catalog-YSqg0InM.mjs.map +1 -0
  19. package/fesm2022/acorex-platform-module-human-capital-management-client-contracts-entity-catalog-catalog-scope.keys-D8MsCaj5.mjs +5 -0
  20. package/fesm2022/acorex-platform-module-human-capital-management-client-contracts-entity-catalog-catalog-scope.keys-D8MsCaj5.mjs.map +1 -0
  21. package/fesm2022/acorex-platform-module-human-capital-management-client-contracts-entity-catalog-commands.keys-B5rEwAkf.mjs +19 -0
  22. package/fesm2022/acorex-platform-module-human-capital-management-client-contracts-entity-catalog-commands.keys-B5rEwAkf.mjs.map +1 -0
  23. package/fesm2022/acorex-platform-module-human-capital-management-client-contracts-entity-catalog-employee.entity-DkVdcMBo.mjs +459 -0
  24. package/fesm2022/acorex-platform-module-human-capital-management-client-contracts-entity-catalog-employee.entity-DkVdcMBo.mjs.map +1 -0
  25. package/fesm2022/acorex-platform-module-human-capital-management-client-contracts-entity-catalog-employment-type.entity-DtYMx-Fh.mjs +98 -0
  26. package/fesm2022/acorex-platform-module-human-capital-management-client-contracts-entity-catalog-employment-type.entity-DtYMx-Fh.mjs.map +1 -0
  27. package/fesm2022/acorex-platform-module-human-capital-management-client-contracts-entity-catalog-leave-request.entity-0NDmiYk0.mjs +290 -0
  28. package/fesm2022/acorex-platform-module-human-capital-management-client-contracts-entity-catalog-leave-request.entity-0NDmiYk0.mjs.map +1 -0
  29. package/fesm2022/acorex-platform-module-human-capital-management-client-contracts-entity-catalog-leave-type.entity-DWkv-dnA.mjs +96 -0
  30. package/fesm2022/acorex-platform-module-human-capital-management-client-contracts-entity-catalog-leave-type.entity-DWkv-dnA.mjs.map +1 -0
  31. package/fesm2022/acorex-platform-module-human-capital-management-client-contracts-entity-catalog-lifecycle-event-type.entity-CDfVNrc0.mjs +103 -0
  32. package/fesm2022/acorex-platform-module-human-capital-management-client-contracts-entity-catalog-lifecycle-event-type.entity-CDfVNrc0.mjs.map +1 -0
  33. package/fesm2022/acorex-platform-module-human-capital-management-client-contracts-entity-catalog-lifecycle-event.entity-Dp-_0o-1.mjs +223 -0
  34. package/fesm2022/acorex-platform-module-human-capital-management-client-contracts-entity-catalog-lifecycle-event.entity-Dp-_0o-1.mjs.map +1 -0
  35. package/fesm2022/acorex-platform-module-human-capital-management-client-contracts-entity-catalog-position-assignment.entity-rQe7-CDe.mjs +277 -0
  36. package/fesm2022/acorex-platform-module-human-capital-management-client-contracts-entity-catalog-position-assignment.entity-rQe7-CDe.mjs.map +1 -0
  37. package/fesm2022/acorex-platform-module-human-capital-management-client-contracts-entity-catalog.mjs +2 -0
  38. package/fesm2022/acorex-platform-module-human-capital-management-client-contracts-entity-catalog.mjs.map +1 -0
  39. package/fesm2022/{acorex-platform-module-human-capital-management-client-edit-personal-info.command-DK947cW5.mjs → acorex-platform-module-human-capital-management-client-edit-personal-info.command-CRUNursl.mjs} +134 -42
  40. package/fesm2022/acorex-platform-module-human-capital-management-client-edit-personal-info.command-CRUNursl.mjs.map +1 -0
  41. package/fesm2022/{acorex-platform-module-human-capital-management-client-edit-signature.command-CKrcMxqr.mjs → acorex-platform-module-human-capital-management-client-edit-signature.command-Bb3mxwBE.mjs} +2 -2
  42. package/fesm2022/{acorex-platform-module-human-capital-management-client-edit-signature.command-CKrcMxqr.mjs.map → acorex-platform-module-human-capital-management-client-edit-signature.command-Bb3mxwBE.mjs.map} +1 -1
  43. package/fesm2022/acorex-platform-module-human-capital-management-client-local-entities.mjs +35 -0
  44. package/fesm2022/acorex-platform-module-human-capital-management-client-local-entities.mjs.map +1 -0
  45. package/fesm2022/{acorex-platform-module-human-capital-management-client-profile-documents-panel.component-DrRuKQ6Q.mjs → acorex-platform-module-human-capital-management-client-profile-documents-panel.component-L-Wq--5e.mjs} +2 -2
  46. package/fesm2022/{acorex-platform-module-human-capital-management-client-profile-documents-panel.component-DrRuKQ6Q.mjs.map → acorex-platform-module-human-capital-management-client-profile-documents-panel.component-L-Wq--5e.mjs.map} +1 -1
  47. package/fesm2022/{acorex-platform-module-human-capital-management-client-profile-documents-panel.component.provider-DPH0YiDP.mjs → acorex-platform-module-human-capital-management-client-profile-documents-panel.component.provider-n9sEfOE2.mjs} +3 -3
  48. package/fesm2022/{acorex-platform-module-human-capital-management-client-profile-documents-panel.component.provider-DPH0YiDP.mjs.map → acorex-platform-module-human-capital-management-client-profile-documents-panel.component.provider-n9sEfOE2.mjs.map} +1 -1
  49. package/fesm2022/acorex-platform-module-human-capital-management-client.mjs +1 -1
  50. package/package.json +38 -2
  51. package/types/acorex-platform-module-human-capital-management-client-contracts-entities-employee.d.ts +5 -0
  52. package/types/acorex-platform-module-human-capital-management-client-contracts-entities-employment-type.d.ts +5 -0
  53. package/types/acorex-platform-module-human-capital-management-client-contracts-entities-leave-request.d.ts +5 -0
  54. package/types/acorex-platform-module-human-capital-management-client-contracts-entities-leave-type.d.ts +5 -0
  55. package/types/acorex-platform-module-human-capital-management-client-contracts-entities-lifecycle-event-type.d.ts +5 -0
  56. package/types/acorex-platform-module-human-capital-management-client-contracts-entities-lifecycle-event.d.ts +5 -0
  57. package/types/acorex-platform-module-human-capital-management-client-contracts-entities-position-assignment.d.ts +5 -0
  58. package/types/acorex-platform-module-human-capital-management-client-contracts-entity-catalog.d.ts +10 -0
  59. package/types/acorex-platform-module-human-capital-management-client-local-entities.d.ts +12 -0
  60. package/fesm2022/acorex-platform-module-human-capital-management-client-edit-personal-info.command-DK947cW5.mjs.map +0 -1
@@ -2,12 +2,12 @@ import { AXPWidgetsList } from '@acorex-platform/framework-shared/core';
2
2
  import { AXToastService } from '@acorex/components/toast';
3
3
  import { AXTranslationService } from '@acorex/core/translation';
4
4
  import { RootConfig as RootConfig$1 } from '@acorex-platform/module-person-core-client/contracts';
5
- import { AXPLayoutBuilderService } from '@acorex-platform/framework-client/layout/builder';
5
+ import { AXPLayoutBuilderService, resolveLayoutBuilderDialogResult } from '@acorex-platform/framework-client/layout/builder';
6
6
  import { AXPEntityService } from '@acorex-platform/framework-client/layout/entity';
7
7
  import * as i0 from '@angular/core';
8
8
  import { inject, Injectable } from '@angular/core';
9
- import { trim, isNil, isEmpty, cloneDeep, defaultTo, isArray, isString, isObject } from 'lodash';
10
- import { A as AXMHcmProfileContextService } from './acorex-platform-module-human-capital-management-client-acorex-platform-module-human-capital-management-client-DlWna0Lz.mjs';
9
+ import { trim, isNil, isEmpty, defaultTo, cloneDeep, isArray, isString, isObject } from 'lodash';
10
+ import { A as AXMHcmProfileContextService } from './acorex-platform-module-human-capital-management-client-acorex-platform-module-human-capital-management-client-DmqiCOti.mjs';
11
11
  import { AXPUserProfileIdentityService } from '@acorex-platform/framework-client/auth';
12
12
  import { RootConfig } from '@acorex-platform/module-security-management-client/contracts';
13
13
 
@@ -68,6 +68,9 @@ const EMAILS_REPEATER_CHILDREN = [
68
68
  },
69
69
  ];
70
70
  //#endregion
71
+ //#region ---- Constants ----
72
+ const PERSON_CORE_MODULE = RootConfig$1.module.name;
73
+ //#endregion
71
74
  //#region ---- Edit personal info command ----
72
75
  /** Opens a self-service dialog to update the linked person record and sync user display fields. */
73
76
  class AXMHcmEditPersonalInfoCommand {
@@ -110,40 +113,93 @@ class AXMHcmEditPersonalInfoCommand {
110
113
  .dialog((dialog) => {
111
114
  dialog
112
115
  .setTitle(dialogTitle)
113
- .setSize('lg')
116
+ .setSize(this.resolveDialogSize())
114
117
  .setCloseButton(true)
115
118
  .setContext(this.buildFormContext(person))
116
119
  .content((layout) => {
120
+ layout.mode('edit');
117
121
  layout.flex((flex) => {
118
- flex
119
- .setDirection('column')
120
- .setGap('1rem')
121
- .formField('@general:terms.contact.first-name', (field) => {
122
- field.path('firstName');
123
- field.textBox({
124
- placeholder: '@general:terms.contact.first-name',
125
- validations: [{ rule: 'required' }],
126
- });
127
- })
128
- .formField('@general:terms.contact.last-name', (field) => {
129
- field.path('lastName');
130
- field.textBox({
131
- placeholder: '@general:terms.contact.last-name',
132
- validations: [{ rule: 'required' }],
122
+ flex.setDirection('column').setGap('1rem');
123
+ flex.fieldset((profileSection) => {
124
+ profileSection
125
+ .setLook('fieldset')
126
+ .setTitle('@person-core:persons.entities.person.groups.profile')
127
+ .setCols(12)
128
+ .formField('@person-core:persons.entities.person.fields.person-title.title', (field) => {
129
+ field.path('personTitleId');
130
+ field.layout({ positions: { lg: { colSpan: 4, order: 0 } } });
131
+ field.lookupBox(this.buildPersonCatalogLookupOptions('personTitle', 'personTitle'));
132
+ })
133
+ .formField('@general:terms.contact.first-name', (field) => {
134
+ field.path('firstName');
135
+ field.layout({ positions: { lg: { colSpan: 4, order: 1 } } });
136
+ field.textBox({
137
+ placeholder: '@general:terms.contact.first-name',
138
+ validations: [{ rule: 'required' }],
139
+ });
140
+ })
141
+ .formField('@general:terms.contact.last-name', (field) => {
142
+ field.path('lastName');
143
+ field.layout({ positions: { lg: { colSpan: 4, order: 2 } } });
144
+ field.textBox({
145
+ placeholder: '@general:terms.contact.last-name',
146
+ validations: [{ rule: 'required' }],
147
+ });
148
+ })
149
+ .formField('@person-core:persons.entities.person.fields.birth-date.title', (field) => {
150
+ field.path('birthDate');
151
+ field.layout({ positions: { lg: { colSpan: 4, order: 3 } } });
152
+ field.dateTimeBox({ format: 'date' });
153
+ })
154
+ .formField('@person-core:persons.entities.person.fields.gender.title', (field) => {
155
+ field.path('genderId');
156
+ field.layout({ positions: { lg: { colSpan: 4, order: 4 } } });
157
+ field.lookupBox(this.buildPersonCatalogLookupOptions('gender', 'gender'));
158
+ })
159
+ .formField('@person-core:persons.entities.person.fields.identity-number.title', (field) => {
160
+ field.path('identityNumber');
161
+ field.layout({ positions: { lg: { colSpan: 4, order: 5 } } });
162
+ field.textBox({
163
+ placeholder: '@person-core:persons.entities.person.fields.identity-number.placeholder',
164
+ });
165
+ })
166
+ .formField('@person-core:persons.entities.person.fields.marital-status.title', (field) => {
167
+ field.path('maritalStatusId');
168
+ field.layout({ positions: { lg: { colSpan: 6, order: 6 } } });
169
+ field.lookupBox(this.buildPersonCatalogLookupOptions('maritalStatus', 'maritalStatus'));
170
+ })
171
+ .formField('@person-core:persons.entities.person.fields.education-level.title', (field) => {
172
+ field.path('educationLevelId');
173
+ field.layout({ positions: { lg: { colSpan: 6, order: 7 } } });
174
+ field.lookupBox(this.buildPersonCatalogLookupOptions('educationLevel', 'educationLevel'));
133
175
  });
134
- })
135
- .formField('@person-core:persons.entities.person.groups.phones', (field) => {
136
- field.path('phones');
137
- field.customWidget(AXPWidgetsList.Layouts.RepeaterLayout, {
138
- hasControls: true,
139
- children: PHONES_REPEATER_CHILDREN,
176
+ });
177
+ flex.fieldset((phonesSection) => {
178
+ phonesSection
179
+ .setLook('fieldset')
180
+ .setTitle('@person-core:persons.entities.person.groups.phones')
181
+ .setCols(1)
182
+ .formField('@person-core:persons.entities.person.groups.phones', (field) => {
183
+ field.path('phones');
184
+ field.setShowLabel(false);
185
+ field.customWidget(AXPWidgetsList.Layouts.RepeaterLayout, {
186
+ hasControls: true,
187
+ children: PHONES_REPEATER_CHILDREN,
188
+ });
140
189
  });
141
- })
142
- .formField('@person-core:persons.entities.person.groups.emails', (field) => {
143
- field.path('emails');
144
- field.customWidget(AXPWidgetsList.Layouts.RepeaterLayout, {
145
- hasControls: true,
146
- children: EMAILS_REPEATER_CHILDREN,
190
+ });
191
+ flex.fieldset((emailsSection) => {
192
+ emailsSection
193
+ .setLook('fieldset')
194
+ .setTitle('@person-core:persons.entities.person.groups.emails')
195
+ .setCols(1)
196
+ .formField('@person-core:persons.entities.person.groups.emails', (field) => {
197
+ field.path('emails');
198
+ field.setShowLabel(false);
199
+ field.customWidget(AXPWidgetsList.Layouts.RepeaterLayout, {
200
+ hasControls: true,
201
+ children: EMAILS_REPEATER_CHILDREN,
202
+ });
147
203
  });
148
204
  });
149
205
  });
@@ -154,22 +210,28 @@ class AXMHcmEditPersonalInfoCommand {
154
210
  })
155
211
  .onAction(async (dialogRef) => {
156
212
  if (dialogRef.action() === 'cancel') {
157
- return { success: false };
213
+ return null;
158
214
  }
159
215
  const form = dialogRef.context();
160
216
  const firstName = trim(form.firstName);
161
217
  const lastName = trim(form.lastName);
162
218
  if (isEmpty(firstName) || isEmpty(lastName)) {
163
- await this.showError('@human-capital-management:profile-page.commands.edit-personal-info.messages.required-name');
164
- throw new Error('First name and last name are required');
219
+ throw new Error('@human-capital-management:profile-page.commands.edit-personal-info.messages.required-name');
165
220
  }
166
221
  dialogRef.setLoading(true);
167
222
  try {
168
223
  const phones = this.normalizeContactItems(form.phones);
169
224
  const emails = this.normalizeContactItems(form.emails);
225
+ const identityNumber = trim(defaultTo(form.identityNumber, ''));
170
226
  await personData.update(profileContext.personId, {
227
+ personTitleId: form.personTitleId,
171
228
  firstName,
172
229
  lastName,
230
+ birthDate: form.birthDate,
231
+ genderId: form.genderId,
232
+ identityNumber: isEmpty(identityNumber) ? undefined : identityNumber,
233
+ maritalStatusId: form.maritalStatusId,
234
+ educationLevelId: form.educationLevelId,
173
235
  phones,
174
236
  emails,
175
237
  });
@@ -179,7 +241,6 @@ class AXMHcmEditPersonalInfoCommand {
179
241
  });
180
242
  const successTitle = await this.translateService.translateAsync('@human-capital-management:profile-page.commands.edit-personal-info.messages.success');
181
243
  this.toastService.show({ color: 'success', title: successTitle });
182
- dialogRef.close();
183
244
  return { success: true, kind: 'object', data: undefined };
184
245
  }
185
246
  finally {
@@ -188,18 +249,54 @@ class AXMHcmEditPersonalInfoCommand {
188
249
  });
189
250
  })
190
251
  .show();
191
- return result ?? { success: false };
252
+ const commandResult = resolveLayoutBuilderDialogResult(result);
253
+ if (!commandResult) {
254
+ return { success: true, kind: 'object', data: undefined };
255
+ }
256
+ return commandResult;
192
257
  }
193
258
  //#endregion
194
259
  //#region ---- Utility Methods ----
260
+ /** Desktop widths (including 1440) need lg for the 3-column profile grid; smaller viewports use xl. */
261
+ resolveDialogSize() {
262
+ const width = window.innerWidth;
263
+ if (width <= 1024) {
264
+ return 'xl';
265
+ }
266
+ return 'lg';
267
+ }
195
268
  buildFormContext(person) {
196
269
  return {
270
+ personTitleId: person.personTitleId,
271
+ personTitle: cloneDeep(person.personTitle),
197
272
  firstName: defaultTo(person.firstName, ''),
198
273
  lastName: defaultTo(person.lastName, ''),
274
+ birthDate: person.birthDate,
275
+ genderId: person.genderId,
276
+ gender: cloneDeep(person.gender),
277
+ identityNumber: defaultTo(person.identityNumber, ''),
278
+ maritalStatusId: person.maritalStatusId,
279
+ maritalStatus: cloneDeep(person.maritalStatus),
280
+ educationLevelId: person.educationLevelId,
281
+ educationLevel: cloneDeep(person.educationLevel),
199
282
  phones: cloneDeep(defaultTo(person.phones, [])),
200
283
  emails: cloneDeep(defaultTo(person.emails, [])),
201
284
  };
202
285
  }
286
+ /** Lookup options aligned with Person entity profile catalogs (quick-create enabled). */
287
+ buildPersonCatalogLookupOptions(entityKey, exposeTarget) {
288
+ return {
289
+ entity: `${PERSON_CORE_MODULE}.${RootConfig$1.entities[entityKey].name}`,
290
+ valueField: 'id',
291
+ textField: 'title',
292
+ look: 'select',
293
+ allowCreate: 'quick',
294
+ expose: [
295
+ { source: 'id', target: `${exposeTarget}.id` },
296
+ { source: 'title', target: `${exposeTarget}.title` },
297
+ ],
298
+ };
299
+ }
203
300
  /** Normalizes repeater contact rows to `{ value: string }[]`, matching Person entity storage. */
204
301
  normalizeContactItems(items) {
205
302
  if (!isArray(items)) {
@@ -224,11 +321,6 @@ class AXMHcmEditPersonalInfoCommand {
224
321
  }
225
322
  return { value: trim(String(record.value ?? '')) };
226
323
  }
227
- async showError(messageKey) {
228
- const content = await this.translateService.translateAsync(messageKey);
229
- const title = await this.translateService.translateAsync('@general:messages.generic.error.title');
230
- this.toastService.show({ color: 'danger', title, content, closeButton: true });
231
- }
232
324
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXMHcmEditPersonalInfoCommand, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
233
325
  static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXMHcmEditPersonalInfoCommand, providedIn: 'root' }); }
234
326
  }
@@ -238,4 +330,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImpor
238
330
  }] });
239
331
 
240
332
  export { AXMHcmEditPersonalInfoCommand };
241
- //# sourceMappingURL=acorex-platform-module-human-capital-management-client-edit-personal-info.command-DK947cW5.mjs.map
333
+ //# sourceMappingURL=acorex-platform-module-human-capital-management-client-edit-personal-info.command-CRUNursl.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"acorex-platform-module-human-capital-management-client-edit-personal-info.command-CRUNursl.mjs","sources":["../../../../libs/modules/human-capital-management/client/src/lib/features/profile-page/sync-user-from-person.service.ts","../../../../libs/modules/human-capital-management/client/src/lib/features/profile-page/commands/edit-personal-info.command.ts"],"sourcesContent":["import { AXPUserProfileIdentityService } from '@acorex-platform/framework-client/auth';\nimport {RootConfig as SecurityManagementRootConfig} from '@acorex-platform/module-security-management-client/contracts';\nimport {AXMSecurityManagementUsersEntityModel} from '@acorex-platform/module-security-management-client/contracts';\nimport { AXPEntityService } from '@acorex-platform/framework-client/layout/entity';\nimport { Injectable, inject } from '@angular/core';\nimport { trim } from 'lodash';\n\n//#region ---- Sync payload ----\n\nexport interface AXMHcmSyncUserFromPersonInput {\n firstName: string;\n lastName: string;\n}\n\n//#endregion\n\n//#region ---- Sync user from person service ----\n\n/**\n * Keeps the application user record and session display fields aligned with person identity updates.\n * Avatar sync is handled server-side by HCM avatar middleware when Person.image changes.\n */\n@Injectable({ providedIn: 'root' })\nexport class AXMHcmSyncUserFromPersonService {\n //#region ---- Services & Dependencies ----\n\n private readonly entityService = inject(AXPEntityService);\n private readonly identityService = inject(AXPUserProfileIdentityService);\n\n //#endregion\n\n //#region ---- Public API ----\n\n async sync(userId: string, person: AXMHcmSyncUserFromPersonInput): Promise<void> {\n const displayName = trim(`${person.firstName} ${person.lastName}`);\n if (!displayName) {\n return;\n }\n\n const userData = this.entityService\n .withEntity(\n SecurityManagementRootConfig.module.name,\n SecurityManagementRootConfig.entities.users.name,\n )\n .data<string, AXMSecurityManagementUsersEntityModel>();\n\n await userData.update(userId, { displayName });\n\n await this.identityService.applySessionPatch({\n title: displayName,\n });\n }\n\n //#endregion\n}\n\n//#endregion\n","import { AXPCommand, type AXPCommandExecuteResultPromise } from '@acorex-platform/framework-shared/runtime';\nimport { AXPRuntimeCommandResult, AXPWidgetsList } from '@acorex-platform/framework-shared/core';\nimport { AXToastService } from '@acorex/components/toast';\nimport { AXTranslationService } from '@acorex/core/translation';\nimport type { AXPopupSizeType } from '@acorex/components/popup';\n\nimport {RootConfig as PersonCoreRootConfig} from '@acorex-platform/module-person-core-client/contracts'\nimport {AXMPersonCorePersonEntityModel} from '@acorex-platform/module-person-core-client/contracts';\n\nimport {\n AXPLayoutBuilderService,\n resolveLayoutBuilderDialogResult,\n type LookupBoxOptions,\n} from '@acorex-platform/framework-client/layout/builder';\nimport { AXPEntityService } from '@acorex-platform/framework-client/layout/entity';\n\nimport { inject, Injectable } from '@angular/core';\nimport { cloneDeep, defaultTo, isArray, isEmpty, isNil, isObject, isString, trim } from 'lodash';\n\nimport { AXMHcmProfileContextService } from '../profile-context.service';\nimport { AXMHcmSyncUserFromPersonService } from '../sync-user-from-person.service';\n\n//#region ---- Repeater children (aligned with Person entity) ----\n\nconst PHONES_REPEATER_CHILDREN = [\n {\n type: AXPWidgetsList.Editors.ContactBox,\n mode: 'edit' as const,\n options: {\n type: 'phone',\n placeholder: '@person-core:persons.entities.person.fields.phone.placeholder',\n },\n },\n];\n\nconst EMAILS_REPEATER_CHILDREN = [\n {\n type: AXPWidgetsList.Editors.ContactBox,\n mode: 'edit' as const,\n options: {\n type: 'email',\n placeholder: '@person-core:persons.entities.person.fields.email.placeholder',\n },\n },\n];\n\n//#endregion\n\n//#region ---- Constants ----\n\nconst PERSON_CORE_MODULE = PersonCoreRootConfig.module.name;\n\n//#endregion\n\n//#region ---- Form context ----\n\ninterface AXMHcmEditPersonalInfoFormContext {\n personTitleId?: string;\n personTitle?: { id: string; title?: unknown };\n firstName: string;\n lastName: string;\n birthDate?: string;\n genderId?: string;\n gender?: { id: string; title?: unknown };\n identityNumber?: string;\n maritalStatusId?: string;\n maritalStatus?: { id: string; title?: unknown };\n educationLevelId?: string;\n educationLevel?: { id: string; title?: unknown };\n phones: Array<{ value: string; label?: string }>;\n emails: Array<{ value: string; label?: string }>;\n}\n\n//#endregion\n\n//#region ---- Edit personal info command ----\n\n/** Opens a self-service dialog to update the linked person record and sync user display fields. */\n@Injectable({ providedIn: 'root' })\nexport class AXMHcmEditPersonalInfoCommand implements AXPCommand {\n //#region ---- Services & Dependencies ----\n\n private readonly layoutBuilder = inject(AXPLayoutBuilderService);\n private readonly entityService = inject(AXPEntityService);\n private readonly profileContextService = inject(AXMHcmProfileContextService);\n private readonly syncUserService = inject(AXMHcmSyncUserFromPersonService);\n private readonly toastService = inject(AXToastService);\n private readonly translateService = inject(AXTranslationService);\n\n //#endregion\n\n //#region ---- Command ----\n\n async execute(): AXPCommandExecuteResultPromise<void> {\n const profileContext = await this.profileContextService.resolve();\n if (isNil(profileContext)) {\n return {\n success: false,\n message: {\n text: await this.translateService.translateAsync(\n '@human-capital-management:profile-page.commands.edit-personal-info.messages.no-employee',\n ),\n },\n };\n }\n\n const personData = this.entityService\n .withEntity(PersonCoreRootConfig.module.name, PersonCoreRootConfig.entities.person.name)\n .data<string, AXMPersonCorePersonEntityModel>();\n\n const person = await personData.byKey(profileContext.personId);\n if (isNil(person)) {\n return {\n success: false,\n message: {\n text: await this.translateService.translateAsync(\n '@human-capital-management:profile-page.commands.edit-personal-info.messages.person-not-found',\n ),\n },\n };\n }\n\n const dialogTitle = await this.translateService.translateAsync(\n '@human-capital-management:profile-page.commands.edit-personal-info.dialog.title',\n );\n\n const result = await this.layoutBuilder\n .create()\n .dialog<AXPRuntimeCommandResult<void> | null>((dialog) => {\n dialog\n .setTitle(dialogTitle)\n .setSize(this.resolveDialogSize())\n .setCloseButton(true)\n .setContext(this.buildFormContext(person))\n .content((layout) => {\n layout.mode('edit');\n layout.flex((flex) => {\n flex.setDirection('column').setGap('1rem');\n\n flex.fieldset((profileSection) => {\n profileSection\n .setLook('fieldset')\n .setTitle('@person-core:persons.entities.person.groups.profile')\n .setCols(12)\n .formField('@person-core:persons.entities.person.fields.person-title.title', (field) => {\n field.path('personTitleId');\n field.layout({ positions: { lg: { colSpan: 4, order: 0 } } });\n field.lookupBox(this.buildPersonCatalogLookupOptions('personTitle', 'personTitle'));\n })\n .formField('@general:terms.contact.first-name', (field) => {\n field.path('firstName');\n field.layout({ positions: { lg: { colSpan: 4, order: 1 } } });\n field.textBox({\n placeholder: '@general:terms.contact.first-name',\n validations: [{ rule: 'required' }],\n });\n })\n .formField('@general:terms.contact.last-name', (field) => {\n field.path('lastName');\n field.layout({ positions: { lg: { colSpan: 4, order: 2 } } });\n field.textBox({\n placeholder: '@general:terms.contact.last-name',\n validations: [{ rule: 'required' }],\n });\n })\n .formField('@person-core:persons.entities.person.fields.birth-date.title', (field) => {\n field.path('birthDate');\n field.layout({ positions: { lg: { colSpan: 4, order: 3 } } });\n field.dateTimeBox({ format: 'date' });\n })\n .formField('@person-core:persons.entities.person.fields.gender.title', (field) => {\n field.path('genderId');\n field.layout({ positions: { lg: { colSpan: 4, order: 4 } } });\n field.lookupBox(this.buildPersonCatalogLookupOptions('gender', 'gender'));\n })\n .formField('@person-core:persons.entities.person.fields.identity-number.title', (field) => {\n field.path('identityNumber');\n field.layout({ positions: { lg: { colSpan: 4, order: 5 } } });\n field.textBox({\n placeholder: '@person-core:persons.entities.person.fields.identity-number.placeholder',\n });\n })\n .formField('@person-core:persons.entities.person.fields.marital-status.title', (field) => {\n field.path('maritalStatusId');\n field.layout({ positions: { lg: { colSpan: 6, order: 6 } } });\n field.lookupBox(this.buildPersonCatalogLookupOptions('maritalStatus', 'maritalStatus'));\n })\n .formField('@person-core:persons.entities.person.fields.education-level.title', (field) => {\n field.path('educationLevelId');\n field.layout({ positions: { lg: { colSpan: 6, order: 7 } } });\n field.lookupBox(this.buildPersonCatalogLookupOptions('educationLevel', 'educationLevel'));\n });\n });\n\n flex.fieldset((phonesSection) => {\n phonesSection\n .setLook('fieldset')\n .setTitle('@person-core:persons.entities.person.groups.phones')\n .setCols(1)\n .formField('@person-core:persons.entities.person.groups.phones', (field) => {\n field.path('phones');\n field.setShowLabel(false);\n field.customWidget(AXPWidgetsList.Layouts.RepeaterLayout, {\n hasControls: true,\n children: PHONES_REPEATER_CHILDREN,\n });\n });\n });\n\n flex.fieldset((emailsSection) => {\n emailsSection\n .setLook('fieldset')\n .setTitle('@person-core:persons.entities.person.groups.emails')\n .setCols(1)\n .formField('@person-core:persons.entities.person.groups.emails', (field) => {\n field.path('emails');\n field.setShowLabel(false);\n field.customWidget(AXPWidgetsList.Layouts.RepeaterLayout, {\n hasControls: true,\n children: EMAILS_REPEATER_CHILDREN,\n });\n });\n });\n });\n })\n .setActions((actions) => {\n actions.cancel('@general:actions.cancel.title');\n actions.submit('@general:actions.save.title');\n })\n .onAction(async (dialogRef) => {\n if (dialogRef.action() === 'cancel') {\n return null;\n }\n\n const form = dialogRef.context() as AXMHcmEditPersonalInfoFormContext;\n const firstName = trim(form.firstName);\n const lastName = trim(form.lastName);\n\n if (isEmpty(firstName) || isEmpty(lastName)) {\n throw new Error(\n '@human-capital-management:profile-page.commands.edit-personal-info.messages.required-name',\n );\n }\n\n dialogRef.setLoading(true);\n try {\n const phones = this.normalizeContactItems(form.phones);\n const emails = this.normalizeContactItems(form.emails);\n const identityNumber = trim(defaultTo(form.identityNumber, ''));\n\n await personData.update(profileContext.personId, {\n personTitleId: form.personTitleId,\n firstName,\n lastName,\n birthDate: form.birthDate,\n genderId: form.genderId,\n identityNumber: isEmpty(identityNumber) ? undefined : identityNumber,\n maritalStatusId: form.maritalStatusId,\n educationLevelId: form.educationLevelId,\n phones,\n emails,\n });\n\n await this.syncUserService.sync(profileContext.userId, {\n firstName,\n lastName,\n });\n\n const successTitle = await this.translateService.translateAsync(\n '@human-capital-management:profile-page.commands.edit-personal-info.messages.success',\n );\n this.toastService.show({ color: 'success', title: successTitle });\n return { success: true, kind: 'object', data: undefined };\n } finally {\n dialogRef.setLoading(false);\n }\n });\n })\n .show();\n\n const commandResult = resolveLayoutBuilderDialogResult<AXPRuntimeCommandResult<void>>(result);\n if (!commandResult) {\n return { success: true, kind: 'object', data: undefined };\n }\n\n return commandResult;\n }\n\n //#endregion\n\n //#region ---- Utility Methods ----\n\n /** Desktop widths (including 1440) need lg for the 3-column profile grid; smaller viewports use xl. */\n private resolveDialogSize(): AXPopupSizeType {\n const width = window.innerWidth;\n if (width <= 1024) {\n return 'xl';\n }\n\n return 'lg';\n }\n\n private buildFormContext(person: AXMPersonCorePersonEntityModel): AXMHcmEditPersonalInfoFormContext {\n return {\n personTitleId: person.personTitleId,\n personTitle: cloneDeep(person.personTitle),\n firstName: defaultTo(person.firstName, ''),\n lastName: defaultTo(person.lastName, ''),\n birthDate: person.birthDate,\n genderId: person.genderId,\n gender: cloneDeep(person.gender),\n identityNumber: defaultTo(person.identityNumber, ''),\n maritalStatusId: person.maritalStatusId,\n maritalStatus: cloneDeep(person.maritalStatus),\n educationLevelId: person.educationLevelId,\n educationLevel: cloneDeep(person.educationLevel),\n phones: cloneDeep(defaultTo(person.phones, [])),\n emails: cloneDeep(defaultTo(person.emails, [])),\n };\n }\n\n /** Lookup options aligned with Person entity profile catalogs (quick-create enabled). */\n private buildPersonCatalogLookupOptions(\n entityKey: 'personTitle' | 'gender' | 'maritalStatus' | 'educationLevel',\n exposeTarget: 'personTitle' | 'gender' | 'maritalStatus' | 'educationLevel',\n ): Omit<LookupBoxOptions, 'path'> {\n return {\n entity: `${PERSON_CORE_MODULE}.${PersonCoreRootConfig.entities[entityKey].name}`,\n valueField: 'id',\n textField: 'title',\n look: 'select',\n allowCreate: 'quick',\n expose: [\n { source: 'id', target: `${exposeTarget}.id` },\n { source: 'title', target: `${exposeTarget}.title` },\n ],\n } as Omit<LookupBoxOptions, 'path'>;\n }\n\n /** Normalizes repeater contact rows to `{ value: string }[]`, matching Person entity storage. */\n private normalizeContactItems(items: unknown): Array<{ value: string }> {\n if (!isArray(items)) {\n return [];\n }\n\n return items\n .map((entry) => this.normalizeContactEntry(entry))\n .filter((entry) => !isEmpty(entry.value));\n }\n\n private normalizeContactEntry(entry: unknown): { value: string } {\n if (isString(entry)) {\n return { value: trim(entry) };\n }\n\n if (!isObject(entry) || isNil(entry)) {\n return { value: '' };\n }\n\n const record = entry as { value?: unknown; label?: string };\n const inner = record.value;\n\n if (isObject(inner) && !isNil(inner) && 'value' in inner) {\n const nested = inner as { value?: unknown };\n return { value: trim(String(nested.value ?? '')) };\n }\n\n return { value: trim(String(record.value ?? '')) };\n }\n\n //#endregion\n}\n\n//#endregion\n"],"names":["SecurityManagementRootConfig","PersonCoreRootConfig"],"mappings":"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"}
@@ -6,7 +6,7 @@ import * as i0 from '@angular/core';
6
6
  import { inject, Injectable } from '@angular/core';
7
7
  import { isNil, defaultTo, isEmpty, trim } from 'lodash';
8
8
  import { RootConfig } from '@acorex-platform/module-human-capital-management-client/contracts';
9
- import { A as AXMHcmProfileContextService } from './acorex-platform-module-human-capital-management-client-acorex-platform-module-human-capital-management-client-DlWna0Lz.mjs';
9
+ import { A as AXMHcmProfileContextService } from './acorex-platform-module-human-capital-management-client-acorex-platform-module-human-capital-management-client-DmqiCOti.mjs';
10
10
 
11
11
  //#region ---- Edit signature command ----
12
12
  /** Opens the shared signature editor for the current employee record. */
@@ -73,4 +73,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImpor
73
73
  }] });
74
74
 
75
75
  export { AXMHcmEditSignatureCommand };
76
- //# sourceMappingURL=acorex-platform-module-human-capital-management-client-edit-signature.command-CKrcMxqr.mjs.map
76
+ //# sourceMappingURL=acorex-platform-module-human-capital-management-client-edit-signature.command-Bb3mxwBE.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"acorex-platform-module-human-capital-management-client-edit-signature.command-CKrcMxqr.mjs","sources":["../../../../libs/modules/human-capital-management/client/src/lib/features/profile-page/commands/edit-signature.command.ts"],"sourcesContent":["import { AXPCommand, type AXPCommandExecuteResultPromise } from '@acorex-platform/framework-shared/runtime';\nimport { AXToastService } from '@acorex/components/toast';\nimport { AXTranslationService } from '@acorex/core/translation';\nimport { AXPRuntimeCommandResult } from '@acorex-platform/framework-shared/core';\nimport { AXPSignatureEditorService } from '@acorex-platform/framework-client/layout/components';\nimport { AXPEntityService } from '@acorex-platform/framework-client/layout/entity';\n\nimport { inject, Injectable } from '@angular/core';\nimport { defaultTo, isEmpty, isNil, trim } from 'lodash';\n\nimport { RootConfig } from '@acorex-platform/module-human-capital-management-client/contracts';\nimport { AXMHumanCapitalManagementEmployeeEntityModel } from '@acorex-platform/module-human-capital-management-client/contracts';\nimport { AXMHcmProfileContextService } from '../profile-context.service';\n\n//#region ---- Edit signature command ----\n\n/** Opens the shared signature editor for the current employee record. */\n@Injectable({ providedIn: 'root' })\nexport class AXMHcmEditSignatureCommand implements AXPCommand {\n //#region ---- Services & Dependencies ----\n\n private readonly signatureEditorService = inject(AXPSignatureEditorService);\n private readonly entityService = inject(AXPEntityService);\n private readonly profileContextService = inject(AXMHcmProfileContextService);\n private readonly toastService = inject(AXToastService);\n private readonly translateService = inject(AXTranslationService);\n\n //#endregion\n\n //#region ---- Command ----\n\n async execute(): AXPCommandExecuteResultPromise<void> {\n const profileContext = await this.profileContextService.resolve();\n if (isNil(profileContext)) {\n return {\n success: false,\n message: {\n text: await this.translateService.translateAsync(\n '@human-capital-management:profile-page.commands.edit-signature.messages.no-employee',\n ),\n },\n };\n }\n\n const employeeData = this.entityService\n .withEntity(RootConfig.module.name, RootConfig.entities.employee.name)\n .data<string, AXMHumanCapitalManagementEmployeeEntityModel>();\n\n const employee = await employeeData.byKey(profileContext.employeeId);\n if (isNil(employee)) {\n return {\n success: false,\n message: {\n text: await this.translateService.translateAsync(\n '@human-capital-management:profile-page.commands.edit-signature.messages.employee-not-found',\n ),\n },\n };\n }\n\n const existingSignature = defaultTo(employee.signature, '');\n const submitActionKey = isEmpty(existingSignature)\n ? '@general:actions.save.title'\n : '@general:actions.update.title';\n\n const dialogTitle = await this.translateService.translateAsync(\n '@human-capital-management:profile-page.commands.edit-signature.dialog.title',\n );\n\n const result = await this.signatureEditorService.open({\n title: dialogTitle,\n value: existingSignature,\n submitActionKey,\n });\n\n if (result.action === 'cancel') {\n return { success: false };\n }\n\n const signature = trim(defaultTo(result.value, ''));\n await employeeData.update(profileContext.employeeId, { signature });\n\n const successTitle = await this.translateService.translateAsync(\n isEmpty(signature)\n ? '@human-capital-management:profile-page.commands.edit-signature.messages.removed'\n : '@human-capital-management:profile-page.commands.edit-signature.messages.success',\n );\n this.toastService.show({ color: 'success', title: successTitle });\n return { success: true, kind: 'object', data: undefined };\n }\n\n //#endregion\n}\n\n//#endregion\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"acorex-platform-module-human-capital-management-client-edit-signature.command-Bb3mxwBE.mjs","sources":["../../../../libs/modules/human-capital-management/client/src/lib/features/profile-page/commands/edit-signature.command.ts"],"sourcesContent":["import { AXPCommand, type AXPCommandExecuteResultPromise } from '@acorex-platform/framework-shared/runtime';\nimport { AXToastService } from '@acorex/components/toast';\nimport { AXTranslationService } from '@acorex/core/translation';\nimport { AXPRuntimeCommandResult } from '@acorex-platform/framework-shared/core';\nimport { AXPSignatureEditorService } from '@acorex-platform/framework-client/layout/components';\nimport { AXPEntityService } from '@acorex-platform/framework-client/layout/entity';\n\nimport { inject, Injectable } from '@angular/core';\nimport { defaultTo, isEmpty, isNil, trim } from 'lodash';\n\nimport { RootConfig } from '@acorex-platform/module-human-capital-management-client/contracts';\nimport { AXMHumanCapitalManagementEmployeeEntityModel } from '@acorex-platform/module-human-capital-management-client/contracts';\nimport { AXMHcmProfileContextService } from '../profile-context.service';\n\n//#region ---- Edit signature command ----\n\n/** Opens the shared signature editor for the current employee record. */\n@Injectable({ providedIn: 'root' })\nexport class AXMHcmEditSignatureCommand implements AXPCommand {\n //#region ---- Services & Dependencies ----\n\n private readonly signatureEditorService = inject(AXPSignatureEditorService);\n private readonly entityService = inject(AXPEntityService);\n private readonly profileContextService = inject(AXMHcmProfileContextService);\n private readonly toastService = inject(AXToastService);\n private readonly translateService = inject(AXTranslationService);\n\n //#endregion\n\n //#region ---- Command ----\n\n async execute(): AXPCommandExecuteResultPromise<void> {\n const profileContext = await this.profileContextService.resolve();\n if (isNil(profileContext)) {\n return {\n success: false,\n message: {\n text: await this.translateService.translateAsync(\n '@human-capital-management:profile-page.commands.edit-signature.messages.no-employee',\n ),\n },\n };\n }\n\n const employeeData = this.entityService\n .withEntity(RootConfig.module.name, RootConfig.entities.employee.name)\n .data<string, AXMHumanCapitalManagementEmployeeEntityModel>();\n\n const employee = await employeeData.byKey(profileContext.employeeId);\n if (isNil(employee)) {\n return {\n success: false,\n message: {\n text: await this.translateService.translateAsync(\n '@human-capital-management:profile-page.commands.edit-signature.messages.employee-not-found',\n ),\n },\n };\n }\n\n const existingSignature = defaultTo(employee.signature, '');\n const submitActionKey = isEmpty(existingSignature)\n ? '@general:actions.save.title'\n : '@general:actions.update.title';\n\n const dialogTitle = await this.translateService.translateAsync(\n '@human-capital-management:profile-page.commands.edit-signature.dialog.title',\n );\n\n const result = await this.signatureEditorService.open({\n title: dialogTitle,\n value: existingSignature,\n submitActionKey,\n });\n\n if (result.action === 'cancel') {\n return { success: false };\n }\n\n const signature = trim(defaultTo(result.value, ''));\n await employeeData.update(profileContext.employeeId, { signature });\n\n const successTitle = await this.translateService.translateAsync(\n isEmpty(signature)\n ? '@human-capital-management:profile-page.commands.edit-signature.messages.removed'\n : '@human-capital-management:profile-page.commands.edit-signature.messages.success',\n );\n this.toastService.show({ color: 'success', title: successTitle });\n return { success: true, kind: 'object', data: undefined };\n }\n\n //#endregion\n}\n\n//#endregion\n"],"names":[],"mappings":"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"}
@@ -0,0 +1,35 @@
1
+ import { provideLocalEntityCatalog } from '@acorex-platform/framework-client/layout/entity';
2
+ import { RootConfig } from '@acorex-platform/module-human-capital-management-client/contracts';
3
+ export { humanCapitalManagementLocalEntityCatalog } from '@acorex-platform/module-human-capital-management-client/contracts/entity-catalog';
4
+
5
+ //#region ----- Imports -----
6
+ //#endregion
7
+ //#region ----- Provide local entities -----
8
+ /**
9
+ * Registers human-capital-management layouts on the client from packaged factories.
10
+ * Each `import()` targets a secondary entry so unused entities stay out of the
11
+ * bundle. Do not add this to the demo app; demo continues to load layouts via
12
+ * `Domain:GetEntityLayout`.
13
+ */
14
+ function provideHumanCapitalManagementLocalEntities() {
15
+ return provideLocalEntityCatalog({
16
+ moduleName: RootConfig.module.name,
17
+ loaders: {
18
+ [RootConfig.entities.employee.name]: () => import('@acorex-platform/module-human-capital-management-client/contracts/entities/employee').then((m) => m.factoryEmployee()),
19
+ [RootConfig.entities.employmentType.name]: () => import('@acorex-platform/module-human-capital-management-client/contracts/entities/employment-type').then((m) => m.factoryEmploymentType()),
20
+ [RootConfig.entities.leaveRequest.name]: () => import('@acorex-platform/module-human-capital-management-client/contracts/entities/leave-request').then((m) => m.factoryLeaveRequest()),
21
+ [RootConfig.entities.leaveType.name]: () => import('@acorex-platform/module-human-capital-management-client/contracts/entities/leave-type').then((m) => m.factoryLeaveType()),
22
+ [RootConfig.entities.lifecycleEvent.name]: () => import('@acorex-platform/module-human-capital-management-client/contracts/entities/lifecycle-event').then((m) => m.factoryLifecycleEvent()),
23
+ [RootConfig.entities.lifecycleEventType.name]: () => import('@acorex-platform/module-human-capital-management-client/contracts/entities/lifecycle-event-type').then((m) => m.factoryLifecycleEventType()),
24
+ [RootConfig.entities.positionAssignment.name]: () => import('@acorex-platform/module-human-capital-management-client/contracts/entities/position-assignment').then((m) => m.factoryPositionAssignment()),
25
+ },
26
+ });
27
+ }
28
+ //#endregion
29
+
30
+ /**
31
+ * Generated bundle index. Do not edit.
32
+ */
33
+
34
+ export { provideHumanCapitalManagementLocalEntities };
35
+ //# sourceMappingURL=acorex-platform-module-human-capital-management-client-local-entities.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"acorex-platform-module-human-capital-management-client-local-entities.mjs","sources":["../../../../libs/modules/human-capital-management/client/src/lib/provide-local-entities.ts","../../../../libs/modules/human-capital-management/client/src/lib/acorex-platform-module-human-capital-management-client-local-entities.ts"],"sourcesContent":["//#region ----- Imports -----\n\nimport { provideLocalEntityCatalog } from '@acorex-platform/framework-client/layout/entity';\nimport { RootConfig } from '@acorex-platform/module-human-capital-management-client/contracts';\n\n//#endregion\n\n//#region ----- Provide local entities -----\n\n/**\n * Registers human-capital-management layouts on the client from packaged factories.\n * Each `import()` targets a secondary entry so unused entities stay out of the\n * bundle. Do not add this to the demo app; demo continues to load layouts via\n * `Domain:GetEntityLayout`.\n */\nexport function provideHumanCapitalManagementLocalEntities() {\n return provideLocalEntityCatalog({\n moduleName: RootConfig.module.name,\n loaders: {\n [RootConfig.entities.employee.name]: () =>\n import('@acorex-platform/module-human-capital-management-client/contracts/entities/employee').then((m) => m.factoryEmployee()),\n [RootConfig.entities.employmentType.name]: () =>\n import('@acorex-platform/module-human-capital-management-client/contracts/entities/employment-type').then((m) => m.factoryEmploymentType()),\n [RootConfig.entities.leaveRequest.name]: () =>\n import('@acorex-platform/module-human-capital-management-client/contracts/entities/leave-request').then((m) => m.factoryLeaveRequest()),\n [RootConfig.entities.leaveType.name]: () =>\n import('@acorex-platform/module-human-capital-management-client/contracts/entities/leave-type').then((m) => m.factoryLeaveType()),\n [RootConfig.entities.lifecycleEvent.name]: () =>\n import('@acorex-platform/module-human-capital-management-client/contracts/entities/lifecycle-event').then((m) => m.factoryLifecycleEvent()),\n [RootConfig.entities.lifecycleEventType.name]: () =>\n import('@acorex-platform/module-human-capital-management-client/contracts/entities/lifecycle-event-type').then((m) => m.factoryLifecycleEventType()),\n [RootConfig.entities.positionAssignment.name]: () =>\n import('@acorex-platform/module-human-capital-management-client/contracts/entities/position-assignment').then((m) => m.factoryPositionAssignment()),\n },\n });\n}\n\nexport { humanCapitalManagementLocalEntityCatalog } from '@acorex-platform/module-human-capital-management-client/contracts/entity-catalog';\n\n//#endregion\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './provide-local-entities';\n"],"names":[],"mappings":";;;;AAAA;AAKA;AAEA;AAEA;;;;;AAKG;SACa,0CAA0C,GAAA;AACxD,IAAA,OAAO,yBAAyB,CAAC;AAC/B,QAAA,UAAU,EAAE,UAAU,CAAC,MAAM,CAAC,IAAI;AAClC,QAAA,OAAO,EAAE;AACP,YAAA,CAAC,UAAU,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,GAAG,MACnC,OAAO,qFAAqF,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,eAAe,EAAE,CAAC;AAChI,YAAA,CAAC,UAAU,CAAC,QAAQ,CAAC,cAAc,CAAC,IAAI,GAAG,MACzC,OAAO,4FAA4F,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,qBAAqB,EAAE,CAAC;AAC7I,YAAA,CAAC,UAAU,CAAC,QAAQ,CAAC,YAAY,CAAC,IAAI,GAAG,MACvC,OAAO,0FAA0F,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,mBAAmB,EAAE,CAAC;AACzI,YAAA,CAAC,UAAU,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,GAAG,MACpC,OAAO,uFAAuF,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,gBAAgB,EAAE,CAAC;AACnI,YAAA,CAAC,UAAU,CAAC,QAAQ,CAAC,cAAc,CAAC,IAAI,GAAG,MACzC,OAAO,4FAA4F,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,qBAAqB,EAAE,CAAC;AAC7I,YAAA,CAAC,UAAU,CAAC,QAAQ,CAAC,kBAAkB,CAAC,IAAI,GAAG,MAC7C,OAAO,iGAAiG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,yBAAyB,EAAE,CAAC;AACtJ,YAAA,CAAC,UAAU,CAAC,QAAQ,CAAC,kBAAkB,CAAC,IAAI,GAAG,MAC7C,OAAO,gGAAgG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,yBAAyB,EAAE,CAAC;AACtJ,SAAA;AACF,KAAA,CAAC;AACJ;AAIA;;ACvCA;;AAEG;;;;"}
@@ -9,7 +9,7 @@ import { AsyncPipe } from '@angular/common';
9
9
  import * as i0 from '@angular/core';
10
10
  import { input, inject, signal, ViewEncapsulation, ChangeDetectionStrategy, Component } from '@angular/core';
11
11
  import { AXPHumanCapitalManagementQueryKeys } from '@acorex-platform/module-human-capital-management-client/contracts';
12
- import { D as DOCUMENT_DRIVE_PAGE_COMPONENT_KEY } from './acorex-platform-module-human-capital-management-client-acorex-platform-module-human-capital-management-client-DlWna0Lz.mjs';
12
+ import { D as DOCUMENT_DRIVE_PAGE_COMPONENT_KEY } from './acorex-platform-module-human-capital-management-client-acorex-platform-module-human-capital-management-client-DmqiCOti.mjs';
13
13
 
14
14
  //#region ----- Imports -----
15
15
  //#endregion
@@ -84,4 +84,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImpor
84
84
  }], propDecorators: { rootContext: [{ type: i0.Input, args: [{ isSignal: true, alias: "rootContext", required: false }] }], pageConfig: [{ type: i0.Input, args: [{ isSignal: true, alias: "pageConfig", required: false }] }], options: [{ type: i0.Input, args: [{ isSignal: true, alias: "options", required: false }] }] } });
85
85
 
86
86
  export { AXMHcmProfileDocumentsPanelComponent };
87
- //# sourceMappingURL=acorex-platform-module-human-capital-management-client-profile-documents-panel.component-DrRuKQ6Q.mjs.map
87
+ //# sourceMappingURL=acorex-platform-module-human-capital-management-client-profile-documents-panel.component-L-Wq--5e.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"acorex-platform-module-human-capital-management-client-profile-documents-panel.component-DrRuKQ6Q.mjs","sources":["../../../../libs/modules/human-capital-management/client/src/lib/features/profile-page/profile-documents-panel.component.ts","../../../../libs/modules/human-capital-management/client/src/lib/features/profile-page/profile-documents-panel.component.html"],"sourcesContent":["//#region ----- Imports -----\n\nimport { AXPQueryService } from '@acorex-platform/framework-client/runtime';\nimport {\n AXPPageComponentRendererDirective,\n AXPPageLayoutBase,\n AXPPageLayoutBaseComponent,\n} from '@acorex-platform/framework-client/layout/views';\nimport { AXLoadingModule } from '@acorex/components/loading';\nimport { AXTranslationModule } from '@acorex/core/translation';\nimport { runtimeQueryPayloadData } from '@acorex-platform/framework-shared/core';\nimport { AsyncPipe } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n inject,\n input,\n signal,\n ViewEncapsulation,\n} from '@angular/core';\nimport {\n AXPHumanCapitalManagementQueryKeys,\n type AXMHcmProfileDocumentDriveContext,\n} from '@acorex-platform/module-human-capital-management-client/contracts';\nimport { DOCUMENT_DRIVE_PAGE_COMPONENT_KEY } from './profile-documents-panel.constants';\n\n//#endregion\n\n//#region ----- Component -----\n\n/** Fetches the employee document-drive context, then mounts the EDMS page. */\n@Component({\n selector: 'axm-hcm-profile-documents-panel',\n imports: [AsyncPipe, AXLoadingModule, AXTranslationModule, AXPPageComponentRendererDirective],\n templateUrl: './profile-documents-panel.component.html',\n styleUrl: './profile-documents-panel.component.css',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: { class: 'axm-hcm-profile-documents-panel' },\n providers: [\n {\n provide: AXPPageLayoutBase,\n useExisting: AXMHcmProfileDocumentsPanelComponent,\n },\n ],\n})\nexport class AXMHcmProfileDocumentsPanelComponent extends AXPPageLayoutBaseComponent {\n //#region ----- Inputs -----\n\n rootContext = input<Record<string, unknown>>({});\n pageConfig = input<Record<string, unknown>>();\n options = input<Record<string, unknown>>({});\n\n //#endregion\n\n //#region ----- Services & Dependencies -----\n\n private readonly queryService = inject(AXPQueryService);\n\n //#endregion\n\n //#region ----- State Signals -----\n\n protected readonly isLoading = signal(true);\n protected readonly drivePageConfig = signal<Record<string, unknown> | null>(null);\n protected readonly driveComponentKey = DOCUMENT_DRIVE_PAGE_COMPONENT_KEY;\n\n //#endregion\n\n //#region ----- Lifecycle -----\n\n override async ngOnInit(): Promise<void> {\n await this.loadDriveContext();\n }\n\n protected override getPageTitle(): string {\n return '';\n }\n\n //#endregion\n\n //#region ----- Data Loading -----\n\n private async loadDriveContext(): Promise<void> {\n this.isLoading.set(true);\n try {\n const result = await this.queryService.fetch<void, AXMHcmProfileDocumentDriveContext | null>(\n AXPHumanCapitalManagementQueryKeys.Profile.GetMyDocumentDriveContext,\n undefined as void,\n );\n const context = runtimeQueryPayloadData(result);\n if (!context?.refType || !context?.refId) {\n this.drivePageConfig.set(null);\n return;\n }\n\n this.drivePageConfig.set({\n refType: context.refType,\n refId: context.refId,\n allowedDocumentTypeNames: context.documentTypeNames,\n });\n } finally {\n this.isLoading.set(false);\n }\n }\n\n //#endregion\n}\n\n//#endregion\n","@if (isLoading()) {\n <div class=\"__loading\">\n <ax-loading></ax-loading>\n </div>\n} @else if (drivePageConfig(); as config) {\n <div\n axp-page-component-renderer\n [componentKey]=\"driveComponentKey\"\n [pageConfig]=\"config\"\n [rootContext]=\"rootContext()\"\n [options]=\"options()\"\n ></div>\n} @else {\n <p class=\"__empty\">{{ '@human-capital-management:profile-page.groups.documents.empty' | translate | async }}</p>\n}\n"],"names":["i2"],"mappings":"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"}
1
+ {"version":3,"file":"acorex-platform-module-human-capital-management-client-profile-documents-panel.component-L-Wq--5e.mjs","sources":["../../../../libs/modules/human-capital-management/client/src/lib/features/profile-page/profile-documents-panel.component.ts","../../../../libs/modules/human-capital-management/client/src/lib/features/profile-page/profile-documents-panel.component.html"],"sourcesContent":["//#region ----- Imports -----\n\nimport { AXPQueryService } from '@acorex-platform/framework-client/runtime';\nimport {\n AXPPageComponentRendererDirective,\n AXPPageLayoutBase,\n AXPPageLayoutBaseComponent,\n} from '@acorex-platform/framework-client/layout/views';\nimport { AXLoadingModule } from '@acorex/components/loading';\nimport { AXTranslationModule } from '@acorex/core/translation';\nimport { runtimeQueryPayloadData } from '@acorex-platform/framework-shared/core';\nimport { AsyncPipe } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n inject,\n input,\n signal,\n ViewEncapsulation,\n} from '@angular/core';\nimport {\n AXPHumanCapitalManagementQueryKeys,\n type AXMHcmProfileDocumentDriveContext,\n} from '@acorex-platform/module-human-capital-management-client/contracts';\nimport { DOCUMENT_DRIVE_PAGE_COMPONENT_KEY } from './profile-documents-panel.constants';\n\n//#endregion\n\n//#region ----- Component -----\n\n/** Fetches the employee document-drive context, then mounts the EDMS page. */\n@Component({\n selector: 'axm-hcm-profile-documents-panel',\n imports: [AsyncPipe, AXLoadingModule, AXTranslationModule, AXPPageComponentRendererDirective],\n templateUrl: './profile-documents-panel.component.html',\n styleUrl: './profile-documents-panel.component.css',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: { class: 'axm-hcm-profile-documents-panel' },\n providers: [\n {\n provide: AXPPageLayoutBase,\n useExisting: AXMHcmProfileDocumentsPanelComponent,\n },\n ],\n})\nexport class AXMHcmProfileDocumentsPanelComponent extends AXPPageLayoutBaseComponent {\n //#region ----- Inputs -----\n\n rootContext = input<Record<string, unknown>>({});\n pageConfig = input<Record<string, unknown>>();\n options = input<Record<string, unknown>>({});\n\n //#endregion\n\n //#region ----- Services & Dependencies -----\n\n private readonly queryService = inject(AXPQueryService);\n\n //#endregion\n\n //#region ----- State Signals -----\n\n protected readonly isLoading = signal(true);\n protected readonly drivePageConfig = signal<Record<string, unknown> | null>(null);\n protected readonly driveComponentKey = DOCUMENT_DRIVE_PAGE_COMPONENT_KEY;\n\n //#endregion\n\n //#region ----- Lifecycle -----\n\n override async ngOnInit(): Promise<void> {\n await this.loadDriveContext();\n }\n\n protected override getPageTitle(): string {\n return '';\n }\n\n //#endregion\n\n //#region ----- Data Loading -----\n\n private async loadDriveContext(): Promise<void> {\n this.isLoading.set(true);\n try {\n const result = await this.queryService.fetch<void, AXMHcmProfileDocumentDriveContext | null>(\n AXPHumanCapitalManagementQueryKeys.Profile.GetMyDocumentDriveContext,\n undefined as void,\n );\n const context = runtimeQueryPayloadData(result);\n if (!context?.refType || !context?.refId) {\n this.drivePageConfig.set(null);\n return;\n }\n\n this.drivePageConfig.set({\n refType: context.refType,\n refId: context.refId,\n allowedDocumentTypeNames: context.documentTypeNames,\n });\n } finally {\n this.isLoading.set(false);\n }\n }\n\n //#endregion\n}\n\n//#endregion\n","@if (isLoading()) {\n <div class=\"__loading\">\n <ax-loading></ax-loading>\n </div>\n} @else if (drivePageConfig(); as config) {\n <div\n axp-page-component-renderer\n [componentKey]=\"driveComponentKey\"\n [pageConfig]=\"config\"\n [rootContext]=\"rootContext()\"\n [options]=\"options()\"\n ></div>\n} @else {\n <p class=\"__empty\">{{ '@human-capital-management:profile-page.groups.documents.empty' | translate | async }}</p>\n}\n"],"names":["i2"],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  import * as i0 from '@angular/core';
2
2
  import { Injectable } from '@angular/core';
3
- import { P as PROFILE_DOCUMENTS_PANEL_COMPONENT_KEY } from './acorex-platform-module-human-capital-management-client-acorex-platform-module-human-capital-management-client-DlWna0Lz.mjs';
3
+ import { P as PROFILE_DOCUMENTS_PANEL_COMPONENT_KEY } from './acorex-platform-module-human-capital-management-client-acorex-platform-module-human-capital-management-client-DmqiCOti.mjs';
4
4
 
5
5
  //#region ----- Profile documents panel provider -----
6
6
  class AXMHcmProfileDocumentsPanelComponentProvider {
@@ -8,7 +8,7 @@ class AXMHcmProfileDocumentsPanelComponentProvider {
8
8
  return [
9
9
  {
10
10
  key: PROFILE_DOCUMENTS_PANEL_COMPONENT_KEY,
11
- loader: () => import('./acorex-platform-module-human-capital-management-client-profile-documents-panel.component-DrRuKQ6Q.mjs').then((module) => module.AXMHcmProfileDocumentsPanelComponent),
11
+ loader: () => import('./acorex-platform-module-human-capital-management-client-profile-documents-panel.component-L-Wq--5e.mjs').then((module) => module.AXMHcmProfileDocumentsPanelComponent),
12
12
  },
13
13
  ];
14
14
  }
@@ -20,4 +20,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImpor
20
20
  }] });
21
21
 
22
22
  export { AXMHcmProfileDocumentsPanelComponentProvider };
23
- //# sourceMappingURL=acorex-platform-module-human-capital-management-client-profile-documents-panel.component.provider-DPH0YiDP.mjs.map
23
+ //# sourceMappingURL=acorex-platform-module-human-capital-management-client-profile-documents-panel.component.provider-n9sEfOE2.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"acorex-platform-module-human-capital-management-client-profile-documents-panel.component.provider-DPH0YiDP.mjs","sources":["../../../../libs/modules/human-capital-management/client/src/lib/features/profile-page/profile-documents-panel.component.provider.ts"],"sourcesContent":["import {\n AXPPageComponentDefinition,\n AXPPageComponentProvider,\n} from '@acorex-platform/framework-client/layout/components';\nimport { Injectable } from '@angular/core';\nimport { PROFILE_DOCUMENTS_PANEL_COMPONENT_KEY } from './profile-documents-panel.constants';\n\n//#region ----- Profile documents panel provider -----\n\n@Injectable()\nexport class AXMHcmProfileDocumentsPanelComponentProvider implements AXPPageComponentProvider {\n async components(): Promise<AXPPageComponentDefinition[]> {\n return [\n {\n key: PROFILE_DOCUMENTS_PANEL_COMPONENT_KEY,\n loader: () =>\n import('./profile-documents-panel.component').then((module) => module.AXMHcmProfileDocumentsPanelComponent),\n },\n ];\n }\n}\n\n//#endregion\n"],"names":[],"mappings":";;;;AAOA;MAGa,4CAA4C,CAAA;AACvD,IAAA,MAAM,UAAU,GAAA;QACd,OAAO;AACL,YAAA;AACE,gBAAA,GAAG,EAAE,qCAAqC;AAC1C,gBAAA,MAAM,EAAE,MACN,OAAO,yGAAqC,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,oCAAoC,CAAC;AAC9G,aAAA;SACF;IACH;8GATW,4CAA4C,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;kHAA5C,4CAA4C,EAAA,CAAA,CAAA;;2FAA5C,4CAA4C,EAAA,UAAA,EAAA,CAAA;kBADxD;;;;;"}
1
+ {"version":3,"file":"acorex-platform-module-human-capital-management-client-profile-documents-panel.component.provider-n9sEfOE2.mjs","sources":["../../../../libs/modules/human-capital-management/client/src/lib/features/profile-page/profile-documents-panel.component.provider.ts"],"sourcesContent":["import {\n AXPPageComponentDefinition,\n AXPPageComponentProvider,\n} from '@acorex-platform/framework-client/layout/components';\nimport { Injectable } from '@angular/core';\nimport { PROFILE_DOCUMENTS_PANEL_COMPONENT_KEY } from './profile-documents-panel.constants';\n\n//#region ----- Profile documents panel provider -----\n\n@Injectable()\nexport class AXMHcmProfileDocumentsPanelComponentProvider implements AXPPageComponentProvider {\n async components(): Promise<AXPPageComponentDefinition[]> {\n return [\n {\n key: PROFILE_DOCUMENTS_PANEL_COMPONENT_KEY,\n loader: () =>\n import('./profile-documents-panel.component').then((module) => module.AXMHcmProfileDocumentsPanelComponent),\n },\n ];\n }\n}\n\n//#endregion\n"],"names":[],"mappings":";;;;AAOA;MAGa,4CAA4C,CAAA;AACvD,IAAA,MAAM,UAAU,GAAA;QACd,OAAO;AACL,YAAA;AACE,gBAAA,GAAG,EAAE,qCAAqC;AAC1C,gBAAA,MAAM,EAAE,MACN,OAAO,yGAAqC,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,oCAAoC,CAAC;AAC9G,aAAA;SACF;IACH;8GATW,4CAA4C,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;kHAA5C,4CAA4C,EAAA,CAAA,CAAA;;2FAA5C,4CAA4C,EAAA,UAAA,EAAA,CAAA;kBADxD;;;;;"}
@@ -1,2 +1,2 @@
1
- export { a as AXMHumanCapitalManagementModule, b as AXMLeaveRequestBadgeProvider, c as AXMLeaveRequestResourceAppointmentProvider, d as AXMLeaveRequestTaskPopoverComponent, e as AXPHumanCapitalManagementFeatureDefinitionProvider, f as AXPLeaveRequestDialogService, H as HumanCapitalManagementManifest } from './acorex-platform-module-human-capital-management-client-acorex-platform-module-human-capital-management-client-DlWna0Lz.mjs';
1
+ export { a as AXMHumanCapitalManagementModule, b as AXMLeaveRequestBadgeProvider, c as AXMLeaveRequestResourceAppointmentProvider, d as AXMLeaveRequestTaskPopoverComponent, e as AXPHumanCapitalManagementFeatureDefinitionProvider, f as AXPLeaveRequestDialogService, H as HumanCapitalManagementManifest } from './acorex-platform-module-human-capital-management-client-acorex-platform-module-human-capital-management-client-DmqiCOti.mjs';
2
2
  //# sourceMappingURL=acorex-platform-module-human-capital-management-client.mjs.map
package/package.json CHANGED
@@ -1,9 +1,9 @@
1
1
  {
2
2
  "name": "@acorex-platform/module-human-capital-management-client",
3
- "version": "0.0.30",
3
+ "version": "0.0.33",
4
4
  "sideEffects": false,
5
5
  "peerDependencies": {
6
- "@acorex-platform/module-data-management-client": "0.0.30",
6
+ "@acorex-platform/module-data-management-client": "0.0.33",
7
7
  "@angular/common": "^21.0.0 || ^22.0.0",
8
8
  "@angular/core": "^21.0.0 || ^22.0.0"
9
9
  },
@@ -23,6 +23,42 @@
23
23
  "./contracts": {
24
24
  "types": "./types/acorex-platform-module-human-capital-management-client-contracts.d.ts",
25
25
  "default": "./fesm2022/acorex-platform-module-human-capital-management-client-contracts.mjs"
26
+ },
27
+ "./contracts/entities/employee": {
28
+ "types": "./types/acorex-platform-module-human-capital-management-client-contracts-entities-employee.d.ts",
29
+ "default": "./fesm2022/acorex-platform-module-human-capital-management-client-contracts-entities-employee.mjs"
30
+ },
31
+ "./contracts/entities/employment-type": {
32
+ "types": "./types/acorex-platform-module-human-capital-management-client-contracts-entities-employment-type.d.ts",
33
+ "default": "./fesm2022/acorex-platform-module-human-capital-management-client-contracts-entities-employment-type.mjs"
34
+ },
35
+ "./contracts/entities/leave-request": {
36
+ "types": "./types/acorex-platform-module-human-capital-management-client-contracts-entities-leave-request.d.ts",
37
+ "default": "./fesm2022/acorex-platform-module-human-capital-management-client-contracts-entities-leave-request.mjs"
38
+ },
39
+ "./contracts/entities/leave-type": {
40
+ "types": "./types/acorex-platform-module-human-capital-management-client-contracts-entities-leave-type.d.ts",
41
+ "default": "./fesm2022/acorex-platform-module-human-capital-management-client-contracts-entities-leave-type.mjs"
42
+ },
43
+ "./contracts/entities/lifecycle-event": {
44
+ "types": "./types/acorex-platform-module-human-capital-management-client-contracts-entities-lifecycle-event.d.ts",
45
+ "default": "./fesm2022/acorex-platform-module-human-capital-management-client-contracts-entities-lifecycle-event.mjs"
46
+ },
47
+ "./contracts/entities/lifecycle-event-type": {
48
+ "types": "./types/acorex-platform-module-human-capital-management-client-contracts-entities-lifecycle-event-type.d.ts",
49
+ "default": "./fesm2022/acorex-platform-module-human-capital-management-client-contracts-entities-lifecycle-event-type.mjs"
50
+ },
51
+ "./contracts/entities/position-assignment": {
52
+ "types": "./types/acorex-platform-module-human-capital-management-client-contracts-entities-position-assignment.d.ts",
53
+ "default": "./fesm2022/acorex-platform-module-human-capital-management-client-contracts-entities-position-assignment.mjs"
54
+ },
55
+ "./contracts/entity-catalog": {
56
+ "types": "./types/acorex-platform-module-human-capital-management-client-contracts-entity-catalog.d.ts",
57
+ "default": "./fesm2022/acorex-platform-module-human-capital-management-client-contracts-entity-catalog.mjs"
58
+ },
59
+ "./local-entities": {
60
+ "types": "./types/acorex-platform-module-human-capital-management-client-local-entities.d.ts",
61
+ "default": "./fesm2022/acorex-platform-module-human-capital-management-client-local-entities.mjs"
26
62
  }
27
63
  },
28
64
  "type": "module"
@@ -0,0 +1,5 @@
1
+ import { AXPEntity } from '@acorex-platform/framework-shared/entity';
2
+
3
+ declare function factoryEmployee(): Promise<AXPEntity | null>;
4
+
5
+ export { factoryEmployee };
@@ -0,0 +1,5 @@
1
+ import { AXPEntity } from '@acorex-platform/framework-shared/entity';
2
+
3
+ declare function factoryEmploymentType(): Promise<AXPEntity | null>;
4
+
5
+ export { factoryEmploymentType };
@@ -0,0 +1,5 @@
1
+ import { AXPEntity } from '@acorex-platform/framework-shared/entity';
2
+
3
+ declare function factoryLeaveRequest(): Promise<AXPEntity | null>;
4
+
5
+ export { factoryLeaveRequest };
@@ -0,0 +1,5 @@
1
+ import { AXPEntity } from '@acorex-platform/framework-shared/entity';
2
+
3
+ declare function factoryLeaveType(): Promise<AXPEntity | null>;
4
+
5
+ export { factoryLeaveType };