@js-smart/ng-kit 20.4.0 → 20.6.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.
@@ -1,11 +1,11 @@
1
1
  import * as i0 from '@angular/core';
2
- import { inject, ChangeDetectorRef, input, signal, output, effect, Component, Injectable, Pipe, HostListener, ViewChild, forwardRef, Input, Optional, Directive, Inject, computed } from '@angular/core';
3
- import * as i1 from '@angular/material/progress-spinner';
4
- import { MatProgressSpinnerModule } from '@angular/material/progress-spinner';
2
+ import { inject, ChangeDetectorRef, input, signal, output, effect, Component, Pipe, Injectable, HostListener, ViewChild, forwardRef, Input, Optional, Directive, ElementRef, ViewContainerRef, Inject, computed } from '@angular/core';
3
+ import { trigger, state, transition, style, animate } from '@angular/animations';
5
4
  import { BehaviorSubject, Subject, throttleTime } from 'rxjs';
6
5
  import { filter, takeUntil, startWith, map } from 'rxjs/operators';
7
- import { trigger, state, transition, style, animate } from '@angular/animations';
8
- import * as i1$1 from '@angular/platform-browser';
6
+ import * as i1 from '@angular/platform-browser';
7
+ import * as i1$1 from '@angular/material/progress-spinner';
8
+ import { MatProgressSpinnerModule } from '@angular/material/progress-spinner';
9
9
  import { AsyncPipe } from '@angular/common';
10
10
  import * as i1$2 from '@angular/forms';
11
11
  import { FormControl, ReactiveFormsModule, NG_VALUE_ACCESSOR } from '@angular/forms';
@@ -117,33 +117,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.0", ngImpor
117
117
  args: [{ selector: 'lib-alert, alert', template: "@if (open()) {\n\t<div class=\"row {{ class() }}\">\n\t\t<div class=\"col-xs-12 col-sm-12 col-md-auto mx-auto\">\n\t\t\t<div class=\"alert alert-{{ type() }} alert-dismissible alert_div\" role=\"alert\">\n\t\t\t\t<ng-content></ng-content>\n\t\t\t\t@if (dismissible()) {\n\t\t\t\t\t<button (click)=\"closeAlert()\" aria-label=\"Close\" class=\"btn-close\" data-bs-dismiss=\"alert\" type=\"button\"></button>\n\t\t\t\t}\n\t\t\t</div>\n\t\t</div>\n\t</div>\n}\n", styles: [".alert_div{display:flex;align-items:center;justify-content:center}\n"] }]
118
118
  }], ctorParameters: () => [] });
119
119
 
120
- class SpinnerComponent {
121
- constructor() {
122
- /**
123
- * Use Boostrap Spinner. Default `true`
124
- */
125
- this.bootstrapSpinner = input(true, ...(ngDevMode ? [{ debugName: "bootstrapSpinner" }] : []));
126
- /**
127
- * Diameter of the Angular Material spinner
128
- */
129
- this.diameter = input(50, ...(ngDevMode ? [{ debugName: "diameter" }] : []));
130
- /**
131
- * Color of the Angular Material spinner
132
- */
133
- this.color = input('primary', ...(ngDevMode ? [{ debugName: "color" }] : []));
134
- /**
135
- * Stroke Width of the Angular Material spinner
136
- */
137
- this.strokeWidth = input(5, ...(ngDevMode ? [{ debugName: "strokeWidth" }] : []));
138
- }
139
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.0", ngImport: i0, type: SpinnerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
140
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.1.0", type: SpinnerComponent, isStandalone: true, selector: "spinner,lib-spinner", inputs: { bootstrapSpinner: { classPropertyName: "bootstrapSpinner", publicName: "bootstrapSpinner", isSignal: true, isRequired: false, transformFunction: null }, diameter: { classPropertyName: "diameter", publicName: "diameter", isSignal: true, isRequired: false, transformFunction: null }, color: { classPropertyName: "color", publicName: "color", isSignal: true, isRequired: false, transformFunction: null }, strokeWidth: { classPropertyName: "strokeWidth", publicName: "strokeWidth", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: "<!-- Angular Material Spinner -->\n@if (!bootstrapSpinner()) {\n\t<mat-spinner [color]=\"color()\" [diameter]=\"diameter()\" [strokeWidth]=\"strokeWidth()\" class=\"mx-auto\"> </mat-spinner>\n}\n\n<!-- Bootstrap Spinner -->\n@if (bootstrapSpinner()) {\n\t<div class=\"d-flex justify-content-center\">\n\t\t<div class=\"spinner-border bs-spinner\" role=\"status\"></div>\n\t</div>\n}\n", styles: [".bs-spinner-sm{color:#3f51b5;margin-bottom:20px}.bs-spinner{color:#3f51b5;width:3rem;height:3rem;margin-bottom:20px}.bs-spinner-lg{color:#3f51b5;width:5rem;height:5rem;margin-bottom:20px}\n"], dependencies: [{ kind: "ngmodule", type: MatProgressSpinnerModule }, { kind: "component", type: i1.MatProgressSpinner, selector: "mat-progress-spinner, mat-spinner", inputs: ["color", "mode", "value", "diameter", "strokeWidth"], exportAs: ["matProgressSpinner"] }] }); }
141
- }
142
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.0", ngImport: i0, type: SpinnerComponent, decorators: [{
143
- type: Component,
144
- args: [{ selector: 'spinner,lib-spinner', imports: [MatProgressSpinnerModule], template: "<!-- Angular Material Spinner -->\n@if (!bootstrapSpinner()) {\n\t<mat-spinner [color]=\"color()\" [diameter]=\"diameter()\" [strokeWidth]=\"strokeWidth()\" class=\"mx-auto\"> </mat-spinner>\n}\n\n<!-- Bootstrap Spinner -->\n@if (bootstrapSpinner()) {\n\t<div class=\"d-flex justify-content-center\">\n\t\t<div class=\"spinner-border bs-spinner\" role=\"status\"></div>\n\t</div>\n}\n", styles: [".bs-spinner-sm{color:#3f51b5;margin-bottom:20px}.bs-spinner{color:#3f51b5;width:3rem;height:3rem;margin-bottom:20px}.bs-spinner-lg{color:#3f51b5;width:5rem;height:5rem;margin-bottom:20px}\n"] }]
145
- }] });
146
-
147
120
  const LOADERS = {
148
121
  'ball-clip-rotate': 1,
149
122
  };
@@ -160,6 +133,27 @@ class NgxSpinner {
160
133
  }
161
134
  }
162
135
 
136
+ class SafeHtmlPipe {
137
+ constructor(_sanitizer) {
138
+ this._sanitizer = _sanitizer;
139
+ }
140
+ transform(v) {
141
+ if (v) {
142
+ return this._sanitizer.bypassSecurityTrustHtml(v);
143
+ }
144
+ return undefined;
145
+ }
146
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.0", ngImport: i0, type: SafeHtmlPipe, deps: [{ token: i1.DomSanitizer }], target: i0.ɵɵFactoryTarget.Pipe }); }
147
+ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "20.1.0", ngImport: i0, type: SafeHtmlPipe, isStandalone: true, name: "safeHtml" }); }
148
+ }
149
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.0", ngImport: i0, type: SafeHtmlPipe, decorators: [{
150
+ type: Pipe,
151
+ args: [{
152
+ name: 'safeHtml',
153
+ standalone: true,
154
+ }]
155
+ }], ctorParameters: () => [{ type: i1.DomSanitizer }] });
156
+
163
157
  class NgxSpinnerService {
164
158
  constructor() {
165
159
  /**
@@ -226,27 +220,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.0", ngImpor
226
220
  }]
227
221
  }] });
228
222
 
229
- class SafeHtmlPipe {
230
- constructor(_sanitizer) {
231
- this._sanitizer = _sanitizer;
232
- }
233
- transform(v) {
234
- if (v) {
235
- return this._sanitizer.bypassSecurityTrustHtml(v);
236
- }
237
- return undefined;
238
- }
239
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.0", ngImport: i0, type: SafeHtmlPipe, deps: [{ token: i1$1.DomSanitizer }], target: i0.ɵɵFactoryTarget.Pipe }); }
240
- static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "20.1.0", ngImport: i0, type: SafeHtmlPipe, isStandalone: true, name: "safeHtml" }); }
241
- }
242
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.0", ngImport: i0, type: SafeHtmlPipe, decorators: [{
243
- type: Pipe,
244
- args: [{
245
- name: 'safeHtml',
246
- standalone: true,
247
- }]
248
- }], ctorParameters: () => [{ type: i1$1.DomSanitizer }] });
249
-
250
223
  class NgxSpinnerComponent {
251
224
  /**
252
225
  * Creates an instance of NgxSpinnerComponent.
@@ -422,6 +395,33 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.0", ngImpor
422
395
  args: ['document:keydown', ['$event']]
423
396
  }] } });
424
397
 
398
+ class SpinnerComponent {
399
+ constructor() {
400
+ /**
401
+ * Use Boostrap Spinner. Default `true`
402
+ */
403
+ this.bootstrapSpinner = input(true, ...(ngDevMode ? [{ debugName: "bootstrapSpinner" }] : []));
404
+ /**
405
+ * Diameter of the Angular Material spinner
406
+ */
407
+ this.diameter = input(50, ...(ngDevMode ? [{ debugName: "diameter" }] : []));
408
+ /**
409
+ * Color of the Angular Material spinner
410
+ */
411
+ this.color = input('primary', ...(ngDevMode ? [{ debugName: "color" }] : []));
412
+ /**
413
+ * Stroke Width of the Angular Material spinner
414
+ */
415
+ this.strokeWidth = input(5, ...(ngDevMode ? [{ debugName: "strokeWidth" }] : []));
416
+ }
417
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.0", ngImport: i0, type: SpinnerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
418
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.1.0", type: SpinnerComponent, isStandalone: true, selector: "spinner,lib-spinner", inputs: { bootstrapSpinner: { classPropertyName: "bootstrapSpinner", publicName: "bootstrapSpinner", isSignal: true, isRequired: false, transformFunction: null }, diameter: { classPropertyName: "diameter", publicName: "diameter", isSignal: true, isRequired: false, transformFunction: null }, color: { classPropertyName: "color", publicName: "color", isSignal: true, isRequired: false, transformFunction: null }, strokeWidth: { classPropertyName: "strokeWidth", publicName: "strokeWidth", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: "<!-- Angular Material Spinner -->\n@if (!bootstrapSpinner()) {\n\t<mat-spinner [color]=\"color()\" [diameter]=\"diameter()\" [strokeWidth]=\"strokeWidth()\" class=\"mx-auto\"> </mat-spinner>\n}\n\n<!-- Bootstrap Spinner -->\n@if (bootstrapSpinner()) {\n\t<div class=\"d-flex justify-content-center\">\n\t\t<div class=\"spinner-border bs-spinner\" role=\"status\"></div>\n\t</div>\n}\n", styles: [".bs-spinner-sm{color:#3f51b5;margin-bottom:20px}.bs-spinner{color:#3f51b5;width:3rem;height:3rem;margin-bottom:20px}.bs-spinner-lg{color:#3f51b5;width:5rem;height:5rem;margin-bottom:20px}\n"], dependencies: [{ kind: "ngmodule", type: MatProgressSpinnerModule }, { kind: "component", type: i1$1.MatProgressSpinner, selector: "mat-progress-spinner, mat-spinner", inputs: ["color", "mode", "value", "diameter", "strokeWidth"], exportAs: ["matProgressSpinner"] }] }); }
419
+ }
420
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.0", ngImport: i0, type: SpinnerComponent, decorators: [{
421
+ type: Component,
422
+ args: [{ selector: 'spinner,lib-spinner', imports: [MatProgressSpinnerModule], template: "<!-- Angular Material Spinner -->\n@if (!bootstrapSpinner()) {\n\t<mat-spinner [color]=\"color()\" [diameter]=\"diameter()\" [strokeWidth]=\"strokeWidth()\" class=\"mx-auto\"> </mat-spinner>\n}\n\n<!-- Bootstrap Spinner -->\n@if (bootstrapSpinner()) {\n\t<div class=\"d-flex justify-content-center\">\n\t\t<div class=\"spinner-border bs-spinner\" role=\"status\"></div>\n\t</div>\n}\n", styles: [".bs-spinner-sm{color:#3f51b5;margin-bottom:20px}.bs-spinner{color:#3f51b5;width:3rem;height:3rem;margin-bottom:20px}.bs-spinner-lg{color:#3f51b5;width:5rem;height:5rem;margin-bottom:20px}\n"] }]
423
+ }] });
424
+
425
425
  /**
426
426
  * Reusable Auto Complete component that extends MatAutoComplete to show Clear icon and Arrow buttons
427
427
  *
@@ -896,6 +896,83 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.0", ngImpor
896
896
  args: ['click', ['$event']]
897
897
  }] } });
898
898
 
899
+ class BaseButtonDirective {
900
+ constructor() {
901
+ this.icon = input('', ...(ngDevMode ? [{ debugName: "icon" }] : []));
902
+ this.loadingLabel = input('Loading...', ...(ngDevMode ? [{ debugName: "loadingLabel" }] : []));
903
+ this.loading = input(false, ...(ngDevMode ? [{ debugName: "loading" }] : []));
904
+ this.elementRef = inject(ElementRef);
905
+ this.originalText = signal('', ...(ngDevMode ? [{ debugName: "originalText" }] : []));
906
+ this.iconSpan = signal(null, ...(ngDevMode ? [{ debugName: "iconSpan" }] : []));
907
+ this.elementRef.nativeElement.classList.add('btn');
908
+ effect(() => {
909
+ this.updateContent();
910
+ });
911
+ }
912
+ ngOnInit() {
913
+ // Capture original text before creating icon
914
+ this.originalText.set(this.elementRef.nativeElement.textContent?.trim() || 'Button');
915
+ // Create icon after capturing text
916
+ this.createIcon();
917
+ }
918
+ /**
919
+ * Create icon element if icon name is provided
920
+ */
921
+ createIcon() {
922
+ if (this.icon()) {
923
+ const iconElement = document.createElement('mat-icon');
924
+ iconElement.classList.add('mat-icon', 'material-icons', 'pe-2');
925
+ iconElement.textContent = this.icon();
926
+ this.iconSpan.set(iconElement);
927
+ }
928
+ }
929
+ /**
930
+ * Update content of the button
931
+ */
932
+ updateContent() {
933
+ const element = this.elementRef.nativeElement;
934
+ element.innerHTML = '';
935
+ if (this.loading()) {
936
+ this.showLoadingState(element);
937
+ }
938
+ else {
939
+ this.showNormalState(element);
940
+ }
941
+ }
942
+ /**
943
+ * Show loading state. Add spinner and loadingLabel text
944
+ */
945
+ showLoadingState(element) {
946
+ // Create a new span element
947
+ const newSpan = document.createElement('span');
948
+ // Set its text content
949
+ newSpan.classList.add('spinner-border', 'spinner-border-sm', 'me-2');
950
+ newSpan.setAttribute('role', 'status');
951
+ // Append the new element to the host element
952
+ element.appendChild(newSpan);
953
+ element.appendChild(document.createTextNode(this.loadingLabel()));
954
+ element.setAttribute('disabled', 'true');
955
+ }
956
+ /**
957
+ * Show normal state. Add icon and original text
958
+ */
959
+ showNormalState(element) {
960
+ // Add icon and original text
961
+ const iconElement = this.iconSpan();
962
+ if (iconElement) {
963
+ element.appendChild(iconElement);
964
+ }
965
+ // Append text node instead of setting textContent (which overwrites the icon)
966
+ element.appendChild(document.createTextNode(this.originalText()));
967
+ element.removeAttribute('disabled');
968
+ }
969
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.0", ngImport: i0, type: BaseButtonDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
970
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "20.1.0", type: BaseButtonDirective, isStandalone: true, inputs: { icon: { classPropertyName: "icon", publicName: "icon", isSignal: true, isRequired: false, transformFunction: null }, loadingLabel: { classPropertyName: "loadingLabel", publicName: "loadingLabel", isSignal: true, isRequired: false, transformFunction: null }, loading: { classPropertyName: "loading", publicName: "loading", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0 }); }
971
+ }
972
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.0", ngImport: i0, type: BaseButtonDirective, decorators: [{
973
+ type: Directive
974
+ }], ctorParameters: () => [] });
975
+
899
976
  class BaseButtonComponent {
900
977
  constructor() {
901
978
  /**
@@ -1023,6 +1100,49 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.0", ngImpor
1023
1100
  `, 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"] }]
1024
1101
  }], ctorParameters: () => [] });
1025
1102
 
1103
+ class BsLinkButtonDirective {
1104
+ constructor() {
1105
+ this.icon = input('search', ...(ngDevMode ? [{ debugName: "icon" }] : []));
1106
+ this.elementRef = inject(ElementRef);
1107
+ this.elementRef.nativeElement.classList.add('btn', 'text-primary');
1108
+ effect(() => {
1109
+ this.updateContent();
1110
+ });
1111
+ }
1112
+ updateContent() {
1113
+ // if icon present, add material-icons class and set text content
1114
+ if (this.icon()) {
1115
+ const iconSpan = document.createElement('span');
1116
+ iconSpan.classList.add('material-icons', 'pe-2');
1117
+ iconSpan.textContent = this.icon();
1118
+ this.elementRef.nativeElement.appendChild(iconSpan);
1119
+ }
1120
+ }
1121
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.0", ngImport: i0, type: BsLinkButtonDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
1122
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "20.1.0", type: BsLinkButtonDirective, isStandalone: true, selector: "[bsLinkButton]", inputs: { icon: { classPropertyName: "icon", publicName: "icon", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0 }); }
1123
+ }
1124
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.0", ngImport: i0, type: BsLinkButtonDirective, decorators: [{
1125
+ type: Directive,
1126
+ args: [{
1127
+ selector: '[bsLinkButton]',
1128
+ }]
1129
+ }], ctorParameters: () => [] });
1130
+
1131
+ class CloseButtonDirective {
1132
+ constructor() {
1133
+ this.elementRef = inject(ElementRef);
1134
+ this.elementRef.nativeElement.classList.add('secondary-button');
1135
+ }
1136
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.0", ngImport: i0, type: CloseButtonDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
1137
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.1.0", type: CloseButtonDirective, isStandalone: true, selector: "[closeButton]", ngImport: i0 }); }
1138
+ }
1139
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.0", ngImport: i0, type: CloseButtonDirective, decorators: [{
1140
+ type: Directive,
1141
+ args: [{
1142
+ selector: '[closeButton]',
1143
+ }]
1144
+ }], ctorParameters: () => [] });
1145
+
1026
1146
  class DeleteButtonComponent extends BaseButtonComponent {
1027
1147
  constructor() {
1028
1148
  super();
@@ -1081,51 +1201,21 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.0", ngImpor
1081
1201
  `, 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"] }]
1082
1202
  }], ctorParameters: () => [] });
1083
1203
 
1084
- class EditButtonComponent extends BaseButtonComponent {
1204
+ class DeleteButtonDirective extends BaseButtonDirective {
1085
1205
  constructor() {
1086
1206
  super();
1087
- this.label = input('Edit', ...(ngDevMode ? [{ debugName: "label" }] : []));
1088
- this.icon = input('edit', ...(ngDevMode ? [{ debugName: "icon" }] : []));
1089
- this.classes = input('primary-button', ...(ngDevMode ? [{ debugName: "classes" }] : []));
1207
+ this.icon = input('delete', ...(ngDevMode ? [{ debugName: "icon" }] : []));
1208
+ this.loadingLabel = input('Deleting...', ...(ngDevMode ? [{ debugName: "loadingLabel" }] : []));
1209
+ this.elementRef.nativeElement.classList.add('delete-button');
1090
1210
  }
1091
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.0", ngImport: i0, type: EditButtonComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1092
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "20.1.0", type: EditButtonComponent, isStandalone: true, selector: "edit-button", inputs: { label: { classPropertyName: "label", publicName: "label", isSignal: true, isRequired: false, transformFunction: null }, icon: { classPropertyName: "icon", publicName: "icon", isSignal: true, isRequired: false, transformFunction: null }, classes: { classPropertyName: "classes", publicName: "classes", isSignal: true, isRequired: false, transformFunction: null } }, usesInheritance: true, ngImport: i0, template: `
1093
- <button
1094
- class="{{ classes() }}"
1095
- (click)="onClick.emit($event)"
1096
- (focus)="onFocus.emit($event)"
1097
- (blur)="onBlur.emit($event)"
1098
- (keydown)="onKeyDown.emit($event)"
1099
- (keyup)="onKeyUp.emit($event)"
1100
- [disabled]="disabled()"
1101
- [type]="type()"
1102
- [style]="style()"
1103
- [attr.data-cy]="'edit-button'"
1104
- mat-raised-button>
1105
- <mat-icon>{{ icon() }}</mat-icon>
1106
- {{ label() }}
1107
- </button>
1108
- `, isInline: true, styles: [".primary-button,.primary-button:hover,.primary-button:active,.primary-button:visited{color:#fff!important;background-color:var(--primary-color)!important}.secondary-button,.secondary-button:hover,.secondary-button:active,.secondary-button:visited{color:#fff!important;background-color:var(--secondary-color)!important}.success-button,.success-button:hover,.success-button:active,.success-button:visited{color:#fff!important;background-color:var(--success-color)!important}.delete-button,.delete-button:hover,.delete-button:active,.success-button:visited{color:#fff!important;background-color:var(--delete-color)!important}\n"], dependencies: [{ kind: "component", type: MatButton, selector: " button[matButton], a[matButton], button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button], a[mat-button], a[mat-raised-button], a[mat-flat-button], a[mat-stroked-button] ", inputs: ["matButton"], exportAs: ["matButton", "matAnchor"] }, { kind: "component", type: MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }] }); }
1211
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.0", ngImport: i0, type: DeleteButtonDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
1212
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "20.1.0", type: DeleteButtonDirective, isStandalone: true, selector: "[deleteButton]", inputs: { icon: { classPropertyName: "icon", publicName: "icon", isSignal: true, isRequired: false, transformFunction: null }, loadingLabel: { classPropertyName: "loadingLabel", publicName: "loadingLabel", isSignal: true, isRequired: false, transformFunction: null } }, usesInheritance: true, ngImport: i0 }); }
1109
1213
  }
1110
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.0", ngImport: i0, type: EditButtonComponent, decorators: [{
1111
- type: Component,
1112
- args: [{ selector: 'edit-button', imports: [MatButton, MatIcon], template: `
1113
- <button
1114
- class="{{ classes() }}"
1115
- (click)="onClick.emit($event)"
1116
- (focus)="onFocus.emit($event)"
1117
- (blur)="onBlur.emit($event)"
1118
- (keydown)="onKeyDown.emit($event)"
1119
- (keyup)="onKeyUp.emit($event)"
1120
- [disabled]="disabled()"
1121
- [type]="type()"
1122
- [style]="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"] }]
1214
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.0", ngImport: i0, type: DeleteButtonDirective, decorators: [{
1215
+ type: Directive,
1216
+ args: [{
1217
+ selector: '[deleteButton]',
1218
+ }]
1129
1219
  }], ctorParameters: () => [] });
1130
1220
 
1131
1221
  const EDIT_ICON = `
@@ -1137,13 +1227,17 @@ class EditSolidSvgComponent {
1137
1227
  constructor(iconRegistry, sanitizer) {
1138
1228
  iconRegistry.addSvgIconLiteral('edit-solid', sanitizer.bypassSecurityTrustHtml(EDIT_ICON));
1139
1229
  }
1140
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.0", ngImport: i0, type: EditSolidSvgComponent, deps: [{ token: i1$4.MatIconRegistry }, { token: i1$1.DomSanitizer }], target: i0.ɵɵFactoryTarget.Component }); }
1141
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.1.0", type: EditSolidSvgComponent, isStandalone: true, selector: "edit-solid-svg", ngImport: i0, template: ` <mat-icon aria-hidden="false" aria-label="Edit" svgIcon="edit-solid"></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"] }] }); }
1230
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.0", ngImport: i0, type: EditSolidSvgComponent, deps: [{ token: i1$4.MatIconRegistry }, { token: i1.DomSanitizer }], target: i0.ɵɵFactoryTarget.Component }); }
1231
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.1.0", type: EditSolidSvgComponent, isStandalone: true, selector: "edit-solid-svg", ngImport: i0, template: ` <mat-icon aria-hidden="false" aria-label="Edit" svgIcon="edit-solid" class="pe-2 align-bottom"></mat-icon> `, isInline: true, dependencies: [{ kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i1$4.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }] }); }
1142
1232
  }
1143
1233
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.0", ngImport: i0, type: EditSolidSvgComponent, decorators: [{
1144
1234
  type: Component,
1145
- args: [{ selector: 'edit-solid-svg', 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"] }]
1146
- }], ctorParameters: () => [{ type: i1$4.MatIconRegistry }, { type: i1$1.DomSanitizer }] });
1235
+ args: [{
1236
+ selector: 'edit-solid-svg',
1237
+ imports: [MatIconModule],
1238
+ template: ` <mat-icon aria-hidden="false" aria-label="Edit" svgIcon="edit-solid" class="pe-2 align-bottom"></mat-icon> `,
1239
+ }]
1240
+ }], ctorParameters: () => [{ type: i1$4.MatIconRegistry }, { type: i1.DomSanitizer }] });
1147
1241
 
1148
1242
  class EditBsButtonComponent extends BaseButtonComponent {
1149
1243
  constructor() {
@@ -1195,17 +1289,51 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.0", ngImpor
1195
1289
  `, 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"] }]
1196
1290
  }], ctorParameters: () => [] });
1197
1291
 
1198
- class EditSvgIconButtonComponent extends BaseButtonComponent {
1292
+ class EditBsButtonDirective {
1293
+ constructor() {
1294
+ this.elementRef = inject(ElementRef);
1295
+ this.viewContainerRef = inject(ViewContainerRef);
1296
+ this.originalText = signal('', ...(ngDevMode ? [{ debugName: "originalText" }] : []));
1297
+ this.iconComponentRef = signal(null, ...(ngDevMode ? [{ debugName: "iconComponentRef" }] : []));
1298
+ }
1299
+ ngOnInit() {
1300
+ // Add the btn class first
1301
+ this.elementRef.nativeElement.classList.add('btn', 'text-primary');
1302
+ // Capture original text before creating icon
1303
+ this.originalText.set(this.elementRef.nativeElement.textContent?.trim() || 'Edit');
1304
+ // Update content to show icon and text
1305
+ this.updateContent();
1306
+ }
1307
+ updateContent() {
1308
+ // Create the EditSolidSvgComponent properly using Angular's component system
1309
+ const componentRef = this.viewContainerRef.createComponent(EditSolidSvgComponent);
1310
+ this.iconComponentRef.set(componentRef);
1311
+ // Clear the original content and append the icon component
1312
+ this.elementRef.nativeElement.textContent = '';
1313
+ this.elementRef.nativeElement.appendChild(componentRef.location.nativeElement);
1314
+ // Add text after the icon
1315
+ this.elementRef.nativeElement.appendChild(document.createTextNode(' ' + this.originalText()));
1316
+ }
1317
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.0", ngImport: i0, type: EditBsButtonDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
1318
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.1.0", type: EditBsButtonDirective, isStandalone: true, selector: "[editBsButton]", ngImport: i0 }); }
1319
+ }
1320
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.0", ngImport: i0, type: EditBsButtonDirective, decorators: [{
1321
+ type: Directive,
1322
+ args: [{
1323
+ selector: '[editBsButton]',
1324
+ }]
1325
+ }] });
1326
+
1327
+ class EditButtonComponent extends BaseButtonComponent {
1199
1328
  constructor() {
1200
1329
  super();
1201
1330
  this.label = input('Edit', ...(ngDevMode ? [{ debugName: "label" }] : []));
1202
1331
  this.icon = input('edit', ...(ngDevMode ? [{ debugName: "icon" }] : []));
1203
1332
  this.classes = input('primary-button', ...(ngDevMode ? [{ debugName: "classes" }] : []));
1204
1333
  }
1205
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.0", ngImport: i0, type: EditSvgIconButtonComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1206
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "20.1.0", type: EditSvgIconButtonComponent, isStandalone: true, selector: "edit-svg-icon-button", inputs: { label: { classPropertyName: "label", publicName: "label", isSignal: true, isRequired: false, transformFunction: null }, icon: { classPropertyName: "icon", publicName: "icon", isSignal: true, isRequired: false, transformFunction: null }, classes: { classPropertyName: "classes", publicName: "classes", isSignal: true, isRequired: false, transformFunction: null } }, usesInheritance: true, ngImport: i0, template: `
1334
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.0", ngImport: i0, type: EditButtonComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1335
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "20.1.0", type: EditButtonComponent, isStandalone: true, selector: "edit-button", inputs: { label: { classPropertyName: "label", publicName: "label", isSignal: true, isRequired: false, transformFunction: null }, icon: { classPropertyName: "icon", publicName: "icon", isSignal: true, isRequired: false, transformFunction: null }, classes: { classPropertyName: "classes", publicName: "classes", isSignal: true, isRequired: false, transformFunction: null } }, usesInheritance: true, ngImport: i0, template: `
1207
1336
  <button
1208
- type="{{ type() }}"
1209
1337
  class="{{ classes() }}"
1210
1338
  (click)="onClick.emit($event)"
1211
1339
  (focus)="onFocus.emit($event)"
@@ -1215,18 +1343,17 @@ class EditSvgIconButtonComponent extends BaseButtonComponent {
1215
1343
  [disabled]="disabled()"
1216
1344
  [type]="type()"
1217
1345
  [style]="style()"
1218
- [attr.data-cy]="'edit-svg-icon-button'"
1346
+ [attr.data-cy]="'edit-button'"
1219
1347
  mat-raised-button>
1220
- <edit-solid-svg></edit-solid-svg>
1348
+ <mat-icon>{{ icon() }}</mat-icon>
1221
1349
  {{ label() }}
1222
1350
  </button>
1223
- `, isInline: true, styles: [".primary-button,.primary-button:hover,.primary-button:active,.primary-button:visited{color:#fff!important;background-color:var(--primary-color)!important}.secondary-button,.secondary-button:hover,.secondary-button:active,.secondary-button:visited{color:#fff!important;background-color:var(--secondary-color)!important}.success-button,.success-button:hover,.success-button:active,.success-button:visited{color:#fff!important;background-color:var(--success-color)!important}.delete-button,.delete-button:hover,.delete-button:active,.success-button:visited{color:#fff!important;background-color:var(--delete-color)!important}\n"], dependencies: [{ kind: "component", type: MatButton, selector: " button[matButton], a[matButton], button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button], a[mat-button], a[mat-raised-button], a[mat-flat-button], a[mat-stroked-button] ", inputs: ["matButton"], exportAs: ["matButton", "matAnchor"] }, { kind: "component", type: EditSolidSvgComponent, selector: "edit-solid-svg" }] }); }
1351
+ `, isInline: true, styles: [".primary-button,.primary-button:hover,.primary-button:active,.primary-button:visited{color:#fff!important;background-color:var(--primary-color)!important}.secondary-button,.secondary-button:hover,.secondary-button:active,.secondary-button:visited{color:#fff!important;background-color:var(--secondary-color)!important}.success-button,.success-button:hover,.success-button:active,.success-button:visited{color:#fff!important;background-color:var(--success-color)!important}.delete-button,.delete-button:hover,.delete-button:active,.success-button:visited{color:#fff!important;background-color:var(--delete-color)!important}\n"], dependencies: [{ kind: "component", type: MatButton, selector: " button[matButton], a[matButton], button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button], a[mat-button], a[mat-raised-button], a[mat-flat-button], a[mat-stroked-button] ", inputs: ["matButton"], exportAs: ["matButton", "matAnchor"] }, { kind: "component", type: MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }] }); }
1224
1352
  }
1225
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.0", ngImport: i0, type: EditSvgIconButtonComponent, decorators: [{
1353
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.0", ngImport: i0, type: EditButtonComponent, decorators: [{
1226
1354
  type: Component,
1227
- args: [{ selector: 'edit-svg-icon-button', imports: [MatButton, EditSolidSvgComponent], template: `
1355
+ args: [{ selector: 'edit-button', imports: [MatButton, MatIcon], template: `
1228
1356
  <button
1229
- type="{{ type() }}"
1230
1357
  class="{{ classes() }}"
1231
1358
  (click)="onClick.emit($event)"
1232
1359
  (focus)="onFocus.emit($event)"
@@ -1236,41 +1363,178 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.0", ngImpor
1236
1363
  [disabled]="disabled()"
1237
1364
  [type]="type()"
1238
1365
  [style]="style()"
1239
- [attr.data-cy]="'edit-svg-icon-button'"
1366
+ [attr.data-cy]="'edit-button'"
1240
1367
  mat-raised-button>
1241
- <edit-solid-svg></edit-solid-svg>
1368
+ <mat-icon>{{ icon() }}</mat-icon>
1242
1369
  {{ label() }}
1243
1370
  </button>
1244
1371
  `, 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"] }]
1245
1372
  }], ctorParameters: () => [] });
1246
1373
 
1247
- class ManageButtonComponent extends BaseButtonComponent {
1374
+ class EditButtonDirective extends BaseButtonDirective {
1248
1375
  constructor() {
1249
1376
  super();
1250
- this.label = input('Manage', ...(ngDevMode ? [{ debugName: "label" }] : []));
1251
- this.icon = input('settings', ...(ngDevMode ? [{ debugName: "icon" }] : []));
1252
- this.classes = input('mr-3 btn btn-secondary secondary-button', ...(ngDevMode ? [{ debugName: "classes" }] : []));
1377
+ this.icon = input('edit', ...(ngDevMode ? [{ debugName: "icon" }] : []));
1378
+ this.loadingLabel = input('Editing...', ...(ngDevMode ? [{ debugName: "loadingLabel" }] : []));
1379
+ this.elementRef.nativeElement.classList.add('primary-button');
1253
1380
  }
1254
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.0", ngImport: i0, type: ManageButtonComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1255
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "20.1.0", type: ManageButtonComponent, isStandalone: true, selector: "manage-button", inputs: { label: { classPropertyName: "label", publicName: "label", isSignal: true, isRequired: false, transformFunction: null }, icon: { classPropertyName: "icon", publicName: "icon", isSignal: true, isRequired: false, transformFunction: null }, classes: { classPropertyName: "classes", publicName: "classes", isSignal: true, isRequired: false, transformFunction: null } }, usesInheritance: true, ngImport: i0, template: `
1381
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.0", ngImport: i0, type: EditButtonDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
1382
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "20.1.0", type: EditButtonDirective, isStandalone: true, selector: "[editButton]", inputs: { icon: { classPropertyName: "icon", publicName: "icon", isSignal: true, isRequired: false, transformFunction: null }, loadingLabel: { classPropertyName: "loadingLabel", publicName: "loadingLabel", isSignal: true, isRequired: false, transformFunction: null } }, usesInheritance: true, ngImport: i0 }); }
1383
+ }
1384
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.0", ngImport: i0, type: EditButtonDirective, decorators: [{
1385
+ type: Directive,
1386
+ args: [{
1387
+ selector: '[editButton]',
1388
+ }]
1389
+ }], ctorParameters: () => [] });
1390
+
1391
+ class EditSvgIconButtonComponent extends BaseButtonComponent {
1392
+ constructor() {
1393
+ super();
1394
+ this.label = input('Edit', ...(ngDevMode ? [{ debugName: "label" }] : []));
1395
+ this.icon = input('edit', ...(ngDevMode ? [{ debugName: "icon" }] : []));
1396
+ this.classes = input('primary-button', ...(ngDevMode ? [{ debugName: "classes" }] : []));
1397
+ }
1398
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.0", ngImport: i0, type: EditSvgIconButtonComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1399
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "20.1.0", type: EditSvgIconButtonComponent, isStandalone: true, selector: "edit-svg-icon-button", inputs: { label: { classPropertyName: "label", publicName: "label", isSignal: true, isRequired: false, transformFunction: null }, icon: { classPropertyName: "icon", publicName: "icon", isSignal: true, isRequired: false, transformFunction: null }, classes: { classPropertyName: "classes", publicName: "classes", isSignal: true, isRequired: false, transformFunction: null } }, usesInheritance: true, ngImport: i0, template: `
1256
1400
  <button
1257
- mat-raised-button
1401
+ type="{{ type() }}"
1258
1402
  class="{{ classes() }}"
1259
1403
  (click)="onClick.emit($event)"
1260
1404
  (focus)="onFocus.emit($event)"
1261
1405
  (blur)="onBlur.emit($event)"
1406
+ (keydown)="onKeyDown.emit($event)"
1407
+ (keyup)="onKeyUp.emit($event)"
1262
1408
  [disabled]="disabled()"
1263
1409
  [type]="type()"
1264
1410
  [style]="style()"
1265
- [attr.data-cy]="'manage-button'">
1266
- <mat-icon>{{ icon() }}</mat-icon>
1411
+ [attr.data-cy]="'edit-svg-icon-button'"
1412
+ mat-raised-button>
1413
+ <edit-solid-svg></edit-solid-svg>
1267
1414
  {{ label() }}
1268
1415
  </button>
1269
- `, isInline: true, styles: [".primary-button,.primary-button:hover,.primary-button:active,.primary-button:visited{color:#fff!important;background-color:var(--primary-color)!important}.secondary-button,.secondary-button:hover,.secondary-button:active,.secondary-button:visited{color:#fff!important;background-color:var(--secondary-color)!important}.success-button,.success-button:hover,.success-button:active,.success-button:visited{color:#fff!important;background-color:var(--success-color)!important}.delete-button,.delete-button:hover,.delete-button:active,.success-button:visited{color:#fff!important;background-color:var(--delete-color)!important}\n"], dependencies: [{ kind: "component", type: MatButton, selector: " button[matButton], a[matButton], button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button], a[mat-button], a[mat-raised-button], a[mat-flat-button], a[mat-stroked-button] ", inputs: ["matButton"], exportAs: ["matButton", "matAnchor"] }, { kind: "component", type: MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }] }); }
1416
+ `, isInline: true, styles: [".primary-button,.primary-button:hover,.primary-button:active,.primary-button:visited{color:#fff!important;background-color:var(--primary-color)!important}.secondary-button,.secondary-button:hover,.secondary-button:active,.secondary-button:visited{color:#fff!important;background-color:var(--secondary-color)!important}.success-button,.success-button:hover,.success-button:active,.success-button:visited{color:#fff!important;background-color:var(--success-color)!important}.delete-button,.delete-button:hover,.delete-button:active,.success-button:visited{color:#fff!important;background-color:var(--delete-color)!important}\n"], dependencies: [{ kind: "component", type: MatButton, selector: " button[matButton], a[matButton], button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button], a[mat-button], a[mat-raised-button], a[mat-flat-button], a[mat-stroked-button] ", inputs: ["matButton"], exportAs: ["matButton", "matAnchor"] }, { kind: "component", type: EditSolidSvgComponent, selector: "edit-solid-svg" }] }); }
1270
1417
  }
1271
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.0", ngImport: i0, type: ManageButtonComponent, decorators: [{
1418
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.0", ngImport: i0, type: EditSvgIconButtonComponent, decorators: [{
1272
1419
  type: Component,
1273
- args: [{ selector: 'manage-button', imports: [MatButton, MatIcon], template: `
1420
+ args: [{ selector: 'edit-svg-icon-button', imports: [MatButton, EditSolidSvgComponent], template: `
1421
+ <button
1422
+ type="{{ type() }}"
1423
+ class="{{ classes() }}"
1424
+ (click)="onClick.emit($event)"
1425
+ (focus)="onFocus.emit($event)"
1426
+ (blur)="onBlur.emit($event)"
1427
+ (keydown)="onKeyDown.emit($event)"
1428
+ (keyup)="onKeyUp.emit($event)"
1429
+ [disabled]="disabled()"
1430
+ [type]="type()"
1431
+ [style]="style()"
1432
+ [attr.data-cy]="'edit-svg-icon-button'"
1433
+ mat-raised-button>
1434
+ <edit-solid-svg></edit-solid-svg>
1435
+ {{ label() }}
1436
+ </button>
1437
+ `, 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"] }]
1438
+ }], ctorParameters: () => [] });
1439
+
1440
+ class EditSvgIconButtonDirective {
1441
+ constructor() {
1442
+ this.elementRef = inject(ElementRef);
1443
+ this.viewContainerRef = inject(ViewContainerRef);
1444
+ this.originalText = signal('', ...(ngDevMode ? [{ debugName: "originalText" }] : []));
1445
+ this.iconComponentRef = signal(null, ...(ngDevMode ? [{ debugName: "iconComponentRef" }] : []));
1446
+ }
1447
+ ngOnInit() {
1448
+ // Add Material Design button classes
1449
+ this.elementRef.nativeElement.classList.add('mat-raised-button', 'primary-button');
1450
+ // Capture original text before creating icon
1451
+ this.originalText.set(this.elementRef.nativeElement.textContent?.trim() || 'Edit');
1452
+ // Set data-cy attribute for testing
1453
+ this.elementRef.nativeElement.setAttribute('data-cy', 'edit-svg-icon-button');
1454
+ // Update content to show icon and text
1455
+ this.updateContent();
1456
+ }
1457
+ updateContent() {
1458
+ // Create the EditSolidSvgComponent properly using Angular's component system
1459
+ const componentRef = this.viewContainerRef.createComponent(EditSolidSvgComponent);
1460
+ this.iconComponentRef.set(componentRef);
1461
+ // Clear the original content and append the icon component
1462
+ this.elementRef.nativeElement.textContent = '';
1463
+ this.elementRef.nativeElement.appendChild(componentRef.location.nativeElement);
1464
+ // Add text after the icon
1465
+ this.elementRef.nativeElement.appendChild(document.createTextNode(' ' + this.originalText()));
1466
+ }
1467
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.0", ngImport: i0, type: EditSvgIconButtonDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
1468
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.1.0", type: EditSvgIconButtonDirective, isStandalone: true, selector: "[editSvgIconButton]", ngImport: i0 }); }
1469
+ }
1470
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.0", ngImport: i0, type: EditSvgIconButtonDirective, decorators: [{
1471
+ type: Directive,
1472
+ args: [{
1473
+ selector: '[editSvgIconButton]',
1474
+ }]
1475
+ }] });
1476
+
1477
+ class ExcelExportButtonComponent {
1478
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.0", ngImport: i0, type: ExcelExportButtonComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1479
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.1.0", type: ExcelExportButtonComponent, isStandalone: true, selector: "excel-export-button", ngImport: i0, template: ` <button class="excel-export-button" mat-raised-button type="button" data-cy="excel-export-button">Excel</button> `, isInline: true, styles: [".primary-button,.primary-button:hover,.primary-button:active,.primary-button:visited{color:#fff!important;background-color:var(--primary-color)!important}.secondary-button,.secondary-button:hover,.secondary-button:active,.secondary-button:visited{color:#fff!important;background-color:var(--secondary-color)!important}.success-button,.success-button:hover,.success-button:active,.success-button:visited{color:#fff!important;background-color:var(--success-color)!important}.delete-button,.delete-button:hover,.delete-button:active,.success-button:visited{color:#fff!important;background-color:var(--delete-color)!important}\n", ".excel-export-button{margin-left:20px!important;margin-right:20px!important;width:100px;color:#fff!important;background-color:#006400!important;border-radius:24px!important}\n"], dependencies: [{ kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i1$3.MatButton, selector: " button[matButton], a[matButton], button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button], a[mat-button], a[mat-raised-button], a[mat-flat-button], a[mat-stroked-button] ", inputs: ["matButton"], exportAs: ["matButton", "matAnchor"] }] }); }
1480
+ }
1481
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.0", ngImport: i0, type: ExcelExportButtonComponent, decorators: [{
1482
+ type: Component,
1483
+ args: [{ selector: 'excel-export-button', imports: [MatButtonModule], template: ` <button class="excel-export-button" mat-raised-button type="button" data-cy="excel-export-button">Excel</button> `, styles: [".primary-button,.primary-button:hover,.primary-button:active,.primary-button:visited{color:#fff!important;background-color:var(--primary-color)!important}.secondary-button,.secondary-button:hover,.secondary-button:active,.secondary-button:visited{color:#fff!important;background-color:var(--secondary-color)!important}.success-button,.success-button:hover,.success-button:active,.success-button:visited{color:#fff!important;background-color:var(--success-color)!important}.delete-button,.delete-button:hover,.delete-button:active,.success-button:visited{color:#fff!important;background-color:var(--delete-color)!important}\n", ".excel-export-button{margin-left:20px!important;margin-right:20px!important;width:100px;color:#fff!important;background-color:#006400!important;border-radius:24px!important}\n"] }]
1484
+ }] });
1485
+
1486
+ class ExcelExportButtonDirective extends BaseButtonDirective {
1487
+ constructor() {
1488
+ super();
1489
+ const styles = [
1490
+ { property: 'margin-left', value: '20px' },
1491
+ { property: 'margin-right', value: '20px' },
1492
+ { property: 'width', value: '100px' },
1493
+ { property: 'color', value: 'white' },
1494
+ { property: 'background-color', value: 'darkgreen' },
1495
+ { property: 'border-radius', value: '24px' },
1496
+ ];
1497
+ styles.forEach((style) => {
1498
+ this.elementRef.nativeElement.style[style.property] = style.value;
1499
+ });
1500
+ }
1501
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.0", ngImport: i0, type: ExcelExportButtonDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
1502
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.1.0", type: ExcelExportButtonDirective, isStandalone: true, selector: "[excelExportButton]", usesInheritance: true, ngImport: i0 }); }
1503
+ }
1504
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.0", ngImport: i0, type: ExcelExportButtonDirective, decorators: [{
1505
+ type: Directive,
1506
+ args: [{
1507
+ selector: '[excelExportButton]',
1508
+ }]
1509
+ }], ctorParameters: () => [] });
1510
+
1511
+ class ManageButtonComponent extends BaseButtonComponent {
1512
+ constructor() {
1513
+ super();
1514
+ this.label = input('Manage', ...(ngDevMode ? [{ debugName: "label" }] : []));
1515
+ this.icon = input('settings', ...(ngDevMode ? [{ debugName: "icon" }] : []));
1516
+ this.classes = input('mr-3 btn btn-secondary secondary-button', ...(ngDevMode ? [{ debugName: "classes" }] : []));
1517
+ }
1518
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.0", ngImport: i0, type: ManageButtonComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1519
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "20.1.0", type: ManageButtonComponent, isStandalone: true, selector: "manage-button", inputs: { label: { classPropertyName: "label", publicName: "label", isSignal: true, isRequired: false, transformFunction: null }, icon: { classPropertyName: "icon", publicName: "icon", isSignal: true, isRequired: false, transformFunction: null }, classes: { classPropertyName: "classes", publicName: "classes", isSignal: true, isRequired: false, transformFunction: null } }, usesInheritance: true, ngImport: i0, template: `
1520
+ <button
1521
+ mat-raised-button
1522
+ class="{{ classes() }}"
1523
+ (click)="onClick.emit($event)"
1524
+ (focus)="onFocus.emit($event)"
1525
+ (blur)="onBlur.emit($event)"
1526
+ [disabled]="disabled()"
1527
+ [type]="type()"
1528
+ [style]="style()"
1529
+ [attr.data-cy]="'manage-button'">
1530
+ <mat-icon>{{ icon() }}</mat-icon>
1531
+ {{ label() }}
1532
+ </button>
1533
+ `, isInline: true, styles: [".primary-button,.primary-button:hover,.primary-button:active,.primary-button:visited{color:#fff!important;background-color:var(--primary-color)!important}.secondary-button,.secondary-button:hover,.secondary-button:active,.secondary-button:visited{color:#fff!important;background-color:var(--secondary-color)!important}.success-button,.success-button:hover,.success-button:active,.success-button:visited{color:#fff!important;background-color:var(--success-color)!important}.delete-button,.delete-button:hover,.delete-button:active,.success-button:visited{color:#fff!important;background-color:var(--delete-color)!important}\n"], dependencies: [{ kind: "component", type: MatButton, selector: " button[matButton], a[matButton], button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button], a[mat-button], a[mat-raised-button], a[mat-flat-button], a[mat-stroked-button] ", inputs: ["matButton"], exportAs: ["matButton", "matAnchor"] }, { kind: "component", type: MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }] }); }
1534
+ }
1535
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.0", ngImport: i0, type: ManageButtonComponent, decorators: [{
1536
+ type: Component,
1537
+ args: [{ selector: 'manage-button', imports: [MatButton, MatIcon], template: `
1274
1538
  <button
1275
1539
  mat-raised-button
1276
1540
  class="{{ classes() }}"
@@ -1287,6 +1551,133 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.0", ngImpor
1287
1551
  `, 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"] }]
1288
1552
  }], ctorParameters: () => [] });
1289
1553
 
1554
+ class ManageButtonDirective extends BaseButtonDirective {
1555
+ constructor() {
1556
+ super();
1557
+ this.icon = input('settings', ...(ngDevMode ? [{ debugName: "icon" }] : []));
1558
+ this.elementRef.nativeElement.classList.add('mr-3');
1559
+ this.elementRef.nativeElement.classList.add('secondary-button');
1560
+ }
1561
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.0", ngImport: i0, type: ManageButtonDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
1562
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "20.1.0", type: ManageButtonDirective, isStandalone: true, selector: "[manageButton]", inputs: { icon: { classPropertyName: "icon", publicName: "icon", isSignal: true, isRequired: false, transformFunction: null } }, usesInheritance: true, ngImport: i0 }); }
1563
+ }
1564
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.0", ngImport: i0, type: ManageButtonDirective, decorators: [{
1565
+ type: Directive,
1566
+ args: [{
1567
+ selector: '[manageButton]',
1568
+ }]
1569
+ }], ctorParameters: () => [] });
1570
+
1571
+ class PdfExportButtonComponent {
1572
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.0", ngImport: i0, type: PdfExportButtonComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1573
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.1.0", type: PdfExportButtonComponent, isStandalone: true, selector: "pdf-export-button", ngImport: i0, template: ` <button class="pdf-export-button" mat-raised-button type="button" data-cy="pdf-export-button">PDF</button> `, isInline: true, styles: [".pdf-export-button{margin-left:20px!important;width:100px;color:#fff!important;background-color:#a3071b!important;border-radius:24px!important}\n"], dependencies: [{ kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i1$3.MatButton, selector: " button[matButton], a[matButton], button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button], a[mat-button], a[mat-raised-button], a[mat-flat-button], a[mat-stroked-button] ", inputs: ["matButton"], exportAs: ["matButton", "matAnchor"] }] }); }
1574
+ }
1575
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.0", ngImport: i0, type: PdfExportButtonComponent, decorators: [{
1576
+ type: Component,
1577
+ args: [{ selector: 'pdf-export-button', imports: [MatButtonModule], template: ` <button class="pdf-export-button" mat-raised-button type="button" data-cy="pdf-export-button">PDF</button> `, styles: [".pdf-export-button{margin-left:20px!important;width:100px;color:#fff!important;background-color:#a3071b!important;border-radius:24px!important}\n"] }]
1578
+ }] });
1579
+
1580
+ class PdfExportButtonDirective extends BaseButtonDirective {
1581
+ constructor() {
1582
+ super();
1583
+ const styles = [
1584
+ { property: 'margin-left', value: '20px' },
1585
+ { property: 'width', value: '100px' },
1586
+ { property: 'color', value: 'white' },
1587
+ { property: 'background-color', value: '#a3071b' },
1588
+ { property: 'border-radius', value: '24px' },
1589
+ ];
1590
+ styles.forEach((style) => {
1591
+ this.elementRef.nativeElement.style[style.property] = style.value;
1592
+ });
1593
+ }
1594
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.0", ngImport: i0, type: PdfExportButtonDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
1595
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.1.0", type: PdfExportButtonDirective, isStandalone: true, selector: "[pdfExportButton]", usesInheritance: true, ngImport: i0 }); }
1596
+ }
1597
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.0", ngImport: i0, type: PdfExportButtonDirective, decorators: [{
1598
+ type: Directive,
1599
+ args: [{
1600
+ selector: '[pdfExportButton]',
1601
+ }]
1602
+ }], ctorParameters: () => [] });
1603
+
1604
+ class PrimaryButtonComponent extends BaseButtonComponent {
1605
+ constructor() {
1606
+ super();
1607
+ this.loadingLabel = input('Saving...', ...(ngDevMode ? [{ debugName: "loadingLabel" }] : []));
1608
+ this.label = input('Save', ...(ngDevMode ? [{ debugName: "label" }] : []));
1609
+ this.icon = input('save', ...(ngDevMode ? [{ debugName: "icon" }] : []));
1610
+ this.showIcon = input(false, ...(ngDevMode ? [{ debugName: "showIcon" }] : []));
1611
+ this.classes = input('btn-primary primary-button', ...(ngDevMode ? [{ debugName: "classes" }] : []));
1612
+ }
1613
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.0", ngImport: i0, type: PrimaryButtonComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1614
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.1.0", type: PrimaryButtonComponent, isStandalone: true, selector: "primary-button", inputs: { loadingLabel: { classPropertyName: "loadingLabel", publicName: "loadingLabel", isSignal: true, isRequired: false, transformFunction: null }, label: { classPropertyName: "label", publicName: "label", isSignal: true, isRequired: false, transformFunction: null }, icon: { classPropertyName: "icon", publicName: "icon", isSignal: true, isRequired: false, transformFunction: null }, showIcon: { classPropertyName: "showIcon", publicName: "showIcon", isSignal: true, isRequired: false, transformFunction: null }, classes: { classPropertyName: "classes", publicName: "classes", isSignal: true, isRequired: false, transformFunction: null } }, usesInheritance: true, ngImport: i0, template: `
1615
+ <button
1616
+ mat-raised-button
1617
+ class="btn {{ classes() }}"
1618
+ (click)="onClick.emit($event)"
1619
+ (focus)="onFocus.emit($event)"
1620
+ (blur)="onBlur.emit($event)"
1621
+ (keydown)="onKeyDown.emit($event)"
1622
+ (keyup)="onKeyUp.emit($event)"
1623
+ [disabled]="disabled() || loading()"
1624
+ [type]="type()"
1625
+ [style]="style()"
1626
+ [attr.data-cy]="'primary-button'">
1627
+ @if (loading()) {
1628
+ <span aria-hidden="true" class="spinner-border spinner-border-sm" role="status"></span>
1629
+ }
1630
+ @if (!loading() && showIcon()) {
1631
+ <mat-icon>{{ icon() }}</mat-icon>
1632
+ }
1633
+ {{ loading() ? loadingLabel() : label() }}
1634
+ </button>
1635
+ `, isInline: true, styles: [".primary-button,.primary-button:hover,.primary-button:active,.primary-button:visited{color:#fff!important;background-color:var(--primary-color)!important}.secondary-button,.secondary-button:hover,.secondary-button:active,.secondary-button:visited{color:#fff!important;background-color:var(--secondary-color)!important}.success-button,.success-button:hover,.success-button:active,.success-button:visited{color:#fff!important;background-color:var(--success-color)!important}.delete-button,.delete-button:hover,.delete-button:active,.success-button:visited{color:#fff!important;background-color:var(--delete-color)!important}\n"], dependencies: [{ kind: "component", type: MatButton, selector: " button[matButton], a[matButton], button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button], a[mat-button], a[mat-raised-button], a[mat-flat-button], a[mat-stroked-button] ", inputs: ["matButton"], exportAs: ["matButton", "matAnchor"] }, { kind: "component", type: MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }] }); }
1636
+ }
1637
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.0", ngImport: i0, type: PrimaryButtonComponent, decorators: [{
1638
+ type: Component,
1639
+ args: [{ selector: 'primary-button', imports: [MatButton, MatIcon], template: `
1640
+ <button
1641
+ mat-raised-button
1642
+ class="btn {{ classes() }}"
1643
+ (click)="onClick.emit($event)"
1644
+ (focus)="onFocus.emit($event)"
1645
+ (blur)="onBlur.emit($event)"
1646
+ (keydown)="onKeyDown.emit($event)"
1647
+ (keyup)="onKeyUp.emit($event)"
1648
+ [disabled]="disabled() || loading()"
1649
+ [type]="type()"
1650
+ [style]="style()"
1651
+ [attr.data-cy]="'primary-button'">
1652
+ @if (loading()) {
1653
+ <span aria-hidden="true" class="spinner-border spinner-border-sm" role="status"></span>
1654
+ }
1655
+ @if (!loading() && showIcon()) {
1656
+ <mat-icon>{{ icon() }}</mat-icon>
1657
+ }
1658
+ {{ loading() ? loadingLabel() : label() }}
1659
+ </button>
1660
+ `, 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"] }]
1661
+ }], ctorParameters: () => [] });
1662
+
1663
+ class PrimaryButtonDirective extends BaseButtonDirective {
1664
+ constructor() {
1665
+ super();
1666
+ this.icon = input('save', ...(ngDevMode ? [{ debugName: "icon" }] : []));
1667
+ this.loadingLabel = input('Saving...', ...(ngDevMode ? [{ debugName: "loadingLabel" }] : []));
1668
+ this.elementRef.nativeElement.classList.add('btn-primary');
1669
+ this.elementRef.nativeElement.classList.add('primary-button');
1670
+ }
1671
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.0", ngImport: i0, type: PrimaryButtonDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
1672
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "20.1.0", type: PrimaryButtonDirective, isStandalone: true, selector: "[primaryButton]", inputs: { icon: { classPropertyName: "icon", publicName: "icon", isSignal: true, isRequired: false, transformFunction: null }, loadingLabel: { classPropertyName: "loadingLabel", publicName: "loadingLabel", isSignal: true, isRequired: false, transformFunction: null } }, usesInheritance: true, ngImport: i0 }); }
1673
+ }
1674
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.0", ngImport: i0, type: PrimaryButtonDirective, decorators: [{
1675
+ type: Directive,
1676
+ args: [{
1677
+ selector: '[primaryButton]',
1678
+ }]
1679
+ }], ctorParameters: () => [] });
1680
+
1290
1681
  class SavePrimaryButtonComponent extends BaseButtonComponent {
1291
1682
  constructor() {
1292
1683
  super();
@@ -1345,6 +1736,24 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.0", ngImpor
1345
1736
  `, 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"] }]
1346
1737
  }], ctorParameters: () => [] });
1347
1738
 
1739
+ class SavePrimaryButtonDirective extends BaseButtonDirective {
1740
+ constructor() {
1741
+ super();
1742
+ this.icon = input('save', ...(ngDevMode ? [{ debugName: "icon" }] : []));
1743
+ this.loadingLabel = input('Saving...', ...(ngDevMode ? [{ debugName: "loadingLabel" }] : []));
1744
+ this.elementRef.nativeElement.classList.add('btn-primary');
1745
+ this.elementRef.nativeElement.classList.add('primary-button');
1746
+ }
1747
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.0", ngImport: i0, type: SavePrimaryButtonDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
1748
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "20.1.0", type: SavePrimaryButtonDirective, isStandalone: true, selector: "[savePrimaryButton]", inputs: { icon: { classPropertyName: "icon", publicName: "icon", isSignal: true, isRequired: false, transformFunction: null }, loadingLabel: { classPropertyName: "loadingLabel", publicName: "loadingLabel", isSignal: true, isRequired: false, transformFunction: null } }, usesInheritance: true, ngImport: i0 }); }
1749
+ }
1750
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.0", ngImport: i0, type: SavePrimaryButtonDirective, decorators: [{
1751
+ type: Directive,
1752
+ args: [{
1753
+ selector: '[savePrimaryButton]',
1754
+ }]
1755
+ }], ctorParameters: () => [] });
1756
+
1348
1757
  class SearchButtonComponent extends BaseButtonComponent {
1349
1758
  constructor() {
1350
1759
  super();
@@ -1461,6 +1870,23 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.0", ngImpor
1461
1870
  }]
1462
1871
  }], ctorParameters: () => [] });
1463
1872
 
1873
+ class SuccessButtonDirective extends BaseButtonDirective {
1874
+ constructor() {
1875
+ super();
1876
+ this.icon = input('save', ...(ngDevMode ? [{ debugName: "icon" }] : []));
1877
+ this.loadingLabel = input('Updating...', ...(ngDevMode ? [{ debugName: "loadingLabel" }] : []));
1878
+ this.elementRef.nativeElement.classList.add('success-button');
1879
+ }
1880
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.0", ngImport: i0, type: SuccessButtonDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
1881
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "20.1.0", type: SuccessButtonDirective, isStandalone: true, selector: "[successButton]", inputs: { icon: { classPropertyName: "icon", publicName: "icon", isSignal: true, isRequired: false, transformFunction: null }, loadingLabel: { classPropertyName: "loadingLabel", publicName: "loadingLabel", isSignal: true, isRequired: false, transformFunction: null } }, usesInheritance: true, ngImport: i0 }); }
1882
+ }
1883
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.0", ngImport: i0, type: SuccessButtonDirective, decorators: [{
1884
+ type: Directive,
1885
+ args: [{
1886
+ selector: '[successButton]',
1887
+ }]
1888
+ }], ctorParameters: () => [] });
1889
+
1464
1890
  class ViewButtonComponent extends BaseButtonComponent {
1465
1891
  constructor() {
1466
1892
  super();
@@ -1501,6 +1927,22 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.0", ngImpor
1501
1927
  `, 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"] }]
1502
1928
  }], ctorParameters: () => [] });
1503
1929
 
1930
+ class ViewButtonDirective extends BaseButtonDirective {
1931
+ constructor() {
1932
+ super();
1933
+ this.icon = input('visibility', ...(ngDevMode ? [{ debugName: "icon" }] : []));
1934
+ this.loadingLabel = input('Loading...', ...(ngDevMode ? [{ debugName: "loadingLabel" }] : []));
1935
+ }
1936
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.0", ngImport: i0, type: ViewButtonDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
1937
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "20.1.0", type: ViewButtonDirective, isStandalone: true, selector: "[viewButton]", inputs: { icon: { classPropertyName: "icon", publicName: "icon", isSignal: true, isRequired: false, transformFunction: null }, loadingLabel: { classPropertyName: "loadingLabel", publicName: "loadingLabel", isSignal: true, isRequired: false, transformFunction: null } }, usesInheritance: true, ngImport: i0 }); }
1938
+ }
1939
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.0", ngImport: i0, type: ViewButtonDirective, decorators: [{
1940
+ type: Directive,
1941
+ args: [{
1942
+ selector: '[viewButton]',
1943
+ }]
1944
+ }], ctorParameters: () => [] });
1945
+
1504
1946
  class ViewPrimaryButtonComponent extends BaseButtonComponent {
1505
1947
  constructor() {
1506
1948
  super();
@@ -1548,83 +1990,23 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.0", ngImpor
1548
1990
  `, 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"] }]
1549
1991
  }], ctorParameters: () => [] });
1550
1992
 
1551
- class PrimaryButtonComponent extends BaseButtonComponent {
1993
+ class ViewPrimaryButtonDirective extends BaseButtonDirective {
1552
1994
  constructor() {
1553
1995
  super();
1554
- this.loadingLabel = input('Saving...', ...(ngDevMode ? [{ debugName: "loadingLabel" }] : []));
1555
- this.label = input('Save', ...(ngDevMode ? [{ debugName: "label" }] : []));
1556
- this.icon = input('save', ...(ngDevMode ? [{ debugName: "icon" }] : []));
1557
- this.showIcon = input(false, ...(ngDevMode ? [{ debugName: "showIcon" }] : []));
1558
- this.classes = input('btn-primary primary-button', ...(ngDevMode ? [{ debugName: "classes" }] : []));
1996
+ this.icon = input('visibility', ...(ngDevMode ? [{ debugName: "icon" }] : []));
1997
+ this.elementRef.nativeElement.classList.add('btn-primary');
1998
+ this.elementRef.nativeElement.classList.add('primary-button');
1559
1999
  }
1560
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.0", ngImport: i0, type: PrimaryButtonComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1561
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.1.0", type: PrimaryButtonComponent, isStandalone: true, selector: "primary-button", inputs: { loadingLabel: { classPropertyName: "loadingLabel", publicName: "loadingLabel", isSignal: true, isRequired: false, transformFunction: null }, label: { classPropertyName: "label", publicName: "label", isSignal: true, isRequired: false, transformFunction: null }, icon: { classPropertyName: "icon", publicName: "icon", isSignal: true, isRequired: false, transformFunction: null }, showIcon: { classPropertyName: "showIcon", publicName: "showIcon", isSignal: true, isRequired: false, transformFunction: null }, classes: { classPropertyName: "classes", publicName: "classes", isSignal: true, isRequired: false, transformFunction: null } }, usesInheritance: true, ngImport: i0, template: `
1562
- <button
1563
- mat-raised-button
1564
- class="btn {{ classes() }}"
1565
- (click)="onClick.emit($event)"
1566
- (focus)="onFocus.emit($event)"
1567
- (blur)="onBlur.emit($event)"
1568
- (keydown)="onKeyDown.emit($event)"
1569
- (keyup)="onKeyUp.emit($event)"
1570
- [disabled]="disabled() || loading()"
1571
- [type]="type()"
1572
- [style]="style()"
1573
- [attr.data-cy]="'primary-button'">
1574
- @if (loading()) {
1575
- <span aria-hidden="true" class="spinner-border spinner-border-sm" role="status"></span>
1576
- }
1577
- @if (!loading() && showIcon()) {
1578
- <mat-icon>{{ icon() }}</mat-icon>
1579
- }
1580
- {{ loading() ? loadingLabel() : label() }}
1581
- </button>
1582
- `, isInline: true, styles: [".primary-button,.primary-button:hover,.primary-button:active,.primary-button:visited{color:#fff!important;background-color:var(--primary-color)!important}.secondary-button,.secondary-button:hover,.secondary-button:active,.secondary-button:visited{color:#fff!important;background-color:var(--secondary-color)!important}.success-button,.success-button:hover,.success-button:active,.success-button:visited{color:#fff!important;background-color:var(--success-color)!important}.delete-button,.delete-button:hover,.delete-button:active,.success-button:visited{color:#fff!important;background-color:var(--delete-color)!important}\n"], dependencies: [{ kind: "component", type: MatButton, selector: " button[matButton], a[matButton], button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button], a[mat-button], a[mat-raised-button], a[mat-flat-button], a[mat-stroked-button] ", inputs: ["matButton"], exportAs: ["matButton", "matAnchor"] }, { kind: "component", type: MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }] }); }
2000
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.0", ngImport: i0, type: ViewPrimaryButtonDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
2001
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "20.1.0", type: ViewPrimaryButtonDirective, isStandalone: true, selector: "[viewPrimaryButton]", inputs: { icon: { classPropertyName: "icon", publicName: "icon", isSignal: true, isRequired: false, transformFunction: null } }, usesInheritance: true, ngImport: i0 }); }
1583
2002
  }
1584
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.0", ngImport: i0, type: PrimaryButtonComponent, decorators: [{
1585
- type: Component,
1586
- args: [{ selector: 'primary-button', imports: [MatButton, MatIcon], template: `
1587
- <button
1588
- mat-raised-button
1589
- class="btn {{ classes() }}"
1590
- (click)="onClick.emit($event)"
1591
- (focus)="onFocus.emit($event)"
1592
- (blur)="onBlur.emit($event)"
1593
- (keydown)="onKeyDown.emit($event)"
1594
- (keyup)="onKeyUp.emit($event)"
1595
- [disabled]="disabled() || loading()"
1596
- [type]="type()"
1597
- [style]="style()"
1598
- [attr.data-cy]="'primary-button'">
1599
- @if (loading()) {
1600
- <span aria-hidden="true" class="spinner-border spinner-border-sm" role="status"></span>
1601
- }
1602
- @if (!loading() && showIcon()) {
1603
- <mat-icon>{{ icon() }}</mat-icon>
1604
- }
1605
- {{ loading() ? loadingLabel() : label() }}
1606
- </button>
1607
- `, 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"] }]
2003
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.0", ngImport: i0, type: ViewPrimaryButtonDirective, decorators: [{
2004
+ type: Directive,
2005
+ args: [{
2006
+ selector: '[viewPrimaryButton]',
2007
+ }]
1608
2008
  }], ctorParameters: () => [] });
1609
2009
 
1610
- class PdfExportButtonComponent {
1611
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.0", ngImport: i0, type: PdfExportButtonComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1612
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.1.0", type: PdfExportButtonComponent, isStandalone: true, selector: "pdf-export-button", ngImport: i0, template: ` <button class="pdf-export-button" mat-raised-button type="button" data-cy="pdf-export-button">PDF</button> `, isInline: true, styles: [".pdf-export-button{margin-left:20px!important;width:100px;color:#fff!important;background-color:#a3071b!important;border-radius:24px!important}\n"], dependencies: [{ kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i1$3.MatButton, selector: " button[matButton], a[matButton], button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button], a[mat-button], a[mat-raised-button], a[mat-flat-button], a[mat-stroked-button] ", inputs: ["matButton"], exportAs: ["matButton", "matAnchor"] }] }); }
1613
- }
1614
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.0", ngImport: i0, type: PdfExportButtonComponent, decorators: [{
1615
- type: Component,
1616
- args: [{ selector: 'pdf-export-button', imports: [MatButtonModule], template: ` <button class="pdf-export-button" mat-raised-button type="button" data-cy="pdf-export-button">PDF</button> `, styles: [".pdf-export-button{margin-left:20px!important;width:100px;color:#fff!important;background-color:#a3071b!important;border-radius:24px!important}\n"] }]
1617
- }] });
1618
-
1619
- class ExcelExportButtonComponent {
1620
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.0", ngImport: i0, type: ExcelExportButtonComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1621
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.1.0", type: ExcelExportButtonComponent, isStandalone: true, selector: "excel-export-button", ngImport: i0, template: ` <button class="excel-export-button" mat-raised-button type="button" data-cy="excel-export-button">Excel</button> `, isInline: true, styles: [".primary-button,.primary-button:hover,.primary-button:active,.primary-button:visited{color:#fff!important;background-color:var(--primary-color)!important}.secondary-button,.secondary-button:hover,.secondary-button:active,.secondary-button:visited{color:#fff!important;background-color:var(--secondary-color)!important}.success-button,.success-button:hover,.success-button:active,.success-button:visited{color:#fff!important;background-color:var(--success-color)!important}.delete-button,.delete-button:hover,.delete-button:active,.success-button:visited{color:#fff!important;background-color:var(--delete-color)!important}\n", ".excel-export-button{margin-left:20px!important;margin-right:20px!important;width:100px;color:#fff!important;background-color:#006400!important;border-radius:24px!important}\n"], dependencies: [{ kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i1$3.MatButton, selector: " button[matButton], a[matButton], button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button], a[mat-button], a[mat-raised-button], a[mat-flat-button], a[mat-stroked-button] ", inputs: ["matButton"], exportAs: ["matButton", "matAnchor"] }] }); }
1622
- }
1623
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.0", ngImport: i0, type: ExcelExportButtonComponent, decorators: [{
1624
- type: Component,
1625
- args: [{ selector: 'excel-export-button', imports: [MatButtonModule], template: ` <button class="excel-export-button" mat-raised-button type="button" data-cy="excel-export-button">Excel</button> `, styles: [".primary-button,.primary-button:hover,.primary-button:active,.primary-button:visited{color:#fff!important;background-color:var(--primary-color)!important}.secondary-button,.secondary-button:hover,.secondary-button:active,.secondary-button:visited{color:#fff!important;background-color:var(--secondary-color)!important}.success-button,.success-button:hover,.success-button:active,.success-button:visited{color:#fff!important;background-color:var(--success-color)!important}.delete-button,.delete-button:hover,.delete-button:active,.success-button:visited{color:#fff!important;background-color:var(--delete-color)!important}\n", ".excel-export-button{margin-left:20px!important;margin-right:20px!important;width:100px;color:#fff!important;background-color:#006400!important;border-radius:24px!important}\n"] }]
1626
- }] });
1627
-
1628
2010
  class ConfirmDialogComponent {
1629
2011
  constructor(data, dialogRef) {
1630
2012
  this.data = data;
@@ -1839,51 +2221,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.0", ngImpor
1839
2221
  }]
1840
2222
  }] });
1841
2223
 
1842
- /**
1843
- * A core store class that can be used to store any object
1844
- *
1845
- * @author Pavan Kumar Jadda
1846
- * @since 17.1.0
1847
- */
1848
- class Store {
1849
- constructor() {
1850
- this._data = signal(null, ...(ngDevMode ? [{ debugName: "_data" }] : []));
1851
- // The data property is a computed property that returns the value of the _data signal
1852
- this.data = computed(() => this._data(), ...(ngDevMode ? [{ debugName: "data" }] : []));
1853
- }
1854
- // Add initialization method
1855
- initialize(initialData) {
1856
- this._data.set(initialData);
1857
- }
1858
- /**
1859
- * Update the data in the store with the new data
1860
- *
1861
- * @param newData The new data to be stored/updated
1862
- *
1863
- * @author Pavan Kumar Jadda
1864
- * @since 17.1.0
1865
- */
1866
- update(newData) {
1867
- this._data.set(newData);
1868
- }
1869
- // Add clear method
1870
- clear() {
1871
- this._data.set(null);
1872
- }
1873
- // Add getter with null check
1874
- getData() {
1875
- return this._data();
1876
- }
1877
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.0", ngImport: i0, type: Store, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
1878
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.1.0", ngImport: i0, type: Store, providedIn: 'root' }); }
1879
- }
1880
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.0", ngImport: i0, type: Store, decorators: [{
1881
- type: Injectable,
1882
- args: [{
1883
- providedIn: 'root',
1884
- }]
1885
- }] });
1886
-
1887
2224
  /**
1888
2225
  * A core entity store class that stores a list of objects. This has list of methods to perform CRUD operations on the list of objects.
1889
2226
  *
@@ -1971,6 +2308,51 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.0", ngImpor
1971
2308
  }]
1972
2309
  }] });
1973
2310
 
2311
+ /**
2312
+ * A core store class that can be used to store any object
2313
+ *
2314
+ * @author Pavan Kumar Jadda
2315
+ * @since 17.1.0
2316
+ */
2317
+ class Store {
2318
+ constructor() {
2319
+ this._data = signal(null, ...(ngDevMode ? [{ debugName: "_data" }] : []));
2320
+ // The data property is a computed property that returns the value of the _data signal
2321
+ this.data = computed(() => this._data(), ...(ngDevMode ? [{ debugName: "data" }] : []));
2322
+ }
2323
+ // Add initialization method
2324
+ initialize(initialData) {
2325
+ this._data.set(initialData);
2326
+ }
2327
+ /**
2328
+ * Update the data in the store with the new data
2329
+ *
2330
+ * @param newData The new data to be stored/updated
2331
+ *
2332
+ * @author Pavan Kumar Jadda
2333
+ * @since 17.1.0
2334
+ */
2335
+ update(newData) {
2336
+ this._data.set(newData);
2337
+ }
2338
+ // Add clear method
2339
+ clear() {
2340
+ this._data.set(null);
2341
+ }
2342
+ // Add getter with null check
2343
+ getData() {
2344
+ return this._data();
2345
+ }
2346
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.0", ngImport: i0, type: Store, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
2347
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.1.0", ngImport: i0, type: Store, providedIn: 'root' }); }
2348
+ }
2349
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.0", ngImport: i0, type: Store, decorators: [{
2350
+ type: Injectable,
2351
+ args: [{
2352
+ providedIn: 'root',
2353
+ }]
2354
+ }] });
2355
+
1974
2356
  /**
1975
2357
  * Initialize Loading or Update ProgressState
1976
2358
  *
@@ -2054,5 +2436,5 @@ const markError = (progressState, message) => {
2054
2436
  * Generated bundle index. Do not edit.
2055
2437
  */
2056
2438
 
2057
- export { AlertComponent, AutocompleteComponent, BsLinkButtonComponent, ConfirmDialogComponent, DeleteButtonComponent, EditBsButtonComponent, EditButtonComponent, EditSolidSvgComponent, EditSvgIconButtonComponent, EntityStore, ExcelExportButtonComponent, ManageButtonComponent, MatSnackBarService, NgxPrintDirective, NgxSpinnerComponent, NgxSpinnerService, PdfExportButtonComponent, PreventMultipleClicksDirective, PrimaryButtonComponent, SavePrimaryButtonComponent, SearchButtonComponent, SpinnerComponent, Store, SuccessButtonComponent, ViewButtonComponent, ViewPrimaryButtonComponent, initializeState, markError, markLoading, markSuccess };
2439
+ export { AlertComponent, AutocompleteComponent, BaseButtonDirective, BsLinkButtonComponent, BsLinkButtonDirective, CloseButtonDirective, ConfirmDialogComponent, DeleteButtonComponent, DeleteButtonDirective, EditBsButtonComponent, EditBsButtonDirective, EditButtonComponent, EditButtonDirective, EditSolidSvgComponent, EditSvgIconButtonComponent, EditSvgIconButtonDirective, EntityStore, ExcelExportButtonComponent, ExcelExportButtonDirective, ManageButtonComponent, ManageButtonDirective, MatSnackBarService, NgxPrintDirective, NgxSpinnerComponent, NgxSpinnerService, PdfExportButtonComponent, PdfExportButtonDirective, PreventMultipleClicksDirective, PrimaryButtonComponent, PrimaryButtonDirective, SavePrimaryButtonComponent, SavePrimaryButtonDirective, SearchButtonComponent, SpinnerComponent, Store, SuccessButtonComponent, SuccessButtonDirective, ViewButtonComponent, ViewButtonDirective, ViewPrimaryButtonComponent, ViewPrimaryButtonDirective, initializeState, markError, markLoading, markSuccess };
2058
2440
  //# sourceMappingURL=js-smart-ng-kit.mjs.map