@acorex-platform/module-reservation-management-client 0.0.21

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,150 @@
1
+ const AXMReservationManagementMenuKeys = {
2
+ ReservationTypes: 'reservation-management:Menu:ReservationTypes',
3
+ ReservationStatuses: 'reservation-management:Menu:ReservationStatuses',
4
+ ReservationClasses: 'reservation-management:Menu:ReservationClasses',
5
+ Reservations: 'reservation-management:Menu:Reservations',
6
+ ReservationBoard: 'reservation-management:Menu:ReservationBoard',
7
+ };
8
+
9
+ /**
10
+ * Collaboration capabilities used by this module.
11
+ * Domain capability keys for this module. Root groups live in `AXPCommonPermissionGroupKeys` (common contracts).
12
+ */
13
+ const AXPCollaborationPermissionKeys = {
14
+ Access: 'Collaboration:Permission:Access',
15
+ MaintainConversations: 'Collaboration:Permission:MaintainConversations',
16
+ MaintainMeetings: 'Collaboration:Permission:MaintainMeetings',
17
+ MaintainCalendars: 'Collaboration:Permission:MaintainCalendars',
18
+ MaintainCommunications: 'Collaboration:Permission:MaintainCommunications',
19
+ MaintainReservations: 'Collaboration:Permission:MaintainReservations',
20
+ MaintainHelpDesk: 'Collaboration:Permission:MaintainHelpDesk',
21
+ Setup: 'Collaboration:Permission:Setup',
22
+ };
23
+ const maintainReservations = AXPCollaborationPermissionKeys.MaintainReservations;
24
+ const setup = AXPCollaborationPermissionKeys.Setup;
25
+ /**
26
+ * @deprecated Prefer {@link AXPCollaborationPermissionKeys}.
27
+ * Legacy nested shape kept so existing imports compile during migration.
28
+ */
29
+ const AXMPermissionsKeys = {
30
+ ReservationManagement: {
31
+ Management: maintainReservations,
32
+ ReservationType: {
33
+ Management: setup,
34
+ },
35
+ ReservationStatus: {
36
+ Management: setup,
37
+ },
38
+ ReservationClass: {
39
+ Management: setup,
40
+ },
41
+ Reservation: {
42
+ Management: maintainReservations,
43
+ },
44
+ },
45
+ };
46
+
47
+ //#region ---- Root Configuration ----
48
+ const config = {
49
+ i18n: 'reservation-management',
50
+ module: 'ReservationManagement',
51
+ route: 'reservation-management',
52
+ };
53
+ const RootConfig = {
54
+ config,
55
+ module: {
56
+ route: config.route,
57
+ name: config.module,
58
+ title: '@reservation-management:module.title',
59
+ icon: 'fa-light fa-calendar-check',
60
+ },
61
+ entities: {
62
+ reservationType: {
63
+ name: 'ReservationType',
64
+ source: `${config.module}.ReservationType`,
65
+ title: '@reservation-management:reservation-types.entities.reservation-type.title',
66
+ titlePlural: '@reservation-management:reservation-types.entities.reservation-type.plural',
67
+ icon: 'fa-light fa-list',
68
+ },
69
+ reservationStatus: {
70
+ name: 'ReservationStatus',
71
+ source: `${config.module}.ReservationStatus`,
72
+ title: '@reservation-management:reservation-statuses.entities.reservation-status.title',
73
+ titlePlural: '@reservation-management:reservation-statuses.entities.reservation-status.plural',
74
+ icon: 'fa-light fa-flag',
75
+ },
76
+ reservationClass: {
77
+ name: 'ReservationClass',
78
+ source: `${config.module}.ReservationClass`,
79
+ title: '@reservation-management:reservation-classes.entities.reservation-class.title',
80
+ titlePlural: '@reservation-management:reservation-classes.entities.reservation-class.plural',
81
+ icon: 'fa-light fa-tag',
82
+ },
83
+ reservation: {
84
+ name: 'Reservation',
85
+ source: `${config.module}.Reservation`,
86
+ title: '@reservation-management:reservations.entities.reservation.title',
87
+ titlePlural: '@reservation-management:reservations.entities.reservation.plural',
88
+ icon: 'fa-light fa-calendar-check',
89
+ },
90
+ reservationEvent: {
91
+ name: 'ReservationEvent',
92
+ source: `${config.module}.ReservationEvent`,
93
+ title: '@reservation-management:reservation-events.entities.reservation-event.title',
94
+ titlePlural: '@reservation-management:reservation-events.entities.reservation-event.plural',
95
+ icon: 'fa-light fa-calendar-alt',
96
+ },
97
+ reservationHold: {
98
+ name: 'ReservationHold',
99
+ source: `${config.module}.ReservationHold`,
100
+ title: '@reservation-management:reservation-holds.entities.reservation-hold.title',
101
+ titlePlural: '@reservation-management:reservation-holds.entities.reservation-hold.plural',
102
+ icon: 'fa-light fa-pause-circle',
103
+ },
104
+ reservationStatusTransition: {
105
+ name: 'ReservationStatusTransition',
106
+ source: `${config.module}.ReservationStatusTransition`,
107
+ title: '@reservation-management:reservation-status-transitions.entities.reservation-status-transition.title',
108
+ titlePlural: '@reservation-management:reservation-status-transitions.entities.reservation-status-transition.plural',
109
+ icon: 'fa-light fa-right-left',
110
+ },
111
+ reservationResourceType: {
112
+ name: 'ReservationResourceType',
113
+ source: `${config.module}.ReservationResourceType`,
114
+ title: '@reservation-management:reservation-resource-types.entities.reservation-resource-type.title',
115
+ titlePlural: '@reservation-management:reservation-resource-types.entities.reservation-resource-type.plural',
116
+ icon: 'fa-light fa-cube',
117
+ },
118
+ reservationClassStatus: {
119
+ name: 'ReservationClassStatus',
120
+ source: `${config.module}.ReservationClassStatus`,
121
+ title: '@reservation-management:reservation-class-statuses.entities.reservation-class-status.title',
122
+ titlePlural: '@reservation-management:reservation-class-statuses.entities.reservation-class-status.plural',
123
+ icon: 'fa-light fa-circle-nodes',
124
+ },
125
+ reservationClassType: {
126
+ name: 'ReservationClassType',
127
+ source: `${config.module}.ReservationClassType`,
128
+ title: '@reservation-management:reservation-class-types.entities.reservation-class-type.title',
129
+ titlePlural: '@reservation-management:reservation-class-types.entities.reservation-class-type.plural',
130
+ icon: 'fa-light fa-layer-group',
131
+ },
132
+ },
133
+ pages: {
134
+ reservationBoard: {
135
+ path: 'reservation-board',
136
+ title: '@reservation-management:reservation-board.page-title',
137
+ icon: 'fa-light fa-calendar-lines',
138
+ },
139
+ },
140
+ };
141
+ //#endregion
142
+
143
+ //#region ---- Contracts barrel ----
144
+
145
+ /**
146
+ * Generated bundle index. Do not edit.
147
+ */
148
+
149
+ export { AXMPermissionsKeys, AXMReservationManagementMenuKeys, AXPCollaborationPermissionKeys, RootConfig };
150
+ //# sourceMappingURL=acorex-platform-module-reservation-management-client-contracts.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"acorex-platform-module-reservation-management-client-contracts.mjs","sources":["../../../../libs/modules/reservation-management/contracts/src/menu.keys.ts","../../../../libs/modules/reservation-management/contracts/src/permission.keys.ts","../../../../libs/modules/reservation-management/contracts/src/root-config.ts","../../../../libs/modules/reservation-management/contracts/src/index.ts","../../../../libs/modules/reservation-management/contracts/src/acorex-platform-module-reservation-management-client-contracts.ts"],"sourcesContent":["export const AXMReservationManagementMenuKeys = {\n ReservationTypes: 'reservation-management:Menu:ReservationTypes',\n ReservationStatuses: 'reservation-management:Menu:ReservationStatuses',\n ReservationClasses: 'reservation-management:Menu:ReservationClasses',\n Reservations: 'reservation-management:Menu:Reservations',\n ReservationBoard: 'reservation-management:Menu:ReservationBoard',\n} as const;\n","/**\n * Collaboration capabilities used by this module.\n * Domain capability keys for this module. Root groups live in `AXPCommonPermissionGroupKeys` (common contracts).\n */\nexport const AXPCollaborationPermissionKeys = {\n Access: 'Collaboration:Permission:Access',\n MaintainConversations: 'Collaboration:Permission:MaintainConversations',\n MaintainMeetings: 'Collaboration:Permission:MaintainMeetings',\n MaintainCalendars: 'Collaboration:Permission:MaintainCalendars',\n MaintainCommunications: 'Collaboration:Permission:MaintainCommunications',\n MaintainReservations: 'Collaboration:Permission:MaintainReservations',\n MaintainHelpDesk: 'Collaboration:Permission:MaintainHelpDesk',\n Setup: 'Collaboration:Permission:Setup',\n} as const;\n\nconst maintainReservations = AXPCollaborationPermissionKeys.MaintainReservations;\nconst setup = AXPCollaborationPermissionKeys.Setup;\n\n/**\n * @deprecated Prefer {@link AXPCollaborationPermissionKeys}.\n * Legacy nested shape kept so existing imports compile during migration.\n */\nexport const AXMPermissionsKeys = {\n ReservationManagement: {\n Management: maintainReservations,\n ReservationType: {\n Management: setup,\n },\n ReservationStatus: {\n Management: setup,\n },\n ReservationClass: {\n Management: setup,\n },\n Reservation: {\n Management: maintainReservations,\n },\n },\n} as const;\n","//#region ---- Root Configuration ----\n\nconst config = {\n i18n: 'reservation-management',\n module: 'ReservationManagement',\n route: 'reservation-management',\n};\n\nexport const RootConfig = {\n config,\n module: {\n route: config.route,\n name: config.module,\n title: '@reservation-management:module.title',\n icon: 'fa-light fa-calendar-check',\n },\n entities: {\n reservationType: {\n name: 'ReservationType',\n source: `${config.module}.ReservationType`,\n title: '@reservation-management:reservation-types.entities.reservation-type.title',\n titlePlural: '@reservation-management:reservation-types.entities.reservation-type.plural',\n icon: 'fa-light fa-list',\n },\n reservationStatus: {\n name: 'ReservationStatus',\n source: `${config.module}.ReservationStatus`,\n title: '@reservation-management:reservation-statuses.entities.reservation-status.title',\n titlePlural: '@reservation-management:reservation-statuses.entities.reservation-status.plural',\n icon: 'fa-light fa-flag',\n },\n reservationClass: {\n name: 'ReservationClass',\n source: `${config.module}.ReservationClass`,\n title: '@reservation-management:reservation-classes.entities.reservation-class.title',\n titlePlural: '@reservation-management:reservation-classes.entities.reservation-class.plural',\n icon: 'fa-light fa-tag',\n },\n reservation: {\n name: 'Reservation',\n source: `${config.module}.Reservation`,\n title: '@reservation-management:reservations.entities.reservation.title',\n titlePlural: '@reservation-management:reservations.entities.reservation.plural',\n icon: 'fa-light fa-calendar-check',\n },\n reservationEvent: {\n name: 'ReservationEvent',\n source: `${config.module}.ReservationEvent`,\n title: '@reservation-management:reservation-events.entities.reservation-event.title',\n titlePlural: '@reservation-management:reservation-events.entities.reservation-event.plural',\n icon: 'fa-light fa-calendar-alt',\n },\n reservationHold: {\n name: 'ReservationHold',\n source: `${config.module}.ReservationHold`,\n title: '@reservation-management:reservation-holds.entities.reservation-hold.title',\n titlePlural: '@reservation-management:reservation-holds.entities.reservation-hold.plural',\n icon: 'fa-light fa-pause-circle',\n },\n reservationStatusTransition: {\n name: 'ReservationStatusTransition',\n source: `${config.module}.ReservationStatusTransition`,\n title: '@reservation-management:reservation-status-transitions.entities.reservation-status-transition.title',\n titlePlural: '@reservation-management:reservation-status-transitions.entities.reservation-status-transition.plural',\n icon: 'fa-light fa-right-left',\n },\n reservationResourceType: {\n name: 'ReservationResourceType',\n source: `${config.module}.ReservationResourceType`,\n title: '@reservation-management:reservation-resource-types.entities.reservation-resource-type.title',\n titlePlural: '@reservation-management:reservation-resource-types.entities.reservation-resource-type.plural',\n icon: 'fa-light fa-cube',\n },\n reservationClassStatus: {\n name: 'ReservationClassStatus',\n source: `${config.module}.ReservationClassStatus`,\n title: '@reservation-management:reservation-class-statuses.entities.reservation-class-status.title',\n titlePlural: '@reservation-management:reservation-class-statuses.entities.reservation-class-status.plural',\n icon: 'fa-light fa-circle-nodes',\n },\n reservationClassType: {\n name: 'ReservationClassType',\n source: `${config.module}.ReservationClassType`,\n title: '@reservation-management:reservation-class-types.entities.reservation-class-type.title',\n titlePlural: '@reservation-management:reservation-class-types.entities.reservation-class-type.plural',\n icon: 'fa-light fa-layer-group',\n },\n },\n pages: {\n reservationBoard: {\n path: 'reservation-board',\n title: '@reservation-management:reservation-board.page-title',\n icon: 'fa-light fa-calendar-lines',\n },\n },\n};\n\n//#endregion\n","//#region ---- Contracts barrel ----\n\nexport * from './menu.keys';\nexport * from './permission.keys';\n\nexport * from './root-config';\n\n//#endregion\n\nexport * from './entities';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -0,0 +1,364 @@
1
+ import { AXPCommonMenuKeys, AXPCommonPermissionGroupKeys } from '@acorex-platform/module-common-client/contracts';
2
+ import { AXPSessionService, AXP_PERMISSION_DEFINITION_PROVIDER } from '@acorex-platform/framework-client/auth';
3
+ import { AXPEntityService, AXP_ENTITY_CONFIG_TOKEN } from '@acorex-platform/framework-client/layout/entity';
4
+ import * as i0 from '@angular/core';
5
+ import { inject, Injectable, NgModule, ViewEncapsulation, ChangeDetectionStrategy, Component } from '@angular/core';
6
+ import { RootConfig, AXPCollaborationPermissionKeys, AXMReservationManagementMenuKeys } from '@acorex-platform/module-reservation-management-client/contracts';
7
+ import { AXP_PROTECTED_ROUTE_GUARDS, AXP_MENU_PROVIDER, AXP_SEARCH_PROVIDER, AXPSearchCommandProvider, createEntityCommandOptions } from '@acorex-platform/framework-client/common';
8
+ import { AXP_MODULE_MANIFEST_PROVIDER, provideLazyProvider } from '@acorex-platform/framework-client/core';
9
+ import { ROUTES } from '@angular/router';
10
+ import { AXPResourceAppointmentComponent } from '@acorex-platform/framework-client/layout/components';
11
+ export { AXPResourceAppointmentComponent, AXPResourceAppointmentService } from '@acorex-platform/framework-client/layout/components';
12
+
13
+ //#region ---- Imports ----
14
+ //#endregion
15
+ //#region ---- Menu Provider ----
16
+ class AXMReservationManagementMenuProvider {
17
+ constructor() {
18
+ this.entityService = inject(AXPEntityService);
19
+ this.sessionService = inject(AXPSessionService);
20
+ }
21
+ async provide(context) {
22
+ const module = RootConfig.module;
23
+ const keys = AXPCollaborationPermissionKeys;
24
+ // Reservation group under Configuration/Scheduling and Events (with divider before)
25
+ context.find(AXPCommonMenuKeys.SchedulingAndEvents).addItems([
26
+ { name: `${AXMReservationManagementMenuKeys.ReservationTypes}:divider`, text: '', type: 'break', priority: 5 },
27
+ {
28
+ name: AXMReservationManagementMenuKeys.ReservationTypes,
29
+ text: '@reservation-management:reservation-types.menus.reservation-types.title',
30
+ path: this.entityService.createPath(module.name, RootConfig.entities.reservationType.name),
31
+ icon: 'fa-light fa-list',
32
+ priority: 10,
33
+ policy: {
34
+ features: [module.name],
35
+ permissions: [keys.Setup],
36
+ },
37
+ },
38
+ {
39
+ name: AXMReservationManagementMenuKeys.ReservationStatuses,
40
+ text: '@reservation-management:reservation-statuses.menus.reservation-statuses.title',
41
+ path: this.entityService.createPath(module.name, RootConfig.entities.reservationStatus.name),
42
+ icon: 'fa-light fa-flag',
43
+ priority: 11,
44
+ policy: {
45
+ features: [module.name],
46
+ permissions: [keys.Setup],
47
+ },
48
+ },
49
+ {
50
+ name: AXMReservationManagementMenuKeys.ReservationClasses,
51
+ text: '@reservation-management:reservation-classes.menus.reservation-classes.title',
52
+ path: this.entityService.createPath(module.name, RootConfig.entities.reservationClass.name),
53
+ icon: 'fa-light fa-tag',
54
+ priority: 12,
55
+ policy: {
56
+ features: [module.name],
57
+ permissions: [keys.Setup],
58
+ },
59
+ },
60
+ ]);
61
+ // Root under MODULES: Reservations (operational)
62
+ // context.addItems([
63
+ // {
64
+ // name: AXMReservationManagementMenuKeys.Reservations,
65
+ // priority: 9051,
66
+ // text: '@general:menus.reservations.title',
67
+ // icon: RootConfig.entities.reservation.icon,
68
+ // path: this.entityService.createPath(module.name, RootConfig.entities.reservation.name),
69
+ // policy: {
70
+ // features: [module.name],
71
+ // permissions: [keys.Reservation.Management],
72
+ // },
73
+ // children: [
74
+ // {
75
+ // name: AXMReservationManagementMenuKeys.ReservationTypes,
76
+ // text: '@reservation-management:reservation-types.menus.reservation-types.title',
77
+ // path: this.entityService.createPath(module.name, RootConfig.entities.reservationType.name),
78
+ // icon: 'fa-light fa-list',
79
+ // priority: 1,
80
+ // },
81
+ // {
82
+ // name: AXMReservationManagementMenuKeys.ReservationClasses,
83
+ // text: '@reservation-management:reservation-classes.menus.reservation-classes.title',
84
+ // path: this.entityService.createPath(module.name, RootConfig.entities.reservationClass.name),
85
+ // icon: 'fa-light fa-tag',
86
+ // priority: 2,
87
+ // },
88
+ // {
89
+ // name: AXMReservationManagementMenuKeys.ReservationTypes,
90
+ // text: '@reservation-management:reservation-resource-types.menus.reservation-resource-types.title',
91
+ // path: this.entityService.createPath(module.name, RootConfig.entities.reservationResourceType.name),
92
+ // icon: 'fa-light fa-cubes',
93
+ // priority: 3,
94
+ // },
95
+ // {
96
+ // name: AXMReservationManagementMenuKeys.ReservationStatuses,
97
+ // text: '@reservation-management:reservation-statuses.menus.reservation-statuses.title',
98
+ // path: this.entityService.createPath(module.name, RootConfig.entities.reservationStatus.name),
99
+ // icon: 'fa-light fa-flag',
100
+ // priority: 4,
101
+ // },
102
+ // {
103
+ // name: AXMReservationManagementMenuKeys.Reservations,
104
+ // text: '@reservation-management:reservations.menus.reservations.title',
105
+ // path: this.entityService.createPath(module.name, RootConfig.entities.reservation.name),
106
+ // icon: 'fa-light fa-calendar-check',
107
+ // priority: 5,
108
+ // },
109
+ // // {
110
+ // // name: AXMReservationManagementMenuKeys.ReservationBoard,
111
+ // // text: RootConfig.pages.reservationBoard.title,
112
+ // // path: `${this.sessionService.application?.name}/${RootConfig.pages.reservationBoard.path}`,
113
+ // // icon: RootConfig.pages.reservationBoard.icon,
114
+ // // priority: 6,
115
+ // // policy: {
116
+ // // features: [module.name],
117
+ // // permissions: [keys.Reservation.Management],
118
+ // // },
119
+ // // },
120
+ // ],
121
+ // },
122
+ // ]);
123
+ }
124
+ }
125
+ //#endregion
126
+
127
+ var menu_provider = /*#__PURE__*/Object.freeze({
128
+ __proto__: null,
129
+ AXMReservationManagementMenuProvider: AXMReservationManagementMenuProvider
130
+ });
131
+
132
+ //#endregion
133
+ //#region ----- Permission Definition Provider -----
134
+ /**
135
+ * Registers reservation capabilities into the shared Collaboration group.
136
+ */
137
+ class AXMReservationManagementPermissionDefinitionProvider {
138
+ async define(context) {
139
+ const keys = AXPCollaborationPermissionKeys;
140
+ const groups = AXPCommonPermissionGroupKeys;
141
+ const P = '@common:collaboration.permissions';
142
+ const G = '@common:permission-groups';
143
+ context.addGroup(groups.Collaboration.Root, `${G}.collaboration.title`, `${G}.collaboration.description`, { order: 80 });
144
+ context
145
+ .addGroup(groups.Collaboration.Scheduling, `${G}.collaboration-scheduling.title`, `${G}.collaboration-scheduling.description`, { parent: groups.Collaboration.Root, order: 20 })
146
+ .addPermission(keys.MaintainReservations, `${P}.maintain-reservations.title`, `${P}.maintain-reservations.description`)
147
+ .endPermission()
148
+ .endGroup();
149
+ }
150
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXMReservationManagementPermissionDefinitionProvider, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
151
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXMReservationManagementPermissionDefinitionProvider }); }
152
+ }
153
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXMReservationManagementPermissionDefinitionProvider, decorators: [{
154
+ type: Injectable
155
+ }] });
156
+
157
+ var permissionDefinition_provider = /*#__PURE__*/Object.freeze({
158
+ __proto__: null,
159
+ AXMReservationManagementPermissionDefinitionProvider: AXMReservationManagementPermissionDefinitionProvider
160
+ });
161
+
162
+ //#region ---- Imports ----
163
+ //#endregion
164
+ //#region ---- Manifest Definition ----
165
+ /**
166
+ * Reservation Management Module Manifest.
167
+ * Defines module metadata, features, and provider references.
168
+ */
169
+ const ReservationManagementManifest = {
170
+ name: RootConfig.module.name,
171
+ version: '1.0.0',
172
+ title: RootConfig.module.title,
173
+ icon: RootConfig.module.icon,
174
+ i18n: RootConfig.config.i18n,
175
+ type: 'domain',
176
+ domain: 'operations',
177
+ required: false,
178
+ // Module dependencies (optional)
179
+ };
180
+ //#endregion
181
+
182
+ //#region ---- Imports ----
183
+ //#endregion
184
+ //#region ---- Reservation Board Route ----
185
+ function createReservationBoardRoute() {
186
+ const config = inject(AXP_ENTITY_CONFIG_TOKEN);
187
+ return {
188
+ path: ':app/reservation-board',
189
+ canActivate: [...AXP_PROTECTED_ROUTE_GUARDS],
190
+ data: { rootLayout: true },
191
+ loadComponent: () => config.viewers.root(),
192
+ children: [
193
+ {
194
+ path: '',
195
+ loadComponent: () => Promise.resolve().then(function () { return reservationBoard_page; }).then((c) => c.AXMReservationBoardPage),
196
+ },
197
+ {
198
+ path: ':providerName',
199
+ loadComponent: () => Promise.resolve().then(function () { return reservationBoard_page; }).then((c) => c.AXMReservationBoardPage),
200
+ resolve: {
201
+ providerName: (route) => route.paramMap.get('providerName') ?? undefined,
202
+ },
203
+ },
204
+ ],
205
+ };
206
+ }
207
+ //#endregion
208
+ //#region ---- Module ----
209
+ class AXMReservationManagementModule {
210
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXMReservationManagementModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
211
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "22.0.8", ngImport: i0, type: AXMReservationManagementModule }); }
212
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXMReservationManagementModule, providers: [
213
+ // Reservation Board route and home page
214
+ {
215
+ provide: ROUTES,
216
+ multi: true,
217
+ useFactory: () => [createReservationBoardRoute()],
218
+ },
219
+ // Module Manifest Provider
220
+ {
221
+ provide: AXP_MODULE_MANIFEST_PROVIDER,
222
+ useValue: ReservationManagementManifest,
223
+ multi: true,
224
+ },
225
+ // Provider references (now using tokens)
226
+ provideLazyProvider(AXP_PERMISSION_DEFINITION_PROVIDER, () => Promise.resolve().then(function () { return permissionDefinition_provider; }).then((m) => m.AXMReservationManagementPermissionDefinitionProvider)),
227
+ provideLazyProvider(AXP_MENU_PROVIDER, () => Promise.resolve().then(function () { return menu_provider; }).then((m) => m.AXMReservationManagementMenuProvider)),
228
+ provideLazyProvider(AXP_SEARCH_PROVIDER, () => Promise.resolve().then(function () { return searchCommand_provider; }).then((m) => m.AXMReservationManagementSearchCommandProvider)),
229
+ ] }); }
230
+ }
231
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXMReservationManagementModule, decorators: [{
232
+ type: NgModule,
233
+ args: [{
234
+ imports: [],
235
+ providers: [
236
+ // Reservation Board route and home page
237
+ {
238
+ provide: ROUTES,
239
+ multi: true,
240
+ useFactory: () => [createReservationBoardRoute()],
241
+ },
242
+ // Module Manifest Provider
243
+ {
244
+ provide: AXP_MODULE_MANIFEST_PROVIDER,
245
+ useValue: ReservationManagementManifest,
246
+ multi: true,
247
+ },
248
+ // Provider references (now using tokens)
249
+ provideLazyProvider(AXP_PERMISSION_DEFINITION_PROVIDER, () => Promise.resolve().then(function () { return permissionDefinition_provider; }).then((m) => m.AXMReservationManagementPermissionDefinitionProvider)),
250
+ provideLazyProvider(AXP_MENU_PROVIDER, () => Promise.resolve().then(function () { return menu_provider; }).then((m) => m.AXMReservationManagementMenuProvider)),
251
+ provideLazyProvider(AXP_SEARCH_PROVIDER, () => Promise.resolve().then(function () { return searchCommand_provider; }).then((m) => m.AXMReservationManagementSearchCommandProvider)),
252
+ ],
253
+ }]
254
+ }] });
255
+
256
+ class AXMReservationManagementSearchCommandProvider extends AXPSearchCommandProvider {
257
+ constructor() {
258
+ super(...arguments);
259
+ this.commands = [
260
+ {
261
+ id: 'create-reservation',
262
+ group: 'command',
263
+ title: RootConfig.entities.reservation.title,
264
+ icon: RootConfig.entities.reservation.icon,
265
+ description: RootConfig.entities.reservation.titlePlural,
266
+ command: {
267
+ name: 'Entity:Create',
268
+ options: createEntityCommandOptions(`${RootConfig.module.name}.${RootConfig.entities.reservation.name}`, { name: RootConfig.entities.reservation.name, module: RootConfig.module.name, title: RootConfig.entities.reservation.title }),
269
+ },
270
+ },
271
+ {
272
+ id: 'create-reservation-type',
273
+ group: 'command',
274
+ title: RootConfig.entities.reservationType.title,
275
+ icon: RootConfig.entities.reservationType.icon,
276
+ description: RootConfig.entities.reservationType.titlePlural,
277
+ command: {
278
+ name: 'Entity:Create',
279
+ options: createEntityCommandOptions(`${RootConfig.module.name}.${RootConfig.entities.reservationType.name}`, { name: RootConfig.entities.reservationType.name, module: RootConfig.module.name, title: RootConfig.entities.reservationType.title }),
280
+ },
281
+ },
282
+ {
283
+ id: 'create-reservation-status',
284
+ group: 'command',
285
+ title: RootConfig.entities.reservationStatus.title,
286
+ icon: RootConfig.entities.reservationStatus.icon,
287
+ description: RootConfig.entities.reservationStatus.titlePlural,
288
+ command: {
289
+ name: 'Entity:Create',
290
+ options: createEntityCommandOptions(`${RootConfig.module.name}.${RootConfig.entities.reservationStatus.name}`, { name: RootConfig.entities.reservationStatus.name, module: RootConfig.module.name, title: RootConfig.entities.reservationStatus.title }),
291
+ },
292
+ },
293
+ {
294
+ id: 'create-reservation-class',
295
+ group: 'command',
296
+ title: RootConfig.entities.reservationClass.title,
297
+ icon: RootConfig.entities.reservationClass.icon,
298
+ description: RootConfig.entities.reservationClass.titlePlural,
299
+ command: {
300
+ name: 'Entity:Create',
301
+ options: createEntityCommandOptions(`${RootConfig.module.name}.${RootConfig.entities.reservationClass.name}`, { name: RootConfig.entities.reservationClass.name, module: RootConfig.module.name, title: RootConfig.entities.reservationClass.title }),
302
+ },
303
+ },
304
+ ];
305
+ }
306
+ }
307
+
308
+ var searchCommand_provider = /*#__PURE__*/Object.freeze({
309
+ __proto__: null,
310
+ AXMReservationManagementSearchCommandProvider: AXMReservationManagementSearchCommandProvider
311
+ });
312
+
313
+ class AXMSettingProvider {
314
+ async provide(context) {
315
+ // context
316
+ // // Add Form Template Group
317
+ // .addGroup('form-template', 'Form Template', 'Settings related to form templates.', RootConfig.module.icon)
318
+ // // Start Interface Section
319
+ // .addSection('interface', 'UI Interface', 'Customize the user interface for forms.')
320
+ // .addSetting({
321
+ // key: 'history-panel',
322
+ // title: 'Show History Panel',
323
+ // scope: 'U',
324
+ // isInherited: true,
325
+ // defaultValue: false,
326
+ // widget: {
327
+ // type: AXPWidgetsCatalog.toggle,
328
+ // },
329
+ // description: 'Enable or disable the history panel for forms.',
330
+ // validationRules: [
331
+ // {
332
+ // rule: 'required',
333
+ // },
334
+ // ],
335
+ // })
336
+ // .endSection()
337
+ // .endGroup();
338
+ }
339
+ }
340
+
341
+ //#region ---- Imports ----
342
+ //#endregion
343
+ class AXMReservationBoardPage {
344
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXMReservationBoardPage, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
345
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "22.0.8", type: AXMReservationBoardPage, isStandalone: true, selector: "axm-reservation-board-page", ngImport: i0, template: "<axp-resource-appointment [showResourceHeaders]=\"true\" [showUnassignedAppointments]=\"true\" />\n", dependencies: [{ kind: "component", type: AXPResourceAppointmentComponent, selector: "axp-resource-appointment", inputs: ["showResourceHeaders", "showUnassignedAppointments", "providerName"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
346
+ }
347
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXMReservationBoardPage, decorators: [{
348
+ type: Component,
349
+ args: [{ selector: 'axm-reservation-board-page', imports: [AXPResourceAppointmentComponent], changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: "<axp-resource-appointment [showResourceHeaders]=\"true\" [showUnassignedAppointments]=\"true\" />\n" }]
350
+ }] });
351
+
352
+ var reservationBoard_page = /*#__PURE__*/Object.freeze({
353
+ __proto__: null,
354
+ AXMReservationBoardPage: AXMReservationBoardPage
355
+ });
356
+
357
+ /** Re-export platform resource-appointment types and token for modules that provide AXP_RESOURCE_APPOINTMENT_PROVIDER. */
358
+
359
+ /**
360
+ * Generated bundle index. Do not edit.
361
+ */
362
+
363
+ export { AXMReservationBoardPage, AXMReservationManagementMenuProvider, AXMReservationManagementModule, AXMReservationManagementPermissionDefinitionProvider, AXMReservationManagementSearchCommandProvider, AXMSettingProvider };
364
+ //# sourceMappingURL=acorex-platform-module-reservation-management-client.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"acorex-platform-module-reservation-management-client.mjs","sources":["../../../../libs/modules/reservation-management/client/src/lib/menu.provider.ts","../../../../libs/modules/reservation-management/client/src/lib/permission-definition.provider.ts","../../../../libs/modules/reservation-management/client/src/lib/manifest.ts","../../../../libs/modules/reservation-management/client/src/lib/reservation-management.module.ts","../../../../libs/modules/reservation-management/client/src/lib/search-command.provider.ts","../../../../libs/modules/reservation-management/client/src/lib/setting.provider.ts","../../../../libs/modules/reservation-management/client/src/lib/features/reservation-board/reservation-board.page.ts","../../../../libs/modules/reservation-management/client/src/lib/features/reservation-board/reservation-board.page.html","../../../../libs/modules/reservation-management/client/src/lib/features/reservation-board/index.ts","../../../../libs/modules/reservation-management/client/src/acorex-platform-module-reservation-management-client.ts"],"sourcesContent":["//#region ---- Imports ----\n\nimport {\n AXPCommonMenuKeys\n} from '@acorex-platform/module-common-client/contracts';\nimport { AXPSessionService } from '@acorex-platform/framework-client/auth';\nimport { AXPMenuProvider, AXPMenuProviderContext } from '@acorex-platform/framework-client/common';\nimport { AXPEntityService } from '@acorex-platform/framework-client/layout/entity';\nimport { inject } from '@angular/core';\nimport {\n RootConfig,\n AXPCollaborationPermissionKeys\n} from '@acorex-platform/module-reservation-management-client/contracts';\nimport { AXMReservationManagementMenuKeys } from '@acorex-platform/module-reservation-management-client/contracts';\n\n\n//#endregion\n\n//#region ---- Menu Provider ----\n\nexport class AXMReservationManagementMenuProvider implements AXPMenuProvider {\n private readonly entityService = inject(AXPEntityService);\n private readonly sessionService = inject(AXPSessionService);\n\n async provide(context: AXPMenuProviderContext): Promise<void> {\n const module = RootConfig.module;\n const keys = AXPCollaborationPermissionKeys;\n\n // Reservation group under Configuration/Scheduling and Events (with divider before)\n context.find(AXPCommonMenuKeys.SchedulingAndEvents).addItems([\n { name: `${AXMReservationManagementMenuKeys.ReservationTypes}:divider`, text: '', type: 'break', priority: 5 },\n {\n name: AXMReservationManagementMenuKeys.ReservationTypes,\n text: '@reservation-management:reservation-types.menus.reservation-types.title',\n path: this.entityService.createPath(module.name, RootConfig.entities.reservationType.name),\n icon: 'fa-light fa-list',\n priority: 10,\n policy: {\n features: [module.name],\n permissions: [keys.Setup],\n },\n },\n {\n name: AXMReservationManagementMenuKeys.ReservationStatuses,\n text: '@reservation-management:reservation-statuses.menus.reservation-statuses.title',\n path: this.entityService.createPath(module.name, RootConfig.entities.reservationStatus.name),\n icon: 'fa-light fa-flag',\n priority: 11,\n policy: {\n features: [module.name],\n permissions: [keys.Setup],\n },\n },\n {\n name: AXMReservationManagementMenuKeys.ReservationClasses,\n text: '@reservation-management:reservation-classes.menus.reservation-classes.title',\n path: this.entityService.createPath(module.name, RootConfig.entities.reservationClass.name),\n icon: 'fa-light fa-tag',\n priority: 12,\n policy: {\n features: [module.name],\n permissions: [keys.Setup],\n },\n },\n ]);\n\n // Root under MODULES: Reservations (operational)\n // context.addItems([\n // {\n // name: AXMReservationManagementMenuKeys.Reservations,\n // priority: 9051,\n // text: '@general:menus.reservations.title',\n // icon: RootConfig.entities.reservation.icon,\n // path: this.entityService.createPath(module.name, RootConfig.entities.reservation.name),\n // policy: {\n // features: [module.name],\n // permissions: [keys.Reservation.Management],\n // },\n // children: [\n // {\n // name: AXMReservationManagementMenuKeys.ReservationTypes,\n // text: '@reservation-management:reservation-types.menus.reservation-types.title',\n // path: this.entityService.createPath(module.name, RootConfig.entities.reservationType.name),\n // icon: 'fa-light fa-list',\n // priority: 1,\n // },\n // {\n // name: AXMReservationManagementMenuKeys.ReservationClasses,\n // text: '@reservation-management:reservation-classes.menus.reservation-classes.title',\n // path: this.entityService.createPath(module.name, RootConfig.entities.reservationClass.name),\n // icon: 'fa-light fa-tag',\n // priority: 2,\n // },\n // {\n // name: AXMReservationManagementMenuKeys.ReservationTypes,\n // text: '@reservation-management:reservation-resource-types.menus.reservation-resource-types.title',\n // path: this.entityService.createPath(module.name, RootConfig.entities.reservationResourceType.name),\n // icon: 'fa-light fa-cubes',\n // priority: 3,\n // },\n // {\n // name: AXMReservationManagementMenuKeys.ReservationStatuses,\n // text: '@reservation-management:reservation-statuses.menus.reservation-statuses.title',\n // path: this.entityService.createPath(module.name, RootConfig.entities.reservationStatus.name),\n // icon: 'fa-light fa-flag',\n // priority: 4,\n // },\n // {\n // name: AXMReservationManagementMenuKeys.Reservations,\n // text: '@reservation-management:reservations.menus.reservations.title',\n // path: this.entityService.createPath(module.name, RootConfig.entities.reservation.name),\n // icon: 'fa-light fa-calendar-check',\n // priority: 5,\n // },\n // // {\n // // name: AXMReservationManagementMenuKeys.ReservationBoard,\n // // text: RootConfig.pages.reservationBoard.title,\n // // path: `${this.sessionService.application?.name}/${RootConfig.pages.reservationBoard.path}`,\n // // icon: RootConfig.pages.reservationBoard.icon,\n // // priority: 6,\n // // policy: {\n // // features: [module.name],\n // // permissions: [keys.Reservation.Management],\n // // },\n // // },\n // ],\n // },\n // ]);\n }\n}\n\n//#endregion\n","//#region ----- Imports -----\r\n\r\nimport {\r\n AXPPermissionDefinitionProvider,\r\n AXPPermissionDefinitionProviderContext,\r\n} from '@acorex-platform/framework-client/auth';\r\nimport {\n AXPCommonPermissionGroupKeys\n} from '@acorex-platform/module-common-client/contracts';\nimport {\n AXPCollaborationPermissionKeys\n} from '@acorex-platform/module-reservation-management-client/contracts';\n\r\nimport { Injectable } from '@angular/core';\r\n\r\n//#endregion\r\n\r\n//#region ----- Permission Definition Provider -----\r\n\r\n/**\r\n * Registers reservation capabilities into the shared Collaboration group.\r\n */\r\n@Injectable()\r\nexport class AXMReservationManagementPermissionDefinitionProvider implements AXPPermissionDefinitionProvider {\r\n async define(context: AXPPermissionDefinitionProviderContext): Promise<void> {\r\n const keys = AXPCollaborationPermissionKeys;\r\n const groups = AXPCommonPermissionGroupKeys;\r\n const P = '@common:collaboration.permissions';\r\n const G = '@common:permission-groups';\r\n\r\n context.addGroup(groups.Collaboration.Root, `${G}.collaboration.title`, `${G}.collaboration.description`, { order: 80 });\n\n context\n .addGroup(\n groups.Collaboration.Scheduling,\n `${G}.collaboration-scheduling.title`,\n `${G}.collaboration-scheduling.description`,\n { parent: groups.Collaboration.Root, order: 20 },\n )\n .addPermission(\r\n keys.MaintainReservations,\r\n `${P}.maintain-reservations.title`,\r\n `${P}.maintain-reservations.description`,\r\n )\r\n .endPermission()\r\r\n .endGroup();\r\n }\r\n}\r\n\r\n//#endregion\r\n","//#region ---- Imports ----\n\nimport { AXPModuleManifest } from '@acorex-platform/framework-client/core';\nimport { RootConfig } from '@acorex-platform/module-reservation-management-client/contracts';\n\n//#endregion\n\n//#region ---- Manifest Definition ----\n\n/**\n * Reservation Management Module Manifest.\n * Defines module metadata, features, and provider references.\n */\nexport const ReservationManagementManifest: 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: 'domain',\n domain: 'operations',\n required: false,\n // Module dependencies (optional)\n};\n\n//#endregion\n","//#region ---- Imports ----\n\nimport { AXP_PERMISSION_DEFINITION_PROVIDER } from '@acorex-platform/framework-client/auth';\nimport { AXP_MENU_PROVIDER, AXP_PROTECTED_ROUTE_GUARDS, AXP_SEARCH_PROVIDER } from '@acorex-platform/framework-client/common';\nimport { AXP_MODULE_MANIFEST_PROVIDER, provideLazyProvider } from '@acorex-platform/framework-client/core';\nimport { AXP_ENTITY_CONFIG_TOKEN } from '@acorex-platform/framework-client/layout/entity';\nimport { inject, NgModule } from '@angular/core';\nimport { ActivatedRouteSnapshot, Route, ROUTES } from '@angular/router';\nimport { ReservationManagementManifest } from './manifest';\n//#endregion\n\n//#region ---- Reservation Board Route ----\n\nfunction createReservationBoardRoute(): Route {\n const config = inject(AXP_ENTITY_CONFIG_TOKEN);\n return {\n path: ':app/reservation-board',\n canActivate: [...AXP_PROTECTED_ROUTE_GUARDS],\n data: { rootLayout: true },\n loadComponent: () => config.viewers.root(),\n children: [\n {\n path: '',\n loadComponent: () =>\n import('./features/reservation-board/reservation-board.page').then((c) => c.AXMReservationBoardPage),\n },\n {\n path: ':providerName',\n loadComponent: () =>\n import('./features/reservation-board/reservation-board.page').then((c) => c.AXMReservationBoardPage),\n resolve: {\n providerName: (route: ActivatedRouteSnapshot) =>\n route.paramMap.get('providerName') ?? undefined,\n },\n },\n ],\n };\n}\n\n//#endregion\n\n//#region ---- Module ----\n\n@NgModule({\n imports: [\n ],\n providers: [\n // Reservation Board route and home page\n {\n provide: ROUTES,\n multi: true,\n useFactory: () => [createReservationBoardRoute()],\n },\n\n // Module Manifest Provider\n {\n provide: AXP_MODULE_MANIFEST_PROVIDER,\n useValue: ReservationManagementManifest,\n multi: true,\n },\n // Provider references (now using tokens)\n provideLazyProvider(AXP_PERMISSION_DEFINITION_PROVIDER, () =>\n import('./permission-definition.provider').then((m) => m.AXMReservationManagementPermissionDefinitionProvider),\n ),\n provideLazyProvider(AXP_MENU_PROVIDER, () =>\n import('./menu.provider').then((m) => m.AXMReservationManagementMenuProvider),\n ),\n provideLazyProvider(AXP_SEARCH_PROVIDER, () =>\n import('./search-command.provider').then((m) => m.AXMReservationManagementSearchCommandProvider),\n ),\n ],\n})\nexport class AXMReservationManagementModule {}\n\n//#endregion\n","import { AXPSearchCommandProvider, AXPSearchResult, createEntityCommandOptions } from '@acorex-platform/framework-client/common';\nimport { RootConfig } from '@acorex-platform/module-reservation-management-client/contracts';\n\nexport class AXMReservationManagementSearchCommandProvider extends AXPSearchCommandProvider {\n commands: AXPSearchResult[] = [\n {\n id: 'create-reservation',\n group: 'command',\n title: RootConfig.entities.reservation.title,\n icon: RootConfig.entities.reservation.icon,\n description: RootConfig.entities.reservation.titlePlural,\n command: {\n name: 'Entity:Create',\n options: createEntityCommandOptions(\n `${RootConfig.module.name}.${RootConfig.entities.reservation.name}`,\n { name: RootConfig.entities.reservation.name, module: RootConfig.module.name, title: RootConfig.entities.reservation.title }\n ),\n },\n },\n {\n id: 'create-reservation-type',\n group: 'command',\n title: RootConfig.entities.reservationType.title,\n icon: RootConfig.entities.reservationType.icon,\n description: RootConfig.entities.reservationType.titlePlural,\n command: {\n name: 'Entity:Create',\n options: createEntityCommandOptions(\n `${RootConfig.module.name}.${RootConfig.entities.reservationType.name}`,\n { name: RootConfig.entities.reservationType.name, module: RootConfig.module.name, title: RootConfig.entities.reservationType.title }\n ),\n },\n },\n {\n id: 'create-reservation-status',\n group: 'command',\n title: RootConfig.entities.reservationStatus.title,\n icon: RootConfig.entities.reservationStatus.icon,\n description: RootConfig.entities.reservationStatus.titlePlural,\n command: {\n name: 'Entity:Create',\n options: createEntityCommandOptions(\n `${RootConfig.module.name}.${RootConfig.entities.reservationStatus.name}`,\n { name: RootConfig.entities.reservationStatus.name, module: RootConfig.module.name, title: RootConfig.entities.reservationStatus.title }\n ),\n },\n },\n {\n id: 'create-reservation-class',\n group: 'command',\n title: RootConfig.entities.reservationClass.title,\n icon: RootConfig.entities.reservationClass.icon,\n description: RootConfig.entities.reservationClass.titlePlural,\n command: {\n name: 'Entity:Create',\n options: createEntityCommandOptions(\n `${RootConfig.module.name}.${RootConfig.entities.reservationClass.name}`,\n { name: RootConfig.entities.reservationClass.name, module: RootConfig.module.name, title: RootConfig.entities.reservationClass.title }\n ),\n },\n },\n ];\n}\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","//#region ---- Imports ----\n\nimport { AXPResourceAppointmentComponent } from '@acorex-platform/framework-client/layout/components';\n\nimport { ChangeDetectionStrategy, Component, ViewEncapsulation } from '@angular/core';\n\n//#endregion\n\n@Component({\n selector: 'axm-reservation-board-page',\n templateUrl: './reservation-board.page.html',\n imports: [AXPResourceAppointmentComponent],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n})\nexport class AXMReservationBoardPage {}\n","<axp-resource-appointment [showResourceHeaders]=\"true\" [showUnassignedAppointments]=\"true\" />\n","/** Re-export platform resource-appointment types and token for modules that provide AXP_RESOURCE_APPOINTMENT_PROVIDER. */\nexport {\n AXPResourceAppointmentComponent,\n AXPResourceAppointmentService,\n type AXPResourceAppointmentActionMenuItem,\n type AXPResourceAppointmentBoardFilter,\n type AXPResourceAppointmentBoardProvider,\n type AXPResourceAppointmentResource,\n type AXPResourceAppointmentItem,\n} from '@acorex-platform/framework-client/layout/components';\n\nexport { AXMReservationBoardPage } from './reservation-board.page';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
package/package.json ADDED
@@ -0,0 +1,28 @@
1
+ {
2
+ "name": "@acorex-platform/module-reservation-management-client",
3
+ "version": "0.0.21",
4
+ "sideEffects": false,
5
+ "peerDependencies": {
6
+ "@angular/common": "^21.0.0",
7
+ "@angular/core": "^21.0.0"
8
+ },
9
+ "dependencies": {
10
+ "tslib": "^2.3.0"
11
+ },
12
+ "module": "fesm2022/acorex-platform-module-reservation-management-client.mjs",
13
+ "typings": "types/acorex-platform-module-reservation-management-client.d.ts",
14
+ "exports": {
15
+ "./package.json": {
16
+ "default": "./package.json"
17
+ },
18
+ ".": {
19
+ "types": "./types/acorex-platform-module-reservation-management-client.d.ts",
20
+ "default": "./fesm2022/acorex-platform-module-reservation-management-client.mjs"
21
+ },
22
+ "./contracts": {
23
+ "types": "./types/acorex-platform-module-reservation-management-client-contracts.d.ts",
24
+ "default": "./fesm2022/acorex-platform-module-reservation-management-client-contracts.mjs"
25
+ }
26
+ },
27
+ "type": "module"
28
+ }
@@ -0,0 +1,291 @@
1
+ import { AXPMultiLanguageString } from '@acorex-platform/framework-shared/core';
2
+
3
+ declare const AXMReservationManagementMenuKeys: {
4
+ readonly ReservationTypes: "reservation-management:Menu:ReservationTypes";
5
+ readonly ReservationStatuses: "reservation-management:Menu:ReservationStatuses";
6
+ readonly ReservationClasses: "reservation-management:Menu:ReservationClasses";
7
+ readonly Reservations: "reservation-management:Menu:Reservations";
8
+ readonly ReservationBoard: "reservation-management:Menu:ReservationBoard";
9
+ };
10
+
11
+ /**
12
+ * Collaboration capabilities used by this module.
13
+ * Domain capability keys for this module. Root groups live in `AXPCommonPermissionGroupKeys` (common contracts).
14
+ */
15
+ declare const AXPCollaborationPermissionKeys: {
16
+ readonly Access: "Collaboration:Permission:Access";
17
+ readonly MaintainConversations: "Collaboration:Permission:MaintainConversations";
18
+ readonly MaintainMeetings: "Collaboration:Permission:MaintainMeetings";
19
+ readonly MaintainCalendars: "Collaboration:Permission:MaintainCalendars";
20
+ readonly MaintainCommunications: "Collaboration:Permission:MaintainCommunications";
21
+ readonly MaintainReservations: "Collaboration:Permission:MaintainReservations";
22
+ readonly MaintainHelpDesk: "Collaboration:Permission:MaintainHelpDesk";
23
+ readonly Setup: "Collaboration:Permission:Setup";
24
+ };
25
+ /**
26
+ * @deprecated Prefer {@link AXPCollaborationPermissionKeys}.
27
+ * Legacy nested shape kept so existing imports compile during migration.
28
+ */
29
+ declare const AXMPermissionsKeys: {
30
+ readonly ReservationManagement: {
31
+ readonly Management: "Collaboration:Permission:MaintainReservations";
32
+ readonly ReservationType: {
33
+ readonly Management: "Collaboration:Permission:Setup";
34
+ };
35
+ readonly ReservationStatus: {
36
+ readonly Management: "Collaboration:Permission:Setup";
37
+ };
38
+ readonly ReservationClass: {
39
+ readonly Management: "Collaboration:Permission:Setup";
40
+ };
41
+ readonly Reservation: {
42
+ readonly Management: "Collaboration:Permission:MaintainReservations";
43
+ };
44
+ };
45
+ };
46
+
47
+ declare const RootConfig: {
48
+ config: {
49
+ i18n: string;
50
+ module: string;
51
+ route: string;
52
+ };
53
+ module: {
54
+ route: string;
55
+ name: string;
56
+ title: string;
57
+ icon: string;
58
+ };
59
+ entities: {
60
+ reservationType: {
61
+ name: string;
62
+ source: string;
63
+ title: string;
64
+ titlePlural: string;
65
+ icon: string;
66
+ };
67
+ reservationStatus: {
68
+ name: string;
69
+ source: string;
70
+ title: string;
71
+ titlePlural: string;
72
+ icon: string;
73
+ };
74
+ reservationClass: {
75
+ name: string;
76
+ source: string;
77
+ title: string;
78
+ titlePlural: string;
79
+ icon: string;
80
+ };
81
+ reservation: {
82
+ name: string;
83
+ source: string;
84
+ title: string;
85
+ titlePlural: string;
86
+ icon: string;
87
+ };
88
+ reservationEvent: {
89
+ name: string;
90
+ source: string;
91
+ title: string;
92
+ titlePlural: string;
93
+ icon: string;
94
+ };
95
+ reservationHold: {
96
+ name: string;
97
+ source: string;
98
+ title: string;
99
+ titlePlural: string;
100
+ icon: string;
101
+ };
102
+ reservationStatusTransition: {
103
+ name: string;
104
+ source: string;
105
+ title: string;
106
+ titlePlural: string;
107
+ icon: string;
108
+ };
109
+ reservationResourceType: {
110
+ name: string;
111
+ source: string;
112
+ title: string;
113
+ titlePlural: string;
114
+ icon: string;
115
+ };
116
+ reservationClassStatus: {
117
+ name: string;
118
+ source: string;
119
+ title: string;
120
+ titlePlural: string;
121
+ icon: string;
122
+ };
123
+ reservationClassType: {
124
+ name: string;
125
+ source: string;
126
+ title: string;
127
+ titlePlural: string;
128
+ icon: string;
129
+ };
130
+ };
131
+ pages: {
132
+ reservationBoard: {
133
+ path: string;
134
+ title: string;
135
+ icon: string;
136
+ };
137
+ };
138
+ };
139
+
140
+ interface AXPReservationManagementReservationEntityModel {
141
+ id: string;
142
+ reservationResourceTypeId: string;
143
+ reservationResourceType?: {
144
+ id: string;
145
+ title: string;
146
+ name: string;
147
+ };
148
+ reservationTypeId: string;
149
+ reservationType?: {
150
+ id: string;
151
+ title: AXPMultiLanguageString;
152
+ name: string;
153
+ };
154
+ reservationStatusId: string;
155
+ reservationStatus?: {
156
+ id: string;
157
+ title: AXPMultiLanguageString;
158
+ name: string;
159
+ };
160
+ resourceId: string;
161
+ resource?: {
162
+ id: string;
163
+ title?: string;
164
+ };
165
+ startDate: Date;
166
+ endDate: Date;
167
+ requestedById: string;
168
+ requestedBy?: {
169
+ id: string;
170
+ displayName: string;
171
+ };
172
+ requestedDate: Date;
173
+ approvedById: string;
174
+ approvedBy?: {
175
+ id: string;
176
+ displayName: string;
177
+ };
178
+ approvedDate: Date;
179
+ }
180
+
181
+ interface AXPReservationManagementReservationClassEntityModel {
182
+ id: string;
183
+ name: string;
184
+ title: string;
185
+ reservationTypeIds: string[];
186
+ reservationTypes?: {
187
+ id: string;
188
+ title: AXPMultiLanguageString;
189
+ name: string;
190
+ }[];
191
+ }
192
+
193
+ interface AXPReservationManagementReservationClassStatusEntityModel {
194
+ id: string;
195
+ reservationClassId: string;
196
+ reservationStatusId: string;
197
+ reservationStatus?: {
198
+ id: string;
199
+ title: AXPMultiLanguageString;
200
+ code: string;
201
+ color: string;
202
+ icon?: string;
203
+ };
204
+ isInitial: boolean;
205
+ isFinal: boolean;
206
+ order?: number;
207
+ }
208
+
209
+ interface AXPReservationManagementReservationEventEntityModel {
210
+ id: string;
211
+ reservationId: string;
212
+ reservation: {
213
+ id: string;
214
+ entityReference: string;
215
+ resource: string;
216
+ };
217
+ reservationEventId: string;
218
+ reservationEvent: {
219
+ id: string;
220
+ title: string;
221
+ };
222
+ eventDate: Date;
223
+ actorId: string;
224
+ actor: {
225
+ id: string;
226
+ username: string;
227
+ };
228
+ fromStatusId: string;
229
+ fromStatus: {
230
+ id: string;
231
+ title: string;
232
+ };
233
+ toStatusId: string;
234
+ toStatus: {
235
+ id: string;
236
+ title: string;
237
+ };
238
+ }
239
+
240
+ interface AXPReservationManagementReservationResourceTypeEntityModel {
241
+ id: string;
242
+ title: string;
243
+ code: string;
244
+ entityId: string;
245
+ entity?: {
246
+ id: string;
247
+ title: string;
248
+ code: string;
249
+ };
250
+ reservationClassId: string;
251
+ reservationClass: {
252
+ id: string;
253
+ code: string;
254
+ };
255
+ }
256
+
257
+ interface AXPReservationManagementReservationStatusEntityModel {
258
+ id: string;
259
+ name: string;
260
+ title: AXPMultiLanguageString;
261
+ color: string;
262
+ icon: string;
263
+ }
264
+
265
+ interface AXPReservationManagementReservationStatusTransitionEntityModel {
266
+ id: string;
267
+ reservationClassId: string;
268
+ fromStatusId: string;
269
+ toStatusId: string;
270
+ fromStatus?: {
271
+ id: string;
272
+ title: string;
273
+ code: string;
274
+ };
275
+ toStatus?: {
276
+ id: string;
277
+ title: string;
278
+ code: string;
279
+ };
280
+ title?: string;
281
+ }
282
+
283
+ interface AXPReservationManagementReservationTypeEntityModel {
284
+ id: string;
285
+ name: string;
286
+ title: AXPMultiLanguageString;
287
+ isBlocking: boolean;
288
+ }
289
+
290
+ export { AXMPermissionsKeys, AXMReservationManagementMenuKeys, AXPCollaborationPermissionKeys, RootConfig };
291
+ export type { AXPReservationManagementReservationClassEntityModel, AXPReservationManagementReservationClassStatusEntityModel, AXPReservationManagementReservationEntityModel, AXPReservationManagementReservationEventEntityModel, AXPReservationManagementReservationResourceTypeEntityModel, AXPReservationManagementReservationStatusEntityModel, AXPReservationManagementReservationStatusTransitionEntityModel, AXPReservationManagementReservationTypeEntityModel };
@@ -0,0 +1,40 @@
1
+ import { AXPMenuProvider, AXPMenuProviderContext, AXPSearchCommandProvider, AXPSearchResult, AXPSettingDefinitionProvider, AXPSettingDefinitionProviderContext } from '@acorex-platform/framework-client/common';
2
+ import { AXPPermissionDefinitionProvider, AXPPermissionDefinitionProviderContext } from '@acorex-platform/framework-client/auth';
3
+ import * as i0 from '@angular/core';
4
+ export { AXPResourceAppointmentActionMenuItem, AXPResourceAppointmentBoardFilter, AXPResourceAppointmentBoardProvider, AXPResourceAppointmentComponent, AXPResourceAppointmentItem, AXPResourceAppointmentResource, AXPResourceAppointmentService } from '@acorex-platform/framework-client/layout/components';
5
+
6
+ declare class AXMReservationManagementMenuProvider implements AXPMenuProvider {
7
+ private readonly entityService;
8
+ private readonly sessionService;
9
+ provide(context: AXPMenuProviderContext): Promise<void>;
10
+ }
11
+
12
+ /**
13
+ * Registers reservation capabilities into the shared Collaboration group.
14
+ */
15
+ declare class AXMReservationManagementPermissionDefinitionProvider implements AXPPermissionDefinitionProvider {
16
+ define(context: AXPPermissionDefinitionProviderContext): Promise<void>;
17
+ static ɵfac: i0.ɵɵFactoryDeclaration<AXMReservationManagementPermissionDefinitionProvider, never>;
18
+ static ɵprov: i0.ɵɵInjectableDeclaration<AXMReservationManagementPermissionDefinitionProvider>;
19
+ }
20
+
21
+ declare class AXMReservationManagementModule {
22
+ static ɵfac: i0.ɵɵFactoryDeclaration<AXMReservationManagementModule, never>;
23
+ static ɵmod: i0.ɵɵNgModuleDeclaration<AXMReservationManagementModule, never, never, never>;
24
+ static ɵinj: i0.ɵɵInjectorDeclaration<AXMReservationManagementModule>;
25
+ }
26
+
27
+ declare class AXMReservationManagementSearchCommandProvider extends AXPSearchCommandProvider {
28
+ commands: AXPSearchResult[];
29
+ }
30
+
31
+ declare class AXMSettingProvider implements AXPSettingDefinitionProvider {
32
+ provide(context: AXPSettingDefinitionProviderContext): Promise<void>;
33
+ }
34
+
35
+ declare class AXMReservationBoardPage {
36
+ static ɵfac: i0.ɵɵFactoryDeclaration<AXMReservationBoardPage, never>;
37
+ static ɵcmp: i0.ɵɵComponentDeclaration<AXMReservationBoardPage, "axm-reservation-board-page", never, {}, {}, never, never, true, never>;
38
+ }
39
+
40
+ export { AXMReservationBoardPage, AXMReservationManagementMenuProvider, AXMReservationManagementModule, AXMReservationManagementPermissionDefinitionProvider, AXMReservationManagementSearchCommandProvider, AXMSettingProvider };