@acorex/modules 20.0.11 → 20.0.13

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 (56) hide show
  1. package/calendar-management/README.md +271 -0
  2. package/calendar-management/index.d.ts +156 -0
  3. package/contact-management/README.md +150 -0
  4. package/contact-management/index.d.ts +15 -4
  5. package/fesm2022/acorex-modules-calendar-management.mjs +1509 -0
  6. package/fesm2022/acorex-modules-calendar-management.mjs.map +1 -0
  7. package/fesm2022/acorex-modules-common-search-popup.component-B_bJ0ZRM.mjs +128 -0
  8. package/fesm2022/acorex-modules-common-search-popup.component-B_bJ0ZRM.mjs.map +1 -0
  9. package/fesm2022/acorex-modules-common.mjs +2 -2
  10. package/fesm2022/acorex-modules-contact-management-acorex-modules-contact-management-DVjMlS0K.mjs +2548 -0
  11. package/fesm2022/acorex-modules-contact-management-acorex-modules-contact-management-DVjMlS0K.mjs.map +1 -0
  12. package/fesm2022/{acorex-modules-contact-management-address-type.entity-QMEODkhx.mjs → acorex-modules-contact-management-address-type.entity-CWIBwWfZ.mjs} +65 -38
  13. package/fesm2022/acorex-modules-contact-management-address-type.entity-CWIBwWfZ.mjs.map +1 -0
  14. package/fesm2022/{acorex-modules-contact-management-contact-address.entity-0f4Vaw_k.mjs → acorex-modules-contact-management-contact-address.entity-DO6GizbS.mjs} +49 -95
  15. package/fesm2022/acorex-modules-contact-management-contact-address.entity-DO6GizbS.mjs.map +1 -0
  16. package/fesm2022/{acorex-modules-contact-management-contact-method.entity-ChEz1jW0.mjs → acorex-modules-contact-management-contact-method.entity-tEtMSV4f.mjs} +67 -69
  17. package/fesm2022/acorex-modules-contact-management-contact-method.entity-tEtMSV4f.mjs.map +1 -0
  18. package/fesm2022/{acorex-modules-contact-management-contact-relationship.entity-DLfiEEfk.mjs → acorex-modules-contact-management-contact-relationship.entity-C-B5aOoq.mjs} +34 -63
  19. package/fesm2022/acorex-modules-contact-management-contact-relationship.entity-C-B5aOoq.mjs.map +1 -0
  20. package/fesm2022/{acorex-modules-contact-management-contact-source.entity-hopVxiIT.mjs → acorex-modules-contact-management-contact-source.entity-Dw8jwcox.mjs} +67 -40
  21. package/fesm2022/acorex-modules-contact-management-contact-source.entity-Dw8jwcox.mjs.map +1 -0
  22. package/fesm2022/acorex-modules-contact-management-emergency-contact-category.entity-BJOOhcD1.mjs +680 -0
  23. package/fesm2022/acorex-modules-contact-management-emergency-contact-category.entity-BJOOhcD1.mjs.map +1 -0
  24. package/fesm2022/acorex-modules-contact-management-emergency-contact.entity-Cr7_5JKD.mjs +1062 -0
  25. package/fesm2022/acorex-modules-contact-management-emergency-contact.entity-Cr7_5JKD.mjs.map +1 -0
  26. package/fesm2022/acorex-modules-contact-management.mjs +1 -2331
  27. package/fesm2022/acorex-modules-contact-management.mjs.map +1 -1
  28. package/fesm2022/acorex-modules-content-management.mjs +23 -0
  29. package/fesm2022/acorex-modules-content-management.mjs.map +1 -1
  30. package/fesm2022/acorex-modules-form-template-management-acorex-modules-form-template-management-EsaVgkdd.mjs.map +1 -1
  31. package/fesm2022/{acorex-modules-platform-management-acorex-modules-platform-management-TWTBqgn6.mjs → acorex-modules-platform-management-acorex-modules-platform-management-BLhzWiXM.mjs} +29 -5
  32. package/fesm2022/acorex-modules-platform-management-acorex-modules-platform-management-BLhzWiXM.mjs.map +1 -0
  33. package/fesm2022/{acorex-modules-platform-management-list-version.component-DQ3Gp9kl.mjs → acorex-modules-platform-management-list-version.component-CgF5pvTa.mjs} +2 -2
  34. package/fesm2022/{acorex-modules-platform-management-list-version.component-DQ3Gp9kl.mjs.map → acorex-modules-platform-management-list-version.component-CgF5pvTa.mjs.map} +1 -1
  35. package/fesm2022/{acorex-modules-platform-management-settings.provider-FXMK1_44.mjs → acorex-modules-platform-management-settings.provider-intHn3XI.mjs} +2 -2
  36. package/fesm2022/{acorex-modules-platform-management-settings.provider-FXMK1_44.mjs.map → acorex-modules-platform-management-settings.provider-intHn3XI.mjs.map} +1 -1
  37. package/fesm2022/acorex-modules-platform-management.mjs +1 -1
  38. package/fesm2022/{acorex-modules-report-management-report-create-root.component-CcNJIUk2.mjs → acorex-modules-report-management-report-create-root.component-DqrLa6vh.mjs} +4 -4
  39. package/fesm2022/{acorex-modules-report-management-report-create-root.component-CcNJIUk2.mjs.map → acorex-modules-report-management-report-create-root.component-DqrLa6vh.mjs.map} +1 -1
  40. package/fesm2022/{acorex-modules-report-management-report-runner-root-page.component-CAxcD_pe.mjs → acorex-modules-report-management-report-runner-root-page.component-S8qyvs79.mjs} +41 -24
  41. package/fesm2022/acorex-modules-report-management-report-runner-root-page.component-S8qyvs79.mjs.map +1 -0
  42. package/fesm2022/acorex-modules-report-management.mjs +670 -8
  43. package/fesm2022/acorex-modules-report-management.mjs.map +1 -1
  44. package/fesm2022/acorex-modules-security-management.mjs +4 -2
  45. package/fesm2022/acorex-modules-security-management.mjs.map +1 -1
  46. package/package.json +9 -5
  47. package/report-management/index.d.ts +303 -5
  48. package/fesm2022/acorex-modules-common-search-popup.component-CNh7TFpe.mjs +0 -128
  49. package/fesm2022/acorex-modules-common-search-popup.component-CNh7TFpe.mjs.map +0 -1
  50. package/fesm2022/acorex-modules-contact-management-address-type.entity-QMEODkhx.mjs.map +0 -1
  51. package/fesm2022/acorex-modules-contact-management-contact-address.entity-0f4Vaw_k.mjs.map +0 -1
  52. package/fesm2022/acorex-modules-contact-management-contact-method.entity-ChEz1jW0.mjs.map +0 -1
  53. package/fesm2022/acorex-modules-contact-management-contact-relationship.entity-DLfiEEfk.mjs.map +0 -1
  54. package/fesm2022/acorex-modules-contact-management-contact-source.entity-hopVxiIT.mjs.map +0 -1
  55. package/fesm2022/acorex-modules-platform-management-acorex-modules-platform-management-TWTBqgn6.mjs.map +0 -1
  56. package/fesm2022/acorex-modules-report-management-report-runner-root-page.component-CAxcD_pe.mjs.map +0 -1
@@ -0,0 +1,271 @@
1
+ # Calendar Management Module
2
+
3
+ This module provides comprehensive calendar management functionality for the ACoreX Platform, enabling administrators to define, manage, and configure calendar systems with support for multiple calendar types, inheritance, special days, and scoping.
4
+
5
+ ## 🎯 **Core Features**
6
+
7
+ ### **Calendar System**
8
+
9
+ - **Multiple Calendar Types**: Support for Gregorian, Persian (Jalali), Hijri (Islamic), Chinese, Hebrew, and custom calendar systems
10
+ - **Calendar Inheritance**: Hierarchical calendar structure where child calendars inherit from parent calendars
11
+ - **No Inheritance Depth Limit**: Unlimited levels of calendar inheritance for complex organizational structures
12
+ - **Weekend Configuration**: Flexible weekend patterns (Friday-Saturday, Saturday-Sunday, etc.)
13
+ - **Working Hours Management**: Configurable working hours per calendar with daily granularity
14
+
15
+ ### **Date Exception Management**
16
+
17
+ - **Special Days**: Define holidays, workdays, half-days, events, maintenance days, and deadlines
18
+ - **Recurrence Rules**: Support for recurring events with complex patterns
19
+ - **Override System**: Child calendars can override parent calendar exceptions
20
+ - **Priority-based Resolution**: Conflict resolution using priority system
21
+ - **Time Granularity**: Full-day or time-specific exceptions
22
+
23
+ ### **Scoping System**
24
+
25
+ - **Multi-level Scoping**: Platform, tenant, division, and user-level calendars
26
+ - **Scope Permissions**: Granular permission system for calendar access
27
+ - **Inheritance Control**: Override capabilities at each scope level
28
+
29
+ ## 📚 **Architecture**
30
+
31
+ ### **Entity Structure**
32
+
33
+ ```
34
+ Calendar (Main Entity - Hierarchical)
35
+ ├── CalendarType (Lookup)
36
+ ├── DateException (Related)
37
+ │ └── RecurrenceRule (Related)
38
+ └── CalendarScope (Related)
39
+ ```
40
+
41
+ ### **Core Entities**
42
+
43
+ #### **1. Calendar (Main Entity)**
44
+
45
+ The primary entity representing calendar systems with inheritance support.
46
+
47
+ **Key Properties:**
48
+
49
+ - `name`: Unique calendar identifier
50
+ - `title`: Display name
51
+ - `calendarTypeId`: Calendar system type
52
+ - `parentId`: Parent calendar for inheritance
53
+ - `scopeType`: Application scope (platform/tenant/division/user)
54
+ - `weekendPattern`: Array of weekend days
55
+ - `workingHours`: JSON configuration of daily working hours
56
+ - `isTemplate`: Can be used as base for other calendars
57
+
58
+ #### **2. CalendarType (Lookup Entity)**
59
+
60
+ Defines different calendar system types.
61
+
62
+ **Key Properties:**
63
+
64
+ - `title`: Calendar type name
65
+ - `code`: System code (gregorian, persian, hijri, etc.)
66
+ - `isDefault`: Default calendar type flag
67
+
68
+ #### **3. DateException (Related Entity)**
69
+
70
+ Manages special days and exceptions in calendars.
71
+
72
+ **Key Properties:**
73
+
74
+ - `calendarId`: Parent calendar reference
75
+ - `date`: Exception date
76
+ - `exceptionType`: Type of exception (holiday, workday, etc.)
77
+ - `isRecurring`: Whether exception repeats
78
+ - `overridesParent`: Overrides parent calendar exception
79
+ - `priority`: Conflict resolution priority
80
+
81
+ #### **4. RecurrenceRule (Related Entity)**
82
+
83
+ Defines recurring patterns for date exceptions.
84
+
85
+ **Key Properties:**
86
+
87
+ - `frequency`: Recurrence frequency (daily, weekly, monthly, yearly)
88
+ - `interval`: Interval between occurrences
89
+ - `endDate`: End date for recurrence
90
+ - `byDay`: Day-based rules
91
+ - `byMonth`: Month-based rules
92
+
93
+ #### **5. CalendarScope (Related Entity)**
94
+
95
+ Manages calendar access and permissions by scope.
96
+
97
+ **Key Properties:**
98
+
99
+ - `calendarId`: Calendar reference
100
+ - `scopeType`: Scope level
101
+ - `scopeEntityId`: Entity ID within scope
102
+ - `permissions`: Access permissions
103
+
104
+ ## 🔧 **Configuration Examples**
105
+
106
+ ### **Basic Calendar Setup**
107
+
108
+ ```typescript
109
+ // Create a base Persian calendar
110
+ const iranNationalCalendar = {
111
+ name: 'iran-national',
112
+ title: 'Iran National Calendar',
113
+ calendarTypeId: 'persian-type-id',
114
+ scopeType: 'platform',
115
+ weekendPattern: ['friday'],
116
+ isTemplate: true,
117
+ isActive: true,
118
+ };
119
+
120
+ // Create company calendar inheriting from national
121
+ const companyCalendar = {
122
+ name: 'company-calendar',
123
+ title: 'Company Calendar',
124
+ calendarTypeId: 'persian-type-id',
125
+ parentId: iranNationalCalendar.id,
126
+ scopeType: 'tenant',
127
+ scopeEntityId: 'company-tenant-id',
128
+ weekendPattern: ['friday', 'saturday'], // Override weekend
129
+ };
130
+ ```
131
+
132
+ ### **Date Exception Configuration**
133
+
134
+ ```typescript
135
+ // Recurring holiday (Nowruz)
136
+ const nowruzException = {
137
+ calendarId: iranNationalCalendar.id,
138
+ date: new Date('2024-03-20'),
139
+ exceptionType: 'holiday',
140
+ title: 'Nowruz',
141
+ isRecurring: true,
142
+ recurrenceRuleId: 'yearly-march-20-rule',
143
+ isAllDay: true,
144
+ priority: 1,
145
+ };
146
+
147
+ // Company-specific working day override
148
+ const companyWorkday = {
149
+ calendarId: companyCalendar.id,
150
+ date: new Date('2024-03-21'), // Normally holiday
151
+ exceptionType: 'workday',
152
+ title: 'Special Working Day',
153
+ overridesParent: true,
154
+ isAllDay: false,
155
+ startTime: '09:00',
156
+ endTime: '13:00',
157
+ priority: 2,
158
+ };
159
+ ```
160
+
161
+ ## 🚀 **Usage**
162
+
163
+ ### **Module Installation**
164
+
165
+ ```typescript
166
+ import { AXMCalendarManagementModule } from '@acorex/modules/calendar-management';
167
+
168
+ @NgModule({
169
+ imports: [
170
+ AXMCalendarManagementModule,
171
+ // other modules
172
+ ],
173
+ })
174
+ export class AppModule {}
175
+ ```
176
+
177
+ ### **Service Usage**
178
+
179
+ ```typescript
180
+ import { AXMCalendarService } from '@acorex/modules/calendar-management';
181
+
182
+ @Injectable()
183
+ export class CalendarBusinessService {
184
+ constructor(private calendarService: AXMCalendarService) {}
185
+
186
+ async getEffectiveCalendar(calendarId: string): Promise<Calendar> {
187
+ // Gets calendar with resolved inheritance
188
+ return await this.calendarService.getOne(calendarId);
189
+ }
190
+
191
+ async isWorkingDay(calendarId: string, date: Date): Promise<boolean> {
192
+ // Business logic to determine if date is working day
193
+ // considering calendar hierarchy and exceptions
194
+ }
195
+ }
196
+ ```
197
+
198
+ ## 🌍 **Internationalization**
199
+
200
+ The module includes complete translations for:
201
+
202
+ - **English (en-US)**: Full UI translations
203
+ - **Persian (fa-IR)**: Native Persian translations
204
+
205
+ Translation files are located in:
206
+
207
+ - `apps/demo/src/assets/i18n/en-US/calendar-management.json`
208
+ - `apps/demo/src/assets/i18n/fa-IR/calendar-management.json`
209
+
210
+ ## 🔐 **Permissions**
211
+
212
+ Granular permission system includes:
213
+
214
+ - `calendar.view`: View calendars
215
+ - `calendar.create`: Create new calendars
216
+ - `calendar.update`: Modify existing calendars
217
+ - `calendar.delete`: Delete calendars
218
+ - `calendar-type.manage`: Manage calendar types
219
+ - `date-exception.*`: Date exception permissions
220
+ - `calendar.admin`: Full administrative access
221
+
222
+ ## 📋 **Admin UI Features**
223
+
224
+ ### **Calendar Management**
225
+
226
+ - List view with hierarchical display
227
+ - Create/Edit calendar with inheritance dropdown
228
+ - Preview effective calendar (merged view from parent)
229
+ - Scope-based filtering and access control
230
+
231
+ ### **Date Exception Management**
232
+
233
+ - Calendar-specific date exception management
234
+ - Recurring pattern configuration
235
+ - Visual calendar view with exceptions highlighted
236
+ - Override conflict resolution interface
237
+
238
+ ### **Calendar Resolution**
239
+
240
+ When fetching calendar data, the system resolves inheritance recursively:
241
+
242
+ ```
243
+ Base Calendar → Parent Calendar → Current Calendar → Final Merged View
244
+ ```
245
+
246
+ Child calendars override parent settings for specific dates, providing flexible calendar customization while maintaining consistency through inheritance.
247
+
248
+ ## 🤝 **Contributing**
249
+
250
+ When extending this module:
251
+
252
+ 1. **Follow ACoreX entity patterns** for consistency
253
+ 2. **Add comprehensive tests** for calendar resolution logic
254
+ 3. **Update translations** for new features
255
+ 4. **Consider backward compatibility** when modifying inheritance logic
256
+ 5. **Document complex business rules** in code comments
257
+
258
+ ## 📝 **Future Enhancements**
259
+
260
+ Planned features include:
261
+
262
+ - **Time Zone Support**: Multi-timezone calendar management
263
+ - **Calendar Templates**: Pre-built calendar templates for different regions
264
+ - **Import/Export**: ICS/CSV support for external calendar integration
265
+ - **Calendar Visualization**: Interactive calendar view components
266
+ - **Notification System**: Alerts for upcoming important dates
267
+ - **Calendar Analytics**: Usage and exception statistics
268
+
269
+ ---
270
+
271
+ > 💡 **Note**: This module is designed to be a comprehensive calendar management solution for enterprise applications requiring complex calendar hierarchies and multi-cultural calendar support.
@@ -0,0 +1,156 @@
1
+ import * as i0 from '@angular/core';
2
+ import { Injector } from '@angular/core';
3
+ import * as i1 from '@angular/common';
4
+ import { AXPEntityModel, AXMEntityCrudServiceImpl, AXPEntityDefinitionLoader, AXPEntityDefinitionPreloader, AXPEntityPreloadEntity } from '@acorex/platform/layout/entity';
5
+ import { AXPEntity, AXPMenuProvider, AXPMenuProviderContext, AXPSearchCommandProvider, AXPSearchResult } from '@acorex/platform/common';
6
+ import { AXPPermissionDefinitionProvider, AXPPermissionDefinitionProviderContext } from '@acorex/platform/auth';
7
+
8
+ declare class AXMCalendarManagementModule {
9
+ static ɵfac: i0.ɵɵFactoryDeclaration<AXMCalendarManagementModule, never>;
10
+ static ɵmod: i0.ɵɵNgModuleDeclaration<AXMCalendarManagementModule, never, [typeof i1.CommonModule], never>;
11
+ static ɵinj: i0.ɵɵInjectorDeclaration<AXMCalendarManagementModule>;
12
+ }
13
+
14
+ declare const RootConfig: {
15
+ config: {
16
+ i18n: string;
17
+ module: string;
18
+ };
19
+ module: {
20
+ name: string;
21
+ title: string;
22
+ icon: string;
23
+ };
24
+ entities: {
25
+ calendar: {
26
+ name: string;
27
+ title: string;
28
+ titlePlural: string;
29
+ icon: string;
30
+ };
31
+ calendarEvent: {
32
+ name: string;
33
+ title: string;
34
+ titlePlural: string;
35
+ icon: string;
36
+ };
37
+ calendarEventType: {
38
+ name: string;
39
+ title: string;
40
+ titlePlural: string;
41
+ icon: string;
42
+ };
43
+ };
44
+ };
45
+
46
+ interface AXMCalendarManagementCalendarEntityModel extends AXPEntityModel<string> {
47
+ name: string;
48
+ title: string;
49
+ description?: string;
50
+ calendarTypeId: any;
51
+ parentId?: string;
52
+ weekends: string[];
53
+ firstDayOfWeek: string;
54
+ isActive: boolean;
55
+ isTemplate: boolean;
56
+ order: number;
57
+ createdAt: Date;
58
+ updatedAt: Date;
59
+ calendarType?: any;
60
+ parent?: any;
61
+ dateExceptions?: any[];
62
+ scopes?: any[];
63
+ }
64
+
65
+ declare abstract class AXMCalendarService extends AXMEntityCrudServiceImpl<string, AXMCalendarManagementCalendarEntityModel> {
66
+ }
67
+ declare class AXMCalendarServiceImpl extends AXMCalendarService {
68
+ constructor();
69
+ static ɵfac: i0.ɵɵFactoryDeclaration<AXMCalendarServiceImpl, never>;
70
+ static ɵprov: i0.ɵɵInjectableDeclaration<AXMCalendarServiceImpl>;
71
+ }
72
+
73
+ interface AXMCalendarManagementCalendarEventEntityModel extends AXPEntityModel<string> {
74
+ calendarId: string;
75
+ title: string;
76
+ description?: string;
77
+ typeId: string;
78
+ date: Date;
79
+ isRecurring: boolean;
80
+ recurrenceRule?: string;
81
+ isActive: boolean;
82
+ order: number;
83
+ calendar?: {
84
+ id: string;
85
+ title: string;
86
+ };
87
+ type?: {
88
+ id: string;
89
+ title: string;
90
+ color: string;
91
+ icon?: string;
92
+ };
93
+ }
94
+
95
+ declare abstract class AXMCalendarEventService extends AXMEntityCrudServiceImpl<string, AXMCalendarManagementCalendarEventEntityModel> {
96
+ }
97
+ declare class AXMCalendarEventServiceImpl extends AXMCalendarEventService {
98
+ constructor();
99
+ static ɵfac: i0.ɵɵFactoryDeclaration<AXMCalendarEventServiceImpl, never>;
100
+ static ɵprov: i0.ɵɵInjectableDeclaration<AXMCalendarEventServiceImpl>;
101
+ }
102
+
103
+ interface AXMCalendarManagementCalendarEventTypeEntityModel extends AXPEntityModel<string> {
104
+ title: string;
105
+ description?: string;
106
+ color: string;
107
+ icon?: string;
108
+ isActive: boolean;
109
+ isDefault: boolean;
110
+ order: number;
111
+ createdAt: Date;
112
+ updatedAt: Date;
113
+ }
114
+
115
+ declare abstract class AXMCalendarEventTypeService extends AXMEntityCrudServiceImpl<string, AXMCalendarManagementCalendarEventTypeEntityModel> {
116
+ }
117
+ declare class AXMCalendarEventTypeServiceImpl extends AXMCalendarEventTypeService {
118
+ constructor();
119
+ static ɵfac: i0.ɵɵFactoryDeclaration<AXMCalendarEventTypeServiceImpl, never>;
120
+ static ɵprov: i0.ɵɵInjectableDeclaration<AXMCalendarEventTypeServiceImpl>;
121
+ }
122
+
123
+ declare function calendarFactory(injector: Injector): Promise<AXPEntity | null>;
124
+
125
+ declare function calendarEventFactory(injector: Injector): Promise<AXPEntity | null>;
126
+
127
+ declare function calendarEventTypeFactory(injector: Injector): Promise<AXPEntity | null>;
128
+
129
+ declare class AXMCalendarManagementEntityProvider implements AXPEntityDefinitionLoader, AXPEntityDefinitionPreloader {
130
+ private injector;
131
+ preload(): AXPEntityPreloadEntity[];
132
+ get(moduleName: string, entityName: string): Promise<AXPEntity | null>;
133
+ static ɵfac: i0.ɵɵFactoryDeclaration<AXMCalendarManagementEntityProvider, never>;
134
+ static ɵprov: i0.ɵɵInjectableDeclaration<AXMCalendarManagementEntityProvider>;
135
+ }
136
+
137
+ declare class AXMCalendarManagementMenuProvider implements AXPMenuProvider {
138
+ private entityService;
139
+ provide(context: AXPMenuProviderContext): Promise<void>;
140
+ }
141
+
142
+ declare class AXMCalendarManagementPermissionDefinitionProvider implements AXPPermissionDefinitionProvider {
143
+ private injector;
144
+ private readonly translateService;
145
+ constructor(injector: Injector);
146
+ define(context: AXPPermissionDefinitionProviderContext): Promise<void>;
147
+ static ɵfac: i0.ɵɵFactoryDeclaration<AXMCalendarManagementPermissionDefinitionProvider, never>;
148
+ static ɵprov: i0.ɵɵInjectableDeclaration<AXMCalendarManagementPermissionDefinitionProvider>;
149
+ }
150
+
151
+ declare class AXMCalendarManagementSearchCommandProvider extends AXPSearchCommandProvider {
152
+ commands: AXPSearchResult[];
153
+ }
154
+
155
+ export { AXMCalendarEventService, AXMCalendarEventServiceImpl, AXMCalendarEventTypeService, AXMCalendarEventTypeServiceImpl, AXMCalendarManagementEntityProvider, AXMCalendarManagementMenuProvider, AXMCalendarManagementModule, AXMCalendarManagementPermissionDefinitionProvider, AXMCalendarManagementSearchCommandProvider, AXMCalendarService, AXMCalendarServiceImpl, RootConfig, calendarEventFactory, calendarEventTypeFactory, calendarFactory };
156
+ export type { AXMCalendarManagementCalendarEntityModel, AXMCalendarManagementCalendarEventEntityModel, AXMCalendarManagementCalendarEventTypeEntityModel };
@@ -412,6 +412,156 @@ Maps relationships between contacts (family, business, professional).
412
412
  ]
413
413
  ```
414
414
 
415
+ ### 9. EmergencyContactCategory (Hierarchical Lookup Entity)
416
+
417
+ Represents categories for classifying emergency contacts (e.g., Police, Fire, Medical). Supports hierarchical (parent-child) relationships and visual customization.
418
+
419
+ **Key Properties:**
420
+
421
+ | Name | Type | Description |
422
+ | :---------: | :-----: | :--------------------------------- |
423
+ | title | string | Category title |
424
+ | description | string | Description of the category |
425
+ | parentId | string | Parent category ID (for hierarchy) |
426
+ | childCount | number | Number of child categories |
427
+ | icon | string | FontAwesome icon |
428
+ | color | string | Category color (HEX) |
429
+ | priority | number | Display priority |
430
+ | isActive | boolean | Active status |
431
+ | order | number | Display order |
432
+
433
+ **Sample Data:**
434
+
435
+ ```json
436
+ [
437
+ {
438
+ "id": "ecat1",
439
+ "title": "Police",
440
+ "description": "Law enforcement emergency services",
441
+ "icon": "fa-light fa-shield-halved",
442
+ "color": "#1976d2",
443
+ "priority": 1,
444
+ "isActive": true,
445
+ "order": 1
446
+ },
447
+ {
448
+ "id": "ecat2",
449
+ "title": "Fire Department",
450
+ "description": "Fire and rescue services",
451
+ "icon": "fa-light fa-fire-extinguisher",
452
+ "color": "#d32f2f",
453
+ "priority": 2,
454
+ "isActive": true,
455
+ "order": 2
456
+ }
457
+ ]
458
+ ```
459
+
460
+ ### 10. EmergencyContact (Public Emergency Number Entity)
461
+
462
+ Stores public emergency contact numbers (e.g., 911, 112, local hotlines) with rich metadata, categorization, and geographic/availability details.
463
+
464
+ **Key Properties:**
465
+
466
+ | Name | Type | Description |
467
+ | :------------------: | :------: | :---------------------------------------- |
468
+ | name | string | Emergency service name |
469
+ | shortName | string | Short label (e.g., 911, 112) |
470
+ | description | string | Description of the service |
471
+ | categoryIds | string[] | Linked EmergencyContactCategory IDs |
472
+ | phoneNumber | string | Main emergency phone number |
473
+ | alternateNumbers | string[] | Alternate numbers |
474
+ | textNumber | string | SMS/text number |
475
+ | website | string | Service website |
476
+ | email | string | Contact email |
477
+ | country | string | Country of service |
478
+ | region | string | Region/State |
479
+ | city | string | City |
480
+ | isNational | boolean | National coverage flag |
481
+ | isRegional | boolean | Regional coverage flag |
482
+ | isLocal | boolean | Local coverage flag |
483
+ | availability | string | Availability (24/7, business hours, etc.) |
484
+ | languages | string[] | Supported languages |
485
+ | isTextCapable | boolean | Supports SMS/text |
486
+ | isVideoCallCapable | boolean | Supports video calls |
487
+ | whenToCall | string | When to call |
488
+ | whenNotToCall | string | When NOT to call |
489
+ | instructions | string | Special instructions |
490
+ | priority | number | Display priority |
491
+ | isActive | boolean | Active status |
492
+ | isVerified | boolean | Verification status |
493
+ | lastVerified | date | Last verification date |
494
+ | showOnDashboard | boolean | Show on dashboard |
495
+ | requiresConfirmation | boolean | Requires confirmation before calling |
496
+ | isQuickDial | boolean | Mark as quick dial |
497
+ | additionalInfo | string | Additional information |
498
+
499
+ **Sample Data:**
500
+
501
+ ```json
502
+ [
503
+ {
504
+ "id": "ec1",
505
+ "name": "Police Emergency",
506
+ "shortName": "911",
507
+ "description": "General police emergency number.",
508
+ "categoryIds": ["ecat1"],
509
+ "phoneNumber": "911",
510
+ "country": "United States",
511
+ "isNational": true,
512
+ "availability": "24/7",
513
+ "languages": ["en"],
514
+ "isTextCapable": true,
515
+ "isVideoCallCapable": false,
516
+ "isActive": true,
517
+ "isVerified": true,
518
+ "priority": 1
519
+ },
520
+ {
521
+ "id": "ec2",
522
+ "name": "Fire Department",
523
+ "shortName": "101",
524
+ "description": "Fire and rescue emergency number.",
525
+ "categoryIds": ["ecat2"],
526
+ "phoneNumber": "101",
527
+ "country": "United States",
528
+ "isNational": true,
529
+ "availability": "24/7",
530
+ "languages": ["en"],
531
+ "isTextCapable": false,
532
+ "isVideoCallCapable": false,
533
+ "isActive": true,
534
+ "isVerified": true,
535
+ "priority": 2
536
+ }
537
+ ]
538
+ ```
539
+
540
+ ### Relationship: Category & Emergency Contact
541
+
542
+ - Each **EmergencyContact** can belong to one or more **EmergencyContactCategory** (many-to-many).
543
+ - Categories are hierarchical, supporting parent-child relationships for flexible grouping (e.g., "Medical" > "Poison Control").
544
+
545
+ **Example:**
546
+
547
+ ```json
548
+ {
549
+ "category": {
550
+ "id": "ecat1",
551
+ "title": "Police"
552
+ },
553
+ "contacts": [
554
+ {
555
+ "id": "ec1",
556
+ "name": "Police Emergency",
557
+ "categoryIds": ["ecat1"]
558
+ }
559
+ ]
560
+ }
561
+ ```
562
+
563
+ > 💡 **Tip:** Use these entities to manage public emergency numbers for any country, region, or city, with full support for categorization, localization, and advanced filtering.
564
+
415
565
  ## Integration Examples
416
566
 
417
567
  ### Complete Contact Profile
@@ -16,7 +16,6 @@ declare const RootConfig: {
16
16
  i18n: string;
17
17
  };
18
18
  module: {
19
- module: string;
20
19
  name: string;
21
20
  title: string;
22
21
  icon: string;
@@ -70,6 +69,18 @@ declare const RootConfig: {
70
69
  titlePlural: string;
71
70
  icon: string;
72
71
  };
72
+ emergencyContactCategory: {
73
+ name: string;
74
+ title: string;
75
+ titlePlural: string;
76
+ icon: string;
77
+ };
78
+ emergencyContact: {
79
+ name: string;
80
+ title: string;
81
+ titlePlural: string;
82
+ icon: string;
83
+ };
73
84
  };
74
85
  };
75
86
 
@@ -130,7 +141,7 @@ declare class AXMContactServiceImpl extends AXMContactService {
130
141
  declare function contactTypeFactory(injector: Injector): Promise<AXPEntity | null>;
131
142
 
132
143
  interface AXMContactManagementContactTypeEntityModel extends AXPEntityModel<string> {
133
- name: string;
144
+ title: string;
134
145
  description?: string;
135
146
  icon?: string;
136
147
  isDefault: boolean;
@@ -147,7 +158,7 @@ declare class AXMContactTypeServiceImpl extends AXMContactTypeService {
147
158
  }
148
159
 
149
160
  interface AXMContactManagementContactSourceEntityModel extends AXPEntityModel<string> {
150
- name: string;
161
+ title: string;
151
162
  description?: string;
152
163
  icon?: string;
153
164
  isDefault: boolean;
@@ -166,7 +177,7 @@ declare class AXMContactSourceServiceImpl extends AXMContactSourceService {
166
177
  declare function contactMethodTypeFactory(injector: Injector): Promise<AXPEntity | null>;
167
178
 
168
179
  interface AXMContactManagementContactMethodTypeEntityModel extends AXPEntityModel<string> {
169
- name: string;
180
+ title: string;
170
181
  description?: string;
171
182
  icon?: string;
172
183
  validationRegex?: string;