@js-smart/ng-kit 20.6.2-beta.1 → 20.6.3

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 (80) hide show
  1. package/README.md +100 -80
  2. package/fesm2022/js-smart-ng-kit.mjs +2443 -0
  3. package/fesm2022/js-smart-ng-kit.mjs.map +1 -0
  4. package/index.d.ts +1100 -0
  5. package/package.json +13 -2
  6. package/eslint.config.js +0 -18
  7. package/karma.conf.js +0 -35
  8. package/ng-package.json +0 -11
  9. package/src/assets/app-buttons.css +0 -33
  10. package/src/assets/app-mat-snack-bar.css +0 -89
  11. package/src/assets/app-variables.css +0 -10
  12. package/src/assets/general.scss +0 -77
  13. package/src/assets/styles.scss +0 -5
  14. package/src/lib/components/alert/alert.component.html +0 -12
  15. package/src/lib/components/alert/alert.component.scss +0 -5
  16. package/src/lib/components/alert/alert.component.ts +0 -105
  17. package/src/lib/components/autocomplete/autocomplete.component.html +0 -42
  18. package/src/lib/components/autocomplete/autocomplete.component.ts +0 -207
  19. package/src/lib/components/buttons/base-button/base-button.component.html +0 -0
  20. package/src/lib/components/buttons/base-button/base-button.component.ts +0 -86
  21. package/src/lib/components/buttons/base-button/base-button.directive.ts +0 -87
  22. package/src/lib/components/buttons/bs-link-button/bs-link-button.component.ts +0 -37
  23. package/src/lib/components/buttons/bs-link-button/bs-link-button.directive.ts +0 -28
  24. package/src/lib/components/buttons/close-button/close-button.directive.ts +0 -12
  25. package/src/lib/components/buttons/delete-button/delete-button.component.ts +0 -42
  26. package/src/lib/components/buttons/delete-button/delete-button.directive.ts +0 -15
  27. package/src/lib/components/buttons/edit-bs-button/edit-bs-button.component.ts +0 -39
  28. package/src/lib/components/buttons/edit-bs-button/edit-bs-button.directive.ts +0 -37
  29. package/src/lib/components/buttons/edit-button/edit-button.component.ts +0 -37
  30. package/src/lib/components/buttons/edit-button/edit-button.directive.ts +0 -15
  31. package/src/lib/components/buttons/edit-svg-icon-button/edit-svg-icon-button.component.ts +0 -37
  32. package/src/lib/components/buttons/edit-svg-icon-button/edit-svg-icon-button.directive.ts +0 -39
  33. package/src/lib/components/buttons/excel-export-button/excel-export-button.component.ts +0 -23
  34. package/src/lib/components/buttons/excel-export-button/excel-export-button.directive.ts +0 -23
  35. package/src/lib/components/buttons/manage-button/manage-button.component.ts +0 -35
  36. package/src/lib/components/buttons/manage-button/manage-button.directive.ts +0 -15
  37. package/src/lib/components/buttons/pdf-export-button/pdf-export-button.component.ts +0 -20
  38. package/src/lib/components/buttons/pdf-export-button/pdf-export-button.directive.ts +0 -22
  39. package/src/lib/components/buttons/primary-button/primary-button.component.ts +0 -43
  40. package/src/lib/components/buttons/primary-button/primary-button.directive.ts +0 -16
  41. package/src/lib/components/buttons/save-primary-button/save-primary-button.component.ts +0 -43
  42. package/src/lib/components/buttons/save-primary-button/save-primary-button.directive.ts +0 -16
  43. package/src/lib/components/buttons/search-button/search-button.component.ts +0 -41
  44. package/src/lib/components/buttons/success-button/success-button.component.ts +0 -41
  45. package/src/lib/components/buttons/success-button/success-button.directive.ts +0 -15
  46. package/src/lib/components/buttons/view-button/view-button.component.ts +0 -32
  47. package/src/lib/components/buttons/view-button/view-button.directive.ts +0 -14
  48. package/src/lib/components/buttons/view-primary-button/view-primary-button.component.ts +0 -37
  49. package/src/lib/components/buttons/view-primary-button/view-primary-button.directive.ts +0 -15
  50. package/src/lib/components/confirm-dialog/confirm-dialog.component.ts +0 -56
  51. package/src/lib/components/ngx-spinner/ngx-spinner.component.css +0 -169
  52. package/src/lib/components/ngx-spinner/ngx-spinner.component.html +0 -24
  53. package/src/lib/components/ngx-spinner/ngx-spinner.component.spec.ts +0 -186
  54. package/src/lib/components/ngx-spinner/ngx-spinner.component.ts +0 -199
  55. package/src/lib/components/ngx-spinner/ngx-spinner.enum.ts +0 -45
  56. package/src/lib/components/ngx-spinner/ngx-spinner.service.ts +0 -66
  57. package/src/lib/components/ngx-spinner/safe-html.pipe.ts +0 -17
  58. package/src/lib/components/snack-bar/error-snack-bar/error-snack-bar.component.ts +0 -36
  59. package/src/lib/components/snack-bar/success-snack-bar/success-snack-bar.component.ts +0 -35
  60. package/src/lib/components/spinner/spinner.component.html +0 -11
  61. package/src/lib/components/spinner/spinner.component.scss +0 -18
  62. package/src/lib/components/spinner/spinner.component.ts +0 -31
  63. package/src/lib/directives/ngx-print/ngx-print.directive.ts +0 -281
  64. package/src/lib/directives/ngx-print/print-options.ts +0 -16
  65. package/src/lib/directives/prevent-multiple-clicks/prevent-multiple-clicks.directive.spec.ts +0 -99
  66. package/src/lib/directives/prevent-multiple-clicks/prevent-multiple-clicks.directive.ts +0 -36
  67. package/src/lib/services/mat-snack-bar.service.ts +0 -102
  68. package/src/lib/store/entity-store.spec.ts +0 -128
  69. package/src/lib/store/entity-store.ts +0 -88
  70. package/src/lib/store/store.spec.ts +0 -47
  71. package/src/lib/store/store.ts +0 -44
  72. package/src/lib/svg-icons/edit-solid-svg/edit-solid-svg.component.ts +0 -20
  73. package/src/lib/types/id-type.ts +0 -3
  74. package/src/lib/types/progress-state.ts +0 -7
  75. package/src/lib/util/progress-util.ts +0 -84
  76. package/src/public-api.ts +0 -64
  77. package/test.ts +0 -11
  78. package/tsconfig.lib.json +0 -12
  79. package/tsconfig.lib.prod.json +0 -10
  80. package/tsconfig.spec.json +0 -10
@@ -0,0 +1,2443 @@
1
+ import * as i0 from '@angular/core';
2
+ import { inject, ChangeDetectorRef, input, signal, output, effect, Component, Pipe, Injectable, HostListener, ViewChild, forwardRef, Input, Optional, DOCUMENT, Directive, ElementRef, ViewContainerRef, Inject, computed } from '@angular/core';
3
+ import { trigger, state, transition, style, animate } from '@angular/animations';
4
+ import { BehaviorSubject, Subject, throttleTime } from 'rxjs';
5
+ import { filter, takeUntil, startWith, map } from 'rxjs/operators';
6
+ import * as i1 from '@angular/platform-browser';
7
+ import * as i1$1 from '@angular/material/progress-spinner';
8
+ import { MatProgressSpinnerModule } from '@angular/material/progress-spinner';
9
+ import { AsyncPipe } from '@angular/common';
10
+ import * as i1$2 from '@angular/forms';
11
+ import { FormControl, ReactiveFormsModule, NG_VALUE_ACCESSOR } from '@angular/forms';
12
+ import * as i3 from '@angular/material/autocomplete';
13
+ import { MatAutocompleteModule } from '@angular/material/autocomplete';
14
+ import * as i1$3 from '@angular/material/button';
15
+ import { MatButtonModule, MatAnchor, MatButton } from '@angular/material/button';
16
+ import * as i2 from '@angular/material/form-field';
17
+ import { MatFormFieldModule } from '@angular/material/form-field';
18
+ import * as i1$4 from '@angular/material/icon';
19
+ import { MatIconModule, MatIcon } from '@angular/material/icon';
20
+ import * as i4 from '@angular/material/input';
21
+ import { MatInputModule } from '@angular/material/input';
22
+ import * as i1$5 from '@angular/material/dialog';
23
+ import { MAT_DIALOG_DATA, MatDialogModule } from '@angular/material/dialog';
24
+ import * as i3$1 from '@angular/material/divider';
25
+ import { MatDividerModule } from '@angular/material/divider';
26
+ import * as i1$6 from '@angular/material/snack-bar';
27
+ import { MAT_SNACK_BAR_DATA, MatSnackBar } from '@angular/material/snack-bar';
28
+
29
+ /**
30
+ * Boostrap Alert component that can be used to alert messages to the user
31
+ *
32
+ * @author Pavan Kumar Jadda
33
+ * @since 12.0.0
34
+ */
35
+ class AlertComponent {
36
+ constructor() {
37
+ this.cdr = inject(ChangeDetectorRef);
38
+ /**
39
+ * Type of the BootStrap Alert. Following values are supported. See BootStrap docs for more information
40
+ */
41
+ this.type = input('info', ...(ngDevMode ? [{ debugName: "type" }] : []));
42
+ /**
43
+ * Is alert visible or open
44
+ */
45
+ this.isOpen = input(true, ...(ngDevMode ? [{ debugName: "isOpen" }] : []));
46
+ /**
47
+ * Writable signal for isOpen
48
+ */
49
+ this.open = signal(this.isOpen(), ...(ngDevMode ? [{ debugName: "open" }] : []));
50
+ /**
51
+ * If set, displays an inline “Close” button
52
+ */
53
+ this.dismissible = input(true, ...(ngDevMode ? [{ debugName: "dismissible" }] : []));
54
+ /**
55
+ * If set, dismisses the alert after Dismiss Timeout
56
+ */
57
+ this.dismissOnTimeout = input(true, ...(ngDevMode ? [{ debugName: "dismissOnTimeout" }] : []));
58
+ /**
59
+ * Number in milliseconds, after which alert will be closed. Default value is 5000 ms
60
+ */
61
+ this.dismissTimeout = input(5000, ...(ngDevMode ? [{ debugName: "dismissTimeout" }] : []));
62
+ /**
63
+ * Additional classes to be added to the alert. This can be used to add custom styles to the alert
64
+ */
65
+ this.class = input('', ...(ngDevMode ? [{ debugName: "class" }] : []));
66
+ /**
67
+ * Emits when the alert is closed.
68
+ */
69
+ this.closed = output();
70
+ // React to isOpen input changes
71
+ effect(() => {
72
+ this.open.set(this.isOpen());
73
+ });
74
+ }
75
+ /**
76
+ * Initialize the component and settings
77
+ *
78
+ * @author Pavan Kumar Jadda
79
+ * @since 12.0.0
80
+ */
81
+ ngOnInit() {
82
+ this.openAlert();
83
+ if (this.dismissOnTimeout()) {
84
+ setTimeout(() => {
85
+ this.closeAlert();
86
+ this.cdr.markForCheck();
87
+ }, this.dismissTimeout());
88
+ }
89
+ }
90
+ /**
91
+ * Closes BootStrap Alert if not open
92
+ *
93
+ * @author Pavan Kumar Jadda
94
+ * @since 12.0.0
95
+ */
96
+ closeAlert() {
97
+ if (!this.isOpen()) {
98
+ return;
99
+ }
100
+ this.open.set(false);
101
+ this.closed.emit();
102
+ }
103
+ /**
104
+ * Opens Bootstrap Alert
105
+ *
106
+ * @author Pavan Kumar Jadda
107
+ * @since 12.0.0
108
+ */
109
+ openAlert() {
110
+ this.open.set(true);
111
+ }
112
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.0", ngImport: i0, type: AlertComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
113
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.1.0", type: AlertComponent, isStandalone: true, selector: "lib-alert, alert", inputs: { type: { classPropertyName: "type", publicName: "type", isSignal: true, isRequired: false, transformFunction: null }, isOpen: { classPropertyName: "isOpen", publicName: "isOpen", isSignal: true, isRequired: false, transformFunction: null }, dismissible: { classPropertyName: "dismissible", publicName: "dismissible", isSignal: true, isRequired: false, transformFunction: null }, dismissOnTimeout: { classPropertyName: "dismissOnTimeout", publicName: "dismissOnTimeout", isSignal: true, isRequired: false, transformFunction: null }, dismissTimeout: { classPropertyName: "dismissTimeout", publicName: "dismissTimeout", isSignal: true, isRequired: false, transformFunction: null }, class: { classPropertyName: "class", publicName: "class", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { closed: "closed" }, ngImport: i0, template: "@if (open()) {\n\t<div class=\"row {{ class() }}\">\n\t\t<div class=\"col-xs-12 col-sm-12 col-md-auto mx-auto\">\n\t\t\t<div class=\"alert alert-{{ type() }} alert-dismissible alert_div\" role=\"alert\">\n\t\t\t\t<ng-content></ng-content>\n\t\t\t\t@if (dismissible()) {\n\t\t\t\t\t<button (click)=\"closeAlert()\" aria-label=\"Close\" class=\"btn-close\" data-bs-dismiss=\"alert\" type=\"button\"></button>\n\t\t\t\t}\n\t\t\t</div>\n\t\t</div>\n\t</div>\n}\n", styles: [".alert_div{display:flex;align-items:center;justify-content:center}\n"] }); }
114
+ }
115
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.0", ngImport: i0, type: AlertComponent, decorators: [{
116
+ type: Component,
117
+ args: [{ selector: 'lib-alert, alert', template: "@if (open()) {\n\t<div class=\"row {{ class() }}\">\n\t\t<div class=\"col-xs-12 col-sm-12 col-md-auto mx-auto\">\n\t\t\t<div class=\"alert alert-{{ type() }} alert-dismissible alert_div\" role=\"alert\">\n\t\t\t\t<ng-content></ng-content>\n\t\t\t\t@if (dismissible()) {\n\t\t\t\t\t<button (click)=\"closeAlert()\" aria-label=\"Close\" class=\"btn-close\" data-bs-dismiss=\"alert\" type=\"button\"></button>\n\t\t\t\t}\n\t\t\t</div>\n\t\t</div>\n\t</div>\n}\n", styles: [".alert_div{display:flex;align-items:center;justify-content:center}\n"] }]
118
+ }], ctorParameters: () => [] });
119
+
120
+ const LOADERS = {
121
+ 'ball-clip-rotate': 1,
122
+ };
123
+ const DEFAULTS = {
124
+ BD_COLOR: 'rgba(51,51,51,0.8)',
125
+ SPINNER_COLOR: '#fff',
126
+ SPINNER_TYPE: 'ball-clip-rotate',
127
+ Z_INDEX: 99999,
128
+ };
129
+ const PRIMARY_SPINNER = 'primary';
130
+ class NgxSpinner {
131
+ constructor(init) {
132
+ Object.assign(this, init);
133
+ }
134
+ }
135
+
136
+ class SafeHtmlPipe {
137
+ constructor(_sanitizer) {
138
+ this._sanitizer = _sanitizer;
139
+ }
140
+ transform(v) {
141
+ if (v) {
142
+ return this._sanitizer.bypassSecurityTrustHtml(v);
143
+ }
144
+ return undefined;
145
+ }
146
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.0", ngImport: i0, type: SafeHtmlPipe, deps: [{ token: i1.DomSanitizer }], target: i0.ɵɵFactoryTarget.Pipe }); }
147
+ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "20.1.0", ngImport: i0, type: SafeHtmlPipe, isStandalone: true, name: "safeHtml" }); }
148
+ }
149
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.0", ngImport: i0, type: SafeHtmlPipe, decorators: [{
150
+ type: Pipe,
151
+ args: [{
152
+ name: 'safeHtml',
153
+ standalone: true,
154
+ }]
155
+ }], ctorParameters: () => [{ type: i1.DomSanitizer }] });
156
+
157
+ class NgxSpinnerService {
158
+ constructor() {
159
+ /**
160
+ * Spinner observable
161
+ *
162
+ * @memberof NgxSpinnerService
163
+ */
164
+ // private spinnerObservable = new ReplaySubject<NgxSpinner>(1);
165
+ this.spinnerObservable = new BehaviorSubject(undefined);
166
+ }
167
+ /**
168
+ * Creates an instance of NgxSpinnerService.
169
+ * @memberof NgxSpinnerService
170
+ */
171
+ /**
172
+ * Get subscription of desired spinner
173
+ * @memberof NgxSpinnerService
174
+ **/
175
+ getSpinner(name) {
176
+ // @ts-ignore
177
+ return this.spinnerObservable.asObservable().pipe(filter((x) => x?.name === name));
178
+ }
179
+ /**
180
+ * To show spinner
181
+ *
182
+ * @memberof NgxSpinnerService
183
+ */
184
+ show(name = PRIMARY_SPINNER, spinner) {
185
+ return new Promise((resolve, _reject) => {
186
+ setTimeout(() => {
187
+ if (spinner && Object.keys(spinner).length) {
188
+ // @ts-ignore
189
+ spinner['name'] = name;
190
+ this.spinnerObservable.next(new NgxSpinner({ ...spinner, show: true }));
191
+ resolve(true);
192
+ }
193
+ else {
194
+ this.spinnerObservable.next(new NgxSpinner({ name, show: true }));
195
+ resolve(true);
196
+ }
197
+ }, 10);
198
+ });
199
+ }
200
+ /**
201
+ * To hide spinner
202
+ *
203
+ * @memberof NgxSpinnerService
204
+ */
205
+ hide(name = PRIMARY_SPINNER, debounce = 10) {
206
+ return new Promise((resolve, _reject) => {
207
+ setTimeout(() => {
208
+ this.spinnerObservable.next(new NgxSpinner({ name, show: false }));
209
+ resolve(true);
210
+ }, debounce);
211
+ });
212
+ }
213
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.0", ngImport: i0, type: NgxSpinnerService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
214
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.1.0", ngImport: i0, type: NgxSpinnerService, providedIn: 'root' }); }
215
+ }
216
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.0", ngImport: i0, type: NgxSpinnerService, decorators: [{
217
+ type: Injectable,
218
+ args: [{
219
+ providedIn: 'root',
220
+ }]
221
+ }] });
222
+
223
+ class NgxSpinnerComponent {
224
+ /**
225
+ * Creates an instance of NgxSpinnerComponent.
226
+ */
227
+ constructor(spinnerService, changeDetector) {
228
+ this.spinnerService = spinnerService;
229
+ this.changeDetector = changeDetector;
230
+ /**
231
+ * To set backdrop color
232
+ * Only supports RGBA color format
233
+ */
234
+ this.bdColor = input(DEFAULTS.BD_COLOR, ...(ngDevMode ? [{ debugName: "bdColor" }] : []));
235
+ /**
236
+ * To set spinner size
237
+ */
238
+ this.size = input('large', ...(ngDevMode ? [{ debugName: "size" }] : []));
239
+ /**
240
+ * To set spinner color(DEFAULTS.SPINNER_COLOR)
241
+ */
242
+ this.color = input(DEFAULTS.SPINNER_COLOR, ...(ngDevMode ? [{ debugName: "color" }] : []));
243
+ /**
244
+ * To set type of spinner
245
+ */
246
+ this.type = input(DEFAULTS.SPINNER_TYPE, ...(ngDevMode ? [{ debugName: "type" }] : []));
247
+ /**
248
+ * To toggle fullscreen mode
249
+ */
250
+ this.fullScreen = input(true, ...(ngDevMode ? [{ debugName: "fullScreen" }] : []));
251
+ /**
252
+ * Spinner name
253
+ */
254
+ this.name = input(PRIMARY_SPINNER, ...(ngDevMode ? [{ debugName: "name" }] : []));
255
+ /**
256
+ * z-index value
257
+ */
258
+ this.zIndex = input(DEFAULTS.Z_INDEX, ...(ngDevMode ? [{ debugName: "zIndex" }] : []));
259
+ /**
260
+ * Custom template for spinner/loader
261
+ */
262
+ this.template = input('', ...(ngDevMode ? [{ debugName: "template" }] : []));
263
+ /**
264
+ * Show/Hide the spinner
265
+ */
266
+ this.showSpinner = input(false, ...(ngDevMode ? [{ debugName: "showSpinner" }] : []));
267
+ /**
268
+ * To enable/disable animation
269
+ */
270
+ this.disableAnimation = input(false, ...(ngDevMode ? [{ debugName: "disableAnimation" }] : []));
271
+ /**
272
+ * Spinner Object
273
+ */
274
+ this.spinner = new NgxSpinner();
275
+ /**
276
+ * Array for spinner's div
277
+ */
278
+ this.divArray = [];
279
+ /**
280
+ * Counter for div
281
+ */
282
+ this.divCount = 0;
283
+ /**
284
+ * Show spinner
285
+ **/
286
+ this.show = false;
287
+ /**
288
+ * Unsubscribe from spinner's observable
289
+ **/
290
+ this.ngUnsubscribe = new Subject();
291
+ /**
292
+ * To set default ngx-spinner options
293
+ */
294
+ this.setDefaultOptions = () => {
295
+ this.spinner = new NgxSpinner({
296
+ name: this.name(),
297
+ bdColor: this.bdColor(),
298
+ size: this.size(),
299
+ color: this.color(),
300
+ type: this.type(),
301
+ fullScreen: this.fullScreen(),
302
+ divArray: this.divArray,
303
+ divCount: this.divCount,
304
+ show: this.show,
305
+ zIndex: this.zIndex(),
306
+ template: this.template(),
307
+ showSpinner: this.showSpinner(),
308
+ });
309
+ };
310
+ }
311
+ handleKeyboardEvent(event) {
312
+ if (this.spinnerDOM?.nativeElement) {
313
+ event.returnValue = false;
314
+ event.preventDefault();
315
+ }
316
+ }
317
+ /**
318
+ * Initialization method
319
+ */
320
+ ngOnInit() {
321
+ this.setDefaultOptions();
322
+ this.spinnerService
323
+ .getSpinner(this.name())
324
+ .pipe(takeUntil(this.ngUnsubscribe))
325
+ .subscribe((spinner) => {
326
+ this.setDefaultOptions();
327
+ Object.assign(this.spinner, spinner);
328
+ if (spinner.show) {
329
+ this.onInputChange();
330
+ }
331
+ this.changeDetector.detectChanges();
332
+ });
333
+ }
334
+ /**
335
+ * To get class for spinner
336
+ */
337
+ getClass(type, size) {
338
+ // @ts-ignore
339
+ this.spinner.divCount = LOADERS[type];
340
+ this.spinner.divArray = Array(this.spinner.divCount)
341
+ .fill(0)
342
+ .map((_x, i) => i);
343
+ let sizeClass = '';
344
+ switch (size.toLowerCase()) {
345
+ case 'small':
346
+ sizeClass = 'la-sm';
347
+ break;
348
+ case 'medium':
349
+ sizeClass = 'la-2x';
350
+ break;
351
+ case 'large':
352
+ sizeClass = 'la-3x';
353
+ break;
354
+ default:
355
+ break;
356
+ }
357
+ return 'la-' + type + ' ' + sizeClass;
358
+ }
359
+ /**
360
+ * Check if input variables have changed
361
+ */
362
+ onInputChange() {
363
+ this.spinner.class = this.getClass(this.spinner.type ?? DEFAULTS.SPINNER_TYPE, this.spinner.size ?? 'default');
364
+ }
365
+ /**
366
+ * Component destroy event
367
+ */
368
+ ngOnDestroy() {
369
+ this.ngUnsubscribe.next();
370
+ this.ngUnsubscribe.complete();
371
+ }
372
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.0", ngImport: i0, type: NgxSpinnerComponent, deps: [{ token: NgxSpinnerService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
373
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.1.0", type: NgxSpinnerComponent, isStandalone: true, selector: "ngx-spinner", inputs: { bdColor: { classPropertyName: "bdColor", publicName: "bdColor", isSignal: true, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, color: { classPropertyName: "color", publicName: "color", isSignal: true, isRequired: false, transformFunction: null }, type: { classPropertyName: "type", publicName: "type", isSignal: true, isRequired: false, transformFunction: null }, fullScreen: { classPropertyName: "fullScreen", publicName: "fullScreen", isSignal: true, isRequired: false, transformFunction: null }, name: { classPropertyName: "name", publicName: "name", isSignal: true, isRequired: false, transformFunction: null }, zIndex: { classPropertyName: "zIndex", publicName: "zIndex", isSignal: true, isRequired: false, transformFunction: null }, template: { classPropertyName: "template", publicName: "template", isSignal: true, isRequired: false, transformFunction: null }, showSpinner: { classPropertyName: "showSpinner", publicName: "showSpinner", isSignal: true, isRequired: false, transformFunction: null }, disableAnimation: { classPropertyName: "disableAnimation", publicName: "disableAnimation", isSignal: true, isRequired: false, transformFunction: null } }, host: { listeners: { "document:keydown": "handleKeyboardEvent($event)" } }, viewQueries: [{ propertyName: "spinnerDOM", first: true, predicate: ["overlay"], descendants: true }], ngImport: i0, template: "@if (spinner.show) {\n\t<div\n\t\t#overlay\n\t\t[@.disabled]=\"disableAnimation()\"\n\t\t[@fadeIn]=\"'in'\"\n\t\t[style.background-color]=\"spinner.bdColor\"\n\t\t[style.position]=\"spinner.fullScreen ? 'fixed' : 'absolute'\"\n\t\t[style.z-index]=\"spinner.zIndex\"\n\t\tclass=\"ngx-spinner-overlay\">\n\t\t@if (spinner.show) {\n\t\t\t<div [class]=\"spinner.class\" [style.color]=\"spinner.color\">\n\t\t\t\t@for (index of spinner.divArray; track index) {\n\t\t\t\t\t<div></div>\n\t\t\t\t}\n\t\t\t</div>\n\t\t}\n\t\t@if (template()) {\n\t\t\t<div [innerHTML]=\"template() | safeHtml\"></div>\n\t\t}\n\t\t<div [style.z-index]=\"spinner.zIndex\" class=\"loading-text\">\n\t\t\t<ng-content></ng-content>\n\t\t</div>\n\t</div>\n}\n", styles: [".la-ball-clip-rotate,.la-ball-clip-rotate>div{position:relative;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.la-ball-clip-rotate{display:block;font-size:0;color:#fff}.la-ball-clip-rotate.la-dark{color:#333}.la-ball-clip-rotate>div{display:inline-block;float:none;background-color:currentColor;border:0 solid currentColor}.la-ball-clip-rotate{width:32px;height:32px}.la-ball-clip-rotate>div{width:32px;height:32px;background:transparent;border-width:2px;border-bottom-color:transparent;border-radius:100%;-webkit-animation:ball-clip-rotate .75s linear infinite;-moz-animation:ball-clip-rotate .75s linear infinite;-o-animation:ball-clip-rotate .75s linear infinite;animation:ball-clip-rotate .75s linear infinite}.la-ball-clip-rotate.la-sm{width:16px;height:16px}.la-ball-clip-rotate.la-sm>div{width:16px;height:16px;border-width:1px}.la-ball-clip-rotate.la-2x{width:64px;height:64px}.la-ball-clip-rotate.la-2x>div{width:64px;height:64px;border-width:4px}.la-ball-clip-rotate.la-3x{width:96px;height:96px}.la-ball-clip-rotate.la-3x>div{width:96px;height:96px;border-width:6px}@-webkit-keyframes ball-clip-rotate{0%{-webkit-transform:rotate(0deg);transform:rotate(0)}50%{-webkit-transform:rotate(180deg);transform:rotate(180deg)}to{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}@-moz-keyframes ball-clip-rotate{0%{-moz-transform:rotate(0deg);transform:rotate(0)}50%{-moz-transform:rotate(180deg);transform:rotate(180deg)}to{-moz-transform:rotate(360deg);transform:rotate(360deg)}}@-o-keyframes ball-clip-rotate{0%{-o-transform:rotate(0deg);transform:rotate(0)}50%{-o-transform:rotate(180deg);transform:rotate(180deg)}to{-o-transform:rotate(360deg);transform:rotate(360deg)}}@keyframes ball-clip-rotate{0%{-webkit-transform:rotate(0deg);-moz-transform:rotate(0deg);-o-transform:rotate(0deg);transform:rotate(0)}50%{-webkit-transform:rotate(180deg);-moz-transform:rotate(180deg);-o-transform:rotate(180deg);transform:rotate(180deg)}to{-webkit-transform:rotate(360deg);-moz-transform:rotate(360deg);-o-transform:rotate(360deg);transform:rotate(360deg)}}.ngx-spinner-overlay{position:fixed;top:0;left:0;width:100%;height:100%}.ngx-spinner-overlay>div:not(.loading-text){top:50%;left:50%;margin:0;position:absolute;transform:translate(-50%,-50%)}.loading-text{position:absolute;top:60%;left:50%;transform:translate(-50%,-60%)}\n/*!\n * Load Awesome v1.1.0 (http://github.danielcardoso.net/load-awesome/)\n * Copyright 2015 Daniel Cardoso <@DanielCardoso>\n * Licensed under MIT\n */\n"], dependencies: [{ kind: "pipe", type: SafeHtmlPipe, name: "safeHtml" }], animations: [
374
+ trigger('fadeIn', [
375
+ state('in', style({ opacity: 1 })),
376
+ transition(':enter', [style({ opacity: 0 }), animate(300)]),
377
+ transition(':leave', animate(200, style({ opacity: 0 }))),
378
+ ]),
379
+ ] }); }
380
+ }
381
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.0", ngImport: i0, type: NgxSpinnerComponent, decorators: [{
382
+ type: Component,
383
+ args: [{ selector: 'ngx-spinner', imports: [SafeHtmlPipe], animations: [
384
+ trigger('fadeIn', [
385
+ state('in', style({ opacity: 1 })),
386
+ transition(':enter', [style({ opacity: 0 }), animate(300)]),
387
+ transition(':leave', animate(200, style({ opacity: 0 }))),
388
+ ]),
389
+ ], template: "@if (spinner.show) {\n\t<div\n\t\t#overlay\n\t\t[@.disabled]=\"disableAnimation()\"\n\t\t[@fadeIn]=\"'in'\"\n\t\t[style.background-color]=\"spinner.bdColor\"\n\t\t[style.position]=\"spinner.fullScreen ? 'fixed' : 'absolute'\"\n\t\t[style.z-index]=\"spinner.zIndex\"\n\t\tclass=\"ngx-spinner-overlay\">\n\t\t@if (spinner.show) {\n\t\t\t<div [class]=\"spinner.class\" [style.color]=\"spinner.color\">\n\t\t\t\t@for (index of spinner.divArray; track index) {\n\t\t\t\t\t<div></div>\n\t\t\t\t}\n\t\t\t</div>\n\t\t}\n\t\t@if (template()) {\n\t\t\t<div [innerHTML]=\"template() | safeHtml\"></div>\n\t\t}\n\t\t<div [style.z-index]=\"spinner.zIndex\" class=\"loading-text\">\n\t\t\t<ng-content></ng-content>\n\t\t</div>\n\t</div>\n}\n", styles: [".la-ball-clip-rotate,.la-ball-clip-rotate>div{position:relative;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.la-ball-clip-rotate{display:block;font-size:0;color:#fff}.la-ball-clip-rotate.la-dark{color:#333}.la-ball-clip-rotate>div{display:inline-block;float:none;background-color:currentColor;border:0 solid currentColor}.la-ball-clip-rotate{width:32px;height:32px}.la-ball-clip-rotate>div{width:32px;height:32px;background:transparent;border-width:2px;border-bottom-color:transparent;border-radius:100%;-webkit-animation:ball-clip-rotate .75s linear infinite;-moz-animation:ball-clip-rotate .75s linear infinite;-o-animation:ball-clip-rotate .75s linear infinite;animation:ball-clip-rotate .75s linear infinite}.la-ball-clip-rotate.la-sm{width:16px;height:16px}.la-ball-clip-rotate.la-sm>div{width:16px;height:16px;border-width:1px}.la-ball-clip-rotate.la-2x{width:64px;height:64px}.la-ball-clip-rotate.la-2x>div{width:64px;height:64px;border-width:4px}.la-ball-clip-rotate.la-3x{width:96px;height:96px}.la-ball-clip-rotate.la-3x>div{width:96px;height:96px;border-width:6px}@-webkit-keyframes ball-clip-rotate{0%{-webkit-transform:rotate(0deg);transform:rotate(0)}50%{-webkit-transform:rotate(180deg);transform:rotate(180deg)}to{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}@-moz-keyframes ball-clip-rotate{0%{-moz-transform:rotate(0deg);transform:rotate(0)}50%{-moz-transform:rotate(180deg);transform:rotate(180deg)}to{-moz-transform:rotate(360deg);transform:rotate(360deg)}}@-o-keyframes ball-clip-rotate{0%{-o-transform:rotate(0deg);transform:rotate(0)}50%{-o-transform:rotate(180deg);transform:rotate(180deg)}to{-o-transform:rotate(360deg);transform:rotate(360deg)}}@keyframes ball-clip-rotate{0%{-webkit-transform:rotate(0deg);-moz-transform:rotate(0deg);-o-transform:rotate(0deg);transform:rotate(0)}50%{-webkit-transform:rotate(180deg);-moz-transform:rotate(180deg);-o-transform:rotate(180deg);transform:rotate(180deg)}to{-webkit-transform:rotate(360deg);-moz-transform:rotate(360deg);-o-transform:rotate(360deg);transform:rotate(360deg)}}.ngx-spinner-overlay{position:fixed;top:0;left:0;width:100%;height:100%}.ngx-spinner-overlay>div:not(.loading-text){top:50%;left:50%;margin:0;position:absolute;transform:translate(-50%,-50%)}.loading-text{position:absolute;top:60%;left:50%;transform:translate(-50%,-60%)}\n/*!\n * Load Awesome v1.1.0 (http://github.danielcardoso.net/load-awesome/)\n * Copyright 2015 Daniel Cardoso <@DanielCardoso>\n * Licensed under MIT\n */\n"] }]
390
+ }], ctorParameters: () => [{ type: NgxSpinnerService }, { type: i0.ChangeDetectorRef }], propDecorators: { spinnerDOM: [{
391
+ type: ViewChild,
392
+ args: ['overlay']
393
+ }], handleKeyboardEvent: [{
394
+ type: HostListener,
395
+ args: ['document:keydown', ['$event']]
396
+ }] } });
397
+
398
+ class SpinnerComponent {
399
+ constructor() {
400
+ /**
401
+ * Use Boostrap Spinner. Default `true`
402
+ */
403
+ this.bootstrapSpinner = input(true, ...(ngDevMode ? [{ debugName: "bootstrapSpinner" }] : []));
404
+ /**
405
+ * Diameter of the Angular Material spinner
406
+ */
407
+ this.diameter = input(50, ...(ngDevMode ? [{ debugName: "diameter" }] : []));
408
+ /**
409
+ * Color of the Angular Material spinner
410
+ */
411
+ this.color = input('primary', ...(ngDevMode ? [{ debugName: "color" }] : []));
412
+ /**
413
+ * Stroke Width of the Angular Material spinner
414
+ */
415
+ this.strokeWidth = input(5, ...(ngDevMode ? [{ debugName: "strokeWidth" }] : []));
416
+ }
417
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.0", ngImport: i0, type: SpinnerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
418
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.1.0", type: SpinnerComponent, isStandalone: true, selector: "spinner,lib-spinner", inputs: { bootstrapSpinner: { classPropertyName: "bootstrapSpinner", publicName: "bootstrapSpinner", isSignal: true, isRequired: false, transformFunction: null }, diameter: { classPropertyName: "diameter", publicName: "diameter", isSignal: true, isRequired: false, transformFunction: null }, color: { classPropertyName: "color", publicName: "color", isSignal: true, isRequired: false, transformFunction: null }, strokeWidth: { classPropertyName: "strokeWidth", publicName: "strokeWidth", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: "<!-- Angular Material Spinner -->\n@if (!bootstrapSpinner()) {\n\t<mat-spinner [color]=\"color()\" [diameter]=\"diameter()\" [strokeWidth]=\"strokeWidth()\" class=\"mx-auto\"> </mat-spinner>\n}\n\n<!-- Bootstrap Spinner -->\n@if (bootstrapSpinner()) {\n\t<div class=\"d-flex justify-content-center\">\n\t\t<div class=\"spinner-border bs-spinner\" role=\"status\"></div>\n\t</div>\n}\n", styles: [".bs-spinner-sm{color:#3f51b5;margin-bottom:20px}.bs-spinner{color:#3f51b5;width:3rem;height:3rem;margin-bottom:20px}.bs-spinner-lg{color:#3f51b5;width:5rem;height:5rem;margin-bottom:20px}\n"], dependencies: [{ kind: "ngmodule", type: MatProgressSpinnerModule }, { kind: "component", type: i1$1.MatProgressSpinner, selector: "mat-progress-spinner, mat-spinner", inputs: ["color", "mode", "value", "diameter", "strokeWidth"], exportAs: ["matProgressSpinner"] }] }); }
419
+ }
420
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.0", ngImport: i0, type: SpinnerComponent, decorators: [{
421
+ type: Component,
422
+ args: [{ selector: 'spinner,lib-spinner', imports: [MatProgressSpinnerModule], template: "<!-- Angular Material Spinner -->\n@if (!bootstrapSpinner()) {\n\t<mat-spinner [color]=\"color()\" [diameter]=\"diameter()\" [strokeWidth]=\"strokeWidth()\" class=\"mx-auto\"> </mat-spinner>\n}\n\n<!-- Bootstrap Spinner -->\n@if (bootstrapSpinner()) {\n\t<div class=\"d-flex justify-content-center\">\n\t\t<div class=\"spinner-border bs-spinner\" role=\"status\"></div>\n\t</div>\n}\n", styles: [".bs-spinner-sm{color:#3f51b5;margin-bottom:20px}.bs-spinner{color:#3f51b5;width:3rem;height:3rem;margin-bottom:20px}.bs-spinner-lg{color:#3f51b5;width:5rem;height:5rem;margin-bottom:20px}\n"] }]
423
+ }] });
424
+
425
+ /**
426
+ * Reusable Auto Complete component that extends MatAutoComplete to show Clear icon and Arrow buttons
427
+ *
428
+ * @author Pavan Kumar Jadda
429
+ * @since 12.0.0
430
+ */
431
+ class AutocompleteComponent {
432
+ constructor() {
433
+ this.cdRef = inject(ChangeDetectorRef);
434
+ /**
435
+ * Internal form control for the autocomplete
436
+ */
437
+ this.control = new FormControl('');
438
+ /**
439
+ * Label of the AutoComplete
440
+ */
441
+ this.label = input('', ...(ngDevMode ? [{ debugName: "label" }] : []));
442
+ /**
443
+ * Placeholder of the AutoComplete
444
+ */
445
+ this.placeHolder = input('', ...(ngDevMode ? [{ debugName: "placeHolder" }] : []));
446
+ /**
447
+ * Appearance of the AutoComplete, defaults to `fill`
448
+ */
449
+ this.appearance = input('fill', ...(ngDevMode ? [{ debugName: "appearance" }] : []));
450
+ /**
451
+ * List of CSS classes that need to applied to autocomplete
452
+ */
453
+ this.classes = input('', ...(ngDevMode ? [{ debugName: "classes" }] : []));
454
+ /**
455
+ * Attribute of the Object whose value would be shown when searching for data. Defaults to `ID`
456
+ */
457
+ this.bindLabel = input('', ...(ngDevMode ? [{ debugName: "bindLabel" }] : []));
458
+ /**
459
+ * Attribute of the Object whose value would be used for search
460
+ */
461
+ this.bindValue = input('id', ...(ngDevMode ? [{ debugName: "bindValue" }] : []));
462
+ /**
463
+ * Function that maps an option's control value to its display value in the trigger.
464
+ */
465
+ this.displayWith = null;
466
+ /**
467
+ * Specifies if the autocomplete is required. Default is not required.
468
+ */
469
+ this.required = input(false, ...(ngDevMode ? [{ debugName: "required" }] : []));
470
+ /**
471
+ * Specifies if the autocomplete is disabled. Default is not required.
472
+ */
473
+ this.disabled = input(false, ...(ngDevMode ? [{ debugName: "disabled" }] : []));
474
+ /**
475
+ * List of Objects that need to be bind and searched for
476
+ */
477
+ this.data = input(...(ngDevMode ? [undefined, { debugName: "data" }] : []));
478
+ /**
479
+ * Emit selected value on selection changes
480
+ */
481
+ this.onSelectionChange = output();
482
+ /**
483
+ * BehaviorSubject that shows the current active arrow icon
484
+ */
485
+ this.arrowIconSubject = new BehaviorSubject('arrow_drop_down');
486
+ // ControlValueAccessor implementation
487
+ this.onChange = () => { };
488
+ this.onTouched = () => { };
489
+ }
490
+ writeValue(value) {
491
+ this.control.setValue(value, { emitEvent: false });
492
+ }
493
+ registerOnChange(fn) {
494
+ this.onChange = fn;
495
+ // Forward value changes from internal control to parent form
496
+ this.control.valueChanges.subscribe((value) => fn(value));
497
+ }
498
+ registerOnTouched(fn) {
499
+ this.onTouched = fn;
500
+ }
501
+ setDisabledState(isDisabled) {
502
+ if (isDisabled) {
503
+ this.control.disable();
504
+ }
505
+ else {
506
+ this.control.enable();
507
+ }
508
+ }
509
+ ngAfterContentChecked() {
510
+ this.cdRef.detectChanges();
511
+ }
512
+ ngOnInit() {
513
+ this.filteredOptions = this.control.valueChanges.pipe(startWith(''), map((value) => (typeof value === 'string' ? value : value !== null ? value[this.bindLabel()] : '')), map((propertyName) => this.data()?.filter((option) => {
514
+ return typeof option === 'string'
515
+ ? option?.toLowerCase().startsWith(propertyName.toLowerCase())
516
+ : option[this.bindLabel()]?.toLowerCase().indexOf(propertyName.toLowerCase()) === 0;
517
+ }) ?? this.data()?.slice()));
518
+ }
519
+ ngOnChanges(_changes) {
520
+ this.displayFn = this.displayFn.bind(this);
521
+ }
522
+ clearInput(evt) {
523
+ evt.stopPropagation();
524
+ this.control.reset();
525
+ this.onChange(null);
526
+ this.inputAutoComplete?.nativeElement.focus();
527
+ }
528
+ openOrClosePanel(evt, trigger) {
529
+ evt.stopPropagation();
530
+ if (trigger.panelOpen) {
531
+ trigger.closePanel();
532
+ }
533
+ else {
534
+ trigger.openPanel();
535
+ }
536
+ }
537
+ displayFn(object) {
538
+ if (this.displayWith !== undefined && this.displayWith !== null && typeof this.displayWith === 'function') {
539
+ this.displayFn = this.displayWith.bind(this);
540
+ return this.displayWith(object);
541
+ }
542
+ else {
543
+ if (typeof object === 'string') {
544
+ return object;
545
+ }
546
+ return object?.[this.bindLabel()] ? object[this.bindLabel()] : '';
547
+ }
548
+ }
549
+ emitSelectedValue($event) {
550
+ this.onSelectionChange.emit($event.source.value);
551
+ this.onChange($event.source.value);
552
+ this.onTouched();
553
+ }
554
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.0", ngImport: i0, type: AutocompleteComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
555
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.1.0", type: AutocompleteComponent, isStandalone: true, selector: "autocomplete, lib-autocomplete", inputs: { label: { classPropertyName: "label", publicName: "label", isSignal: true, isRequired: false, transformFunction: null }, placeHolder: { classPropertyName: "placeHolder", publicName: "placeHolder", isSignal: true, isRequired: false, transformFunction: null }, appearance: { classPropertyName: "appearance", publicName: "appearance", isSignal: true, isRequired: false, transformFunction: null }, classes: { classPropertyName: "classes", publicName: "classes", isSignal: true, isRequired: false, transformFunction: null }, bindLabel: { classPropertyName: "bindLabel", publicName: "bindLabel", isSignal: true, isRequired: false, transformFunction: null }, bindValue: { classPropertyName: "bindValue", publicName: "bindValue", isSignal: true, isRequired: false, transformFunction: null }, displayWith: { classPropertyName: "displayWith", publicName: "displayWith", isSignal: false, isRequired: false, transformFunction: null }, required: { classPropertyName: "required", publicName: "required", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, data: { classPropertyName: "data", publicName: "data", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { onSelectionChange: "onSelectionChange" }, providers: [
556
+ {
557
+ provide: NG_VALUE_ACCESSOR,
558
+ useExisting: forwardRef(() => AutocompleteComponent),
559
+ multi: true,
560
+ },
561
+ ], viewQueries: [{ propertyName: "inputAutoComplete", first: true, predicate: ["inputAutoComplete"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<div>\n\t<mat-form-field appearance=\"fill\" class=\"{{ classes() }}\">\n\t\t<mat-label>{{ label() }}</mat-label>\n\t\t<input\n\t\t\t#inputAutoComplete\n\t\t\t#trigger=\"matAutocompleteTrigger\"\n\t\t\t[formControl]=\"control\"\n\t\t\t[matAutocomplete]=\"auto\"\n\t\t\t[placeholder]=\"placeHolder()\"\n\t\t\t[required]=\"required()\"\n\t\t\tmatInput\n\t\t\ttype=\"text\" />\n\n\t\t<div matSuffix style=\"display: flex\">\n\t\t\t@if (control.value) {\n\t\t\t\t<button (click)=\"clearInput($event)\" aria-label=\"Clear\" mat-icon-button type=\"button\">\n\t\t\t\t\t<mat-icon>clear</mat-icon>\n\t\t\t\t</button>\n\t\t\t}\n\t\t\t<button (click)=\"openOrClosePanel($event, trigger)\" aria-label=\"Clear\" mat-icon-button type=\"button\">\n\t\t\t\t<mat-icon>{{ arrowIconSubject.getValue() }}</mat-icon>\n\t\t\t</button>\n\t\t</div>\n\n\t\t<mat-autocomplete\n\t\t\t#auto=\"matAutocomplete\"\n\t\t\t(closed)=\"arrowIconSubject.next('arrow_drop_down')\"\n\t\t\t(opened)=\"arrowIconSubject.next('arrow_drop_up')\"\n\t\t\t(optionSelected)=\"arrowIconSubject.next('arrow_drop_down')\"\n\t\t\t[displayWith]=\"displayFn\">\n\t\t\t@for (option of filteredOptions | async; track option[bindValue()]) {\n\t\t\t\t<mat-option (onSelectionChange)=\"emitSelectedValue($event)\" [value]=\"option\">\n\t\t\t\t\t@if (typeof option === 'string') {\n\t\t\t\t\t\t<ng-container>{{ option }}</ng-container>\n\t\t\t\t\t} @else if (typeof option === 'object') {\n\t\t\t\t\t\t<ng-container>{{ option[bindLabel()] }}</ng-container>\n\t\t\t\t\t}\n\t\t\t\t</mat-option>\n\t\t\t}\n\t\t</mat-autocomplete>\n\t</mat-form-field>\n</div>\n", dependencies: [{ kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1$2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1$2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$2.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i1$2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "ngmodule", type: MatFormFieldModule }, { kind: "component", type: i2.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i2.MatLabel, selector: "mat-label" }, { kind: "directive", type: i2.MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { kind: "ngmodule", type: MatAutocompleteModule }, { kind: "component", type: i3.MatAutocomplete, selector: "mat-autocomplete", inputs: ["aria-label", "aria-labelledby", "displayWith", "autoActiveFirstOption", "autoSelectActiveOption", "requireSelection", "panelWidth", "disableRipple", "class", "hideSingleSelectionIndicator"], outputs: ["optionSelected", "opened", "closed", "optionActivated"], exportAs: ["matAutocomplete"] }, { kind: "component", type: i3.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "directive", type: i3.MatAutocompleteTrigger, selector: "input[matAutocomplete], textarea[matAutocomplete]", inputs: ["matAutocomplete", "matAutocompletePosition", "matAutocompleteConnectedTo", "autocomplete", "matAutocompleteDisabled"], exportAs: ["matAutocompleteTrigger"] }, { kind: "ngmodule", type: MatInputModule }, { kind: "directive", type: i4.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly", "disabledInteractive"], exportAs: ["matInput"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i1$3.MatIconButton, selector: "button[mat-icon-button], a[mat-icon-button], button[matIconButton], a[matIconButton]", exportAs: ["matButton", "matAnchor"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i1$4.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "pipe", type: AsyncPipe, name: "async" }] }); }
562
+ }
563
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.0", ngImport: i0, type: AutocompleteComponent, decorators: [{
564
+ type: Component,
565
+ args: [{ selector: 'autocomplete, lib-autocomplete', imports: [ReactiveFormsModule, MatFormFieldModule, MatAutocompleteModule, MatInputModule, MatButtonModule, MatIconModule, AsyncPipe], providers: [
566
+ {
567
+ provide: NG_VALUE_ACCESSOR,
568
+ useExisting: forwardRef(() => AutocompleteComponent),
569
+ multi: true,
570
+ },
571
+ ], template: "<div>\n\t<mat-form-field appearance=\"fill\" class=\"{{ classes() }}\">\n\t\t<mat-label>{{ label() }}</mat-label>\n\t\t<input\n\t\t\t#inputAutoComplete\n\t\t\t#trigger=\"matAutocompleteTrigger\"\n\t\t\t[formControl]=\"control\"\n\t\t\t[matAutocomplete]=\"auto\"\n\t\t\t[placeholder]=\"placeHolder()\"\n\t\t\t[required]=\"required()\"\n\t\t\tmatInput\n\t\t\ttype=\"text\" />\n\n\t\t<div matSuffix style=\"display: flex\">\n\t\t\t@if (control.value) {\n\t\t\t\t<button (click)=\"clearInput($event)\" aria-label=\"Clear\" mat-icon-button type=\"button\">\n\t\t\t\t\t<mat-icon>clear</mat-icon>\n\t\t\t\t</button>\n\t\t\t}\n\t\t\t<button (click)=\"openOrClosePanel($event, trigger)\" aria-label=\"Clear\" mat-icon-button type=\"button\">\n\t\t\t\t<mat-icon>{{ arrowIconSubject.getValue() }}</mat-icon>\n\t\t\t</button>\n\t\t</div>\n\n\t\t<mat-autocomplete\n\t\t\t#auto=\"matAutocomplete\"\n\t\t\t(closed)=\"arrowIconSubject.next('arrow_drop_down')\"\n\t\t\t(opened)=\"arrowIconSubject.next('arrow_drop_up')\"\n\t\t\t(optionSelected)=\"arrowIconSubject.next('arrow_drop_down')\"\n\t\t\t[displayWith]=\"displayFn\">\n\t\t\t@for (option of filteredOptions | async; track option[bindValue()]) {\n\t\t\t\t<mat-option (onSelectionChange)=\"emitSelectedValue($event)\" [value]=\"option\">\n\t\t\t\t\t@if (typeof option === 'string') {\n\t\t\t\t\t\t<ng-container>{{ option }}</ng-container>\n\t\t\t\t\t} @else if (typeof option === 'object') {\n\t\t\t\t\t\t<ng-container>{{ option[bindLabel()] }}</ng-container>\n\t\t\t\t\t}\n\t\t\t\t</mat-option>\n\t\t\t}\n\t\t</mat-autocomplete>\n\t</mat-form-field>\n</div>\n" }]
572
+ }], propDecorators: { inputAutoComplete: [{
573
+ type: ViewChild,
574
+ args: ['inputAutoComplete']
575
+ }], displayWith: [{
576
+ type: Input
577
+ }, {
578
+ type: Optional
579
+ }] } });
580
+
581
+ class PrintOptions {
582
+ constructor(options) {
583
+ this.printSectionId = '';
584
+ this.printTitle = '';
585
+ this.useExistingCss = false;
586
+ this.bodyClass = '';
587
+ this.openNewTab = false;
588
+ this.previewOnly = false;
589
+ this.closeWindow = true;
590
+ this.printDelay = 0;
591
+ if (options) {
592
+ Object.assign(this, options);
593
+ }
594
+ }
595
+ }
596
+
597
+ /**
598
+ * Reusable Angular directory that prints given contents of HTML element
599
+ *
600
+ * @since 12.0.0
601
+ * @author Pavan Kumar Jadda
602
+ */
603
+ class NgxPrintDirective {
604
+ constructor() {
605
+ this.document = inject(DOCUMENT);
606
+ /**
607
+ * If `true`, uses CSS of HTMl element, otherwise no CSS applied
608
+ *
609
+ * @since 12.0.0
610
+ * @author Pavan Kumar Jadda
611
+ */
612
+ this.useExistingCss = false;
613
+ /**
614
+ * A delay in milliseconds to force the print dialog to wait before opened. Default: 0
615
+ *
616
+ * @since 12.0.0
617
+ * @author Pavan Kumar Jadda
618
+ */
619
+ this.printDelay = 0;
620
+ /**
621
+ * ID of the Mat Paginator
622
+ *
623
+ * @since 12.0.0
624
+ * @author Pavan Kumar Jadda
625
+ */
626
+ this.paginatorId = '';
627
+ /**
628
+ * HTML tag ID of the Mat-Table Input Filter
629
+ *
630
+ * @since 12.0.0
631
+ * @author Pavan Kumar Jadda
632
+ */
633
+ this.inputFilterId = '';
634
+ /**
635
+ * If `true`, referenced table is Mat-Table
636
+ *
637
+ * @since 12.0.0
638
+ * @author Pavan Kumar Jadda
639
+ */
640
+ this.isMatTable = false;
641
+ /**
642
+ * If `true` Mat-Table paginator will be hidden
643
+ *
644
+ * @since 12.0.0
645
+ * @author Pavan Kumar Jadda
646
+ */
647
+ this.hideMatTablePaginator = false;
648
+ this.printStyleArray = [];
649
+ this.printOptions = new PrintOptions();
650
+ /**
651
+ * List of Style sheet files
652
+ *
653
+ * @since 12.0.0
654
+ * @author Pavan Kumar Jadda
655
+ */
656
+ this.styleSheetFileArray = '';
657
+ }
658
+ /**
659
+ * Prevents the print dialog from opening on the window
660
+ *
661
+ * @memberof NgxPrintDirective
662
+ */
663
+ set previewOnly(value) {
664
+ this.printOptions = { ...this.printOptions, previewOnly: value };
665
+ }
666
+ /**
667
+ * List of CSS properties that needs to be applied while printing the document
668
+ *
669
+ * @since 12.0.0
670
+ * @author Pavan Kumar Jadda
671
+ */
672
+ set printStyle({ values }) {
673
+ for (const key in values) {
674
+ if (Object.prototype.hasOwnProperty.call(values, key)) {
675
+ this.printStyleArray.push((key + JSON.stringify(values[key])).replace(/['"]+/g, ''));
676
+ }
677
+ }
678
+ this.returnStyleValues();
679
+ }
680
+ /**
681
+ * Sets given style sheet files to print document
682
+ *
683
+ * @param cssList Comma separated value of CSS file names
684
+ *
685
+ * @since 12.0.0
686
+ * @author Pavan Kumar Jadda
687
+ */
688
+ set styleSheetFile(cssList) {
689
+ if (cssList.indexOf(',') !== -1) {
690
+ const cssFileArray = cssList.split(',');
691
+ for (const cssFileName of cssFileArray) {
692
+ this.styleSheetFileArray = this.styleSheetFileArray + NgxPrintDirective.linkTagFn(cssFileName);
693
+ }
694
+ }
695
+ else {
696
+ this.styleSheetFileArray = NgxPrintDirective.linkTagFn(cssList);
697
+ }
698
+ }
699
+ /**
700
+ * Build link HTMl tag based on given file name
701
+ *
702
+ * @since 12.0.0
703
+ * @author Pavan Kumar Jadda
704
+ */
705
+ static linkTagFn(cssFileName) {
706
+ return `<link rel="stylesheet" type="text/css" href="${cssFileName}">`;
707
+ }
708
+ /**
709
+ * Gets HTML element by tag name
710
+ *
711
+ * @since 12.0.0
712
+ * @author Pavan Kumar Jadda
713
+ */
714
+ static getElementTag(tag) {
715
+ const html = [];
716
+ const elements = document.getElementsByTagName(tag);
717
+ // @ts-ignore
718
+ for (const element of elements) {
719
+ html.push(element.outerHTML);
720
+ }
721
+ return html.join('\r\n');
722
+ }
723
+ /**
724
+ * Print the element upon clicking the button
725
+ *
726
+ * @since 12.0.0
727
+ * @author Pavan Kumar Jadda
728
+ */
729
+ print() {
730
+ //Hide paginator for Material table
731
+ if (this.isMatTable && this.hideMatTablePaginator && this.matTableDataSource) {
732
+ this.matTableDataSource.paginator = null;
733
+ }
734
+ setTimeout(() => {
735
+ if (this.isMatTable) {
736
+ this.hideMatPaginatorBeforePrinting();
737
+ }
738
+ // Do something after
739
+ let printContents;
740
+ let popupWin;
741
+ let styles = '';
742
+ let links = '';
743
+ if (this.useExistingCss) {
744
+ styles = NgxPrintDirective.getElementTag('style');
745
+ links = NgxPrintDirective.getElementTag('link');
746
+ }
747
+ if (this.printSectionId) {
748
+ printContents = this.document.getElementById(this.printSectionId)?.innerHTML;
749
+ popupWin = window.open('', '_blank', 'top=0,left=0,height=auto,width=auto');
750
+ popupWin?.document.open();
751
+ popupWin?.document.write(`
752
+ <html lang="en-us">
753
+ <head>
754
+ <title>${this.printTitle ? this.printTitle : ''}</title>
755
+ ${this.returnStyleValues()}
756
+ ${this.styleSheetFileArray}
757
+ ${styles}
758
+ ${links}
759
+ </head>
760
+ <body>
761
+ ${printContents}
762
+ <script defer>
763
+ function triggerPrint() {
764
+ window.removeEventListener('load', triggerPrint, false);
765
+ setTimeout(() => {
766
+ window.print();
767
+ setTimeout(function() { window.close(); }, 0);
768
+ }, ${this.printDelay});
769
+ }
770
+ window.addEventListener('load', triggerPrint, false);
771
+ </script>
772
+ </body>
773
+ </html>`);
774
+ popupWin?.document.close();
775
+ //Revert back the mat-paginator after printing
776
+ if (this.isMatTable) {
777
+ this.showMatPaginatorAfterPrinting();
778
+ }
779
+ }
780
+ }, 1000); //1 second timeout to hide paginator
781
+ }
782
+ /**
783
+ * Hide Mat Paginator before Printing
784
+ *
785
+ * @since 12.0.1
786
+ * @author Pavan Kumar Jadda
787
+ */
788
+ hideMatPaginatorBeforePrinting() {
789
+ // @ts-ignore
790
+ this.document.getElementById(this.paginatorId).style.display = 'none';
791
+ if (this.document.getElementById(this.inputFilterId) != null) {
792
+ // @ts-ignore
793
+ this.document.getElementById(this.inputFilterId).style.display = 'none';
794
+ }
795
+ }
796
+ /**
797
+ * Show Mat Paginator after Printing
798
+ *
799
+ * @since 12.0.1
800
+ * @author Pavan Kumar Jadda
801
+ */
802
+ showMatPaginatorAfterPrinting() {
803
+ this.matTableDataSource.paginator = this.paginator;
804
+ // @ts-ignore
805
+ this.document.getElementById(this.paginatorId).style.display = 'block';
806
+ if (this.document.getElementById(this.inputFilterId) != null) {
807
+ // @ts-ignore
808
+ this.document.getElementById(this.inputFilterId).style.display = 'block';
809
+ }
810
+ }
811
+ /**
812
+ * @returns the string that create the stylesheet which will be injected later within <style></style> tag. Join/replace to transform an array objects to css-styled string
813
+ *
814
+ * @since 12.0.0
815
+ * @author Pavan Kumar Jadda
816
+ */
817
+ returnStyleValues() {
818
+ return `<style> ${this.printStyleArray.join(' ').replace(/,/g, ';')} </style>`;
819
+ }
820
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.0", ngImport: i0, type: NgxPrintDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
821
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.1.0", type: NgxPrintDirective, isStandalone: true, selector: "button[ngxPrint], button[print]", inputs: { printSectionId: "printSectionId", printTitle: "printTitle", useExistingCss: "useExistingCss", printDelay: "printDelay", matTableDataSource: "matTableDataSource", paginator: "paginator", paginatorId: "paginatorId", inputFilterId: "inputFilterId", isMatTable: "isMatTable", hideMatTablePaginator: "hideMatTablePaginator", previewOnly: "previewOnly", printStyle: "printStyle", styleSheetFile: "styleSheetFile" }, host: { listeners: { "click": "print()" } }, ngImport: i0 }); }
822
+ }
823
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.0", ngImport: i0, type: NgxPrintDirective, decorators: [{
824
+ type: Directive,
825
+ args: [{
826
+ selector: 'button[ngxPrint], button[print]',
827
+ standalone: true,
828
+ }]
829
+ }], propDecorators: { printSectionId: [{
830
+ type: Input
831
+ }], printTitle: [{
832
+ type: Input
833
+ }], useExistingCss: [{
834
+ type: Input
835
+ }], printDelay: [{
836
+ type: Input
837
+ }], matTableDataSource: [{
838
+ type: Input
839
+ }], paginator: [{
840
+ type: Input
841
+ }], paginatorId: [{
842
+ type: Input
843
+ }], inputFilterId: [{
844
+ type: Input
845
+ }], isMatTable: [{
846
+ type: Input
847
+ }], hideMatTablePaginator: [{
848
+ type: Input
849
+ }], previewOnly: [{
850
+ type: Input
851
+ }], printStyle: [{
852
+ type: Input
853
+ }], styleSheetFile: [{
854
+ type: Input
855
+ }], print: [{
856
+ type: HostListener,
857
+ args: ['click']
858
+ }] } });
859
+
860
+ class PreventMultipleClicksDirective {
861
+ constructor() {
862
+ this.throttleTime = input(2000, ...(ngDevMode ? [{ debugName: "throttleTime" }] : []));
863
+ this.throttleClick = output();
864
+ this.clicks = new Subject();
865
+ }
866
+ /**
867
+ * Intercepts click event and stops default navigation. After first click set {@link throttleTime} to 2000 to prevent duplicate clicks
868
+ *
869
+ * @param event DOM event
870
+ *
871
+ * @author Pavan Kumar Jadda
872
+ * @since 2.3.27
873
+ */
874
+ clickEvent(event) {
875
+ event.preventDefault();
876
+ event.stopPropagation();
877
+ this.clicks.next(event);
878
+ }
879
+ ngOnInit() {
880
+ this.subscription = this.clicks.pipe(throttleTime(this.throttleTime())).subscribe((e) => this.throttleClick.emit(e));
881
+ }
882
+ ngOnDestroy() {
883
+ this.subscription?.unsubscribe();
884
+ }
885
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.0", ngImport: i0, type: PreventMultipleClicksDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
886
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "20.1.0", type: PreventMultipleClicksDirective, isStandalone: true, selector: "[preventMultipleClicks]", inputs: { throttleTime: { classPropertyName: "throttleTime", publicName: "throttleTime", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { throttleClick: "throttleClick" }, host: { listeners: { "click": "clickEvent($event)" } }, ngImport: i0 }); }
887
+ }
888
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.0", ngImport: i0, type: PreventMultipleClicksDirective, decorators: [{
889
+ type: Directive,
890
+ args: [{
891
+ selector: '[preventMultipleClicks]',
892
+ standalone: true,
893
+ }]
894
+ }], propDecorators: { clickEvent: [{
895
+ type: HostListener,
896
+ args: ['click', ['$event']]
897
+ }] } });
898
+
899
+ class BaseButtonDirective {
900
+ constructor() {
901
+ this.icon = input('', ...(ngDevMode ? [{ debugName: "icon" }] : []));
902
+ this.loadingLabel = input('Loading...', ...(ngDevMode ? [{ debugName: "loadingLabel" }] : []));
903
+ this.loading = input(false, ...(ngDevMode ? [{ debugName: "loading" }] : []));
904
+ this.elementRef = inject(ElementRef);
905
+ this.document = inject(DOCUMENT);
906
+ this.originalText = signal('', ...(ngDevMode ? [{ debugName: "originalText" }] : []));
907
+ this.iconSpan = signal(null, ...(ngDevMode ? [{ debugName: "iconSpan" }] : []));
908
+ this.elementRef.nativeElement.classList.add('btn');
909
+ effect(() => {
910
+ this.updateContent();
911
+ });
912
+ }
913
+ ngOnInit() {
914
+ // Capture original text before creating icon
915
+ this.originalText.set(this.elementRef.nativeElement.textContent?.trim() || 'Button');
916
+ // Create icon after capturing text
917
+ this.createIcon();
918
+ }
919
+ /**
920
+ * Create icon element if icon name is provided
921
+ */
922
+ createIcon() {
923
+ if (this.icon()) {
924
+ const iconElement = this.document.createElement('mat-icon');
925
+ iconElement.classList.add('mat-icon', 'material-icons', 'pe-2');
926
+ iconElement.textContent = this.icon();
927
+ this.iconSpan.set(iconElement);
928
+ }
929
+ }
930
+ /**
931
+ * Update content of the button
932
+ */
933
+ updateContent() {
934
+ const element = this.elementRef.nativeElement;
935
+ element.innerHTML = '';
936
+ if (this.loading()) {
937
+ this.showLoadingState(element);
938
+ }
939
+ else {
940
+ this.showNormalState(element);
941
+ }
942
+ }
943
+ /**
944
+ * Show loading state. Add spinner and loadingLabel text
945
+ */
946
+ showLoadingState(element) {
947
+ // Create a new span element
948
+ const newSpan = this.document.createElement('span');
949
+ // Set its text content
950
+ newSpan.classList.add('spinner-border', 'spinner-border-sm', 'me-2');
951
+ newSpan.setAttribute('role', 'status');
952
+ // Append the new element to the host element
953
+ element.appendChild(newSpan);
954
+ element.appendChild(this.document.createTextNode(this.loadingLabel()));
955
+ element.setAttribute('disabled', 'true');
956
+ }
957
+ /**
958
+ * Show normal state. Add icon and original text
959
+ */
960
+ showNormalState(element) {
961
+ // Add icon and original text
962
+ const iconElement = this.iconSpan();
963
+ if (iconElement) {
964
+ element.appendChild(iconElement);
965
+ }
966
+ // Append text node instead of setting textContent (which overwrites the icon)
967
+ element.appendChild(this.document.createTextNode(this.originalText()));
968
+ element.removeAttribute('disabled');
969
+ }
970
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.0", ngImport: i0, type: BaseButtonDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
971
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "20.1.0", type: BaseButtonDirective, isStandalone: true, inputs: { icon: { classPropertyName: "icon", publicName: "icon", isSignal: true, isRequired: false, transformFunction: null }, loadingLabel: { classPropertyName: "loadingLabel", publicName: "loadingLabel", isSignal: true, isRequired: false, transformFunction: null }, loading: { classPropertyName: "loading", publicName: "loading", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0 }); }
972
+ }
973
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.0", ngImport: i0, type: BaseButtonDirective, decorators: [{
974
+ type: Directive
975
+ }], ctorParameters: () => [] });
976
+
977
+ class BaseButtonComponent {
978
+ constructor() {
979
+ /**
980
+ * Is search in progress and loading the data
981
+ */
982
+ this.loading = input(false, ...(ngDevMode ? [{ debugName: "loading", transform: (value) => value ?? false }] : [{ transform: (value) => value ?? false }]));
983
+ /**
984
+ * Is button disabled
985
+ */
986
+ this.disabled = input(false, ...(ngDevMode ? [{ debugName: "disabled" }] : []));
987
+ /**
988
+ * Type of the button. Following values are supported. See BootStrap docs for more information
989
+ * <pre>
990
+ * 1. button
991
+ * 2. submit
992
+ * </pre>
993
+ */
994
+ this.type = input('button', ...(ngDevMode ? [{ debugName: "type" }] : []));
995
+ /**
996
+ * If set, shows when action in Progress
997
+ */
998
+ this.loadingLabel = input('Saving...', ...(ngDevMode ? [{ debugName: "loadingLabel" }] : []));
999
+ /**
1000
+ * If set, shows when Delete is not in progress
1001
+ */
1002
+ this.label = input('Save', ...(ngDevMode ? [{ debugName: "label" }] : []));
1003
+ /**
1004
+ * If set, shows the icon. Otherwise, shows delete icon
1005
+ */
1006
+ this.icon = input('save', ...(ngDevMode ? [{ debugName: "icon" }] : []));
1007
+ /**
1008
+ * If set, shows material icon otherwise hides the icons
1009
+ */
1010
+ this.showIcon = input(true, ...(ngDevMode ? [{ debugName: "showIcon" }] : []));
1011
+ /**
1012
+ * If set, sets the style of the button
1013
+ */
1014
+ this.style = input(...(ngDevMode ? [undefined, { debugName: "style" }] : []));
1015
+ /**
1016
+ * If set, sets the class of the button
1017
+ */
1018
+ this.classes = input('btn', ...(ngDevMode ? [{ debugName: "classes" }] : []));
1019
+ /**
1020
+ * If set, sets the data-cy attribute for the button
1021
+ */
1022
+ this.dataCy = input('save-button', ...(ngDevMode ? [{ debugName: "dataCy" }] : []));
1023
+ /**
1024
+ * Output event when button is clicked
1025
+ */
1026
+ this.onClick = output();
1027
+ /**
1028
+ * Output event when button is focused
1029
+ */
1030
+ this.onFocus = output();
1031
+ /**
1032
+ * Output event when button is blurred
1033
+ */
1034
+ this.onBlur = output();
1035
+ /**
1036
+ * Output event when key is pressed
1037
+ */
1038
+ this.onKeyDown = output();
1039
+ /**
1040
+ * Output event when key is up
1041
+ */
1042
+ this.onKeyUp = output();
1043
+ }
1044
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.0", ngImport: i0, type: BaseButtonComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1045
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "20.1.0", type: BaseButtonComponent, isStandalone: true, selector: "ng-component", inputs: { loading: { classPropertyName: "loading", publicName: "loading", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, type: { classPropertyName: "type", publicName: "type", isSignal: true, isRequired: false, transformFunction: null }, loadingLabel: { classPropertyName: "loadingLabel", publicName: "loadingLabel", isSignal: true, isRequired: false, transformFunction: null }, label: { classPropertyName: "label", publicName: "label", isSignal: true, isRequired: false, transformFunction: null }, icon: { classPropertyName: "icon", publicName: "icon", isSignal: true, isRequired: false, transformFunction: null }, showIcon: { classPropertyName: "showIcon", publicName: "showIcon", isSignal: true, isRequired: false, transformFunction: null }, style: { classPropertyName: "style", publicName: "style", isSignal: true, isRequired: false, transformFunction: null }, classes: { classPropertyName: "classes", publicName: "classes", isSignal: true, isRequired: false, transformFunction: null }, dataCy: { classPropertyName: "dataCy", publicName: "dataCy", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { onClick: "onClick", onFocus: "onFocus", onBlur: "onBlur", onKeyDown: "onKeyDown", onKeyUp: "onKeyUp" }, ngImport: i0, template: ``, isInline: true }); }
1046
+ }
1047
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.0", ngImport: i0, type: BaseButtonComponent, decorators: [{
1048
+ type: Component,
1049
+ args: [{
1050
+ standalone: true,
1051
+ template: ``,
1052
+ }]
1053
+ }] });
1054
+
1055
+ class BsLinkButtonComponent extends BaseButtonComponent {
1056
+ constructor() {
1057
+ super();
1058
+ this.label = input('Edit', ...(ngDevMode ? [{ debugName: "label" }] : []));
1059
+ this.icon = input('search', ...(ngDevMode ? [{ debugName: "icon" }] : []));
1060
+ this.classes = input('btn text-primary', ...(ngDevMode ? [{ debugName: "classes" }] : []));
1061
+ }
1062
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.0", ngImport: i0, type: BsLinkButtonComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1063
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "20.1.0", type: BsLinkButtonComponent, isStandalone: true, selector: "bs-link-button", inputs: { label: { classPropertyName: "label", publicName: "label", isSignal: true, isRequired: false, transformFunction: null }, icon: { classPropertyName: "icon", publicName: "icon", isSignal: true, isRequired: false, transformFunction: null }, classes: { classPropertyName: "classes", publicName: "classes", isSignal: true, isRequired: false, transformFunction: null } }, usesInheritance: true, ngImport: i0, template: `
1064
+ <a
1065
+ type="{{ type() }}"
1066
+ class="{{ classes() }}"
1067
+ (click)="onClick.emit($event)"
1068
+ (focus)="onFocus.emit($event)"
1069
+ (blur)="onBlur.emit($event)"
1070
+ (keydown)="onKeyDown.emit($event)"
1071
+ (keyup)="onKeyUp.emit($event)"
1072
+ [disabled]="disabled()"
1073
+ [type]="type()"
1074
+ [style]="style()"
1075
+ [attr.data-cy]="'bs-link-button'"
1076
+ mat-button>
1077
+ <mat-icon>{{ icon() }}</mat-icon>
1078
+ {{ label() }}
1079
+ </a>
1080
+ `, isInline: true, styles: [".primary-button,.primary-button:hover,.primary-button:active,.primary-button:visited{color:#fff!important;background-color:var(--primary-color)!important}.secondary-button,.secondary-button:hover,.secondary-button:active,.secondary-button:visited{color:#fff!important;background-color:var(--secondary-color)!important}.success-button,.success-button:hover,.success-button:active,.success-button:visited{color:#fff!important;background-color:var(--success-color)!important}.delete-button,.delete-button:hover,.delete-button:active,.success-button:visited{color:#fff!important;background-color:var(--delete-color)!important}\n"], dependencies: [{ kind: "component", type: MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: MatAnchor, selector: " button[matButton], a[matButton], button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button], a[mat-button], a[mat-raised-button], a[mat-flat-button], a[mat-stroked-button] ", inputs: ["matButton"], exportAs: ["matButton", "matAnchor"] }] }); }
1081
+ }
1082
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.0", ngImport: i0, type: BsLinkButtonComponent, decorators: [{
1083
+ type: Component,
1084
+ args: [{ selector: 'bs-link-button', imports: [MatIcon, MatAnchor], template: `
1085
+ <a
1086
+ type="{{ type() }}"
1087
+ class="{{ classes() }}"
1088
+ (click)="onClick.emit($event)"
1089
+ (focus)="onFocus.emit($event)"
1090
+ (blur)="onBlur.emit($event)"
1091
+ (keydown)="onKeyDown.emit($event)"
1092
+ (keyup)="onKeyUp.emit($event)"
1093
+ [disabled]="disabled()"
1094
+ [type]="type()"
1095
+ [style]="style()"
1096
+ [attr.data-cy]="'bs-link-button'"
1097
+ mat-button>
1098
+ <mat-icon>{{ icon() }}</mat-icon>
1099
+ {{ label() }}
1100
+ </a>
1101
+ `, styles: [".primary-button,.primary-button:hover,.primary-button:active,.primary-button:visited{color:#fff!important;background-color:var(--primary-color)!important}.secondary-button,.secondary-button:hover,.secondary-button:active,.secondary-button:visited{color:#fff!important;background-color:var(--secondary-color)!important}.success-button,.success-button:hover,.success-button:active,.success-button:visited{color:#fff!important;background-color:var(--success-color)!important}.delete-button,.delete-button:hover,.delete-button:active,.success-button:visited{color:#fff!important;background-color:var(--delete-color)!important}\n"] }]
1102
+ }], ctorParameters: () => [] });
1103
+
1104
+ class BsLinkButtonDirective {
1105
+ constructor() {
1106
+ this.icon = input('search', ...(ngDevMode ? [{ debugName: "icon" }] : []));
1107
+ this.elementRef = inject(ElementRef);
1108
+ this.document = inject(DOCUMENT);
1109
+ this.elementRef.nativeElement.classList.add('btn', 'text-primary');
1110
+ effect(() => {
1111
+ this.updateContent();
1112
+ });
1113
+ }
1114
+ updateContent() {
1115
+ // if icon present, add material-icons class and set text content
1116
+ if (this.icon()) {
1117
+ const iconSpan = this.document.createElement('span');
1118
+ iconSpan.classList.add('material-icons', 'pe-2');
1119
+ iconSpan.textContent = this.icon();
1120
+ this.elementRef.nativeElement.appendChild(iconSpan);
1121
+ }
1122
+ }
1123
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.0", ngImport: i0, type: BsLinkButtonDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
1124
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "20.1.0", type: BsLinkButtonDirective, isStandalone: true, selector: "[bsLinkButton]", inputs: { icon: { classPropertyName: "icon", publicName: "icon", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0 }); }
1125
+ }
1126
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.0", ngImport: i0, type: BsLinkButtonDirective, decorators: [{
1127
+ type: Directive,
1128
+ args: [{
1129
+ selector: '[bsLinkButton]',
1130
+ }]
1131
+ }], ctorParameters: () => [] });
1132
+
1133
+ class CloseButtonDirective {
1134
+ constructor() {
1135
+ this.elementRef = inject(ElementRef);
1136
+ this.elementRef.nativeElement.classList.add('secondary-button');
1137
+ }
1138
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.0", ngImport: i0, type: CloseButtonDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
1139
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.1.0", type: CloseButtonDirective, isStandalone: true, selector: "[closeButton]", ngImport: i0 }); }
1140
+ }
1141
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.0", ngImport: i0, type: CloseButtonDirective, decorators: [{
1142
+ type: Directive,
1143
+ args: [{
1144
+ selector: '[closeButton]',
1145
+ }]
1146
+ }], ctorParameters: () => [] });
1147
+
1148
+ class DeleteButtonComponent extends BaseButtonComponent {
1149
+ constructor() {
1150
+ super();
1151
+ this.loadingLabel = input('Deleting...', ...(ngDevMode ? [{ debugName: "loadingLabel" }] : []));
1152
+ this.label = input('Delete', ...(ngDevMode ? [{ debugName: "label" }] : []));
1153
+ this.icon = input('delete', ...(ngDevMode ? [{ debugName: "icon" }] : []));
1154
+ this.classes = input('delete-button', ...(ngDevMode ? [{ debugName: "classes" }] : []));
1155
+ }
1156
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.0", ngImport: i0, type: DeleteButtonComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1157
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.1.0", type: DeleteButtonComponent, isStandalone: true, selector: "delete-button", inputs: { loadingLabel: { classPropertyName: "loadingLabel", publicName: "loadingLabel", isSignal: true, isRequired: false, transformFunction: null }, label: { classPropertyName: "label", publicName: "label", isSignal: true, isRequired: false, transformFunction: null }, icon: { classPropertyName: "icon", publicName: "icon", isSignal: true, isRequired: false, transformFunction: null }, classes: { classPropertyName: "classes", publicName: "classes", isSignal: true, isRequired: false, transformFunction: null } }, usesInheritance: true, ngImport: i0, template: `
1158
+ <button
1159
+ mat-raised-button
1160
+ class="btn {{ classes() }}"
1161
+ (click)="onClick.emit($event)"
1162
+ (focus)="onFocus.emit($event)"
1163
+ (blur)="onBlur.emit($event)"
1164
+ (keydown)="onKeyDown.emit($event)"
1165
+ (keyup)="onKeyUp.emit($event)"
1166
+ [disabled]="disabled() || loading()"
1167
+ [type]="type()"
1168
+ [style]="style()"
1169
+ [attr.data-cy]="'delete-button'">
1170
+ @if (loading()) {
1171
+ <span aria-hidden="true" class="spinner-border spinner-border-sm" role="status"></span>
1172
+ }
1173
+ @if (!loading()) {
1174
+ <mat-icon>{{ icon() }}</mat-icon>
1175
+ }
1176
+ {{ loading() ? loadingLabel() : label() }}
1177
+ </button>
1178
+ `, isInline: true, styles: [".primary-button,.primary-button:hover,.primary-button:active,.primary-button:visited{color:#fff!important;background-color:var(--primary-color)!important}.secondary-button,.secondary-button:hover,.secondary-button:active,.secondary-button:visited{color:#fff!important;background-color:var(--secondary-color)!important}.success-button,.success-button:hover,.success-button:active,.success-button:visited{color:#fff!important;background-color:var(--success-color)!important}.delete-button,.delete-button:hover,.delete-button:active,.success-button:visited{color:#fff!important;background-color:var(--delete-color)!important}\n"], dependencies: [{ kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i1$3.MatButton, selector: " button[matButton], a[matButton], button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button], a[mat-button], a[mat-raised-button], a[mat-flat-button], a[mat-stroked-button] ", inputs: ["matButton"], exportAs: ["matButton", "matAnchor"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i1$4.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }] }); }
1179
+ }
1180
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.0", ngImport: i0, type: DeleteButtonComponent, decorators: [{
1181
+ type: Component,
1182
+ args: [{ selector: 'delete-button', imports: [MatButtonModule, MatIconModule], template: `
1183
+ <button
1184
+ mat-raised-button
1185
+ class="btn {{ classes() }}"
1186
+ (click)="onClick.emit($event)"
1187
+ (focus)="onFocus.emit($event)"
1188
+ (blur)="onBlur.emit($event)"
1189
+ (keydown)="onKeyDown.emit($event)"
1190
+ (keyup)="onKeyUp.emit($event)"
1191
+ [disabled]="disabled() || loading()"
1192
+ [type]="type()"
1193
+ [style]="style()"
1194
+ [attr.data-cy]="'delete-button'">
1195
+ @if (loading()) {
1196
+ <span aria-hidden="true" class="spinner-border spinner-border-sm" role="status"></span>
1197
+ }
1198
+ @if (!loading()) {
1199
+ <mat-icon>{{ icon() }}</mat-icon>
1200
+ }
1201
+ {{ loading() ? loadingLabel() : label() }}
1202
+ </button>
1203
+ `, styles: [".primary-button,.primary-button:hover,.primary-button:active,.primary-button:visited{color:#fff!important;background-color:var(--primary-color)!important}.secondary-button,.secondary-button:hover,.secondary-button:active,.secondary-button:visited{color:#fff!important;background-color:var(--secondary-color)!important}.success-button,.success-button:hover,.success-button:active,.success-button:visited{color:#fff!important;background-color:var(--success-color)!important}.delete-button,.delete-button:hover,.delete-button:active,.success-button:visited{color:#fff!important;background-color:var(--delete-color)!important}\n"] }]
1204
+ }], ctorParameters: () => [] });
1205
+
1206
+ class DeleteButtonDirective extends BaseButtonDirective {
1207
+ constructor() {
1208
+ super();
1209
+ this.icon = input('delete', ...(ngDevMode ? [{ debugName: "icon" }] : []));
1210
+ this.loadingLabel = input('Deleting...', ...(ngDevMode ? [{ debugName: "loadingLabel" }] : []));
1211
+ this.elementRef.nativeElement.classList.add('delete-button');
1212
+ }
1213
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.0", ngImport: i0, type: DeleteButtonDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
1214
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "20.1.0", type: DeleteButtonDirective, isStandalone: true, selector: "[deleteButton]", inputs: { icon: { classPropertyName: "icon", publicName: "icon", isSignal: true, isRequired: false, transformFunction: null }, loadingLabel: { classPropertyName: "loadingLabel", publicName: "loadingLabel", isSignal: true, isRequired: false, transformFunction: null } }, usesInheritance: true, ngImport: i0 }); }
1215
+ }
1216
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.0", ngImport: i0, type: DeleteButtonDirective, decorators: [{
1217
+ type: Directive,
1218
+ args: [{
1219
+ selector: '[deleteButton]',
1220
+ }]
1221
+ }], ctorParameters: () => [] });
1222
+
1223
+ const EDIT_ICON = `
1224
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512">
1225
+ <path d="M490.3 40.4C512.2 62.27 512.2 97.73 490.3 119.6L460.3 149.7L362.3 51.72L392.4 21.66C414.3-.2135 449.7-.2135 471.6 21.66L490.3 40.4zM172.4 241.7L339.7 74.34L437.7 172.3L270.3 339.6C264.2 345.8 256.7 350.4 248.4 353.2L159.6 382.8C150.1 385.6 141.5 383.4 135 376.1C128.6 370.5 126.4 361 129.2 352.4L158.8 263.6C161.6 255.3 166.2 247.8 172.4 241.7V241.7zM192 63.1C209.7 63.1 224 78.33 224 95.1C224 113.7 209.7 127.1 192 127.1H96C78.33 127.1 64 142.3 64 159.1V416C64 433.7 78.33 448 96 448H352C369.7 448 384 433.7 384 416V319.1C384 302.3 398.3 287.1 416 287.1C433.7 287.1 448 302.3 448 319.1V416C448 469 405 512 352 512H96C42.98 512 0 469 0 416V159.1C0 106.1 42.98 63.1 96 63.1H192z"/>
1226
+ </svg>
1227
+ `;
1228
+ class EditSolidSvgComponent {
1229
+ constructor(iconRegistry, sanitizer) {
1230
+ iconRegistry.addSvgIconLiteral('edit-solid', sanitizer.bypassSecurityTrustHtml(EDIT_ICON));
1231
+ }
1232
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.0", ngImport: i0, type: EditSolidSvgComponent, deps: [{ token: i1$4.MatIconRegistry }, { token: i1.DomSanitizer }], target: i0.ɵɵFactoryTarget.Component }); }
1233
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.1.0", type: EditSolidSvgComponent, isStandalone: true, selector: "edit-solid-svg", ngImport: i0, template: ` <mat-icon aria-hidden="false" aria-label="Edit" svgIcon="edit-solid" class="pe-2 align-bottom"></mat-icon> `, isInline: true, dependencies: [{ kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i1$4.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }] }); }
1234
+ }
1235
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.0", ngImport: i0, type: EditSolidSvgComponent, decorators: [{
1236
+ type: Component,
1237
+ args: [{
1238
+ selector: 'edit-solid-svg',
1239
+ imports: [MatIconModule],
1240
+ template: ` <mat-icon aria-hidden="false" aria-label="Edit" svgIcon="edit-solid" class="pe-2 align-bottom"></mat-icon> `,
1241
+ }]
1242
+ }], ctorParameters: () => [{ type: i1$4.MatIconRegistry }, { type: i1.DomSanitizer }] });
1243
+
1244
+ class EditBsButtonComponent extends BaseButtonComponent {
1245
+ constructor() {
1246
+ super();
1247
+ this.label = input('Edit', ...(ngDevMode ? [{ debugName: "label" }] : []));
1248
+ this.classes = input('text-primary', ...(ngDevMode ? [{ debugName: "classes" }] : []));
1249
+ }
1250
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.0", ngImport: i0, type: EditBsButtonComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1251
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "20.1.0", type: EditBsButtonComponent, isStandalone: true, selector: "edit-bs-button", inputs: { label: { classPropertyName: "label", publicName: "label", isSignal: true, isRequired: false, transformFunction: null }, classes: { classPropertyName: "classes", publicName: "classes", isSignal: true, isRequired: false, transformFunction: null } }, usesInheritance: true, ngImport: i0, template: `
1252
+ <button
1253
+ color="primary"
1254
+ type="{{ type() }}"
1255
+ class="{{ classes() }}"
1256
+ (click)="onClick.emit($event)"
1257
+ (focus)="onFocus.emit($event)"
1258
+ (blur)="onBlur.emit($event)"
1259
+ (keydown)="onKeyDown.emit($event)"
1260
+ (keyup)="onKeyUp.emit($event)"
1261
+ [disabled]="disabled()"
1262
+ [type]="type()"
1263
+ [style]="style()"
1264
+ [attr.data-cy]="'edit-bs-button'"
1265
+ mat-button>
1266
+ <edit-solid-svg></edit-solid-svg>
1267
+ {{ label() }}
1268
+ </button>
1269
+ `, isInline: true, styles: [".primary-button,.primary-button:hover,.primary-button:active,.primary-button:visited{color:#fff!important;background-color:var(--primary-color)!important}.secondary-button,.secondary-button:hover,.secondary-button:active,.secondary-button:visited{color:#fff!important;background-color:var(--secondary-color)!important}.success-button,.success-button:hover,.success-button:active,.success-button:visited{color:#fff!important;background-color:var(--success-color)!important}.delete-button,.delete-button:hover,.delete-button:active,.success-button:visited{color:#fff!important;background-color:var(--delete-color)!important}\n"], dependencies: [{ kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i1$3.MatButton, selector: " button[matButton], a[matButton], button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button], a[mat-button], a[mat-raised-button], a[mat-flat-button], a[mat-stroked-button] ", inputs: ["matButton"], exportAs: ["matButton", "matAnchor"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: EditSolidSvgComponent, selector: "edit-solid-svg" }] }); }
1270
+ }
1271
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.0", ngImport: i0, type: EditBsButtonComponent, decorators: [{
1272
+ type: Component,
1273
+ args: [{ selector: 'edit-bs-button', imports: [MatButtonModule, MatIconModule, EditSolidSvgComponent], template: `
1274
+ <button
1275
+ color="primary"
1276
+ type="{{ type() }}"
1277
+ class="{{ classes() }}"
1278
+ (click)="onClick.emit($event)"
1279
+ (focus)="onFocus.emit($event)"
1280
+ (blur)="onBlur.emit($event)"
1281
+ (keydown)="onKeyDown.emit($event)"
1282
+ (keyup)="onKeyUp.emit($event)"
1283
+ [disabled]="disabled()"
1284
+ [type]="type()"
1285
+ [style]="style()"
1286
+ [attr.data-cy]="'edit-bs-button'"
1287
+ mat-button>
1288
+ <edit-solid-svg></edit-solid-svg>
1289
+ {{ label() }}
1290
+ </button>
1291
+ `, styles: [".primary-button,.primary-button:hover,.primary-button:active,.primary-button:visited{color:#fff!important;background-color:var(--primary-color)!important}.secondary-button,.secondary-button:hover,.secondary-button:active,.secondary-button:visited{color:#fff!important;background-color:var(--secondary-color)!important}.success-button,.success-button:hover,.success-button:active,.success-button:visited{color:#fff!important;background-color:var(--success-color)!important}.delete-button,.delete-button:hover,.delete-button:active,.success-button:visited{color:#fff!important;background-color:var(--delete-color)!important}\n"] }]
1292
+ }], ctorParameters: () => [] });
1293
+
1294
+ class EditBsButtonDirective {
1295
+ constructor() {
1296
+ this.elementRef = inject(ElementRef);
1297
+ this.viewContainerRef = inject(ViewContainerRef);
1298
+ this.document = inject(DOCUMENT);
1299
+ this.originalText = signal('', ...(ngDevMode ? [{ debugName: "originalText" }] : []));
1300
+ this.iconComponentRef = signal(null, ...(ngDevMode ? [{ debugName: "iconComponentRef" }] : []));
1301
+ }
1302
+ ngOnInit() {
1303
+ // Add the btn class first
1304
+ this.elementRef.nativeElement.classList.add('btn', 'text-primary');
1305
+ // Capture original text before creating icon
1306
+ this.originalText.set(this.elementRef.nativeElement.textContent?.trim() || 'Edit');
1307
+ // Update content to show icon and text
1308
+ this.updateContent();
1309
+ }
1310
+ updateContent() {
1311
+ // Create the EditSolidSvgComponent properly using Angular's component system
1312
+ const componentRef = this.viewContainerRef.createComponent(EditSolidSvgComponent);
1313
+ this.iconComponentRef.set(componentRef);
1314
+ // Clear the original content and append the icon component
1315
+ this.elementRef.nativeElement.textContent = '';
1316
+ this.elementRef.nativeElement.appendChild(componentRef.location.nativeElement);
1317
+ // Add text after the icon
1318
+ this.elementRef.nativeElement.appendChild(this.document.createTextNode(' ' + this.originalText()));
1319
+ }
1320
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.0", ngImport: i0, type: EditBsButtonDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
1321
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.1.0", type: EditBsButtonDirective, isStandalone: true, selector: "[editBsButton]", ngImport: i0 }); }
1322
+ }
1323
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.0", ngImport: i0, type: EditBsButtonDirective, decorators: [{
1324
+ type: Directive,
1325
+ args: [{
1326
+ selector: '[editBsButton]',
1327
+ }]
1328
+ }] });
1329
+
1330
+ class EditButtonComponent extends BaseButtonComponent {
1331
+ constructor() {
1332
+ super();
1333
+ this.label = input('Edit', ...(ngDevMode ? [{ debugName: "label" }] : []));
1334
+ this.icon = input('edit', ...(ngDevMode ? [{ debugName: "icon" }] : []));
1335
+ this.classes = input('primary-button', ...(ngDevMode ? [{ debugName: "classes" }] : []));
1336
+ }
1337
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.0", ngImport: i0, type: EditButtonComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1338
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "20.1.0", type: EditButtonComponent, isStandalone: true, selector: "edit-button", inputs: { label: { classPropertyName: "label", publicName: "label", isSignal: true, isRequired: false, transformFunction: null }, icon: { classPropertyName: "icon", publicName: "icon", isSignal: true, isRequired: false, transformFunction: null }, classes: { classPropertyName: "classes", publicName: "classes", isSignal: true, isRequired: false, transformFunction: null } }, usesInheritance: true, ngImport: i0, template: `
1339
+ <button
1340
+ class="{{ classes() }}"
1341
+ (click)="onClick.emit($event)"
1342
+ (focus)="onFocus.emit($event)"
1343
+ (blur)="onBlur.emit($event)"
1344
+ (keydown)="onKeyDown.emit($event)"
1345
+ (keyup)="onKeyUp.emit($event)"
1346
+ [disabled]="disabled()"
1347
+ [type]="type()"
1348
+ [style]="style()"
1349
+ [attr.data-cy]="'edit-button'"
1350
+ mat-raised-button>
1351
+ <mat-icon>{{ icon() }}</mat-icon>
1352
+ {{ label() }}
1353
+ </button>
1354
+ `, isInline: true, styles: [".primary-button,.primary-button:hover,.primary-button:active,.primary-button:visited{color:#fff!important;background-color:var(--primary-color)!important}.secondary-button,.secondary-button:hover,.secondary-button:active,.secondary-button:visited{color:#fff!important;background-color:var(--secondary-color)!important}.success-button,.success-button:hover,.success-button:active,.success-button:visited{color:#fff!important;background-color:var(--success-color)!important}.delete-button,.delete-button:hover,.delete-button:active,.success-button:visited{color:#fff!important;background-color:var(--delete-color)!important}\n"], dependencies: [{ kind: "component", type: MatButton, selector: " button[matButton], a[matButton], button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button], a[mat-button], a[mat-raised-button], a[mat-flat-button], a[mat-stroked-button] ", inputs: ["matButton"], exportAs: ["matButton", "matAnchor"] }, { kind: "component", type: MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }] }); }
1355
+ }
1356
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.0", ngImport: i0, type: EditButtonComponent, decorators: [{
1357
+ type: Component,
1358
+ args: [{ selector: 'edit-button', imports: [MatButton, MatIcon], template: `
1359
+ <button
1360
+ class="{{ classes() }}"
1361
+ (click)="onClick.emit($event)"
1362
+ (focus)="onFocus.emit($event)"
1363
+ (blur)="onBlur.emit($event)"
1364
+ (keydown)="onKeyDown.emit($event)"
1365
+ (keyup)="onKeyUp.emit($event)"
1366
+ [disabled]="disabled()"
1367
+ [type]="type()"
1368
+ [style]="style()"
1369
+ [attr.data-cy]="'edit-button'"
1370
+ mat-raised-button>
1371
+ <mat-icon>{{ icon() }}</mat-icon>
1372
+ {{ label() }}
1373
+ </button>
1374
+ `, styles: [".primary-button,.primary-button:hover,.primary-button:active,.primary-button:visited{color:#fff!important;background-color:var(--primary-color)!important}.secondary-button,.secondary-button:hover,.secondary-button:active,.secondary-button:visited{color:#fff!important;background-color:var(--secondary-color)!important}.success-button,.success-button:hover,.success-button:active,.success-button:visited{color:#fff!important;background-color:var(--success-color)!important}.delete-button,.delete-button:hover,.delete-button:active,.success-button:visited{color:#fff!important;background-color:var(--delete-color)!important}\n"] }]
1375
+ }], ctorParameters: () => [] });
1376
+
1377
+ class EditButtonDirective extends BaseButtonDirective {
1378
+ constructor() {
1379
+ super();
1380
+ this.icon = input('edit', ...(ngDevMode ? [{ debugName: "icon" }] : []));
1381
+ this.loadingLabel = input('Editing...', ...(ngDevMode ? [{ debugName: "loadingLabel" }] : []));
1382
+ this.elementRef.nativeElement.classList.add('primary-button');
1383
+ }
1384
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.0", ngImport: i0, type: EditButtonDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
1385
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "20.1.0", type: EditButtonDirective, isStandalone: true, selector: "[editButton]", inputs: { icon: { classPropertyName: "icon", publicName: "icon", isSignal: true, isRequired: false, transformFunction: null }, loadingLabel: { classPropertyName: "loadingLabel", publicName: "loadingLabel", isSignal: true, isRequired: false, transformFunction: null } }, usesInheritance: true, ngImport: i0 }); }
1386
+ }
1387
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.0", ngImport: i0, type: EditButtonDirective, decorators: [{
1388
+ type: Directive,
1389
+ args: [{
1390
+ selector: '[editButton]',
1391
+ }]
1392
+ }], ctorParameters: () => [] });
1393
+
1394
+ class EditSvgIconButtonComponent extends BaseButtonComponent {
1395
+ constructor() {
1396
+ super();
1397
+ this.label = input('Edit', ...(ngDevMode ? [{ debugName: "label" }] : []));
1398
+ this.icon = input('edit', ...(ngDevMode ? [{ debugName: "icon" }] : []));
1399
+ this.classes = input('primary-button', ...(ngDevMode ? [{ debugName: "classes" }] : []));
1400
+ }
1401
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.0", ngImport: i0, type: EditSvgIconButtonComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1402
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "20.1.0", type: EditSvgIconButtonComponent, isStandalone: true, selector: "edit-svg-icon-button", inputs: { label: { classPropertyName: "label", publicName: "label", isSignal: true, isRequired: false, transformFunction: null }, icon: { classPropertyName: "icon", publicName: "icon", isSignal: true, isRequired: false, transformFunction: null }, classes: { classPropertyName: "classes", publicName: "classes", isSignal: true, isRequired: false, transformFunction: null } }, usesInheritance: true, ngImport: i0, template: `
1403
+ <button
1404
+ type="{{ type() }}"
1405
+ class="{{ classes() }}"
1406
+ (click)="onClick.emit($event)"
1407
+ (focus)="onFocus.emit($event)"
1408
+ (blur)="onBlur.emit($event)"
1409
+ (keydown)="onKeyDown.emit($event)"
1410
+ (keyup)="onKeyUp.emit($event)"
1411
+ [disabled]="disabled()"
1412
+ [type]="type()"
1413
+ [style]="style()"
1414
+ [attr.data-cy]="'edit-svg-icon-button'"
1415
+ mat-raised-button>
1416
+ <edit-solid-svg></edit-solid-svg>
1417
+ {{ label() }}
1418
+ </button>
1419
+ `, isInline: true, styles: [".primary-button,.primary-button:hover,.primary-button:active,.primary-button:visited{color:#fff!important;background-color:var(--primary-color)!important}.secondary-button,.secondary-button:hover,.secondary-button:active,.secondary-button:visited{color:#fff!important;background-color:var(--secondary-color)!important}.success-button,.success-button:hover,.success-button:active,.success-button:visited{color:#fff!important;background-color:var(--success-color)!important}.delete-button,.delete-button:hover,.delete-button:active,.success-button:visited{color:#fff!important;background-color:var(--delete-color)!important}\n"], dependencies: [{ kind: "component", type: MatButton, selector: " button[matButton], a[matButton], button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button], a[mat-button], a[mat-raised-button], a[mat-flat-button], a[mat-stroked-button] ", inputs: ["matButton"], exportAs: ["matButton", "matAnchor"] }, { kind: "component", type: EditSolidSvgComponent, selector: "edit-solid-svg" }] }); }
1420
+ }
1421
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.0", ngImport: i0, type: EditSvgIconButtonComponent, decorators: [{
1422
+ type: Component,
1423
+ args: [{ selector: 'edit-svg-icon-button', imports: [MatButton, EditSolidSvgComponent], template: `
1424
+ <button
1425
+ type="{{ type() }}"
1426
+ class="{{ classes() }}"
1427
+ (click)="onClick.emit($event)"
1428
+ (focus)="onFocus.emit($event)"
1429
+ (blur)="onBlur.emit($event)"
1430
+ (keydown)="onKeyDown.emit($event)"
1431
+ (keyup)="onKeyUp.emit($event)"
1432
+ [disabled]="disabled()"
1433
+ [type]="type()"
1434
+ [style]="style()"
1435
+ [attr.data-cy]="'edit-svg-icon-button'"
1436
+ mat-raised-button>
1437
+ <edit-solid-svg></edit-solid-svg>
1438
+ {{ label() }}
1439
+ </button>
1440
+ `, styles: [".primary-button,.primary-button:hover,.primary-button:active,.primary-button:visited{color:#fff!important;background-color:var(--primary-color)!important}.secondary-button,.secondary-button:hover,.secondary-button:active,.secondary-button:visited{color:#fff!important;background-color:var(--secondary-color)!important}.success-button,.success-button:hover,.success-button:active,.success-button:visited{color:#fff!important;background-color:var(--success-color)!important}.delete-button,.delete-button:hover,.delete-button:active,.success-button:visited{color:#fff!important;background-color:var(--delete-color)!important}\n"] }]
1441
+ }], ctorParameters: () => [] });
1442
+
1443
+ class EditSvgIconButtonDirective {
1444
+ constructor() {
1445
+ this.elementRef = inject(ElementRef);
1446
+ this.viewContainerRef = inject(ViewContainerRef);
1447
+ this.document = inject(DOCUMENT);
1448
+ this.originalText = signal('', ...(ngDevMode ? [{ debugName: "originalText" }] : []));
1449
+ this.iconComponentRef = signal(null, ...(ngDevMode ? [{ debugName: "iconComponentRef" }] : []));
1450
+ }
1451
+ ngOnInit() {
1452
+ // Add Material Design button classes
1453
+ this.elementRef.nativeElement.classList.add('mat-raised-button', 'primary-button');
1454
+ // Capture original text before creating icon
1455
+ this.originalText.set(this.elementRef.nativeElement.textContent?.trim() || 'Edit');
1456
+ // Set data-cy attribute for testing
1457
+ this.elementRef.nativeElement.setAttribute('data-cy', 'edit-svg-icon-button');
1458
+ // Update content to show icon and text
1459
+ this.updateContent();
1460
+ }
1461
+ updateContent() {
1462
+ // Create the EditSolidSvgComponent properly using Angular's component system
1463
+ const componentRef = this.viewContainerRef.createComponent(EditSolidSvgComponent);
1464
+ this.iconComponentRef.set(componentRef);
1465
+ // Clear the original content and append the icon component
1466
+ this.elementRef.nativeElement.textContent = '';
1467
+ this.elementRef.nativeElement.appendChild(componentRef.location.nativeElement);
1468
+ this.elementRef.nativeElement.appendChild(this.document.createTextNode(' ' + this.originalText()));
1469
+ }
1470
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.0", ngImport: i0, type: EditSvgIconButtonDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
1471
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.1.0", type: EditSvgIconButtonDirective, isStandalone: true, selector: "[editSvgIconButton]", ngImport: i0 }); }
1472
+ }
1473
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.0", ngImport: i0, type: EditSvgIconButtonDirective, decorators: [{
1474
+ type: Directive,
1475
+ args: [{
1476
+ selector: '[editSvgIconButton]',
1477
+ }]
1478
+ }] });
1479
+
1480
+ class ExcelExportButtonComponent {
1481
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.0", ngImport: i0, type: ExcelExportButtonComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1482
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.1.0", type: ExcelExportButtonComponent, isStandalone: true, selector: "excel-export-button", ngImport: i0, template: ` <button class="excel-export-button" mat-raised-button type="button" data-cy="excel-export-button">Excel</button> `, isInline: true, styles: [".primary-button,.primary-button:hover,.primary-button:active,.primary-button:visited{color:#fff!important;background-color:var(--primary-color)!important}.secondary-button,.secondary-button:hover,.secondary-button:active,.secondary-button:visited{color:#fff!important;background-color:var(--secondary-color)!important}.success-button,.success-button:hover,.success-button:active,.success-button:visited{color:#fff!important;background-color:var(--success-color)!important}.delete-button,.delete-button:hover,.delete-button:active,.success-button:visited{color:#fff!important;background-color:var(--delete-color)!important}\n", ".excel-export-button{margin-left:20px!important;margin-right:20px!important;width:100px;color:#fff!important;background-color:#006400!important;border-radius:24px!important}\n"], dependencies: [{ kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i1$3.MatButton, selector: " button[matButton], a[matButton], button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button], a[mat-button], a[mat-raised-button], a[mat-flat-button], a[mat-stroked-button] ", inputs: ["matButton"], exportAs: ["matButton", "matAnchor"] }] }); }
1483
+ }
1484
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.0", ngImport: i0, type: ExcelExportButtonComponent, decorators: [{
1485
+ type: Component,
1486
+ args: [{ selector: 'excel-export-button', imports: [MatButtonModule], template: ` <button class="excel-export-button" mat-raised-button type="button" data-cy="excel-export-button">Excel</button> `, styles: [".primary-button,.primary-button:hover,.primary-button:active,.primary-button:visited{color:#fff!important;background-color:var(--primary-color)!important}.secondary-button,.secondary-button:hover,.secondary-button:active,.secondary-button:visited{color:#fff!important;background-color:var(--secondary-color)!important}.success-button,.success-button:hover,.success-button:active,.success-button:visited{color:#fff!important;background-color:var(--success-color)!important}.delete-button,.delete-button:hover,.delete-button:active,.success-button:visited{color:#fff!important;background-color:var(--delete-color)!important}\n", ".excel-export-button{margin-left:20px!important;margin-right:20px!important;width:100px;color:#fff!important;background-color:#006400!important;border-radius:24px!important}\n"] }]
1487
+ }] });
1488
+
1489
+ class ExcelExportButtonDirective extends BaseButtonDirective {
1490
+ constructor() {
1491
+ super();
1492
+ const styles = [
1493
+ { property: 'margin-left', value: '20px' },
1494
+ { property: 'margin-right', value: '20px' },
1495
+ { property: 'width', value: '100px' },
1496
+ { property: 'color', value: 'white' },
1497
+ { property: 'background-color', value: 'darkgreen' },
1498
+ { property: 'border-radius', value: '24px' },
1499
+ ];
1500
+ styles.forEach((style) => {
1501
+ this.elementRef.nativeElement.style[style.property] = style.value;
1502
+ });
1503
+ }
1504
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.0", ngImport: i0, type: ExcelExportButtonDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
1505
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.1.0", type: ExcelExportButtonDirective, isStandalone: true, selector: "[excelExportButton]", usesInheritance: true, ngImport: i0 }); }
1506
+ }
1507
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.0", ngImport: i0, type: ExcelExportButtonDirective, decorators: [{
1508
+ type: Directive,
1509
+ args: [{
1510
+ selector: '[excelExportButton]',
1511
+ }]
1512
+ }], ctorParameters: () => [] });
1513
+
1514
+ class ManageButtonComponent extends BaseButtonComponent {
1515
+ constructor() {
1516
+ super();
1517
+ this.label = input('Manage', ...(ngDevMode ? [{ debugName: "label" }] : []));
1518
+ this.icon = input('settings', ...(ngDevMode ? [{ debugName: "icon" }] : []));
1519
+ this.classes = input('mr-3 btn btn-secondary secondary-button', ...(ngDevMode ? [{ debugName: "classes" }] : []));
1520
+ }
1521
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.0", ngImport: i0, type: ManageButtonComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1522
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "20.1.0", type: ManageButtonComponent, isStandalone: true, selector: "manage-button", inputs: { label: { classPropertyName: "label", publicName: "label", isSignal: true, isRequired: false, transformFunction: null }, icon: { classPropertyName: "icon", publicName: "icon", isSignal: true, isRequired: false, transformFunction: null }, classes: { classPropertyName: "classes", publicName: "classes", isSignal: true, isRequired: false, transformFunction: null } }, usesInheritance: true, ngImport: i0, template: `
1523
+ <button
1524
+ mat-raised-button
1525
+ class="{{ classes() }}"
1526
+ (click)="onClick.emit($event)"
1527
+ (focus)="onFocus.emit($event)"
1528
+ (blur)="onBlur.emit($event)"
1529
+ [disabled]="disabled()"
1530
+ [type]="type()"
1531
+ [style]="style()"
1532
+ [attr.data-cy]="'manage-button'">
1533
+ <mat-icon>{{ icon() }}</mat-icon>
1534
+ {{ label() }}
1535
+ </button>
1536
+ `, isInline: true, styles: [".primary-button,.primary-button:hover,.primary-button:active,.primary-button:visited{color:#fff!important;background-color:var(--primary-color)!important}.secondary-button,.secondary-button:hover,.secondary-button:active,.secondary-button:visited{color:#fff!important;background-color:var(--secondary-color)!important}.success-button,.success-button:hover,.success-button:active,.success-button:visited{color:#fff!important;background-color:var(--success-color)!important}.delete-button,.delete-button:hover,.delete-button:active,.success-button:visited{color:#fff!important;background-color:var(--delete-color)!important}\n"], dependencies: [{ kind: "component", type: MatButton, selector: " button[matButton], a[matButton], button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button], a[mat-button], a[mat-raised-button], a[mat-flat-button], a[mat-stroked-button] ", inputs: ["matButton"], exportAs: ["matButton", "matAnchor"] }, { kind: "component", type: MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }] }); }
1537
+ }
1538
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.0", ngImport: i0, type: ManageButtonComponent, decorators: [{
1539
+ type: Component,
1540
+ args: [{ selector: 'manage-button', imports: [MatButton, MatIcon], template: `
1541
+ <button
1542
+ mat-raised-button
1543
+ class="{{ classes() }}"
1544
+ (click)="onClick.emit($event)"
1545
+ (focus)="onFocus.emit($event)"
1546
+ (blur)="onBlur.emit($event)"
1547
+ [disabled]="disabled()"
1548
+ [type]="type()"
1549
+ [style]="style()"
1550
+ [attr.data-cy]="'manage-button'">
1551
+ <mat-icon>{{ icon() }}</mat-icon>
1552
+ {{ label() }}
1553
+ </button>
1554
+ `, styles: [".primary-button,.primary-button:hover,.primary-button:active,.primary-button:visited{color:#fff!important;background-color:var(--primary-color)!important}.secondary-button,.secondary-button:hover,.secondary-button:active,.secondary-button:visited{color:#fff!important;background-color:var(--secondary-color)!important}.success-button,.success-button:hover,.success-button:active,.success-button:visited{color:#fff!important;background-color:var(--success-color)!important}.delete-button,.delete-button:hover,.delete-button:active,.success-button:visited{color:#fff!important;background-color:var(--delete-color)!important}\n"] }]
1555
+ }], ctorParameters: () => [] });
1556
+
1557
+ class ManageButtonDirective extends BaseButtonDirective {
1558
+ constructor() {
1559
+ super();
1560
+ this.icon = input('settings', ...(ngDevMode ? [{ debugName: "icon" }] : []));
1561
+ this.elementRef.nativeElement.classList.add('mr-3');
1562
+ this.elementRef.nativeElement.classList.add('secondary-button');
1563
+ }
1564
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.0", ngImport: i0, type: ManageButtonDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
1565
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "20.1.0", type: ManageButtonDirective, isStandalone: true, selector: "[manageButton]", inputs: { icon: { classPropertyName: "icon", publicName: "icon", isSignal: true, isRequired: false, transformFunction: null } }, usesInheritance: true, ngImport: i0 }); }
1566
+ }
1567
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.0", ngImport: i0, type: ManageButtonDirective, decorators: [{
1568
+ type: Directive,
1569
+ args: [{
1570
+ selector: '[manageButton]',
1571
+ }]
1572
+ }], ctorParameters: () => [] });
1573
+
1574
+ class PdfExportButtonComponent {
1575
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.0", ngImport: i0, type: PdfExportButtonComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1576
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.1.0", type: PdfExportButtonComponent, isStandalone: true, selector: "pdf-export-button", ngImport: i0, template: ` <button class="pdf-export-button" mat-raised-button type="button" data-cy="pdf-export-button">PDF</button> `, isInline: true, styles: [".pdf-export-button{margin-left:20px!important;width:100px;color:#fff!important;background-color:#a3071b!important;border-radius:24px!important}\n"], dependencies: [{ kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i1$3.MatButton, selector: " button[matButton], a[matButton], button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button], a[mat-button], a[mat-raised-button], a[mat-flat-button], a[mat-stroked-button] ", inputs: ["matButton"], exportAs: ["matButton", "matAnchor"] }] }); }
1577
+ }
1578
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.0", ngImport: i0, type: PdfExportButtonComponent, decorators: [{
1579
+ type: Component,
1580
+ args: [{ selector: 'pdf-export-button', imports: [MatButtonModule], template: ` <button class="pdf-export-button" mat-raised-button type="button" data-cy="pdf-export-button">PDF</button> `, styles: [".pdf-export-button{margin-left:20px!important;width:100px;color:#fff!important;background-color:#a3071b!important;border-radius:24px!important}\n"] }]
1581
+ }] });
1582
+
1583
+ class PdfExportButtonDirective extends BaseButtonDirective {
1584
+ constructor() {
1585
+ super();
1586
+ const styles = [
1587
+ { property: 'margin-left', value: '20px' },
1588
+ { property: 'width', value: '100px' },
1589
+ { property: 'color', value: 'white' },
1590
+ { property: 'background-color', value: '#a3071b' },
1591
+ { property: 'border-radius', value: '24px' },
1592
+ ];
1593
+ styles.forEach((style) => {
1594
+ this.elementRef.nativeElement.style[style.property] = style.value;
1595
+ });
1596
+ }
1597
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.0", ngImport: i0, type: PdfExportButtonDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
1598
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.1.0", type: PdfExportButtonDirective, isStandalone: true, selector: "[pdfExportButton]", usesInheritance: true, ngImport: i0 }); }
1599
+ }
1600
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.0", ngImport: i0, type: PdfExportButtonDirective, decorators: [{
1601
+ type: Directive,
1602
+ args: [{
1603
+ selector: '[pdfExportButton]',
1604
+ }]
1605
+ }], ctorParameters: () => [] });
1606
+
1607
+ class PrimaryButtonComponent extends BaseButtonComponent {
1608
+ constructor() {
1609
+ super();
1610
+ this.loadingLabel = input('Saving...', ...(ngDevMode ? [{ debugName: "loadingLabel" }] : []));
1611
+ this.label = input('Save', ...(ngDevMode ? [{ debugName: "label" }] : []));
1612
+ this.icon = input('save', ...(ngDevMode ? [{ debugName: "icon" }] : []));
1613
+ this.showIcon = input(false, ...(ngDevMode ? [{ debugName: "showIcon" }] : []));
1614
+ this.classes = input('btn-primary primary-button', ...(ngDevMode ? [{ debugName: "classes" }] : []));
1615
+ }
1616
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.0", ngImport: i0, type: PrimaryButtonComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1617
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.1.0", type: PrimaryButtonComponent, isStandalone: true, selector: "primary-button", inputs: { loadingLabel: { classPropertyName: "loadingLabel", publicName: "loadingLabel", isSignal: true, isRequired: false, transformFunction: null }, label: { classPropertyName: "label", publicName: "label", isSignal: true, isRequired: false, transformFunction: null }, icon: { classPropertyName: "icon", publicName: "icon", isSignal: true, isRequired: false, transformFunction: null }, showIcon: { classPropertyName: "showIcon", publicName: "showIcon", isSignal: true, isRequired: false, transformFunction: null }, classes: { classPropertyName: "classes", publicName: "classes", isSignal: true, isRequired: false, transformFunction: null } }, usesInheritance: true, ngImport: i0, template: `
1618
+ <button
1619
+ mat-raised-button
1620
+ class="btn {{ classes() }}"
1621
+ (click)="onClick.emit($event)"
1622
+ (focus)="onFocus.emit($event)"
1623
+ (blur)="onBlur.emit($event)"
1624
+ (keydown)="onKeyDown.emit($event)"
1625
+ (keyup)="onKeyUp.emit($event)"
1626
+ [disabled]="disabled() || loading()"
1627
+ [type]="type()"
1628
+ [style]="style()"
1629
+ [attr.data-cy]="'primary-button'">
1630
+ @if (loading()) {
1631
+ <span aria-hidden="true" class="spinner-border spinner-border-sm" role="status"></span>
1632
+ }
1633
+ @if (!loading() && showIcon()) {
1634
+ <mat-icon>{{ icon() }}</mat-icon>
1635
+ }
1636
+ {{ loading() ? loadingLabel() : label() }}
1637
+ </button>
1638
+ `, isInline: true, styles: [".primary-button,.primary-button:hover,.primary-button:active,.primary-button:visited{color:#fff!important;background-color:var(--primary-color)!important}.secondary-button,.secondary-button:hover,.secondary-button:active,.secondary-button:visited{color:#fff!important;background-color:var(--secondary-color)!important}.success-button,.success-button:hover,.success-button:active,.success-button:visited{color:#fff!important;background-color:var(--success-color)!important}.delete-button,.delete-button:hover,.delete-button:active,.success-button:visited{color:#fff!important;background-color:var(--delete-color)!important}\n"], dependencies: [{ kind: "component", type: MatButton, selector: " button[matButton], a[matButton], button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button], a[mat-button], a[mat-raised-button], a[mat-flat-button], a[mat-stroked-button] ", inputs: ["matButton"], exportAs: ["matButton", "matAnchor"] }, { kind: "component", type: MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }] }); }
1639
+ }
1640
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.0", ngImport: i0, type: PrimaryButtonComponent, decorators: [{
1641
+ type: Component,
1642
+ args: [{ selector: 'primary-button', imports: [MatButton, MatIcon], template: `
1643
+ <button
1644
+ mat-raised-button
1645
+ class="btn {{ classes() }}"
1646
+ (click)="onClick.emit($event)"
1647
+ (focus)="onFocus.emit($event)"
1648
+ (blur)="onBlur.emit($event)"
1649
+ (keydown)="onKeyDown.emit($event)"
1650
+ (keyup)="onKeyUp.emit($event)"
1651
+ [disabled]="disabled() || loading()"
1652
+ [type]="type()"
1653
+ [style]="style()"
1654
+ [attr.data-cy]="'primary-button'">
1655
+ @if (loading()) {
1656
+ <span aria-hidden="true" class="spinner-border spinner-border-sm" role="status"></span>
1657
+ }
1658
+ @if (!loading() && showIcon()) {
1659
+ <mat-icon>{{ icon() }}</mat-icon>
1660
+ }
1661
+ {{ loading() ? loadingLabel() : label() }}
1662
+ </button>
1663
+ `, styles: [".primary-button,.primary-button:hover,.primary-button:active,.primary-button:visited{color:#fff!important;background-color:var(--primary-color)!important}.secondary-button,.secondary-button:hover,.secondary-button:active,.secondary-button:visited{color:#fff!important;background-color:var(--secondary-color)!important}.success-button,.success-button:hover,.success-button:active,.success-button:visited{color:#fff!important;background-color:var(--success-color)!important}.delete-button,.delete-button:hover,.delete-button:active,.success-button:visited{color:#fff!important;background-color:var(--delete-color)!important}\n"] }]
1664
+ }], ctorParameters: () => [] });
1665
+
1666
+ class PrimaryButtonDirective extends BaseButtonDirective {
1667
+ constructor() {
1668
+ super();
1669
+ this.icon = input('save', ...(ngDevMode ? [{ debugName: "icon" }] : []));
1670
+ this.loadingLabel = input('Saving...', ...(ngDevMode ? [{ debugName: "loadingLabel" }] : []));
1671
+ this.elementRef.nativeElement.classList.add('btn-primary');
1672
+ this.elementRef.nativeElement.classList.add('primary-button');
1673
+ }
1674
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.0", ngImport: i0, type: PrimaryButtonDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
1675
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "20.1.0", type: PrimaryButtonDirective, isStandalone: true, selector: "[primaryButton]", inputs: { icon: { classPropertyName: "icon", publicName: "icon", isSignal: true, isRequired: false, transformFunction: null }, loadingLabel: { classPropertyName: "loadingLabel", publicName: "loadingLabel", isSignal: true, isRequired: false, transformFunction: null } }, usesInheritance: true, ngImport: i0 }); }
1676
+ }
1677
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.0", ngImport: i0, type: PrimaryButtonDirective, decorators: [{
1678
+ type: Directive,
1679
+ args: [{
1680
+ selector: '[primaryButton]',
1681
+ }]
1682
+ }], ctorParameters: () => [] });
1683
+
1684
+ class SavePrimaryButtonComponent extends BaseButtonComponent {
1685
+ constructor() {
1686
+ super();
1687
+ this.loadingLabel = input('Saving...', ...(ngDevMode ? [{ debugName: "loadingLabel" }] : []));
1688
+ this.label = input('Save', ...(ngDevMode ? [{ debugName: "label" }] : []));
1689
+ this.icon = input('save', ...(ngDevMode ? [{ debugName: "icon" }] : []));
1690
+ this.classes = input('btn-primary primary-button', ...(ngDevMode ? [{ debugName: "classes" }] : []));
1691
+ }
1692
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.0", ngImport: i0, type: SavePrimaryButtonComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1693
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.1.0", type: SavePrimaryButtonComponent, isStandalone: true, selector: "save-primary-button", inputs: { loadingLabel: { classPropertyName: "loadingLabel", publicName: "loadingLabel", isSignal: true, isRequired: false, transformFunction: null }, label: { classPropertyName: "label", publicName: "label", isSignal: true, isRequired: false, transformFunction: null }, icon: { classPropertyName: "icon", publicName: "icon", isSignal: true, isRequired: false, transformFunction: null }, classes: { classPropertyName: "classes", publicName: "classes", isSignal: true, isRequired: false, transformFunction: null } }, usesInheritance: true, ngImport: i0, template: `
1694
+ <button
1695
+ mat-raised-button
1696
+ class="btn {{ classes() }}"
1697
+ (click)="onClick.emit($event)"
1698
+ (focus)="onFocus.emit($event)"
1699
+ (blur)="onBlur.emit($event)"
1700
+ (keydown)="onKeyDown.emit($event)"
1701
+ (keyup)="onKeyUp.emit($event)"
1702
+ [disabled]="disabled() || loading()"
1703
+ [type]="type()"
1704
+ [style]="style()"
1705
+ [attr.data-cy]="'save-primary-button'">
1706
+ @if (loading()) {
1707
+ <span aria-hidden="true" class="spinner-border spinner-border-sm" role="status"></span>
1708
+ }
1709
+ @if (!loading()) {
1710
+ <mat-icon>{{ icon() }}</mat-icon>
1711
+ }
1712
+ {{ loading() ? loadingLabel() : label() }}
1713
+ </button>
1714
+ `, isInline: true, styles: [".primary-button,.primary-button:hover,.primary-button:active,.primary-button:visited{color:#fff!important;background-color:var(--primary-color)!important}.secondary-button,.secondary-button:hover,.secondary-button:active,.secondary-button:visited{color:#fff!important;background-color:var(--secondary-color)!important}.success-button,.success-button:hover,.success-button:active,.success-button:visited{color:#fff!important;background-color:var(--success-color)!important}.delete-button,.delete-button:hover,.delete-button:active,.success-button:visited{color:#fff!important;background-color:var(--delete-color)!important}\n"], dependencies: [{ kind: "component", type: MatButton, selector: " button[matButton], a[matButton], button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button], a[mat-button], a[mat-raised-button], a[mat-flat-button], a[mat-stroked-button] ", inputs: ["matButton"], exportAs: ["matButton", "matAnchor"] }, { kind: "component", type: MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }] }); }
1715
+ }
1716
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.0", ngImport: i0, type: SavePrimaryButtonComponent, decorators: [{
1717
+ type: Component,
1718
+ args: [{ selector: 'save-primary-button', imports: [MatButton, MatIcon], template: `
1719
+ <button
1720
+ mat-raised-button
1721
+ class="btn {{ classes() }}"
1722
+ (click)="onClick.emit($event)"
1723
+ (focus)="onFocus.emit($event)"
1724
+ (blur)="onBlur.emit($event)"
1725
+ (keydown)="onKeyDown.emit($event)"
1726
+ (keyup)="onKeyUp.emit($event)"
1727
+ [disabled]="disabled() || loading()"
1728
+ [type]="type()"
1729
+ [style]="style()"
1730
+ [attr.data-cy]="'save-primary-button'">
1731
+ @if (loading()) {
1732
+ <span aria-hidden="true" class="spinner-border spinner-border-sm" role="status"></span>
1733
+ }
1734
+ @if (!loading()) {
1735
+ <mat-icon>{{ icon() }}</mat-icon>
1736
+ }
1737
+ {{ loading() ? loadingLabel() : label() }}
1738
+ </button>
1739
+ `, styles: [".primary-button,.primary-button:hover,.primary-button:active,.primary-button:visited{color:#fff!important;background-color:var(--primary-color)!important}.secondary-button,.secondary-button:hover,.secondary-button:active,.secondary-button:visited{color:#fff!important;background-color:var(--secondary-color)!important}.success-button,.success-button:hover,.success-button:active,.success-button:visited{color:#fff!important;background-color:var(--success-color)!important}.delete-button,.delete-button:hover,.delete-button:active,.success-button:visited{color:#fff!important;background-color:var(--delete-color)!important}\n"] }]
1740
+ }], ctorParameters: () => [] });
1741
+
1742
+ class SavePrimaryButtonDirective extends BaseButtonDirective {
1743
+ constructor() {
1744
+ super();
1745
+ this.icon = input('save', ...(ngDevMode ? [{ debugName: "icon" }] : []));
1746
+ this.loadingLabel = input('Saving...', ...(ngDevMode ? [{ debugName: "loadingLabel" }] : []));
1747
+ this.elementRef.nativeElement.classList.add('btn-primary');
1748
+ this.elementRef.nativeElement.classList.add('primary-button');
1749
+ }
1750
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.0", ngImport: i0, type: SavePrimaryButtonDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
1751
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "20.1.0", type: SavePrimaryButtonDirective, isStandalone: true, selector: "[savePrimaryButton]", inputs: { icon: { classPropertyName: "icon", publicName: "icon", isSignal: true, isRequired: false, transformFunction: null }, loadingLabel: { classPropertyName: "loadingLabel", publicName: "loadingLabel", isSignal: true, isRequired: false, transformFunction: null } }, usesInheritance: true, ngImport: i0 }); }
1752
+ }
1753
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.0", ngImport: i0, type: SavePrimaryButtonDirective, decorators: [{
1754
+ type: Directive,
1755
+ args: [{
1756
+ selector: '[savePrimaryButton]',
1757
+ }]
1758
+ }], ctorParameters: () => [] });
1759
+
1760
+ class SearchButtonComponent extends BaseButtonComponent {
1761
+ constructor() {
1762
+ super();
1763
+ this.loadingLabel = input('Searching...', ...(ngDevMode ? [{ debugName: "loadingLabel" }] : []));
1764
+ this.label = input('Search', ...(ngDevMode ? [{ debugName: "label" }] : []));
1765
+ this.icon = input('search', ...(ngDevMode ? [{ debugName: "icon" }] : []));
1766
+ this.classes = input('btn-primary primary-button', ...(ngDevMode ? [{ debugName: "classes" }] : []));
1767
+ }
1768
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.0", ngImport: i0, type: SearchButtonComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1769
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.1.0", type: SearchButtonComponent, isStandalone: true, selector: "search-button", inputs: { loadingLabel: { classPropertyName: "loadingLabel", publicName: "loadingLabel", isSignal: true, isRequired: false, transformFunction: null }, label: { classPropertyName: "label", publicName: "label", isSignal: true, isRequired: false, transformFunction: null }, icon: { classPropertyName: "icon", publicName: "icon", isSignal: true, isRequired: false, transformFunction: null }, classes: { classPropertyName: "classes", publicName: "classes", isSignal: true, isRequired: false, transformFunction: null } }, usesInheritance: true, ngImport: i0, template: `
1770
+ <button
1771
+ class="btn btn-primary primary-button {{ loading() || disabled() ? 'disabled' : '' }}"
1772
+ (click)="onClick.emit($event)"
1773
+ (focus)="onFocus.emit($event)"
1774
+ (blur)="onBlur.emit($event)"
1775
+ (keydown)="onKeyDown.emit($event)"
1776
+ (keyup)="onKeyUp.emit($event)"
1777
+ mat-raised-button
1778
+ type="{{ type() }}"
1779
+ data-cy="primary-button">
1780
+ @if (loading()) {
1781
+ <span aria-hidden="true" class="spinner-border spinner-border-sm" role="status"></span>
1782
+ }
1783
+ @if (!loading()) {
1784
+ <mat-icon>{{ icon() }}</mat-icon>
1785
+ }
1786
+ {{ loading() ? loadingLabel() : label() }}
1787
+ </button>
1788
+ `, isInline: true, styles: [".primary-button,.primary-button:hover,.primary-button:active,.primary-button:visited{color:#fff!important;background-color:var(--primary-color)!important}.secondary-button,.secondary-button:hover,.secondary-button:active,.secondary-button:visited{color:#fff!important;background-color:var(--secondary-color)!important}.success-button,.success-button:hover,.success-button:active,.success-button:visited{color:#fff!important;background-color:var(--success-color)!important}.delete-button,.delete-button:hover,.delete-button:active,.success-button:visited{color:#fff!important;background-color:var(--delete-color)!important}\n"], dependencies: [{ kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i1$3.MatButton, selector: " button[matButton], a[matButton], button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button], a[mat-button], a[mat-raised-button], a[mat-flat-button], a[mat-stroked-button] ", inputs: ["matButton"], exportAs: ["matButton", "matAnchor"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i1$4.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }] }); }
1789
+ }
1790
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.0", ngImport: i0, type: SearchButtonComponent, decorators: [{
1791
+ type: Component,
1792
+ args: [{ selector: 'search-button', imports: [MatButtonModule, MatIconModule], template: `
1793
+ <button
1794
+ class="btn btn-primary primary-button {{ loading() || disabled() ? 'disabled' : '' }}"
1795
+ (click)="onClick.emit($event)"
1796
+ (focus)="onFocus.emit($event)"
1797
+ (blur)="onBlur.emit($event)"
1798
+ (keydown)="onKeyDown.emit($event)"
1799
+ (keyup)="onKeyUp.emit($event)"
1800
+ mat-raised-button
1801
+ type="{{ type() }}"
1802
+ data-cy="primary-button">
1803
+ @if (loading()) {
1804
+ <span aria-hidden="true" class="spinner-border spinner-border-sm" role="status"></span>
1805
+ }
1806
+ @if (!loading()) {
1807
+ <mat-icon>{{ icon() }}</mat-icon>
1808
+ }
1809
+ {{ loading() ? loadingLabel() : label() }}
1810
+ </button>
1811
+ `, styles: [".primary-button,.primary-button:hover,.primary-button:active,.primary-button:visited{color:#fff!important;background-color:var(--primary-color)!important}.secondary-button,.secondary-button:hover,.secondary-button:active,.secondary-button:visited{color:#fff!important;background-color:var(--secondary-color)!important}.success-button,.success-button:hover,.success-button:active,.success-button:visited{color:#fff!important;background-color:var(--success-color)!important}.delete-button,.delete-button:hover,.delete-button:active,.success-button:visited{color:#fff!important;background-color:var(--delete-color)!important}\n"] }]
1812
+ }], ctorParameters: () => [] });
1813
+
1814
+ class SuccessButtonComponent extends BaseButtonComponent {
1815
+ constructor() {
1816
+ super();
1817
+ this.loadingLabel = input('Updating...', ...(ngDevMode ? [{ debugName: "loadingLabel" }] : []));
1818
+ this.label = input('Update', ...(ngDevMode ? [{ debugName: "label" }] : []));
1819
+ this.icon = input('save', ...(ngDevMode ? [{ debugName: "icon" }] : []));
1820
+ this.classes = input('success-button', ...(ngDevMode ? [{ debugName: "classes" }] : []));
1821
+ }
1822
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.0", ngImport: i0, type: SuccessButtonComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1823
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.1.0", type: SuccessButtonComponent, isStandalone: true, selector: "success-button", inputs: { loadingLabel: { classPropertyName: "loadingLabel", publicName: "loadingLabel", isSignal: true, isRequired: false, transformFunction: null }, label: { classPropertyName: "label", publicName: "label", isSignal: true, isRequired: false, transformFunction: null }, icon: { classPropertyName: "icon", publicName: "icon", isSignal: true, isRequired: false, transformFunction: null }, classes: { classPropertyName: "classes", publicName: "classes", isSignal: true, isRequired: false, transformFunction: null } }, usesInheritance: true, ngImport: i0, template: `
1824
+ <button
1825
+ mat-raised-button
1826
+ class="btn {{ classes() }}"
1827
+ (click)="onClick.emit($event)"
1828
+ (keydown)="onKeyDown.emit($event)"
1829
+ (keyup)="onKeyUp.emit($event)"
1830
+ (focus)="onFocus.emit($event)"
1831
+ (blur)="onBlur.emit($event)"
1832
+ [disabled]="disabled() || loading()"
1833
+ [type]="type()"
1834
+ [style]="style()"
1835
+ [attr.data-cy]="'success-button'">
1836
+ @if (loading()) {
1837
+ <span aria-hidden="true" class="spinner-border spinner-border-sm" role="status"></span>
1838
+ }
1839
+ @if (!loading()) {
1840
+ <mat-icon>{{ icon() }}</mat-icon>
1841
+ }
1842
+ {{ loading() ? loadingLabel() : label() }}
1843
+ </button>
1844
+ `, isInline: true, dependencies: [{ kind: "component", type: MatButton, selector: " button[matButton], a[matButton], button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button], a[mat-button], a[mat-raised-button], a[mat-flat-button], a[mat-stroked-button] ", inputs: ["matButton"], exportAs: ["matButton", "matAnchor"] }, { kind: "component", type: MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }] }); }
1845
+ }
1846
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.0", ngImport: i0, type: SuccessButtonComponent, decorators: [{
1847
+ type: Component,
1848
+ args: [{
1849
+ selector: 'success-button',
1850
+ imports: [MatButton, MatIcon],
1851
+ template: `
1852
+ <button
1853
+ mat-raised-button
1854
+ class="btn {{ classes() }}"
1855
+ (click)="onClick.emit($event)"
1856
+ (keydown)="onKeyDown.emit($event)"
1857
+ (keyup)="onKeyUp.emit($event)"
1858
+ (focus)="onFocus.emit($event)"
1859
+ (blur)="onBlur.emit($event)"
1860
+ [disabled]="disabled() || loading()"
1861
+ [type]="type()"
1862
+ [style]="style()"
1863
+ [attr.data-cy]="'success-button'">
1864
+ @if (loading()) {
1865
+ <span aria-hidden="true" class="spinner-border spinner-border-sm" role="status"></span>
1866
+ }
1867
+ @if (!loading()) {
1868
+ <mat-icon>{{ icon() }}</mat-icon>
1869
+ }
1870
+ {{ loading() ? loadingLabel() : label() }}
1871
+ </button>
1872
+ `,
1873
+ }]
1874
+ }], ctorParameters: () => [] });
1875
+
1876
+ class SuccessButtonDirective extends BaseButtonDirective {
1877
+ constructor() {
1878
+ super();
1879
+ this.icon = input('save', ...(ngDevMode ? [{ debugName: "icon" }] : []));
1880
+ this.loadingLabel = input('Updating...', ...(ngDevMode ? [{ debugName: "loadingLabel" }] : []));
1881
+ this.elementRef.nativeElement.classList.add('success-button');
1882
+ }
1883
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.0", ngImport: i0, type: SuccessButtonDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
1884
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "20.1.0", type: SuccessButtonDirective, isStandalone: true, selector: "[successButton]", inputs: { icon: { classPropertyName: "icon", publicName: "icon", isSignal: true, isRequired: false, transformFunction: null }, loadingLabel: { classPropertyName: "loadingLabel", publicName: "loadingLabel", isSignal: true, isRequired: false, transformFunction: null } }, usesInheritance: true, ngImport: i0 }); }
1885
+ }
1886
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.0", ngImport: i0, type: SuccessButtonDirective, decorators: [{
1887
+ type: Directive,
1888
+ args: [{
1889
+ selector: '[successButton]',
1890
+ }]
1891
+ }], ctorParameters: () => [] });
1892
+
1893
+ class ViewButtonComponent extends BaseButtonComponent {
1894
+ constructor() {
1895
+ super();
1896
+ this.label = input('View', ...(ngDevMode ? [{ debugName: "label" }] : []));
1897
+ this.icon = input('visibility', ...(ngDevMode ? [{ debugName: "icon" }] : []));
1898
+ }
1899
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.0", ngImport: i0, type: ViewButtonComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1900
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "20.1.0", type: ViewButtonComponent, isStandalone: true, selector: "view-button", inputs: { label: { classPropertyName: "label", publicName: "label", isSignal: true, isRequired: false, transformFunction: null }, icon: { classPropertyName: "icon", publicName: "icon", isSignal: true, isRequired: false, transformFunction: null } }, usesInheritance: true, ngImport: i0, template: `
1901
+ <button
1902
+ color="primary"
1903
+ (click)="onClick.emit($event)"
1904
+ (focus)="onFocus.emit($event)"
1905
+ (blur)="onBlur.emit($event)"
1906
+ (keydown)="onKeyDown.emit($event)"
1907
+ (keyup)="onKeyUp.emit($event)"
1908
+ [disabled]="disabled()"
1909
+ mat-button>
1910
+ <mat-icon>{{ icon() }}</mat-icon>
1911
+ {{ label() }}
1912
+ </button>
1913
+ `, isInline: true, styles: [".primary-button,.primary-button:hover,.primary-button:active,.primary-button:visited{color:#fff!important;background-color:var(--primary-color)!important}.secondary-button,.secondary-button:hover,.secondary-button:active,.secondary-button:visited{color:#fff!important;background-color:var(--secondary-color)!important}.success-button,.success-button:hover,.success-button:active,.success-button:visited{color:#fff!important;background-color:var(--success-color)!important}.delete-button,.delete-button:hover,.delete-button:active,.success-button:visited{color:#fff!important;background-color:var(--delete-color)!important}\n"], dependencies: [{ kind: "component", type: MatButton, selector: " button[matButton], a[matButton], button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button], a[mat-button], a[mat-raised-button], a[mat-flat-button], a[mat-stroked-button] ", inputs: ["matButton"], exportAs: ["matButton", "matAnchor"] }, { kind: "component", type: MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }] }); }
1914
+ }
1915
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.0", ngImport: i0, type: ViewButtonComponent, decorators: [{
1916
+ type: Component,
1917
+ args: [{ selector: 'view-button', imports: [MatButton, MatIcon], template: `
1918
+ <button
1919
+ color="primary"
1920
+ (click)="onClick.emit($event)"
1921
+ (focus)="onFocus.emit($event)"
1922
+ (blur)="onBlur.emit($event)"
1923
+ (keydown)="onKeyDown.emit($event)"
1924
+ (keyup)="onKeyUp.emit($event)"
1925
+ [disabled]="disabled()"
1926
+ mat-button>
1927
+ <mat-icon>{{ icon() }}</mat-icon>
1928
+ {{ label() }}
1929
+ </button>
1930
+ `, styles: [".primary-button,.primary-button:hover,.primary-button:active,.primary-button:visited{color:#fff!important;background-color:var(--primary-color)!important}.secondary-button,.secondary-button:hover,.secondary-button:active,.secondary-button:visited{color:#fff!important;background-color:var(--secondary-color)!important}.success-button,.success-button:hover,.success-button:active,.success-button:visited{color:#fff!important;background-color:var(--success-color)!important}.delete-button,.delete-button:hover,.delete-button:active,.success-button:visited{color:#fff!important;background-color:var(--delete-color)!important}\n"] }]
1931
+ }], ctorParameters: () => [] });
1932
+
1933
+ class ViewButtonDirective extends BaseButtonDirective {
1934
+ constructor() {
1935
+ super();
1936
+ this.icon = input('visibility', ...(ngDevMode ? [{ debugName: "icon" }] : []));
1937
+ this.loadingLabel = input('Loading...', ...(ngDevMode ? [{ debugName: "loadingLabel" }] : []));
1938
+ }
1939
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.0", ngImport: i0, type: ViewButtonDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
1940
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "20.1.0", type: ViewButtonDirective, isStandalone: true, selector: "[viewButton]", inputs: { icon: { classPropertyName: "icon", publicName: "icon", isSignal: true, isRequired: false, transformFunction: null }, loadingLabel: { classPropertyName: "loadingLabel", publicName: "loadingLabel", isSignal: true, isRequired: false, transformFunction: null } }, usesInheritance: true, ngImport: i0 }); }
1941
+ }
1942
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.0", ngImport: i0, type: ViewButtonDirective, decorators: [{
1943
+ type: Directive,
1944
+ args: [{
1945
+ selector: '[viewButton]',
1946
+ }]
1947
+ }], ctorParameters: () => [] });
1948
+
1949
+ class ViewPrimaryButtonComponent extends BaseButtonComponent {
1950
+ constructor() {
1951
+ super();
1952
+ this.label = input('View', ...(ngDevMode ? [{ debugName: "label" }] : []));
1953
+ this.icon = input('visibility', ...(ngDevMode ? [{ debugName: "icon" }] : []));
1954
+ this.classes = input('btn-primary primary-button', ...(ngDevMode ? [{ debugName: "classes" }] : []));
1955
+ }
1956
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.0", ngImport: i0, type: ViewPrimaryButtonComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1957
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "20.1.0", type: ViewPrimaryButtonComponent, isStandalone: true, selector: "view-primary-button", inputs: { label: { classPropertyName: "label", publicName: "label", isSignal: true, isRequired: false, transformFunction: null }, icon: { classPropertyName: "icon", publicName: "icon", isSignal: true, isRequired: false, transformFunction: null }, classes: { classPropertyName: "classes", publicName: "classes", isSignal: true, isRequired: false, transformFunction: null } }, usesInheritance: true, ngImport: i0, template: `
1958
+ <button
1959
+ mat-raised-button
1960
+ class="btn {{ classes() }}"
1961
+ (click)="onClick.emit($event)"
1962
+ (focus)="onFocus.emit($event)"
1963
+ (blur)="onBlur.emit($event)"
1964
+ (keydown)="onKeyDown.emit($event)"
1965
+ (keyup)="onKeyUp.emit($event)"
1966
+ [disabled]="disabled()"
1967
+ [type]="type()"
1968
+ [style]="style()"
1969
+ [attr.data-cy]="'view-button'">
1970
+ <mat-icon>{{ icon() }}</mat-icon>
1971
+ {{ label() }}
1972
+ </button>
1973
+ `, isInline: true, styles: [".primary-button,.primary-button:hover,.primary-button:active,.primary-button:visited{color:#fff!important;background-color:var(--primary-color)!important}.secondary-button,.secondary-button:hover,.secondary-button:active,.secondary-button:visited{color:#fff!important;background-color:var(--secondary-color)!important}.success-button,.success-button:hover,.success-button:active,.success-button:visited{color:#fff!important;background-color:var(--success-color)!important}.delete-button,.delete-button:hover,.delete-button:active,.success-button:visited{color:#fff!important;background-color:var(--delete-color)!important}\n"], dependencies: [{ kind: "component", type: MatButton, selector: " button[matButton], a[matButton], button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button], a[mat-button], a[mat-raised-button], a[mat-flat-button], a[mat-stroked-button] ", inputs: ["matButton"], exportAs: ["matButton", "matAnchor"] }, { kind: "component", type: MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }] }); }
1974
+ }
1975
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.0", ngImport: i0, type: ViewPrimaryButtonComponent, decorators: [{
1976
+ type: Component,
1977
+ args: [{ selector: 'view-primary-button', imports: [MatButton, MatIcon], template: `
1978
+ <button
1979
+ mat-raised-button
1980
+ class="btn {{ classes() }}"
1981
+ (click)="onClick.emit($event)"
1982
+ (focus)="onFocus.emit($event)"
1983
+ (blur)="onBlur.emit($event)"
1984
+ (keydown)="onKeyDown.emit($event)"
1985
+ (keyup)="onKeyUp.emit($event)"
1986
+ [disabled]="disabled()"
1987
+ [type]="type()"
1988
+ [style]="style()"
1989
+ [attr.data-cy]="'view-button'">
1990
+ <mat-icon>{{ icon() }}</mat-icon>
1991
+ {{ label() }}
1992
+ </button>
1993
+ `, styles: [".primary-button,.primary-button:hover,.primary-button:active,.primary-button:visited{color:#fff!important;background-color:var(--primary-color)!important}.secondary-button,.secondary-button:hover,.secondary-button:active,.secondary-button:visited{color:#fff!important;background-color:var(--secondary-color)!important}.success-button,.success-button:hover,.success-button:active,.success-button:visited{color:#fff!important;background-color:var(--success-color)!important}.delete-button,.delete-button:hover,.delete-button:active,.success-button:visited{color:#fff!important;background-color:var(--delete-color)!important}\n"] }]
1994
+ }], ctorParameters: () => [] });
1995
+
1996
+ class ViewPrimaryButtonDirective extends BaseButtonDirective {
1997
+ constructor() {
1998
+ super();
1999
+ this.icon = input('visibility', ...(ngDevMode ? [{ debugName: "icon" }] : []));
2000
+ this.elementRef.nativeElement.classList.add('btn-primary');
2001
+ this.elementRef.nativeElement.classList.add('primary-button');
2002
+ }
2003
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.0", ngImport: i0, type: ViewPrimaryButtonDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
2004
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "20.1.0", type: ViewPrimaryButtonDirective, isStandalone: true, selector: "[viewPrimaryButton]", inputs: { icon: { classPropertyName: "icon", publicName: "icon", isSignal: true, isRequired: false, transformFunction: null } }, usesInheritance: true, ngImport: i0 }); }
2005
+ }
2006
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.0", ngImport: i0, type: ViewPrimaryButtonDirective, decorators: [{
2007
+ type: Directive,
2008
+ args: [{
2009
+ selector: '[viewPrimaryButton]',
2010
+ }]
2011
+ }], ctorParameters: () => [] });
2012
+
2013
+ class ConfirmDialogComponent {
2014
+ constructor(data, dialogRef) {
2015
+ this.data = data;
2016
+ this.dialogRef = dialogRef;
2017
+ // Update view with given values
2018
+ this.title = data.title;
2019
+ this.message = data.message;
2020
+ }
2021
+ onDismiss() {
2022
+ // Close the dialog, return true
2023
+ this.dialogRef.close(false);
2024
+ }
2025
+ onConfirm() {
2026
+ // Close the dialog, return true
2027
+ this.dialogRef.close(true);
2028
+ }
2029
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.0", ngImport: i0, type: ConfirmDialogComponent, deps: [{ token: MAT_DIALOG_DATA }, { token: i1$5.MatDialogRef }], target: i0.ɵɵFactoryTarget.Component }); }
2030
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.1.0", type: ConfirmDialogComponent, isStandalone: true, selector: "app-confirm-dialog", ngImport: i0, template: `
2031
+ <div class="mat-dialog-title" style="text-align: center">
2032
+ <h3 class="m-3 mat-headline-5 ">{{ title }}</h3>
2033
+ </div>
2034
+
2035
+ <mat-divider></mat-divider>
2036
+ <div mat-dialog-content style="margin: 20px">
2037
+ <p>{{ message }}</p>
2038
+ </div>
2039
+
2040
+ <div align="end" class="modal-footer" mat-dialog-actions>
2041
+ <button (click)="onDismiss()" mat-raised-button>No</button>
2042
+ <button (click)="onConfirm()" class="primary-button" mat-raised-button>Yes</button>
2043
+ </div>
2044
+ `, isInline: true, dependencies: [{ kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i1$3.MatButton, selector: " button[matButton], a[matButton], button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button], a[mat-button], a[mat-raised-button], a[mat-flat-button], a[mat-stroked-button] ", inputs: ["matButton"], exportAs: ["matButton", "matAnchor"] }, { kind: "ngmodule", type: MatDividerModule }, { kind: "component", type: i3$1.MatDivider, selector: "mat-divider", inputs: ["vertical", "inset"] }, { kind: "ngmodule", type: MatDialogModule }, { kind: "directive", type: i1$5.MatDialogActions, selector: "[mat-dialog-actions], mat-dialog-actions, [matDialogActions]", inputs: ["align"] }, { kind: "directive", type: i1$5.MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }] }); }
2045
+ }
2046
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.0", ngImport: i0, type: ConfirmDialogComponent, decorators: [{
2047
+ type: Component,
2048
+ args: [{ selector: 'app-confirm-dialog', imports: [MatButtonModule, MatDividerModule, MatDialogModule], template: `
2049
+ <div class="mat-dialog-title" style="text-align: center">
2050
+ <h3 class="m-3 mat-headline-5 ">{{ title }}</h3>
2051
+ </div>
2052
+
2053
+ <mat-divider></mat-divider>
2054
+ <div mat-dialog-content style="margin: 20px">
2055
+ <p>{{ message }}</p>
2056
+ </div>
2057
+
2058
+ <div align="end" class="modal-footer" mat-dialog-actions>
2059
+ <button (click)="onDismiss()" mat-raised-button>No</button>
2060
+ <button (click)="onConfirm()" class="primary-button" mat-raised-button>Yes</button>
2061
+ </div>
2062
+ ` }]
2063
+ }], ctorParameters: () => [{ type: undefined, decorators: [{
2064
+ type: Inject,
2065
+ args: [MAT_DIALOG_DATA]
2066
+ }] }, { type: i1$5.MatDialogRef }] });
2067
+
2068
+ class ErrorSnackBarComponent {
2069
+ constructor(msb, data) {
2070
+ this.msb = msb;
2071
+ this.data = data;
2072
+ }
2073
+ /**
2074
+ * Close the Snack Bar
2075
+ *
2076
+ * @author Pavan Kumar Jadda
2077
+ * @since 2.7.18
2078
+ */
2079
+ close() {
2080
+ this.msb.dismissWithAction();
2081
+ }
2082
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.0", ngImport: i0, type: ErrorSnackBarComponent, deps: [{ token: i1$6.MatSnackBarRef }, { token: MAT_SNACK_BAR_DATA }], target: i0.ɵɵFactoryTarget.Component }); }
2083
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.1.0", type: ErrorSnackBarComponent, isStandalone: true, selector: "app-error-snack-bar", ngImport: i0, template: `
2084
+ <div class="app-flex-center error-snackbar">
2085
+ <mat-icon style="font-size:1.3rem">error</mat-icon>
2086
+ <label>{{ data.message }}</label>
2087
+ <button style="margin-left: auto" (click)="close()" mat-icon-button>
2088
+ <mat-icon>close</mat-icon>
2089
+ </button>
2090
+ </div>
2091
+ `, isInline: true, styles: [":root{--primary-color: #153d77;--secondary-color: #6c757d;--white-color: #fff;--success-color: #198754;--delete-color: #dc3545;--background-color: #f2f2f2}.success-snackbar{--mdc-snackbar-container-color: var(--success-color) !important;--mat-mdc-snack-bar-button-color: var(--white-color) !important}.success-snackbar .mdc-snackbar__surface{background-color:var(--success-color)!important;color:#fff!important}.success-snackbar .mat-mdc-snack-bar-action{color:var(--white-color)!important}.error-snackbar{--mdc-snackbar-container-color: var(--delete-color) !important;--mat-mdc-snack-bar-button-color: var(--white-color) !important}.error-snackbar .mdc-snackbar__surface{background-color:var(--delete-color)!important;color:#fff!important}.error-snackbar .mat-mdc-snack-bar-action{color:var(--white-color)!important}.light-success-snackbar{--mdc-snackbar-container-color: #d4edda !important;--mat-mdc-snack-bar-button-color: darkgreen !important}.light-success-snackbar .mdc-snackbar__surface{background-color:#d4edda!important;color:#155724!important}.light-success-snackbar .mat-mdc-snack-bar-action{color:#006400!important}.light-error-snackbar{--mdc-snackbar-container-color: #f8d7da !important;--mat-mdc-snack-bar-button-color: darkred !important}.light-error-snackbar .mdc-snackbar__surface{background-color:#f8d7da!important;color:#721c24!important;border:1px solid #f5c6cb}.info-snackbar{--mdc-snackbar-container-color: #0dcaf0 !important;--mat-mdc-snack-bar-button-color: white !important}.info-snackbar .mdc-snackbar__surface{background-color:#0dcaf0!important;color:#fff!important}.warning-snackbar{--mdc-snackbar-container-color: #ffc107 !important;--mat-mdc-snack-bar-button-color: #000 !important}.warning-snackbar .mdc-snackbar__surface{background-color:#ffc107!important;color:#000!important}.primary-snackbar{--mdc-snackbar-container-color: var(--primary-color) !important;--mat-mdc-snack-bar-button-color: white !important}.primary-snackbar .mdc-snackbar__surface{background-color:var(--primary-color)!important;color:#fff!important}\n"], dependencies: [{ kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i1$4.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i1$3.MatIconButton, selector: "button[mat-icon-button], a[mat-icon-button], button[matIconButton], a[matIconButton]", exportAs: ["matButton", "matAnchor"] }] }); }
2092
+ }
2093
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.0", ngImport: i0, type: ErrorSnackBarComponent, decorators: [{
2094
+ type: Component,
2095
+ args: [{ selector: 'app-error-snack-bar', imports: [MatIconModule, MatButtonModule], template: `
2096
+ <div class="app-flex-center error-snackbar">
2097
+ <mat-icon style="font-size:1.3rem">error</mat-icon>
2098
+ <label>{{ data.message }}</label>
2099
+ <button style="margin-left: auto" (click)="close()" mat-icon-button>
2100
+ <mat-icon>close</mat-icon>
2101
+ </button>
2102
+ </div>
2103
+ `, styles: [":root{--primary-color: #153d77;--secondary-color: #6c757d;--white-color: #fff;--success-color: #198754;--delete-color: #dc3545;--background-color: #f2f2f2}.success-snackbar{--mdc-snackbar-container-color: var(--success-color) !important;--mat-mdc-snack-bar-button-color: var(--white-color) !important}.success-snackbar .mdc-snackbar__surface{background-color:var(--success-color)!important;color:#fff!important}.success-snackbar .mat-mdc-snack-bar-action{color:var(--white-color)!important}.error-snackbar{--mdc-snackbar-container-color: var(--delete-color) !important;--mat-mdc-snack-bar-button-color: var(--white-color) !important}.error-snackbar .mdc-snackbar__surface{background-color:var(--delete-color)!important;color:#fff!important}.error-snackbar .mat-mdc-snack-bar-action{color:var(--white-color)!important}.light-success-snackbar{--mdc-snackbar-container-color: #d4edda !important;--mat-mdc-snack-bar-button-color: darkgreen !important}.light-success-snackbar .mdc-snackbar__surface{background-color:#d4edda!important;color:#155724!important}.light-success-snackbar .mat-mdc-snack-bar-action{color:#006400!important}.light-error-snackbar{--mdc-snackbar-container-color: #f8d7da !important;--mat-mdc-snack-bar-button-color: darkred !important}.light-error-snackbar .mdc-snackbar__surface{background-color:#f8d7da!important;color:#721c24!important;border:1px solid #f5c6cb}.info-snackbar{--mdc-snackbar-container-color: #0dcaf0 !important;--mat-mdc-snack-bar-button-color: white !important}.info-snackbar .mdc-snackbar__surface{background-color:#0dcaf0!important;color:#fff!important}.warning-snackbar{--mdc-snackbar-container-color: #ffc107 !important;--mat-mdc-snack-bar-button-color: #000 !important}.warning-snackbar .mdc-snackbar__surface{background-color:#ffc107!important;color:#000!important}.primary-snackbar{--mdc-snackbar-container-color: var(--primary-color) !important;--mat-mdc-snack-bar-button-color: white !important}.primary-snackbar .mdc-snackbar__surface{background-color:var(--primary-color)!important;color:#fff!important}\n"] }]
2104
+ }], ctorParameters: () => [{ type: i1$6.MatSnackBarRef }, { type: undefined, decorators: [{
2105
+ type: Inject,
2106
+ args: [MAT_SNACK_BAR_DATA]
2107
+ }] }] });
2108
+
2109
+ class SuccessSnackBarComponent {
2110
+ constructor(msb, data) {
2111
+ this.msb = msb;
2112
+ this.data = data;
2113
+ }
2114
+ /**
2115
+ * Close the Snack Bar
2116
+ *
2117
+ * @author Pavan Kumar Jadda
2118
+ * @since 2.7.18
2119
+ */
2120
+ close() {
2121
+ this.msb.dismissWithAction();
2122
+ }
2123
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.0", ngImport: i0, type: SuccessSnackBarComponent, deps: [{ token: i1$6.MatSnackBarRef }, { token: MAT_SNACK_BAR_DATA }], target: i0.ɵɵFactoryTarget.Component }); }
2124
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.1.0", type: SuccessSnackBarComponent, isStandalone: true, selector: "app-success-snack-bar", ngImport: i0, template: `
2125
+ <div class="app-flex-center success-snackbar">
2126
+ <mat-icon style="font-size:1.3rem">check_circle</mat-icon>
2127
+ <label>{{ data.message }}</label>
2128
+ <button style="margin-left: auto" (click)="close()" mat-icon-button>
2129
+ <mat-icon>close</mat-icon>
2130
+ </button>
2131
+ </div>
2132
+ `, isInline: true, styles: [":root{--primary-color: #153d77;--secondary-color: #6c757d;--white-color: #fff;--success-color: #198754;--delete-color: #dc3545;--background-color: #f2f2f2}.success-snackbar{--mdc-snackbar-container-color: var(--success-color) !important;--mat-mdc-snack-bar-button-color: var(--white-color) !important}.success-snackbar .mdc-snackbar__surface{background-color:var(--success-color)!important;color:#fff!important}.success-snackbar .mat-mdc-snack-bar-action{color:var(--white-color)!important}.error-snackbar{--mdc-snackbar-container-color: var(--delete-color) !important;--mat-mdc-snack-bar-button-color: var(--white-color) !important}.error-snackbar .mdc-snackbar__surface{background-color:var(--delete-color)!important;color:#fff!important}.error-snackbar .mat-mdc-snack-bar-action{color:var(--white-color)!important}.light-success-snackbar{--mdc-snackbar-container-color: #d4edda !important;--mat-mdc-snack-bar-button-color: darkgreen !important}.light-success-snackbar .mdc-snackbar__surface{background-color:#d4edda!important;color:#155724!important}.light-success-snackbar .mat-mdc-snack-bar-action{color:#006400!important}.light-error-snackbar{--mdc-snackbar-container-color: #f8d7da !important;--mat-mdc-snack-bar-button-color: darkred !important}.light-error-snackbar .mdc-snackbar__surface{background-color:#f8d7da!important;color:#721c24!important;border:1px solid #f5c6cb}.info-snackbar{--mdc-snackbar-container-color: #0dcaf0 !important;--mat-mdc-snack-bar-button-color: white !important}.info-snackbar .mdc-snackbar__surface{background-color:#0dcaf0!important;color:#fff!important}.warning-snackbar{--mdc-snackbar-container-color: #ffc107 !important;--mat-mdc-snack-bar-button-color: #000 !important}.warning-snackbar .mdc-snackbar__surface{background-color:#ffc107!important;color:#000!important}.primary-snackbar{--mdc-snackbar-container-color: var(--primary-color) !important;--mat-mdc-snack-bar-button-color: white !important}.primary-snackbar .mdc-snackbar__surface{background-color:var(--primary-color)!important;color:#fff!important}\n"], dependencies: [{ kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i1$3.MatIconButton, selector: "button[mat-icon-button], a[mat-icon-button], button[matIconButton], a[matIconButton]", exportAs: ["matButton", "matAnchor"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i1$4.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }] }); }
2133
+ }
2134
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.0", ngImport: i0, type: SuccessSnackBarComponent, decorators: [{
2135
+ type: Component,
2136
+ args: [{ selector: 'app-success-snack-bar', imports: [MatButtonModule, MatIconModule], template: `
2137
+ <div class="app-flex-center success-snackbar">
2138
+ <mat-icon style="font-size:1.3rem">check_circle</mat-icon>
2139
+ <label>{{ data.message }}</label>
2140
+ <button style="margin-left: auto" (click)="close()" mat-icon-button>
2141
+ <mat-icon>close</mat-icon>
2142
+ </button>
2143
+ </div>
2144
+ `, styles: [":root{--primary-color: #153d77;--secondary-color: #6c757d;--white-color: #fff;--success-color: #198754;--delete-color: #dc3545;--background-color: #f2f2f2}.success-snackbar{--mdc-snackbar-container-color: var(--success-color) !important;--mat-mdc-snack-bar-button-color: var(--white-color) !important}.success-snackbar .mdc-snackbar__surface{background-color:var(--success-color)!important;color:#fff!important}.success-snackbar .mat-mdc-snack-bar-action{color:var(--white-color)!important}.error-snackbar{--mdc-snackbar-container-color: var(--delete-color) !important;--mat-mdc-snack-bar-button-color: var(--white-color) !important}.error-snackbar .mdc-snackbar__surface{background-color:var(--delete-color)!important;color:#fff!important}.error-snackbar .mat-mdc-snack-bar-action{color:var(--white-color)!important}.light-success-snackbar{--mdc-snackbar-container-color: #d4edda !important;--mat-mdc-snack-bar-button-color: darkgreen !important}.light-success-snackbar .mdc-snackbar__surface{background-color:#d4edda!important;color:#155724!important}.light-success-snackbar .mat-mdc-snack-bar-action{color:#006400!important}.light-error-snackbar{--mdc-snackbar-container-color: #f8d7da !important;--mat-mdc-snack-bar-button-color: darkred !important}.light-error-snackbar .mdc-snackbar__surface{background-color:#f8d7da!important;color:#721c24!important;border:1px solid #f5c6cb}.info-snackbar{--mdc-snackbar-container-color: #0dcaf0 !important;--mat-mdc-snack-bar-button-color: white !important}.info-snackbar .mdc-snackbar__surface{background-color:#0dcaf0!important;color:#fff!important}.warning-snackbar{--mdc-snackbar-container-color: #ffc107 !important;--mat-mdc-snack-bar-button-color: #000 !important}.warning-snackbar .mdc-snackbar__surface{background-color:#ffc107!important;color:#000!important}.primary-snackbar{--mdc-snackbar-container-color: var(--primary-color) !important;--mat-mdc-snack-bar-button-color: white !important}.primary-snackbar .mdc-snackbar__surface{background-color:var(--primary-color)!important;color:#fff!important}\n"] }]
2145
+ }], ctorParameters: () => [{ type: i1$6.MatSnackBarRef }, { type: undefined, decorators: [{
2146
+ type: Inject,
2147
+ args: [MAT_SNACK_BAR_DATA]
2148
+ }] }] });
2149
+
2150
+ class MatSnackBarService {
2151
+ constructor() {
2152
+ this.snackBar = inject(MatSnackBar);
2153
+ /**
2154
+ * Duration (in milliseconds) of the Snack Bar to be open. Defaults to 5 seconds (5000 milliseconds)
2155
+ */
2156
+ this.duration = 5000;
2157
+ /**
2158
+ * Horizontal Position of the MatSnackBar. Defaults to right side
2159
+ */
2160
+ this.horizontalPosition = 'right';
2161
+ /**
2162
+ * Vertical Position of the MatSnackBar. Defaults to top of the page
2163
+ */
2164
+ this.verticalPosition = 'top';
2165
+ }
2166
+ /**
2167
+ * Opens Success Snack Bar
2168
+ *
2169
+ * @param message Message to display on Snack Bar
2170
+ * @param options Options of the Snack Bar
2171
+ *
2172
+ * @author Pavan Kumar Jadda
2173
+ * @since 2.2.3
2174
+ */
2175
+ success(message, options) {
2176
+ this.snackBar.openFromComponent(SuccessSnackBarComponent, {
2177
+ data: { message },
2178
+ duration: options?.duration ?? this.duration,
2179
+ panelClass: options?.panelClass ?? 'success-snackbar',
2180
+ horizontalPosition: options?.horizontalPosition ?? this.horizontalPosition,
2181
+ verticalPosition: options?.verticalPosition ?? this.verticalPosition,
2182
+ });
2183
+ }
2184
+ /**
2185
+ * Opens Error Snack Bar
2186
+ *
2187
+ * @param message Message to display on Snack Bar
2188
+ * @param options Options of the Snack Bar
2189
+ *
2190
+ * @author Pavan Kumar Jadda
2191
+ * @since 2.2.3
2192
+ */
2193
+ error(message, options) {
2194
+ this.snackBar.openFromComponent(ErrorSnackBarComponent, {
2195
+ data: { message },
2196
+ duration: options?.duration ?? this.duration,
2197
+ panelClass: options?.panelClass ?? 'error-snackbar',
2198
+ horizontalPosition: options?.horizontalPosition ?? this.horizontalPosition,
2199
+ verticalPosition: options?.verticalPosition ?? this.verticalPosition,
2200
+ });
2201
+ }
2202
+ /**
2203
+ * Opens Generic Snack Bar
2204
+ *
2205
+ * @param message Message to display on Snack Bar
2206
+ *
2207
+ * @author Pavan Kumar Jadda
2208
+ * @since 2.2.3
2209
+ */
2210
+ open(message) {
2211
+ this.snackBar.open(message, 'Close', {
2212
+ duration: this.duration,
2213
+ horizontalPosition: this.horizontalPosition,
2214
+ verticalPosition: this.verticalPosition,
2215
+ });
2216
+ }
2217
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.0", ngImport: i0, type: MatSnackBarService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
2218
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.1.0", ngImport: i0, type: MatSnackBarService, providedIn: 'root' }); }
2219
+ }
2220
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.0", ngImport: i0, type: MatSnackBarService, decorators: [{
2221
+ type: Injectable,
2222
+ args: [{
2223
+ providedIn: 'root',
2224
+ }]
2225
+ }] });
2226
+
2227
+ /**
2228
+ * A core entity store class that stores a list of objects. This has list of methods to perform CRUD operations on the list of objects.
2229
+ *
2230
+ * @author Pavan Kumar Jadda
2231
+ * @since 17.1.0
2232
+ */
2233
+ class EntityStore {
2234
+ constructor() {
2235
+ this._data = signal([], ...(ngDevMode ? [{ debugName: "_data" }] : []));
2236
+ // The data property is a computed property that returns the value of the _data signal
2237
+ this.data = computed(() => this._data(), ...(ngDevMode ? [{ debugName: "data" }] : []));
2238
+ }
2239
+ /**
2240
+ * Find an item in the store by id
2241
+ *
2242
+ * @param id The id of the item to be found
2243
+ *
2244
+ * @returns The item if found, undefined otherwise
2245
+ *
2246
+ * @author Pavan Kumar Jadda
2247
+ * @since 17.1.0
2248
+ */
2249
+ findById(id) {
2250
+ return this._data().find((item) => item.id === id);
2251
+ }
2252
+ /**
2253
+ * Set the list of items in the store with the new data
2254
+ *
2255
+ * @param data The new list of items to be stored
2256
+ *
2257
+ * @author Pavan Kumar Jadda
2258
+ * @since 17.1.0
2259
+ */
2260
+ setData(data) {
2261
+ this._data.set(data);
2262
+ }
2263
+ /**
2264
+ * Update an item in the store. If the item does not exist in new list, add it. Otherwise, update it.
2265
+ *
2266
+ * @param data The item to added or updated
2267
+ *
2268
+ * @author Pavan Kumar Jadda
2269
+ * @since 17.1.0
2270
+ */
2271
+ upsert(data) {
2272
+ this._data.update((currentData) => {
2273
+ const dataMap = new Map(currentData.map((item) => [item.id, item]));
2274
+ dataMap.set(data.id, data);
2275
+ return Array.from(dataMap.values());
2276
+ });
2277
+ }
2278
+ /**
2279
+ * Update or insert the given list of items in the store
2280
+ *
2281
+ * @param newData The list of items to be updated or inserted
2282
+ *
2283
+ * @author Pavan Kumar Jadda
2284
+ * @since 17.1.0
2285
+ */
2286
+ upsertMulti(newData) {
2287
+ this._data.update((currentData) => {
2288
+ const dataMap = new Map(currentData.map((item) => [item.id, item]));
2289
+ newData.forEach((newItem) => dataMap.set(newItem.id, newItem));
2290
+ return Array.from(dataMap.values());
2291
+ });
2292
+ }
2293
+ /**
2294
+ * Remove an item from the store
2295
+ *
2296
+ * @param id The id of the item to be removed
2297
+ *
2298
+ * @author Pavan Kumar Jadda
2299
+ * @since 17.1.0
2300
+ */
2301
+ remove(id) {
2302
+ this._data.update((currentData) => currentData.filter((item) => item.id !== id));
2303
+ }
2304
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.0", ngImport: i0, type: EntityStore, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
2305
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.1.0", ngImport: i0, type: EntityStore, providedIn: 'root' }); }
2306
+ }
2307
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.0", ngImport: i0, type: EntityStore, decorators: [{
2308
+ type: Injectable,
2309
+ args: [{
2310
+ providedIn: 'root',
2311
+ }]
2312
+ }] });
2313
+
2314
+ /**
2315
+ * A core store class that can be used to store any object
2316
+ *
2317
+ * @author Pavan Kumar Jadda
2318
+ * @since 17.1.0
2319
+ */
2320
+ class Store {
2321
+ constructor() {
2322
+ this._data = signal(null, ...(ngDevMode ? [{ debugName: "_data" }] : []));
2323
+ // The data property is a computed property that returns the value of the _data signal
2324
+ this.data = computed(() => this._data(), ...(ngDevMode ? [{ debugName: "data" }] : []));
2325
+ }
2326
+ // Add initialization method
2327
+ initialize(initialData) {
2328
+ this._data.set(initialData);
2329
+ }
2330
+ /**
2331
+ * Update the data in the store with the new data
2332
+ *
2333
+ * @param newData The new data to be stored/updated
2334
+ *
2335
+ * @author Pavan Kumar Jadda
2336
+ * @since 17.1.0
2337
+ */
2338
+ update(newData) {
2339
+ this._data.set(newData);
2340
+ }
2341
+ // Add clear method
2342
+ clear() {
2343
+ this._data.set(null);
2344
+ }
2345
+ // Add getter with null check
2346
+ getData() {
2347
+ return this._data();
2348
+ }
2349
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.0", ngImport: i0, type: Store, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
2350
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.1.0", ngImport: i0, type: Store, providedIn: 'root' }); }
2351
+ }
2352
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.0", ngImport: i0, type: Store, decorators: [{
2353
+ type: Injectable,
2354
+ args: [{
2355
+ providedIn: 'root',
2356
+ }]
2357
+ }] });
2358
+
2359
+ /**
2360
+ * Initialize Loading or Update ProgressState
2361
+ *
2362
+ * @return Updated State Object
2363
+ *
2364
+ * @author Pavan Kumar Jadda
2365
+ * @since 2.7.16
2366
+ */
2367
+ const initializeState = () => {
2368
+ return signal({
2369
+ isLoading: false,
2370
+ isSuccess: false,
2371
+ isError: false,
2372
+ isComplete: false,
2373
+ message: '',
2374
+ });
2375
+ };
2376
+ /**
2377
+ * Initialize Loading or Update ProgressState
2378
+ *
2379
+ * @param progressState Object to initialize
2380
+ * @return ProgressState Updated State Object
2381
+ *
2382
+ * @author Pavan Kumar Jadda
2383
+ * @since 2.7.16
2384
+ */
2385
+ const markLoading = (progressState) => {
2386
+ progressState.update((state) => {
2387
+ return {
2388
+ ...state,
2389
+ isLoading: true,
2390
+ isSuccess: false,
2391
+ isError: false,
2392
+ isComplete: false,
2393
+ message: '',
2394
+ };
2395
+ });
2396
+ };
2397
+ /**
2398
+ * Update state as isSuccess
2399
+ *
2400
+ * @return ProgressState Updated State Object
2401
+ *
2402
+ * @author Pavan Kumar Jadda
2403
+ * @since 2.7.16
2404
+ */
2405
+ const markSuccess = (progressState, message) => {
2406
+ progressState.update((state) => {
2407
+ return {
2408
+ ...state,
2409
+ isLoading: false,
2410
+ isSuccess: true,
2411
+ isError: false,
2412
+ isComplete: true,
2413
+ message: message || '',
2414
+ };
2415
+ });
2416
+ };
2417
+ /**
2418
+ * Update state as failure or isError
2419
+ *
2420
+ * @return ProgressState Updated State Object
2421
+ *
2422
+ * @author Pavan Kumar Jadda
2423
+ * @since 2.7.16
2424
+ */
2425
+ const markError = (progressState, message) => {
2426
+ progressState.update((state) => {
2427
+ return {
2428
+ ...state,
2429
+ isLoading: false,
2430
+ isSuccess: false,
2431
+ isError: true,
2432
+ isComplete: true,
2433
+ message: message || '',
2434
+ };
2435
+ });
2436
+ };
2437
+
2438
+ /**
2439
+ * Generated bundle index. Do not edit.
2440
+ */
2441
+
2442
+ export { AlertComponent, AutocompleteComponent, BaseButtonDirective, BsLinkButtonComponent, BsLinkButtonDirective, CloseButtonDirective, ConfirmDialogComponent, DeleteButtonComponent, DeleteButtonDirective, EditBsButtonComponent, EditBsButtonDirective, EditButtonComponent, EditButtonDirective, EditSolidSvgComponent, EditSvgIconButtonComponent, EditSvgIconButtonDirective, EntityStore, ExcelExportButtonComponent, ExcelExportButtonDirective, ManageButtonComponent, ManageButtonDirective, MatSnackBarService, NgxPrintDirective, NgxSpinnerComponent, NgxSpinnerService, PdfExportButtonComponent, PdfExportButtonDirective, PreventMultipleClicksDirective, PrimaryButtonComponent, PrimaryButtonDirective, SavePrimaryButtonComponent, SavePrimaryButtonDirective, SearchButtonComponent, SpinnerComponent, Store, SuccessButtonComponent, SuccessButtonDirective, ViewButtonComponent, ViewButtonDirective, ViewPrimaryButtonComponent, ViewPrimaryButtonDirective, initializeState, markError, markLoading, markSuccess };
2443
+ //# sourceMappingURL=js-smart-ng-kit.mjs.map