ngssm-toolkit 15.2.11 → 15.2.12

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,4 @@
1
+ export * from './ngssm-confirmation-dialog/ngssm-confirmation-dialog.component';
2
+ export * from './ngssm-confirmation-dialog.service';
3
+ export * from './ngssm-confirmation-dialog-config';
4
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3NzbS10b29sa2l0L3NyYy9saWIvY29uZmlybWF0aW9uLWRpYWxvZy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLGlFQUFpRSxDQUFDO0FBQ2hGLGNBQWMscUNBQXFDLENBQUM7QUFDcEQsY0FBYyxvQ0FBb0MsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vbmdzc20tY29uZmlybWF0aW9uLWRpYWxvZy9uZ3NzbS1jb25maXJtYXRpb24tZGlhbG9nLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL25nc3NtLWNvbmZpcm1hdGlvbi1kaWFsb2cuc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL25nc3NtLWNvbmZpcm1hdGlvbi1kaWFsb2ctY29uZmlnJztcbiJdfQ==
@@ -0,0 +1,25 @@
1
+ import { Component, ChangeDetectionStrategy, Inject } from '@angular/core';
2
+ import { CommonModule } from '@angular/common';
3
+ import { MatDialogModule, MAT_DIALOG_DATA } from '@angular/material/dialog';
4
+ import { MatButtonModule } from '@angular/material/button';
5
+ import { NgSsmComponent } from 'ngssm-store';
6
+ import * as i0 from "@angular/core";
7
+ import * as i1 from "ngssm-store";
8
+ import * as i2 from "@angular/material/dialog";
9
+ import * as i3 from "@angular/material/button";
10
+ export class NgssmConfirmationDialogComponent extends NgSsmComponent {
11
+ constructor(store, data) {
12
+ super(store);
13
+ this.data = data;
14
+ }
15
+ }
16
+ NgssmConfirmationDialogComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.5", ngImport: i0, type: NgssmConfirmationDialogComponent, deps: [{ token: i1.Store }, { token: MAT_DIALOG_DATA }], target: i0.ɵɵFactoryTarget.Component });
17
+ NgssmConfirmationDialogComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.1.5", type: NgssmConfirmationDialogComponent, isStandalone: true, selector: "ngssm-confirmation-dialog", usesInheritance: true, ngImport: i0, template: "<mat-dialog-content class=\"flex-column-stretch fxFlex message-container\">\n{{data.message}}\n</mat-dialog-content>\n<mat-dialog-actions class=\"flex-row-center\">\n <span class=\"fxFlex\"></span>\n <button mat-button [matDialogClose]=\"data.cancelLabel\" id=\"cancelButton\">{{data.cancelLabel}}</button>\n <button mat-raised-button [color]=\"data.submitButtonColor\" [matDialogClose]=\"data.submitLabel\" id=\"submitButton\">\n {{data.submitLabel}}\n </button>\n</mat-dialog-actions>\n", styles: [":host .message-container{font-weight:700}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: MatDialogModule }, { kind: "directive", type: i2.MatDialogClose, selector: "[mat-dialog-close], [matDialogClose]", inputs: ["aria-label", "type", "mat-dialog-close", "matDialogClose"], exportAs: ["matDialogClose"] }, { kind: "directive", type: i2.MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { kind: "directive", type: i2.MatDialogActions, selector: "[mat-dialog-actions], mat-dialog-actions, [matDialogActions]", inputs: ["align"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i3.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
18
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.5", ngImport: i0, type: NgssmConfirmationDialogComponent, decorators: [{
19
+ type: Component,
20
+ args: [{ selector: 'ngssm-confirmation-dialog', standalone: true, imports: [CommonModule, MatDialogModule, MatButtonModule], changeDetection: ChangeDetectionStrategy.OnPush, template: "<mat-dialog-content class=\"flex-column-stretch fxFlex message-container\">\n{{data.message}}\n</mat-dialog-content>\n<mat-dialog-actions class=\"flex-row-center\">\n <span class=\"fxFlex\"></span>\n <button mat-button [matDialogClose]=\"data.cancelLabel\" id=\"cancelButton\">{{data.cancelLabel}}</button>\n <button mat-raised-button [color]=\"data.submitButtonColor\" [matDialogClose]=\"data.submitLabel\" id=\"submitButton\">\n {{data.submitLabel}}\n </button>\n</mat-dialog-actions>\n", styles: [":host .message-container{font-weight:700}\n"] }]
21
+ }], ctorParameters: function () { return [{ type: i1.Store }, { type: undefined, decorators: [{
22
+ type: Inject,
23
+ args: [MAT_DIALOG_DATA]
24
+ }] }]; } });
25
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmdzc20tY29uZmlybWF0aW9uLWRpYWxvZy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3NzbS10b29sa2l0L3NyYy9saWIvY29uZmlybWF0aW9uLWRpYWxvZy9uZ3NzbS1jb25maXJtYXRpb24tZGlhbG9nL25nc3NtLWNvbmZpcm1hdGlvbi1kaWFsb2cuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmdzc20tdG9vbGtpdC9zcmMvbGliL2NvbmZpcm1hdGlvbi1kaWFsb2cvbmdzc20tY29uZmlybWF0aW9uLWRpYWxvZy9uZ3NzbS1jb25maXJtYXRpb24tZGlhbG9nLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsZUFBZSxFQUFFLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzVFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUUzRCxPQUFPLEVBQUUsY0FBYyxFQUFTLE1BQU0sYUFBYSxDQUFDOzs7OztBQVlwRCxNQUFNLE9BQU8sZ0NBQWlDLFNBQVEsY0FBYztJQUNsRSxZQUFZLEtBQVksRUFBa0MsSUFBbUM7UUFDM0YsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBRDJDLFNBQUksR0FBSixJQUFJLENBQStCO0lBRTdGLENBQUM7OzZIQUhVLGdDQUFnQyx1Q0FDVCxlQUFlO2lIQUR0QyxnQ0FBZ0MsNEdDakI3Qyw2ZkFVQSxvR0RFWSxZQUFZLDhCQUFFLGVBQWUsK2VBQUUsZUFBZTsyRkFLN0MsZ0NBQWdDO2tCQVI1QyxTQUFTOytCQUNFLDJCQUEyQixjQUN6QixJQUFJLFdBQ1AsQ0FBQyxZQUFZLEVBQUUsZUFBZSxFQUFFLGVBQWUsQ0FBQyxtQkFHeEMsdUJBQXVCLENBQUMsTUFBTTs7MEJBR3BCLE1BQU07MkJBQUMsZUFBZSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIEluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IE1hdERpYWxvZ01vZHVsZSwgTUFUX0RJQUxPR19EQVRBIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGlhbG9nJztcbmltcG9ydCB7IE1hdEJ1dHRvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2J1dHRvbic7XG5cbmltcG9ydCB7IE5nU3NtQ29tcG9uZW50LCBTdG9yZSB9IGZyb20gJ25nc3NtLXN0b3JlJztcblxuaW1wb3J0IHsgTmdzc21Db25maXJtYXRpb25EaWFsb2dDb25maWcgfSBmcm9tICcuLi9uZ3NzbS1jb25maXJtYXRpb24tZGlhbG9nLWNvbmZpZyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ25nc3NtLWNvbmZpcm1hdGlvbi1kaWFsb2cnLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBNYXREaWFsb2dNb2R1bGUsIE1hdEJ1dHRvbk1vZHVsZV0sXG4gIHRlbXBsYXRlVXJsOiAnLi9uZ3NzbS1jb25maXJtYXRpb24tZGlhbG9nLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vbmdzc20tY29uZmlybWF0aW9uLWRpYWxvZy5jb21wb25lbnQuc2NzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxufSlcbmV4cG9ydCBjbGFzcyBOZ3NzbUNvbmZpcm1hdGlvbkRpYWxvZ0NvbXBvbmVudCBleHRlbmRzIE5nU3NtQ29tcG9uZW50IHtcbiAgY29uc3RydWN0b3Ioc3RvcmU6IFN0b3JlLCBASW5qZWN0KE1BVF9ESUFMT0dfREFUQSkgcHVibGljIGRhdGE6IE5nc3NtQ29uZmlybWF0aW9uRGlhbG9nQ29uZmlnKSB7XG4gICAgc3VwZXIoc3RvcmUpO1xuICB9XG59XG4iLCI8bWF0LWRpYWxvZy1jb250ZW50IGNsYXNzPVwiZmxleC1jb2x1bW4tc3RyZXRjaCBmeEZsZXggbWVzc2FnZS1jb250YWluZXJcIj5cbnt7ZGF0YS5tZXNzYWdlfX1cbjwvbWF0LWRpYWxvZy1jb250ZW50PlxuPG1hdC1kaWFsb2ctYWN0aW9ucyBjbGFzcz1cImZsZXgtcm93LWNlbnRlclwiPlxuICAgIDxzcGFuIGNsYXNzPVwiZnhGbGV4XCI+PC9zcGFuPlxuICAgIDxidXR0b24gbWF0LWJ1dHRvbiBbbWF0RGlhbG9nQ2xvc2VdPVwiZGF0YS5jYW5jZWxMYWJlbFwiIGlkPVwiY2FuY2VsQnV0dG9uXCI+e3tkYXRhLmNhbmNlbExhYmVsfX08L2J1dHRvbj5cbiAgICA8YnV0dG9uIG1hdC1yYWlzZWQtYnV0dG9uIFtjb2xvcl09XCJkYXRhLnN1Ym1pdEJ1dHRvbkNvbG9yXCIgW21hdERpYWxvZ0Nsb3NlXT1cImRhdGEuc3VibWl0TGFiZWxcIiBpZD1cInN1Ym1pdEJ1dHRvblwiPlxuICAgICAgICB7e2RhdGEuc3VibWl0TGFiZWx9fVxuICAgIDwvYnV0dG9uPlxuPC9tYXQtZGlhbG9nLWFjdGlvbnM+XG4iXX0=
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmdzc20tY29uZmlybWF0aW9uLWRpYWxvZy1jb25maWcuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3NzbS10b29sa2l0L3NyYy9saWIvY29uZmlybWF0aW9uLWRpYWxvZy9uZ3NzbS1jb25maXJtYXRpb24tZGlhbG9nLWNvbmZpZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGludGVyZmFjZSBOZ3NzbUNvbmZpcm1hdGlvbkRpYWxvZ0NvbmZpZyB7XG4gIG1lc3NhZ2U6IHN0cmluZztcbiAgY2FuY2VsTGFiZWw6IHN0cmluZztcbiAgc3VibWl0TGFiZWw6IHN0cmluZztcbiAgc3VibWl0QnV0dG9uQ29sb3I6IHN0cmluZztcbiAgbWluV2lkdGg/OiBudW1iZXI7XG4gIG1pbkhlaWdodD86IG51bWJlcjtcbn1cbiJdfQ==
@@ -0,0 +1,28 @@
1
+ import { Injectable } from '@angular/core';
2
+ import { NgssmConfirmationDialogComponent } from './ngssm-confirmation-dialog/ngssm-confirmation-dialog.component';
3
+ import * as i0 from "@angular/core";
4
+ import * as i1 from "@angular/material/dialog";
5
+ export class NgssmConfirmationDialogService {
6
+ constructor(matDialog) {
7
+ this.matDialog = matDialog;
8
+ }
9
+ displayConfirmationDialog(config) {
10
+ return this.matDialog
11
+ .open(NgssmConfirmationDialogComponent, {
12
+ disableClose: true,
13
+ data: config,
14
+ minWidth: config.minWidth,
15
+ minHeight: config.minHeight
16
+ })
17
+ .afterClosed();
18
+ }
19
+ }
20
+ NgssmConfirmationDialogService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.5", ngImport: i0, type: NgssmConfirmationDialogService, deps: [{ token: i1.MatDialog }], target: i0.ɵɵFactoryTarget.Injectable });
21
+ NgssmConfirmationDialogService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.1.5", ngImport: i0, type: NgssmConfirmationDialogService, providedIn: 'root' });
22
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.5", ngImport: i0, type: NgssmConfirmationDialogService, decorators: [{
23
+ type: Injectable,
24
+ args: [{
25
+ providedIn: 'root'
26
+ }]
27
+ }], ctorParameters: function () { return [{ type: i1.MatDialog }]; } });
28
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmdzc20tY29uZmlybWF0aW9uLWRpYWxvZy5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmdzc20tdG9vbGtpdC9zcmMvbGliL2NvbmZpcm1hdGlvbi1kaWFsb2cvbmdzc20tY29uZmlybWF0aW9uLWRpYWxvZy5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFLM0MsT0FBTyxFQUFFLGdDQUFnQyxFQUFFLE1BQU0saUVBQWlFLENBQUM7OztBQUtuSCxNQUFNLE9BQU8sOEJBQThCO0lBQ3pDLFlBQW9CLFNBQW9CO1FBQXBCLGNBQVMsR0FBVCxTQUFTLENBQVc7SUFBRyxDQUFDO0lBRXJDLHlCQUF5QixDQUFDLE1BQXFDO1FBQ3BFLE9BQU8sSUFBSSxDQUFDLFNBQVM7YUFDbEIsSUFBSSxDQUFDLGdDQUFnQyxFQUFFO1lBQ3RDLFlBQVksRUFBRSxJQUFJO1lBQ2xCLElBQUksRUFBRSxNQUFNO1lBQ1osUUFBUSxFQUFFLE1BQU0sQ0FBQyxRQUFRO1lBQ3pCLFNBQVMsRUFBRSxNQUFNLENBQUMsU0FBUztTQUM1QixDQUFDO2FBQ0QsV0FBVyxFQUFFLENBQUM7SUFDbkIsQ0FBQzs7MkhBWlUsOEJBQThCOytIQUE5Qiw4QkFBOEIsY0FGN0IsTUFBTTsyRkFFUCw4QkFBOEI7a0JBSDFDLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTWF0RGlhbG9nIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGlhbG9nJztcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHsgTmdzc21Db25maXJtYXRpb25EaWFsb2dDb25maWcgfSBmcm9tICcuL25nc3NtLWNvbmZpcm1hdGlvbi1kaWFsb2ctY29uZmlnJztcbmltcG9ydCB7IE5nc3NtQ29uZmlybWF0aW9uRGlhbG9nQ29tcG9uZW50IH0gZnJvbSAnLi9uZ3NzbS1jb25maXJtYXRpb24tZGlhbG9nL25nc3NtLWNvbmZpcm1hdGlvbi1kaWFsb2cuY29tcG9uZW50JztcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgTmdzc21Db25maXJtYXRpb25EaWFsb2dTZXJ2aWNlIHtcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBtYXREaWFsb2c6IE1hdERpYWxvZykge31cblxuICBwdWJsaWMgZGlzcGxheUNvbmZpcm1hdGlvbkRpYWxvZyhjb25maWc6IE5nc3NtQ29uZmlybWF0aW9uRGlhbG9nQ29uZmlnKTogT2JzZXJ2YWJsZTxzdHJpbmc+IHtcbiAgICByZXR1cm4gdGhpcy5tYXREaWFsb2dcbiAgICAgIC5vcGVuKE5nc3NtQ29uZmlybWF0aW9uRGlhbG9nQ29tcG9uZW50LCB7XG4gICAgICAgIGRpc2FibGVDbG9zZTogdHJ1ZSxcbiAgICAgICAgZGF0YTogY29uZmlnLFxuICAgICAgICBtaW5XaWR0aDogY29uZmlnLm1pbldpZHRoLFxuICAgICAgICBtaW5IZWlnaHQ6IGNvbmZpZy5taW5IZWlnaHRcbiAgICAgIH0pXG4gICAgICAuYWZ0ZXJDbG9zZWQoKTtcbiAgfVxufVxuIl19
@@ -0,0 +1,2 @@
1
+ export const isNullOrUndefined = (value) => value === null || value === undefined;
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2JqZWN0LWhlbHBlcnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3NzbS10b29sa2l0L3NyYy9saWIvb2JqZWN0LWhlbHBlcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxDQUFDLE1BQU0saUJBQWlCLEdBQUcsQ0FBVSxLQUFRLEVBQVcsRUFBRSxDQUFDLEtBQUssS0FBSyxJQUFJLElBQUksS0FBSyxLQUFLLFNBQVMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjb25zdCBpc051bGxPclVuZGVmaW5lZCA9IDxUID0gYW55Pih2YWx1ZTogVCk6IGJvb2xlYW4gPT4gdmFsdWUgPT09IG51bGwgfHwgdmFsdWUgPT09IHVuZGVmaW5lZDtcbiJdfQ==
@@ -9,4 +9,6 @@ export * from './lib/not-found.component';
9
9
  export * from './lib/file-picker';
10
10
  export * from './lib/notification';
11
11
  export * from './lib/regex-editor';
12
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Byb2plY3RzL25nc3NtLXRvb2xraXQvc3JjL3B1YmxpYy1hcGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCxjQUFjLDRCQUE0QixDQUFDO0FBQzNDLGNBQWMsZ0JBQWdCLENBQUM7QUFDL0IsY0FBYyxlQUFlLENBQUM7QUFDOUIsY0FBYyxtQ0FBbUMsQ0FBQztBQUNsRCxjQUFjLDJCQUEyQixDQUFDO0FBQzFDLGNBQWMsbUJBQW1CLENBQUM7QUFDbEMsY0FBYyxvQkFBb0IsQ0FBQztBQUNuQyxjQUFjLG9CQUFvQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIFB1YmxpYyBBUEkgU3VyZmFjZSBvZiBuZ3NzbS10b29sa2l0XG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9saWIvbmdzc20tdG9vbGtpdC5tb2R1bGUnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvbWF0ZXJpYWwnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvb3ZlcmxheSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9kZWZhdWx0LWVycm9yLXN0YXRlLW1hdGNoZXInO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvbm90LWZvdW5kLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9maWxlLXBpY2tlcic7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9ub3RpZmljYXRpb24nO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvcmVnZXgtZWRpdG9yJztcbiJdfQ==
12
+ export * from './lib/confirmation-dialog';
13
+ export * from './lib/object-helpers';
14
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Byb2plY3RzL25nc3NtLXRvb2xraXQvc3JjL3B1YmxpYy1hcGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCxjQUFjLDRCQUE0QixDQUFDO0FBQzNDLGNBQWMsZ0JBQWdCLENBQUM7QUFDL0IsY0FBYyxlQUFlLENBQUM7QUFDOUIsY0FBYyxtQ0FBbUMsQ0FBQztBQUNsRCxjQUFjLDJCQUEyQixDQUFDO0FBQzFDLGNBQWMsbUJBQW1CLENBQUM7QUFDbEMsY0FBYyxvQkFBb0IsQ0FBQztBQUNuQyxjQUFjLG9CQUFvQixDQUFDO0FBQ25DLGNBQWMsMkJBQTJCLENBQUM7QUFDMUMsY0FBYyxzQkFBc0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBQdWJsaWMgQVBJIFN1cmZhY2Ugb2Ygbmdzc20tdG9vbGtpdFxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vbGliL25nc3NtLXRvb2xraXQubW9kdWxlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL21hdGVyaWFsJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL292ZXJsYXknO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvZGVmYXVsdC1lcnJvci1zdGF0ZS1tYXRjaGVyJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL25vdC1mb3VuZC5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvZmlsZS1waWNrZXInO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvbm90aWZpY2F0aW9uJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3JlZ2V4LWVkaXRvcic7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb25maXJtYXRpb24tZGlhbG9nJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL29iamVjdC1oZWxwZXJzJztcbiJdfQ==
@@ -5,7 +5,7 @@ import * as i3$1 from '@angular/common';
5
5
  import { CommonModule, DOCUMENT } from '@angular/common';
6
6
  import { MatToolbarModule } from '@angular/material/toolbar';
7
7
  import { MatSidenavModule } from '@angular/material/sidenav';
8
- import * as i6 from '@angular/material/button';
8
+ import * as i3$2 from '@angular/material/button';
9
9
  import { MatButtonModule } from '@angular/material/button';
10
10
  import * as i1$1 from '@angular/material/icon';
11
11
  import { MatIconModule } from '@angular/material/icon';
@@ -22,7 +22,8 @@ import * as i5 from '@angular/material/input';
22
22
  import { MatInputModule } from '@angular/material/input';
23
23
  import { MatTableModule } from '@angular/material/table';
24
24
  import { MatPaginatorModule } from '@angular/material/paginator';
25
- import { MatDialogModule } from '@angular/material/dialog';
25
+ import * as i2$3 from '@angular/material/dialog';
26
+ import { MatDialogModule, MAT_DIALOG_DATA } from '@angular/material/dialog';
26
27
  import * as i2 from '@angular/material/progress-spinner';
27
28
  import { MatProgressSpinnerModule } from '@angular/material/progress-spinner';
28
29
  import { MatCheckboxModule } from '@angular/material/checkbox';
@@ -41,6 +42,8 @@ import { coerceBooleanProperty } from '@angular/cdk/coercion';
41
42
  import * as i2$2 from '@angular/forms';
42
43
  import { FormControl, Validators, ReactiveFormsModule } from '@angular/forms';
43
44
  import { ErrorStateMatcher } from '@angular/material/core';
45
+ import * as i1$3 from 'ngssm-store';
46
+ import { NgSsmComponent } from 'ngssm-store';
44
47
 
45
48
  const modules = [
46
49
  CommonModule,
@@ -652,7 +655,7 @@ class NgssmRegexEditorComponent {
652
655
  }
653
656
  }
654
657
  NgssmRegexEditorComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.5", ngImport: i0, type: NgssmRegexEditorComponent, deps: [{ token: NGSSM_REGEX_EDITOR_VALIDATOR, optional: true }], target: i0.ɵɵFactoryTarget.Component });
655
- NgssmRegexEditorComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.1.5", type: NgssmRegexEditorComponent, isStandalone: true, selector: "ngssm-regex-editor", inputs: { regex: "regex" }, outputs: { closeEditor: "closeEditor" }, providers: [useDefaultErrorStateMatcher], ngImport: i0, template: "<mat-card class=\"flex-column-stretch fxFlex\">\n <mat-card-header>\n <mat-card-title>Regex Editor</mat-card-title>\n </mat-card-header>\n <mat-card-content class=\"flex-column-stretch fxFlex\">\n <mat-form-field class=\"with-margin-top-8\">\n <mat-label>Regular expression</mat-label>\n <input matInput [formControl]=\"regexControl\">\n <mat-error *ngIf=\"regexControl.errors?.['regex']\">\n {{regexControl.errors?.['regex']}}\n </mat-error>\n </mat-form-field>\n <div class=\"flex-row-center\">\n <mat-form-field class=\"fxFlex\">\n <mat-label>Test string</mat-label>\n <input matInput [formControl]=\"testStringControl\">\n </mat-form-field>\n <mat-icon class=\"fa-solid fa-check success with-margin-left-12\"\n *ngIf=\"(isRegexValid$ | async) === true\"></mat-icon>\n <mat-icon class=\"fa-solid fa-xmark failure with-margin-left-12\"\n *ngIf=\"(isRegexValid$ | async) === false\"></mat-icon>\n </div>\n </mat-card-content>\n <mat-card-actions class=\"flex-row-center\">\n <span class=\"fxFlex\"></span>\n <button mat-button (click)=\"cancel()\" id=\"cancelButton\">Cancel</button>\n <button mat-stroked-button color=\"primary\"\n [disabled]=\"regexControl.invalid || ((isRegexValid$ | async) === false)\" (click)=\"submit()\"\n id=\"submitButton\">\n Submit\n </button>\n </mat-card-actions>\n</mat-card>", styles: [":host{width:600px;height:250px;display:flex;flex-direction:column}:host .success{color:green}:host .failure{color:red}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i3$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i3$1.AsyncPipe, name: "async" }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i2$2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2$2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2$2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "ngmodule", type: MatCardModule }, { kind: "component", type: i3.MatCard, selector: "mat-card", inputs: ["appearance"], exportAs: ["matCard"] }, { kind: "directive", type: i3.MatCardActions, selector: "mat-card-actions", inputs: ["align"], exportAs: ["matCardActions"] }, { kind: "directive", type: i3.MatCardContent, selector: "mat-card-content" }, { kind: "component", type: i3.MatCardHeader, selector: "mat-card-header" }, { kind: "directive", type: i3.MatCardTitle, selector: "mat-card-title, [mat-card-title], [matCardTitle]" }, { kind: "ngmodule", type: MatFormFieldModule }, { kind: "component", type: i4.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i4.MatLabel, selector: "mat-label" }, { kind: "directive", type: i4.MatError, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "ngmodule", type: MatInputModule }, { kind: "directive", type: i5.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i6.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i1$1.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
658
+ NgssmRegexEditorComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.1.5", type: NgssmRegexEditorComponent, isStandalone: true, selector: "ngssm-regex-editor", inputs: { regex: "regex" }, outputs: { closeEditor: "closeEditor" }, providers: [useDefaultErrorStateMatcher], ngImport: i0, template: "<mat-card class=\"flex-column-stretch fxFlex\">\n <mat-card-header>\n <mat-card-title>Regex Editor</mat-card-title>\n </mat-card-header>\n <mat-card-content class=\"flex-column-stretch fxFlex\">\n <mat-form-field class=\"with-margin-top-8\">\n <mat-label>Regular expression</mat-label>\n <input matInput [formControl]=\"regexControl\">\n <mat-error *ngIf=\"regexControl.errors?.['regex']\">\n {{regexControl.errors?.['regex']}}\n </mat-error>\n </mat-form-field>\n <div class=\"flex-row-center\">\n <mat-form-field class=\"fxFlex\">\n <mat-label>Test string</mat-label>\n <input matInput [formControl]=\"testStringControl\">\n </mat-form-field>\n <mat-icon class=\"fa-solid fa-check success with-margin-left-12\"\n *ngIf=\"(isRegexValid$ | async) === true\"></mat-icon>\n <mat-icon class=\"fa-solid fa-xmark failure with-margin-left-12\"\n *ngIf=\"(isRegexValid$ | async) === false\"></mat-icon>\n </div>\n </mat-card-content>\n <mat-card-actions class=\"flex-row-center\">\n <span class=\"fxFlex\"></span>\n <button mat-button (click)=\"cancel()\" id=\"cancelButton\">Cancel</button>\n <button mat-stroked-button color=\"primary\"\n [disabled]=\"regexControl.invalid || ((isRegexValid$ | async) === false)\" (click)=\"submit()\"\n id=\"submitButton\">\n Submit\n </button>\n </mat-card-actions>\n</mat-card>", styles: [":host{width:600px;height:250px;display:flex;flex-direction:column}:host .success{color:green}:host .failure{color:red}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i3$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i3$1.AsyncPipe, name: "async" }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i2$2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2$2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2$2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "ngmodule", type: MatCardModule }, { kind: "component", type: i3.MatCard, selector: "mat-card", inputs: ["appearance"], exportAs: ["matCard"] }, { kind: "directive", type: i3.MatCardActions, selector: "mat-card-actions", inputs: ["align"], exportAs: ["matCardActions"] }, { kind: "directive", type: i3.MatCardContent, selector: "mat-card-content" }, { kind: "component", type: i3.MatCardHeader, selector: "mat-card-header" }, { kind: "directive", type: i3.MatCardTitle, selector: "mat-card-title, [mat-card-title], [matCardTitle]" }, { kind: "ngmodule", type: MatFormFieldModule }, { kind: "component", type: i4.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i4.MatLabel, selector: "mat-label" }, { kind: "directive", type: i4.MatError, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "ngmodule", type: MatInputModule }, { kind: "directive", type: i5.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i3$2.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i1$1.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
656
659
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.5", ngImport: i0, type: NgssmRegexEditorComponent, decorators: [{
657
660
  type: Component,
658
661
  args: [{ selector: 'ngssm-regex-editor', standalone: true, imports: [CommonModule, ReactiveFormsModule, MatCardModule, MatFormFieldModule, MatInputModule, MatButtonModule, MatIconModule], providers: [useDefaultErrorStateMatcher], changeDetection: ChangeDetectionStrategy.OnPush, template: "<mat-card class=\"flex-column-stretch fxFlex\">\n <mat-card-header>\n <mat-card-title>Regex Editor</mat-card-title>\n </mat-card-header>\n <mat-card-content class=\"flex-column-stretch fxFlex\">\n <mat-form-field class=\"with-margin-top-8\">\n <mat-label>Regular expression</mat-label>\n <input matInput [formControl]=\"regexControl\">\n <mat-error *ngIf=\"regexControl.errors?.['regex']\">\n {{regexControl.errors?.['regex']}}\n </mat-error>\n </mat-form-field>\n <div class=\"flex-row-center\">\n <mat-form-field class=\"fxFlex\">\n <mat-label>Test string</mat-label>\n <input matInput [formControl]=\"testStringControl\">\n </mat-form-field>\n <mat-icon class=\"fa-solid fa-check success with-margin-left-12\"\n *ngIf=\"(isRegexValid$ | async) === true\"></mat-icon>\n <mat-icon class=\"fa-solid fa-xmark failure with-margin-left-12\"\n *ngIf=\"(isRegexValid$ | async) === false\"></mat-icon>\n </div>\n </mat-card-content>\n <mat-card-actions class=\"flex-row-center\">\n <span class=\"fxFlex\"></span>\n <button mat-button (click)=\"cancel()\" id=\"cancelButton\">Cancel</button>\n <button mat-stroked-button color=\"primary\"\n [disabled]=\"regexControl.invalid || ((isRegexValid$ | async) === false)\" (click)=\"submit()\"\n id=\"submitButton\">\n Submit\n </button>\n </mat-card-actions>\n</mat-card>", styles: [":host{width:600px;height:250px;display:flex;flex-direction:column}:host .success{color:green}:host .failure{color:red}\n"] }]
@@ -701,7 +704,7 @@ class NgssmRegexEditorToggleComponent {
701
704
  }
702
705
  }
703
706
  NgssmRegexEditorToggleComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.5", ngImport: i0, type: NgssmRegexEditorToggleComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
704
- NgssmRegexEditorToggleComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.1.5", type: NgssmRegexEditorToggleComponent, isStandalone: true, selector: "ngssm-regex-editor-toggle", inputs: { inputElement: "inputElement", disabled: "disabled" }, ngImport: i0, template: "<button mat-icon-button (click)=\"openEditor($event)\" [disabled]=\"isDisabled$ | async\" color=\"primary\" id=\"toggleButton\">\n <mat-icon class=\"fa-solid fa-up-right-from-square ngssm-regex-editor-toggle-icon\" cdkOverlayOrigin\n #trigger=\"cdkOverlayOrigin\"></mat-icon>\n</button>\n\n<ng-template cdkConnectedOverlay [cdkConnectedOverlayOrigin]=\"trigger\"\n [cdkConnectedOverlayOpen]=\"(isOpen$ | async) === true\">\n <ngssm-regex-editor (closeEditor)=\"closeEditor($event)\" [regex]=\"regexValue\"></ngssm-regex-editor>\n</ng-template>", styles: [":host{display:flex;flex-direction:row;margin-right:4px}:host .ngssm-regex-editor-toggle-icon{font-size:20px}:host .ngssm-regex-editor-toggle-icon:hover{cursor:pointer}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "pipe", type: i3$1.AsyncPipe, name: "async" }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i1$1.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i6.MatIconButton, selector: "button[mat-icon-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "ngmodule", type: OverlayModule }, { kind: "directive", type: i1.CdkConnectedOverlay, selector: "[cdk-connected-overlay], [connected-overlay], [cdkConnectedOverlay]", inputs: ["cdkConnectedOverlayOrigin", "cdkConnectedOverlayPositions", "cdkConnectedOverlayPositionStrategy", "cdkConnectedOverlayOffsetX", "cdkConnectedOverlayOffsetY", "cdkConnectedOverlayWidth", "cdkConnectedOverlayHeight", "cdkConnectedOverlayMinWidth", "cdkConnectedOverlayMinHeight", "cdkConnectedOverlayBackdropClass", "cdkConnectedOverlayPanelClass", "cdkConnectedOverlayViewportMargin", "cdkConnectedOverlayScrollStrategy", "cdkConnectedOverlayOpen", "cdkConnectedOverlayDisableClose", "cdkConnectedOverlayTransformOriginOn", "cdkConnectedOverlayHasBackdrop", "cdkConnectedOverlayLockPosition", "cdkConnectedOverlayFlexibleDimensions", "cdkConnectedOverlayGrowAfterOpen", "cdkConnectedOverlayPush"], outputs: ["backdropClick", "positionChange", "attach", "detach", "overlayKeydown", "overlayOutsideClick"], exportAs: ["cdkConnectedOverlay"] }, { kind: "directive", type: i1.CdkOverlayOrigin, selector: "[cdk-overlay-origin], [overlay-origin], [cdkOverlayOrigin]", exportAs: ["cdkOverlayOrigin"] }, { kind: "component", type: NgssmRegexEditorComponent, selector: "ngssm-regex-editor", inputs: ["regex"], outputs: ["closeEditor"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
707
+ NgssmRegexEditorToggleComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.1.5", type: NgssmRegexEditorToggleComponent, isStandalone: true, selector: "ngssm-regex-editor-toggle", inputs: { inputElement: "inputElement", disabled: "disabled" }, ngImport: i0, template: "<button mat-icon-button (click)=\"openEditor($event)\" [disabled]=\"isDisabled$ | async\" color=\"primary\" id=\"toggleButton\">\n <mat-icon class=\"fa-solid fa-up-right-from-square ngssm-regex-editor-toggle-icon\" cdkOverlayOrigin\n #trigger=\"cdkOverlayOrigin\"></mat-icon>\n</button>\n\n<ng-template cdkConnectedOverlay [cdkConnectedOverlayOrigin]=\"trigger\"\n [cdkConnectedOverlayOpen]=\"(isOpen$ | async) === true\">\n <ngssm-regex-editor (closeEditor)=\"closeEditor($event)\" [regex]=\"regexValue\"></ngssm-regex-editor>\n</ng-template>", styles: [":host{display:flex;flex-direction:row;margin-right:4px}:host .ngssm-regex-editor-toggle-icon{font-size:20px}:host .ngssm-regex-editor-toggle-icon:hover{cursor:pointer}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "pipe", type: i3$1.AsyncPipe, name: "async" }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i1$1.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i3$2.MatIconButton, selector: "button[mat-icon-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "ngmodule", type: OverlayModule }, { kind: "directive", type: i1.CdkConnectedOverlay, selector: "[cdk-connected-overlay], [connected-overlay], [cdkConnectedOverlay]", inputs: ["cdkConnectedOverlayOrigin", "cdkConnectedOverlayPositions", "cdkConnectedOverlayPositionStrategy", "cdkConnectedOverlayOffsetX", "cdkConnectedOverlayOffsetY", "cdkConnectedOverlayWidth", "cdkConnectedOverlayHeight", "cdkConnectedOverlayMinWidth", "cdkConnectedOverlayMinHeight", "cdkConnectedOverlayBackdropClass", "cdkConnectedOverlayPanelClass", "cdkConnectedOverlayViewportMargin", "cdkConnectedOverlayScrollStrategy", "cdkConnectedOverlayOpen", "cdkConnectedOverlayDisableClose", "cdkConnectedOverlayTransformOriginOn", "cdkConnectedOverlayHasBackdrop", "cdkConnectedOverlayLockPosition", "cdkConnectedOverlayFlexibleDimensions", "cdkConnectedOverlayGrowAfterOpen", "cdkConnectedOverlayPush"], outputs: ["backdropClick", "positionChange", "attach", "detach", "overlayKeydown", "overlayOutsideClick"], exportAs: ["cdkConnectedOverlay"] }, { kind: "directive", type: i1.CdkOverlayOrigin, selector: "[cdk-overlay-origin], [overlay-origin], [cdkOverlayOrigin]", exportAs: ["cdkOverlayOrigin"] }, { kind: "component", type: NgssmRegexEditorComponent, selector: "ngssm-regex-editor", inputs: ["regex"], outputs: ["closeEditor"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
705
708
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.5", ngImport: i0, type: NgssmRegexEditorToggleComponent, decorators: [{
706
709
  type: Component,
707
710
  args: [{ selector: 'ngssm-regex-editor-toggle', standalone: true, imports: [CommonModule, MatIconModule, MatButtonModule, OverlayModule, NgssmRegexEditorComponent], changeDetection: ChangeDetectionStrategy.OnPush, template: "<button mat-icon-button (click)=\"openEditor($event)\" [disabled]=\"isDisabled$ | async\" color=\"primary\" id=\"toggleButton\">\n <mat-icon class=\"fa-solid fa-up-right-from-square ngssm-regex-editor-toggle-icon\" cdkOverlayOrigin\n #trigger=\"cdkOverlayOrigin\"></mat-icon>\n</button>\n\n<ng-template cdkConnectedOverlay [cdkConnectedOverlayOrigin]=\"trigger\"\n [cdkConnectedOverlayOpen]=\"(isOpen$ | async) === true\">\n <ngssm-regex-editor (closeEditor)=\"closeEditor($event)\" [regex]=\"regexValue\"></ngssm-regex-editor>\n</ng-template>", styles: [":host{display:flex;flex-direction:row;margin-right:4px}:host .ngssm-regex-editor-toggle-icon{font-size:20px}:host .ngssm-regex-editor-toggle-icon:hover{cursor:pointer}\n"] }]
@@ -711,6 +714,50 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.5", ngImpor
711
714
  type: Input
712
715
  }] } });
713
716
 
717
+ class NgssmConfirmationDialogComponent extends NgSsmComponent {
718
+ constructor(store, data) {
719
+ super(store);
720
+ this.data = data;
721
+ }
722
+ }
723
+ NgssmConfirmationDialogComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.5", ngImport: i0, type: NgssmConfirmationDialogComponent, deps: [{ token: i1$3.Store }, { token: MAT_DIALOG_DATA }], target: i0.ɵɵFactoryTarget.Component });
724
+ NgssmConfirmationDialogComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.1.5", type: NgssmConfirmationDialogComponent, isStandalone: true, selector: "ngssm-confirmation-dialog", usesInheritance: true, ngImport: i0, template: "<mat-dialog-content class=\"flex-column-stretch fxFlex message-container\">\n{{data.message}}\n</mat-dialog-content>\n<mat-dialog-actions class=\"flex-row-center\">\n <span class=\"fxFlex\"></span>\n <button mat-button [matDialogClose]=\"data.cancelLabel\" id=\"cancelButton\">{{data.cancelLabel}}</button>\n <button mat-raised-button [color]=\"data.submitButtonColor\" [matDialogClose]=\"data.submitLabel\" id=\"submitButton\">\n {{data.submitLabel}}\n </button>\n</mat-dialog-actions>\n", styles: [":host .message-container{font-weight:700}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: MatDialogModule }, { kind: "directive", type: i2$3.MatDialogClose, selector: "[mat-dialog-close], [matDialogClose]", inputs: ["aria-label", "type", "mat-dialog-close", "matDialogClose"], exportAs: ["matDialogClose"] }, { kind: "directive", type: i2$3.MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { kind: "directive", type: i2$3.MatDialogActions, selector: "[mat-dialog-actions], mat-dialog-actions, [matDialogActions]", inputs: ["align"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i3$2.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
725
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.5", ngImport: i0, type: NgssmConfirmationDialogComponent, decorators: [{
726
+ type: Component,
727
+ args: [{ selector: 'ngssm-confirmation-dialog', standalone: true, imports: [CommonModule, MatDialogModule, MatButtonModule], changeDetection: ChangeDetectionStrategy.OnPush, template: "<mat-dialog-content class=\"flex-column-stretch fxFlex message-container\">\n{{data.message}}\n</mat-dialog-content>\n<mat-dialog-actions class=\"flex-row-center\">\n <span class=\"fxFlex\"></span>\n <button mat-button [matDialogClose]=\"data.cancelLabel\" id=\"cancelButton\">{{data.cancelLabel}}</button>\n <button mat-raised-button [color]=\"data.submitButtonColor\" [matDialogClose]=\"data.submitLabel\" id=\"submitButton\">\n {{data.submitLabel}}\n </button>\n</mat-dialog-actions>\n", styles: [":host .message-container{font-weight:700}\n"] }]
728
+ }], ctorParameters: function () {
729
+ return [{ type: i1$3.Store }, { type: undefined, decorators: [{
730
+ type: Inject,
731
+ args: [MAT_DIALOG_DATA]
732
+ }] }];
733
+ } });
734
+
735
+ class NgssmConfirmationDialogService {
736
+ constructor(matDialog) {
737
+ this.matDialog = matDialog;
738
+ }
739
+ displayConfirmationDialog(config) {
740
+ return this.matDialog
741
+ .open(NgssmConfirmationDialogComponent, {
742
+ disableClose: true,
743
+ data: config,
744
+ minWidth: config.minWidth,
745
+ minHeight: config.minHeight
746
+ })
747
+ .afterClosed();
748
+ }
749
+ }
750
+ NgssmConfirmationDialogService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.5", ngImport: i0, type: NgssmConfirmationDialogService, deps: [{ token: i2$3.MatDialog }], target: i0.ɵɵFactoryTarget.Injectable });
751
+ NgssmConfirmationDialogService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.1.5", ngImport: i0, type: NgssmConfirmationDialogService, providedIn: 'root' });
752
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.5", ngImport: i0, type: NgssmConfirmationDialogService, decorators: [{
753
+ type: Injectable,
754
+ args: [{
755
+ providedIn: 'root'
756
+ }]
757
+ }], ctorParameters: function () { return [{ type: i2$3.MatDialog }]; } });
758
+
759
+ const isNullOrUndefined = (value) => value === null || value === undefined;
760
+
714
761
  /*
715
762
  * Public API Surface of ngssm-toolkit
716
763
  */
@@ -719,5 +766,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.5", ngImpor
719
766
  * Generated bundle index. Do not edit.
720
767
  */
721
768
 
722
- export { ComponentOverlayDirective, DefaultErrorStateMatcher, EmptyOverlayComponent, FilePickerComponent, FileSizePipe, MaterialImportsModule, MessageOverlayComponent, NGSSM_REGEX_EDITOR_VALIDATOR, NgssmNotificationErrorComponent, NgssmNotificationSuccessComponent, NgssmNotifierService, NgssmOverlayBuilder, NgssmRegexEditorComponent, NgssmRegexEditorToggleComponent, NgssmToolkitModule, NotFoundComponent, defaultRegexEditorValidator, noop, useDefaultErrorStateMatcher };
769
+ export { ComponentOverlayDirective, DefaultErrorStateMatcher, EmptyOverlayComponent, FilePickerComponent, FileSizePipe, MaterialImportsModule, MessageOverlayComponent, NGSSM_REGEX_EDITOR_VALIDATOR, NgssmConfirmationDialogComponent, NgssmConfirmationDialogService, NgssmNotificationErrorComponent, NgssmNotificationSuccessComponent, NgssmNotifierService, NgssmOverlayBuilder, NgssmRegexEditorComponent, NgssmRegexEditorToggleComponent, NgssmToolkitModule, NotFoundComponent, defaultRegexEditorValidator, isNullOrUndefined, noop, useDefaultErrorStateMatcher };
723
770
  //# sourceMappingURL=ngssm-toolkit.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"ngssm-toolkit.mjs","sources":["../../../projects/ngssm-toolkit/src/lib/material/material-imports.module.ts","../../../projects/ngssm-toolkit/src/lib/not-found.component.ts","../../../projects/ngssm-toolkit/src/lib/overlay/message-overlay.component.ts","../../../projects/ngssm-toolkit/src/lib/overlay/component-overlay.directive.ts","../../../projects/ngssm-toolkit/src/lib/overlay/empty-overlay.component.ts","../../../projects/ngssm-toolkit/src/lib/overlay/ngssm-overlay-builder.ts","../../../projects/ngssm-toolkit/src/lib/file-picker/file-size.pipe.ts","../../../projects/ngssm-toolkit/src/lib/file-picker/file-picker.component.ts","../../../projects/ngssm-toolkit/src/lib/file-picker/file-picker.component.html","../../../projects/ngssm-toolkit/src/lib/ngssm-toolkit.module.ts","../../../projects/ngssm-toolkit/src/lib/default-error-state-matcher.ts","../../../projects/ngssm-toolkit/src/lib/notification/ngssm-notification-error/ngssm-notification-error.component.ts","../../../projects/ngssm-toolkit/src/lib/notification/ngssm-notification-error/ngssm-notification-error.component.html","../../../projects/ngssm-toolkit/src/lib/notification/ngssm-notification-success/ngssm-notification-success.component.ts","../../../projects/ngssm-toolkit/src/lib/notification/ngssm-notification-success/ngssm-notification-success.component.html","../../../projects/ngssm-toolkit/src/lib/notification/ngssm-notifier.service.ts","../../../projects/ngssm-toolkit/src/lib/regex-editor/regex-editor-validator.ts","../../../projects/ngssm-toolkit/src/lib/regex-editor/ngssm-regex-editor/ngssm-regex-editor.component.ts","../../../projects/ngssm-toolkit/src/lib/regex-editor/ngssm-regex-editor/ngssm-regex-editor.component.html","../../../projects/ngssm-toolkit/src/lib/regex-editor/ngssm-regex-editor-toggle/ngssm-regex-editor-toggle.component.ts","../../../projects/ngssm-toolkit/src/lib/regex-editor/ngssm-regex-editor-toggle/ngssm-regex-editor-toggle.component.html","../../../projects/ngssm-toolkit/src/public-api.ts","../../../projects/ngssm-toolkit/src/ngssm-toolkit.ts"],"sourcesContent":["import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { MatToolbarModule } from '@angular/material/toolbar';\nimport { MatSidenavModule } from '@angular/material/sidenav';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatListModule } from '@angular/material/list';\nimport { MatDividerModule } from '@angular/material/divider';\nimport { MatCardModule } from '@angular/material/card';\nimport { MatSlideToggleModule } from '@angular/material/slide-toggle';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { MatRadioModule } from '@angular/material/radio';\nimport { MatSelectModule } from '@angular/material/select';\nimport { MatInputModule } from '@angular/material/input';\nimport { MatTableModule } from '@angular/material/table';\nimport { MatPaginatorModule } from '@angular/material/paginator';\nimport { MatDialogModule } from '@angular/material/dialog';\nimport { MatProgressSpinnerModule } from '@angular/material/progress-spinner';\nimport { MatCheckboxModule } from '@angular/material/checkbox';\nimport { MatTooltipModule } from '@angular/material/tooltip';\nimport { MatBadgeModule } from '@angular/material/badge';\nimport { MatSnackBarModule } from '@angular/material/snack-bar';\nimport { MatTabsModule } from '@angular/material/tabs';\nimport { MatExpansionModule } from '@angular/material/expansion';\n\nconst modules = [\n CommonModule,\n MatToolbarModule,\n MatSidenavModule,\n MatButtonModule,\n MatIconModule,\n MatListModule,\n MatDividerModule,\n MatCardModule,\n MatSlideToggleModule,\n MatFormFieldModule,\n MatRadioModule,\n MatSelectModule,\n MatInputModule,\n MatTableModule,\n MatPaginatorModule,\n MatDialogModule,\n MatProgressSpinnerModule,\n MatCheckboxModule,\n MatTooltipModule,\n MatBadgeModule,\n MatSnackBarModule,\n MatTabsModule,\n MatExpansionModule\n];\n\n@NgModule({\n declarations: [],\n imports: modules,\n exports: modules\n})\nexport class MaterialImportsModule {}\n","import { Component } from '@angular/core';\n\n@Component({\n selector: 'ngssm-not-found',\n template: ` <img src=\"./assets/404-not-found.png\" /> `,\n styles: [\n `\n :host {\n display: flex;\n flex-direction: row;\n flex: 1;\n align-items: center;\n justify-content: center;\n }\n `\n ]\n})\nexport class NotFoundComponent {}\n","import { Component } from '@angular/core';\nimport { Observable, Subject } from 'rxjs';\n\n@Component({\n selector: 'ngssm-message-overlay',\n template: `\n <mat-card>\n <mat-card-content class=\"message-container\">\n <mat-spinner></mat-spinner>\n {{ message$ | async }}\n </mat-card-content>\n </mat-card>\n `,\n styles: [\n `\n .message-container {\n display: flex !important;\n flex-direction: column;\n align-items: center;\n }\n `\n ]\n})\nexport class MessageOverlayComponent {\n public message$: Observable<string> = new Subject<string>();\n}\n","import {\n Overlay,\n OverlayKeyboardDispatcher,\n OverlayOutsideClickDispatcher,\n OverlayPositionBuilder,\n OverlayRef,\n ScrollStrategyOptions\n} from '@angular/cdk/overlay';\nimport { DOCUMENT } from '@angular/common';\nimport {\n AfterViewInit,\n ComponentFactoryResolver,\n Directive,\n ElementRef,\n Inject,\n Injector,\n Input,\n NgZone,\n OnDestroy,\n Renderer2,\n TemplateRef,\n ViewContainerRef\n} from '@angular/core';\nimport { Location } from '@angular/common';\nimport { Directionality } from '@angular/cdk/bidi';\nimport { ComponentPortal, ComponentType, TemplatePortal } from '@angular/cdk/portal';\nimport { BehaviorSubject, Subject, takeUntil } from 'rxjs';\n\nimport { MessageOverlayComponent } from './message-overlay.component';\n\n@Directive({\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: '[displayOverlay]'\n})\nexport class ComponentOverlayDirective implements OnDestroy, AfterViewInit {\n private readonly unSubscribeAll$ = new Subject<void>();\n private readonly _displayOverlay$ = new BehaviorSubject<boolean>(false);\n private readonly _overlayMessage$ = new BehaviorSubject<string>('Please wait');\n\n private overlay: Overlay;\n private overlayRef: OverlayRef;\n\n constructor(\n private elementRef: ElementRef,\n private viewContainerRef: ViewContainerRef,\n @Inject(DOCUMENT) document: any,\n scrollStrategies: ScrollStrategyOptions,\n // eslint-disable-next-line deprecation/deprecation\n componentFactoryResolver: ComponentFactoryResolver,\n positionBuilder: OverlayPositionBuilder,\n keyboardDispatcher: OverlayKeyboardDispatcher,\n injector: Injector,\n ngZone: NgZone,\n directionality: Directionality,\n location: Location,\n outsideClickDispatcher: OverlayOutsideClickDispatcher,\n renderer: Renderer2\n ) {\n renderer.setStyle(this.elementRef.nativeElement, 'position', 'relative');\n const container = {\n getContainerElement: () => this.elementRef.nativeElement\n };\n\n this.overlay = new Overlay(\n scrollStrategies,\n container as any,\n componentFactoryResolver,\n positionBuilder,\n keyboardDispatcher,\n injector,\n ngZone,\n document,\n directionality,\n location,\n outsideClickDispatcher\n );\n\n this.overlayRef = this.overlay.create({\n positionStrategy: this.overlay.position().global().centerHorizontally().centerVertically(),\n hasBackdrop: true\n });\n }\n\n // eslint-disable-next-line @angular-eslint/no-input-rename\n @Input('overlayTemplate') overLayTemplate: TemplateRef<any> | undefined;\n\n @Input() overlayComponent: ComponentType<any> | undefined;\n\n @Input() public set overlayMessage(value: string) {\n this._overlayMessage$.next(value);\n }\n\n @Input('displayOverlay') public set dispalyOverlay(value: boolean) {\n this._displayOverlay$.next(value);\n }\n\n public ngAfterViewInit(): void {\n this._displayOverlay$.pipe(takeUntil(this.unSubscribeAll$)).subscribe((v) => {\n if (v) {\n this.showOverlay();\n } else {\n this.hideOverlay();\n }\n });\n }\n\n public ngOnDestroy(): void {\n this.unSubscribeAll$.next();\n this.unSubscribeAll$.complete();\n if (this._displayOverlay$.getValue()) {\n this.overlayRef.detach();\n }\n }\n\n private showOverlay(): void {\n if (this.overLayTemplate) {\n this.overlayRef.attach(new TemplatePortal(this.overLayTemplate, this.viewContainerRef));\n } else if (this.overlayComponent) {\n const ref = this.overlayRef.attach(new ComponentPortal(this.overlayComponent));\n if (this.overlayComponent === MessageOverlayComponent) {\n ref.instance.message$ = this._overlayMessage$.asObservable();\n }\n } else {\n const ref = this.overlayRef.attach(new ComponentPortal(MessageOverlayComponent));\n ref.instance.message$ = this._overlayMessage$.asObservable();\n }\n }\n\n private hideOverlay(): void {\n this.overlayRef.detach();\n }\n}\n","import { Component } from '@angular/core';\n\n@Component({\n selector: 'ngssm-empty-overlay',\n template: ``,\n styles: []\n})\nexport class EmptyOverlayComponent {}\n","import { Directionality } from '@angular/cdk/bidi';\nimport {\n ComponentType,\n Overlay,\n OverlayKeyboardDispatcher,\n OverlayOutsideClickDispatcher,\n OverlayPositionBuilder,\n OverlayRef,\n ScrollStrategyOptions\n} from '@angular/cdk/overlay';\nimport { ComponentPortal, TemplatePortal } from '@angular/cdk/portal';\nimport { DOCUMENT, Location } from '@angular/common';\nimport {\n ComponentFactoryResolver,\n ElementRef,\n Inject,\n Injectable,\n Injector,\n NgZone,\n Renderer2,\n TemplateRef,\n ViewContainerRef\n} from '@angular/core';\nimport { BehaviorSubject } from 'rxjs';\nimport { MessageOverlayComponent } from './message-overlay.component';\n\n@Injectable()\nexport class NgssmOverlayBuilder {\n private readonly _overlayMessage$ = new BehaviorSubject<string>('Please wait');\n\n private overlay: Overlay;\n private overlayRef: OverlayRef;\n\n public overLayTemplate: TemplateRef<any> | undefined;\n public overlayComponent: ComponentType<any> | undefined;\n\n constructor(\n private elementRef: ElementRef,\n private viewContainerRef: ViewContainerRef,\n @Inject(DOCUMENT) document: any,\n scrollStrategies: ScrollStrategyOptions,\n // eslint-disable-next-line deprecation/deprecation\n componentFactoryResolver: ComponentFactoryResolver,\n positionBuilder: OverlayPositionBuilder,\n keyboardDispatcher: OverlayKeyboardDispatcher,\n injector: Injector,\n ngZone: NgZone,\n directionality: Directionality,\n location: Location,\n outsideClickDispatcher: OverlayOutsideClickDispatcher,\n renderer: Renderer2\n ) {\n renderer.setStyle(this.elementRef.nativeElement, 'position', 'relative');\n const container = {\n getContainerElement: () => this.elementRef.nativeElement\n };\n\n this.overlay = new Overlay(\n scrollStrategies,\n container as any,\n componentFactoryResolver,\n positionBuilder,\n keyboardDispatcher,\n injector,\n ngZone,\n document,\n directionality,\n location,\n outsideClickDispatcher\n );\n\n this.overlayRef = this.overlay.create({\n positionStrategy: this.overlay.position().global().centerHorizontally().centerVertically(),\n hasBackdrop: true\n });\n }\n\n public set overlayMessage(value: string) {\n this._overlayMessage$.next(value);\n }\n\n public showOverlay(): void {\n if (this.overLayTemplate) {\n this.overlayRef.attach(new TemplatePortal(this.overLayTemplate, this.viewContainerRef));\n } else if (this.overlayComponent) {\n const ref = this.overlayRef.attach(new ComponentPortal(this.overlayComponent));\n if (this.overlayComponent === MessageOverlayComponent) {\n ref.instance.message$ = this._overlayMessage$.asObservable();\n }\n } else {\n const ref = this.overlayRef.attach(new ComponentPortal(MessageOverlayComponent));\n ref.instance.message$ = this._overlayMessage$.asObservable();\n }\n }\n\n public hideOverlay(): void {\n this.overlayRef.detach();\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'fileSize'\n})\nexport class FileSizePipe implements PipeTransform {\n private readonly units = ['bytes', 'KB', 'MB', 'GB'];\n\n public transform(value: any, precision: number = 2): any {\n let bytes = +value;\n if (isNaN(bytes) || !isFinite(bytes)) {\n return '?';\n }\n\n let unit = 0;\n while (bytes >= 1024 && unit < this.units.length) {\n bytes /= 1024;\n unit++;\n }\n\n if (unit === 0) {\n return `${bytes} ${this.units[unit]}`;\n }\n\n return `${bytes.toFixed(+precision)} ${this.units[unit]}`;\n }\n}\n","import { coerceBooleanProperty } from '@angular/cdk/coercion';\nimport { Component, ElementRef, HostBinding, Input, OnDestroy, Optional, Self, ViewChild } from '@angular/core';\nimport { ControlValueAccessor, NgControl } from '@angular/forms';\nimport { MatFormFieldControl } from '@angular/material/form-field';\nimport { BehaviorSubject, Observable, Subject } from 'rxjs';\n\nexport const noop = () => {};\n\n@Component({\n selector: 'ngssm-file-picker',\n templateUrl: './file-picker.component.html',\n styleUrls: ['./file-picker.component.scss'],\n providers: [{ provide: MatFormFieldControl, useExisting: FilePickerComponent }]\n})\nexport class FilePickerComponent implements MatFormFieldControl<File>, ControlValueAccessor, OnDestroy {\n private static nextId = 0;\n\n private readonly _displayDetails$ = new BehaviorSubject<boolean>(true);\n\n private onChangeCallback: (_: any) => void = noop;\n private _required = false;\n private _disabled = false;\n\n @ViewChild('fileInput', { static: true }) fileInput: ElementRef | undefined;\n\n constructor(@Optional() @Self() public ngControl: NgControl) {\n // Replace the provider from above with this.\n if (this.ngControl != null) {\n // Setting the value accessor directly (instead of using\n // the providers) to avoid running into a circular import.\n this.ngControl.valueAccessor = this;\n }\n }\n\n @HostBinding('id') public id = `file-picker-${FilePickerComponent.nextId++}`;\n public controlType = 'file-picker';\n public placeholder: string = '';\n public focused: boolean = false;\n public stateChanges = new Subject<void>();\n public value: File | null = null;\n public autofilled?: boolean | undefined;\n public userAriaDescribedBy?: string | undefined;\n\n public get empty(): boolean {\n return this.value === null;\n }\n\n public get shouldLabelFloat(): boolean {\n return this.value !== null;\n }\n\n @Input()\n public get required(): boolean {\n return this._required;\n }\n\n public set required(value: boolean) {\n this._required = coerceBooleanProperty(value);\n this.stateChanges.next();\n }\n\n @Input()\n public get disabled(): boolean {\n return this._disabled;\n }\n\n public set disabled(value: boolean) {\n this._disabled = coerceBooleanProperty(value);\n this.stateChanges.next();\n }\n\n public get errorState(): boolean {\n return this.ngControl.invalid ?? false;\n }\n\n public get lastModificationDate(): string {\n if (this.value) {\n const date = new Date(this.value.lastModified);\n return date.toISOString();\n }\n\n return '';\n }\n\n public get displayDetails$(): Observable<boolean> {\n return this._displayDetails$.asObservable();\n }\n\n @Input()\n public set displayDetails(value: boolean) {\n this._displayDetails$.next(value);\n }\n\n public setDescribedByIds(ids: string[]): void {}\n\n public setDisabledState(isDisabled: boolean): void {\n this.disabled = isDisabled;\n }\n\n public onContainerClick(event: MouseEvent): void {\n if (!this.disabled) {\n this.fileInput?.nativeElement.click();\n }\n }\n\n public writeValue(obj: any): void {\n if (obj !== undefined && obj !== null) {\n this.updateValue(obj);\n }\n }\n\n public registerOnChange(fn: any): void {\n this.onChangeCallback = fn;\n }\n\n public registerOnTouched(fn: any): void {}\n\n public ngOnDestroy(): void {\n this.stateChanges.complete();\n }\n\n public onDrop(event: any): void {\n this.preventAndStop(event);\n if (!this.disabled) {\n this.updateValue(event.dataTransfer.files);\n }\n }\n\n public onDragOver(event: any): void {\n this.preventAndStop(event);\n }\n\n public onDragLeave(event: any): void {\n this.preventAndStop(event);\n }\n\n public onFileSelected(event: any): void {\n this.updateValue(this.fileInput?.nativeElement.files);\n }\n\n private preventAndStop(event: any): void {\n event.stopPropagation();\n event.preventDefault();\n }\n\n private updateValue(files: FileList): void {\n if (files.length > 0) {\n this.value = files[0];\n this.stateChanges.next();\n this.onChangeCallback(this.value);\n }\n }\n}\n","<div class=\"file-picker-container\" (drop)=\"onDrop($event)\" (dragover)=\"onDragOver($event)\"\n (dragleave)=\"onDragLeave($event)\" [ngClass]=\"{'picker-disabled': disabled}\">\n <input type=\"file\" class=\"hidden\" #fileInput (change)=\"onFileSelected($event)\">\n <div *ngIf=\"empty === false\" class=\"flex-row-center\">\n <div class=\"file-picker-file-name\">\n {{value?.name}}\n </div>\n <div class=\"file-picker-file-information\" *ngIf=\"(displayDetails$ | async) === true\">\n {{value?.size | fileSize}}, last modified on {{lastModificationDate}}\n </div>\n </div>\n</div>","import { NgModule } from '@angular/core';\nimport { RouterModule } from '@angular/router';\n\nimport { MaterialImportsModule } from './material';\nimport { NotFoundComponent } from './not-found.component';\nimport { ComponentOverlayDirective, EmptyOverlayComponent, MessageOverlayComponent } from './overlay';\nimport { FilePickerComponent } from './file-picker/file-picker.component';\nimport { FileSizePipe } from './file-picker/file-size.pipe';\n\n@NgModule({\n declarations: [\n ComponentOverlayDirective,\n MessageOverlayComponent,\n EmptyOverlayComponent,\n NotFoundComponent,\n FilePickerComponent,\n FileSizePipe\n ],\n imports: [RouterModule, MaterialImportsModule],\n exports: [ComponentOverlayDirective, FilePickerComponent, FileSizePipe]\n})\nexport class NgssmToolkitModule {}\n","import { Provider } from '@angular/core';\nimport { FormControl, FormGroupDirective, NgForm } from '@angular/forms';\nimport { ErrorStateMatcher } from '@angular/material/core';\n\nexport class DefaultErrorStateMatcher implements ErrorStateMatcher {\n isErrorState(control: FormControl | null, form: FormGroupDirective | NgForm | null): boolean {\n return !!(control && control.invalid);\n }\n}\n\nexport const useDefaultErrorStateMatcher: Provider = { provide: ErrorStateMatcher, useClass: DefaultErrorStateMatcher };\n","import { Component, ChangeDetectionStrategy, Inject } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MAT_SNACK_BAR_DATA } from '@angular/material/snack-bar';\n\n@Component({\n selector: 'ngssm-notification-error',\n standalone: true,\n imports: [CommonModule, MatIconModule],\n templateUrl: './ngssm-notification-error.component.html',\n styleUrls: ['./ngssm-notification-error.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class NgssmNotificationErrorComponent {\n constructor(@Inject(MAT_SNACK_BAR_DATA) public message: string) {}\n}\n","<mat-icon class=\"fa-solid fa-triangle-exclamation with-margin-right-12\" color=\"accent\"></mat-icon>\n<span class=\"ngssm-notification-error-message\">{{message}}</span>\n","import { Component, ChangeDetectionStrategy, Inject } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { MAT_SNACK_BAR_DATA } from '@angular/material/snack-bar';\nimport { MatIconModule } from '@angular/material/icon';\n\n@Component({\n selector: 'ngssm-notification-success',\n standalone: true,\n imports: [CommonModule, MatIconModule],\n templateUrl: './ngssm-notification-success.component.html',\n styleUrls: ['./ngssm-notification-success.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class NgssmNotificationSuccessComponent {\n constructor(@Inject(MAT_SNACK_BAR_DATA) public message: string) {}\n}\n","<mat-icon class=\"fa-solid fa-check with-margin-right-12 ngssm-notification-success-icon\" color=\"primary\"></mat-icon>\n<span class=\"ngssm-notification-success-message\">{{message}}</span>\n\n","import { Injectable } from '@angular/core';\nimport { MatSnackBar } from '@angular/material/snack-bar';\n\nimport { NgssmNotificationErrorComponent } from './ngssm-notification-error/ngssm-notification-error.component';\nimport { NgssmNotificationSuccessComponent } from './ngssm-notification-success/ngssm-notification-success.component';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class NgssmNotifierService {\n constructor(private matSnackBar: MatSnackBar) {}\n\n public notifyError(message: string): void {\n this.matSnackBar.openFromComponent(NgssmNotificationErrorComponent, {\n panelClass: 'ngssm-notification-panel',\n data: message\n });\n }\n\n public notifySuccess(message: string): void {\n this.matSnackBar.openFromComponent(NgssmNotificationSuccessComponent, {\n panelClass: 'ngssm-notification-panel',\n data: message\n });\n }\n}\n","import { InjectionToken } from '@angular/core';\n\nexport interface RegexValidationResult {\n isValid: boolean;\n error?: string;\n}\n\nexport interface RegexEditorValidator {\n validatePattern: (pattern: string) => RegexValidationResult;\n isMatch: (pattern: string, testString: string) => boolean;\n}\n\nexport const NGSSM_REGEX_EDITOR_VALIDATOR = new InjectionToken<RegexEditorValidator>('NGSSM_NGSSM_REGEX_EDITOR_VALIDATORREDUCER');\n\nexport const defaultRegexEditorValidator: RegexEditorValidator = {\n validatePattern: (pattern: string) => {\n try {\n const regex = new RegExp(pattern);\n if (regex.test('')) {\n return { isValid: true };\n }\n } catch (error: any) {\n return { isValid: false, error: error.message } as any;\n }\n\n return { isValid: true };\n },\n isMatch: (pattern: string, testString: string) => {\n try {\n const regex = new RegExp(pattern);\n if (regex.test(testString)) {\n return true;\n }\n } catch (error: any) {\n return false;\n }\n\n return false;\n }\n};\n","import { Component, ChangeDetectionStrategy, EventEmitter, Output, Input, Inject, Optional } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { AbstractControl, FormControl, ReactiveFormsModule, ValidationErrors, Validators } from '@angular/forms';\nimport { MatCardModule } from '@angular/material/card';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { MatInputModule } from '@angular/material/input';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatIconModule } from '@angular/material/icon';\nimport { BehaviorSubject, combineLatest, Observable } from 'rxjs';\n\nimport { useDefaultErrorStateMatcher } from '../../default-error-state-matcher';\nimport { defaultRegexEditorValidator, NGSSM_REGEX_EDITOR_VALIDATOR, RegexEditorValidator } from '../regex-editor-validator';\n\n@Component({\n selector: 'ngssm-regex-editor',\n standalone: true,\n imports: [CommonModule, ReactiveFormsModule, MatCardModule, MatFormFieldModule, MatInputModule, MatButtonModule, MatIconModule],\n providers: [useDefaultErrorStateMatcher],\n templateUrl: './ngssm-regex-editor.component.html',\n styleUrls: ['./ngssm-regex-editor.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class NgssmRegexEditorComponent {\n private readonly regexValidator: RegexEditorValidator;\n private readonly _isRegexValid$ = new BehaviorSubject<boolean | null>(null);\n\n public readonly regexControl: FormControl<string | null>;\n public readonly testStringControl = new FormControl<string>('');\n\n @Output() closeEditor = new EventEmitter<string | undefined>();\n\n constructor(@Inject(NGSSM_REGEX_EDITOR_VALIDATOR) @Optional() validator?: RegexEditorValidator) {\n this.regexValidator = validator ?? defaultRegexEditorValidator;\n this.regexControl = new FormControl<string | null>(null, [Validators.required, (c) => this.validatedRegex(c)]);\n combineLatest([this.regexControl.valueChanges, this.testStringControl.valueChanges, this.regexControl.statusChanges]).subscribe(\n (values) => {\n if (this.regexControl.invalid || (values[1] ?? '').length === 0) {\n this._isRegexValid$.next(null);\n return;\n }\n\n const isMatch = this.regexValidator.isMatch(values[0] ?? '', values[1] ?? '');\n this._isRegexValid$.next(isMatch);\n }\n );\n }\n\n @Input() set regex(value: string | undefined | null) {\n this.regexControl.setValue(value ?? null);\n }\n\n public get isRegexValid$(): Observable<boolean | null> {\n return this._isRegexValid$.asObservable();\n }\n\n public cancel(): void {\n this.closeEditor.emit();\n }\n\n public submit(): void {\n this.closeEditor.emit(this.regexControl.value ?? '');\n }\n\n private validatedRegex(control: AbstractControl): ValidationErrors | null {\n const result = this.regexValidator.validatePattern(control.value);\n if (result.isValid) {\n return null;\n }\n\n return {\n regex: result.error\n };\n }\n}\n","<mat-card class=\"flex-column-stretch fxFlex\">\n <mat-card-header>\n <mat-card-title>Regex Editor</mat-card-title>\n </mat-card-header>\n <mat-card-content class=\"flex-column-stretch fxFlex\">\n <mat-form-field class=\"with-margin-top-8\">\n <mat-label>Regular expression</mat-label>\n <input matInput [formControl]=\"regexControl\">\n <mat-error *ngIf=\"regexControl.errors?.['regex']\">\n {{regexControl.errors?.['regex']}}\n </mat-error>\n </mat-form-field>\n <div class=\"flex-row-center\">\n <mat-form-field class=\"fxFlex\">\n <mat-label>Test string</mat-label>\n <input matInput [formControl]=\"testStringControl\">\n </mat-form-field>\n <mat-icon class=\"fa-solid fa-check success with-margin-left-12\"\n *ngIf=\"(isRegexValid$ | async) === true\"></mat-icon>\n <mat-icon class=\"fa-solid fa-xmark failure with-margin-left-12\"\n *ngIf=\"(isRegexValid$ | async) === false\"></mat-icon>\n </div>\n </mat-card-content>\n <mat-card-actions class=\"flex-row-center\">\n <span class=\"fxFlex\"></span>\n <button mat-button (click)=\"cancel()\" id=\"cancelButton\">Cancel</button>\n <button mat-stroked-button color=\"primary\"\n [disabled]=\"regexControl.invalid || ((isRegexValid$ | async) === false)\" (click)=\"submit()\"\n id=\"submitButton\">\n Submit\n </button>\n </mat-card-actions>\n</mat-card>","import { Component, ChangeDetectionStrategy, Input } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { MatIconModule } from '@angular/material/icon';\nimport { OverlayModule } from '@angular/cdk/overlay';\nimport { MatButtonModule } from '@angular/material/button';\nimport { BehaviorSubject, Observable } from 'rxjs';\n\nimport { NgssmRegexEditorComponent } from '../ngssm-regex-editor/ngssm-regex-editor.component';\n\n@Component({\n selector: 'ngssm-regex-editor-toggle',\n standalone: true,\n imports: [CommonModule, MatIconModule, MatButtonModule, OverlayModule, NgssmRegexEditorComponent],\n templateUrl: './ngssm-regex-editor-toggle.component.html',\n styleUrls: ['./ngssm-regex-editor-toggle.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class NgssmRegexEditorToggleComponent {\n private readonly _isOpen$ = new BehaviorSubject<boolean>(false);\n private readonly _isDisabled$ = new BehaviorSubject<boolean>(false);\n\n public regexValue: string | undefined | null;\n\n @Input() public inputElement: HTMLInputElement | undefined;\n @Input() set disabled(value: boolean) {\n this._isDisabled$.next(value);\n }\n\n public get isOpen$(): Observable<boolean> {\n return this._isOpen$.asObservable();\n }\n\n public get isDisabled$(): Observable<boolean> {\n return this._isDisabled$.asObservable();\n }\n\n public openEditor(event: MouseEvent): void {\n if (this._isDisabled$.getValue()) {\n return;\n }\n\n event.stopPropagation();\n this.regexValue = this.inputElement?.value;\n this._isOpen$.next(true);\n }\n\n public closeEditor(regex: string | undefined): void {\n this._isOpen$.next(false);\n if (regex !== undefined && this.inputElement) {\n this.inputElement.value = regex;\n this.inputElement.dispatchEvent(new Event('input', { bubbles: true }));\n }\n }\n}\n","<button mat-icon-button (click)=\"openEditor($event)\" [disabled]=\"isDisabled$ | async\" color=\"primary\" id=\"toggleButton\">\n <mat-icon class=\"fa-solid fa-up-right-from-square ngssm-regex-editor-toggle-icon\" cdkOverlayOrigin\n #trigger=\"cdkOverlayOrigin\"></mat-icon>\n</button>\n\n<ng-template cdkConnectedOverlay [cdkConnectedOverlayOrigin]=\"trigger\"\n [cdkConnectedOverlayOpen]=\"(isOpen$ | async) === true\">\n <ngssm-regex-editor (closeEditor)=\"closeEditor($event)\" [regex]=\"regexValue\"></ngssm-regex-editor>\n</ng-template>","/*\n * Public API Surface of ngssm-toolkit\n */\n\nexport * from './lib/ngssm-toolkit.module';\nexport * from './lib/material';\nexport * from './lib/overlay';\nexport * from './lib/default-error-state-matcher';\nexport * from './lib/not-found.component';\nexport * from './lib/file-picker';\nexport * from './lib/notification';\nexport * from './lib/regex-editor';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1","i3","i2","i3.FileSizePipe","i7","i4"],"mappings":"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"}
1
+ {"version":3,"file":"ngssm-toolkit.mjs","sources":["../../../projects/ngssm-toolkit/src/lib/material/material-imports.module.ts","../../../projects/ngssm-toolkit/src/lib/not-found.component.ts","../../../projects/ngssm-toolkit/src/lib/overlay/message-overlay.component.ts","../../../projects/ngssm-toolkit/src/lib/overlay/component-overlay.directive.ts","../../../projects/ngssm-toolkit/src/lib/overlay/empty-overlay.component.ts","../../../projects/ngssm-toolkit/src/lib/overlay/ngssm-overlay-builder.ts","../../../projects/ngssm-toolkit/src/lib/file-picker/file-size.pipe.ts","../../../projects/ngssm-toolkit/src/lib/file-picker/file-picker.component.ts","../../../projects/ngssm-toolkit/src/lib/file-picker/file-picker.component.html","../../../projects/ngssm-toolkit/src/lib/ngssm-toolkit.module.ts","../../../projects/ngssm-toolkit/src/lib/default-error-state-matcher.ts","../../../projects/ngssm-toolkit/src/lib/notification/ngssm-notification-error/ngssm-notification-error.component.ts","../../../projects/ngssm-toolkit/src/lib/notification/ngssm-notification-error/ngssm-notification-error.component.html","../../../projects/ngssm-toolkit/src/lib/notification/ngssm-notification-success/ngssm-notification-success.component.ts","../../../projects/ngssm-toolkit/src/lib/notification/ngssm-notification-success/ngssm-notification-success.component.html","../../../projects/ngssm-toolkit/src/lib/notification/ngssm-notifier.service.ts","../../../projects/ngssm-toolkit/src/lib/regex-editor/regex-editor-validator.ts","../../../projects/ngssm-toolkit/src/lib/regex-editor/ngssm-regex-editor/ngssm-regex-editor.component.ts","../../../projects/ngssm-toolkit/src/lib/regex-editor/ngssm-regex-editor/ngssm-regex-editor.component.html","../../../projects/ngssm-toolkit/src/lib/regex-editor/ngssm-regex-editor-toggle/ngssm-regex-editor-toggle.component.ts","../../../projects/ngssm-toolkit/src/lib/regex-editor/ngssm-regex-editor-toggle/ngssm-regex-editor-toggle.component.html","../../../projects/ngssm-toolkit/src/lib/confirmation-dialog/ngssm-confirmation-dialog/ngssm-confirmation-dialog.component.ts","../../../projects/ngssm-toolkit/src/lib/confirmation-dialog/ngssm-confirmation-dialog/ngssm-confirmation-dialog.component.html","../../../projects/ngssm-toolkit/src/lib/confirmation-dialog/ngssm-confirmation-dialog.service.ts","../../../projects/ngssm-toolkit/src/lib/object-helpers.ts","../../../projects/ngssm-toolkit/src/public-api.ts","../../../projects/ngssm-toolkit/src/ngssm-toolkit.ts"],"sourcesContent":["import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { MatToolbarModule } from '@angular/material/toolbar';\nimport { MatSidenavModule } from '@angular/material/sidenav';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatListModule } from '@angular/material/list';\nimport { MatDividerModule } from '@angular/material/divider';\nimport { MatCardModule } from '@angular/material/card';\nimport { MatSlideToggleModule } from '@angular/material/slide-toggle';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { MatRadioModule } from '@angular/material/radio';\nimport { MatSelectModule } from '@angular/material/select';\nimport { MatInputModule } from '@angular/material/input';\nimport { MatTableModule } from '@angular/material/table';\nimport { MatPaginatorModule } from '@angular/material/paginator';\nimport { MatDialogModule } from '@angular/material/dialog';\nimport { MatProgressSpinnerModule } from '@angular/material/progress-spinner';\nimport { MatCheckboxModule } from '@angular/material/checkbox';\nimport { MatTooltipModule } from '@angular/material/tooltip';\nimport { MatBadgeModule } from '@angular/material/badge';\nimport { MatSnackBarModule } from '@angular/material/snack-bar';\nimport { MatTabsModule } from '@angular/material/tabs';\nimport { MatExpansionModule } from '@angular/material/expansion';\n\nconst modules = [\n CommonModule,\n MatToolbarModule,\n MatSidenavModule,\n MatButtonModule,\n MatIconModule,\n MatListModule,\n MatDividerModule,\n MatCardModule,\n MatSlideToggleModule,\n MatFormFieldModule,\n MatRadioModule,\n MatSelectModule,\n MatInputModule,\n MatTableModule,\n MatPaginatorModule,\n MatDialogModule,\n MatProgressSpinnerModule,\n MatCheckboxModule,\n MatTooltipModule,\n MatBadgeModule,\n MatSnackBarModule,\n MatTabsModule,\n MatExpansionModule\n];\n\n@NgModule({\n declarations: [],\n imports: modules,\n exports: modules\n})\nexport class MaterialImportsModule {}\n","import { Component } from '@angular/core';\n\n@Component({\n selector: 'ngssm-not-found',\n template: ` <img src=\"./assets/404-not-found.png\" /> `,\n styles: [\n `\n :host {\n display: flex;\n flex-direction: row;\n flex: 1;\n align-items: center;\n justify-content: center;\n }\n `\n ]\n})\nexport class NotFoundComponent {}\n","import { Component } from '@angular/core';\nimport { Observable, Subject } from 'rxjs';\n\n@Component({\n selector: 'ngssm-message-overlay',\n template: `\n <mat-card>\n <mat-card-content class=\"message-container\">\n <mat-spinner></mat-spinner>\n {{ message$ | async }}\n </mat-card-content>\n </mat-card>\n `,\n styles: [\n `\n .message-container {\n display: flex !important;\n flex-direction: column;\n align-items: center;\n }\n `\n ]\n})\nexport class MessageOverlayComponent {\n public message$: Observable<string> = new Subject<string>();\n}\n","import {\n Overlay,\n OverlayKeyboardDispatcher,\n OverlayOutsideClickDispatcher,\n OverlayPositionBuilder,\n OverlayRef,\n ScrollStrategyOptions\n} from '@angular/cdk/overlay';\nimport { DOCUMENT } from '@angular/common';\nimport {\n AfterViewInit,\n ComponentFactoryResolver,\n Directive,\n ElementRef,\n Inject,\n Injector,\n Input,\n NgZone,\n OnDestroy,\n Renderer2,\n TemplateRef,\n ViewContainerRef\n} from '@angular/core';\nimport { Location } from '@angular/common';\nimport { Directionality } from '@angular/cdk/bidi';\nimport { ComponentPortal, ComponentType, TemplatePortal } from '@angular/cdk/portal';\nimport { BehaviorSubject, Subject, takeUntil } from 'rxjs';\n\nimport { MessageOverlayComponent } from './message-overlay.component';\n\n@Directive({\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: '[displayOverlay]'\n})\nexport class ComponentOverlayDirective implements OnDestroy, AfterViewInit {\n private readonly unSubscribeAll$ = new Subject<void>();\n private readonly _displayOverlay$ = new BehaviorSubject<boolean>(false);\n private readonly _overlayMessage$ = new BehaviorSubject<string>('Please wait');\n\n private overlay: Overlay;\n private overlayRef: OverlayRef;\n\n constructor(\n private elementRef: ElementRef,\n private viewContainerRef: ViewContainerRef,\n @Inject(DOCUMENT) document: any,\n scrollStrategies: ScrollStrategyOptions,\n // eslint-disable-next-line deprecation/deprecation\n componentFactoryResolver: ComponentFactoryResolver,\n positionBuilder: OverlayPositionBuilder,\n keyboardDispatcher: OverlayKeyboardDispatcher,\n injector: Injector,\n ngZone: NgZone,\n directionality: Directionality,\n location: Location,\n outsideClickDispatcher: OverlayOutsideClickDispatcher,\n renderer: Renderer2\n ) {\n renderer.setStyle(this.elementRef.nativeElement, 'position', 'relative');\n const container = {\n getContainerElement: () => this.elementRef.nativeElement\n };\n\n this.overlay = new Overlay(\n scrollStrategies,\n container as any,\n componentFactoryResolver,\n positionBuilder,\n keyboardDispatcher,\n injector,\n ngZone,\n document,\n directionality,\n location,\n outsideClickDispatcher\n );\n\n this.overlayRef = this.overlay.create({\n positionStrategy: this.overlay.position().global().centerHorizontally().centerVertically(),\n hasBackdrop: true\n });\n }\n\n // eslint-disable-next-line @angular-eslint/no-input-rename\n @Input('overlayTemplate') overLayTemplate: TemplateRef<any> | undefined;\n\n @Input() overlayComponent: ComponentType<any> | undefined;\n\n @Input() public set overlayMessage(value: string) {\n this._overlayMessage$.next(value);\n }\n\n @Input('displayOverlay') public set dispalyOverlay(value: boolean) {\n this._displayOverlay$.next(value);\n }\n\n public ngAfterViewInit(): void {\n this._displayOverlay$.pipe(takeUntil(this.unSubscribeAll$)).subscribe((v) => {\n if (v) {\n this.showOverlay();\n } else {\n this.hideOverlay();\n }\n });\n }\n\n public ngOnDestroy(): void {\n this.unSubscribeAll$.next();\n this.unSubscribeAll$.complete();\n if (this._displayOverlay$.getValue()) {\n this.overlayRef.detach();\n }\n }\n\n private showOverlay(): void {\n if (this.overLayTemplate) {\n this.overlayRef.attach(new TemplatePortal(this.overLayTemplate, this.viewContainerRef));\n } else if (this.overlayComponent) {\n const ref = this.overlayRef.attach(new ComponentPortal(this.overlayComponent));\n if (this.overlayComponent === MessageOverlayComponent) {\n ref.instance.message$ = this._overlayMessage$.asObservable();\n }\n } else {\n const ref = this.overlayRef.attach(new ComponentPortal(MessageOverlayComponent));\n ref.instance.message$ = this._overlayMessage$.asObservable();\n }\n }\n\n private hideOverlay(): void {\n this.overlayRef.detach();\n }\n}\n","import { Component } from '@angular/core';\n\n@Component({\n selector: 'ngssm-empty-overlay',\n template: ``,\n styles: []\n})\nexport class EmptyOverlayComponent {}\n","import { Directionality } from '@angular/cdk/bidi';\nimport {\n ComponentType,\n Overlay,\n OverlayKeyboardDispatcher,\n OverlayOutsideClickDispatcher,\n OverlayPositionBuilder,\n OverlayRef,\n ScrollStrategyOptions\n} from '@angular/cdk/overlay';\nimport { ComponentPortal, TemplatePortal } from '@angular/cdk/portal';\nimport { DOCUMENT, Location } from '@angular/common';\nimport {\n ComponentFactoryResolver,\n ElementRef,\n Inject,\n Injectable,\n Injector,\n NgZone,\n Renderer2,\n TemplateRef,\n ViewContainerRef\n} from '@angular/core';\nimport { BehaviorSubject } from 'rxjs';\nimport { MessageOverlayComponent } from './message-overlay.component';\n\n@Injectable()\nexport class NgssmOverlayBuilder {\n private readonly _overlayMessage$ = new BehaviorSubject<string>('Please wait');\n\n private overlay: Overlay;\n private overlayRef: OverlayRef;\n\n public overLayTemplate: TemplateRef<any> | undefined;\n public overlayComponent: ComponentType<any> | undefined;\n\n constructor(\n private elementRef: ElementRef,\n private viewContainerRef: ViewContainerRef,\n @Inject(DOCUMENT) document: any,\n scrollStrategies: ScrollStrategyOptions,\n // eslint-disable-next-line deprecation/deprecation\n componentFactoryResolver: ComponentFactoryResolver,\n positionBuilder: OverlayPositionBuilder,\n keyboardDispatcher: OverlayKeyboardDispatcher,\n injector: Injector,\n ngZone: NgZone,\n directionality: Directionality,\n location: Location,\n outsideClickDispatcher: OverlayOutsideClickDispatcher,\n renderer: Renderer2\n ) {\n renderer.setStyle(this.elementRef.nativeElement, 'position', 'relative');\n const container = {\n getContainerElement: () => this.elementRef.nativeElement\n };\n\n this.overlay = new Overlay(\n scrollStrategies,\n container as any,\n componentFactoryResolver,\n positionBuilder,\n keyboardDispatcher,\n injector,\n ngZone,\n document,\n directionality,\n location,\n outsideClickDispatcher\n );\n\n this.overlayRef = this.overlay.create({\n positionStrategy: this.overlay.position().global().centerHorizontally().centerVertically(),\n hasBackdrop: true\n });\n }\n\n public set overlayMessage(value: string) {\n this._overlayMessage$.next(value);\n }\n\n public showOverlay(): void {\n if (this.overLayTemplate) {\n this.overlayRef.attach(new TemplatePortal(this.overLayTemplate, this.viewContainerRef));\n } else if (this.overlayComponent) {\n const ref = this.overlayRef.attach(new ComponentPortal(this.overlayComponent));\n if (this.overlayComponent === MessageOverlayComponent) {\n ref.instance.message$ = this._overlayMessage$.asObservable();\n }\n } else {\n const ref = this.overlayRef.attach(new ComponentPortal(MessageOverlayComponent));\n ref.instance.message$ = this._overlayMessage$.asObservable();\n }\n }\n\n public hideOverlay(): void {\n this.overlayRef.detach();\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'fileSize'\n})\nexport class FileSizePipe implements PipeTransform {\n private readonly units = ['bytes', 'KB', 'MB', 'GB'];\n\n public transform(value: any, precision: number = 2): any {\n let bytes = +value;\n if (isNaN(bytes) || !isFinite(bytes)) {\n return '?';\n }\n\n let unit = 0;\n while (bytes >= 1024 && unit < this.units.length) {\n bytes /= 1024;\n unit++;\n }\n\n if (unit === 0) {\n return `${bytes} ${this.units[unit]}`;\n }\n\n return `${bytes.toFixed(+precision)} ${this.units[unit]}`;\n }\n}\n","import { coerceBooleanProperty } from '@angular/cdk/coercion';\nimport { Component, ElementRef, HostBinding, Input, OnDestroy, Optional, Self, ViewChild } from '@angular/core';\nimport { ControlValueAccessor, NgControl } from '@angular/forms';\nimport { MatFormFieldControl } from '@angular/material/form-field';\nimport { BehaviorSubject, Observable, Subject } from 'rxjs';\n\nexport const noop = () => {};\n\n@Component({\n selector: 'ngssm-file-picker',\n templateUrl: './file-picker.component.html',\n styleUrls: ['./file-picker.component.scss'],\n providers: [{ provide: MatFormFieldControl, useExisting: FilePickerComponent }]\n})\nexport class FilePickerComponent implements MatFormFieldControl<File>, ControlValueAccessor, OnDestroy {\n private static nextId = 0;\n\n private readonly _displayDetails$ = new BehaviorSubject<boolean>(true);\n\n private onChangeCallback: (_: any) => void = noop;\n private _required = false;\n private _disabled = false;\n\n @ViewChild('fileInput', { static: true }) fileInput: ElementRef | undefined;\n\n constructor(@Optional() @Self() public ngControl: NgControl) {\n // Replace the provider from above with this.\n if (this.ngControl != null) {\n // Setting the value accessor directly (instead of using\n // the providers) to avoid running into a circular import.\n this.ngControl.valueAccessor = this;\n }\n }\n\n @HostBinding('id') public id = `file-picker-${FilePickerComponent.nextId++}`;\n public controlType = 'file-picker';\n public placeholder: string = '';\n public focused: boolean = false;\n public stateChanges = new Subject<void>();\n public value: File | null = null;\n public autofilled?: boolean | undefined;\n public userAriaDescribedBy?: string | undefined;\n\n public get empty(): boolean {\n return this.value === null;\n }\n\n public get shouldLabelFloat(): boolean {\n return this.value !== null;\n }\n\n @Input()\n public get required(): boolean {\n return this._required;\n }\n\n public set required(value: boolean) {\n this._required = coerceBooleanProperty(value);\n this.stateChanges.next();\n }\n\n @Input()\n public get disabled(): boolean {\n return this._disabled;\n }\n\n public set disabled(value: boolean) {\n this._disabled = coerceBooleanProperty(value);\n this.stateChanges.next();\n }\n\n public get errorState(): boolean {\n return this.ngControl.invalid ?? false;\n }\n\n public get lastModificationDate(): string {\n if (this.value) {\n const date = new Date(this.value.lastModified);\n return date.toISOString();\n }\n\n return '';\n }\n\n public get displayDetails$(): Observable<boolean> {\n return this._displayDetails$.asObservable();\n }\n\n @Input()\n public set displayDetails(value: boolean) {\n this._displayDetails$.next(value);\n }\n\n public setDescribedByIds(ids: string[]): void {}\n\n public setDisabledState(isDisabled: boolean): void {\n this.disabled = isDisabled;\n }\n\n public onContainerClick(event: MouseEvent): void {\n if (!this.disabled) {\n this.fileInput?.nativeElement.click();\n }\n }\n\n public writeValue(obj: any): void {\n if (obj !== undefined && obj !== null) {\n this.updateValue(obj);\n }\n }\n\n public registerOnChange(fn: any): void {\n this.onChangeCallback = fn;\n }\n\n public registerOnTouched(fn: any): void {}\n\n public ngOnDestroy(): void {\n this.stateChanges.complete();\n }\n\n public onDrop(event: any): void {\n this.preventAndStop(event);\n if (!this.disabled) {\n this.updateValue(event.dataTransfer.files);\n }\n }\n\n public onDragOver(event: any): void {\n this.preventAndStop(event);\n }\n\n public onDragLeave(event: any): void {\n this.preventAndStop(event);\n }\n\n public onFileSelected(event: any): void {\n this.updateValue(this.fileInput?.nativeElement.files);\n }\n\n private preventAndStop(event: any): void {\n event.stopPropagation();\n event.preventDefault();\n }\n\n private updateValue(files: FileList): void {\n if (files.length > 0) {\n this.value = files[0];\n this.stateChanges.next();\n this.onChangeCallback(this.value);\n }\n }\n}\n","<div class=\"file-picker-container\" (drop)=\"onDrop($event)\" (dragover)=\"onDragOver($event)\"\n (dragleave)=\"onDragLeave($event)\" [ngClass]=\"{'picker-disabled': disabled}\">\n <input type=\"file\" class=\"hidden\" #fileInput (change)=\"onFileSelected($event)\">\n <div *ngIf=\"empty === false\" class=\"flex-row-center\">\n <div class=\"file-picker-file-name\">\n {{value?.name}}\n </div>\n <div class=\"file-picker-file-information\" *ngIf=\"(displayDetails$ | async) === true\">\n {{value?.size | fileSize}}, last modified on {{lastModificationDate}}\n </div>\n </div>\n</div>","import { NgModule } from '@angular/core';\nimport { RouterModule } from '@angular/router';\n\nimport { MaterialImportsModule } from './material';\nimport { NotFoundComponent } from './not-found.component';\nimport { ComponentOverlayDirective, EmptyOverlayComponent, MessageOverlayComponent } from './overlay';\nimport { FilePickerComponent } from './file-picker/file-picker.component';\nimport { FileSizePipe } from './file-picker/file-size.pipe';\n\n@NgModule({\n declarations: [\n ComponentOverlayDirective,\n MessageOverlayComponent,\n EmptyOverlayComponent,\n NotFoundComponent,\n FilePickerComponent,\n FileSizePipe\n ],\n imports: [RouterModule, MaterialImportsModule],\n exports: [ComponentOverlayDirective, FilePickerComponent, FileSizePipe]\n})\nexport class NgssmToolkitModule {}\n","import { Provider } from '@angular/core';\nimport { FormControl, FormGroupDirective, NgForm } from '@angular/forms';\nimport { ErrorStateMatcher } from '@angular/material/core';\n\nexport class DefaultErrorStateMatcher implements ErrorStateMatcher {\n isErrorState(control: FormControl | null, form: FormGroupDirective | NgForm | null): boolean {\n return !!(control && control.invalid);\n }\n}\n\nexport const useDefaultErrorStateMatcher: Provider = { provide: ErrorStateMatcher, useClass: DefaultErrorStateMatcher };\n","import { Component, ChangeDetectionStrategy, Inject } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MAT_SNACK_BAR_DATA } from '@angular/material/snack-bar';\n\n@Component({\n selector: 'ngssm-notification-error',\n standalone: true,\n imports: [CommonModule, MatIconModule],\n templateUrl: './ngssm-notification-error.component.html',\n styleUrls: ['./ngssm-notification-error.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class NgssmNotificationErrorComponent {\n constructor(@Inject(MAT_SNACK_BAR_DATA) public message: string) {}\n}\n","<mat-icon class=\"fa-solid fa-triangle-exclamation with-margin-right-12\" color=\"accent\"></mat-icon>\n<span class=\"ngssm-notification-error-message\">{{message}}</span>\n","import { Component, ChangeDetectionStrategy, Inject } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { MAT_SNACK_BAR_DATA } from '@angular/material/snack-bar';\nimport { MatIconModule } from '@angular/material/icon';\n\n@Component({\n selector: 'ngssm-notification-success',\n standalone: true,\n imports: [CommonModule, MatIconModule],\n templateUrl: './ngssm-notification-success.component.html',\n styleUrls: ['./ngssm-notification-success.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class NgssmNotificationSuccessComponent {\n constructor(@Inject(MAT_SNACK_BAR_DATA) public message: string) {}\n}\n","<mat-icon class=\"fa-solid fa-check with-margin-right-12 ngssm-notification-success-icon\" color=\"primary\"></mat-icon>\n<span class=\"ngssm-notification-success-message\">{{message}}</span>\n\n","import { Injectable } from '@angular/core';\nimport { MatSnackBar } from '@angular/material/snack-bar';\n\nimport { NgssmNotificationErrorComponent } from './ngssm-notification-error/ngssm-notification-error.component';\nimport { NgssmNotificationSuccessComponent } from './ngssm-notification-success/ngssm-notification-success.component';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class NgssmNotifierService {\n constructor(private matSnackBar: MatSnackBar) {}\n\n public notifyError(message: string): void {\n this.matSnackBar.openFromComponent(NgssmNotificationErrorComponent, {\n panelClass: 'ngssm-notification-panel',\n data: message\n });\n }\n\n public notifySuccess(message: string): void {\n this.matSnackBar.openFromComponent(NgssmNotificationSuccessComponent, {\n panelClass: 'ngssm-notification-panel',\n data: message\n });\n }\n}\n","import { InjectionToken } from '@angular/core';\n\nexport interface RegexValidationResult {\n isValid: boolean;\n error?: string;\n}\n\nexport interface RegexEditorValidator {\n validatePattern: (pattern: string) => RegexValidationResult;\n isMatch: (pattern: string, testString: string) => boolean;\n}\n\nexport const NGSSM_REGEX_EDITOR_VALIDATOR = new InjectionToken<RegexEditorValidator>('NGSSM_NGSSM_REGEX_EDITOR_VALIDATORREDUCER');\n\nexport const defaultRegexEditorValidator: RegexEditorValidator = {\n validatePattern: (pattern: string) => {\n try {\n const regex = new RegExp(pattern);\n if (regex.test('')) {\n return { isValid: true };\n }\n } catch (error: any) {\n return { isValid: false, error: error.message } as any;\n }\n\n return { isValid: true };\n },\n isMatch: (pattern: string, testString: string) => {\n try {\n const regex = new RegExp(pattern);\n if (regex.test(testString)) {\n return true;\n }\n } catch (error: any) {\n return false;\n }\n\n return false;\n }\n};\n","import { Component, ChangeDetectionStrategy, EventEmitter, Output, Input, Inject, Optional } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { AbstractControl, FormControl, ReactiveFormsModule, ValidationErrors, Validators } from '@angular/forms';\nimport { MatCardModule } from '@angular/material/card';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { MatInputModule } from '@angular/material/input';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatIconModule } from '@angular/material/icon';\nimport { BehaviorSubject, combineLatest, Observable } from 'rxjs';\n\nimport { useDefaultErrorStateMatcher } from '../../default-error-state-matcher';\nimport { defaultRegexEditorValidator, NGSSM_REGEX_EDITOR_VALIDATOR, RegexEditorValidator } from '../regex-editor-validator';\n\n@Component({\n selector: 'ngssm-regex-editor',\n standalone: true,\n imports: [CommonModule, ReactiveFormsModule, MatCardModule, MatFormFieldModule, MatInputModule, MatButtonModule, MatIconModule],\n providers: [useDefaultErrorStateMatcher],\n templateUrl: './ngssm-regex-editor.component.html',\n styleUrls: ['./ngssm-regex-editor.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class NgssmRegexEditorComponent {\n private readonly regexValidator: RegexEditorValidator;\n private readonly _isRegexValid$ = new BehaviorSubject<boolean | null>(null);\n\n public readonly regexControl: FormControl<string | null>;\n public readonly testStringControl = new FormControl<string>('');\n\n @Output() closeEditor = new EventEmitter<string | undefined>();\n\n constructor(@Inject(NGSSM_REGEX_EDITOR_VALIDATOR) @Optional() validator?: RegexEditorValidator) {\n this.regexValidator = validator ?? defaultRegexEditorValidator;\n this.regexControl = new FormControl<string | null>(null, [Validators.required, (c) => this.validatedRegex(c)]);\n combineLatest([this.regexControl.valueChanges, this.testStringControl.valueChanges, this.regexControl.statusChanges]).subscribe(\n (values) => {\n if (this.regexControl.invalid || (values[1] ?? '').length === 0) {\n this._isRegexValid$.next(null);\n return;\n }\n\n const isMatch = this.regexValidator.isMatch(values[0] ?? '', values[1] ?? '');\n this._isRegexValid$.next(isMatch);\n }\n );\n }\n\n @Input() set regex(value: string | undefined | null) {\n this.regexControl.setValue(value ?? null);\n }\n\n public get isRegexValid$(): Observable<boolean | null> {\n return this._isRegexValid$.asObservable();\n }\n\n public cancel(): void {\n this.closeEditor.emit();\n }\n\n public submit(): void {\n this.closeEditor.emit(this.regexControl.value ?? '');\n }\n\n private validatedRegex(control: AbstractControl): ValidationErrors | null {\n const result = this.regexValidator.validatePattern(control.value);\n if (result.isValid) {\n return null;\n }\n\n return {\n regex: result.error\n };\n }\n}\n","<mat-card class=\"flex-column-stretch fxFlex\">\n <mat-card-header>\n <mat-card-title>Regex Editor</mat-card-title>\n </mat-card-header>\n <mat-card-content class=\"flex-column-stretch fxFlex\">\n <mat-form-field class=\"with-margin-top-8\">\n <mat-label>Regular expression</mat-label>\n <input matInput [formControl]=\"regexControl\">\n <mat-error *ngIf=\"regexControl.errors?.['regex']\">\n {{regexControl.errors?.['regex']}}\n </mat-error>\n </mat-form-field>\n <div class=\"flex-row-center\">\n <mat-form-field class=\"fxFlex\">\n <mat-label>Test string</mat-label>\n <input matInput [formControl]=\"testStringControl\">\n </mat-form-field>\n <mat-icon class=\"fa-solid fa-check success with-margin-left-12\"\n *ngIf=\"(isRegexValid$ | async) === true\"></mat-icon>\n <mat-icon class=\"fa-solid fa-xmark failure with-margin-left-12\"\n *ngIf=\"(isRegexValid$ | async) === false\"></mat-icon>\n </div>\n </mat-card-content>\n <mat-card-actions class=\"flex-row-center\">\n <span class=\"fxFlex\"></span>\n <button mat-button (click)=\"cancel()\" id=\"cancelButton\">Cancel</button>\n <button mat-stroked-button color=\"primary\"\n [disabled]=\"regexControl.invalid || ((isRegexValid$ | async) === false)\" (click)=\"submit()\"\n id=\"submitButton\">\n Submit\n </button>\n </mat-card-actions>\n</mat-card>","import { Component, ChangeDetectionStrategy, Input } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { MatIconModule } from '@angular/material/icon';\nimport { OverlayModule } from '@angular/cdk/overlay';\nimport { MatButtonModule } from '@angular/material/button';\nimport { BehaviorSubject, Observable } from 'rxjs';\n\nimport { NgssmRegexEditorComponent } from '../ngssm-regex-editor/ngssm-regex-editor.component';\n\n@Component({\n selector: 'ngssm-regex-editor-toggle',\n standalone: true,\n imports: [CommonModule, MatIconModule, MatButtonModule, OverlayModule, NgssmRegexEditorComponent],\n templateUrl: './ngssm-regex-editor-toggle.component.html',\n styleUrls: ['./ngssm-regex-editor-toggle.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class NgssmRegexEditorToggleComponent {\n private readonly _isOpen$ = new BehaviorSubject<boolean>(false);\n private readonly _isDisabled$ = new BehaviorSubject<boolean>(false);\n\n public regexValue: string | undefined | null;\n\n @Input() public inputElement: HTMLInputElement | undefined;\n @Input() set disabled(value: boolean) {\n this._isDisabled$.next(value);\n }\n\n public get isOpen$(): Observable<boolean> {\n return this._isOpen$.asObservable();\n }\n\n public get isDisabled$(): Observable<boolean> {\n return this._isDisabled$.asObservable();\n }\n\n public openEditor(event: MouseEvent): void {\n if (this._isDisabled$.getValue()) {\n return;\n }\n\n event.stopPropagation();\n this.regexValue = this.inputElement?.value;\n this._isOpen$.next(true);\n }\n\n public closeEditor(regex: string | undefined): void {\n this._isOpen$.next(false);\n if (regex !== undefined && this.inputElement) {\n this.inputElement.value = regex;\n this.inputElement.dispatchEvent(new Event('input', { bubbles: true }));\n }\n }\n}\n","<button mat-icon-button (click)=\"openEditor($event)\" [disabled]=\"isDisabled$ | async\" color=\"primary\" id=\"toggleButton\">\n <mat-icon class=\"fa-solid fa-up-right-from-square ngssm-regex-editor-toggle-icon\" cdkOverlayOrigin\n #trigger=\"cdkOverlayOrigin\"></mat-icon>\n</button>\n\n<ng-template cdkConnectedOverlay [cdkConnectedOverlayOrigin]=\"trigger\"\n [cdkConnectedOverlayOpen]=\"(isOpen$ | async) === true\">\n <ngssm-regex-editor (closeEditor)=\"closeEditor($event)\" [regex]=\"regexValue\"></ngssm-regex-editor>\n</ng-template>","import { Component, ChangeDetectionStrategy, Inject } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { MatDialogModule, MAT_DIALOG_DATA } from '@angular/material/dialog';\nimport { MatButtonModule } from '@angular/material/button';\n\nimport { NgSsmComponent, Store } from 'ngssm-store';\n\nimport { NgssmConfirmationDialogConfig } from '../ngssm-confirmation-dialog-config';\n\n@Component({\n selector: 'ngssm-confirmation-dialog',\n standalone: true,\n imports: [CommonModule, MatDialogModule, MatButtonModule],\n templateUrl: './ngssm-confirmation-dialog.component.html',\n styleUrls: ['./ngssm-confirmation-dialog.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class NgssmConfirmationDialogComponent extends NgSsmComponent {\n constructor(store: Store, @Inject(MAT_DIALOG_DATA) public data: NgssmConfirmationDialogConfig) {\n super(store);\n }\n}\n","<mat-dialog-content class=\"flex-column-stretch fxFlex message-container\">\n{{data.message}}\n</mat-dialog-content>\n<mat-dialog-actions class=\"flex-row-center\">\n <span class=\"fxFlex\"></span>\n <button mat-button [matDialogClose]=\"data.cancelLabel\" id=\"cancelButton\">{{data.cancelLabel}}</button>\n <button mat-raised-button [color]=\"data.submitButtonColor\" [matDialogClose]=\"data.submitLabel\" id=\"submitButton\">\n {{data.submitLabel}}\n </button>\n</mat-dialog-actions>\n","import { Injectable } from '@angular/core';\nimport { MatDialog } from '@angular/material/dialog';\nimport { Observable } from 'rxjs';\n\nimport { NgssmConfirmationDialogConfig } from './ngssm-confirmation-dialog-config';\nimport { NgssmConfirmationDialogComponent } from './ngssm-confirmation-dialog/ngssm-confirmation-dialog.component';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class NgssmConfirmationDialogService {\n constructor(private matDialog: MatDialog) {}\n\n public displayConfirmationDialog(config: NgssmConfirmationDialogConfig): Observable<string> {\n return this.matDialog\n .open(NgssmConfirmationDialogComponent, {\n disableClose: true,\n data: config,\n minWidth: config.minWidth,\n minHeight: config.minHeight\n })\n .afterClosed();\n }\n}\n","export const isNullOrUndefined = <T = any>(value: T): boolean => value === null || value === undefined;\n","/*\n * Public API Surface of ngssm-toolkit\n */\n\nexport * from './lib/ngssm-toolkit.module';\nexport * from './lib/material';\nexport * from './lib/overlay';\nexport * from './lib/default-error-state-matcher';\nexport * from './lib/not-found.component';\nexport * from './lib/file-picker';\nexport * from './lib/notification';\nexport * from './lib/regex-editor';\nexport * from './lib/confirmation-dialog';\nexport * from './lib/object-helpers';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1","i3","i2","i3.FileSizePipe","i7","i4"],"mappings":"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"}
@@ -5,7 +5,7 @@ import * as i3$1 from '@angular/common';
5
5
  import { CommonModule, DOCUMENT } from '@angular/common';
6
6
  import { MatToolbarModule } from '@angular/material/toolbar';
7
7
  import { MatSidenavModule } from '@angular/material/sidenav';
8
- import * as i6 from '@angular/material/button';
8
+ import * as i3$2 from '@angular/material/button';
9
9
  import { MatButtonModule } from '@angular/material/button';
10
10
  import * as i1$1 from '@angular/material/icon';
11
11
  import { MatIconModule } from '@angular/material/icon';
@@ -22,7 +22,8 @@ import * as i5 from '@angular/material/input';
22
22
  import { MatInputModule } from '@angular/material/input';
23
23
  import { MatTableModule } from '@angular/material/table';
24
24
  import { MatPaginatorModule } from '@angular/material/paginator';
25
- import { MatDialogModule } from '@angular/material/dialog';
25
+ import * as i2$3 from '@angular/material/dialog';
26
+ import { MatDialogModule, MAT_DIALOG_DATA } from '@angular/material/dialog';
26
27
  import * as i2 from '@angular/material/progress-spinner';
27
28
  import { MatProgressSpinnerModule } from '@angular/material/progress-spinner';
28
29
  import { MatCheckboxModule } from '@angular/material/checkbox';
@@ -41,6 +42,8 @@ import { coerceBooleanProperty } from '@angular/cdk/coercion';
41
42
  import * as i2$2 from '@angular/forms';
42
43
  import { FormControl, Validators, ReactiveFormsModule } from '@angular/forms';
43
44
  import { ErrorStateMatcher } from '@angular/material/core';
45
+ import * as i1$3 from 'ngssm-store';
46
+ import { NgSsmComponent } from 'ngssm-store';
44
47
 
45
48
  const modules = [
46
49
  CommonModule,
@@ -637,7 +640,7 @@ class NgssmRegexEditorComponent {
637
640
  }
638
641
  }
639
642
  NgssmRegexEditorComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.5", ngImport: i0, type: NgssmRegexEditorComponent, deps: [{ token: NGSSM_REGEX_EDITOR_VALIDATOR, optional: true }], target: i0.ɵɵFactoryTarget.Component });
640
- NgssmRegexEditorComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.1.5", type: NgssmRegexEditorComponent, isStandalone: true, selector: "ngssm-regex-editor", inputs: { regex: "regex" }, outputs: { closeEditor: "closeEditor" }, providers: [useDefaultErrorStateMatcher], ngImport: i0, template: "<mat-card class=\"flex-column-stretch fxFlex\">\n <mat-card-header>\n <mat-card-title>Regex Editor</mat-card-title>\n </mat-card-header>\n <mat-card-content class=\"flex-column-stretch fxFlex\">\n <mat-form-field class=\"with-margin-top-8\">\n <mat-label>Regular expression</mat-label>\n <input matInput [formControl]=\"regexControl\">\n <mat-error *ngIf=\"regexControl.errors?.['regex']\">\n {{regexControl.errors?.['regex']}}\n </mat-error>\n </mat-form-field>\n <div class=\"flex-row-center\">\n <mat-form-field class=\"fxFlex\">\n <mat-label>Test string</mat-label>\n <input matInput [formControl]=\"testStringControl\">\n </mat-form-field>\n <mat-icon class=\"fa-solid fa-check success with-margin-left-12\"\n *ngIf=\"(isRegexValid$ | async) === true\"></mat-icon>\n <mat-icon class=\"fa-solid fa-xmark failure with-margin-left-12\"\n *ngIf=\"(isRegexValid$ | async) === false\"></mat-icon>\n </div>\n </mat-card-content>\n <mat-card-actions class=\"flex-row-center\">\n <span class=\"fxFlex\"></span>\n <button mat-button (click)=\"cancel()\" id=\"cancelButton\">Cancel</button>\n <button mat-stroked-button color=\"primary\"\n [disabled]=\"regexControl.invalid || ((isRegexValid$ | async) === false)\" (click)=\"submit()\"\n id=\"submitButton\">\n Submit\n </button>\n </mat-card-actions>\n</mat-card>", styles: [":host{width:600px;height:250px;display:flex;flex-direction:column}:host .success{color:green}:host .failure{color:red}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i3$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i3$1.AsyncPipe, name: "async" }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i2$2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2$2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2$2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "ngmodule", type: MatCardModule }, { kind: "component", type: i3.MatCard, selector: "mat-card", inputs: ["appearance"], exportAs: ["matCard"] }, { kind: "directive", type: i3.MatCardActions, selector: "mat-card-actions", inputs: ["align"], exportAs: ["matCardActions"] }, { kind: "directive", type: i3.MatCardContent, selector: "mat-card-content" }, { kind: "component", type: i3.MatCardHeader, selector: "mat-card-header" }, { kind: "directive", type: i3.MatCardTitle, selector: "mat-card-title, [mat-card-title], [matCardTitle]" }, { kind: "ngmodule", type: MatFormFieldModule }, { kind: "component", type: i4.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i4.MatLabel, selector: "mat-label" }, { kind: "directive", type: i4.MatError, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "ngmodule", type: MatInputModule }, { kind: "directive", type: i5.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i6.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i1$1.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
643
+ NgssmRegexEditorComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.1.5", type: NgssmRegexEditorComponent, isStandalone: true, selector: "ngssm-regex-editor", inputs: { regex: "regex" }, outputs: { closeEditor: "closeEditor" }, providers: [useDefaultErrorStateMatcher], ngImport: i0, template: "<mat-card class=\"flex-column-stretch fxFlex\">\n <mat-card-header>\n <mat-card-title>Regex Editor</mat-card-title>\n </mat-card-header>\n <mat-card-content class=\"flex-column-stretch fxFlex\">\n <mat-form-field class=\"with-margin-top-8\">\n <mat-label>Regular expression</mat-label>\n <input matInput [formControl]=\"regexControl\">\n <mat-error *ngIf=\"regexControl.errors?.['regex']\">\n {{regexControl.errors?.['regex']}}\n </mat-error>\n </mat-form-field>\n <div class=\"flex-row-center\">\n <mat-form-field class=\"fxFlex\">\n <mat-label>Test string</mat-label>\n <input matInput [formControl]=\"testStringControl\">\n </mat-form-field>\n <mat-icon class=\"fa-solid fa-check success with-margin-left-12\"\n *ngIf=\"(isRegexValid$ | async) === true\"></mat-icon>\n <mat-icon class=\"fa-solid fa-xmark failure with-margin-left-12\"\n *ngIf=\"(isRegexValid$ | async) === false\"></mat-icon>\n </div>\n </mat-card-content>\n <mat-card-actions class=\"flex-row-center\">\n <span class=\"fxFlex\"></span>\n <button mat-button (click)=\"cancel()\" id=\"cancelButton\">Cancel</button>\n <button mat-stroked-button color=\"primary\"\n [disabled]=\"regexControl.invalid || ((isRegexValid$ | async) === false)\" (click)=\"submit()\"\n id=\"submitButton\">\n Submit\n </button>\n </mat-card-actions>\n</mat-card>", styles: [":host{width:600px;height:250px;display:flex;flex-direction:column}:host .success{color:green}:host .failure{color:red}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i3$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i3$1.AsyncPipe, name: "async" }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i2$2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2$2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2$2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "ngmodule", type: MatCardModule }, { kind: "component", type: i3.MatCard, selector: "mat-card", inputs: ["appearance"], exportAs: ["matCard"] }, { kind: "directive", type: i3.MatCardActions, selector: "mat-card-actions", inputs: ["align"], exportAs: ["matCardActions"] }, { kind: "directive", type: i3.MatCardContent, selector: "mat-card-content" }, { kind: "component", type: i3.MatCardHeader, selector: "mat-card-header" }, { kind: "directive", type: i3.MatCardTitle, selector: "mat-card-title, [mat-card-title], [matCardTitle]" }, { kind: "ngmodule", type: MatFormFieldModule }, { kind: "component", type: i4.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i4.MatLabel, selector: "mat-label" }, { kind: "directive", type: i4.MatError, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "ngmodule", type: MatInputModule }, { kind: "directive", type: i5.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i3$2.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i1$1.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
641
644
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.5", ngImport: i0, type: NgssmRegexEditorComponent, decorators: [{
642
645
  type: Component,
643
646
  args: [{ selector: 'ngssm-regex-editor', standalone: true, imports: [CommonModule, ReactiveFormsModule, MatCardModule, MatFormFieldModule, MatInputModule, MatButtonModule, MatIconModule], providers: [useDefaultErrorStateMatcher], changeDetection: ChangeDetectionStrategy.OnPush, template: "<mat-card class=\"flex-column-stretch fxFlex\">\n <mat-card-header>\n <mat-card-title>Regex Editor</mat-card-title>\n </mat-card-header>\n <mat-card-content class=\"flex-column-stretch fxFlex\">\n <mat-form-field class=\"with-margin-top-8\">\n <mat-label>Regular expression</mat-label>\n <input matInput [formControl]=\"regexControl\">\n <mat-error *ngIf=\"regexControl.errors?.['regex']\">\n {{regexControl.errors?.['regex']}}\n </mat-error>\n </mat-form-field>\n <div class=\"flex-row-center\">\n <mat-form-field class=\"fxFlex\">\n <mat-label>Test string</mat-label>\n <input matInput [formControl]=\"testStringControl\">\n </mat-form-field>\n <mat-icon class=\"fa-solid fa-check success with-margin-left-12\"\n *ngIf=\"(isRegexValid$ | async) === true\"></mat-icon>\n <mat-icon class=\"fa-solid fa-xmark failure with-margin-left-12\"\n *ngIf=\"(isRegexValid$ | async) === false\"></mat-icon>\n </div>\n </mat-card-content>\n <mat-card-actions class=\"flex-row-center\">\n <span class=\"fxFlex\"></span>\n <button mat-button (click)=\"cancel()\" id=\"cancelButton\">Cancel</button>\n <button mat-stroked-button color=\"primary\"\n [disabled]=\"regexControl.invalid || ((isRegexValid$ | async) === false)\" (click)=\"submit()\"\n id=\"submitButton\">\n Submit\n </button>\n </mat-card-actions>\n</mat-card>", styles: [":host{width:600px;height:250px;display:flex;flex-direction:column}:host .success{color:green}:host .failure{color:red}\n"] }]
@@ -683,7 +686,7 @@ class NgssmRegexEditorToggleComponent {
683
686
  }
684
687
  }
685
688
  NgssmRegexEditorToggleComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.5", ngImport: i0, type: NgssmRegexEditorToggleComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
686
- NgssmRegexEditorToggleComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.1.5", type: NgssmRegexEditorToggleComponent, isStandalone: true, selector: "ngssm-regex-editor-toggle", inputs: { inputElement: "inputElement", disabled: "disabled" }, ngImport: i0, template: "<button mat-icon-button (click)=\"openEditor($event)\" [disabled]=\"isDisabled$ | async\" color=\"primary\" id=\"toggleButton\">\n <mat-icon class=\"fa-solid fa-up-right-from-square ngssm-regex-editor-toggle-icon\" cdkOverlayOrigin\n #trigger=\"cdkOverlayOrigin\"></mat-icon>\n</button>\n\n<ng-template cdkConnectedOverlay [cdkConnectedOverlayOrigin]=\"trigger\"\n [cdkConnectedOverlayOpen]=\"(isOpen$ | async) === true\">\n <ngssm-regex-editor (closeEditor)=\"closeEditor($event)\" [regex]=\"regexValue\"></ngssm-regex-editor>\n</ng-template>", styles: [":host{display:flex;flex-direction:row;margin-right:4px}:host .ngssm-regex-editor-toggle-icon{font-size:20px}:host .ngssm-regex-editor-toggle-icon:hover{cursor:pointer}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "pipe", type: i3$1.AsyncPipe, name: "async" }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i1$1.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i6.MatIconButton, selector: "button[mat-icon-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "ngmodule", type: OverlayModule }, { kind: "directive", type: i1.CdkConnectedOverlay, selector: "[cdk-connected-overlay], [connected-overlay], [cdkConnectedOverlay]", inputs: ["cdkConnectedOverlayOrigin", "cdkConnectedOverlayPositions", "cdkConnectedOverlayPositionStrategy", "cdkConnectedOverlayOffsetX", "cdkConnectedOverlayOffsetY", "cdkConnectedOverlayWidth", "cdkConnectedOverlayHeight", "cdkConnectedOverlayMinWidth", "cdkConnectedOverlayMinHeight", "cdkConnectedOverlayBackdropClass", "cdkConnectedOverlayPanelClass", "cdkConnectedOverlayViewportMargin", "cdkConnectedOverlayScrollStrategy", "cdkConnectedOverlayOpen", "cdkConnectedOverlayDisableClose", "cdkConnectedOverlayTransformOriginOn", "cdkConnectedOverlayHasBackdrop", "cdkConnectedOverlayLockPosition", "cdkConnectedOverlayFlexibleDimensions", "cdkConnectedOverlayGrowAfterOpen", "cdkConnectedOverlayPush"], outputs: ["backdropClick", "positionChange", "attach", "detach", "overlayKeydown", "overlayOutsideClick"], exportAs: ["cdkConnectedOverlay"] }, { kind: "directive", type: i1.CdkOverlayOrigin, selector: "[cdk-overlay-origin], [overlay-origin], [cdkOverlayOrigin]", exportAs: ["cdkOverlayOrigin"] }, { kind: "component", type: NgssmRegexEditorComponent, selector: "ngssm-regex-editor", inputs: ["regex"], outputs: ["closeEditor"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
689
+ NgssmRegexEditorToggleComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.1.5", type: NgssmRegexEditorToggleComponent, isStandalone: true, selector: "ngssm-regex-editor-toggle", inputs: { inputElement: "inputElement", disabled: "disabled" }, ngImport: i0, template: "<button mat-icon-button (click)=\"openEditor($event)\" [disabled]=\"isDisabled$ | async\" color=\"primary\" id=\"toggleButton\">\n <mat-icon class=\"fa-solid fa-up-right-from-square ngssm-regex-editor-toggle-icon\" cdkOverlayOrigin\n #trigger=\"cdkOverlayOrigin\"></mat-icon>\n</button>\n\n<ng-template cdkConnectedOverlay [cdkConnectedOverlayOrigin]=\"trigger\"\n [cdkConnectedOverlayOpen]=\"(isOpen$ | async) === true\">\n <ngssm-regex-editor (closeEditor)=\"closeEditor($event)\" [regex]=\"regexValue\"></ngssm-regex-editor>\n</ng-template>", styles: [":host{display:flex;flex-direction:row;margin-right:4px}:host .ngssm-regex-editor-toggle-icon{font-size:20px}:host .ngssm-regex-editor-toggle-icon:hover{cursor:pointer}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "pipe", type: i3$1.AsyncPipe, name: "async" }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i1$1.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i3$2.MatIconButton, selector: "button[mat-icon-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "ngmodule", type: OverlayModule }, { kind: "directive", type: i1.CdkConnectedOverlay, selector: "[cdk-connected-overlay], [connected-overlay], [cdkConnectedOverlay]", inputs: ["cdkConnectedOverlayOrigin", "cdkConnectedOverlayPositions", "cdkConnectedOverlayPositionStrategy", "cdkConnectedOverlayOffsetX", "cdkConnectedOverlayOffsetY", "cdkConnectedOverlayWidth", "cdkConnectedOverlayHeight", "cdkConnectedOverlayMinWidth", "cdkConnectedOverlayMinHeight", "cdkConnectedOverlayBackdropClass", "cdkConnectedOverlayPanelClass", "cdkConnectedOverlayViewportMargin", "cdkConnectedOverlayScrollStrategy", "cdkConnectedOverlayOpen", "cdkConnectedOverlayDisableClose", "cdkConnectedOverlayTransformOriginOn", "cdkConnectedOverlayHasBackdrop", "cdkConnectedOverlayLockPosition", "cdkConnectedOverlayFlexibleDimensions", "cdkConnectedOverlayGrowAfterOpen", "cdkConnectedOverlayPush"], outputs: ["backdropClick", "positionChange", "attach", "detach", "overlayKeydown", "overlayOutsideClick"], exportAs: ["cdkConnectedOverlay"] }, { kind: "directive", type: i1.CdkOverlayOrigin, selector: "[cdk-overlay-origin], [overlay-origin], [cdkOverlayOrigin]", exportAs: ["cdkOverlayOrigin"] }, { kind: "component", type: NgssmRegexEditorComponent, selector: "ngssm-regex-editor", inputs: ["regex"], outputs: ["closeEditor"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
687
690
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.5", ngImport: i0, type: NgssmRegexEditorToggleComponent, decorators: [{
688
691
  type: Component,
689
692
  args: [{ selector: 'ngssm-regex-editor-toggle', standalone: true, imports: [CommonModule, MatIconModule, MatButtonModule, OverlayModule, NgssmRegexEditorComponent], changeDetection: ChangeDetectionStrategy.OnPush, template: "<button mat-icon-button (click)=\"openEditor($event)\" [disabled]=\"isDisabled$ | async\" color=\"primary\" id=\"toggleButton\">\n <mat-icon class=\"fa-solid fa-up-right-from-square ngssm-regex-editor-toggle-icon\" cdkOverlayOrigin\n #trigger=\"cdkOverlayOrigin\"></mat-icon>\n</button>\n\n<ng-template cdkConnectedOverlay [cdkConnectedOverlayOrigin]=\"trigger\"\n [cdkConnectedOverlayOpen]=\"(isOpen$ | async) === true\">\n <ngssm-regex-editor (closeEditor)=\"closeEditor($event)\" [regex]=\"regexValue\"></ngssm-regex-editor>\n</ng-template>", styles: [":host{display:flex;flex-direction:row;margin-right:4px}:host .ngssm-regex-editor-toggle-icon{font-size:20px}:host .ngssm-regex-editor-toggle-icon:hover{cursor:pointer}\n"] }]
@@ -693,6 +696,48 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.5", ngImpor
693
696
  type: Input
694
697
  }] } });
695
698
 
699
+ class NgssmConfirmationDialogComponent extends NgSsmComponent {
700
+ constructor(store, data) {
701
+ super(store);
702
+ this.data = data;
703
+ }
704
+ }
705
+ NgssmConfirmationDialogComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.5", ngImport: i0, type: NgssmConfirmationDialogComponent, deps: [{ token: i1$3.Store }, { token: MAT_DIALOG_DATA }], target: i0.ɵɵFactoryTarget.Component });
706
+ NgssmConfirmationDialogComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.1.5", type: NgssmConfirmationDialogComponent, isStandalone: true, selector: "ngssm-confirmation-dialog", usesInheritance: true, ngImport: i0, template: "<mat-dialog-content class=\"flex-column-stretch fxFlex message-container\">\n{{data.message}}\n</mat-dialog-content>\n<mat-dialog-actions class=\"flex-row-center\">\n <span class=\"fxFlex\"></span>\n <button mat-button [matDialogClose]=\"data.cancelLabel\" id=\"cancelButton\">{{data.cancelLabel}}</button>\n <button mat-raised-button [color]=\"data.submitButtonColor\" [matDialogClose]=\"data.submitLabel\" id=\"submitButton\">\n {{data.submitLabel}}\n </button>\n</mat-dialog-actions>\n", styles: [":host .message-container{font-weight:700}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: MatDialogModule }, { kind: "directive", type: i2$3.MatDialogClose, selector: "[mat-dialog-close], [matDialogClose]", inputs: ["aria-label", "type", "mat-dialog-close", "matDialogClose"], exportAs: ["matDialogClose"] }, { kind: "directive", type: i2$3.MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { kind: "directive", type: i2$3.MatDialogActions, selector: "[mat-dialog-actions], mat-dialog-actions, [matDialogActions]", inputs: ["align"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i3$2.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
707
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.5", ngImport: i0, type: NgssmConfirmationDialogComponent, decorators: [{
708
+ type: Component,
709
+ args: [{ selector: 'ngssm-confirmation-dialog', standalone: true, imports: [CommonModule, MatDialogModule, MatButtonModule], changeDetection: ChangeDetectionStrategy.OnPush, template: "<mat-dialog-content class=\"flex-column-stretch fxFlex message-container\">\n{{data.message}}\n</mat-dialog-content>\n<mat-dialog-actions class=\"flex-row-center\">\n <span class=\"fxFlex\"></span>\n <button mat-button [matDialogClose]=\"data.cancelLabel\" id=\"cancelButton\">{{data.cancelLabel}}</button>\n <button mat-raised-button [color]=\"data.submitButtonColor\" [matDialogClose]=\"data.submitLabel\" id=\"submitButton\">\n {{data.submitLabel}}\n </button>\n</mat-dialog-actions>\n", styles: [":host .message-container{font-weight:700}\n"] }]
710
+ }], ctorParameters: function () { return [{ type: i1$3.Store }, { type: undefined, decorators: [{
711
+ type: Inject,
712
+ args: [MAT_DIALOG_DATA]
713
+ }] }]; } });
714
+
715
+ class NgssmConfirmationDialogService {
716
+ constructor(matDialog) {
717
+ this.matDialog = matDialog;
718
+ }
719
+ displayConfirmationDialog(config) {
720
+ return this.matDialog
721
+ .open(NgssmConfirmationDialogComponent, {
722
+ disableClose: true,
723
+ data: config,
724
+ minWidth: config.minWidth,
725
+ minHeight: config.minHeight
726
+ })
727
+ .afterClosed();
728
+ }
729
+ }
730
+ NgssmConfirmationDialogService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.5", ngImport: i0, type: NgssmConfirmationDialogService, deps: [{ token: i2$3.MatDialog }], target: i0.ɵɵFactoryTarget.Injectable });
731
+ NgssmConfirmationDialogService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.1.5", ngImport: i0, type: NgssmConfirmationDialogService, providedIn: 'root' });
732
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.5", ngImport: i0, type: NgssmConfirmationDialogService, decorators: [{
733
+ type: Injectable,
734
+ args: [{
735
+ providedIn: 'root'
736
+ }]
737
+ }], ctorParameters: function () { return [{ type: i2$3.MatDialog }]; } });
738
+
739
+ const isNullOrUndefined = (value) => value === null || value === undefined;
740
+
696
741
  /*
697
742
  * Public API Surface of ngssm-toolkit
698
743
  */
@@ -701,5 +746,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.5", ngImpor
701
746
  * Generated bundle index. Do not edit.
702
747
  */
703
748
 
704
- export { ComponentOverlayDirective, DefaultErrorStateMatcher, EmptyOverlayComponent, FilePickerComponent, FileSizePipe, MaterialImportsModule, MessageOverlayComponent, NGSSM_REGEX_EDITOR_VALIDATOR, NgssmNotificationErrorComponent, NgssmNotificationSuccessComponent, NgssmNotifierService, NgssmOverlayBuilder, NgssmRegexEditorComponent, NgssmRegexEditorToggleComponent, NgssmToolkitModule, NotFoundComponent, defaultRegexEditorValidator, noop, useDefaultErrorStateMatcher };
749
+ export { ComponentOverlayDirective, DefaultErrorStateMatcher, EmptyOverlayComponent, FilePickerComponent, FileSizePipe, MaterialImportsModule, MessageOverlayComponent, NGSSM_REGEX_EDITOR_VALIDATOR, NgssmConfirmationDialogComponent, NgssmConfirmationDialogService, NgssmNotificationErrorComponent, NgssmNotificationSuccessComponent, NgssmNotifierService, NgssmOverlayBuilder, NgssmRegexEditorComponent, NgssmRegexEditorToggleComponent, NgssmToolkitModule, NotFoundComponent, defaultRegexEditorValidator, isNullOrUndefined, noop, useDefaultErrorStateMatcher };
705
750
  //# sourceMappingURL=ngssm-toolkit.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"ngssm-toolkit.mjs","sources":["../../../projects/ngssm-toolkit/src/lib/material/material-imports.module.ts","../../../projects/ngssm-toolkit/src/lib/not-found.component.ts","../../../projects/ngssm-toolkit/src/lib/overlay/message-overlay.component.ts","../../../projects/ngssm-toolkit/src/lib/overlay/component-overlay.directive.ts","../../../projects/ngssm-toolkit/src/lib/overlay/empty-overlay.component.ts","../../../projects/ngssm-toolkit/src/lib/overlay/ngssm-overlay-builder.ts","../../../projects/ngssm-toolkit/src/lib/file-picker/file-size.pipe.ts","../../../projects/ngssm-toolkit/src/lib/file-picker/file-picker.component.ts","../../../projects/ngssm-toolkit/src/lib/file-picker/file-picker.component.html","../../../projects/ngssm-toolkit/src/lib/ngssm-toolkit.module.ts","../../../projects/ngssm-toolkit/src/lib/default-error-state-matcher.ts","../../../projects/ngssm-toolkit/src/lib/notification/ngssm-notification-error/ngssm-notification-error.component.ts","../../../projects/ngssm-toolkit/src/lib/notification/ngssm-notification-error/ngssm-notification-error.component.html","../../../projects/ngssm-toolkit/src/lib/notification/ngssm-notification-success/ngssm-notification-success.component.ts","../../../projects/ngssm-toolkit/src/lib/notification/ngssm-notification-success/ngssm-notification-success.component.html","../../../projects/ngssm-toolkit/src/lib/notification/ngssm-notifier.service.ts","../../../projects/ngssm-toolkit/src/lib/regex-editor/regex-editor-validator.ts","../../../projects/ngssm-toolkit/src/lib/regex-editor/ngssm-regex-editor/ngssm-regex-editor.component.ts","../../../projects/ngssm-toolkit/src/lib/regex-editor/ngssm-regex-editor/ngssm-regex-editor.component.html","../../../projects/ngssm-toolkit/src/lib/regex-editor/ngssm-regex-editor-toggle/ngssm-regex-editor-toggle.component.ts","../../../projects/ngssm-toolkit/src/lib/regex-editor/ngssm-regex-editor-toggle/ngssm-regex-editor-toggle.component.html","../../../projects/ngssm-toolkit/src/public-api.ts","../../../projects/ngssm-toolkit/src/ngssm-toolkit.ts"],"sourcesContent":["import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { MatToolbarModule } from '@angular/material/toolbar';\nimport { MatSidenavModule } from '@angular/material/sidenav';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatListModule } from '@angular/material/list';\nimport { MatDividerModule } from '@angular/material/divider';\nimport { MatCardModule } from '@angular/material/card';\nimport { MatSlideToggleModule } from '@angular/material/slide-toggle';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { MatRadioModule } from '@angular/material/radio';\nimport { MatSelectModule } from '@angular/material/select';\nimport { MatInputModule } from '@angular/material/input';\nimport { MatTableModule } from '@angular/material/table';\nimport { MatPaginatorModule } from '@angular/material/paginator';\nimport { MatDialogModule } from '@angular/material/dialog';\nimport { MatProgressSpinnerModule } from '@angular/material/progress-spinner';\nimport { MatCheckboxModule } from '@angular/material/checkbox';\nimport { MatTooltipModule } from '@angular/material/tooltip';\nimport { MatBadgeModule } from '@angular/material/badge';\nimport { MatSnackBarModule } from '@angular/material/snack-bar';\nimport { MatTabsModule } from '@angular/material/tabs';\nimport { MatExpansionModule } from '@angular/material/expansion';\n\nconst modules = [\n CommonModule,\n MatToolbarModule,\n MatSidenavModule,\n MatButtonModule,\n MatIconModule,\n MatListModule,\n MatDividerModule,\n MatCardModule,\n MatSlideToggleModule,\n MatFormFieldModule,\n MatRadioModule,\n MatSelectModule,\n MatInputModule,\n MatTableModule,\n MatPaginatorModule,\n MatDialogModule,\n MatProgressSpinnerModule,\n MatCheckboxModule,\n MatTooltipModule,\n MatBadgeModule,\n MatSnackBarModule,\n MatTabsModule,\n MatExpansionModule\n];\n\n@NgModule({\n declarations: [],\n imports: modules,\n exports: modules\n})\nexport class MaterialImportsModule {}\n","import { Component } from '@angular/core';\n\n@Component({\n selector: 'ngssm-not-found',\n template: ` <img src=\"./assets/404-not-found.png\" /> `,\n styles: [\n `\n :host {\n display: flex;\n flex-direction: row;\n flex: 1;\n align-items: center;\n justify-content: center;\n }\n `\n ]\n})\nexport class NotFoundComponent {}\n","import { Component } from '@angular/core';\nimport { Observable, Subject } from 'rxjs';\n\n@Component({\n selector: 'ngssm-message-overlay',\n template: `\n <mat-card>\n <mat-card-content class=\"message-container\">\n <mat-spinner></mat-spinner>\n {{ message$ | async }}\n </mat-card-content>\n </mat-card>\n `,\n styles: [\n `\n .message-container {\n display: flex !important;\n flex-direction: column;\n align-items: center;\n }\n `\n ]\n})\nexport class MessageOverlayComponent {\n public message$: Observable<string> = new Subject<string>();\n}\n","import {\n Overlay,\n OverlayKeyboardDispatcher,\n OverlayOutsideClickDispatcher,\n OverlayPositionBuilder,\n OverlayRef,\n ScrollStrategyOptions\n} from '@angular/cdk/overlay';\nimport { DOCUMENT } from '@angular/common';\nimport {\n AfterViewInit,\n ComponentFactoryResolver,\n Directive,\n ElementRef,\n Inject,\n Injector,\n Input,\n NgZone,\n OnDestroy,\n Renderer2,\n TemplateRef,\n ViewContainerRef\n} from '@angular/core';\nimport { Location } from '@angular/common';\nimport { Directionality } from '@angular/cdk/bidi';\nimport { ComponentPortal, ComponentType, TemplatePortal } from '@angular/cdk/portal';\nimport { BehaviorSubject, Subject, takeUntil } from 'rxjs';\n\nimport { MessageOverlayComponent } from './message-overlay.component';\n\n@Directive({\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: '[displayOverlay]'\n})\nexport class ComponentOverlayDirective implements OnDestroy, AfterViewInit {\n private readonly unSubscribeAll$ = new Subject<void>();\n private readonly _displayOverlay$ = new BehaviorSubject<boolean>(false);\n private readonly _overlayMessage$ = new BehaviorSubject<string>('Please wait');\n\n private overlay: Overlay;\n private overlayRef: OverlayRef;\n\n constructor(\n private elementRef: ElementRef,\n private viewContainerRef: ViewContainerRef,\n @Inject(DOCUMENT) document: any,\n scrollStrategies: ScrollStrategyOptions,\n // eslint-disable-next-line deprecation/deprecation\n componentFactoryResolver: ComponentFactoryResolver,\n positionBuilder: OverlayPositionBuilder,\n keyboardDispatcher: OverlayKeyboardDispatcher,\n injector: Injector,\n ngZone: NgZone,\n directionality: Directionality,\n location: Location,\n outsideClickDispatcher: OverlayOutsideClickDispatcher,\n renderer: Renderer2\n ) {\n renderer.setStyle(this.elementRef.nativeElement, 'position', 'relative');\n const container = {\n getContainerElement: () => this.elementRef.nativeElement\n };\n\n this.overlay = new Overlay(\n scrollStrategies,\n container as any,\n componentFactoryResolver,\n positionBuilder,\n keyboardDispatcher,\n injector,\n ngZone,\n document,\n directionality,\n location,\n outsideClickDispatcher\n );\n\n this.overlayRef = this.overlay.create({\n positionStrategy: this.overlay.position().global().centerHorizontally().centerVertically(),\n hasBackdrop: true\n });\n }\n\n // eslint-disable-next-line @angular-eslint/no-input-rename\n @Input('overlayTemplate') overLayTemplate: TemplateRef<any> | undefined;\n\n @Input() overlayComponent: ComponentType<any> | undefined;\n\n @Input() public set overlayMessage(value: string) {\n this._overlayMessage$.next(value);\n }\n\n @Input('displayOverlay') public set dispalyOverlay(value: boolean) {\n this._displayOverlay$.next(value);\n }\n\n public ngAfterViewInit(): void {\n this._displayOverlay$.pipe(takeUntil(this.unSubscribeAll$)).subscribe((v) => {\n if (v) {\n this.showOverlay();\n } else {\n this.hideOverlay();\n }\n });\n }\n\n public ngOnDestroy(): void {\n this.unSubscribeAll$.next();\n this.unSubscribeAll$.complete();\n if (this._displayOverlay$.getValue()) {\n this.overlayRef.detach();\n }\n }\n\n private showOverlay(): void {\n if (this.overLayTemplate) {\n this.overlayRef.attach(new TemplatePortal(this.overLayTemplate, this.viewContainerRef));\n } else if (this.overlayComponent) {\n const ref = this.overlayRef.attach(new ComponentPortal(this.overlayComponent));\n if (this.overlayComponent === MessageOverlayComponent) {\n ref.instance.message$ = this._overlayMessage$.asObservable();\n }\n } else {\n const ref = this.overlayRef.attach(new ComponentPortal(MessageOverlayComponent));\n ref.instance.message$ = this._overlayMessage$.asObservable();\n }\n }\n\n private hideOverlay(): void {\n this.overlayRef.detach();\n }\n}\n","import { Component } from '@angular/core';\n\n@Component({\n selector: 'ngssm-empty-overlay',\n template: ``,\n styles: []\n})\nexport class EmptyOverlayComponent {}\n","import { Directionality } from '@angular/cdk/bidi';\nimport {\n ComponentType,\n Overlay,\n OverlayKeyboardDispatcher,\n OverlayOutsideClickDispatcher,\n OverlayPositionBuilder,\n OverlayRef,\n ScrollStrategyOptions\n} from '@angular/cdk/overlay';\nimport { ComponentPortal, TemplatePortal } from '@angular/cdk/portal';\nimport { DOCUMENT, Location } from '@angular/common';\nimport {\n ComponentFactoryResolver,\n ElementRef,\n Inject,\n Injectable,\n Injector,\n NgZone,\n Renderer2,\n TemplateRef,\n ViewContainerRef\n} from '@angular/core';\nimport { BehaviorSubject } from 'rxjs';\nimport { MessageOverlayComponent } from './message-overlay.component';\n\n@Injectable()\nexport class NgssmOverlayBuilder {\n private readonly _overlayMessage$ = new BehaviorSubject<string>('Please wait');\n\n private overlay: Overlay;\n private overlayRef: OverlayRef;\n\n public overLayTemplate: TemplateRef<any> | undefined;\n public overlayComponent: ComponentType<any> | undefined;\n\n constructor(\n private elementRef: ElementRef,\n private viewContainerRef: ViewContainerRef,\n @Inject(DOCUMENT) document: any,\n scrollStrategies: ScrollStrategyOptions,\n // eslint-disable-next-line deprecation/deprecation\n componentFactoryResolver: ComponentFactoryResolver,\n positionBuilder: OverlayPositionBuilder,\n keyboardDispatcher: OverlayKeyboardDispatcher,\n injector: Injector,\n ngZone: NgZone,\n directionality: Directionality,\n location: Location,\n outsideClickDispatcher: OverlayOutsideClickDispatcher,\n renderer: Renderer2\n ) {\n renderer.setStyle(this.elementRef.nativeElement, 'position', 'relative');\n const container = {\n getContainerElement: () => this.elementRef.nativeElement\n };\n\n this.overlay = new Overlay(\n scrollStrategies,\n container as any,\n componentFactoryResolver,\n positionBuilder,\n keyboardDispatcher,\n injector,\n ngZone,\n document,\n directionality,\n location,\n outsideClickDispatcher\n );\n\n this.overlayRef = this.overlay.create({\n positionStrategy: this.overlay.position().global().centerHorizontally().centerVertically(),\n hasBackdrop: true\n });\n }\n\n public set overlayMessage(value: string) {\n this._overlayMessage$.next(value);\n }\n\n public showOverlay(): void {\n if (this.overLayTemplate) {\n this.overlayRef.attach(new TemplatePortal(this.overLayTemplate, this.viewContainerRef));\n } else if (this.overlayComponent) {\n const ref = this.overlayRef.attach(new ComponentPortal(this.overlayComponent));\n if (this.overlayComponent === MessageOverlayComponent) {\n ref.instance.message$ = this._overlayMessage$.asObservable();\n }\n } else {\n const ref = this.overlayRef.attach(new ComponentPortal(MessageOverlayComponent));\n ref.instance.message$ = this._overlayMessage$.asObservable();\n }\n }\n\n public hideOverlay(): void {\n this.overlayRef.detach();\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'fileSize'\n})\nexport class FileSizePipe implements PipeTransform {\n private readonly units = ['bytes', 'KB', 'MB', 'GB'];\n\n public transform(value: any, precision: number = 2): any {\n let bytes = +value;\n if (isNaN(bytes) || !isFinite(bytes)) {\n return '?';\n }\n\n let unit = 0;\n while (bytes >= 1024 && unit < this.units.length) {\n bytes /= 1024;\n unit++;\n }\n\n if (unit === 0) {\n return `${bytes} ${this.units[unit]}`;\n }\n\n return `${bytes.toFixed(+precision)} ${this.units[unit]}`;\n }\n}\n","import { coerceBooleanProperty } from '@angular/cdk/coercion';\nimport { Component, ElementRef, HostBinding, Input, OnDestroy, Optional, Self, ViewChild } from '@angular/core';\nimport { ControlValueAccessor, NgControl } from '@angular/forms';\nimport { MatFormFieldControl } from '@angular/material/form-field';\nimport { BehaviorSubject, Observable, Subject } from 'rxjs';\n\nexport const noop = () => {};\n\n@Component({\n selector: 'ngssm-file-picker',\n templateUrl: './file-picker.component.html',\n styleUrls: ['./file-picker.component.scss'],\n providers: [{ provide: MatFormFieldControl, useExisting: FilePickerComponent }]\n})\nexport class FilePickerComponent implements MatFormFieldControl<File>, ControlValueAccessor, OnDestroy {\n private static nextId = 0;\n\n private readonly _displayDetails$ = new BehaviorSubject<boolean>(true);\n\n private onChangeCallback: (_: any) => void = noop;\n private _required = false;\n private _disabled = false;\n\n @ViewChild('fileInput', { static: true }) fileInput: ElementRef | undefined;\n\n constructor(@Optional() @Self() public ngControl: NgControl) {\n // Replace the provider from above with this.\n if (this.ngControl != null) {\n // Setting the value accessor directly (instead of using\n // the providers) to avoid running into a circular import.\n this.ngControl.valueAccessor = this;\n }\n }\n\n @HostBinding('id') public id = `file-picker-${FilePickerComponent.nextId++}`;\n public controlType = 'file-picker';\n public placeholder: string = '';\n public focused: boolean = false;\n public stateChanges = new Subject<void>();\n public value: File | null = null;\n public autofilled?: boolean | undefined;\n public userAriaDescribedBy?: string | undefined;\n\n public get empty(): boolean {\n return this.value === null;\n }\n\n public get shouldLabelFloat(): boolean {\n return this.value !== null;\n }\n\n @Input()\n public get required(): boolean {\n return this._required;\n }\n\n public set required(value: boolean) {\n this._required = coerceBooleanProperty(value);\n this.stateChanges.next();\n }\n\n @Input()\n public get disabled(): boolean {\n return this._disabled;\n }\n\n public set disabled(value: boolean) {\n this._disabled = coerceBooleanProperty(value);\n this.stateChanges.next();\n }\n\n public get errorState(): boolean {\n return this.ngControl.invalid ?? false;\n }\n\n public get lastModificationDate(): string {\n if (this.value) {\n const date = new Date(this.value.lastModified);\n return date.toISOString();\n }\n\n return '';\n }\n\n public get displayDetails$(): Observable<boolean> {\n return this._displayDetails$.asObservable();\n }\n\n @Input()\n public set displayDetails(value: boolean) {\n this._displayDetails$.next(value);\n }\n\n public setDescribedByIds(ids: string[]): void {}\n\n public setDisabledState(isDisabled: boolean): void {\n this.disabled = isDisabled;\n }\n\n public onContainerClick(event: MouseEvent): void {\n if (!this.disabled) {\n this.fileInput?.nativeElement.click();\n }\n }\n\n public writeValue(obj: any): void {\n if (obj !== undefined && obj !== null) {\n this.updateValue(obj);\n }\n }\n\n public registerOnChange(fn: any): void {\n this.onChangeCallback = fn;\n }\n\n public registerOnTouched(fn: any): void {}\n\n public ngOnDestroy(): void {\n this.stateChanges.complete();\n }\n\n public onDrop(event: any): void {\n this.preventAndStop(event);\n if (!this.disabled) {\n this.updateValue(event.dataTransfer.files);\n }\n }\n\n public onDragOver(event: any): void {\n this.preventAndStop(event);\n }\n\n public onDragLeave(event: any): void {\n this.preventAndStop(event);\n }\n\n public onFileSelected(event: any): void {\n this.updateValue(this.fileInput?.nativeElement.files);\n }\n\n private preventAndStop(event: any): void {\n event.stopPropagation();\n event.preventDefault();\n }\n\n private updateValue(files: FileList): void {\n if (files.length > 0) {\n this.value = files[0];\n this.stateChanges.next();\n this.onChangeCallback(this.value);\n }\n }\n}\n","<div class=\"file-picker-container\" (drop)=\"onDrop($event)\" (dragover)=\"onDragOver($event)\"\n (dragleave)=\"onDragLeave($event)\" [ngClass]=\"{'picker-disabled': disabled}\">\n <input type=\"file\" class=\"hidden\" #fileInput (change)=\"onFileSelected($event)\">\n <div *ngIf=\"empty === false\" class=\"flex-row-center\">\n <div class=\"file-picker-file-name\">\n {{value?.name}}\n </div>\n <div class=\"file-picker-file-information\" *ngIf=\"(displayDetails$ | async) === true\">\n {{value?.size | fileSize}}, last modified on {{lastModificationDate}}\n </div>\n </div>\n</div>","import { NgModule } from '@angular/core';\nimport { RouterModule } from '@angular/router';\n\nimport { MaterialImportsModule } from './material';\nimport { NotFoundComponent } from './not-found.component';\nimport { ComponentOverlayDirective, EmptyOverlayComponent, MessageOverlayComponent } from './overlay';\nimport { FilePickerComponent } from './file-picker/file-picker.component';\nimport { FileSizePipe } from './file-picker/file-size.pipe';\n\n@NgModule({\n declarations: [\n ComponentOverlayDirective,\n MessageOverlayComponent,\n EmptyOverlayComponent,\n NotFoundComponent,\n FilePickerComponent,\n FileSizePipe\n ],\n imports: [RouterModule, MaterialImportsModule],\n exports: [ComponentOverlayDirective, FilePickerComponent, FileSizePipe]\n})\nexport class NgssmToolkitModule {}\n","import { Provider } from '@angular/core';\nimport { FormControl, FormGroupDirective, NgForm } from '@angular/forms';\nimport { ErrorStateMatcher } from '@angular/material/core';\n\nexport class DefaultErrorStateMatcher implements ErrorStateMatcher {\n isErrorState(control: FormControl | null, form: FormGroupDirective | NgForm | null): boolean {\n return !!(control && control.invalid);\n }\n}\n\nexport const useDefaultErrorStateMatcher: Provider = { provide: ErrorStateMatcher, useClass: DefaultErrorStateMatcher };\n","import { Component, ChangeDetectionStrategy, Inject } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MAT_SNACK_BAR_DATA } from '@angular/material/snack-bar';\n\n@Component({\n selector: 'ngssm-notification-error',\n standalone: true,\n imports: [CommonModule, MatIconModule],\n templateUrl: './ngssm-notification-error.component.html',\n styleUrls: ['./ngssm-notification-error.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class NgssmNotificationErrorComponent {\n constructor(@Inject(MAT_SNACK_BAR_DATA) public message: string) {}\n}\n","<mat-icon class=\"fa-solid fa-triangle-exclamation with-margin-right-12\" color=\"accent\"></mat-icon>\n<span class=\"ngssm-notification-error-message\">{{message}}</span>\n","import { Component, ChangeDetectionStrategy, Inject } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { MAT_SNACK_BAR_DATA } from '@angular/material/snack-bar';\nimport { MatIconModule } from '@angular/material/icon';\n\n@Component({\n selector: 'ngssm-notification-success',\n standalone: true,\n imports: [CommonModule, MatIconModule],\n templateUrl: './ngssm-notification-success.component.html',\n styleUrls: ['./ngssm-notification-success.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class NgssmNotificationSuccessComponent {\n constructor(@Inject(MAT_SNACK_BAR_DATA) public message: string) {}\n}\n","<mat-icon class=\"fa-solid fa-check with-margin-right-12 ngssm-notification-success-icon\" color=\"primary\"></mat-icon>\n<span class=\"ngssm-notification-success-message\">{{message}}</span>\n\n","import { Injectable } from '@angular/core';\nimport { MatSnackBar } from '@angular/material/snack-bar';\n\nimport { NgssmNotificationErrorComponent } from './ngssm-notification-error/ngssm-notification-error.component';\nimport { NgssmNotificationSuccessComponent } from './ngssm-notification-success/ngssm-notification-success.component';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class NgssmNotifierService {\n constructor(private matSnackBar: MatSnackBar) {}\n\n public notifyError(message: string): void {\n this.matSnackBar.openFromComponent(NgssmNotificationErrorComponent, {\n panelClass: 'ngssm-notification-panel',\n data: message\n });\n }\n\n public notifySuccess(message: string): void {\n this.matSnackBar.openFromComponent(NgssmNotificationSuccessComponent, {\n panelClass: 'ngssm-notification-panel',\n data: message\n });\n }\n}\n","import { InjectionToken } from '@angular/core';\n\nexport interface RegexValidationResult {\n isValid: boolean;\n error?: string;\n}\n\nexport interface RegexEditorValidator {\n validatePattern: (pattern: string) => RegexValidationResult;\n isMatch: (pattern: string, testString: string) => boolean;\n}\n\nexport const NGSSM_REGEX_EDITOR_VALIDATOR = new InjectionToken<RegexEditorValidator>('NGSSM_NGSSM_REGEX_EDITOR_VALIDATORREDUCER');\n\nexport const defaultRegexEditorValidator: RegexEditorValidator = {\n validatePattern: (pattern: string) => {\n try {\n const regex = new RegExp(pattern);\n if (regex.test('')) {\n return { isValid: true };\n }\n } catch (error: any) {\n return { isValid: false, error: error.message } as any;\n }\n\n return { isValid: true };\n },\n isMatch: (pattern: string, testString: string) => {\n try {\n const regex = new RegExp(pattern);\n if (regex.test(testString)) {\n return true;\n }\n } catch (error: any) {\n return false;\n }\n\n return false;\n }\n};\n","import { Component, ChangeDetectionStrategy, EventEmitter, Output, Input, Inject, Optional } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { AbstractControl, FormControl, ReactiveFormsModule, ValidationErrors, Validators } from '@angular/forms';\nimport { MatCardModule } from '@angular/material/card';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { MatInputModule } from '@angular/material/input';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatIconModule } from '@angular/material/icon';\nimport { BehaviorSubject, combineLatest, Observable } from 'rxjs';\n\nimport { useDefaultErrorStateMatcher } from '../../default-error-state-matcher';\nimport { defaultRegexEditorValidator, NGSSM_REGEX_EDITOR_VALIDATOR, RegexEditorValidator } from '../regex-editor-validator';\n\n@Component({\n selector: 'ngssm-regex-editor',\n standalone: true,\n imports: [CommonModule, ReactiveFormsModule, MatCardModule, MatFormFieldModule, MatInputModule, MatButtonModule, MatIconModule],\n providers: [useDefaultErrorStateMatcher],\n templateUrl: './ngssm-regex-editor.component.html',\n styleUrls: ['./ngssm-regex-editor.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class NgssmRegexEditorComponent {\n private readonly regexValidator: RegexEditorValidator;\n private readonly _isRegexValid$ = new BehaviorSubject<boolean | null>(null);\n\n public readonly regexControl: FormControl<string | null>;\n public readonly testStringControl = new FormControl<string>('');\n\n @Output() closeEditor = new EventEmitter<string | undefined>();\n\n constructor(@Inject(NGSSM_REGEX_EDITOR_VALIDATOR) @Optional() validator?: RegexEditorValidator) {\n this.regexValidator = validator ?? defaultRegexEditorValidator;\n this.regexControl = new FormControl<string | null>(null, [Validators.required, (c) => this.validatedRegex(c)]);\n combineLatest([this.regexControl.valueChanges, this.testStringControl.valueChanges, this.regexControl.statusChanges]).subscribe(\n (values) => {\n if (this.regexControl.invalid || (values[1] ?? '').length === 0) {\n this._isRegexValid$.next(null);\n return;\n }\n\n const isMatch = this.regexValidator.isMatch(values[0] ?? '', values[1] ?? '');\n this._isRegexValid$.next(isMatch);\n }\n );\n }\n\n @Input() set regex(value: string | undefined | null) {\n this.regexControl.setValue(value ?? null);\n }\n\n public get isRegexValid$(): Observable<boolean | null> {\n return this._isRegexValid$.asObservable();\n }\n\n public cancel(): void {\n this.closeEditor.emit();\n }\n\n public submit(): void {\n this.closeEditor.emit(this.regexControl.value ?? '');\n }\n\n private validatedRegex(control: AbstractControl): ValidationErrors | null {\n const result = this.regexValidator.validatePattern(control.value);\n if (result.isValid) {\n return null;\n }\n\n return {\n regex: result.error\n };\n }\n}\n","<mat-card class=\"flex-column-stretch fxFlex\">\n <mat-card-header>\n <mat-card-title>Regex Editor</mat-card-title>\n </mat-card-header>\n <mat-card-content class=\"flex-column-stretch fxFlex\">\n <mat-form-field class=\"with-margin-top-8\">\n <mat-label>Regular expression</mat-label>\n <input matInput [formControl]=\"regexControl\">\n <mat-error *ngIf=\"regexControl.errors?.['regex']\">\n {{regexControl.errors?.['regex']}}\n </mat-error>\n </mat-form-field>\n <div class=\"flex-row-center\">\n <mat-form-field class=\"fxFlex\">\n <mat-label>Test string</mat-label>\n <input matInput [formControl]=\"testStringControl\">\n </mat-form-field>\n <mat-icon class=\"fa-solid fa-check success with-margin-left-12\"\n *ngIf=\"(isRegexValid$ | async) === true\"></mat-icon>\n <mat-icon class=\"fa-solid fa-xmark failure with-margin-left-12\"\n *ngIf=\"(isRegexValid$ | async) === false\"></mat-icon>\n </div>\n </mat-card-content>\n <mat-card-actions class=\"flex-row-center\">\n <span class=\"fxFlex\"></span>\n <button mat-button (click)=\"cancel()\" id=\"cancelButton\">Cancel</button>\n <button mat-stroked-button color=\"primary\"\n [disabled]=\"regexControl.invalid || ((isRegexValid$ | async) === false)\" (click)=\"submit()\"\n id=\"submitButton\">\n Submit\n </button>\n </mat-card-actions>\n</mat-card>","import { Component, ChangeDetectionStrategy, Input } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { MatIconModule } from '@angular/material/icon';\nimport { OverlayModule } from '@angular/cdk/overlay';\nimport { MatButtonModule } from '@angular/material/button';\nimport { BehaviorSubject, Observable } from 'rxjs';\n\nimport { NgssmRegexEditorComponent } from '../ngssm-regex-editor/ngssm-regex-editor.component';\n\n@Component({\n selector: 'ngssm-regex-editor-toggle',\n standalone: true,\n imports: [CommonModule, MatIconModule, MatButtonModule, OverlayModule, NgssmRegexEditorComponent],\n templateUrl: './ngssm-regex-editor-toggle.component.html',\n styleUrls: ['./ngssm-regex-editor-toggle.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class NgssmRegexEditorToggleComponent {\n private readonly _isOpen$ = new BehaviorSubject<boolean>(false);\n private readonly _isDisabled$ = new BehaviorSubject<boolean>(false);\n\n public regexValue: string | undefined | null;\n\n @Input() public inputElement: HTMLInputElement | undefined;\n @Input() set disabled(value: boolean) {\n this._isDisabled$.next(value);\n }\n\n public get isOpen$(): Observable<boolean> {\n return this._isOpen$.asObservable();\n }\n\n public get isDisabled$(): Observable<boolean> {\n return this._isDisabled$.asObservable();\n }\n\n public openEditor(event: MouseEvent): void {\n if (this._isDisabled$.getValue()) {\n return;\n }\n\n event.stopPropagation();\n this.regexValue = this.inputElement?.value;\n this._isOpen$.next(true);\n }\n\n public closeEditor(regex: string | undefined): void {\n this._isOpen$.next(false);\n if (regex !== undefined && this.inputElement) {\n this.inputElement.value = regex;\n this.inputElement.dispatchEvent(new Event('input', { bubbles: true }));\n }\n }\n}\n","<button mat-icon-button (click)=\"openEditor($event)\" [disabled]=\"isDisabled$ | async\" color=\"primary\" id=\"toggleButton\">\n <mat-icon class=\"fa-solid fa-up-right-from-square ngssm-regex-editor-toggle-icon\" cdkOverlayOrigin\n #trigger=\"cdkOverlayOrigin\"></mat-icon>\n</button>\n\n<ng-template cdkConnectedOverlay [cdkConnectedOverlayOrigin]=\"trigger\"\n [cdkConnectedOverlayOpen]=\"(isOpen$ | async) === true\">\n <ngssm-regex-editor (closeEditor)=\"closeEditor($event)\" [regex]=\"regexValue\"></ngssm-regex-editor>\n</ng-template>","/*\n * Public API Surface of ngssm-toolkit\n */\n\nexport * from './lib/ngssm-toolkit.module';\nexport * from './lib/material';\nexport * from './lib/overlay';\nexport * from './lib/default-error-state-matcher';\nexport * from './lib/not-found.component';\nexport * from './lib/file-picker';\nexport * from './lib/notification';\nexport * from './lib/regex-editor';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1","i3","i2","i3.FileSizePipe","i7","i4"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAyBA,MAAM,OAAO,GAAG;IACd,YAAY;IACZ,gBAAgB;IAChB,gBAAgB;IAChB,eAAe;IACf,aAAa;IACb,aAAa;IACb,gBAAgB;IAChB,aAAa;IACb,oBAAoB;IACpB,kBAAkB;IAClB,cAAc;IACd,eAAe;IACf,cAAc;IACd,cAAc;IACd,kBAAkB;IAClB,eAAe;IACf,wBAAwB;IACxB,iBAAiB;IACjB,gBAAgB;IAChB,cAAc;IACd,iBAAiB;IACjB,aAAa;IACb,kBAAkB;CACnB,CAAC;MAOW,qBAAqB,CAAA;;kHAArB,qBAAqB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;AAArB,qBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,qBAAqB,YA9BhC,YAAY;QACZ,gBAAgB;QAChB,gBAAgB;QAChB,eAAe;QACf,aAAa;QACb,aAAa;QACb,gBAAgB;QAChB,aAAa;QACb,oBAAoB;QACpB,kBAAkB;QAClB,cAAc;QACd,eAAe;QACf,cAAc;QACd,cAAc;QACd,kBAAkB;QAClB,eAAe;QACf,wBAAwB;QACxB,iBAAiB;QACjB,gBAAgB;QAChB,cAAc;QACd,iBAAiB;QACjB,aAAa;AACb,QAAA,kBAAkB,aAtBlB,YAAY;QACZ,gBAAgB;QAChB,gBAAgB;QAChB,eAAe;QACf,aAAa;QACb,aAAa;QACb,gBAAgB;QAChB,aAAa;QACb,oBAAoB;QACpB,kBAAkB;QAClB,cAAc;QACd,eAAe;QACf,cAAc;QACd,cAAc;QACd,kBAAkB;QAClB,eAAe;QACf,wBAAwB;QACxB,iBAAiB;QACjB,gBAAgB;QAChB,cAAc;QACd,iBAAiB;QACjB,aAAa;QACb,kBAAkB,CAAA,EAAA,CAAA,CAAA;mHAQP,qBAAqB,EAAA,OAAA,EAAA,CAHvB,OAAO,EA3BhB,YAAY;QACZ,gBAAgB;QAChB,gBAAgB;QAChB,eAAe;QACf,aAAa;QACb,aAAa;QACb,gBAAgB;QAChB,aAAa;QACb,oBAAoB;QACpB,kBAAkB;QAClB,cAAc;QACd,eAAe;QACf,cAAc;QACd,cAAc;QACd,kBAAkB;QAClB,eAAe;QACf,wBAAwB;QACxB,iBAAiB;QACjB,gBAAgB;QAChB,cAAc;QACd,iBAAiB;QACjB,aAAa;QACb,kBAAkB,CAAA,EAAA,CAAA,CAAA;2FAQP,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBALjC,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,YAAY,EAAE,EAAE;AAChB,oBAAA,OAAO,EAAE,OAAO;AAChB,oBAAA,OAAO,EAAE,OAAO;AACjB,iBAAA,CAAA;;;MCtCY,iBAAiB,CAAA;;8GAAjB,iBAAiB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAjB,iBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,iBAAiB,uDAblB,CAA4C,0CAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,2FAAA,CAAA,EAAA,CAAA,CAAA;2FAa3C,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAf7B,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,iBAAiB,YACjB,CAA4C,0CAAA,CAAA,EAAA,MAAA,EAAA,CAAA,2FAAA,CAAA,EAAA,CAAA;;;MCmB3C,uBAAuB,CAAA;AApBpC,IAAA,WAAA,GAAA;AAqBS,QAAA,IAAA,CAAA,QAAQ,GAAuB,IAAI,OAAO,EAAU,CAAC;AAC7D,KAAA;;oHAFY,uBAAuB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAvB,uBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,uBAAuB,EAlBxB,QAAA,EAAA,uBAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,CAAA;;;;;;;AAOT,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,uFAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,YAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,cAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,mCAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,MAAA,EAAA,OAAA,EAAA,UAAA,EAAA,aAAA,CAAA,EAAA,QAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,SAAA,EAAA,IAAA,EAAA,OAAA,EAAA,CAAA,EAAA,CAAA,CAAA;2FAWU,uBAAuB,EAAA,UAAA,EAAA,CAAA;kBApBnC,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,uBAAuB,EACvB,QAAA,EAAA,CAAA;;;;;;;AAOT,EAAA,CAAA,EAAA,MAAA,EAAA,CAAA,uFAAA,CAAA,EAAA,CAAA;;;MCsBU,yBAAyB,CAAA;AAQpC,IAAA,WAAA,CACU,UAAsB,EACtB,gBAAkC,EACxB,QAAa,EAC/B,gBAAuC;;AAEvC,IAAA,wBAAkD,EAClD,eAAuC,EACvC,kBAA6C,EAC7C,QAAkB,EAClB,MAAc,EACd,cAA8B,EAC9B,QAAkB,EAClB,sBAAqD,EACrD,QAAmB,EAAA;QAbX,IAAU,CAAA,UAAA,GAAV,UAAU,CAAY;QACtB,IAAgB,CAAA,gBAAA,GAAhB,gBAAgB,CAAkB;AAT3B,QAAA,IAAA,CAAA,eAAe,GAAG,IAAI,OAAO,EAAQ,CAAC;AACtC,QAAA,IAAA,CAAA,gBAAgB,GAAG,IAAI,eAAe,CAAU,KAAK,CAAC,CAAC;AACvD,QAAA,IAAA,CAAA,gBAAgB,GAAG,IAAI,eAAe,CAAS,aAAa,CAAC,CAAC;AAqB7E,QAAA,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,aAAa,EAAE,UAAU,EAAE,UAAU,CAAC,CAAC;AACzE,QAAA,MAAM,SAAS,GAAG;YAChB,mBAAmB,EAAE,MAAM,IAAI,CAAC,UAAU,CAAC,aAAa;SACzD,CAAC;AAEF,QAAA,IAAI,CAAC,OAAO,GAAG,IAAI,OAAO,CACxB,gBAAgB,EAChB,SAAgB,EAChB,wBAAwB,EACxB,eAAe,EACf,kBAAkB,EAClB,QAAQ,EACR,MAAM,EACN,QAAQ,EACR,cAAc,EACd,QAAQ,EACR,sBAAsB,CACvB,CAAC;QAEF,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC;AACpC,YAAA,gBAAgB,EAAE,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,MAAM,EAAE,CAAC,kBAAkB,EAAE,CAAC,gBAAgB,EAAE;AAC1F,YAAA,WAAW,EAAE,IAAI;AAClB,SAAA,CAAC,CAAC;KACJ;IAOD,IAAoB,cAAc,CAAC,KAAa,EAAA;AAC9C,QAAA,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KACnC;IAED,IAAoC,cAAc,CAAC,KAAc,EAAA;AAC/D,QAAA,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KACnC;IAEM,eAAe,GAAA;AACpB,QAAA,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,KAAI;AAC1E,YAAA,IAAI,CAAC,EAAE;gBACL,IAAI,CAAC,WAAW,EAAE,CAAC;AACpB,aAAA;AAAM,iBAAA;gBACL,IAAI,CAAC,WAAW,EAAE,CAAC;AACpB,aAAA;AACH,SAAC,CAAC,CAAC;KACJ;IAEM,WAAW,GAAA;AAChB,QAAA,IAAI,CAAC,eAAe,CAAC,IAAI,EAAE,CAAC;AAC5B,QAAA,IAAI,CAAC,eAAe,CAAC,QAAQ,EAAE,CAAC;AAChC,QAAA,IAAI,IAAI,CAAC,gBAAgB,CAAC,QAAQ,EAAE,EAAE;AACpC,YAAA,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC;AAC1B,SAAA;KACF;IAEO,WAAW,GAAA;QACjB,IAAI,IAAI,CAAC,eAAe,EAAE;AACxB,YAAA,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,cAAc,CAAC,IAAI,CAAC,eAAe,EAAE,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC;AACzF,SAAA;aAAM,IAAI,IAAI,CAAC,gBAAgB,EAAE;AAChC,YAAA,MAAM,GAAG,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,eAAe,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC;AAC/E,YAAA,IAAI,IAAI,CAAC,gBAAgB,KAAK,uBAAuB,EAAE;gBACrD,GAAG,CAAC,QAAQ,CAAC,QAAQ,GAAG,IAAI,CAAC,gBAAgB,CAAC,YAAY,EAAE,CAAC;AAC9D,aAAA;AACF,SAAA;AAAM,aAAA;AACL,YAAA,MAAM,GAAG,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,eAAe,CAAC,uBAAuB,CAAC,CAAC,CAAC;YACjF,GAAG,CAAC,QAAQ,CAAC,QAAQ,GAAG,IAAI,CAAC,gBAAgB,CAAC,YAAY,EAAE,CAAC;AAC9D,SAAA;KACF;IAEO,WAAW,GAAA;AACjB,QAAA,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC;KAC1B;;AAhGU,yBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,yBAAyB,4EAW1B,QAAQ,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,qBAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,wBAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,sBAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,yBAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,QAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,MAAA,EAAA,EAAA,EAAA,KAAA,EAAAC,IAAA,CAAA,cAAA,EAAA,EAAA,EAAA,KAAA,EAAAD,IAAA,CAAA,QAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,6BAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,SAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;0GAXP,yBAAyB,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,EAAA,eAAA,EAAA,CAAA,iBAAA,EAAA,iBAAA,CAAA,EAAA,gBAAA,EAAA,kBAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,cAAA,EAAA,CAAA,gBAAA,EAAA,gBAAA,CAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;2FAAzB,yBAAyB,EAAA,UAAA,EAAA,CAAA;kBAJrC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;;AAET,oBAAA,QAAQ,EAAE,kBAAkB;AAC7B,iBAAA,CAAA;;0BAYI,MAAM;2BAAC,QAAQ,CAAA;4WAuCQ,eAAe,EAAA,CAAA;sBAAxC,KAAK;uBAAC,iBAAiB,CAAA;gBAEf,gBAAgB,EAAA,CAAA;sBAAxB,KAAK;gBAEc,cAAc,EAAA,CAAA;sBAAjC,KAAK;gBAI8B,cAAc,EAAA,CAAA;sBAAjD,KAAK;uBAAC,gBAAgB,CAAA;;;MCrFZ,qBAAqB,CAAA;;kHAArB,qBAAqB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAArB,qBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,qBAAqB,2DAHtB,CAAE,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,CAAA;2FAGD,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBALjC,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,qBAAqB,YACrB,CAAE,CAAA,EAAA,CAAA;;;MCuBD,mBAAmB,CAAA;AAS9B,IAAA,WAAA,CACU,UAAsB,EACtB,gBAAkC,EACxB,QAAa,EAC/B,gBAAuC;;AAEvC,IAAA,wBAAkD,EAClD,eAAuC,EACvC,kBAA6C,EAC7C,QAAkB,EAClB,MAAc,EACd,cAA8B,EAC9B,QAAkB,EAClB,sBAAqD,EACrD,QAAmB,EAAA;QAbX,IAAU,CAAA,UAAA,GAAV,UAAU,CAAY;QACtB,IAAgB,CAAA,gBAAA,GAAhB,gBAAgB,CAAkB;AAV3B,QAAA,IAAA,CAAA,gBAAgB,GAAG,IAAI,eAAe,CAAS,aAAa,CAAC,CAAC;AAwB7E,QAAA,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,aAAa,EAAE,UAAU,EAAE,UAAU,CAAC,CAAC;AACzE,QAAA,MAAM,SAAS,GAAG;YAChB,mBAAmB,EAAE,MAAM,IAAI,CAAC,UAAU,CAAC,aAAa;SACzD,CAAC;AAEF,QAAA,IAAI,CAAC,OAAO,GAAG,IAAI,OAAO,CACxB,gBAAgB,EAChB,SAAgB,EAChB,wBAAwB,EACxB,eAAe,EACf,kBAAkB,EAClB,QAAQ,EACR,MAAM,EACN,QAAQ,EACR,cAAc,EACd,QAAQ,EACR,sBAAsB,CACvB,CAAC;QAEF,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC;AACpC,YAAA,gBAAgB,EAAE,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,MAAM,EAAE,CAAC,kBAAkB,EAAE,CAAC,gBAAgB,EAAE;AAC1F,YAAA,WAAW,EAAE,IAAI;AAClB,SAAA,CAAC,CAAC;KACJ;IAED,IAAW,cAAc,CAAC,KAAa,EAAA;AACrC,QAAA,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KACnC;IAEM,WAAW,GAAA;QAChB,IAAI,IAAI,CAAC,eAAe,EAAE;AACxB,YAAA,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,cAAc,CAAC,IAAI,CAAC,eAAe,EAAE,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC;AACzF,SAAA;aAAM,IAAI,IAAI,CAAC,gBAAgB,EAAE;AAChC,YAAA,MAAM,GAAG,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,eAAe,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC;AAC/E,YAAA,IAAI,IAAI,CAAC,gBAAgB,KAAK,uBAAuB,EAAE;gBACrD,GAAG,CAAC,QAAQ,CAAC,QAAQ,GAAG,IAAI,CAAC,gBAAgB,CAAC,YAAY,EAAE,CAAC;AAC9D,aAAA;AACF,SAAA;AAAM,aAAA;AACL,YAAA,MAAM,GAAG,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,eAAe,CAAC,uBAAuB,CAAC,CAAC,CAAC;YACjF,GAAG,CAAC,QAAQ,CAAC,QAAQ,GAAG,IAAI,CAAC,gBAAgB,CAAC,YAAY,EAAE,CAAC;AAC9D,SAAA;KACF;IAEM,WAAW,GAAA;AAChB,QAAA,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC;KAC1B;;AAtEU,mBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,mBAAmB,4EAYpB,QAAQ,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,qBAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,wBAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,sBAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,yBAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,QAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,MAAA,EAAA,EAAA,EAAA,KAAA,EAAAC,IAAA,CAAA,cAAA,EAAA,EAAA,EAAA,KAAA,EAAAD,IAAA,CAAA,QAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,6BAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,SAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;oHAZP,mBAAmB,EAAA,CAAA,CAAA;2FAAnB,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAD/B,UAAU;;0BAaN,MAAM;2BAAC,QAAQ,CAAA;;;MClCP,YAAY,CAAA;AAHzB,IAAA,WAAA,GAAA;QAImB,IAAK,CAAA,KAAA,GAAG,CAAC,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;AAoBtD,KAAA;AAlBQ,IAAA,SAAS,CAAC,KAAU,EAAE,SAAA,GAAoB,CAAC,EAAA;AAChD,QAAA,IAAI,KAAK,GAAG,CAAC,KAAK,CAAC;QACnB,IAAI,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE;AACpC,YAAA,OAAO,GAAG,CAAC;AACZ,SAAA;QAED,IAAI,IAAI,GAAG,CAAC,CAAC;QACb,OAAO,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE;YAChD,KAAK,IAAI,IAAI,CAAC;AACd,YAAA,IAAI,EAAE,CAAC;AACR,SAAA;QAED,IAAI,IAAI,KAAK,CAAC,EAAE;YACd,OAAO,CAAA,EAAG,KAAK,CAAA,CAAA,EAAI,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA,CAAE,CAAC;AACvC,SAAA;AAED,QAAA,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC,CAAI,CAAA,EAAA,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;KAC3D;;yGApBU,YAAY,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,IAAA,EAAA,CAAA,CAAA;uGAAZ,YAAY,EAAA,IAAA,EAAA,UAAA,EAAA,CAAA,CAAA;2FAAZ,YAAY,EAAA,UAAA,EAAA,CAAA;kBAHxB,IAAI;AAAC,YAAA,IAAA,EAAA,CAAA;AACJ,oBAAA,IAAI,EAAE,UAAU;AACjB,iBAAA,CAAA;;;MCEY,IAAI,GAAG,MAAK,IAAI;MAQhB,mBAAmB,CAAA;AAW9B,IAAA,WAAA,CAAuC,SAAoB,EAAA;QAApB,IAAS,CAAA,SAAA,GAAT,SAAS,CAAW;AAR1C,QAAA,IAAA,CAAA,gBAAgB,GAAG,IAAI,eAAe,CAAU,IAAI,CAAC,CAAC;QAE/D,IAAgB,CAAA,gBAAA,GAAqB,IAAI,CAAC;QAC1C,IAAS,CAAA,SAAA,GAAG,KAAK,CAAC;QAClB,IAAS,CAAA,SAAA,GAAG,KAAK,CAAC;AAaA,QAAA,IAAA,CAAA,EAAE,GAAG,CAAe,YAAA,EAAA,mBAAmB,CAAC,MAAM,EAAE,EAAE,CAAC;QACtE,IAAW,CAAA,WAAA,GAAG,aAAa,CAAC;QAC5B,IAAW,CAAA,WAAA,GAAW,EAAE,CAAC;QACzB,IAAO,CAAA,OAAA,GAAY,KAAK,CAAC;AACzB,QAAA,IAAA,CAAA,YAAY,GAAG,IAAI,OAAO,EAAQ,CAAC;QACnC,IAAK,CAAA,KAAA,GAAgB,IAAI,CAAC;;AAZ/B,QAAA,IAAI,IAAI,CAAC,SAAS,IAAI,IAAI,EAAE;;;AAG1B,YAAA,IAAI,CAAC,SAAS,CAAC,aAAa,GAAG,IAAI,CAAC;AACrC,SAAA;KACF;AAWD,IAAA,IAAW,KAAK,GAAA;AACd,QAAA,OAAO,IAAI,CAAC,KAAK,KAAK,IAAI,CAAC;KAC5B;AAED,IAAA,IAAW,gBAAgB,GAAA;AACzB,QAAA,OAAO,IAAI,CAAC,KAAK,KAAK,IAAI,CAAC;KAC5B;AAED,IAAA,IACW,QAAQ,GAAA;QACjB,OAAO,IAAI,CAAC,SAAS,CAAC;KACvB;IAED,IAAW,QAAQ,CAAC,KAAc,EAAA;AAChC,QAAA,IAAI,CAAC,SAAS,GAAG,qBAAqB,CAAC,KAAK,CAAC,CAAC;AAC9C,QAAA,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC;KAC1B;AAED,IAAA,IACW,QAAQ,GAAA;QACjB,OAAO,IAAI,CAAC,SAAS,CAAC;KACvB;IAED,IAAW,QAAQ,CAAC,KAAc,EAAA;AAChC,QAAA,IAAI,CAAC,SAAS,GAAG,qBAAqB,CAAC,KAAK,CAAC,CAAC;AAC9C,QAAA,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC;KAC1B;AAED,IAAA,IAAW,UAAU,GAAA;AACnB,QAAA,OAAO,IAAI,CAAC,SAAS,CAAC,OAAO,IAAI,KAAK,CAAC;KACxC;AAED,IAAA,IAAW,oBAAoB,GAAA;QAC7B,IAAI,IAAI,CAAC,KAAK,EAAE;YACd,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;AAC/C,YAAA,OAAO,IAAI,CAAC,WAAW,EAAE,CAAC;AAC3B,SAAA;AAED,QAAA,OAAO,EAAE,CAAC;KACX;AAED,IAAA,IAAW,eAAe,GAAA;AACxB,QAAA,OAAO,IAAI,CAAC,gBAAgB,CAAC,YAAY,EAAE,CAAC;KAC7C;IAED,IACW,cAAc,CAAC,KAAc,EAAA;AACtC,QAAA,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KACnC;IAEM,iBAAiB,CAAC,GAAa,EAAA,GAAU;AAEzC,IAAA,gBAAgB,CAAC,UAAmB,EAAA;AACzC,QAAA,IAAI,CAAC,QAAQ,GAAG,UAAU,CAAC;KAC5B;AAEM,IAAA,gBAAgB,CAAC,KAAiB,EAAA;AACvC,QAAA,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;AAClB,YAAA,IAAI,CAAC,SAAS,EAAE,aAAa,CAAC,KAAK,EAAE,CAAC;AACvC,SAAA;KACF;AAEM,IAAA,UAAU,CAAC,GAAQ,EAAA;AACxB,QAAA,IAAI,GAAG,KAAK,SAAS,IAAI,GAAG,KAAK,IAAI,EAAE;AACrC,YAAA,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;AACvB,SAAA;KACF;AAEM,IAAA,gBAAgB,CAAC,EAAO,EAAA;AAC7B,QAAA,IAAI,CAAC,gBAAgB,GAAG,EAAE,CAAC;KAC5B;IAEM,iBAAiB,CAAC,EAAO,EAAA,GAAU;IAEnC,WAAW,GAAA;AAChB,QAAA,IAAI,CAAC,YAAY,CAAC,QAAQ,EAAE,CAAC;KAC9B;AAEM,IAAA,MAAM,CAAC,KAAU,EAAA;AACtB,QAAA,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;AAC3B,QAAA,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;YAClB,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;AAC5C,SAAA;KACF;AAEM,IAAA,UAAU,CAAC,KAAU,EAAA;AAC1B,QAAA,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;KAC5B;AAEM,IAAA,WAAW,CAAC,KAAU,EAAA;AAC3B,QAAA,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;KAC5B;AAEM,IAAA,cAAc,CAAC,KAAU,EAAA;QAC9B,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,SAAS,EAAE,aAAa,CAAC,KAAK,CAAC,CAAC;KACvD;AAEO,IAAA,cAAc,CAAC,KAAU,EAAA;QAC/B,KAAK,CAAC,eAAe,EAAE,CAAC;QACxB,KAAK,CAAC,cAAc,EAAE,CAAC;KACxB;AAEO,IAAA,WAAW,CAAC,KAAe,EAAA;AACjC,QAAA,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE;AACpB,YAAA,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;AACtB,YAAA,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC;AACzB,YAAA,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AACnC,SAAA;KACF;;AAxIc,mBAAM,CAAA,MAAA,GAAG,CAAC,CAAC;gHADf,mBAAmB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAD,IAAA,CAAA,SAAA,EAAA,QAAA,EAAA,IAAA,EAAA,IAAA,EAAA,IAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAnB,mBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,mBAAmB,EAFnB,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,EAAA,QAAA,EAAA,UAAA,EAAA,QAAA,EAAA,UAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,IAAA,EAAA,SAAA,EAAA,EAAA,EAAA,SAAA,EAAA,CAAC,EAAE,OAAO,EAAE,mBAAmB,EAAE,WAAW,EAAE,mBAAmB,EAAE,CAAC,gJCZjF,woBAWM,EAAA,MAAA,EAAA,CAAA,EAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAE,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,SAAA,EAAA,IAAA,EAAA,OAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAC,YAAA,EAAA,IAAA,EAAA,UAAA,EAAA,CAAA,EAAA,CAAA,CAAA;2FDGO,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAN/B,SAAS;+BACE,mBAAmB,EAAA,SAAA,EAGlB,CAAC,EAAE,OAAO,EAAE,mBAAmB,EAAE,WAAW,EAAqB,mBAAA,EAAE,CAAC,EAAA,QAAA,EAAA,woBAAA,EAAA,CAAA;;0BAalE,QAAQ;;0BAAI,IAAI;4CAFa,SAAS,EAAA,CAAA;sBAAlD,SAAS;AAAC,gBAAA,IAAA,EAAA,CAAA,WAAW,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAA;gBAWd,EAAE,EAAA,CAAA;sBAA3B,WAAW;uBAAC,IAAI,CAAA;gBAkBN,QAAQ,EAAA,CAAA;sBADlB,KAAK;gBAWK,QAAQ,EAAA,CAAA;sBADlB,KAAK;gBA4BK,cAAc,EAAA,CAAA;sBADxB,KAAK;;;MEnEK,kBAAkB,CAAA;;+GAAlB,kBAAkB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;AAAlB,kBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,kBAAkB,iBAV3B,yBAAyB;QACzB,uBAAuB;QACvB,qBAAqB;QACrB,iBAAiB;QACjB,mBAAmB;QACnB,YAAY,CAAA,EAAA,OAAA,EAAA,CAEJ,YAAY,EAAE,qBAAqB,aACnC,yBAAyB,EAAE,mBAAmB,EAAE,YAAY,CAAA,EAAA,CAAA,CAAA;gHAE3D,kBAAkB,EAAA,OAAA,EAAA,CAHnB,YAAY,EAAE,qBAAqB,CAAA,EAAA,CAAA,CAAA;2FAGlC,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAZ9B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,YAAY,EAAE;wBACZ,yBAAyB;wBACzB,uBAAuB;wBACvB,qBAAqB;wBACrB,iBAAiB;wBACjB,mBAAmB;wBACnB,YAAY;AACb,qBAAA;AACD,oBAAA,OAAO,EAAE,CAAC,YAAY,EAAE,qBAAqB,CAAC;AAC9C,oBAAA,OAAO,EAAE,CAAC,yBAAyB,EAAE,mBAAmB,EAAE,YAAY,CAAC;AACxE,iBAAA,CAAA;;;MChBY,wBAAwB,CAAA;IACnC,YAAY,CAAC,OAA2B,EAAE,IAAwC,EAAA;QAChF,OAAO,CAAC,EAAE,OAAO,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC;KACvC;AACF,CAAA;AAEM,MAAM,2BAA2B,GAAa,EAAE,OAAO,EAAE,iBAAiB,EAAE,QAAQ,EAAE,wBAAwB;;MCGxG,+BAA+B,CAAA;AAC1C,IAAA,WAAA,CAA+C,OAAe,EAAA;QAAf,IAAO,CAAA,OAAA,GAAP,OAAO,CAAQ;KAAI;;AADvD,+BAAA,CAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,+BAA+B,kBACtB,kBAAkB,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAD3B,+BAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,+BAA+B,ECb5C,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,0BAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,+KAEA,EDMY,MAAA,EAAA,CAAA,6DAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,YAAY,8BAAE,aAAa,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAH,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,SAAA,EAAA,SAAA,EAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;2FAK1B,+BAA+B,EAAA,UAAA,EAAA,CAAA;kBAR3C,SAAS;+BACE,0BAA0B,EAAA,UAAA,EACxB,IAAI,EAAA,OAAA,EACP,CAAC,YAAY,EAAE,aAAa,CAAC,EAAA,eAAA,EAGrB,uBAAuB,CAAC,MAAM,EAAA,QAAA,EAAA,+KAAA,EAAA,MAAA,EAAA,CAAA,6DAAA,CAAA,EAAA,CAAA;;0BAGlC,MAAM;2BAAC,kBAAkB,CAAA;;;MED3B,iCAAiC,CAAA;AAC5C,IAAA,WAAA,CAA+C,OAAe,EAAA;QAAf,IAAO,CAAA,OAAA,GAAP,OAAO,CAAQ;KAAI;;AADvD,iCAAA,CAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,iCAAiC,kBACxB,kBAAkB,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAD3B,iCAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,iCAAiC,ECb9C,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,4BAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,qMAGA,EDKY,MAAA,EAAA,CAAA,6DAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,YAAY,8BAAE,aAAa,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,SAAA,EAAA,SAAA,EAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;2FAK1B,iCAAiC,EAAA,UAAA,EAAA,CAAA;kBAR7C,SAAS;+BACE,4BAA4B,EAAA,UAAA,EAC1B,IAAI,EAAA,OAAA,EACP,CAAC,YAAY,EAAE,aAAa,CAAC,EAAA,eAAA,EAGrB,uBAAuB,CAAC,MAAM,EAAA,QAAA,EAAA,qMAAA,EAAA,MAAA,EAAA,CAAA,6DAAA,CAAA,EAAA,CAAA;;0BAGlC,MAAM;2BAAC,kBAAkB,CAAA;;;MEL3B,oBAAoB,CAAA;AAC/B,IAAA,WAAA,CAAoB,WAAwB,EAAA;QAAxB,IAAW,CAAA,WAAA,GAAX,WAAW,CAAa;KAAI;AAEzC,IAAA,WAAW,CAAC,OAAe,EAAA;AAChC,QAAA,IAAI,CAAC,WAAW,CAAC,iBAAiB,CAAC,+BAA+B,EAAE;AAClE,YAAA,UAAU,EAAE,0BAA0B;AACtC,YAAA,IAAI,EAAE,OAAO;AACd,SAAA,CAAC,CAAC;KACJ;AAEM,IAAA,aAAa,CAAC,OAAe,EAAA;AAClC,QAAA,IAAI,CAAC,WAAW,CAAC,iBAAiB,CAAC,iCAAiC,EAAE;AACpE,YAAA,UAAU,EAAE,0BAA0B;AACtC,YAAA,IAAI,EAAE,OAAO;AACd,SAAA,CAAC,CAAC;KACJ;;iHAfU,oBAAoB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAA,IAAA,CAAA,WAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAApB,oBAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,oBAAoB,cAFnB,MAAM,EAAA,CAAA,CAAA;2FAEP,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBAHhC,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;AACnB,iBAAA,CAAA;;;MCIY,4BAA4B,GAAG,IAAI,cAAc,CAAuB,2CAA2C,EAAE;AAErH,MAAA,2BAA2B,GAAyB;AAC/D,IAAA,eAAe,EAAE,CAAC,OAAe,KAAI;QACnC,IAAI;AACF,YAAA,MAAM,KAAK,GAAG,IAAI,MAAM,CAAC,OAAO,CAAC,CAAC;AAClC,YAAA,IAAI,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE;AAClB,gBAAA,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;AAC1B,aAAA;AACF,SAAA;AAAC,QAAA,OAAO,KAAU,EAAE;YACnB,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,OAAO,EAAS,CAAC;AACxD,SAAA;AAED,QAAA,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;KAC1B;AACD,IAAA,OAAO,EAAE,CAAC,OAAe,EAAE,UAAkB,KAAI;QAC/C,IAAI;AACF,YAAA,MAAM,KAAK,GAAG,IAAI,MAAM,CAAC,OAAO,CAAC,CAAC;AAClC,YAAA,IAAI,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE;AAC1B,gBAAA,OAAO,IAAI,CAAC;AACb,aAAA;AACF,SAAA;AAAC,QAAA,OAAO,KAAU,EAAE;AACnB,YAAA,OAAO,KAAK,CAAC;AACd,SAAA;AAED,QAAA,OAAO,KAAK,CAAC;KACd;;;MChBU,yBAAyB,CAAA;AASpC,IAAA,WAAA,CAA8D,SAAgC,EAAA;AAP7E,QAAA,IAAA,CAAA,cAAc,GAAG,IAAI,eAAe,CAAiB,IAAI,CAAC,CAAC;AAG5D,QAAA,IAAA,CAAA,iBAAiB,GAAG,IAAI,WAAW,CAAS,EAAE,CAAC,CAAC;AAEtD,QAAA,IAAA,CAAA,WAAW,GAAG,IAAI,YAAY,EAAsB,CAAC;AAG7D,QAAA,IAAI,CAAC,cAAc,GAAG,SAAS,IAAI,2BAA2B,CAAC;QAC/D,IAAI,CAAC,YAAY,GAAG,IAAI,WAAW,CAAgB,IAAI,EAAE,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC/G,aAAa,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,YAAY,EAAE,IAAI,CAAC,iBAAiB,CAAC,YAAY,EAAE,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC,CAAC,CAAC,SAAS,CAC7H,CAAC,MAAM,KAAI;AACT,YAAA,IAAI,IAAI,CAAC,YAAY,CAAC,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,EAAE,EAAE,MAAM,KAAK,CAAC,EAAE;AAC/D,gBAAA,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBAC/B,OAAO;AACR,aAAA;YAED,MAAM,OAAO,GAAG,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,EAAE,EAAE,MAAM,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;AAC9E,YAAA,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;AACpC,SAAC,CACF,CAAC;KACH;IAED,IAAa,KAAK,CAAC,KAAgC,EAAA;QACjD,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,KAAK,IAAI,IAAI,CAAC,CAAC;KAC3C;AAED,IAAA,IAAW,aAAa,GAAA;AACtB,QAAA,OAAO,IAAI,CAAC,cAAc,CAAC,YAAY,EAAE,CAAC;KAC3C;IAEM,MAAM,GAAA;AACX,QAAA,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC;KACzB;IAEM,MAAM,GAAA;AACX,QAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC;KACtD;AAEO,IAAA,cAAc,CAAC,OAAwB,EAAA;AAC7C,QAAA,MAAM,MAAM,GAAG,IAAI,CAAC,cAAc,CAAC,eAAe,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QAClE,IAAI,MAAM,CAAC,OAAO,EAAE;AAClB,YAAA,OAAO,IAAI,CAAC;AACb,SAAA;QAED,OAAO;YACL,KAAK,EAAE,MAAM,CAAC,KAAK;SACpB,CAAC;KACH;;AAlDU,yBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,yBAAyB,kBAShB,4BAA4B,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AATrC,yBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,yBAAyB,sIALzB,CAAC,2BAA2B,CAAC,ECjB1C,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,mjDAgCW,iLDhBC,YAAY,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,SAAA,EAAA,IAAA,EAAA,OAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAE,mBAAmB,EAAE,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAE,IAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,8MAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,aAAA,EAAA,UAAA,EAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,aAAa,ihBAAE,kBAAkB,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,YAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,oBAAA,EAAA,OAAA,EAAA,YAAA,EAAA,YAAA,EAAA,iBAAA,EAAA,WAAA,CAAA,EAAA,QAAA,EAAA,CAAA,cAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,QAAA,EAAA,QAAA,EAAA,WAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,QAAA,EAAA,QAAA,EAAA,uBAAA,EAAA,MAAA,EAAA,CAAA,IAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAE,cAAc,EAAE,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,QAAA,EAAA,QAAA,EAAA,yHAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,IAAA,EAAA,aAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,mBAAA,EAAA,kBAAA,EAAA,OAAA,EAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,eAAe,2QAAE,aAAa,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAE,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,SAAA,EAAA,SAAA,EAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;2FAMnH,yBAAyB,EAAA,UAAA,EAAA,CAAA;kBATrC,SAAS;+BACE,oBAAoB,EAAA,UAAA,EAClB,IAAI,EAAA,OAAA,EACP,CAAC,YAAY,EAAE,mBAAmB,EAAE,aAAa,EAAE,kBAAkB,EAAE,cAAc,EAAE,eAAe,EAAE,aAAa,CAAC,EAAA,SAAA,EACpH,CAAC,2BAA2B,CAAC,EAAA,eAAA,EAGvB,uBAAuB,CAAC,MAAM,EAAA,QAAA,EAAA,mjDAAA,EAAA,MAAA,EAAA,CAAA,0HAAA,CAAA,EAAA,CAAA;;0BAWlC,MAAM;2BAAC,4BAA4B,CAAA;;0BAAG,QAAQ;4CAFjD,WAAW,EAAA,CAAA;sBAApB,MAAM;gBAkBM,KAAK,EAAA,CAAA;sBAAjB,KAAK;;;ME9BK,+BAA+B,CAAA;AAR5C,IAAA,WAAA,GAAA;AASmB,QAAA,IAAA,CAAA,QAAQ,GAAG,IAAI,eAAe,CAAU,KAAK,CAAC,CAAC;AAC/C,QAAA,IAAA,CAAA,YAAY,GAAG,IAAI,eAAe,CAAU,KAAK,CAAC,CAAC;AAkCrE,KAAA;IA7BC,IAAa,QAAQ,CAAC,KAAc,EAAA;AAClC,QAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KAC/B;AAED,IAAA,IAAW,OAAO,GAAA;AAChB,QAAA,OAAO,IAAI,CAAC,QAAQ,CAAC,YAAY,EAAE,CAAC;KACrC;AAED,IAAA,IAAW,WAAW,GAAA;AACpB,QAAA,OAAO,IAAI,CAAC,YAAY,CAAC,YAAY,EAAE,CAAC;KACzC;AAEM,IAAA,UAAU,CAAC,KAAiB,EAAA;AACjC,QAAA,IAAI,IAAI,CAAC,YAAY,CAAC,QAAQ,EAAE,EAAE;YAChC,OAAO;AACR,SAAA;QAED,KAAK,CAAC,eAAe,EAAE,CAAC;QACxB,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,YAAY,EAAE,KAAK,CAAC;AAC3C,QAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;KAC1B;AAEM,IAAA,WAAW,CAAC,KAAyB,EAAA;AAC1C,QAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAC1B,QAAA,IAAI,KAAK,KAAK,SAAS,IAAI,IAAI,CAAC,YAAY,EAAE;AAC5C,YAAA,IAAI,CAAC,YAAY,CAAC,KAAK,GAAG,KAAK,CAAC;AAChC,YAAA,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC,IAAI,KAAK,CAAC,OAAO,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;AACxE,SAAA;KACF;;4HAnCU,+BAA+B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;gHAA/B,+BAA+B,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,2BAAA,EAAA,MAAA,EAAA,EAAA,YAAA,EAAA,cAAA,EAAA,QAAA,EAAA,UAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECjB5C,ijBAQc,EAAA,MAAA,EAAA,CAAA,2KAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EDIF,YAAY,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAJ,IAAA,CAAA,SAAA,EAAA,IAAA,EAAA,OAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAE,aAAa,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAE,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,SAAA,EAAA,SAAA,EAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAE,eAAe,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAD,EAAA,CAAA,aAAA,EAAA,QAAA,EAAA,yBAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,eAAA,EAAA,OAAA,CAAA,EAAA,QAAA,EAAA,CAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAE,aAAa,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAI,EAAA,CAAA,mBAAA,EAAA,QAAA,EAAA,qEAAA,EAAA,MAAA,EAAA,CAAA,2BAAA,EAAA,8BAAA,EAAA,qCAAA,EAAA,4BAAA,EAAA,4BAAA,EAAA,0BAAA,EAAA,2BAAA,EAAA,6BAAA,EAAA,8BAAA,EAAA,kCAAA,EAAA,+BAAA,EAAA,mCAAA,EAAA,mCAAA,EAAA,yBAAA,EAAA,iCAAA,EAAA,sCAAA,EAAA,gCAAA,EAAA,iCAAA,EAAA,uCAAA,EAAA,kCAAA,EAAA,yBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,EAAA,gBAAA,EAAA,QAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,qBAAA,CAAA,EAAA,QAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,4DAAA,EAAA,QAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAE,yBAAyB,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,OAAA,CAAA,EAAA,OAAA,EAAA,CAAA,aAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;2FAKrF,+BAA+B,EAAA,UAAA,EAAA,CAAA;kBAR3C,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,2BAA2B,cACzB,IAAI,EAAA,OAAA,EACP,CAAC,YAAY,EAAE,aAAa,EAAE,eAAe,EAAE,aAAa,EAAE,yBAAyB,CAAC,EAGhF,eAAA,EAAA,uBAAuB,CAAC,MAAM,EAAA,QAAA,EAAA,ijBAAA,EAAA,MAAA,EAAA,CAAA,2KAAA,CAAA,EAAA,CAAA;8BAQ/B,YAAY,EAAA,CAAA;sBAA3B,KAAK;gBACO,QAAQ,EAAA,CAAA;sBAApB,KAAK;;;AExBR;;AAEG;;ACFH;;AAEG;;;;"}
1
+ {"version":3,"file":"ngssm-toolkit.mjs","sources":["../../../projects/ngssm-toolkit/src/lib/material/material-imports.module.ts","../../../projects/ngssm-toolkit/src/lib/not-found.component.ts","../../../projects/ngssm-toolkit/src/lib/overlay/message-overlay.component.ts","../../../projects/ngssm-toolkit/src/lib/overlay/component-overlay.directive.ts","../../../projects/ngssm-toolkit/src/lib/overlay/empty-overlay.component.ts","../../../projects/ngssm-toolkit/src/lib/overlay/ngssm-overlay-builder.ts","../../../projects/ngssm-toolkit/src/lib/file-picker/file-size.pipe.ts","../../../projects/ngssm-toolkit/src/lib/file-picker/file-picker.component.ts","../../../projects/ngssm-toolkit/src/lib/file-picker/file-picker.component.html","../../../projects/ngssm-toolkit/src/lib/ngssm-toolkit.module.ts","../../../projects/ngssm-toolkit/src/lib/default-error-state-matcher.ts","../../../projects/ngssm-toolkit/src/lib/notification/ngssm-notification-error/ngssm-notification-error.component.ts","../../../projects/ngssm-toolkit/src/lib/notification/ngssm-notification-error/ngssm-notification-error.component.html","../../../projects/ngssm-toolkit/src/lib/notification/ngssm-notification-success/ngssm-notification-success.component.ts","../../../projects/ngssm-toolkit/src/lib/notification/ngssm-notification-success/ngssm-notification-success.component.html","../../../projects/ngssm-toolkit/src/lib/notification/ngssm-notifier.service.ts","../../../projects/ngssm-toolkit/src/lib/regex-editor/regex-editor-validator.ts","../../../projects/ngssm-toolkit/src/lib/regex-editor/ngssm-regex-editor/ngssm-regex-editor.component.ts","../../../projects/ngssm-toolkit/src/lib/regex-editor/ngssm-regex-editor/ngssm-regex-editor.component.html","../../../projects/ngssm-toolkit/src/lib/regex-editor/ngssm-regex-editor-toggle/ngssm-regex-editor-toggle.component.ts","../../../projects/ngssm-toolkit/src/lib/regex-editor/ngssm-regex-editor-toggle/ngssm-regex-editor-toggle.component.html","../../../projects/ngssm-toolkit/src/lib/confirmation-dialog/ngssm-confirmation-dialog/ngssm-confirmation-dialog.component.ts","../../../projects/ngssm-toolkit/src/lib/confirmation-dialog/ngssm-confirmation-dialog/ngssm-confirmation-dialog.component.html","../../../projects/ngssm-toolkit/src/lib/confirmation-dialog/ngssm-confirmation-dialog.service.ts","../../../projects/ngssm-toolkit/src/lib/object-helpers.ts","../../../projects/ngssm-toolkit/src/public-api.ts","../../../projects/ngssm-toolkit/src/ngssm-toolkit.ts"],"sourcesContent":["import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { MatToolbarModule } from '@angular/material/toolbar';\nimport { MatSidenavModule } from '@angular/material/sidenav';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatListModule } from '@angular/material/list';\nimport { MatDividerModule } from '@angular/material/divider';\nimport { MatCardModule } from '@angular/material/card';\nimport { MatSlideToggleModule } from '@angular/material/slide-toggle';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { MatRadioModule } from '@angular/material/radio';\nimport { MatSelectModule } from '@angular/material/select';\nimport { MatInputModule } from '@angular/material/input';\nimport { MatTableModule } from '@angular/material/table';\nimport { MatPaginatorModule } from '@angular/material/paginator';\nimport { MatDialogModule } from '@angular/material/dialog';\nimport { MatProgressSpinnerModule } from '@angular/material/progress-spinner';\nimport { MatCheckboxModule } from '@angular/material/checkbox';\nimport { MatTooltipModule } from '@angular/material/tooltip';\nimport { MatBadgeModule } from '@angular/material/badge';\nimport { MatSnackBarModule } from '@angular/material/snack-bar';\nimport { MatTabsModule } from '@angular/material/tabs';\nimport { MatExpansionModule } from '@angular/material/expansion';\n\nconst modules = [\n CommonModule,\n MatToolbarModule,\n MatSidenavModule,\n MatButtonModule,\n MatIconModule,\n MatListModule,\n MatDividerModule,\n MatCardModule,\n MatSlideToggleModule,\n MatFormFieldModule,\n MatRadioModule,\n MatSelectModule,\n MatInputModule,\n MatTableModule,\n MatPaginatorModule,\n MatDialogModule,\n MatProgressSpinnerModule,\n MatCheckboxModule,\n MatTooltipModule,\n MatBadgeModule,\n MatSnackBarModule,\n MatTabsModule,\n MatExpansionModule\n];\n\n@NgModule({\n declarations: [],\n imports: modules,\n exports: modules\n})\nexport class MaterialImportsModule {}\n","import { Component } from '@angular/core';\n\n@Component({\n selector: 'ngssm-not-found',\n template: ` <img src=\"./assets/404-not-found.png\" /> `,\n styles: [\n `\n :host {\n display: flex;\n flex-direction: row;\n flex: 1;\n align-items: center;\n justify-content: center;\n }\n `\n ]\n})\nexport class NotFoundComponent {}\n","import { Component } from '@angular/core';\nimport { Observable, Subject } from 'rxjs';\n\n@Component({\n selector: 'ngssm-message-overlay',\n template: `\n <mat-card>\n <mat-card-content class=\"message-container\">\n <mat-spinner></mat-spinner>\n {{ message$ | async }}\n </mat-card-content>\n </mat-card>\n `,\n styles: [\n `\n .message-container {\n display: flex !important;\n flex-direction: column;\n align-items: center;\n }\n `\n ]\n})\nexport class MessageOverlayComponent {\n public message$: Observable<string> = new Subject<string>();\n}\n","import {\n Overlay,\n OverlayKeyboardDispatcher,\n OverlayOutsideClickDispatcher,\n OverlayPositionBuilder,\n OverlayRef,\n ScrollStrategyOptions\n} from '@angular/cdk/overlay';\nimport { DOCUMENT } from '@angular/common';\nimport {\n AfterViewInit,\n ComponentFactoryResolver,\n Directive,\n ElementRef,\n Inject,\n Injector,\n Input,\n NgZone,\n OnDestroy,\n Renderer2,\n TemplateRef,\n ViewContainerRef\n} from '@angular/core';\nimport { Location } from '@angular/common';\nimport { Directionality } from '@angular/cdk/bidi';\nimport { ComponentPortal, ComponentType, TemplatePortal } from '@angular/cdk/portal';\nimport { BehaviorSubject, Subject, takeUntil } from 'rxjs';\n\nimport { MessageOverlayComponent } from './message-overlay.component';\n\n@Directive({\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: '[displayOverlay]'\n})\nexport class ComponentOverlayDirective implements OnDestroy, AfterViewInit {\n private readonly unSubscribeAll$ = new Subject<void>();\n private readonly _displayOverlay$ = new BehaviorSubject<boolean>(false);\n private readonly _overlayMessage$ = new BehaviorSubject<string>('Please wait');\n\n private overlay: Overlay;\n private overlayRef: OverlayRef;\n\n constructor(\n private elementRef: ElementRef,\n private viewContainerRef: ViewContainerRef,\n @Inject(DOCUMENT) document: any,\n scrollStrategies: ScrollStrategyOptions,\n // eslint-disable-next-line deprecation/deprecation\n componentFactoryResolver: ComponentFactoryResolver,\n positionBuilder: OverlayPositionBuilder,\n keyboardDispatcher: OverlayKeyboardDispatcher,\n injector: Injector,\n ngZone: NgZone,\n directionality: Directionality,\n location: Location,\n outsideClickDispatcher: OverlayOutsideClickDispatcher,\n renderer: Renderer2\n ) {\n renderer.setStyle(this.elementRef.nativeElement, 'position', 'relative');\n const container = {\n getContainerElement: () => this.elementRef.nativeElement\n };\n\n this.overlay = new Overlay(\n scrollStrategies,\n container as any,\n componentFactoryResolver,\n positionBuilder,\n keyboardDispatcher,\n injector,\n ngZone,\n document,\n directionality,\n location,\n outsideClickDispatcher\n );\n\n this.overlayRef = this.overlay.create({\n positionStrategy: this.overlay.position().global().centerHorizontally().centerVertically(),\n hasBackdrop: true\n });\n }\n\n // eslint-disable-next-line @angular-eslint/no-input-rename\n @Input('overlayTemplate') overLayTemplate: TemplateRef<any> | undefined;\n\n @Input() overlayComponent: ComponentType<any> | undefined;\n\n @Input() public set overlayMessage(value: string) {\n this._overlayMessage$.next(value);\n }\n\n @Input('displayOverlay') public set dispalyOverlay(value: boolean) {\n this._displayOverlay$.next(value);\n }\n\n public ngAfterViewInit(): void {\n this._displayOverlay$.pipe(takeUntil(this.unSubscribeAll$)).subscribe((v) => {\n if (v) {\n this.showOverlay();\n } else {\n this.hideOverlay();\n }\n });\n }\n\n public ngOnDestroy(): void {\n this.unSubscribeAll$.next();\n this.unSubscribeAll$.complete();\n if (this._displayOverlay$.getValue()) {\n this.overlayRef.detach();\n }\n }\n\n private showOverlay(): void {\n if (this.overLayTemplate) {\n this.overlayRef.attach(new TemplatePortal(this.overLayTemplate, this.viewContainerRef));\n } else if (this.overlayComponent) {\n const ref = this.overlayRef.attach(new ComponentPortal(this.overlayComponent));\n if (this.overlayComponent === MessageOverlayComponent) {\n ref.instance.message$ = this._overlayMessage$.asObservable();\n }\n } else {\n const ref = this.overlayRef.attach(new ComponentPortal(MessageOverlayComponent));\n ref.instance.message$ = this._overlayMessage$.asObservable();\n }\n }\n\n private hideOverlay(): void {\n this.overlayRef.detach();\n }\n}\n","import { Component } from '@angular/core';\n\n@Component({\n selector: 'ngssm-empty-overlay',\n template: ``,\n styles: []\n})\nexport class EmptyOverlayComponent {}\n","import { Directionality } from '@angular/cdk/bidi';\nimport {\n ComponentType,\n Overlay,\n OverlayKeyboardDispatcher,\n OverlayOutsideClickDispatcher,\n OverlayPositionBuilder,\n OverlayRef,\n ScrollStrategyOptions\n} from '@angular/cdk/overlay';\nimport { ComponentPortal, TemplatePortal } from '@angular/cdk/portal';\nimport { DOCUMENT, Location } from '@angular/common';\nimport {\n ComponentFactoryResolver,\n ElementRef,\n Inject,\n Injectable,\n Injector,\n NgZone,\n Renderer2,\n TemplateRef,\n ViewContainerRef\n} from '@angular/core';\nimport { BehaviorSubject } from 'rxjs';\nimport { MessageOverlayComponent } from './message-overlay.component';\n\n@Injectable()\nexport class NgssmOverlayBuilder {\n private readonly _overlayMessage$ = new BehaviorSubject<string>('Please wait');\n\n private overlay: Overlay;\n private overlayRef: OverlayRef;\n\n public overLayTemplate: TemplateRef<any> | undefined;\n public overlayComponent: ComponentType<any> | undefined;\n\n constructor(\n private elementRef: ElementRef,\n private viewContainerRef: ViewContainerRef,\n @Inject(DOCUMENT) document: any,\n scrollStrategies: ScrollStrategyOptions,\n // eslint-disable-next-line deprecation/deprecation\n componentFactoryResolver: ComponentFactoryResolver,\n positionBuilder: OverlayPositionBuilder,\n keyboardDispatcher: OverlayKeyboardDispatcher,\n injector: Injector,\n ngZone: NgZone,\n directionality: Directionality,\n location: Location,\n outsideClickDispatcher: OverlayOutsideClickDispatcher,\n renderer: Renderer2\n ) {\n renderer.setStyle(this.elementRef.nativeElement, 'position', 'relative');\n const container = {\n getContainerElement: () => this.elementRef.nativeElement\n };\n\n this.overlay = new Overlay(\n scrollStrategies,\n container as any,\n componentFactoryResolver,\n positionBuilder,\n keyboardDispatcher,\n injector,\n ngZone,\n document,\n directionality,\n location,\n outsideClickDispatcher\n );\n\n this.overlayRef = this.overlay.create({\n positionStrategy: this.overlay.position().global().centerHorizontally().centerVertically(),\n hasBackdrop: true\n });\n }\n\n public set overlayMessage(value: string) {\n this._overlayMessage$.next(value);\n }\n\n public showOverlay(): void {\n if (this.overLayTemplate) {\n this.overlayRef.attach(new TemplatePortal(this.overLayTemplate, this.viewContainerRef));\n } else if (this.overlayComponent) {\n const ref = this.overlayRef.attach(new ComponentPortal(this.overlayComponent));\n if (this.overlayComponent === MessageOverlayComponent) {\n ref.instance.message$ = this._overlayMessage$.asObservable();\n }\n } else {\n const ref = this.overlayRef.attach(new ComponentPortal(MessageOverlayComponent));\n ref.instance.message$ = this._overlayMessage$.asObservable();\n }\n }\n\n public hideOverlay(): void {\n this.overlayRef.detach();\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'fileSize'\n})\nexport class FileSizePipe implements PipeTransform {\n private readonly units = ['bytes', 'KB', 'MB', 'GB'];\n\n public transform(value: any, precision: number = 2): any {\n let bytes = +value;\n if (isNaN(bytes) || !isFinite(bytes)) {\n return '?';\n }\n\n let unit = 0;\n while (bytes >= 1024 && unit < this.units.length) {\n bytes /= 1024;\n unit++;\n }\n\n if (unit === 0) {\n return `${bytes} ${this.units[unit]}`;\n }\n\n return `${bytes.toFixed(+precision)} ${this.units[unit]}`;\n }\n}\n","import { coerceBooleanProperty } from '@angular/cdk/coercion';\nimport { Component, ElementRef, HostBinding, Input, OnDestroy, Optional, Self, ViewChild } from '@angular/core';\nimport { ControlValueAccessor, NgControl } from '@angular/forms';\nimport { MatFormFieldControl } from '@angular/material/form-field';\nimport { BehaviorSubject, Observable, Subject } from 'rxjs';\n\nexport const noop = () => {};\n\n@Component({\n selector: 'ngssm-file-picker',\n templateUrl: './file-picker.component.html',\n styleUrls: ['./file-picker.component.scss'],\n providers: [{ provide: MatFormFieldControl, useExisting: FilePickerComponent }]\n})\nexport class FilePickerComponent implements MatFormFieldControl<File>, ControlValueAccessor, OnDestroy {\n private static nextId = 0;\n\n private readonly _displayDetails$ = new BehaviorSubject<boolean>(true);\n\n private onChangeCallback: (_: any) => void = noop;\n private _required = false;\n private _disabled = false;\n\n @ViewChild('fileInput', { static: true }) fileInput: ElementRef | undefined;\n\n constructor(@Optional() @Self() public ngControl: NgControl) {\n // Replace the provider from above with this.\n if (this.ngControl != null) {\n // Setting the value accessor directly (instead of using\n // the providers) to avoid running into a circular import.\n this.ngControl.valueAccessor = this;\n }\n }\n\n @HostBinding('id') public id = `file-picker-${FilePickerComponent.nextId++}`;\n public controlType = 'file-picker';\n public placeholder: string = '';\n public focused: boolean = false;\n public stateChanges = new Subject<void>();\n public value: File | null = null;\n public autofilled?: boolean | undefined;\n public userAriaDescribedBy?: string | undefined;\n\n public get empty(): boolean {\n return this.value === null;\n }\n\n public get shouldLabelFloat(): boolean {\n return this.value !== null;\n }\n\n @Input()\n public get required(): boolean {\n return this._required;\n }\n\n public set required(value: boolean) {\n this._required = coerceBooleanProperty(value);\n this.stateChanges.next();\n }\n\n @Input()\n public get disabled(): boolean {\n return this._disabled;\n }\n\n public set disabled(value: boolean) {\n this._disabled = coerceBooleanProperty(value);\n this.stateChanges.next();\n }\n\n public get errorState(): boolean {\n return this.ngControl.invalid ?? false;\n }\n\n public get lastModificationDate(): string {\n if (this.value) {\n const date = new Date(this.value.lastModified);\n return date.toISOString();\n }\n\n return '';\n }\n\n public get displayDetails$(): Observable<boolean> {\n return this._displayDetails$.asObservable();\n }\n\n @Input()\n public set displayDetails(value: boolean) {\n this._displayDetails$.next(value);\n }\n\n public setDescribedByIds(ids: string[]): void {}\n\n public setDisabledState(isDisabled: boolean): void {\n this.disabled = isDisabled;\n }\n\n public onContainerClick(event: MouseEvent): void {\n if (!this.disabled) {\n this.fileInput?.nativeElement.click();\n }\n }\n\n public writeValue(obj: any): void {\n if (obj !== undefined && obj !== null) {\n this.updateValue(obj);\n }\n }\n\n public registerOnChange(fn: any): void {\n this.onChangeCallback = fn;\n }\n\n public registerOnTouched(fn: any): void {}\n\n public ngOnDestroy(): void {\n this.stateChanges.complete();\n }\n\n public onDrop(event: any): void {\n this.preventAndStop(event);\n if (!this.disabled) {\n this.updateValue(event.dataTransfer.files);\n }\n }\n\n public onDragOver(event: any): void {\n this.preventAndStop(event);\n }\n\n public onDragLeave(event: any): void {\n this.preventAndStop(event);\n }\n\n public onFileSelected(event: any): void {\n this.updateValue(this.fileInput?.nativeElement.files);\n }\n\n private preventAndStop(event: any): void {\n event.stopPropagation();\n event.preventDefault();\n }\n\n private updateValue(files: FileList): void {\n if (files.length > 0) {\n this.value = files[0];\n this.stateChanges.next();\n this.onChangeCallback(this.value);\n }\n }\n}\n","<div class=\"file-picker-container\" (drop)=\"onDrop($event)\" (dragover)=\"onDragOver($event)\"\n (dragleave)=\"onDragLeave($event)\" [ngClass]=\"{'picker-disabled': disabled}\">\n <input type=\"file\" class=\"hidden\" #fileInput (change)=\"onFileSelected($event)\">\n <div *ngIf=\"empty === false\" class=\"flex-row-center\">\n <div class=\"file-picker-file-name\">\n {{value?.name}}\n </div>\n <div class=\"file-picker-file-information\" *ngIf=\"(displayDetails$ | async) === true\">\n {{value?.size | fileSize}}, last modified on {{lastModificationDate}}\n </div>\n </div>\n</div>","import { NgModule } from '@angular/core';\nimport { RouterModule } from '@angular/router';\n\nimport { MaterialImportsModule } from './material';\nimport { NotFoundComponent } from './not-found.component';\nimport { ComponentOverlayDirective, EmptyOverlayComponent, MessageOverlayComponent } from './overlay';\nimport { FilePickerComponent } from './file-picker/file-picker.component';\nimport { FileSizePipe } from './file-picker/file-size.pipe';\n\n@NgModule({\n declarations: [\n ComponentOverlayDirective,\n MessageOverlayComponent,\n EmptyOverlayComponent,\n NotFoundComponent,\n FilePickerComponent,\n FileSizePipe\n ],\n imports: [RouterModule, MaterialImportsModule],\n exports: [ComponentOverlayDirective, FilePickerComponent, FileSizePipe]\n})\nexport class NgssmToolkitModule {}\n","import { Provider } from '@angular/core';\nimport { FormControl, FormGroupDirective, NgForm } from '@angular/forms';\nimport { ErrorStateMatcher } from '@angular/material/core';\n\nexport class DefaultErrorStateMatcher implements ErrorStateMatcher {\n isErrorState(control: FormControl | null, form: FormGroupDirective | NgForm | null): boolean {\n return !!(control && control.invalid);\n }\n}\n\nexport const useDefaultErrorStateMatcher: Provider = { provide: ErrorStateMatcher, useClass: DefaultErrorStateMatcher };\n","import { Component, ChangeDetectionStrategy, Inject } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MAT_SNACK_BAR_DATA } from '@angular/material/snack-bar';\n\n@Component({\n selector: 'ngssm-notification-error',\n standalone: true,\n imports: [CommonModule, MatIconModule],\n templateUrl: './ngssm-notification-error.component.html',\n styleUrls: ['./ngssm-notification-error.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class NgssmNotificationErrorComponent {\n constructor(@Inject(MAT_SNACK_BAR_DATA) public message: string) {}\n}\n","<mat-icon class=\"fa-solid fa-triangle-exclamation with-margin-right-12\" color=\"accent\"></mat-icon>\n<span class=\"ngssm-notification-error-message\">{{message}}</span>\n","import { Component, ChangeDetectionStrategy, Inject } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { MAT_SNACK_BAR_DATA } from '@angular/material/snack-bar';\nimport { MatIconModule } from '@angular/material/icon';\n\n@Component({\n selector: 'ngssm-notification-success',\n standalone: true,\n imports: [CommonModule, MatIconModule],\n templateUrl: './ngssm-notification-success.component.html',\n styleUrls: ['./ngssm-notification-success.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class NgssmNotificationSuccessComponent {\n constructor(@Inject(MAT_SNACK_BAR_DATA) public message: string) {}\n}\n","<mat-icon class=\"fa-solid fa-check with-margin-right-12 ngssm-notification-success-icon\" color=\"primary\"></mat-icon>\n<span class=\"ngssm-notification-success-message\">{{message}}</span>\n\n","import { Injectable } from '@angular/core';\nimport { MatSnackBar } from '@angular/material/snack-bar';\n\nimport { NgssmNotificationErrorComponent } from './ngssm-notification-error/ngssm-notification-error.component';\nimport { NgssmNotificationSuccessComponent } from './ngssm-notification-success/ngssm-notification-success.component';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class NgssmNotifierService {\n constructor(private matSnackBar: MatSnackBar) {}\n\n public notifyError(message: string): void {\n this.matSnackBar.openFromComponent(NgssmNotificationErrorComponent, {\n panelClass: 'ngssm-notification-panel',\n data: message\n });\n }\n\n public notifySuccess(message: string): void {\n this.matSnackBar.openFromComponent(NgssmNotificationSuccessComponent, {\n panelClass: 'ngssm-notification-panel',\n data: message\n });\n }\n}\n","import { InjectionToken } from '@angular/core';\n\nexport interface RegexValidationResult {\n isValid: boolean;\n error?: string;\n}\n\nexport interface RegexEditorValidator {\n validatePattern: (pattern: string) => RegexValidationResult;\n isMatch: (pattern: string, testString: string) => boolean;\n}\n\nexport const NGSSM_REGEX_EDITOR_VALIDATOR = new InjectionToken<RegexEditorValidator>('NGSSM_NGSSM_REGEX_EDITOR_VALIDATORREDUCER');\n\nexport const defaultRegexEditorValidator: RegexEditorValidator = {\n validatePattern: (pattern: string) => {\n try {\n const regex = new RegExp(pattern);\n if (regex.test('')) {\n return { isValid: true };\n }\n } catch (error: any) {\n return { isValid: false, error: error.message } as any;\n }\n\n return { isValid: true };\n },\n isMatch: (pattern: string, testString: string) => {\n try {\n const regex = new RegExp(pattern);\n if (regex.test(testString)) {\n return true;\n }\n } catch (error: any) {\n return false;\n }\n\n return false;\n }\n};\n","import { Component, ChangeDetectionStrategy, EventEmitter, Output, Input, Inject, Optional } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { AbstractControl, FormControl, ReactiveFormsModule, ValidationErrors, Validators } from '@angular/forms';\nimport { MatCardModule } from '@angular/material/card';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { MatInputModule } from '@angular/material/input';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatIconModule } from '@angular/material/icon';\nimport { BehaviorSubject, combineLatest, Observable } from 'rxjs';\n\nimport { useDefaultErrorStateMatcher } from '../../default-error-state-matcher';\nimport { defaultRegexEditorValidator, NGSSM_REGEX_EDITOR_VALIDATOR, RegexEditorValidator } from '../regex-editor-validator';\n\n@Component({\n selector: 'ngssm-regex-editor',\n standalone: true,\n imports: [CommonModule, ReactiveFormsModule, MatCardModule, MatFormFieldModule, MatInputModule, MatButtonModule, MatIconModule],\n providers: [useDefaultErrorStateMatcher],\n templateUrl: './ngssm-regex-editor.component.html',\n styleUrls: ['./ngssm-regex-editor.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class NgssmRegexEditorComponent {\n private readonly regexValidator: RegexEditorValidator;\n private readonly _isRegexValid$ = new BehaviorSubject<boolean | null>(null);\n\n public readonly regexControl: FormControl<string | null>;\n public readonly testStringControl = new FormControl<string>('');\n\n @Output() closeEditor = new EventEmitter<string | undefined>();\n\n constructor(@Inject(NGSSM_REGEX_EDITOR_VALIDATOR) @Optional() validator?: RegexEditorValidator) {\n this.regexValidator = validator ?? defaultRegexEditorValidator;\n this.regexControl = new FormControl<string | null>(null, [Validators.required, (c) => this.validatedRegex(c)]);\n combineLatest([this.regexControl.valueChanges, this.testStringControl.valueChanges, this.regexControl.statusChanges]).subscribe(\n (values) => {\n if (this.regexControl.invalid || (values[1] ?? '').length === 0) {\n this._isRegexValid$.next(null);\n return;\n }\n\n const isMatch = this.regexValidator.isMatch(values[0] ?? '', values[1] ?? '');\n this._isRegexValid$.next(isMatch);\n }\n );\n }\n\n @Input() set regex(value: string | undefined | null) {\n this.regexControl.setValue(value ?? null);\n }\n\n public get isRegexValid$(): Observable<boolean | null> {\n return this._isRegexValid$.asObservable();\n }\n\n public cancel(): void {\n this.closeEditor.emit();\n }\n\n public submit(): void {\n this.closeEditor.emit(this.regexControl.value ?? '');\n }\n\n private validatedRegex(control: AbstractControl): ValidationErrors | null {\n const result = this.regexValidator.validatePattern(control.value);\n if (result.isValid) {\n return null;\n }\n\n return {\n regex: result.error\n };\n }\n}\n","<mat-card class=\"flex-column-stretch fxFlex\">\n <mat-card-header>\n <mat-card-title>Regex Editor</mat-card-title>\n </mat-card-header>\n <mat-card-content class=\"flex-column-stretch fxFlex\">\n <mat-form-field class=\"with-margin-top-8\">\n <mat-label>Regular expression</mat-label>\n <input matInput [formControl]=\"regexControl\">\n <mat-error *ngIf=\"regexControl.errors?.['regex']\">\n {{regexControl.errors?.['regex']}}\n </mat-error>\n </mat-form-field>\n <div class=\"flex-row-center\">\n <mat-form-field class=\"fxFlex\">\n <mat-label>Test string</mat-label>\n <input matInput [formControl]=\"testStringControl\">\n </mat-form-field>\n <mat-icon class=\"fa-solid fa-check success with-margin-left-12\"\n *ngIf=\"(isRegexValid$ | async) === true\"></mat-icon>\n <mat-icon class=\"fa-solid fa-xmark failure with-margin-left-12\"\n *ngIf=\"(isRegexValid$ | async) === false\"></mat-icon>\n </div>\n </mat-card-content>\n <mat-card-actions class=\"flex-row-center\">\n <span class=\"fxFlex\"></span>\n <button mat-button (click)=\"cancel()\" id=\"cancelButton\">Cancel</button>\n <button mat-stroked-button color=\"primary\"\n [disabled]=\"regexControl.invalid || ((isRegexValid$ | async) === false)\" (click)=\"submit()\"\n id=\"submitButton\">\n Submit\n </button>\n </mat-card-actions>\n</mat-card>","import { Component, ChangeDetectionStrategy, Input } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { MatIconModule } from '@angular/material/icon';\nimport { OverlayModule } from '@angular/cdk/overlay';\nimport { MatButtonModule } from '@angular/material/button';\nimport { BehaviorSubject, Observable } from 'rxjs';\n\nimport { NgssmRegexEditorComponent } from '../ngssm-regex-editor/ngssm-regex-editor.component';\n\n@Component({\n selector: 'ngssm-regex-editor-toggle',\n standalone: true,\n imports: [CommonModule, MatIconModule, MatButtonModule, OverlayModule, NgssmRegexEditorComponent],\n templateUrl: './ngssm-regex-editor-toggle.component.html',\n styleUrls: ['./ngssm-regex-editor-toggle.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class NgssmRegexEditorToggleComponent {\n private readonly _isOpen$ = new BehaviorSubject<boolean>(false);\n private readonly _isDisabled$ = new BehaviorSubject<boolean>(false);\n\n public regexValue: string | undefined | null;\n\n @Input() public inputElement: HTMLInputElement | undefined;\n @Input() set disabled(value: boolean) {\n this._isDisabled$.next(value);\n }\n\n public get isOpen$(): Observable<boolean> {\n return this._isOpen$.asObservable();\n }\n\n public get isDisabled$(): Observable<boolean> {\n return this._isDisabled$.asObservable();\n }\n\n public openEditor(event: MouseEvent): void {\n if (this._isDisabled$.getValue()) {\n return;\n }\n\n event.stopPropagation();\n this.regexValue = this.inputElement?.value;\n this._isOpen$.next(true);\n }\n\n public closeEditor(regex: string | undefined): void {\n this._isOpen$.next(false);\n if (regex !== undefined && this.inputElement) {\n this.inputElement.value = regex;\n this.inputElement.dispatchEvent(new Event('input', { bubbles: true }));\n }\n }\n}\n","<button mat-icon-button (click)=\"openEditor($event)\" [disabled]=\"isDisabled$ | async\" color=\"primary\" id=\"toggleButton\">\n <mat-icon class=\"fa-solid fa-up-right-from-square ngssm-regex-editor-toggle-icon\" cdkOverlayOrigin\n #trigger=\"cdkOverlayOrigin\"></mat-icon>\n</button>\n\n<ng-template cdkConnectedOverlay [cdkConnectedOverlayOrigin]=\"trigger\"\n [cdkConnectedOverlayOpen]=\"(isOpen$ | async) === true\">\n <ngssm-regex-editor (closeEditor)=\"closeEditor($event)\" [regex]=\"regexValue\"></ngssm-regex-editor>\n</ng-template>","import { Component, ChangeDetectionStrategy, Inject } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { MatDialogModule, MAT_DIALOG_DATA } from '@angular/material/dialog';\nimport { MatButtonModule } from '@angular/material/button';\n\nimport { NgSsmComponent, Store } from 'ngssm-store';\n\nimport { NgssmConfirmationDialogConfig } from '../ngssm-confirmation-dialog-config';\n\n@Component({\n selector: 'ngssm-confirmation-dialog',\n standalone: true,\n imports: [CommonModule, MatDialogModule, MatButtonModule],\n templateUrl: './ngssm-confirmation-dialog.component.html',\n styleUrls: ['./ngssm-confirmation-dialog.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class NgssmConfirmationDialogComponent extends NgSsmComponent {\n constructor(store: Store, @Inject(MAT_DIALOG_DATA) public data: NgssmConfirmationDialogConfig) {\n super(store);\n }\n}\n","<mat-dialog-content class=\"flex-column-stretch fxFlex message-container\">\n{{data.message}}\n</mat-dialog-content>\n<mat-dialog-actions class=\"flex-row-center\">\n <span class=\"fxFlex\"></span>\n <button mat-button [matDialogClose]=\"data.cancelLabel\" id=\"cancelButton\">{{data.cancelLabel}}</button>\n <button mat-raised-button [color]=\"data.submitButtonColor\" [matDialogClose]=\"data.submitLabel\" id=\"submitButton\">\n {{data.submitLabel}}\n </button>\n</mat-dialog-actions>\n","import { Injectable } from '@angular/core';\nimport { MatDialog } from '@angular/material/dialog';\nimport { Observable } from 'rxjs';\n\nimport { NgssmConfirmationDialogConfig } from './ngssm-confirmation-dialog-config';\nimport { NgssmConfirmationDialogComponent } from './ngssm-confirmation-dialog/ngssm-confirmation-dialog.component';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class NgssmConfirmationDialogService {\n constructor(private matDialog: MatDialog) {}\n\n public displayConfirmationDialog(config: NgssmConfirmationDialogConfig): Observable<string> {\n return this.matDialog\n .open(NgssmConfirmationDialogComponent, {\n disableClose: true,\n data: config,\n minWidth: config.minWidth,\n minHeight: config.minHeight\n })\n .afterClosed();\n }\n}\n","export const isNullOrUndefined = <T = any>(value: T): boolean => value === null || value === undefined;\n","/*\n * Public API Surface of ngssm-toolkit\n */\n\nexport * from './lib/ngssm-toolkit.module';\nexport * from './lib/material';\nexport * from './lib/overlay';\nexport * from './lib/default-error-state-matcher';\nexport * from './lib/not-found.component';\nexport * from './lib/file-picker';\nexport * from './lib/notification';\nexport * from './lib/regex-editor';\nexport * from './lib/confirmation-dialog';\nexport * from './lib/object-helpers';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1","i3","i2","i3.FileSizePipe","i7","i4"],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ export * from './ngssm-confirmation-dialog/ngssm-confirmation-dialog.component';
2
+ export * from './ngssm-confirmation-dialog.service';
3
+ export * from './ngssm-confirmation-dialog-config';
@@ -0,0 +1,9 @@
1
+ import { NgSsmComponent, Store } from 'ngssm-store';
2
+ import { NgssmConfirmationDialogConfig } from '../ngssm-confirmation-dialog-config';
3
+ import * as i0 from "@angular/core";
4
+ export declare class NgssmConfirmationDialogComponent extends NgSsmComponent {
5
+ data: NgssmConfirmationDialogConfig;
6
+ constructor(store: Store, data: NgssmConfirmationDialogConfig);
7
+ static ɵfac: i0.ɵɵFactoryDeclaration<NgssmConfirmationDialogComponent, never>;
8
+ static ɵcmp: i0.ɵɵComponentDeclaration<NgssmConfirmationDialogComponent, "ngssm-confirmation-dialog", never, {}, {}, never, never, true, never>;
9
+ }
@@ -0,0 +1,8 @@
1
+ export interface NgssmConfirmationDialogConfig {
2
+ message: string;
3
+ cancelLabel: string;
4
+ submitLabel: string;
5
+ submitButtonColor: string;
6
+ minWidth?: number;
7
+ minHeight?: number;
8
+ }
@@ -0,0 +1,11 @@
1
+ import { MatDialog } from '@angular/material/dialog';
2
+ import { Observable } from 'rxjs';
3
+ import { NgssmConfirmationDialogConfig } from './ngssm-confirmation-dialog-config';
4
+ import * as i0 from "@angular/core";
5
+ export declare class NgssmConfirmationDialogService {
6
+ private matDialog;
7
+ constructor(matDialog: MatDialog);
8
+ displayConfirmationDialog(config: NgssmConfirmationDialogConfig): Observable<string>;
9
+ static ɵfac: i0.ɵɵFactoryDeclaration<NgssmConfirmationDialogService, never>;
10
+ static ɵprov: i0.ɵɵInjectableDeclaration<NgssmConfirmationDialogService>;
11
+ }
@@ -0,0 +1 @@
1
+ export declare const isNullOrUndefined: <T = any>(value: T) => boolean;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ngssm-toolkit",
3
- "version": "15.2.11",
3
+ "version": "15.2.12",
4
4
  "description": "NgSsm - Utilities for angular applications.",
5
5
  "author": "Lion Marc",
6
6
  "license": "MIT",
package/public-api.d.ts CHANGED
@@ -6,3 +6,5 @@ export * from './lib/not-found.component';
6
6
  export * from './lib/file-picker';
7
7
  export * from './lib/notification';
8
8
  export * from './lib/regex-editor';
9
+ export * from './lib/confirmation-dialog';
10
+ export * from './lib/object-helpers';