@intellegens/cornerstone-client-angular-material 0.0.9999-alpha-8 → 0.0.9999-alpha-11

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.
@@ -3,6 +3,7 @@ import { Injectable, inject, input, Directive } from '@angular/core';
3
3
  import { MatPaginatorIntl, MatPaginator } from '@angular/material/paginator';
4
4
  import { MatSort } from '@angular/material/sort';
5
5
  import { ReadSelectedOrderingDirection } from '@intellegens/cornerstone-client-angular';
6
+ import { MatDialog } from '@angular/material/dialog';
6
7
 
7
8
  /**
8
9
  * Custom paginator service to adjust the label for the paginator.
@@ -15,10 +16,10 @@ class MatPaginatorIntlOverrides extends MatPaginatorIntl {
15
16
  const isLengthValid = length && length !== -1;
16
17
  return isLengthValid ? `Page ${page + 1} of ${Math.ceil(length / pageSize)}` : `Page ${page + 1}`;
17
18
  };
18
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.3", ngImport: i0, type: MatPaginatorIntlOverrides, deps: null, target: i0.ɵɵFactoryTarget.Injectable });
19
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.3", ngImport: i0, type: MatPaginatorIntlOverrides });
19
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.9", ngImport: i0, type: MatPaginatorIntlOverrides, deps: null, target: i0.ɵɵFactoryTarget.Injectable });
20
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.9", ngImport: i0, type: MatPaginatorIntlOverrides });
20
21
  }
21
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.3", ngImport: i0, type: MatPaginatorIntlOverrides, decorators: [{
22
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.9", ngImport: i0, type: MatPaginatorIntlOverrides, decorators: [{
22
23
  type: Injectable
23
24
  }] });
24
25
 
@@ -46,17 +47,17 @@ class MatTablePaginationDirective {
46
47
  ngOnDestroy() {
47
48
  this._subscription?.unsubscribe();
48
49
  }
49
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.3", ngImport: i0, type: MatTablePaginationDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
50
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "20.3.3", type: MatTablePaginationDirective, isStandalone: true, selector: "mat-paginator", inputs: { adapter: { classPropertyName: "adapter", publicName: "adapter", isSignal: true, isRequired: false, transformFunction: null } }, providers: [{ provide: MatPaginatorIntl, useClass: MatPaginatorIntlOverrides }], ngImport: i0 });
50
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.9", ngImport: i0, type: MatTablePaginationDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
51
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "20.3.9", type: MatTablePaginationDirective, isStandalone: true, selector: "mat-paginator", inputs: { adapter: { classPropertyName: "adapter", publicName: "adapter", isSignal: true, isRequired: false, transformFunction: null } }, providers: [{ provide: MatPaginatorIntl, useClass: MatPaginatorIntlOverrides }], ngImport: i0 });
51
52
  }
52
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.3", ngImport: i0, type: MatTablePaginationDirective, decorators: [{
53
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.9", ngImport: i0, type: MatTablePaginationDirective, decorators: [{
53
54
  type: Directive,
54
55
  args: [{
55
56
  selector: 'mat-paginator',
56
57
  providers: [{ provide: MatPaginatorIntl, useClass: MatPaginatorIntlOverrides }],
57
58
  standalone: true,
58
59
  }]
59
- }] });
60
+ }], propDecorators: { adapter: [{ type: i0.Input, args: [{ isSignal: true, alias: "adapter", required: false }] }] } });
60
61
 
61
62
  /**
62
63
  * Directive used to pass data to the `CollectionViewAdapter` and reverse the default direction of shown table header sorting arrows
@@ -85,15 +86,165 @@ class MatTableSortDirective {
85
86
  ngOnDestroy() {
86
87
  this._subscription.unsubscribe();
87
88
  }
88
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.3", ngImport: i0, type: MatTableSortDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
89
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "20.3.3", type: MatTableSortDirective, isStandalone: true, selector: "mat-table[matSort], table[mat-table][matSort]", inputs: { adapter: { classPropertyName: "adapter", publicName: "adapter", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0 });
89
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.9", ngImport: i0, type: MatTableSortDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
90
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "20.3.9", type: MatTableSortDirective, isStandalone: true, selector: "mat-table[matSort], table[mat-table][matSort]", inputs: { adapter: { classPropertyName: "adapter", publicName: "adapter", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0 });
90
91
  }
91
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.3", ngImport: i0, type: MatTableSortDirective, decorators: [{
92
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.9", ngImport: i0, type: MatTableSortDirective, decorators: [{
92
93
  type: Directive,
93
94
  args: [{
94
95
  selector: 'mat-table[matSort], table[mat-table][matSort]',
95
96
  standalone: true,
96
97
  }]
98
+ }], propDecorators: { adapter: [{ type: i0.Input, args: [{ isSignal: true, alias: "adapter", required: false }] }] } });
99
+
100
+ class ModalService {
101
+ _matDialog = inject(MatDialog);
102
+ _modalsStack = [];
103
+ _nextModalStackId = 0;
104
+ openModal(component, config) {
105
+ return new Promise(resolve => {
106
+ // hide parent modal backdrop
107
+ if (this._modalsStack.length > 0) {
108
+ const parentDialog = this._modalsStack[this._modalsStack.length - 1];
109
+ const overlayRef = parentDialog.dialogRef._ref?.overlayRef;
110
+ if (overlayRef && overlayRef.backdropElement) {
111
+ overlayRef.backdropElement.style.display = 'none';
112
+ }
113
+ }
114
+ // new dialog using configured container component
115
+ const dialogRef = this._matDialog.open(component, {
116
+ maxWidth: 'none',
117
+ data: {
118
+ inputs: config?.inputs || {},
119
+ modalService: this,
120
+ },
121
+ });
122
+ const closeOnBackdrop = (dialogRef.componentRef?.instance).closeOnBackdrop ?? true;
123
+ const closeOnEscapeKey = (dialogRef.componentRef?.instance).closeOnEscapeKey ?? true;
124
+ // disable MatDialog default closing backdrop-click/escape-key behavior
125
+ if (!closeOnBackdrop || !closeOnEscapeKey) {
126
+ dialogRef.disableClose = true;
127
+ }
128
+ // set modal component stack Id
129
+ const id = `${this._nextModalStackId++}`;
130
+ (dialogRef.componentRef?.instance).modalStackId = id;
131
+ // add to stack
132
+ this._modalsStack.push({
133
+ id,
134
+ resolve,
135
+ dialogRef,
136
+ componentRef: dialogRef.componentRef?.instance,
137
+ });
138
+ // handle dialog closed via backdrop click
139
+ dialogRef.backdropClick().subscribe(() => {
140
+ if (closeOnBackdrop) {
141
+ dialogRef.close();
142
+ const index = this._modalsStack.findIndex(item => item.dialogRef === dialogRef);
143
+ if (index !== -1) {
144
+ // dialog was closed without submitModal/closeModal
145
+ const item = this._modalsStack[index];
146
+ item.resolve(undefined);
147
+ this._modalsStack.splice(index, 1);
148
+ // restore parent dialog backdrop
149
+ if (this._modalsStack.length > 0) {
150
+ const parentDialog = this._modalsStack[this._modalsStack.length - 1];
151
+ const overlayRef = parentDialog.dialogRef._ref?.overlayRef;
152
+ if (overlayRef && overlayRef.backdropElement) {
153
+ overlayRef.backdropElement.style.display = '';
154
+ }
155
+ }
156
+ }
157
+ }
158
+ });
159
+ // handle dialog closed via Esc key-press
160
+ dialogRef.keydownEvents().subscribe(event => {
161
+ if (event.key === 'Escape') {
162
+ if (closeOnEscapeKey) {
163
+ dialogRef.close();
164
+ const index = this._modalsStack.findIndex(item => item.dialogRef === dialogRef);
165
+ if (index !== -1) {
166
+ // dialog was closed without submitModal/closeModal
167
+ const item = this._modalsStack[index];
168
+ item.resolve(undefined);
169
+ this._modalsStack.splice(index, 1);
170
+ // restore parent dialog backdrop
171
+ if (this._modalsStack.length > 0) {
172
+ const parentDialog = this._modalsStack[this._modalsStack.length - 1];
173
+ const overlayRef = parentDialog.dialogRef._ref?.overlayRef;
174
+ if (overlayRef && overlayRef.backdropElement) {
175
+ overlayRef.backdropElement.style.display = '';
176
+ }
177
+ }
178
+ }
179
+ }
180
+ }
181
+ });
182
+ });
183
+ }
184
+ submitModal(data) {
185
+ if (this._modalsStack.length === 0)
186
+ return;
187
+ const currentItem = this._modalsStack.pop();
188
+ currentItem.resolve(data);
189
+ currentItem.dialogRef.close();
190
+ // restore parent dialog backdrop
191
+ if (this._modalsStack.length > 0) {
192
+ const parentDialog = this._modalsStack[this._modalsStack.length - 1];
193
+ const overlayRef = parentDialog.dialogRef._ref?.overlayRef;
194
+ if (overlayRef && overlayRef.backdropElement) {
195
+ overlayRef.backdropElement.style.display = '';
196
+ }
197
+ }
198
+ }
199
+ closeModal() {
200
+ if (this._modalsStack.length === 0)
201
+ return;
202
+ const currentItem = this._modalsStack.pop();
203
+ currentItem.resolve(undefined);
204
+ if (currentItem.dialogRef.disableClose) {
205
+ currentItem.dialogRef.disableClose = false;
206
+ }
207
+ currentItem.dialogRef.close();
208
+ // restore parent dialog backdrop
209
+ if (this._modalsStack.length > 0) {
210
+ const parentDialog = this._modalsStack[this._modalsStack.length - 1];
211
+ const overlayRef = parentDialog.dialogRef._ref?.overlayRef;
212
+ if (overlayRef && overlayRef.backdropElement) {
213
+ overlayRef.backdropElement.style.display = '';
214
+ }
215
+ }
216
+ }
217
+ showTitle(modalStackId) {
218
+ return this._modalsStack.find(item => item.id === modalStackId)?.componentRef.showTitle;
219
+ }
220
+ getTitle(modalStackId) {
221
+ return this._modalsStack.find(item => item.id === modalStackId)?.componentRef.title;
222
+ }
223
+ showBreadcrumbs(modalStackId) {
224
+ return this._modalsStack.find(item => item.id === modalStackId)?.componentRef.showBreadcrumbs;
225
+ }
226
+ getBreadcrumbs(modalStackId) {
227
+ const breadcrumbs = [];
228
+ for (const item of this._modalsStack) {
229
+ const breadcrumb = item.componentRef.breadcrumb ?? item.componentRef.title;
230
+ if (breadcrumb)
231
+ breadcrumbs.push(breadcrumb);
232
+ if (item.id === modalStackId)
233
+ break;
234
+ }
235
+ return breadcrumbs;
236
+ }
237
+ closeOnButton(modalStackId) {
238
+ return this._modalsStack.find(item => item.id === modalStackId)?.componentRef.closeOnButton;
239
+ }
240
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.9", ngImport: i0, type: ModalService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
241
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.9", ngImport: i0, type: ModalService, providedIn: 'root' });
242
+ }
243
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.9", ngImport: i0, type: ModalService, decorators: [{
244
+ type: Injectable,
245
+ args: [{
246
+ providedIn: 'root',
247
+ }]
97
248
  }] });
98
249
 
99
250
  /*
@@ -104,5 +255,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.3", ngImpor
104
255
  * Generated bundle index. Do not edit.
105
256
  */
106
257
 
107
- export { MatPaginatorIntlOverrides, MatTablePaginationDirective, MatTableSortDirective };
258
+ export { MatPaginatorIntlOverrides, MatTablePaginationDirective, MatTableSortDirective, ModalService };
108
259
  //# sourceMappingURL=intellegens-cornerstone-client-angular-material.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"intellegens-cornerstone-client-angular-material.mjs","sources":["../../../../projects/intellegens/cornerstone-client-angular-material/src/lib/overrides/MatPaginatorIntlOverrides/index.ts","../../../../projects/intellegens/cornerstone-client-angular-material/src/lib/directives/MatTablePaginationDirective/index.ts","../../../../projects/intellegens/cornerstone-client-angular-material/src/lib/directives/MatTableSortDirective/index.ts","../../../../projects/intellegens/cornerstone-client-angular-material/src/public-api.ts","../../../../projects/intellegens/cornerstone-client-angular-material/src/intellegens-cornerstone-client-angular-material.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\nimport { MatPaginatorIntl } from '@angular/material/paginator';\n\n/**\n * Custom paginator service to adjust the label for the paginator.\n */\n@Injectable()\nexport class MatPaginatorIntlOverrides extends MatPaginatorIntl {\n override getRangeLabel = (page: number, pageSize: number, length: number) => {\n if (length === 0) {\n return 'Page 1 of 1';\n }\n const isLengthValid = length && length !== -1;\n return isLengthValid ? `Page ${page + 1} of ${Math.ceil(length / pageSize)}` : `Page ${page + 1}`;\n };\n}\n","import { Directive, InputSignal, inject, input } from '@angular/core';\nimport { MatPaginator, MatPaginatorIntl, PageEvent } from '@angular/material/paginator';\nimport { MatPaginatorIntlOverrides } from '../../overrides'; // using path alias results in `Could not resolve \"@overrides\"` in app\nimport { Subscription } from 'rxjs';\nimport { CollectionViewAdapter } from '@intellegens/cornerstone-client-angular';\n\n/**\n * Directive used to pass data to the `CollectionViewAdapter`, uses `MatPaginatorIntlOverrides` to change pagination UI.\n */\n@Directive({\n selector: 'mat-paginator',\n providers: [{ provide: MatPaginatorIntl, useClass: MatPaginatorIntlOverrides }],\n standalone: true,\n})\nexport class MatTablePaginationDirective {\n private _matPaginator = inject(MatPaginator);\n public adapter: InputSignal<CollectionViewAdapter<any, any> | undefined> = input();\n private _subscription?: Subscription;\n ngOnInit() {\n this._subscription = this._matPaginator.page.subscribe((event: PageEvent) => {\n const adapter = this.adapter();\n if (!adapter) return;\n const targetPage = event.pageIndex + 1;\n if (event.pageSize !== adapter.pageSize) {\n adapter.setPageSize(event.pageSize);\n } else if (targetPage !== adapter.currentPage) {\n adapter.jumpToPage(targetPage);\n }\n });\n }\n ngOnDestroy() {\n this._subscription?.unsubscribe();\n }\n}\n","import { Directive, inject, input, InputSignal } from '@angular/core';\nimport { MatSort, Sort } from '@angular/material/sort';\nimport { CollectionViewAdapter, ReadSelectedOrderingDirection } from '@intellegens/cornerstone-client-angular';\n\n/**\n * Directive used to pass data to the `CollectionViewAdapter` and reverse the default direction of shown table header sorting arrows\n */\n@Directive({\n selector: 'mat-table[matSort], table[mat-table][matSort]',\n standalone: true,\n})\nexport class MatTableSortDirective {\n private _matSort = inject(MatSort);\n public adapter: InputSignal<CollectionViewAdapter<any, any> | undefined> = input();\n ngOnInit() {\n this._matSort.disableClear = true; // removes \"unsorted\" option, syncs column header arrows with actual current sort direction\n // tell MatSort our starting sort direction\n const adapter = this.adapter();\n if (adapter) {\n // TODO: handle multiple columns - for now it only supports ordering by one column\n const initialSort = adapter.getCurrentOrdering()[0];\n this._matSort.active = (initialSort.orderByPath && initialSort.orderByPath[0]) || '';\n this._matSort.direction = initialSort.orderDirection === ReadSelectedOrderingDirection.Ascending ? 'desc' : 'asc'; // show reverse arrows\n }\n }\n private _subscription = this._matSort.sortChange.subscribe((event: Sort) => {\n const adapter = this.adapter();\n if (adapter && event?.active) {\n const newDirection = event.direction == 'desc' ? ReadSelectedOrderingDirection.Ascending : ReadSelectedOrderingDirection.Descending; // show reverse arrows\n adapter.setOrdering([event.active], newDirection);\n }\n });\n ngOnDestroy() {\n this._subscription.unsubscribe();\n }\n}\n","/*\n * Public API Surface of cornerstone-client-angular-material\n */\n\nexport * from './lib/';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"intellegens-cornerstone-client-angular-material.mjs","sources":["../../../../projects/intellegens/cornerstone-client-angular-material/src/lib/overrides/MatPaginatorIntlOverrides/index.ts","../../../../projects/intellegens/cornerstone-client-angular-material/src/lib/directives/MatTablePaginationDirective/index.ts","../../../../projects/intellegens/cornerstone-client-angular-material/src/lib/directives/MatTableSortDirective/index.ts","../../../../projects/intellegens/cornerstone-client-angular-material/src/lib/services/ModalService/index.ts","../../../../projects/intellegens/cornerstone-client-angular-material/src/public-api.ts","../../../../projects/intellegens/cornerstone-client-angular-material/src/intellegens-cornerstone-client-angular-material.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\nimport { MatPaginatorIntl } from '@angular/material/paginator';\n\n/**\n * Custom paginator service to adjust the label for the paginator.\n */\n@Injectable()\nexport class MatPaginatorIntlOverrides extends MatPaginatorIntl {\n override getRangeLabel = (page: number, pageSize: number, length: number) => {\n if (length === 0) {\n return 'Page 1 of 1';\n }\n const isLengthValid = length && length !== -1;\n return isLengthValid ? `Page ${page + 1} of ${Math.ceil(length / pageSize)}` : `Page ${page + 1}`;\n };\n}\n","import { Directive, InputSignal, inject, input } from '@angular/core';\nimport { MatPaginator, MatPaginatorIntl, PageEvent } from '@angular/material/paginator';\nimport { MatPaginatorIntlOverrides } from '../../overrides'; // using path alias results in `Could not resolve \"@overrides\"` in app\nimport { Subscription } from 'rxjs';\nimport { CollectionViewAdapter } from '@intellegens/cornerstone-client-angular';\n\n/**\n * Directive used to pass data to the `CollectionViewAdapter`, uses `MatPaginatorIntlOverrides` to change pagination UI.\n */\n@Directive({\n selector: 'mat-paginator',\n providers: [{ provide: MatPaginatorIntl, useClass: MatPaginatorIntlOverrides }],\n standalone: true,\n})\nexport class MatTablePaginationDirective {\n private _matPaginator = inject(MatPaginator);\n public adapter: InputSignal<CollectionViewAdapter<any, any> | undefined> = input();\n private _subscription?: Subscription;\n ngOnInit() {\n this._subscription = this._matPaginator.page.subscribe((event: PageEvent) => {\n const adapter = this.adapter();\n if (!adapter) return;\n const targetPage = event.pageIndex + 1;\n if (event.pageSize !== adapter.pageSize) {\n adapter.setPageSize(event.pageSize);\n } else if (targetPage !== adapter.currentPage) {\n adapter.jumpToPage(targetPage);\n }\n });\n }\n ngOnDestroy() {\n this._subscription?.unsubscribe();\n }\n}\n","import { Directive, inject, input, InputSignal } from '@angular/core';\nimport { MatSort, Sort } from '@angular/material/sort';\nimport { CollectionViewAdapter, ReadSelectedOrderingDirection } from '@intellegens/cornerstone-client-angular';\n\n/**\n * Directive used to pass data to the `CollectionViewAdapter` and reverse the default direction of shown table header sorting arrows\n */\n@Directive({\n selector: 'mat-table[matSort], table[mat-table][matSort]',\n standalone: true,\n})\nexport class MatTableSortDirective {\n private _matSort = inject(MatSort);\n public adapter: InputSignal<CollectionViewAdapter<any, any> | undefined> = input();\n ngOnInit() {\n this._matSort.disableClear = true; // removes \"unsorted\" option, syncs column header arrows with actual current sort direction\n // tell MatSort our starting sort direction\n const adapter = this.adapter();\n if (adapter) {\n // TODO: handle multiple columns - for now it only supports ordering by one column\n const initialSort = adapter.getCurrentOrdering()[0];\n this._matSort.active = (initialSort.orderByPath && initialSort.orderByPath[0]) || '';\n this._matSort.direction = initialSort.orderDirection === ReadSelectedOrderingDirection.Ascending ? 'desc' : 'asc'; // show reverse arrows\n }\n }\n private _subscription = this._matSort.sortChange.subscribe((event: Sort) => {\n const adapter = this.adapter();\n if (adapter && event?.active) {\n const newDirection = event.direction == 'desc' ? ReadSelectedOrderingDirection.Ascending : ReadSelectedOrderingDirection.Descending; // show reverse arrows\n adapter.setOrdering([event.active], newDirection);\n }\n });\n ngOnDestroy() {\n this._subscription.unsubscribe();\n }\n}\n","import { Injectable, inject, Type } from '@angular/core';\nimport { MatDialog, MatDialogRef } from '@angular/material/dialog';\nimport { type IModalComponent } from '../../interfaces';\n\ntype ModalStackItem = {\n id: string;\n resolve: (value: any) => void;\n dialogRef: MatDialogRef<any>;\n componentRef: IModalComponent;\n};\n\n@Injectable({\n providedIn: 'root',\n})\nexport class ModalService {\n private _matDialog = inject(MatDialog);\n private _modalsStack: ModalStackItem[] = [];\n private _nextModalStackId = 0;\n\n public openModal<TResult>(\n component: Type<IModalComponent>,\n config?: {\n inputs?: Record<string, any>;\n },\n ): Promise<TResult | undefined> {\n return new Promise<TResult | undefined>(resolve => {\n // hide parent modal backdrop\n if (this._modalsStack.length > 0) {\n const parentDialog = this._modalsStack[this._modalsStack.length - 1];\n const overlayRef = (parentDialog.dialogRef as any)._ref?.overlayRef;\n if (overlayRef && overlayRef.backdropElement) {\n overlayRef.backdropElement.style.display = 'none';\n }\n }\n\n // new dialog using configured container component\n const dialogRef = this._matDialog.open(component, {\n maxWidth: 'none',\n data: {\n inputs: config?.inputs || {},\n modalService: this,\n },\n });\n\n const closeOnBackdrop = (dialogRef.componentRef?.instance as IModalComponent).closeOnBackdrop ?? true;\n const closeOnEscapeKey = (dialogRef.componentRef?.instance as IModalComponent).closeOnEscapeKey ?? true;\n\n // disable MatDialog default closing backdrop-click/escape-key behavior\n if (!closeOnBackdrop || !closeOnEscapeKey) {\n dialogRef.disableClose = true;\n }\n\n // set modal component stack Id\n const id = `${this._nextModalStackId++}`;\n (dialogRef.componentRef?.instance as IModalComponent).modalStackId = id;\n\n // add to stack\n this._modalsStack.push({\n id,\n resolve,\n dialogRef,\n componentRef: dialogRef.componentRef?.instance as IModalComponent,\n });\n\n // handle dialog closed via backdrop click\n dialogRef.backdropClick().subscribe(() => {\n if (closeOnBackdrop) {\n dialogRef.close();\n const index = this._modalsStack.findIndex(item => item.dialogRef === dialogRef);\n\n if (index !== -1) {\n // dialog was closed without submitModal/closeModal\n const item = this._modalsStack[index];\n item.resolve(undefined);\n this._modalsStack.splice(index, 1);\n\n // restore parent dialog backdrop\n if (this._modalsStack.length > 0) {\n const parentDialog = this._modalsStack[this._modalsStack.length - 1];\n const overlayRef = (parentDialog.dialogRef as any)._ref?.overlayRef;\n if (overlayRef && overlayRef.backdropElement) {\n overlayRef.backdropElement.style.display = '';\n }\n }\n }\n }\n });\n // handle dialog closed via Esc key-press\n dialogRef.keydownEvents().subscribe(event => {\n if (event.key === 'Escape') {\n if (closeOnEscapeKey) {\n dialogRef.close();\n const index = this._modalsStack.findIndex(item => item.dialogRef === dialogRef);\n\n if (index !== -1) {\n // dialog was closed without submitModal/closeModal\n const item = this._modalsStack[index];\n item.resolve(undefined);\n this._modalsStack.splice(index, 1);\n\n // restore parent dialog backdrop\n if (this._modalsStack.length > 0) {\n const parentDialog = this._modalsStack[this._modalsStack.length - 1];\n const overlayRef = (parentDialog.dialogRef as any)._ref?.overlayRef;\n if (overlayRef && overlayRef.backdropElement) {\n overlayRef.backdropElement.style.display = '';\n }\n }\n }\n }\n }\n });\n });\n }\n\n public submitModal<T>(data: T): void {\n if (this._modalsStack.length === 0) return;\n\n const currentItem = this._modalsStack.pop()!;\n currentItem.resolve(data);\n currentItem.dialogRef.close();\n\n // restore parent dialog backdrop\n if (this._modalsStack.length > 0) {\n const parentDialog = this._modalsStack[this._modalsStack.length - 1];\n const overlayRef = (parentDialog.dialogRef as any)._ref?.overlayRef;\n if (overlayRef && overlayRef.backdropElement) {\n overlayRef.backdropElement.style.display = '';\n }\n }\n }\n\n public closeModal(): void {\n if (this._modalsStack.length === 0) return;\n\n const currentItem = this._modalsStack.pop()!;\n currentItem.resolve(undefined);\n if (currentItem.dialogRef.disableClose) {\n currentItem.dialogRef.disableClose = false;\n }\n currentItem.dialogRef.close();\n\n // restore parent dialog backdrop\n if (this._modalsStack.length > 0) {\n const parentDialog = this._modalsStack[this._modalsStack.length - 1];\n const overlayRef = (parentDialog.dialogRef as any)._ref?.overlayRef;\n if (overlayRef && overlayRef.backdropElement) {\n overlayRef.backdropElement.style.display = '';\n }\n }\n }\n\n public showTitle(modalStackId: string | undefined): boolean | undefined {\n return this._modalsStack.find(item => item.id === modalStackId)?.componentRef.showTitle;\n }\n\n public getTitle(modalStackId: string | undefined): string | undefined {\n return this._modalsStack.find(item => item.id === modalStackId)?.componentRef.title;\n }\n\n public showBreadcrumbs(modalStackId: string | undefined): boolean | undefined {\n return this._modalsStack.find(item => item.id === modalStackId)?.componentRef.showBreadcrumbs;\n }\n\n public getBreadcrumbs(modalStackId: string | undefined): string[] {\n const breadcrumbs: string[] = [];\n for (const item of this._modalsStack) {\n const breadcrumb = item.componentRef.breadcrumb ?? item.componentRef.title;\n if (breadcrumb) breadcrumbs.push(breadcrumb);\n if (item.id === modalStackId) break;\n }\n return breadcrumbs;\n }\n\n public closeOnButton(modalStackId: string | undefined): boolean | undefined {\n return this._modalsStack.find(item => item.id === modalStackId)?.componentRef.closeOnButton;\n }\n}\n","/*\n * Public API Surface of cornerstone-client-angular-material\n */\n\nexport * from './lib/';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
package/index.d.ts CHANGED
@@ -1,15 +1,17 @@
1
- import { MatPaginatorIntl } from '@angular/material/paginator';
2
1
  import * as i0 from '@angular/core';
3
- import { InputSignal } from '@angular/core';
2
+ import { InputSignal, Type } from '@angular/core';
4
3
  import { CollectionViewAdapter } from '@intellegens/cornerstone-client-angular';
4
+ import { MatPaginatorIntl } from '@angular/material/paginator';
5
5
 
6
- /**
7
- * Custom paginator service to adjust the label for the paginator.
8
- */
9
- declare class MatPaginatorIntlOverrides extends MatPaginatorIntl {
10
- getRangeLabel: (page: number, pageSize: number, length: number) => string;
11
- static ɵfac: i0.ɵɵFactoryDeclaration<MatPaginatorIntlOverrides, never>;
12
- static ɵprov: i0.ɵɵInjectableDeclaration<MatPaginatorIntlOverrides>;
6
+ interface IModalComponent {
7
+ modalStackId?: string;
8
+ closeOnBackdrop?: boolean;
9
+ closeOnEscapeKey?: boolean;
10
+ title?: string;
11
+ showTitle?: boolean;
12
+ breadcrumb?: string;
13
+ showBreadcrumbs?: boolean;
14
+ closeOnButton?: boolean;
13
15
  }
14
16
 
15
17
  /**
@@ -38,4 +40,32 @@ declare class MatTableSortDirective {
38
40
  static ɵdir: i0.ɵɵDirectiveDeclaration<MatTableSortDirective, "mat-table[matSort], table[mat-table][matSort]", never, { "adapter": { "alias": "adapter"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
39
41
  }
40
42
 
41
- export { MatPaginatorIntlOverrides, MatTablePaginationDirective, MatTableSortDirective };
43
+ /**
44
+ * Custom paginator service to adjust the label for the paginator.
45
+ */
46
+ declare class MatPaginatorIntlOverrides extends MatPaginatorIntl {
47
+ getRangeLabel: (page: number, pageSize: number, length: number) => string;
48
+ static ɵfac: i0.ɵɵFactoryDeclaration<MatPaginatorIntlOverrides, never>;
49
+ static ɵprov: i0.ɵɵInjectableDeclaration<MatPaginatorIntlOverrides>;
50
+ }
51
+
52
+ declare class ModalService {
53
+ private _matDialog;
54
+ private _modalsStack;
55
+ private _nextModalStackId;
56
+ openModal<TResult>(component: Type<IModalComponent>, config?: {
57
+ inputs?: Record<string, any>;
58
+ }): Promise<TResult | undefined>;
59
+ submitModal<T>(data: T): void;
60
+ closeModal(): void;
61
+ showTitle(modalStackId: string | undefined): boolean | undefined;
62
+ getTitle(modalStackId: string | undefined): string | undefined;
63
+ showBreadcrumbs(modalStackId: string | undefined): boolean | undefined;
64
+ getBreadcrumbs(modalStackId: string | undefined): string[];
65
+ closeOnButton(modalStackId: string | undefined): boolean | undefined;
66
+ static ɵfac: i0.ɵɵFactoryDeclaration<ModalService, never>;
67
+ static ɵprov: i0.ɵɵInjectableDeclaration<ModalService>;
68
+ }
69
+
70
+ export { MatPaginatorIntlOverrides, MatTablePaginationDirective, MatTableSortDirective, ModalService };
71
+ export type { IModalComponent };
package/package.json CHANGED
@@ -1,22 +1,30 @@
1
1
  {
2
2
  "name": "@intellegens/cornerstone-client-angular-material",
3
- "version": "0.0.9999-alpha-8",
3
+ "version": "0.0.9999-alpha-11",
4
4
  "private": false,
5
5
  "publishable": true,
6
6
  "sideEffects": false,
7
+ "author": "Intellegens",
8
+ "license": "MIT",
9
+ "description": "",
10
+ "keywords": [
11
+ "intellegens",
12
+ "cornerstone"
13
+ ],
7
14
  "peerDependencies": {
8
- "@angular/common": "catalog:",
9
- "@angular/compiler": "catalog:",
10
- "@angular/core": "catalog:",
11
- "@angular/forms": "catalog:",
12
- "@angular/platform-browser": "catalog:",
13
- "@angular/material": "catalog:",
14
- "@angular/router": "catalog:",
15
- "rxjs": "catalog:",
16
- "@intellegens/cornerstone-client-angular": "workspace:*"
15
+ "@angular/common": "^20.0.0",
16
+ "@angular/compiler": "^20.0.0",
17
+ "@angular/core": "^20.0.0",
18
+ "@angular/forms": "^20.0.0",
19
+ "@angular/platform-browser": "^20.0.0",
20
+ "@angular/material": "^20.2.5",
21
+ "@angular/router": "^20.0.0",
22
+ "rxjs": "~7.8.0",
23
+ "@intellegens/cornerstone-client": "0.0.9999-alpha-11",
24
+ "@intellegens/cornerstone-client-angular": "0.0.9999-alpha-11"
17
25
  },
18
26
  "dependencies": {
19
- "tslib": "catalog:"
27
+ "tslib": "^2.3.0"
20
28
  },
21
29
  "module": "fesm2022/intellegens-cornerstone-client-angular-material.mjs",
22
30
  "typings": "index.d.ts",