{"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/autocomplete/autocomplete.component.ts","../../../projects/ng-kit/src/lib/components/autocomplete/autocomplete.component.html","../../../projects/ng-kit/src/lib/directives/autocomplete-suffix/autocomplete-clear-button.component.ts","../../../projects/ng-kit/src/lib/directives/autocomplete-suffix/autocomplete-dropdown-button.component.ts","../../../projects/ng-kit/src/lib/directives/autocomplete-suffix/autocomplete-suffix.directive.ts","../../../projects/ng-kit/src/lib/directives/ngx-print/print-options.ts","../../../projects/ng-kit/src/lib/directives/ngx-print/ngx-print.directive.ts","../../../projects/ng-kit/src/lib/directives/prevent-multiple-clicks/prevent-multiple-clicks.directive.ts","../../../projects/ng-kit/src/lib/components/buttons/base-button/base-button.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/bs-link-button/bs-link-button.directive.ts","../../../projects/ng-kit/src/lib/components/buttons/close-button/close-button.directive.ts","../../../projects/ng-kit/src/lib/components/buttons/delete-button/delete-button.component.ts","../../../projects/ng-kit/src/lib/components/buttons/delete-button/delete-button.directive.ts","../../../projects/ng-kit/src/lib/svg-icons/edit-solid-svg/edit-solid-svg-icon.registry.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/svg-icons/edit-solid-svg/append-edit-solid-svg-icon.util.ts","../../../projects/ng-kit/src/lib/components/buttons/edit-bs-button/edit-bs-button.directive.ts","../../../projects/ng-kit/src/lib/components/buttons/edit-button/edit-button.component.ts","../../../projects/ng-kit/src/lib/components/buttons/edit-button/edit-button.directive.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/edit-svg-icon-button/edit-svg-icon-button.directive.ts","../../../projects/ng-kit/src/lib/components/buttons/excel-export-button/excel-export-button.component.ts","../../../projects/ng-kit/src/lib/components/buttons/excel-export-button/excel-export-button.directive.ts","../../../projects/ng-kit/src/lib/components/buttons/manage-button/manage-button.component.ts","../../../projects/ng-kit/src/lib/components/buttons/manage-button/manage-button.directive.ts","../../../projects/ng-kit/src/lib/components/buttons/pdf-export-button/pdf-export-button.component.ts","../../../projects/ng-kit/src/lib/components/buttons/pdf-export-button/pdf-export-button.directive.ts","../../../projects/ng-kit/src/lib/components/buttons/primary-button/primary-button.component.ts","../../../projects/ng-kit/src/lib/components/buttons/primary-button/primary-button.directive.ts","../../../projects/ng-kit/src/lib/components/buttons/save-primary-button/save-primary-button.component.ts","../../../projects/ng-kit/src/lib/components/buttons/save-primary-button/save-primary-button.directive.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/success-button/success-button.directive.ts","../../../projects/ng-kit/src/lib/components/buttons/view-button/view-button.component.ts","../../../projects/ng-kit/src/lib/components/buttons/view-button/view-button.directive.ts","../../../projects/ng-kit/src/lib/components/buttons/view-primary-button/view-primary-button.component.ts","../../../projects/ng-kit/src/lib/components/buttons/view-primary-button/view-primary-button.directive.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/entity-store.ts","../../../projects/ng-kit/src/lib/store/store.ts","../../../projects/ng-kit/src/lib/util/progress-util.ts","../../../projects/ng-kit/src/lib/query/query-client.token.ts","../../../projects/ng-kit/src/lib/query/inject-mutation.ts","../../../projects/ng-kit/src/lib/query/inject-query.ts","../../../projects/ng-kit/src/js-smart-ng-kit.ts"],"sourcesContent":["import { ChangeDetectionStrategy, ChangeDetectorRef, Component, effect, inject, input, type OnInit, output, signal } from '@angular/core';\n\nexport type AlertType = 'info' | 'primary' | 'secondary' | 'success' | 'warning' | 'danger' | 'dark' | 'light';\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\tselector: 'lib-alert, alert',\n\ttemplateUrl: './alert.component.html',\n\tstyleUrls: ['./alert.component.scss'],\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class AlertComponent implements OnInit {\n\tcdr = inject(ChangeDetectorRef);\n\t/**\n\t * Type of the BootStrap Alert. Following values are supported. See BootStrap docs for more information\n\t */\n\ttype = input<AlertType>('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\t/**\n\t * Emits when the alert is closed.\n\t */\n\tclosed = output<void>();\n\n\tconstructor() {\n\t\t// React to isOpen input changes\n\t\teffect(() => {\n\t\t\tthis.open.set(this.isOpen());\n\t\t});\n\t}\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\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.open()) {\n\t\t\treturn;\n\t\t}\n\t\tthis.open.set(false);\n\t\tthis.closed.emit();\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\" aria-live=\"polite\">\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, ChangeDetectionStrategy } from '@angular/core';\nimport { ThemePalette } from '@angular/material/core';\nimport { MatProgressSpinnerModule } from '@angular/material/progress-spinner';\n\n@Component({\n\tselector: 'spinner,lib-spinner',\n\timports: [MatProgressSpinnerModule],\n\ttemplateUrl: './spinner.component.html',\n\tchangeDetection: ChangeDetectionStrategy.Eager,\n\tstyleUrls: ['./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","import { NgClass } from '@angular/common';\nimport { Component, computed, ElementRef, forwardRef, input, output, signal, viewChild, ChangeDetectionStrategy } from '@angular/core';\nimport { ControlValueAccessor, FormControl, NG_VALUE_ACCESSOR, ReactiveFormsModule } from '@angular/forms';\nimport { MatAutocomplete, MatAutocompleteModule, MatAutocompleteTrigger } from '@angular/material/autocomplete';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatFormFieldAppearance, MatFormFieldModule } from '@angular/material/form-field';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatInputModule } from '@angular/material/input';\nimport { MatProgressSpinnerModule } from '@angular/material/progress-spinner';\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\tNgClass,\n\t\tReactiveFormsModule,\n\t\tMatAutocompleteModule,\n\t\tMatInputModule,\n\t\tMatFormFieldModule,\n\t\tMatIconModule,\n\t\tMatButtonModule,\n\t\tMatProgressSpinnerModule,\n\t],\n\ttemplateUrl: './autocomplete.component.html',\n\tstyleUrls: ['./autocomplete.component.css'],\n\tchangeDetection: ChangeDetectionStrategy.Eager,\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<T = string> implements ControlValueAccessor {\n\t/** Gets reference to the MatAutocompleteTrigger to programmatically open/close the panel */\n\tautocompleteTrigger = viewChild.required(MatAutocompleteTrigger);\n\n\t/** MatAutocomplete instance (used to scroll the selected option into view when the panel opens) */\n\tmatAutocomplete = viewChild.required(MatAutocomplete);\n\n\t/** Gets reference to the input element for re-focusing after clear */\n\tinputElement = viewChild.required<ElementRef<HTMLInputElement>>('inputEl');\n\n\t/** Label of the autocomplete form field */\n\tlabel = input('Select Value');\n\n\t/** Placeholder text displayed inside the input when empty */\n\tplaceholder = input('');\n\n\t/** Appearance of the form field. Defaults to `outline` */\n\tappearance = input<MatFormFieldAppearance>('outline');\n\n\t/** List of CSS classes to apply to the form field */\n\tclasses = input('');\n\n\t/** List of options to display in the dropdown */\n\toptions = input<T[]>([]);\n\n\t/**\n\t * Function that maps an option to its display string.\n\t * Used for rendering options in the dropdown and showing the selected value in the input.\n\t * Defaults to `String(value)` which works for primitive string options.\n\t */\n\tdisplayWith = input<(value: T) => string>((value: T) => String(value));\n\n\t/** Whether the autocomplete is in a loading state. Shows a spinner instead of options */\n\tloading = input(false);\n\n\t/** Text displayed when the autocomplete is in a loading state. Defaults to 'Loading...' */\n\tloadingText = input('Loading...');\n\n\t/** Text displayed when no options match the filter input. Defaults to 'No values found' */\n\tnoOptionsText = input('No values found');\n\n\t/** Emits the selected value when an option is picked from the dropdown */\n\tselectionChange = output<T>();\n\n\t/** Emits the raw text in the input on each keystroke (filter text while typing) */\n\tonInputChange = output<string>();\n\n\t/** Internal form control for the autocomplete input */\n\tcontrol = new FormControl<T | string | null>(null);\n\n\t/** Signal that tracks whether the autocomplete panel is currently open */\n\tisExpanded = signal(false);\n\n\t/** Signal that tracks the current filter text typed by the user */\n\tfilterText = signal('');\n\n\t/**\n\t * Computed signal that filters options based on the current filter text.\n\t * Uses the `displayWith` function to extract searchable text from each option.\n\t * Returns all options when filter text is empty.\n\t */\n\tfilteredOptions = computed(() => {\n\t\tconst filterValue = this.filterText().toLowerCase();\n\t\tconst displayFn = this.displayWith();\n\t\treturn this.options().filter((option) => displayFn(option).toLowerCase().includes(filterValue));\n\t});\n\n\t/**\n\t * Display function passed to mat-autocomplete's [displayWith] to render the\n\t * selected value in the input field. Returns empty string for null/undefined values.\n\t */\n\tdisplayFn = (value: T): string => {\n\t\tif (value == null || value === ('' as unknown as T)) {\n\t\t\treturn '';\n\t\t}\n\t\treturn this.displayWith()(value);\n\t};\n\n\t/**\n\t * Writes a new value to the internal control. Called by the parent form\n\t * when the form control value is set programmatically.\n\t */\n\twriteValue(value: T | null): void {\n\t\t// Use null (not '') so MatAutocompleteTrigger clears mat-option selection and stays in sync with the parent CVA.\n\t\tconst internal = value == null ? null : value;\n\t\tthis.control.setValue(internal as T | string | null, { emitEvent: false });\n\t}\n\n\t/**\n\t * Registers a callback function that is called when the control's value\n\t * changes in the UI (option selected or input cleared).\n\t */\n\tregisterOnChange(fn: (value: T | null) => void): void {\n\t\tthis.onChange = fn;\n\t}\n\n\t/**\n\t * Registers a callback function that is called when the control is\n\t * first interacted with (blur or selection).\n\t */\n\tregisterOnTouched(fn: () => void): void {\n\t\tthis.onTouched = fn;\n\t}\n\n\t/**\n\t * Sets the disabled state of the internal control. Called by the parent form\n\t * when `control.disable()` or `control.enable()` is invoked.\n\t */\n\tsetDisabledState(isDisabled: boolean): void {\n\t\tif (isDisabled) {\n\t\t\tthis.control.disable();\n\t\t} else {\n\t\t\tthis.control.enable();\n\t\t}\n\t}\n\n\t/** Updates the filter text signal as the user types in the input */\n\tonInput(event: Event): void {\n\t\tconst value = (event.target as HTMLInputElement).value;\n\t\tthis.filterText.set(value);\n\t\tthis.onInputChange.emit(value);\n\t}\n\n\t/**\n\t * Clears the input value, resets the filter, notifies the parent form,\n\t * and re-focuses the input element.\n\t */\n\tclearInput(event: Event): void {\n\t\tevent.preventDefault();\n\t\tevent.stopPropagation();\n\t\tthis.autocompleteTrigger().closePanel();\n\t\tthis.control.setValue(null, { emitEvent: false });\n\t\tthis.filterText.set('');\n\t\tthis.onChange(null);\n\t\tthis.onTouched();\n\t\tqueueMicrotask(() => this.inputElement().nativeElement.focus());\n\t}\n\n\t/** Runs when the autocomplete overlay opens: keep expanded state and scroll the selected option into view. */\n\tonPanelOpened(): void {\n\t\tthis.isExpanded.set(true);\n\t\tthis.scrollSelectedOptionIntoView();\n\t}\n\n\tprivate scrollSelectedOptionIntoView(): void {\n\t\trequestAnimationFrame(() => {\n\t\t\trequestAnimationFrame(() => {\n\t\t\t\tconst panelEl = this.matAutocomplete().panel?.nativeElement as HTMLElement | undefined;\n\t\t\t\tif (!panelEl) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tconst selected = panelEl.querySelector('.mat-mdc-option.mdc-list-item--selected') as HTMLElement | null;\n\t\t\t\tselected?.scrollIntoView({ block: 'nearest', inline: 'nearest' });\n\t\t\t});\n\t\t});\n\t}\n\n\t/** Opens the autocomplete panel programmatically */\n\topenPanel(): void {\n\t\tthis.autocompleteTrigger().openPanel();\n\t}\n\n\t/**\n\t * Handles option selection from the dropdown. Resets the filter text,\n\t * notifies the parent form of the new value, and emits the selectionChange output.\n\t */\n\tonOptionSelected(value: T): void {\n\t\tthis.filterText.set('');\n\t\tthis.onChange(value);\n\t\tthis.onTouched();\n\t\tthis.selectionChange.emit(value);\n\t}\n\n\t/** Callback function registered by the parent form to propagate value changes */\n\tprivate onChange: (value: T | null) => void = (_: T | null) => {\n\t\t/* noop */\n\t};\n\n\t/** Callback function registered by the parent form to propagate touched state */\n\tprivate onTouched: () => void = () => {\n\t\t/* noop */\n\t};\n}\n","<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 && !control.disabled) {\n\t\t\t<button type=\"button\" (click)=\"clearInput($event)\" aria-label=\"Clear value\" 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 if (!control.disabled) {\n\t\t\t<span aria-hidden=\"true\" class=\"suffix-placeholder\"></span>\n\t\t}\n\t\t@if (!control.disabled) {\n\t\t\t<button\n\t\t\t\t(click)=\"trigger.panelOpen ? trigger.closePanel() : trigger.openPanel(); $event.stopPropagation()\"\n\t\t\t\t[attr.aria-label]=\"trigger.panelOpen ? 'Close options' : 'Open options'\"\n\t\t\t\tclass=\"suffix-action-btn\"\n\t\t\t\tmat-icon-button\n\t\t\t\ttype=\"button\">\n\t\t\t\t@if (isExpanded()) {\n\t\t\t\t\t<mat-icon>arrow_drop_up</mat-icon>\n\t\t\t\t} @else {\n\t\t\t\t\t<mat-icon>arrow_drop_down</mat-icon>\n\t\t\t\t}\n\t\t\t</button>\n\t\t}\n\t</div>\n\n\t<mat-autocomplete\n\t\t#auto=\"matAutocomplete\"\n\t\t(closed)=\"isExpanded.set(false)\"\n\t\t(opened)=\"onPanelOpened()\"\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","import { Component, output, ChangeDetectionStrategy } from '@angular/core';\nimport { MatIconButton } from '@angular/material/button';\nimport { MatIcon } from '@angular/material/icon';\n\n@Component({\n\tselector: 'autocomplete-clear-button',\n\tstandalone: true,\n\timports: [MatIconButton, MatIcon],\n\tchangeDetection: ChangeDetectionStrategy.Eager,\n\ttemplate: `\n\t\t<button\n\t\t\tmat-icon-button\n\t\t\ttype=\"button\"\n\t\t\taria-label=\"Clear value\"\n\t\t\tstyle=\"padding: 0 !important; width: 32px; height: 32px;\"\n\t\t\t(click)=\"clicked.emit($event)\">\n\t\t\t<mat-icon>close</mat-icon>\n\t\t</button>\n\t`,\n})\nexport class AutocompleteClearButtonComponent {\n\treadonly clicked = output<MouseEvent>();\n}\n","import { Component, output, signal, ChangeDetectionStrategy } from '@angular/core';\nimport { MatIconButton } from '@angular/material/button';\nimport { MatIcon } from '@angular/material/icon';\n\n@Component({\n\tselector: 'autocomplete-dropdown-button',\n\tstandalone: true,\n\timports: [MatIconButton, MatIcon],\n\tchangeDetection: ChangeDetectionStrategy.Eager,\n\ttemplate: `\n\t\t<button\n\t\t\tmat-icon-button\n\t\t\ttype=\"button\"\n\t\t\tstyle=\"padding: 0 !important; width: 32px; height: 32px;\"\n\t\t\t[attr.aria-label]=\"expanded() ? 'Close options' : 'Open options'\"\n\t\t\t(click)=\"clicked.emit($event)\">\n\t\t\t<mat-icon>{{ expanded() ? 'arrow_drop_up' : 'arrow_drop_down' }}</mat-icon>\n\t\t</button>\n\t`,\n})\nexport class AutocompleteDropdownButtonComponent {\n\treadonly expanded = signal(false);\n\treadonly clicked = output<MouseEvent>();\n}\n","import { AfterViewInit, ApplicationRef, ComponentRef, createComponent, DestroyRef, Directive, ElementRef, EnvironmentInjector, inject, Renderer2 } from '@angular/core';\nimport { NgControl } from '@angular/forms';\nimport { MatAutocompleteTrigger } from '@angular/material/autocomplete';\nimport { AutocompleteClearButtonComponent } from './autocomplete-clear-button.component';\nimport { AutocompleteDropdownButtonComponent } from './autocomplete-dropdown-button.component';\n\n/**\n * Single directive that adds clear and dropdown-toggle icon buttons to a\n * Material autocomplete input. Unlike {@link LibAutocompleteActionsDirective},\n * this directive is applied directly to the `input` element and does not require\n * an anchor directive or a separate suffix component.\n *\n * Usage:\n * ```html\n * <mat-form-field appearance=\"outline\">\n *   <mat-label>City</mat-label>\n *   <input matInput [matAutocomplete]=\"auto\" formControlName=\"city\" autocompleteSuffix />\n *   <mat-autocomplete #auto=\"matAutocomplete\"> … </mat-autocomplete>\n * </mat-form-field>\n * ```\n *\n * @author Pavan Kumar Jadda\n * @since 21.8.0\n */\n@Directive({\n\tselector: 'input[matAutocomplete][autocompleteSuffix]',\n\tstandalone: true,\n})\nexport class AutocompleteSuffixDirective implements AfterViewInit {\n\tprivate readonly trigger = inject(MatAutocompleteTrigger);\n\tprivate readonly el = inject(ElementRef<HTMLInputElement>);\n\tprivate readonly renderer = inject(Renderer2);\n\tprivate readonly destroyRef = inject(DestroyRef);\n\tprivate readonly ngControl = inject(NgControl, { optional: true, self: true });\n\tprivate readonly appRef = inject(ApplicationRef);\n\tprivate readonly envInjector = inject(EnvironmentInjector);\n\n\tprivate clearRef: ComponentRef<AutocompleteClearButtonComponent> | null = null;\n\tprivate dropdownRef: ComponentRef<AutocompleteDropdownButtonComponent> | null = null;\n\tprivate isExpanded = false;\n\tprivate readonly unlisten: (() => void)[] = [];\n\n\tngAfterViewInit(): void {\n\t\tthis.createSuffixElements();\n\t\tthis.setupListeners();\n\t\tthis.updateClearButtonVisibility();\n\t}\n\n\tprivate createSuffixElements(): void {\n\t\tconst formField = this.el.nativeElement.closest('mat-form-field');\n\t\tif (!formField) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst flexContainer = formField.querySelector('.mat-mdc-form-field-flex');\n\t\tif (!flexContainer) {\n\t\t\treturn;\n\t\t}\n\n\t\tlet suffixWrapper = flexContainer.querySelector('.mat-mdc-form-field-icon-suffix');\n\t\tif (!suffixWrapper) {\n\t\t\tsuffixWrapper = this.renderer.createElement('div');\n\t\t\tthis.renderer.addClass(suffixWrapper, 'mat-mdc-form-field-icon-suffix');\n\t\t\tthis.renderer.setAttribute(suffixWrapper, 'data-mat-icon-type', 'font');\n\t\t\tthis.renderer.appendChild(flexContainer, suffixWrapper);\n\t\t}\n\n\t\tconst container = this.renderer.createElement('div');\n\t\tthis.renderer.setStyle(container, 'display', 'flex');\n\t\tthis.renderer.setStyle(container, 'align-items', 'center');\n\n\t\tthis.clearRef = createComponent(AutocompleteClearButtonComponent, { environmentInjector: this.envInjector });\n\t\tthis.appRef.attachView(this.clearRef.hostView);\n\t\tthis.clearRef.instance.clicked.subscribe((e) => this.clearInput(e));\n\t\tthis.renderer.setStyle(this.clearRef.location.nativeElement, 'visibility', 'hidden');\n\n\t\tthis.dropdownRef = createComponent(AutocompleteDropdownButtonComponent, { environmentInjector: this.envInjector });\n\t\tthis.appRef.attachView(this.dropdownRef.hostView);\n\t\tthis.dropdownRef.instance.clicked.subscribe((e) => this.togglePanel(e));\n\n\t\tthis.renderer.appendChild(container, this.clearRef.location.nativeElement);\n\t\tthis.renderer.appendChild(container, this.dropdownRef.location.nativeElement);\n\t\tthis.renderer.appendChild(suffixWrapper, container);\n\n\t\tthis.destroyRef.onDestroy(() => {\n\t\t\tthis.clearRef?.destroy();\n\t\t\tthis.dropdownRef?.destroy();\n\t\t});\n\t}\n\n\tprivate setupListeners(): void {\n\t\tthis.unlisten.push(this.renderer.listen(this.el.nativeElement, 'input', () => this.updateClearButtonVisibility()));\n\n\t\tconst autocomplete = this.trigger.autocomplete;\n\n\t\tconst openedSub = autocomplete.opened.subscribe(() => {\n\t\t\tthis.isExpanded = true;\n\t\t\tthis.updateDropdownIcon();\n\t\t\tthis.scrollSelectedOptionIntoView();\n\t\t});\n\t\tconst closedSub = autocomplete.closed.subscribe(() => {\n\t\t\tthis.isExpanded = false;\n\t\t\tthis.updateDropdownIcon();\n\t\t\tthis.updateClearButtonVisibility();\n\t\t});\n\n\t\tconst selectedSub = autocomplete.optionSelected.subscribe(() => this.updateClearButtonVisibility());\n\n\t\tlet valueChangesSub: { unsubscribe(): void } | null = null;\n\t\tif (this.ngControl?.control) {\n\t\t\tvalueChangesSub = this.ngControl.control.valueChanges.subscribe(() => this.updateClearButtonVisibility());\n\t\t}\n\n\t\tthis.destroyRef.onDestroy(() => {\n\t\t\tthis.unlisten.forEach((fn) => fn());\n\t\t\topenedSub.unsubscribe();\n\t\t\tclosedSub.unsubscribe();\n\t\t\tselectedSub.unsubscribe();\n\t\t\tvalueChangesSub?.unsubscribe();\n\t\t});\n\t}\n\n\tprivate clearInput(event: Event): void {\n\t\tevent.preventDefault();\n\t\tevent.stopPropagation();\n\t\tthis.trigger.closePanel();\n\t\tthis.el.nativeElement.value = '';\n\n\t\tif (this.ngControl?.control) {\n\t\t\tthis.ngControl.control.setValue(null, { emitEvent: true });\n\t\t\tthis.ngControl.control.markAsTouched();\n\t\t}\n\n\t\tthis.updateClearButtonVisibility();\n\t\tqueueMicrotask(() => this.el.nativeElement.focus());\n\t}\n\n\tprivate togglePanel(event: Event): void {\n\t\tevent.stopPropagation();\n\t\tif (this.trigger.panelOpen) {\n\t\t\tthis.trigger.closePanel();\n\t\t} else {\n\t\t\tthis.trigger.openPanel();\n\t\t}\n\t}\n\n\tprivate updateClearButtonVisibility(): void {\n\t\tconst hasValue = !!(this.el.nativeElement.value || this.ngControl?.control?.value);\n\t\tif (this.clearRef) {\n\t\t\tthis.renderer.setStyle(this.clearRef.location.nativeElement, 'visibility', hasValue ? 'visible' : 'hidden');\n\t\t}\n\t}\n\n\tprivate scrollSelectedOptionIntoView(): void {\n\t\trequestAnimationFrame(() => {\n\t\t\trequestAnimationFrame(() => {\n\t\t\t\tconst panelEl = this.trigger.autocomplete.panel?.nativeElement as HTMLElement | undefined;\n\t\t\t\tif (!panelEl) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tconst selected = panelEl.querySelector('.mat-mdc-option.mdc-list-item--selected') as HTMLElement | null;\n\t\t\t\tselected?.scrollIntoView({ block: 'nearest', inline: 'nearest' });\n\t\t\t});\n\t\t});\n\t}\n\n\tprivate updateDropdownIcon(): void {\n\t\tif (this.dropdownRef) {\n\t\t\tthis.dropdownRef.instance.expanded.set(this.isExpanded);\n\t\t}\n\t}\n}\n","export class PrintOptions {\n\tprintSectionId = '';\n\tprintTitle = '';\n\tuseExistingCss = false;\n\tbodyClass = '';\n\topenNewTab = false;\n\tpreviewOnly = false;\n\tcloseWindow = true;\n\tprintDelay = 0;\n\n\tconstructor(options?: Partial<PrintOptions>) {\n\t\tif (options) {\n\t\t\tObject.assign(this, options);\n\t\t}\n\t}\n}\n","import { Directive, DOCUMENT, HostListener, inject, Input } from '@angular/core';\nimport { MatPaginator } from '@angular/material/paginator';\nimport { MatTableDataSource } from '@angular/material/table';\nimport { PrintOptions } from './print-options';\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\tselector: 'button[ngxPrint], button[print]',\n\tstandalone: true,\n})\nexport class NgxPrintDirective<T = unknown> {\n\tdocument = inject(DOCUMENT);\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\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\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\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\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<T>;\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\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\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\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\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: string[] = [];\n\tprintOptions = new PrintOptions();\n\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 * Prevents the print dialog from opening on the window\n\t *\n\t * @memberof NgxPrintDirective\n\t */\n\t@Input() set previewOnly(value: boolean) {\n\t\tthis.printOptions = { ...this.printOptions, previewOnly: value };\n\t}\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 (Object.prototype.hasOwnProperty.call(values, key)) {\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 = this.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(): void {\n\t\t// @ts-ignore\n\t\tthis.document.getElementById(this.paginatorId).style.display = 'none';\n\t\tif (this.document.getElementById(this.inputFilterId) != null) {\n\t\t\t// @ts-ignore\n\t\t\tthis.document.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(): void {\n\t\tthis.matTableDataSource.paginator = this.paginator;\n\t\t// @ts-ignore\n\t\tthis.document.getElementById(this.paginatorId).style.display = 'block';\n\t\tif (this.document.getElementById(this.inputFilterId) != null) {\n\t\t\t// @ts-ignore\n\t\t\tthis.document.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(): string {\n\t\treturn `<style> ${this.printStyleArray.join(' ').replace(/,/g, ';')} </style>`;\n\t}\n}\n\ninterface PrintStyleParams {\n\tvalues: Record<string, Record<string, string>>;\n}\n","import { Directive, HostListener, input, OnDestroy, OnInit, output } 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\tthrottleClick = output<Event>();\n\tprivate readonly clicks = new Subject<Event>();\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: Event): void {\n\t\tevent.preventDefault();\n\t\tevent.stopPropagation();\n\t\tthis.clicks.next(event);\n\t}\n\n\tngOnInit(): void {\n\t\tthis.subscription = this.clicks.pipe(throttleTime(this.throttleTime())).subscribe((e) => this.throttleClick.emit(e));\n\t}\n\n\tngOnDestroy(): void {\n\t\tthis.subscription?.unsubscribe();\n\t}\n}\n","import { Directive, DOCUMENT, effect, ElementRef, inject, input, OnInit, signal } from '@angular/core';\n\n@Directive()\nexport abstract class BaseButtonDirective implements OnInit {\n\ticon = input<string>('');\n\tlabel = input<string>('');\n\tloadingLabel = input<string>('Loading...');\n\tloading = input<boolean>(false);\n\telementRef = inject(ElementRef);\n\tdocument = inject(DOCUMENT);\n\n\tprotected originalText = signal('');\n\tprotected iconSpan = signal<HTMLElement | null>(null);\n\n\tconstructor() {\n\t\tthis.elementRef.nativeElement.classList.add('btn');\n\n\t\teffect(() => {\n\t\t\t// If a consumer provides a label input, always use it. Otherwise, fall back to the initially captured host text.\n\t\t\tconst nextText = this.label() || this.originalText();\n\t\t\tthis.originalText.set(nextText);\n\n\t\t\t// Keep the icon element in sync with [icon]\n\t\t\tthis.createIcon();\n\n\t\t\t// Re-render on any relevant signal change\n\t\t\tthis.updateContent();\n\t\t});\n\t}\n\n\tngOnInit(): void {\n\t\t// Capture original text before creating icon\n\t\tthis.originalText.set(this.elementRef.nativeElement.textContent?.trim() || 'Button');\n\n\t\t// Create icon after capturing text\n\t\tthis.createIcon();\n\t}\n\n\tprotected createIcon(): void {\n\t\tif (this.icon()) {\n\t\t\tconst iconElement = this.document.createElement('mat-icon');\n\t\t\ticonElement.classList.add('mat-icon', 'material-icons', 'pe-2');\n\t\t\ticonElement.textContent = this.icon();\n\t\t\tthis.iconSpan.set(iconElement);\n\t\t}\n\t}\n\n\tprotected updateContent(): void {\n\t\tconst element = this.elementRef.nativeElement;\n\t\telement.innerHTML = '';\n\n\t\tif (this.loading()) {\n\t\t\tthis.showLoadingState(element);\n\t\t} else {\n\t\t\tthis.showNormalState(element);\n\t\t}\n\t}\n\n\tprotected showLoadingState(element: HTMLElement): void {\n\t\tconst newSpan = this.document.createElement('span');\n\t\tnewSpan.classList.add('spinner-border', 'spinner-border-sm', 'me-2');\n\t\tnewSpan.setAttribute('role', 'status');\n\n\t\telement.appendChild(newSpan);\n\t\telement.appendChild(this.document.createTextNode(this.loadingLabel()));\n\t\telement.setAttribute('disabled', 'true');\n\t}\n\n\tprotected showNormalState(element: HTMLElement): void {\n\t\tconst iconElement = this.iconSpan();\n\t\tif (iconElement) {\n\t\t\telement.appendChild(iconElement);\n\t\t}\n\n\t\telement.appendChild(this.document.createTextNode(this.originalText()));\n\t\telement.removeAttribute('disabled');\n\t}\n}\n","import { Component, input, output, ChangeDetectionStrategy } from '@angular/core';\n\n@Component({\n\tstandalone: true,\n\tchangeDetection: ChangeDetectionStrategy.Eager,\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, ChangeDetectionStrategy } 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\tchangeDetection: ChangeDetectionStrategy.Eager,\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 { Directive, DOCUMENT, effect, ElementRef, inject, input } from '@angular/core';\n\n@Directive({\n\tselector: '[bsLinkButton]',\n})\nexport class BsLinkButtonDirective {\n\ticon = input<string>('search');\n\telementRef = inject(ElementRef);\n\tdocument = inject(DOCUMENT);\n\n\tconstructor() {\n\t\tthis.elementRef.nativeElement.classList.add('btn', 'text-primary');\n\n\t\teffect(() => {\n\t\t\tthis.updateContent();\n\t\t});\n\t}\n\n\tprivate updateContent(): void {\n\t\t// if icon present, add material-icons class and set text content\n\t\tif (this.icon()) {\n\t\t\tconst iconSpan = this.document.createElement('span');\n\t\t\ticonSpan.classList.add('material-icons', 'pe-2');\n\t\t\ticonSpan.textContent = this.icon();\n\t\t\tthis.elementRef.nativeElement.appendChild(iconSpan);\n\t\t}\n\t}\n}\n","import { Directive, ElementRef, inject } from '@angular/core';\n\n@Directive({\n\tselector: '[closeButton]',\n})\nexport class CloseButtonDirective {\n\telementRef = inject(ElementRef);\n\n\tconstructor() {\n\t\tthis.elementRef.nativeElement.classList.add('secondary-button');\n\t}\n}\n","import { Component, input, ChangeDetectionStrategy } 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\tchangeDetection: ChangeDetectionStrategy.Eager,\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 { Directive, input } from '@angular/core';\nimport { BaseButtonDirective } from '../base-button/base-button.directive';\n\n@Directive({\n\tselector: '[deleteButton]',\n})\nexport class DeleteButtonDirective extends BaseButtonDirective {\n\toverride icon = input<string>('delete');\n\toverride loadingLabel = input<string>('Deleting...');\n\n\tconstructor() {\n\t\tsuper();\n\t\tthis.elementRef.nativeElement.classList.add('delete-button');\n\t}\n}\n","import { inject, Injectable } from '@angular/core';\nimport { MatIconRegistry } from '@angular/material/icon';\nimport { DomSanitizer } from '@angular/platform-browser';\n\nexport const EDIT_SOLID_SVG_ICON_NAME = 'edit-solid';\n\nconst EDIT_ICON = `\n<svg xmlns=\"http://www.w3.org/2000/svg\" fill=\"currentColor\" viewBox=\"0 0 512 512\">\n  <path d=\"M471.6 21.7c-21.9-21.9-57.3-21.9-79.2 0L368 46.1 465.9 144 490.3 119.6c21.9-21.9 21.9-57.3 0-79.2L471.6 21.7zm-299.2 220c-6.1 6.1-10.8 13.6-13.5 21.9l-29.6 88.8c-2.9 8.6-.6 18.1 5.8 24.6s15.9 8.7 24.6 5.8l88.8-29.6c8.2-2.7 15.7-7.4 21.9-13.5L432 177.9 334.1 80 172.4 241.7zM96 64C43 64 0 107 0 160L0 416c0 53 43 96 96 96l256 0c53 0 96-43 96-96l0-96c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 96c0 17.7-14.3 32-32 32L96 448c-17.7 0-32-14.3-32-32l0-256c0-17.7 14.3-32 32-32l96 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L96 64z\"/>\n</svg>\n`;\n\n/** Registers the edit-solid SVG icon once for the application. */\n@Injectable({ providedIn: 'root' })\nexport class EditSolidSvgIconRegistry {\n\tconstructor() {\n\t\tconst iconRegistry = inject(MatIconRegistry);\n\t\tconst sanitizer = inject(DomSanitizer);\n\n\t\ticonRegistry.addSvgIconLiteral(\n\t\t\tEDIT_SOLID_SVG_ICON_NAME,\n\t\t\tsanitizer.bypassSecurityTrustHtml(EDIT_ICON),\n\t\t);\n\t}\n}\n","import { ChangeDetectionStrategy, Component, inject, input } from '@angular/core';\nimport { MatIconModule } from '@angular/material/icon';\nimport { EDIT_SOLID_SVG_ICON_NAME, EditSolidSvgIconRegistry } from './edit-solid-svg-icon.registry';\n\n@Component({\n\tselector: 'edit-solid-svg',\n\timports: [MatIconModule],\n\ttemplate: `\n\t\t<mat-icon\n\t\t\t[class]=\"iconClass()\"\n\t\t\t[style.font-size]=\"size()\"\n\t\t\taria-hidden=\"true\"\n\t\t\t[svgIcon]=\"svgIconName\" />\n\t`,\n\tstyles: [\n\t\t`\n\t\t\t:host {\n\t\t\t\tdisplay: contents;\n\t\t\t}\n\n\t\t\tmat-icon {\n\t\t\t\tdisplay: inline-flex;\n\t\t\t\talign-items: center;\n\t\t\t\tjustify-content: center;\n\t\t\t\tflex-shrink: 0;\n\t\t\t\twidth: 1em;\n\t\t\t\theight: 1em;\n\t\t\t\tline-height: 1;\n\t\t\t\toverflow: visible;\n\t\t\t\tvertical-align: middle;\n\t\t\t}\n\n\t\t\tmat-icon svg {\n\t\t\t\tdisplay: block;\n\t\t\t}\n\t\t`,\n\t],\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class EditSolidSvgComponent {\n\tprotected readonly svgIconName = EDIT_SOLID_SVG_ICON_NAME;\n\ticonClass = input('');\n\tsize = input('1rem');\n\n\t// Ensure the SVG icon is registered once per application.\n\tprivate readonly _ = inject(EditSolidSvgIconRegistry);\n}\n","import { ChangeDetectionStrategy, Component, input } from '@angular/core';\nimport { MatButtonModule } 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-bs-button',\n\timports: [MatButtonModule, EditSolidSvgComponent],\n\ttemplate: `\n\t\t<button\n\t\t\tcolor=\"primary\"\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\tchangeDetection: ChangeDetectionStrategy.Eager,\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 { ComponentRef, ViewContainerRef } from '@angular/core';\nimport { EditSolidSvgComponent } from './edit-solid-svg.component';\n\n/**\n * Mounts {@link EditSolidSvgComponent} into a host element with a text label.\n * Destroys any previously mounted icon component reference.\n */\nexport function mountEditSolidSvgIcon(\n\tviewContainerRef: ViewContainerRef,\n\tdocument: Document,\n\thost: HTMLElement,\n\tlabel: string,\n\ticonComponentRef: ComponentRef<EditSolidSvgComponent> | null,\n): ComponentRef<EditSolidSvgComponent> {\n\ticonComponentRef?.destroy();\n\n\tconst componentRef = viewContainerRef.createComponent(EditSolidSvgComponent);\n\n\thost.textContent = '';\n\thost.appendChild(componentRef.location.nativeElement);\n\thost.appendChild(document.createTextNode(' ' + label));\n\n\treturn componentRef;\n}\n","import { ComponentRef, Directive, DOCUMENT, ElementRef, inject, OnDestroy, OnInit, signal, ViewContainerRef } from '@angular/core';\nimport { mountEditSolidSvgIcon } from '../../../svg-icons/edit-solid-svg/append-edit-solid-svg-icon.util';\nimport { EditSolidSvgComponent } from '../../../svg-icons/edit-solid-svg/edit-solid-svg.component';\n\n@Directive({\n\tselector: '[editBsButton]',\n})\nexport class EditBsButtonDirective implements OnInit, OnDestroy {\n\telementRef = inject(ElementRef);\n\tviewContainerRef = inject(ViewContainerRef);\n\tdocument = inject(DOCUMENT);\n\n\tprotected originalText = signal('');\n\tprivate iconComponentRef: ComponentRef<EditSolidSvgComponent> | null = null;\n\n\tngOnInit(): void {\n\t\tthis.elementRef.nativeElement.classList.add('btn', 'text-primary', 'gap-1');\n\t\tthis.originalText.set(this.elementRef.nativeElement.textContent?.trim() || 'Edit');\n\t\tthis.updateContent();\n\t}\n\n\tngOnDestroy(): void {\n\t\tthis.iconComponentRef?.destroy();\n\t}\n\n\tprivate updateContent(): void {\n\t\tthis.iconComponentRef = mountEditSolidSvgIcon(\n\t\t\tthis.viewContainerRef,\n\t\t\tthis.document,\n\t\t\tthis.elementRef.nativeElement,\n\t\t\tthis.originalText(),\n\t\t\tthis.iconComponentRef,\n\t\t);\n\t}\n}\n","import { Component, input, ChangeDetectionStrategy } 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\tchangeDetection: ChangeDetectionStrategy.Eager,\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 { Directive, input } from '@angular/core';\nimport { BaseButtonDirective } from '../base-button/base-button.directive';\n\n@Directive({\n\tselector: '[editButton]',\n})\nexport class EditButtonDirective extends BaseButtonDirective {\n\toverride icon = input<string>('edit');\n\toverride loadingLabel = input<string>('Editing...');\n\n\tconstructor() {\n\t\tsuper();\n\t\tthis.elementRef.nativeElement.classList.add('primary-button');\n\t}\n}\n","import { Component, input, ChangeDetectionStrategy } 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\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\tchangeDetection: ChangeDetectionStrategy.Eager,\n\tstyleUrls: ['../../../../assets/app-buttons.css'],\n})\nexport class EditSvgIconButtonComponent extends BaseButtonComponent {\n\toverride label = input('Edit');\n\toverride classes = input('primary-button');\n\n\tconstructor() {\n\t\tsuper();\n\t}\n}\n","import { ComponentRef, Directive, DOCUMENT, ElementRef, inject, OnDestroy, OnInit, signal, ViewContainerRef } from '@angular/core';\nimport { mountEditSolidSvgIcon } from '../../../svg-icons/edit-solid-svg/append-edit-solid-svg-icon.util';\nimport { EditSolidSvgComponent } from '../../../svg-icons/edit-solid-svg/edit-solid-svg.component';\n\n@Directive({\n\tselector: '[editSvgIconButton]',\n})\nexport class EditSvgIconButtonDirective implements OnInit, OnDestroy {\n\telementRef = inject(ElementRef);\n\tviewContainerRef = inject(ViewContainerRef);\n\tdocument = inject(DOCUMENT);\n\n\tprotected originalText = signal('');\n\tprivate iconComponentRef: ComponentRef<EditSolidSvgComponent> | null = null;\n\n\tngOnInit(): void {\n\t\tthis.elementRef.nativeElement.classList.add('mat-raised-button', 'primary-button', 'gap-1');\n\t\tthis.originalText.set(this.elementRef.nativeElement.textContent?.trim() || 'Edit');\n\t\tthis.elementRef.nativeElement.setAttribute('data-cy', 'edit-svg-icon-button');\n\t\tthis.updateContent();\n\t}\n\n\tngOnDestroy(): void {\n\t\tthis.iconComponentRef?.destroy();\n\t}\n\n\tprivate updateContent(): void {\n\t\tthis.iconComponentRef = mountEditSolidSvgIcon(\n\t\t\tthis.viewContainerRef,\n\t\t\tthis.document,\n\t\t\tthis.elementRef.nativeElement,\n\t\t\tthis.originalText(),\n\t\t\tthis.iconComponentRef,\n\t\t);\n\t}\n}\n","import { Component, ChangeDetectionStrategy } from '@angular/core';\n\nimport { MatButtonModule } from '@angular/material/button';\n\n@Component({\n\tselector: 'excel-export-button',\n\timports: [MatButtonModule],\n\ttemplate: ` <button class=\"excel-export-button\" mat-raised-button type=\"button\" data-cy=\"excel-export-button\">Excel</button> `,\n\tstyleUrls: ['../../../../assets/app-buttons.css'],\n\tchangeDetection: ChangeDetectionStrategy.Eager,\n\tstyles: [\n\t\t`\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\t],\n})\nexport class ExcelExportButtonComponent {}\n","import { Directive } from '@angular/core';\nimport { BaseButtonDirective } from '../base-button/base-button.directive';\n\n@Directive({\n\tselector: '[excelExportButton]',\n})\nexport class ExcelExportButtonDirective extends BaseButtonDirective {\n\tconstructor() {\n\t\tsuper();\n\t\tconst styles = [\n\t\t\t{ property: 'margin-left', value: '20px' },\n\t\t\t{ property: 'margin-right', value: '20px' },\n\t\t\t{ property: 'width', value: '100px' },\n\t\t\t{ property: 'color', value: 'white' },\n\t\t\t{ property: 'background-color', value: 'darkgreen' },\n\t\t\t{ property: 'border-radius', value: '24px' },\n\t\t];\n\n\t\tstyles.forEach((style) => {\n\t\t\tthis.elementRef.nativeElement.style[style.property] = style.value;\n\t\t});\n\t}\n}\n","import { Component, input, ChangeDetectionStrategy } 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: 'manage-button',\n\timports: [MatButton, MatIcon],\n\ttemplate: `\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\tchangeDetection: ChangeDetectionStrategy.Eager,\n\tstyleUrls: ['../../../../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 { Directive, input } from '@angular/core';\nimport { BaseButtonDirective } from '../base-button/base-button.directive';\n\n@Directive({\n\tselector: '[manageButton]',\n})\nexport class ManageButtonDirective extends BaseButtonDirective {\n\toverride icon = input<string>('settings');\n\n\tconstructor() {\n\t\tsuper();\n\t\tthis.elementRef.nativeElement.classList.add('mr-3');\n\t\tthis.elementRef.nativeElement.classList.add('secondary-button');\n\t}\n}\n","import { Component, ChangeDetectionStrategy } from '@angular/core';\nimport { MatButtonModule } from '@angular/material/button';\n\n@Component({\n\tselector: 'pdf-export-button',\n\timports: [MatButtonModule],\n\ttemplate: ` <button class=\"pdf-export-button\" mat-raised-button type=\"button\" data-cy=\"pdf-export-button\">PDF</button> `,\n\tchangeDetection: ChangeDetectionStrategy.Eager,\n\tstyles: [\n\t\t`\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\t],\n})\nexport class PdfExportButtonComponent {}\n","import { Directive } from '@angular/core';\nimport { BaseButtonDirective } from '../base-button/base-button.directive';\n\n@Directive({\n\tselector: '[pdfExportButton]',\n})\nexport class PdfExportButtonDirective extends BaseButtonDirective {\n\tconstructor() {\n\t\tsuper();\n\t\tconst styles = [\n\t\t\t{ property: 'margin-left', value: '20px' },\n\t\t\t{ property: 'width', value: '100px' },\n\t\t\t{ property: 'color', value: 'white' },\n\t\t\t{ property: 'background-color', value: '#a3071b' },\n\t\t\t{ property: 'border-radius', value: '24px' },\n\t\t];\n\n\t\tstyles.forEach((style) => {\n\t\t\tthis.elementRef.nativeElement.style[style.property] = style.value;\n\t\t});\n\t}\n}\n","import { Component, input, ChangeDetectionStrategy } 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\tchangeDetection: ChangeDetectionStrategy.Eager,\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 { Directive, input } from '@angular/core';\nimport { BaseButtonDirective } from '../base-button/base-button.directive';\n\n@Directive({\n\tselector: '[primaryButton]',\n})\nexport class PrimaryButtonDirective extends BaseButtonDirective {\n\toverride icon = input<string>('save');\n\toverride loadingLabel = input<string>('Saving...');\n\n\tconstructor() {\n\t\tsuper();\n\t\tthis.elementRef.nativeElement.classList.add('btn-primary');\n\t\tthis.elementRef.nativeElement.classList.add('primary-button');\n\t}\n}\n","import { Component, input, ChangeDetectionStrategy } 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\tchangeDetection: ChangeDetectionStrategy.Eager,\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 { Directive, input } from '@angular/core';\nimport { BaseButtonDirective } from '../base-button/base-button.directive';\n\n@Directive({\n\tselector: '[savePrimaryButton]',\n})\nexport class SavePrimaryButtonDirective extends BaseButtonDirective {\n\toverride icon = input<string>('save');\n\toverride loadingLabel = input<string>('Saving...');\n\n\tconstructor() {\n\t\tsuper();\n\t\tthis.elementRef.nativeElement.classList.add('btn-primary');\n\t\tthis.elementRef.nativeElement.classList.add('primary-button');\n\t}\n}\n","import { Component, input, ChangeDetectionStrategy } from '@angular/core';\n\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: [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\tchangeDetection: ChangeDetectionStrategy.Eager,\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, ChangeDetectionStrategy } 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\tchangeDetection: ChangeDetectionStrategy.Eager,\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 { Directive, input } from '@angular/core';\nimport { BaseButtonDirective } from '../base-button/base-button.directive';\n\n@Directive({\n\tselector: '[successButton]',\n})\nexport class SuccessButtonDirective extends BaseButtonDirective {\n\toverride icon = input<string>('save');\n\toverride label = input<string>('Update');\n\toverride loadingLabel = input<string>('Updating...');\n\n\tconstructor() {\n\t\tsuper();\n\t\tthis.elementRef.nativeElement.classList.add('success-button');\n\t}\n}\n","import { Component, input, ChangeDetectionStrategy } 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\tchangeDetection: ChangeDetectionStrategy.Eager,\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 { Directive, input } from '@angular/core';\nimport { BaseButtonDirective } from '../base-button/base-button.directive';\n\n@Directive({\n\tselector: '[viewButton]',\n})\nexport class ViewButtonDirective extends BaseButtonDirective {\n\toverride icon = input<string>('visibility');\n\toverride loadingLabel = input<string>('Loading...');\n\n\tconstructor() {\n\t\tsuper();\n\t}\n}\n","import { Component, input, ChangeDetectionStrategy } 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\tchangeDetection: ChangeDetectionStrategy.Eager,\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 { Directive, input } from '@angular/core';\nimport { BaseButtonDirective } from '../base-button/base-button.directive';\n\n@Directive({\n\tselector: '[viewPrimaryButton]',\n})\nexport class ViewPrimaryButtonDirective extends BaseButtonDirective {\n\toverride icon = input<string>('visibility');\n\n\tconstructor() {\n\t\tsuper();\n\t\tthis.elementRef.nativeElement.classList.add('btn-primary');\n\t\tthis.elementRef.nativeElement.classList.add('primary-button');\n\t}\n}\n","import { Component, Inject, ChangeDetectionStrategy } 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\tselector: 'app-confirm-dialog',\n\timports: [MatButtonModule, MatDividerModule, MatDialogModule],\n\ttemplate: `\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\tchangeDetection: ChangeDetectionStrategy.Eager,\n\tstyles: [],\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, ChangeDetectionStrategy } from '@angular/core';\n\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MAT_SNACK_BAR_DATA, MatSnackBarRef } from '@angular/material/snack-bar';\n\n@Component({\n\tselector: 'app-error-snack-bar',\n\timports: [MatIconModule, MatButtonModule],\n\ttemplate: `\n\t\t<div class=\"app-flex-center error-snackbar\">\n\t\t\t<mat-icon style=\"font-size:1.3rem\">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\tchangeDetection: ChangeDetectionStrategy.Eager,\n\tstyleUrls: ['../../../../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(): void {\n\t\tthis.msb.dismissWithAction();\n\t}\n}\n","import { Component, Inject, ChangeDetectionStrategy } from '@angular/core';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MAT_SNACK_BAR_DATA, MatSnackBarRef } from '@angular/material/snack-bar';\n\n@Component({\n\tselector: 'app-success-snack-bar',\n\timports: [MatButtonModule, MatIconModule],\n\ttemplate: `\n\t\t<div class=\"app-flex-center success-snackbar\">\n\t\t\t<mat-icon style=\"font-size:1.3rem\">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\tchangeDetection: ChangeDetectionStrategy.Eager,\n\tstyleUrls: ['../../../../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(): void {\n\t\tthis.msb.dismissWithAction();\n\t}\n}\n","import { inject, 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\tsnackBar = inject(MatSnackBar);\n\t/**\n\t * Duration (in milliseconds) of the Snack Bar to be open. Defaults to 5 seconds (5000 milliseconds)\n\t */\n\tduration = 5000;\n\n\t/**\n\t * Horizontal Position of the MatSnackBar. Defaults to right side\n\t */\n\thorizontalPosition: MatSnackBarHorizontalPosition = 'right';\n\n\t/**\n\t * Vertical Position of the MatSnackBar. Defaults to top of the page\n\t */\n\tverticalPosition: MatSnackBarVerticalPosition = 'top';\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): void {\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): void {\n\t\tthis.snackBar.openFromComponent(ErrorSnackBarComponent, {\n\t\t\tdata: { message },\n\t\t\tduration: options?.duration ?? this.duration,\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): void {\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 * Available panelClass options:\n * - 'success-snackbar': Green background (default for success)\n * - 'error-snackbar': Red background (default for error)\n * - 'light-success-snackbar': Light green background\n * - 'light-error-snackbar': Light red background\n * - 'primary-snackbar': Primary theme color\n * - 'info-snackbar': Blue background\n * - 'warning-snackbar': Yellow background\n * - Custom CSS class names for additional styling\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 | string[];\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): T | undefined {\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[]): void {\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): void {\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[]): void {\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): void {\n\t\tthis._data.update((currentData) => currentData.filter((item) => item.id !== id));\n\t}\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 | null>(null);\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// Add initialization method\n\tinitialize(initialData: T): void {\n\t\tthis._data.set(initialData);\n\t}\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): void {\n\t\tthis._data.set(newData);\n\t}\n\n\t// Add clear method\n\tclear(): void {\n\t\tthis._data.set(null);\n\t}\n\n\t// Add getter with null check\n\tgetData(): T | null {\n\t\treturn this._data();\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","import { EnvironmentProviders, InjectionToken, makeEnvironmentProviders } from '@angular/core';\nimport { QueryClient, QueryClientConfig } from '@tanstack/query-core';\n\n/**\n * Injection token for the TanStack {@link QueryClient}.\n *\n * Provide it in your application root using {@link provideQueryClient}.\n *\n * @author Pavan Kumar Jadda\n * @since 22.0.0\n */\nexport const QUERY_CLIENT = new InjectionToken<QueryClient>('QueryClient');\n\n/**\n * Registers a {@link QueryClient} with Angular's dependency injection system.\n *\n * Accepts either an existing {@link QueryClient} instance or a {@link QueryClientConfig}\n * object from which a new client will be created automatically.\n *\n * @param clientOrConfig - An existing `QueryClient` or a `QueryClientConfig` options object.\n *   Omit to create a client with default settings.\n * @returns `EnvironmentProviders` to be passed to `bootstrapApplication` or `provideRouter`.\n *\n * @example\n * ```ts\n * // main.ts\n * bootstrapApplication(AppComponent, {\n *   providers: [\n *     provideQueryClient({ defaultOptions: { queries: { staleTime: 30_000 } } }),\n *   ],\n * });\n * ```\n *\n * @author Pavan Kumar Jadda\n * @since 22.0.0\n */\nexport function provideQueryClient(clientOrConfig?: QueryClient | QueryClientConfig): EnvironmentProviders {\n\tconst client = clientOrConfig instanceof QueryClient ? clientOrConfig : new QueryClient(clientOrConfig);\n\treturn makeEnvironmentProviders([{ provide: QUERY_CLIENT, useValue: client }]);\n}\n","import { DestroyRef, effect, inject, Signal, signal, untracked } from '@angular/core';\nimport { MutateOptions, MutationObserver, MutationObserverOptions, MutationObserverResult } from '@tanstack/query-core';\nimport { QUERY_CLIENT } from './query-client.token';\n\n/**\n * Return value from {@link injectMutation}.\n *\n * @template TData - The type of data returned by the mutation function\n * @template TError - The type of error thrown by the mutation function\n * @template TVariables - The type of variables passed to the mutation function\n * @template TContext - The type of context returned by `onMutate`\n */\nexport interface InjectMutationResult<TData, TError, TVariables, TContext> {\n\t/**\n\t * Reactive mutation state.\n\t */\n\tresult: Signal<MutationObserverResult<TData, TError, TVariables, TContext>>;\n\n\t/**\n\t * Triggers the mutation without returning a promise.\n\t *\n\t * Use `mutateAsync` when the caller needs to await success or handle errors directly.\n\t *\n\t * @param variables - Variables passed to the mutation function.\n\t * @param options - Optional per-call mutation callbacks.\n\t */\n\tmutate: (variables: TVariables, options?: MutateOptions<TData, TError, TVariables, TContext>) => void;\n\n\t/**\n\t * Triggers the mutation and returns a promise for imperative async flows.\n\t *\n\t * @param variables - Variables passed to the mutation function.\n\t * @param options - Optional per-call mutation callbacks.\n\t * @returns Promise resolving with mutation data or rejecting with the mutation error.\n\t */\n\tmutateAsync: (variables: TVariables, options?: MutateOptions<TData, TError, TVariables, TContext>) => Promise<TData>;\n\n\t/**\n\t * Resets the mutation observer state.\n\t */\n\treset: () => void;\n}\n\n/**\n * Angular adapter for TanStack Query's MutationObserver.\n *\n * Creates a mutation and returns a reactive {@link Signal} alongside `mutate` and\n * `mutateAsync` functions. The signal updates whenever the mutation state changes\n * (idle, pending, success, error).\n *\n * The `optionsFn` is re-evaluated inside an `effect`, so any Angular signals read\n * inside it will automatically update the observer options when they change.\n *\n * @template TData - The type of data returned by the mutation function\n * @template TError - The type of error thrown by the mutation function (defaults to `Error`)\n * @template TVariables - The type of variables passed to the mutation function (defaults to `void`)\n * @template TContext - The type of context returned by `onMutate` for optimistic updates (defaults to `unknown`)\n *\n * @param optionsFn - A function returning {@link MutationObserverOptions}. May read Angular signals.\n * @returns An object containing:\n *   - `result` — a read-only {@link Signal} with the current {@link MutationObserverResult}\n *   - `mutate` — fire-and-forget trigger; does not return a Promise\n *   - `mutateAsync` — returns a `Promise<TData>` that resolves or rejects with the mutation outcome\n *\n * @example\n * ```ts\n * const mutation = injectMutation(() => ({\n *   mutationFn: (user: User) => saveUser(user),\n *   onSuccess: () => queryClient.invalidateQueries({ queryKey: ['users'] }),\n * }));\n *\n * mutation.mutate(newUser);\n * await mutation.mutateAsync(newUser);\n * ```\n *\n * @author Pavan Kumar Jadda\n * @since 22.0.0\n */\nexport function injectMutation<TData, TError = Error, TVariables = void, TContext = unknown>(\n\toptionsFn: () => MutationObserverOptions<TData, TError, TVariables, TContext>,\n): InjectMutationResult<TData, TError, TVariables, TContext> {\n\tconst client = inject(QUERY_CLIENT);\n\tconst destroyRef = inject(DestroyRef);\n\n\tconst observer = new MutationObserver<TData, TError, TVariables, TContext>(client, untracked(optionsFn));\n\n\tconst result = signal<MutationObserverResult<TData, TError, TVariables, TContext>>(observer.getCurrentResult());\n\n\tconst unsubscribe = observer.subscribe((newResult) => {\n\t\tresult.set(newResult);\n\t});\n\n\teffect(() => {\n\t\tobserver.setOptions(optionsFn());\n\t});\n\n\tdestroyRef.onDestroy(unsubscribe);\n\n\tconst mutateAsync = (\n\t\tvariables: TVariables,\n\t\toptions?: MutateOptions<TData, TError, TVariables, TContext>,\n\t): Promise<TData> => observer.mutate(variables, options);\n\n\t// Return both the reactive result AND a mutate function\n\treturn {\n\t\tresult,\n\t\tmutate: (variables, options) => {\n\t\t\tvoid mutateAsync(variables, options).catch(() => {\n\t\t\t\t// Errors are reflected through the mutation result signal.\n\t\t\t});\n\t\t},\n\t\tmutateAsync,\n\t\treset: () => observer.reset(),\n\t};\n}\n","import { DestroyRef, effect, inject, Signal, signal, untracked } from '@angular/core';\nimport { QueryKey, QueryObserver, QueryObserverOptions, QueryObserverResult } from '@tanstack/query-core';\nimport { QUERY_CLIENT } from './query-client.token';\n\n/**\n * Angular adapter for TanStack Query's QueryObserver.\n *\n * Subscribes to a query and returns a reactive {@link Signal} that updates whenever\n * the query state changes (loading, success, error, refetch, etc.).\n *\n * The `optionsFn` is re-evaluated inside an `effect`, so any Angular signals read\n * inside it (e.g. a signal-based `queryKey`) will automatically trigger a re-fetch\n * when they change.\n *\n * @template TQueryFnData - The type of data returned by the query function\n * @template TError - The type of error thrown by the query function (defaults to `Error`)\n * @template TData - The type of data returned after optional `select` transformation\n * @template TQueryData - The type of data stored in the query cache\n * @template TQueryKey - The type of the query key\n *\n * @param optionsFn - A function returning {@link QueryObserverOptions}. May read Angular signals.\n * @returns A read-only {@link Signal} containing the current {@link QueryObserverResult}\n *\n * @example\n * ```ts\n * const id = signal(1);\n * const query = injectQuery(() => ({\n *   queryKey: ['user', id()],\n *   queryFn: () => fetchUser(id()),\n * }));\n * ```\n *\n * @author Pavan Kumar Jadda\n * @since 22.0.0\n */\nexport function injectQuery<\n\tTQueryFnData = unknown,\n\tTError = Error,\n\tTData = TQueryFnData,\n\tTQueryData = TQueryFnData,\n\tTQueryKey extends QueryKey = QueryKey,\n>(\n\toptionsFn: () => QueryObserverOptions<TQueryFnData, TError, TData, TQueryData, TQueryKey>,\n): Signal<QueryObserverResult<TData, TError>> {\n\tconst client = inject(QUERY_CLIENT);\n\tconst destroyRef = inject(DestroyRef);\n\n\t// Create the observer with initial options\n\tconst observer = new QueryObserver<TQueryFnData, TError, TData, TQueryData, TQueryKey>(client, untracked(optionsFn));\n\n\t// Store query result in a signal (observer defaults options in its constructor)\n\tconst result = signal<QueryObserverResult<TData, TError>>(observer.getCurrentResult());\n\n\t// Subscribe to observer — pushes new state into the signal\n\tconst unsubscribe = observer.subscribe((newResult) => {\n\t\tresult.set(newResult);\n\t});\n\n\t// Re-run options when signals inside optionsFn() change (e.g. a signal-based queryKey)\n\teffect(() => {\n\t\tobserver.setOptions(optionsFn());\n\t});\n\n\t// Clean up when the injection context is destroyed\n\tdestroyRef.onDestroy(unsubscribe);\n\n\treturn result;\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1","i4","i6","i2","i3"],"mappings":"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"}