@js-smart/ng-kit 19.5.0 → 19.7.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,5 +1,5 @@
1
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';
2
+ import { input, signal, Component, Injectable, Pipe, Input, ViewChild, HostListener, output, forwardRef, Optional, Directive, EventEmitter, Output, Inject, computed } from '@angular/core';
3
3
  import { CommonModule, AsyncPipe } from '@angular/common';
4
4
  import * as i1 from '@angular/material/progress-spinner';
5
5
  import { MatProgressSpinnerModule } from '@angular/material/progress-spinner';
@@ -8,17 +8,17 @@ import { filter, takeUntil, startWith, map } from 'rxjs/operators';
8
8
  import { trigger, state, style, transition, animate } from '@angular/animations';
9
9
  import * as i1$1 from '@angular/platform-browser';
10
10
  import * as i1$2 from '@angular/forms';
11
- import { ReactiveFormsModule } from '@angular/forms';
11
+ import { FormControl, NG_VALUE_ACCESSOR, ReactiveFormsModule } from '@angular/forms';
12
12
  import * as i3 from '@angular/material/autocomplete';
13
13
  import { MatAutocompleteModule } from '@angular/material/autocomplete';
14
- import * as i2 from '@angular/material/form-field';
15
- import { MatFormFieldModule } from '@angular/material/form-field';
16
- import * as i5 from '@angular/material/input';
17
- import { MatInputModule } from '@angular/material/input';
18
14
  import * as i1$3 from '@angular/material/button';
19
15
  import { MatButtonModule, MatAnchor, MatButton } from '@angular/material/button';
16
+ import * as i2 from '@angular/material/form-field';
17
+ import { MatFormFieldModule } from '@angular/material/form-field';
20
18
  import * as i1$4 from '@angular/material/icon';
21
19
  import { MatIconModule, MatIcon } from '@angular/material/icon';
20
+ import * as i5 from '@angular/material/input';
21
+ import { MatInputModule } from '@angular/material/input';
22
22
  import * as i4 from '@angular/material/core';
23
23
  import * as i1$5 from '@angular/material/dialog';
24
24
  import { MAT_DIALOG_DATA, MatDialogModule } from '@angular/material/dialog';
@@ -460,6 +460,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.0", ngImpor
460
460
  class AutocompleteComponent {
461
461
  constructor(cdRef) {
462
462
  this.cdRef = cdRef;
463
+ /**
464
+ * Internal form control for the autocomplete
465
+ */
466
+ this.control = new FormControl('');
463
467
  /**
464
468
  * Label of the AutoComplete
465
469
  */
@@ -492,33 +496,46 @@ class AutocompleteComponent {
492
496
  * Specifies if the autocomplete is required. Default is not required.
493
497
  */
494
498
  this.required = input(false);
499
+ /**
500
+ * Specifies if the autocomplete is disabled. Default is not required.
501
+ */
502
+ this.disabled = input(false);
495
503
  /**
496
504
  * List of Objects that need to be bind and searched for
497
505
  */
498
506
  this.data = input();
499
507
  /**
500
508
  * Emit selected value on selection changes
501
- *
502
- * @author Pavan Kumar Jadda
503
- * @since 13.0.3
504
509
  */
505
510
  this.onSelectionChange = output();
506
511
  /**
507
512
  * BehaviorSubject that shows the current active arrow icon
508
513
  */
509
514
  this.arrowIconSubject = new BehaviorSubject('arrow_drop_down');
515
+ // ControlValueAccessor implementation
516
+ this.onChange = () => { };
517
+ this.onTouched = () => { };
518
+ }
519
+ writeValue(value) {
520
+ this.value = value;
521
+ this.control.setValue(value, { emitEvent: false });
522
+ }
523
+ registerOnChange(fn) {
524
+ this.onChange = fn;
525
+ // Forward value changes from internal control to parent form
526
+ this.control.valueChanges.subscribe((value) => fn(value));
527
+ }
528
+ registerOnTouched(fn) {
529
+ this.onTouched = fn;
530
+ }
531
+ setDisabledState(isDisabled) {
532
+ isDisabled ? this.control.disable() : this.control.enable();
510
533
  }
511
534
  ngAfterContentChecked() {
512
535
  this.cdRef.detectChanges();
513
536
  }
514
- /**
515
- * Define autocomplete search filter on search text changes
516
- *
517
- * @author Pavan Kumar Jadda
518
- * @since 12.0.0
519
- */
520
537
  ngOnInit() {
521
- 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) => {
538
+ this.filteredOptions = this.control.valueChanges.pipe(startWith(''), map((value) => (typeof value === 'string' ? value : value !== null ? value[this.bindLabel()] : '')), map((propertyName) => this.data()?.filter((option) => {
522
539
  return typeof option === 'string'
523
540
  ? option?.toLowerCase().indexOf(propertyName.toLowerCase()) === 0
524
541
  : option[this.bindLabel()]?.toLowerCase().indexOf(propertyName.toLowerCase()) === 0;
@@ -527,23 +544,12 @@ class AutocompleteComponent {
527
544
  ngOnChanges(_changes) {
528
545
  this.displayFn = this.displayFn.bind(this);
529
546
  }
530
- /**
531
- * Clear input and Reset autocomplete form control
532
- *
533
- * @author Pavan Kumar Jadda
534
- * @since 12.0.0
535
- */
536
547
  clearInput(evt) {
537
548
  evt.stopPropagation();
538
- this.inputFormGroup.get('autocomplete')?.reset();
549
+ this.control.reset();
550
+ this.onChange(null);
539
551
  this.inputAutoComplete?.nativeElement.focus();
540
552
  }
541
- /**
542
- * Open or Close panel
543
- *
544
- * @author Pavan Kumar Jadda
545
- * @since 12.0.0
546
- */
547
553
  openOrClosePanel(evt, trigger) {
548
554
  evt.stopPropagation();
549
555
  if (trigger.panelOpen)
@@ -551,12 +557,6 @@ class AutocompleteComponent {
551
557
  else
552
558
  trigger.openPanel();
553
559
  }
554
- /**
555
- * Display function that is used to show the values
556
- *
557
- * @author Pavan Kumar Jadda
558
- * @since 12.0.0
559
- */
560
560
  displayFn(object) {
561
561
  if (this.displayWith !== undefined && this.displayWith !== null && typeof this.displayWith === 'function') {
562
562
  this.displayFn = this.displayWith.bind(this);
@@ -568,18 +568,19 @@ class AutocompleteComponent {
568
568
  return object && object[this.bindLabel()] ? object[this.bindLabel()] : '';
569
569
  }
570
570
  }
571
- /**
572
- * Emit selected value
573
- * @param $event - Event emitted by autocomplete
574
- *
575
- * @author Pavan Kumar Jadda
576
- * @since 13.0.3
577
- */
578
571
  emitSelectedValue($event) {
579
572
  this.onSelectionChange.emit($event.source.value);
573
+ this.onChange($event.source.value);
574
+ this.onTouched();
580
575
  }
581
576
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.0", ngImport: i0, type: AutocompleteComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
582
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.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", "disabledInteractive"], 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" }] }); }
577
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.0", type: AutocompleteComponent, isStandalone: true, selector: "autocomplete, lib-autocomplete", inputs: { label: { classPropertyName: "label", publicName: "label", isSignal: true, isRequired: false, transformFunction: null }, placeHolder: { classPropertyName: "placeHolder", publicName: "placeHolder", isSignal: true, isRequired: false, transformFunction: null }, appearance: { classPropertyName: "appearance", publicName: "appearance", isSignal: true, isRequired: false, transformFunction: null }, classes: { classPropertyName: "classes", publicName: "classes", isSignal: true, isRequired: false, transformFunction: null }, bindLabel: { classPropertyName: "bindLabel", publicName: "bindLabel", isSignal: true, isRequired: false, transformFunction: null }, bindValue: { classPropertyName: "bindValue", publicName: "bindValue", isSignal: true, isRequired: false, transformFunction: null }, displayWith: { classPropertyName: "displayWith", publicName: "displayWith", isSignal: false, isRequired: false, transformFunction: null }, required: { classPropertyName: "required", publicName: "required", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, data: { classPropertyName: "data", publicName: "data", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { onSelectionChange: "onSelectionChange" }, providers: [
578
+ {
579
+ provide: NG_VALUE_ACCESSOR,
580
+ useExisting: forwardRef(() => AutocompleteComponent),
581
+ multi: true,
582
+ },
583
+ ], viewQueries: [{ propertyName: "inputAutoComplete", first: true, predicate: ["inputAutoComplete"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<div>\n\t<mat-form-field appearance=\"fill\" class=\"{{ classes() }}\">\n\t\t<mat-label>{{ label() }}</mat-label>\n\t\t<input\n\t\t\t#inputAutoComplete\n\t\t\t#trigger=\"matAutocompleteTrigger\"\n\t\t\t[matAutocomplete]=\"auto\"\n\t\t\t[placeholder]=\"placeHolder()\"\n\t\t\t[required]=\"required()\"\n\t\t\t[formControl]=\"control\"\n\t\t\tmatInput\n\t\t\ttype=\"text\" />\n\n\t\t<div matSuffix style=\"display: flex\">\n @if (control.value) {\n\t\t\t\t<button (click)=\"clearInput($event)\" aria-label=\"Clear\" mat-icon-button type=\"button\">\n\t\t\t\t\t<mat-icon>clear</mat-icon>\n\t\t\t\t</button>\n\t\t\t}\n\t\t\t<button (click)=\"openOrClosePanel($event, trigger)\" aria-label=\"Clear\" mat-icon-button type=\"button\">\n\t\t\t\t<mat-icon>{{ arrowIconSubject.getValue() }}</mat-icon>\n\t\t\t</button>\n\t\t</div>\n\n\t\t<mat-autocomplete\n\t\t\t#auto=\"matAutocomplete\"\n\t\t\t(closed)=\"arrowIconSubject.next('arrow_drop_down')\"\n\t\t\t(opened)=\"arrowIconSubject.next('arrow_drop_up')\"\n\t\t\t(optionSelected)=\"arrowIconSubject.next('arrow_drop_down')\"\n\t\t\t[displayWith]=\"displayFn\">\n\t\t\t@for (option of filteredOptions | async; track option[bindValue()]) {\n\t\t\t\t<mat-option (onSelectionChange)=\"emitSelectedValue($event)\" [value]=\"option\">\n\t\t\t\t\t@if ((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.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i1$2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "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", "disabledInteractive"], 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" }] }); }
583
584
  }
584
585
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.0", ngImport: i0, type: AutocompleteComponent, decorators: [{
585
586
  type: Component,
@@ -592,12 +593,16 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.0", ngImpor
592
593
  MatButtonModule,
593
594
  MatIconModule,
594
595
  AsyncPipe,
595
- ], 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" }]
596
+ ], providers: [
597
+ {
598
+ provide: NG_VALUE_ACCESSOR,
599
+ useExisting: forwardRef(() => AutocompleteComponent),
600
+ multi: true,
601
+ },
602
+ ], template: "<div>\n\t<mat-form-field appearance=\"fill\" class=\"{{ classes() }}\">\n\t\t<mat-label>{{ label() }}</mat-label>\n\t\t<input\n\t\t\t#inputAutoComplete\n\t\t\t#trigger=\"matAutocompleteTrigger\"\n\t\t\t[matAutocomplete]=\"auto\"\n\t\t\t[placeholder]=\"placeHolder()\"\n\t\t\t[required]=\"required()\"\n\t\t\t[formControl]=\"control\"\n\t\t\tmatInput\n\t\t\ttype=\"text\" />\n\n\t\t<div matSuffix style=\"display: flex\">\n @if (control.value) {\n\t\t\t\t<button (click)=\"clearInput($event)\" aria-label=\"Clear\" mat-icon-button type=\"button\">\n\t\t\t\t\t<mat-icon>clear</mat-icon>\n\t\t\t\t</button>\n\t\t\t}\n\t\t\t<button (click)=\"openOrClosePanel($event, trigger)\" aria-label=\"Clear\" mat-icon-button type=\"button\">\n\t\t\t\t<mat-icon>{{ arrowIconSubject.getValue() }}</mat-icon>\n\t\t\t</button>\n\t\t</div>\n\n\t\t<mat-autocomplete\n\t\t\t#auto=\"matAutocomplete\"\n\t\t\t(closed)=\"arrowIconSubject.next('arrow_drop_down')\"\n\t\t\t(opened)=\"arrowIconSubject.next('arrow_drop_up')\"\n\t\t\t(optionSelected)=\"arrowIconSubject.next('arrow_drop_down')\"\n\t\t\t[displayWith]=\"displayFn\">\n\t\t\t@for (option of filteredOptions | async; track option[bindValue()]) {\n\t\t\t\t<mat-option (onSelectionChange)=\"emitSelectedValue($event)\" [value]=\"option\">\n\t\t\t\t\t@if ((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" }]
596
603
  }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }], propDecorators: { inputAutoComplete: [{
597
604
  type: ViewChild,
598
605
  args: ['inputAutoComplete']
599
- }], inputFormGroup: [{
600
- type: Input
601
606
  }], displayWith: [{
602
607
  type: Input
603
608
  }, {
@@ -996,7 +1001,7 @@ class BsLinkButtonComponent extends BaseButtonComponent {
996
1001
  [disabled]="disabled()"
997
1002
  [type]="type()"
998
1003
  [style]="style()"
999
- [attr.data-cy]="'edit-link-button'"
1004
+ [attr.data-cy]="'bs-link-button'"
1000
1005
  mat-button>
1001
1006
  <mat-icon>{{ icon() }}</mat-icon>
1002
1007
  {{ label() }}
@@ -1017,7 +1022,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.0", ngImpor
1017
1022
  [disabled]="disabled()"
1018
1023
  [type]="type()"
1019
1024
  [style]="style()"
1020
- [attr.data-cy]="'edit-link-button'"
1025
+ [attr.data-cy]="'bs-link-button'"
1021
1026
  mat-button>
1022
1027
  <mat-icon>{{ icon() }}</mat-icon>
1023
1028
  {{ label() }}
@@ -1841,6 +1846,126 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.0", ngImpor
1841
1846
  }]
1842
1847
  }], ctorParameters: () => [{ type: i1$6.MatSnackBar }] });
1843
1848
 
1849
+ /**
1850
+ * A core store class that can be used to store any object
1851
+ *
1852
+ * @author Pavan Kumar Jadda
1853
+ * @since 17.1.0
1854
+ */
1855
+ class Store {
1856
+ constructor() {
1857
+ this._data = signal(undefined);
1858
+ // The data property is a computed property that returns the value of the _data signal
1859
+ this.data = computed(() => this._data());
1860
+ }
1861
+ /**
1862
+ * Update the data in the store with the new data
1863
+ *
1864
+ * @param newData The new data to be stored/updated
1865
+ *
1866
+ * @author Pavan Kumar Jadda
1867
+ * @since 17.1.0
1868
+ */
1869
+ update(newData) {
1870
+ this._data.set(newData);
1871
+ }
1872
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.0", ngImport: i0, type: Store, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
1873
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.0", ngImport: i0, type: Store, providedIn: 'root' }); }
1874
+ }
1875
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.0", ngImport: i0, type: Store, decorators: [{
1876
+ type: Injectable,
1877
+ args: [{
1878
+ providedIn: 'root',
1879
+ }]
1880
+ }] });
1881
+
1882
+ /**
1883
+ * 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.
1884
+ *
1885
+ * @author Pavan Kumar Jadda
1886
+ * @since 17.1.0
1887
+ */
1888
+ class EntityStore {
1889
+ constructor() {
1890
+ this._data = signal([]);
1891
+ // The data property is a computed property that returns the value of the _data signal
1892
+ this.data = computed(() => this._data());
1893
+ }
1894
+ /**
1895
+ * Find an item in the store by id
1896
+ *
1897
+ * @param id The id of the item to be found
1898
+ *
1899
+ * @returns The item if found, undefined otherwise
1900
+ *
1901
+ * @author Pavan Kumar Jadda
1902
+ * @since 17.1.0
1903
+ */
1904
+ findById(id) {
1905
+ return this._data().find((item) => item.id === id);
1906
+ }
1907
+ /**
1908
+ * Set the list of items in the store with the new data
1909
+ *
1910
+ * @param data The new list of items to be stored
1911
+ *
1912
+ * @author Pavan Kumar Jadda
1913
+ * @since 17.1.0
1914
+ */
1915
+ setData(data) {
1916
+ this._data.set(data);
1917
+ }
1918
+ /**
1919
+ * Update an item in the store. If the item does not exist in new list, add it. Otherwise, update it.
1920
+ *
1921
+ * @param data The item to added or updated
1922
+ *
1923
+ * @author Pavan Kumar Jadda
1924
+ * @since 17.1.0
1925
+ */
1926
+ upsert(data) {
1927
+ this._data.update((currentData) => {
1928
+ const dataMap = new Map(currentData.map((item) => [item.id, item]));
1929
+ dataMap.set(data.id, data);
1930
+ return Array.from(dataMap.values());
1931
+ });
1932
+ }
1933
+ /**
1934
+ * Update or insert the given list of items in the store
1935
+ *
1936
+ * @param newData The list of items to be updated or inserted
1937
+ *
1938
+ * @author Pavan Kumar Jadda
1939
+ * @since 17.1.0
1940
+ */
1941
+ upsertMulti(newData) {
1942
+ this._data.update((currentData) => {
1943
+ const dataMap = new Map(currentData.map((item) => [item.id, item]));
1944
+ newData.forEach((newItem) => dataMap.set(newItem.id, newItem));
1945
+ return Array.from(dataMap.values());
1946
+ });
1947
+ }
1948
+ /**
1949
+ * Remove an item from the store
1950
+ *
1951
+ * @param id The id of the item to be removed
1952
+ *
1953
+ * @author Pavan Kumar Jadda
1954
+ * @since 17.1.0
1955
+ */
1956
+ remove(id) {
1957
+ this._data.update((currentData) => currentData.filter((item) => item.id !== id));
1958
+ }
1959
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.0", ngImport: i0, type: EntityStore, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
1960
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.0", ngImport: i0, type: EntityStore, providedIn: 'root' }); }
1961
+ }
1962
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.0", ngImport: i0, type: EntityStore, decorators: [{
1963
+ type: Injectable,
1964
+ args: [{
1965
+ providedIn: 'root',
1966
+ }]
1967
+ }] });
1968
+
1844
1969
  /**
1845
1970
  * Initialize Loading or Update ProgressState
1846
1971
  *
@@ -1924,5 +2049,5 @@ const markError = (progressState, message) => {
1924
2049
  * Generated bundle index. Do not edit.
1925
2050
  */
1926
2051
 
1927
- 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 };
2052
+ 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 };
1928
2053
  //# sourceMappingURL=js-smart-ng-kit.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"js-smart-ng-kit.mjs","sources":["../../../projects/ng-kit/src/lib/components/alert/alert.component.ts","../../../projects/ng-kit/src/lib/components/alert/alert.component.html","../../../projects/ng-kit/src/lib/components/spinner/spinner.component.ts","../../../projects/ng-kit/src/lib/components/spinner/spinner.component.html","../../../projects/ng-kit/src/lib/components/ngx-spinner/ngx-spinner.enum.ts","../../../projects/ng-kit/src/lib/components/ngx-spinner/ngx-spinner.service.ts","../../../projects/ng-kit/src/lib/components/ngx-spinner/safe-html.pipe.ts","../../../projects/ng-kit/src/lib/components/ngx-spinner/ngx-spinner.component.ts","../../../projects/ng-kit/src/lib/components/ngx-spinner/ngx-spinner.component.html","../../../projects/ng-kit/src/lib/pipes/type-of.pipe.ts","../../../projects/ng-kit/src/lib/components/autocomplete/autocomplete.component.ts","../../../projects/ng-kit/src/lib/components/autocomplete/autocomplete.component.html","../../../projects/ng-kit/src/lib/directives/ngx-print.directive.ts","../../../projects/ng-kit/src/lib/directives/prevent-multiple-clicks.directive.ts","../../../projects/ng-kit/src/lib/components/buttons/base-button/base-button.component.ts","../../../projects/ng-kit/src/lib/components/buttons/bs-link-button/bs-link-button.component.ts","../../../projects/ng-kit/src/lib/components/buttons/delete-button/delete-button.component.ts","../../../projects/ng-kit/src/lib/components/buttons/edit-button/edit-button.component.ts","../../../projects/ng-kit/src/lib/svg-icons/edit-solid-svg/edit-solid-svg.component.ts","../../../projects/ng-kit/src/lib/components/buttons/edit-bs-button/edit-bs-button.component.ts","../../../projects/ng-kit/src/lib/components/buttons/edit-svg-icon-button/edit-svg-icon-button.component.ts","../../../projects/ng-kit/src/lib/components/buttons/manage-button/manage-button.component.ts","../../../projects/ng-kit/src/lib/components/buttons/save-primary-button/save-primary-button.component.ts","../../../projects/ng-kit/src/lib/components/buttons/search-button/search-button.component.ts","../../../projects/ng-kit/src/lib/components/buttons/success-button/success-button.component.ts","../../../projects/ng-kit/src/lib/components/buttons/view-button/view-button.component.ts","../../../projects/ng-kit/src/lib/components/buttons/view-primary-button/view-primary-button.component.ts","../../../projects/ng-kit/src/lib/components/buttons/primary-button/primary-button.component.ts","../../../projects/ng-kit/src/lib/components/buttons/pdf-export-button/pdf-export-button.component.ts","../../../projects/ng-kit/src/lib/components/buttons/excel-export-button/excel-export-button.component.ts","../../../projects/ng-kit/src/lib/components/confirm-dialog/confirm-dialog.component.ts","../../../projects/ng-kit/src/lib/components/snack-bar/error-snack-bar/error-snack-bar.component.ts","../../../projects/ng-kit/src/lib/components/snack-bar/success-snack-bar/success-snack-bar.component.ts","../../../projects/ng-kit/src/lib/services/mat-snack-bar.service.ts","../../../projects/ng-kit/src/lib/util/progress-util.ts","../../../projects/ng-kit/src/js-smart-ng-kit.ts"],"sourcesContent":["import { ChangeDetectorRef, Component, OnInit, input, signal } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\n/**\n * Boostrap Alert component that can be used to alert messages to the user\n *\n * @author Pavan Kumar Jadda\n * @since 12.0.0\n */\n@Component({\n selector: 'lib-alert, alert',\n imports: [CommonModule],\n templateUrl: './alert.component.html',\n styleUrls: ['./alert.component.scss']\n})\nexport class AlertComponent implements OnInit {\n\t/**\n\t * Type of the BootStrap Alert. Following values are supported. See BootStrap docs for more information\n\t * <pre>\n\t * 1. info\n\t * 2. primary\n\t * 3. secondary\n\t * 4. success\n\t * 5. warning\n\t * 6. danger\n\t * 7. dark\n\t * 8. light\n\t * </pre>\n\t */\n\ttype = input('info');\n\n\t/**\n\t * Is alert visible or open\n\t */\n\tisOpen = input(true);\n\n\t/**\n\t * Writable signal for isOpen\n\t */\n\topen = signal(this.isOpen());\n\n\t/**\n\t * If set, displays an inline “Close” button\n\t */\n\tdismissible = input(true);\n\n\t/**\n\t * If set, dismisses the alert after Dismiss Timeout\n\t */\n\tdismissOnTimeout = input(true);\n\n\t/**\n\t * Number in milliseconds, after which alert will be closed. Default value is 5000 ms\n\t */\n\tdismissTimeout = input(5000);\n\n\t/**\n\t * Additional classes to be added to the alert. This can be used to add custom styles to the alert\n\t */\n\tclass = input('');\n\n\tconstructor(private cdr: ChangeDetectorRef) {}\n\n\t/**\n\t * Initialize the component and settings\n\t *\n\t * @author Pavan Kumar Jadda\n\t * @since 12.0.0\n\t */\n\tngOnInit(): void {\n\t\tthis.openAlert();\n\n\t\tif (this.dismissOnTimeout()) {\n\t\t\tsetTimeout(() => {\n\t\t\t\tthis.closeAlert();\n\t\t\t\tthis.cdr.markForCheck();\n\t\t\t}, this.dismissTimeout());\n\t\t}\n\t}\n\n\t/**\n\t * Closes BootStrap Alert if not open\n\t *\n\t * @author Pavan Kumar Jadda\n\t * @since 12.0.0\n\t */\n\tcloseAlert(): void {\n\t\tif (!this.isOpen()) {\n\t\t\treturn;\n\t\t}\n\t\tthis.open.set(false);\n\t}\n\n\t/**\n\t * Opens Bootstrap Alert\n\t *\n\t * @author Pavan Kumar Jadda\n\t * @since 12.0.0\n\t */\n\tprivate openAlert(): void {\n\t\tthis.open.set(true);\n\t}\n}\n","@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","import { Component, input } from '@angular/core';\nimport { ThemePalette } from '@angular/material/core';\nimport { MatProgressSpinnerModule } from '@angular/material/progress-spinner';\n\n@Component({\n selector: 'spinner,lib-spinner',\n imports: [MatProgressSpinnerModule],\n templateUrl: './spinner.component.html',\n styleUrls: ['./spinner.component.scss']\n})\nexport class SpinnerComponent {\n\t/**\n\t * Use Boostrap Spinner. Default `true`\n\t */\n\tbootstrapSpinner = input(true);\n\n\t/**\n\t * Diameter of the Angular Material spinner\n\t */\n\tdiameter = input(50);\n\n\t/**\n\t * Color of the Angular Material spinner\n\t */\n\tcolor = input<ThemePalette>('primary');\n\n\t/**\n\t * Stroke Width of the Angular Material spinner\n\t */\n\tstrokeWidth = input(5);\n}\n","<!-- 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","export const LOADERS = {\n\t'ball-clip-rotate': 1,\n};\n\nexport const DEFAULTS = {\n\tBD_COLOR: 'rgba(51,51,51,0.8)',\n\tSPINNER_COLOR: '#fff',\n\tSPINNER_TYPE: 'ball-clip-rotate',\n\tZ_INDEX: 99999,\n};\n\nexport const PRIMARY_SPINNER = 'primary';\n\nexport type Size = 'default' | 'small' | 'medium' | 'large';\n\nexport interface Spinner {\n\tbdColor?: string;\n\tsize?: Size;\n\tcolor?: string;\n\ttype?: string;\n\tfullScreen?: boolean;\n\tzIndex?: number;\n\ttemplate?: string;\n\tshowSpinner?: boolean;\n}\n\nexport class NgxSpinner {\n\tname?: string;\n\tbdColor?: string;\n\tsize?: Size;\n\tcolor?: string;\n\ttype?: string;\n\tclass?: string;\n\tdivCount?: number;\n\tdivArray?: Array<number>;\n\tfullScreen?: boolean;\n\tshow?: boolean;\n\tzIndex?: number;\n\ttemplate?: string;\n\tshowSpinner?: boolean;\n\n\tconstructor(init?: Partial<NgxSpinner>) {\n\t\tObject.assign(this, init);\n\t}\n}\n","import { Injectable } from '@angular/core';\nimport { BehaviorSubject, Observable } from 'rxjs';\nimport { filter } from 'rxjs/operators';\nimport { NgxSpinner, PRIMARY_SPINNER, Spinner } from './ngx-spinner.enum';\n\n@Injectable({\n\tprovidedIn: 'root',\n})\nexport class NgxSpinnerService {\n\t/**\n\t * Spinner observable\n\t *\n\t * @memberof NgxSpinnerService\n\t */\n\t// private spinnerObservable = new ReplaySubject<NgxSpinner>(1);\n\tpublic spinnerObservable = new BehaviorSubject<NgxSpinner | undefined>(undefined);\n\n\t/**\n\t * Creates an instance of NgxSpinnerService.\n\t * @memberof NgxSpinnerService\n\t */\n\n\t/**\n\t * Get subscription of desired spinner\n\t * @memberof NgxSpinnerService\n\t **/\n\tgetSpinner(name: string): Observable<NgxSpinner> {\n\t\t// @ts-ignore\n\t\treturn this.spinnerObservable.asObservable().pipe(filter((x) => x?.name === name));\n\t}\n\n\t/**\n\t * To show spinner\n\t *\n\t * @memberof NgxSpinnerService\n\t */\n\tshow(name: string = PRIMARY_SPINNER, spinner?: Spinner) {\n\t\treturn new Promise((resolve, _reject) => {\n\t\t\tsetTimeout(() => {\n\t\t\t\tif (spinner && Object.keys(spinner).length) {\n\t\t\t\t\t// @ts-ignore\n\t\t\t\t\tspinner['name'] = name;\n\t\t\t\t\tthis.spinnerObservable.next(new NgxSpinner({ ...spinner, show: true }));\n\t\t\t\t\tresolve(true);\n\t\t\t\t} else {\n\t\t\t\t\tthis.spinnerObservable.next(new NgxSpinner({ name, show: true }));\n\t\t\t\t\tresolve(true);\n\t\t\t\t}\n\t\t\t}, 10);\n\t\t});\n\t}\n\n\t/**\n\t * To hide spinner\n\t *\n\t * @memberof NgxSpinnerService\n\t */\n\thide(name: string = PRIMARY_SPINNER, debounce: number = 10) {\n\t\treturn new Promise((resolve, _reject) => {\n\t\t\tsetTimeout(() => {\n\t\t\t\tthis.spinnerObservable.next(new NgxSpinner({ name, show: false }));\n\t\t\t\tresolve(true);\n\t\t\t}, debounce);\n\t\t});\n\t}\n}\n","import { DomSanitizer, SafeHtml } from '@angular/platform-browser';\nimport { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n\tname: 'safeHtml',\n\tstandalone: true,\n})\nexport class SafeHtmlPipe implements PipeTransform {\n\tconstructor(private _sanitizer: DomSanitizer) {}\n\n\ttransform(v: string): SafeHtml | undefined {\n\t\tif (v) {\n\t\t\treturn this._sanitizer.bypassSecurityTrustHtml(v);\n\t\t}\n\t\treturn undefined;\n\t}\n}\n","import { ChangeDetectorRef, Component, HostListener, Input, OnChanges, OnDestroy, OnInit, SimpleChange, ViewChild } from '@angular/core';\nimport { NgxSpinnerService } from './ngx-spinner.service';\nimport { Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\nimport { DEFAULTS, LOADERS, NgxSpinner, PRIMARY_SPINNER, Size } from './ngx-spinner.enum';\nimport { animate, state, style, transition, trigger } from '@angular/animations';\nimport { SafeHtmlPipe } from './safe-html.pipe';\n\n@Component({\n selector: 'ngx-spinner',\n imports: [SafeHtmlPipe],\n templateUrl: 'ngx-spinner.component.html',\n styleUrls: ['ngx-spinner.component.css'],\n animations: [\n trigger('fadeIn', [\n state('in', style({ opacity: 1 })),\n transition(':enter', [style({ opacity: 0 }), animate(300)]),\n transition(':leave', animate(200, style({ opacity: 0 }))),\n ]),\n ]\n})\nexport class NgxSpinnerComponent implements OnDestroy, OnInit, OnChanges {\n\t/**\n\t * To set backdrop color\n\t * Only supports RGBA color format\n\t */\n\t@Input() bdColor: string;\n\n\t/**\n\t * To set spinner size\n\t */\n\t@Input() size: Size;\n\n\t/**\n\t * To set spinner color(DEFAULTS.SPINNER_COLOR)\n\t */\n\t@Input() color: string;\n\n\t/**\n\t * To set type of spinner\n\t */\n\t@Input() type: string;\n\n\t/**\n\t * To toggle fullscreen mode\n\t */\n\t@Input() fullScreen: boolean;\n\t/**\n\t * Spinner name\n\t */\n\t@Input() name: string;\n\t/**\n\t * z-index value\n\t */\n\n\t@Input() zIndex: number;\n\t/**\n\t * Custom template for spinner/loader\n\t */\n\n\t@Input() template: string;\n\t/**\n\t * Show/Hide the spinner\n\t * @type {boolean}\n\t */\n\t@Input() showSpinner: boolean;\n\n\t/**\n\t * To enable/disable animation\n\t */\n\t@Input() disableAnimation = false;\n\t/**\n\t * Spinner Object\n\t */\n\n\tspinner: NgxSpinner = new NgxSpinner();\n\t/**\n\t * Array for spinner's div\n\t */\n\tdivArray: Array<number>;\n\t/**\n\t * Counter for div\n\t */\n\tdivCount: number;\n\t/**\n\t * Show spinner\n\t **/\n\tshow: boolean;\n\n\t/**\n\t * Unsubscribe from spinner's observable\n\t **/\n\tngUnsubscribe: Subject<void> = new Subject();\n\t/**\n\t * Element Reference\n\t */\n\t// @ts-ignore\n\t@ViewChild('overlay') spinnerDOM;\n\n\t/**\n\t * Creates an instance of NgxSpinnerComponent.\n\t */\n\tconstructor(\n\t\tprivate spinnerService: NgxSpinnerService,\n\t\tprivate changeDetector: ChangeDetectorRef,\n\t) {\n\t\tthis.bdColor = DEFAULTS.BD_COLOR;\n\t\tthis.zIndex = DEFAULTS.Z_INDEX;\n\t\tthis.color = DEFAULTS.SPINNER_COLOR;\n\t\tthis.type = DEFAULTS.SPINNER_TYPE;\n\t\tthis.size = 'large';\n\t\tthis.fullScreen = true;\n\t\tthis.name = PRIMARY_SPINNER;\n\t\t// @ts-ignore\n\t\tthis.template = null;\n\t\tthis.showSpinner = false;\n\t\tthis.divArray = [];\n\t\tthis.divCount = 0;\n\t\tthis.show = false;\n\t}\n\n\t@HostListener('document:keydown', ['$event'])\n\thandleKeyboardEvent(event: KeyboardEvent) {\n\t\tif (this.spinnerDOM && this.spinnerDOM.nativeElement) {\n\t\t\tevent.returnValue = false;\n\t\t\tevent.preventDefault();\n\t\t}\n\t}\n\n\t/**\n * Initialization method\n\n */\n\tngOnInit() {\n\t\tthis.setDefaultOptions();\n\t\tthis.spinnerService\n\t\t\t.getSpinner(this.name)\n\t\t\t.pipe(takeUntil(this.ngUnsubscribe))\n\t\t\t.subscribe((spinner: NgxSpinner) => {\n\t\t\t\tthis.setDefaultOptions();\n\t\t\t\tObject.assign(this.spinner, spinner);\n\t\t\t\tif (spinner.show) {\n\t\t\t\t\tthis.onInputChange();\n\t\t\t\t}\n\t\t\t\tthis.changeDetector.detectChanges();\n\t\t\t});\n\t}\n\n\t/**\n\t * To set default ngx-spinner options\n\t */\n\tsetDefaultOptions = () => {\n\t\tthis.spinner = new NgxSpinner({\n\t\t\tname: this.name,\n\t\t\tbdColor: this.bdColor,\n\t\t\tsize: this.size,\n\t\t\tcolor: this.color,\n\t\t\ttype: this.type,\n\t\t\tfullScreen: this.fullScreen,\n\t\t\tdivArray: this.divArray,\n\t\t\tdivCount: this.divCount,\n\t\t\tshow: this.show,\n\t\t\tzIndex: this.zIndex,\n\t\t\ttemplate: this.template,\n\t\t\tshowSpinner: this.showSpinner,\n\t\t});\n\t};\n\n\t/**\n\t * On changes event for input variables\n\t */\n\tngOnChanges(changes: { [propKey: string]: SimpleChange }) {\n\t\tfor (const propName in changes) {\n\t\t\tif (propName) {\n\t\t\t\tconst changedProp = changes[propName];\n\t\t\t\tif (changedProp.isFirstChange()) {\n\t\t\t\t\treturn;\n\t\t\t\t} else if (typeof changedProp.currentValue !== 'undefined' && changedProp.currentValue !== changedProp.previousValue) {\n\t\t\t\t\tif (changedProp.currentValue !== '') {\n\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\tthis.spinner[propName] = changedProp.currentValue;\n\t\t\t\t\t\tif (propName === 'showSpinner') {\n\t\t\t\t\t\t\tif (changedProp.currentValue) {\n\t\t\t\t\t\t\t\tthis.spinnerService.show(this.spinner.name, this.spinner);\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tthis.spinnerService.hide(this.spinner.name);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t * To get class for spinner\n\t */\n\tgetClass(type: string, size: Size): string {\n\t\t// @ts-ignore\n\t\tthis.spinner.divCount = LOADERS[type];\n\t\tthis.spinner.divArray = Array(this.spinner.divCount)\n\t\t\t.fill(0)\n\t\t\t.map((x, i) => i);\n\t\tlet sizeClass = '';\n\t\tswitch (size.toLowerCase()) {\n\t\t\tcase 'small':\n\t\t\t\tsizeClass = 'la-sm';\n\t\t\t\tbreak;\n\t\t\tcase 'medium':\n\t\t\t\tsizeClass = 'la-2x';\n\t\t\t\tbreak;\n\t\t\tcase 'large':\n\t\t\t\tsizeClass = 'la-3x';\n\t\t\t\tbreak;\n\t\t\tdefault:\n\t\t\t\tbreak;\n\t\t}\n\t\treturn 'la-' + type + ' ' + sizeClass;\n\t}\n\n\t/**\n\t * Check if input variables have changed\n\t */\n\tonInputChange() {\n\t\tthis.spinner.class = this.getClass(this.spinner.type ?? DEFAULTS.SPINNER_TYPE, this.spinner.size ?? 'default');\n\t}\n\n\t/**\n\t * Component destroy event\n\t */\n\tngOnDestroy() {\n\t\tthis.ngUnsubscribe.next();\n\t\tthis.ngUnsubscribe.complete();\n\t}\n}\n","@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","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n\tname: 'typeOf',\n\tstandalone: true,\n})\nexport class TypeOfPipe implements PipeTransform {\n\ttransform(value: any): any {\n\t\treturn typeof value;\n\t}\n}\n","import {\n AfterContentChecked,\n ChangeDetectorRef,\n Component,\n ElementRef,\n Input,\n input,\n OnChanges,\n OnInit,\n Optional,\n output,\n SimpleChanges,\n ViewChild,\n} from '@angular/core';\nimport { BehaviorSubject, Observable } from 'rxjs';\nimport { FormGroup, ReactiveFormsModule } from '@angular/forms';\nimport { map, startWith } from 'rxjs/operators';\nimport { MatAutocompleteModule, MatAutocompleteTrigger } from '@angular/material/autocomplete';\nimport { MatOptionSelectionChange } from '@angular/material/core';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { MatInputModule } from '@angular/material/input';\nimport { TypeOfPipe } from '../../pipes/type-of.pipe';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatIconModule } from '@angular/material/icon';\nimport { AsyncPipe } from '@angular/common';\n\n/**\n * Reusable Auto Complete component that extends MatAutoComplete to show Clear icon and Arrow buttons\n *\n * @author Pavan Kumar Jadda\n * @since 12.0.0\n */\n@Component({\n selector: 'autocomplete, lib-autocomplete',\n imports: [\n ReactiveFormsModule,\n TypeOfPipe,\n MatFormFieldModule,\n MatAutocompleteModule,\n MatInputModule,\n MatButtonModule,\n MatIconModule,\n AsyncPipe,\n ],\n templateUrl: './autocomplete.component.html'\n})\nexport class AutocompleteComponent implements OnInit, OnChanges, AfterContentChecked {\n\t/**\n\t * Gets reference inputAutoComplete HTML attribute\n\t */\n\t@ViewChild('inputAutoComplete') inputAutoComplete!: ElementRef;\n\n\t/**\n\t * Input form group of the auto complete\n\t */\n\t@Input() inputFormGroup!: FormGroup;\n\n\t/**\n\t * Label of the AutoComplete\n\t */\n\tlabel = input('');\n\n\t/**\n\t * Placeholder of the AutoComplete\n\t */\n\tplaceHolder = input('');\n\n\t/**\n\t * Appearance of the AutoComplete, defaults to `fill`\n\t */\n\tappearance = input('fill');\n\n\t/**\n\t * List of CSS classes that need to applied to autocomplete\n\t */\n\tclasses = input('');\n\n\t/**\n\t * Attribute of the Object whose value would be shown when searching for data. Defaults to `ID`\n\t */\n\tbindLabel = input('');\n\n\t/**\n\t * Attribute of the Object whose value would be used for search\n\t */\n\tbindValue = input('id');\n\n\t/**\n\t * Function that maps an option's control value to its display value in the trigger.\n\t */\n\t@Input() @Optional() displayWith: ((value: any) => string) | null = null;\n\n\t/**\n\t * Specifies if the autocomplete is required. Default is not required.\n\t */\n\trequired = input(false);\n\n\t/**\n\t * List of Objects that need to be bind and searched for\n\t */\n\tdata = input<string[] | any[]>();\n\n\t/**\n\t * Emit selected value on selection changes\n\t *\n\t * @author Pavan Kumar Jadda\n\t * @since 13.0.3\n\t */\n\tonSelectionChange = output<any>();\n\n\t/**\n\t * BehaviorSubject that shows the current active arrow icon\n\t */\n\tarrowIconSubject = new BehaviorSubject('arrow_drop_down');\n\n\t/**\n\t * Filtered options when user\n\t */\n\tfilteredOptions: Observable<any[] | undefined> | undefined;\n\n\tconstructor(private cdRef: ChangeDetectorRef) {}\n\n\tngAfterContentChecked(): void {\n\t\tthis.cdRef.detectChanges();\n\t}\n\n\t/**\n\t * Define autocomplete search filter on search text changes\n\t *\n\t * @author Pavan Kumar Jadda\n\t * @since 12.0.0\n\t */\n\tngOnInit() {\n\t\tthis.filteredOptions = this.inputFormGroup?.get('autocomplete')?.valueChanges.pipe(\n\t\t\tstartWith(''),\n\t\t\tmap((value) => (typeof value === 'string' ? value : value !== null ? value[this.bindLabel()] : '')),\n\t\t\tmap(\n\t\t\t\t(propertyName) =>\n\t\t\t\t\tthis.data()?.filter((option) => {\n\t\t\t\t\t\treturn typeof option === 'string'\n\t\t\t\t\t\t\t? option?.toLowerCase().indexOf(propertyName.toLowerCase()) === 0\n\t\t\t\t\t\t\t: option[this.bindLabel()]?.toLowerCase().indexOf(propertyName.toLowerCase()) === 0;\n\t\t\t\t\t}) ?? this.data()?.slice(),\n\t\t\t),\n\t\t);\n\t}\n\n\tngOnChanges(_changes: SimpleChanges): void {\n\t\tthis.displayFn = this.displayFn.bind(this);\n\t}\n\n\t/**\n\t * Clear input and Reset autocomplete form control\n\t *\n\t * @author Pavan Kumar Jadda\n\t * @since 12.0.0\n\t */\n\tclearInput(evt: any): void {\n\t\tevt.stopPropagation();\n\t\tthis.inputFormGroup.get('autocomplete')?.reset();\n\t\tthis.inputAutoComplete?.nativeElement.focus();\n\t}\n\n\t/**\n\t * Open or Close panel\n\t *\n\t * @author Pavan Kumar Jadda\n\t * @since 12.0.0\n\t */\n\topenOrClosePanel(evt: any, trigger: MatAutocompleteTrigger): void {\n\t\tevt.stopPropagation();\n\t\tif (trigger.panelOpen) trigger.closePanel();\n\t\telse trigger.openPanel();\n\t}\n\n\t/**\n\t * Display function that is used to show the values\n\t *\n\t * @author Pavan Kumar Jadda\n\t * @since 12.0.0\n\t */\n\tdisplayFn(object: any): string {\n\t\tif (this.displayWith !== undefined && this.displayWith !== null && typeof this.displayWith === 'function') {\n\t\t\tthis.displayFn = this.displayWith.bind(this);\n\t\t\treturn this.displayWith(object);\n\t\t} else {\n\t\t\tif (typeof object === 'string') return object;\n\t\t\treturn object && object[this.bindLabel()] ? object[this.bindLabel()] : '';\n\t\t}\n\t}\n\n\t/**\n\t * Emit selected value\n\t * @param $event - Event emitted by autocomplete\n\t *\n\t * @author Pavan Kumar Jadda\n\t * @since 13.0.3\n\t */\n\temitSelectedValue($event: MatOptionSelectionChange) {\n\t\tthis.onSelectionChange.emit($event.source.value);\n\t}\n}\n","<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","import { Directive, HostListener, Input } from '@angular/core';\nimport { MatTableDataSource } from '@angular/material/table';\nimport { MatPaginator } from '@angular/material/paginator';\n\n/**\n * Reusable Angular directory that prints given contents of HTML element\n *\n * @since 12.0.0\n * @author Pavan Kumar Jadda\n */\n@Directive({\n\t// eslint-disable-next-line @angular-eslint/directive-selector\n\tselector: 'button[ngxPrint], button[print]',\n\tstandalone: true,\n})\nexport class NgxPrintDirective {\n\t/**\n\t * ID of the HTML element those contents need to be printed\n\t *\n\t * @since 12.0.0\n\t * @author Pavan Kumar Jadda\n\t */\n\t@Input() printSectionId: string | undefined;\n\n\t/**\n\t * Title of the HTML element those contents need to be printed\n\t *\n\t * @since 12.0.0\n\t * @author Pavan Kumar Jadda\n\t */\n\t@Input() printTitle: string | undefined;\n\n\t/**\n\t * If `true`, uses CSS of HTMl element, otherwise no CSS applied\n\t *\n\t * @since 12.0.0\n\t * @author Pavan Kumar Jadda\n\t */\n\t@Input() useExistingCss = false;\n\n\t/**\n\t * A delay in milliseconds to force the print dialog to wait before opened. Default: 0\n\t *\n\t * @since 12.0.0\n\t * @author Pavan Kumar Jadda\n\t */\n\t@Input() printDelay = 0;\n\n\t/**\n\t * Instance of the Mat Table Data Source\n\t *\n\t * @since 12.0.0\n\t * @author Pavan Kumar Jadda\n\t */\n\t@Input() matTableDataSource!: MatTableDataSource<any>;\n\n\t/**\n\t * Instance of the Mat Paginator\n\t *\n\t * @since 12.0.0\n\t * @author Pavan Kumar Jadda\n\t */\n\t@Input() paginator!: MatPaginator;\n\n\t/**\n\t * ID of the Mat Paginator\n\t *\n\t * @since 12.0.0\n\t * @author Pavan Kumar Jadda\n\t */\n\t@Input() paginatorId = '';\n\n\t/**\n\t * HTML tag ID of the Mat-Table Input Filter\n\t *\n\t * @since 12.0.0\n\t * @author Pavan Kumar Jadda\n\t */\n\t@Input() inputFilterId = '';\n\n\t/**\n\t * If `true`, referenced table is Mat-Table\n\t *\n\t * @since 12.0.0\n\t * @author Pavan Kumar Jadda\n\t */\n\t@Input() isMatTable = false;\n\n\t/**\n\t * If `true` Mat-Table paginator will be hidden\n\t *\n\t * @since 12.0.0\n\t * @author Pavan Kumar Jadda\n\t */\n\t@Input() hideMatTablePaginator = false;\n\n\tpublic printStyleArray = [];\n\t/**\n\t * List of Style sheet files\n\t *\n\t * @since 12.0.0\n\t * @author Pavan Kumar Jadda\n\t */\n\tprivate styleSheetFileArray = '';\n\n\t/**\n\t * List of CSS properties that needs to be applied while printing the document\n\t *\n\t * @since 12.0.0\n\t * @author Pavan Kumar Jadda\n\t */\n\t@Input()\n\tset printStyle({ values }: PrintStyleParams) {\n\t\tfor (const key in values) {\n\t\t\tif (values.hasOwnProperty(key)) {\n\t\t\t\t// @ts-ignore\n\t\t\t\tthis.printStyleArray.push((key + JSON.stringify(values[key])).replace(/['\"]+/g, ''));\n\t\t\t}\n\t\t}\n\t\tthis.returnStyleValues();\n\t}\n\n\t/**\n\t * Sets given style sheet files to print document\n\t *\n\t * @param cssList Comma separated value of CSS file names\n\t *\n\t * @since 12.0.0\n\t * @author Pavan Kumar Jadda\n\t */\n\t@Input()\n\tset styleSheetFile(cssList: string) {\n\t\tif (cssList.indexOf(',') !== -1) {\n\t\t\tconst cssFileArray = cssList.split(',');\n\t\t\tfor (const cssFileName of cssFileArray) {\n\t\t\t\tthis.styleSheetFileArray = this.styleSheetFileArray + NgxPrintDirective.linkTagFn(cssFileName);\n\t\t\t}\n\t\t} else {\n\t\t\tthis.styleSheetFileArray = NgxPrintDirective.linkTagFn(cssList);\n\t\t}\n\t}\n\n\t/**\n\t * Build link HTMl tag based on given file name\n\t *\n\t * @since 12.0.0\n\t * @author Pavan Kumar Jadda\n\t */\n\tprivate static linkTagFn(cssFileName: string): string {\n\t\treturn `<link rel=\"stylesheet\" type=\"text/css\" href=\"${cssFileName}\">`;\n\t}\n\n\t/**\n\t * Gets HTML element by tag name\n\t *\n\t * @since 12.0.0\n\t * @author Pavan Kumar Jadda\n\t */\n\tprivate static getElementTag(tag: keyof HTMLElementTagNameMap): string {\n\t\tconst html: string[] = [];\n\t\tconst elements = document.getElementsByTagName(tag);\n\t\t// @ts-ignore\n\t\tfor (const element of elements) {\n\t\t\thtml.push(element.outerHTML);\n\t\t}\n\t\treturn html.join('\\r\\n');\n\t}\n\n\t/**\n\t * Print the element upon clicking the button\n\t *\n\t * @since 12.0.0\n\t * @author Pavan Kumar Jadda\n\t */\n\t@HostListener('click')\n\tpublic print(): void {\n\t\t//Hide paginator for Material table\n\t\tif (this.isMatTable && this.hideMatTablePaginator && this.matTableDataSource) {\n\t\t\tthis.matTableDataSource.paginator = null;\n\t\t}\n\n\t\tsetTimeout(() => {\n\t\t\tif (this.isMatTable) {\n\t\t\t\tthis.hideMatPaginatorBeforePrinting();\n\t\t\t}\n\n\t\t\t// Do something after\n\t\t\tlet printContents;\n\t\t\tlet popupWin;\n\t\t\tlet styles = '';\n\t\t\tlet links = '';\n\n\t\t\tif (this.useExistingCss) {\n\t\t\t\tstyles = NgxPrintDirective.getElementTag('style');\n\t\t\t\tlinks = NgxPrintDirective.getElementTag('link');\n\t\t\t}\n\t\t\tif (this.printSectionId) {\n\t\t\t\tprintContents = document.getElementById(this.printSectionId)?.innerHTML;\n\t\t\t\tpopupWin = window.open('', '_blank', 'top=0,left=0,height=auto,width=auto');\n\t\t\t\tpopupWin?.document.open();\n\t\t\t\tpopupWin?.document.write(`\n <html lang=\"en-us\">\n <head>\n <title>${this.printTitle ? this.printTitle : ''}</title>\n ${this.returnStyleValues()}\n ${this.styleSheetFileArray}\n ${styles}\n ${links}\n </head>\n <body>\n ${printContents}\n <script defer>\n function triggerPrint() {\n window.removeEventListener('load', triggerPrint, false);\n setTimeout(() => {\n window.print();\n setTimeout(function() { window.close(); }, 0);\n }, ${this.printDelay});\n }\n window.addEventListener('load', triggerPrint, false);\n </script>\n </body>\n </html>`);\n\n\t\t\t\tpopupWin?.document.close();\n\n\t\t\t\t//Revert back the mat-paginator after printing\n\t\t\t\tif (this.isMatTable) {\n\t\t\t\t\tthis.showMatPaginatorAfterPrinting();\n\t\t\t\t}\n\t\t\t}\n\t\t}, 1000); //1 second timeout to hide paginator\n\t}\n\n\t/**\n\t * Hide Mat Paginator before Printing\n\t *\n\t * @since 12.0.1\n\t * @author Pavan Kumar Jadda\n\t */\n\tprivate hideMatPaginatorBeforePrinting() {\n\t\t// @ts-ignore\n\t\tdocument.getElementById(this.paginatorId).style.display = 'none';\n\t\tif (document.getElementById(this.inputFilterId) != null) {\n\t\t\t// @ts-ignore\n\t\t\tdocument.getElementById(this.inputFilterId).style.display = 'none';\n\t\t}\n\t}\n\n\t/**\n\t * Show Mat Paginator after Printing\n\t *\n\t * @since 12.0.1\n\t * @author Pavan Kumar Jadda\n\t */\n\tprivate showMatPaginatorAfterPrinting() {\n\t\tthis.matTableDataSource.paginator = this.paginator;\n\t\t// @ts-ignore\n\t\tdocument.getElementById(this.paginatorId).style.display = 'block';\n\t\tif (document.getElementById(this.inputFilterId) != null) {\n\t\t\t// @ts-ignore\n\t\t\tdocument.getElementById(this.inputFilterId).style.display = 'block';\n\t\t}\n\t}\n\n\t/**\n\t * @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\n\t *\n\t * @since 12.0.0\n\t * @author Pavan Kumar Jadda\n\t */\n\tprivate returnStyleValues() {\n\t\treturn `<style> ${this.printStyleArray.join(' ').replace(/,/g, ';')} </style>`;\n\t}\n}\n\ninterface PrintStyleParams {\n\tvalues: { [p: string]: { [p: string]: string } };\n}\n","import { Directive, EventEmitter, HostListener, OnDestroy, OnInit, Output, input } from '@angular/core';\nimport { Subject, Subscription, throttleTime } from 'rxjs';\n\n@Directive({\n\tselector: '[preventMultipleClicks]',\n\tstandalone: true,\n})\nexport class PreventMultipleClicksDirective implements OnInit, OnDestroy {\n\tthrottleTime = input(2000);\n\t@Output() throttleClick = new EventEmitter();\n\n\tprivate clicks = new Subject();\n\tprivate subscription: Subscription | undefined;\n\n\t/**\n\t * Intercepts click event and stops default navigation. After first click set {@link throttleTime} to 2000 to prevent duplicate clicks\n\t *\n\t * @param event DOM event\n\t *\n\t * @author Pavan Kumar Jadda\n\t * @since 2.3.27\n\t */\n\t@HostListener('click', ['$event'])\n\tclickEvent(event: any) {\n\t\tevent.preventDefault();\n\t\tevent.stopPropagation();\n\t\tthis.clicks.next(event);\n\t}\n\n\tngOnInit() {\n\t\tthis.subscription = this.clicks.pipe(throttleTime(this.throttleTime())).subscribe((e) => this.throttleClick.emit(e));\n\t}\n\n\tngOnDestroy() {\n\t\tthis.subscription?.unsubscribe();\n\t}\n}\n","import { Component, input, output } from '@angular/core';\n\n@Component({\n\tstandalone: true,\n\ttemplate: ``,\n})\nexport class BaseButtonComponent {\n\t/**\n\t * Is search in progress and loading the data\n\t */\n\tloading = input(false, { transform: (value: boolean | undefined) => value ?? false });\n\n\t/**\n\t * Is button disabled\n\t */\n\tdisabled = input<boolean>(false);\n\n\t/**\n\t * Type of the button. Following values are supported. See BootStrap docs for more information\n\t * <pre>\n\t * 1. button\n\t * 2. submit\n\t * </pre>\n\t */\n\ttype = input('button');\n\n\t/**\n\t * If set, shows when action in Progress\n\t */\n\tloadingLabel = input('Saving...');\n\n\t/**\n\t * If set, shows when Delete is not in progress\n\t */\n\tlabel = input('Save');\n\n\t/**\n\t * If set, shows the icon. Otherwise, shows delete icon\n\t */\n\ticon = input('save');\n\n\t/**\n\t * If set, shows material icon otherwise hides the icons\n\t */\n\tshowIcon = input(true);\n\n\t/**\n\t * If set, sets the style of the button\n\t */\n\tstyle = input<any | null | undefined>();\n\n\t/**\n\t * If set, sets the class of the button\n\t */\n\tclasses = input('btn');\n\n\t/**\n\t * If set, sets the data-cy attribute for the button\n\t */\n\tdataCy = input('save-button');\n\n\t/**\n\t * Output event when button is clicked\n\t */\n\tonClick = output<MouseEvent>();\n\n\t/**\n\t * Output event when button is focused\n\t */\n\tonFocus = output<FocusEvent>();\n\n\t/**\n\t * Output event when button is blurred\n\t */\n\tonBlur = output<FocusEvent>();\n\n\t/**\n\t * Output event when key is pressed\n\t */\n\tonKeyDown = output<KeyboardEvent>();\n\n\t/**\n\t * Output event when key is up\n\t */\n\tonKeyUp = output<KeyboardEvent>();\n}\n","import { Component, input } from '@angular/core';\nimport { MatIcon } from '@angular/material/icon';\nimport { MatAnchor } from '@angular/material/button';\nimport { BaseButtonComponent } from '../base-button/base-button.component';\n\n@Component({\n\tselector: 'bs-link-button',\n\timports: [MatIcon, MatAnchor],\n\ttemplate: `\n\t\t<a\n\t\t\ttype=\"{{ type() }}\"\n\t\t\tclass=\"{{ classes() }}\"\n\t\t\t(click)=\"onClick.emit($event)\"\n\t\t\t(focus)=\"onFocus.emit($event)\"\n\t\t\t(blur)=\"onBlur.emit($event)\"\n\t\t\t(keydown)=\"onKeyDown.emit($event)\"\n\t\t\t(keyup)=\"onKeyUp.emit($event)\"\n\t\t\t[disabled]=\"disabled()\"\n\t\t\t[type]=\"type()\"\n\t\t\t[style]=\"style()\"\n\t\t\t[attr.data-cy]=\"'edit-link-button'\"\n\t\t\tmat-button>\n\t\t\t<mat-icon>{{ icon() }}</mat-icon>\n\t\t\t{{ label() }}\n\t\t</a>\n\t`,\n\tstyleUrls: ['../../../../assets/app-buttons.css'],\n})\nexport class BsLinkButtonComponent extends BaseButtonComponent {\n\toverride label = input('Edit');\n\toverride icon = input('search');\n\toverride classes = input('btn text-primary');\n\n\tconstructor() {\n\t\tsuper();\n\t}\n}\n","import { Component, input } from '@angular/core';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatButtonModule } from '@angular/material/button';\nimport { BaseButtonComponent } from '../base-button/base-button.component';\n\n@Component({\n\tselector: 'delete-button',\n\timports: [MatButtonModule, MatIconModule],\n\ttemplate: `\n\t\t<button\n\t\t\tmat-raised-button\n\t\t\tclass=\"btn {{ classes() }}\"\n\t\t\t(click)=\"onClick.emit($event)\"\n\t\t\t(focus)=\"onFocus.emit($event)\"\n\t\t\t(blur)=\"onBlur.emit($event)\"\n\t\t\t(keydown)=\"onKeyDown.emit($event)\"\n\t\t\t(keyup)=\"onKeyUp.emit($event)\"\n\t\t\t[disabled]=\"disabled() || loading()\"\n\t\t\t[type]=\"type()\"\n\t\t\t[style]=\"style()\"\n\t\t\t[attr.data-cy]=\"'delete-button'\">\n\t\t\t@if (loading()) {\n\t\t\t\t<span aria-hidden=\"true\" class=\"spinner-border spinner-border-sm\" role=\"status\"></span>\n\t\t\t}\n\t\t\t@if (!loading()) {\n\t\t\t\t<mat-icon>{{ icon() }}</mat-icon>\n\t\t\t}\n\t\t\t{{ loading() ? loadingLabel() : label() }}\n\t\t</button>\n\t`,\n\tstyleUrls: ['../../../../assets/app-buttons.css'],\n})\nexport class DeleteButtonComponent extends BaseButtonComponent {\n\toverride loadingLabel = input('Deleting...');\n\toverride label = input('Delete');\n\toverride icon = input('delete');\n\toverride classes = input('delete-button');\n\n\tconstructor() {\n\t\tsuper();\n\t}\n}\n","import { Component, input } from '@angular/core';\n\nimport { MatIcon } from '@angular/material/icon';\nimport { MatButton } from '@angular/material/button';\nimport { BaseButtonComponent } from '../base-button/base-button.component';\n\n@Component({\n\tselector: 'edit-button',\n\timports: [MatButton, MatIcon],\n\ttemplate: `\n\t\t<button\n\t\t\tclass=\"{{ classes() }}\"\n\t\t\t(click)=\"onClick.emit($event)\"\n\t\t\t(focus)=\"onFocus.emit($event)\"\n\t\t\t(blur)=\"onBlur.emit($event)\"\n\t\t\t(keydown)=\"onKeyDown.emit($event)\"\n\t\t\t(keyup)=\"onKeyUp.emit($event)\"\n\t\t\t[disabled]=\"disabled()\"\n\t\t\t[type]=\"type()\"\n\t\t\t[style]=\"style()\"\n\t\t\t[attr.data-cy]=\"'edit-button'\"\n\t\t\tmat-raised-button>\n\t\t\t<mat-icon>{{ icon() }}</mat-icon>\n\t\t\t{{ label() }}\n\t\t</button>\n\t`,\n\tstyleUrls: ['../../../../assets/app-buttons.css'],\n})\nexport class EditButtonComponent extends BaseButtonComponent {\n\toverride label = input('Edit');\n\toverride icon = input('edit');\n\toverride classes = input('primary-button');\n\n\tconstructor() {\n\t\tsuper();\n\t}\n}\n","import { Component } from '@angular/core';\nimport { MatIconModule, MatIconRegistry } from '@angular/material/icon';\nimport { DomSanitizer } from '@angular/platform-browser';\n\nconst EDIT_ICON = `\n<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\">\n <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\"/>\n</svg>\n`;\n\n@Component({\n selector: 'edit-solid-svg',\n imports: [MatIconModule],\n template: ` <mat-icon aria-hidden=\"false\" aria-label=\"Edit\" svgIcon=\"edit-solid\"></mat-icon> `,\n styles: [\n `\n\t\t\t.mat-icon {\n\t\t\t\tvertical-align: bottom;\n\t\t\t\tpadding-left: 5px;\n\t\t\t}\n\t\t`,\n ]\n})\nexport class EditSolidSvgComponent {\n\tconstructor(iconRegistry: MatIconRegistry, sanitizer: DomSanitizer) {\n\t\ticonRegistry.addSvgIconLiteral('edit-solid', sanitizer.bypassSecurityTrustHtml(EDIT_ICON));\n\t}\n}\n","import { Component, input } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatIconModule } from '@angular/material/icon';\nimport { EditSolidSvgComponent } from '../../../svg-icons/edit-solid-svg/edit-solid-svg.component';\nimport { BaseButtonComponent } from '../base-button/base-button.component';\n\n@Component({\n\tselector: 'edit-bs-button',\n\timports: [CommonModule, MatButtonModule, MatIconModule, EditSolidSvgComponent],\n\ttemplate: `\n\t\t<button\n\t\t\tcolor=\"primary\"\n\t\t\ttype=\"{{ type() }}\"\n\t\t\tclass=\"{{ classes() }}\"\n\t\t\t(click)=\"onClick.emit($event)\"\n\t\t\t(focus)=\"onFocus.emit($event)\"\n\t\t\t(blur)=\"onBlur.emit($event)\"\n\t\t\t(keydown)=\"onKeyDown.emit($event)\"\n\t\t\t(keyup)=\"onKeyUp.emit($event)\"\n\t\t\t[disabled]=\"disabled()\"\n\t\t\t[type]=\"type()\"\n\t\t\t[style]=\"style()\"\n\t\t\t[attr.data-cy]=\"'edit-bs-button'\"\n\t\t\tmat-button>\n\t\t\t<edit-solid-svg></edit-solid-svg>\n\t\t\t{{ label() }}\n\t\t</button>\n\t`,\n\tstyleUrls: ['../../../../assets/app-buttons.css'],\n})\nexport class EditBsButtonComponent extends BaseButtonComponent {\n\toverride label = input('Edit');\n\toverride classes = input('text-primary');\n\n\tconstructor() {\n\t\tsuper();\n\t}\n}\n","import { Component, input } from '@angular/core';\nimport { MatButton } from '@angular/material/button';\nimport { EditSolidSvgComponent } from '../../../svg-icons/edit-solid-svg/edit-solid-svg.component';\nimport { BaseButtonComponent } from '../base-button/base-button.component';\n\n@Component({\n\tselector: 'edit-svg-icon-button',\n\timports: [MatButton, EditSolidSvgComponent],\n\ttemplate: `\n\t\t<button\n\t\t\ttype=\"{{ type() }}\"\n\t\t\tclass=\"{{ classes() }}\"\n\t\t\t(click)=\"onClick.emit($event)\"\n\t\t\t(focus)=\"onFocus.emit($event)\"\n\t\t\t(blur)=\"onBlur.emit($event)\"\n\t\t\t(keydown)=\"onKeyDown.emit($event)\"\n\t\t\t(keyup)=\"onKeyUp.emit($event)\"\n\t\t\t[disabled]=\"disabled()\"\n\t\t\t[type]=\"type()\"\n\t\t\t[style]=\"style()\"\n\t\t\t[attr.data-cy]=\"'edit-svg-icon-button'\"\n\t\t\tmat-raised-button>\n\t\t\t<edit-solid-svg></edit-solid-svg>\n\t\t\t{{ label() }}\n\t\t</button>\n\t`,\n\tstyleUrls: ['../../../../assets/app-buttons.css'],\n})\nexport class EditSvgIconButtonComponent extends BaseButtonComponent {\n\toverride label = input('Edit');\n\toverride icon = input('edit');\n\toverride classes = input('primary-button');\n\n\tconstructor() {\n\t\tsuper();\n\t}\n}\n","import { Component, input } from '@angular/core';\n\nimport { MatButton } from '@angular/material/button';\nimport { MatIcon } from '@angular/material/icon';\nimport { BaseButtonComponent } from '../base-button/base-button.component';\n\n@Component({\n selector: 'manage-button',\n imports: [MatButton, MatIcon],\n template: `\n\t\t<button\n\t\t\tmat-raised-button\n\t\t\tclass=\"{{ classes() }}\"\n\t\t\t(click)=\"onClick.emit($event)\"\n\t\t\t(focus)=\"onFocus.emit($event)\"\n\t\t\t(blur)=\"onBlur.emit($event)\"\n\t\t\t[disabled]=\"disabled()\"\n\t\t\t[type]=\"type()\"\n\t\t\t[style]=\"style()\"\n\t\t\t[attr.data-cy]=\"'manage-button'\">\n\t\t\t<mat-icon>{{ icon() }}</mat-icon>\n\t\t\t{{ label() }}\n\t\t</button>\n\t`,\n styleUrls: ['../../../../assets/app-buttons.css']\n})\nexport class ManageButtonComponent extends BaseButtonComponent {\n\toverride label = input('Manage');\n\toverride icon = input('settings');\n\toverride classes = input('mr-3 btn btn-secondary secondary-button');\n\n\tconstructor() {\n\t\tsuper();\n\t}\n}\n","import { Component, input } from '@angular/core';\nimport { BaseButtonComponent } from '../base-button/base-button.component';\n\nimport { MatIcon } from '@angular/material/icon';\nimport { MatButton } from '@angular/material/button';\n\n@Component({\n\tselector: 'save-primary-button',\n\timports: [MatButton, MatIcon],\n\ttemplate: `\n\t\t<button\n\t\t\tmat-raised-button\n\t\t\tclass=\"btn {{ classes() }}\"\n\t\t\t(click)=\"onClick.emit($event)\"\n\t\t\t(focus)=\"onFocus.emit($event)\"\n\t\t\t(blur)=\"onBlur.emit($event)\"\n\t\t\t(keydown)=\"onKeyDown.emit($event)\"\n\t\t\t(keyup)=\"onKeyUp.emit($event)\"\n\t\t\t[disabled]=\"disabled() || loading()\"\n\t\t\t[type]=\"type()\"\n\t\t\t[style]=\"style()\"\n\t\t\t[attr.data-cy]=\"'save-primary-button'\">\n\t\t\t@if (loading()) {\n\t\t\t\t<span aria-hidden=\"true\" class=\"spinner-border spinner-border-sm\" role=\"status\"></span>\n\t\t\t}\n\t\t\t@if (!loading()) {\n\t\t\t\t<mat-icon>{{ icon() }}</mat-icon>\n\t\t\t}\n\t\t\t{{ loading() ? loadingLabel() : label() }}\n\t\t</button>\n\t`,\n\tstyleUrls: ['../../../../assets/app-buttons.css'],\n})\nexport class SavePrimaryButtonComponent extends BaseButtonComponent {\n\toverride loadingLabel = input('Saving...');\n\toverride label = input('Save');\n\toverride icon = input('save');\n\toverride classes = input('btn-primary primary-button');\n\n\tconstructor() {\n\t\tsuper();\n\t}\n}\n","import { Component, input } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatButtonModule } from '@angular/material/button';\nimport { BaseButtonComponent } from '../base-button/base-button.component';\n\n@Component({\n\tselector: 'search-button',\n\timports: [CommonModule, MatButtonModule, MatIconModule],\n\ttemplate: `\n\t\t<button\n\t\t\tclass=\"btn btn-primary primary-button {{ loading() || disabled() ? 'disabled' : '' }}\"\n\t\t\t(click)=\"onClick.emit($event)\"\n\t\t\t(focus)=\"onFocus.emit($event)\"\n\t\t\t(blur)=\"onBlur.emit($event)\"\n\t\t\t(keydown)=\"onKeyDown.emit($event)\"\n\t\t\t(keyup)=\"onKeyUp.emit($event)\"\n\t\t\tmat-raised-button\n\t\t\ttype=\"{{ type() }}\"\n\t\t\tdata-cy=\"primary-button\">\n\t\t\t@if (loading()) {\n\t\t\t\t<span aria-hidden=\"true\" class=\"spinner-border spinner-border-sm\" role=\"status\"></span>\n\t\t\t}\n\t\t\t@if (!loading()) {\n\t\t\t\t<mat-icon>{{ icon() }}</mat-icon>\n\t\t\t}\n\t\t\t{{ loading() ? loadingLabel() : label() }}\n\t\t</button>\n\t`,\n\tstyleUrls: ['../../../../assets/app-buttons.css'],\n})\nexport class SearchButtonComponent extends BaseButtonComponent {\n\toverride loadingLabel = input('Searching...');\n\toverride label = input('Search');\n\toverride icon = input('search');\n\toverride classes = input('btn-primary primary-button');\n\n\tconstructor() {\n\t\tsuper();\n\t}\n}\n","import { Component, input } from '@angular/core';\nimport { BaseButtonComponent } from '../base-button/base-button.component';\nimport { MatButton } from '@angular/material/button';\nimport { MatIcon } from '@angular/material/icon';\n\n@Component({\n\tselector: 'success-button',\n\timports: [MatButton, MatIcon],\n\ttemplate: `\n\t\t<button\n\t\t\tmat-raised-button\n\t\t\tclass=\"btn {{ classes() }}\"\n\t\t\t(click)=\"onClick.emit($event)\"\n\t\t\t(keydown)=\"onKeyDown.emit($event)\"\n\t\t\t(keyup)=\"onKeyUp.emit($event)\"\n\t\t\t(focus)=\"onFocus.emit($event)\"\n\t\t\t(blur)=\"onBlur.emit($event)\"\n\t\t\t[disabled]=\"disabled() || loading()\"\n\t\t\t[type]=\"type()\"\n\t\t\t[style]=\"style()\"\n\t\t\t[attr.data-cy]=\"'success-button'\">\n\t\t\t@if (loading()) {\n\t\t\t\t<span aria-hidden=\"true\" class=\"spinner-border spinner-border-sm\" role=\"status\"></span>\n\t\t\t}\n\t\t\t@if (!loading()) {\n\t\t\t\t<mat-icon>{{ icon() }}</mat-icon>\n\t\t\t}\n\t\t\t{{ loading() ? loadingLabel() : label() }}\n\t\t</button>\n\t`,\n})\nexport class SuccessButtonComponent extends BaseButtonComponent {\n\toverride loadingLabel = input('Updating...');\n\toverride label = input('Update');\n\toverride icon = input('save');\n\toverride classes = input('success-button');\n\n\tconstructor() {\n\t\tsuper();\n\t}\n}\n","import { Component, input } from '@angular/core';\nimport { MatIcon } from '@angular/material/icon';\nimport { MatButton } from '@angular/material/button';\nimport { BaseButtonComponent } from '../base-button/base-button.component';\n\n@Component({\n\tselector: 'view-button',\n\timports: [MatButton, MatIcon],\n\ttemplate: `\n\t\t<button\n\t\t\tcolor=\"primary\"\n\t\t\t(click)=\"onClick.emit($event)\"\n\t\t\t(focus)=\"onFocus.emit($event)\"\n\t\t\t(blur)=\"onBlur.emit($event)\"\n\t\t\t(keydown)=\"onKeyDown.emit($event)\"\n\t\t\t(keyup)=\"onKeyUp.emit($event)\"\n\t\t\t[disabled]=\"disabled()\"\n\t\t\tmat-button>\n\t\t\t<mat-icon>{{ icon() }}</mat-icon>\n\t\t\t{{ label() }}\n\t\t</button>\n\t`,\n\tstyleUrls: ['../../../../assets/app-buttons.css'],\n})\nexport class ViewButtonComponent extends BaseButtonComponent {\n\toverride label = input('View');\n\toverride icon = input('visibility');\n\n\tconstructor() {\n\t\tsuper();\n\t}\n}\n","import { Component, input } from '@angular/core';\n\nimport { MatButton } from '@angular/material/button';\nimport { MatIcon } from '@angular/material/icon';\nimport { BaseButtonComponent } from '../base-button/base-button.component';\n\n@Component({\n\tselector: 'view-primary-button',\n\timports: [MatButton, MatIcon],\n\ttemplate: `\n\t\t<button\n\t\t\tmat-raised-button\n\t\t\tclass=\"btn {{ classes() }}\"\n\t\t\t(click)=\"onClick.emit($event)\"\n\t\t\t(focus)=\"onFocus.emit($event)\"\n\t\t\t(blur)=\"onBlur.emit($event)\"\n\t\t\t(keydown)=\"onKeyDown.emit($event)\"\n\t\t\t(keyup)=\"onKeyUp.emit($event)\"\n\t\t\t[disabled]=\"disabled()\"\n\t\t\t[type]=\"type()\"\n\t\t\t[style]=\"style()\"\n\t\t\t[attr.data-cy]=\"'view-button'\">\n\t\t\t<mat-icon>{{ icon() }}</mat-icon>\n\t\t\t{{ label() }}\n\t\t</button>\n\t`,\n\tstyleUrls: ['../../../../assets/app-buttons.css'],\n})\nexport class ViewPrimaryButtonComponent extends BaseButtonComponent {\n\toverride label = input('View');\n\toverride icon = input('visibility');\n\toverride classes = input('btn-primary primary-button');\n\n\tconstructor() {\n\t\tsuper();\n\t}\n}\n","import { Component, input } from '@angular/core';\nimport { MatButton } from '@angular/material/button';\nimport { MatIcon } from '@angular/material/icon';\nimport { BaseButtonComponent } from '../base-button/base-button.component';\n\n@Component({\n\tselector: 'primary-button',\n\timports: [MatButton, MatIcon],\n\ttemplate: `\n\t\t<button\n\t\t\tmat-raised-button\n\t\t\tclass=\"btn {{ classes() }}\"\n\t\t\t(click)=\"onClick.emit($event)\"\n\t\t\t(focus)=\"onFocus.emit($event)\"\n\t\t\t(blur)=\"onBlur.emit($event)\"\n\t\t\t(keydown)=\"onKeyDown.emit($event)\"\n\t\t\t(keyup)=\"onKeyUp.emit($event)\"\n\t\t\t[disabled]=\"disabled() || loading()\"\n\t\t\t[type]=\"type()\"\n\t\t\t[style]=\"style()\"\n\t\t\t[attr.data-cy]=\"'primary-button'\">\n\t\t\t@if (loading()) {\n\t\t\t\t<span aria-hidden=\"true\" class=\"spinner-border spinner-border-sm\" role=\"status\"></span>\n\t\t\t}\n\t\t\t@if (!loading() && showIcon()) {\n\t\t\t\t<mat-icon>{{ icon() }}</mat-icon>\n\t\t\t}\n\t\t\t{{ loading() ? loadingLabel() : label() }}\n\t\t</button>\n\t`,\n\tstyleUrls: ['../../../../assets/app-buttons.css'],\n})\nexport class PrimaryButtonComponent extends BaseButtonComponent {\n\toverride loadingLabel = input('Saving...');\n\toverride label = input('Save');\n\toverride icon = input('save');\n\toverride showIcon = input(false);\n\toverride classes = input('btn-primary primary-button');\n\n\tconstructor() {\n\t\tsuper();\n\t}\n}\n","import { Component } from '@angular/core';\nimport { MatButtonModule } from '@angular/material/button';\n\n@Component({\n selector: 'pdf-export-button',\n imports: [MatButtonModule],\n template: ` <button class=\"pdf-export-button\" mat-raised-button type=\"button\" data-cy=\"pdf-export-button\">PDF</button> `,\n styles: [\n `\n\t\t\t.pdf-export-button {\n\t\t\t\tmargin-left: 20px !important;\n\t\t\t\twidth: 100px;\n\t\t\t\tcolor: white !important;\n\t\t\t\tbackground-color: #a3071b !important;\n\t\t\t\tborder-radius: 24px !important;\n\t\t\t}\n\t\t`,\n ]\n})\nexport class PdfExportButtonComponent {}\n","import { Component } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { MatButtonModule } from '@angular/material/button';\n\n@Component({\n selector: 'excel-export-button',\n imports: [CommonModule, MatButtonModule],\n template: ` <button class=\"excel-export-button\" mat-raised-button type=\"button\" data-cy=\"excel-export-button\">Excel</button> `,\n styleUrls: ['../../../../assets/app-buttons.css'],\n styles: [\n `\n\t\t\t.excel-export-button {\n\t\t\t\tmargin-left: 20px !important;\n\t\t\t\tmargin-right: 20px !important;\n\t\t\t\twidth: 100px;\n\t\t\t\tcolor: white !important;\n\t\t\t\tbackground-color: darkgreen !important;\n\t\t\t\tborder-radius: 24px !important;\n\t\t\t}\n\t\t`,\n ]\n})\nexport class ExcelExportButtonComponent {}\n","import { Component, Inject } from '@angular/core';\nimport { MAT_DIALOG_DATA, MatDialogModule, MatDialogRef } from '@angular/material/dialog';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatDividerModule } from '@angular/material/divider';\n\n@Component({\n selector: 'app-confirm-dialog',\n imports: [MatButtonModule, MatDividerModule, MatDialogModule],\n template: `\n\t\t<div class=\"mat-dialog-title\" style=\"text-align: center\">\n\t\t\t<h3 class=\"m-3 mat-headline-5\t\">{{ title }}</h3>\n\t\t</div>\n\n\t\t<mat-divider></mat-divider>\n\t\t<div mat-dialog-content style=\"margin: 20px\">\n\t\t\t<p>{{ message }}</p>\n\t\t</div>\n\n\t\t<div align=\"end\" class=\"modal-footer\" mat-dialog-actions>\n\t\t\t<button (click)=\"onDismiss()\" mat-raised-button>No</button>\n\t\t\t<button (click)=\"onConfirm()\" class=\"primary-button\" mat-raised-button>Yes</button>\n\t\t</div>\n\t`,\n styles: []\n})\nexport class ConfirmDialogComponent {\n\ttitle: string;\n\tmessage: string;\n\n\tconstructor(\n\t\t@Inject(MAT_DIALOG_DATA) public data: ConfirmDialogData,\n\t\tpublic dialogRef: MatDialogRef<ConfirmDialogComponent>,\n\t) {\n\t\t// Update view with given values\n\t\tthis.title = data.title;\n\t\tthis.message = data.message;\n\t}\n\n\tonDismiss() {\n\t\t// Close the dialog, return true\n\t\tthis.dialogRef.close(false);\n\t}\n\n\tonConfirm() {\n\t\t// Close the dialog, return true\n\t\tthis.dialogRef.close(true);\n\t}\n}\n\n/**\n * Class to represent confirm dialog model.\n */\nexport interface ConfirmDialogData {\n\ttitle: string;\n\tmessage: string;\n}\n","import { Component, Inject } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { MAT_SNACK_BAR_DATA, MatSnackBarRef } from '@angular/material/snack-bar';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatButtonModule } from '@angular/material/button';\n\n@Component({\n selector: 'app-error-snack-bar',\n imports: [CommonModule, MatIconModule, MatButtonModule],\n template: `\n\t\t<div class=\"custom-flex-center error-snackbar\">\n\t\t\t<mat-icon>error</mat-icon>\n\t\t\t<label>{{ data.message }}</label>\n\t\t\t<button style=\"margin-left: auto\" (click)=\"close()\" mat-icon-button>\n\t\t\t\t<mat-icon>close</mat-icon>\n\t\t\t</button>\n\t\t</div>\n\t`,\n styleUrls: ['../../../../assets/app-mat-snack-bar.css']\n})\nexport class ErrorSnackBarComponent {\n\tconstructor(\n\t\tpublic msb: MatSnackBarRef<ErrorSnackBarComponent>,\n\t\t@Inject(MAT_SNACK_BAR_DATA) public data: { message: string; action?: string },\n\t) {}\n\n\t/**\n\t * Close the Snack Bar\n\t *\n\t * @author Pavan Kumar Jadda\n\t * @since 2.7.18\n\t */\n\tclose() {\n\t\tthis.msb.dismissWithAction();\n\t}\n}\n","import { Component, Inject } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { MAT_SNACK_BAR_DATA, MatSnackBarRef } from '@angular/material/snack-bar';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatIconModule } from '@angular/material/icon';\n\n@Component({\n selector: 'app-success-snack-bar',\n imports: [CommonModule, MatButtonModule, MatIconModule],\n template: `\n\t\t<div class=\"custom-flex-center success-snackbar\">\n\t\t\t<mat-icon>check_circle</mat-icon>\n\t\t\t<label>{{ data.message }}</label>\n\t\t\t<button style=\"margin-left: auto\" (click)=\"close()\" mat-icon-button>\n\t\t\t\t<mat-icon>close</mat-icon>\n\t\t\t</button>\n\t\t</div>\n\t`,\n styleUrls: ['../../../../assets/app-mat-snack-bar.css']\n})\nexport class SuccessSnackBarComponent {\n\tconstructor(\n\t\tpublic msb: MatSnackBarRef<SuccessSnackBarComponent>,\n\t\t@Inject(MAT_SNACK_BAR_DATA) public data: { message: string; action?: string },\n\t) {}\n\n\t/**\n\t * Close the Snack Bar\n\t *\n\t * @author Pavan Kumar Jadda\n\t * @since 2.7.18\n\t */\n\tclose() {\n\t\tthis.msb.dismissWithAction();\n\t}\n}\n","import { Injectable } from '@angular/core';\nimport { MatSnackBar, MatSnackBarHorizontalPosition, MatSnackBarVerticalPosition } from '@angular/material/snack-bar';\nimport { ErrorSnackBarComponent } from '../components/snack-bar/error-snack-bar/error-snack-bar.component';\nimport { SuccessSnackBarComponent } from '../components/snack-bar/success-snack-bar/success-snack-bar.component';\n\n@Injectable({\n\tprovidedIn: 'root',\n})\nexport class MatSnackBarService {\n\t/**\n\t * Duration (in milliseconds) of the Snack Bar to be open. Defaults to 5 seconds(5000 milliseconds)\n\t */\n\tduration = 500000;\n\n\t/**\n\t * Horizontal Position of the MatSnackBar. Defaults to left side\n\t */\n\thorizontalPosition: MatSnackBarHorizontalPosition = 'right';\n\n\t/**\n\t * Vertical Position of the MatSnackBar. Defaults to page bottom\n\t */\n\tverticalPosition: MatSnackBarVerticalPosition = 'top';\n\n\tconstructor(private snackBar: MatSnackBar) {}\n\n\t/**\n\t * Opens Success Snack Bar\n\t *\n\t * @param message Message to display on Snack Bar\n\t * @param options Options of the Snack Bar\n\t *\n\t * @author Pavan Kumar Jadda\n\t * @since 2.2.3\n\t */\n\tsuccess(message: string, options?: MatSnackBarOptions) {\n\t\tthis.snackBar.openFromComponent(SuccessSnackBarComponent, {\n\t\t\tdata: { message },\n\t\t\tduration: options?.duration ?? this.duration,\n\t\t\tpanelClass: options?.panelClass ?? 'success-snackbar',\n\t\t\thorizontalPosition: options?.horizontalPosition ?? this.horizontalPosition,\n\t\t\tverticalPosition: options?.verticalPosition ?? this.verticalPosition,\n\t\t});\n\t}\n\n\t/**\n\t * Opens Error Snack Bar\n\t *\n\t * @param message Message to display on Snack Bar\n\t * @param options Options of the Snack Bar\n\t *\n\t * @author Pavan Kumar Jadda\n\t * @since 2.2.3\n\t */\n\terror(message: string, options?: MatSnackBarOptions) {\n\t\tthis.snackBar.openFromComponent(ErrorSnackBarComponent, {\n\t\t\tdata: { message },\n\t\t\tduration: options?.duration ?? 10000,\n\t\t\tpanelClass: options?.panelClass ?? 'error-snackbar',\n\t\t\thorizontalPosition: options?.horizontalPosition ?? this.horizontalPosition,\n\t\t\tverticalPosition: options?.verticalPosition ?? this.verticalPosition,\n\t\t});\n\t}\n\n\t/**\n\t * Opens Generic Snack Bar\n\t *\n\t * @param message Message to display on Snack Bar\n\t *\n\t * @author Pavan Kumar Jadda\n\t * @since 2.2.3\n\t */\n\topen(message: string) {\n\t\tthis.snackBar.open(message, 'Close', {\n\t\t\tduration: this.duration,\n\t\t\thorizontalPosition: this.horizontalPosition,\n\t\t\tverticalPosition: this.verticalPosition,\n\t\t});\n\t}\n}\n\n/**\n * MatSnackBarOptions for Snack Bar\n *\n * @author Pavan Kumar Jadda\n * @since 2.7.19\n */\nexport interface MatSnackBarOptions {\n\tduration?: number;\n\thorizontalPosition?: MatSnackBarHorizontalPosition;\n\tverticalPosition?: MatSnackBarVerticalPosition;\n\tpanelClass?: string;\n}\n","import { ProgressState } from '../types/progress-state';\nimport { signal, WritableSignal } from '@angular/core';\n\n/**\n * Initialize Loading or Update ProgressState\n *\n * @return Updated State Object\n *\n * @author Pavan Kumar Jadda\n * @since 2.7.16\n */\nexport const initializeState = (): WritableSignal<ProgressState> => {\n\treturn signal<ProgressState>({\n\t\tisLoading: false,\n\t\tisSuccess: false,\n\t\tisError: false,\n\t\tisComplete: false,\n\t\tmessage: '',\n\t});\n};\n\n/**\n * Initialize Loading or Update ProgressState\n *\n * @param progressState Object to initialize\n * @return ProgressState Updated State Object\n *\n * @author Pavan Kumar Jadda\n * @since 2.7.16\n */\nexport const markLoading = (progressState: WritableSignal<ProgressState>) => {\n\tprogressState.update((state) => {\n\t\treturn {\n\t\t\t...state,\n\t\t\tisLoading: true,\n\t\t\tisSuccess: false,\n\t\t\tisError: false,\n\t\t\tisComplete: false,\n\t\t\tmessage: '',\n\t\t};\n\t});\n};\n\n/**\n * Update state as isSuccess\n *\n * @return ProgressState Updated State Object\n *\n * @author Pavan Kumar Jadda\n * @since 2.7.16\n */\nexport const markSuccess = (progressState: WritableSignal<ProgressState>, message?: string) => {\n\tprogressState.update((state) => {\n\t\treturn {\n\t\t\t...state,\n\t\t\tisLoading: false,\n\t\t\tisSuccess: true,\n\t\t\tisError: false,\n\t\t\tisComplete: true,\n\t\t\tmessage: message || '',\n\t\t};\n\t});\n};\n\n/**\n * Update state as failure or isError\n *\n * @return ProgressState Updated State Object\n *\n * @author Pavan Kumar Jadda\n * @since 2.7.16\n */\nexport const markError = (progressState: WritableSignal<ProgressState>, message?: string) => {\n\tprogressState.update((state) => {\n\t\treturn {\n\t\t\t...state,\n\t\t\tisLoading: false,\n\t\t\tisSuccess: false,\n\t\t\tisError: true,\n\t\t\tisComplete: true,\n\t\t\tmessage: message || '',\n\t\t};\n\t});\n};\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1","i1.NgxSpinnerService","i6","i2","i3"],"mappings":"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"}
1
+ {"version":3,"file":"js-smart-ng-kit.mjs","sources":["../../../projects/ng-kit/src/lib/components/alert/alert.component.ts","../../../projects/ng-kit/src/lib/components/alert/alert.component.html","../../../projects/ng-kit/src/lib/components/spinner/spinner.component.ts","../../../projects/ng-kit/src/lib/components/spinner/spinner.component.html","../../../projects/ng-kit/src/lib/components/ngx-spinner/ngx-spinner.enum.ts","../../../projects/ng-kit/src/lib/components/ngx-spinner/ngx-spinner.service.ts","../../../projects/ng-kit/src/lib/components/ngx-spinner/safe-html.pipe.ts","../../../projects/ng-kit/src/lib/components/ngx-spinner/ngx-spinner.component.ts","../../../projects/ng-kit/src/lib/components/ngx-spinner/ngx-spinner.component.html","../../../projects/ng-kit/src/lib/pipes/type-of.pipe.ts","../../../projects/ng-kit/src/lib/components/autocomplete/autocomplete.component.ts","../../../projects/ng-kit/src/lib/components/autocomplete/autocomplete.component.html","../../../projects/ng-kit/src/lib/directives/ngx-print.directive.ts","../../../projects/ng-kit/src/lib/directives/prevent-multiple-clicks.directive.ts","../../../projects/ng-kit/src/lib/components/buttons/base-button/base-button.component.ts","../../../projects/ng-kit/src/lib/components/buttons/bs-link-button/bs-link-button.component.ts","../../../projects/ng-kit/src/lib/components/buttons/delete-button/delete-button.component.ts","../../../projects/ng-kit/src/lib/components/buttons/edit-button/edit-button.component.ts","../../../projects/ng-kit/src/lib/svg-icons/edit-solid-svg/edit-solid-svg.component.ts","../../../projects/ng-kit/src/lib/components/buttons/edit-bs-button/edit-bs-button.component.ts","../../../projects/ng-kit/src/lib/components/buttons/edit-svg-icon-button/edit-svg-icon-button.component.ts","../../../projects/ng-kit/src/lib/components/buttons/manage-button/manage-button.component.ts","../../../projects/ng-kit/src/lib/components/buttons/save-primary-button/save-primary-button.component.ts","../../../projects/ng-kit/src/lib/components/buttons/search-button/search-button.component.ts","../../../projects/ng-kit/src/lib/components/buttons/success-button/success-button.component.ts","../../../projects/ng-kit/src/lib/components/buttons/view-button/view-button.component.ts","../../../projects/ng-kit/src/lib/components/buttons/view-primary-button/view-primary-button.component.ts","../../../projects/ng-kit/src/lib/components/buttons/primary-button/primary-button.component.ts","../../../projects/ng-kit/src/lib/components/buttons/pdf-export-button/pdf-export-button.component.ts","../../../projects/ng-kit/src/lib/components/buttons/excel-export-button/excel-export-button.component.ts","../../../projects/ng-kit/src/lib/components/confirm-dialog/confirm-dialog.component.ts","../../../projects/ng-kit/src/lib/components/snack-bar/error-snack-bar/error-snack-bar.component.ts","../../../projects/ng-kit/src/lib/components/snack-bar/success-snack-bar/success-snack-bar.component.ts","../../../projects/ng-kit/src/lib/services/mat-snack-bar.service.ts","../../../projects/ng-kit/src/lib/store/store.ts","../../../projects/ng-kit/src/lib/store/entity-store.ts","../../../projects/ng-kit/src/lib/util/progress-util.ts","../../../projects/ng-kit/src/js-smart-ng-kit.ts"],"sourcesContent":["import { ChangeDetectorRef, Component, OnInit, input, signal } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\n/**\n * Boostrap Alert component that can be used to alert messages to the user\n *\n * @author Pavan Kumar Jadda\n * @since 12.0.0\n */\n@Component({\n selector: 'lib-alert, alert',\n imports: [CommonModule],\n templateUrl: './alert.component.html',\n styleUrls: ['./alert.component.scss']\n})\nexport class AlertComponent implements OnInit {\n\t/**\n\t * Type of the BootStrap Alert. Following values are supported. See BootStrap docs for more information\n\t * <pre>\n\t * 1. info\n\t * 2. primary\n\t * 3. secondary\n\t * 4. success\n\t * 5. warning\n\t * 6. danger\n\t * 7. dark\n\t * 8. light\n\t * </pre>\n\t */\n\ttype = input('info');\n\n\t/**\n\t * Is alert visible or open\n\t */\n\tisOpen = input(true);\n\n\t/**\n\t * Writable signal for isOpen\n\t */\n\topen = signal(this.isOpen());\n\n\t/**\n\t * If set, displays an inline “Close” button\n\t */\n\tdismissible = input(true);\n\n\t/**\n\t * If set, dismisses the alert after Dismiss Timeout\n\t */\n\tdismissOnTimeout = input(true);\n\n\t/**\n\t * Number in milliseconds, after which alert will be closed. Default value is 5000 ms\n\t */\n\tdismissTimeout = input(5000);\n\n\t/**\n\t * Additional classes to be added to the alert. This can be used to add custom styles to the alert\n\t */\n\tclass = input('');\n\n\tconstructor(private cdr: ChangeDetectorRef) {}\n\n\t/**\n\t * Initialize the component and settings\n\t *\n\t * @author Pavan Kumar Jadda\n\t * @since 12.0.0\n\t */\n\tngOnInit(): void {\n\t\tthis.openAlert();\n\n\t\tif (this.dismissOnTimeout()) {\n\t\t\tsetTimeout(() => {\n\t\t\t\tthis.closeAlert();\n\t\t\t\tthis.cdr.markForCheck();\n\t\t\t}, this.dismissTimeout());\n\t\t}\n\t}\n\n\t/**\n\t * Closes BootStrap Alert if not open\n\t *\n\t * @author Pavan Kumar Jadda\n\t * @since 12.0.0\n\t */\n\tcloseAlert(): void {\n\t\tif (!this.isOpen()) {\n\t\t\treturn;\n\t\t}\n\t\tthis.open.set(false);\n\t}\n\n\t/**\n\t * Opens Bootstrap Alert\n\t *\n\t * @author Pavan Kumar Jadda\n\t * @since 12.0.0\n\t */\n\tprivate openAlert(): void {\n\t\tthis.open.set(true);\n\t}\n}\n","@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","import { Component, input } from '@angular/core';\nimport { ThemePalette } from '@angular/material/core';\nimport { MatProgressSpinnerModule } from '@angular/material/progress-spinner';\n\n@Component({\n selector: 'spinner,lib-spinner',\n imports: [MatProgressSpinnerModule],\n templateUrl: './spinner.component.html',\n styleUrls: ['./spinner.component.scss']\n})\nexport class SpinnerComponent {\n\t/**\n\t * Use Boostrap Spinner. Default `true`\n\t */\n\tbootstrapSpinner = input(true);\n\n\t/**\n\t * Diameter of the Angular Material spinner\n\t */\n\tdiameter = input(50);\n\n\t/**\n\t * Color of the Angular Material spinner\n\t */\n\tcolor = input<ThemePalette>('primary');\n\n\t/**\n\t * Stroke Width of the Angular Material spinner\n\t */\n\tstrokeWidth = input(5);\n}\n","<!-- 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","export const LOADERS = {\n\t'ball-clip-rotate': 1,\n};\n\nexport const DEFAULTS = {\n\tBD_COLOR: 'rgba(51,51,51,0.8)',\n\tSPINNER_COLOR: '#fff',\n\tSPINNER_TYPE: 'ball-clip-rotate',\n\tZ_INDEX: 99999,\n};\n\nexport const PRIMARY_SPINNER = 'primary';\n\nexport type Size = 'default' | 'small' | 'medium' | 'large';\n\nexport interface Spinner {\n\tbdColor?: string;\n\tsize?: Size;\n\tcolor?: string;\n\ttype?: string;\n\tfullScreen?: boolean;\n\tzIndex?: number;\n\ttemplate?: string;\n\tshowSpinner?: boolean;\n}\n\nexport class NgxSpinner {\n\tname?: string;\n\tbdColor?: string;\n\tsize?: Size;\n\tcolor?: string;\n\ttype?: string;\n\tclass?: string;\n\tdivCount?: number;\n\tdivArray?: Array<number>;\n\tfullScreen?: boolean;\n\tshow?: boolean;\n\tzIndex?: number;\n\ttemplate?: string;\n\tshowSpinner?: boolean;\n\n\tconstructor(init?: Partial<NgxSpinner>) {\n\t\tObject.assign(this, init);\n\t}\n}\n","import { Injectable } from '@angular/core';\nimport { BehaviorSubject, Observable } from 'rxjs';\nimport { filter } from 'rxjs/operators';\nimport { NgxSpinner, PRIMARY_SPINNER, Spinner } from './ngx-spinner.enum';\n\n@Injectable({\n\tprovidedIn: 'root',\n})\nexport class NgxSpinnerService {\n\t/**\n\t * Spinner observable\n\t *\n\t * @memberof NgxSpinnerService\n\t */\n\t// private spinnerObservable = new ReplaySubject<NgxSpinner>(1);\n\tpublic spinnerObservable = new BehaviorSubject<NgxSpinner | undefined>(undefined);\n\n\t/**\n\t * Creates an instance of NgxSpinnerService.\n\t * @memberof NgxSpinnerService\n\t */\n\n\t/**\n\t * Get subscription of desired spinner\n\t * @memberof NgxSpinnerService\n\t **/\n\tgetSpinner(name: string): Observable<NgxSpinner> {\n\t\t// @ts-ignore\n\t\treturn this.spinnerObservable.asObservable().pipe(filter((x) => x?.name === name));\n\t}\n\n\t/**\n\t * To show spinner\n\t *\n\t * @memberof NgxSpinnerService\n\t */\n\tshow(name: string = PRIMARY_SPINNER, spinner?: Spinner) {\n\t\treturn new Promise((resolve, _reject) => {\n\t\t\tsetTimeout(() => {\n\t\t\t\tif (spinner && Object.keys(spinner).length) {\n\t\t\t\t\t// @ts-ignore\n\t\t\t\t\tspinner['name'] = name;\n\t\t\t\t\tthis.spinnerObservable.next(new NgxSpinner({ ...spinner, show: true }));\n\t\t\t\t\tresolve(true);\n\t\t\t\t} else {\n\t\t\t\t\tthis.spinnerObservable.next(new NgxSpinner({ name, show: true }));\n\t\t\t\t\tresolve(true);\n\t\t\t\t}\n\t\t\t}, 10);\n\t\t});\n\t}\n\n\t/**\n\t * To hide spinner\n\t *\n\t * @memberof NgxSpinnerService\n\t */\n\thide(name: string = PRIMARY_SPINNER, debounce: number = 10) {\n\t\treturn new Promise((resolve, _reject) => {\n\t\t\tsetTimeout(() => {\n\t\t\t\tthis.spinnerObservable.next(new NgxSpinner({ name, show: false }));\n\t\t\t\tresolve(true);\n\t\t\t}, debounce);\n\t\t});\n\t}\n}\n","import { DomSanitizer, SafeHtml } from '@angular/platform-browser';\nimport { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n\tname: 'safeHtml',\n\tstandalone: true,\n})\nexport class SafeHtmlPipe implements PipeTransform {\n\tconstructor(private _sanitizer: DomSanitizer) {}\n\n\ttransform(v: string): SafeHtml | undefined {\n\t\tif (v) {\n\t\t\treturn this._sanitizer.bypassSecurityTrustHtml(v);\n\t\t}\n\t\treturn undefined;\n\t}\n}\n","import { ChangeDetectorRef, Component, HostListener, Input, OnChanges, OnDestroy, OnInit, SimpleChange, ViewChild } from '@angular/core';\nimport { NgxSpinnerService } from './ngx-spinner.service';\nimport { Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\nimport { DEFAULTS, LOADERS, NgxSpinner, PRIMARY_SPINNER, Size } from './ngx-spinner.enum';\nimport { animate, state, style, transition, trigger } from '@angular/animations';\nimport { SafeHtmlPipe } from './safe-html.pipe';\n\n@Component({\n selector: 'ngx-spinner',\n imports: [SafeHtmlPipe],\n templateUrl: 'ngx-spinner.component.html',\n styleUrls: ['ngx-spinner.component.css'],\n animations: [\n trigger('fadeIn', [\n state('in', style({ opacity: 1 })),\n transition(':enter', [style({ opacity: 0 }), animate(300)]),\n transition(':leave', animate(200, style({ opacity: 0 }))),\n ]),\n ]\n})\nexport class NgxSpinnerComponent implements OnDestroy, OnInit, OnChanges {\n\t/**\n\t * To set backdrop color\n\t * Only supports RGBA color format\n\t */\n\t@Input() bdColor: string;\n\n\t/**\n\t * To set spinner size\n\t */\n\t@Input() size: Size;\n\n\t/**\n\t * To set spinner color(DEFAULTS.SPINNER_COLOR)\n\t */\n\t@Input() color: string;\n\n\t/**\n\t * To set type of spinner\n\t */\n\t@Input() type: string;\n\n\t/**\n\t * To toggle fullscreen mode\n\t */\n\t@Input() fullScreen: boolean;\n\t/**\n\t * Spinner name\n\t */\n\t@Input() name: string;\n\t/**\n\t * z-index value\n\t */\n\n\t@Input() zIndex: number;\n\t/**\n\t * Custom template for spinner/loader\n\t */\n\n\t@Input() template: string;\n\t/**\n\t * Show/Hide the spinner\n\t * @type {boolean}\n\t */\n\t@Input() showSpinner: boolean;\n\n\t/**\n\t * To enable/disable animation\n\t */\n\t@Input() disableAnimation = false;\n\t/**\n\t * Spinner Object\n\t */\n\n\tspinner: NgxSpinner = new NgxSpinner();\n\t/**\n\t * Array for spinner's div\n\t */\n\tdivArray: Array<number>;\n\t/**\n\t * Counter for div\n\t */\n\tdivCount: number;\n\t/**\n\t * Show spinner\n\t **/\n\tshow: boolean;\n\n\t/**\n\t * Unsubscribe from spinner's observable\n\t **/\n\tngUnsubscribe: Subject<void> = new Subject();\n\t/**\n\t * Element Reference\n\t */\n\t// @ts-ignore\n\t@ViewChild('overlay') spinnerDOM;\n\n\t/**\n\t * Creates an instance of NgxSpinnerComponent.\n\t */\n\tconstructor(\n\t\tprivate spinnerService: NgxSpinnerService,\n\t\tprivate changeDetector: ChangeDetectorRef,\n\t) {\n\t\tthis.bdColor = DEFAULTS.BD_COLOR;\n\t\tthis.zIndex = DEFAULTS.Z_INDEX;\n\t\tthis.color = DEFAULTS.SPINNER_COLOR;\n\t\tthis.type = DEFAULTS.SPINNER_TYPE;\n\t\tthis.size = 'large';\n\t\tthis.fullScreen = true;\n\t\tthis.name = PRIMARY_SPINNER;\n\t\t// @ts-ignore\n\t\tthis.template = null;\n\t\tthis.showSpinner = false;\n\t\tthis.divArray = [];\n\t\tthis.divCount = 0;\n\t\tthis.show = false;\n\t}\n\n\t@HostListener('document:keydown', ['$event'])\n\thandleKeyboardEvent(event: KeyboardEvent) {\n\t\tif (this.spinnerDOM && this.spinnerDOM.nativeElement) {\n\t\t\tevent.returnValue = false;\n\t\t\tevent.preventDefault();\n\t\t}\n\t}\n\n\t/**\n * Initialization method\n\n */\n\tngOnInit() {\n\t\tthis.setDefaultOptions();\n\t\tthis.spinnerService\n\t\t\t.getSpinner(this.name)\n\t\t\t.pipe(takeUntil(this.ngUnsubscribe))\n\t\t\t.subscribe((spinner: NgxSpinner) => {\n\t\t\t\tthis.setDefaultOptions();\n\t\t\t\tObject.assign(this.spinner, spinner);\n\t\t\t\tif (spinner.show) {\n\t\t\t\t\tthis.onInputChange();\n\t\t\t\t}\n\t\t\t\tthis.changeDetector.detectChanges();\n\t\t\t});\n\t}\n\n\t/**\n\t * To set default ngx-spinner options\n\t */\n\tsetDefaultOptions = () => {\n\t\tthis.spinner = new NgxSpinner({\n\t\t\tname: this.name,\n\t\t\tbdColor: this.bdColor,\n\t\t\tsize: this.size,\n\t\t\tcolor: this.color,\n\t\t\ttype: this.type,\n\t\t\tfullScreen: this.fullScreen,\n\t\t\tdivArray: this.divArray,\n\t\t\tdivCount: this.divCount,\n\t\t\tshow: this.show,\n\t\t\tzIndex: this.zIndex,\n\t\t\ttemplate: this.template,\n\t\t\tshowSpinner: this.showSpinner,\n\t\t});\n\t};\n\n\t/**\n\t * On changes event for input variables\n\t */\n\tngOnChanges(changes: { [propKey: string]: SimpleChange }) {\n\t\tfor (const propName in changes) {\n\t\t\tif (propName) {\n\t\t\t\tconst changedProp = changes[propName];\n\t\t\t\tif (changedProp.isFirstChange()) {\n\t\t\t\t\treturn;\n\t\t\t\t} else if (typeof changedProp.currentValue !== 'undefined' && changedProp.currentValue !== changedProp.previousValue) {\n\t\t\t\t\tif (changedProp.currentValue !== '') {\n\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\tthis.spinner[propName] = changedProp.currentValue;\n\t\t\t\t\t\tif (propName === 'showSpinner') {\n\t\t\t\t\t\t\tif (changedProp.currentValue) {\n\t\t\t\t\t\t\t\tthis.spinnerService.show(this.spinner.name, this.spinner);\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tthis.spinnerService.hide(this.spinner.name);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t * To get class for spinner\n\t */\n\tgetClass(type: string, size: Size): string {\n\t\t// @ts-ignore\n\t\tthis.spinner.divCount = LOADERS[type];\n\t\tthis.spinner.divArray = Array(this.spinner.divCount)\n\t\t\t.fill(0)\n\t\t\t.map((x, i) => i);\n\t\tlet sizeClass = '';\n\t\tswitch (size.toLowerCase()) {\n\t\t\tcase 'small':\n\t\t\t\tsizeClass = 'la-sm';\n\t\t\t\tbreak;\n\t\t\tcase 'medium':\n\t\t\t\tsizeClass = 'la-2x';\n\t\t\t\tbreak;\n\t\t\tcase 'large':\n\t\t\t\tsizeClass = 'la-3x';\n\t\t\t\tbreak;\n\t\t\tdefault:\n\t\t\t\tbreak;\n\t\t}\n\t\treturn 'la-' + type + ' ' + sizeClass;\n\t}\n\n\t/**\n\t * Check if input variables have changed\n\t */\n\tonInputChange() {\n\t\tthis.spinner.class = this.getClass(this.spinner.type ?? DEFAULTS.SPINNER_TYPE, this.spinner.size ?? 'default');\n\t}\n\n\t/**\n\t * Component destroy event\n\t */\n\tngOnDestroy() {\n\t\tthis.ngUnsubscribe.next();\n\t\tthis.ngUnsubscribe.complete();\n\t}\n}\n","@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","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n\tname: 'typeOf',\n\tstandalone: true,\n})\nexport class TypeOfPipe implements PipeTransform {\n\ttransform(value: any): any {\n\t\treturn typeof value;\n\t}\n}\n","import { AsyncPipe } from '@angular/common';\nimport {\n\tAfterContentChecked,\n\tChangeDetectorRef,\n\tComponent,\n\tElementRef,\n\tforwardRef,\n\tInput,\n\tinput,\n\tOnChanges,\n\tOnInit,\n\tOptional,\n\toutput,\n\tSimpleChanges,\n\tViewChild,\n} from '@angular/core';\nimport { ControlValueAccessor, FormControl, NG_VALUE_ACCESSOR, ReactiveFormsModule } from '@angular/forms';\nimport { MatAutocompleteModule, MatAutocompleteTrigger } from '@angular/material/autocomplete';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatOptionSelectionChange } from '@angular/material/core';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatInputModule } from '@angular/material/input';\nimport { BehaviorSubject, Observable } from 'rxjs';\nimport { map, startWith } from 'rxjs/operators';\nimport { TypeOfPipe } from '../../pipes/type-of.pipe';\n\n/**\n * Reusable Auto Complete component that extends MatAutoComplete to show Clear icon and Arrow buttons\n *\n * @author Pavan Kumar Jadda\n * @since 12.0.0\n */\n@Component({\n\tselector: 'autocomplete, lib-autocomplete',\n\timports: [\n\t\tReactiveFormsModule,\n\t\tTypeOfPipe,\n\t\tMatFormFieldModule,\n\t\tMatAutocompleteModule,\n\t\tMatInputModule,\n\t\tMatButtonModule,\n\t\tMatIconModule,\n\t\tAsyncPipe,\n\t],\n\ttemplateUrl: './autocomplete.component.html',\n\tproviders: [\n\t\t{\n\t\t\tprovide: NG_VALUE_ACCESSOR,\n\t\t\tuseExisting: forwardRef(() => AutocompleteComponent),\n\t\t\tmulti: true,\n\t\t},\n\t],\n})\nexport class AutocompleteComponent implements OnInit, OnChanges, AfterContentChecked, ControlValueAccessor {\n\t/**\n\t * Gets reference inputAutoComplete HTML attribute\n\t */\n\t@ViewChild('inputAutoComplete') inputAutoComplete!: ElementRef;\n\n\t/**\n\t * Internal form control for the autocomplete\n\t */\n\tcontrol = new FormControl('');\n\n\t/**\n\t * Label of the AutoComplete\n\t */\n\tlabel = input('');\n\n\t/**\n\t * Placeholder of the AutoComplete\n\t */\n\tplaceHolder = input('');\n\n\t/**\n\t * Appearance of the AutoComplete, defaults to `fill`\n\t */\n\tappearance = input('fill');\n\n\t/**\n\t * List of CSS classes that need to applied to autocomplete\n\t */\n\tclasses = input('');\n\n\t/**\n\t * Attribute of the Object whose value would be shown when searching for data. Defaults to `ID`\n\t */\n\tbindLabel = input('');\n\n\t/**\n\t * Attribute of the Object whose value would be used for search\n\t */\n\tbindValue = input('id');\n\n\t/**\n\t * Function that maps an option's control value to its display value in the trigger.\n\t */\n\t@Input() @Optional() displayWith: ((value: any) => string) | null = null;\n\n\t/**\n\t * Specifies if the autocomplete is required. Default is not required.\n\t */\n\trequired = input(false);\n\n\t/**\n\t * Specifies if the autocomplete is disabled. Default is not required.\n\t */\n\tdisabled = input(false);\n\n\t/**\n\t * List of Objects that need to be bind and searched for\n\t */\n\tdata = input<string[] | any[]>();\n\n\t/**\n\t * Emit selected value on selection changes\n\t */\n\tonSelectionChange = output<any>();\n\n\t/**\n\t * BehaviorSubject that shows the current active arrow icon\n\t */\n\tarrowIconSubject = new BehaviorSubject('arrow_drop_down');\n\n\t/**\n\t * Filtered options when user types\n\t */\n\tfilteredOptions: Observable<any[] | undefined> | undefined;\n\tprivate value: any;\n\n\tconstructor(private cdRef: ChangeDetectorRef) {}\n\n\twriteValue(value: any): void {\n\t\tthis.value = value;\n\t\tthis.control.setValue(value, { emitEvent: false });\n\t}\n\n\tregisterOnChange(fn: any): void {\n\t\tthis.onChange = fn;\n\t\t// Forward value changes from internal control to parent form\n\t\tthis.control.valueChanges.subscribe((value) => fn(value));\n\t}\n\n\tregisterOnTouched(fn: any): void {\n\t\tthis.onTouched = fn;\n\t}\n\n\tsetDisabledState(isDisabled: boolean): void {\n\t\tisDisabled ? this.control.disable() : this.control.enable();\n\t}\n\n\tngAfterContentChecked(): void {\n\t\tthis.cdRef.detectChanges();\n\t}\n\n\tngOnInit() {\n\t\tthis.filteredOptions = this.control.valueChanges.pipe(\n\t\t\tstartWith(''),\n\t\t\tmap((value) => (typeof value === 'string' ? value : value !== null ? value[this.bindLabel()] : '')),\n\t\t\tmap(\n\t\t\t\t(propertyName) =>\n\t\t\t\t\tthis.data()?.filter((option) => {\n\t\t\t\t\t\treturn typeof option === 'string'\n\t\t\t\t\t\t\t? option?.toLowerCase().indexOf(propertyName.toLowerCase()) === 0\n\t\t\t\t\t\t\t: option[this.bindLabel()]?.toLowerCase().indexOf(propertyName.toLowerCase()) === 0;\n\t\t\t\t\t}) ?? this.data()?.slice(),\n\t\t\t),\n\t\t);\n\t}\n\n\tngOnChanges(_changes: SimpleChanges): void {\n\t\tthis.displayFn = this.displayFn.bind(this);\n\t}\n\n\tclearInput(evt: any): void {\n\t\tevt.stopPropagation();\n\t\tthis.control.reset();\n\t\tthis.onChange(null);\n\t\tthis.inputAutoComplete?.nativeElement.focus();\n\t}\n\n\topenOrClosePanel(evt: any, trigger: MatAutocompleteTrigger): void {\n\t\tevt.stopPropagation();\n\t\tif (trigger.panelOpen) trigger.closePanel();\n\t\telse trigger.openPanel();\n\t}\n\n\tdisplayFn(object: any): string {\n\t\tif (this.displayWith !== undefined && this.displayWith !== null && typeof this.displayWith === 'function') {\n\t\t\tthis.displayFn = this.displayWith.bind(this);\n\t\t\treturn this.displayWith(object);\n\t\t} else {\n\t\t\tif (typeof object === 'string') return object;\n\t\t\treturn object && object[this.bindLabel()] ? object[this.bindLabel()] : '';\n\t\t}\n\t}\n\n\temitSelectedValue($event: MatOptionSelectionChange) {\n\t\tthis.onSelectionChange.emit($event.source.value);\n\t\tthis.onChange($event.source.value);\n\t\tthis.onTouched();\n\t}\n\n\t// ControlValueAccessor implementation\n\tprivate onChange: (value: any) => void = () => {};\n\n\tprivate onTouched: () => void = () => {};\n}\n","<div>\n\t<mat-form-field appearance=\"fill\" class=\"{{ classes() }}\">\n\t\t<mat-label>{{ label() }}</mat-label>\n\t\t<input\n\t\t\t#inputAutoComplete\n\t\t\t#trigger=\"matAutocompleteTrigger\"\n\t\t\t[matAutocomplete]=\"auto\"\n\t\t\t[placeholder]=\"placeHolder()\"\n\t\t\t[required]=\"required()\"\n\t\t\t[formControl]=\"control\"\n\t\t\tmatInput\n\t\t\ttype=\"text\" />\n\n\t\t<div matSuffix style=\"display: flex\">\n @if (control.value) {\n\t\t\t\t<button (click)=\"clearInput($event)\" aria-label=\"Clear\" mat-icon-button type=\"button\">\n\t\t\t\t\t<mat-icon>clear</mat-icon>\n\t\t\t\t</button>\n\t\t\t}\n\t\t\t<button (click)=\"openOrClosePanel($event, trigger)\" aria-label=\"Clear\" mat-icon-button type=\"button\">\n\t\t\t\t<mat-icon>{{ arrowIconSubject.getValue() }}</mat-icon>\n\t\t\t</button>\n\t\t</div>\n\n\t\t<mat-autocomplete\n\t\t\t#auto=\"matAutocomplete\"\n\t\t\t(closed)=\"arrowIconSubject.next('arrow_drop_down')\"\n\t\t\t(opened)=\"arrowIconSubject.next('arrow_drop_up')\"\n\t\t\t(optionSelected)=\"arrowIconSubject.next('arrow_drop_down')\"\n\t\t\t[displayWith]=\"displayFn\">\n\t\t\t@for (option of filteredOptions | async; track option[bindValue()]) {\n\t\t\t\t<mat-option (onSelectionChange)=\"emitSelectedValue($event)\" [value]=\"option\">\n\t\t\t\t\t@if ((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","import { Directive, HostListener, Input } from '@angular/core';\nimport { MatTableDataSource } from '@angular/material/table';\nimport { MatPaginator } from '@angular/material/paginator';\n\n/**\n * Reusable Angular directory that prints given contents of HTML element\n *\n * @since 12.0.0\n * @author Pavan Kumar Jadda\n */\n@Directive({\n\t// eslint-disable-next-line @angular-eslint/directive-selector\n\tselector: 'button[ngxPrint], button[print]',\n\tstandalone: true,\n})\nexport class NgxPrintDirective {\n\t/**\n\t * ID of the HTML element those contents need to be printed\n\t *\n\t * @since 12.0.0\n\t * @author Pavan Kumar Jadda\n\t */\n\t@Input() printSectionId: string | undefined;\n\n\t/**\n\t * Title of the HTML element those contents need to be printed\n\t *\n\t * @since 12.0.0\n\t * @author Pavan Kumar Jadda\n\t */\n\t@Input() printTitle: string | undefined;\n\n\t/**\n\t * If `true`, uses CSS of HTMl element, otherwise no CSS applied\n\t *\n\t * @since 12.0.0\n\t * @author Pavan Kumar Jadda\n\t */\n\t@Input() useExistingCss = false;\n\n\t/**\n\t * A delay in milliseconds to force the print dialog to wait before opened. Default: 0\n\t *\n\t * @since 12.0.0\n\t * @author Pavan Kumar Jadda\n\t */\n\t@Input() printDelay = 0;\n\n\t/**\n\t * Instance of the Mat Table Data Source\n\t *\n\t * @since 12.0.0\n\t * @author Pavan Kumar Jadda\n\t */\n\t@Input() matTableDataSource!: MatTableDataSource<any>;\n\n\t/**\n\t * Instance of the Mat Paginator\n\t *\n\t * @since 12.0.0\n\t * @author Pavan Kumar Jadda\n\t */\n\t@Input() paginator!: MatPaginator;\n\n\t/**\n\t * ID of the Mat Paginator\n\t *\n\t * @since 12.0.0\n\t * @author Pavan Kumar Jadda\n\t */\n\t@Input() paginatorId = '';\n\n\t/**\n\t * HTML tag ID of the Mat-Table Input Filter\n\t *\n\t * @since 12.0.0\n\t * @author Pavan Kumar Jadda\n\t */\n\t@Input() inputFilterId = '';\n\n\t/**\n\t * If `true`, referenced table is Mat-Table\n\t *\n\t * @since 12.0.0\n\t * @author Pavan Kumar Jadda\n\t */\n\t@Input() isMatTable = false;\n\n\t/**\n\t * If `true` Mat-Table paginator will be hidden\n\t *\n\t * @since 12.0.0\n\t * @author Pavan Kumar Jadda\n\t */\n\t@Input() hideMatTablePaginator = false;\n\n\tpublic printStyleArray = [];\n\t/**\n\t * List of Style sheet files\n\t *\n\t * @since 12.0.0\n\t * @author Pavan Kumar Jadda\n\t */\n\tprivate styleSheetFileArray = '';\n\n\t/**\n\t * List of CSS properties that needs to be applied while printing the document\n\t *\n\t * @since 12.0.0\n\t * @author Pavan Kumar Jadda\n\t */\n\t@Input()\n\tset printStyle({ values }: PrintStyleParams) {\n\t\tfor (const key in values) {\n\t\t\tif (values.hasOwnProperty(key)) {\n\t\t\t\t// @ts-ignore\n\t\t\t\tthis.printStyleArray.push((key + JSON.stringify(values[key])).replace(/['\"]+/g, ''));\n\t\t\t}\n\t\t}\n\t\tthis.returnStyleValues();\n\t}\n\n\t/**\n\t * Sets given style sheet files to print document\n\t *\n\t * @param cssList Comma separated value of CSS file names\n\t *\n\t * @since 12.0.0\n\t * @author Pavan Kumar Jadda\n\t */\n\t@Input()\n\tset styleSheetFile(cssList: string) {\n\t\tif (cssList.indexOf(',') !== -1) {\n\t\t\tconst cssFileArray = cssList.split(',');\n\t\t\tfor (const cssFileName of cssFileArray) {\n\t\t\t\tthis.styleSheetFileArray = this.styleSheetFileArray + NgxPrintDirective.linkTagFn(cssFileName);\n\t\t\t}\n\t\t} else {\n\t\t\tthis.styleSheetFileArray = NgxPrintDirective.linkTagFn(cssList);\n\t\t}\n\t}\n\n\t/**\n\t * Build link HTMl tag based on given file name\n\t *\n\t * @since 12.0.0\n\t * @author Pavan Kumar Jadda\n\t */\n\tprivate static linkTagFn(cssFileName: string): string {\n\t\treturn `<link rel=\"stylesheet\" type=\"text/css\" href=\"${cssFileName}\">`;\n\t}\n\n\t/**\n\t * Gets HTML element by tag name\n\t *\n\t * @since 12.0.0\n\t * @author Pavan Kumar Jadda\n\t */\n\tprivate static getElementTag(tag: keyof HTMLElementTagNameMap): string {\n\t\tconst html: string[] = [];\n\t\tconst elements = document.getElementsByTagName(tag);\n\t\t// @ts-ignore\n\t\tfor (const element of elements) {\n\t\t\thtml.push(element.outerHTML);\n\t\t}\n\t\treturn html.join('\\r\\n');\n\t}\n\n\t/**\n\t * Print the element upon clicking the button\n\t *\n\t * @since 12.0.0\n\t * @author Pavan Kumar Jadda\n\t */\n\t@HostListener('click')\n\tpublic print(): void {\n\t\t//Hide paginator for Material table\n\t\tif (this.isMatTable && this.hideMatTablePaginator && this.matTableDataSource) {\n\t\t\tthis.matTableDataSource.paginator = null;\n\t\t}\n\n\t\tsetTimeout(() => {\n\t\t\tif (this.isMatTable) {\n\t\t\t\tthis.hideMatPaginatorBeforePrinting();\n\t\t\t}\n\n\t\t\t// Do something after\n\t\t\tlet printContents;\n\t\t\tlet popupWin;\n\t\t\tlet styles = '';\n\t\t\tlet links = '';\n\n\t\t\tif (this.useExistingCss) {\n\t\t\t\tstyles = NgxPrintDirective.getElementTag('style');\n\t\t\t\tlinks = NgxPrintDirective.getElementTag('link');\n\t\t\t}\n\t\t\tif (this.printSectionId) {\n\t\t\t\tprintContents = document.getElementById(this.printSectionId)?.innerHTML;\n\t\t\t\tpopupWin = window.open('', '_blank', 'top=0,left=0,height=auto,width=auto');\n\t\t\t\tpopupWin?.document.open();\n\t\t\t\tpopupWin?.document.write(`\n <html lang=\"en-us\">\n <head>\n <title>${this.printTitle ? this.printTitle : ''}</title>\n ${this.returnStyleValues()}\n ${this.styleSheetFileArray}\n ${styles}\n ${links}\n </head>\n <body>\n ${printContents}\n <script defer>\n function triggerPrint() {\n window.removeEventListener('load', triggerPrint, false);\n setTimeout(() => {\n window.print();\n setTimeout(function() { window.close(); }, 0);\n }, ${this.printDelay});\n }\n window.addEventListener('load', triggerPrint, false);\n </script>\n </body>\n </html>`);\n\n\t\t\t\tpopupWin?.document.close();\n\n\t\t\t\t//Revert back the mat-paginator after printing\n\t\t\t\tif (this.isMatTable) {\n\t\t\t\t\tthis.showMatPaginatorAfterPrinting();\n\t\t\t\t}\n\t\t\t}\n\t\t}, 1000); //1 second timeout to hide paginator\n\t}\n\n\t/**\n\t * Hide Mat Paginator before Printing\n\t *\n\t * @since 12.0.1\n\t * @author Pavan Kumar Jadda\n\t */\n\tprivate hideMatPaginatorBeforePrinting() {\n\t\t// @ts-ignore\n\t\tdocument.getElementById(this.paginatorId).style.display = 'none';\n\t\tif (document.getElementById(this.inputFilterId) != null) {\n\t\t\t// @ts-ignore\n\t\t\tdocument.getElementById(this.inputFilterId).style.display = 'none';\n\t\t}\n\t}\n\n\t/**\n\t * Show Mat Paginator after Printing\n\t *\n\t * @since 12.0.1\n\t * @author Pavan Kumar Jadda\n\t */\n\tprivate showMatPaginatorAfterPrinting() {\n\t\tthis.matTableDataSource.paginator = this.paginator;\n\t\t// @ts-ignore\n\t\tdocument.getElementById(this.paginatorId).style.display = 'block';\n\t\tif (document.getElementById(this.inputFilterId) != null) {\n\t\t\t// @ts-ignore\n\t\t\tdocument.getElementById(this.inputFilterId).style.display = 'block';\n\t\t}\n\t}\n\n\t/**\n\t * @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\n\t *\n\t * @since 12.0.0\n\t * @author Pavan Kumar Jadda\n\t */\n\tprivate returnStyleValues() {\n\t\treturn `<style> ${this.printStyleArray.join(' ').replace(/,/g, ';')} </style>`;\n\t}\n}\n\ninterface PrintStyleParams {\n\tvalues: { [p: string]: { [p: string]: string } };\n}\n","import { Directive, EventEmitter, HostListener, OnDestroy, OnInit, Output, input } from '@angular/core';\nimport { Subject, Subscription, throttleTime } from 'rxjs';\n\n@Directive({\n\tselector: '[preventMultipleClicks]',\n\tstandalone: true,\n})\nexport class PreventMultipleClicksDirective implements OnInit, OnDestroy {\n\tthrottleTime = input(2000);\n\t@Output() throttleClick = new EventEmitter();\n\n\tprivate clicks = new Subject();\n\tprivate subscription: Subscription | undefined;\n\n\t/**\n\t * Intercepts click event and stops default navigation. After first click set {@link throttleTime} to 2000 to prevent duplicate clicks\n\t *\n\t * @param event DOM event\n\t *\n\t * @author Pavan Kumar Jadda\n\t * @since 2.3.27\n\t */\n\t@HostListener('click', ['$event'])\n\tclickEvent(event: any) {\n\t\tevent.preventDefault();\n\t\tevent.stopPropagation();\n\t\tthis.clicks.next(event);\n\t}\n\n\tngOnInit() {\n\t\tthis.subscription = this.clicks.pipe(throttleTime(this.throttleTime())).subscribe((e) => this.throttleClick.emit(e));\n\t}\n\n\tngOnDestroy() {\n\t\tthis.subscription?.unsubscribe();\n\t}\n}\n","import { Component, input, output } from '@angular/core';\n\n@Component({\n\tstandalone: true,\n\ttemplate: ``,\n})\nexport class BaseButtonComponent {\n\t/**\n\t * Is search in progress and loading the data\n\t */\n\tloading = input(false, { transform: (value: boolean | undefined) => value ?? false });\n\n\t/**\n\t * Is button disabled\n\t */\n\tdisabled = input<boolean>(false);\n\n\t/**\n\t * Type of the button. Following values are supported. See BootStrap docs for more information\n\t * <pre>\n\t * 1. button\n\t * 2. submit\n\t * </pre>\n\t */\n\ttype = input('button');\n\n\t/**\n\t * If set, shows when action in Progress\n\t */\n\tloadingLabel = input('Saving...');\n\n\t/**\n\t * If set, shows when Delete is not in progress\n\t */\n\tlabel = input('Save');\n\n\t/**\n\t * If set, shows the icon. Otherwise, shows delete icon\n\t */\n\ticon = input('save');\n\n\t/**\n\t * If set, shows material icon otherwise hides the icons\n\t */\n\tshowIcon = input(true);\n\n\t/**\n\t * If set, sets the style of the button\n\t */\n\tstyle = input<any | null | undefined>();\n\n\t/**\n\t * If set, sets the class of the button\n\t */\n\tclasses = input('btn');\n\n\t/**\n\t * If set, sets the data-cy attribute for the button\n\t */\n\tdataCy = input('save-button');\n\n\t/**\n\t * Output event when button is clicked\n\t */\n\tonClick = output<MouseEvent>();\n\n\t/**\n\t * Output event when button is focused\n\t */\n\tonFocus = output<FocusEvent>();\n\n\t/**\n\t * Output event when button is blurred\n\t */\n\tonBlur = output<FocusEvent>();\n\n\t/**\n\t * Output event when key is pressed\n\t */\n\tonKeyDown = output<KeyboardEvent>();\n\n\t/**\n\t * Output event when key is up\n\t */\n\tonKeyUp = output<KeyboardEvent>();\n}\n","import { Component, input } from '@angular/core';\nimport { MatIcon } from '@angular/material/icon';\nimport { MatAnchor } from '@angular/material/button';\nimport { BaseButtonComponent } from '../base-button/base-button.component';\n\n@Component({\n\tselector: 'bs-link-button',\n\timports: [MatIcon, MatAnchor],\n\ttemplate: `\n\t\t<a\n\t\t\ttype=\"{{ type() }}\"\n\t\t\tclass=\"{{ classes() }}\"\n\t\t\t(click)=\"onClick.emit($event)\"\n\t\t\t(focus)=\"onFocus.emit($event)\"\n\t\t\t(blur)=\"onBlur.emit($event)\"\n\t\t\t(keydown)=\"onKeyDown.emit($event)\"\n\t\t\t(keyup)=\"onKeyUp.emit($event)\"\n\t\t\t[disabled]=\"disabled()\"\n\t\t\t[type]=\"type()\"\n\t\t\t[style]=\"style()\"\n\t\t\t[attr.data-cy]=\"'bs-link-button'\"\n\t\t\tmat-button>\n\t\t\t<mat-icon>{{ icon() }}</mat-icon>\n\t\t\t{{ label() }}\n\t\t</a>\n\t`,\n\tstyleUrls: ['../../../../assets/app-buttons.css'],\n})\nexport class BsLinkButtonComponent extends BaseButtonComponent {\n\toverride label = input('Edit');\n\toverride icon = input('search');\n\toverride classes = input('btn text-primary');\n\n\tconstructor() {\n\t\tsuper();\n\t}\n}\n","import { Component, input } from '@angular/core';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatButtonModule } from '@angular/material/button';\nimport { BaseButtonComponent } from '../base-button/base-button.component';\n\n@Component({\n\tselector: 'delete-button',\n\timports: [MatButtonModule, MatIconModule],\n\ttemplate: `\n\t\t<button\n\t\t\tmat-raised-button\n\t\t\tclass=\"btn {{ classes() }}\"\n\t\t\t(click)=\"onClick.emit($event)\"\n\t\t\t(focus)=\"onFocus.emit($event)\"\n\t\t\t(blur)=\"onBlur.emit($event)\"\n\t\t\t(keydown)=\"onKeyDown.emit($event)\"\n\t\t\t(keyup)=\"onKeyUp.emit($event)\"\n\t\t\t[disabled]=\"disabled() || loading()\"\n\t\t\t[type]=\"type()\"\n\t\t\t[style]=\"style()\"\n\t\t\t[attr.data-cy]=\"'delete-button'\">\n\t\t\t@if (loading()) {\n\t\t\t\t<span aria-hidden=\"true\" class=\"spinner-border spinner-border-sm\" role=\"status\"></span>\n\t\t\t}\n\t\t\t@if (!loading()) {\n\t\t\t\t<mat-icon>{{ icon() }}</mat-icon>\n\t\t\t}\n\t\t\t{{ loading() ? loadingLabel() : label() }}\n\t\t</button>\n\t`,\n\tstyleUrls: ['../../../../assets/app-buttons.css'],\n})\nexport class DeleteButtonComponent extends BaseButtonComponent {\n\toverride loadingLabel = input('Deleting...');\n\toverride label = input('Delete');\n\toverride icon = input('delete');\n\toverride classes = input('delete-button');\n\n\tconstructor() {\n\t\tsuper();\n\t}\n}\n","import { Component, input } from '@angular/core';\n\nimport { MatIcon } from '@angular/material/icon';\nimport { MatButton } from '@angular/material/button';\nimport { BaseButtonComponent } from '../base-button/base-button.component';\n\n@Component({\n\tselector: 'edit-button',\n\timports: [MatButton, MatIcon],\n\ttemplate: `\n\t\t<button\n\t\t\tclass=\"{{ classes() }}\"\n\t\t\t(click)=\"onClick.emit($event)\"\n\t\t\t(focus)=\"onFocus.emit($event)\"\n\t\t\t(blur)=\"onBlur.emit($event)\"\n\t\t\t(keydown)=\"onKeyDown.emit($event)\"\n\t\t\t(keyup)=\"onKeyUp.emit($event)\"\n\t\t\t[disabled]=\"disabled()\"\n\t\t\t[type]=\"type()\"\n\t\t\t[style]=\"style()\"\n\t\t\t[attr.data-cy]=\"'edit-button'\"\n\t\t\tmat-raised-button>\n\t\t\t<mat-icon>{{ icon() }}</mat-icon>\n\t\t\t{{ label() }}\n\t\t</button>\n\t`,\n\tstyleUrls: ['../../../../assets/app-buttons.css'],\n})\nexport class EditButtonComponent extends BaseButtonComponent {\n\toverride label = input('Edit');\n\toverride icon = input('edit');\n\toverride classes = input('primary-button');\n\n\tconstructor() {\n\t\tsuper();\n\t}\n}\n","import { Component } from '@angular/core';\nimport { MatIconModule, MatIconRegistry } from '@angular/material/icon';\nimport { DomSanitizer } from '@angular/platform-browser';\n\nconst EDIT_ICON = `\n<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\">\n <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\"/>\n</svg>\n`;\n\n@Component({\n selector: 'edit-solid-svg',\n imports: [MatIconModule],\n template: ` <mat-icon aria-hidden=\"false\" aria-label=\"Edit\" svgIcon=\"edit-solid\"></mat-icon> `,\n styles: [\n `\n\t\t\t.mat-icon {\n\t\t\t\tvertical-align: bottom;\n\t\t\t\tpadding-left: 5px;\n\t\t\t}\n\t\t`,\n ]\n})\nexport class EditSolidSvgComponent {\n\tconstructor(iconRegistry: MatIconRegistry, sanitizer: DomSanitizer) {\n\t\ticonRegistry.addSvgIconLiteral('edit-solid', sanitizer.bypassSecurityTrustHtml(EDIT_ICON));\n\t}\n}\n","import { Component, input } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatIconModule } from '@angular/material/icon';\nimport { EditSolidSvgComponent } from '../../../svg-icons/edit-solid-svg/edit-solid-svg.component';\nimport { BaseButtonComponent } from '../base-button/base-button.component';\n\n@Component({\n\tselector: 'edit-bs-button',\n\timports: [CommonModule, MatButtonModule, MatIconModule, EditSolidSvgComponent],\n\ttemplate: `\n\t\t<button\n\t\t\tcolor=\"primary\"\n\t\t\ttype=\"{{ type() }}\"\n\t\t\tclass=\"{{ classes() }}\"\n\t\t\t(click)=\"onClick.emit($event)\"\n\t\t\t(focus)=\"onFocus.emit($event)\"\n\t\t\t(blur)=\"onBlur.emit($event)\"\n\t\t\t(keydown)=\"onKeyDown.emit($event)\"\n\t\t\t(keyup)=\"onKeyUp.emit($event)\"\n\t\t\t[disabled]=\"disabled()\"\n\t\t\t[type]=\"type()\"\n\t\t\t[style]=\"style()\"\n\t\t\t[attr.data-cy]=\"'edit-bs-button'\"\n\t\t\tmat-button>\n\t\t\t<edit-solid-svg></edit-solid-svg>\n\t\t\t{{ label() }}\n\t\t</button>\n\t`,\n\tstyleUrls: ['../../../../assets/app-buttons.css'],\n})\nexport class EditBsButtonComponent extends BaseButtonComponent {\n\toverride label = input('Edit');\n\toverride classes = input('text-primary');\n\n\tconstructor() {\n\t\tsuper();\n\t}\n}\n","import { Component, input } from '@angular/core';\nimport { MatButton } from '@angular/material/button';\nimport { EditSolidSvgComponent } from '../../../svg-icons/edit-solid-svg/edit-solid-svg.component';\nimport { BaseButtonComponent } from '../base-button/base-button.component';\n\n@Component({\n\tselector: 'edit-svg-icon-button',\n\timports: [MatButton, EditSolidSvgComponent],\n\ttemplate: `\n\t\t<button\n\t\t\ttype=\"{{ type() }}\"\n\t\t\tclass=\"{{ classes() }}\"\n\t\t\t(click)=\"onClick.emit($event)\"\n\t\t\t(focus)=\"onFocus.emit($event)\"\n\t\t\t(blur)=\"onBlur.emit($event)\"\n\t\t\t(keydown)=\"onKeyDown.emit($event)\"\n\t\t\t(keyup)=\"onKeyUp.emit($event)\"\n\t\t\t[disabled]=\"disabled()\"\n\t\t\t[type]=\"type()\"\n\t\t\t[style]=\"style()\"\n\t\t\t[attr.data-cy]=\"'edit-svg-icon-button'\"\n\t\t\tmat-raised-button>\n\t\t\t<edit-solid-svg></edit-solid-svg>\n\t\t\t{{ label() }}\n\t\t</button>\n\t`,\n\tstyleUrls: ['../../../../assets/app-buttons.css'],\n})\nexport class EditSvgIconButtonComponent extends BaseButtonComponent {\n\toverride label = input('Edit');\n\toverride icon = input('edit');\n\toverride classes = input('primary-button');\n\n\tconstructor() {\n\t\tsuper();\n\t}\n}\n","import { Component, input } from '@angular/core';\n\nimport { MatButton } from '@angular/material/button';\nimport { MatIcon } from '@angular/material/icon';\nimport { BaseButtonComponent } from '../base-button/base-button.component';\n\n@Component({\n selector: 'manage-button',\n imports: [MatButton, MatIcon],\n template: `\n\t\t<button\n\t\t\tmat-raised-button\n\t\t\tclass=\"{{ classes() }}\"\n\t\t\t(click)=\"onClick.emit($event)\"\n\t\t\t(focus)=\"onFocus.emit($event)\"\n\t\t\t(blur)=\"onBlur.emit($event)\"\n\t\t\t[disabled]=\"disabled()\"\n\t\t\t[type]=\"type()\"\n\t\t\t[style]=\"style()\"\n\t\t\t[attr.data-cy]=\"'manage-button'\">\n\t\t\t<mat-icon>{{ icon() }}</mat-icon>\n\t\t\t{{ label() }}\n\t\t</button>\n\t`,\n styleUrls: ['../../../../assets/app-buttons.css']\n})\nexport class ManageButtonComponent extends BaseButtonComponent {\n\toverride label = input('Manage');\n\toverride icon = input('settings');\n\toverride classes = input('mr-3 btn btn-secondary secondary-button');\n\n\tconstructor() {\n\t\tsuper();\n\t}\n}\n","import { Component, input } from '@angular/core';\nimport { BaseButtonComponent } from '../base-button/base-button.component';\n\nimport { MatIcon } from '@angular/material/icon';\nimport { MatButton } from '@angular/material/button';\n\n@Component({\n\tselector: 'save-primary-button',\n\timports: [MatButton, MatIcon],\n\ttemplate: `\n\t\t<button\n\t\t\tmat-raised-button\n\t\t\tclass=\"btn {{ classes() }}\"\n\t\t\t(click)=\"onClick.emit($event)\"\n\t\t\t(focus)=\"onFocus.emit($event)\"\n\t\t\t(blur)=\"onBlur.emit($event)\"\n\t\t\t(keydown)=\"onKeyDown.emit($event)\"\n\t\t\t(keyup)=\"onKeyUp.emit($event)\"\n\t\t\t[disabled]=\"disabled() || loading()\"\n\t\t\t[type]=\"type()\"\n\t\t\t[style]=\"style()\"\n\t\t\t[attr.data-cy]=\"'save-primary-button'\">\n\t\t\t@if (loading()) {\n\t\t\t\t<span aria-hidden=\"true\" class=\"spinner-border spinner-border-sm\" role=\"status\"></span>\n\t\t\t}\n\t\t\t@if (!loading()) {\n\t\t\t\t<mat-icon>{{ icon() }}</mat-icon>\n\t\t\t}\n\t\t\t{{ loading() ? loadingLabel() : label() }}\n\t\t</button>\n\t`,\n\tstyleUrls: ['../../../../assets/app-buttons.css'],\n})\nexport class SavePrimaryButtonComponent extends BaseButtonComponent {\n\toverride loadingLabel = input('Saving...');\n\toverride label = input('Save');\n\toverride icon = input('save');\n\toverride classes = input('btn-primary primary-button');\n\n\tconstructor() {\n\t\tsuper();\n\t}\n}\n","import { Component, input } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatButtonModule } from '@angular/material/button';\nimport { BaseButtonComponent } from '../base-button/base-button.component';\n\n@Component({\n\tselector: 'search-button',\n\timports: [CommonModule, MatButtonModule, MatIconModule],\n\ttemplate: `\n\t\t<button\n\t\t\tclass=\"btn btn-primary primary-button {{ loading() || disabled() ? 'disabled' : '' }}\"\n\t\t\t(click)=\"onClick.emit($event)\"\n\t\t\t(focus)=\"onFocus.emit($event)\"\n\t\t\t(blur)=\"onBlur.emit($event)\"\n\t\t\t(keydown)=\"onKeyDown.emit($event)\"\n\t\t\t(keyup)=\"onKeyUp.emit($event)\"\n\t\t\tmat-raised-button\n\t\t\ttype=\"{{ type() }}\"\n\t\t\tdata-cy=\"primary-button\">\n\t\t\t@if (loading()) {\n\t\t\t\t<span aria-hidden=\"true\" class=\"spinner-border spinner-border-sm\" role=\"status\"></span>\n\t\t\t}\n\t\t\t@if (!loading()) {\n\t\t\t\t<mat-icon>{{ icon() }}</mat-icon>\n\t\t\t}\n\t\t\t{{ loading() ? loadingLabel() : label() }}\n\t\t</button>\n\t`,\n\tstyleUrls: ['../../../../assets/app-buttons.css'],\n})\nexport class SearchButtonComponent extends BaseButtonComponent {\n\toverride loadingLabel = input('Searching...');\n\toverride label = input('Search');\n\toverride icon = input('search');\n\toverride classes = input('btn-primary primary-button');\n\n\tconstructor() {\n\t\tsuper();\n\t}\n}\n","import { Component, input } from '@angular/core';\nimport { BaseButtonComponent } from '../base-button/base-button.component';\nimport { MatButton } from '@angular/material/button';\nimport { MatIcon } from '@angular/material/icon';\n\n@Component({\n\tselector: 'success-button',\n\timports: [MatButton, MatIcon],\n\ttemplate: `\n\t\t<button\n\t\t\tmat-raised-button\n\t\t\tclass=\"btn {{ classes() }}\"\n\t\t\t(click)=\"onClick.emit($event)\"\n\t\t\t(keydown)=\"onKeyDown.emit($event)\"\n\t\t\t(keyup)=\"onKeyUp.emit($event)\"\n\t\t\t(focus)=\"onFocus.emit($event)\"\n\t\t\t(blur)=\"onBlur.emit($event)\"\n\t\t\t[disabled]=\"disabled() || loading()\"\n\t\t\t[type]=\"type()\"\n\t\t\t[style]=\"style()\"\n\t\t\t[attr.data-cy]=\"'success-button'\">\n\t\t\t@if (loading()) {\n\t\t\t\t<span aria-hidden=\"true\" class=\"spinner-border spinner-border-sm\" role=\"status\"></span>\n\t\t\t}\n\t\t\t@if (!loading()) {\n\t\t\t\t<mat-icon>{{ icon() }}</mat-icon>\n\t\t\t}\n\t\t\t{{ loading() ? loadingLabel() : label() }}\n\t\t</button>\n\t`,\n})\nexport class SuccessButtonComponent extends BaseButtonComponent {\n\toverride loadingLabel = input('Updating...');\n\toverride label = input('Update');\n\toverride icon = input('save');\n\toverride classes = input('success-button');\n\n\tconstructor() {\n\t\tsuper();\n\t}\n}\n","import { Component, input } from '@angular/core';\nimport { MatIcon } from '@angular/material/icon';\nimport { MatButton } from '@angular/material/button';\nimport { BaseButtonComponent } from '../base-button/base-button.component';\n\n@Component({\n\tselector: 'view-button',\n\timports: [MatButton, MatIcon],\n\ttemplate: `\n\t\t<button\n\t\t\tcolor=\"primary\"\n\t\t\t(click)=\"onClick.emit($event)\"\n\t\t\t(focus)=\"onFocus.emit($event)\"\n\t\t\t(blur)=\"onBlur.emit($event)\"\n\t\t\t(keydown)=\"onKeyDown.emit($event)\"\n\t\t\t(keyup)=\"onKeyUp.emit($event)\"\n\t\t\t[disabled]=\"disabled()\"\n\t\t\tmat-button>\n\t\t\t<mat-icon>{{ icon() }}</mat-icon>\n\t\t\t{{ label() }}\n\t\t</button>\n\t`,\n\tstyleUrls: ['../../../../assets/app-buttons.css'],\n})\nexport class ViewButtonComponent extends BaseButtonComponent {\n\toverride label = input('View');\n\toverride icon = input('visibility');\n\n\tconstructor() {\n\t\tsuper();\n\t}\n}\n","import { Component, input } from '@angular/core';\n\nimport { MatButton } from '@angular/material/button';\nimport { MatIcon } from '@angular/material/icon';\nimport { BaseButtonComponent } from '../base-button/base-button.component';\n\n@Component({\n\tselector: 'view-primary-button',\n\timports: [MatButton, MatIcon],\n\ttemplate: `\n\t\t<button\n\t\t\tmat-raised-button\n\t\t\tclass=\"btn {{ classes() }}\"\n\t\t\t(click)=\"onClick.emit($event)\"\n\t\t\t(focus)=\"onFocus.emit($event)\"\n\t\t\t(blur)=\"onBlur.emit($event)\"\n\t\t\t(keydown)=\"onKeyDown.emit($event)\"\n\t\t\t(keyup)=\"onKeyUp.emit($event)\"\n\t\t\t[disabled]=\"disabled()\"\n\t\t\t[type]=\"type()\"\n\t\t\t[style]=\"style()\"\n\t\t\t[attr.data-cy]=\"'view-button'\">\n\t\t\t<mat-icon>{{ icon() }}</mat-icon>\n\t\t\t{{ label() }}\n\t\t</button>\n\t`,\n\tstyleUrls: ['../../../../assets/app-buttons.css'],\n})\nexport class ViewPrimaryButtonComponent extends BaseButtonComponent {\n\toverride label = input('View');\n\toverride icon = input('visibility');\n\toverride classes = input('btn-primary primary-button');\n\n\tconstructor() {\n\t\tsuper();\n\t}\n}\n","import { Component, input } from '@angular/core';\nimport { MatButton } from '@angular/material/button';\nimport { MatIcon } from '@angular/material/icon';\nimport { BaseButtonComponent } from '../base-button/base-button.component';\n\n@Component({\n\tselector: 'primary-button',\n\timports: [MatButton, MatIcon],\n\ttemplate: `\n\t\t<button\n\t\t\tmat-raised-button\n\t\t\tclass=\"btn {{ classes() }}\"\n\t\t\t(click)=\"onClick.emit($event)\"\n\t\t\t(focus)=\"onFocus.emit($event)\"\n\t\t\t(blur)=\"onBlur.emit($event)\"\n\t\t\t(keydown)=\"onKeyDown.emit($event)\"\n\t\t\t(keyup)=\"onKeyUp.emit($event)\"\n\t\t\t[disabled]=\"disabled() || loading()\"\n\t\t\t[type]=\"type()\"\n\t\t\t[style]=\"style()\"\n\t\t\t[attr.data-cy]=\"'primary-button'\">\n\t\t\t@if (loading()) {\n\t\t\t\t<span aria-hidden=\"true\" class=\"spinner-border spinner-border-sm\" role=\"status\"></span>\n\t\t\t}\n\t\t\t@if (!loading() && showIcon()) {\n\t\t\t\t<mat-icon>{{ icon() }}</mat-icon>\n\t\t\t}\n\t\t\t{{ loading() ? loadingLabel() : label() }}\n\t\t</button>\n\t`,\n\tstyleUrls: ['../../../../assets/app-buttons.css'],\n})\nexport class PrimaryButtonComponent extends BaseButtonComponent {\n\toverride loadingLabel = input('Saving...');\n\toverride label = input('Save');\n\toverride icon = input('save');\n\toverride showIcon = input(false);\n\toverride classes = input('btn-primary primary-button');\n\n\tconstructor() {\n\t\tsuper();\n\t}\n}\n","import { Component } from '@angular/core';\nimport { MatButtonModule } from '@angular/material/button';\n\n@Component({\n selector: 'pdf-export-button',\n imports: [MatButtonModule],\n template: ` <button class=\"pdf-export-button\" mat-raised-button type=\"button\" data-cy=\"pdf-export-button\">PDF</button> `,\n styles: [\n `\n\t\t\t.pdf-export-button {\n\t\t\t\tmargin-left: 20px !important;\n\t\t\t\twidth: 100px;\n\t\t\t\tcolor: white !important;\n\t\t\t\tbackground-color: #a3071b !important;\n\t\t\t\tborder-radius: 24px !important;\n\t\t\t}\n\t\t`,\n ]\n})\nexport class PdfExportButtonComponent {}\n","import { Component } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { MatButtonModule } from '@angular/material/button';\n\n@Component({\n selector: 'excel-export-button',\n imports: [CommonModule, MatButtonModule],\n template: ` <button class=\"excel-export-button\" mat-raised-button type=\"button\" data-cy=\"excel-export-button\">Excel</button> `,\n styleUrls: ['../../../../assets/app-buttons.css'],\n styles: [\n `\n\t\t\t.excel-export-button {\n\t\t\t\tmargin-left: 20px !important;\n\t\t\t\tmargin-right: 20px !important;\n\t\t\t\twidth: 100px;\n\t\t\t\tcolor: white !important;\n\t\t\t\tbackground-color: darkgreen !important;\n\t\t\t\tborder-radius: 24px !important;\n\t\t\t}\n\t\t`,\n ]\n})\nexport class ExcelExportButtonComponent {}\n","import { Component, Inject } from '@angular/core';\nimport { MAT_DIALOG_DATA, MatDialogModule, MatDialogRef } from '@angular/material/dialog';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatDividerModule } from '@angular/material/divider';\n\n@Component({\n selector: 'app-confirm-dialog',\n imports: [MatButtonModule, MatDividerModule, MatDialogModule],\n template: `\n\t\t<div class=\"mat-dialog-title\" style=\"text-align: center\">\n\t\t\t<h3 class=\"m-3 mat-headline-5\t\">{{ title }}</h3>\n\t\t</div>\n\n\t\t<mat-divider></mat-divider>\n\t\t<div mat-dialog-content style=\"margin: 20px\">\n\t\t\t<p>{{ message }}</p>\n\t\t</div>\n\n\t\t<div align=\"end\" class=\"modal-footer\" mat-dialog-actions>\n\t\t\t<button (click)=\"onDismiss()\" mat-raised-button>No</button>\n\t\t\t<button (click)=\"onConfirm()\" class=\"primary-button\" mat-raised-button>Yes</button>\n\t\t</div>\n\t`,\n styles: []\n})\nexport class ConfirmDialogComponent {\n\ttitle: string;\n\tmessage: string;\n\n\tconstructor(\n\t\t@Inject(MAT_DIALOG_DATA) public data: ConfirmDialogData,\n\t\tpublic dialogRef: MatDialogRef<ConfirmDialogComponent>,\n\t) {\n\t\t// Update view with given values\n\t\tthis.title = data.title;\n\t\tthis.message = data.message;\n\t}\n\n\tonDismiss() {\n\t\t// Close the dialog, return true\n\t\tthis.dialogRef.close(false);\n\t}\n\n\tonConfirm() {\n\t\t// Close the dialog, return true\n\t\tthis.dialogRef.close(true);\n\t}\n}\n\n/**\n * Class to represent confirm dialog model.\n */\nexport interface ConfirmDialogData {\n\ttitle: string;\n\tmessage: string;\n}\n","import { Component, Inject } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { MAT_SNACK_BAR_DATA, MatSnackBarRef } from '@angular/material/snack-bar';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatButtonModule } from '@angular/material/button';\n\n@Component({\n selector: 'app-error-snack-bar',\n imports: [CommonModule, MatIconModule, MatButtonModule],\n template: `\n\t\t<div class=\"custom-flex-center error-snackbar\">\n\t\t\t<mat-icon>error</mat-icon>\n\t\t\t<label>{{ data.message }}</label>\n\t\t\t<button style=\"margin-left: auto\" (click)=\"close()\" mat-icon-button>\n\t\t\t\t<mat-icon>close</mat-icon>\n\t\t\t</button>\n\t\t</div>\n\t`,\n styleUrls: ['../../../../assets/app-mat-snack-bar.css']\n})\nexport class ErrorSnackBarComponent {\n\tconstructor(\n\t\tpublic msb: MatSnackBarRef<ErrorSnackBarComponent>,\n\t\t@Inject(MAT_SNACK_BAR_DATA) public data: { message: string; action?: string },\n\t) {}\n\n\t/**\n\t * Close the Snack Bar\n\t *\n\t * @author Pavan Kumar Jadda\n\t * @since 2.7.18\n\t */\n\tclose() {\n\t\tthis.msb.dismissWithAction();\n\t}\n}\n","import { Component, Inject } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { MAT_SNACK_BAR_DATA, MatSnackBarRef } from '@angular/material/snack-bar';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatIconModule } from '@angular/material/icon';\n\n@Component({\n selector: 'app-success-snack-bar',\n imports: [CommonModule, MatButtonModule, MatIconModule],\n template: `\n\t\t<div class=\"custom-flex-center success-snackbar\">\n\t\t\t<mat-icon>check_circle</mat-icon>\n\t\t\t<label>{{ data.message }}</label>\n\t\t\t<button style=\"margin-left: auto\" (click)=\"close()\" mat-icon-button>\n\t\t\t\t<mat-icon>close</mat-icon>\n\t\t\t</button>\n\t\t</div>\n\t`,\n styleUrls: ['../../../../assets/app-mat-snack-bar.css']\n})\nexport class SuccessSnackBarComponent {\n\tconstructor(\n\t\tpublic msb: MatSnackBarRef<SuccessSnackBarComponent>,\n\t\t@Inject(MAT_SNACK_BAR_DATA) public data: { message: string; action?: string },\n\t) {}\n\n\t/**\n\t * Close the Snack Bar\n\t *\n\t * @author Pavan Kumar Jadda\n\t * @since 2.7.18\n\t */\n\tclose() {\n\t\tthis.msb.dismissWithAction();\n\t}\n}\n","import { Injectable } from '@angular/core';\nimport { MatSnackBar, MatSnackBarHorizontalPosition, MatSnackBarVerticalPosition } from '@angular/material/snack-bar';\nimport { ErrorSnackBarComponent } from '../components/snack-bar/error-snack-bar/error-snack-bar.component';\nimport { SuccessSnackBarComponent } from '../components/snack-bar/success-snack-bar/success-snack-bar.component';\n\n@Injectable({\n\tprovidedIn: 'root',\n})\nexport class MatSnackBarService {\n\t/**\n\t * Duration (in milliseconds) of the Snack Bar to be open. Defaults to 5 seconds(5000 milliseconds)\n\t */\n\tduration = 500000;\n\n\t/**\n\t * Horizontal Position of the MatSnackBar. Defaults to left side\n\t */\n\thorizontalPosition: MatSnackBarHorizontalPosition = 'right';\n\n\t/**\n\t * Vertical Position of the MatSnackBar. Defaults to page bottom\n\t */\n\tverticalPosition: MatSnackBarVerticalPosition = 'top';\n\n\tconstructor(private snackBar: MatSnackBar) {}\n\n\t/**\n\t * Opens Success Snack Bar\n\t *\n\t * @param message Message to display on Snack Bar\n\t * @param options Options of the Snack Bar\n\t *\n\t * @author Pavan Kumar Jadda\n\t * @since 2.2.3\n\t */\n\tsuccess(message: string, options?: MatSnackBarOptions) {\n\t\tthis.snackBar.openFromComponent(SuccessSnackBarComponent, {\n\t\t\tdata: { message },\n\t\t\tduration: options?.duration ?? this.duration,\n\t\t\tpanelClass: options?.panelClass ?? 'success-snackbar',\n\t\t\thorizontalPosition: options?.horizontalPosition ?? this.horizontalPosition,\n\t\t\tverticalPosition: options?.verticalPosition ?? this.verticalPosition,\n\t\t});\n\t}\n\n\t/**\n\t * Opens Error Snack Bar\n\t *\n\t * @param message Message to display on Snack Bar\n\t * @param options Options of the Snack Bar\n\t *\n\t * @author Pavan Kumar Jadda\n\t * @since 2.2.3\n\t */\n\terror(message: string, options?: MatSnackBarOptions) {\n\t\tthis.snackBar.openFromComponent(ErrorSnackBarComponent, {\n\t\t\tdata: { message },\n\t\t\tduration: options?.duration ?? 10000,\n\t\t\tpanelClass: options?.panelClass ?? 'error-snackbar',\n\t\t\thorizontalPosition: options?.horizontalPosition ?? this.horizontalPosition,\n\t\t\tverticalPosition: options?.verticalPosition ?? this.verticalPosition,\n\t\t});\n\t}\n\n\t/**\n\t * Opens Generic Snack Bar\n\t *\n\t * @param message Message to display on Snack Bar\n\t *\n\t * @author Pavan Kumar Jadda\n\t * @since 2.2.3\n\t */\n\topen(message: string) {\n\t\tthis.snackBar.open(message, 'Close', {\n\t\t\tduration: this.duration,\n\t\t\thorizontalPosition: this.horizontalPosition,\n\t\t\tverticalPosition: this.verticalPosition,\n\t\t});\n\t}\n}\n\n/**\n * MatSnackBarOptions for Snack Bar\n *\n * @author Pavan Kumar Jadda\n * @since 2.7.19\n */\nexport interface MatSnackBarOptions {\n\tduration?: number;\n\thorizontalPosition?: MatSnackBarHorizontalPosition;\n\tverticalPosition?: MatSnackBarVerticalPosition;\n\tpanelClass?: string;\n}\n","import { computed, Injectable, signal } from '@angular/core';\n\n/**\n * A core store class that can be used to store any object\n *\n * @author Pavan Kumar Jadda\n * @since 17.1.0\n */\n@Injectable({\n\tprovidedIn: 'root',\n})\nexport class Store<T extends object> {\n\t_data = signal<T | undefined>(undefined);\n\n\t// The data property is a computed property that returns the value of the _data signal\n\tdata = computed(() => this._data());\n\n\t/**\n\t * Update the data in the store with the new data\n\t *\n\t * @param newData The new data to be stored/updated\n\t *\n\t * @author Pavan Kumar Jadda\n\t * @since 17.1.0\n\t */\n\tupdate(newData: T) {\n\t\tthis._data.set(newData);\n\t}\n}\n","import { computed, Injectable, signal } from '@angular/core';\nimport { IdType } from '../types/id-type';\n\n/**\n * 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.\n *\n * @author Pavan Kumar Jadda\n * @since 17.1.0\n */\n@Injectable({\n\tprovidedIn: 'root',\n})\nexport class EntityStore<T extends IdType> {\n\t_data = signal<T[]>([]);\n\n\t// The data property is a computed property that returns the value of the _data signal\n\tdata = computed(() => this._data());\n\n\t/**\n\t * Find an item in the store by id\n\t *\n\t * @param id The id of the item to be found\n\t *\n\t * @returns The item if found, undefined otherwise\n\t *\n\t * @author Pavan Kumar Jadda\n\t * @since 17.1.0\n\t */\n\tfindById(id: number) {\n\t\treturn this._data().find((item) => item.id === id);\n\t}\n\n\t/**\n\t * Set the list of items in the store with the new data\n\t *\n\t * @param data The new list of items to be stored\n\t *\n\t * @author Pavan Kumar Jadda\n\t * @since 17.1.0\n\t */\n\tsetData(data: T[]) {\n\t\tthis._data.set(data);\n\t}\n\n\t/**\n\t * Update an item in the store. If the item does not exist in new list, add it. Otherwise, update it.\n\t *\n\t * @param data The item to added or updated\n\t *\n\t * @author Pavan Kumar Jadda\n\t * @since 17.1.0\n\t */\n\tupsert(data: T) {\n\t\tthis._data.update((currentData) => {\n\t\t\tconst dataMap = new Map(currentData.map((item) => [item.id, item]));\n\t\t\tdataMap.set(data.id, data);\n\t\t\treturn Array.from(dataMap.values());\n\t\t});\n\t}\n\n\t/**\n\t * Update or insert the given list of items in the store\n\t *\n\t * @param newData The list of items to be updated or inserted\n\t *\n\t * @author Pavan Kumar Jadda\n\t * @since 17.1.0\n\t */\n\tupsertMulti(newData: T[]) {\n\t\tthis._data.update((currentData) => {\n\t\t\tconst dataMap = new Map(currentData.map((item) => [item.id, item]));\n\t\t\tnewData.forEach((newItem: T) => dataMap.set(newItem.id, newItem));\n\t\t\treturn Array.from(dataMap.values());\n\t\t});\n\t}\n\n\t/**\n\t * Remove an item from the store\n\t *\n\t * @param id The id of the item to be removed\n\t *\n\t * @author Pavan Kumar Jadda\n\t * @since 17.1.0\n\t */\n\tremove(id: number) {\n\t\tthis._data.update((currentData) => currentData.filter((item) => item.id !== id));\n\t}\n}\n","import { ProgressState } from '../types/progress-state';\nimport { signal, WritableSignal } from '@angular/core';\n\n/**\n * Initialize Loading or Update ProgressState\n *\n * @return Updated State Object\n *\n * @author Pavan Kumar Jadda\n * @since 2.7.16\n */\nexport const initializeState = (): WritableSignal<ProgressState> => {\n\treturn signal<ProgressState>({\n\t\tisLoading: false,\n\t\tisSuccess: false,\n\t\tisError: false,\n\t\tisComplete: false,\n\t\tmessage: '',\n\t});\n};\n\n/**\n * Initialize Loading or Update ProgressState\n *\n * @param progressState Object to initialize\n * @return ProgressState Updated State Object\n *\n * @author Pavan Kumar Jadda\n * @since 2.7.16\n */\nexport const markLoading = (progressState: WritableSignal<ProgressState>) => {\n\tprogressState.update((state) => {\n\t\treturn {\n\t\t\t...state,\n\t\t\tisLoading: true,\n\t\t\tisSuccess: false,\n\t\t\tisError: false,\n\t\t\tisComplete: false,\n\t\t\tmessage: '',\n\t\t};\n\t});\n};\n\n/**\n * Update state as isSuccess\n *\n * @return ProgressState Updated State Object\n *\n * @author Pavan Kumar Jadda\n * @since 2.7.16\n */\nexport const markSuccess = (progressState: WritableSignal<ProgressState>, message?: string) => {\n\tprogressState.update((state) => {\n\t\treturn {\n\t\t\t...state,\n\t\t\tisLoading: false,\n\t\t\tisSuccess: true,\n\t\t\tisError: false,\n\t\t\tisComplete: true,\n\t\t\tmessage: message || '',\n\t\t};\n\t});\n};\n\n/**\n * Update state as failure or isError\n *\n * @return ProgressState Updated State Object\n *\n * @author Pavan Kumar Jadda\n * @since 2.7.16\n */\nexport const markError = (progressState: WritableSignal<ProgressState>, message?: string) => {\n\tprogressState.update((state) => {\n\t\treturn {\n\t\t\t...state,\n\t\t\tisLoading: false,\n\t\t\tisSuccess: false,\n\t\t\tisError: true,\n\t\t\tisComplete: true,\n\t\t\tmessage: message || '',\n\t\t};\n\t});\n};\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1","i1.NgxSpinnerService","i6","i2","i3"],"mappings":"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"}
@@ -1,8 +1,8 @@
1
1
  import { AfterContentChecked, ChangeDetectorRef, ElementRef, OnChanges, OnInit, SimpleChanges } from '@angular/core';
2
- import { BehaviorSubject, Observable } from 'rxjs';
3
- import { FormGroup } from '@angular/forms';
2
+ import { ControlValueAccessor, FormControl } from '@angular/forms';
4
3
  import { MatAutocompleteTrigger } from '@angular/material/autocomplete';
5
4
  import { MatOptionSelectionChange } from '@angular/material/core';
5
+ import { BehaviorSubject, Observable } from 'rxjs';
6
6
  import * as i0 from "@angular/core";
7
7
  /**
8
8
  * Reusable Auto Complete component that extends MatAutoComplete to show Clear icon and Arrow buttons
@@ -10,16 +10,16 @@ import * as i0 from "@angular/core";
10
10
  * @author Pavan Kumar Jadda
11
11
  * @since 12.0.0
12
12
  */
13
- export declare class AutocompleteComponent implements OnInit, OnChanges, AfterContentChecked {
13
+ export declare class AutocompleteComponent implements OnInit, OnChanges, AfterContentChecked, ControlValueAccessor {
14
14
  private cdRef;
15
15
  /**
16
16
  * Gets reference inputAutoComplete HTML attribute
17
17
  */
18
18
  inputAutoComplete: ElementRef;
19
19
  /**
20
- * Input form group of the auto complete
20
+ * Internal form control for the autocomplete
21
21
  */
22
- inputFormGroup: FormGroup;
22
+ control: FormControl<string | null>;
23
23
  /**
24
24
  * Label of the AutoComplete
25
25
  */
@@ -52,15 +52,16 @@ export declare class AutocompleteComponent implements OnInit, OnChanges, AfterCo
52
52
  * Specifies if the autocomplete is required. Default is not required.
53
53
  */
54
54
  required: import("@angular/core").InputSignal<boolean>;
55
+ /**
56
+ * Specifies if the autocomplete is disabled. Default is not required.
57
+ */
58
+ disabled: import("@angular/core").InputSignal<boolean>;
55
59
  /**
56
60
  * List of Objects that need to be bind and searched for
57
61
  */
58
62
  data: import("@angular/core").InputSignal<any[] | string[] | undefined>;
59
63
  /**
60
64
  * Emit selected value on selection changes
61
- *
62
- * @author Pavan Kumar Jadda
63
- * @since 13.0.3
64
65
  */
65
66
  onSelectionChange: import("@angular/core").OutputEmitterRef<any>;
66
67
  /**
@@ -68,48 +69,24 @@ export declare class AutocompleteComponent implements OnInit, OnChanges, AfterCo
68
69
  */
69
70
  arrowIconSubject: BehaviorSubject<string>;
70
71
  /**
71
- * Filtered options when user
72
+ * Filtered options when user types
72
73
  */
73
74
  filteredOptions: Observable<any[] | undefined> | undefined;
75
+ private value;
74
76
  constructor(cdRef: ChangeDetectorRef);
77
+ writeValue(value: any): void;
78
+ registerOnChange(fn: any): void;
79
+ registerOnTouched(fn: any): void;
80
+ setDisabledState(isDisabled: boolean): void;
75
81
  ngAfterContentChecked(): void;
76
- /**
77
- * Define autocomplete search filter on search text changes
78
- *
79
- * @author Pavan Kumar Jadda
80
- * @since 12.0.0
81
- */
82
82
  ngOnInit(): void;
83
83
  ngOnChanges(_changes: SimpleChanges): void;
84
- /**
85
- * Clear input and Reset autocomplete form control
86
- *
87
- * @author Pavan Kumar Jadda
88
- * @since 12.0.0
89
- */
90
84
  clearInput(evt: any): void;
91
- /**
92
- * Open or Close panel
93
- *
94
- * @author Pavan Kumar Jadda
95
- * @since 12.0.0
96
- */
97
85
  openOrClosePanel(evt: any, trigger: MatAutocompleteTrigger): void;
98
- /**
99
- * Display function that is used to show the values
100
- *
101
- * @author Pavan Kumar Jadda
102
- * @since 12.0.0
103
- */
104
86
  displayFn(object: any): string;
105
- /**
106
- * Emit selected value
107
- * @param $event - Event emitted by autocomplete
108
- *
109
- * @author Pavan Kumar Jadda
110
- * @since 13.0.3
111
- */
112
87
  emitSelectedValue($event: MatOptionSelectionChange): void;
88
+ private onChange;
89
+ private onTouched;
113
90
  static ɵfac: i0.ɵɵFactoryDeclaration<AutocompleteComponent, never>;
114
- static ɵcmp: i0.ɵɵComponentDeclaration<AutocompleteComponent, "autocomplete, lib-autocomplete", never, { "inputFormGroup": { "alias": "inputFormGroup"; "required": false; }; "label": { "alias": "label"; "required": false; "isSignal": true; }; "placeHolder": { "alias": "placeHolder"; "required": false; "isSignal": true; }; "appearance": { "alias": "appearance"; "required": false; "isSignal": true; }; "classes": { "alias": "classes"; "required": false; "isSignal": true; }; "bindLabel": { "alias": "bindLabel"; "required": false; "isSignal": true; }; "bindValue": { "alias": "bindValue"; "required": false; "isSignal": true; }; "displayWith": { "alias": "displayWith"; "required": false; }; "required": { "alias": "required"; "required": false; "isSignal": true; }; "data": { "alias": "data"; "required": false; "isSignal": true; }; }, { "onSelectionChange": "onSelectionChange"; }, never, never, true, never>;
91
+ static ɵcmp: i0.ɵɵComponentDeclaration<AutocompleteComponent, "autocomplete, lib-autocomplete", never, { "label": { "alias": "label"; "required": false; "isSignal": true; }; "placeHolder": { "alias": "placeHolder"; "required": false; "isSignal": true; }; "appearance": { "alias": "appearance"; "required": false; "isSignal": true; }; "classes": { "alias": "classes"; "required": false; "isSignal": true; }; "bindLabel": { "alias": "bindLabel"; "required": false; "isSignal": true; }; "bindValue": { "alias": "bindValue"; "required": false; "isSignal": true; }; "displayWith": { "alias": "displayWith"; "required": false; }; "required": { "alias": "required"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "data": { "alias": "data"; "required": false; "isSignal": true; }; }, { "onSelectionChange": "onSelectionChange"; }, never, never, true, never>;
115
92
  }
@@ -0,0 +1,61 @@
1
+ import { IdType } from '../types/id-type';
2
+ import * as i0 from "@angular/core";
3
+ /**
4
+ * 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.
5
+ *
6
+ * @author Pavan Kumar Jadda
7
+ * @since 17.1.0
8
+ */
9
+ export declare class EntityStore<T extends IdType> {
10
+ _data: import("@angular/core").WritableSignal<T[]>;
11
+ data: import("@angular/core").Signal<T[]>;
12
+ /**
13
+ * Find an item in the store by id
14
+ *
15
+ * @param id The id of the item to be found
16
+ *
17
+ * @returns The item if found, undefined otherwise
18
+ *
19
+ * @author Pavan Kumar Jadda
20
+ * @since 17.1.0
21
+ */
22
+ findById(id: number): T | undefined;
23
+ /**
24
+ * Set the list of items in the store with the new data
25
+ *
26
+ * @param data The new list of items to be stored
27
+ *
28
+ * @author Pavan Kumar Jadda
29
+ * @since 17.1.0
30
+ */
31
+ setData(data: T[]): void;
32
+ /**
33
+ * Update an item in the store. If the item does not exist in new list, add it. Otherwise, update it.
34
+ *
35
+ * @param data The item to added or updated
36
+ *
37
+ * @author Pavan Kumar Jadda
38
+ * @since 17.1.0
39
+ */
40
+ upsert(data: T): void;
41
+ /**
42
+ * Update or insert the given list of items in the store
43
+ *
44
+ * @param newData The list of items to be updated or inserted
45
+ *
46
+ * @author Pavan Kumar Jadda
47
+ * @since 17.1.0
48
+ */
49
+ upsertMulti(newData: T[]): void;
50
+ /**
51
+ * Remove an item from the store
52
+ *
53
+ * @param id The id of the item to be removed
54
+ *
55
+ * @author Pavan Kumar Jadda
56
+ * @since 17.1.0
57
+ */
58
+ remove(id: number): void;
59
+ static ɵfac: i0.ɵɵFactoryDeclaration<EntityStore<any>, never>;
60
+ static ɵprov: i0.ɵɵInjectableDeclaration<EntityStore<any>>;
61
+ }
@@ -0,0 +1,22 @@
1
+ import * as i0 from "@angular/core";
2
+ /**
3
+ * A core store class that can be used to store any object
4
+ *
5
+ * @author Pavan Kumar Jadda
6
+ * @since 17.1.0
7
+ */
8
+ export declare class Store<T extends object> {
9
+ _data: import("@angular/core").WritableSignal<T | undefined>;
10
+ data: import("@angular/core").Signal<T | undefined>;
11
+ /**
12
+ * Update the data in the store with the new data
13
+ *
14
+ * @param newData The new data to be stored/updated
15
+ *
16
+ * @author Pavan Kumar Jadda
17
+ * @since 17.1.0
18
+ */
19
+ update(newData: T): void;
20
+ static ɵfac: i0.ɵɵFactoryDeclaration<Store<any>, never>;
21
+ static ɵprov: i0.ɵɵInjectableDeclaration<Store<any>>;
22
+ }
@@ -0,0 +1,3 @@
1
+ export interface IdType {
2
+ id: number;
3
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@js-smart/ng-kit",
3
- "version": "19.5.0",
3
+ "version": "19.7.0",
4
4
  "license": "MIT",
5
5
  "author": "Pavan Kumar Jadda",
6
6
  "private": false,
package/public-api.d.ts CHANGED
@@ -23,5 +23,7 @@ export * from './lib/components/buttons/excel-export-button/excel-export-button.
23
23
  export * from './lib/components/confirm-dialog/confirm-dialog.component';
24
24
  export * from './lib/svg-icons/edit-solid-svg/edit-solid-svg.component';
25
25
  export * from './lib/services/mat-snack-bar.service';
26
+ export * from './lib/store/store';
27
+ export * from './lib/store/entity-store';
26
28
  export * from './lib/util/progress-util';
27
29
  export type { ProgressState };