@dereekb/dbx-form 9.24.16 → 9.24.18
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.
- package/calendar/lib/calendar.module.d.ts +1 -1
- package/calendar/lib/calendar.schedule.selection.dialog.button.component.d.ts +2 -1
- package/calendar/lib/calendar.schedule.selection.range.component.d.ts +6 -1
- package/calendar/lib/field/schedule/calendar.schedule.field.component.d.ts +23 -0
- package/calendar/lib/field/schedule/calendar.schedule.module.d.ts +10 -9
- package/esm2020/calendar/lib/calendar.module.mjs +8 -2
- package/esm2020/calendar/lib/calendar.schedule.selection.component.mjs +24 -8
- package/esm2020/calendar/lib/calendar.schedule.selection.dialog.button.component.mjs +8 -6
- package/esm2020/calendar/lib/calendar.schedule.selection.popover.content.component.mjs +17 -12
- package/esm2020/calendar/lib/calendar.schedule.selection.range.component.mjs +45 -5
- package/esm2020/calendar/lib/field/schedule/calendar.schedule.field.component.mjs +23 -9
- package/esm2020/calendar/lib/field/schedule/calendar.schedule.field.mjs +5 -3
- package/esm2020/calendar/lib/field/schedule/calendar.schedule.module.mjs +7 -3
- package/esm2020/lib/formly/config/validation.mjs +3 -2
- package/esm2020/lib/formly/field/value/number/number.field.mjs +34 -1
- package/esm2020/lib/formly/field/value/number/number.field.module.mjs +5 -4
- package/esm2020/lib/formly/field/value/phone/phone.field.component.mjs +84 -5
- package/esm2020/lib/formly/field/value/phone/phone.field.mjs +9 -3
- package/esm2020/lib/validator/index.mjs +2 -1
- package/esm2020/lib/validator/phone.mjs +61 -0
- package/fesm2015/dereekb-dbx-form-calendar.mjs +123 -39
- package/fesm2015/dereekb-dbx-form-calendar.mjs.map +1 -1
- package/fesm2015/dereekb-dbx-form.mjs +171 -11
- package/fesm2015/dereekb-dbx-form.mjs.map +1 -1
- package/fesm2020/dereekb-dbx-form-calendar.mjs +124 -41
- package/fesm2020/dereekb-dbx-form-calendar.mjs.map +1 -1
- package/fesm2020/dereekb-dbx-form.mjs +182 -10
- package/fesm2020/dereekb-dbx-form.mjs.map +1 -1
- package/lib/extension/calendar/_calendar.scss +13 -0
- package/lib/formly/config/validation.d.ts +4 -0
- package/lib/formly/field/value/date/_date.scss +4 -0
- package/lib/formly/field/value/number/number.field.d.ts +27 -0
- package/lib/formly/field/value/number/number.field.module.d.ts +3 -2
- package/lib/formly/field/value/phone/_phone.scss +22 -13
- package/lib/formly/field/value/phone/phone.field.component.d.ts +19 -0
- package/lib/validator/index.d.ts +1 -0
- package/lib/validator/phone.d.ts +16 -0
- package/mapbox/package.json +4 -4
- package/package.json +4 -4
|
@@ -1,16 +1,18 @@
|
|
|
1
1
|
import * as i4$1 from '@dereekb/dbx-form';
|
|
2
2
|
import { formlyField, propsAndConfigForFieldConfig, flexLayoutWrapper, toggleField, AbstractSyncFormlyFormDirective, provideFormlyContext, DbxFormModule, DbxFormlyModule } from '@dereekb/dbx-form';
|
|
3
3
|
import * as i0 from '@angular/core';
|
|
4
|
-
import { Injectable, SkipSelf, Directive, Injector, Optional, Component, Inject, Input,
|
|
4
|
+
import { Injectable, SkipSelf, Directive, Injector, Optional, Component, Inject, Input, ViewChild, ElementRef, ChangeDetectionStrategy, EventEmitter, Output, InjectionToken, NgModule } from '@angular/core';
|
|
5
5
|
import { FieldType } from '@ngx-formly/material';
|
|
6
|
-
import { switchMap, first, tap, map, distinctUntilChanged, shareReplay, of, combineLatestWith, BehaviorSubject,
|
|
6
|
+
import { switchMap, first, tap, map, distinctUntilChanged, shareReplay, of, combineLatestWith, BehaviorSubject, filter, startWith, throttleTime, combineLatest } from 'rxjs';
|
|
7
7
|
import { filterMaybe, distinctUntilHasDifferentValues, SubscriptionObject, asObservableFromGetter, asObservable } from '@dereekb/rxjs';
|
|
8
8
|
import { DateScheduleDayCode, expandDateScheduleDayCodesToDayOfWeekSet, dateTimingRelativeIndexFactory, dateBlockDayOfWeekFactory, findMaxDate, findMinDate, isSameDateRange, isSameDateDay, isSameDate, dateBlockTimingDateFactory, expandDateScheduleRange, formatToISO8601DayString, isSameDateScheduleRange, dateTimingRelativeIndexArrayFactory, isInfiniteDateRange, copyDateScheduleDateFilterConfig, dateScheduleDateFilter, dateTimezoneUtcNormal, expandDateScheduleDayCodes, isDateInDateRangeFunction, isDateWithinDateBlockRangeFunction, copyHoursAndMinutesFromDate, dateScheduleEncodedWeek, enabledDaysFromDateScheduleDayCodes, dateScheduleDayCodesFromEnabledDays, formatToMonthDayString, dateRange, DateRangeType } from '@dereekb/date';
|
|
9
9
|
import { setsAreEquivalent, mapValuesToSet, unique, mergeArrays, iterableToArray, range, toggleInSet, removeFromSet, addToSet, isIndexNumberInIndexRangeFunction, minAndMaxNumber, getDaysOfWeekNames, reduceBooleansWithAnd, mergeObjects, KeyValueTypleValueFilter } from '@dereekb/util';
|
|
10
10
|
import { ComponentStore } from '@ngrx/component-store';
|
|
11
11
|
import { startOfDay, endOfDay, isBefore, endOfWeek } from 'date-fns';
|
|
12
12
|
import * as i1$1 from '@dereekb/dbx-web';
|
|
13
|
-
import { AbstractPopoverDirective, AbstractDialogDirective, sanitizeDbxDialogContentConfig, DbxActionModule, DbxButtonModule, DbxDialogInteractionModule, DbxPopoverInteractionModule
|
|
13
|
+
import { AbstractPopoverDirective, AbstractDialogDirective, sanitizeDbxDialogContentConfig, DbxContentLayoutModule, DbxTextModule, DbxActionModule, DbxButtonModule, DbxDialogInteractionModule, DbxPopoverInteractionModule } from '@dereekb/dbx-web';
|
|
14
|
+
import * as i3$1 from '@dereekb/dbx-core';
|
|
15
|
+
import { switchMapDbxInjectionComponentConfig, DbxInjectionComponentModule, DbxDatePipeModule } from '@dereekb/dbx-core';
|
|
14
16
|
import * as i3 from '@angular/forms';
|
|
15
17
|
import { FormGroup, FormControl, FormsModule, ReactiveFormsModule } from '@angular/forms';
|
|
16
18
|
import * as i5 from '@angular/material/form-field';
|
|
@@ -21,27 +23,25 @@ import * as i4 from '@angular/common';
|
|
|
21
23
|
import { CommonModule } from '@angular/common';
|
|
22
24
|
import * as i7 from '@angular/material/datepicker';
|
|
23
25
|
import { MatDatepickerModule } from '@angular/material/datepicker';
|
|
24
|
-
import * as i3$1 from '@dereekb/dbx-core';
|
|
25
|
-
import { switchMapDbxInjectionComponentConfig, DbxInjectionComponentModule, DbxDatePipeModule } from '@dereekb/dbx-core';
|
|
26
26
|
import * as i6 from 'angular-calendar';
|
|
27
27
|
import { CalendarModule, CalendarDayModule, CalendarWeekModule } from 'angular-calendar';
|
|
28
28
|
import * as i7$1 from '@angular/flex-layout/extended';
|
|
29
29
|
import * as i3$2 from '@angular/material/icon';
|
|
30
30
|
import { MatIconModule } from '@angular/material/icon';
|
|
31
31
|
import * as i1$2 from '@angular/material/dialog';
|
|
32
|
-
import * as i2 from '@angular/material/button';
|
|
33
|
-
import { MatButtonModule } from '@angular/material/button';
|
|
34
32
|
import * as i1$3 from '@ngx-formly/core';
|
|
35
33
|
import { FormlyModule } from '@ngx-formly/core';
|
|
36
34
|
import { MatInputModule } from '@angular/material/input';
|
|
35
|
+
import { MatButtonModule } from '@angular/material/button';
|
|
37
36
|
import { MatButtonToggleModule } from '@angular/material/button-toggle';
|
|
38
37
|
import { FlexLayoutModule } from '@angular/flex-layout';
|
|
39
38
|
|
|
40
39
|
function dateScheduleRangeField(config = {}) {
|
|
41
40
|
var _a;
|
|
42
|
-
const { key = 'schedule', appearance, hideCustomize, filter, timezone, initialSelectionState, computeSelectionResultRelativeToFilter, exclusions, minMaxDateRange, cellContentFactory, dialogContentConfig, closeDialogConfig } = config;
|
|
41
|
+
const { key = 'schedule', appearance, hideCustomize, allowTextInput, filter, timezone, initialSelectionState, computeSelectionResultRelativeToFilter, exclusions, minMaxDateRange, cellContentFactory, dialogContentConfig, closeDialogConfig, customDetailsConfig } = config;
|
|
43
42
|
const fieldConfig = Object.assign({}, formlyField(Object.assign({ key, type: 'date-schedule-range' }, propsAndConfigForFieldConfig(config, {
|
|
44
43
|
label: (_a = config.label) !== null && _a !== void 0 ? _a : 'Schedule',
|
|
44
|
+
allowTextInput,
|
|
45
45
|
appearance,
|
|
46
46
|
hideCustomize,
|
|
47
47
|
timezone,
|
|
@@ -52,7 +52,8 @@ function dateScheduleRangeField(config = {}) {
|
|
|
52
52
|
closeDialogConfig,
|
|
53
53
|
computeSelectionResultRelativeToFilter,
|
|
54
54
|
initialSelectionState,
|
|
55
|
-
cellContentFactory
|
|
55
|
+
cellContentFactory,
|
|
56
|
+
customDetailsConfig
|
|
56
57
|
}))));
|
|
57
58
|
return fieldConfig;
|
|
58
59
|
}
|
|
@@ -685,6 +686,7 @@ class DbxScheduleSelectionCalendarDateRangeComponent {
|
|
|
685
686
|
this._required = new BehaviorSubject(false);
|
|
686
687
|
this.required$ = this._required.asObservable();
|
|
687
688
|
this.timezone$ = this.dbxCalendarScheduleSelectionStore.currentTimezone$;
|
|
689
|
+
this.openPickerOnTextClick = true;
|
|
688
690
|
this.label = 'Enter a date range';
|
|
689
691
|
this.showCustomize = false;
|
|
690
692
|
this._pickerOpened = new BehaviorSubject(false);
|
|
@@ -712,6 +714,34 @@ class DbxScheduleSelectionCalendarDateRangeComponent {
|
|
|
712
714
|
return currentDateRange ? (_a = currentDateRange.start) !== null && _a !== void 0 ? _a : currentDateRange.end : undefined !== null && undefined !== void 0 ? undefined : new Date();
|
|
713
715
|
}), shareReplay(1));
|
|
714
716
|
this.isCustomized$ = this.dbxCalendarScheduleSelectionStore.isCustomized$;
|
|
717
|
+
this.currentErrorMessage$ = this.range.statusChanges.pipe(filter((x) => x === 'INVALID' || x === 'VALID'), map((x) => {
|
|
718
|
+
let currentErrorMessage;
|
|
719
|
+
if (x === 'INVALID') {
|
|
720
|
+
const { start, end } = this.range.controls;
|
|
721
|
+
if (this.range.hasError('required')) {
|
|
722
|
+
currentErrorMessage = 'Date range is required';
|
|
723
|
+
}
|
|
724
|
+
else if (start.hasError('matStartDateInvalid')) {
|
|
725
|
+
currentErrorMessage = 'Invalid start date';
|
|
726
|
+
}
|
|
727
|
+
else if (start.hasError('matDatepickerMin')) {
|
|
728
|
+
currentErrorMessage = 'Start date is too early';
|
|
729
|
+
}
|
|
730
|
+
else if (start.hasError('matDatepickerMax')) {
|
|
731
|
+
currentErrorMessage = 'Start date is too late';
|
|
732
|
+
}
|
|
733
|
+
else if (end.hasError('matStartDateInvalid')) {
|
|
734
|
+
currentErrorMessage = 'Invalid end date';
|
|
735
|
+
}
|
|
736
|
+
else if (end.hasError('matDatepickerMin')) {
|
|
737
|
+
currentErrorMessage = 'End date is too early';
|
|
738
|
+
}
|
|
739
|
+
else if (end.hasError('matDatepickerMax')) {
|
|
740
|
+
currentErrorMessage = 'End date is too late';
|
|
741
|
+
}
|
|
742
|
+
}
|
|
743
|
+
return currentErrorMessage;
|
|
744
|
+
}), shareReplay(1));
|
|
715
745
|
this.pickerOpened$ = this._pickerOpened.asObservable();
|
|
716
746
|
}
|
|
717
747
|
set disabled(disabled) {
|
|
@@ -775,6 +805,11 @@ class DbxScheduleSelectionCalendarDateRangeComponent {
|
|
|
775
805
|
set required(required) {
|
|
776
806
|
this._required.next(required);
|
|
777
807
|
}
|
|
808
|
+
clickedDateRangeInput() {
|
|
809
|
+
if (this.openPickerOnTextClick) {
|
|
810
|
+
this.picker.open();
|
|
811
|
+
}
|
|
812
|
+
}
|
|
778
813
|
pickerOpened() {
|
|
779
814
|
this._pickerOpened.next(true);
|
|
780
815
|
}
|
|
@@ -783,16 +818,21 @@ class DbxScheduleSelectionCalendarDateRangeComponent {
|
|
|
783
818
|
}
|
|
784
819
|
}
|
|
785
820
|
DbxScheduleSelectionCalendarDateRangeComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: DbxScheduleSelectionCalendarDateRangeComponent, deps: [{ token: i1.DbxCalendarStore }, { token: DbxCalendarScheduleSelectionStore }, { token: MAT_FORM_FIELD_DEFAULT_OPTIONS }], target: i0.ɵɵFactoryTarget.Component });
|
|
786
|
-
DbxScheduleSelectionCalendarDateRangeComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.12", type: DbxScheduleSelectionCalendarDateRangeComponent, selector: "dbx-schedule-selection-calendar-date-range", inputs: { label: "label", hint: "hint", disabled: "disabled", showCustomize: "showCustomize", required: "required" }, ngImport: i0, template: "<mat-form-field class=\"dbx-schedule-selection-calendar-date-range-field\">\n <mat-label *ngIf=\"label\">{{ label }}</mat-label>\n <div *ngIf=\"showCustomize && (isCustomized$ | async)\" class=\"date-range-field-customized\">\n
|
|
821
|
+
DbxScheduleSelectionCalendarDateRangeComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.12", type: DbxScheduleSelectionCalendarDateRangeComponent, selector: "dbx-schedule-selection-calendar-date-range", inputs: { openPickerOnTextClick: "openPickerOnTextClick", label: "label", hint: "hint", disabled: "disabled", showCustomize: "showCustomize", required: "required" }, viewQueries: [{ propertyName: "picker", first: true, predicate: ["picker"], descendants: true }], ngImport: i0, template: "<mat-form-field class=\"dbx-schedule-selection-calendar-date-range-field\">\n <mat-label *ngIf=\"label\">{{ label }}</mat-label>\n <div class=\"dbx-schedule-selection-calendar-date-range-field-content\">\n <!-- Primary Content -->\n <div class=\"dbx-flex\">\n <div *ngIf=\"showCustomize && (isCustomized$ | async)\" class=\"date-range-field-customized\">\n <span class=\"dbx-accent-bg date-range-field-customized-text\">Custom</span>\n </div>\n <dbx-button-spacer></dbx-button-spacer>\n <mat-datepicker-toggle matIconSuffix [for]=\"picker\"></mat-datepicker-toggle>\n <dbx-button-spacer></dbx-button-spacer>\n <mat-date-range-input (click)=\"clickedDateRangeInput()\" [required]=\"required$ | async\" [min]=\"minDate$ | async\" [max]=\"maxDate$ | async\" [formGroup]=\"range\" [rangePicker]=\"picker\">\n <input [errorStateMatcher]=\"errorStateMatcher\" matStartDate formControlName=\"start\" placeholder=\"Start date\" />\n <input [errorStateMatcher]=\"errorStateMatcher\" matEndDate formControlName=\"end\" placeholder=\"End date\" />\n </mat-date-range-input>\n <span *ngIf=\"timezone$ | async\" class=\"dbx-flex-bar dbx-faint dbx-nowrap dbx-icon-spacer\">{{ timezone$ | async | timezoneAbbreviation: (timezoneReleventDate$ | async) }}</span>\n <div *ngIf=\"showCustomize\">\n <dbx-button-spacer></dbx-button-spacer>\n <ng-content select=\"[customizeButton]\"></ng-content>\n </div>\n <mat-date-range-picker #picker (opened)=\"pickerOpened()\" (closed)=\"pickerClosed()\"></mat-date-range-picker>\n </div>\n <!-- Custom Content -->\n <div>\n <ng-content></ng-content>\n </div>\n </div>\n <mat-error *ngIf=\"currentErrorMessage$ | async\">{{ currentErrorMessage$ | async }}</mat-error>\n <mat-hint>{{ hint }}</mat-hint>\n</mat-form-field>\n", dependencies: [{ 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.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i3.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i3.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i5.MatError, selector: "mat-error", inputs: ["id"] }, { kind: "component", type: i5.MatFormField, selector: "mat-form-field", inputs: ["color", "appearance", "hideRequiredMarker", "hintLabel", "floatLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i5.MatHint, selector: "mat-hint", inputs: ["align", "id"] }, { kind: "directive", type: i5.MatLabel, selector: "mat-label" }, { kind: "directive", type: i1$1.DbxButtonSpacerDirective, selector: "dbx-button-spacer,[dbxButtonSpacer]" }, { kind: "component", type: i7.MatDatepickerToggle, selector: "mat-datepicker-toggle", inputs: ["for", "tabIndex", "aria-label", "disabled", "disableRipple"], exportAs: ["matDatepickerToggle"] }, { kind: "component", type: i7.MatDateRangeInput, selector: "mat-date-range-input", inputs: ["rangePicker", "required", "dateFilter", "min", "max", "disabled", "separator", "comparisonStart", "comparisonEnd"], exportAs: ["matDateRangeInput"] }, { kind: "directive", type: i7.MatStartDate, selector: "input[matStartDate]", inputs: ["errorStateMatcher"], outputs: ["dateChange", "dateInput"] }, { kind: "directive", type: i7.MatEndDate, selector: "input[matEndDate]", inputs: ["errorStateMatcher"], outputs: ["dateChange", "dateInput"] }, { kind: "component", type: i7.MatDateRangePicker, selector: "mat-date-range-picker", exportAs: ["matDateRangePicker"] }, { kind: "pipe", type: i4.AsyncPipe, name: "async" }, { kind: "pipe", type: i3$1.TimezoneAbbreviationPipe, name: "timezoneAbbreviation" }] });
|
|
787
822
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: DbxScheduleSelectionCalendarDateRangeComponent, decorators: [{
|
|
788
823
|
type: Component,
|
|
789
|
-
args: [{ selector: 'dbx-schedule-selection-calendar-date-range', template: "<mat-form-field class=\"dbx-schedule-selection-calendar-date-range-field\">\n <mat-label *ngIf=\"label\">{{ label }}</mat-label>\n <div *ngIf=\"showCustomize && (isCustomized$ | async)\" class=\"date-range-field-customized\">\n
|
|
824
|
+
args: [{ selector: 'dbx-schedule-selection-calendar-date-range', template: "<mat-form-field class=\"dbx-schedule-selection-calendar-date-range-field\">\n <mat-label *ngIf=\"label\">{{ label }}</mat-label>\n <div class=\"dbx-schedule-selection-calendar-date-range-field-content\">\n <!-- Primary Content -->\n <div class=\"dbx-flex\">\n <div *ngIf=\"showCustomize && (isCustomized$ | async)\" class=\"date-range-field-customized\">\n <span class=\"dbx-accent-bg date-range-field-customized-text\">Custom</span>\n </div>\n <dbx-button-spacer></dbx-button-spacer>\n <mat-datepicker-toggle matIconSuffix [for]=\"picker\"></mat-datepicker-toggle>\n <dbx-button-spacer></dbx-button-spacer>\n <mat-date-range-input (click)=\"clickedDateRangeInput()\" [required]=\"required$ | async\" [min]=\"minDate$ | async\" [max]=\"maxDate$ | async\" [formGroup]=\"range\" [rangePicker]=\"picker\">\n <input [errorStateMatcher]=\"errorStateMatcher\" matStartDate formControlName=\"start\" placeholder=\"Start date\" />\n <input [errorStateMatcher]=\"errorStateMatcher\" matEndDate formControlName=\"end\" placeholder=\"End date\" />\n </mat-date-range-input>\n <span *ngIf=\"timezone$ | async\" class=\"dbx-flex-bar dbx-faint dbx-nowrap dbx-icon-spacer\">{{ timezone$ | async | timezoneAbbreviation: (timezoneReleventDate$ | async) }}</span>\n <div *ngIf=\"showCustomize\">\n <dbx-button-spacer></dbx-button-spacer>\n <ng-content select=\"[customizeButton]\"></ng-content>\n </div>\n <mat-date-range-picker #picker (opened)=\"pickerOpened()\" (closed)=\"pickerClosed()\"></mat-date-range-picker>\n </div>\n <!-- Custom Content -->\n <div>\n <ng-content></ng-content>\n </div>\n </div>\n <mat-error *ngIf=\"currentErrorMessage$ | async\">{{ currentErrorMessage$ | async }}</mat-error>\n <mat-hint>{{ hint }}</mat-hint>\n</mat-form-field>\n" }]
|
|
790
825
|
}], ctorParameters: function () {
|
|
791
826
|
return [{ type: i1.DbxCalendarStore }, { type: DbxCalendarScheduleSelectionStore }, { type: undefined, decorators: [{
|
|
792
827
|
type: Inject,
|
|
793
828
|
args: [MAT_FORM_FIELD_DEFAULT_OPTIONS]
|
|
794
829
|
}] }];
|
|
795
|
-
}, propDecorators: {
|
|
830
|
+
}, propDecorators: { openPickerOnTextClick: [{
|
|
831
|
+
type: Input
|
|
832
|
+
}], picker: [{
|
|
833
|
+
type: ViewChild,
|
|
834
|
+
args: ['picker']
|
|
835
|
+
}], label: [{
|
|
796
836
|
type: Input
|
|
797
837
|
}], hint: [{
|
|
798
838
|
type: Input
|
|
@@ -875,20 +915,24 @@ class DbxScheduleSelectionCalendarDatePopoverContentComponent {
|
|
|
875
915
|
}
|
|
876
916
|
DbxScheduleSelectionCalendarDatePopoverContentComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: DbxScheduleSelectionCalendarDatePopoverContentComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
877
917
|
DbxScheduleSelectionCalendarDatePopoverContentComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.12", type: DbxScheduleSelectionCalendarDatePopoverContentComponent, selector: "dbx-schedule-selection-calendar-date-popover-content", ngImport: i0, template: `
|
|
878
|
-
<
|
|
879
|
-
<dbx-schedule-selection-calendar-date-range></dbx-schedule-selection-calendar-date-range>
|
|
880
|
-
<dbx-
|
|
881
|
-
|
|
882
|
-
|
|
918
|
+
<dbx-content-container padding="min" topPadding="normal">
|
|
919
|
+
<dbx-schedule-selection-calendar-date-range [openPickerOnTextClick]="false"></dbx-schedule-selection-calendar-date-range>
|
|
920
|
+
<dbx-label-block header="Allowed Days Of Week">
|
|
921
|
+
<dbx-schedule-selection-calendar-date-days></dbx-schedule-selection-calendar-date-days>
|
|
922
|
+
</dbx-label-block>
|
|
923
|
+
</dbx-content-container>
|
|
924
|
+
`, isInline: true, dependencies: [{ kind: "directive", type: i1$1.DbxContentContainerDirective, selector: "dbx-content-container,[dbxContentContainer],.dbx-content-container", inputs: ["grow", "padding", "topPadding"] }, { kind: "component", type: i1$1.DbxLabelBlockComponent, selector: "dbx-label-block", inputs: ["header"] }, { kind: "component", type: DbxScheduleSelectionCalendarDateDaysComponent, selector: "dbx-schedule-selection-calendar-date-days" }, { kind: "component", type: DbxScheduleSelectionCalendarDateRangeComponent, selector: "dbx-schedule-selection-calendar-date-range", inputs: ["openPickerOnTextClick", "label", "hint", "disabled", "showCustomize", "required"] }] });
|
|
883
925
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: DbxScheduleSelectionCalendarDatePopoverContentComponent, decorators: [{
|
|
884
926
|
type: Component,
|
|
885
927
|
args: [{
|
|
886
928
|
selector: 'dbx-schedule-selection-calendar-date-popover-content',
|
|
887
929
|
template: `
|
|
888
|
-
<
|
|
889
|
-
<dbx-schedule-selection-calendar-date-range></dbx-schedule-selection-calendar-date-range>
|
|
890
|
-
<dbx-
|
|
891
|
-
|
|
930
|
+
<dbx-content-container padding="min" topPadding="normal">
|
|
931
|
+
<dbx-schedule-selection-calendar-date-range [openPickerOnTextClick]="false"></dbx-schedule-selection-calendar-date-range>
|
|
932
|
+
<dbx-label-block header="Allowed Days Of Week">
|
|
933
|
+
<dbx-schedule-selection-calendar-date-days></dbx-schedule-selection-calendar-date-days>
|
|
934
|
+
</dbx-label-block>
|
|
935
|
+
</dbx-content-container>
|
|
892
936
|
`
|
|
893
937
|
}]
|
|
894
938
|
}] });
|
|
@@ -1146,20 +1190,36 @@ class DbxScheduleSelectionCalendarComponent {
|
|
|
1146
1190
|
this.calendarStore.setNavigationRangeLimit(this.dbxCalendarScheduleSelectionStore.minMaxDateRange$); // set navigation limit to the min/max allowed dates.
|
|
1147
1191
|
this.calendarStore.setShowPageButtons(true);
|
|
1148
1192
|
// when a new filter is set, if the first two pages of selectable indexes fit within the calendar month, focus on that calendar month.
|
|
1149
|
-
this._centerRangeSub.subscription = this.dbxCalendarScheduleSelectionStore.
|
|
1150
|
-
|
|
1193
|
+
this._centerRangeSub.subscription = this.dbxCalendarScheduleSelectionStore.currentDateRange$
|
|
1194
|
+
.pipe(first(), switchMap((x) => {
|
|
1195
|
+
let result = x
|
|
1196
|
+
? of([x, true])
|
|
1197
|
+
: this.dbxCalendarScheduleSelectionStore.minMaxDateRange$.pipe(first(), map((y) => [y, false]));
|
|
1198
|
+
return result;
|
|
1199
|
+
}))
|
|
1200
|
+
.subscribe(([x, isFromSelectedDateRange]) => {
|
|
1201
|
+
if (x === null || x === void 0 ? void 0 : x.start) {
|
|
1202
|
+
let tapDay;
|
|
1151
1203
|
const startMonth = dateRange({ date: x.start, type: DateRangeType.CALENDAR_MONTH });
|
|
1152
|
-
const
|
|
1153
|
-
if (
|
|
1154
|
-
const
|
|
1155
|
-
|
|
1204
|
+
const monthToFocus = endOfWeek(startMonth.start);
|
|
1205
|
+
if (x.end != null) {
|
|
1206
|
+
const endMonth = dateRange({ date: x.end, type: DateRangeType.CALENDAR_MONTH });
|
|
1207
|
+
if (isSameDate(startMonth.start, endMonth.start)) {
|
|
1208
|
+
tapDay = monthToFocus;
|
|
1209
|
+
}
|
|
1210
|
+
}
|
|
1211
|
+
if (!tapDay && isFromSelectedDateRange) {
|
|
1212
|
+
tapDay = monthToFocus;
|
|
1213
|
+
}
|
|
1214
|
+
if (tapDay) {
|
|
1215
|
+
this.calendarStore.tapDay(tapDay);
|
|
1156
1216
|
}
|
|
1157
1217
|
}
|
|
1158
1218
|
});
|
|
1159
1219
|
}
|
|
1160
1220
|
ngOnDestroy() {
|
|
1161
|
-
this._inputReadonly.complete();
|
|
1162
1221
|
this.clickEvent.complete();
|
|
1222
|
+
this._inputReadonly.complete();
|
|
1163
1223
|
this._config.complete();
|
|
1164
1224
|
this._centerRangeSub.destroy();
|
|
1165
1225
|
}
|
|
@@ -1264,19 +1324,21 @@ class DbxScheduleSelectionCalendarDateDialogButtonComponent {
|
|
|
1264
1324
|
}
|
|
1265
1325
|
}
|
|
1266
1326
|
DbxScheduleSelectionCalendarDateDialogButtonComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: DbxScheduleSelectionCalendarDateDialogButtonComponent, deps: [{ token: i1$2.MatDialog }, { token: i0.Injector }], target: i0.ɵɵFactoryTarget.Component });
|
|
1267
|
-
DbxScheduleSelectionCalendarDateDialogButtonComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.12", type: DbxScheduleSelectionCalendarDateDialogButtonComponent, selector: "dbx-schedule-selection-calendar-date-dialog-button", inputs: { buttonText: "buttonText", contentConfig: "contentConfig", closeConfig: "closeConfig" }, ngImport: i0, template: `
|
|
1268
|
-
<button
|
|
1269
|
-
`, isInline: true, dependencies: [{ kind: "component", type:
|
|
1327
|
+
DbxScheduleSelectionCalendarDateDialogButtonComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.12", type: DbxScheduleSelectionCalendarDateDialogButtonComponent, selector: "dbx-schedule-selection-calendar-date-dialog-button", inputs: { buttonText: "buttonText", disabled: "disabled", contentConfig: "contentConfig", closeConfig: "closeConfig" }, ngImport: i0, template: `
|
|
1328
|
+
<dbx-button [raised]="true" color="accent" [text]="buttonText" [disabled]="disabled" (buttonClick)="clickCustomize()"></dbx-button>
|
|
1329
|
+
`, isInline: true, dependencies: [{ kind: "component", type: i1$1.DbxButtonComponent, selector: "dbx-button", inputs: ["type", "raised", "stroked", "flat", "iconOnly", "color", "customButtonColor", "customTextColor", "customSpinnerColor"] }] });
|
|
1270
1330
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: DbxScheduleSelectionCalendarDateDialogButtonComponent, decorators: [{
|
|
1271
1331
|
type: Component,
|
|
1272
1332
|
args: [{
|
|
1273
1333
|
selector: 'dbx-schedule-selection-calendar-date-dialog-button',
|
|
1274
1334
|
template: `
|
|
1275
|
-
<button
|
|
1335
|
+
<dbx-button [raised]="true" color="accent" [text]="buttonText" [disabled]="disabled" (buttonClick)="clickCustomize()"></dbx-button>
|
|
1276
1336
|
`
|
|
1277
1337
|
}]
|
|
1278
1338
|
}], ctorParameters: function () { return [{ type: i1$2.MatDialog }, { type: i0.Injector }]; }, propDecorators: { buttonText: [{
|
|
1279
1339
|
type: Input
|
|
1340
|
+
}], disabled: [{
|
|
1341
|
+
type: Input
|
|
1280
1342
|
}], contentConfig: [{
|
|
1281
1343
|
type: Input
|
|
1282
1344
|
}], closeConfig: [{
|
|
@@ -1298,6 +1360,7 @@ class DbxFormCalendarDateScheduleRangeFieldComponent extends FieldType {
|
|
|
1298
1360
|
this._formControlObs = new BehaviorSubject(undefined);
|
|
1299
1361
|
this.formControl$ = this._formControlObs.pipe(filterMaybe());
|
|
1300
1362
|
this.value$ = this.formControl$.pipe(switchMap((control) => control.valueChanges.pipe(startWith(control.value))), shareReplay(1));
|
|
1363
|
+
this.disableCustomize$ = this.value$.pipe(map((x) => (this.allowCustomizeWithoutDateRange ? false : !x)), distinctUntilChanged(), shareReplay(1));
|
|
1301
1364
|
}
|
|
1302
1365
|
get formGroupName() {
|
|
1303
1366
|
return this.field.key;
|
|
@@ -1315,6 +1378,13 @@ class DbxFormCalendarDateScheduleRangeFieldComponent extends FieldType {
|
|
|
1315
1378
|
get isReadonlyOrDisabled() {
|
|
1316
1379
|
return this.props.readonly || this.disabled;
|
|
1317
1380
|
}
|
|
1381
|
+
get openPickerOnTextClick() {
|
|
1382
|
+
return this.props.allowTextInput !== true; // Opposite of allowTextInput
|
|
1383
|
+
}
|
|
1384
|
+
get allowCustomizeWithoutDateRange() {
|
|
1385
|
+
var _a;
|
|
1386
|
+
return (_a = this.props.allowCustomizeWithoutDateRange) !== null && _a !== void 0 ? _a : false;
|
|
1387
|
+
}
|
|
1318
1388
|
get showCustomize() {
|
|
1319
1389
|
return !this.props.hideCustomize;
|
|
1320
1390
|
}
|
|
@@ -1342,6 +1412,9 @@ class DbxFormCalendarDateScheduleRangeFieldComponent extends FieldType {
|
|
|
1342
1412
|
get dialogContentConfig() {
|
|
1343
1413
|
return this.props.dialogContentConfig;
|
|
1344
1414
|
}
|
|
1415
|
+
get customDetailsConfig() {
|
|
1416
|
+
return this.props.customDetailsConfig;
|
|
1417
|
+
}
|
|
1345
1418
|
get cellContentFactory() {
|
|
1346
1419
|
return this.props.cellContentFactory;
|
|
1347
1420
|
}
|
|
@@ -1390,18 +1463,20 @@ class DbxFormCalendarDateScheduleRangeFieldComponent extends FieldType {
|
|
|
1390
1463
|
DbxFormCalendarDateScheduleRangeFieldComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: DbxFormCalendarDateScheduleRangeFieldComponent, deps: [{ token: i1$1.CompactContextStore, optional: true }, { token: DbxCalendarScheduleSelectionStore }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
|
|
1391
1464
|
DbxFormCalendarDateScheduleRangeFieldComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.12", type: DbxFormCalendarDateScheduleRangeFieldComponent, selector: "ng-component", providers: [provideCalendarScheduleSelectionStoreIfParentIsUnavailable()], usesInheritance: true, ngImport: i0, template: `
|
|
1392
1465
|
<div class="dbx-schedule-selection-field">
|
|
1393
|
-
<dbx-schedule-selection-calendar-date-range [showCustomize]="showCustomize" [required]="required" [disabled]="isReadonlyOrDisabled" [label]="label" [hint]="description">
|
|
1394
|
-
<dbx-schedule-selection-calendar-date-dialog-button [contentConfig]="dialogContentConfig" [closeConfig]="closeDialogConfig"
|
|
1466
|
+
<dbx-schedule-selection-calendar-date-range [openPickerOnTextClick]="openPickerOnTextClick" [showCustomize]="showCustomize" [required]="required" [disabled]="isReadonlyOrDisabled" [label]="label" [hint]="description">
|
|
1467
|
+
<dbx-schedule-selection-calendar-date-dialog-button customizeButton [disabled]="disableCustomize$ | async" [contentConfig]="dialogContentConfig" [closeConfig]="closeDialogConfig"></dbx-schedule-selection-calendar-date-dialog-button>
|
|
1468
|
+
<dbx-injection [config]="customDetailsConfig"></dbx-injection>
|
|
1395
1469
|
</dbx-schedule-selection-calendar-date-range>
|
|
1396
1470
|
</div>
|
|
1397
|
-
`, isInline: true, dependencies: [{ kind: "component", type: DbxScheduleSelectionCalendarDateRangeComponent, selector: "dbx-schedule-selection-calendar-date-range", inputs: ["label", "hint", "disabled", "showCustomize", "required"] }, { kind: "component", type: DbxScheduleSelectionCalendarDateDialogButtonComponent, selector: "dbx-schedule-selection-calendar-date-dialog-button", inputs: ["buttonText", "contentConfig", "closeConfig"] }] });
|
|
1471
|
+
`, isInline: true, dependencies: [{ kind: "component", type: i3$1.DbxInjectionComponent, selector: "dbx-injection, [dbxInjection], [dbx-injection]", inputs: ["config", "template"] }, { kind: "component", type: DbxScheduleSelectionCalendarDateRangeComponent, selector: "dbx-schedule-selection-calendar-date-range", inputs: ["openPickerOnTextClick", "label", "hint", "disabled", "showCustomize", "required"] }, { kind: "component", type: DbxScheduleSelectionCalendarDateDialogButtonComponent, selector: "dbx-schedule-selection-calendar-date-dialog-button", inputs: ["buttonText", "disabled", "contentConfig", "closeConfig"] }, { kind: "pipe", type: i4.AsyncPipe, name: "async" }] });
|
|
1398
1472
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: DbxFormCalendarDateScheduleRangeFieldComponent, decorators: [{
|
|
1399
1473
|
type: Component,
|
|
1400
1474
|
args: [{
|
|
1401
1475
|
template: `
|
|
1402
1476
|
<div class="dbx-schedule-selection-field">
|
|
1403
|
-
<dbx-schedule-selection-calendar-date-range [showCustomize]="showCustomize" [required]="required" [disabled]="isReadonlyOrDisabled" [label]="label" [hint]="description">
|
|
1404
|
-
<dbx-schedule-selection-calendar-date-dialog-button [contentConfig]="dialogContentConfig" [closeConfig]="closeDialogConfig"
|
|
1477
|
+
<dbx-schedule-selection-calendar-date-range [openPickerOnTextClick]="openPickerOnTextClick" [showCustomize]="showCustomize" [required]="required" [disabled]="isReadonlyOrDisabled" [label]="label" [hint]="description">
|
|
1478
|
+
<dbx-schedule-selection-calendar-date-dialog-button customizeButton [disabled]="disableCustomize$ | async" [contentConfig]="dialogContentConfig" [closeConfig]="closeDialogConfig"></dbx-schedule-selection-calendar-date-dialog-button>
|
|
1479
|
+
<dbx-injection [config]="customDetailsConfig"></dbx-injection>
|
|
1405
1480
|
</dbx-schedule-selection-calendar-date-range>
|
|
1406
1481
|
</div>
|
|
1407
1482
|
`,
|
|
@@ -1448,6 +1523,8 @@ DbxFormCalendarModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", v
|
|
|
1448
1523
|
], imports: [
|
|
1449
1524
|
//
|
|
1450
1525
|
DbxInjectionComponentModule,
|
|
1526
|
+
DbxContentLayoutModule,
|
|
1527
|
+
DbxTextModule,
|
|
1451
1528
|
DbxActionModule,
|
|
1452
1529
|
DbxFormModule,
|
|
1453
1530
|
DbxFormlyModule,
|
|
@@ -1486,6 +1563,8 @@ DbxFormCalendarModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", v
|
|
|
1486
1563
|
DbxFormCalendarModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: DbxFormCalendarModule, imports: [
|
|
1487
1564
|
//
|
|
1488
1565
|
DbxInjectionComponentModule,
|
|
1566
|
+
DbxContentLayoutModule,
|
|
1567
|
+
DbxTextModule,
|
|
1489
1568
|
DbxActionModule,
|
|
1490
1569
|
DbxFormModule,
|
|
1491
1570
|
DbxFormlyModule,
|
|
@@ -1513,6 +1592,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImpo
|
|
|
1513
1592
|
imports: [
|
|
1514
1593
|
//
|
|
1515
1594
|
DbxInjectionComponentModule,
|
|
1595
|
+
DbxContentLayoutModule,
|
|
1596
|
+
DbxTextModule,
|
|
1516
1597
|
DbxActionModule,
|
|
1517
1598
|
DbxFormModule,
|
|
1518
1599
|
DbxFormlyModule,
|
|
@@ -1542,7 +1623,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImpo
|
|
|
1542
1623
|
class DbxFormDateScheduleRangeFieldModule {
|
|
1543
1624
|
}
|
|
1544
1625
|
DbxFormDateScheduleRangeFieldModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: DbxFormDateScheduleRangeFieldModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
1545
|
-
DbxFormDateScheduleRangeFieldModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.2.12", ngImport: i0, type: DbxFormDateScheduleRangeFieldModule, declarations: [DbxFormCalendarDateScheduleRangeFieldComponent], imports: [
|
|
1626
|
+
DbxFormDateScheduleRangeFieldModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.2.12", ngImport: i0, type: DbxFormDateScheduleRangeFieldModule, declarations: [DbxFormCalendarDateScheduleRangeFieldComponent], imports: [DbxInjectionComponentModule,
|
|
1627
|
+
CommonModule,
|
|
1546
1628
|
MatIconModule,
|
|
1547
1629
|
DbxFormCalendarModule,
|
|
1548
1630
|
MatButtonModule,
|
|
@@ -1550,7 +1632,8 @@ DbxFormDateScheduleRangeFieldModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersio
|
|
|
1550
1632
|
FormsModule,
|
|
1551
1633
|
ReactiveFormsModule,
|
|
1552
1634
|
MatInputModule, i1$3.FormlyModule] });
|
|
1553
|
-
DbxFormDateScheduleRangeFieldModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: DbxFormDateScheduleRangeFieldModule, imports: [
|
|
1635
|
+
DbxFormDateScheduleRangeFieldModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: DbxFormDateScheduleRangeFieldModule, imports: [DbxInjectionComponentModule,
|
|
1636
|
+
CommonModule,
|
|
1554
1637
|
MatIconModule,
|
|
1555
1638
|
DbxFormCalendarModule,
|
|
1556
1639
|
MatButtonModule,
|
|
@@ -1565,6 +1648,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImpo
|
|
|
1565
1648
|
type: NgModule,
|
|
1566
1649
|
args: [{
|
|
1567
1650
|
imports: [
|
|
1651
|
+
DbxInjectionComponentModule,
|
|
1568
1652
|
CommonModule,
|
|
1569
1653
|
MatIconModule,
|
|
1570
1654
|
DbxFormCalendarModule,
|