@enigmatry/entry-components 20.0.1-preview.4 → 20.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (25) hide show
  1. package/common/index.d.ts +2 -12
  2. package/fesm2022/enigmatry-entry-components-button.mjs +7 -7
  3. package/fesm2022/enigmatry-entry-components-button.mjs.map +1 -1
  4. package/fesm2022/enigmatry-entry-components-common.mjs +33 -52
  5. package/fesm2022/enigmatry-entry-components-common.mjs.map +1 -1
  6. package/fesm2022/enigmatry-entry-components-date-time-picker.mjs +17 -17
  7. package/fesm2022/enigmatry-entry-components-date-time-picker.mjs.map +1 -1
  8. package/fesm2022/enigmatry-entry-components-dialog.mjs +19 -19
  9. package/fesm2022/enigmatry-entry-components-dialog.mjs.map +1 -1
  10. package/fesm2022/enigmatry-entry-components-file-input.mjs +7 -7
  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 +22 -22
  15. package/fesm2022/enigmatry-entry-components-search-filter.mjs.map +1 -1
  16. package/fesm2022/enigmatry-entry-components-spinner.mjs +10 -10
  17. package/fesm2022/enigmatry-entry-components-spinner.mjs.map +1 -1
  18. package/fesm2022/enigmatry-entry-components-table.mjs +16 -16
  19. package/fesm2022/enigmatry-entry-components-table.mjs.map +1 -1
  20. package/fesm2022/enigmatry-entry-components-validation.mjs +18 -23
  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 +1 -1
  25. package/validation/index.d.ts +2 -3
@@ -1,18 +1,18 @@
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 from '@angular/forms';
3
+ import * as i3$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
- import * as i1$1 from '@enigmatry/entry-components/common';
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 i1 from '@angular/common';
11
- import { CommonModule } from '@angular/common';
12
10
  import * as i4 from '@angular/material/form-field';
13
11
  import { MatFormFieldModule } from '@angular/material/form-field';
14
- import * as i4$1 from '@angular/material/select';
12
+ import * as i2 from '@angular/material/select';
15
13
  import { MatSelectModule } from '@angular/material/select';
14
+ import * as i3 from '@angular/common';
15
+ import { CommonModule } from '@angular/common';
16
16
  import * as i5 from '@angular/material/datepicker';
17
17
  import { MatDatepickerModule } from '@angular/material/datepicker';
18
18
  import * as i6 from '@angular/material/input';
@@ -101,12 +101,12 @@ class EntryTimePickerComponent {
101
101
  this.hours += this.halfADay;
102
102
  }
103
103
  }
104
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.2", ngImport: i0, type: EntryTimePickerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
105
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.1.2", 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 [(ngModel)]=\"hours\" [hideSingleSelectionIndicator]=\"true\" [panelWidth]=\"null\">\n <mat-option *ngFor=\"let hour of possibleHours\" [value]=\"hour\">{{hour | number:'2.0'}}</mat-option>\n </mat-select>\n</mat-form-field>\n<span class=\"time-separator\">&#58;</span>\n<mat-form-field appearance=\"fill\">\n <mat-select [(ngModel)]=\"minutes\" [hideSingleSelectionIndicator]=\"true\" [panelWidth]=\"null\">\n <mat-option *ngFor=\"let minute of sixty\" [value]=\"minute\">{{minute | number:'2.0'}}</mat-option>\n </mat-select>\n</mat-form-field>\n<span *ngIf=\"showSeconds\" class=\"time-separator\">&#58;</span>\n<mat-form-field *ngIf=\"showSeconds\" appearance=\"fill\">\n <mat-select [(ngModel)]=\"seconds\" [hideSingleSelectionIndicator]=\"true\" [panelWidth]=\"null\">\n <mat-option *ngFor=\"let second of sixty\" [value]=\"second\">{{second | number:'2.0'}}</mat-option>\n </mat-select>\n</mat-form-field>\n<mat-form-field *ngIf=\"is12HourClock\" appearance=\"fill\">\n <mat-select [(ngModel)]=\"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>", dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i4.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "component", type: i4$1.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: i4$1.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "pipe", type: i1.DecimalPipe, name: "number" }] }); }
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" }] }); }
106
106
  }
107
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.2", ngImport: i0, type: EntryTimePickerComponent, decorators: [{
107
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.10", ngImport: i0, type: EntryTimePickerComponent, decorators: [{
108
108
  type: Component,
109
- args: [{ selector: 'entry-time-picker', standalone: false, template: "<mat-form-field appearance=\"fill\">\n <mat-select [(ngModel)]=\"hours\" [hideSingleSelectionIndicator]=\"true\" [panelWidth]=\"null\">\n <mat-option *ngFor=\"let hour of possibleHours\" [value]=\"hour\">{{hour | number:'2.0'}}</mat-option>\n </mat-select>\n</mat-form-field>\n<span class=\"time-separator\">&#58;</span>\n<mat-form-field appearance=\"fill\">\n <mat-select [(ngModel)]=\"minutes\" [hideSingleSelectionIndicator]=\"true\" [panelWidth]=\"null\">\n <mat-option *ngFor=\"let minute of sixty\" [value]=\"minute\">{{minute | number:'2.0'}}</mat-option>\n </mat-select>\n</mat-form-field>\n<span *ngIf=\"showSeconds\" class=\"time-separator\">&#58;</span>\n<mat-form-field *ngIf=\"showSeconds\" appearance=\"fill\">\n <mat-select [(ngModel)]=\"seconds\" [hideSingleSelectionIndicator]=\"true\" [panelWidth]=\"null\">\n <mat-option *ngFor=\"let second of sixty\" [value]=\"second\">{{second | number:'2.0'}}</mat-option>\n </mat-select>\n</mat-form-field>\n<mat-form-field *ngIf=\"is12HourClock\" appearance=\"fill\">\n <mat-select [(ngModel)]=\"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>" }]
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: [{
111
111
  type: HostBinding,
112
112
  args: ['class']
@@ -207,13 +207,13 @@ 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.1.2", ngImport: i0, type: EntryDateTimePickerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
211
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.1.2", 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: "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: [
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$1.NoopControlValueAccessorDirective }, { directive: i1$1.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: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.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.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.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 <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 }); }
215
215
  }
216
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.2", ngImport: i0, type: EntryDateTimePickerComponent, decorators: [{
216
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.10", 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) },
@@ -246,8 +246,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.2", ngImpor
246
246
  }] } });
247
247
 
248
248
  class EntryDateTimePickerModule {
249
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.2", ngImport: i0, type: EntryDateTimePickerModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
250
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.1.2", ngImport: i0, type: EntryDateTimePickerModule, declarations: [EntryDateTimePickerComponent,
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,
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.1.2", ngImport: i0, type: EntryDateTimePickerModule, imports: [CommonModule,
261
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.3.10", 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.1.2", ngImport: i0, type: EntryDateTimePickerModule, decorators: [{
272
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.10", 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 [(ngModel)]=\"hours\" [hideSingleSelectionIndicator]=\"true\" [panelWidth]=\"null\">\n <mat-option *ngFor=\"let hour of possibleHours\" [value]=\"hour\">{{hour | number:'2.0'}}</mat-option>\n </mat-select>\n</mat-form-field>\n<span class=\"time-separator\">&#58;</span>\n<mat-form-field appearance=\"fill\">\n <mat-select [(ngModel)]=\"minutes\" [hideSingleSelectionIndicator]=\"true\" [panelWidth]=\"null\">\n <mat-option *ngFor=\"let minute of sixty\" [value]=\"minute\">{{minute | number:'2.0'}}</mat-option>\n </mat-select>\n</mat-form-field>\n<span *ngIf=\"showSeconds\" class=\"time-separator\">&#58;</span>\n<mat-form-field *ngIf=\"showSeconds\" appearance=\"fill\">\n <mat-select [(ngModel)]=\"seconds\" [hideSingleSelectionIndicator]=\"true\" [panelWidth]=\"null\">\n <mat-option *ngFor=\"let second of sixty\" [value]=\"second\">{{second | number:'2.0'}}</mat-option>\n </mat-select>\n</mat-form-field>\n<mat-form-field *ngIf=\"is12HourClock\" appearance=\"fill\">\n <mat-select [(ngModel)]=\"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>","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":["i2","i3","i4","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 <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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"}
@@ -74,10 +74,10 @@ 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.1.2", ngImport: i0, type: EntryDialogComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
78
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.1.2", 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: "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]" }] }); }
79
79
  }
80
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.2", ngImport: i0, type: EntryDialogComponent, decorators: [{
80
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.10", ngImport: i0, type: EntryDialogComponent, decorators: [{
81
81
  type: Component,
82
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>" }]
83
83
  }], propDecorators: { title: [{
@@ -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.1.2", ngImport: i0, type: EntryAlertDialogComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
115
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.1.2", 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: "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 }); }
116
116
  }
117
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.2", ngImport: i0, type: EntryAlertDialogComponent, decorators: [{
117
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.10", 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.1.2", ngImport: i0, type: EntryConfirmDialogComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
130
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.1.2", 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: "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 }); }
131
131
  }
132
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.2", ngImport: i0, type: EntryConfirmDialogComponent, decorators: [{
132
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.10", 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,10 +157,10 @@ 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.1.2", ngImport: i0, type: EntryErrorDialogComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
161
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.1.2", 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: "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 }); }
162
162
  }
163
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.2", ngImport: i0, type: EntryErrorDialogComponent, decorators: [{
163
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.10", ngImport: i0, type: EntryErrorDialogComponent, decorators: [{
164
164
  type: Component,
165
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>" }]
166
166
  }], ctorParameters: () => [] });
@@ -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.1.2", ngImport: i0, type: EntryDialogService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
235
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.1.2", ngImport: i0, type: EntryDialogService }); }
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 }); }
236
236
  }
237
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.2", ngImport: i0, type: EntryDialogService, decorators: [{
237
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.10", 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.1.2", ngImport: i0, type: EntryDialogModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
243
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.1.2", ngImport: i0, type: EntryDialogModule, declarations: [EntryDialogComponent,
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,
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.1.2", ngImport: i0, type: EntryDialogModule, providers: [EntryDialogService], imports: [CommonModule,
254
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.3.10", 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.1.2", ngImport: i0, type: EntryDialogModule, decorators: [{
260
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.10", 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 <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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"}