@js-smart/ng-kit 18.0.0

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 (72) hide show
  1. package/README.md +297 -0
  2. package/esm2022/js-smart-ng-kit.mjs +5 -0
  3. package/esm2022/lib/components/alert/alert.component.mjs +95 -0
  4. package/esm2022/lib/components/autocomplete/autocomplete.component.mjs +172 -0
  5. package/esm2022/lib/components/buttons/base-button/base-button.component.mjs +72 -0
  6. package/esm2022/lib/components/buttons/bs-link-button/bs-link-button.component.mjs +52 -0
  7. package/esm2022/lib/components/buttons/delete-button/delete-button.component.mjs +62 -0
  8. package/esm2022/lib/components/buttons/edit-bs-button/edit-bs-button.component.mjs +55 -0
  9. package/esm2022/lib/components/buttons/edit-button/edit-button.component.mjs +49 -0
  10. package/esm2022/lib/components/buttons/edit-svg-icon-button/edit-svg-icon-button.component.mjs +51 -0
  11. package/esm2022/lib/components/buttons/excel-export-button/excel-export-button.component.mjs +14 -0
  12. package/esm2022/lib/components/buttons/manage-button/manage-button.component.mjs +49 -0
  13. package/esm2022/lib/components/buttons/pdf-export-button/pdf-export-button.component.mjs +13 -0
  14. package/esm2022/lib/components/buttons/primary-button/primary-button.component.mjs +61 -0
  15. package/esm2022/lib/components/buttons/save-primary-button/save-primary-button.component.mjs +60 -0
  16. package/esm2022/lib/components/buttons/search-button/search-button.component.mjs +52 -0
  17. package/esm2022/lib/components/buttons/success-button/success-button.component.mjs +65 -0
  18. package/esm2022/lib/components/buttons/view-button/view-button.component.mjs +41 -0
  19. package/esm2022/lib/components/buttons/view-primary-button/view-primary-button.component.mjs +49 -0
  20. package/esm2022/lib/components/confirm-dialog/confirm-dialog.component.mjs +63 -0
  21. package/esm2022/lib/components/ngx-spinner/ngx-spinner.component.mjs +195 -0
  22. package/esm2022/lib/components/ngx-spinner/ngx-spinner.enum.mjs +16 -0
  23. package/esm2022/lib/components/ngx-spinner/ngx-spinner.service.mjs +71 -0
  24. package/esm2022/lib/components/ngx-spinner/safe-html.pipe.mjs +24 -0
  25. package/esm2022/lib/components/snack-bar/error-snack-bar/error-snack-bar.component.mjs +50 -0
  26. package/esm2022/lib/components/snack-bar/success-snack-bar/success-snack-bar.component.mjs +50 -0
  27. package/esm2022/lib/components/spinner/spinner.component.mjs +31 -0
  28. package/esm2022/lib/directives/ngx-print.directive.mjs +255 -0
  29. package/esm2022/lib/directives/prevent-multiple-clicks.directive.mjs +44 -0
  30. package/esm2022/lib/pipes/type-of.pipe.mjs +17 -0
  31. package/esm2022/lib/services/mat-snack-bar.service.mjs +82 -0
  32. package/esm2022/lib/svg-icons/edit-solid-svg/edit-solid-svg.component.mjs +22 -0
  33. package/esm2022/lib/types/progress-state.mjs +2 -0
  34. package/esm2022/lib/util/progress-util.mjs +80 -0
  35. package/esm2022/public-api.mjs +33 -0
  36. package/fesm2022/js-smart-ng-kit.mjs +1872 -0
  37. package/fesm2022/js-smart-ng-kit.mjs.map +1 -0
  38. package/index.d.ts +5 -0
  39. package/lib/components/alert/alert.component.d.ts +73 -0
  40. package/lib/components/autocomplete/autocomplete.component.d.ts +115 -0
  41. package/lib/components/buttons/base-button/base-button.component.d.ts +63 -0
  42. package/lib/components/buttons/bs-link-button/bs-link-button.component.d.ts +10 -0
  43. package/lib/components/buttons/delete-button/delete-button.component.d.ts +11 -0
  44. package/lib/components/buttons/edit-bs-button/edit-bs-button.component.d.ts +9 -0
  45. package/lib/components/buttons/edit-button/edit-button.component.d.ts +10 -0
  46. package/lib/components/buttons/edit-svg-icon-button/edit-svg-icon-button.component.d.ts +10 -0
  47. package/lib/components/buttons/excel-export-button/excel-export-button.component.d.ts +5 -0
  48. package/lib/components/buttons/manage-button/manage-button.component.d.ts +10 -0
  49. package/lib/components/buttons/pdf-export-button/pdf-export-button.component.d.ts +5 -0
  50. package/lib/components/buttons/primary-button/primary-button.component.d.ts +12 -0
  51. package/lib/components/buttons/save-primary-button/save-primary-button.component.d.ts +11 -0
  52. package/lib/components/buttons/search-button/search-button.component.d.ts +11 -0
  53. package/lib/components/buttons/success-button/success-button.component.d.ts +11 -0
  54. package/lib/components/buttons/view-button/view-button.component.d.ts +9 -0
  55. package/lib/components/buttons/view-primary-button/view-primary-button.component.d.ts +10 -0
  56. package/lib/components/confirm-dialog/confirm-dialog.component.d.ts +20 -0
  57. package/lib/components/ngx-spinner/ngx-spinner.component.d.ts +109 -0
  58. package/lib/components/ngx-spinner/ngx-spinner.enum.d.ts +37 -0
  59. package/lib/components/ngx-spinner/ngx-spinner.service.d.ts +34 -0
  60. package/lib/components/ngx-spinner/safe-html.pipe.d.ts +10 -0
  61. package/lib/components/snack-bar/error-snack-bar/error-snack-bar.component.d.ts +22 -0
  62. package/lib/components/snack-bar/success-snack-bar/success-snack-bar.component.d.ts +22 -0
  63. package/lib/components/spinner/spinner.component.d.ts +22 -0
  64. package/lib/directives/ngx-print.directive.d.ts +157 -0
  65. package/lib/directives/prevent-multiple-clicks.directive.d.ts +21 -0
  66. package/lib/pipes/type-of.pipe.d.ts +7 -0
  67. package/lib/services/mat-snack-bar.service.d.ts +61 -0
  68. package/lib/svg-icons/edit-solid-svg/edit-solid-svg.component.d.ts +8 -0
  69. package/lib/types/progress-state.d.ts +7 -0
  70. package/lib/util/progress-util.d.ts +45 -0
  71. package/package.json +47 -0
  72. package/public-api.d.ts +25 -0
@@ -0,0 +1,1872 @@
1
+ import * as i0 from '@angular/core';
2
+ import { input, signal, Component, Injectable, Pipe, Input, ViewChild, HostListener, output, Optional, Directive, EventEmitter, Output, Inject } from '@angular/core';
3
+ import * as i1$5 from '@angular/common';
4
+ import { CommonModule, AsyncPipe, NgStyle } from '@angular/common';
5
+ import * as i1 from '@angular/material/progress-spinner';
6
+ import { MatProgressSpinnerModule } from '@angular/material/progress-spinner';
7
+ import { BehaviorSubject, Subject, throttleTime } from 'rxjs';
8
+ import { filter, takeUntil, startWith, map } from 'rxjs/operators';
9
+ import { trigger, state, style, transition, animate } from '@angular/animations';
10
+ import * as i1$1 from '@angular/platform-browser';
11
+ import * as i1$2 from '@angular/forms';
12
+ import { ReactiveFormsModule } from '@angular/forms';
13
+ import * as i3 from '@angular/material/autocomplete';
14
+ import { MatAutocompleteModule } from '@angular/material/autocomplete';
15
+ import * as i2 from '@angular/material/form-field';
16
+ import { MatFormFieldModule } from '@angular/material/form-field';
17
+ import * as i5 from '@angular/material/input';
18
+ import { MatInputModule } from '@angular/material/input';
19
+ import * as i1$3 from '@angular/material/button';
20
+ import { MatButtonModule, MatAnchor, MatButton } from '@angular/material/button';
21
+ import * as i1$4 from '@angular/material/icon';
22
+ import { MatIconModule, MatIcon } from '@angular/material/icon';
23
+ import * as i4 from '@angular/material/core';
24
+ import * as i1$6 from '@angular/material/dialog';
25
+ import { MAT_DIALOG_DATA, MatDialogModule } from '@angular/material/dialog';
26
+ import * as i3$1 from '@angular/material/divider';
27
+ import { MatDividerModule } from '@angular/material/divider';
28
+ import * as i1$7 from '@angular/material/snack-bar';
29
+ import { MAT_SNACK_BAR_DATA } from '@angular/material/snack-bar';
30
+
31
+ /**
32
+ * Boostrap Alert component that can be used to alert messages to the user
33
+ *
34
+ * @author Pavan Kumar Jadda
35
+ * @since 12.0.0
36
+ */
37
+ class AlertComponent {
38
+ constructor(cdr) {
39
+ this.cdr = cdr;
40
+ /**
41
+ * Type of the BootStrap Alert. Following values are supported. See BootStrap docs for more information
42
+ * <pre>
43
+ * 1. info
44
+ * 2. primary
45
+ * 3. secondary
46
+ * 4. success
47
+ * 5. warning
48
+ * 6. danger
49
+ * 7. dark
50
+ * 8. light
51
+ * </pre>
52
+ */
53
+ this.type = input('info');
54
+ /**
55
+ * Is alert visible or open
56
+ */
57
+ this.isOpen = input(true);
58
+ /**
59
+ * Writable signal for isOpen
60
+ */
61
+ this.open = signal(this.isOpen());
62
+ /**
63
+ * If set, displays an inline “Close” button
64
+ */
65
+ this.dismissible = input(true);
66
+ /**
67
+ * If set, dismisses the alert after Dismiss Timeout
68
+ */
69
+ this.dismissOnTimeout = input(true);
70
+ /**
71
+ * Number in milliseconds, after which alert will be closed. Default value is 5000 ms
72
+ */
73
+ this.dismissTimeout = input(5000);
74
+ /**
75
+ * Additional classes to be added to the alert. This can be used to add custom styles to the alert
76
+ */
77
+ this.class = input('');
78
+ }
79
+ /**
80
+ * Initialize the component and settings
81
+ *
82
+ * @author Pavan Kumar Jadda
83
+ * @since 12.0.0
84
+ */
85
+ ngOnInit() {
86
+ this.openAlert();
87
+ if (this.dismissOnTimeout()) {
88
+ setTimeout(() => {
89
+ this.closeAlert();
90
+ this.cdr.markForCheck();
91
+ }, this.dismissTimeout());
92
+ }
93
+ }
94
+ /**
95
+ * Closes BootStrap Alert if not open
96
+ *
97
+ * @author Pavan Kumar Jadda
98
+ * @since 12.0.0
99
+ */
100
+ closeAlert() {
101
+ if (!this.isOpen()) {
102
+ return;
103
+ }
104
+ this.open.set(false);
105
+ }
106
+ /**
107
+ * Opens Bootstrap Alert
108
+ *
109
+ * @author Pavan Kumar Jadda
110
+ * @since 12.0.0
111
+ */
112
+ openAlert() {
113
+ this.open.set(true);
114
+ }
115
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.0", ngImport: i0, type: AlertComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
116
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.0.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 } }, 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"], dependencies: [{ kind: "ngmodule", type: CommonModule }] }); }
117
+ }
118
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.0", ngImport: i0, type: AlertComponent, decorators: [{
119
+ type: Component,
120
+ args: [{ selector: 'lib-alert, alert', standalone: true, imports: [CommonModule], 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"] }]
121
+ }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }] });
122
+
123
+ class SpinnerComponent {
124
+ constructor() {
125
+ /**
126
+ * Use Boostrap Spinner. Default `true`
127
+ */
128
+ this.bootstrapSpinner = input(true);
129
+ /**
130
+ * Diameter of the Angular Material spinner
131
+ */
132
+ this.diameter = input(50);
133
+ /**
134
+ * Color of the Angular Material spinner
135
+ */
136
+ this.color = input('primary');
137
+ /**
138
+ * Stroke Width of the Angular Material spinner
139
+ */
140
+ this.strokeWidth = input(5);
141
+ }
142
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.0", ngImport: i0, type: SpinnerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
143
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.0.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.MatProgressSpinner, selector: "mat-progress-spinner, mat-spinner", inputs: ["color", "mode", "value", "diameter", "strokeWidth"], exportAs: ["matProgressSpinner"] }] }); }
144
+ }
145
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.0", ngImport: i0, type: SpinnerComponent, decorators: [{
146
+ type: Component,
147
+ args: [{ selector: 'spinner,lib-spinner', standalone: true, 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"] }]
148
+ }] });
149
+
150
+ const LOADERS = {
151
+ 'ball-clip-rotate': 1,
152
+ };
153
+ const DEFAULTS = {
154
+ BD_COLOR: 'rgba(51,51,51,0.8)',
155
+ SPINNER_COLOR: '#fff',
156
+ SPINNER_TYPE: 'ball-clip-rotate',
157
+ Z_INDEX: 99999,
158
+ };
159
+ const PRIMARY_SPINNER = 'primary';
160
+ class NgxSpinner {
161
+ constructor(init) {
162
+ Object.assign(this, init);
163
+ }
164
+ }
165
+
166
+ class NgxSpinnerService {
167
+ constructor() {
168
+ /**
169
+ * Spinner observable
170
+ *
171
+ * @memberof NgxSpinnerService
172
+ */
173
+ // private spinnerObservable = new ReplaySubject<NgxSpinner>(1);
174
+ this.spinnerObservable = new BehaviorSubject(undefined);
175
+ }
176
+ /**
177
+ * Creates an instance of NgxSpinnerService.
178
+ * @memberof NgxSpinnerService
179
+ */
180
+ /**
181
+ * Get subscription of desired spinner
182
+ * @memberof NgxSpinnerService
183
+ **/
184
+ getSpinner(name) {
185
+ // @ts-ignore
186
+ return this.spinnerObservable.asObservable().pipe(filter((x) => x?.name === name));
187
+ }
188
+ /**
189
+ * To show spinner
190
+ *
191
+ * @memberof NgxSpinnerService
192
+ */
193
+ show(name = PRIMARY_SPINNER, spinner) {
194
+ return new Promise((resolve, _reject) => {
195
+ setTimeout(() => {
196
+ if (spinner && Object.keys(spinner).length) {
197
+ // @ts-ignore
198
+ spinner['name'] = name;
199
+ this.spinnerObservable.next(new NgxSpinner({ ...spinner, show: true }));
200
+ resolve(true);
201
+ }
202
+ else {
203
+ this.spinnerObservable.next(new NgxSpinner({ name, show: true }));
204
+ resolve(true);
205
+ }
206
+ }, 10);
207
+ });
208
+ }
209
+ /**
210
+ * To hide spinner
211
+ *
212
+ * @memberof NgxSpinnerService
213
+ */
214
+ hide(name = PRIMARY_SPINNER, debounce = 10) {
215
+ return new Promise((resolve, _reject) => {
216
+ setTimeout(() => {
217
+ this.spinnerObservable.next(new NgxSpinner({ name, show: false }));
218
+ resolve(true);
219
+ }, debounce);
220
+ });
221
+ }
222
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.0", ngImport: i0, type: NgxSpinnerService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
223
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.0.0", ngImport: i0, type: NgxSpinnerService, providedIn: 'root' }); }
224
+ }
225
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.0", ngImport: i0, type: NgxSpinnerService, decorators: [{
226
+ type: Injectable,
227
+ args: [{
228
+ providedIn: 'root',
229
+ }]
230
+ }] });
231
+
232
+ class SafeHtmlPipe {
233
+ constructor(_sanitizer) {
234
+ this._sanitizer = _sanitizer;
235
+ }
236
+ transform(v) {
237
+ if (v) {
238
+ return this._sanitizer.bypassSecurityTrustHtml(v);
239
+ }
240
+ return undefined;
241
+ }
242
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.0", ngImport: i0, type: SafeHtmlPipe, deps: [{ token: i1$1.DomSanitizer }], target: i0.ɵɵFactoryTarget.Pipe }); }
243
+ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "18.0.0", ngImport: i0, type: SafeHtmlPipe, isStandalone: true, name: "safeHtml" }); }
244
+ }
245
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.0", ngImport: i0, type: SafeHtmlPipe, decorators: [{
246
+ type: Pipe,
247
+ args: [{
248
+ name: 'safeHtml',
249
+ standalone: true,
250
+ }]
251
+ }], ctorParameters: () => [{ type: i1$1.DomSanitizer }] });
252
+
253
+ class NgxSpinnerComponent {
254
+ /**
255
+ * Creates an instance of NgxSpinnerComponent.
256
+ */
257
+ constructor(spinnerService, changeDetector) {
258
+ this.spinnerService = spinnerService;
259
+ this.changeDetector = changeDetector;
260
+ /**
261
+ * To enable/disable animation
262
+ */
263
+ this.disableAnimation = false;
264
+ /**
265
+ * Spinner Object
266
+ */
267
+ this.spinner = new NgxSpinner();
268
+ /**
269
+ * Unsubscribe from spinner's observable
270
+ **/
271
+ this.ngUnsubscribe = new Subject();
272
+ /**
273
+ * To set default ngx-spinner options
274
+ */
275
+ this.setDefaultOptions = () => {
276
+ this.spinner = new NgxSpinner({
277
+ name: this.name,
278
+ bdColor: this.bdColor,
279
+ size: this.size,
280
+ color: this.color,
281
+ type: this.type,
282
+ fullScreen: this.fullScreen,
283
+ divArray: this.divArray,
284
+ divCount: this.divCount,
285
+ show: this.show,
286
+ zIndex: this.zIndex,
287
+ template: this.template,
288
+ showSpinner: this.showSpinner,
289
+ });
290
+ };
291
+ this.bdColor = DEFAULTS.BD_COLOR;
292
+ this.zIndex = DEFAULTS.Z_INDEX;
293
+ this.color = DEFAULTS.SPINNER_COLOR;
294
+ this.type = DEFAULTS.SPINNER_TYPE;
295
+ this.size = 'large';
296
+ this.fullScreen = true;
297
+ this.name = PRIMARY_SPINNER;
298
+ // @ts-ignore
299
+ this.template = null;
300
+ this.showSpinner = false;
301
+ this.divArray = [];
302
+ this.divCount = 0;
303
+ this.show = false;
304
+ }
305
+ handleKeyboardEvent(event) {
306
+ if (this.spinnerDOM && this.spinnerDOM.nativeElement) {
307
+ event.returnValue = false;
308
+ event.preventDefault();
309
+ }
310
+ }
311
+ /**
312
+ * Initialization method
313
+
314
+ */
315
+ ngOnInit() {
316
+ this.setDefaultOptions();
317
+ this.spinnerService
318
+ .getSpinner(this.name)
319
+ .pipe(takeUntil(this.ngUnsubscribe))
320
+ .subscribe((spinner) => {
321
+ this.setDefaultOptions();
322
+ Object.assign(this.spinner, spinner);
323
+ if (spinner.show) {
324
+ this.onInputChange();
325
+ }
326
+ this.changeDetector.detectChanges();
327
+ });
328
+ }
329
+ /**
330
+ * On changes event for input variables
331
+ */
332
+ ngOnChanges(changes) {
333
+ for (const propName in changes) {
334
+ if (propName) {
335
+ const changedProp = changes[propName];
336
+ if (changedProp.isFirstChange()) {
337
+ return;
338
+ }
339
+ else if (typeof changedProp.currentValue !== 'undefined' && changedProp.currentValue !== changedProp.previousValue) {
340
+ if (changedProp.currentValue !== '') {
341
+ // @ts-ignore
342
+ this.spinner[propName] = changedProp.currentValue;
343
+ if (propName === 'showSpinner') {
344
+ if (changedProp.currentValue) {
345
+ this.spinnerService.show(this.spinner.name, this.spinner);
346
+ }
347
+ else {
348
+ this.spinnerService.hide(this.spinner.name);
349
+ }
350
+ }
351
+ }
352
+ }
353
+ }
354
+ }
355
+ }
356
+ /**
357
+ * To get class for spinner
358
+ */
359
+ getClass(type, size) {
360
+ // @ts-ignore
361
+ this.spinner.divCount = LOADERS[type];
362
+ this.spinner.divArray = Array(this.spinner.divCount)
363
+ .fill(0)
364
+ .map((x, i) => i);
365
+ let sizeClass = '';
366
+ switch (size.toLowerCase()) {
367
+ case 'small':
368
+ sizeClass = 'la-sm';
369
+ break;
370
+ case 'medium':
371
+ sizeClass = 'la-2x';
372
+ break;
373
+ case 'large':
374
+ sizeClass = 'la-3x';
375
+ break;
376
+ default:
377
+ break;
378
+ }
379
+ return 'la-' + type + ' ' + sizeClass;
380
+ }
381
+ /**
382
+ * Check if input variables have changed
383
+ */
384
+ onInputChange() {
385
+ this.spinner.class = this.getClass(this.spinner.type ?? DEFAULTS.SPINNER_TYPE, this.spinner.size ?? 'default');
386
+ }
387
+ /**
388
+ * Component destroy event
389
+ */
390
+ ngOnDestroy() {
391
+ this.ngUnsubscribe.next();
392
+ this.ngUnsubscribe.complete();
393
+ }
394
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.0", ngImport: i0, type: NgxSpinnerComponent, deps: [{ token: NgxSpinnerService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
395
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.0.0", type: NgxSpinnerComponent, isStandalone: true, selector: "ngx-spinner", inputs: { bdColor: "bdColor", size: "size", color: "color", type: "type", fullScreen: "fullScreen", name: "name", zIndex: "zIndex", template: "template", showSpinner: "showSpinner", disableAnimation: "disableAnimation" }, host: { listeners: { "document:keydown": "handleKeyboardEvent($event)" } }, viewQueries: [{ propertyName: "spinnerDOM", first: true, predicate: ["overlay"], descendants: true }], usesOnChanges: 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: [
396
+ trigger('fadeIn', [
397
+ state('in', style({ opacity: 1 })),
398
+ transition(':enter', [style({ opacity: 0 }), animate(300)]),
399
+ transition(':leave', animate(200, style({ opacity: 0 }))),
400
+ ]),
401
+ ] }); }
402
+ }
403
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.0", ngImport: i0, type: NgxSpinnerComponent, decorators: [{
404
+ type: Component,
405
+ args: [{ selector: 'ngx-spinner', standalone: true, imports: [SafeHtmlPipe], animations: [
406
+ trigger('fadeIn', [
407
+ state('in', style({ opacity: 1 })),
408
+ transition(':enter', [style({ opacity: 0 }), animate(300)]),
409
+ transition(':leave', animate(200, style({ opacity: 0 }))),
410
+ ]),
411
+ ], 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"] }]
412
+ }], ctorParameters: () => [{ type: NgxSpinnerService }, { type: i0.ChangeDetectorRef }], propDecorators: { bdColor: [{
413
+ type: Input
414
+ }], size: [{
415
+ type: Input
416
+ }], color: [{
417
+ type: Input
418
+ }], type: [{
419
+ type: Input
420
+ }], fullScreen: [{
421
+ type: Input
422
+ }], name: [{
423
+ type: Input
424
+ }], zIndex: [{
425
+ type: Input
426
+ }], template: [{
427
+ type: Input
428
+ }], showSpinner: [{
429
+ type: Input
430
+ }], disableAnimation: [{
431
+ type: Input
432
+ }], spinnerDOM: [{
433
+ type: ViewChild,
434
+ args: ['overlay']
435
+ }], handleKeyboardEvent: [{
436
+ type: HostListener,
437
+ args: ['document:keydown', ['$event']]
438
+ }] } });
439
+
440
+ class TypeOfPipe {
441
+ transform(value) {
442
+ return typeof value;
443
+ }
444
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.0", ngImport: i0, type: TypeOfPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
445
+ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "18.0.0", ngImport: i0, type: TypeOfPipe, isStandalone: true, name: "typeOf" }); }
446
+ }
447
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.0", ngImport: i0, type: TypeOfPipe, decorators: [{
448
+ type: Pipe,
449
+ args: [{
450
+ name: 'typeOf',
451
+ standalone: true,
452
+ }]
453
+ }] });
454
+
455
+ /**
456
+ * Reusable Auto Complete component that extends MatAutoComplete to show Clear icon and Arrow buttons
457
+ *
458
+ * @author Pavan Kumar Jadda
459
+ * @since 12.0.0
460
+ */
461
+ class AutocompleteComponent {
462
+ constructor(cdRef) {
463
+ this.cdRef = cdRef;
464
+ /**
465
+ * Label of the AutoComplete
466
+ */
467
+ this.label = input('');
468
+ /**
469
+ * Placeholder of the AutoComplete
470
+ */
471
+ this.placeHolder = input('');
472
+ /**
473
+ * Appearance of the AutoComplete, defaults to `fill`
474
+ */
475
+ this.appearance = input('fill');
476
+ /**
477
+ * List of CSS classes that need to applied to autocomplete
478
+ */
479
+ this.classes = input('');
480
+ /**
481
+ * Attribute of the Object whose value would be shown when searching for data. Defaults to `ID`
482
+ */
483
+ this.bindLabel = input('');
484
+ /**
485
+ * Attribute of the Object whose value would be used for search
486
+ */
487
+ this.bindValue = input('id');
488
+ /**
489
+ * Function that maps an option's control value to its display value in the trigger.
490
+ */
491
+ this.displayWith = null;
492
+ /**
493
+ * Specifies if the autocomplete is required. Default is not required.
494
+ */
495
+ this.required = input(false);
496
+ /**
497
+ * List of Objects that need to be bind and searched for
498
+ */
499
+ this.data = input();
500
+ /**
501
+ * Emit selected value on selection changes
502
+ *
503
+ * @author Pavan Kumar Jadda
504
+ * @since 13.0.3
505
+ */
506
+ this.onSelectionChange = output();
507
+ /**
508
+ * BehaviorSubject that shows the current active arrow icon
509
+ */
510
+ this.arrowIconSubject = new BehaviorSubject('arrow_drop_down');
511
+ }
512
+ ngAfterContentChecked() {
513
+ this.cdRef.detectChanges();
514
+ }
515
+ /**
516
+ * Define autocomplete search filter on search text changes
517
+ *
518
+ * @author Pavan Kumar Jadda
519
+ * @since 12.0.0
520
+ */
521
+ ngOnInit() {
522
+ this.filteredOptions = this.inputFormGroup?.get('autocomplete')?.valueChanges.pipe(startWith(''), map((value) => (typeof value === 'string' ? value : value !== null ? value[this.bindLabel()] : '')), map((propertyName) => this.data()?.filter((option) => {
523
+ return typeof option === 'string'
524
+ ? option?.toLowerCase().indexOf(propertyName.toLowerCase()) === 0
525
+ : option[this.bindLabel()]?.toLowerCase().indexOf(propertyName.toLowerCase()) === 0;
526
+ }) ?? this.data()?.slice()));
527
+ }
528
+ ngOnChanges(_changes) {
529
+ this.displayFn = this.displayFn.bind(this);
530
+ }
531
+ /**
532
+ * Clear input and Reset autocomplete form control
533
+ *
534
+ * @author Pavan Kumar Jadda
535
+ * @since 12.0.0
536
+ */
537
+ clearInput(evt) {
538
+ evt.stopPropagation();
539
+ this.inputFormGroup.get('autocomplete')?.reset();
540
+ this.inputAutoComplete?.nativeElement.focus();
541
+ }
542
+ /**
543
+ * Open or Close panel
544
+ *
545
+ * @author Pavan Kumar Jadda
546
+ * @since 12.0.0
547
+ */
548
+ openOrClosePanel(evt, trigger) {
549
+ evt.stopPropagation();
550
+ if (trigger.panelOpen)
551
+ trigger.closePanel();
552
+ else
553
+ trigger.openPanel();
554
+ }
555
+ /**
556
+ * Display function that is used to show the values
557
+ *
558
+ * @author Pavan Kumar Jadda
559
+ * @since 12.0.0
560
+ */
561
+ displayFn(object) {
562
+ if (this.displayWith !== undefined && this.displayWith !== null && typeof this.displayWith === 'function') {
563
+ this.displayFn = this.displayWith.bind(this);
564
+ return this.displayWith(object);
565
+ }
566
+ else {
567
+ if (typeof object === 'string')
568
+ return object;
569
+ return object && object[this.bindLabel()] ? object[this.bindLabel()] : '';
570
+ }
571
+ }
572
+ /**
573
+ * Emit selected value
574
+ * @param $event - Event emitted by autocomplete
575
+ *
576
+ * @author Pavan Kumar Jadda
577
+ * @since 13.0.3
578
+ */
579
+ emitSelectedValue($event) {
580
+ this.onSelectionChange.emit($event.source.value);
581
+ }
582
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.0", ngImport: i0, type: AutocompleteComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
583
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.0.0", type: AutocompleteComponent, isStandalone: true, selector: "autocomplete, lib-autocomplete", inputs: { inputFormGroup: { classPropertyName: "inputFormGroup", publicName: "inputFormGroup", isSignal: false, isRequired: false, transformFunction: null }, 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 }, data: { classPropertyName: "data", publicName: "data", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { onSelectionChange: "onSelectionChange" }, viewQueries: [{ propertyName: "inputAutoComplete", first: true, predicate: ["inputAutoComplete"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<div [formGroup]=\"inputFormGroup\">\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[matAutocomplete]=\"auto\"\n\t\t\t[placeholder]=\"placeHolder()\"\n\t\t\t[required]=\"required()\"\n\t\t\tformControlName=\"autocomplete\"\n\t\t\tmatInput\n\t\t\ttype=\"text\" />\n\n\t\t<div matSuffix style=\"display: flex\">\n\t\t\t@if (!!inputFormGroup.get('autocomplete')?.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 ((option | typeOf) === 'string') {\n\t\t\t\t\t\t<ng-container>{{ option }}</ng-container>\n\t\t\t\t\t} @else if ((option | typeOf) === '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.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { 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.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1$2.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "pipe", type: TypeOfPipe, name: "typeOf" }, { 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: i4.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: i5.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i1$3.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { 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" }] }); }
584
+ }
585
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.0", ngImport: i0, type: AutocompleteComponent, decorators: [{
586
+ type: Component,
587
+ args: [{ selector: 'autocomplete, lib-autocomplete', standalone: true, imports: [
588
+ ReactiveFormsModule,
589
+ TypeOfPipe,
590
+ MatFormFieldModule,
591
+ MatAutocompleteModule,
592
+ MatInputModule,
593
+ MatButtonModule,
594
+ MatIconModule,
595
+ AsyncPipe,
596
+ ], template: "<div [formGroup]=\"inputFormGroup\">\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[matAutocomplete]=\"auto\"\n\t\t\t[placeholder]=\"placeHolder()\"\n\t\t\t[required]=\"required()\"\n\t\t\tformControlName=\"autocomplete\"\n\t\t\tmatInput\n\t\t\ttype=\"text\" />\n\n\t\t<div matSuffix style=\"display: flex\">\n\t\t\t@if (!!inputFormGroup.get('autocomplete')?.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 ((option | typeOf) === 'string') {\n\t\t\t\t\t\t<ng-container>{{ option }}</ng-container>\n\t\t\t\t\t} @else if ((option | typeOf) === '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" }]
597
+ }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }], propDecorators: { inputAutoComplete: [{
598
+ type: ViewChild,
599
+ args: ['inputAutoComplete']
600
+ }], inputFormGroup: [{
601
+ type: Input
602
+ }], displayWith: [{
603
+ type: Input
604
+ }, {
605
+ type: Optional
606
+ }] } });
607
+
608
+ /**
609
+ * Reusable Angular directory that prints given contents of HTML element
610
+ *
611
+ * @since 12.0.0
612
+ * @author Pavan Kumar Jadda
613
+ */
614
+ class NgxPrintDirective {
615
+ constructor() {
616
+ /**
617
+ * If `true`, uses CSS of HTMl element, otherwise no CSS applied
618
+ *
619
+ * @since 12.0.0
620
+ * @author Pavan Kumar Jadda
621
+ */
622
+ this.useExistingCss = false;
623
+ /**
624
+ * A delay in milliseconds to force the print dialog to wait before opened. Default: 0
625
+ *
626
+ * @since 12.0.0
627
+ * @author Pavan Kumar Jadda
628
+ */
629
+ this.printDelay = 0;
630
+ /**
631
+ * ID of the Mat Paginator
632
+ *
633
+ * @since 12.0.0
634
+ * @author Pavan Kumar Jadda
635
+ */
636
+ this.paginatorId = '';
637
+ /**
638
+ * HTML tag ID of the Mat-Table Input Filter
639
+ *
640
+ * @since 12.0.0
641
+ * @author Pavan Kumar Jadda
642
+ */
643
+ this.inputFilterId = '';
644
+ /**
645
+ * If `true`, referenced table is Mat-Table
646
+ *
647
+ * @since 12.0.0
648
+ * @author Pavan Kumar Jadda
649
+ */
650
+ this.isMatTable = false;
651
+ /**
652
+ * If `true` Mat-Table paginator will be hidden
653
+ *
654
+ * @since 12.0.0
655
+ * @author Pavan Kumar Jadda
656
+ */
657
+ this.hideMatTablePaginator = false;
658
+ this.printStyleArray = [];
659
+ /**
660
+ * List of Style sheet files
661
+ *
662
+ * @since 12.0.0
663
+ * @author Pavan Kumar Jadda
664
+ */
665
+ this.styleSheetFileArray = '';
666
+ }
667
+ /**
668
+ * List of CSS properties that needs to be applied while printing the document
669
+ *
670
+ * @since 12.0.0
671
+ * @author Pavan Kumar Jadda
672
+ */
673
+ set printStyle({ values }) {
674
+ for (const key in values) {
675
+ if (values.hasOwnProperty(key)) {
676
+ // @ts-ignore
677
+ this.printStyleArray.push((key + JSON.stringify(values[key])).replace(/['"]+/g, ''));
678
+ }
679
+ }
680
+ this.returnStyleValues();
681
+ }
682
+ /**
683
+ * Sets given style sheet files to print document
684
+ *
685
+ * @param cssList Comma separated value of CSS file names
686
+ *
687
+ * @since 12.0.0
688
+ * @author Pavan Kumar Jadda
689
+ */
690
+ set styleSheetFile(cssList) {
691
+ if (cssList.indexOf(',') !== -1) {
692
+ const cssFileArray = cssList.split(',');
693
+ for (const cssFileName of cssFileArray) {
694
+ this.styleSheetFileArray = this.styleSheetFileArray + NgxPrintDirective.linkTagFn(cssFileName);
695
+ }
696
+ }
697
+ else {
698
+ this.styleSheetFileArray = NgxPrintDirective.linkTagFn(cssList);
699
+ }
700
+ }
701
+ /**
702
+ * Build link HTMl tag based on given file name
703
+ *
704
+ * @since 12.0.0
705
+ * @author Pavan Kumar Jadda
706
+ */
707
+ static linkTagFn(cssFileName) {
708
+ return `<link rel="stylesheet" type="text/css" href="${cssFileName}">`;
709
+ }
710
+ /**
711
+ * Gets HTML element by tag name
712
+ *
713
+ * @since 12.0.0
714
+ * @author Pavan Kumar Jadda
715
+ */
716
+ static getElementTag(tag) {
717
+ const html = [];
718
+ const elements = document.getElementsByTagName(tag);
719
+ // @ts-ignore
720
+ for (const element of elements) {
721
+ html.push(element.outerHTML);
722
+ }
723
+ return html.join('\r\n');
724
+ }
725
+ /**
726
+ * Print the element upon clicking the button
727
+ *
728
+ * @since 12.0.0
729
+ * @author Pavan Kumar Jadda
730
+ */
731
+ print() {
732
+ //Hide paginator for Material table
733
+ if (this.isMatTable && this.hideMatTablePaginator && this.matTableDataSource) {
734
+ this.matTableDataSource.paginator = null;
735
+ }
736
+ setTimeout(() => {
737
+ if (this.isMatTable) {
738
+ this.hideMatPaginatorBeforePrinting();
739
+ }
740
+ // Do something after
741
+ let printContents;
742
+ let popupWin;
743
+ let styles = '';
744
+ let links = '';
745
+ if (this.useExistingCss) {
746
+ styles = NgxPrintDirective.getElementTag('style');
747
+ links = NgxPrintDirective.getElementTag('link');
748
+ }
749
+ if (this.printSectionId) {
750
+ printContents = document.getElementById(this.printSectionId)?.innerHTML;
751
+ popupWin = window.open('', '_blank', 'top=0,left=0,height=auto,width=auto');
752
+ popupWin?.document.open();
753
+ popupWin?.document.write(`
754
+ <html lang="en-us">
755
+ <head>
756
+ <title>${this.printTitle ? this.printTitle : ''}</title>
757
+ ${this.returnStyleValues()}
758
+ ${this.styleSheetFileArray}
759
+ ${styles}
760
+ ${links}
761
+ </head>
762
+ <body>
763
+ ${printContents}
764
+ <script defer>
765
+ function triggerPrint() {
766
+ window.removeEventListener('load', triggerPrint, false);
767
+ setTimeout(() => {
768
+ window.print();
769
+ setTimeout(function() { window.close(); }, 0);
770
+ }, ${this.printDelay});
771
+ }
772
+ window.addEventListener('load', triggerPrint, false);
773
+ </script>
774
+ </body>
775
+ </html>`);
776
+ popupWin?.document.close();
777
+ //Revert back the mat-paginator after printing
778
+ if (this.isMatTable) {
779
+ this.showMatPaginatorAfterPrinting();
780
+ }
781
+ }
782
+ }, 1000); //1 second timeout to hide paginator
783
+ }
784
+ /**
785
+ * Hide Mat Paginator before Printing
786
+ *
787
+ * @since 12.0.1
788
+ * @author Pavan Kumar Jadda
789
+ */
790
+ hideMatPaginatorBeforePrinting() {
791
+ // @ts-ignore
792
+ document.getElementById(this.paginatorId).style.display = 'none';
793
+ if (document.getElementById(this.inputFilterId) != null) {
794
+ // @ts-ignore
795
+ document.getElementById(this.inputFilterId).style.display = 'none';
796
+ }
797
+ }
798
+ /**
799
+ * Show Mat Paginator after Printing
800
+ *
801
+ * @since 12.0.1
802
+ * @author Pavan Kumar Jadda
803
+ */
804
+ showMatPaginatorAfterPrinting() {
805
+ this.matTableDataSource.paginator = this.paginator;
806
+ // @ts-ignore
807
+ document.getElementById(this.paginatorId).style.display = 'block';
808
+ if (document.getElementById(this.inputFilterId) != null) {
809
+ // @ts-ignore
810
+ document.getElementById(this.inputFilterId).style.display = 'block';
811
+ }
812
+ }
813
+ /**
814
+ * @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
815
+ *
816
+ * @since 12.0.0
817
+ * @author Pavan Kumar Jadda
818
+ */
819
+ returnStyleValues() {
820
+ return `<style> ${this.printStyleArray.join(' ').replace(/,/g, ';')} </style>`;
821
+ }
822
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.0", ngImport: i0, type: NgxPrintDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
823
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.0.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", printStyle: "printStyle", styleSheetFile: "styleSheetFile" }, host: { listeners: { "click": "print()" } }, ngImport: i0 }); }
824
+ }
825
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.0", ngImport: i0, type: NgxPrintDirective, decorators: [{
826
+ type: Directive,
827
+ args: [{
828
+ // eslint-disable-next-line @angular-eslint/directive-selector
829
+ selector: 'button[ngxPrint], button[print]',
830
+ standalone: true,
831
+ }]
832
+ }], propDecorators: { printSectionId: [{
833
+ type: Input
834
+ }], printTitle: [{
835
+ type: Input
836
+ }], useExistingCss: [{
837
+ type: Input
838
+ }], printDelay: [{
839
+ type: Input
840
+ }], matTableDataSource: [{
841
+ type: Input
842
+ }], paginator: [{
843
+ type: Input
844
+ }], paginatorId: [{
845
+ type: Input
846
+ }], inputFilterId: [{
847
+ type: Input
848
+ }], isMatTable: [{
849
+ type: Input
850
+ }], hideMatTablePaginator: [{
851
+ type: Input
852
+ }], printStyle: [{
853
+ type: Input
854
+ }], styleSheetFile: [{
855
+ type: Input
856
+ }], print: [{
857
+ type: HostListener,
858
+ args: ['click']
859
+ }] } });
860
+
861
+ class PreventMultipleClicksDirective {
862
+ constructor() {
863
+ this.throttleTime = input(2000);
864
+ this.throttleClick = new EventEmitter();
865
+ this.clicks = new Subject();
866
+ }
867
+ /**
868
+ * Intercepts click event and stops default navigation. After first click set {@link throttleTime} to 2000 to prevent duplicate clicks
869
+ *
870
+ * @param event DOM event
871
+ *
872
+ * @author Pavan Kumar Jadda
873
+ * @since 2.3.27
874
+ */
875
+ clickEvent(event) {
876
+ event.preventDefault();
877
+ event.stopPropagation();
878
+ this.clicks.next(event);
879
+ }
880
+ ngOnInit() {
881
+ this.subscription = this.clicks.pipe(throttleTime(this.throttleTime())).subscribe((e) => this.throttleClick.emit(e));
882
+ }
883
+ ngOnDestroy() {
884
+ this.subscription?.unsubscribe();
885
+ }
886
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.0", ngImport: i0, type: PreventMultipleClicksDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
887
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "18.0.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 }); }
888
+ }
889
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.0", ngImport: i0, type: PreventMultipleClicksDirective, decorators: [{
890
+ type: Directive,
891
+ args: [{
892
+ selector: '[preventMultipleClicks]',
893
+ standalone: true,
894
+ }]
895
+ }], propDecorators: { throttleClick: [{
896
+ type: Output
897
+ }], clickEvent: [{
898
+ type: HostListener,
899
+ args: ['click', ['$event']]
900
+ }] } });
901
+
902
+ const EDIT_ICON = `
903
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512">
904
+ <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"/>
905
+ </svg>
906
+ `;
907
+ class EditSolidSvgComponent {
908
+ constructor(iconRegistry, sanitizer) {
909
+ iconRegistry.addSvgIconLiteral('edit-solid', sanitizer.bypassSecurityTrustHtml(EDIT_ICON));
910
+ }
911
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.0", ngImport: i0, type: EditSolidSvgComponent, deps: [{ token: i1$4.MatIconRegistry }, { token: i1$1.DomSanitizer }], target: i0.ɵɵFactoryTarget.Component }); }
912
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.0", type: EditSolidSvgComponent, isStandalone: true, selector: "edit-solid-svg", ngImport: i0, template: ` <mat-icon aria-hidden="false" aria-label="Edit" svgIcon="edit-solid"></mat-icon> `, isInline: true, styles: [".mat-icon{vertical-align:bottom;padding-left:5px}\n"], dependencies: [{ kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i1$4.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }] }); }
913
+ }
914
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.0", ngImport: i0, type: EditSolidSvgComponent, decorators: [{
915
+ type: Component,
916
+ args: [{ selector: 'edit-solid-svg', standalone: true, imports: [MatIconModule], template: ` <mat-icon aria-hidden="false" aria-label="Edit" svgIcon="edit-solid"></mat-icon> `, styles: [".mat-icon{vertical-align:bottom;padding-left:5px}\n"] }]
917
+ }], ctorParameters: () => [{ type: i1$4.MatIconRegistry }, { type: i1$1.DomSanitizer }] });
918
+
919
+ class BaseButtonComponent {
920
+ constructor() {
921
+ /**
922
+ * Is search in progress and loading the data
923
+ */
924
+ this.loading = input(false);
925
+ /**
926
+ * Is button disabled
927
+ */
928
+ this.disabled = input(false);
929
+ /**
930
+ * Type of the button. Following values are supported. See BootStrap docs for more information
931
+ * <pre>
932
+ * 1. button
933
+ * 2. submit
934
+ * </pre>
935
+ */
936
+ this.type = input('button');
937
+ /**
938
+ * If set, shows when action in Progress
939
+ */
940
+ this.loadingLabel = input('Saving...');
941
+ /**
942
+ * If set, shows when Delete is not in progress
943
+ */
944
+ this.label = input('Save');
945
+ /**
946
+ * If set, shows the icon. Otherwise, shows delete icon
947
+ */
948
+ this.icon = input('save');
949
+ /**
950
+ * If set, shows material icon otherwise hides the icons
951
+ */
952
+ this.showIcon = input(true);
953
+ /**
954
+ * If set, sets the style of the button
955
+ */
956
+ this.style = input();
957
+ /**
958
+ * If set, sets the class of the button
959
+ */
960
+ this.classes = input('btn');
961
+ /**
962
+ * If set, sets the data-cy attribute for the button
963
+ */
964
+ this.dataCy = input('save-button');
965
+ /**
966
+ * Output event when button is clicked
967
+ */
968
+ this.onClick = output();
969
+ /**
970
+ * Output event when button is focused
971
+ */
972
+ this.onFocus = output();
973
+ /**
974
+ * Output event when button is blurred
975
+ */
976
+ this.onBlur = output();
977
+ }
978
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.0", ngImport: i0, type: BaseButtonComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
979
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "18.0.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" }, ngImport: i0, template: ``, isInline: true }); }
980
+ }
981
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.0", ngImport: i0, type: BaseButtonComponent, decorators: [{
982
+ type: Component,
983
+ args: [{
984
+ standalone: true,
985
+ template: ``,
986
+ }]
987
+ }] });
988
+
989
+ class BsLinkButtonComponent extends BaseButtonComponent {
990
+ constructor() {
991
+ super();
992
+ this.label = input('Edit');
993
+ this.icon = input('search');
994
+ this.classes = input('btn text-primary');
995
+ }
996
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.0", ngImport: i0, type: BsLinkButtonComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
997
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "18.0.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: `
998
+ <a
999
+ type="{{ type() }}"
1000
+ class="{{ classes() }}"
1001
+ (click)="onClick.emit($event)"
1002
+ (focus)="onFocus.emit($event)"
1003
+ (blur)="onBlur.emit($event)"
1004
+ [disabled]="disabled()"
1005
+ [type]="type()"
1006
+ [ngStyle]="style()"
1007
+ [attr.data-cy]="'edit-link-button'"
1008
+ mat-button>
1009
+ <mat-icon>{{ icon() }}</mat-icon>
1010
+ {{ label() }}
1011
+ </a>
1012
+ `, 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: "a[mat-button], a[mat-raised-button], a[mat-flat-button], a[mat-stroked-button]", exportAs: ["matButton", "matAnchor"] }, { kind: "directive", type: NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }] }); }
1013
+ }
1014
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.0", ngImport: i0, type: BsLinkButtonComponent, decorators: [{
1015
+ type: Component,
1016
+ args: [{ selector: 'bs-link-button', standalone: true, imports: [MatButton, MatIcon, EditSolidSvgComponent, MatAnchor, NgStyle], template: `
1017
+ <a
1018
+ type="{{ type() }}"
1019
+ class="{{ classes() }}"
1020
+ (click)="onClick.emit($event)"
1021
+ (focus)="onFocus.emit($event)"
1022
+ (blur)="onBlur.emit($event)"
1023
+ [disabled]="disabled()"
1024
+ [type]="type()"
1025
+ [ngStyle]="style()"
1026
+ [attr.data-cy]="'edit-link-button'"
1027
+ mat-button>
1028
+ <mat-icon>{{ icon() }}</mat-icon>
1029
+ {{ label() }}
1030
+ </a>
1031
+ `, 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"] }]
1032
+ }], ctorParameters: () => [] });
1033
+
1034
+ class DeleteButtonComponent extends BaseButtonComponent {
1035
+ constructor() {
1036
+ super();
1037
+ this.loadingLabel = input('Deleting...');
1038
+ this.label = input('Delete');
1039
+ this.icon = input('delete');
1040
+ this.classes = input('delete-button');
1041
+ }
1042
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.0", ngImport: i0, type: DeleteButtonComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1043
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.0.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: `
1044
+ <button
1045
+ mat-raised-button
1046
+ class="btn {{ classes() }}"
1047
+ (click)="onClick.emit($event)"
1048
+ (focus)="onFocus.emit($event)"
1049
+ (blur)="onBlur.emit($event)"
1050
+ [disabled]="disabled() || loading()"
1051
+ [type]="type()"
1052
+ [ngStyle]="style()"
1053
+ [attr.data-cy]="'delete-button'">
1054
+ @if (loading()) {
1055
+ <span aria-hidden="true" class="spinner-border spinner-border-sm" role="status"></span>
1056
+ }
1057
+ @if (!loading()) {
1058
+ <mat-icon>{{ icon() }}</mat-icon>
1059
+ }
1060
+ {{ loading() ? loadingLabel() : label() }}
1061
+ </button>
1062
+ `, 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[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i1$4.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }] }); }
1063
+ }
1064
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.0", ngImport: i0, type: DeleteButtonComponent, decorators: [{
1065
+ type: Component,
1066
+ args: [{ selector: 'delete-button', standalone: true, imports: [MatButtonModule, MatIconModule, NgStyle], template: `
1067
+ <button
1068
+ mat-raised-button
1069
+ class="btn {{ classes() }}"
1070
+ (click)="onClick.emit($event)"
1071
+ (focus)="onFocus.emit($event)"
1072
+ (blur)="onBlur.emit($event)"
1073
+ [disabled]="disabled() || loading()"
1074
+ [type]="type()"
1075
+ [ngStyle]="style()"
1076
+ [attr.data-cy]="'delete-button'">
1077
+ @if (loading()) {
1078
+ <span aria-hidden="true" class="spinner-border spinner-border-sm" role="status"></span>
1079
+ }
1080
+ @if (!loading()) {
1081
+ <mat-icon>{{ icon() }}</mat-icon>
1082
+ }
1083
+ {{ loading() ? loadingLabel() : label() }}
1084
+ </button>
1085
+ `, 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"] }]
1086
+ }], ctorParameters: () => [] });
1087
+
1088
+ class EditButtonComponent extends BaseButtonComponent {
1089
+ constructor() {
1090
+ super();
1091
+ this.label = input('Edit');
1092
+ this.icon = input('edit');
1093
+ this.classes = input('primary-button');
1094
+ }
1095
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.0", ngImport: i0, type: EditButtonComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1096
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "18.0.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: `
1097
+ <button
1098
+ class="{{ classes() }}"
1099
+ (click)="onClick.emit($event)"
1100
+ (focus)="onFocus.emit($event)"
1101
+ (blur)="onBlur.emit($event)"
1102
+ [disabled]="disabled()"
1103
+ [type]="type()"
1104
+ [ngStyle]="style()"
1105
+ [attr.data-cy]="'edit-button'"
1106
+ mat-raised-button>
1107
+ <mat-icon>{{ icon() }}</mat-icon>
1108
+ {{ label() }}
1109
+ </button>
1110
+ `, 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[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "component", type: MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }] }); }
1111
+ }
1112
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.0", ngImport: i0, type: EditButtonComponent, decorators: [{
1113
+ type: Component,
1114
+ args: [{ selector: 'edit-button', standalone: true, imports: [MatButton, MatIcon, NgStyle], template: `
1115
+ <button
1116
+ class="{{ classes() }}"
1117
+ (click)="onClick.emit($event)"
1118
+ (focus)="onFocus.emit($event)"
1119
+ (blur)="onBlur.emit($event)"
1120
+ [disabled]="disabled()"
1121
+ [type]="type()"
1122
+ [ngStyle]="style()"
1123
+ [attr.data-cy]="'edit-button'"
1124
+ mat-raised-button>
1125
+ <mat-icon>{{ icon() }}</mat-icon>
1126
+ {{ label() }}
1127
+ </button>
1128
+ `, 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"] }]
1129
+ }], ctorParameters: () => [] });
1130
+
1131
+ class EditBsButtonComponent extends BaseButtonComponent {
1132
+ constructor() {
1133
+ super();
1134
+ this.label = input('Edit');
1135
+ this.classes = input('text-primary');
1136
+ }
1137
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.0", ngImport: i0, type: EditBsButtonComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1138
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "18.0.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: `
1139
+ <button
1140
+ color="primary"
1141
+ type="{{ type() }}"
1142
+ class="{{ classes() }}"
1143
+ (click)="onClick.emit($event)"
1144
+ (focus)="onFocus.emit($event)"
1145
+ (blur)="onBlur.emit($event)"
1146
+ [disabled]="disabled()"
1147
+ [type]="type()"
1148
+ [ngStyle]="style()"
1149
+ [attr.data-cy]="'edit-bs-button'"
1150
+ mat-button>
1151
+ <edit-solid-svg></edit-solid-svg>
1152
+ {{ label() }}
1153
+ </button>
1154
+ `, 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: CommonModule }, { kind: "directive", type: i1$5.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i1$3.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: EditSolidSvgComponent, selector: "edit-solid-svg" }] }); }
1155
+ }
1156
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.0", ngImport: i0, type: EditBsButtonComponent, decorators: [{
1157
+ type: Component,
1158
+ args: [{ selector: 'edit-bs-button', standalone: true, imports: [CommonModule, MatButtonModule, MatIconModule, EditSolidSvgComponent], template: `
1159
+ <button
1160
+ color="primary"
1161
+ type="{{ type() }}"
1162
+ class="{{ classes() }}"
1163
+ (click)="onClick.emit($event)"
1164
+ (focus)="onFocus.emit($event)"
1165
+ (blur)="onBlur.emit($event)"
1166
+ [disabled]="disabled()"
1167
+ [type]="type()"
1168
+ [ngStyle]="style()"
1169
+ [attr.data-cy]="'edit-bs-button'"
1170
+ mat-button>
1171
+ <edit-solid-svg></edit-solid-svg>
1172
+ {{ label() }}
1173
+ </button>
1174
+ `, 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"] }]
1175
+ }], ctorParameters: () => [] });
1176
+
1177
+ class EditSvgIconButtonComponent extends BaseButtonComponent {
1178
+ constructor() {
1179
+ super();
1180
+ this.label = input('Edit');
1181
+ this.icon = input('edit');
1182
+ this.classes = input('primary-button');
1183
+ }
1184
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.0", ngImport: i0, type: EditSvgIconButtonComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1185
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "18.0.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: `
1186
+ <button
1187
+ type="{{ type() }}"
1188
+ class="{{ classes() }}"
1189
+ (click)="onClick.emit($event)"
1190
+ (focus)="onFocus.emit($event)"
1191
+ (blur)="onBlur.emit($event)"
1192
+ [disabled]="disabled()"
1193
+ [type]="type()"
1194
+ [ngStyle]="style()"
1195
+ [attr.data-cy]="'edit-svg-icon-button'"
1196
+ mat-raised-button>
1197
+ <edit-solid-svg></edit-solid-svg>
1198
+ {{ label() }}
1199
+ </button>
1200
+ `, 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[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "component", type: EditSolidSvgComponent, selector: "edit-solid-svg" }, { kind: "directive", type: NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }] }); }
1201
+ }
1202
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.0", ngImport: i0, type: EditSvgIconButtonComponent, decorators: [{
1203
+ type: Component,
1204
+ args: [{ selector: 'edit-svg-icon-button', standalone: true, imports: [MatButton, EditSolidSvgComponent, NgStyle], template: `
1205
+ <button
1206
+ type="{{ type() }}"
1207
+ class="{{ classes() }}"
1208
+ (click)="onClick.emit($event)"
1209
+ (focus)="onFocus.emit($event)"
1210
+ (blur)="onBlur.emit($event)"
1211
+ [disabled]="disabled()"
1212
+ [type]="type()"
1213
+ [ngStyle]="style()"
1214
+ [attr.data-cy]="'edit-svg-icon-button'"
1215
+ mat-raised-button>
1216
+ <edit-solid-svg></edit-solid-svg>
1217
+ {{ label() }}
1218
+ </button>
1219
+ `, 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"] }]
1220
+ }], ctorParameters: () => [] });
1221
+
1222
+ class ManageButtonComponent extends BaseButtonComponent {
1223
+ constructor() {
1224
+ super();
1225
+ this.label = input('Manage');
1226
+ this.icon = input('settings');
1227
+ this.classes = input('mr-3 btn btn-secondary secondary-button');
1228
+ }
1229
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.0", ngImport: i0, type: ManageButtonComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1230
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "18.0.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: `
1231
+ <button
1232
+ mat-raised-button
1233
+ class="{{ classes() }}"
1234
+ (click)="onClick.emit($event)"
1235
+ (focus)="onFocus.emit($event)"
1236
+ (blur)="onBlur.emit($event)"
1237
+ [disabled]="disabled()"
1238
+ [type]="type()"
1239
+ [ngStyle]="style()"
1240
+ [attr.data-cy]="'manage-button'">
1241
+ <mat-icon>{{ icon() }}</mat-icon>
1242
+ {{ label() }}
1243
+ </button>
1244
+ `, 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[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "component", type: MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }] }); }
1245
+ }
1246
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.0", ngImport: i0, type: ManageButtonComponent, decorators: [{
1247
+ type: Component,
1248
+ args: [{ selector: 'manage-button', standalone: true, imports: [MatButton, MatIcon, NgStyle], template: `
1249
+ <button
1250
+ mat-raised-button
1251
+ class="{{ classes() }}"
1252
+ (click)="onClick.emit($event)"
1253
+ (focus)="onFocus.emit($event)"
1254
+ (blur)="onBlur.emit($event)"
1255
+ [disabled]="disabled()"
1256
+ [type]="type()"
1257
+ [ngStyle]="style()"
1258
+ [attr.data-cy]="'manage-button'">
1259
+ <mat-icon>{{ icon() }}</mat-icon>
1260
+ {{ label() }}
1261
+ </button>
1262
+ `, 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"] }]
1263
+ }], ctorParameters: () => [] });
1264
+
1265
+ class SavePrimaryButtonComponent extends BaseButtonComponent {
1266
+ constructor() {
1267
+ super();
1268
+ this.loadingLabel = input('Saving...');
1269
+ this.label = input('Save');
1270
+ this.icon = input('save');
1271
+ this.classes = input('btn-primary primary-button');
1272
+ }
1273
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.0", ngImport: i0, type: SavePrimaryButtonComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1274
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.0.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: `
1275
+ <button
1276
+ mat-raised-button
1277
+ class="btn {{ classes() }}"
1278
+ (click)="onClick.emit($event)"
1279
+ (focus)="onFocus.emit($event)"
1280
+ (blur)="onBlur.emit($event)"
1281
+ [disabled]="disabled() || loading()"
1282
+ [type]="type()"
1283
+ [ngStyle]="style()"
1284
+ [attr.data-cy]="'save-primary-button'">
1285
+ @if (loading()) {
1286
+ <span aria-hidden="true" class="spinner-border spinner-border-sm" role="status"></span>
1287
+ }
1288
+ @if (!loading()) {
1289
+ <mat-icon>{{ icon() }}</mat-icon>
1290
+ }
1291
+ {{ loading() ? loadingLabel() : label() }}
1292
+ </button>
1293
+ `, 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[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "component", type: MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }] }); }
1294
+ }
1295
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.0", ngImport: i0, type: SavePrimaryButtonComponent, decorators: [{
1296
+ type: Component,
1297
+ args: [{ selector: 'save-primary-button', standalone: true, imports: [MatButton, MatIcon, NgStyle], template: `
1298
+ <button
1299
+ mat-raised-button
1300
+ class="btn {{ classes() }}"
1301
+ (click)="onClick.emit($event)"
1302
+ (focus)="onFocus.emit($event)"
1303
+ (blur)="onBlur.emit($event)"
1304
+ [disabled]="disabled() || loading()"
1305
+ [type]="type()"
1306
+ [ngStyle]="style()"
1307
+ [attr.data-cy]="'save-primary-button'">
1308
+ @if (loading()) {
1309
+ <span aria-hidden="true" class="spinner-border spinner-border-sm" role="status"></span>
1310
+ }
1311
+ @if (!loading()) {
1312
+ <mat-icon>{{ icon() }}</mat-icon>
1313
+ }
1314
+ {{ loading() ? loadingLabel() : label() }}
1315
+ </button>
1316
+ `, 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"] }]
1317
+ }], ctorParameters: () => [] });
1318
+
1319
+ class SearchButtonComponent extends BaseButtonComponent {
1320
+ constructor() {
1321
+ super();
1322
+ this.loadingLabel = input('Searching...');
1323
+ this.label = input('Search');
1324
+ this.icon = input('search');
1325
+ this.classes = input('btn-primary primary-button');
1326
+ }
1327
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.0", ngImport: i0, type: SearchButtonComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1328
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.0.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: `
1329
+ <button
1330
+ class="btn btn-primary primary-button {{ loading() || disabled() ? 'disabled' : '' }}"
1331
+ mat-raised-button
1332
+ type="{{ type() }}"
1333
+ data-cy="primary-button">
1334
+ @if (loading()) {
1335
+ <span aria-hidden="true" class="spinner-border spinner-border-sm" role="status"></span>
1336
+ }
1337
+ @if (!loading()) {
1338
+ <mat-icon>{{ icon() }}</mat-icon>
1339
+ }
1340
+ {{ loading() ? loadingLabel() : label() }}
1341
+ </button>
1342
+ `, 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: CommonModule }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i1$3.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i1$4.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }] }); }
1343
+ }
1344
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.0", ngImport: i0, type: SearchButtonComponent, decorators: [{
1345
+ type: Component,
1346
+ args: [{ selector: 'search-button', standalone: true, imports: [CommonModule, MatButtonModule, MatIconModule], template: `
1347
+ <button
1348
+ class="btn btn-primary primary-button {{ loading() || disabled() ? 'disabled' : '' }}"
1349
+ mat-raised-button
1350
+ type="{{ type() }}"
1351
+ data-cy="primary-button">
1352
+ @if (loading()) {
1353
+ <span aria-hidden="true" class="spinner-border spinner-border-sm" role="status"></span>
1354
+ }
1355
+ @if (!loading()) {
1356
+ <mat-icon>{{ icon() }}</mat-icon>
1357
+ }
1358
+ {{ loading() ? loadingLabel() : label() }}
1359
+ </button>
1360
+ `, 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"] }]
1361
+ }], ctorParameters: () => [] });
1362
+
1363
+ class SuccessButtonComponent extends BaseButtonComponent {
1364
+ constructor() {
1365
+ super();
1366
+ this.loadingLabel = input('Updating...');
1367
+ this.label = input('Update');
1368
+ this.icon = input('save');
1369
+ this.classes = input('success-button');
1370
+ }
1371
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.0", ngImport: i0, type: SuccessButtonComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1372
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.0.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: `
1373
+ <button
1374
+ mat-raised-button
1375
+ class="btn {{ classes() }}"
1376
+ (click)="onClick.emit($event)"
1377
+ (focus)="onFocus.emit($event)"
1378
+ (blur)="onBlur.emit($event)"
1379
+ [disabled]="disabled() || loading()"
1380
+ [type]="type()"
1381
+ [ngStyle]="style()"
1382
+ [attr.data-cy]="'success-button'">
1383
+ @if (loading()) {
1384
+ <span aria-hidden="true" class="spinner-border spinner-border-sm" role="status"></span>
1385
+ }
1386
+ @if (!loading()) {
1387
+ <mat-icon>{{ icon() }}</mat-icon>
1388
+ }
1389
+ {{ loading() ? loadingLabel() : label() }}
1390
+ </button>
1391
+ `, isInline: true, dependencies: [{ kind: "directive", type: NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "component", type: MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "component", type: MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }] }); }
1392
+ }
1393
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.0", ngImport: i0, type: SuccessButtonComponent, decorators: [{
1394
+ type: Component,
1395
+ args: [{
1396
+ selector: 'success-button',
1397
+ standalone: true,
1398
+ imports: [NgStyle, MatButton, MatIcon],
1399
+ template: `
1400
+ <button
1401
+ mat-raised-button
1402
+ class="btn {{ classes() }}"
1403
+ (click)="onClick.emit($event)"
1404
+ (focus)="onFocus.emit($event)"
1405
+ (blur)="onBlur.emit($event)"
1406
+ [disabled]="disabled() || loading()"
1407
+ [type]="type()"
1408
+ [ngStyle]="style()"
1409
+ [attr.data-cy]="'success-button'">
1410
+ @if (loading()) {
1411
+ <span aria-hidden="true" class="spinner-border spinner-border-sm" role="status"></span>
1412
+ }
1413
+ @if (!loading()) {
1414
+ <mat-icon>{{ icon() }}</mat-icon>
1415
+ }
1416
+ {{ loading() ? loadingLabel() : label() }}
1417
+ </button>
1418
+ `,
1419
+ }]
1420
+ }], ctorParameters: () => [] });
1421
+
1422
+ class ViewButtonComponent extends BaseButtonComponent {
1423
+ constructor() {
1424
+ super();
1425
+ this.label = input('View');
1426
+ this.icon = input('visibility');
1427
+ }
1428
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.0", ngImport: i0, type: ViewButtonComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1429
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "18.0.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: `
1430
+ <button
1431
+ color="primary"
1432
+ (click)="onClick.emit($event)"
1433
+ (focus)="onFocus.emit($event)"
1434
+ (blur)="onBlur.emit($event)"
1435
+ [disabled]="disabled()"
1436
+ mat-button>
1437
+ <mat-icon>{{ icon() }}</mat-icon>
1438
+ {{ label() }}
1439
+ </button>
1440
+ `, 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[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "component", type: MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }] }); }
1441
+ }
1442
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.0", ngImport: i0, type: ViewButtonComponent, decorators: [{
1443
+ type: Component,
1444
+ args: [{ selector: 'view-button', standalone: true, imports: [MatButton, MatIcon], template: `
1445
+ <button
1446
+ color="primary"
1447
+ (click)="onClick.emit($event)"
1448
+ (focus)="onFocus.emit($event)"
1449
+ (blur)="onBlur.emit($event)"
1450
+ [disabled]="disabled()"
1451
+ mat-button>
1452
+ <mat-icon>{{ icon() }}</mat-icon>
1453
+ {{ label() }}
1454
+ </button>
1455
+ `, 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"] }]
1456
+ }], ctorParameters: () => [] });
1457
+
1458
+ class ViewPrimaryButtonComponent extends BaseButtonComponent {
1459
+ constructor() {
1460
+ super();
1461
+ this.label = input('View');
1462
+ this.icon = input('visibility');
1463
+ this.classes = input('btn-primary primary-button');
1464
+ }
1465
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.0", ngImport: i0, type: ViewPrimaryButtonComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1466
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "18.0.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: `
1467
+ <button
1468
+ mat-raised-button
1469
+ class="btn {{ classes() }}"
1470
+ (click)="onClick.emit($event)"
1471
+ (focus)="onFocus.emit($event)"
1472
+ (blur)="onBlur.emit($event)"
1473
+ [disabled]="disabled()"
1474
+ [type]="type()"
1475
+ [ngStyle]="style()"
1476
+ [attr.data-cy]="'view-button'">
1477
+ <mat-icon>{{ icon() }}</mat-icon>
1478
+ {{ label() }}
1479
+ </button>
1480
+ `, 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[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "component", type: MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }] }); }
1481
+ }
1482
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.0", ngImport: i0, type: ViewPrimaryButtonComponent, decorators: [{
1483
+ type: Component,
1484
+ args: [{ selector: 'view-primary-button', standalone: true, imports: [MatButton, MatIcon, NgStyle], template: `
1485
+ <button
1486
+ mat-raised-button
1487
+ class="btn {{ classes() }}"
1488
+ (click)="onClick.emit($event)"
1489
+ (focus)="onFocus.emit($event)"
1490
+ (blur)="onBlur.emit($event)"
1491
+ [disabled]="disabled()"
1492
+ [type]="type()"
1493
+ [ngStyle]="style()"
1494
+ [attr.data-cy]="'view-button'">
1495
+ <mat-icon>{{ icon() }}</mat-icon>
1496
+ {{ label() }}
1497
+ </button>
1498
+ `, 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"] }]
1499
+ }], ctorParameters: () => [] });
1500
+
1501
+ class PrimaryButtonComponent extends BaseButtonComponent {
1502
+ constructor() {
1503
+ super();
1504
+ this.loadingLabel = input('Saving...');
1505
+ this.label = input('Save');
1506
+ this.icon = input('save');
1507
+ this.showIcon = input(false);
1508
+ this.classes = input('btn-primary primary-button');
1509
+ }
1510
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.0", ngImport: i0, type: PrimaryButtonComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1511
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.0.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: `
1512
+ <button
1513
+ mat-raised-button
1514
+ class="btn {{ classes() }}"
1515
+ (click)="onClick.emit($event)"
1516
+ (focus)="onFocus.emit($event)"
1517
+ (blur)="onBlur.emit($event)"
1518
+ [disabled]="disabled() || loading()"
1519
+ [type]="type()"
1520
+ [ngStyle]="style()"
1521
+ [attr.data-cy]="'primary-button'">
1522
+ @if (loading()) {
1523
+ <span aria-hidden="true" class="spinner-border spinner-border-sm" role="status"></span>
1524
+ }
1525
+ @if (!loading() && showIcon()) {
1526
+ <mat-icon>{{ icon() }}</mat-icon>
1527
+ }
1528
+ {{ loading() ? loadingLabel() : label() }}
1529
+ </button>
1530
+ `, 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[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "component", type: MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }] }); }
1531
+ }
1532
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.0", ngImport: i0, type: PrimaryButtonComponent, decorators: [{
1533
+ type: Component,
1534
+ args: [{ selector: 'primary-button', standalone: true, imports: [MatButton, MatIcon, NgStyle], template: `
1535
+ <button
1536
+ mat-raised-button
1537
+ class="btn {{ classes() }}"
1538
+ (click)="onClick.emit($event)"
1539
+ (focus)="onFocus.emit($event)"
1540
+ (blur)="onBlur.emit($event)"
1541
+ [disabled]="disabled() || loading()"
1542
+ [type]="type()"
1543
+ [ngStyle]="style()"
1544
+ [attr.data-cy]="'primary-button'">
1545
+ @if (loading()) {
1546
+ <span aria-hidden="true" class="spinner-border spinner-border-sm" role="status"></span>
1547
+ }
1548
+ @if (!loading() && showIcon()) {
1549
+ <mat-icon>{{ icon() }}</mat-icon>
1550
+ }
1551
+ {{ loading() ? loadingLabel() : label() }}
1552
+ </button>
1553
+ `, 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"] }]
1554
+ }], ctorParameters: () => [] });
1555
+
1556
+ class PdfExportButtonComponent {
1557
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.0", ngImport: i0, type: PdfExportButtonComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1558
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.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[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }] }); }
1559
+ }
1560
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.0", ngImport: i0, type: PdfExportButtonComponent, decorators: [{
1561
+ type: Component,
1562
+ args: [{ selector: 'pdf-export-button', standalone: true, 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"] }]
1563
+ }] });
1564
+
1565
+ class ExcelExportButtonComponent {
1566
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.0", ngImport: i0, type: ExcelExportButtonComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1567
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.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: CommonModule }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i1$3.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }] }); }
1568
+ }
1569
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.0", ngImport: i0, type: ExcelExportButtonComponent, decorators: [{
1570
+ type: Component,
1571
+ args: [{ selector: 'excel-export-button', standalone: true, imports: [CommonModule, 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"] }]
1572
+ }] });
1573
+
1574
+ class ConfirmDialogComponent {
1575
+ constructor(data, dialogRef) {
1576
+ this.data = data;
1577
+ this.dialogRef = dialogRef;
1578
+ // Update view with given values
1579
+ this.title = data.title;
1580
+ this.message = data.message;
1581
+ }
1582
+ onDismiss() {
1583
+ // Close the dialog, return true
1584
+ this.dialogRef.close(false);
1585
+ }
1586
+ onConfirm() {
1587
+ // Close the dialog, return true
1588
+ this.dialogRef.close(true);
1589
+ }
1590
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.0", ngImport: i0, type: ConfirmDialogComponent, deps: [{ token: MAT_DIALOG_DATA }, { token: i1$6.MatDialogRef }], target: i0.ɵɵFactoryTarget.Component }); }
1591
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.0", type: ConfirmDialogComponent, isStandalone: true, selector: "app-confirm-dialog", ngImport: i0, template: `
1592
+ <div class="mat-dialog-title" style="text-align: center">
1593
+ <h3 class="m-3 mat-headline-5 ">{{ title }}</h3>
1594
+ </div>
1595
+
1596
+ <mat-divider></mat-divider>
1597
+ <div mat-dialog-content style="margin: 20px">
1598
+ <p>{{ message }}</p>
1599
+ </div>
1600
+
1601
+ <div align="end" class="modal-footer" mat-dialog-actions>
1602
+ <button (click)="onDismiss()" mat-raised-button>No</button>
1603
+ <button (click)="onConfirm()" class="primary-button" mat-raised-button>Yes</button>
1604
+ </div>
1605
+ `, isInline: true, dependencies: [{ kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i1$3.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "ngmodule", type: MatDividerModule }, { kind: "component", type: i3$1.MatDivider, selector: "mat-divider", inputs: ["vertical", "inset"] }, { kind: "ngmodule", type: MatDialogModule }, { kind: "directive", type: i1$6.MatDialogActions, selector: "[mat-dialog-actions], mat-dialog-actions, [matDialogActions]", inputs: ["align"] }, { kind: "directive", type: i1$6.MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }] }); }
1606
+ }
1607
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.0", ngImport: i0, type: ConfirmDialogComponent, decorators: [{
1608
+ type: Component,
1609
+ args: [{ selector: 'app-confirm-dialog', standalone: true, imports: [MatButtonModule, MatDividerModule, MatDialogModule], template: `
1610
+ <div class="mat-dialog-title" style="text-align: center">
1611
+ <h3 class="m-3 mat-headline-5 ">{{ title }}</h3>
1612
+ </div>
1613
+
1614
+ <mat-divider></mat-divider>
1615
+ <div mat-dialog-content style="margin: 20px">
1616
+ <p>{{ message }}</p>
1617
+ </div>
1618
+
1619
+ <div align="end" class="modal-footer" mat-dialog-actions>
1620
+ <button (click)="onDismiss()" mat-raised-button>No</button>
1621
+ <button (click)="onConfirm()" class="primary-button" mat-raised-button>Yes</button>
1622
+ </div>
1623
+ ` }]
1624
+ }], ctorParameters: () => [{ type: undefined, decorators: [{
1625
+ type: Inject,
1626
+ args: [MAT_DIALOG_DATA]
1627
+ }] }, { type: i1$6.MatDialogRef }] });
1628
+
1629
+ class ErrorSnackBarComponent {
1630
+ constructor(msb, data) {
1631
+ this.msb = msb;
1632
+ this.data = data;
1633
+ }
1634
+ /**
1635
+ * Close the Snack Bar
1636
+ *
1637
+ * @author Pavan Kumar Jadda
1638
+ * @since 2.7.18
1639
+ */
1640
+ close() {
1641
+ this.msb.dismissWithAction();
1642
+ }
1643
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.0", ngImport: i0, type: ErrorSnackBarComponent, deps: [{ token: i1$7.MatSnackBarRef }, { token: MAT_SNACK_BAR_DATA }], target: i0.ɵɵFactoryTarget.Component }); }
1644
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.0", type: ErrorSnackBarComponent, isStandalone: true, selector: "app-error-snack-bar", ngImport: i0, template: `
1645
+ <div class="custom-flex-center error-snackbar">
1646
+ <mat-icon>error</mat-icon>
1647
+ <label>{{ data.message }}</label>
1648
+ <button style="margin-left: auto" (click)="close()" mat-icon-button>
1649
+ <mat-icon>close</mat-icon>
1650
+ </button>
1651
+ </div>
1652
+ `, isInline: true, styles: [":root{--primary-color: #153d77;--secondary-color: #6c757d;--white-color: #fff;--success-color: #198754;--delete-color: #dc3545;--background-color: #f2f2f2}.success-snackbar{color:#fff;--mdc-snackbar-container-color: var(--success-color);--mat-mdc-snack-bar-button-color: var(--white-color)}.error-snackbar{color:#fff;--mdc-snackbar-container-color: var(--delete-color);--mat-mdc-snack-bar-button-color: var(--white-color)}.light-success-snackbar{color:#155724;background-color:#d4edda;--mdc-snackbar-container-color: #d4edda;--mat-mdc-snack-bar-button-color: darkgreen}.light-error-snackbar{color:#721c24;--mdc-snackbar-container-color: var(--success-color);--mat-mdc-snack-bar-button-color: darkred;border-color:#f5c6cb}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { 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]", exportAs: ["matButton"] }] }); }
1653
+ }
1654
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.0", ngImport: i0, type: ErrorSnackBarComponent, decorators: [{
1655
+ type: Component,
1656
+ args: [{ selector: 'app-error-snack-bar', standalone: true, imports: [CommonModule, MatIconModule, MatButtonModule], template: `
1657
+ <div class="custom-flex-center error-snackbar">
1658
+ <mat-icon>error</mat-icon>
1659
+ <label>{{ data.message }}</label>
1660
+ <button style="margin-left: auto" (click)="close()" mat-icon-button>
1661
+ <mat-icon>close</mat-icon>
1662
+ </button>
1663
+ </div>
1664
+ `, styles: [":root{--primary-color: #153d77;--secondary-color: #6c757d;--white-color: #fff;--success-color: #198754;--delete-color: #dc3545;--background-color: #f2f2f2}.success-snackbar{color:#fff;--mdc-snackbar-container-color: var(--success-color);--mat-mdc-snack-bar-button-color: var(--white-color)}.error-snackbar{color:#fff;--mdc-snackbar-container-color: var(--delete-color);--mat-mdc-snack-bar-button-color: var(--white-color)}.light-success-snackbar{color:#155724;background-color:#d4edda;--mdc-snackbar-container-color: #d4edda;--mat-mdc-snack-bar-button-color: darkgreen}.light-error-snackbar{color:#721c24;--mdc-snackbar-container-color: var(--success-color);--mat-mdc-snack-bar-button-color: darkred;border-color:#f5c6cb}\n"] }]
1665
+ }], ctorParameters: () => [{ type: i1$7.MatSnackBarRef }, { type: undefined, decorators: [{
1666
+ type: Inject,
1667
+ args: [MAT_SNACK_BAR_DATA]
1668
+ }] }] });
1669
+
1670
+ class SuccessSnackBarComponent {
1671
+ constructor(msb, data) {
1672
+ this.msb = msb;
1673
+ this.data = data;
1674
+ }
1675
+ /**
1676
+ * Close the Snack Bar
1677
+ *
1678
+ * @author Pavan Kumar Jadda
1679
+ * @since 2.7.18
1680
+ */
1681
+ close() {
1682
+ this.msb.dismissWithAction();
1683
+ }
1684
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.0", ngImport: i0, type: SuccessSnackBarComponent, deps: [{ token: i1$7.MatSnackBarRef }, { token: MAT_SNACK_BAR_DATA }], target: i0.ɵɵFactoryTarget.Component }); }
1685
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.0", type: SuccessSnackBarComponent, isStandalone: true, selector: "app-success-snack-bar", ngImport: i0, template: `
1686
+ <div class="custom-flex-center success-snackbar">
1687
+ <mat-icon>check_circle</mat-icon>
1688
+ <label>{{ data.message }}</label>
1689
+ <button style="margin-left: auto" (click)="close()" mat-icon-button>
1690
+ <mat-icon>close</mat-icon>
1691
+ </button>
1692
+ </div>
1693
+ `, isInline: true, styles: [":root{--primary-color: #153d77;--secondary-color: #6c757d;--white-color: #fff;--success-color: #198754;--delete-color: #dc3545;--background-color: #f2f2f2}.success-snackbar{color:#fff;--mdc-snackbar-container-color: var(--success-color);--mat-mdc-snack-bar-button-color: var(--white-color)}.error-snackbar{color:#fff;--mdc-snackbar-container-color: var(--delete-color);--mat-mdc-snack-bar-button-color: var(--white-color)}.light-success-snackbar{color:#155724;background-color:#d4edda;--mdc-snackbar-container-color: #d4edda;--mat-mdc-snack-bar-button-color: darkgreen}.light-error-snackbar{color:#721c24;--mdc-snackbar-container-color: var(--success-color);--mat-mdc-snack-bar-button-color: darkred;border-color:#f5c6cb}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i1$3.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i1$4.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }] }); }
1694
+ }
1695
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.0", ngImport: i0, type: SuccessSnackBarComponent, decorators: [{
1696
+ type: Component,
1697
+ args: [{ selector: 'app-success-snack-bar', standalone: true, imports: [CommonModule, MatButtonModule, MatIconModule], template: `
1698
+ <div class="custom-flex-center success-snackbar">
1699
+ <mat-icon>check_circle</mat-icon>
1700
+ <label>{{ data.message }}</label>
1701
+ <button style="margin-left: auto" (click)="close()" mat-icon-button>
1702
+ <mat-icon>close</mat-icon>
1703
+ </button>
1704
+ </div>
1705
+ `, styles: [":root{--primary-color: #153d77;--secondary-color: #6c757d;--white-color: #fff;--success-color: #198754;--delete-color: #dc3545;--background-color: #f2f2f2}.success-snackbar{color:#fff;--mdc-snackbar-container-color: var(--success-color);--mat-mdc-snack-bar-button-color: var(--white-color)}.error-snackbar{color:#fff;--mdc-snackbar-container-color: var(--delete-color);--mat-mdc-snack-bar-button-color: var(--white-color)}.light-success-snackbar{color:#155724;background-color:#d4edda;--mdc-snackbar-container-color: #d4edda;--mat-mdc-snack-bar-button-color: darkgreen}.light-error-snackbar{color:#721c24;--mdc-snackbar-container-color: var(--success-color);--mat-mdc-snack-bar-button-color: darkred;border-color:#f5c6cb}\n"] }]
1706
+ }], ctorParameters: () => [{ type: i1$7.MatSnackBarRef }, { type: undefined, decorators: [{
1707
+ type: Inject,
1708
+ args: [MAT_SNACK_BAR_DATA]
1709
+ }] }] });
1710
+
1711
+ class MatSnackBarService {
1712
+ constructor(snackBar) {
1713
+ this.snackBar = snackBar;
1714
+ /**
1715
+ * Duration (in milliseconds) of the Snack Bar to be open. Defaults to 5 seconds(5000 milliseconds)
1716
+ */
1717
+ this.duration = 500000;
1718
+ /**
1719
+ * Horizontal Position of the MatSnackBar. Defaults to left side
1720
+ */
1721
+ this.horizontalPosition = 'right';
1722
+ /**
1723
+ * Vertical Position of the MatSnackBar. Defaults to page bottom
1724
+ */
1725
+ this.verticalPosition = 'top';
1726
+ }
1727
+ /**
1728
+ * Opens Success Snack Bar
1729
+ *
1730
+ * @param message Message to display on Snack Bar
1731
+ * @param options Options of the Snack Bar
1732
+ *
1733
+ * @author Pavan Kumar Jadda
1734
+ * @since 2.2.3
1735
+ */
1736
+ success(message, options) {
1737
+ this.snackBar.openFromComponent(SuccessSnackBarComponent, {
1738
+ data: { message },
1739
+ duration: options?.duration ?? this.duration,
1740
+ panelClass: options?.panelClass ?? 'success-snackbar',
1741
+ horizontalPosition: options?.horizontalPosition ?? this.horizontalPosition,
1742
+ verticalPosition: options?.verticalPosition ?? this.verticalPosition,
1743
+ });
1744
+ }
1745
+ /**
1746
+ * Opens Error Snack Bar
1747
+ *
1748
+ * @param message Message to display on Snack Bar
1749
+ * @param options Options of the Snack Bar
1750
+ *
1751
+ * @author Pavan Kumar Jadda
1752
+ * @since 2.2.3
1753
+ */
1754
+ error(message, options) {
1755
+ this.snackBar.openFromComponent(ErrorSnackBarComponent, {
1756
+ data: { message },
1757
+ duration: options?.duration ?? 10000,
1758
+ panelClass: options?.panelClass ?? 'error-snackbar',
1759
+ horizontalPosition: options?.horizontalPosition ?? this.horizontalPosition,
1760
+ verticalPosition: options?.verticalPosition ?? this.verticalPosition,
1761
+ });
1762
+ }
1763
+ /**
1764
+ * Opens Generic Snack Bar
1765
+ *
1766
+ * @param message Message to display on Snack Bar
1767
+ *
1768
+ * @author Pavan Kumar Jadda
1769
+ * @since 2.2.3
1770
+ */
1771
+ open(message) {
1772
+ this.snackBar.open(message, 'Close', {
1773
+ duration: this.duration,
1774
+ horizontalPosition: this.horizontalPosition,
1775
+ verticalPosition: this.verticalPosition,
1776
+ });
1777
+ }
1778
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.0", ngImport: i0, type: MatSnackBarService, deps: [{ token: i1$7.MatSnackBar }], target: i0.ɵɵFactoryTarget.Injectable }); }
1779
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.0.0", ngImport: i0, type: MatSnackBarService, providedIn: 'root' }); }
1780
+ }
1781
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.0", ngImport: i0, type: MatSnackBarService, decorators: [{
1782
+ type: Injectable,
1783
+ args: [{
1784
+ providedIn: 'root',
1785
+ }]
1786
+ }], ctorParameters: () => [{ type: i1$7.MatSnackBar }] });
1787
+
1788
+ /**
1789
+ * Initialize Loading or Update ProgressState
1790
+ *
1791
+ * @return Updated State Object
1792
+ *
1793
+ * @author Pavan Kumar Jadda
1794
+ * @since 2.7.16
1795
+ */
1796
+ const initializeState = () => {
1797
+ return signal({
1798
+ isLoading: false,
1799
+ isSuccess: false,
1800
+ isError: false,
1801
+ isComplete: false,
1802
+ message: '',
1803
+ });
1804
+ };
1805
+ /**
1806
+ * Initialize Loading or Update ProgressState
1807
+ *
1808
+ * @param progressState Object to initialize
1809
+ * @return ProgressState Updated State Object
1810
+ *
1811
+ * @author Pavan Kumar Jadda
1812
+ * @since 2.7.16
1813
+ */
1814
+ const markLoading = (progressState) => {
1815
+ progressState.update((state) => {
1816
+ return {
1817
+ ...state,
1818
+ isLoading: true,
1819
+ isSuccess: false,
1820
+ isError: false,
1821
+ isComplete: false,
1822
+ message: '',
1823
+ };
1824
+ });
1825
+ };
1826
+ /**
1827
+ * Update state as isSuccess
1828
+ *
1829
+ * @return ProgressState Updated State Object
1830
+ *
1831
+ * @author Pavan Kumar Jadda
1832
+ * @since 2.7.16
1833
+ */
1834
+ const markSuccess = (progressState, message) => {
1835
+ progressState.update((state) => {
1836
+ return {
1837
+ ...state,
1838
+ isLoading: false,
1839
+ isSuccess: true,
1840
+ isError: false,
1841
+ isComplete: true,
1842
+ message: message || '',
1843
+ };
1844
+ });
1845
+ };
1846
+ /**
1847
+ * Update state as failure or isError
1848
+ *
1849
+ * @return ProgressState Updated State Object
1850
+ *
1851
+ * @author Pavan Kumar Jadda
1852
+ * @since 2.7.16
1853
+ */
1854
+ const markError = (progressState, message) => {
1855
+ progressState.update((state) => {
1856
+ return {
1857
+ ...state,
1858
+ isLoading: false,
1859
+ isSuccess: false,
1860
+ isError: true,
1861
+ isComplete: true,
1862
+ message: message || '',
1863
+ };
1864
+ });
1865
+ };
1866
+
1867
+ /**
1868
+ * Generated bundle index. Do not edit.
1869
+ */
1870
+
1871
+ export { AlertComponent, AutocompleteComponent, BsLinkButtonComponent, ConfirmDialogComponent, DeleteButtonComponent, EditBsButtonComponent, EditButtonComponent, EditSolidSvgComponent, EditSvgIconButtonComponent, ExcelExportButtonComponent, ManageButtonComponent, MatSnackBarService, NgxPrintDirective, NgxSpinnerComponent, NgxSpinnerService, PdfExportButtonComponent, PreventMultipleClicksDirective, PrimaryButtonComponent, SavePrimaryButtonComponent, SearchButtonComponent, SpinnerComponent, SuccessButtonComponent, ViewButtonComponent, ViewPrimaryButtonComponent, initializeState, markError, markLoading, markSuccess };
1872
+ //# sourceMappingURL=js-smart-ng-kit.mjs.map