@acorex-platform/module-location-management-client 0.0.33 → 0.0.38

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 (19) hide show
  1. package/fesm2022/acorex-platform-module-location-management-client-assign-existing-location-to-party.command-DECKrIBR.mjs.map +1 -1
  2. package/fesm2022/acorex-platform-module-location-management-client-contracts-entities-geographic-region.mjs.map +1 -1
  3. package/fesm2022/acorex-platform-module-location-management-client-contracts-entities-location-assignment.mjs.map +1 -1
  4. package/fesm2022/acorex-platform-module-location-management-client-contracts-entities-location-role.mjs.map +1 -1
  5. package/fesm2022/acorex-platform-module-location-management-client-contracts-entities-location-type.mjs.map +1 -1
  6. package/fesm2022/acorex-platform-module-location-management-client-contracts-entities-location.mjs.map +1 -1
  7. package/fesm2022/acorex-platform-module-location-management-client-contracts-entity-catalog-acorex-platform-module-location-management-client-contracts-entity-catalog-B1rJccHr.mjs.map +1 -1
  8. package/fesm2022/acorex-platform-module-location-management-client-contracts-entity-catalog-geographic-region.entity-CUhM4K8a.mjs.map +1 -1
  9. package/fesm2022/acorex-platform-module-location-management-client-contracts-entity-catalog-location-assignment.entity-Cw46YCj9.mjs.map +1 -1
  10. package/fesm2022/acorex-platform-module-location-management-client-contracts-entity-catalog-location-assignment.utils-CfwbSQiM.mjs.map +1 -1
  11. package/fesm2022/acorex-platform-module-location-management-client-contracts-entity-catalog-location-role.entity-CEtJEhCf.mjs.map +1 -1
  12. package/fesm2022/acorex-platform-module-location-management-client-contracts-entity-catalog-location-type.entity-BXuQ_A7h.mjs.map +1 -1
  13. package/fesm2022/acorex-platform-module-location-management-client-contracts-entity-catalog-location.entity-CmnVKTG-.mjs.map +1 -1
  14. package/fesm2022/acorex-platform-module-location-management-client-contracts.mjs.map +1 -1
  15. package/fesm2022/acorex-platform-module-location-management-client-create-location-with-assignment.command-Cl6KfruM.mjs.map +1 -1
  16. package/fesm2022/acorex-platform-module-location-management-client-local-entities.mjs.map +1 -1
  17. package/fesm2022/acorex-platform-module-location-management-client.mjs +1 -1
  18. package/fesm2022/acorex-platform-module-location-management-client.mjs.map +1 -1
  19. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"acorex-platform-module-location-management-client.mjs","sources":["../../../../libs/modules/location-management/client/src/lib/manifest.ts","../../../../libs/modules/location-management/client/src/lib/permission-definition.provider.ts","../../../../libs/modules/location-management/client/src/lib/menu.provider.ts","../../../../libs/modules/location-management/client/src/lib/setting.provider.ts","../../../../libs/modules/location-management/client/src/lib/search-command.provider.ts","../../../../libs/modules/location-management/client/src/lib/feature-definition.provider.ts","../../../../libs/modules/location-management/client/src/lib/middlewares/location-assignment-location-hydrate.middleware.ts","../../../../libs/modules/location-management/client/src/lib/widgets/address/address-widget.config.ts","../../../../libs/modules/location-management/client/src/lib/widgets/address/address-widget.types.ts","../../../../libs/modules/location-management/client/src/lib/widgets/address/address.service.ts","../../../../libs/modules/location-management/client/src/lib/widgets/address/address-widget-edit.component.ts","../../../../libs/modules/location-management/client/src/lib/widgets/address/address-widget-view.component.ts","../../../../libs/modules/location-management/client/src/lib/widgets/address/address-widget-column.component.ts","../../../../libs/modules/location-management/client/src/lib/widget-definition.provider.ts","../../../../libs/modules/location-management/client/src/lib/location-management.module.ts","../../../../libs/modules/location-management/client/src/lib/features/shared/location-management.service.ts","../../../../libs/modules/location-management/client/src/acorex-platform-module-location-management-client.ts"],"sourcesContent":["//#region ---- Imports ----\n\nimport { AXPModuleManifest } from '@acorex-platform/framework-client/core';\nimport { RootConfig } from '@acorex-platform/module-location-management-client/contracts';\n\n//#endregion\n\n//#region ---- Manifest Definition ----\n\n/**\n * Location Management Module Manifest.\n * Defines module metadata, features, and provider references.\n */\nexport const LocationManagementManifest: 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 {\n AXPPermissionDefinitionProvider,\n AXPPermissionDefinitionProviderContext,\n} from '@acorex-platform/framework-client/auth';\nimport {\n AXPCommonPermissionGroupKeys\n} from '@acorex-platform/module-common-client/contracts';\n\nimport { Injectable } from '@angular/core';\n\n//#endregion\n\n//#region ---- Permission Definition Provider ----\n\n/**\n * Ensures People & Organization root exists for location-management.\n */\n@Injectable()\nexport class AXMLocationManagementPermissionDefinitionProvider implements AXPPermissionDefinitionProvider {\n async define(context: AXPPermissionDefinitionProviderContext): Promise<void> {\n const groups = AXPCommonPermissionGroupKeys;\n const G = '@common:permission-groups';\n\n context.addGroup(groups.PeopleOrganization.Root, `${G}.people-organization.title`, `${G}.people-organization.description`, { order: 10 });\n }\n}\n\n//#endregion\n","//#region ---- Imports ----\n\nimport {\n AXPCommonMenuKeys\n} from '@acorex-platform/module-common-client/contracts';\nimport { AXPMenuProvider, AXPMenuProviderContext } from '@acorex-platform/framework-client/common';\nimport { AXPEntityService } from '@acorex-platform/framework-client/layout/entity';\nimport { Injectable, inject } from '@angular/core';\nimport {\n RootConfig,\n AXPPeopleOrganizationPermissionKeys\n} from '@acorex-platform/module-location-management-client/contracts';\nimport { AXPLocationManagementMenuKeys } from '@acorex-platform/module-location-management-client/contracts';\n\n//#endregion\n\n//#region ---- Menu Provider ----\n\n@Injectable()\nexport class AXMLocationManagementMenuProvider implements AXPMenuProvider {\n private entityService = inject(AXPEntityService);\n\n async provide(context: AXPMenuProviderContext): Promise<void> {\n const module = RootConfig.module;\n const keys = AXPPeopleOrganizationPermissionKeys;\n\n const contactsMenu = context.find(AXPCommonMenuKeys.Contacts);\n if (!contactsMenu.exists) {\n context.addItems([\n {\n name: AXPCommonMenuKeys.Contacts,\n priority: 8010,\n text: '@general:menus.contacts.title',\n icon: 'fa-light fa-address-book',\n type: 'menu',\n children: [],\n },\n ]);\n }\n\n context.find(AXPCommonMenuKeys.Contacts).addItems([\n {\n name: AXPLocationManagementMenuKeys.Locations,\n text: RootConfig.entities.location.titlePlural,\n path: this.entityService.createPath(module.name, RootConfig.entities.location.name),\n icon: RootConfig.entities.location.icon,\n priority: 40,\n policy: {\n features: [module.name],\n permissions: [keys.Setup],\n },\n },\n ]);\n\n context.find(AXPCommonMenuKeys.Region).addItems([\n {\n name: AXPLocationManagementMenuKeys.LocationTypes,\n text: '@location-management:location-types.menus.location-types.title',\n path: this.entityService.createPath(module.name, RootConfig.entities.locationType.name),\n icon: RootConfig.entities.locationType.icon,\n priority: 1,\n policy: {\n features: [module.name],\n permissions: [keys.Setup],\n },\n },\n {\n name: AXPLocationManagementMenuKeys.LocationRoles,\n text: '@location-management:location-roles.menus.location-roles.title',\n path: this.entityService.createPath(module.name, RootConfig.entities.locationRole.name),\n icon: RootConfig.entities.locationRole.icon,\n priority: 2,\n policy: {\n features: [module.name],\n permissions: [keys.Setup],\n },\n },\n {\n name: AXPLocationManagementMenuKeys.GeographicRegions,\n text: '@location-management:geographic-regions.menus.geographic-regions.title',\n path: this.entityService.createPath(module.name, RootConfig.entities.geographicRegion.name),\n icon: RootConfig.entities.geographicRegion.icon,\n priority: 3,\n policy: {\n features: [module.name],\n permissions: [keys.Setup],\n },\n },\n ]);\n }\n}\n\n//#endregion\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 { AXPSearchCommandProvider, AXPSearchResult, createEntityCommandOptions } from '@acorex-platform/framework-client/common';\nimport { RootConfig } from '@acorex-platform/module-location-management-client/contracts';\n\nexport class AXMSearchCommandProvider extends AXPSearchCommandProvider {\n commands: AXPSearchResult[] = [\n {\n id: 'create-location-role',\n group: 'command',\n title: RootConfig.entities.locationRole.title,\n icon: RootConfig.entities.locationRole.icon,\n description: RootConfig.entities.locationRole.titlePlural,\n command: {\n name: 'Entity:Create',\n options: createEntityCommandOptions(\n `${RootConfig.module.name}.${RootConfig.entities.locationRole.name}`,\n {\n name: RootConfig.entities.locationRole.name,\n module: RootConfig.module.name,\n title: RootConfig.entities.locationRole.title,\n }\n ),\n },\n },\n {\n id: 'create-location-type',\n group: 'command',\n title: RootConfig.entities.locationType.title,\n icon: RootConfig.entities.locationType.icon,\n description: RootConfig.entities.locationType.titlePlural,\n command: {\n name: 'Entity:Create',\n options: createEntityCommandOptions(\n `${RootConfig.module.name}.${RootConfig.entities.locationType.name}`,\n {\n name: RootConfig.entities.locationType.name,\n module: RootConfig.module.name,\n title: RootConfig.entities.locationType.title,\n }\n ),\n },\n },\n {\n id: 'create-geographic-region',\n group: 'command',\n title: RootConfig.entities.geographicRegion.title,\n icon: RootConfig.entities.geographicRegion.icon,\n description: RootConfig.entities.geographicRegion.titlePlural,\n command: {\n name: 'Entity:Create',\n options: createEntityCommandOptions(\n `${RootConfig.module.name}.${RootConfig.entities.geographicRegion.name}`,\n {\n name: RootConfig.entities.geographicRegion.name,\n module: RootConfig.module.name,\n title: RootConfig.entities.geographicRegion.title,\n }\n ),\n },\n },\n ];\n}\n","//#region ---- Imports ----\n\nimport {\n AXPFeatureDefinitionProvider,\n AXPFeatureDefinitionProviderContext,\n} from '@acorex-platform/framework-client/core';\n\n//#endregion\n\n//#region ---- Feature Definition Provider ----\n\n/**\n * Location Management Feature Definition Provider.\n * Provides feature definitions for the Location Management module.\n */\nexport class AXMLocationManagementFeatureDefinitionProvider implements AXPFeatureDefinitionProvider {\n async provide(context: AXPFeatureDefinitionProviderContext): Promise<void> {\n // Management feature removed - module name is used directly as feature key\n }\n}\n\n//#endregion\n\n","import { AXPEntityStorageMiddleware } from '@acorex-platform/framework-client/layout/entity';\nimport { get, set } from 'lodash';\n\nimport {\n RootConfig,\n buildLocationAssignmentLocationSnapshot,\n buildLocationAssignmentPersonSnapshot,\n} from '@acorex-platform/module-location-management-client/contracts';\n\n//#region ---- LocationAssignment nested hydration ----\n\nconst LOCATION_ASSIGNMENT_ENTITY = `${RootConfig.module.name}.${RootConfig.entities.locationAssignment.name}`;\nconst LOCATION_ENTITY = `${RootConfig.module.name}.${RootConfig.entities.location.name}`;\nconst PERSON_ENTITY = 'PersonCore.Person';\n\n/**\n * Hydrates nested `location` and `person` on LocationAssignment rows so consumers\n * (e.g. party location lists) receive computed fields such as `fullAddress` and `fullName`.\n */\nexport const locationAssignmentLocationHydrateMiddleware: AXPEntityStorageMiddleware = {\n target: { ops: ['getOne', 'getAll', 'query'], order: 13 },\n execute: async (ctx, next) => {\n const backend = ctx.entities;\n\n await next();\n\n if (ctx.entityName !== LOCATION_ASSIGNMENT_ENTITY) {\n return;\n }\n\n try {\n const rows: Record<string, unknown>[] = Array.isArray(ctx.result)\n ? ctx.result\n : Array.isArray((ctx.result as { items?: unknown[] })?.items)\n ? ((ctx.result as { items: Record<string, unknown>[] }).items ?? [])\n : ctx.result\n ? [ctx.result as Record<string, unknown>]\n : [];\n\n if (!rows.length) {\n return;\n }\n\n const locationIds = Array.from(\n new Set(rows.map((row) => get(row, 'locationId')).filter((id) => id != null)),\n );\n const personIds = Array.from(\n new Set(rows.map((row) => get(row, 'personId')).filter((id) => id != null)),\n );\n\n const locationMap = new Map<unknown, Record<string, unknown>>();\n if (locationIds.length) {\n const locationResponse = await backend.query(LOCATION_ENTITY, {\n skip: 0,\n take: locationIds.length,\n filter: { field: 'id', operator: { type: 'in' }, value: locationIds },\n });\n\n for (const item of locationResponse?.items ?? []) {\n const record = item as unknown as Record<string, unknown>;\n locationMap.set(get(record, 'id'), record);\n }\n }\n\n const personMap = new Map<unknown, Record<string, unknown>>();\n if (personIds.length) {\n const personResponse = await backend.query(PERSON_ENTITY, {\n skip: 0,\n take: personIds.length,\n filter: { field: 'id', operator: { type: 'in' }, value: personIds },\n });\n\n for (const item of personResponse?.items ?? []) {\n const record = item as unknown as Record<string, unknown>;\n personMap.set(get(record, 'id'), record);\n }\n }\n\n for (const row of rows) {\n const locationId = get(row, 'locationId');\n if (locationId != null) {\n const location = locationMap.get(locationId);\n if (location) {\n set(row, 'location', buildLocationAssignmentLocationSnapshot(location, locationId as string));\n }\n }\n\n const personId = get(row, 'personId');\n if (personId != null) {\n const person = personMap.get(personId);\n if (person) {\n set(row, 'person', buildLocationAssignmentPersonSnapshot(person, personId as string));\n }\n }\n }\n } catch {\n // swallow to avoid breaking main flow\n }\n },\n};\n\n//#endregion\n","import { AXPWidgetConfig, AXPWidgetGroupEnum, createBooleanProperty, createSelectProperty } from '@acorex-platform/framework-shared/widget-core';\nimport { AXP_WIDGETS_EDITOR_CATEGORY, AXP_WIDGETS_EDITOR_SUB_COMPOSITE } from '@acorex-platform/framework-client/layout/widget-core';\nimport {\n AXP_BEHAVIOR_PROPERTY_GROUP,\n AXP_DATA_PATH_PROPERTY,\n AXP_DISABLED_PROPERTY,\n AXP_HAS_LABEL_PROPERTY,\n AXP_NAME_PROPERTY,\n AXP_PLACEHOLDER_PROPERTY,\n} from '@acorex-platform/framework-client/layout/widgets';\n\nexport const AXPAddressWidget: AXPWidgetConfig = {\n name: 'address-editor',\n title: '@platform-layout-widgets:widgets.address-editor.title',\n description: '@platform-layout-widgets:widgets.address-editor.description',\n categories: AXP_WIDGETS_EDITOR_CATEGORY,\n subCategory: AXP_WIDGETS_EDITOR_SUB_COMPOSITE,\n groups: [AXPWidgetGroupEnum.FormElement],\n icon: 'fa-light fa-location-dot',\n defaultFilterWidgetName: 'string-filter',\n type: 'editor',\n properties: [\n AXP_NAME_PROPERTY,\n AXP_DATA_PATH_PROPERTY,\n createSelectProperty({\n name: 'mode',\n title: 'Mode',\n group: AXP_BEHAVIOR_PROPERTY_GROUP,\n dataSource: [\n { id: 'simple', title: 'Single line' },\n { id: 'popup', title: 'Popup editor' },\n { id: 'expandable', title: 'Expandable panel' },\n ],\n defaultValue: { id: 'simple', title: 'Single line' },\n path: 'options.mode',\n }),\n createBooleanProperty({\n name: 'hasLabel',\n title: 'Has Label',\n group: AXP_BEHAVIOR_PROPERTY_GROUP,\n defaultValue: false,\n path: 'options.hasLabel',\n }),\n createBooleanProperty({\n name: 'hasMap',\n title: 'Has Map',\n group: AXP_BEHAVIOR_PROPERTY_GROUP,\n defaultValue: true,\n path: 'options.hasMap',\n }),\n AXP_DISABLED_PROPERTY,\n AXP_HAS_LABEL_PROPERTY,\n AXP_PLACEHOLDER_PROPERTY,\n ],\n components: {\n view: {\n component: () => import('./address-widget-view.component').then((c) => c.AXPAddressWidgetViewComponent),\n },\n edit: {\n component: () => import('./address-widget-edit.component').then((c) => c.AXPAddressWidgetEditComponent),\n },\n column: {\n component: () => import('./address-widget-column.component').then((c) => c.AXPAddressWidgetColumnComponent),\n },\n designer: {\n component: () => import('./address-widget-edit.component').then((c) => c.AXPAddressWidgetEditComponent),\n },\n },\n};\n\n","import type { AXPAddressMode } from '@acorex-platform/framework-shared/core';\n\n//#region ---- Widget Options Types ----\n\n/**\n * Address widget designer options\n */\nexport interface AXPAddressWidgetDesignerOptions {\n mode?: AXPAddressMode;\n placeholder?: string;\n labelEntity?: string;\n disabled?: boolean;\n hasLabel?: boolean;\n hasMap?: boolean;\n}\n\n/**\n * Address widget view options\n */\nexport interface AXPAddressWidgetViewOptions {\n mode?: AXPAddressMode;\n hasLabel?: boolean;\n hasMap?: boolean;\n}\n\n/**\n * Address widget edit options\n */\nexport interface AXPAddressWidgetEditOptions {\n mode?: AXPAddressMode;\n placeholder?: string;\n labelEntity?: string;\n disabled?: boolean;\n hasLabel?: boolean;\n hasMap?: boolean;\n}\n\n/**\n * Address widget column options\n */\nexport interface AXPAddressWidgetColumnOptions { }\n\n/**\n * Complete address widget options structure\n */\nexport interface AXPAddressWidgetOptions {\n designer: AXPAddressWidgetDesignerOptions;\n view: AXPAddressWidgetViewOptions;\n edit: AXPAddressWidgetEditOptions;\n print: AXPAddressWidgetViewOptions;\n column: AXPAddressWidgetColumnOptions;\n}\n\n//#endregion\n","import {\n AXPAddressData,\n AXPPlatformScope,\n extractValue,\n formatAddressData,\n resolveMultiLanguageString,\n type AXPMultiLanguageString,\n type AXPWidgetNode,\n} from '@acorex-platform/framework-shared/core';\nimport { AXPSettingsService } from '@acorex-platform/framework-client/common';\nimport { AXPLayoutBuilderService, IActionBuilder } from '@acorex-platform/framework-client/layout/builder';\nimport { AXPEntityService } from '@acorex-platform/framework-client/layout/entity';\n\nimport { AXTranslationService } from '@acorex/core/translation';\nimport { inject, Injectable } from '@angular/core';\nimport { defaultTo, get, isEmpty, isEqual, isNil } from 'lodash';\n\nconst TENANT_ORGANIZATION_ADDRESS_SETTINGS = {\n street1: 'OrganizationManagement:Setting:Organization.Street1',\n street2: 'OrganizationManagement:Setting:Organization.Street2',\n countryId: 'OrganizationManagement:Setting:Organization.CountryId',\n stateId: 'OrganizationManagement:Setting:Organization.StateId',\n cityId: 'OrganizationManagement:Setting:Organization.CityId',\n postalCode: 'OrganizationManagement:Setting:Organization.PostalCode',\n} as const;\n\nconst GEOGRAPHIC_REGION_ENTITY = 'LocationManagement.GeographicRegion';\n\ninterface AXPAddressGeographicDefaults extends Partial<AXPAddressData> {\n countryId?: string;\n stateId?: string;\n cityId?: string;\n}\n\nexport interface AXPAddressCollapsibleHeader {\n labelText: string | null;\n addressText: string;\n}\n\nexport interface AXPAddressFormContentOptions {\n hasLabel?: boolean;\n labelEntity?: string;\n hasMap: boolean;\n addressData?: Partial<AXPAddressData>;\n}\n\nexport interface AXPAddressWidgetRuntimeOptions {\n hasMap?: boolean;\n hasLabel?: boolean;\n labelEntity?: string;\n useGeographicDefaults?: boolean;\n}\n\n/** Transient flat lookup ids used in the address form context (same pattern as Location entity). */\nexport interface AXPAddressFormContext extends Partial<AXPAddressData> {\n countryId?: string;\n stateId?: string;\n cityId?: string;\n labelId?: string;\n showMap?: boolean;\n}\n\n//#region ---- Service ----\n\n@Injectable({ providedIn: 'root' })\nexport class AXPAddressWidgetService {\n //#region ---- Services & Dependencies ----\n\n private readonly layoutBuilder = inject(AXPLayoutBuilderService);\n private readonly translationService = inject(AXTranslationService);\n private readonly settingsService = inject(AXPSettingsService);\n private readonly entityService = inject(AXPEntityService);\n\n private geographicDefaultsCache: Promise<AXPAddressGeographicDefaults | null> | null = null;\n private readonly geographicTitleCache = new Map<string, string>();\n\n constructor() {\n this.settingsService.onChanged.subscribe((event) => {\n const settingKeys = Object.values(TENANT_ORGANIZATION_ADDRESS_SETTINGS);\n if (event.keys.some((key) => settingKeys.includes(key as (typeof settingKeys)[number]))) {\n this.invalidateGeographicDefaultsCache();\n }\n });\n }\n\n //#endregion\n\n //#region ---- Shared address form layout (dialog + inline renderer) ----\n\n /**\n * Builds the address form content (street1, street2, country, state, city, postalCode, label, map).\n * Used by both the dialog and the expandable inline layout via create().flex().build().\n */\n buildAddressFormContent(flex: any, options: AXPAddressFormContentOptions): void {\n const { hasLabel, labelEntity, hasMap, addressData } = options;\n const showLabel = !!hasLabel && !!labelEntity;\n\n flex.mode('edit').setDirection('column').setGap('12px');\n\n //#region ---- Row 1: label + show map ----\n\n if (showLabel || hasMap) {\n flex.grid((metaRow: any) => {\n metaRow.setColumns(12).setGap('12px');\n\n if (showLabel) {\n metaRow.formField('@location-management:locations.entities.location.fields.label', (field: any) => {\n field.path('labelId');\n field.layout(3);\n field.customWidget('lookup-editor', {\n entity: labelEntity,\n look: 'select',\n textField: 'title',\n valueField: 'id',\n hasClearButton: true,\n allowCreate: 'quick',\n create: {\n enable: true,\n title: '@location-management:locations.entities.location.fields.label-create-title',\n },\n expose: [\n { source: 'id', target: 'label.id' },\n { source: 'title', target: 'label.title' },\n ],\n validations: [{ rule: 'required', message: '@general:validation.messages.required' }],\n });\n });\n }\n\n if (hasMap) {\n metaRow.formField('@location-management:locations.entities.location.fields.show-map', (field: any) => {\n field.path('showMap');\n field.layout(3);\n field.toggleSwitch({\n defaultValue: !!(addressData?.coordinates),\n });\n });\n }\n });\n }\n\n //#endregion\n\n //#region ---- Row 2: street address + address line 2 ----\n\n flex.grid((streetRow: any) => {\n streetRow.setColumns(12).setGap('12px');\n\n streetRow\n .formField('@location-management:locations.entities.location.fields.street1', (field: any) => {\n field.path('street1');\n field.layout(6);\n field.textBox({\n validations: [{ rule: 'required', message: '@general:validation.messages.required' }],\n });\n })\n .formField('@location-management:locations.entities.location.fields.street2', (field: any) => {\n field.path('street2');\n field.layout(6);\n field.textBox({});\n });\n });\n\n //#endregion\n\n //#region ---- Row 3: postal code + country + state + city ----\n\n flex.grid((geoRow: any) => {\n geoRow.setColumns(12).setGap('12px');\n\n geoRow\n .formField('@location-management:locations.entities.location.fields.postal-code', (field: any) => {\n field.path('postalCode');\n field.layout(3);\n field.textBox({ placeholder: 'Enter postal code' });\n })\n .formField('@location-management:locations.entities.location.fields.country', (field: any) => {\n field.path('countryId');\n field.layout(3);\n field.customWidget('lookup-editor', {\n entity: 'LocationManagement.GeographicRegion',\n look: 'select',\n textField: 'title',\n valueField: 'id',\n hasClearButton: true,\n allowCreate: 'quick',\n create: {\n enable: true,\n },\n expose: [\n { source: 'id', target: 'country.id' },\n { source: 'title', target: 'country.title' },\n ],\n filter: {\n logic: 'and',\n filters: [{ field: 'type.code', operator: { type: 'equal' }, value: 'country' }],\n },\n });\n })\n .formField('@location-management:locations.entities.location.fields.state', (field: any) => {\n field.path('stateId');\n field.layout(3);\n field.customWidget('lookup-editor', {\n entity: 'LocationManagement.GeographicRegion',\n look: 'select',\n textField: 'title',\n valueField: 'id',\n hasClearButton: true,\n allowCreate: 'quick',\n disabled: '{{ !context.eval(\"countryId\") }}',\n create: {\n enable: true,\n context: {\n parentId: '{{ context.eval(\"countryId\") }}',\n type: { code: 'state' },\n },\n },\n expose: [\n { source: 'id', target: 'state.id' },\n { source: 'title', target: 'state.title' },\n ],\n filter: {\n logic: 'and',\n filters: [\n { field: 'parentId', operator: { type: 'equal' }, value: '{{ context.eval(\"countryId\") }}' },\n { field: 'type.code', operator: { type: 'equal' }, value: 'state' },\n ],\n },\n triggers: [\n {\n event: \"{{ events.context('countryId') }}\",\n action:\n \"{{ widget.setValue(null); context.set('state.title', null); context.set('cityId', null); context.set('city.id', null); context.set('city.title', null); widget.refresh(); }}\",\n },\n ],\n });\n })\n .formField('@location-management:locations.entities.location.fields.city', (field: any) => {\n field.path('cityId');\n field.layout(3);\n field.customWidget('lookup-editor', {\n entity: 'LocationManagement.GeographicRegion',\n look: 'select',\n textField: 'title',\n valueField: 'id',\n hasClearButton: true,\n allowCreate: 'quick',\n disabled: '{{ !context.eval(\"stateId\") }}',\n create: {\n enable: true,\n context: {\n parentId: '{{ context.eval(\"stateId\") }}',\n type: { code: 'city' },\n },\n },\n expose: [\n { source: 'id', target: 'city.id' },\n { source: 'title', target: 'city.title' },\n ],\n filter: {\n logic: 'and',\n filters: [\n { field: 'parentId', operator: { type: 'equal' }, value: '{{ context.eval(\"stateId\") }}' },\n { field: 'type.code', operator: { type: 'equal' }, value: 'city' },\n ],\n },\n triggers: [\n {\n event: \"{{ events.context('stateId') }}\",\n action: \"{{ widget.setValue(null); context.set('city.title', null); widget.refresh(); }}\",\n },\n {\n event: \"{{ events.context('countryId') }}\",\n action: \"{{ widget.setValue(null); context.set('city.title', null); widget.refresh(); }}\",\n },\n ],\n });\n });\n });\n\n //#endregion\n\n //#region ---- Map picker (when show map is enabled) ----\n\n if (hasMap) {\n flex.grid((mapRow: any) => {\n mapRow.setColumns(12).setGap('12px');\n mapRow.formField('@location-management:locations.entities.location.fields.coordinates', (field: any) => {\n field.path('coordinates');\n field.layout(12);\n field.visible('{{ context.eval(\"showMap\") }}');\n field.customWidget('map', { hasDraw: true, maxPolygon: 0 });\n });\n });\n }\n\n //#endregion\n }\n\n /**\n * Returns the address form layout node using layoutBuilder.create().flex().build() for use in axp-layout-renderer.\n */\n getAddressFormLayout(options: AXPAddressFormContentOptions): AXPWidgetNode {\n return this.layoutBuilder\n .create()\n .flex((flex) => this.buildAddressFormContent(flex, options))\n .build();\n }\n\n //#endregion\n\n //#region ---- Geographic Defaults Methods ----\n\n /** Loads geographic defaults from tenant organization address settings. */\n async getGeographicDefaults(): Promise<AXPAddressGeographicDefaults | null> {\n if (!this.geographicDefaultsCache) {\n this.geographicDefaultsCache = this.loadGeographicDefaultsFromSettings();\n }\n\n return this.geographicDefaultsCache;\n }\n\n private async loadGeographicDefaultsFromSettings(): Promise<AXPAddressGeographicDefaults | null> {\n const tenantScope = this.settingsService.scope(AXPPlatformScope.Tenant);\n const [countryId, stateId, cityId, street1, street2, postalCode] = await Promise.all([\n tenantScope.get<unknown>(TENANT_ORGANIZATION_ADDRESS_SETTINGS.countryId),\n tenantScope.get<unknown>(TENANT_ORGANIZATION_ADDRESS_SETTINGS.stateId),\n tenantScope.get<unknown>(TENANT_ORGANIZATION_ADDRESS_SETTINGS.cityId),\n tenantScope.get<string>(TENANT_ORGANIZATION_ADDRESS_SETTINGS.street1),\n tenantScope.get<string>(TENANT_ORGANIZATION_ADDRESS_SETTINGS.street2),\n tenantScope.get<string>(TENANT_ORGANIZATION_ADDRESS_SETTINGS.postalCode),\n ]);\n\n const resolvedCountry = this.resolveSettingLookupSnapshot(countryId);\n const resolvedState = this.resolveSettingLookupSnapshot(stateId);\n const resolvedCity = this.resolveSettingLookupSnapshot(cityId);\n const resolvedStreet1 = defaultTo(street1, '').trim();\n const resolvedStreet2 = defaultTo(street2, '').trim();\n const resolvedPostalCode = defaultTo(postalCode, '').trim();\n\n if (\n isEmpty(resolvedCountry?.id) &&\n isEmpty(resolvedState?.id) &&\n isEmpty(resolvedCity?.id) &&\n isEmpty(resolvedStreet1) &&\n isEmpty(resolvedStreet2) &&\n isEmpty(resolvedPostalCode)\n ) {\n return null;\n }\n\n return {\n street1: resolvedStreet1 || undefined,\n street2: resolvedStreet2 || undefined,\n postalCode: resolvedPostalCode || undefined,\n countryId: resolvedCountry?.id,\n stateId: resolvedState?.id,\n cityId: resolvedCity?.id,\n country: resolvedCountry,\n state: resolvedState,\n city: resolvedCity,\n };\n }\n\n /** Clears cached defaults (e.g. after tenant settings change). */\n invalidateGeographicDefaultsCache(): void {\n this.geographicDefaultsCache = null;\n }\n\n /**\n * Applies tenant/platform geographic defaults to empty address fields only.\n * Returns whether any field was updated.\n */\n async applyGeographicDefaultsIfNeeded(\n value: Partial<AXPAddressData>,\n options?: { enabled?: boolean },\n ): Promise<{ value: Partial<AXPAddressData>; applied: boolean }> {\n if (options?.enabled === false) {\n return { value, applied: false };\n }\n\n const defaults = await this.getGeographicDefaults();\n if (!defaults) {\n return { value, applied: false };\n }\n\n const merged = this.mergeGeographicDefaults(value, defaults);\n const enriched = await this.enrichGeographicLookupTitles(merged);\n const applied = !isEqual(this.snapshotGeographicFields(value), this.snapshotGeographicFields(enriched));\n return { value: enriched, applied };\n }\n\n /** Merges defaults into empty country/state/city (and optional street/postal) fields. */\n mergeGeographicDefaults(\n value: Partial<AXPAddressData>,\n defaults: AXPAddressGeographicDefaults,\n ): Partial<AXPAddressData> {\n const result: Partial<AXPAddressData> = { ...value };\n\n if (this.isLookupEmpty(result.country) && defaults.country?.id) {\n result.country = defaults.country;\n }\n\n if (this.isLookupEmpty(result.state) && defaults.state?.id) {\n result.state = defaults.state;\n }\n\n if (this.isLookupEmpty(result.city) && defaults.city?.id) {\n result.city = defaults.city;\n }\n\n if (!result.street1?.trim() && defaults.street1?.trim()) {\n result.street1 = defaults.street1;\n }\n\n if (!result.street2?.trim() && defaults.street2?.trim()) {\n result.street2 = defaults.street2;\n }\n\n if (!result.postalCode?.trim() && defaults.postalCode?.trim()) {\n result.postalCode = defaults.postalCode;\n }\n\n return result;\n }\n\n /** Ensures country/state/city snapshots include titles required for formatted address text. */\n async enrichGeographicLookupTitles<T extends Partial<AXPAddressData>>(value: T): Promise<T> {\n const [country, state, city] = await Promise.all([\n this.enrichLookupField(value.country),\n this.enrichLookupField(value.state),\n this.enrichLookupField(value.city),\n ]);\n\n if (country === value.country && state === value.state && city === value.city) {\n return value;\n }\n\n return { ...value, country, state, city };\n }\n\n //#endregion\n\n //#region ---- Geographic Cascade Methods ----\n\n /**\n * Builds layout context with flat lookup ids (countryId/stateId/cityId/labelId) required for cascade triggers.\n * Same pattern as LocationManagement.Location entity fields.\n */\n buildAddressFormContext(\n addressData: Partial<AXPAddressData>,\n options?: { hasMap?: boolean },\n ): AXPAddressFormContext {\n return {\n ...addressData,\n countryId: addressData.country?.id,\n stateId: addressData.state?.id,\n cityId: addressData.city?.id,\n labelId: addressData.label?.id,\n showMap: (options?.hasMap ?? false) && !!addressData.coordinates,\n };\n }\n\n /**\n * Clears dependent geographic fields when a parent selection changes.\n * Mirrors Location entity cascade: state depends on country, city depends on state.\n */\n applyGeographicCascade(\n previous: Partial<AXPAddressFormContext>,\n next: Partial<AXPAddressFormContext>,\n ): Partial<AXPAddressFormContext> {\n const result = { ...next };\n const previousCountryId = previous.countryId ?? previous.country?.id;\n const nextCountryId = result.countryId ?? result.country?.id;\n const previousStateId = previous.stateId ?? previous.state?.id;\n const nextStateId = result.stateId ?? result.state?.id;\n\n if (previousCountryId !== nextCountryId) {\n result.state = undefined;\n result.city = undefined;\n result.stateId = undefined;\n result.cityId = undefined;\n } else if (previousStateId !== nextStateId) {\n result.city = undefined;\n result.cityId = undefined;\n }\n\n return result;\n }\n\n //#endregion\n\n //#region ---- Address Formatting Methods ----\n\n /**\n * Formats address data into full address string\n * Format: [street1], [street2], [country] - [state], [city], [postalCode]\n * Uses titles from exposed fields, excludes coordinates\n */\n formatAddress(data: Partial<AXPAddressData>): string {\n return formatAddressData(data, this.translationService.getActiveLang() || 'en-US');\n }\n\n /**\n * Collapse header parts: label title (semibold in template) + full address.\n */\n async resolveCollapsibleHeader(\n value: Partial<AXPAddressData>,\n options: { placeholder: string },\n ): Promise<AXPAddressCollapsibleHeader> {\n const enriched = await this.enrichGeographicLookupTitles(value);\n const full = (enriched.full?.trim() || this.formatAddress(enriched)).trim();\n const addressText = full !== '' ? full : options.placeholder;\n const labelText = enriched.label?.title?.trim() || null;\n return { labelText, addressText };\n }\n\n //#endregion\n\n //#region ---- Dialog & UI Methods ----\n\n /**\n * Shows address details popup dialog using the shared address form layout.\n */\n async showAddressDetailsPopup(\n addressData: Partial<AXPAddressData>,\n options: AXPAddressWidgetRuntimeOptions = {},\n ): Promise<AXPAddressData | null> {\n const { hasMap = true, hasLabel, labelEntity, useGeographicDefaults = true } = options;\n const { value: addressWithDefaults } = await this.applyGeographicDefaultsIfNeeded(addressData, {\n enabled: useGeographicDefaults,\n });\n const initialContext = this.buildAddressFormContext(addressWithDefaults, { hasMap });\n const dialogTitle = await this.translationService.translateAsync('@general:terms.geography.address');\n const ref = await this.layoutBuilder\n .create()\n .dialog((dialog) => {\n dialog\n .setTitle(dialogTitle)\n .setSize('lg')\n .setContext(initialContext)\n .content((layoutBuilder) => {\n layoutBuilder.flex((flex) =>\n this.buildAddressFormContent(flex, {\n hasLabel,\n labelEntity,\n hasMap,\n addressData: addressWithDefaults,\n }),\n );\n })\n .setActions((actions: IActionBuilder) => {\n actions.cancel('@general:actions.cancel.title').submit('@general:actions.apply.title');\n });\n })\n .show();\n\n if (ref.action() === 'cancel') {\n ref.close();\n return null;\n }\n\n const result = this.applyGeographicCascade(\n initialContext,\n this.normalizeAddressData(ref.context() as AXPAddressData),\n ) as AXPAddressData;\n ref.close();\n return result;\n }\n\n //#endregion\n\n //#region ---- Data Normalization Methods ----\n\n /**\n * Normalizes address data from various input formats\n */\n normalizeAddressData(value: Partial<AXPAddressData> | AXPAddressData | string | null | undefined): AXPAddressData {\n if (typeof value === 'object' && value !== null) {\n const contextValue = value as Partial<AXPAddressData> & { labelId?: string };\n\n return {\n street1: contextValue.street1 ?? '',\n street2: contextValue.street2,\n country: contextValue.country,\n state: contextValue.state,\n city: contextValue.city,\n postalCode: contextValue.postalCode,\n coordinates: contextValue.coordinates,\n full: contextValue.full ?? this.formatAddress(contextValue),\n label: this.resolveLabel(contextValue),\n };\n }\n\n // Simple string format\n return {\n street1: '',\n street2: '',\n country: undefined,\n state: undefined,\n city: undefined,\n postalCode: '',\n coordinates: undefined,\n full: value?.toString() || '',\n label: undefined,\n };\n }\n\n /** Resolves persisted label snapshot from lookup expose or transient labelId. */\n private resolveLabel(value: Partial<AXPAddressData> & { labelId?: string }): AXPAddressData['label'] {\n const exposed = value.label;\n if (exposed?.id) {\n return { id: exposed.id, title: exposed.title };\n }\n\n if (value.labelId) {\n return { id: value.labelId, title: exposed?.title };\n }\n\n return undefined;\n }\n\n private isLookupEmpty(value?: { id?: string }): boolean {\n return isNil(value?.id) || value.id === '';\n }\n\n private snapshotGeographicFields(value: Partial<AXPAddressData>): Partial<AXPAddressData> {\n return {\n street1: value.street1,\n street2: value.street2,\n postalCode: value.postalCode,\n country: value.country,\n state: value.state,\n city: value.city,\n };\n }\n\n private resolveSettingLookupSnapshot(\n value: unknown,\n ): { id?: string; title?: string } | undefined {\n if (isNil(value) || value === '') {\n return undefined;\n }\n\n if (typeof value === 'object') {\n const record = value as { id?: unknown; title?: unknown };\n const id = extractValue<string>(record.id ?? value);\n const title = extractValue<string>(record.title);\n if (!id?.trim()) {\n return undefined;\n }\n\n return {\n id: id.trim(),\n title: title?.trim() || undefined,\n };\n }\n\n const id = extractValue<string>(value);\n return id?.trim() ? { id: id.trim() } : undefined;\n }\n\n private async enrichLookupField(\n field?: { id?: string; title?: string | AXPMultiLanguageString },\n ): Promise<{ id?: string; title?: string } | undefined> {\n if (!field?.id) {\n return field as { id?: string; title?: string } | undefined;\n }\n\n const locale = this.translationService.getActiveLang() || 'en-US';\n const existing = resolveMultiLanguageString(field.title, locale).trim();\n if (existing) {\n return { id: field.id, title: existing };\n }\n\n const title = await this.resolveGeographicRegionTitle(field.id);\n return title ? { id: field.id, title } : { id: field.id };\n }\n\n private async resolveGeographicRegionTitle(id: string): Promise<string | undefined> {\n if (this.geographicTitleCache.has(id)) {\n const cached = this.geographicTitleCache.get(id);\n return cached || undefined;\n }\n\n try {\n const row = await this.entityService.withEntity(GEOGRAPHIC_REGION_ENTITY).data().byKey(id);\n const locale = this.translationService.getActiveLang() || 'en-US';\n const raw = get(row, 'title') as string | AXPMultiLanguageString | undefined;\n const normalized = resolveMultiLanguageString(raw, locale).trim();\n this.geographicTitleCache.set(id, normalized);\n return normalized || undefined;\n } catch {\n this.geographicTitleCache.set(id, '');\n return undefined;\n }\n }\n\n //#endregion\n}\n","import {\n AXPAddressData,\n AXPAddressMode,\n extractValue,\n} from '@acorex-platform/framework-shared/core';\nimport { AXValueChangedEvent } from '@acorex/cdk/common';\nimport { AXButtonModule } from '@acorex/components/button';\nimport { AXDecoratorModule } from '@acorex/components/decorators';\nimport { AXFormModule } from '@acorex/components/form';\nimport { AXTextBoxModule } from '@acorex/components/text-box';\nimport { AXTranslationModule } from '@acorex/core/translation';\nimport { AXValidationModule } from '@acorex/core/validation';\nimport { AXPLayoutRendererComponent } from '@acorex-platform/framework-client/layout/builder';\n\nimport { AXPValueWidgetComponent } from '@acorex-platform/framework-client/layout/widget-core';\nimport { CommonModule } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n HostBinding,\n computed,\n effect,\n inject,\n signal,\n} from '@angular/core';\nimport { FormsModule } from '@angular/forms';\n\nimport { isEqual } from 'lodash';\nimport { AXPAddressWidgetService } from './address.service';\nimport { AXAccordionModule } from '@acorex/components/accordion';\n\n@Component({\n selector: 'axp-address-widget-edit',\n template: `\n @if (addressMode() === 'simple') {\n <div class=\"grid grid-cols-12 gap-4 auto-cols-max\">\n <ax-text-box\n [ngModel]=\"valueAsObject().full\"\n (onValueChanged)=\"handleValueChange($event)\"\n type=\"text\"\n name=\"full\"\n [placeholder]=\"placeholder()\"\n [ngClass]=\"generateClasses('value')\"\n [disabled]=\"disabled()\"\n >\n @for (validation of validationRules(); track $index) {\n <ax-validation-rule\n [rule]=\"validation.rule\"\n [message]=\"$safeNavigationMigration(validation.options?.message)\"\n [options]=\"validation.options\"\n ></ax-validation-rule>\n }\n </ax-text-box>\n </div>\n } @else if (addressMode() === 'expandable') {\n <div class=\"w-full\">\n <ax-accordion-group>\n <ax-accordion-item\n [headerTemplate]=\"collapseHeaderTemplate\"\n [isCollapsed]=\"collapsibleCollapsed()\"\n (isCollapsedChange)=\"onCollapsedChange($event)\"\n >\n <div class=\"pt-1\">\n @for (formKey of [layoutRendererGeneration()]; track formKey) {\n <axp-layout-renderer\n [layout]=\"addressFormLayout()\"\n [context]=\"collapsibleFormContext()\"\n (contextChange)=\"onCollapsibleFormContextChange($event)\"\n />\n }\n </div>\n </ax-accordion-item>\n </ax-accordion-group>\n </div>\n\n <ng-template #collapseHeaderTemplate>\n <div class=\"ax-accordion-header-container\">\n <div class=\"ax-accordion-header-start\">\n <span\n class=\"ax-accordion-header-icon fa-light fa-map-marker-alt\"\n ></span>\n <span>\n @if (collapsibleHeaderLabel()) {\n <span class=\"font-semibold\">{{\n collapsibleHeaderLabel()\n }}</span>\n @if (collapsibleHeaderAddress()) {\n <span> · {{ collapsibleHeaderAddress() }}</span>\n }\n } @else {\n {{ collapsibleHeaderAddress() }}\n }\n </span>\n </div>\n <div class=\"ax-accordion-header-end\">\n <span\n class=\"ax-icon ax-icon-chevron-left ax-accordion-arrow\"\n [class]=\"collapsibleCollapsed() ? '-rotation-90' : 'rotation-90'\"\n ></span>\n </div>\n </div>\n </ng-template>\n } @else {\n <div class=\"grid grid-cols-12 gap-4 auto-cols-max\">\n <div class=\"flex items-center gap-2 col-span-12\">\n <ax-text-box\n [ngModel]=\"formattedAddress()\"\n type=\"text\"\n [readonly]=\"true\"\n [placeholder]=\"placeholder()\"\n class=\"flex-1\"\n [disabled]=\"disabled()\"\n >\n <ax-prefix>\n <ax-icon icon=\"fa-light fa-map-marker-alt\" />\n </ax-prefix>\n <ax-suffix>\n <ax-button\n look=\"flat\"\n size=\"sm\"\n [disabled]=\"disabled()\"\n (onClick)=\"showDetailsPopup()\"\n >\n <ax-icon icon=\"fa-light fa-cog\" />\n </ax-button>\n </ax-suffix>\n </ax-text-box>\n </div>\n </div>\n }\n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [\n CommonModule,\n FormsModule,\n AXFormModule,\n AXDecoratorModule,\n AXTextBoxModule,\n AXValidationModule,\n AXTranslationModule,\n AXButtonModule,\n AXAccordionModule,\n AXPLayoutRendererComponent,\n ],\n})\nexport class AXPAddressWidgetEditComponent extends AXPValueWidgetComponent<\n AXPAddressData | string\n> {\n private addressService = inject(AXPAddressWidgetService);\n\n /** Collapsible mode: true = panel collapsed (only full address visible), false = expanded (edit button visible) */\n protected collapsibleCollapsed = signal<boolean>(true);\n protected collapsibleHeaderLabel = signal<string | null>(null);\n protected collapsibleHeaderAddress = signal<string>('');\n\n /** Bumped on parent discard so the nested layout renderer remounts with reverted context. */\n protected layoutRendererGeneration = signal(0);\n\n private parentContextWasRestored = false;\n private geographicDefaultsInitialized = false;\n private suppressContextSync = false;\n /** Blocks ax-collapse from auto-collapsing while a new empty row is opening. */\n private blockAutoCollapseUntil = 0;\n\n /** Expand new repeater rows so users can enter values without clicking the header again. */\n #expandEmptyAddressEffect = effect(() => {\n if (this.addressMode() !== 'expandable') {\n return;\n }\n\n if (this.shouldKeepExpandedForEntry(this.valueAsObject())) {\n this.collapsibleCollapsed.set(false);\n this.blockAutoCollapseUntil = Date.now() + 300;\n }\n });\n\n #resetNestedFormOnDiscard = effect(() => {\n if (this.addressMode() !== 'expandable') {\n return;\n }\n\n const isRestored = this.contextService.changeEvent().state === 'restored';\n if (isRestored && !this.parentContextWasRestored) {\n this.layoutRendererGeneration.update((generation) => generation + 1);\n }\n this.parentContextWasRestored = isRestored;\n });\n\n #collapsibleHeaderEffect = effect(() => {\n const value = this.valueAsObject();\n this.formattedAddress();\n const placeholder = this.placeholder();\n\n void this.addressService\n .resolveCollapsibleHeader(value, { placeholder })\n .then((header) => {\n this.collapsibleHeaderLabel.set(header.labelText);\n this.collapsibleHeaderAddress.set(header.addressText);\n });\n });\n\n #applyGeographicDefaultsEffect = effect(() => {\n if (!this.useGeographicDefaults() || this.geographicDefaultsInitialized) {\n return;\n }\n\n const value = this.valueAsObject();\n\n void this.addressService\n .applyGeographicDefaultsIfNeeded(value, { enabled: true })\n .then(({ value: merged, applied }) => {\n this.geographicDefaultsInitialized = true;\n\n if (!applied) {\n return;\n }\n\n const normalized = this.addressService.normalizeAddressData(merged);\n normalized.full = this.addressService.formatAddress(normalized);\n this.commitAddressValue(normalized);\n });\n });\n\n protected addressMode = computed<AXPAddressMode>(\n () => (extractValue(this.options()['mode']) as AXPAddressMode) || 'simple',\n );\n\n protected placeholder = computed<string>(\n () => (this.options()['placeholder'] as string) || 'Enter address...',\n );\n\n protected labelEntity = computed<string | undefined>(\n () => this.options()['labelEntity'] as string | undefined,\n );\n protected useGeographicDefaults = computed<boolean>(\n () => (this.options()['useGeographicDefaults'] as boolean) ?? true,\n );\n protected disabled = computed<boolean>(\n () => (this.options()['disabled'] as boolean) ?? false,\n );\n protected hasLabel = computed<boolean>(\n () => (this.options()['hasLabel'] as boolean) ?? false,\n );\n protected hasMap = computed<boolean>(\n () => (this.options()['hasMap'] as boolean) ?? true,\n );\n\n private format = computed<'object' | 'string'>(() => {\n if (\n this.hasLabel() ||\n this.addressMode() === 'popup' ||\n this.addressMode() === 'expandable'\n ) {\n return 'object';\n }\n return 'string';\n });\n\n protected valueAsObject = computed(() => this.toObject(this.getValue()));\n\n protected formattedAddress = computed(() => {\n const value = this.valueAsObject();\n return value.full || this.addressService.formatAddress(value);\n });\n\n /** Layout node from create().flex().build() for inline renderer (expandable mode). */\n protected addressFormLayout = computed(() =>\n this.addressService.getAddressFormLayout({\n hasLabel: this.hasLabel(),\n labelEntity: this.labelEntity(),\n hasMap: this.hasMap(),\n }),\n );\n\n /** Context for inline address form (expandable); includes showMap for map toggle. */\n protected collapsibleFormContext = computed(() =>\n this.addressService.buildAddressFormContext(this.valueAsObject(), {\n hasMap: this.hasMap(),\n }),\n );\n\n protected onCollapsibleFormContextChange(\n ctx: Partial<AXPAddressData> | null | undefined,\n ): void {\n if (ctx == null || this.suppressContextSync) {\n return;\n }\n\n const previous = this.addressService.buildAddressFormContext(\n this.valueAsObject(),\n {\n hasMap: this.hasMap(),\n },\n );\n\n void (async () => {\n const normalized = this.addressService.normalizeAddressData(\n this.addressService.applyGeographicCascade(previous, ctx),\n );\n const enriched =\n await this.addressService.enrichGeographicLookupTitles(normalized);\n enriched.full = this.addressService.formatAddress(enriched);\n\n if (isEqual(enriched, this.valueAsObject())) {\n return;\n }\n\n this.commitAddressValue(enriched);\n })();\n }\n\n protected onCollapsedChange(collapsed: boolean): void {\n if (\n collapsed &&\n (Date.now() < this.blockAutoCollapseUntil ||\n this.shouldKeepExpandedForEntry(this.valueAsObject()))\n ) {\n return;\n }\n\n this.collapsibleCollapsed.set(collapsed);\n }\n\n protected async handleValueChange(e: AXValueChangedEvent) {\n const { name, value, isUserInteraction } = e;\n if (isUserInteraction) {\n const newValues = { ...this.valueAsObject(), [name as string]: value };\n this.setValue(this.setFormattedValue(newValues));\n }\n }\n\n protected async showDetailsPopup() {\n const currentValue = this.valueAsObject();\n const result = await this.addressService.showAddressDetailsPopup(\n currentValue,\n {\n hasMap: this.hasMap(),\n hasLabel: this.hasLabel(),\n labelEntity: this.labelEntity(),\n useGeographicDefaults: this.useGeographicDefaults(),\n },\n );\n\n if (result) {\n result.full = this.addressService.formatAddress(result);\n this.setValue(this.setFormattedValue(result));\n }\n }\n\n protected generateClasses(element: 'value' | 'label'): any {\n const isValue = element === 'value';\n const hasLabel = this.hasLabel();\n const baseClass = 'col-span-12';\n if (!hasLabel) {\n return baseClass;\n }\n return {\n [baseClass]: true,\n 'lg:col-span-7': isValue,\n 'lg:col-span-5': !isValue,\n };\n }\n\n private commitAddressValue(value: AXPAddressData): void {\n this.suppressContextSync = true;\n\n if (this.shouldKeepExpandedForEntry(value)) {\n this.blockAutoCollapseUntil = Date.now() + 300;\n this.collapsibleCollapsed.set(false);\n }\n\n this.setValue(this.setFormattedValue(value));\n window.setTimeout(() => {\n this.suppressContextSync = false;\n }, 50);\n }\n\n /** True while the row has no user-entered content (ignores geographic defaults). */\n private shouldKeepExpandedForEntry(value: AXPAddressData): boolean {\n return (\n !value.street1?.trim() &&\n !value.street2?.trim() &&\n !value.postalCode?.trim() &&\n !value.label?.id\n );\n }\n\n private toObject(\n item: AXPAddressData | string | null | undefined,\n ): AXPAddressData {\n return this.addressService.normalizeAddressData(item);\n }\n\n private setFormattedValue(item: AXPAddressData): string | AXPAddressData {\n if (this.format() === 'string') {\n return item.full;\n }\n return item;\n }\n\n @HostBinding('class')\n private get __class(): string {\n return 'block flex-1';\n }\n}\n","import { AXBadgeModule } from '@acorex/components/badge';\nimport { AXDecoratorModule } from '@acorex/components/decorators';\nimport { AXPValueWidgetComponent } from '@acorex-platform/framework-client/layout/widget-core';\nimport { ChangeDetectionStrategy, Component, computed, inject } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { isEmpty, isNull } from 'lodash';\nimport { AXPAddressData } from '@acorex-platform/framework-shared/core';\nimport { AXPAddressWidgetService } from './address.service';\n\n@Component({\n selector: 'axp-address-widget-view',\n template: `\n @if (hasValue()) {\n <div class=\"flex gap-2 items-center\">\n <div class=\"flex gap-2 group items-center justify-center truncate\">\n <span class=\"truncate\">{{ formattedAddress() }}</span>\n </div>\n @if (hasLabel() && labelText()) {\n <div><ax-badge color=\"primary\" [look]=\"'twotone'\" [text]=\"labelText()\"></ax-badge></div>\n }\n </div>\n } @else {\n <span class=\"text-muted\">---</span>\n }\n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [FormsModule, AXBadgeModule, AXDecoratorModule],\n})\nexport class AXPAddressWidgetViewComponent extends AXPValueWidgetComponent<AXPAddressData | string> {\n private addressService = inject(AXPAddressWidgetService);\n\n protected hasLabel = computed<boolean>(() => (this.options()['hasLabel'] as boolean) ?? false);\n\n protected internalValue = computed(() => this.addressService.normalizeAddressData(this.getValue()));\n\n protected labelText = computed(() => this.internalValue().label?.title?.trim() ?? '');\n\n protected formattedAddress = computed(() => {\n const value = this.internalValue();\n return value.full || this.addressService.formatAddress(value);\n });\n\n protected hasValue = computed(() => {\n const rawValue = this.getValue();\n if (isNull(rawValue)) return false;\n const value = this.addressService.normalizeAddressData(rawValue);\n return !isEmpty(value.full);\n });\n}\n\n","import { AXPClipBoardService } from '@acorex-platform/framework-client/common';\nimport { AXPColumnWidgetComponent } from '@acorex-platform/framework-client/layout/widget-core';\n\nimport { ChangeDetectionStrategy, Component, computed, inject } from '@angular/core';\nimport { isEmpty, isNull } from 'lodash';\nimport { AXPAddressData } from '@acorex-platform/framework-shared/core';\nimport { AXPAddressWidgetService } from './address.service';\n\n@Component({\n selector: 'axp-address-widget-column',\n template: `\n @if (hasValue()) {\n <div class=\"flex justify-start items-center gap-2 group w-fit\">\n <span class=\"truncate\" [title]=\"formattedAddress()\">{{ formattedAddress() }}</span>\n <i\n (click)=\"clipboard.copy('Address', formattedAddress())\"\n class=\"fa-solid fa-copy text-neutral-400 dark:hover:text-neutral-100 hover:text-neutral-900 group-hover:visible invisible\"\n ></i>\n </div>\n } @else {\n <span class=\"text-muted\">---</span>\n }\n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n inputs: ['rawValue', 'rowData'],\n})\nexport class AXPAddressWidgetColumnComponent extends AXPColumnWidgetComponent<any> {\n protected clipboard = inject(AXPClipBoardService);\n private addressService = inject(AXPAddressWidgetService);\n\n protected normalizedValue = computed(() => {\n const raw = this.rawValue;\n if (!raw) return null;\n return this.addressService.normalizeAddressData(raw);\n });\n\n protected formattedAddress = computed(() => {\n const value = this.normalizedValue();\n if (!value) return '';\n return value.full || this.addressService.formatAddress(value);\n });\n\n protected hasValue = computed(() => {\n const value = this.normalizedValue();\n if (!value) return false;\n return !isEmpty(value.full);\n });\n}\n\n","//#region ---- Imports ----\n\nimport { AXPWidgetDefinitionProvider } from '@acorex-platform/framework-client/layout/widget-core';\nimport { Injectable } from '@angular/core';\nimport { AXPAddressWidget } from './widgets/address';\n\n//#endregion\n\n//#region ---- Location Management Widgets Provider ----\n\nconst LOCATION_WIDGETS = [AXPAddressWidget];\n\n/**\n * Provider for location-management widgets (Address editor).\n * The address widget lives here because its service depends on `@acorex-platform/framework-client/layout/entity`,\n * which would otherwise create a circular dependency with `@acorex-platform/framework-client/layout/widgets`.\n */\n@Injectable()\nexport class AXMLocationManagementWidgetsProvider implements AXPWidgetDefinitionProvider {\n getWidgets() {\n return LOCATION_WIDGETS;\n }\n}\n\n//#endregion\n","import { NgModule } from \"@angular/core\";\nimport { AXP_MODULE_MANIFEST_PROVIDER, AXP_FEATURE_DEFINITION_PROVIDER } from '@acorex-platform/framework-client/core';\nimport { AXP_ENTITY_STORAGE_MIDDLEWARE } from '@acorex-platform/framework-client/layout/entity';\nimport { LocationManagementManifest } from './manifest';\nimport { RootConfig } from '@acorex-platform/module-location-management-client/contracts';\nimport { AXP_MENU_PROVIDER, AXP_SETTING_DEFINITION_PROVIDER, AXP_SEARCH_PROVIDER } from '@acorex-platform/framework-client/common';\nimport { AXP_PERMISSION_DEFINITION_PROVIDER } from '@acorex-platform/framework-client/auth';\nimport { AXP_WIDGET_DEFINITION_PROVIDER, AXPWidgetCoreModule } from '@acorex-platform/framework-client/layout/widget-core';\n\nimport { CommonModule } from \"@angular/common\";\nimport { provideCommandSetups } from '@acorex-platform/framework-client/runtime';\nimport { AXMLocationManagementPermissionDefinitionProvider } from './permission-definition.provider';\nimport { AXMLocationManagementMenuProvider } from './menu.provider';\n\nimport { AXMSettingProvider } from './setting.provider';\nimport { AXMSearchCommandProvider } from './search-command.provider';\nimport { AXMLocationManagementFeatureDefinitionProvider } from './feature-definition.provider';\nimport { locationAssignmentLocationHydrateMiddleware } from './middlewares/location-assignment-location-hydrate.middleware';\nimport { AXMLocationManagementWidgetsProvider } from './widget-definition.provider';\n\n@NgModule({\n imports: [\n CommonModule,\n AXPWidgetCoreModule,\n ],\n exports: [],\n declarations: [],\n providers: [\n // Module Manifest Provider\n {\n provide: AXP_MODULE_MANIFEST_PROVIDER,\n useValue: LocationManagementManifest,\n multi: true,\n },\n // Provider references (now using tokens)\n {\n provide: AXP_PERMISSION_DEFINITION_PROVIDER,\n useClass: AXMLocationManagementPermissionDefinitionProvider,\n multi: true,\n },\n {\n provide: AXP_MENU_PROVIDER,\n useClass: AXMLocationManagementMenuProvider,\n multi: true,\n },\n \n {\n provide: AXP_ENTITY_STORAGE_MIDDLEWARE,\n multi: true,\n useValue: locationAssignmentLocationHydrateMiddleware,\n },\n {\n provide: AXP_SETTING_DEFINITION_PROVIDER,\n useClass: AXMSettingProvider,\n multi: true,\n },\n {\n provide: AXP_SEARCH_PROVIDER,\n useClass: AXMSearchCommandProvider,\n multi: true,\n },\n {\n provide: AXP_FEATURE_DEFINITION_PROVIDER,\n useClass: AXMLocationManagementFeatureDefinitionProvider,\n multi: true,\n },\n {\n provide: AXP_WIDGET_DEFINITION_PROVIDER,\n useClass: AXMLocationManagementWidgetsProvider,\n multi: true,\n },\n provideCommandSetups([\n {\n key: `${RootConfig.module.name}.${RootConfig.entities.locationAssignment.name}:AssignExistingLocation`,\n command: () =>\n import('./commands/assign-existing-location-to-party.command').then(\n (c) => c.AXMLocationAssignmentAssignExistingLocationCommand,\n ),\n },\n {\n key: `${RootConfig.module.name}.${RootConfig.entities.locationAssignment.name}:CreateWithNewLocation`,\n command: () =>\n import('./commands/create-location-with-assignment.command').then(\n (c) => c.AXMLocationAssignmentCreateWithNewLocationCommand,\n ),\n },\n ]),\n ]\n})\nexport class AXMLocationManagementModule { }\n","import { inject, Injectable } from '@angular/core';\nimport { AXTranslationService } from '@acorex/core/translation';\nimport { AXPGeoLocation } from '@acorex-platform/framework-client/common';\nimport { AXPEntityService } from '@acorex-platform/framework-client/layout/entity';\nimport {\n resolveMultiLanguageString,\n type AXPMultiLanguageString,\n} from '@acorex-platform/framework-shared/core';\nimport { RootConfig } from '@acorex-platform/module-location-management-client/contracts';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class AXMLocationManagementService {\n private readonly entityService = inject(AXPEntityService);\n private readonly translationService = inject(AXTranslationService);\n private readonly geographicRegionDataAccessor = this.entityService\n .withEntity(RootConfig.module.name, RootConfig.entities.geographicRegion.name)\n .data<any, any>();\n\n async getCountries(): Promise<AXPGeoLocation[]> {\n const result = await this.geographicRegionDataAccessor.query({\n skip: 0,\n take: 1000,\n filter: { field: 'type', operator: { type: 'equal' }, value: 'country' },\n sort: [{ field: 'title', dir: 'asc' }],\n });\n\n return result.items.map((m: any) => this.toGeoLocation(m));\n }\n\n async getProvinces(countryId?: string): Promise<AXPGeoLocation[]> {\n const result = await this.geographicRegionDataAccessor.query({\n skip: 0,\n take: 1000,\n filter: { field: 'type', operator: { type: 'equal' }, value: 'state' },\n sort: [{ field: 'title', dir: 'asc' }],\n });\n\n return result.items.map((m: any) => this.toGeoLocation(m));\n }\n\n async getCities(filter?: { countryId?: string; provinceId?: string }): Promise<AXPGeoLocation[]> {\n const result = await this.geographicRegionDataAccessor.query({\n skip: 0,\n take: 1000,\n filter: { field: 'type', operator: { type: 'equal' }, value: 'city' },\n sort: [{ field: 'title', dir: 'asc' }],\n });\n\n return result.items.map((m: any) => this.toGeoLocation(m));\n }\n\n private toGeoLocation(row: {\n id?: string;\n code?: string;\n title?: string | AXPMultiLanguageString;\n timezone?: string | { code?: string };\n }): AXPGeoLocation {\n const locale = this.translationService.getActiveLang() || 'en-US';\n const timezone =\n typeof row.timezone === 'string' ? row.timezone : (row.timezone?.code ?? undefined);\n return {\n id: row.id!,\n code: row.code!,\n title: resolveMultiLanguageString(row.title, locale),\n timezone,\n };\n }\n}","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1"],"mappings":"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"}
1
+ {"version":3,"file":"acorex-platform-module-location-management-client.mjs","sources":["../../../../libs/modules/location-management/client/src/lib/manifest.ts","../../../../libs/modules/location-management/client/src/lib/permission-definition.provider.ts","../../../../libs/modules/location-management/client/src/lib/menu.provider.ts","../../../../libs/modules/location-management/client/src/lib/setting.provider.ts","../../../../libs/modules/location-management/client/src/lib/search-command.provider.ts","../../../../libs/modules/location-management/client/src/lib/feature-definition.provider.ts","../../../../libs/modules/location-management/client/src/lib/middlewares/location-assignment-location-hydrate.middleware.ts","../../../../libs/modules/location-management/client/src/lib/widgets/address/address-widget.config.ts","../../../../libs/modules/location-management/client/src/lib/widgets/address/address-widget.types.ts","../../../../libs/modules/location-management/client/src/lib/widgets/address/address.service.ts","../../../../libs/modules/location-management/client/src/lib/widgets/address/address-widget-edit.component.ts","../../../../libs/modules/location-management/client/src/lib/widgets/address/address-widget-view.component.ts","../../../../libs/modules/location-management/client/src/lib/widgets/address/address-widget-column.component.ts","../../../../libs/modules/location-management/client/src/lib/widget-definition.provider.ts","../../../../libs/modules/location-management/client/src/lib/location-management.module.ts","../../../../libs/modules/location-management/client/src/lib/features/shared/location-management.service.ts","../../../../libs/modules/location-management/client/src/acorex-platform-module-location-management-client.ts"],"sourcesContent":["//#region ---- Imports ----\n\nimport { AXPModuleManifest } from '@acorex-platform/framework-client/core';\nimport { RootConfig } from '@acorex-platform/module-location-management-client/contracts';\n\n//#endregion\n\n//#region ---- Manifest Definition ----\n\n/**\n * Location Management Module Manifest.\n * Defines module metadata, features, and provider references.\n */\nexport const LocationManagementManifest: 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 {\n AXPPermissionDefinitionProvider,\n AXPPermissionDefinitionProviderContext,\n} from '@acorex-platform/framework-client/auth';\nimport {\n AXPCommonPermissionGroupKeys\n} from '@acorex-platform/module-common-client/contracts';\n\nimport { Injectable } from '@angular/core';\n\n//#endregion\n\n//#region ---- Permission Definition Provider ----\n\n/**\n * Ensures People & Organization root exists for location-management.\n */\n@Injectable()\nexport class AXMLocationManagementPermissionDefinitionProvider implements AXPPermissionDefinitionProvider {\n async define(context: AXPPermissionDefinitionProviderContext): Promise<void> {\n const groups = AXPCommonPermissionGroupKeys;\n const G = '@common:permission-groups';\n\n context.addGroup(groups.PeopleOrganization.Root, `${G}.people-organization.title`, `${G}.people-organization.description`, { order: 10 });\n }\n}\n\n//#endregion\n","//#region ---- Imports ----\n\nimport {\n AXPCommonMenuKeys\n} from '@acorex-platform/module-common-client/contracts';\nimport { AXPMenuProvider, AXPMenuProviderContext } from '@acorex-platform/framework-client/common';\nimport { AXPEntityService } from '@acorex-platform/framework-client/layout/entity';\nimport { Injectable, inject } from '@angular/core';\nimport {\n RootConfig,\n AXPPeopleOrganizationPermissionKeys\n} from '@acorex-platform/module-location-management-client/contracts';\nimport { AXPLocationManagementMenuKeys } from '@acorex-platform/module-location-management-client/contracts';\n\n//#endregion\n\n//#region ---- Menu Provider ----\n\n@Injectable()\nexport class AXMLocationManagementMenuProvider implements AXPMenuProvider {\n private entityService = inject(AXPEntityService);\n\n async provide(context: AXPMenuProviderContext): Promise<void> {\n const module = RootConfig.module;\n const keys = AXPPeopleOrganizationPermissionKeys;\n\n const contactsMenu = context.find(AXPCommonMenuKeys.Contacts);\n if (!contactsMenu.exists) {\n context.addItems([\n {\n name: AXPCommonMenuKeys.Contacts,\n priority: 8010,\n text: '@general:menus.contacts.title',\n icon: 'fa-light fa-address-book',\n type: 'menu',\n children: [],\n },\n ]);\n }\n\n context.find(AXPCommonMenuKeys.Contacts).addItems([\n {\n name: AXPLocationManagementMenuKeys.Locations,\n text: RootConfig.entities.location.titlePlural,\n path: this.entityService.createPath(module.name, RootConfig.entities.location.name),\n icon: RootConfig.entities.location.icon,\n priority: 40,\n policy: {\n features: [module.name],\n permissions: [keys.Setup],\n },\n },\n ]);\n\n context.find(AXPCommonMenuKeys.Region).addItems([\n {\n name: AXPLocationManagementMenuKeys.LocationTypes,\n text: '@location-management:location-types.menus.location-types.title',\n path: this.entityService.createPath(module.name, RootConfig.entities.locationType.name),\n icon: RootConfig.entities.locationType.icon,\n priority: 1,\n policy: {\n features: [module.name],\n permissions: [keys.Setup],\n },\n },\n {\n name: AXPLocationManagementMenuKeys.LocationRoles,\n text: '@location-management:location-roles.menus.location-roles.title',\n path: this.entityService.createPath(module.name, RootConfig.entities.locationRole.name),\n icon: RootConfig.entities.locationRole.icon,\n priority: 2,\n policy: {\n features: [module.name],\n permissions: [keys.Setup],\n },\n },\n {\n name: AXPLocationManagementMenuKeys.GeographicRegions,\n text: '@location-management:geographic-regions.menus.geographic-regions.title',\n path: this.entityService.createPath(module.name, RootConfig.entities.geographicRegion.name),\n icon: RootConfig.entities.geographicRegion.icon,\n priority: 3,\n policy: {\n features: [module.name],\n permissions: [keys.Setup],\n },\n },\n ]);\n }\n}\n\n//#endregion\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 { AXPSearchCommandProvider, AXPSearchResult, createEntityCommandOptions } from '@acorex-platform/framework-client/common';\nimport { RootConfig } from '@acorex-platform/module-location-management-client/contracts';\n\nexport class AXMSearchCommandProvider extends AXPSearchCommandProvider {\n commands: AXPSearchResult[] = [\n {\n id: 'create-location-role',\n group: 'command',\n title: RootConfig.entities.locationRole.title,\n icon: RootConfig.entities.locationRole.icon,\n description: RootConfig.entities.locationRole.titlePlural,\n command: {\n name: 'Entity:Create',\n options: createEntityCommandOptions(\n `${RootConfig.module.name}.${RootConfig.entities.locationRole.name}`,\n {\n name: RootConfig.entities.locationRole.name,\n module: RootConfig.module.name,\n title: RootConfig.entities.locationRole.title,\n }\n ),\n },\n },\n {\n id: 'create-location-type',\n group: 'command',\n title: RootConfig.entities.locationType.title,\n icon: RootConfig.entities.locationType.icon,\n description: RootConfig.entities.locationType.titlePlural,\n command: {\n name: 'Entity:Create',\n options: createEntityCommandOptions(\n `${RootConfig.module.name}.${RootConfig.entities.locationType.name}`,\n {\n name: RootConfig.entities.locationType.name,\n module: RootConfig.module.name,\n title: RootConfig.entities.locationType.title,\n }\n ),\n },\n },\n {\n id: 'create-geographic-region',\n group: 'command',\n title: RootConfig.entities.geographicRegion.title,\n icon: RootConfig.entities.geographicRegion.icon,\n description: RootConfig.entities.geographicRegion.titlePlural,\n command: {\n name: 'Entity:Create',\n options: createEntityCommandOptions(\n `${RootConfig.module.name}.${RootConfig.entities.geographicRegion.name}`,\n {\n name: RootConfig.entities.geographicRegion.name,\n module: RootConfig.module.name,\n title: RootConfig.entities.geographicRegion.title,\n }\n ),\n },\n },\n ];\n}\n","//#region ---- Imports ----\n\nimport {\n AXPFeatureDefinitionProvider,\n AXPFeatureDefinitionProviderContext,\n} from '@acorex-platform/framework-client/core';\n\n//#endregion\n\n//#region ---- Feature Definition Provider ----\n\n/**\n * Location Management Feature Definition Provider.\n * Provides feature definitions for the Location Management module.\n */\nexport class AXMLocationManagementFeatureDefinitionProvider implements AXPFeatureDefinitionProvider {\n async provide(context: AXPFeatureDefinitionProviderContext): Promise<void> {\n // Management feature removed - module name is used directly as feature key\n }\n}\n\n//#endregion\n\n","import { AXPEntityStorageMiddleware } from '@acorex-platform/framework-client/layout/entity';\nimport { get, set } from 'lodash';\n\nimport {\n RootConfig,\n buildLocationAssignmentLocationSnapshot,\n buildLocationAssignmentPersonSnapshot,\n} from '@acorex-platform/module-location-management-client/contracts';\n\n//#region ---- LocationAssignment nested hydration ----\n\nconst LOCATION_ASSIGNMENT_ENTITY = `${RootConfig.module.name}.${RootConfig.entities.locationAssignment.name}`;\nconst LOCATION_ENTITY = `${RootConfig.module.name}.${RootConfig.entities.location.name}`;\nconst PERSON_ENTITY = 'PersonCore.Person';\n\n/**\n * Hydrates nested `location` and `person` on LocationAssignment rows so consumers\n * (e.g. party location lists) receive computed fields such as `fullAddress` and `fullName`.\n */\nexport const locationAssignmentLocationHydrateMiddleware: AXPEntityStorageMiddleware = {\n target: { ops: ['getOne', 'getAll', 'query'], order: 13 },\n execute: async (ctx, next) => {\n const backend = ctx.entities;\n\n await next();\n\n if (ctx.entityName !== LOCATION_ASSIGNMENT_ENTITY) {\n return;\n }\n\n try {\n const rows: Record<string, unknown>[] = Array.isArray(ctx.result)\n ? ctx.result\n : Array.isArray((ctx.result as { items?: unknown[] })?.items)\n ? ((ctx.result as { items: Record<string, unknown>[] }).items ?? [])\n : ctx.result\n ? [ctx.result as Record<string, unknown>]\n : [];\n\n if (!rows.length) {\n return;\n }\n\n const locationIds = Array.from(\n new Set(rows.map((row) => get(row, 'locationId')).filter((id) => id != null)),\n );\n const personIds = Array.from(\n new Set(rows.map((row) => get(row, 'personId')).filter((id) => id != null)),\n );\n\n const locationMap = new Map<unknown, Record<string, unknown>>();\n if (locationIds.length) {\n const locationResponse = await backend.query(LOCATION_ENTITY, {\n skip: 0,\n take: locationIds.length,\n filter: { field: 'id', operator: { type: 'in' }, value: locationIds },\n });\n\n for (const item of locationResponse?.items ?? []) {\n const record = item as unknown as Record<string, unknown>;\n locationMap.set(get(record, 'id'), record);\n }\n }\n\n const personMap = new Map<unknown, Record<string, unknown>>();\n if (personIds.length) {\n const personResponse = await backend.query(PERSON_ENTITY, {\n skip: 0,\n take: personIds.length,\n filter: { field: 'id', operator: { type: 'in' }, value: personIds },\n });\n\n for (const item of personResponse?.items ?? []) {\n const record = item as unknown as Record<string, unknown>;\n personMap.set(get(record, 'id'), record);\n }\n }\n\n for (const row of rows) {\n const locationId = get(row, 'locationId');\n if (locationId != null) {\n const location = locationMap.get(locationId);\n if (location) {\n set(row, 'location', buildLocationAssignmentLocationSnapshot(location, locationId as string));\n }\n }\n\n const personId = get(row, 'personId');\n if (personId != null) {\n const person = personMap.get(personId);\n if (person) {\n set(row, 'person', buildLocationAssignmentPersonSnapshot(person, personId as string));\n }\n }\n }\n } catch {\n // swallow to avoid breaking main flow\n }\n },\n};\n\n//#endregion\n","import { AXPWidgetConfig, AXPWidgetGroupEnum, createBooleanProperty, createSelectProperty } from '@acorex-platform/framework-shared/widget-core';\nimport { AXP_WIDGETS_EDITOR_CATEGORY, AXP_WIDGETS_EDITOR_SUB_COMPOSITE } from '@acorex-platform/framework-client/layout/widget-core';\nimport {\n AXP_BEHAVIOR_PROPERTY_GROUP,\n AXP_DATA_PATH_PROPERTY,\n AXP_DISABLED_PROPERTY,\n AXP_HAS_LABEL_PROPERTY,\n AXP_NAME_PROPERTY,\n AXP_PLACEHOLDER_PROPERTY,\n} from '@acorex-platform/framework-client/layout/widgets';\n\nexport const AXPAddressWidget: AXPWidgetConfig = {\n name: 'address-editor',\n title: '@platform-layout-widgets:widgets.address-editor.title',\n description: '@platform-layout-widgets:widgets.address-editor.description',\n categories: AXP_WIDGETS_EDITOR_CATEGORY,\n subCategory: AXP_WIDGETS_EDITOR_SUB_COMPOSITE,\n groups: [AXPWidgetGroupEnum.FormElement],\n icon: 'fa-light fa-location-dot',\n defaultFilterWidgetName: 'string-filter',\n type: 'editor',\n properties: [\n AXP_NAME_PROPERTY,\n AXP_DATA_PATH_PROPERTY,\n createSelectProperty({\n name: 'mode',\n title: 'Mode',\n group: AXP_BEHAVIOR_PROPERTY_GROUP,\n dataSource: [\n { id: 'simple', title: 'Single line' },\n { id: 'popup', title: 'Popup editor' },\n { id: 'expandable', title: 'Expandable panel' },\n ],\n defaultValue: { id: 'simple', title: 'Single line' },\n path: 'options.mode',\n }),\n createBooleanProperty({\n name: 'hasLabel',\n title: 'Has Label',\n group: AXP_BEHAVIOR_PROPERTY_GROUP,\n defaultValue: false,\n path: 'options.hasLabel',\n }),\n createBooleanProperty({\n name: 'hasMap',\n title: 'Has Map',\n group: AXP_BEHAVIOR_PROPERTY_GROUP,\n defaultValue: true,\n path: 'options.hasMap',\n }),\n AXP_DISABLED_PROPERTY,\n AXP_HAS_LABEL_PROPERTY,\n AXP_PLACEHOLDER_PROPERTY,\n ],\n components: {\n view: {\n component: () => import('./address-widget-view.component').then((c) => c.AXPAddressWidgetViewComponent),\n },\n edit: {\n component: () => import('./address-widget-edit.component').then((c) => c.AXPAddressWidgetEditComponent),\n },\n column: {\n component: () => import('./address-widget-column.component').then((c) => c.AXPAddressWidgetColumnComponent),\n },\n designer: {\n component: () => import('./address-widget-edit.component').then((c) => c.AXPAddressWidgetEditComponent),\n },\n },\n};\n\n","import type { AXPAddressMode } from '@acorex-platform/framework-shared/core';\n\n//#region ---- Widget Options Types ----\n\n/**\n * Address widget designer options\n */\nexport interface AXPAddressWidgetDesignerOptions {\n mode?: AXPAddressMode;\n placeholder?: string;\n labelEntity?: string;\n disabled?: boolean;\n hasLabel?: boolean;\n hasMap?: boolean;\n}\n\n/**\n * Address widget view options\n */\nexport interface AXPAddressWidgetViewOptions {\n mode?: AXPAddressMode;\n hasLabel?: boolean;\n hasMap?: boolean;\n}\n\n/**\n * Address widget edit options\n */\nexport interface AXPAddressWidgetEditOptions {\n mode?: AXPAddressMode;\n placeholder?: string;\n labelEntity?: string;\n disabled?: boolean;\n hasLabel?: boolean;\n hasMap?: boolean;\n}\n\n/**\n * Address widget column options\n */\nexport interface AXPAddressWidgetColumnOptions { }\n\n/**\n * Complete address widget options structure\n */\nexport interface AXPAddressWidgetOptions {\n designer: AXPAddressWidgetDesignerOptions;\n view: AXPAddressWidgetViewOptions;\n edit: AXPAddressWidgetEditOptions;\n print: AXPAddressWidgetViewOptions;\n column: AXPAddressWidgetColumnOptions;\n}\n\n//#endregion\n","import {\n AXPAddressData,\n AXPPlatformScope,\n extractValue,\n formatAddressData,\n resolveMultiLanguageString,\n type AXPMultiLanguageString,\n type AXPWidgetNode,\n} from '@acorex-platform/framework-shared/core';\nimport { AXPSettingsService } from '@acorex-platform/framework-client/common';\nimport { AXPLayoutBuilderService, IActionBuilder } from '@acorex-platform/framework-client/layout/builder';\nimport { AXPEntityService } from '@acorex-platform/framework-client/layout/entity';\n\nimport { AXTranslationService } from '@acorex/core/translation';\nimport { inject, Injectable } from '@angular/core';\nimport { defaultTo, get, isEmpty, isEqual, isNil } from 'lodash';\n\nconst TENANT_ORGANIZATION_ADDRESS_SETTINGS = {\n street1: 'OrganizationManagement:Setting:Organization.Street1',\n street2: 'OrganizationManagement:Setting:Organization.Street2',\n countryId: 'OrganizationManagement:Setting:Organization.CountryId',\n stateId: 'OrganizationManagement:Setting:Organization.StateId',\n cityId: 'OrganizationManagement:Setting:Organization.CityId',\n postalCode: 'OrganizationManagement:Setting:Organization.PostalCode',\n} as const;\n\nconst GEOGRAPHIC_REGION_ENTITY = 'LocationManagement.GeographicRegion';\n\ninterface AXPAddressGeographicDefaults extends Partial<AXPAddressData> {\n countryId?: string;\n stateId?: string;\n cityId?: string;\n}\n\nexport interface AXPAddressCollapsibleHeader {\n labelText: string | null;\n addressText: string;\n}\n\nexport interface AXPAddressFormContentOptions {\n hasLabel?: boolean;\n labelEntity?: string;\n hasMap: boolean;\n addressData?: Partial<AXPAddressData>;\n}\n\nexport interface AXPAddressWidgetRuntimeOptions {\n hasMap?: boolean;\n hasLabel?: boolean;\n labelEntity?: string;\n useGeographicDefaults?: boolean;\n}\n\n/** Transient flat lookup ids used in the address form context (same pattern as Location entity). */\nexport interface AXPAddressFormContext extends Partial<AXPAddressData> {\n countryId?: string;\n stateId?: string;\n cityId?: string;\n labelId?: string;\n showMap?: boolean;\n}\n\n//#region ---- Service ----\n\n@Injectable({ providedIn: 'root' })\nexport class AXPAddressWidgetService {\n //#region ---- Services & Dependencies ----\n\n private readonly layoutBuilder = inject(AXPLayoutBuilderService);\n private readonly translationService = inject(AXTranslationService);\n private readonly settingsService = inject(AXPSettingsService);\n private readonly entityService = inject(AXPEntityService);\n\n private geographicDefaultsCache: Promise<AXPAddressGeographicDefaults | null> | null = null;\n private readonly geographicTitleCache = new Map<string, string>();\n\n constructor() {\n this.settingsService.onChanged.subscribe((event) => {\n const settingKeys = Object.values(TENANT_ORGANIZATION_ADDRESS_SETTINGS);\n if (event.keys.some((key) => settingKeys.includes(key as (typeof settingKeys)[number]))) {\n this.invalidateGeographicDefaultsCache();\n }\n });\n }\n\n //#endregion\n\n //#region ---- Shared address form layout (dialog + inline renderer) ----\n\n /**\n * Builds the address form content (street1, street2, country, state, city, postalCode, label, map).\n * Used by both the dialog and the expandable inline layout via create().flex().build().\n */\n buildAddressFormContent(flex: any, options: AXPAddressFormContentOptions): void {\n const { hasLabel, labelEntity, hasMap, addressData } = options;\n const showLabel = !!hasLabel && !!labelEntity;\n\n flex.mode('edit').setDirection('column').setGap('12px');\n\n //#region ---- Row 1: label + show map ----\n\n if (showLabel || hasMap) {\n flex.grid((metaRow: any) => {\n metaRow.setColumns(12).setGap('12px');\n\n if (showLabel) {\n metaRow.formField('@location-management:locations.entities.location.fields.label', (field: any) => {\n field.path('labelId');\n field.layout(3);\n field.customWidget('lookup-editor', {\n entity: labelEntity,\n look: 'select',\n textField: 'title',\n valueField: 'id',\n hasClearButton: true,\n allowCreate: 'quick',\n create: {\n enable: true,\n title: '@location-management:locations.entities.location.fields.label-create-title',\n },\n expose: [\n { source: 'id', target: 'label.id' },\n { source: 'title', target: 'label.title' },\n ],\n validations: [{ rule: 'required', message: '@general:validation.messages.required' }],\n });\n });\n }\n\n if (hasMap) {\n metaRow.formField('@location-management:locations.entities.location.fields.show-map', (field: any) => {\n field.path('showMap');\n field.layout(3);\n field.toggleSwitch({\n defaultValue: !!(addressData?.coordinates),\n });\n });\n }\n });\n }\n\n //#endregion\n\n //#region ---- Row 2: street address + address line 2 ----\n\n flex.grid((streetRow: any) => {\n streetRow.setColumns(12).setGap('12px');\n\n streetRow\n .formField('@location-management:locations.entities.location.fields.street1', (field: any) => {\n field.path('street1');\n field.layout(6);\n field.textBox({\n validations: [{ rule: 'required', message: '@general:validation.messages.required' }],\n });\n })\n .formField('@location-management:locations.entities.location.fields.street2', (field: any) => {\n field.path('street2');\n field.layout(6);\n field.textBox({});\n });\n });\n\n //#endregion\n\n //#region ---- Row 3: postal code + country + state + city ----\n\n flex.grid((geoRow: any) => {\n geoRow.setColumns(12).setGap('12px');\n\n geoRow\n .formField('@location-management:locations.entities.location.fields.postal-code', (field: any) => {\n field.path('postalCode');\n field.layout(3);\n field.textBox({ placeholder: 'Enter postal code' });\n })\n .formField('@location-management:locations.entities.location.fields.country', (field: any) => {\n field.path('countryId');\n field.layout(3);\n field.customWidget('lookup-editor', {\n entity: 'LocationManagement.GeographicRegion',\n look: 'select',\n textField: 'title',\n valueField: 'id',\n hasClearButton: true,\n allowCreate: 'quick',\n create: {\n enable: true,\n },\n expose: [\n { source: 'id', target: 'country.id' },\n { source: 'title', target: 'country.title' },\n ],\n filter: {\n logic: 'and',\n filters: [{ field: 'type.code', operator: { type: 'equal' }, value: 'country' }],\n },\n });\n })\n .formField('@location-management:locations.entities.location.fields.state', (field: any) => {\n field.path('stateId');\n field.layout(3);\n field.customWidget('lookup-editor', {\n entity: 'LocationManagement.GeographicRegion',\n look: 'select',\n textField: 'title',\n valueField: 'id',\n hasClearButton: true,\n allowCreate: 'quick',\n disabled: '{{ !context.eval(\"countryId\") }}',\n create: {\n enable: true,\n context: {\n parentId: '{{ context.eval(\"countryId\") }}',\n type: { code: 'state' },\n },\n },\n expose: [\n { source: 'id', target: 'state.id' },\n { source: 'title', target: 'state.title' },\n ],\n filter: {\n logic: 'and',\n filters: [\n { field: 'parentId', operator: { type: 'equal' }, value: '{{ context.eval(\"countryId\") }}' },\n { field: 'type.code', operator: { type: 'equal' }, value: 'state' },\n ],\n },\n triggers: [\n {\n event: \"{{ events.context('countryId') }}\",\n action:\n \"{{ widget.setValue(null); context.set('state.title', null); context.set('cityId', null); context.set('city.id', null); context.set('city.title', null); widget.refresh(); }}\",\n },\n ],\n });\n })\n .formField('@location-management:locations.entities.location.fields.city', (field: any) => {\n field.path('cityId');\n field.layout(3);\n field.customWidget('lookup-editor', {\n entity: 'LocationManagement.GeographicRegion',\n look: 'select',\n textField: 'title',\n valueField: 'id',\n hasClearButton: true,\n allowCreate: 'quick',\n disabled: '{{ !context.eval(\"stateId\") }}',\n create: {\n enable: true,\n context: {\n parentId: '{{ context.eval(\"stateId\") }}',\n type: { code: 'city' },\n },\n },\n expose: [\n { source: 'id', target: 'city.id' },\n { source: 'title', target: 'city.title' },\n ],\n filter: {\n logic: 'and',\n filters: [\n { field: 'parentId', operator: { type: 'equal' }, value: '{{ context.eval(\"stateId\") }}' },\n { field: 'type.code', operator: { type: 'equal' }, value: 'city' },\n ],\n },\n triggers: [\n {\n event: \"{{ events.context('stateId') }}\",\n action: \"{{ widget.setValue(null); context.set('city.title', null); widget.refresh(); }}\",\n },\n {\n event: \"{{ events.context('countryId') }}\",\n action: \"{{ widget.setValue(null); context.set('city.title', null); widget.refresh(); }}\",\n },\n ],\n });\n });\n });\n\n //#endregion\n\n //#region ---- Map picker (when show map is enabled) ----\n\n if (hasMap) {\n flex.grid((mapRow: any) => {\n mapRow.setColumns(12).setGap('12px');\n mapRow.formField('@location-management:locations.entities.location.fields.coordinates', (field: any) => {\n field.path('coordinates');\n field.layout(12);\n field.visible('{{ context.eval(\"showMap\") }}');\n field.customWidget('map', { hasDraw: true, maxPolygon: 0 });\n });\n });\n }\n\n //#endregion\n }\n\n /**\n * Returns the address form layout node using layoutBuilder.create().flex().build() for use in axp-layout-renderer.\n */\n getAddressFormLayout(options: AXPAddressFormContentOptions): AXPWidgetNode {\n return this.layoutBuilder\n .create()\n .flex((flex) => this.buildAddressFormContent(flex, options))\n .build();\n }\n\n //#endregion\n\n //#region ---- Geographic Defaults Methods ----\n\n /** Loads geographic defaults from tenant organization address settings. */\n async getGeographicDefaults(): Promise<AXPAddressGeographicDefaults | null> {\n if (!this.geographicDefaultsCache) {\n this.geographicDefaultsCache = this.loadGeographicDefaultsFromSettings();\n }\n\n return this.geographicDefaultsCache;\n }\n\n private async loadGeographicDefaultsFromSettings(): Promise<AXPAddressGeographicDefaults | null> {\n const tenantScope = this.settingsService.scope(AXPPlatformScope.Tenant);\n const [countryId, stateId, cityId, street1, street2, postalCode] = await Promise.all([\n tenantScope.get<unknown>(TENANT_ORGANIZATION_ADDRESS_SETTINGS.countryId),\n tenantScope.get<unknown>(TENANT_ORGANIZATION_ADDRESS_SETTINGS.stateId),\n tenantScope.get<unknown>(TENANT_ORGANIZATION_ADDRESS_SETTINGS.cityId),\n tenantScope.get<string>(TENANT_ORGANIZATION_ADDRESS_SETTINGS.street1),\n tenantScope.get<string>(TENANT_ORGANIZATION_ADDRESS_SETTINGS.street2),\n tenantScope.get<string>(TENANT_ORGANIZATION_ADDRESS_SETTINGS.postalCode),\n ]);\n\n const resolvedCountry = this.resolveSettingLookupSnapshot(countryId);\n const resolvedState = this.resolveSettingLookupSnapshot(stateId);\n const resolvedCity = this.resolveSettingLookupSnapshot(cityId);\n const resolvedStreet1 = defaultTo(street1, '').trim();\n const resolvedStreet2 = defaultTo(street2, '').trim();\n const resolvedPostalCode = defaultTo(postalCode, '').trim();\n\n if (\n isEmpty(resolvedCountry?.id) &&\n isEmpty(resolvedState?.id) &&\n isEmpty(resolvedCity?.id) &&\n isEmpty(resolvedStreet1) &&\n isEmpty(resolvedStreet2) &&\n isEmpty(resolvedPostalCode)\n ) {\n return null;\n }\n\n return {\n street1: resolvedStreet1 || undefined,\n street2: resolvedStreet2 || undefined,\n postalCode: resolvedPostalCode || undefined,\n countryId: resolvedCountry?.id,\n stateId: resolvedState?.id,\n cityId: resolvedCity?.id,\n country: resolvedCountry,\n state: resolvedState,\n city: resolvedCity,\n };\n }\n\n /** Clears cached defaults (e.g. after tenant settings change). */\n invalidateGeographicDefaultsCache(): void {\n this.geographicDefaultsCache = null;\n }\n\n /**\n * Applies tenant/platform geographic defaults to empty address fields only.\n * Returns whether any field was updated.\n */\n async applyGeographicDefaultsIfNeeded(\n value: Partial<AXPAddressData>,\n options?: { enabled?: boolean },\n ): Promise<{ value: Partial<AXPAddressData>; applied: boolean }> {\n if (options?.enabled === false) {\n return { value, applied: false };\n }\n\n const defaults = await this.getGeographicDefaults();\n if (!defaults) {\n return { value, applied: false };\n }\n\n const merged = this.mergeGeographicDefaults(value, defaults);\n const enriched = await this.enrichGeographicLookupTitles(merged);\n const applied = !isEqual(this.snapshotGeographicFields(value), this.snapshotGeographicFields(enriched));\n return { value: enriched, applied };\n }\n\n /** Merges defaults into empty country/state/city (and optional street/postal) fields. */\n mergeGeographicDefaults(\n value: Partial<AXPAddressData>,\n defaults: AXPAddressGeographicDefaults,\n ): Partial<AXPAddressData> {\n const result: Partial<AXPAddressData> = { ...value };\n\n if (this.isLookupEmpty(result.country) && defaults.country?.id) {\n result.country = defaults.country;\n }\n\n if (this.isLookupEmpty(result.state) && defaults.state?.id) {\n result.state = defaults.state;\n }\n\n if (this.isLookupEmpty(result.city) && defaults.city?.id) {\n result.city = defaults.city;\n }\n\n if (!result.street1?.trim() && defaults.street1?.trim()) {\n result.street1 = defaults.street1;\n }\n\n if (!result.street2?.trim() && defaults.street2?.trim()) {\n result.street2 = defaults.street2;\n }\n\n if (!result.postalCode?.trim() && defaults.postalCode?.trim()) {\n result.postalCode = defaults.postalCode;\n }\n\n return result;\n }\n\n /** Ensures country/state/city snapshots include titles required for formatted address text. */\n async enrichGeographicLookupTitles<T extends Partial<AXPAddressData>>(value: T): Promise<T> {\n const [country, state, city] = await Promise.all([\n this.enrichLookupField(value.country),\n this.enrichLookupField(value.state),\n this.enrichLookupField(value.city),\n ]);\n\n if (country === value.country && state === value.state && city === value.city) {\n return value;\n }\n\n return { ...value, country, state, city };\n }\n\n //#endregion\n\n //#region ---- Geographic Cascade Methods ----\n\n /**\n * Builds layout context with flat lookup ids (countryId/stateId/cityId/labelId) required for cascade triggers.\n * Same pattern as LocationManagement.Location entity fields.\n */\n buildAddressFormContext(\n addressData: Partial<AXPAddressData>,\n options?: { hasMap?: boolean },\n ): AXPAddressFormContext {\n return {\n ...addressData,\n countryId: addressData.country?.id,\n stateId: addressData.state?.id,\n cityId: addressData.city?.id,\n labelId: addressData.label?.id,\n showMap: (options?.hasMap ?? false) && !!addressData.coordinates,\n };\n }\n\n /**\n * Clears dependent geographic fields when a parent selection changes.\n * Mirrors Location entity cascade: state depends on country, city depends on state.\n */\n applyGeographicCascade(\n previous: Partial<AXPAddressFormContext>,\n next: Partial<AXPAddressFormContext>,\n ): Partial<AXPAddressFormContext> {\n const result = { ...next };\n const previousCountryId = previous.countryId ?? previous.country?.id;\n const nextCountryId = result.countryId ?? result.country?.id;\n const previousStateId = previous.stateId ?? previous.state?.id;\n const nextStateId = result.stateId ?? result.state?.id;\n\n if (previousCountryId !== nextCountryId) {\n result.state = undefined;\n result.city = undefined;\n result.stateId = undefined;\n result.cityId = undefined;\n } else if (previousStateId !== nextStateId) {\n result.city = undefined;\n result.cityId = undefined;\n }\n\n return result;\n }\n\n //#endregion\n\n //#region ---- Address Formatting Methods ----\n\n /**\n * Formats address data into full address string\n * Format: [street1], [street2], [country] - [state], [city], [postalCode]\n * Uses titles from exposed fields, excludes coordinates\n */\n formatAddress(data: Partial<AXPAddressData>): string {\n return formatAddressData(data, this.translationService.getActiveLang() || 'en-US');\n }\n\n /**\n * Collapse header parts: label title (semibold in template) + full address.\n */\n async resolveCollapsibleHeader(\n value: Partial<AXPAddressData>,\n options: { placeholder: string },\n ): Promise<AXPAddressCollapsibleHeader> {\n const enriched = await this.enrichGeographicLookupTitles(value);\n const full = (enriched.full?.trim() || this.formatAddress(enriched)).trim();\n const addressText = full !== '' ? full : options.placeholder;\n const labelText = enriched.label?.title?.trim() || null;\n return { labelText, addressText };\n }\n\n //#endregion\n\n //#region ---- Dialog & UI Methods ----\n\n /**\n * Shows address details popup dialog using the shared address form layout.\n */\n async showAddressDetailsPopup(\n addressData: Partial<AXPAddressData>,\n options: AXPAddressWidgetRuntimeOptions = {},\n ): Promise<AXPAddressData | null> {\n const { hasMap = true, hasLabel, labelEntity, useGeographicDefaults = true } = options;\n const { value: addressWithDefaults } = await this.applyGeographicDefaultsIfNeeded(addressData, {\n enabled: useGeographicDefaults,\n });\n const initialContext = this.buildAddressFormContext(addressWithDefaults, { hasMap });\n const dialogTitle = await this.translationService.translateAsync('@general:terms.geography.address');\n const ref = await this.layoutBuilder\n .create()\n .dialog((dialog) => {\n dialog\n .setTitle(dialogTitle)\n .setSize('lg')\n .setContext(initialContext)\n .content((layoutBuilder) => {\n layoutBuilder.flex((flex) =>\n this.buildAddressFormContent(flex, {\n hasLabel,\n labelEntity,\n hasMap,\n addressData: addressWithDefaults,\n }),\n );\n })\n .setActions((actions: IActionBuilder) => {\n actions.cancel('@general:actions.cancel.title').submit('@general:actions.apply.title');\n });\n })\n .show();\n\n if (ref.action() === 'cancel') {\n ref.close();\n return null;\n }\n\n const result = this.applyGeographicCascade(\n initialContext,\n this.normalizeAddressData(ref.context() as AXPAddressData),\n ) as AXPAddressData;\n ref.close();\n return result;\n }\n\n //#endregion\n\n //#region ---- Data Normalization Methods ----\n\n /**\n * Normalizes address data from various input formats\n */\n normalizeAddressData(value: Partial<AXPAddressData> | AXPAddressData | string | null | undefined): AXPAddressData {\n if (typeof value === 'object' && value !== null) {\n const contextValue = value as Partial<AXPAddressData> & { labelId?: string };\n\n return {\n street1: contextValue.street1 ?? '',\n street2: contextValue.street2,\n country: contextValue.country,\n state: contextValue.state,\n city: contextValue.city,\n postalCode: contextValue.postalCode,\n coordinates: contextValue.coordinates,\n full: contextValue.full ?? this.formatAddress(contextValue),\n label: this.resolveLabel(contextValue),\n };\n }\n\n // Simple string format\n return {\n street1: '',\n street2: '',\n country: undefined,\n state: undefined,\n city: undefined,\n postalCode: '',\n coordinates: undefined,\n full: value?.toString() || '',\n label: undefined,\n };\n }\n\n /** Resolves persisted label snapshot from lookup expose or transient labelId. */\n private resolveLabel(value: Partial<AXPAddressData> & { labelId?: string }): AXPAddressData['label'] {\n const exposed = value.label;\n if (exposed?.id) {\n return { id: exposed.id, title: exposed.title };\n }\n\n if (value.labelId) {\n return { id: value.labelId, title: exposed?.title };\n }\n\n return undefined;\n }\n\n private isLookupEmpty(value?: { id?: string }): boolean {\n return isNil(value?.id) || value.id === '';\n }\n\n private snapshotGeographicFields(value: Partial<AXPAddressData>): Partial<AXPAddressData> {\n return {\n street1: value.street1,\n street2: value.street2,\n postalCode: value.postalCode,\n country: value.country,\n state: value.state,\n city: value.city,\n };\n }\n\n private resolveSettingLookupSnapshot(\n value: unknown,\n ): { id?: string; title?: string } | undefined {\n if (isNil(value) || value === '') {\n return undefined;\n }\n\n if (typeof value === 'object') {\n const record = value as { id?: unknown; title?: unknown };\n const id = extractValue<string>(record.id ?? value);\n const title = extractValue<string>(record.title);\n if (!id?.trim()) {\n return undefined;\n }\n\n return {\n id: id.trim(),\n title: title?.trim() || undefined,\n };\n }\n\n const id = extractValue<string>(value);\n return id?.trim() ? { id: id.trim() } : undefined;\n }\n\n private async enrichLookupField(\n field?: { id?: string; title?: string | AXPMultiLanguageString },\n ): Promise<{ id?: string; title?: string } | undefined> {\n if (!field?.id) {\n return field as { id?: string; title?: string } | undefined;\n }\n\n const locale = this.translationService.getActiveLang() || 'en-US';\n const existing = resolveMultiLanguageString(field.title, locale).trim();\n if (existing) {\n return { id: field.id, title: existing };\n }\n\n const title = await this.resolveGeographicRegionTitle(field.id);\n return title ? { id: field.id, title } : { id: field.id };\n }\n\n private async resolveGeographicRegionTitle(id: string): Promise<string | undefined> {\n if (this.geographicTitleCache.has(id)) {\n const cached = this.geographicTitleCache.get(id);\n return cached || undefined;\n }\n\n try {\n const row = await this.entityService.withEntity(GEOGRAPHIC_REGION_ENTITY).data().byKey(id);\n const locale = this.translationService.getActiveLang() || 'en-US';\n const raw = get(row, 'title') as string | AXPMultiLanguageString | undefined;\n const normalized = resolveMultiLanguageString(raw, locale).trim();\n this.geographicTitleCache.set(id, normalized);\n return normalized || undefined;\n } catch {\n this.geographicTitleCache.set(id, '');\n return undefined;\n }\n }\n\n //#endregion\n}\n","import {\n AXPAddressData,\n AXPAddressMode,\n extractValue,\n} from '@acorex-platform/framework-shared/core';\nimport { AXValueChangedEvent } from '@acorex/cdk/common';\nimport { AXButtonModule } from '@acorex/components/button';\nimport { AXDecoratorModule } from '@acorex/components/decorators';\nimport { AXFormModule } from '@acorex/components/form';\nimport { AXTextBoxModule } from '@acorex/components/text-box';\nimport { AXTranslationModule } from '@acorex/core/translation';\nimport { AXValidationModule } from '@acorex/core/validation';\nimport { AXPLayoutRendererComponent } from '@acorex-platform/framework-client/layout/builder';\n\nimport { AXPValueWidgetComponent } from '@acorex-platform/framework-client/layout/widget-core';\nimport { CommonModule } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n HostBinding,\n computed,\n effect,\n inject,\n signal,\n} from '@angular/core';\nimport { FormsModule } from '@angular/forms';\n\nimport { isEqual } from 'lodash';\nimport { AXPAddressWidgetService } from './address.service';\nimport { AXAccordionModule } from '@acorex/components/accordion';\n\n@Component({\n selector: 'axp-address-widget-edit',\n template: `\n @if (addressMode() === 'simple') {\n <div class=\"grid grid-cols-12 gap-4 auto-cols-max\">\n <ax-text-box\n [ngModel]=\"valueAsObject().full\"\n (onValueChanged)=\"handleValueChange($event)\"\n type=\"text\"\n name=\"full\"\n [placeholder]=\"placeholder()\"\n [ngClass]=\"generateClasses('value')\"\n [disabled]=\"disabled()\"\n >\n @for (validation of validationRules(); track $index) {\n <ax-validation-rule\n [rule]=\"validation.rule\"\n [message]=\"$safeNavigationMigration(validation.options?.message)\"\n [options]=\"validation.options\"\n ></ax-validation-rule>\n }\n </ax-text-box>\n </div>\n } @else if (addressMode() === 'expandable') {\n <div class=\"w-full\">\n <ax-accordion-group>\n <ax-accordion-item\n [headerTemplate]=\"collapseHeaderTemplate\"\n [isCollapsed]=\"collapsibleCollapsed()\"\n (isCollapsedChange)=\"onCollapsedChange($event)\"\n >\n <div class=\"pt-1\">\n @for (formKey of [layoutRendererGeneration()]; track formKey) {\n <axp-layout-renderer\n [layout]=\"addressFormLayout()\"\n [context]=\"collapsibleFormContext()\"\n (contextChange)=\"onCollapsibleFormContextChange($event)\"\n />\n }\n </div>\n </ax-accordion-item>\n </ax-accordion-group>\n </div>\n\n <ng-template #collapseHeaderTemplate>\n <div class=\"ax-accordion-header-container\">\n <div class=\"ax-accordion-header-start\">\n <span\n class=\"ax-accordion-header-icon fa-light fa-map-marker-alt\"\n ></span>\n <span>\n @if (collapsibleHeaderLabel()) {\n <span class=\"font-semibold\">{{\n collapsibleHeaderLabel()\n }}</span>\n @if (collapsibleHeaderAddress()) {\n <span> · {{ collapsibleHeaderAddress() }}</span>\n }\n } @else {\n {{ collapsibleHeaderAddress() }}\n }\n </span>\n </div>\n <div class=\"ax-accordion-header-end\">\n <span\n class=\"ax-icon ax-icon-chevron-left ax-accordion-arrow\"\n [class]=\"collapsibleCollapsed() ? '-rotation-90' : 'rotation-90'\"\n ></span>\n </div>\n </div>\n </ng-template>\n } @else {\n <div class=\"grid grid-cols-12 gap-4 auto-cols-max\">\n <div class=\"flex items-center gap-2 col-span-12\">\n <ax-text-box\n [ngModel]=\"formattedAddress()\"\n type=\"text\"\n [readonly]=\"true\"\n [placeholder]=\"placeholder()\"\n class=\"flex-1\"\n [disabled]=\"disabled()\"\n >\n <ax-prefix>\n <ax-icon icon=\"fa-light fa-map-marker-alt\" />\n </ax-prefix>\n <ax-suffix>\n <ax-button\n look=\"flat\"\n size=\"sm\"\n [disabled]=\"disabled()\"\n (onClick)=\"showDetailsPopup()\"\n >\n <ax-icon icon=\"fa-light fa-cog\" />\n </ax-button>\n </ax-suffix>\n </ax-text-box>\n </div>\n </div>\n }\n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [\n CommonModule,\n FormsModule,\n AXFormModule,\n AXDecoratorModule,\n AXTextBoxModule,\n AXValidationModule,\n AXTranslationModule,\n AXButtonModule,\n AXAccordionModule,\n AXPLayoutRendererComponent,\n ],\n})\nexport class AXPAddressWidgetEditComponent extends AXPValueWidgetComponent<\n AXPAddressData | string\n> {\n private addressService = inject(AXPAddressWidgetService);\n\n /** Collapsible mode: true = panel collapsed (only full address visible), false = expanded (edit button visible) */\n protected collapsibleCollapsed = signal<boolean>(true);\n protected collapsibleHeaderLabel = signal<string | null>(null);\n protected collapsibleHeaderAddress = signal<string>('');\n\n /** Bumped on parent discard so the nested layout renderer remounts with reverted context. */\n protected layoutRendererGeneration = signal(0);\n\n private parentContextWasRestored = false;\n private geographicDefaultsInitialized = false;\n private suppressContextSync = false;\n /** Blocks ax-collapse from auto-collapsing while a new empty row is opening. */\n private blockAutoCollapseUntil = 0;\n\n /** Expand new repeater rows so users can enter values without clicking the header again. */\n #expandEmptyAddressEffect = effect(() => {\n if (this.addressMode() !== 'expandable') {\n return;\n }\n\n if (this.shouldKeepExpandedForEntry(this.valueAsObject())) {\n this.collapsibleCollapsed.set(false);\n this.blockAutoCollapseUntil = Date.now() + 300;\n }\n });\n\n #resetNestedFormOnDiscard = effect(() => {\n if (this.addressMode() !== 'expandable') {\n return;\n }\n\n const isRestored = this.contextService.changeEvent().state === 'restored';\n if (isRestored && !this.parentContextWasRestored) {\n this.layoutRendererGeneration.update((generation) => generation + 1);\n }\n this.parentContextWasRestored = isRestored;\n });\n\n #collapsibleHeaderEffect = effect(() => {\n const value = this.valueAsObject();\n this.formattedAddress();\n const placeholder = this.placeholder();\n\n void this.addressService\n .resolveCollapsibleHeader(value, { placeholder })\n .then((header) => {\n this.collapsibleHeaderLabel.set(header.labelText);\n this.collapsibleHeaderAddress.set(header.addressText);\n });\n });\n\n #applyGeographicDefaultsEffect = effect(() => {\n if (!this.useGeographicDefaults() || this.geographicDefaultsInitialized) {\n return;\n }\n\n const value = this.valueAsObject();\n\n void this.addressService\n .applyGeographicDefaultsIfNeeded(value, { enabled: true })\n .then(({ value: merged, applied }) => {\n this.geographicDefaultsInitialized = true;\n\n if (!applied) {\n return;\n }\n\n const normalized = this.addressService.normalizeAddressData(merged);\n normalized.full = this.addressService.formatAddress(normalized);\n this.commitAddressValue(normalized);\n });\n });\n\n protected addressMode = computed<AXPAddressMode>(\n () => (extractValue(this.options()['mode']) as AXPAddressMode) || 'simple',\n );\n\n protected placeholder = computed<string>(\n () => (this.options()['placeholder'] as string) || 'Enter address...',\n );\n\n protected labelEntity = computed<string | undefined>(\n () => this.options()['labelEntity'] as string | undefined,\n );\n protected useGeographicDefaults = computed<boolean>(\n () => (this.options()['useGeographicDefaults'] as boolean) ?? true,\n );\n protected disabled = computed<boolean>(\n () => (this.options()['disabled'] as boolean) ?? false,\n );\n protected hasLabel = computed<boolean>(\n () => (this.options()['hasLabel'] as boolean) ?? false,\n );\n protected hasMap = computed<boolean>(\n () => (this.options()['hasMap'] as boolean) ?? true,\n );\n\n private format = computed<'object' | 'string'>(() => {\n if (\n this.hasLabel() ||\n this.addressMode() === 'popup' ||\n this.addressMode() === 'expandable'\n ) {\n return 'object';\n }\n return 'string';\n });\n\n protected valueAsObject = computed(() => this.toObject(this.getValue()));\n\n protected formattedAddress = computed(() => {\n const value = this.valueAsObject();\n return value.full || this.addressService.formatAddress(value);\n });\n\n /** Layout node from create().flex().build() for inline renderer (expandable mode). */\n protected addressFormLayout = computed(() =>\n this.addressService.getAddressFormLayout({\n hasLabel: this.hasLabel(),\n labelEntity: this.labelEntity(),\n hasMap: this.hasMap(),\n }),\n );\n\n /** Context for inline address form (expandable); includes showMap for map toggle. */\n protected collapsibleFormContext = computed(() =>\n this.addressService.buildAddressFormContext(this.valueAsObject(), {\n hasMap: this.hasMap(),\n }),\n );\n\n protected onCollapsibleFormContextChange(\n ctx: Partial<AXPAddressData> | null | undefined,\n ): void {\n if (ctx == null || this.suppressContextSync) {\n return;\n }\n\n const previous = this.addressService.buildAddressFormContext(\n this.valueAsObject(),\n {\n hasMap: this.hasMap(),\n },\n );\n\n void (async () => {\n const normalized = this.addressService.normalizeAddressData(\n this.addressService.applyGeographicCascade(previous, ctx),\n );\n const enriched =\n await this.addressService.enrichGeographicLookupTitles(normalized);\n enriched.full = this.addressService.formatAddress(enriched);\n\n if (isEqual(enriched, this.valueAsObject())) {\n return;\n }\n\n this.commitAddressValue(enriched);\n })();\n }\n\n protected onCollapsedChange(collapsed: boolean): void {\n if (\n collapsed &&\n (Date.now() < this.blockAutoCollapseUntil ||\n this.shouldKeepExpandedForEntry(this.valueAsObject()))\n ) {\n return;\n }\n\n this.collapsibleCollapsed.set(collapsed);\n }\n\n protected async handleValueChange(e: AXValueChangedEvent) {\n const { name, value, isUserInteraction } = e;\n if (isUserInteraction) {\n const newValues = { ...this.valueAsObject(), [name as string]: value };\n this.setValue(this.setFormattedValue(newValues));\n }\n }\n\n protected async showDetailsPopup() {\n const currentValue = this.valueAsObject();\n const result = await this.addressService.showAddressDetailsPopup(\n currentValue,\n {\n hasMap: this.hasMap(),\n hasLabel: this.hasLabel(),\n labelEntity: this.labelEntity(),\n useGeographicDefaults: this.useGeographicDefaults(),\n },\n );\n\n if (result) {\n result.full = this.addressService.formatAddress(result);\n this.setValue(this.setFormattedValue(result));\n }\n }\n\n protected generateClasses(element: 'value' | 'label'): any {\n const isValue = element === 'value';\n const hasLabel = this.hasLabel();\n const baseClass = 'col-span-12';\n if (!hasLabel) {\n return baseClass;\n }\n return {\n [baseClass]: true,\n 'lg:col-span-7': isValue,\n 'lg:col-span-5': !isValue,\n };\n }\n\n private commitAddressValue(value: AXPAddressData): void {\n this.suppressContextSync = true;\n\n if (this.shouldKeepExpandedForEntry(value)) {\n this.blockAutoCollapseUntil = Date.now() + 300;\n this.collapsibleCollapsed.set(false);\n }\n\n this.setValue(this.setFormattedValue(value));\n window.setTimeout(() => {\n this.suppressContextSync = false;\n }, 50);\n }\n\n /** True while the row has no user-entered content (ignores geographic defaults). */\n private shouldKeepExpandedForEntry(value: AXPAddressData): boolean {\n return (\n !value.street1?.trim() &&\n !value.street2?.trim() &&\n !value.postalCode?.trim() &&\n !value.label?.id\n );\n }\n\n private toObject(\n item: AXPAddressData | string | null | undefined,\n ): AXPAddressData {\n return this.addressService.normalizeAddressData(item);\n }\n\n private setFormattedValue(item: AXPAddressData): string | AXPAddressData {\n if (this.format() === 'string') {\n return item.full;\n }\n return item;\n }\n\n @HostBinding('class')\n private get __class(): string {\n return 'block flex-1';\n }\n}\n","import { AXBadgeModule } from '@acorex/components/badge';\nimport { AXDecoratorModule } from '@acorex/components/decorators';\nimport { AXPValueWidgetComponent } from '@acorex-platform/framework-client/layout/widget-core';\nimport { ChangeDetectionStrategy, Component, computed, inject } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { isEmpty, isNull } from 'lodash';\nimport { AXPAddressData } from '@acorex-platform/framework-shared/core';\nimport { AXPAddressWidgetService } from './address.service';\n\n@Component({\n selector: 'axp-address-widget-view',\n template: `\n @if (hasValue()) {\n <div class=\"flex gap-2 items-center\">\n <div class=\"flex gap-2 group items-center justify-center truncate\">\n <span class=\"truncate\">{{ formattedAddress() }}</span>\n </div>\n @if (hasLabel() && labelText()) {\n <div><ax-badge color=\"primary\" [look]=\"'twotone'\" [text]=\"labelText()\"></ax-badge></div>\n }\n </div>\n } @else {\n <span class=\"text-muted\">---</span>\n }\n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [FormsModule, AXBadgeModule, AXDecoratorModule],\n})\nexport class AXPAddressWidgetViewComponent extends AXPValueWidgetComponent<AXPAddressData | string> {\n private addressService = inject(AXPAddressWidgetService);\n\n protected hasLabel = computed<boolean>(() => (this.options()['hasLabel'] as boolean) ?? false);\n\n protected internalValue = computed(() => this.addressService.normalizeAddressData(this.getValue()));\n\n protected labelText = computed(() => this.internalValue().label?.title?.trim() ?? '');\n\n protected formattedAddress = computed(() => {\n const value = this.internalValue();\n return value.full || this.addressService.formatAddress(value);\n });\n\n protected hasValue = computed(() => {\n const rawValue = this.getValue();\n if (isNull(rawValue)) return false;\n const value = this.addressService.normalizeAddressData(rawValue);\n return !isEmpty(value.full);\n });\n}\n\n","import { AXPClipBoardService } from '@acorex-platform/framework-client/common';\nimport { AXPColumnWidgetComponent } from '@acorex-platform/framework-client/layout/widget-core';\n\nimport { ChangeDetectionStrategy, Component, computed, inject } from '@angular/core';\nimport { isEmpty, isNull } from 'lodash';\nimport { AXPAddressData } from '@acorex-platform/framework-shared/core';\nimport { AXPAddressWidgetService } from './address.service';\n\n@Component({\n selector: 'axp-address-widget-column',\n template: `\n @if (hasValue()) {\n <div class=\"flex justify-start items-center gap-2 group w-fit\">\n <span class=\"truncate\" [title]=\"formattedAddress()\">{{ formattedAddress() }}</span>\n <i\n (click)=\"clipboard.copy('Address', formattedAddress())\"\n class=\"fa-solid fa-copy text-neutral-400 dark:hover:text-neutral-100 hover:text-neutral-900 group-hover:visible invisible\"\n ></i>\n </div>\n } @else {\n <span class=\"text-muted\">---</span>\n }\n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n inputs: ['rawValue', 'rowData'],\n})\nexport class AXPAddressWidgetColumnComponent extends AXPColumnWidgetComponent<any> {\n protected clipboard = inject(AXPClipBoardService);\n private addressService = inject(AXPAddressWidgetService);\n\n protected normalizedValue = computed(() => {\n const raw = this.rawValue;\n if (!raw) return null;\n return this.addressService.normalizeAddressData(raw);\n });\n\n protected formattedAddress = computed(() => {\n const value = this.normalizedValue();\n if (!value) return '';\n return value.full || this.addressService.formatAddress(value);\n });\n\n protected hasValue = computed(() => {\n const value = this.normalizedValue();\n if (!value) return false;\n return !isEmpty(value.full);\n });\n}\n\n","//#region ---- Imports ----\n\nimport { AXPWidgetDefinitionProvider } from '@acorex-platform/framework-client/layout/widget-core';\nimport { Injectable } from '@angular/core';\nimport { AXPAddressWidget } from './widgets/address';\n\n//#endregion\n\n//#region ---- Location Management Widgets Provider ----\n\nconst LOCATION_WIDGETS = [AXPAddressWidget];\n\n/**\n * Provider for location-management widgets (Address editor).\n * The address widget lives here because its service depends on `@acorex-platform/framework-client/layout/entity`,\n * which would otherwise create a circular dependency with `@acorex-platform/framework-client/layout/widgets`.\n */\n@Injectable()\nexport class AXMLocationManagementWidgetsProvider implements AXPWidgetDefinitionProvider {\n getWidgets() {\n return LOCATION_WIDGETS;\n }\n}\n\n//#endregion\n","import { NgModule } from \"@angular/core\";\nimport { AXP_MODULE_MANIFEST_PROVIDER, AXP_FEATURE_DEFINITION_PROVIDER } from '@acorex-platform/framework-client/core';\nimport { AXP_ENTITY_STORAGE_MIDDLEWARE } from '@acorex-platform/framework-client/layout/entity';\nimport { LocationManagementManifest } from './manifest';\nimport { RootConfig } from '@acorex-platform/module-location-management-client/contracts';\nimport { AXP_MENU_PROVIDER, AXP_SETTING_DEFINITION_PROVIDER, AXP_SEARCH_PROVIDER } from '@acorex-platform/framework-client/common';\nimport { AXP_PERMISSION_DEFINITION_PROVIDER } from '@acorex-platform/framework-client/auth';\nimport { AXP_WIDGET_DEFINITION_PROVIDER, AXPWidgetCoreModule } from '@acorex-platform/framework-client/layout/widget-core';\n\nimport { CommonModule } from \"@angular/common\";\nimport { provideCommandSetups } from '@acorex-platform/framework-client/runtime';\nimport { AXMLocationManagementPermissionDefinitionProvider } from './permission-definition.provider';\nimport { AXMLocationManagementMenuProvider } from './menu.provider';\n\nimport { AXMSettingProvider } from './setting.provider';\nimport { AXMSearchCommandProvider } from './search-command.provider';\nimport { AXMLocationManagementFeatureDefinitionProvider } from './feature-definition.provider';\nimport { locationAssignmentLocationHydrateMiddleware } from './middlewares/location-assignment-location-hydrate.middleware';\nimport { AXMLocationManagementWidgetsProvider } from './widget-definition.provider';\n\n@NgModule({\n imports: [\n CommonModule,\n AXPWidgetCoreModule,\n ],\n exports: [],\n declarations: [],\n providers: [\n // Module Manifest Provider\n {\n provide: AXP_MODULE_MANIFEST_PROVIDER,\n useValue: LocationManagementManifest,\n multi: true,\n },\n // Provider references (now using tokens)\n {\n provide: AXP_PERMISSION_DEFINITION_PROVIDER,\n useClass: AXMLocationManagementPermissionDefinitionProvider,\n multi: true,\n },\n {\n provide: AXP_MENU_PROVIDER,\n useClass: AXMLocationManagementMenuProvider,\n multi: true,\n },\n \n {\n provide: AXP_ENTITY_STORAGE_MIDDLEWARE,\n multi: true,\n useValue: locationAssignmentLocationHydrateMiddleware,\n },\n {\n provide: AXP_SETTING_DEFINITION_PROVIDER,\n useClass: AXMSettingProvider,\n multi: true,\n },\n {\n provide: AXP_SEARCH_PROVIDER,\n useClass: AXMSearchCommandProvider,\n multi: true,\n },\n {\n provide: AXP_FEATURE_DEFINITION_PROVIDER,\n useClass: AXMLocationManagementFeatureDefinitionProvider,\n multi: true,\n },\n {\n provide: AXP_WIDGET_DEFINITION_PROVIDER,\n useClass: AXMLocationManagementWidgetsProvider,\n multi: true,\n },\n provideCommandSetups([\n {\n key: `${RootConfig.module.name}.${RootConfig.entities.locationAssignment.name}:AssignExistingLocation`,\n command: () =>\n import('./commands/assign-existing-location-to-party.command').then(\n (c) => c.AXMLocationAssignmentAssignExistingLocationCommand,\n ),\n },\n {\n key: `${RootConfig.module.name}.${RootConfig.entities.locationAssignment.name}:CreateWithNewLocation`,\n command: () =>\n import('./commands/create-location-with-assignment.command').then(\n (c) => c.AXMLocationAssignmentCreateWithNewLocationCommand,\n ),\n },\n ]),\n ]\n})\nexport class AXMLocationManagementModule { }\n","import { inject, Injectable } from '@angular/core';\nimport { AXTranslationService } from '@acorex/core/translation';\nimport { AXPGeoLocation } from '@acorex-platform/framework-client/common';\nimport { AXPEntityService } from '@acorex-platform/framework-client/layout/entity';\nimport {\n resolveMultiLanguageString,\n type AXPMultiLanguageString,\n} from '@acorex-platform/framework-shared/core';\nimport { RootConfig } from '@acorex-platform/module-location-management-client/contracts';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class AXMLocationManagementService {\n private readonly entityService = inject(AXPEntityService);\n private readonly translationService = inject(AXTranslationService);\n private readonly geographicRegionDataAccessor = this.entityService\n .withEntity(RootConfig.module.name, RootConfig.entities.geographicRegion.name)\n .data<any, any>();\n\n async getCountries(): Promise<AXPGeoLocation[]> {\n const result = await this.geographicRegionDataAccessor.query({\n skip: 0,\n take: 1000,\n filter: { field: 'type', operator: { type: 'equal' }, value: 'country' },\n sort: [{ field: 'title', dir: 'asc' }],\n });\n\n return result.items.map((m: any) => this.toGeoLocation(m));\n }\n\n async getProvinces(countryId?: string): Promise<AXPGeoLocation[]> {\n const result = await this.geographicRegionDataAccessor.query({\n skip: 0,\n take: 1000,\n filter: { field: 'type', operator: { type: 'equal' }, value: 'state' },\n sort: [{ field: 'title', dir: 'asc' }],\n });\n\n return result.items.map((m: any) => this.toGeoLocation(m));\n }\n\n async getCities(filter?: { countryId?: string; provinceId?: string }): Promise<AXPGeoLocation[]> {\n const result = await this.geographicRegionDataAccessor.query({\n skip: 0,\n take: 1000,\n filter: { field: 'type', operator: { type: 'equal' }, value: 'city' },\n sort: [{ field: 'title', dir: 'asc' }],\n });\n\n return result.items.map((m: any) => this.toGeoLocation(m));\n }\n\n private toGeoLocation(row: {\n id?: string;\n code?: string;\n title?: string | AXPMultiLanguageString;\n timezone?: string | { code?: string };\n }): AXPGeoLocation {\n const locale = this.translationService.getActiveLang() || 'en-US';\n const timezone =\n typeof row.timezone === 'string' ? row.timezone : (row.timezone?.code ?? undefined);\n return {\n id: row.id!,\n code: row.code!,\n title: resolveMultiLanguageString(row.title, locale),\n timezone,\n };\n }\n}","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@acorex-platform/module-location-management-client",
3
- "version": "0.0.33",
3
+ "version": "0.0.38",
4
4
  "sideEffects": false,
5
5
  "peerDependencies": {
6
6
  "@angular/common": "^21.0.0 || ^22.0.0",