@js-smart/ng-kit 21.5.0 → 21.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,24 +1,22 @@
1
1
  import * as i0 from '@angular/core';
2
- import { inject, ChangeDetectorRef, input, signal, output, effect, ChangeDetectionStrategy, Component, Pipe, Injectable, HostListener, ViewChild, DestroyRef, forwardRef, DOCUMENT, Input, Directive, ElementRef, ViewContainerRef, Inject, computed } from '@angular/core';
2
+ import { inject, ChangeDetectorRef, input, signal, output, effect, ChangeDetectionStrategy, Component, Pipe, Injectable, HostListener, ViewChild, viewChild, computed, forwardRef, DOCUMENT, Input, Directive, ElementRef, ViewContainerRef, Inject } from '@angular/core';
3
3
  import { trigger, state, transition, style, animate } from '@angular/animations';
4
4
  import { BehaviorSubject, Subject, throttleTime } from 'rxjs';
5
- import { filter, takeUntil, startWith, map } from 'rxjs/operators';
5
+ import { filter, takeUntil } from 'rxjs/operators';
6
6
  import * as i1 from '@angular/platform-browser';
7
7
  import * as i1$1 from '@angular/material/progress-spinner';
8
8
  import { MatProgressSpinnerModule } from '@angular/material/progress-spinner';
9
- import { AsyncPipe } from '@angular/common';
10
- import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
9
+ import { NgClass } from '@angular/common';
11
10
  import * as i1$2 from '@angular/forms';
12
11
  import { FormControl, ReactiveFormsModule, NG_VALUE_ACCESSOR } from '@angular/forms';
13
- import * as i3 from '@angular/material/autocomplete';
14
- import { MatAutocompleteModule } from '@angular/material/autocomplete';
15
- import * as i1$3 from '@angular/material/button';
12
+ import * as i2 from '@angular/material/autocomplete';
13
+ import { MatAutocompleteTrigger, MatAutocompleteModule } from '@angular/material/autocomplete';
14
+ import * as i1$4 from '@angular/material/button';
16
15
  import { MatButtonModule, MatAnchor, MatButton } from '@angular/material/button';
17
- import * as i2 from '@angular/material/form-field';
18
16
  import { MatFormFieldModule } from '@angular/material/form-field';
19
- import * as i1$4 from '@angular/material/icon';
17
+ import * as i1$3 from '@angular/material/icon';
20
18
  import { MatIconModule, MatIcon } from '@angular/material/icon';
21
- import * as i4 from '@angular/material/input';
19
+ import * as i3 from '@angular/material/input';
22
20
  import { MatInputModule } from '@angular/material/input';
23
21
  import * as i1$5 from '@angular/material/dialog';
24
22
  import { MAT_DIALOG_DATA, MatDialogModule } from '@angular/material/dialog';
@@ -421,95 +419,93 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.0", ngImpor
421
419
  */
422
420
  class AutocompleteComponent {
423
421
  constructor() {
424
- this.destroyRef = inject(DestroyRef);
425
- /**
426
- * Internal form control for the autocomplete
427
- */
428
- this.control = new FormControl('');
429
- /**
430
- * Label of the AutoComplete
431
- */
432
- this.label = input('', ...(ngDevMode ? [{ debugName: "label" }] : []));
433
- /**
434
- * Placeholder of the AutoComplete
435
- */
436
- this.placeHolder = input('', ...(ngDevMode ? [{ debugName: "placeHolder" }] : []));
437
- /**
438
- * Appearance of the AutoComplete, defaults to `fill`
439
- */
440
- this.appearance = input('fill', ...(ngDevMode ? [{ debugName: "appearance" }] : []));
441
- /**
442
- * List of CSS classes that need to applied to autocomplete
443
- */
422
+ /** Gets reference to the MatAutocompleteTrigger to programmatically open/close the panel */
423
+ this.autocompleteTrigger = viewChild.required(MatAutocompleteTrigger);
424
+ /** Gets reference to the input element for re-focusing after clear */
425
+ this.inputElement = viewChild.required('inputEl');
426
+ /** Label of the autocomplete form field */
427
+ this.label = input('Select Value', ...(ngDevMode ? [{ debugName: "label" }] : []));
428
+ /** Placeholder text displayed inside the input when empty */
429
+ this.placeholder = input('', ...(ngDevMode ? [{ debugName: "placeholder" }] : []));
430
+ /** Appearance of the form field. Defaults to `outline` */
431
+ this.appearance = input('outline', ...(ngDevMode ? [{ debugName: "appearance" }] : []));
432
+ /** List of CSS classes to apply to the form field */
444
433
  this.classes = input('', ...(ngDevMode ? [{ debugName: "classes" }] : []));
434
+ /** List of options to display in the dropdown */
435
+ this.options = input([], ...(ngDevMode ? [{ debugName: "options" }] : []));
445
436
  /**
446
- * Attribute of the Object whose value would be shown when searching for data. Defaults to `ID`
447
- */
448
- this.bindLabel = input('', ...(ngDevMode ? [{ debugName: "bindLabel" }] : []));
449
- /**
450
- * Attribute of the Object whose value would be used for search
451
- */
452
- this.bindValue = input('id', ...(ngDevMode ? [{ debugName: "bindValue" }] : []));
453
- /**
454
- * Function that maps an option's control value to its display value in the trigger.
455
- */
456
- this.displayWith = input(null, ...(ngDevMode ? [{ debugName: "displayWith" }] : []));
457
- /**
458
- * Specifies if the autocomplete is required. Default is not required.
459
- */
460
- this.required = input(false, ...(ngDevMode ? [{ debugName: "required" }] : []));
461
- /**
462
- * Specifies if the autocomplete is disabled. Default is not required.
463
- */
464
- this.disabled = input(false, ...(ngDevMode ? [{ debugName: "disabled" }] : []));
465
- /**
466
- * Text displayed when no options match the input. Defaults to 'No options'
467
- */
468
- this.noOptionsText = input('No options', ...(ngDevMode ? [{ debugName: "noOptionsText" }] : []));
469
- /**
470
- * Whether the autocomplete is in a loading state. Shows a loading message instead of options
437
+ * Function that maps an option to its display string.
438
+ * Used for rendering options in the dropdown and showing the selected value in the input.
439
+ * Defaults to `String(value)` which works for primitive string options.
471
440
  */
441
+ this.displayWith = input((value) => String(value), ...(ngDevMode ? [{ debugName: "displayWith" }] : []));
442
+ /** Whether the autocomplete is in a loading state. Shows a spinner instead of options */
472
443
  this.loading = input(false, ...(ngDevMode ? [{ debugName: "loading" }] : []));
473
- /**
474
- * Text displayed when the autocomplete is in a loading state. Defaults to 'Loading...'
475
- */
444
+ /** Text displayed when the autocomplete is in a loading state. Defaults to 'Loading...' */
476
445
  this.loadingText = input('Loading...', ...(ngDevMode ? [{ debugName: "loadingText" }] : []));
477
- /**
478
- * List of Objects that need to be bind and searched for
479
- */
480
- this.data = input(...(ngDevMode ? [undefined, { debugName: "data" }] : []));
481
- /**
482
- * Emit selected value on selection changes
483
- */
484
- this.onSelectionChange = output();
485
- /**
486
- * Signal that tracks the current arrow icon state
487
- */
488
- this.arrowIcon = signal('arrow_drop_down', ...(ngDevMode ? [{ debugName: "arrowIcon" }] : []));
489
- this.onChange = () => { };
490
- this.onTouched = () => { };
446
+ /** Text displayed when no options match the filter input. Defaults to 'No values found' */
447
+ this.noOptionsText = input('No values found', ...(ngDevMode ? [{ debugName: "noOptionsText" }] : []));
448
+ /** Emits the selected value when an option is picked from the dropdown */
449
+ this.selectionChange = output();
450
+ /** Internal form control for the autocomplete input */
451
+ this.control = new FormControl('');
452
+ /** Signal that tracks whether the autocomplete panel is currently open */
453
+ this.isExpanded = signal(false, ...(ngDevMode ? [{ debugName: "isExpanded" }] : []));
454
+ /** Signal that tracks the current filter text typed by the user */
455
+ this.filterText = signal('', ...(ngDevMode ? [{ debugName: "filterText" }] : []));
456
+ /**
457
+ * Computed signal that filters options based on the current filter text.
458
+ * Uses the `displayWith` function to extract searchable text from each option.
459
+ * Returns all options when filter text is empty.
460
+ */
461
+ this.filteredOptions = computed(() => {
462
+ const filterValue = this.filterText().toLowerCase();
463
+ const displayFn = this.displayWith();
464
+ return this.options().filter((option) => displayFn(option).toLowerCase().includes(filterValue));
465
+ }, ...(ngDevMode ? [{ debugName: "filteredOptions" }] : []));
466
+ /**
467
+ * Display function passed to mat-autocomplete's [displayWith] to render the
468
+ * selected value in the input field. Returns empty string for null/undefined values.
469
+ */
470
+ this.displayFn = (value) => {
471
+ if (value == null) {
472
+ return '';
473
+ }
474
+ return this.displayWith()(value);
475
+ };
476
+ /** Callback function registered by the parent form to propagate value changes */
477
+ this.onChange = (_) => {
478
+ /* noop */
479
+ };
480
+ /** Callback function registered by the parent form to propagate touched state */
481
+ this.onTouched = () => {
482
+ /* noop */
483
+ };
491
484
  }
492
485
  /**
493
- * Writes a new value to the control
486
+ * Writes a new value to the internal control. Called by the parent form
487
+ * when the form control value is set programmatically.
494
488
  */
495
489
  writeValue(value) {
496
- this.control.setValue(value, { emitEvent: false });
490
+ this.control.setValue(value ?? '', { emitEvent: false });
497
491
  }
498
492
  /**
499
- * Registers a callback function that is called when the control's value changes
493
+ * Registers a callback function that is called when the control's value
494
+ * changes in the UI (option selected or input cleared).
500
495
  */
501
496
  registerOnChange(fn) {
502
497
  this.onChange = fn;
503
- this.control.valueChanges.pipe(takeUntilDestroyed(this.destroyRef)).subscribe((value) => fn(value));
504
498
  }
505
499
  /**
506
- * Registers a callback function that is called when the control is touched
500
+ * Registers a callback function that is called when the control is
501
+ * first interacted with (blur or selection).
507
502
  */
508
503
  registerOnTouched(fn) {
509
504
  this.onTouched = fn;
510
505
  }
511
506
  /**
512
- * Sets the disabled state of the control
507
+ * Sets the disabled state of the internal control. Called by the parent form
508
+ * when `control.disable()` or `control.enable()` is invoked.
513
509
  */
514
510
  setDisabledState(isDisabled) {
515
511
  if (isDisabled) {
@@ -519,109 +515,65 @@ class AutocompleteComponent {
519
515
  this.control.enable();
520
516
  }
521
517
  }
522
- /**
523
- * Initializes the filtered options observable pipeline
524
- */
525
- ngOnInit() {
526
- this.filteredOptions = this.control.valueChanges.pipe(startWith(''), map((value) => (typeof value === 'string' ? value : '')), map((propertyName) => {
527
- if (!propertyName) {
528
- return this.data()?.slice();
529
- }
530
- // If the value exactly matches an existing option, show all options
531
- const isSelectedValue = this.data()?.some((option) => typeof option === 'string' && option === propertyName);
532
- if (isSelectedValue) {
533
- return this.data()?.slice();
534
- }
535
- return (this.data()?.filter((option) => {
536
- return typeof option === 'string'
537
- ? option?.toLowerCase().includes(propertyName.toLowerCase())
538
- : option[this.bindLabel()]?.toLowerCase().includes(propertyName.toLowerCase());
539
- }) ?? this.data()?.slice());
540
- }));
541
- }
542
- /**
543
- * Binds the displayFn to the component context on input changes
544
- */
545
- ngOnChanges(_changes) {
546
- this.displayFn = this.displayFn.bind(this);
518
+ /** Updates the filter text signal as the user types in the input */
519
+ onInput(event) {
520
+ const value = event.target.value;
521
+ this.filterText.set(value);
547
522
  }
548
523
  /**
549
- * Clears the input value, resets the control, and re-focuses the input
524
+ * Clears the input value, resets the filter, notifies the parent form,
525
+ * and re-focuses the input element.
550
526
  */
551
- clearInput(evt) {
552
- evt.stopPropagation();
553
- this.control.reset();
527
+ clearInput(event) {
528
+ this.control.setValue('');
529
+ this.filterText.set('');
554
530
  this.onChange(null);
555
- this.inputAutoComplete?.nativeElement.focus();
556
- }
557
- /**
558
- * Toggles the autocomplete panel open or closed
559
- */
560
- openOrClosePanel(evt, trigger) {
561
- evt.stopPropagation();
562
- if (trigger.panelOpen) {
563
- trigger.closePanel();
564
- }
565
- else {
566
- trigger.openPanel();
567
- }
568
- }
569
- /**
570
- * Returns the display value for the given option. Uses custom displayWith function if provided,
571
- * otherwise falls back to the bindLabel property or the string value itself.
572
- */
573
- displayFn(object) {
574
- const customDisplayWith = this.displayWith();
575
- if (customDisplayWith) {
576
- return customDisplayWith(object);
577
- }
578
- if (typeof object === 'string') {
579
- return object;
580
- }
581
- return object?.[this.bindLabel()] ? object[this.bindLabel()] : '';
582
- }
583
- /**
584
- * Emits the selected value and notifies the parent form of the selection change
585
- */
586
- emitSelectedValue($event) {
587
- this.onSelectionChange.emit($event.source.value);
588
- this.onChange($event.source.value);
589
531
  this.onTouched();
532
+ event.stopPropagation();
533
+ this.inputElement().nativeElement.focus();
590
534
  }
591
- /**
592
- * Updates the arrow icon to point up when the panel opens
593
- */
594
- onPanelOpened() {
595
- this.arrowIcon.set('arrow_drop_up');
535
+ /** Opens the autocomplete panel programmatically */
536
+ openPanel() {
537
+ this.autocompleteTrigger().openPanel();
596
538
  }
597
539
  /**
598
- * Updates the arrow icon to point down when the panel closes
540
+ * Handles option selection from the dropdown. Resets the filter text,
541
+ * notifies the parent form of the new value, and emits the selectionChange output.
599
542
  */
600
- onPanelClosed() {
601
- this.arrowIcon.set('arrow_drop_down');
543
+ onOptionSelected(value) {
544
+ this.filterText.set('');
545
+ this.onChange(value);
546
+ this.onTouched();
547
+ this.selectionChange.emit(value);
602
548
  }
603
549
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.0", ngImport: i0, type: AutocompleteComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
604
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.0.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: true, 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 }, noOptionsText: { classPropertyName: "noOptionsText", publicName: "noOptionsText", isSignal: true, isRequired: false, transformFunction: null }, loading: { classPropertyName: "loading", publicName: "loading", isSignal: true, isRequired: false, transformFunction: null }, loadingText: { classPropertyName: "loadingText", publicName: "loadingText", isSignal: true, isRequired: false, transformFunction: null }, data: { classPropertyName: "data", publicName: "data", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { onSelectionChange: "onSelectionChange" }, providers: [
550
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.0.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 }, options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null }, displayWith: { classPropertyName: "displayWith", publicName: "displayWith", isSignal: true, isRequired: false, transformFunction: null }, loading: { classPropertyName: "loading", publicName: "loading", isSignal: true, isRequired: false, transformFunction: null }, loadingText: { classPropertyName: "loadingText", publicName: "loadingText", isSignal: true, isRequired: false, transformFunction: null }, noOptionsText: { classPropertyName: "noOptionsText", publicName: "noOptionsText", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { selectionChange: "selectionChange" }, providers: [
605
551
  {
606
552
  provide: NG_VALUE_ACCESSOR,
607
553
  useExisting: forwardRef(() => AutocompleteComponent),
608
554
  multi: true,
609
555
  },
610
- ], viewQueries: [{ propertyName: "inputAutoComplete", first: true, predicate: ["inputAutoComplete"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<mat-form-field [appearance]=\"appearance()\" [class]=\"classes()\">\n\t<mat-label>{{ label() }}</mat-label>\n\t<input\n\t\t#inputAutoComplete\n\t\t#trigger=\"matAutocompleteTrigger\"\n\t\t[formControl]=\"control\"\n\t\t[matAutocomplete]=\"auto\"\n\t\t[placeholder]=\"placeHolder()\"\n\t\t[required]=\"required()\"\n\t\tmatInput\n\t\ttype=\"text\" />\n\n\t@if (!control.disabled) {\n\t\t<div matSuffix style=\"display: flex\">\n\t\t\t<button\n\t\t\t\t(click)=\"clearInput($event)\"\n\t\t\t\t[style.visibility]=\"control.value ? 'visible' : 'hidden'\"\n\t\t\t\taria-label=\"Clear\"\n\t\t\t\tmat-icon-button\n\t\t\t\ttype=\"button\">\n\t\t\t\t<mat-icon>clear</mat-icon>\n\t\t\t</button>\n\t\t\t<button (click)=\"openOrClosePanel($event, trigger)\" aria-label=\"Toggle dropdown\" mat-icon-button type=\"button\">\n\t\t\t\t<mat-icon>{{ arrowIcon() }}</mat-icon>\n\t\t\t</button>\n\t\t</div>\n\t}\n\n\t<mat-autocomplete\n\t\t#auto=\"matAutocomplete\"\n\t\t(closed)=\"onPanelClosed()\"\n\t\t(opened)=\"onPanelOpened()\"\n\t\t(optionSelected)=\"onPanelClosed()\"\n\t\t[displayWith]=\"displayFn\">\n\t\t@if (loading()) {\n\t\t\t<mat-option disabled>\n\t\t\t\t<div style=\"display: flex; align-items: center; gap: 8px\">\n\t\t\t\t\t<mat-spinner diameter=\"20\"></mat-spinner>\n\t\t\t\t\t<span>{{ loadingText() }}</span>\n\t\t\t\t</div>\n\t\t\t</mat-option>\n\t\t} @else {\n\t\t\t@for (option of filteredOptions | async; track typeof option === 'string' ? option : option[bindValue()]) {\n\t\t\t\t<mat-option (onSelectionChange)=\"emitSelectedValue($event)\" [value]=\"option\">\n\t\t\t\t\t@if (typeof option === 'string') {\n\t\t\t\t\t\t<ng-container>{{ option }}</ng-container>\n\t\t\t\t\t} @else if (typeof option === 'object') {\n\t\t\t\t\t\t<ng-container>{{ option[bindLabel()] }}</ng-container>\n\t\t\t\t\t}\n\t\t\t\t</mat-option>\n\t\t\t} @empty {\n\t\t\t\t<mat-option disabled>{{ noOptionsText() }}</mat-option>\n\t\t\t}\n\t\t}\n\t</mat-autocomplete>\n</mat-form-field>\n", dependencies: [{ kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1$2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1$2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$2.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i1$2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "ngmodule", type: MatFormFieldModule }, { kind: "component", type: i2.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i2.MatLabel, selector: "mat-label" }, { kind: "directive", type: i2.MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { kind: "ngmodule", type: MatAutocompleteModule }, { kind: "component", type: i3.MatAutocomplete, selector: "mat-autocomplete", inputs: ["aria-label", "aria-labelledby", "displayWith", "autoActiveFirstOption", "autoSelectActiveOption", "requireSelection", "panelWidth", "disableRipple", "class", "hideSingleSelectionIndicator"], outputs: ["optionSelected", "opened", "closed", "optionActivated"], exportAs: ["matAutocomplete"] }, { kind: "component", type: i3.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "directive", type: i3.MatAutocompleteTrigger, selector: "input[matAutocomplete], textarea[matAutocomplete]", inputs: ["matAutocomplete", "matAutocompletePosition", "matAutocompleteConnectedTo", "autocomplete", "matAutocompleteDisabled"], exportAs: ["matAutocompleteTrigger"] }, { kind: "ngmodule", type: MatInputModule }, { kind: "directive", type: i4.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly", "disabledInteractive"], exportAs: ["matInput"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i1$3.MatIconButton, selector: "button[mat-icon-button], a[mat-icon-button], button[matIconButton], a[matIconButton]", exportAs: ["matButton", "matAnchor"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i1$4.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: MatProgressSpinnerModule }, { kind: "component", type: i1$1.MatProgressSpinner, selector: "mat-progress-spinner, mat-spinner", inputs: ["color", "mode", "value", "diameter", "strokeWidth"], exportAs: ["matProgressSpinner"] }, { kind: "pipe", type: AsyncPipe, name: "async" }] }); }
556
+ ], viewQueries: [{ propertyName: "autocompleteTrigger", first: true, predicate: MatAutocompleteTrigger, descendants: true, isSignal: true }, { propertyName: "inputElement", first: true, predicate: ["inputEl"], descendants: true, isSignal: true }], ngImport: i0, template: "<mat-form-field\n\t#origin=\"matAutocompleteOrigin\"\n\t[appearance]=\"appearance()\"\n\t[ngClass]=\"classes()\"\n\tmatAutocompleteOrigin\n\tsubscriptSizing=\"dynamic\">\n\t<mat-label>{{ label() }}</mat-label>\n\n\t<input\n\t\t#inputEl\n\t\t#trigger=\"matAutocompleteTrigger\"\n\t\t(click)=\"trigger.openPanel()\"\n\t\t(input)=\"onInput($event)\"\n\t\t[formControl]=\"control\"\n\t\t[matAutocompleteConnectedTo]=\"origin\"\n\t\t[matAutocomplete]=\"auto\"\n\t\t[placeholder]=\"placeholder()\"\n\t\tmatInput\n\t\ttype=\"text\" />\n\n\t<div class=\"autocomplete-suffix\" matSuffix>\n\t\t@if (control.value) {\n\t\t\t<button (click)=\"clearInput($event)\" class=\"suffix-action-btn\" mat-icon-button>\n\t\t\t\t<mat-icon>close</mat-icon>\n\t\t\t</button>\n\t\t} @else {\n\t\t\t<span aria-hidden=\"true\" class=\"suffix-placeholder\"></span>\n\t\t}\n\t\t<button\n\t\t\t(click)=\"trigger.panelOpen ? trigger.closePanel() : trigger.openPanel(); $event.stopPropagation()\"\n\t\t\t[attr.aria-label]=\"trigger.panelOpen ? 'Close options' : 'Open options'\"\n\t\t\tclass=\"suffix-action-btn\"\n\t\t\tmat-icon-button\n\t\t\ttype=\"button\">\n\t\t\t@if (isExpanded()) {\n\t\t\t\t<mat-icon>arrow_drop_up</mat-icon>\n\t\t\t} @else {\n\t\t\t\t<mat-icon>arrow_drop_down</mat-icon>\n\t\t\t}\n\t\t</button>\n\t</div>\n\n\t<mat-autocomplete\n\t\t#auto=\"matAutocomplete\"\n\t\t(closed)=\"isExpanded.set(false)\"\n\t\t(opened)=\"isExpanded.set(true)\"\n\t\t(optionSelected)=\"onOptionSelected($event.option.value)\"\n\t\t[displayWith]=\"displayFn\">\n\t\t@if (loading()) {\n\t\t\t<mat-option disabled>\n\t\t\t\t<div style=\"display: flex; align-items: center; gap: 8px\">\n\t\t\t\t\t<mat-spinner diameter=\"20\"></mat-spinner>\n\t\t\t\t\t<span>{{ loadingText() }}</span>\n\t\t\t\t</div>\n\t\t\t</mat-option>\n\t\t} @else {\n\t\t\t@for (option of filteredOptions(); track option) {\n\t\t\t\t<mat-option [value]=\"option\">{{ displayWith()(option) }}</mat-option>\n\t\t\t} @empty {\n\t\t\t\t<mat-option disabled>{{ noOptionsText() }}</mat-option>\n\t\t\t}\n\t\t}\n\t</mat-autocomplete>\n</mat-form-field>\n", styles: [".autocomplete-suffix{display:flex;align-items:center}.suffix-action-btn{width:40px;height:40px;padding:0}.suffix-placeholder{display:inline-block;width:40px}\n"], dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { 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.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "ngmodule", type: MatAutocompleteModule }, { kind: "component", type: i2.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: i2.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "directive", type: i2.MatAutocompleteTrigger, selector: "input[matAutocomplete], textarea[matAutocomplete]", inputs: ["matAutocomplete", "matAutocompletePosition", "matAutocompleteConnectedTo", "autocomplete", "matAutocompleteDisabled"], exportAs: ["matAutocompleteTrigger"] }, { kind: "directive", type: i2.MatAutocompleteOrigin, selector: "[matAutocompleteOrigin]", exportAs: ["matAutocompleteOrigin"] }, { kind: "ngmodule", type: MatInputModule }, { kind: "directive", type: i3.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: "component", type: i3.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i3.MatLabel, selector: "mat-label" }, { kind: "directive", type: i3.MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { kind: "ngmodule", type: MatFormFieldModule }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i1$3.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i1$4.MatIconButton, selector: "button[mat-icon-button], a[mat-icon-button], button[matIconButton], a[matIconButton]", exportAs: ["matButton", "matAnchor"] }, { kind: "ngmodule", type: MatProgressSpinnerModule }, { kind: "component", type: i1$1.MatProgressSpinner, selector: "mat-progress-spinner, mat-spinner", inputs: ["color", "mode", "value", "diameter", "strokeWidth"], exportAs: ["matProgressSpinner"] }] }); }
611
557
  }
612
558
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.0", ngImport: i0, type: AutocompleteComponent, decorators: [{
613
559
  type: Component,
614
- args: [{ selector: 'autocomplete, lib-autocomplete', imports: [AsyncPipe, ReactiveFormsModule, MatFormFieldModule, MatAutocompleteModule, MatInputModule, MatButtonModule, MatIconModule, MatProgressSpinnerModule], providers: [
560
+ args: [{ selector: 'autocomplete, lib-autocomplete', imports: [
561
+ NgClass,
562
+ ReactiveFormsModule,
563
+ MatAutocompleteModule,
564
+ MatInputModule,
565
+ MatFormFieldModule,
566
+ MatIconModule,
567
+ MatButtonModule,
568
+ MatProgressSpinnerModule,
569
+ ], providers: [
615
570
  {
616
571
  provide: NG_VALUE_ACCESSOR,
617
572
  useExisting: forwardRef(() => AutocompleteComponent),
618
573
  multi: true,
619
574
  },
620
- ], template: "<mat-form-field [appearance]=\"appearance()\" [class]=\"classes()\">\n\t<mat-label>{{ label() }}</mat-label>\n\t<input\n\t\t#inputAutoComplete\n\t\t#trigger=\"matAutocompleteTrigger\"\n\t\t[formControl]=\"control\"\n\t\t[matAutocomplete]=\"auto\"\n\t\t[placeholder]=\"placeHolder()\"\n\t\t[required]=\"required()\"\n\t\tmatInput\n\t\ttype=\"text\" />\n\n\t@if (!control.disabled) {\n\t\t<div matSuffix style=\"display: flex\">\n\t\t\t<button\n\t\t\t\t(click)=\"clearInput($event)\"\n\t\t\t\t[style.visibility]=\"control.value ? 'visible' : 'hidden'\"\n\t\t\t\taria-label=\"Clear\"\n\t\t\t\tmat-icon-button\n\t\t\t\ttype=\"button\">\n\t\t\t\t<mat-icon>clear</mat-icon>\n\t\t\t</button>\n\t\t\t<button (click)=\"openOrClosePanel($event, trigger)\" aria-label=\"Toggle dropdown\" mat-icon-button type=\"button\">\n\t\t\t\t<mat-icon>{{ arrowIcon() }}</mat-icon>\n\t\t\t</button>\n\t\t</div>\n\t}\n\n\t<mat-autocomplete\n\t\t#auto=\"matAutocomplete\"\n\t\t(closed)=\"onPanelClosed()\"\n\t\t(opened)=\"onPanelOpened()\"\n\t\t(optionSelected)=\"onPanelClosed()\"\n\t\t[displayWith]=\"displayFn\">\n\t\t@if (loading()) {\n\t\t\t<mat-option disabled>\n\t\t\t\t<div style=\"display: flex; align-items: center; gap: 8px\">\n\t\t\t\t\t<mat-spinner diameter=\"20\"></mat-spinner>\n\t\t\t\t\t<span>{{ loadingText() }}</span>\n\t\t\t\t</div>\n\t\t\t</mat-option>\n\t\t} @else {\n\t\t\t@for (option of filteredOptions | async; track typeof option === 'string' ? option : option[bindValue()]) {\n\t\t\t\t<mat-option (onSelectionChange)=\"emitSelectedValue($event)\" [value]=\"option\">\n\t\t\t\t\t@if (typeof option === 'string') {\n\t\t\t\t\t\t<ng-container>{{ option }}</ng-container>\n\t\t\t\t\t} @else if (typeof option === 'object') {\n\t\t\t\t\t\t<ng-container>{{ option[bindLabel()] }}</ng-container>\n\t\t\t\t\t}\n\t\t\t\t</mat-option>\n\t\t\t} @empty {\n\t\t\t\t<mat-option disabled>{{ noOptionsText() }}</mat-option>\n\t\t\t}\n\t\t}\n\t</mat-autocomplete>\n</mat-form-field>\n" }]
621
- }], propDecorators: { inputAutoComplete: [{
622
- type: ViewChild,
623
- args: ['inputAutoComplete']
624
- }], label: [{ type: i0.Input, args: [{ isSignal: true, alias: "label", required: false }] }], placeHolder: [{ type: i0.Input, args: [{ isSignal: true, alias: "placeHolder", required: false }] }], appearance: [{ type: i0.Input, args: [{ isSignal: true, alias: "appearance", required: false }] }], classes: [{ type: i0.Input, args: [{ isSignal: true, alias: "classes", required: false }] }], bindLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "bindLabel", required: false }] }], bindValue: [{ type: i0.Input, args: [{ isSignal: true, alias: "bindValue", required: false }] }], displayWith: [{ type: i0.Input, args: [{ isSignal: true, alias: "displayWith", required: false }] }], required: [{ type: i0.Input, args: [{ isSignal: true, alias: "required", required: false }] }], disabled: [{ type: i0.Input, args: [{ isSignal: true, alias: "disabled", required: false }] }], noOptionsText: [{ type: i0.Input, args: [{ isSignal: true, alias: "noOptionsText", required: false }] }], loading: [{ type: i0.Input, args: [{ isSignal: true, alias: "loading", required: false }] }], loadingText: [{ type: i0.Input, args: [{ isSignal: true, alias: "loadingText", required: false }] }], data: [{ type: i0.Input, args: [{ isSignal: true, alias: "data", required: false }] }], onSelectionChange: [{ type: i0.Output, args: ["onSelectionChange"] }] } });
575
+ ], template: "<mat-form-field\n\t#origin=\"matAutocompleteOrigin\"\n\t[appearance]=\"appearance()\"\n\t[ngClass]=\"classes()\"\n\tmatAutocompleteOrigin\n\tsubscriptSizing=\"dynamic\">\n\t<mat-label>{{ label() }}</mat-label>\n\n\t<input\n\t\t#inputEl\n\t\t#trigger=\"matAutocompleteTrigger\"\n\t\t(click)=\"trigger.openPanel()\"\n\t\t(input)=\"onInput($event)\"\n\t\t[formControl]=\"control\"\n\t\t[matAutocompleteConnectedTo]=\"origin\"\n\t\t[matAutocomplete]=\"auto\"\n\t\t[placeholder]=\"placeholder()\"\n\t\tmatInput\n\t\ttype=\"text\" />\n\n\t<div class=\"autocomplete-suffix\" matSuffix>\n\t\t@if (control.value) {\n\t\t\t<button (click)=\"clearInput($event)\" class=\"suffix-action-btn\" mat-icon-button>\n\t\t\t\t<mat-icon>close</mat-icon>\n\t\t\t</button>\n\t\t} @else {\n\t\t\t<span aria-hidden=\"true\" class=\"suffix-placeholder\"></span>\n\t\t}\n\t\t<button\n\t\t\t(click)=\"trigger.panelOpen ? trigger.closePanel() : trigger.openPanel(); $event.stopPropagation()\"\n\t\t\t[attr.aria-label]=\"trigger.panelOpen ? 'Close options' : 'Open options'\"\n\t\t\tclass=\"suffix-action-btn\"\n\t\t\tmat-icon-button\n\t\t\ttype=\"button\">\n\t\t\t@if (isExpanded()) {\n\t\t\t\t<mat-icon>arrow_drop_up</mat-icon>\n\t\t\t} @else {\n\t\t\t\t<mat-icon>arrow_drop_down</mat-icon>\n\t\t\t}\n\t\t</button>\n\t</div>\n\n\t<mat-autocomplete\n\t\t#auto=\"matAutocomplete\"\n\t\t(closed)=\"isExpanded.set(false)\"\n\t\t(opened)=\"isExpanded.set(true)\"\n\t\t(optionSelected)=\"onOptionSelected($event.option.value)\"\n\t\t[displayWith]=\"displayFn\">\n\t\t@if (loading()) {\n\t\t\t<mat-option disabled>\n\t\t\t\t<div style=\"display: flex; align-items: center; gap: 8px\">\n\t\t\t\t\t<mat-spinner diameter=\"20\"></mat-spinner>\n\t\t\t\t\t<span>{{ loadingText() }}</span>\n\t\t\t\t</div>\n\t\t\t</mat-option>\n\t\t} @else {\n\t\t\t@for (option of filteredOptions(); track option) {\n\t\t\t\t<mat-option [value]=\"option\">{{ displayWith()(option) }}</mat-option>\n\t\t\t} @empty {\n\t\t\t\t<mat-option disabled>{{ noOptionsText() }}</mat-option>\n\t\t\t}\n\t\t}\n\t</mat-autocomplete>\n</mat-form-field>\n", styles: [".autocomplete-suffix{display:flex;align-items:center}.suffix-action-btn{width:40px;height:40px;padding:0}.suffix-placeholder{display:inline-block;width:40px}\n"] }]
576
+ }], propDecorators: { autocompleteTrigger: [{ type: i0.ViewChild, args: [i0.forwardRef(() => MatAutocompleteTrigger), { isSignal: true }] }], inputElement: [{ type: i0.ViewChild, args: ['inputEl', { isSignal: true }] }], label: [{ type: i0.Input, args: [{ isSignal: true, alias: "label", required: false }] }], placeholder: [{ type: i0.Input, args: [{ isSignal: true, alias: "placeholder", required: false }] }], appearance: [{ type: i0.Input, args: [{ isSignal: true, alias: "appearance", required: false }] }], classes: [{ type: i0.Input, args: [{ isSignal: true, alias: "classes", required: false }] }], options: [{ type: i0.Input, args: [{ isSignal: true, alias: "options", required: false }] }], displayWith: [{ type: i0.Input, args: [{ isSignal: true, alias: "displayWith", required: false }] }], loading: [{ type: i0.Input, args: [{ isSignal: true, alias: "loading", required: false }] }], loadingText: [{ type: i0.Input, args: [{ isSignal: true, alias: "loadingText", required: false }] }], noOptionsText: [{ type: i0.Input, args: [{ isSignal: true, alias: "noOptionsText", required: false }] }], selectionChange: [{ type: i0.Output, args: ["selectionChange"] }] } });
625
577
 
626
578
  class PrintOptions {
627
579
  constructor(options) {
@@ -1210,7 +1162,7 @@ class DeleteButtonComponent extends BaseButtonComponent {
1210
1162
  }
1211
1163
  {{ loading() ? loadingLabel() : label() }}
1212
1164
  </button>
1213
- `, isInline: true, styles: [".primary-button,.primary-button:hover,.primary-button:active,.primary-button:visited{color:#fff!important;background-color:var(--primary-color)!important}.secondary-button,.secondary-button:hover,.secondary-button:active,.secondary-button:visited{color:#fff!important;background-color:var(--secondary-color)!important}.success-button,.success-button:hover,.success-button:active,.success-button:visited{color:#fff!important;background-color:var(--success-color)!important}.delete-button,.delete-button:hover,.delete-button:active,.success-button:visited{color:#fff!important;background-color:var(--delete-color)!important}\n"], dependencies: [{ kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i1$3.MatButton, selector: " button[matButton], a[matButton], button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button], a[mat-button], a[mat-raised-button], a[mat-flat-button], a[mat-stroked-button] ", inputs: ["matButton"], exportAs: ["matButton", "matAnchor"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i1$4.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }] }); }
1165
+ `, isInline: true, styles: [".primary-button,.primary-button:hover,.primary-button:active,.primary-button:visited{color:#fff!important;background-color:var(--primary-color)!important}.secondary-button,.secondary-button:hover,.secondary-button:active,.secondary-button:visited{color:#fff!important;background-color:var(--secondary-color)!important}.success-button,.success-button:hover,.success-button:active,.success-button:visited{color:#fff!important;background-color:var(--success-color)!important}.delete-button,.delete-button:hover,.delete-button:active,.success-button:visited{color:#fff!important;background-color:var(--delete-color)!important}\n"], dependencies: [{ kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i1$4.MatButton, selector: " button[matButton], a[matButton], button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button], a[mat-button], a[mat-raised-button], a[mat-flat-button], a[mat-stroked-button] ", inputs: ["matButton"], exportAs: ["matButton", "matAnchor"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i1$3.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }] }); }
1214
1166
  }
1215
1167
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.0", ngImport: i0, type: DeleteButtonComponent, decorators: [{
1216
1168
  type: Component,
@@ -1264,8 +1216,8 @@ class EditSolidSvgComponent {
1264
1216
  constructor(iconRegistry, sanitizer) {
1265
1217
  iconRegistry.addSvgIconLiteral('edit-solid', sanitizer.bypassSecurityTrustHtml(EDIT_ICON));
1266
1218
  }
1267
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.0", ngImport: i0, type: EditSolidSvgComponent, deps: [{ token: i1$4.MatIconRegistry }, { token: i1.DomSanitizer }], target: i0.ɵɵFactoryTarget.Component }); }
1268
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.0.0", type: EditSolidSvgComponent, isStandalone: true, selector: "edit-solid-svg", ngImport: i0, template: ` <mat-icon aria-hidden="false" aria-label="Edit" svgIcon="edit-solid" class="pe-2 align-bottom"></mat-icon> `, isInline: true, dependencies: [{ kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i1$4.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }] }); }
1219
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.0", ngImport: i0, type: EditSolidSvgComponent, deps: [{ token: i1$3.MatIconRegistry }, { token: i1.DomSanitizer }], target: i0.ɵɵFactoryTarget.Component }); }
1220
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.0.0", type: EditSolidSvgComponent, isStandalone: true, selector: "edit-solid-svg", ngImport: i0, template: ` <mat-icon aria-hidden="false" aria-label="Edit" svgIcon="edit-solid" class="pe-2 align-bottom"></mat-icon> `, isInline: true, dependencies: [{ kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i1$3.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }] }); }
1269
1221
  }
1270
1222
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.0", ngImport: i0, type: EditSolidSvgComponent, decorators: [{
1271
1223
  type: Component,
@@ -1274,7 +1226,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.0", ngImpor
1274
1226
  imports: [MatIconModule],
1275
1227
  template: ` <mat-icon aria-hidden="false" aria-label="Edit" svgIcon="edit-solid" class="pe-2 align-bottom"></mat-icon> `,
1276
1228
  }]
1277
- }], ctorParameters: () => [{ type: i1$4.MatIconRegistry }, { type: i1.DomSanitizer }] });
1229
+ }], ctorParameters: () => [{ type: i1$3.MatIconRegistry }, { type: i1.DomSanitizer }] });
1278
1230
 
1279
1231
  class EditBsButtonComponent extends BaseButtonComponent {
1280
1232
  constructor() {
@@ -1301,7 +1253,7 @@ class EditBsButtonComponent extends BaseButtonComponent {
1301
1253
  <edit-solid-svg></edit-solid-svg>
1302
1254
  {{ label() }}
1303
1255
  </button>
1304
- `, isInline: true, styles: [".primary-button,.primary-button:hover,.primary-button:active,.primary-button:visited{color:#fff!important;background-color:var(--primary-color)!important}.secondary-button,.secondary-button:hover,.secondary-button:active,.secondary-button:visited{color:#fff!important;background-color:var(--secondary-color)!important}.success-button,.success-button:hover,.success-button:active,.success-button:visited{color:#fff!important;background-color:var(--success-color)!important}.delete-button,.delete-button:hover,.delete-button:active,.success-button:visited{color:#fff!important;background-color:var(--delete-color)!important}\n"], dependencies: [{ kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i1$3.MatButton, selector: " button[matButton], a[matButton], button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button], a[mat-button], a[mat-raised-button], a[mat-flat-button], a[mat-stroked-button] ", inputs: ["matButton"], exportAs: ["matButton", "matAnchor"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: EditSolidSvgComponent, selector: "edit-solid-svg" }] }); }
1256
+ `, isInline: true, styles: [".primary-button,.primary-button:hover,.primary-button:active,.primary-button:visited{color:#fff!important;background-color:var(--primary-color)!important}.secondary-button,.secondary-button:hover,.secondary-button:active,.secondary-button:visited{color:#fff!important;background-color:var(--secondary-color)!important}.success-button,.success-button:hover,.success-button:active,.success-button:visited{color:#fff!important;background-color:var(--success-color)!important}.delete-button,.delete-button:hover,.delete-button:active,.success-button:visited{color:#fff!important;background-color:var(--delete-color)!important}\n"], dependencies: [{ kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i1$4.MatButton, selector: " button[matButton], a[matButton], button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button], a[mat-button], a[mat-raised-button], a[mat-flat-button], a[mat-stroked-button] ", inputs: ["matButton"], exportAs: ["matButton", "matAnchor"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: EditSolidSvgComponent, selector: "edit-solid-svg" }] }); }
1305
1257
  }
1306
1258
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.0", ngImport: i0, type: EditBsButtonComponent, decorators: [{
1307
1259
  type: Component,
@@ -1514,7 +1466,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.0", ngImpor
1514
1466
 
1515
1467
  class ExcelExportButtonComponent {
1516
1468
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.0", ngImport: i0, type: ExcelExportButtonComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1517
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.0.0", type: ExcelExportButtonComponent, isStandalone: true, selector: "excel-export-button", ngImport: i0, template: ` <button class="excel-export-button" mat-raised-button type="button" data-cy="excel-export-button">Excel</button> `, isInline: true, styles: [".primary-button,.primary-button:hover,.primary-button:active,.primary-button:visited{color:#fff!important;background-color:var(--primary-color)!important}.secondary-button,.secondary-button:hover,.secondary-button:active,.secondary-button:visited{color:#fff!important;background-color:var(--secondary-color)!important}.success-button,.success-button:hover,.success-button:active,.success-button:visited{color:#fff!important;background-color:var(--success-color)!important}.delete-button,.delete-button:hover,.delete-button:active,.success-button:visited{color:#fff!important;background-color:var(--delete-color)!important}\n", ".excel-export-button{margin-left:20px!important;margin-right:20px!important;width:100px;color:#fff!important;background-color:#006400!important;border-radius:24px!important}\n"], dependencies: [{ kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i1$3.MatButton, selector: " button[matButton], a[matButton], button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button], a[mat-button], a[mat-raised-button], a[mat-flat-button], a[mat-stroked-button] ", inputs: ["matButton"], exportAs: ["matButton", "matAnchor"] }] }); }
1469
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.0.0", type: ExcelExportButtonComponent, isStandalone: true, selector: "excel-export-button", ngImport: i0, template: ` <button class="excel-export-button" mat-raised-button type="button" data-cy="excel-export-button">Excel</button> `, isInline: true, styles: [".primary-button,.primary-button:hover,.primary-button:active,.primary-button:visited{color:#fff!important;background-color:var(--primary-color)!important}.secondary-button,.secondary-button:hover,.secondary-button:active,.secondary-button:visited{color:#fff!important;background-color:var(--secondary-color)!important}.success-button,.success-button:hover,.success-button:active,.success-button:visited{color:#fff!important;background-color:var(--success-color)!important}.delete-button,.delete-button:hover,.delete-button:active,.success-button:visited{color:#fff!important;background-color:var(--delete-color)!important}\n", ".excel-export-button{margin-left:20px!important;margin-right:20px!important;width:100px;color:#fff!important;background-color:#006400!important;border-radius:24px!important}\n"], dependencies: [{ kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i1$4.MatButton, selector: " button[matButton], a[matButton], button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button], a[mat-button], a[mat-raised-button], a[mat-flat-button], a[mat-stroked-button] ", inputs: ["matButton"], exportAs: ["matButton", "matAnchor"] }] }); }
1518
1470
  }
1519
1471
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.0", ngImport: i0, type: ExcelExportButtonComponent, decorators: [{
1520
1472
  type: Component,
@@ -1608,7 +1560,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.0", ngImpor
1608
1560
 
1609
1561
  class PdfExportButtonComponent {
1610
1562
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.0", ngImport: i0, type: PdfExportButtonComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1611
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.0.0", type: PdfExportButtonComponent, isStandalone: true, selector: "pdf-export-button", ngImport: i0, template: ` <button class="pdf-export-button" mat-raised-button type="button" data-cy="pdf-export-button">PDF</button> `, isInline: true, styles: [".pdf-export-button{margin-left:20px!important;width:100px;color:#fff!important;background-color:#a3071b!important;border-radius:24px!important}\n"], dependencies: [{ kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i1$3.MatButton, selector: " button[matButton], a[matButton], button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button], a[mat-button], a[mat-raised-button], a[mat-flat-button], a[mat-stroked-button] ", inputs: ["matButton"], exportAs: ["matButton", "matAnchor"] }] }); }
1563
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.0.0", type: PdfExportButtonComponent, isStandalone: true, selector: "pdf-export-button", ngImport: i0, template: ` <button class="pdf-export-button" mat-raised-button type="button" data-cy="pdf-export-button">PDF</button> `, isInline: true, styles: [".pdf-export-button{margin-left:20px!important;width:100px;color:#fff!important;background-color:#a3071b!important;border-radius:24px!important}\n"], dependencies: [{ kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i1$4.MatButton, selector: " button[matButton], a[matButton], button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button], a[mat-button], a[mat-raised-button], a[mat-flat-button], a[mat-stroked-button] ", inputs: ["matButton"], exportAs: ["matButton", "matAnchor"] }] }); }
1612
1564
  }
1613
1565
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.0", ngImport: i0, type: PdfExportButtonComponent, decorators: [{
1614
1566
  type: Component,
@@ -1820,7 +1772,7 @@ class SearchButtonComponent extends BaseButtonComponent {
1820
1772
  }
1821
1773
  {{ loading() ? loadingLabel() : label() }}
1822
1774
  </button>
1823
- `, isInline: true, styles: [".primary-button,.primary-button:hover,.primary-button:active,.primary-button:visited{color:#fff!important;background-color:var(--primary-color)!important}.secondary-button,.secondary-button:hover,.secondary-button:active,.secondary-button:visited{color:#fff!important;background-color:var(--secondary-color)!important}.success-button,.success-button:hover,.success-button:active,.success-button:visited{color:#fff!important;background-color:var(--success-color)!important}.delete-button,.delete-button:hover,.delete-button:active,.success-button:visited{color:#fff!important;background-color:var(--delete-color)!important}\n"], dependencies: [{ kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i1$3.MatButton, selector: " button[matButton], a[matButton], button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button], a[mat-button], a[mat-raised-button], a[mat-flat-button], a[mat-stroked-button] ", inputs: ["matButton"], exportAs: ["matButton", "matAnchor"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i1$4.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }] }); }
1775
+ `, isInline: true, styles: [".primary-button,.primary-button:hover,.primary-button:active,.primary-button:visited{color:#fff!important;background-color:var(--primary-color)!important}.secondary-button,.secondary-button:hover,.secondary-button:active,.secondary-button:visited{color:#fff!important;background-color:var(--secondary-color)!important}.success-button,.success-button:hover,.success-button:active,.success-button:visited{color:#fff!important;background-color:var(--success-color)!important}.delete-button,.delete-button:hover,.delete-button:active,.success-button:visited{color:#fff!important;background-color:var(--delete-color)!important}\n"], dependencies: [{ kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i1$4.MatButton, selector: " button[matButton], a[matButton], button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button], a[mat-button], a[mat-raised-button], a[mat-flat-button], a[mat-stroked-button] ", inputs: ["matButton"], exportAs: ["matButton", "matAnchor"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i1$3.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }] }); }
1824
1776
  }
1825
1777
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.0", ngImport: i0, type: SearchButtonComponent, decorators: [{
1826
1778
  type: Component,
@@ -2077,7 +2029,7 @@ class ConfirmDialogComponent {
2077
2029
  <button (click)="onDismiss()" mat-raised-button>No</button>
2078
2030
  <button (click)="onConfirm()" class="primary-button" mat-raised-button>Yes</button>
2079
2031
  </div>
2080
- `, isInline: true, dependencies: [{ kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i1$3.MatButton, selector: " button[matButton], a[matButton], button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button], a[mat-button], a[mat-raised-button], a[mat-flat-button], a[mat-stroked-button] ", inputs: ["matButton"], exportAs: ["matButton", "matAnchor"] }, { kind: "ngmodule", type: MatDividerModule }, { kind: "component", type: i3$1.MatDivider, selector: "mat-divider", inputs: ["vertical", "inset"] }, { kind: "ngmodule", type: MatDialogModule }, { kind: "directive", type: i1$5.MatDialogActions, selector: "[mat-dialog-actions], mat-dialog-actions, [matDialogActions]", inputs: ["align"] }, { kind: "directive", type: i1$5.MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }] }); }
2032
+ `, isInline: true, dependencies: [{ kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i1$4.MatButton, selector: " button[matButton], a[matButton], button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button], a[mat-button], a[mat-raised-button], a[mat-flat-button], a[mat-stroked-button] ", inputs: ["matButton"], exportAs: ["matButton", "matAnchor"] }, { kind: "ngmodule", type: MatDividerModule }, { kind: "component", type: i3$1.MatDivider, selector: "mat-divider", inputs: ["vertical", "inset"] }, { kind: "ngmodule", type: MatDialogModule }, { kind: "directive", type: i1$5.MatDialogActions, selector: "[mat-dialog-actions], mat-dialog-actions, [matDialogActions]", inputs: ["align"] }, { kind: "directive", type: i1$5.MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }] }); }
2081
2033
  }
2082
2034
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.0", ngImport: i0, type: ConfirmDialogComponent, decorators: [{
2083
2035
  type: Component,
@@ -2124,7 +2076,7 @@ class ErrorSnackBarComponent {
2124
2076
  <mat-icon>close</mat-icon>
2125
2077
  </button>
2126
2078
  </div>
2127
- `, isInline: true, styles: [":root{--primary-color: #153d77;--secondary-color: #6c757d;--white-color: #fff;--success-color: #198754;--delete-color: #dc3545;--background-color: #f2f2f2}.success-snackbar{--mdc-snackbar-container-color: var(--success-color) !important;--mat-mdc-snack-bar-button-color: var(--white-color) !important}.success-snackbar .mdc-snackbar__surface{background-color:var(--success-color)!important;color:#fff!important}.success-snackbar .mat-mdc-snack-bar-action{color:var(--white-color)!important}.error-snackbar{--mdc-snackbar-container-color: var(--delete-color) !important;--mat-mdc-snack-bar-button-color: var(--white-color) !important}.error-snackbar .mdc-snackbar__surface{background-color:var(--delete-color)!important;color:#fff!important}.error-snackbar .mat-mdc-snack-bar-action{color:var(--white-color)!important}.light-success-snackbar{--mdc-snackbar-container-color: #d4edda !important;--mat-mdc-snack-bar-button-color: darkgreen !important}.light-success-snackbar .mdc-snackbar__surface{background-color:#d4edda!important;color:#155724!important}.light-success-snackbar .mat-mdc-snack-bar-action{color:#006400!important}.light-error-snackbar{--mdc-snackbar-container-color: #f8d7da !important;--mat-mdc-snack-bar-button-color: darkred !important}.light-error-snackbar .mdc-snackbar__surface{background-color:#f8d7da!important;color:#721c24!important;border:1px solid #f5c6cb}.info-snackbar{--mdc-snackbar-container-color: #0dcaf0 !important;--mat-mdc-snack-bar-button-color: white !important}.info-snackbar .mdc-snackbar__surface{background-color:#0dcaf0!important;color:#fff!important}.warning-snackbar{--mdc-snackbar-container-color: #ffc107 !important;--mat-mdc-snack-bar-button-color: #000 !important}.warning-snackbar .mdc-snackbar__surface{background-color:#ffc107!important;color:#000!important}.primary-snackbar{--mdc-snackbar-container-color: var(--primary-color) !important;--mat-mdc-snack-bar-button-color: white !important}.primary-snackbar .mdc-snackbar__surface{background-color:var(--primary-color)!important;color:#fff!important}\n"], dependencies: [{ kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i1$4.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i1$3.MatIconButton, selector: "button[mat-icon-button], a[mat-icon-button], button[matIconButton], a[matIconButton]", exportAs: ["matButton", "matAnchor"] }] }); }
2079
+ `, isInline: true, styles: [":root{--primary-color: #153d77;--secondary-color: #6c757d;--white-color: #fff;--success-color: #198754;--delete-color: #dc3545;--background-color: #f2f2f2}.success-snackbar{--mdc-snackbar-container-color: var(--success-color) !important;--mat-mdc-snack-bar-button-color: var(--white-color) !important}.success-snackbar .mdc-snackbar__surface{background-color:var(--success-color)!important;color:#fff!important}.success-snackbar .mat-mdc-snack-bar-action{color:var(--white-color)!important}.error-snackbar{--mdc-snackbar-container-color: var(--delete-color) !important;--mat-mdc-snack-bar-button-color: var(--white-color) !important}.error-snackbar .mdc-snackbar__surface{background-color:var(--delete-color)!important;color:#fff!important}.error-snackbar .mat-mdc-snack-bar-action{color:var(--white-color)!important}.light-success-snackbar{--mdc-snackbar-container-color: #d4edda !important;--mat-mdc-snack-bar-button-color: darkgreen !important}.light-success-snackbar .mdc-snackbar__surface{background-color:#d4edda!important;color:#155724!important}.light-success-snackbar .mat-mdc-snack-bar-action{color:#006400!important}.light-error-snackbar{--mdc-snackbar-container-color: #f8d7da !important;--mat-mdc-snack-bar-button-color: darkred !important}.light-error-snackbar .mdc-snackbar__surface{background-color:#f8d7da!important;color:#721c24!important;border:1px solid #f5c6cb}.info-snackbar{--mdc-snackbar-container-color: #0dcaf0 !important;--mat-mdc-snack-bar-button-color: white !important}.info-snackbar .mdc-snackbar__surface{background-color:#0dcaf0!important;color:#fff!important}.warning-snackbar{--mdc-snackbar-container-color: #ffc107 !important;--mat-mdc-snack-bar-button-color: #000 !important}.warning-snackbar .mdc-snackbar__surface{background-color:#ffc107!important;color:#000!important}.primary-snackbar{--mdc-snackbar-container-color: var(--primary-color) !important;--mat-mdc-snack-bar-button-color: white !important}.primary-snackbar .mdc-snackbar__surface{background-color:var(--primary-color)!important;color:#fff!important}\n"], dependencies: [{ kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i1$3.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i1$4.MatIconButton, selector: "button[mat-icon-button], a[mat-icon-button], button[matIconButton], a[matIconButton]", exportAs: ["matButton", "matAnchor"] }] }); }
2128
2080
  }
2129
2081
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.0", ngImport: i0, type: ErrorSnackBarComponent, decorators: [{
2130
2082
  type: Component,
@@ -2165,7 +2117,7 @@ class SuccessSnackBarComponent {
2165
2117
  <mat-icon>close</mat-icon>
2166
2118
  </button>
2167
2119
  </div>
2168
- `, isInline: true, styles: [":root{--primary-color: #153d77;--secondary-color: #6c757d;--white-color: #fff;--success-color: #198754;--delete-color: #dc3545;--background-color: #f2f2f2}.success-snackbar{--mdc-snackbar-container-color: var(--success-color) !important;--mat-mdc-snack-bar-button-color: var(--white-color) !important}.success-snackbar .mdc-snackbar__surface{background-color:var(--success-color)!important;color:#fff!important}.success-snackbar .mat-mdc-snack-bar-action{color:var(--white-color)!important}.error-snackbar{--mdc-snackbar-container-color: var(--delete-color) !important;--mat-mdc-snack-bar-button-color: var(--white-color) !important}.error-snackbar .mdc-snackbar__surface{background-color:var(--delete-color)!important;color:#fff!important}.error-snackbar .mat-mdc-snack-bar-action{color:var(--white-color)!important}.light-success-snackbar{--mdc-snackbar-container-color: #d4edda !important;--mat-mdc-snack-bar-button-color: darkgreen !important}.light-success-snackbar .mdc-snackbar__surface{background-color:#d4edda!important;color:#155724!important}.light-success-snackbar .mat-mdc-snack-bar-action{color:#006400!important}.light-error-snackbar{--mdc-snackbar-container-color: #f8d7da !important;--mat-mdc-snack-bar-button-color: darkred !important}.light-error-snackbar .mdc-snackbar__surface{background-color:#f8d7da!important;color:#721c24!important;border:1px solid #f5c6cb}.info-snackbar{--mdc-snackbar-container-color: #0dcaf0 !important;--mat-mdc-snack-bar-button-color: white !important}.info-snackbar .mdc-snackbar__surface{background-color:#0dcaf0!important;color:#fff!important}.warning-snackbar{--mdc-snackbar-container-color: #ffc107 !important;--mat-mdc-snack-bar-button-color: #000 !important}.warning-snackbar .mdc-snackbar__surface{background-color:#ffc107!important;color:#000!important}.primary-snackbar{--mdc-snackbar-container-color: var(--primary-color) !important;--mat-mdc-snack-bar-button-color: white !important}.primary-snackbar .mdc-snackbar__surface{background-color:var(--primary-color)!important;color:#fff!important}\n"], dependencies: [{ kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i1$3.MatIconButton, selector: "button[mat-icon-button], a[mat-icon-button], button[matIconButton], a[matIconButton]", exportAs: ["matButton", "matAnchor"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i1$4.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }] }); }
2120
+ `, isInline: true, styles: [":root{--primary-color: #153d77;--secondary-color: #6c757d;--white-color: #fff;--success-color: #198754;--delete-color: #dc3545;--background-color: #f2f2f2}.success-snackbar{--mdc-snackbar-container-color: var(--success-color) !important;--mat-mdc-snack-bar-button-color: var(--white-color) !important}.success-snackbar .mdc-snackbar__surface{background-color:var(--success-color)!important;color:#fff!important}.success-snackbar .mat-mdc-snack-bar-action{color:var(--white-color)!important}.error-snackbar{--mdc-snackbar-container-color: var(--delete-color) !important;--mat-mdc-snack-bar-button-color: var(--white-color) !important}.error-snackbar .mdc-snackbar__surface{background-color:var(--delete-color)!important;color:#fff!important}.error-snackbar .mat-mdc-snack-bar-action{color:var(--white-color)!important}.light-success-snackbar{--mdc-snackbar-container-color: #d4edda !important;--mat-mdc-snack-bar-button-color: darkgreen !important}.light-success-snackbar .mdc-snackbar__surface{background-color:#d4edda!important;color:#155724!important}.light-success-snackbar .mat-mdc-snack-bar-action{color:#006400!important}.light-error-snackbar{--mdc-snackbar-container-color: #f8d7da !important;--mat-mdc-snack-bar-button-color: darkred !important}.light-error-snackbar .mdc-snackbar__surface{background-color:#f8d7da!important;color:#721c24!important;border:1px solid #f5c6cb}.info-snackbar{--mdc-snackbar-container-color: #0dcaf0 !important;--mat-mdc-snack-bar-button-color: white !important}.info-snackbar .mdc-snackbar__surface{background-color:#0dcaf0!important;color:#fff!important}.warning-snackbar{--mdc-snackbar-container-color: #ffc107 !important;--mat-mdc-snack-bar-button-color: #000 !important}.warning-snackbar .mdc-snackbar__surface{background-color:#ffc107!important;color:#000!important}.primary-snackbar{--mdc-snackbar-container-color: var(--primary-color) !important;--mat-mdc-snack-bar-button-color: white !important}.primary-snackbar .mdc-snackbar__surface{background-color:var(--primary-color)!important;color:#fff!important}\n"], dependencies: [{ kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i1$4.MatIconButton, selector: "button[mat-icon-button], a[mat-icon-button], button[matIconButton], a[matIconButton]", exportAs: ["matButton", "matAnchor"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i1$3.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }] }); }
2169
2121
  }
2170
2122
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.0", ngImport: i0, type: SuccessSnackBarComponent, decorators: [{
2171
2123
  type: Component,