@acorex-platform/module-location-management-client 0.0.15

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 (50) hide show
  1. package/contracts/datasource.keys.d.ts +6 -0
  2. package/contracts/datasource.keys.js +8 -0
  3. package/contracts/entities/geographic-region/geographic-region.entity.d.ts +2 -0
  4. package/contracts/entities/geographic-region/geographic-region.entity.js +725 -0
  5. package/contracts/entities/geographic-region/geographic-region.types.d.ts +27 -0
  6. package/contracts/entities/geographic-region/geographic-region.types.js +1 -0
  7. package/contracts/entities/geographic-region/index.d.ts +2 -0
  8. package/contracts/entities/geographic-region/index.js +2 -0
  9. package/contracts/entities/index.d.ts +5 -0
  10. package/contracts/entities/index.js +5 -0
  11. package/contracts/entities/location/index.d.ts +2 -0
  12. package/contracts/entities/location/index.js +2 -0
  13. package/contracts/entities/location/location.entity.d.ts +2 -0
  14. package/contracts/entities/location/location.entity.js +1075 -0
  15. package/contracts/entities/location/location.types.d.ts +30 -0
  16. package/contracts/entities/location/location.types.js +1 -0
  17. package/contracts/entities/location-assignment/index.d.ts +2 -0
  18. package/contracts/entities/location-assignment/index.js +2 -0
  19. package/contracts/entities/location-assignment/location-assignment.entity.d.ts +2 -0
  20. package/contracts/entities/location-assignment/location-assignment.entity.js +194 -0
  21. package/contracts/entities/location-assignment/location-assignment.types.d.ts +35 -0
  22. package/contracts/entities/location-assignment/location-assignment.types.js +2 -0
  23. package/contracts/entities/location-role/index.d.ts +2 -0
  24. package/contracts/entities/location-role/index.js +2 -0
  25. package/contracts/entities/location-role/location-role.entity.d.ts +2 -0
  26. package/contracts/entities/location-role/location-role.entity.js +143 -0
  27. package/contracts/entities/location-role/location-role.types.d.ts +6 -0
  28. package/contracts/entities/location-role/location-role.types.js +1 -0
  29. package/contracts/entities/location-type/index.d.ts +2 -0
  30. package/contracts/entities/location-type/index.js +2 -0
  31. package/contracts/entities/location-type/location-type.entity.d.ts +2 -0
  32. package/contracts/entities/location-type/location-type.entity.js +237 -0
  33. package/contracts/entities/location-type/location-type.types.d.ts +8 -0
  34. package/contracts/entities/location-type/location-type.types.js +1 -0
  35. package/contracts/features.keys.d.ts +1 -0
  36. package/contracts/features.keys.js +2 -0
  37. package/contracts/index.d.ts +8 -0
  38. package/contracts/index.js +10 -0
  39. package/contracts/location-assignment.actions.d.ts +8 -0
  40. package/contracts/location-assignment.actions.js +73 -0
  41. package/contracts/location-assignment.utils.d.ts +53 -0
  42. package/contracts/location-assignment.utils.js +145 -0
  43. package/contracts/menu.keys.d.ts +8 -0
  44. package/contracts/menu.keys.js +8 -0
  45. package/contracts/package.json +5 -0
  46. package/contracts/permission.keys.d.ts +33 -0
  47. package/contracts/permission.keys.js +42 -0
  48. package/contracts/root-config.d.ts +42 -0
  49. package/contracts/root-config.js +43 -0
  50. package/package.json +12 -0
@@ -0,0 +1,30 @@
1
+ import { AXPEntityModel } from '@acorex-platform/framework-shared/entity';
2
+ export interface AXMLocationManagementLocationEntityModel extends AXPEntityModel<string> {
3
+ title: string;
4
+ code?: string;
5
+ locationTypeId?: string;
6
+ locationType?: {
7
+ id: string;
8
+ title: string;
9
+ description?: string;
10
+ icon?: string;
11
+ color?: string;
12
+ };
13
+ street1: string;
14
+ street2?: string;
15
+ countryId?: string;
16
+ stateId?: string;
17
+ cityId?: string;
18
+ districtId?: string;
19
+ postalCode: string;
20
+ coordinates?: string;
21
+ description?: string;
22
+ parentLocationId?: string;
23
+ isPrimary?: boolean;
24
+ isActive: boolean;
25
+ validFrom?: Date;
26
+ validTo?: Date;
27
+ timezone?: string;
28
+ /** Computed: formatted address (from computed-property plugin) */
29
+ fullAddress?: string;
30
+ }
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,2 @@
1
+ export * from './location-assignment.entity';
2
+ export * from './location-assignment.types';
@@ -0,0 +1,2 @@
1
+ export * from './location-assignment.entity';
2
+ export * from './location-assignment.types';
@@ -0,0 +1,2 @@
1
+ import { AXPEntity } from '@acorex-platform/framework-shared/entity';
2
+ export declare function locationAssignmentFactory(): Promise<AXPEntity>;
@@ -0,0 +1,194 @@
1
+ import { AXPWidgetsCatalog, AXPWidgetsList } from '@acorex-platform/framework-shared/core';
2
+ import { createAllQueryView, entityMasterCrudActions, entityMasterRecordActions, } from '@acorex-platform/framework-shared/entity';
3
+ //#region ---- Imports ----
4
+ import { createLocationAssignmentOwnerRefLookupProperty, createLocationAssignmentOwnerRefTypeProperty, RootConfig, } from '../../index';
5
+ //#endregion
6
+ //#region ---- Entity Factory ----
7
+ export async function locationAssignmentFactory() {
8
+ const entityDef = {
9
+ module: RootConfig.module.name,
10
+ name: RootConfig.entities.locationAssignment.name,
11
+ title: RootConfig.entities.locationAssignment.title,
12
+ icon: RootConfig.entities.locationAssignment.icon,
13
+ formats: {
14
+ individual: RootConfig.entities.locationAssignment.title,
15
+ plural: RootConfig.entities.locationAssignment.titlePlural,
16
+ searchResult: {
17
+ title: '{{ location.title }}',
18
+ description: '@location-management:location-assignments.entities.location-assignment.search-result-description',
19
+ },
20
+ },
21
+ plugins: [{ name: 'notes' }],
22
+ groups: [{ id: 'basic-info', title: '@general:terms.interface.basic-info' }],
23
+ properties: [
24
+ {
25
+ name: 'locationId',
26
+ title: '@location-management:location-assignments.entities.location-assignment.fields.location.title',
27
+ groupId: 'basic-info',
28
+ options: {
29
+ sort: { enabled: true },
30
+ filter: { advance: { enabled: true }, inline: { enabled: true } },
31
+ },
32
+ schema: {
33
+ dataType: 'string',
34
+ interface: {
35
+ type: AXPWidgetsList.Editors.LookupBox,
36
+ options: {
37
+ entity: `${RootConfig.module.name}.${RootConfig.entities.location.name}`,
38
+ multiple: false,
39
+ textField: 'title',
40
+ columns: ['title', 'code', 'fullAddress', 'locationTypeId'],
41
+ allowCreate: 'quick',
42
+ expose: [
43
+ { source: 'id', target: 'location.id' },
44
+ { source: 'title', target: 'location.title' },
45
+ { source: 'fullAddress', target: 'location.fullAddress' },
46
+ { source: 'street1', target: 'location.street1' },
47
+ { source: 'street2', target: 'location.street2' },
48
+ { source: 'postalCode', target: 'location.postalCode' },
49
+ { source: 'city.title', target: 'location.city.title' },
50
+ { source: 'state.title', target: 'location.state.title' },
51
+ { source: 'country.title', target: 'location.country.title' },
52
+ ],
53
+ },
54
+ },
55
+ },
56
+ validations: [{ rule: 'required' }],
57
+ },
58
+ createLocationAssignmentOwnerRefTypeProperty('basic-info'),
59
+ createLocationAssignmentOwnerRefLookupProperty('basic-info'),
60
+ {
61
+ name: 'roleId',
62
+ title: '@location-management:location-assignments.entities.location-assignment.fields.role.title',
63
+ groupId: 'basic-info',
64
+ options: {
65
+ sort: { enabled: true },
66
+ filter: { advance: { enabled: true }, inline: { enabled: true } },
67
+ },
68
+ schema: {
69
+ dataType: 'string',
70
+ interface: {
71
+ type: AXPWidgetsCatalog.lookup,
72
+ options: {
73
+ look: 'select',
74
+ entity: `${RootConfig.module.name}.${RootConfig.entities.locationRole.name}`,
75
+ multiple: false,
76
+ expose: [
77
+ { source: 'id', target: 'role.id' },
78
+ { source: 'title', target: 'role.title' },
79
+ ],
80
+ },
81
+ },
82
+ },
83
+ validations: [{ rule: 'required' }],
84
+ },
85
+ {
86
+ name: 'personId',
87
+ title: '@location-management:location-assignments.entities.location-assignment.fields.contact.title',
88
+ groupId: 'basic-info',
89
+ options: {
90
+ sort: { enabled: true },
91
+ filter: { advance: { enabled: true }, inline: { enabled: true } },
92
+ },
93
+ schema: {
94
+ dataType: 'string',
95
+ interface: {
96
+ type: AXPWidgetsCatalog.lookup,
97
+ options: {
98
+ entity: 'PersonCore.Person',
99
+ multiple: false,
100
+ textField: 'fullName',
101
+ columns: ['fullName', 'phones', 'emails'],
102
+ allowCreate: 'quick',
103
+ expose: [
104
+ { source: 'id', target: 'person.id' },
105
+ { source: 'fullName', target: 'person.fullName' },
106
+ { source: 'phones', target: 'person.phones' },
107
+ { source: 'emails', target: 'person.emails' },
108
+ ],
109
+ },
110
+ },
111
+ },
112
+ },
113
+ ],
114
+ columns: [
115
+ {
116
+ name: 'locationId',
117
+ title: '@general:terms.common.title',
118
+ options: { dataPath: 'location.title' },
119
+ },
120
+ {
121
+ name: 'roleId',
122
+ title: '@location-management:location-assignments.entities.location-assignment.fields.role.title',
123
+ options: { dataPath: 'role.title' },
124
+ },
125
+ {
126
+ name: 'location.fullAddress',
127
+ title: '@general:terms.geography.address',
128
+ options: { width: '280px' },
129
+ },
130
+ {
131
+ name: 'personId',
132
+ title: '@general:terms.people.contact',
133
+ options: { dataPath: 'person.fullName' },
134
+ },
135
+ {
136
+ name: 'person.phones',
137
+ title: '@general:terms.communication.phones',
138
+ options: { width: '180px' },
139
+ },
140
+ {
141
+ name: 'ownerRef.id',
142
+ title: '@location-management:location-assignments.entities.location-assignment.fields.assignee.title',
143
+ options: { dataPath: 'ownerRef.title' },
144
+ },
145
+ {
146
+ name: 'notes',
147
+ title: '@general:terms.common.notes',
148
+ },
149
+ ],
150
+ interfaces: {
151
+ master: {
152
+ create: {
153
+ sections: [{ id: 'basic-info' }],
154
+ properties: [
155
+ { name: 'locationId', layout: { positions: { lg: { colSpan: 12, order: 1 } } } },
156
+ { name: 'ownerRef.id', layout: { positions: { lg: { colSpan: 6, order: 2 } } } },
157
+ { name: 'roleId', layout: { positions: { lg: { colSpan: 6, order: 3 } } } },
158
+ { name: 'personId', layout: { positions: { lg: { colSpan: 6, order: 4 } } } },
159
+ ],
160
+ },
161
+ update: {
162
+ sections: [{ id: 'basic-info' }],
163
+ properties: [
164
+ { name: 'locationId', layout: { positions: { lg: { colSpan: 12, order: 1 } } } },
165
+ { name: 'ownerRef.id', layout: { positions: { lg: { colSpan: 6, order: 2 } } } },
166
+ { name: 'roleId', layout: { positions: { lg: { colSpan: 6, order: 3 } } } },
167
+ { name: 'personId', layout: { positions: { lg: { colSpan: 6, order: 4 } } } },
168
+ ],
169
+ },
170
+ single: {
171
+ title: '{{ location.title }}',
172
+ sections: [{ id: 'basic-info', layout: { positions: { lg: { colSpan: 12 } } } }],
173
+ properties: [
174
+ { name: 'locationId', layout: { positions: { lg: { colSpan: 12, order: 1 } } } },
175
+ { name: 'ownerRef.id', layout: { positions: { lg: { colSpan: 6, order: 2 } } } },
176
+ { name: 'roleId', layout: { positions: { lg: { colSpan: 6, order: 3 } } } },
177
+ { name: 'personId', layout: { positions: { lg: { colSpan: 6, order: 4 } } } },
178
+ ],
179
+ actions: [...entityMasterRecordActions()],
180
+ },
181
+ list: {
182
+ actions: [...entityMasterCrudActions()],
183
+ views: [
184
+ createAllQueryView({
185
+ sorts: [{ name: 'locationId', dir: 'asc' }],
186
+ }),
187
+ ],
188
+ },
189
+ },
190
+ },
191
+ };
192
+ return entityDef;
193
+ }
194
+ //#endregion
@@ -0,0 +1,35 @@
1
+ import type { AXPEntityReference } from '@acorex-platform/framework-shared/core';
2
+ import { AXPEntityModel } from '@acorex-platform/framework-shared/entity';
3
+ export interface AXMLocationManagementLocationAssignmentEntityModel extends AXPEntityModel<string> {
4
+ locationId: string;
5
+ ownerRef: AXPEntityReference;
6
+ roleId: string;
7
+ personId?: string;
8
+ location?: {
9
+ id: string;
10
+ title: string;
11
+ fullAddress?: string;
12
+ street1?: string;
13
+ street2?: string;
14
+ postalCode?: string;
15
+ city?: {
16
+ title: string;
17
+ };
18
+ state?: {
19
+ title: string;
20
+ };
21
+ country?: {
22
+ title: string;
23
+ };
24
+ };
25
+ role?: {
26
+ id: string;
27
+ title: string;
28
+ };
29
+ person?: {
30
+ id: string;
31
+ fullName?: string;
32
+ phones?: unknown[];
33
+ emails?: unknown[];
34
+ };
35
+ }
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //#endregion
@@ -0,0 +1,2 @@
1
+ export * from './location-role.entity';
2
+ export * from './location-role.types';
@@ -0,0 +1,2 @@
1
+ export * from './location-role.entity';
2
+ export * from './location-role.types';
@@ -0,0 +1,2 @@
1
+ import { AXPEntity } from '@acorex-platform/framework-shared/entity';
2
+ export declare function locationRoleFactory(): Promise<AXPEntity>;
@@ -0,0 +1,143 @@
1
+ import { AXPWidgetsList } from '@acorex-platform/framework-shared/core';
2
+ import { createAllQueryView, entityMasterCrudActions, entityMasterRecordActions } from '@acorex-platform/framework-shared/entity';
3
+ //#region ---- Imports ----
4
+ import { RootConfig } from '../../root-config';
5
+ //#endregion
6
+ //#region ---- Entity Factory ----
7
+ export async function locationRoleFactory() {
8
+ const sections = [{ id: 'basic-info', layout: { positions: { lg: { colSpan: 12 } } } }];
9
+ const createPropertyLayouts = [
10
+ { name: 'title', layout: { positions: { lg: { colSpan: 12, order: 1 } } } },
11
+ { name: 'description', layout: { positions: { lg: { colSpan: 12, order: 2 } } } },
12
+ ];
13
+ const modifyPropertyLayouts = [
14
+ { name: 'name', layout: { positions: { lg: { colSpan: 6, order: 1 } } } },
15
+ { name: 'title', layout: { positions: { lg: { colSpan: 6, order: 2 } } } },
16
+ { name: 'description', layout: { positions: { lg: { colSpan: 12, order: 3 } } } },
17
+ ];
18
+ const entityDef = {
19
+ module: RootConfig.module.name,
20
+ name: RootConfig.entities.locationRole.name,
21
+ title: RootConfig.entities.locationRole.title,
22
+ icon: RootConfig.entities.locationRole.icon,
23
+ formats: {
24
+ individual: RootConfig.entities.locationRole.title,
25
+ plural: RootConfig.entities.locationRole.titlePlural,
26
+ searchResult: {
27
+ title: '{{ title }}',
28
+ description: '@location-management:location-roles.entities.location-role.search-result-description',
29
+ },
30
+ },
31
+ plugins: [
32
+ { name: 'history' },
33
+ { name: 'compare' },
34
+ { name: 'clone' },
35
+ { name: 'derived-name' },
36
+ {
37
+ name: 'unique-fields',
38
+ options: {
39
+ fields: 'name',
40
+ scope: 'global',
41
+ },
42
+ },
43
+ ],
44
+ groups: [{ id: 'basic-info', title: '@general:terms.interface.basic-info' }],
45
+ properties: [
46
+ {
47
+ name: 'id',
48
+ title: '@general:terms.common.id',
49
+ groupId: 'basic-info',
50
+ schema: {
51
+ dataType: 'uuid',
52
+ visible: false,
53
+ readonly: true,
54
+ unique: { enabled: true },
55
+ },
56
+ },
57
+ {
58
+ name: 'name',
59
+ title: '@location-management:location-roles.entities.location-role.fields.name.title',
60
+ groupId: 'basic-info',
61
+ options: {
62
+ sort: { enabled: true },
63
+ filter: { advance: { enabled: true }, inline: { enabled: true } },
64
+ },
65
+ schema: {
66
+ dataType: 'string',
67
+ interface: {
68
+ type: AXPWidgetsList.Editors.TextBox,
69
+ options: {
70
+ placeholder: '@location-management:location-roles.entities.location-role.fields.name.placeholder',
71
+ },
72
+ },
73
+ },
74
+ validations: [{ rule: 'required' }, { rule: 'variable-name' }],
75
+ },
76
+ {
77
+ name: 'title',
78
+ title: '@general:terms.common.title',
79
+ groupId: 'basic-info',
80
+ options: {
81
+ sort: { enabled: true },
82
+ filter: { advance: { enabled: true }, inline: { enabled: true } },
83
+ },
84
+ schema: {
85
+ dataType: 'string',
86
+ interface: {
87
+ type: AXPWidgetsList.Editors.TextBox,
88
+ options: {
89
+ placeholder: '@location-management:location-roles.entities.location-role.fields.title.placeholder',
90
+ },
91
+ },
92
+ },
93
+ validations: [{ rule: 'required' }],
94
+ },
95
+ {
96
+ name: 'description',
97
+ title: '@general:terms.common.description',
98
+ groupId: 'basic-info',
99
+ options: {
100
+ sort: { enabled: false },
101
+ filter: { advance: { enabled: true }, inline: { enabled: false } },
102
+ },
103
+ schema: {
104
+ dataType: 'string',
105
+ interface: {
106
+ type: AXPWidgetsList.Editors.LargeTextBox,
107
+ options: {
108
+ rows: 3,
109
+ placeholder: '@location-management:location-roles.entities.location-role.fields.description.placeholder',
110
+ },
111
+ },
112
+ },
113
+ },
114
+ ],
115
+ columns: [
116
+ { name: 'title', options: { width: '220px', order: 1 } },
117
+ { name: 'name', options: { width: '140px', order: 2 } },
118
+ { name: 'description', options: { width: '320px', order: 3 } },
119
+ ],
120
+ interfaces: {
121
+ master: {
122
+ create: { sections, properties: createPropertyLayouts },
123
+ update: { sections, properties: modifyPropertyLayouts },
124
+ single: {
125
+ title: '{{ title }}',
126
+ sections,
127
+ properties: modifyPropertyLayouts,
128
+ actions: [...entityMasterRecordActions()],
129
+ },
130
+ list: {
131
+ actions: [...entityMasterCrudActions()],
132
+ views: [
133
+ createAllQueryView({
134
+ sorts: [{ name: 'title', dir: 'asc' }],
135
+ }),
136
+ ],
137
+ },
138
+ },
139
+ },
140
+ };
141
+ return entityDef;
142
+ }
143
+ //#endregion
@@ -0,0 +1,6 @@
1
+ import { AXPEntityModel } from '@acorex-platform/framework-shared/entity';
2
+ export interface AXMLocationManagementLocationRoleEntityModel extends AXPEntityModel<string> {
3
+ name: string;
4
+ title: string;
5
+ description?: string | null;
6
+ }
@@ -0,0 +1,2 @@
1
+ export * from './location-type.entity';
2
+ export * from './location-type.types';
@@ -0,0 +1,2 @@
1
+ export * from './location-type.entity';
2
+ export * from './location-type.types';
@@ -0,0 +1,2 @@
1
+ import { AXPEntity } from '@acorex-platform/framework-shared/entity';
2
+ export declare function locationTypeFactory(): Promise<AXPEntity | null>;