@enigmatry/entry-components 20.3.1-preview.1 → 21.1.1

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.
Files changed (39) hide show
  1. package/README.md +1 -0
  2. package/fesm2022/enigmatry-entry-components-button.mjs +14 -11
  3. package/fesm2022/enigmatry-entry-components-button.mjs.map +1 -1
  4. package/fesm2022/enigmatry-entry-components-common.mjs +31 -31
  5. package/fesm2022/enigmatry-entry-components-common.mjs.map +1 -1
  6. package/fesm2022/enigmatry-entry-components-date-time-picker.mjs +20 -20
  7. package/fesm2022/enigmatry-entry-components-date-time-picker.mjs.map +1 -1
  8. package/fesm2022/enigmatry-entry-components-dialog.mjs +21 -21
  9. package/fesm2022/enigmatry-entry-components-dialog.mjs.map +1 -1
  10. package/fesm2022/enigmatry-entry-components-file-input.mjs +11 -12
  11. package/fesm2022/enigmatry-entry-components-file-input.mjs.map +1 -1
  12. package/fesm2022/enigmatry-entry-components-permissions.mjs +10 -10
  13. package/fesm2022/enigmatry-entry-components-permissions.mjs.map +1 -1
  14. package/fesm2022/enigmatry-entry-components-search-filter.mjs +33 -33
  15. package/fesm2022/enigmatry-entry-components-search-filter.mjs.map +1 -1
  16. package/fesm2022/enigmatry-entry-components-spinner.mjs +22 -13
  17. package/fesm2022/enigmatry-entry-components-spinner.mjs.map +1 -1
  18. package/fesm2022/enigmatry-entry-components-table.mjs +224 -322
  19. package/fesm2022/enigmatry-entry-components-table.mjs.map +1 -1
  20. package/fesm2022/enigmatry-entry-components-validation.mjs +31 -24
  21. package/fesm2022/enigmatry-entry-components-validation.mjs.map +1 -1
  22. package/fesm2022/enigmatry-entry-components.mjs +4 -4
  23. package/fesm2022/enigmatry-entry-components.mjs.map +1 -1
  24. package/package.json +25 -24
  25. package/styles/modules/components/toggle/_generator.scss +1 -1
  26. package/styles/partials/core/components/forms/_general.scss +1 -0
  27. package/table/README.md +57 -44
  28. package/{button/index.d.ts → types/enigmatry-entry-components-button.d.ts} +1 -1
  29. package/types/enigmatry-entry-components-table.d.ts +256 -0
  30. package/table/index.d.ts +0 -260
  31. /package/{common/index.d.ts → types/enigmatry-entry-components-common.d.ts} +0 -0
  32. /package/{date-time-picker/index.d.ts → types/enigmatry-entry-components-date-time-picker.d.ts} +0 -0
  33. /package/{dialog/index.d.ts → types/enigmatry-entry-components-dialog.d.ts} +0 -0
  34. /package/{file-input/index.d.ts → types/enigmatry-entry-components-file-input.d.ts} +0 -0
  35. /package/{permissions/index.d.ts → types/enigmatry-entry-components-permissions.d.ts} +0 -0
  36. /package/{search-filter/index.d.ts → types/enigmatry-entry-components-search-filter.d.ts} +0 -0
  37. /package/{spinner/index.d.ts → types/enigmatry-entry-components-spinner.d.ts} +0 -0
  38. /package/{validation/index.d.ts → types/enigmatry-entry-components-validation.d.ts} +0 -0
  39. /package/{index.d.ts → types/enigmatry-entry-components.d.ts} +0 -0
@@ -1,27 +1,27 @@
1
1
  import * as i0 from '@angular/core';
2
2
  import { inject, Input, HostBinding, Component, ChangeDetectorRef, ViewChild, Output, ChangeDetectionStrategy, NgModule } from '@angular/core';
3
- import * as i3$1 from '@angular/forms';
3
+ import * as i2$1 from '@angular/forms';
4
4
  import { FormControl, FormsModule, ReactiveFormsModule } from '@angular/forms';
5
5
  import { DateAdapter, MAT_DATE_FORMATS } from '@angular/material/core';
6
6
  import * as i1 from '@enigmatry/entry-components/common';
7
7
  import { NgControlAccessorDirective, ENTRY_MAT_DATE_TIME_FORMATS, EntryDateTimeAdapter, NoopControlValueAccessorDirective } from '@enigmatry/entry-components/common';
8
8
  import { Subject, takeUntil } from 'rxjs';
9
9
  import { createInjectionToken, provideConfig } from '@enigmatry/entry-components';
10
- import * as i4 from '@angular/material/form-field';
10
+ import * as i3 from '@angular/material/form-field';
11
11
  import { MatFormFieldModule } from '@angular/material/form-field';
12
12
  import * as i2 from '@angular/material/select';
13
13
  import { MatSelectModule } from '@angular/material/select';
14
- import * as i3 from '@angular/common';
14
+ import * as i3$1 from '@angular/common';
15
15
  import { CommonModule } from '@angular/common';
16
- import * as i5 from '@angular/material/datepicker';
16
+ import * as i4 from '@angular/material/datepicker';
17
17
  import { MatDatepickerModule } from '@angular/material/datepicker';
18
- import * as i6 from '@angular/material/input';
18
+ import * as i5 from '@angular/material/input';
19
19
  import { MatInputModule } from '@angular/material/input';
20
- import * as i7 from '@angular/material/button';
20
+ import * as i6 from '@angular/material/button';
21
21
  import { MatButtonModule } from '@angular/material/button';
22
- import * as i8 from '@angular/material/icon';
22
+ import * as i7 from '@angular/material/icon';
23
23
  import { MatIconModule } from '@angular/material/icon';
24
- import * as i9 from '@enigmatry/entry-components/validation';
24
+ import * as i8 from '@enigmatry/entry-components/validation';
25
25
  import { EntryValidationModule } from '@enigmatry/entry-components/validation';
26
26
 
27
27
  /**
@@ -101,10 +101,10 @@ class EntryTimePickerComponent {
101
101
  this.hours += this.halfADay;
102
102
  }
103
103
  }
104
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.10", ngImport: i0, type: EntryTimePickerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
105
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.10", type: EntryTimePickerComponent, isStandalone: false, selector: "entry-time-picker", inputs: { date: "date", showSeconds: "showSeconds", is12HourClock: "is12HourClock", defaultTime: "defaultTime" }, host: { properties: { "class": "this.class" } }, usesOnChanges: true, ngImport: i0, template: "<mat-form-field appearance=\"fill\">\n <mat-select [(value)]=\"hours\" [hideSingleSelectionIndicator]=\"true\" [panelWidth]=\"null\">\n @for (hour of possibleHours; track hour) {\n <mat-option [value]=\"hour\">{{hour | number:'2.0'}}</mat-option>\n }\n </mat-select>\n</mat-form-field>\n<span class=\"time-separator\">&#58;</span>\n<mat-form-field appearance=\"fill\">\n <mat-select [(value)]=\"minutes\" [hideSingleSelectionIndicator]=\"true\" [panelWidth]=\"null\">\n @for (minute of sixty; track minute) {\n <mat-option [value]=\"minute\">{{minute | number:'2.0'}}</mat-option>\n }\n </mat-select>\n</mat-form-field>\n@if (showSeconds) {\n <span class=\"time-separator\">&#58;</span>\n <mat-form-field appearance=\"fill\">\n <mat-select [(value)]=\"seconds\" [hideSingleSelectionIndicator]=\"true\" [panelWidth]=\"null\">\n @for (second of sixty; track second) {\n <mat-option [value]=\"second\">{{second | number:'2.0'}}</mat-option>\n }\n </mat-select>\n </mat-form-field>\n}\n@if (is12HourClock) {\n <mat-form-field appearance=\"fill\">\n <mat-select [(value)]=\"meridiem\" [hideSingleSelectionIndicator]=\"true\" [panelWidth]=\"null\">\n <mat-option value=\"am\">AM</mat-option>\n <mat-option value=\"pm\">PM</mat-option>\n </mat-select>\n </mat-form-field>\n}", dependencies: [{ kind: "component", type: i4.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "component", type: i2.MatSelect, selector: "mat-select", inputs: ["aria-describedby", "panelClass", "disabled", "disableRipple", "tabIndex", "hideSingleSelectionIndicator", "placeholder", "required", "multiple", "disableOptionCentering", "compareWith", "value", "aria-label", "aria-labelledby", "errorStateMatcher", "typeaheadDebounceInterval", "sortComparator", "id", "panelWidth", "canSelectNullableOptions"], outputs: ["openedChange", "opened", "closed", "selectionChange", "valueChange"], exportAs: ["matSelect"] }, { kind: "component", type: i2.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "pipe", type: i3.DecimalPipe, name: "number" }] }); }
104
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.8", ngImport: i0, type: EntryTimePickerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
105
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.8", type: EntryTimePickerComponent, isStandalone: false, selector: "entry-time-picker", inputs: { date: "date", showSeconds: "showSeconds", is12HourClock: "is12HourClock", defaultTime: "defaultTime" }, host: { properties: { "class": "this.class" } }, usesOnChanges: true, ngImport: i0, template: "<mat-form-field appearance=\"fill\">\n <mat-select [(value)]=\"hours\" [hideSingleSelectionIndicator]=\"true\" [panelWidth]=\"null\">\n @for (hour of possibleHours; track hour) {\n <mat-option [value]=\"hour\">{{hour | number:'2.0'}}</mat-option>\n }\n </mat-select>\n</mat-form-field>\n<span class=\"time-separator\">&#58;</span>\n<mat-form-field appearance=\"fill\">\n <mat-select [(value)]=\"minutes\" [hideSingleSelectionIndicator]=\"true\" [panelWidth]=\"null\">\n @for (minute of sixty; track minute) {\n <mat-option [value]=\"minute\">{{minute | number:'2.0'}}</mat-option>\n }\n </mat-select>\n</mat-form-field>\n@if (showSeconds) {\n <span class=\"time-separator\">&#58;</span>\n <mat-form-field appearance=\"fill\">\n <mat-select [(value)]=\"seconds\" [hideSingleSelectionIndicator]=\"true\" [panelWidth]=\"null\">\n @for (second of sixty; track second) {\n <mat-option [value]=\"second\">{{second | number:'2.0'}}</mat-option>\n }\n </mat-select>\n </mat-form-field>\n}\n@if (is12HourClock) {\n <mat-form-field appearance=\"fill\">\n <mat-select [(value)]=\"meridiem\" [hideSingleSelectionIndicator]=\"true\" [panelWidth]=\"null\">\n <mat-option value=\"am\">AM</mat-option>\n <mat-option value=\"pm\">PM</mat-option>\n </mat-select>\n </mat-form-field>\n}", dependencies: [{ kind: "component", type: i3.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "component", type: i2.MatSelect, selector: "mat-select", inputs: ["aria-describedby", "panelClass", "disabled", "disableRipple", "tabIndex", "hideSingleSelectionIndicator", "placeholder", "required", "multiple", "disableOptionCentering", "compareWith", "value", "aria-label", "aria-labelledby", "errorStateMatcher", "typeaheadDebounceInterval", "sortComparator", "id", "panelWidth", "canSelectNullableOptions"], outputs: ["openedChange", "opened", "closed", "selectionChange", "valueChange"], exportAs: ["matSelect"] }, { kind: "component", type: i2.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "pipe", type: i3$1.DecimalPipe, name: "number" }] }); }
106
106
  }
107
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.10", ngImport: i0, type: EntryTimePickerComponent, decorators: [{
107
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.8", ngImport: i0, type: EntryTimePickerComponent, decorators: [{
108
108
  type: Component,
109
109
  args: [{ selector: 'entry-time-picker', standalone: false, template: "<mat-form-field appearance=\"fill\">\n <mat-select [(value)]=\"hours\" [hideSingleSelectionIndicator]=\"true\" [panelWidth]=\"null\">\n @for (hour of possibleHours; track hour) {\n <mat-option [value]=\"hour\">{{hour | number:'2.0'}}</mat-option>\n }\n </mat-select>\n</mat-form-field>\n<span class=\"time-separator\">&#58;</span>\n<mat-form-field appearance=\"fill\">\n <mat-select [(value)]=\"minutes\" [hideSingleSelectionIndicator]=\"true\" [panelWidth]=\"null\">\n @for (minute of sixty; track minute) {\n <mat-option [value]=\"minute\">{{minute | number:'2.0'}}</mat-option>\n }\n </mat-select>\n</mat-form-field>\n@if (showSeconds) {\n <span class=\"time-separator\">&#58;</span>\n <mat-form-field appearance=\"fill\">\n <mat-select [(value)]=\"seconds\" [hideSingleSelectionIndicator]=\"true\" [panelWidth]=\"null\">\n @for (second of sixty; track second) {\n <mat-option [value]=\"second\">{{second | number:'2.0'}}</mat-option>\n }\n </mat-select>\n </mat-form-field>\n}\n@if (is12HourClock) {\n <mat-form-field appearance=\"fill\">\n <mat-select [(value)]=\"meridiem\" [hideSingleSelectionIndicator]=\"true\" [panelWidth]=\"null\">\n <mat-option value=\"am\">AM</mat-option>\n <mat-option value=\"pm\">PM</mat-option>\n </mat-select>\n </mat-form-field>\n}" }]
110
110
  }], propDecorators: { class: [{
@@ -207,18 +207,18 @@ class EntryDateTimePickerComponent {
207
207
  this.calendarControl?.enable({ emitEvent: false });
208
208
  }
209
209
  }
210
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.10", ngImport: i0, type: EntryDateTimePickerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
211
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.10", type: EntryDateTimePickerComponent, isStandalone: false, selector: "entry-date-time-picker", inputs: { label: "label", showSeconds: "showSeconds", min: "min", max: "max", placeholder: "placeholder", hint: "hint", defaultTime: "defaultTime", disabled: "disabled" }, outputs: { dateTimeChanged: "dateTimeChanged" }, host: { properties: { "class": "this.class" } }, providers: [
210
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.8", ngImport: i0, type: EntryDateTimePickerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
211
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.8", type: EntryDateTimePickerComponent, isStandalone: false, selector: "entry-date-time-picker", inputs: { label: "label", showSeconds: "showSeconds", min: "min", max: "max", placeholder: "placeholder", hint: "hint", defaultTime: "defaultTime", disabled: "disabled" }, outputs: { dateTimeChanged: "dateTimeChanged" }, host: { properties: { "class": "this.class" } }, providers: [
212
212
  { provide: MAT_DATE_FORMATS, useFactory: () => inject(ENTRY_MAT_DATE_TIME_FORMATS) },
213
213
  { provide: DateAdapter, useClass: EntryDateTimeAdapter }
214
- ], viewQueries: [{ propertyName: "timePicker", first: true, predicate: EntryTimePickerComponent, descendants: true, static: true }], hostDirectives: [{ directive: i1.NoopControlValueAccessorDirective }, { directive: i1.NgControlAccessorDirective }], ngImport: i0, template: "<mat-form-field>\n <mat-label>{{ label }}</mat-label>\n <input matInput [matDatepicker]=\"hiddenPicker\" [placeholder]=\"placeholder!\" [formControl]=\"formControl\">\n <mat-hint *ngIf=\"hint\">{{hint}}</mat-hint>\n <mat-datepicker #hiddenPicker class=\"hidden\"></mat-datepicker>\n <input class=\"hidden\" matInput [min]=\"minDate\" [max]=\"maxDate\" [matDatepicker]=\"picker\"\n [formControl]=\"calendarControl\" aria-label=\"Calendar Control\">\n <mat-datepicker-toggle matSuffix [for]=\"picker\"></mat-datepicker-toggle>\n <mat-datepicker #picker (opened)=\"timePicker.update()\">\n <mat-datepicker-actions>\n <entry-time-picker [date]=\"formControl.value\" [showSeconds]=\"showSeconds ?? config.showSeconds\" [is12HourClock]=\"is12HourClock\"\n [defaultTime]=\"defaultTime\"></entry-time-picker>\n <button mat-raised-button color=\"primary\" matDateRangePickerApply class=\"entry-submit-button\">\n <mat-icon aria-hidden=\"false\" aria-label=\"Apply\" fontIcon=\"done\" class=\"icon\"></mat-icon>\n </button>\n </mat-datepicker-actions>\n </mat-datepicker>\n <mat-error entryDisplayControlValidation [control]=\"formControl\"></mat-error>\n</mat-form-field>", dependencies: [{ kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3$1.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: i3$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3$1.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { 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.MatHint, selector: "mat-hint", inputs: ["align", "id"] }, { kind: "directive", type: i4.MatError, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "directive", type: i4.MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { kind: "component", type: i5.MatDatepicker, selector: "mat-datepicker", exportAs: ["matDatepicker"] }, { kind: "directive", type: i5.MatDatepickerInput, selector: "input[matDatepicker]", inputs: ["matDatepicker", "min", "max", "matDatepickerFilter"], exportAs: ["matDatepickerInput"] }, { kind: "component", type: i5.MatDatepickerToggle, selector: "mat-datepicker-toggle", inputs: ["for", "tabIndex", "aria-label", "disabled", "disableRipple"], exportAs: ["matDatepickerToggle"] }, { kind: "component", type: i5.MatDatepickerActions, selector: "mat-datepicker-actions, mat-date-range-picker-actions" }, { kind: "directive", type: i5.MatDatepickerApply, selector: "[matDatepickerApply], [matDateRangePickerApply]" }, { kind: "directive", type: i6.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly", "disabledInteractive"], exportAs: ["matInput"] }, { kind: "component", type: i7.MatButton, selector: " button[matButton], a[matButton], button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button], a[mat-button], a[mat-raised-button], a[mat-flat-button], a[mat-stroked-button] ", inputs: ["matButton"], exportAs: ["matButton", "matAnchor"] }, { kind: "component", type: i8.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i9.EntryDisplayControlValidationDirective, selector: "[entryDisplayControlValidation]", inputs: ["control"] }, { kind: "component", type: EntryTimePickerComponent, selector: "entry-time-picker", inputs: ["date", "showSeconds", "is12HourClock", "defaultTime"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
214
+ ], viewQueries: [{ propertyName: "timePicker", first: true, predicate: EntryTimePickerComponent, descendants: true, static: true }], hostDirectives: [{ directive: i1.NoopControlValueAccessorDirective }, { directive: i1.NgControlAccessorDirective }], ngImport: i0, template: "<mat-form-field>\n <mat-label>{{ label }}</mat-label>\n <input matInput [matDatepicker]=\"hiddenPicker\" [placeholder]=\"placeholder!\" [formControl]=\"formControl\">\n @if (hint) {\n <mat-hint>{{hint}}</mat-hint>\n }\n <mat-datepicker #hiddenPicker class=\"hidden\"></mat-datepicker>\n <input class=\"hidden\" matInput [min]=\"minDate\" [max]=\"maxDate\" [matDatepicker]=\"picker\"\n [formControl]=\"calendarControl\" aria-label=\"Calendar Control\">\n <mat-datepicker-toggle matSuffix [for]=\"picker\"></mat-datepicker-toggle>\n <mat-datepicker #picker (opened)=\"timePicker.update()\">\n <mat-datepicker-actions>\n <entry-time-picker [date]=\"formControl.value\" [showSeconds]=\"showSeconds ?? config.showSeconds\" [is12HourClock]=\"is12HourClock\"\n [defaultTime]=\"defaultTime\"></entry-time-picker>\n <button mat-raised-button color=\"primary\" matDateRangePickerApply class=\"entry-submit-button\">\n <mat-icon aria-hidden=\"false\" aria-label=\"Apply\" fontIcon=\"done\" class=\"icon\"></mat-icon>\n </button>\n </mat-datepicker-actions>\n </mat-datepicker>\n <mat-error entryDisplayControlValidation [control]=\"formControl\"></mat-error>\n</mat-form-field>", dependencies: [{ kind: "directive", type: i2$1.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$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2$1.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "component", type: i3.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i3.MatLabel, selector: "mat-label" }, { kind: "directive", type: i3.MatHint, selector: "mat-hint", inputs: ["align", "id"] }, { kind: "directive", type: i3.MatError, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "directive", type: i3.MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { kind: "component", type: i4.MatDatepicker, selector: "mat-datepicker", exportAs: ["matDatepicker"] }, { kind: "directive", type: i4.MatDatepickerInput, selector: "input[matDatepicker]", inputs: ["matDatepicker", "min", "max", "matDatepickerFilter"], exportAs: ["matDatepickerInput"] }, { kind: "component", type: i4.MatDatepickerToggle, selector: "mat-datepicker-toggle", inputs: ["for", "tabIndex", "aria-label", "disabled", "disableRipple"], exportAs: ["matDatepickerToggle"] }, { kind: "component", type: i4.MatDatepickerActions, selector: "mat-datepicker-actions, mat-date-range-picker-actions" }, { kind: "directive", type: i4.MatDatepickerApply, selector: "[matDatepickerApply], [matDateRangePickerApply]" }, { kind: "directive", type: i5.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly", "disabledInteractive"], exportAs: ["matInput"] }, { kind: "component", type: i6.MatButton, selector: " button[matButton], a[matButton], button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button], a[mat-button], a[mat-raised-button], a[mat-flat-button], a[mat-stroked-button] ", inputs: ["matButton"], exportAs: ["matButton", "matAnchor"] }, { kind: "component", type: i7.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i8.EntryDisplayControlValidationDirective, selector: "[entryDisplayControlValidation]", inputs: ["control"] }, { kind: "component", type: EntryTimePickerComponent, selector: "entry-time-picker", inputs: ["date", "showSeconds", "is12HourClock", "defaultTime"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
215
215
  }
216
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.10", ngImport: i0, type: EntryDateTimePickerComponent, decorators: [{
216
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.8", ngImport: i0, type: EntryDateTimePickerComponent, decorators: [{
217
217
  type: Component,
218
218
  args: [{ selector: 'entry-date-time-picker', providers: [
219
219
  { provide: MAT_DATE_FORMATS, useFactory: () => inject(ENTRY_MAT_DATE_TIME_FORMATS) },
220
220
  { provide: DateAdapter, useClass: EntryDateTimeAdapter }
221
- ], hostDirectives: [NoopControlValueAccessorDirective, NgControlAccessorDirective], changeDetection: ChangeDetectionStrategy.OnPush, standalone: false, template: "<mat-form-field>\n <mat-label>{{ label }}</mat-label>\n <input matInput [matDatepicker]=\"hiddenPicker\" [placeholder]=\"placeholder!\" [formControl]=\"formControl\">\n <mat-hint *ngIf=\"hint\">{{hint}}</mat-hint>\n <mat-datepicker #hiddenPicker class=\"hidden\"></mat-datepicker>\n <input class=\"hidden\" matInput [min]=\"minDate\" [max]=\"maxDate\" [matDatepicker]=\"picker\"\n [formControl]=\"calendarControl\" aria-label=\"Calendar Control\">\n <mat-datepicker-toggle matSuffix [for]=\"picker\"></mat-datepicker-toggle>\n <mat-datepicker #picker (opened)=\"timePicker.update()\">\n <mat-datepicker-actions>\n <entry-time-picker [date]=\"formControl.value\" [showSeconds]=\"showSeconds ?? config.showSeconds\" [is12HourClock]=\"is12HourClock\"\n [defaultTime]=\"defaultTime\"></entry-time-picker>\n <button mat-raised-button color=\"primary\" matDateRangePickerApply class=\"entry-submit-button\">\n <mat-icon aria-hidden=\"false\" aria-label=\"Apply\" fontIcon=\"done\" class=\"icon\"></mat-icon>\n </button>\n </mat-datepicker-actions>\n </mat-datepicker>\n <mat-error entryDisplayControlValidation [control]=\"formControl\"></mat-error>\n</mat-form-field>" }]
221
+ ], hostDirectives: [NoopControlValueAccessorDirective, NgControlAccessorDirective], changeDetection: ChangeDetectionStrategy.OnPush, standalone: false, template: "<mat-form-field>\n <mat-label>{{ label }}</mat-label>\n <input matInput [matDatepicker]=\"hiddenPicker\" [placeholder]=\"placeholder!\" [formControl]=\"formControl\">\n @if (hint) {\n <mat-hint>{{hint}}</mat-hint>\n }\n <mat-datepicker #hiddenPicker class=\"hidden\"></mat-datepicker>\n <input class=\"hidden\" matInput [min]=\"minDate\" [max]=\"maxDate\" [matDatepicker]=\"picker\"\n [formControl]=\"calendarControl\" aria-label=\"Calendar Control\">\n <mat-datepicker-toggle matSuffix [for]=\"picker\"></mat-datepicker-toggle>\n <mat-datepicker #picker (opened)=\"timePicker.update()\">\n <mat-datepicker-actions>\n <entry-time-picker [date]=\"formControl.value\" [showSeconds]=\"showSeconds ?? config.showSeconds\" [is12HourClock]=\"is12HourClock\"\n [defaultTime]=\"defaultTime\"></entry-time-picker>\n <button mat-raised-button color=\"primary\" matDateRangePickerApply class=\"entry-submit-button\">\n <mat-icon aria-hidden=\"false\" aria-label=\"Apply\" fontIcon=\"done\" class=\"icon\"></mat-icon>\n </button>\n </mat-datepicker-actions>\n </mat-datepicker>\n <mat-error entryDisplayControlValidation [control]=\"formControl\"></mat-error>\n</mat-form-field>" }]
222
222
  }], propDecorators: { class: [{
223
223
  type: HostBinding,
224
224
  args: ['class']
@@ -246,8 +246,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.10", ngImpo
246
246
  }] } });
247
247
 
248
248
  class EntryDateTimePickerModule {
249
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.10", ngImport: i0, type: EntryDateTimePickerModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
250
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.3.10", ngImport: i0, type: EntryDateTimePickerModule, declarations: [EntryDateTimePickerComponent,
249
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.8", ngImport: i0, type: EntryDateTimePickerModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
250
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "21.2.8", ngImport: i0, type: EntryDateTimePickerModule, declarations: [EntryDateTimePickerComponent,
251
251
  EntryTimePickerComponent], imports: [CommonModule,
252
252
  FormsModule,
253
253
  ReactiveFormsModule,
@@ -258,7 +258,7 @@ class EntryDateTimePickerModule {
258
258
  MatButtonModule,
259
259
  MatIconModule,
260
260
  EntryValidationModule], exports: [EntryDateTimePickerComponent] }); }
261
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.3.10", ngImport: i0, type: EntryDateTimePickerModule, imports: [CommonModule,
261
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "21.2.8", ngImport: i0, type: EntryDateTimePickerModule, imports: [CommonModule,
262
262
  FormsModule,
263
263
  ReactiveFormsModule,
264
264
  MatFormFieldModule,
@@ -269,7 +269,7 @@ class EntryDateTimePickerModule {
269
269
  MatIconModule,
270
270
  EntryValidationModule] }); }
271
271
  }
272
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.10", ngImport: i0, type: EntryDateTimePickerModule, decorators: [{
272
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.8", ngImport: i0, type: EntryDateTimePickerModule, decorators: [{
273
273
  type: NgModule,
274
274
  args: [{
275
275
  imports: [
@@ -1 +1 @@
1
- {"version":3,"file":"enigmatry-entry-components-date-time-picker.mjs","sources":["../../../../libs/entry-components/date-time-picker/date-time-picker-config.model.ts","../../../../libs/entry-components/date-time-picker/time-picker.component.ts","../../../../libs/entry-components/date-time-picker/time-picker.component.html","../../../../libs/entry-components/date-time-picker/date-time-picker.component.ts","../../../../libs/entry-components/date-time-picker/date-time-picker.component.html","../../../../libs/entry-components/date-time-picker/date-time-picker.module.ts","../../../../libs/entry-components/date-time-picker/enigmatry-entry-components-date-time-picker.ts"],"sourcesContent":["import { Provider } from '@angular/core';\nimport { createInjectionToken, provideConfig } from '@enigmatry/entry-components';\n/**\n * Used to provide default configurations on module level.\n */\nexport class EntryDateTimePickerConfig {\n /** Shows seconds selector in date-time-picker pop-up (default false) */\n showSeconds: boolean;\n\n constructor(config: Partial<EntryDateTimePickerConfig> = {}) {\n this.showSeconds = config.showSeconds ?? false;\n }\n}\n\n// eslint-disable-next-line no-secrets/no-secrets\n/**\n * Entry date-time-picker injection token of EntryDateTimePickerConfig type containing dialog default configurations.\n *\n * Defaults:\n * - showSeconds: false\n */\nexport const ENTRY_DATE_TIME_PICKER_CONFIG = createInjectionToken(new EntryDateTimePickerConfig());\n\n/**\n * Can be used to provide entry date-time-picker configuration.\n */\nexport const provideEntryDateTimePickerConfig = (config: Partial<EntryDateTimePickerConfig>): Provider =>\n provideConfig(ENTRY_DATE_TIME_PICKER_CONFIG, () => new EntryDateTimePickerConfig(config));","import { Component, HostBinding, Input, OnChanges, SimpleChanges, inject } from '@angular/core';\nimport { DateAdapter } from '@angular/material/core';\nimport { EntryDateTimeAdapter } from '@enigmatry/entry-components/common';\n\nexport type meridiem = 'am' | 'pm';\n\n@Component({\n selector: 'entry-time-picker',\n templateUrl: './time-picker.component.html',\n standalone: false\n})\nexport class EntryTimePickerComponent<D> implements OnChanges {\n @HostBinding('class') class = 'entry-time-picker';\n readonly timeAdapter = inject(DateAdapter) as EntryDateTimeAdapter<D, unknown>;\n private readonly hoursInDay = 24;\n private readonly halfADay = 12;\n private readonly minutesInHour = 60;\n\n @Input() date: D | undefined;\n @Input() showSeconds: boolean;\n @Input() is12HourClock: boolean;\n @Input() defaultTime: D | undefined;\n\n hours = 0;\n minutes = 0;\n seconds = 0;\n meridiem: meridiem = 'am';\n\n readonly hours12 = Array.from(Array(this.halfADay), (_, i) => i + 1);\n readonly hours24 = Array.from(Array(this.hoursInDay), (_, i) => i);\n readonly sixty = Array.from(Array(this.minutesInHour), (_, i) => i);\n\n get possibleHours() {\n return this.is12HourClock ? this.hours12 : this.hours24;\n }\n\n ngOnChanges(_changes: SimpleChanges): void {\n this.update();\n }\n\n update() {\n const now = this.timeAdapter.today();\n\n this.hours = this.date\n ? this.timeAdapter.getHours(this.date)\n : this.timeAdapter.getHours(this.defaultTime ?? now);\n\n this.minutes = this.date\n ? this.timeAdapter.getMinutes(this.date)\n : this.timeAdapter.getMinutes(this.defaultTime ?? now);\n\n this.seconds = this.showSeconds && this.date\n ? this.timeAdapter.getSeconds(this.date)\n : this.timeAdapter.getSeconds(this.defaultTime ?? now);\n\n this.meridiem = this.hours >= this.halfADay ? 'pm' : 'am';\n\n if (this.is12HourClock) {\n this.to12HourClock();\n }\n }\n\n to12HourClock() {\n if (this.hours > this.halfADay) {\n this.hours -= this.halfADay;\n }\n if (this.hours === 0) {\n this.hours = this.halfADay;\n }\n }\n\n to24HourClock() {\n if (!this.is12HourClock) {\n return;\n }\n if (this.meridiem === 'am' && this.hours === this.halfADay) {\n this.hours = 0;\n }\n if (this.meridiem === 'pm' && this.hours !== this.halfADay) {\n this.hours += this.halfADay;\n }\n }\n}\n","<mat-form-field appearance=\"fill\">\n <mat-select [(value)]=\"hours\" [hideSingleSelectionIndicator]=\"true\" [panelWidth]=\"null\">\n @for (hour of possibleHours; track hour) {\n <mat-option [value]=\"hour\">{{hour | number:'2.0'}}</mat-option>\n }\n </mat-select>\n</mat-form-field>\n<span class=\"time-separator\">&#58;</span>\n<mat-form-field appearance=\"fill\">\n <mat-select [(value)]=\"minutes\" [hideSingleSelectionIndicator]=\"true\" [panelWidth]=\"null\">\n @for (minute of sixty; track minute) {\n <mat-option [value]=\"minute\">{{minute | number:'2.0'}}</mat-option>\n }\n </mat-select>\n</mat-form-field>\n@if (showSeconds) {\n <span class=\"time-separator\">&#58;</span>\n <mat-form-field appearance=\"fill\">\n <mat-select [(value)]=\"seconds\" [hideSingleSelectionIndicator]=\"true\" [panelWidth]=\"null\">\n @for (second of sixty; track second) {\n <mat-option [value]=\"second\">{{second | number:'2.0'}}</mat-option>\n }\n </mat-select>\n </mat-form-field>\n}\n@if (is12HourClock) {\n <mat-form-field appearance=\"fill\">\n <mat-select [(value)]=\"meridiem\" [hideSingleSelectionIndicator]=\"true\" [panelWidth]=\"null\">\n <mat-option value=\"am\">AM</mat-option>\n <mat-option value=\"pm\">PM</mat-option>\n </mat-select>\n </mat-form-field>\n}","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, HostBinding, Input, OnDestroy, OnInit,\n Output, ViewChild, inject } from '@angular/core';\nimport { FormControl } from '@angular/forms';\nimport { MAT_DATE_FORMATS, DateAdapter, MatDateFormats } from '@angular/material/core';\nimport { ENTRY_MAT_DATE_TIME_FORMATS, EntryDateTimeAdapter, NgControlAccessorDirective,\n NoopControlValueAccessorDirective } from '@enigmatry/entry-components/common';\nimport { Subject, takeUntil } from 'rxjs';\nimport { ENTRY_DATE_TIME_PICKER_CONFIG, EntryDateTimePickerConfig } from './date-time-picker-config.model';\nimport { EntryTimePickerComponent } from './time-picker.component';\n\n@Component({\n selector: 'entry-date-time-picker',\n templateUrl: './date-time-picker.component.html',\n providers: [\n { provide: MAT_DATE_FORMATS, useFactory: () => inject(ENTRY_MAT_DATE_TIME_FORMATS) },\n { provide: DateAdapter, useClass: EntryDateTimeAdapter }\n ],\n hostDirectives: [NoopControlValueAccessorDirective, NgControlAccessorDirective],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: false\n})\nexport class EntryDateTimePickerComponent<D> implements OnInit, OnDestroy {\n @HostBinding('class') class = 'entry-date-time-picker';\n\n @Input() label: string;\n @Input() showSeconds: boolean | undefined;\n @Input() min: D;\n @Input() max: D;\n @Input() placeholder: string | undefined;\n @Input() hint: string | undefined;\n @Input() defaultTime: D | undefined;\n @Output() dateTimeChanged = new Subject<D>();\n\n _disabled: boolean;\n\n @Input()\n get disabled(): boolean {\n return this._disabled;\n }\n\n set disabled(value: boolean) {\n this._disabled = value;\n this.setDisabled();\n }\n\n private ngControlAccessor = inject(NgControlAccessorDirective);\n private dateTimeAdapter: EntryDateTimeAdapter<D, unknown> = inject(DateAdapter) as EntryDateTimeAdapter<D, unknown>;\n private format: MatDateFormats = inject(ENTRY_MAT_DATE_TIME_FORMATS);\n private changeDetectorRef = inject(ChangeDetectorRef);\n public config: EntryDateTimePickerConfig = inject(ENTRY_DATE_TIME_PICKER_CONFIG);\n\n // Control bound to component using FormsApi (ngModel, formControl, formControlName)\n get formControl(): FormControl<D> {\n return this.ngControlAccessor.control;\n }\n\n // Control that is connected to calendar\n calendarControl: FormControl<D | null | undefined> = new FormControl<D | undefined>(undefined);\n\n is12HourClock = this.dateTimeAdapter.is12HoursClock(this.format.display.dateInput);\n\n @ViewChild(EntryTimePickerComponent, { static: true }) timePicker: EntryTimePickerComponent<D>;\n\n private $destroy = new Subject<void>();\n\n get minDate() {\n if (!this.min) {\n return undefined;\n }\n const result = this.dateTimeAdapter.clone(this.min);\n this.dateTimeAdapter.setTime(result, 0, 0, 0);\n return result;\n }\n\n get maxDate() {\n if (!this.max) {\n return undefined;\n }\n const result = this.dateTimeAdapter.clone(this.max);\n this.dateTimeAdapter.setTime(result, 0, 0, 0);\n return result;\n }\n\n ngOnInit(): void {\n this.calendarControl.setValue(this.formControl.value, { emitEvent: false });\n this.setDisabled();\n this.formControl.statusChanges\n .pipe(takeUntil(this.$destroy))\n .subscribe(status => {\n if (status === 'DISABLED') {\n this.calendarControl.disable({ emitEvent: false });\n } else {\n this.calendarControl.enable({ emitEvent: false });\n }\n this.changeDetectorRef.markForCheck();\n });\n\n this.formControl.valueChanges\n .pipe(takeUntil(this.$destroy))\n .subscribe(value => {\n this.calendarControl.setValue(value, { emitEvent: false });\n this.dateTimeChanged.next(value);\n }\n );\n\n this.calendarControl.valueChanges\n .pipe(takeUntil(this.$destroy))\n .subscribe(value => {\n this.timePicker.to24HourClock();\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n this.dateTimeAdapter.setTime(value!, this.timePicker.hours, this.timePicker.minutes, this.timePicker.seconds);\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n this.formControl.setValue(value!);\n this.formControl.markAsDirty();\n this.formControl.markAsTouched();\n });\n }\n\n ngOnDestroy(): void {\n this.$destroy.next();\n this.$destroy.complete();\n }\n\n private setDisabled() {\n if (this._disabled && this.formControl?.enabled) {\n this.formControl?.disable();\n this.calendarControl?.disable({ emitEvent: false });\n } else if (this.formControl?.disabled) {\n this.formControl?.enable();\n this.calendarControl?.enable({ emitEvent: false });\n }\n }\n}\n","<mat-form-field>\n <mat-label>{{ label }}</mat-label>\n <input matInput [matDatepicker]=\"hiddenPicker\" [placeholder]=\"placeholder!\" [formControl]=\"formControl\">\n <mat-hint *ngIf=\"hint\">{{hint}}</mat-hint>\n <mat-datepicker #hiddenPicker class=\"hidden\"></mat-datepicker>\n <input class=\"hidden\" matInput [min]=\"minDate\" [max]=\"maxDate\" [matDatepicker]=\"picker\"\n [formControl]=\"calendarControl\" aria-label=\"Calendar Control\">\n <mat-datepicker-toggle matSuffix [for]=\"picker\"></mat-datepicker-toggle>\n <mat-datepicker #picker (opened)=\"timePicker.update()\">\n <mat-datepicker-actions>\n <entry-time-picker [date]=\"formControl.value\" [showSeconds]=\"showSeconds ?? config.showSeconds\" [is12HourClock]=\"is12HourClock\"\n [defaultTime]=\"defaultTime\"></entry-time-picker>\n <button mat-raised-button color=\"primary\" matDateRangePickerApply class=\"entry-submit-button\">\n <mat-icon aria-hidden=\"false\" aria-label=\"Apply\" fontIcon=\"done\" class=\"icon\"></mat-icon>\n </button>\n </mat-datepicker-actions>\n </mat-datepicker>\n <mat-error entryDisplayControlValidation [control]=\"formControl\"></mat-error>\n</mat-form-field>","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatDatepickerModule } from '@angular/material/datepicker';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatInputModule } from '@angular/material/input';\nimport { MatSelectModule } from '@angular/material/select';\nimport { EntryValidationModule } from '@enigmatry/entry-components/validation';\nimport { EntryDateTimePickerComponent } from './date-time-picker.component';\nimport { EntryTimePickerComponent } from './time-picker.component';\n\n@NgModule({\n imports: [\n CommonModule,\n FormsModule,\n ReactiveFormsModule,\n MatFormFieldModule,\n MatDatepickerModule,\n MatInputModule,\n MatSelectModule,\n MatButtonModule,\n MatIconModule,\n EntryValidationModule\n ],\n declarations: [\n EntryDateTimePickerComponent,\n EntryTimePickerComponent\n ],\n exports: [\n EntryDateTimePickerComponent\n ]\n})\nexport class EntryDateTimePickerModule { }","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1","i2","i3","i10.EntryTimePickerComponent"],"mappings":"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"}
1
+ {"version":3,"file":"enigmatry-entry-components-date-time-picker.mjs","sources":["../../../../libs/entry-components/date-time-picker/date-time-picker-config.model.ts","../../../../libs/entry-components/date-time-picker/time-picker.component.ts","../../../../libs/entry-components/date-time-picker/time-picker.component.html","../../../../libs/entry-components/date-time-picker/date-time-picker.component.ts","../../../../libs/entry-components/date-time-picker/date-time-picker.component.html","../../../../libs/entry-components/date-time-picker/date-time-picker.module.ts","../../../../libs/entry-components/date-time-picker/enigmatry-entry-components-date-time-picker.ts"],"sourcesContent":["import { Provider } from '@angular/core';\nimport { createInjectionToken, provideConfig } from '@enigmatry/entry-components';\n/**\n * Used to provide default configurations on module level.\n */\nexport class EntryDateTimePickerConfig {\n /** Shows seconds selector in date-time-picker pop-up (default false) */\n showSeconds: boolean;\n\n constructor(config: Partial<EntryDateTimePickerConfig> = {}) {\n this.showSeconds = config.showSeconds ?? false;\n }\n}\n\n// eslint-disable-next-line no-secrets/no-secrets\n/**\n * Entry date-time-picker injection token of EntryDateTimePickerConfig type containing dialog default configurations.\n *\n * Defaults:\n * - showSeconds: false\n */\nexport const ENTRY_DATE_TIME_PICKER_CONFIG = createInjectionToken(new EntryDateTimePickerConfig());\n\n/**\n * Can be used to provide entry date-time-picker configuration.\n */\nexport const provideEntryDateTimePickerConfig = (config: Partial<EntryDateTimePickerConfig>): Provider =>\n provideConfig(ENTRY_DATE_TIME_PICKER_CONFIG, () => new EntryDateTimePickerConfig(config));","import { Component, HostBinding, Input, OnChanges, SimpleChanges, inject } from '@angular/core';\nimport { DateAdapter } from '@angular/material/core';\nimport { EntryDateTimeAdapter } from '@enigmatry/entry-components/common';\n\nexport type meridiem = 'am' | 'pm';\n\n@Component({\n selector: 'entry-time-picker',\n templateUrl: './time-picker.component.html',\n standalone: false\n})\nexport class EntryTimePickerComponent<D> implements OnChanges {\n @HostBinding('class') class = 'entry-time-picker';\n readonly timeAdapter = inject(DateAdapter) as EntryDateTimeAdapter<D, unknown>;\n private readonly hoursInDay = 24;\n private readonly halfADay = 12;\n private readonly minutesInHour = 60;\n\n @Input() date: D | undefined;\n @Input() showSeconds: boolean;\n @Input() is12HourClock: boolean;\n @Input() defaultTime: D | undefined;\n\n hours = 0;\n minutes = 0;\n seconds = 0;\n meridiem: meridiem = 'am';\n\n readonly hours12 = Array.from(Array(this.halfADay), (_, i) => i + 1);\n readonly hours24 = Array.from(Array(this.hoursInDay), (_, i) => i);\n readonly sixty = Array.from(Array(this.minutesInHour), (_, i) => i);\n\n get possibleHours() {\n return this.is12HourClock ? this.hours12 : this.hours24;\n }\n\n ngOnChanges(_changes: SimpleChanges): void {\n this.update();\n }\n\n update() {\n const now = this.timeAdapter.today();\n\n this.hours = this.date\n ? this.timeAdapter.getHours(this.date)\n : this.timeAdapter.getHours(this.defaultTime ?? now);\n\n this.minutes = this.date\n ? this.timeAdapter.getMinutes(this.date)\n : this.timeAdapter.getMinutes(this.defaultTime ?? now);\n\n this.seconds = this.showSeconds && this.date\n ? this.timeAdapter.getSeconds(this.date)\n : this.timeAdapter.getSeconds(this.defaultTime ?? now);\n\n this.meridiem = this.hours >= this.halfADay ? 'pm' : 'am';\n\n if (this.is12HourClock) {\n this.to12HourClock();\n }\n }\n\n to12HourClock() {\n if (this.hours > this.halfADay) {\n this.hours -= this.halfADay;\n }\n if (this.hours === 0) {\n this.hours = this.halfADay;\n }\n }\n\n to24HourClock() {\n if (!this.is12HourClock) {\n return;\n }\n if (this.meridiem === 'am' && this.hours === this.halfADay) {\n this.hours = 0;\n }\n if (this.meridiem === 'pm' && this.hours !== this.halfADay) {\n this.hours += this.halfADay;\n }\n }\n}\n","<mat-form-field appearance=\"fill\">\n <mat-select [(value)]=\"hours\" [hideSingleSelectionIndicator]=\"true\" [panelWidth]=\"null\">\n @for (hour of possibleHours; track hour) {\n <mat-option [value]=\"hour\">{{hour | number:'2.0'}}</mat-option>\n }\n </mat-select>\n</mat-form-field>\n<span class=\"time-separator\">&#58;</span>\n<mat-form-field appearance=\"fill\">\n <mat-select [(value)]=\"minutes\" [hideSingleSelectionIndicator]=\"true\" [panelWidth]=\"null\">\n @for (minute of sixty; track minute) {\n <mat-option [value]=\"minute\">{{minute | number:'2.0'}}</mat-option>\n }\n </mat-select>\n</mat-form-field>\n@if (showSeconds) {\n <span class=\"time-separator\">&#58;</span>\n <mat-form-field appearance=\"fill\">\n <mat-select [(value)]=\"seconds\" [hideSingleSelectionIndicator]=\"true\" [panelWidth]=\"null\">\n @for (second of sixty; track second) {\n <mat-option [value]=\"second\">{{second | number:'2.0'}}</mat-option>\n }\n </mat-select>\n </mat-form-field>\n}\n@if (is12HourClock) {\n <mat-form-field appearance=\"fill\">\n <mat-select [(value)]=\"meridiem\" [hideSingleSelectionIndicator]=\"true\" [panelWidth]=\"null\">\n <mat-option value=\"am\">AM</mat-option>\n <mat-option value=\"pm\">PM</mat-option>\n </mat-select>\n </mat-form-field>\n}","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, HostBinding, Input, OnDestroy, OnInit,\n Output, ViewChild, inject } from '@angular/core';\nimport { FormControl } from '@angular/forms';\nimport { MAT_DATE_FORMATS, DateAdapter, MatDateFormats } from '@angular/material/core';\nimport { ENTRY_MAT_DATE_TIME_FORMATS, EntryDateTimeAdapter, NgControlAccessorDirective,\n NoopControlValueAccessorDirective } from '@enigmatry/entry-components/common';\nimport { Subject, takeUntil } from 'rxjs';\nimport { ENTRY_DATE_TIME_PICKER_CONFIG, EntryDateTimePickerConfig } from './date-time-picker-config.model';\nimport { EntryTimePickerComponent } from './time-picker.component';\n\n@Component({\n selector: 'entry-date-time-picker',\n templateUrl: './date-time-picker.component.html',\n providers: [\n { provide: MAT_DATE_FORMATS, useFactory: () => inject(ENTRY_MAT_DATE_TIME_FORMATS) },\n { provide: DateAdapter, useClass: EntryDateTimeAdapter }\n ],\n hostDirectives: [NoopControlValueAccessorDirective, NgControlAccessorDirective],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: false\n})\nexport class EntryDateTimePickerComponent<D> implements OnInit, OnDestroy {\n @HostBinding('class') class = 'entry-date-time-picker';\n\n @Input() label: string;\n @Input() showSeconds: boolean | undefined;\n @Input() min: D;\n @Input() max: D;\n @Input() placeholder: string | undefined;\n @Input() hint: string | undefined;\n @Input() defaultTime: D | undefined;\n @Output() dateTimeChanged = new Subject<D>();\n\n _disabled: boolean;\n\n @Input()\n get disabled(): boolean {\n return this._disabled;\n }\n\n set disabled(value: boolean) {\n this._disabled = value;\n this.setDisabled();\n }\n\n private ngControlAccessor = inject(NgControlAccessorDirective);\n private dateTimeAdapter: EntryDateTimeAdapter<D, unknown> = inject(DateAdapter) as EntryDateTimeAdapter<D, unknown>;\n private format: MatDateFormats = inject(ENTRY_MAT_DATE_TIME_FORMATS);\n private changeDetectorRef = inject(ChangeDetectorRef);\n public config: EntryDateTimePickerConfig = inject(ENTRY_DATE_TIME_PICKER_CONFIG);\n\n // Control bound to component using FormsApi (ngModel, formControl, formControlName)\n get formControl(): FormControl<D> {\n return this.ngControlAccessor.control;\n }\n\n // Control that is connected to calendar\n calendarControl: FormControl<D | null | undefined> = new FormControl<D | undefined>(undefined);\n\n is12HourClock = this.dateTimeAdapter.is12HoursClock(this.format.display.dateInput);\n\n @ViewChild(EntryTimePickerComponent, { static: true }) timePicker: EntryTimePickerComponent<D>;\n\n private $destroy = new Subject<void>();\n\n get minDate() {\n if (!this.min) {\n return undefined;\n }\n const result = this.dateTimeAdapter.clone(this.min);\n this.dateTimeAdapter.setTime(result, 0, 0, 0);\n return result;\n }\n\n get maxDate() {\n if (!this.max) {\n return undefined;\n }\n const result = this.dateTimeAdapter.clone(this.max);\n this.dateTimeAdapter.setTime(result, 0, 0, 0);\n return result;\n }\n\n ngOnInit(): void {\n this.calendarControl.setValue(this.formControl.value, { emitEvent: false });\n this.setDisabled();\n this.formControl.statusChanges\n .pipe(takeUntil(this.$destroy))\n .subscribe(status => {\n if (status === 'DISABLED') {\n this.calendarControl.disable({ emitEvent: false });\n } else {\n this.calendarControl.enable({ emitEvent: false });\n }\n this.changeDetectorRef.markForCheck();\n });\n\n this.formControl.valueChanges\n .pipe(takeUntil(this.$destroy))\n .subscribe(value => {\n this.calendarControl.setValue(value, { emitEvent: false });\n this.dateTimeChanged.next(value);\n }\n );\n\n this.calendarControl.valueChanges\n .pipe(takeUntil(this.$destroy))\n .subscribe(value => {\n this.timePicker.to24HourClock();\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n this.dateTimeAdapter.setTime(value!, this.timePicker.hours, this.timePicker.minutes, this.timePicker.seconds);\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n this.formControl.setValue(value!);\n this.formControl.markAsDirty();\n this.formControl.markAsTouched();\n });\n }\n\n ngOnDestroy(): void {\n this.$destroy.next();\n this.$destroy.complete();\n }\n\n private setDisabled() {\n if (this._disabled && this.formControl?.enabled) {\n this.formControl?.disable();\n this.calendarControl?.disable({ emitEvent: false });\n } else if (this.formControl?.disabled) {\n this.formControl?.enable();\n this.calendarControl?.enable({ emitEvent: false });\n }\n }\n}\n","<mat-form-field>\n <mat-label>{{ label }}</mat-label>\n <input matInput [matDatepicker]=\"hiddenPicker\" [placeholder]=\"placeholder!\" [formControl]=\"formControl\">\n @if (hint) {\n <mat-hint>{{hint}}</mat-hint>\n }\n <mat-datepicker #hiddenPicker class=\"hidden\"></mat-datepicker>\n <input class=\"hidden\" matInput [min]=\"minDate\" [max]=\"maxDate\" [matDatepicker]=\"picker\"\n [formControl]=\"calendarControl\" aria-label=\"Calendar Control\">\n <mat-datepicker-toggle matSuffix [for]=\"picker\"></mat-datepicker-toggle>\n <mat-datepicker #picker (opened)=\"timePicker.update()\">\n <mat-datepicker-actions>\n <entry-time-picker [date]=\"formControl.value\" [showSeconds]=\"showSeconds ?? config.showSeconds\" [is12HourClock]=\"is12HourClock\"\n [defaultTime]=\"defaultTime\"></entry-time-picker>\n <button mat-raised-button color=\"primary\" matDateRangePickerApply class=\"entry-submit-button\">\n <mat-icon aria-hidden=\"false\" aria-label=\"Apply\" fontIcon=\"done\" class=\"icon\"></mat-icon>\n </button>\n </mat-datepicker-actions>\n </mat-datepicker>\n <mat-error entryDisplayControlValidation [control]=\"formControl\"></mat-error>\n</mat-form-field>","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatDatepickerModule } from '@angular/material/datepicker';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatInputModule } from '@angular/material/input';\nimport { MatSelectModule } from '@angular/material/select';\nimport { EntryValidationModule } from '@enigmatry/entry-components/validation';\nimport { EntryDateTimePickerComponent } from './date-time-picker.component';\nimport { EntryTimePickerComponent } from './time-picker.component';\n\n@NgModule({\n imports: [\n CommonModule,\n FormsModule,\n ReactiveFormsModule,\n MatFormFieldModule,\n MatDatepickerModule,\n MatInputModule,\n MatSelectModule,\n MatButtonModule,\n MatIconModule,\n EntryValidationModule\n ],\n declarations: [\n EntryDateTimePickerComponent,\n EntryTimePickerComponent\n ],\n exports: [\n EntryDateTimePickerComponent\n ]\n})\nexport class EntryDateTimePickerModule { }","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1","i3","i2","i9.EntryTimePickerComponent"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAEA;;AAEG;MACU,yBAAyB,CAAA;AAIlC,IAAA,WAAA,CAAY,SAA6C,EAAE,EAAA;QACvD,IAAI,CAAC,WAAW,GAAG,MAAM,CAAC,WAAW,IAAI,KAAK;IAClD;AACH;AAED;AACA;;;;;AAKG;AACI,MAAM,6BAA6B,GAAG,oBAAoB,CAAC,IAAI,yBAAyB,EAAE;AAEjG;;AAEG;MACU,gCAAgC,GAAG,CAAC,MAA0C,KACvF,aAAa,CAAC,6BAA6B,EAAE,MAAM,IAAI,yBAAyB,CAAC,MAAM,CAAC;;MChB/E,wBAAwB,CAAA;AALrC,IAAA,WAAA,GAAA;QAMwB,IAAA,CAAA,KAAK,GAAG,mBAAmB;AACxC,QAAA,IAAA,CAAA,WAAW,GAAG,MAAM,CAAC,WAAW,CAAqC;QAC7D,IAAA,CAAA,UAAU,GAAG,EAAE;QACf,IAAA,CAAA,QAAQ,GAAG,EAAE;QACb,IAAA,CAAA,aAAa,GAAG,EAAE;QAOnC,IAAA,CAAA,KAAK,GAAG,CAAC;QACT,IAAA,CAAA,OAAO,GAAG,CAAC;QACX,IAAA,CAAA,OAAO,GAAG,CAAC;QACX,IAAA,CAAA,QAAQ,GAAa,IAAI;QAEhB,IAAA,CAAA,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAC3D,IAAA,CAAA,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC;QACzD,IAAA,CAAA,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC;AAoDpE,IAAA;AAlDC,IAAA,IAAI,aAAa,GAAA;AACf,QAAA,OAAO,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO;IACzD;AAEA,IAAA,WAAW,CAAC,QAAuB,EAAA;QACjC,IAAI,CAAC,MAAM,EAAE;IACf;IAEA,MAAM,GAAA;QACJ,MAAM,GAAG,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE;AAEpC,QAAA,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;cACd,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI;AACrC,cAAE,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,IAAI,GAAG,CAAC;AAEtD,QAAA,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;cAChB,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI;AACvC,cAAE,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,IAAI,CAAC,WAAW,IAAI,GAAG,CAAC;QAExD,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC;cACpC,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI;AACvC,cAAE,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,IAAI,CAAC,WAAW,IAAI,GAAG,CAAC;AAExD,QAAA,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,QAAQ,GAAG,IAAI,GAAG,IAAI;AAEzD,QAAA,IAAI,IAAI,CAAC,aAAa,EAAE;YACtB,IAAI,CAAC,aAAa,EAAE;QACtB;IACF;IAEA,aAAa,GAAA;QACX,IAAI,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,QAAQ,EAAE;AAC9B,YAAA,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,QAAQ;QAC7B;AACA,QAAA,IAAI,IAAI,CAAC,KAAK,KAAK,CAAC,EAAE;AACpB,YAAA,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,QAAQ;QAC5B;IACF;IAEA,aAAa,GAAA;AACX,QAAA,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE;YACvB;QACF;AACA,QAAA,IAAI,IAAI,CAAC,QAAQ,KAAK,IAAI,IAAI,IAAI,CAAC,KAAK,KAAK,IAAI,CAAC,QAAQ,EAAE;AAC1D,YAAA,IAAI,CAAC,KAAK,GAAG,CAAC;QAChB;AACA,QAAA,IAAI,IAAI,CAAC,QAAQ,KAAK,IAAI,IAAI,IAAI,CAAC,KAAK,KAAK,IAAI,CAAC,QAAQ,EAAE;AAC1D,YAAA,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,QAAQ;QAC7B;IACF;8GAtEW,wBAAwB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAxB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,wBAAwB,sQCXrC,2zCAgCC,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,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,SAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,kBAAA,EAAA,YAAA,EAAA,UAAA,EAAA,eAAA,EAAA,UAAA,EAAA,8BAAA,EAAA,aAAA,EAAA,UAAA,EAAA,UAAA,EAAA,wBAAA,EAAA,aAAA,EAAA,OAAA,EAAA,YAAA,EAAA,iBAAA,EAAA,mBAAA,EAAA,2BAAA,EAAA,gBAAA,EAAA,IAAA,EAAA,YAAA,EAAA,0BAAA,CAAA,EAAA,OAAA,EAAA,CAAA,cAAA,EAAA,QAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,aAAA,CAAA,EAAA,QAAA,EAAA,CAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,SAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,IAAA,EAAA,UAAA,CAAA,EAAA,OAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,QAAA,EAAA,CAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,WAAA,EAAA,IAAA,EAAA,QAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;2FDrBY,wBAAwB,EAAA,UAAA,EAAA,CAAA;kBALpC,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,mBAAmB,cAEjB,KAAK,EAAA,QAAA,EAAA,2zCAAA,EAAA;;sBAGhB,WAAW;uBAAC,OAAO;;sBAMnB;;sBACA;;sBACA;;sBACA;;;MEAU,4BAA4B,CAAA;AAXzC,IAAA,WAAA,GAAA;QAYwB,IAAA,CAAA,KAAK,GAAG,wBAAwB;AAS5C,QAAA,IAAA,CAAA,eAAe,GAAG,IAAI,OAAO,EAAK;AAcpC,QAAA,IAAA,CAAA,iBAAiB,GAAG,MAAM,CAAC,0BAA0B,CAAC;AACtD,QAAA,IAAA,CAAA,eAAe,GAAqC,MAAM,CAAC,WAAW,CAAqC;AAC3G,QAAA,IAAA,CAAA,MAAM,GAAmB,MAAM,CAAC,2BAA2B,CAAC;AAC5D,QAAA,IAAA,CAAA,iBAAiB,GAAG,MAAM,CAAC,iBAAiB,CAAC;AAC9C,QAAA,IAAA,CAAA,MAAM,GAA8B,MAAM,CAAC,6BAA6B,CAAC;;AAQhF,QAAA,IAAA,CAAA,eAAe,GAAsC,IAAI,WAAW,CAAgB,SAAS,CAAC;AAE9F,QAAA,IAAA,CAAA,aAAa,GAAG,IAAI,CAAC,eAAe,CAAC,cAAc,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC;AAI1E,QAAA,IAAA,CAAA,QAAQ,GAAG,IAAI,OAAO,EAAQ;AAqEvC,IAAA;AAjGC,IAAA,IACI,QAAQ,GAAA;QACV,OAAO,IAAI,CAAC,SAAS;IACvB;IAEA,IAAI,QAAQ,CAAC,KAAc,EAAA;AACzB,QAAA,IAAI,CAAC,SAAS,GAAG,KAAK;QACtB,IAAI,CAAC,WAAW,EAAE;IACpB;;AASA,IAAA,IAAI,WAAW,GAAA;AACb,QAAA,OAAO,IAAI,CAAC,iBAAiB,CAAC,OAAO;IACvC;AAWA,IAAA,IAAI,OAAO,GAAA;AACT,QAAA,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE;AACb,YAAA,OAAO,SAAS;QAClB;AACA,QAAA,MAAM,MAAM,GAAG,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC;AACnD,QAAA,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;AAC7C,QAAA,OAAO,MAAM;IACf;AAEA,IAAA,IAAI,OAAO,GAAA;AACT,QAAA,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE;AACb,YAAA,OAAO,SAAS;QAClB;AACA,QAAA,MAAM,MAAM,GAAG,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC;AACnD,QAAA,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;AAC7C,QAAA,OAAO,MAAM;IACf;IAEA,QAAQ,GAAA;AACN,QAAA,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC;QAC3E,IAAI,CAAC,WAAW,EAAE;QAClB,IAAI,CAAC,WAAW,CAAC;AACd,aAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC;aAC7B,SAAS,CAAC,MAAM,IAAG;AAClB,YAAA,IAAI,MAAM,KAAK,UAAU,EAAE;gBACzB,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC;YACpD;iBAAO;gBACL,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC;YACnD;AACA,YAAA,IAAI,CAAC,iBAAiB,CAAC,YAAY,EAAE;AACvC,QAAA,CAAC,CAAC;QAEJ,IAAI,CAAC,WAAW,CAAC;AACd,aAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC;aAC7B,SAAS,CAAC,KAAK,IAAG;AACjB,YAAA,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,KAAK,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC;AAC1D,YAAA,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC;AAClC,QAAA,CAAC,CACA;QAEH,IAAI,CAAC,eAAe,CAAC;AAClB,aAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC;aAC7B,SAAS,CAAC,KAAK,IAAG;AACjB,YAAA,IAAI,CAAC,UAAU,CAAC,aAAa,EAAE;;YAE/B,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,KAAM,EAAE,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC;;AAE7G,YAAA,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,KAAM,CAAC;AACjC,YAAA,IAAI,CAAC,WAAW,CAAC,WAAW,EAAE;AAC9B,YAAA,IAAI,CAAC,WAAW,CAAC,aAAa,EAAE;AAClC,QAAA,CAAC,CAAC;IACN;IAEA,WAAW,GAAA;AACT,QAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE;AACpB,QAAA,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE;IAC1B;IAEQ,WAAW,GAAA;QACjB,IAAI,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,WAAW,EAAE,OAAO,EAAE;AAC/C,YAAA,IAAI,CAAC,WAAW,EAAE,OAAO,EAAE;YAC3B,IAAI,CAAC,eAAe,EAAE,OAAO,CAAC,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC;QACrD;AAAO,aAAA,IAAI,IAAI,CAAC,WAAW,EAAE,QAAQ,EAAE;AACrC,YAAA,IAAI,CAAC,WAAW,EAAE,MAAM,EAAE;YAC1B,IAAI,CAAC,eAAe,EAAE,MAAM,CAAC,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC;QACpD;IACF;8GA9GW,4BAA4B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAA5B,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,4BAA4B,EAAA,YAAA,EAAA,KAAA,EAAA,QAAA,EAAA,wBAAA,EAAA,MAAA,EAAA,EAAA,KAAA,EAAA,OAAA,EAAA,WAAA,EAAA,aAAA,EAAA,GAAA,EAAA,KAAA,EAAA,GAAA,EAAA,KAAA,EAAA,WAAA,EAAA,aAAA,EAAA,IAAA,EAAA,MAAA,EAAA,WAAA,EAAA,aAAA,EAAA,QAAA,EAAA,UAAA,EAAA,EAAA,OAAA,EAAA,EAAA,eAAA,EAAA,iBAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,OAAA,EAAA,YAAA,EAAA,EAAA,EAAA,SAAA,EAR1B;AACP,YAAA,EAAE,OAAO,EAAE,gBAAgB,EAAE,UAAU,EAAE,MAAM,MAAM,CAAC,2BAA2B,CAAC,EAAE;AACpF,YAAA,EAAE,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,oBAAoB;SACzD,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,YAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EA6CQ,wBAAwB,mLC7DrC,ywCAoBiB,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,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,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,OAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,IAAA,CAAA,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,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,SAAA,EAAA,QAAA,EAAA,+CAAA,EAAA,MAAA,EAAA,CAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,aAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,QAAA,EAAA,CAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,sBAAA,EAAA,MAAA,EAAA,CAAA,eAAA,EAAA,KAAA,EAAA,KAAA,EAAA,qBAAA,CAAA,EAAA,QAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,mBAAA,EAAA,QAAA,EAAA,uBAAA,EAAA,MAAA,EAAA,CAAA,KAAA,EAAA,UAAA,EAAA,YAAA,EAAA,UAAA,EAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,uDAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,iDAAA,EAAA,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,EAAA,qBAAA,CAAA,EAAA,QAAA,EAAA,CAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,SAAA,EAAA,QAAA,EAAA,iOAAA,EAAA,MAAA,EAAA,CAAA,WAAA,CAAA,EAAA,QAAA,EAAA,CAAA,WAAA,EAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,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,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,sCAAA,EAAA,QAAA,EAAA,iCAAA,EAAA,MAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,wBAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,aAAA,EAAA,eAAA,EAAA,aAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;;2FDCJ,4BAA4B,EAAA,UAAA,EAAA,CAAA;kBAXxC,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,wBAAwB,EAAA,SAAA,EAEvB;AACP,wBAAA,EAAE,OAAO,EAAE,gBAAgB,EAAE,UAAU,EAAE,MAAM,MAAM,CAAC,2BAA2B,CAAC,EAAE;AACpF,wBAAA,EAAE,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,oBAAoB;qBACzD,EAAA,cAAA,EACe,CAAC,iCAAiC,EAAE,0BAA0B,CAAC,mBAC9D,uBAAuB,CAAC,MAAM,EAAA,UAAA,EACnC,KAAK,EAAA,QAAA,EAAA,ywCAAA,EAAA;;sBAGlB,WAAW;uBAAC,OAAO;;sBAEnB;;sBACA;;sBACA;;sBACA;;sBACA;;sBACA;;sBACA;;sBACA;;sBAIA;;sBA0BA,SAAS;AAAC,gBAAA,IAAA,EAAA,CAAA,wBAAwB,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE;;;ME3B1C,yBAAyB,CAAA;8GAAzB,yBAAyB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;AAAzB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,yBAAyB,iBAP9B,4BAA4B;AAC5B,YAAA,wBAAwB,aAbxB,YAAY;YACZ,WAAW;YACX,mBAAmB;YACnB,kBAAkB;YAClB,mBAAmB;YACnB,cAAc;YACd,eAAe;YACf,eAAe;YACf,aAAa;AACb,YAAA,qBAAqB,aAOrB,4BAA4B,CAAA,EAAA,CAAA,CAAA;AAGvB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,yBAAyB,YAnB9B,YAAY;YACZ,WAAW;YACX,mBAAmB;YACnB,kBAAkB;YAClB,mBAAmB;YACnB,cAAc;YACd,eAAe;YACf,eAAe;YACf,aAAa;YACb,qBAAqB,CAAA,EAAA,CAAA,CAAA;;2FAUhB,yBAAyB,EAAA,UAAA,EAAA,CAAA;kBArBrC,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACN,oBAAA,OAAO,EAAE;wBACL,YAAY;wBACZ,WAAW;wBACX,mBAAmB;wBACnB,kBAAkB;wBAClB,mBAAmB;wBACnB,cAAc;wBACd,eAAe;wBACf,eAAe;wBACf,aAAa;wBACb;AACH,qBAAA;AACD,oBAAA,YAAY,EAAE;wBACV,4BAA4B;wBAC5B;AACH,qBAAA;AACD,oBAAA,OAAO,EAAE;wBACL;AACH;AACJ,iBAAA;;;ACjCD;;AAEG;;;;"}
@@ -74,12 +74,12 @@ class EntryDialogComponent {
74
74
  });
75
75
  this.close = (value = true) => this.mdDialogRef.close(value);
76
76
  }
77
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.10", ngImport: i0, type: EntryDialogComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
78
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.10", type: EntryDialogComponent, isStandalone: false, selector: "entry-dialog", inputs: { title: "title", buttonsAlignment: "buttonsAlignment", confirmButtonText: "confirmButtonText", cancelButtonText: "cancelButtonText", hideButtons: "hideButtons", hideCancel: "hideCancel", hideClose: "hideClose", disableConfirm: "disableConfirm", buttonsTemplate: "buttonsTemplate", confirm: "confirm", cancel: "cancel" }, ngImport: i0, template: "<div class=\"entry-dialog\" role=\"dialog\">\n <div class=\"dialog-header\">\n <h1 class=\"title\" [class.without-close-icon]=\"hideClose\" mat-dialog-title>{{ title }}</h1>\n <button mat-icon-button *ngIf=\"!hideClose\" type=\"button\" class=\"close-button\" (click)=\"cancel()\"\n aria-label=\"Close dialog\">\n <mat-icon aria-hidden=\"true\">close</mat-icon>\n </button>\n </div>\n\n <mat-dialog-content class=\"dialog-content\" [ngClass]=\"{'with-actions': !hideButtons}\">\n <ng-content></ng-content>\n </mat-dialog-content>\n\n <mat-dialog-actions class=\"dialog-actions\" [align]=\"buttonsAlignment\" *ngIf=\"!hideButtons\">\n @if(buttonsTemplate) {\n <ng-container *ngTemplateOutlet=\"buttonsTemplate\"></ng-container>\n }\n\n @else {\n <ng-container *ngTemplateOutlet=\"defaultButtonsTemplate\"></ng-container>\n }\n </mat-dialog-actions>\n\n <ng-template #defaultButtonsTemplate>\n <button cdkFocusInitial mat-button entry-submit-button (click)=\"onSubmit()\">\n <span>{{confirmButtonText}}</span>\n </button>\n <button *ngIf=\"!hideCancel\" mat-button entry-cancel-button (click)=\"cancel()\">\n <span>{{cancelButtonText}}</span>\n </button>\n </ng-template>\n</div>", styles: [""], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i2.MatDialogTitle, selector: "[mat-dialog-title], [matDialogTitle]", inputs: ["id"], exportAs: ["matDialogTitle"] }, { kind: "directive", type: i2.MatDialogActions, selector: "[mat-dialog-actions], mat-dialog-actions, [matDialogActions]", inputs: ["align"] }, { kind: "directive", type: i2.MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { kind: "component", type: i3.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i4.MatButton, selector: " button[matButton], a[matButton], button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button], a[mat-button], a[mat-raised-button], a[mat-flat-button], a[mat-stroked-button] ", inputs: ["matButton"], exportAs: ["matButton", "matAnchor"] }, { kind: "component", type: i4.MatIconButton, selector: "button[mat-icon-button], a[mat-icon-button], button[matIconButton], a[matIconButton]", exportAs: ["matButton", "matAnchor"] }, { kind: "directive", type: i5.EntryButtonDirective, selector: "[mat-button][entry-submit-button],[mat-button][entry-cancel-button]" }] }); }
77
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.8", ngImport: i0, type: EntryDialogComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
78
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.8", type: EntryDialogComponent, isStandalone: false, selector: "entry-dialog", inputs: { title: "title", buttonsAlignment: "buttonsAlignment", confirmButtonText: "confirmButtonText", cancelButtonText: "cancelButtonText", hideButtons: "hideButtons", hideCancel: "hideCancel", hideClose: "hideClose", disableConfirm: "disableConfirm", buttonsTemplate: "buttonsTemplate", confirm: "confirm", cancel: "cancel" }, ngImport: i0, template: "<div class=\"entry-dialog\" role=\"dialog\">\n <div class=\"dialog-header\">\n <h1 class=\"title\" [class.without-close-icon]=\"hideClose\" mat-dialog-title>{{ title }}</h1>\n @if (!hideClose) {\n <button mat-icon-button type=\"button\" class=\"close-button\" (click)=\"cancel()\"\n aria-label=\"Close dialog\">\n <mat-icon aria-hidden=\"true\">close</mat-icon>\n </button>\n }\n </div>\n\n <mat-dialog-content class=\"dialog-content\" [ngClass]=\"{'with-actions': !hideButtons}\">\n <ng-content></ng-content>\n </mat-dialog-content>\n\n @if (!hideButtons) {\n <mat-dialog-actions class=\"dialog-actions\" [align]=\"buttonsAlignment\">\n @if(buttonsTemplate) {\n <ng-container [ngTemplateOutlet]=\"buttonsTemplate\"></ng-container>\n }\n\n @else {\n <ng-container [ngTemplateOutlet]=\"defaultButtonsTemplate\"></ng-container>\n }\n </mat-dialog-actions>\n }\n\n <ng-template #defaultButtonsTemplate>\n <button cdkFocusInitial mat-button entry-submit-button (click)=\"onSubmit()\">\n <span>{{confirmButtonText}}</span>\n </button>\n @if (!hideCancel) {\n <button mat-button entry-cancel-button (click)=\"cancel()\">\n <span>{{cancelButtonText}}</span>\n </button>\n }\n </ng-template>\n</div>", styles: [""], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i2.MatDialogTitle, selector: "[mat-dialog-title], [matDialogTitle]", inputs: ["id"], exportAs: ["matDialogTitle"] }, { kind: "directive", type: i2.MatDialogActions, selector: "[mat-dialog-actions], mat-dialog-actions, [matDialogActions]", inputs: ["align"] }, { kind: "directive", type: i2.MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { kind: "component", type: i3.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i4.MatButton, selector: " button[matButton], a[matButton], button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button], a[mat-button], a[mat-raised-button], a[mat-flat-button], a[mat-stroked-button] ", inputs: ["matButton"], exportAs: ["matButton", "matAnchor"] }, { kind: "component", type: i4.MatIconButton, selector: "button[mat-icon-button], a[mat-icon-button], button[matIconButton], a[matIconButton]", exportAs: ["matButton", "matAnchor"] }, { kind: "directive", type: i5.EntryButtonDirective, selector: "[mat-button][entry-submit-button],[mat-button][entry-cancel-button]" }] }); }
79
79
  }
80
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.10", ngImport: i0, type: EntryDialogComponent, decorators: [{
80
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.8", ngImport: i0, type: EntryDialogComponent, decorators: [{
81
81
  type: Component,
82
- args: [{ selector: 'entry-dialog', standalone: false, template: "<div class=\"entry-dialog\" role=\"dialog\">\n <div class=\"dialog-header\">\n <h1 class=\"title\" [class.without-close-icon]=\"hideClose\" mat-dialog-title>{{ title }}</h1>\n <button mat-icon-button *ngIf=\"!hideClose\" type=\"button\" class=\"close-button\" (click)=\"cancel()\"\n aria-label=\"Close dialog\">\n <mat-icon aria-hidden=\"true\">close</mat-icon>\n </button>\n </div>\n\n <mat-dialog-content class=\"dialog-content\" [ngClass]=\"{'with-actions': !hideButtons}\">\n <ng-content></ng-content>\n </mat-dialog-content>\n\n <mat-dialog-actions class=\"dialog-actions\" [align]=\"buttonsAlignment\" *ngIf=\"!hideButtons\">\n @if(buttonsTemplate) {\n <ng-container *ngTemplateOutlet=\"buttonsTemplate\"></ng-container>\n }\n\n @else {\n <ng-container *ngTemplateOutlet=\"defaultButtonsTemplate\"></ng-container>\n }\n </mat-dialog-actions>\n\n <ng-template #defaultButtonsTemplate>\n <button cdkFocusInitial mat-button entry-submit-button (click)=\"onSubmit()\">\n <span>{{confirmButtonText}}</span>\n </button>\n <button *ngIf=\"!hideCancel\" mat-button entry-cancel-button (click)=\"cancel()\">\n <span>{{cancelButtonText}}</span>\n </button>\n </ng-template>\n</div>" }]
82
+ args: [{ selector: 'entry-dialog', standalone: false, template: "<div class=\"entry-dialog\" role=\"dialog\">\n <div class=\"dialog-header\">\n <h1 class=\"title\" [class.without-close-icon]=\"hideClose\" mat-dialog-title>{{ title }}</h1>\n @if (!hideClose) {\n <button mat-icon-button type=\"button\" class=\"close-button\" (click)=\"cancel()\"\n aria-label=\"Close dialog\">\n <mat-icon aria-hidden=\"true\">close</mat-icon>\n </button>\n }\n </div>\n\n <mat-dialog-content class=\"dialog-content\" [ngClass]=\"{'with-actions': !hideButtons}\">\n <ng-content></ng-content>\n </mat-dialog-content>\n\n @if (!hideButtons) {\n <mat-dialog-actions class=\"dialog-actions\" [align]=\"buttonsAlignment\">\n @if(buttonsTemplate) {\n <ng-container [ngTemplateOutlet]=\"buttonsTemplate\"></ng-container>\n }\n\n @else {\n <ng-container [ngTemplateOutlet]=\"defaultButtonsTemplate\"></ng-container>\n }\n </mat-dialog-actions>\n }\n\n <ng-template #defaultButtonsTemplate>\n <button cdkFocusInitial mat-button entry-submit-button (click)=\"onSubmit()\">\n <span>{{confirmButtonText}}</span>\n </button>\n @if (!hideCancel) {\n <button mat-button entry-cancel-button (click)=\"cancel()\">\n <span>{{cancelButtonText}}</span>\n </button>\n }\n </ng-template>\n</div>" }]
83
83
  }], propDecorators: { title: [{
84
84
  type: Input
85
85
  }], buttonsAlignment: [{
@@ -111,10 +111,10 @@ class EntryAlertDialogComponent extends EntryDialogComponent {
111
111
  this.config = inject(ENTRY_DIALOG_CONFIG);
112
112
  this.data = inject(MAT_DIALOG_DATA);
113
113
  }
114
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.10", ngImport: i0, type: EntryAlertDialogComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
115
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.10", type: EntryAlertDialogComponent, isStandalone: false, selector: "entry-alert-dialog", usesInheritance: true, ngImport: i0, template: "<entry-dialog\n [title]=\"data.title\"\n [confirmButtonText]=\"data.confirmText ?? config.confirmButtonText\"\n [buttonsAlignment]=\"data.buttonsAlignment ?? config.buttonsAlignment\"\n [hideClose]=\"data.hideClose ?? config.hideClose\"\n [hideCancel]=\"true\">\n <p>{{data.message}}</p>\n</entry-dialog>", dependencies: [{ kind: "component", type: EntryDialogComponent, selector: "entry-dialog", inputs: ["title", "buttonsAlignment", "confirmButtonText", "cancelButtonText", "hideButtons", "hideCancel", "hideClose", "disableConfirm", "buttonsTemplate", "confirm", "cancel"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
114
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.8", ngImport: i0, type: EntryAlertDialogComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
115
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.8", type: EntryAlertDialogComponent, isStandalone: false, selector: "entry-alert-dialog", usesInheritance: true, ngImport: i0, template: "<entry-dialog\n [title]=\"data.title\"\n [confirmButtonText]=\"data.confirmText ?? config.confirmButtonText\"\n [buttonsAlignment]=\"data.buttonsAlignment ?? config.buttonsAlignment\"\n [hideClose]=\"data.hideClose ?? config.hideClose\"\n [hideCancel]=\"true\">\n <p>{{data.message}}</p>\n</entry-dialog>", dependencies: [{ kind: "component", type: EntryDialogComponent, selector: "entry-dialog", inputs: ["title", "buttonsAlignment", "confirmButtonText", "cancelButtonText", "hideButtons", "hideCancel", "hideClose", "disableConfirm", "buttonsTemplate", "confirm", "cancel"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
116
116
  }
117
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.10", ngImport: i0, type: EntryAlertDialogComponent, decorators: [{
117
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.8", ngImport: i0, type: EntryAlertDialogComponent, decorators: [{
118
118
  type: Component,
119
119
  args: [{ selector: 'entry-alert-dialog', changeDetection: ChangeDetectionStrategy.OnPush, standalone: false, template: "<entry-dialog\n [title]=\"data.title\"\n [confirmButtonText]=\"data.confirmText ?? config.confirmButtonText\"\n [buttonsAlignment]=\"data.buttonsAlignment ?? config.buttonsAlignment\"\n [hideClose]=\"data.hideClose ?? config.hideClose\"\n [hideCancel]=\"true\">\n <p>{{data.message}}</p>\n</entry-dialog>" }]
120
120
  }] });
@@ -126,10 +126,10 @@ class EntryConfirmDialogComponent extends EntryDialogComponent {
126
126
  this.config = inject(ENTRY_DIALOG_CONFIG);
127
127
  this.data = inject(MAT_DIALOG_DATA);
128
128
  }
129
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.10", ngImport: i0, type: EntryConfirmDialogComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
130
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.10", type: EntryConfirmDialogComponent, isStandalone: false, selector: "entry-confirm-dialog", usesInheritance: true, ngImport: i0, template: "<entry-dialog\n [title]=\"data.title\"\n [confirmButtonText]=\"data.confirmText ?? config.confirmButtonText\"\n [cancelButtonText]=\"data.cancelText ?? config.cancelButtonText\"\n [buttonsAlignment]=\"data.buttonsAlignment ?? config.buttonsAlignment\"\n [hideClose]=\"data.hideClose ?? config.hideClose\">\n <p>{{data.message}}</p>\n</entry-dialog>", dependencies: [{ kind: "component", type: EntryDialogComponent, selector: "entry-dialog", inputs: ["title", "buttonsAlignment", "confirmButtonText", "cancelButtonText", "hideButtons", "hideCancel", "hideClose", "disableConfirm", "buttonsTemplate", "confirm", "cancel"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
129
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.8", ngImport: i0, type: EntryConfirmDialogComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
130
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.8", type: EntryConfirmDialogComponent, isStandalone: false, selector: "entry-confirm-dialog", usesInheritance: true, ngImport: i0, template: "<entry-dialog\n [title]=\"data.title\"\n [confirmButtonText]=\"data.confirmText ?? config.confirmButtonText\"\n [cancelButtonText]=\"data.cancelText ?? config.cancelButtonText\"\n [buttonsAlignment]=\"data.buttonsAlignment ?? config.buttonsAlignment\"\n [hideClose]=\"data.hideClose ?? config.hideClose\">\n <p>{{data.message}}</p>\n</entry-dialog>", dependencies: [{ kind: "component", type: EntryDialogComponent, selector: "entry-dialog", inputs: ["title", "buttonsAlignment", "confirmButtonText", "cancelButtonText", "hideButtons", "hideCancel", "hideClose", "disableConfirm", "buttonsTemplate", "confirm", "cancel"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
131
131
  }
132
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.10", ngImport: i0, type: EntryConfirmDialogComponent, decorators: [{
132
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.8", ngImport: i0, type: EntryConfirmDialogComponent, decorators: [{
133
133
  type: Component,
134
134
  args: [{ selector: 'entry-confirm-dialog', changeDetection: ChangeDetectionStrategy.OnPush, standalone: false, template: "<entry-dialog\n [title]=\"data.title\"\n [confirmButtonText]=\"data.confirmText ?? config.confirmButtonText\"\n [cancelButtonText]=\"data.cancelText ?? config.cancelButtonText\"\n [buttonsAlignment]=\"data.buttonsAlignment ?? config.buttonsAlignment\"\n [hideClose]=\"data.hideClose ?? config.hideClose\">\n <p>{{data.message}}</p>\n</entry-dialog>" }]
135
135
  }] });
@@ -157,12 +157,12 @@ class EntryErrorDialogComponent extends EntryDialogComponent {
157
157
  this.errors = [this.data.message];
158
158
  }
159
159
  }
160
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.10", ngImport: i0, type: EntryErrorDialogComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
161
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.10", type: EntryErrorDialogComponent, isStandalone: false, selector: "entry-error-dialog", usesInheritance: true, ngImport: i0, template: "<entry-dialog\n [title]=\"data.title\"\n [confirmButtonText]=\"data.confirmText ?? config.confirmButtonText\"\n [buttonsAlignment]=\"data.buttonsAlignment ?? config.buttonsAlignment\"\n [hideClose]=\"data.hideClose ?? config.hideClose\"\n [hideCancel]=\"true\">\n <p *ngFor=\"let error of errors\">{{error}}</p>\n</entry-dialog>", dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "component", type: EntryDialogComponent, selector: "entry-dialog", inputs: ["title", "buttonsAlignment", "confirmButtonText", "cancelButtonText", "hideButtons", "hideCancel", "hideClose", "disableConfirm", "buttonsTemplate", "confirm", "cancel"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
160
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.8", ngImport: i0, type: EntryErrorDialogComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
161
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.8", type: EntryErrorDialogComponent, isStandalone: false, selector: "entry-error-dialog", usesInheritance: true, ngImport: i0, template: "<entry-dialog\n [title]=\"data.title\"\n [confirmButtonText]=\"data.confirmText ?? config.confirmButtonText\"\n [buttonsAlignment]=\"data.buttonsAlignment ?? config.buttonsAlignment\"\n [hideClose]=\"data.hideClose ?? config.hideClose\"\n [hideCancel]=\"true\">\n @for (error of errors; track error) {\n <p>{{error}}</p>\n }\n</entry-dialog>", dependencies: [{ kind: "component", type: EntryDialogComponent, selector: "entry-dialog", inputs: ["title", "buttonsAlignment", "confirmButtonText", "cancelButtonText", "hideButtons", "hideCancel", "hideClose", "disableConfirm", "buttonsTemplate", "confirm", "cancel"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
162
162
  }
163
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.10", ngImport: i0, type: EntryErrorDialogComponent, decorators: [{
163
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.8", ngImport: i0, type: EntryErrorDialogComponent, decorators: [{
164
164
  type: Component,
165
- args: [{ selector: 'entry-error-dialog', changeDetection: ChangeDetectionStrategy.OnPush, standalone: false, template: "<entry-dialog\n [title]=\"data.title\"\n [confirmButtonText]=\"data.confirmText ?? config.confirmButtonText\"\n [buttonsAlignment]=\"data.buttonsAlignment ?? config.buttonsAlignment\"\n [hideClose]=\"data.hideClose ?? config.hideClose\"\n [hideCancel]=\"true\">\n <p *ngFor=\"let error of errors\">{{error}}</p>\n</entry-dialog>" }]
165
+ args: [{ selector: 'entry-error-dialog', changeDetection: ChangeDetectionStrategy.OnPush, standalone: false, template: "<entry-dialog\n [title]=\"data.title\"\n [confirmButtonText]=\"data.confirmText ?? config.confirmButtonText\"\n [buttonsAlignment]=\"data.buttonsAlignment ?? config.buttonsAlignment\"\n [hideClose]=\"data.hideClose ?? config.hideClose\"\n [hideCancel]=\"true\">\n @for (error of errors; track error) {\n <p>{{error}}</p>\n }\n</entry-dialog>" }]
166
166
  }], ctorParameters: () => [] });
167
167
 
168
168
  /**
@@ -231,16 +231,16 @@ class EntryDialogService {
231
231
  configuration.panelClass = ['dialog-container', cssClass];
232
232
  };
233
233
  }
234
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.10", ngImport: i0, type: EntryDialogService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
235
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.10", ngImport: i0, type: EntryDialogService }); }
234
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.8", ngImport: i0, type: EntryDialogService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
235
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.8", ngImport: i0, type: EntryDialogService }); }
236
236
  }
237
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.10", ngImport: i0, type: EntryDialogService, decorators: [{
237
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.8", ngImport: i0, type: EntryDialogService, decorators: [{
238
238
  type: Injectable
239
239
  }] });
240
240
 
241
241
  class EntryDialogModule {
242
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.10", ngImport: i0, type: EntryDialogModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
243
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.3.10", ngImport: i0, type: EntryDialogModule, declarations: [EntryDialogComponent,
242
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.8", ngImport: i0, type: EntryDialogModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
243
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "21.2.8", ngImport: i0, type: EntryDialogModule, declarations: [EntryDialogComponent,
244
244
  EntryAlertDialogComponent,
245
245
  EntryConfirmDialogComponent,
246
246
  EntryErrorDialogComponent], imports: [CommonModule,
@@ -251,13 +251,13 @@ class EntryDialogModule {
251
251
  EntryAlertDialogComponent,
252
252
  EntryConfirmDialogComponent,
253
253
  EntryErrorDialogComponent] }); }
254
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.3.10", ngImport: i0, type: EntryDialogModule, providers: [EntryDialogService], imports: [CommonModule,
254
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "21.2.8", ngImport: i0, type: EntryDialogModule, providers: [EntryDialogService], imports: [CommonModule,
255
255
  MatDialogModule,
256
256
  MatIconModule,
257
257
  MatButtonModule,
258
258
  EntryButtonModule] }); }
259
259
  }
260
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.10", ngImport: i0, type: EntryDialogModule, decorators: [{
260
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.8", ngImport: i0, type: EntryDialogModule, decorators: [{
261
261
  type: NgModule,
262
262
  args: [{
263
263
  declarations: [
@@ -1 +1 @@
1
- {"version":3,"file":"enigmatry-entry-components-dialog.mjs","sources":["../../../../libs/entry-components/dialog/entry-dialog-config.model.ts","../../../../libs/entry-components/dialog/dialogs/entry-dialog.component.ts","../../../../libs/entry-components/dialog/dialogs/entry-dialog.component.html","../../../../libs/entry-components/dialog/dialogs/alert/entry-alert-dialog.component.ts","../../../../libs/entry-components/dialog/dialogs/alert/entry-alert-dialog.component.html","../../../../libs/entry-components/dialog/dialogs/confirm/entry-confirm-dialog.component.ts","../../../../libs/entry-components/dialog/dialogs/confirm/entry-confirm-dialog.component.html","../../../../libs/entry-components/dialog/dialogs/error/entry-error-dialog.component.ts","../../../../libs/entry-components/dialog/dialogs/error/entry-error-dialog.component.html","../../../../libs/entry-components/dialog/entry-dialog.service.ts","../../../../libs/entry-components/dialog/entry-dialog.module.ts","../../../../libs/entry-components/dialog/enigmatry-entry-components-dialog.ts"],"sourcesContent":["import { Provider } from '@angular/core';\nimport { createInjectionToken, provideConfig } from '@enigmatry/entry-components/common';\nimport { EntryDialogButtonsAlignment } from './entry-dialog-buttons-alignment.type';\n\n/**\n * Used to provide default configurations on module level.\n */\nexport class EntryDialogConfig {\n /** Confirm button label (default 'Ok') */\n confirmButtonText: string;\n /** Cancel button label (default 'Cancel') */\n cancelButtonText: string;\n /** Dialog buttons horizontal alignment (default 'align-right') */\n buttonsAlignment: EntryDialogButtonsAlignment;\n /** Determines if close button is visible (default is true) */\n hideClose: boolean;\n /** Disable closing dialog when pressing escape or clicking on backdrop (default false) */\n disableClose: boolean;\n\n constructor(config: Partial<EntryDialogConfig> = {}) {\n this.confirmButtonText = config.confirmButtonText ?? 'Ok';\n this.cancelButtonText = config.cancelButtonText ?? 'Cancel';\n this.buttonsAlignment = config.buttonsAlignment ?? 'end';\n this.hideClose = config.hideClose ?? true;\n this.disableClose = config.disableClose ?? false;\n }\n}\n\n/**\n * Entry dialog injection token of EntryDialogConfig type containing dialog default configurations.\n *\n * Defaults:\n * - confirmButtonText: 'Ok'\n * - cancelButtonText: 'Cancel'\n * - buttonsAlignment: 'end'\n * - hideClose: true\n * - disableClose: false\n */\nexport const ENTRY_DIALOG_CONFIG = createInjectionToken(new EntryDialogConfig());\n\n/**\n * Can be used to provide entry dialog configuration.\n */\nexport const provideEntryDialogConfig = (config: Partial<EntryDialogConfig>): Provider =>\n provideConfig(ENTRY_DIALOG_CONFIG, () => new EntryDialogConfig(config));\n","/* eslint-disable no-secrets/no-secrets */\nimport { Component, inject, Input, TemplateRef } from '@angular/core';\nimport { MatDialogRef } from '@angular/material/dialog';\nimport { Observable, of } from 'rxjs';\nimport { EntryDialogButtonsAlignment } from '../entry-dialog-buttons-alignment.type';\nimport { ENTRY_DIALOG_CONFIG, EntryDialogConfig } from '../entry-dialog-config.model';\n\n/**\n * Base Entry dialog component. Must be extended when building custom dialogs.\n *\n * @example\n * ```html\n * <entry-dialog title=\"TITLE\"><p>Dialog content</p></entry-dialog>\n * ```\n */\n@Component({\n selector: 'entry-dialog',\n templateUrl: './entry-dialog.component.html',\n styleUrls: ['./entry-dialog.component.scss'],\n standalone: false\n})\nexport class EntryDialogComponent {\n protected readonly mdDialogRef: MatDialogRef<EntryDialogComponent> = inject(MatDialogRef<EntryDialogComponent>);\n protected readonly config: EntryDialogConfig = inject(ENTRY_DIALOG_CONFIG);\n\n /** Dialog header title */\n @Input() title: string;\n /** Dialog buttons horizontal alignment */\n @Input() buttonsAlignment: EntryDialogButtonsAlignment = this.config.buttonsAlignment;\n /** Confirm button label */\n @Input() confirmButtonText = this.config.confirmButtonText;\n /** Cancel button label */\n @Input() cancelButtonText = this.config.cancelButtonText;\n /** Show or hide dialog buttons */\n @Input() hideButtons: boolean;\n /** Show or hide dialog cancel button */\n @Input() hideCancel: boolean;\n /** Show or hide dialog close button */\n @Input() hideClose: boolean = this.config.hideClose;\n /** Enable or disable dialog confirm button */\n @Input() disableConfirm: boolean;\n /** Provide custom buttons template */\n @Input() buttonsTemplate: TemplateRef<any> | null | undefined;\n\n @Input() confirm: () => Observable<unknown> = () => of(true);\n @Input() cancel = () => this.close(false);\n\n onSubmit = () =>\n this.confirm().subscribe({\n next: closeDialog => {\n if (closeDialog) {\n this.close(closeDialog);\n }\n }\n });\n\n close = (value: unknown = true) => this.mdDialogRef.close(value);\n}\n","<div class=\"entry-dialog\" role=\"dialog\">\n <div class=\"dialog-header\">\n <h1 class=\"title\" [class.without-close-icon]=\"hideClose\" mat-dialog-title>{{ title }}</h1>\n <button mat-icon-button *ngIf=\"!hideClose\" type=\"button\" class=\"close-button\" (click)=\"cancel()\"\n aria-label=\"Close dialog\">\n <mat-icon aria-hidden=\"true\">close</mat-icon>\n </button>\n </div>\n\n <mat-dialog-content class=\"dialog-content\" [ngClass]=\"{'with-actions': !hideButtons}\">\n <ng-content></ng-content>\n </mat-dialog-content>\n\n <mat-dialog-actions class=\"dialog-actions\" [align]=\"buttonsAlignment\" *ngIf=\"!hideButtons\">\n @if(buttonsTemplate) {\n <ng-container *ngTemplateOutlet=\"buttonsTemplate\"></ng-container>\n }\n\n @else {\n <ng-container *ngTemplateOutlet=\"defaultButtonsTemplate\"></ng-container>\n }\n </mat-dialog-actions>\n\n <ng-template #defaultButtonsTemplate>\n <button cdkFocusInitial mat-button entry-submit-button (click)=\"onSubmit()\">\n <span>{{confirmButtonText}}</span>\n </button>\n <button *ngIf=\"!hideCancel\" mat-button entry-cancel-button (click)=\"cancel()\">\n <span>{{cancelButtonText}}</span>\n </button>\n </ng-template>\n</div>","import { ChangeDetectionStrategy, Component, inject } from '@angular/core';\nimport { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog';\nimport { ENTRY_DIALOG_CONFIG, EntryDialogConfig } from '../../entry-dialog-config.model';\nimport { EntryDialogComponent } from '../entry-dialog.component';\nimport { IEntryAlertDialogData } from './entry-alert-dialog-data.interface';\n\n@Component({\n selector: 'entry-alert-dialog',\n templateUrl: './entry-alert-dialog.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: false\n})\nexport class EntryAlertDialogComponent extends EntryDialogComponent {\n protected override readonly mdDialogRef: MatDialogRef<EntryDialogComponent> = inject(MatDialogRef<EntryDialogComponent>);\n override readonly config: EntryDialogConfig = inject(ENTRY_DIALOG_CONFIG);\n readonly data: IEntryAlertDialogData = inject(MAT_DIALOG_DATA);\n}\n","<entry-dialog\n [title]=\"data.title\"\n [confirmButtonText]=\"data.confirmText ?? config.confirmButtonText\"\n [buttonsAlignment]=\"data.buttonsAlignment ?? config.buttonsAlignment\"\n [hideClose]=\"data.hideClose ?? config.hideClose\"\n [hideCancel]=\"true\">\n <p>{{data.message}}</p>\n</entry-dialog>","import { ChangeDetectionStrategy, Component, inject } from '@angular/core';\nimport { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog';\nimport { ENTRY_DIALOG_CONFIG, EntryDialogConfig } from '../../entry-dialog-config.model';\nimport { EntryDialogComponent } from '../entry-dialog.component';\nimport { IEntryConfirmDialogData } from './entry-confirm-dialog-data.interface';\n\n@Component({\n selector: 'entry-confirm-dialog',\n templateUrl: './entry-confirm-dialog.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: false\n})\nexport class EntryConfirmDialogComponent extends EntryDialogComponent {\n protected override readonly mdDialogRef: MatDialogRef<EntryDialogComponent> = inject(MatDialogRef<EntryDialogComponent>);\n override readonly config: EntryDialogConfig = inject(ENTRY_DIALOG_CONFIG);\n readonly data: IEntryConfirmDialogData = inject(MAT_DIALOG_DATA);\n}\n","<entry-dialog\n [title]=\"data.title\"\n [confirmButtonText]=\"data.confirmText ?? config.confirmButtonText\"\n [cancelButtonText]=\"data.cancelText ?? config.cancelButtonText\"\n [buttonsAlignment]=\"data.buttonsAlignment ?? config.buttonsAlignment\"\n [hideClose]=\"data.hideClose ?? config.hideClose\">\n <p>{{data.message}}</p>\n</entry-dialog>","import { ChangeDetectionStrategy, Component, inject } from '@angular/core';\nimport { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog';\nimport { ENTRY_DIALOG_CONFIG, EntryDialogConfig } from '../../entry-dialog-config.model';\nimport { EntryDialogComponent } from '../entry-dialog.component';\nimport { IEntryErrorDialogData } from './entry-error-dialog-data.interface';\n\n@Component({\n selector: 'entry-error-dialog',\n templateUrl: './entry-error-dialog.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: false\n})\nexport class EntryErrorDialogComponent extends EntryDialogComponent {\n errors: string[] = [];\n protected override readonly mdDialogRef: MatDialogRef<EntryDialogComponent> = inject(MatDialogRef<EntryDialogComponent>);\n override readonly config: EntryDialogConfig = inject(ENTRY_DIALOG_CONFIG);\n readonly data: IEntryErrorDialogData = inject(MAT_DIALOG_DATA);\n\n constructor() {\n super();\n this.extractValidationErrors();\n }\n\n private extractValidationErrors(): void {\n if (Array.isArray(this.data.errors)) {\n this.errors = this.data.errors as string[];\n } else if (this.data.errors.errors) {\n const validationErrors = this.data.errors.errors;\n this.errors = Object.entries(validationErrors)\n .map(values => values[1])\n .reduce((a, b) => a.concat(b), []);\n } else if (this.data.message) {\n this.errors = [this.data.message];\n }\n }\n}\n","<entry-dialog\n [title]=\"data.title\"\n [confirmButtonText]=\"data.confirmText ?? config.confirmButtonText\"\n [buttonsAlignment]=\"data.buttonsAlignment ?? config.buttonsAlignment\"\n [hideClose]=\"data.hideClose ?? config.hideClose\"\n [hideCancel]=\"true\">\n <p *ngFor=\"let error of errors\">{{error}}</p>\n</entry-dialog>","import { inject, Injectable, Type } from '@angular/core';\nimport { MatDialog, MatDialogConfig } from '@angular/material/dialog';\nimport { Observable } from 'rxjs';\nimport { take } from 'rxjs/operators';\nimport { IEntryAlertDialogData } from './dialogs/alert/entry-alert-dialog-data.interface';\nimport { EntryAlertDialogComponent } from './dialogs/alert/entry-alert-dialog.component';\nimport { IEntryConfirmDialogData } from './dialogs/confirm/entry-confirm-dialog-data.interface';\nimport { EntryConfirmDialogComponent } from './dialogs/confirm/entry-confirm-dialog.component';\nimport { EntryDialogComponent } from './dialogs/entry-dialog.component';\nimport { IEntryErrorDialogData } from './dialogs/error/entry-error-dialog-data.interface';\nimport { EntryErrorDialogComponent } from './dialogs/error/entry-error-dialog.component';\nimport { ENTRY_DIALOG_CONFIG, EntryDialogConfig } from './entry-dialog-config.model';\n\n/**\n * Used to open built-in and custom entry dialogs.\n */\n@Injectable()\nexport class EntryDialogService {\n protected readonly config: EntryDialogConfig = inject(ENTRY_DIALOG_CONFIG);\n private readonly matDialog: MatDialog = inject(MatDialog);\n\n /**\n * Opens alert dialog.\n *\n * @param data - Contains title, message and optional confirm button text\n * @returns `true` if confirmed, `undefined` if closed by clicking on backdrop or pressing escape\n */\n openAlert = (data: Partial<IEntryAlertDialogData>): Observable<true | undefined> => {\n data.disableClose = data.disableClose === undefined ? this.config.disableClose : data.disableClose;\n return this.open(EntryAlertDialogComponent, data, data.disableClose);\n };\n\n /**\n * Opens confirm dialog.\n *\n * @param data - Contains title, message and optional confirm/cancel buttons text\n * @returns `true` if confirmed, `false` if canceled or closed, `undefined` if closed by clicking on backdrop or pressing escape\n */\n openConfirm = (data: Partial<IEntryConfirmDialogData>): Observable<boolean | undefined> => {\n data.disableClose = data.disableClose === undefined ? this.config.disableClose : data.disableClose;\n return this.open(EntryConfirmDialogComponent, data, data.disableClose);\n };\n\n /**\n * Opens error dialog.\n *\n * @param data - Contains title, errors and optional confirm button text\n * @returns `true` if confirmed, `undefined` if closed by clicking on backdrop or pressing escape\n */\n openError = (data: Partial<IEntryErrorDialogData>): Observable<true | undefined> => {\n data.disableClose = data.disableClose === undefined ? this.config.disableClose : data.disableClose;\n return this.open(EntryErrorDialogComponent, data, data.disableClose);\n };\n\n /**\n * Opens dialog with custom component.\n *\n * @param component - Dialog custom component implementation\n * @param data - Optional parameter used to supply component with input parameters\n * @param disableClose - Optional parameter that disable closing dialog when pressing escape or clicking on backdrop\n * @param cssClass - Optional parameter used to set custom class to Material overlay pane\n * @returns Any result custom implementation provides\n */\n open = (\n component: Type<EntryDialogComponent>,\n data: unknown = undefined,\n disableClose: boolean | undefined = undefined,\n cssClass = ''): Observable<any> => {\n const configuration = new MatDialogConfig<unknown>();\n configuration.data = data;\n configuration.disableClose = disableClose === undefined\n ? this.config.disableClose\n : disableClose;\n this.setPanelClassFor(configuration, cssClass);\n\n return this.matDialog\n .open(component, configuration)\n .afterClosed()\n .pipe(take(1));\n };\n\n /**\n * Closes all opened dialogs.\n */\n closeAll = (): void => this.matDialog.closeAll();\n\n private setPanelClassFor = <T>(configuration: MatDialogConfig<T>, cssClass: string) => {\n configuration.panelClass = ['dialog-container', cssClass];\n };\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatDialogModule } from '@angular/material/dialog';\nimport { MatIconModule } from '@angular/material/icon';\nimport { EntryButtonModule } from '@enigmatry/entry-components/button';\nimport { EntryAlertDialogComponent } from './dialogs/alert/entry-alert-dialog.component';\nimport { EntryConfirmDialogComponent } from './dialogs/confirm/entry-confirm-dialog.component';\nimport { EntryDialogComponent } from './dialogs/entry-dialog.component';\nimport { EntryErrorDialogComponent } from './dialogs/error/entry-error-dialog.component';\nimport { EntryDialogService } from './entry-dialog.service';\n\n@NgModule({\n declarations: [\n EntryDialogComponent,\n EntryAlertDialogComponent,\n EntryConfirmDialogComponent,\n EntryErrorDialogComponent\n ],\n imports: [\n CommonModule,\n MatDialogModule,\n MatIconModule,\n MatButtonModule,\n EntryButtonModule\n ],\n exports: [\n EntryDialogComponent,\n EntryAlertDialogComponent,\n EntryConfirmDialogComponent,\n EntryErrorDialogComponent\n ],\n providers: [EntryDialogService]\n})\nexport class EntryDialogModule { }\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1.EntryDialogComponent","i2.EntryDialogComponent"],"mappings":"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"}
1
+ {"version":3,"file":"enigmatry-entry-components-dialog.mjs","sources":["../../../../libs/entry-components/dialog/entry-dialog-config.model.ts","../../../../libs/entry-components/dialog/dialogs/entry-dialog.component.ts","../../../../libs/entry-components/dialog/dialogs/entry-dialog.component.html","../../../../libs/entry-components/dialog/dialogs/alert/entry-alert-dialog.component.ts","../../../../libs/entry-components/dialog/dialogs/alert/entry-alert-dialog.component.html","../../../../libs/entry-components/dialog/dialogs/confirm/entry-confirm-dialog.component.ts","../../../../libs/entry-components/dialog/dialogs/confirm/entry-confirm-dialog.component.html","../../../../libs/entry-components/dialog/dialogs/error/entry-error-dialog.component.ts","../../../../libs/entry-components/dialog/dialogs/error/entry-error-dialog.component.html","../../../../libs/entry-components/dialog/entry-dialog.service.ts","../../../../libs/entry-components/dialog/entry-dialog.module.ts","../../../../libs/entry-components/dialog/enigmatry-entry-components-dialog.ts"],"sourcesContent":["import { Provider } from '@angular/core';\nimport { createInjectionToken, provideConfig } from '@enigmatry/entry-components/common';\nimport { EntryDialogButtonsAlignment } from './entry-dialog-buttons-alignment.type';\n\n/**\n * Used to provide default configurations on module level.\n */\nexport class EntryDialogConfig {\n /** Confirm button label (default 'Ok') */\n confirmButtonText: string;\n /** Cancel button label (default 'Cancel') */\n cancelButtonText: string;\n /** Dialog buttons horizontal alignment (default 'align-right') */\n buttonsAlignment: EntryDialogButtonsAlignment;\n /** Determines if close button is visible (default is true) */\n hideClose: boolean;\n /** Disable closing dialog when pressing escape or clicking on backdrop (default false) */\n disableClose: boolean;\n\n constructor(config: Partial<EntryDialogConfig> = {}) {\n this.confirmButtonText = config.confirmButtonText ?? 'Ok';\n this.cancelButtonText = config.cancelButtonText ?? 'Cancel';\n this.buttonsAlignment = config.buttonsAlignment ?? 'end';\n this.hideClose = config.hideClose ?? true;\n this.disableClose = config.disableClose ?? false;\n }\n}\n\n/**\n * Entry dialog injection token of EntryDialogConfig type containing dialog default configurations.\n *\n * Defaults:\n * - confirmButtonText: 'Ok'\n * - cancelButtonText: 'Cancel'\n * - buttonsAlignment: 'end'\n * - hideClose: true\n * - disableClose: false\n */\nexport const ENTRY_DIALOG_CONFIG = createInjectionToken(new EntryDialogConfig());\n\n/**\n * Can be used to provide entry dialog configuration.\n */\nexport const provideEntryDialogConfig = (config: Partial<EntryDialogConfig>): Provider =>\n provideConfig(ENTRY_DIALOG_CONFIG, () => new EntryDialogConfig(config));\n","/* eslint-disable no-secrets/no-secrets */\nimport { Component, inject, Input, TemplateRef } from '@angular/core';\nimport { MatDialogRef } from '@angular/material/dialog';\nimport { Observable, of } from 'rxjs';\nimport { EntryDialogButtonsAlignment } from '../entry-dialog-buttons-alignment.type';\nimport { ENTRY_DIALOG_CONFIG, EntryDialogConfig } from '../entry-dialog-config.model';\n\n/**\n * Base Entry dialog component. Must be extended when building custom dialogs.\n *\n * @example\n * ```html\n * <entry-dialog title=\"TITLE\"><p>Dialog content</p></entry-dialog>\n * ```\n */\n@Component({\n selector: 'entry-dialog',\n templateUrl: './entry-dialog.component.html',\n styleUrls: ['./entry-dialog.component.scss'],\n standalone: false\n})\nexport class EntryDialogComponent {\n protected readonly mdDialogRef: MatDialogRef<EntryDialogComponent> = inject(MatDialogRef<EntryDialogComponent>);\n protected readonly config: EntryDialogConfig = inject(ENTRY_DIALOG_CONFIG);\n\n /** Dialog header title */\n @Input() title: string;\n /** Dialog buttons horizontal alignment */\n @Input() buttonsAlignment: EntryDialogButtonsAlignment = this.config.buttonsAlignment;\n /** Confirm button label */\n @Input() confirmButtonText = this.config.confirmButtonText;\n /** Cancel button label */\n @Input() cancelButtonText = this.config.cancelButtonText;\n /** Show or hide dialog buttons */\n @Input() hideButtons: boolean;\n /** Show or hide dialog cancel button */\n @Input() hideCancel: boolean;\n /** Show or hide dialog close button */\n @Input() hideClose: boolean = this.config.hideClose;\n /** Enable or disable dialog confirm button */\n @Input() disableConfirm: boolean;\n /** Provide custom buttons template */\n @Input() buttonsTemplate: TemplateRef<any> | null | undefined;\n\n @Input() confirm: () => Observable<unknown> = () => of(true);\n @Input() cancel = () => this.close(false);\n\n onSubmit = () =>\n this.confirm().subscribe({\n next: closeDialog => {\n if (closeDialog) {\n this.close(closeDialog);\n }\n }\n });\n\n close = (value: unknown = true) => this.mdDialogRef.close(value);\n}\n","<div class=\"entry-dialog\" role=\"dialog\">\n <div class=\"dialog-header\">\n <h1 class=\"title\" [class.without-close-icon]=\"hideClose\" mat-dialog-title>{{ title }}</h1>\n @if (!hideClose) {\n <button mat-icon-button type=\"button\" class=\"close-button\" (click)=\"cancel()\"\n aria-label=\"Close dialog\">\n <mat-icon aria-hidden=\"true\">close</mat-icon>\n </button>\n }\n </div>\n\n <mat-dialog-content class=\"dialog-content\" [ngClass]=\"{'with-actions': !hideButtons}\">\n <ng-content></ng-content>\n </mat-dialog-content>\n\n @if (!hideButtons) {\n <mat-dialog-actions class=\"dialog-actions\" [align]=\"buttonsAlignment\">\n @if(buttonsTemplate) {\n <ng-container [ngTemplateOutlet]=\"buttonsTemplate\"></ng-container>\n }\n\n @else {\n <ng-container [ngTemplateOutlet]=\"defaultButtonsTemplate\"></ng-container>\n }\n </mat-dialog-actions>\n }\n\n <ng-template #defaultButtonsTemplate>\n <button cdkFocusInitial mat-button entry-submit-button (click)=\"onSubmit()\">\n <span>{{confirmButtonText}}</span>\n </button>\n @if (!hideCancel) {\n <button mat-button entry-cancel-button (click)=\"cancel()\">\n <span>{{cancelButtonText}}</span>\n </button>\n }\n </ng-template>\n</div>","import { ChangeDetectionStrategy, Component, inject } from '@angular/core';\nimport { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog';\nimport { ENTRY_DIALOG_CONFIG, EntryDialogConfig } from '../../entry-dialog-config.model';\nimport { EntryDialogComponent } from '../entry-dialog.component';\nimport { IEntryAlertDialogData } from './entry-alert-dialog-data.interface';\n\n@Component({\n selector: 'entry-alert-dialog',\n templateUrl: './entry-alert-dialog.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: false\n})\nexport class EntryAlertDialogComponent extends EntryDialogComponent {\n protected override readonly mdDialogRef: MatDialogRef<EntryDialogComponent> = inject(MatDialogRef<EntryDialogComponent>);\n override readonly config: EntryDialogConfig = inject(ENTRY_DIALOG_CONFIG);\n readonly data: IEntryAlertDialogData = inject(MAT_DIALOG_DATA);\n}\n","<entry-dialog\n [title]=\"data.title\"\n [confirmButtonText]=\"data.confirmText ?? config.confirmButtonText\"\n [buttonsAlignment]=\"data.buttonsAlignment ?? config.buttonsAlignment\"\n [hideClose]=\"data.hideClose ?? config.hideClose\"\n [hideCancel]=\"true\">\n <p>{{data.message}}</p>\n</entry-dialog>","import { ChangeDetectionStrategy, Component, inject } from '@angular/core';\nimport { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog';\nimport { ENTRY_DIALOG_CONFIG, EntryDialogConfig } from '../../entry-dialog-config.model';\nimport { EntryDialogComponent } from '../entry-dialog.component';\nimport { IEntryConfirmDialogData } from './entry-confirm-dialog-data.interface';\n\n@Component({\n selector: 'entry-confirm-dialog',\n templateUrl: './entry-confirm-dialog.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: false\n})\nexport class EntryConfirmDialogComponent extends EntryDialogComponent {\n protected override readonly mdDialogRef: MatDialogRef<EntryDialogComponent> = inject(MatDialogRef<EntryDialogComponent>);\n override readonly config: EntryDialogConfig = inject(ENTRY_DIALOG_CONFIG);\n readonly data: IEntryConfirmDialogData = inject(MAT_DIALOG_DATA);\n}\n","<entry-dialog\n [title]=\"data.title\"\n [confirmButtonText]=\"data.confirmText ?? config.confirmButtonText\"\n [cancelButtonText]=\"data.cancelText ?? config.cancelButtonText\"\n [buttonsAlignment]=\"data.buttonsAlignment ?? config.buttonsAlignment\"\n [hideClose]=\"data.hideClose ?? config.hideClose\">\n <p>{{data.message}}</p>\n</entry-dialog>","import { ChangeDetectionStrategy, Component, inject } from '@angular/core';\nimport { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog';\nimport { ENTRY_DIALOG_CONFIG, EntryDialogConfig } from '../../entry-dialog-config.model';\nimport { EntryDialogComponent } from '../entry-dialog.component';\nimport { IEntryErrorDialogData } from './entry-error-dialog-data.interface';\n\n@Component({\n selector: 'entry-error-dialog',\n templateUrl: './entry-error-dialog.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: false\n})\nexport class EntryErrorDialogComponent extends EntryDialogComponent {\n errors: string[] = [];\n protected override readonly mdDialogRef: MatDialogRef<EntryDialogComponent> = inject(MatDialogRef<EntryDialogComponent>);\n override readonly config: EntryDialogConfig = inject(ENTRY_DIALOG_CONFIG);\n readonly data: IEntryErrorDialogData = inject(MAT_DIALOG_DATA);\n\n constructor() {\n super();\n this.extractValidationErrors();\n }\n\n private extractValidationErrors(): void {\n if (Array.isArray(this.data.errors)) {\n this.errors = this.data.errors as string[];\n } else if (this.data.errors.errors) {\n const validationErrors = this.data.errors.errors;\n this.errors = Object.entries(validationErrors)\n .map(values => values[1])\n .reduce((a, b) => a.concat(b), []);\n } else if (this.data.message) {\n this.errors = [this.data.message];\n }\n }\n}\n","<entry-dialog\n [title]=\"data.title\"\n [confirmButtonText]=\"data.confirmText ?? config.confirmButtonText\"\n [buttonsAlignment]=\"data.buttonsAlignment ?? config.buttonsAlignment\"\n [hideClose]=\"data.hideClose ?? config.hideClose\"\n [hideCancel]=\"true\">\n @for (error of errors; track error) {\n <p>{{error}}</p>\n }\n</entry-dialog>","import { inject, Injectable, Type } from '@angular/core';\nimport { MatDialog, MatDialogConfig } from '@angular/material/dialog';\nimport { Observable } from 'rxjs';\nimport { take } from 'rxjs/operators';\nimport { IEntryAlertDialogData } from './dialogs/alert/entry-alert-dialog-data.interface';\nimport { EntryAlertDialogComponent } from './dialogs/alert/entry-alert-dialog.component';\nimport { IEntryConfirmDialogData } from './dialogs/confirm/entry-confirm-dialog-data.interface';\nimport { EntryConfirmDialogComponent } from './dialogs/confirm/entry-confirm-dialog.component';\nimport { EntryDialogComponent } from './dialogs/entry-dialog.component';\nimport { IEntryErrorDialogData } from './dialogs/error/entry-error-dialog-data.interface';\nimport { EntryErrorDialogComponent } from './dialogs/error/entry-error-dialog.component';\nimport { ENTRY_DIALOG_CONFIG, EntryDialogConfig } from './entry-dialog-config.model';\n\n/**\n * Used to open built-in and custom entry dialogs.\n */\n@Injectable()\nexport class EntryDialogService {\n protected readonly config: EntryDialogConfig = inject(ENTRY_DIALOG_CONFIG);\n private readonly matDialog: MatDialog = inject(MatDialog);\n\n /**\n * Opens alert dialog.\n *\n * @param data - Contains title, message and optional confirm button text\n * @returns `true` if confirmed, `undefined` if closed by clicking on backdrop or pressing escape\n */\n openAlert = (data: Partial<IEntryAlertDialogData>): Observable<true | undefined> => {\n data.disableClose = data.disableClose === undefined ? this.config.disableClose : data.disableClose;\n return this.open(EntryAlertDialogComponent, data, data.disableClose);\n };\n\n /**\n * Opens confirm dialog.\n *\n * @param data - Contains title, message and optional confirm/cancel buttons text\n * @returns `true` if confirmed, `false` if canceled or closed, `undefined` if closed by clicking on backdrop or pressing escape\n */\n openConfirm = (data: Partial<IEntryConfirmDialogData>): Observable<boolean | undefined> => {\n data.disableClose = data.disableClose === undefined ? this.config.disableClose : data.disableClose;\n return this.open(EntryConfirmDialogComponent, data, data.disableClose);\n };\n\n /**\n * Opens error dialog.\n *\n * @param data - Contains title, errors and optional confirm button text\n * @returns `true` if confirmed, `undefined` if closed by clicking on backdrop or pressing escape\n */\n openError = (data: Partial<IEntryErrorDialogData>): Observable<true | undefined> => {\n data.disableClose = data.disableClose === undefined ? this.config.disableClose : data.disableClose;\n return this.open(EntryErrorDialogComponent, data, data.disableClose);\n };\n\n /**\n * Opens dialog with custom component.\n *\n * @param component - Dialog custom component implementation\n * @param data - Optional parameter used to supply component with input parameters\n * @param disableClose - Optional parameter that disable closing dialog when pressing escape or clicking on backdrop\n * @param cssClass - Optional parameter used to set custom class to Material overlay pane\n * @returns Any result custom implementation provides\n */\n open = (\n component: Type<EntryDialogComponent>,\n data: unknown = undefined,\n disableClose: boolean | undefined = undefined,\n cssClass = ''): Observable<any> => {\n const configuration = new MatDialogConfig<unknown>();\n configuration.data = data;\n configuration.disableClose = disableClose === undefined\n ? this.config.disableClose\n : disableClose;\n this.setPanelClassFor(configuration, cssClass);\n\n return this.matDialog\n .open(component, configuration)\n .afterClosed()\n .pipe(take(1));\n };\n\n /**\n * Closes all opened dialogs.\n */\n closeAll = (): void => this.matDialog.closeAll();\n\n private setPanelClassFor = <T>(configuration: MatDialogConfig<T>, cssClass: string) => {\n configuration.panelClass = ['dialog-container', cssClass];\n };\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatDialogModule } from '@angular/material/dialog';\nimport { MatIconModule } from '@angular/material/icon';\nimport { EntryButtonModule } from '@enigmatry/entry-components/button';\nimport { EntryAlertDialogComponent } from './dialogs/alert/entry-alert-dialog.component';\nimport { EntryConfirmDialogComponent } from './dialogs/confirm/entry-confirm-dialog.component';\nimport { EntryDialogComponent } from './dialogs/entry-dialog.component';\nimport { EntryErrorDialogComponent } from './dialogs/error/entry-error-dialog.component';\nimport { EntryDialogService } from './entry-dialog.service';\n\n@NgModule({\n declarations: [\n EntryDialogComponent,\n EntryAlertDialogComponent,\n EntryConfirmDialogComponent,\n EntryErrorDialogComponent\n ],\n imports: [\n CommonModule,\n MatDialogModule,\n MatIconModule,\n MatButtonModule,\n EntryButtonModule\n ],\n exports: [\n EntryDialogComponent,\n EntryAlertDialogComponent,\n EntryConfirmDialogComponent,\n EntryErrorDialogComponent\n ],\n providers: [EntryDialogService]\n})\nexport class EntryDialogModule { }\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1.EntryDialogComponent"],"mappings":"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"}