@acorex-platform/module-location-management-client 0.0.18 → 0.0.21

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 (13) hide show
  1. package/fesm2022/{acorex-platform-module-location-management-client-assign-existing-location-to-party.command-DmpN-yas.mjs → acorex-platform-module-location-management-client-assign-existing-location-to-party.command-DECKrIBR.mjs} +13 -14
  2. package/fesm2022/acorex-platform-module-location-management-client-assign-existing-location-to-party.command-DECKrIBR.mjs.map +1 -0
  3. package/fesm2022/acorex-platform-module-location-management-client-contracts.mjs +57 -2400
  4. package/fesm2022/acorex-platform-module-location-management-client-contracts.mjs.map +1 -1
  5. package/fesm2022/{acorex-platform-module-location-management-client-create-location-with-assignment.command-D6VXtZRf.mjs → acorex-platform-module-location-management-client-create-location-with-assignment.command-Cl6KfruM.mjs} +17 -18
  6. package/fesm2022/acorex-platform-module-location-management-client-create-location-with-assignment.command-Cl6KfruM.mjs.map +1 -0
  7. package/fesm2022/acorex-platform-module-location-management-client.mjs +141 -395
  8. package/fesm2022/acorex-platform-module-location-management-client.mjs.map +1 -1
  9. package/package.json +1 -1
  10. package/types/acorex-platform-module-location-management-client-contracts.d.ts +50 -47
  11. package/types/acorex-platform-module-location-management-client.d.ts +3 -14
  12. package/fesm2022/acorex-platform-module-location-management-client-assign-existing-location-to-party.command-DmpN-yas.mjs.map +0 -1
  13. package/fesm2022/acorex-platform-module-location-management-client-create-location-with-assignment.command-D6VXtZRf.mjs.map +0 -1
@@ -1,10 +1,12 @@
1
1
  import { AXToastService } from '@acorex/components/toast';
2
2
  import { AXTranslationService } from '@acorex/core/translation';
3
+ import { runtimeCommandPayloadData } from '@acorex-platform/framework-shared/core';
3
4
  import * as i0 from '@angular/core';
4
5
  import { inject, Injectable } from '@angular/core';
5
6
  import { get } from 'lodash';
6
7
  import { AXPEntityDataSelectorService, AXPEntityFormBuilderService, AXPEntityDefinitionRegistryService } from '@acorex-platform/framework-client/layout/entity';
7
8
  import { RootConfig, buildLocationAssignmentLocationSnapshot, buildLocationAssignmentPersonSnapshot, LOCATION_ASSIGNMENT_PARTY_TYPE, resolveLocationAssignmentDisplayTitle } from '@acorex-platform/module-location-management-client/contracts';
9
+ import { resolveEntityActionCommandInput, mergeEntityActionProcessData } from '@acorex-platform/framework-shared/runtime';
8
10
 
9
11
  //#region ---- Imports ----
10
12
  //#endregion
@@ -18,12 +20,9 @@ class AXMLocationAssignmentAssignExistingLocationCommand {
18
20
  this.translationService = inject(AXTranslationService);
19
21
  }
20
22
  async execute(input) {
21
- const { entity, data, options, hostContext } = (input?.__context__ ?? input ?? {});
22
- const processData = {
23
- ...(hostContext ?? {}),
24
- ...(data ?? {}),
25
- ...(options?.process?.data ?? {}),
26
- };
23
+ const resolved = resolveEntityActionCommandInput(input);
24
+ const processData = mergeEntityActionProcessData(input);
25
+ const entity = resolved.entity;
27
26
  const ownerRef = this.resolveOwnerRef(processData);
28
27
  if (!ownerRef.id) {
29
28
  return {
@@ -109,10 +108,10 @@ class AXMLocationAssignmentAssignExistingLocationCommand {
109
108
  ...(personId ? { personId, person: personSnapshot } : {}),
110
109
  };
111
110
  const createResult = await createFn(payload);
112
- if (createResult?.data ?? createResult) {
113
- return {
114
- success: true,
115
- data: createResult?.data ?? createResult,
111
+ const __single_createResult = runtimeCommandPayloadData(createResult);
112
+ if (__single_createResult) {
113
+ return { success: true, kind: 'object',
114
+ data: runtimeCommandPayloadData(createResult),
116
115
  message: {
117
116
  text: await this.translationService.translateAsync('@general:messages.generic.success.description'),
118
117
  },
@@ -152,13 +151,13 @@ class AXMLocationAssignmentAssignExistingLocationCommand {
152
151
  title: resolveLocationAssignmentDisplayTitle(locale, processData['ownerRef.title'], nestedOwner?.title, get(processData, 'party.title'), get(processData, 'title')),
153
152
  };
154
153
  }
155
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXMLocationAssignmentAssignExistingLocationCommand, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
156
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXMLocationAssignmentAssignExistingLocationCommand, providedIn: 'root' }); }
154
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXMLocationAssignmentAssignExistingLocationCommand, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
155
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXMLocationAssignmentAssignExistingLocationCommand, providedIn: 'root' }); }
157
156
  }
158
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXMLocationAssignmentAssignExistingLocationCommand, decorators: [{
157
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXMLocationAssignmentAssignExistingLocationCommand, decorators: [{
159
158
  type: Injectable,
160
159
  args: [{ providedIn: 'root' }]
161
160
  }] });
162
161
 
163
162
  export { AXMLocationAssignmentAssignExistingLocationCommand };
164
- //# sourceMappingURL=acorex-platform-module-location-management-client-assign-existing-location-to-party.command-DmpN-yas.mjs.map
163
+ //# sourceMappingURL=acorex-platform-module-location-management-client-assign-existing-location-to-party.command-DECKrIBR.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"acorex-platform-module-location-management-client-assign-existing-location-to-party.command-DECKrIBR.mjs","sources":["../../../../libs/modules/location-management/client/src/lib/commands/assign-existing-location-to-party.command.ts"],"sourcesContent":["//#region ---- Imports ----\n\nimport { AXToastService } from '@acorex/components/toast';\nimport { AXTranslationService } from '@acorex/core/translation';\nimport { AXPRuntimeCommandResult, runtimeCommandPayloadData} from '@acorex-platform/framework-shared/core';\nimport { inject, Injectable } from '@angular/core';\nimport { get } from 'lodash';\nimport {\n AXPEntityDataSelectorService,\n AXPEntityDefinitionRegistryService,\n AXPEntityFormBuilderService,\n} from '@acorex-platform/framework-client/layout/entity';\n\nimport { RootConfig, LOCATION_ASSIGNMENT_PARTY_TYPE, resolveLocationAssignmentDisplayTitle, buildLocationAssignmentLocationSnapshot, buildLocationAssignmentPersonSnapshot } from '@acorex-platform/module-location-management-client/contracts';\nimport {\n AXPCommand,\n mergeEntityActionProcessData,\n resolveEntityActionCommandInput,\n type AXPCommandExecuteResultPromise,\n} from '@acorex-platform/framework-shared/runtime';\n\n//#endregion\n\n//#region ---- Command ----\n\n@Injectable({ providedIn: 'root' })\nexport class AXMLocationAssignmentAssignExistingLocationCommand implements AXPCommand<any, any> {\n private readonly entityDataSelector = inject(AXPEntityDataSelectorService);\n private readonly entityForm = inject(AXPEntityFormBuilderService);\n private readonly entityService = inject(AXPEntityDefinitionRegistryService);\n private readonly toastService = inject(AXToastService);\n private readonly translationService = inject(AXTranslationService);\n\n async execute(input: any): AXPCommandExecuteResultPromise<any> {\n const resolved = resolveEntityActionCommandInput(input);\n const processData = mergeEntityActionProcessData(input);\n const entity = resolved.entity;\n const ownerRef = this.resolveOwnerRef(processData);\n if (!ownerRef.id) {\n return {\n success: false,\n message: {\n text: await this.translationService.translateAsync(\n '@location-management:location-assignments.messages.missing-party-context',\n ),\n },\n };\n }\n\n const [moduleName, entityName] = (entity || '').split('.');\n if (!moduleName || !entityName) {\n return {\n success: false,\n message: {\n text: await this.translationService.translateAsync('@general:messages.entity.invalid-identifier'),\n },\n };\n }\n\n const locationEntity = await this.entityService.resolve(\n RootConfig.module.name,\n RootConfig.entities.location.name,\n );\n if (!locationEntity) {\n return {\n success: false,\n message: {\n text: await this.translationService.translateAsync('@general:messages.entity.invalid-identifier'),\n },\n };\n }\n\n const selectorTitle = await this.translationService.translateAsync(\n '@location-management:location-assignments.actions.assign-existing-location.selector-title',\n );\n const selectorResult = await this.entityDataSelector.open({\n entity: locationEntity,\n title: selectorTitle,\n allowMultiple: false,\n columns: ['title', 'code', 'street1', 'cityId', 'countryId'],\n });\n\n if (!selectorResult?.items?.length) {\n return { success: false };\n }\n\n const selectedLocation = selectorResult.items[0];\n const locationId = selectedLocation.id ?? selectedLocation._id;\n const locationSnapshot = buildLocationAssignmentLocationSnapshot(\n selectedLocation as Record<string, unknown>,\n locationId as string,\n );\n\n const formTitle = await this.translationService.translateAsync(\n '@location-management:location-assignments.actions.assign-existing-location.form-title',\n { params: { partyTitle: ownerRef.title } },\n );\n\n const result = await this.entityForm\n .entity(`${moduleName}.${entityName}`)\n .create({\n locationId,\n location: locationSnapshot,\n ownerRef,\n })\n .include('roleId', 'personId', 'notes')\n .title(formTitle)\n .actions((actions) => {\n actions.cancel('@general:actions.cancel.title');\n actions.submit('@general:actions.create.title');\n })\n .onAction<AXPRuntimeCommandResult<any>>(async (dialogRef) => {\n if (dialogRef.action() === 'cancel') {\n return { success: false };\n }\n\n const locationAssignmentEntity = await this.entityService.resolve(moduleName, entityName);\n const createFn = locationAssignmentEntity?.commands?.create?.execute as\n | ((payload: unknown) => AXPCommandExecuteResultPromise<any>)\n | undefined;\n\n if (!createFn) {\n const msg = await this.translationService.translateAsync(\n '@general:messages.entity.create-command-unavailable',\n );\n this.toastService.show({\n color: 'danger',\n title: await this.translationService.translateAsync('@general:messages.generic.error.title'),\n content: msg,\n });\n throw new Error(msg);\n }\n\n dialogRef.setLoading(true);\n try {\n const context = dialogRef.context();\n const personId = (context['personId'] ?? get(context, 'person.id')) as string | undefined;\n const personInContext = get(context, 'person') as Record<string, unknown> | undefined;\n const personSnapshot =\n personId && personInContext\n ? buildLocationAssignmentPersonSnapshot({ ...personInContext, id: personId }, personId)\n : undefined;\n\n const payload = {\n ...context,\n locationId,\n ownerRef,\n location: locationSnapshot,\n ...(personId ? { personId, person: personSnapshot } : {}),\n };\n const createResult = await createFn(payload);\n const __single_createResult = runtimeCommandPayloadData(createResult);\n if (__single_createResult) {\n return { success: true, kind: 'object',\n data: runtimeCommandPayloadData(createResult),\n message: {\n text: await this.translationService.translateAsync('@general:messages.generic.success.description'),\n },\n };\n }\n return {\n success: false,\n message: {\n text: await this.translationService.translateAsync('@general:messages.entity.create-failed'),\n },\n };\n } catch (error: unknown) {\n const errorMsg =\n error instanceof Error\n ? error.message\n : await this.translationService.translateAsync('@general:messages.entity.create-failed');\n this.toastService.show({\n color: 'danger',\n title: await this.translationService.translateAsync('@general:messages.generic.error.title'),\n content: errorMsg,\n });\n throw error;\n } finally {\n dialogRef.setLoading(false);\n }\n })\n .show();\n\n return result as unknown as AXPRuntimeCommandResult<any>;\n }\n\n private resolveOwnerRef(processData: Record<string, unknown>) {\n const nestedOwner = get(processData, 'ownerRef') as { type?: string; id?: string; title?: unknown } | undefined;\n const locale = this.translationService.getActiveLang?.() ?? 'en-US';\n\n return {\n type: (processData['ownerRef.type'] as string) ?? nestedOwner?.type ?? LOCATION_ASSIGNMENT_PARTY_TYPE,\n id: (processData['ownerRef.id'] as string) ?? nestedOwner?.id ?? '',\n title: resolveLocationAssignmentDisplayTitle(\n locale,\n processData['ownerRef.title'],\n nestedOwner?.title,\n get(processData, 'party.title'),\n get(processData, 'title'),\n ),\n };\n }\n}\n\n//#endregion\n"],"names":[],"mappings":"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"}