@fundamental-ngx/core 0.43.3 → 0.43.5
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/button/base-button.d.ts +6 -6
- package/date-picker/date-picker.component.d.ts +15 -2
- package/datetime-picker/datetime-picker.component.d.ts +6 -0
- package/esm2020/button/base-button.mjs +8 -9
- package/esm2020/carousel/carousel.service.mjs +5 -1
- package/esm2020/date-picker/date-picker.component.mjs +51 -22
- package/esm2020/datetime-picker/datetime-picker.component.mjs +29 -17
- package/esm2020/switch/switch.component.mjs +3 -3
- package/fesm2015/fundamental-ngx-core-button.mjs +7 -8
- package/fesm2015/fundamental-ngx-core-button.mjs.map +1 -1
- package/fesm2015/fundamental-ngx-core-carousel.mjs +4 -0
- package/fesm2015/fundamental-ngx-core-carousel.mjs.map +1 -1
- package/fesm2015/fundamental-ngx-core-date-picker.mjs +51 -21
- package/fesm2015/fundamental-ngx-core-date-picker.mjs.map +1 -1
- package/fesm2015/fundamental-ngx-core-datetime-picker.mjs +28 -16
- package/fesm2015/fundamental-ngx-core-datetime-picker.mjs.map +1 -1
- package/fesm2015/fundamental-ngx-core-switch.mjs +2 -2
- package/fesm2015/fundamental-ngx-core-switch.mjs.map +1 -1
- package/fesm2020/fundamental-ngx-core-button.mjs +7 -8
- package/fesm2020/fundamental-ngx-core-button.mjs.map +1 -1
- package/fesm2020/fundamental-ngx-core-carousel.mjs +4 -0
- package/fesm2020/fundamental-ngx-core-carousel.mjs.map +1 -1
- package/fesm2020/fundamental-ngx-core-date-picker.mjs +50 -21
- package/fesm2020/fundamental-ngx-core-date-picker.mjs.map +1 -1
- package/fesm2020/fundamental-ngx-core-datetime-picker.mjs +28 -16
- package/fesm2020/fundamental-ngx-core-datetime-picker.mjs.map +1 -1
- package/fesm2020/fundamental-ngx-core-switch.mjs +2 -2
- package/fesm2020/fundamental-ngx-core-switch.mjs.map +1 -1
- package/fundamental-ngx-core-v0.43.5.tgz +0 -0
- package/package.json +3 -3
- package/schematics/add-dependencies/index.js +4 -4
- package/fundamental-ngx-core-v0.43.3.tgz +0 -0
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
|
-
import { EventEmitter, forwardRef, ElementRef, Component, ViewEncapsulation, ChangeDetectionStrategy, Optional, Inject, Input, Output, ViewChild, Directive, NgModule } from '@angular/core';
|
|
2
|
+
import { EventEmitter, forwardRef, ElementRef, Component, ViewEncapsulation, ChangeDetectionStrategy, Optional, Inject, Input, Output, ViewChildren, ViewChild, Directive, NgModule } from '@angular/core';
|
|
3
3
|
import * as i3 from '@angular/common';
|
|
4
4
|
import { CommonModule } from '@angular/common';
|
|
5
5
|
import { IconModule } from '@fundamental-ngx/core/icon';
|
|
@@ -10,7 +10,7 @@ import { CalendarComponent, CalendarModule } from '@fundamental-ngx/core/calenda
|
|
|
10
10
|
import * as i6 from '@angular/forms';
|
|
11
11
|
import { NG_VALUE_ACCESSOR, NG_VALIDATORS, FormsModule } from '@angular/forms';
|
|
12
12
|
import { Subject, Subscription } from 'rxjs';
|
|
13
|
-
import { takeUntil } from 'rxjs/operators';
|
|
13
|
+
import { takeUntil, startWith } from 'rxjs/operators';
|
|
14
14
|
import { coerceBooleanProperty } from '@angular/cdk/coercion';
|
|
15
15
|
import * as i1 from '@fundamental-ngx/core/datetime';
|
|
16
16
|
import { DATE_TIME_FORMATS } from '@fundamental-ngx/core/datetime';
|
|
@@ -72,6 +72,18 @@ class DatePickerComponent {
|
|
|
72
72
|
}
|
|
73
73
|
return this._state;
|
|
74
74
|
}
|
|
75
|
+
/** Whether the date picker is open. Can be used through two-way binding. */
|
|
76
|
+
set isOpen(value) {
|
|
77
|
+
if (value === this._isOpen) {
|
|
78
|
+
return;
|
|
79
|
+
}
|
|
80
|
+
this._isOpen = value;
|
|
81
|
+
this._showPopoverContents = value;
|
|
82
|
+
this._changeDetectionRef.detectChanges();
|
|
83
|
+
}
|
|
84
|
+
get isOpen() {
|
|
85
|
+
return this._isOpen;
|
|
86
|
+
}
|
|
75
87
|
/**
|
|
76
88
|
* Whether to recalculate value from the input as user types or on blur.
|
|
77
89
|
* By default, updates the value as user types.
|
|
@@ -184,8 +196,8 @@ class DatePickerComponent {
|
|
|
184
196
|
* Whether user wants to show week numbers next to days
|
|
185
197
|
*/
|
|
186
198
|
this.showWeekNumbers = true;
|
|
187
|
-
/**
|
|
188
|
-
this.
|
|
199
|
+
/** @hidden */
|
|
200
|
+
this._isOpen = false;
|
|
189
201
|
/** Should date picker be inlined. */
|
|
190
202
|
this.inline = true;
|
|
191
203
|
/**
|
|
@@ -207,6 +219,8 @@ class DatePickerComponent {
|
|
|
207
219
|
/** @hidden Whether the date input is invalid */
|
|
208
220
|
this._isInvalidDateInput = false;
|
|
209
221
|
/** @hidden */
|
|
222
|
+
this._showPopoverContents = false;
|
|
223
|
+
/** @hidden */
|
|
210
224
|
this._formValueStateMessageId = `fd-date-picker-form-message-${datePickerCounter++}`;
|
|
211
225
|
/** @hidden */
|
|
212
226
|
this._onDestroy$ = new Subject();
|
|
@@ -246,8 +260,23 @@ class DatePickerComponent {
|
|
|
246
260
|
});
|
|
247
261
|
}
|
|
248
262
|
/** @hidden */
|
|
263
|
+
ngOnChanges(changes) {
|
|
264
|
+
if ('isOpen' in changes) {
|
|
265
|
+
this._showPopoverContents = this.isOpen;
|
|
266
|
+
this._changeDetectionRef.detectChanges();
|
|
267
|
+
}
|
|
268
|
+
}
|
|
269
|
+
/** @hidden */
|
|
249
270
|
ngAfterViewInit() {
|
|
250
271
|
this._InitialiseVariablesInMessageService();
|
|
272
|
+
this._calendars.changes.pipe(startWith(null), takeUntil(this._onDestroy$)).subscribe(() => {
|
|
273
|
+
const calendar = this._calendars.first;
|
|
274
|
+
this._calendarComponent = calendar;
|
|
275
|
+
setTimeout(() => {
|
|
276
|
+
calendar?.setCurrentlyDisplayed(this._calendarPendingDate);
|
|
277
|
+
calendar?.initialFocus();
|
|
278
|
+
});
|
|
279
|
+
});
|
|
251
280
|
}
|
|
252
281
|
/** @hidden */
|
|
253
282
|
ngOnDestroy() {
|
|
@@ -271,15 +300,13 @@ class DatePickerComponent {
|
|
|
271
300
|
/** Opens the calendar */
|
|
272
301
|
openCalendar() {
|
|
273
302
|
if (!this.disabled) {
|
|
274
|
-
this.
|
|
275
|
-
this.isOpenChange.emit(this.isOpen);
|
|
303
|
+
this._setOpenState(true);
|
|
276
304
|
this._changeMessageVisibility();
|
|
277
305
|
}
|
|
278
306
|
}
|
|
279
307
|
/** Toggles the calendar open or closed */
|
|
280
308
|
toggleCalendar() {
|
|
281
|
-
this.
|
|
282
|
-
this.isOpenChange.emit(this.isOpen);
|
|
309
|
+
this._setOpenState(!this.isOpen);
|
|
283
310
|
if (!this.isOpen) {
|
|
284
311
|
this.onTouched();
|
|
285
312
|
}
|
|
@@ -288,8 +315,7 @@ class DatePickerComponent {
|
|
|
288
315
|
/** Closes the calendar if it is open */
|
|
289
316
|
closeCalendar() {
|
|
290
317
|
if (this.isOpen) {
|
|
291
|
-
this.
|
|
292
|
-
this.isOpenChange.emit(this.isOpen);
|
|
318
|
+
this._setOpenState(false);
|
|
293
319
|
this._changeMessageVisibility();
|
|
294
320
|
}
|
|
295
321
|
}
|
|
@@ -536,10 +562,6 @@ class DatePickerComponent {
|
|
|
536
562
|
preventScroll: this.preventScrollOnFocus
|
|
537
563
|
});
|
|
538
564
|
}
|
|
539
|
-
// focus calendar cell on opening
|
|
540
|
-
if (isOpen && this._calendarComponent) {
|
|
541
|
-
this._calendarComponent.initialFocus();
|
|
542
|
-
}
|
|
543
565
|
}
|
|
544
566
|
/** @hidden */
|
|
545
567
|
_onBlur(event) {
|
|
@@ -569,9 +591,8 @@ class DatePickerComponent {
|
|
|
569
591
|
}
|
|
570
592
|
/** @hidden */
|
|
571
593
|
_refreshCurrentlyDisplayedCalendarDate(date) {
|
|
572
|
-
|
|
573
|
-
|
|
574
|
-
}
|
|
594
|
+
this._calendarPendingDate = date;
|
|
595
|
+
this._calendarComponent?.setCurrentlyDisplayed(date);
|
|
575
596
|
}
|
|
576
597
|
/** @hidden */
|
|
577
598
|
_formatDate(date) {
|
|
@@ -594,6 +615,14 @@ class DatePickerComponent {
|
|
|
594
615
|
this._popoverFormMessage.triggers = this._messageTriggers;
|
|
595
616
|
this._popoverFormMessage.messageType = this._state;
|
|
596
617
|
}
|
|
618
|
+
/** @hidden */
|
|
619
|
+
_setOpenState(isOpen) {
|
|
620
|
+
this._showPopoverContents = isOpen;
|
|
621
|
+
this._changeDetectionRef.detectChanges();
|
|
622
|
+
this.isOpen = isOpen;
|
|
623
|
+
this.isOpenChange.emit(this.isOpen);
|
|
624
|
+
this._changeDetectionRef.detectChanges();
|
|
625
|
+
}
|
|
597
626
|
}
|
|
598
627
|
DatePickerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: DatePickerComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i1.DatetimeAdapter, optional: true }, { token: DATE_TIME_FORMATS, optional: true }, { token: i2.PopoverFormMessageService }], target: i0.ɵɵFactoryTarget.Component });
|
|
599
628
|
DatePickerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: DatePickerComponent, selector: "fd-date-picker", inputs: { type: "type", placeholder: "placeholder", inputId: "inputId", required: "required", message: "message", messageTriggers: "messageTriggers", selectedDate: "selectedDate", selectedRangeDate: "selectedRangeDate", startingDayOfWeek: "startingDayOfWeek", rangeHoverEffect: "rangeHoverEffect", useValidation: "useValidation", dateInputLabel: "dateInputLabel", dateRangeInputLabel: "dateRangeInputLabel", displayCalendarToggleLabel: "displayCalendarToggleLabel", valueStateSuccessMessage: "valueStateSuccessMessage", valueStateInformationMessage: "valueStateInformationMessage", valueStateWarningMessage: "valueStateWarningMessage", valueStateErrorMessage: "valueStateErrorMessage", allowNull: "allowNull", activeView: "activeView", placement: "placement", appendTo: "appendTo", disabled: "disabled", closeOnDateChoose: "closeOnDateChoose", showTodayButton: "showTodayButton", todayButtonLabel: "todayButtonLabel", previousButtonDisableFunction: "previousButtonDisableFunction", nextButtonDisableFunction: "nextButtonDisableFunction", state: "state", buttonFocusable: "buttonFocusable", specialDaysRules: "specialDaysRules", yearGrid: "yearGrid", aggregatedYearGrid: "aggregatedYearGrid", markWeekends: "markWeekends", showWeekNumbers: "showWeekNumbers", isOpen: "isOpen", inline: "inline", ariaLabelledBy: "ariaLabelledBy", processInputOnBlur: "processInputOnBlur", preventScrollOnFocus: "preventScrollOnFocus", disableFunction: "disableFunction", disableRangeStartFunction: "disableRangeStartFunction", disableRangeEndFunction: "disableRangeEndFunction" }, outputs: { isOpenChange: "isOpenChange", selectedDateChange: "selectedDateChange", selectedRangeDateChange: "selectedRangeDateChange", activeViewChange: "activeViewChange" }, host: { listeners: { "blur": "onTouched()" }, properties: { "class.fd-date-picker": "true", "class.fd-date-picker-custom": "inline" } }, providers: [
|
|
@@ -610,7 +639,7 @@ DatePickerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", ve
|
|
|
610
639
|
registerFormItemControl(DatePickerComponent),
|
|
611
640
|
PopoverFormMessageService,
|
|
612
641
|
PopoverService
|
|
613
|
-
], viewQueries: [{ propertyName: "
|
|
642
|
+
], viewQueries: [{ propertyName: "_inputGroupElement", first: true, predicate: ["inputGroupComponent"], descendants: true, read: ElementRef }, { propertyName: "_inputElement", first: true, predicate: InputGroupInputDirective, descendants: true, read: ElementRef }, { propertyName: "_calendars", predicate: CalendarComponent, descendants: true }], usesOnChanges: true, ngImport: i0, template: "<fd-popover\n [(isOpen)]=\"isOpen\"\n (isOpenChange)=\"_onOpenStateChanged($event)\"\n [triggers]=\"[]\"\n [placement]=\"placement\"\n [disabled]=\"disabled\"\n [focusTrapped]=\"true\"\n [focusAutoCapture]=\"false\"\n [appendTo]=\"appendTo\"\n>\n <fd-popover-control>\n <fd-input-group\n #inputGroupComponent\n [state]=\"state\"\n [disabled]=\"disabled\"\n [isControl]=\"true\"\n [button]=\"true\"\n [buttonFocusable]=\"buttonFocusable\"\n glyph=\"appointment-2\"\n [isExpanded]=\"isOpen\"\n [glyphAriaLabel]=\"displayCalendarToggleLabel || ('coreDatePicker.displayCalendarToggleLabel' | fdTranslate)\"\n [iconTitle]=\"displayCalendarToggleLabel || ('coreDatePicker.displayCalendarToggleLabel' | fdTranslate)\"\n (addOnButtonClicked)=\"toggleCalendar()\"\n >\n <input\n type=\"text\"\n class=\"fd-input\"\n fd-input-group-input\n [disabled]=\"disabled\"\n [placeholder]=\"placeholder\"\n [attr.id]=\"inputId\"\n aria-haspopup=\"grid\"\n aria-autocomplete=\"none\"\n [attr.aria-expanded]=\"isOpen\"\n [attr.aria-labelledby]=\"ariaLabelledBy\"\n [attr.aria-label]=\"_dateInputArialLabel || (_dateInputArialLabelKey | fdTranslate)\"\n [attr.aria-required]=\"required\"\n [attr.aria-describedby]=\"_formValueStateMessageId\"\n [ngModel]=\"_inputFieldDate\"\n (keyup.enter)=\"handleInputChange($any($event.target).value, false)\"\n (ngModelChange)=\"handleInputChange($event, true)\"\n (blur)=\"_onBlur($event)\"\n />\n </fd-input-group>\n </fd-popover-control>\n <fd-popover-body [attr.aria-expanded]=\"isOpen\" [attr.aria-hidden]=\"!isOpen\">\n <ng-container *ngIf=\"_showPopoverContents\">\n <fd-form-message [embedded]=\"true\" *ngIf=\"_message\" [type]=\"state\">\n {{ _message }}\n </fd-form-message>\n <ng-content></ng-content>\n\n <fd-calendar\n (closeCalendar)=\"closeFromCalendar()\"\n [activeView]=\"activeView\"\n [markWeekends]=\"markWeekends\"\n [specialDaysRules]=\"specialDaysRules\"\n [showWeekNumbers]=\"showWeekNumbers\"\n [aggregatedYearGrid]=\"aggregatedYearGrid\"\n [yearGrid]=\"yearGrid\"\n (activeViewChange)=\"handleCalendarActiveViewChange($event)\"\n [calType]=\"type\"\n [rangeHoverEffect]=\"rangeHoverEffect\"\n [disableFunction]=\"disableFunction\"\n [disableRangeStartFunction]=\"disableRangeStartFunction\"\n [disableRangeEndFunction]=\"disableRangeEndFunction\"\n [selectedDate]=\"selectedDate\"\n [selectedRangeDate]=\"selectedRangeDate\"\n (selectedRangeDateChange)=\"handleRangeDateChange($event)\"\n (selectedDateChange)=\"handleSingleDateChange($event)\"\n [startingDayOfWeek]=\"startingDayOfWeek\"\n [previousButtonDisableFunction]=\"previousButtonDisableFunction\"\n [nextButtonDisableFunction]=\"nextButtonDisableFunction\"\n ></fd-calendar>\n\n <div *ngIf=\"showTodayButton\" fd-bar barDesign=\"footer\">\n <div fd-bar-right>\n <fd-bar-element>\n <button fd-button [label]=\"todayButtonLabel\" (click)=\"onTodayButtonClick()\"></button>\n </fd-bar-element>\n </div>\n </div>\n </ng-container>\n </fd-popover-body>\n</fd-popover>\n\n<div style=\"display: none\" aria-hidden=\"true\">\n <div [attr.id]=\"_formValueStateMessageId\" aria-atomic=\"true\" aria-live=\"assertive\">\n <ng-container [ngSwitch]=\"state\">\n <ng-container *ngSwitchCase=\"'success'\">{{\n valueStateSuccessMessage || ('coreDatePicker.valueStateSuccessMessage' | fdTranslate)\n }}</ng-container>\n <ng-container *ngSwitchCase=\"'information'\">{{\n valueStateInformationMessage || ('coreDatePicker.valueStateInformationMessage' | fdTranslate)\n }}</ng-container>\n <ng-container *ngSwitchCase=\"'warning'\">{{\n valueStateWarningMessage || ('coreDatePicker.valueStateWarningMessage' | fdTranslate)\n }}</ng-container>\n <ng-container *ngSwitchCase=\"'error'\">{{\n valueStateErrorMessage || ('coreDatePicker.valueStateErrorMessage' | fdTranslate)\n }}</ng-container>\n </ng-container>\n {{ _message }}\n </div>\n</div>\n", styles: [".fd-date-picker-custom{display:inline-block}.fd-date-picker-custom fd-popover{display:block}.fd-date-picker-custom fd-calendar{border-radius:.25rem;border-radius:var(--sapElement_BorderCornerRadius, .25rem)}\n"], dependencies: [{ kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i3.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "component", type: i4.PopoverControlComponent, selector: "fd-popover-control" }, { kind: "component", type: i4.PopoverBodyComponent, selector: "fd-popover-body" }, { kind: "component", type: i4.PopoverComponent, selector: "fd-popover", inputs: ["title", "trigger", "fixedPosition", "id", "mobile", "mobileConfig"] }, { kind: "component", type: i5.CalendarComponent, selector: "fd-calendar", inputs: ["selectedDate", "markWeekends", "showWeekNumbers", "mobileLandscape", "mobilePortrait", "selectedRangeDate", "activeView", "startingDayOfWeek", "calType", "id", "specialDaysRules", "yearGrid", "aggregatedYearGrid", "rangeHoverEffect", "previousButtonDisableFunction", "nextButtonDisableFunction", "escapeFocusFunction", "disableFunction", "disableRangeStartFunction", "disableRangeEndFunction"], outputs: ["activeViewChange", "selectedDateChange", "selectedRangeDateChange", "isValidDateChange", "closeCalendar", "closeClicked"] }, { kind: "directive", type: i6.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: i6.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i6.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i7.InputGroupComponent, selector: "fd-input-group", inputs: ["inputTemplate", "placement", "required", "inline", "placeholder", "addOnText", "buttonFocusable", "type", "glyph", "button", "disabled", "readonly", "state", "isControl", "showFocus", "isExpanded", "glyphAriaLabel", "iconTitle", "ariaLabelledby", "ariaLabelledBy"], outputs: ["addOnButtonClicked", "search"] }, { kind: "directive", type: i7.InputGroupInputDirective, selector: "[fdInputGroupInput], [fd-input-group-input]", inputs: ["class"] }, { kind: "component", type: i8.ButtonComponent, selector: "button[fd-button], a[fd-button]", inputs: ["class"], exportAs: ["fd-button"] }, { kind: "component", type: i2.FormMessageComponent, selector: "fd-form-message", inputs: ["type", "static", "embedded", "class"] }, { kind: "component", type: i9.BarComponent, selector: "[fd-bar]", inputs: ["class", "barDesign", "inPage", "inHomePage", "size"] }, { kind: "directive", type: i9.BarRightDirective, selector: "[fd-bar-right]" }, { kind: "directive", type: i9.BarElementDirective, selector: "fd-bar-element", inputs: ["fullWidth", "isTitle"] }, { kind: "pipe", type: i10.FdTranslatePipe, name: "fdTranslate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
614
643
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: DatePickerComponent, decorators: [{
|
|
615
644
|
type: Component,
|
|
616
645
|
args: [{ selector: 'fd-date-picker', host: {
|
|
@@ -631,7 +660,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImpor
|
|
|
631
660
|
registerFormItemControl(DatePickerComponent),
|
|
632
661
|
PopoverFormMessageService,
|
|
633
662
|
PopoverService
|
|
634
|
-
], encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, template: "<fd-popover\n [(isOpen)]=\"isOpen\"\n (isOpenChange)=\"_onOpenStateChanged($event)\"\n [triggers]=\"[]\"\n [placement]=\"placement\"\n [disabled]=\"disabled\"\n [focusTrapped]=\"true\"\n [focusAutoCapture]=\"false\"\n [appendTo]=\"appendTo\"\n>\n <fd-popover-control>\n <fd-input-group\n #inputGroupComponent\n [state]=\"state\"\n [disabled]=\"disabled\"\n [isControl]=\"true\"\n [button]=\"true\"\n [buttonFocusable]=\"buttonFocusable\"\n glyph=\"appointment-2\"\n [isExpanded]=\"isOpen\"\n [glyphAriaLabel]=\"displayCalendarToggleLabel || ('coreDatePicker.displayCalendarToggleLabel' | fdTranslate)\"\n [iconTitle]=\"displayCalendarToggleLabel || ('coreDatePicker.displayCalendarToggleLabel' | fdTranslate)\"\n (addOnButtonClicked)=\"toggleCalendar()\"\n >\n <input\n type=\"text\"\n class=\"fd-input\"\n fd-input-group-input\n [disabled]=\"disabled\"\n [placeholder]=\"placeholder\"\n [attr.id]=\"inputId\"\n aria-haspopup=\"grid\"\n aria-autocomplete=\"none\"\n [attr.aria-expanded]=\"isOpen\"\n [attr.aria-labelledby]=\"ariaLabelledBy\"\n [attr.aria-label]=\"_dateInputArialLabel || (_dateInputArialLabelKey | fdTranslate)\"\n [attr.aria-required]=\"required\"\n [attr.aria-describedby]=\"_formValueStateMessageId\"\n [ngModel]=\"_inputFieldDate\"\n (keyup.enter)=\"handleInputChange($any($event.target).value, false)\"\n (ngModelChange)=\"handleInputChange($event, true)\"\n (blur)=\"_onBlur($event)\"\n />\n </fd-input-group>\n </fd-popover-control>\n <fd-popover-body [attr.aria-expanded]=\"isOpen\" [attr.aria-hidden]=\"!isOpen\">\n <fd-form-message [embedded]=\"true\" *ngIf=\"_message\" [type]=\"state\">\n
|
|
663
|
+
], encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, template: "<fd-popover\n [(isOpen)]=\"isOpen\"\n (isOpenChange)=\"_onOpenStateChanged($event)\"\n [triggers]=\"[]\"\n [placement]=\"placement\"\n [disabled]=\"disabled\"\n [focusTrapped]=\"true\"\n [focusAutoCapture]=\"false\"\n [appendTo]=\"appendTo\"\n>\n <fd-popover-control>\n <fd-input-group\n #inputGroupComponent\n [state]=\"state\"\n [disabled]=\"disabled\"\n [isControl]=\"true\"\n [button]=\"true\"\n [buttonFocusable]=\"buttonFocusable\"\n glyph=\"appointment-2\"\n [isExpanded]=\"isOpen\"\n [glyphAriaLabel]=\"displayCalendarToggleLabel || ('coreDatePicker.displayCalendarToggleLabel' | fdTranslate)\"\n [iconTitle]=\"displayCalendarToggleLabel || ('coreDatePicker.displayCalendarToggleLabel' | fdTranslate)\"\n (addOnButtonClicked)=\"toggleCalendar()\"\n >\n <input\n type=\"text\"\n class=\"fd-input\"\n fd-input-group-input\n [disabled]=\"disabled\"\n [placeholder]=\"placeholder\"\n [attr.id]=\"inputId\"\n aria-haspopup=\"grid\"\n aria-autocomplete=\"none\"\n [attr.aria-expanded]=\"isOpen\"\n [attr.aria-labelledby]=\"ariaLabelledBy\"\n [attr.aria-label]=\"_dateInputArialLabel || (_dateInputArialLabelKey | fdTranslate)\"\n [attr.aria-required]=\"required\"\n [attr.aria-describedby]=\"_formValueStateMessageId\"\n [ngModel]=\"_inputFieldDate\"\n (keyup.enter)=\"handleInputChange($any($event.target).value, false)\"\n (ngModelChange)=\"handleInputChange($event, true)\"\n (blur)=\"_onBlur($event)\"\n />\n </fd-input-group>\n </fd-popover-control>\n <fd-popover-body [attr.aria-expanded]=\"isOpen\" [attr.aria-hidden]=\"!isOpen\">\n <ng-container *ngIf=\"_showPopoverContents\">\n <fd-form-message [embedded]=\"true\" *ngIf=\"_message\" [type]=\"state\">\n {{ _message }}\n </fd-form-message>\n <ng-content></ng-content>\n\n <fd-calendar\n (closeCalendar)=\"closeFromCalendar()\"\n [activeView]=\"activeView\"\n [markWeekends]=\"markWeekends\"\n [specialDaysRules]=\"specialDaysRules\"\n [showWeekNumbers]=\"showWeekNumbers\"\n [aggregatedYearGrid]=\"aggregatedYearGrid\"\n [yearGrid]=\"yearGrid\"\n (activeViewChange)=\"handleCalendarActiveViewChange($event)\"\n [calType]=\"type\"\n [rangeHoverEffect]=\"rangeHoverEffect\"\n [disableFunction]=\"disableFunction\"\n [disableRangeStartFunction]=\"disableRangeStartFunction\"\n [disableRangeEndFunction]=\"disableRangeEndFunction\"\n [selectedDate]=\"selectedDate\"\n [selectedRangeDate]=\"selectedRangeDate\"\n (selectedRangeDateChange)=\"handleRangeDateChange($event)\"\n (selectedDateChange)=\"handleSingleDateChange($event)\"\n [startingDayOfWeek]=\"startingDayOfWeek\"\n [previousButtonDisableFunction]=\"previousButtonDisableFunction\"\n [nextButtonDisableFunction]=\"nextButtonDisableFunction\"\n ></fd-calendar>\n\n <div *ngIf=\"showTodayButton\" fd-bar barDesign=\"footer\">\n <div fd-bar-right>\n <fd-bar-element>\n <button fd-button [label]=\"todayButtonLabel\" (click)=\"onTodayButtonClick()\"></button>\n </fd-bar-element>\n </div>\n </div>\n </ng-container>\n </fd-popover-body>\n</fd-popover>\n\n<div style=\"display: none\" aria-hidden=\"true\">\n <div [attr.id]=\"_formValueStateMessageId\" aria-atomic=\"true\" aria-live=\"assertive\">\n <ng-container [ngSwitch]=\"state\">\n <ng-container *ngSwitchCase=\"'success'\">{{\n valueStateSuccessMessage || ('coreDatePicker.valueStateSuccessMessage' | fdTranslate)\n }}</ng-container>\n <ng-container *ngSwitchCase=\"'information'\">{{\n valueStateInformationMessage || ('coreDatePicker.valueStateInformationMessage' | fdTranslate)\n }}</ng-container>\n <ng-container *ngSwitchCase=\"'warning'\">{{\n valueStateWarningMessage || ('coreDatePicker.valueStateWarningMessage' | fdTranslate)\n }}</ng-container>\n <ng-container *ngSwitchCase=\"'error'\">{{\n valueStateErrorMessage || ('coreDatePicker.valueStateErrorMessage' | fdTranslate)\n }}</ng-container>\n </ng-container>\n {{ _message }}\n </div>\n</div>\n", styles: [".fd-date-picker-custom{display:inline-block}.fd-date-picker-custom fd-popover{display:block}.fd-date-picker-custom fd-calendar{border-radius:.25rem;border-radius:var(--sapElement_BorderCornerRadius, .25rem)}\n"] }]
|
|
635
664
|
}], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i1.DatetimeAdapter, decorators: [{
|
|
636
665
|
type: Optional
|
|
637
666
|
}] }, { type: undefined, decorators: [{
|
|
@@ -727,8 +756,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImpor
|
|
|
727
756
|
type: Output
|
|
728
757
|
}], activeViewChange: [{
|
|
729
758
|
type: Output
|
|
730
|
-
}],
|
|
731
|
-
type:
|
|
759
|
+
}], _calendars: [{
|
|
760
|
+
type: ViewChildren,
|
|
732
761
|
args: [CalendarComponent]
|
|
733
762
|
}], _inputGroupElement: [{
|
|
734
763
|
type: ViewChild,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fundamental-ngx-core-date-picker.mjs","sources":["../../../../libs/core/src/lib/date-picker/errors.ts","../../../../libs/core/src/lib/date-picker/date-picker.component.ts","../../../../libs/core/src/lib/date-picker/date-picker.component.html","../../../../libs/core/src/lib/date-picker/deprecated-date-picker-compact.directive.ts","../../../../libs/core/src/lib/date-picker/date-picker.module.ts","../../../../libs/core/src/lib/date-picker/fundamental-ngx-core-date-picker.ts"],"sourcesContent":["/** Creates an error to be thrown when attempting to use an invalid date implementation. */\nexport function createMissingDateImplementationError(provider: string): Error {\n return Error(\n `FdDatePicker: No provider found for ${provider}. You must import one of the following ` +\n `modules at your application root: FdDatetimeModule, or provide a ` +\n `custom implementation.`\n );\n}\n","import {\n AfterViewInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ElementRef,\n EventEmitter,\n forwardRef,\n Inject,\n Input,\n OnDestroy,\n OnInit,\n Optional,\n Output,\n ViewChild,\n ViewEncapsulation\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALIDATORS, NG_VALUE_ACCESSOR, Validator } from '@angular/forms';\nimport { Subject, Subscription } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\nimport { coerceBooleanProperty } from '@angular/cdk/coercion';\n\nimport { Placement, SpecialDayRule } from '@fundamental-ngx/core/shared';\nimport {\n CalendarComponent,\n CalendarType,\n CalendarYearGrid,\n DateRange,\n DaysOfWeek,\n FdCalendarView,\n NavigationButtonDisableFunction\n} from '@fundamental-ngx/core/calendar';\nimport { DATE_TIME_FORMATS, DatetimeAdapter, DateTimeFormats } from '@fundamental-ngx/core/datetime';\nimport { FormItemControl, PopoverFormMessageService, registerFormItemControl } from '@fundamental-ngx/core/form';\nimport { PopoverService } from '@fundamental-ngx/core/popover';\nimport { InputGroupInputDirective } from '@fundamental-ngx/core/input-group';\n\nimport { createMissingDateImplementationError } from './errors';\nimport { Nullable } from '@fundamental-ngx/cdk/utils';\nimport { FormStates } from '@fundamental-ngx/cdk/forms';\n\nlet datePickerCounter = 0;\n\n/**\n * The datetime picker component is an opinionated composition of the fd-popover and\n * fd-calendar components to accomplish the UI pattern for picking a date.\n *\n * Supports Angular Forms.\n * ```html\n * <fd-date-picker [(ngModel)]=\"date\"></fd-date-picker>\n * ```\n *\n */\n@Component({\n selector: 'fd-date-picker',\n templateUrl: './date-picker.component.html',\n styleUrls: ['./date-picker.component.scss'],\n host: {\n '(blur)': 'onTouched()',\n '[class.fd-date-picker]': 'true',\n '[class.fd-date-picker-custom]': 'inline'\n },\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => DatePickerComponent),\n multi: true\n },\n {\n provide: NG_VALIDATORS,\n useExisting: forwardRef(() => DatePickerComponent),\n multi: true\n },\n registerFormItemControl(DatePickerComponent),\n PopoverFormMessageService,\n PopoverService\n ],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class DatePickerComponent<D>\n implements OnInit, OnDestroy, AfterViewInit, ControlValueAccessor, Validator, FormItemControl\n{\n /** The type of calendar, 'single' for single date selection or 'range' for a range of dates. */\n @Input()\n type: CalendarType = 'single';\n\n /** Date picker input placeholder string */\n @Input()\n placeholder = '';\n\n /** ID attribute for input element inside DatePicker component */\n @Input()\n inputId: string;\n\n /** If it is mandatory field */\n @Input()\n required = false;\n\n /** Text displayed in message */\n @Input()\n set message(message: string) {\n this._message = message;\n this._popoverFormMessage.message = message;\n }\n\n /** @hidden */\n _message: string | null = null;\n\n /** The trigger events that will open/close the message box.\n * Accepts any [HTML DOM Events](https://www.w3schools.com/jsref/dom_obj_event.asp). */\n @Input()\n set messageTriggers(triggers: string[]) {\n this._messageTriggers = triggers;\n this._popoverFormMessage.triggers = triggers;\n }\n\n /** @hidden */\n _messageTriggers: string[] = ['focusin', 'focusout'];\n\n /** The currently selected CalendarDay model */\n @Input()\n selectedDate: Nullable<D>;\n\n /** The currently selected FdDates model start and end in range mode. */\n @Input()\n selectedRangeDate: DateRange<D> = { start: null, end: null };\n\n /** The day of the week the calendar should start on. 1 represents Sunday, 2 is Monday, 3 is Tuesday, and so on. */\n @Input()\n startingDayOfWeek: DaysOfWeek;\n\n /**\n * Whether user wants to mark day cells on hover.\n * Works only on range mode, when start date is selected on Day View.\n */\n @Input()\n rangeHoverEffect = false;\n\n /** Whether to validate the date picker input. */\n @Input()\n useValidation = true;\n\n /**\n * @deprecated use i18n capabilities instead\n * Aria-label for the datepicker input.\n */\n @Input()\n dateInputLabel: string;\n\n /**\n * @deprecated use i18n capabilities instead\n * Aria-label for the datepicker input.\n */\n @Input()\n dateRangeInputLabel: string;\n\n /**\n * @deprecated use i18n capabilities instead\n * Aria-label for the button to show/hide the calendar.\n */\n @Input()\n displayCalendarToggleLabel: string;\n\n /**\n * @deprecated use i18n capabilities instead\n * Value state \"success\" aria message.\n */\n @Input()\n valueStateSuccessMessage: string;\n\n /**\n * @deprecated use i18n capabilities instead\n * Value state \"information\" aria message.\n */\n @Input()\n valueStateInformationMessage: string;\n\n /**\n * @deprecated use i18n capabilities instead\n * Value state \"warning\" aria message.\n */\n @Input()\n valueStateWarningMessage: string;\n\n /**\n * @deprecated use i18n capabilities instead\n * Value state \"error\" aria message.\n */\n @Input()\n valueStateErrorMessage: string;\n\n /** Whether a null input is considered valid. */\n @Input()\n allowNull = true;\n\n /** Actually shown active view one of 'day' | 'month' | 'year' in calendar component*/\n @Input()\n activeView: FdCalendarView = 'day';\n\n /**\n * The placement of the popover. It can be one of: top, top-start, top-end, bottom,\n * bottom-start, bottom-end, right, right-start, right-end, left, left-start, left-end.\n */\n @Input()\n placement: Placement = 'bottom-start';\n\n /** The element to which the popover should be appended. */\n @Input()\n appendTo: ElementRef;\n\n /** Whether the date picker is disabled. */\n @Input()\n disabled: boolean;\n\n /** Defines if date picker should be closed after date choose */\n @Input()\n closeOnDateChoose = true;\n\n /** Enables Today-Selection-Button if true */\n @Input()\n showTodayButton = false;\n\n /** Label for Today-Selection-Button */\n @Input()\n todayButtonLabel = 'Today';\n\n /**\n * Function used to disable previous button in the calendar header.\n */\n @Input()\n previousButtonDisableFunction: NavigationButtonDisableFunction<D>;\n\n /**\n * Function used to disable next button in the calendar header.\n */\n @Input()\n nextButtonDisableFunction: NavigationButtonDisableFunction<D>;\n\n /**\n * The state of the form control - applies css classes.\n * Also, this is applied to message.\n * Can be `success`, `error`, `warning`, `information` or blank for default.\n */\n @Input()\n set state(state: Nullable<FormStates>) {\n this._state = state || 'default';\n this._popoverFormMessage.messageType = state || 'default';\n }\n\n /** @hidden */\n get state(): FormStates {\n if (this._state == null && this.useValidation && this._isInvalidDateInput) {\n return 'error';\n }\n return this._state;\n }\n\n /** @hidden */\n private _state: FormStates = 'default';\n\n /**\n * Whether AddOn Button should be focusable\n * @default true\n */\n @Input()\n buttonFocusable = true;\n\n /**\n * Special days mark, it can be used by passing array of object with\n * Special day number, list 1-20 [class:`fd-calendar__special-day--{{number}}`] is available there:\n * https://sap.github.io/fundamental-styles/components/calendar.html calendar special days section\n * Rule accepts method with FdDate object as a parameter. ex:\n * `rule: (fdDate: FdDate) => fdDate.getDay() === 1`, which will mark all sundays as special day.\n */\n @Input()\n specialDaysRules: SpecialDayRule<D>[] = [];\n\n /**\n * Object to customize year grid,\n * Row, Columns and method to display year can be modified\n */\n @Input()\n yearGrid: CalendarYearGrid = {\n rows: 4,\n cols: 5\n };\n\n /**\n * Object to customize aggregated year grid,\n * Row, Columns and method to display year can be modified\n */\n @Input()\n aggregatedYearGrid: CalendarYearGrid = {\n rows: 4,\n cols: 3\n };\n\n /**\n * Whether user wants to mark sunday/saturday with `fd-calendar__item--weekend` class\n */\n @Input()\n markWeekends = true;\n\n /**\n * Whether user wants to show week numbers next to days\n */\n @Input()\n showWeekNumbers = true;\n\n /** Whether the date picker is open. Can be used through two-way binding. */\n @Input()\n isOpen = false;\n\n /** Should date picker be inlined. */\n @Input()\n inline = true;\n\n /** aria-labelledby for element describing date-picker. */\n @Input()\n ariaLabelledBy: Nullable<string>;\n\n /**\n * Whether to recalculate value from the input as user types or on blur.\n * By default, updates the value as user types.\n * @default false\n */\n @Input()\n set processInputOnBlur(v: boolean) {\n this._processInputOnBlur = coerceBooleanProperty(v);\n }\n\n get processInputOnBlur(): boolean {\n return this._processInputOnBlur;\n }\n\n /**\n * Whether to prevent page scrolling when focusing date picker input field after calendar has been closed.\n */\n @Input()\n preventScrollOnFocus = false;\n\n /** @hidden */\n _processInputOnBlur = false;\n\n /** Event emitted when the state of the isOpen property changes. */\n @Output()\n readonly isOpenChange = new EventEmitter<boolean>();\n\n /** Fired when a new date is selected. */\n @Output()\n readonly selectedDateChange = new EventEmitter<Nullable<D>>();\n\n /** Event thrown every time selected first or last date in range mode is changed */\n @Output()\n readonly selectedRangeDateChange = new EventEmitter<DateRange<D>>();\n\n /** Event thrown every time calendar active view is changed */\n @Output()\n readonly activeViewChange = new EventEmitter<FdCalendarView>();\n\n /** @hidden */\n @ViewChild(CalendarComponent)\n _calendarComponent: CalendarComponent<D>;\n\n /** @hidden */\n @ViewChild('inputGroupComponent', { read: ElementRef })\n _inputGroupElement: ElementRef;\n\n /** @hidden */\n @ViewChild(InputGroupInputDirective, { read: ElementRef })\n _inputElement: ElementRef<HTMLInputElement>;\n\n /** @hidden The value of the input */\n _inputFieldDate: string | null = null;\n\n /** @hidden Whether the date input is invalid */\n _isInvalidDateInput = false;\n\n /** @hidden */\n readonly _formValueStateMessageId = `fd-date-picker-form-message-${datePickerCounter++}`;\n\n /** @hidden */\n private readonly _onDestroy$: Subject<void> = new Subject<void>();\n\n /** @hidden */\n private _subscriptions = new Subscription();\n\n /**\n * Function used to disable certain dates in the calendar.\n * @param date date representation\n */\n @Input()\n disableFunction: (value: D) => boolean = () => false;\n\n /**\n * Function used to disable certain dates in the calendar for the range start selection.\n * @param date date representation\n */\n @Input()\n disableRangeStartFunction: (value: D) => boolean = () => false;\n\n /**\n * Function used to disable certain dates in the calendar for the range end selection.\n * @param date date representation\n */\n @Input()\n disableRangeEndFunction: (value: D) => boolean = () => false;\n\n /** @hidden */\n onChange: (value: any) => void = () => {};\n\n /** @hidden */\n onTouched: any = () => {};\n\n /** @hidden */\n get _rangeDelimiter(): string {\n return this._dateTimeFormats.rangeDelimiter;\n }\n\n /**\n * Date input aria label based on type\n * @hidden\n */\n get _dateInputArialLabel(): string {\n // return either input value or a key for \"fdTranslate\" pipe\n return this.type === 'range' ? this.dateRangeInputLabel : this.dateInputLabel;\n }\n\n /**\n * Date input aria label key based on type\n * @hidden\n */\n get _dateInputArialLabelKey(): string {\n // return either input value or a key for \"fdTranslate\" pipe\n return this.type === 'range' ? 'coreDatePicker.dateRangeInputLabel' : 'coreDatePicker.dateInputLabel';\n }\n\n /** @hidden */\n constructor(\n private _changeDetectionRef: ChangeDetectorRef,\n // Use @Optional to avoid angular injection error message and throw our own which is more precise one\n @Optional() private _dateTimeAdapter: DatetimeAdapter<D>,\n @Optional() @Inject(DATE_TIME_FORMATS) private _dateTimeFormats: DateTimeFormats,\n private _popoverFormMessage: PopoverFormMessageService\n ) {\n if (!this._dateTimeAdapter) {\n throw createMissingDateImplementationError('DateTimeAdapter');\n }\n if (!this._dateTimeFormats) {\n throw createMissingDateImplementationError('DATE_TIME_FORMATS');\n }\n }\n\n /** @hidden */\n ngOnInit(): void {\n this._dateTimeAdapter.localeChanges.pipe(takeUntil(this._onDestroy$)).subscribe(() => {\n this.formatInputDate(this.selectedDate);\n this._changeDetectionRef.detectChanges();\n });\n }\n\n /** @hidden */\n ngAfterViewInit(): void {\n this._InitialiseVariablesInMessageService();\n }\n\n /** @hidden */\n ngOnDestroy(): void {\n this._subscriptions.unsubscribe();\n this._onDestroy$.next();\n this._onDestroy$.complete();\n }\n\n /**\n * Method that handle calendar active view change and throws event.\n */\n public handleCalendarActiveViewChange(activeView: FdCalendarView): void {\n this.activeViewChange.emit(activeView);\n }\n\n /** @hidden */\n public closeFromCalendar(): void {\n if (this.type === 'single' && this.closeOnDateChoose) {\n this.onTouched();\n this.closeCalendar();\n }\n }\n\n /** Opens the calendar */\n openCalendar(): void {\n if (!this.disabled) {\n this.isOpen = true;\n this.isOpenChange.emit(this.isOpen);\n this._changeMessageVisibility();\n }\n }\n\n /** Toggles the calendar open or closed */\n public toggleCalendar(): void {\n this.isOpen = !this.isOpen;\n this.isOpenChange.emit(this.isOpen);\n if (!this.isOpen) {\n this.onTouched();\n }\n this._changeMessageVisibility();\n }\n\n /** Closes the calendar if it is open */\n public closeCalendar(): void {\n if (this.isOpen) {\n this.isOpen = false;\n this.isOpenChange.emit(this.isOpen);\n this._changeMessageVisibility();\n }\n }\n\n /**\n * @hidden\n * Method that is triggered by events from calendar component, when there is selected single date changed\n */\n public handleSingleDateChange(date: D): void {\n if (date) {\n this.selectedDate = date;\n this.selectedDateChange.emit(date);\n this.onChange(date);\n this.formatInputDate(date);\n this._isInvalidDateInput = !this.isModelValid();\n if (this.closeOnDateChoose && this.type === 'single') {\n this.closeCalendar();\n }\n }\n }\n\n /**\n * @hidden\n * Method that is triggered date formatting in the date control\n */\n public formatInputDate(date: Nullable<D>): void {\n if (date) {\n this._inputFieldDate = this._formatDate(date);\n }\n }\n\n /**\n * @hidden\n * Method that is triggered by events from calendar component, when there is selected range date changed\n */\n public handleRangeDateChange(dates: DateRange<D>): void {\n const startChanged = !this._dateTimeAdapter.datesEqual(dates.start, this.selectedRangeDate.start);\n const endChanged = !this._dateTimeAdapter.datesEqual(dates.end, this.selectedRangeDate.end);\n if (dates && (startChanged || endChanged)) {\n const shouldClose = this.closeOnDateChoose && dates.end !== null;\n this._inputFieldDate = this._formatDateRange(dates);\n this.selectedRangeDate = { start: dates.start, end: dates.end };\n this.selectedRangeDateChange.emit(this.selectedRangeDate);\n this.onChange(this.selectedRangeDate);\n this._isInvalidDateInput = !this.isModelValid();\n if (shouldClose) {\n this.closeCalendar();\n }\n }\n }\n\n /**\n * @hidden\n * Method that is triggered when Today-Selection-Button clicked, it changes selected date or date range to today's date\n */\n onTodayButtonClick(): void {\n const todayDate = this._dateTimeAdapter.today();\n if (this.type === 'single') {\n this.handleSingleDateChange(todayDate);\n this.closeFromCalendar();\n } else if (this.type === 'range') {\n this.handleRangeDateChange({ start: todayDate, end: todayDate });\n }\n }\n\n /**\n * @hidden\n * Method that is triggered when the text input is confirmed to ba changed, by clicking enter, or blur\n */\n public handleInputChange(strDate: string, isTypeEvent: boolean): void {\n if ((isTypeEvent && this.processInputOnBlur) || (!isTypeEvent && !this.processInputOnBlur)) {\n // if processInputOnBlur === true, ignore type event\n // if processInputOnBlur === false, ignore blur/enter event\n return;\n }\n this.dateStringUpdate(strDate);\n }\n\n /**\n * @hidden\n * Function that implements Validator Interface, adds validation support for forms\n */\n validate(): { [key: string]: any } | null {\n return this.isModelValid()\n ? null\n : {\n dateValidation: {\n valid: false\n }\n };\n }\n\n /** @hidden */\n registerOnChange(fn: (selected: any) => { void }): void {\n this.onChange = fn;\n }\n\n /** @hidden */\n registerOnTouched(fn: any): void {\n this.onTouched = fn;\n }\n\n /** @hidden */\n setDisabledState(isDisabled: boolean): void {\n this.disabled = isDisabled;\n this._changeDetectionRef.detectChanges();\n }\n\n /**\n * @hidden\n * Function that provides support for ControlValueAccessor that allows to use [(ngModel)] or forms\n */\n writeValue(selected: DateRange<D> | D | null): void {\n /** If written value is not defined, null, empty string */\n if (!selected) {\n this._inputFieldDate = '';\n this._refreshCurrentlyDisplayedCalendarDate(this._dateTimeAdapter.today());\n this.selectedRangeDate = { start: null, end: null };\n this.selectedDate = null;\n this._changeDetectionRef.detectChanges();\n return;\n }\n if (this.type === 'single') {\n /**\n * For single mode, if the date is invalid, model is changed, it refreshes currently\n * input field text, but it does not refresh currently displayed day\n */\n selected = this._parseDate(selected);\n this.selectedDate = selected;\n\n this._inputFieldDate = this._formatDate(selected);\n this._refreshCurrentlyDisplayedCalendarDate(selected);\n }\n if (this.type === 'range') {\n /**\n * For range mode, if the date is invalid, model is changed, but it does not refresh currently\n * displayed day view, or input field text\n */\n selected = selected as DateRange<D>;\n\n if (selected?.start) {\n this.selectedRangeDate = {\n start: this._parseDate(selected.start),\n end: this._parseDate(selected.end)\n };\n\n this._refreshCurrentlyDisplayedCalendarDate(selected.start);\n this._inputFieldDate = this._formatDateRange(selected);\n } else {\n this._inputFieldDate = '';\n }\n }\n this._isInvalidDateInput = !this.isModelValid();\n this._changeDetectionRef.detectChanges();\n }\n\n /**\n * @hidden\n * Method, which is responsible for transforming string to date, depending on type or\n * validation the results are different. It also changes to state of _isInvalidDateInput\n */\n dateStringUpdate(dateStr: string): void {\n this._inputFieldDate = dateStr;\n /** Case when there is single mode */\n if (this.type === 'single') {\n if (!dateStr) {\n this._isInvalidDateInput = !this.allowNull;\n this.selectedDate = null;\n this._refreshCurrentlyDisplayedCalendarDate(this.selectedDate);\n this.onChange(this.selectedDate);\n this.selectedDateChange.emit(this.selectedDate);\n return;\n }\n const date = this._parseDate(dateStr);\n\n /** Check if dates are equal, if so, there is no need to make any changes */\n if (!this._dateTimeAdapter.datesEqual(date, this.selectedDate)) {\n this._isInvalidDateInput = !this._isSingleModelValid(date);\n\n /** Check if date is valid, if it's not, there is no need to refresh calendar */\n if (!this._isInvalidDateInput) {\n this._refreshCurrentlyDisplayedCalendarDate(date);\n }\n\n /**\n * Date in model is changed no matter if the parsed date from string is valid or not.\n */\n this.selectedDate = date;\n this.onChange(this.selectedDate);\n this.selectedDateChange.emit(this.selectedDate);\n }\n\n /** Case when there is range mode */\n } else {\n if (!dateStr) {\n this._isInvalidDateInput = !this.allowNull;\n this.selectedRangeDate = { start: null, end: null };\n this._refreshCurrentlyDisplayedCalendarDate(this.selectedRangeDate.start);\n this.onChange(this.selectedRangeDate);\n this.selectedRangeDateChange.emit(this.selectedRangeDate);\n return;\n }\n const [startDateStr, endDateStr] = dateStr.split(this._rangeDelimiter);\n const startDate = this._parseDate(startDateStr);\n const endDate = this._parseDate(endDateStr);\n\n /**\n * Check if dates are equal, if dates are the same there is no need to make any changes\n * Date in model is changed no matter if the parsed dates from string are valid or not.\n */\n if (\n !this._dateTimeAdapter.datesEqual(startDate, this.selectedRangeDate.start) ||\n !this._dateTimeAdapter.datesEqual(endDate, this.selectedRangeDate.end)\n ) {\n let selectedRangeDate: DateRange<D> | null = null;\n\n /** If the end date is before the start date, there is need to replace them */\n if (\n this._dateTimeAdapter.isValid(startDate) &&\n this._dateTimeAdapter.isValid(endDate) &&\n this._dateTimeAdapter.compareDate(startDate, endDate) > 0\n ) {\n selectedRangeDate = { start: endDate, end: startDate };\n } else {\n selectedRangeDate = { start: startDate, end: endDate };\n }\n\n this._isInvalidDateInput = !this._isRangeModelValid(selectedRangeDate);\n\n /** Whole object is changed, even it's invalid */\n this.selectedRangeDate = selectedRangeDate;\n\n this.selectedRangeDateChange.emit(this.selectedRangeDate);\n this.onChange(this.selectedRangeDate);\n\n /** Check if start date is valid, if it's not, there is no need o refresh calendar */\n if (this._isStartDateValid(this.selectedRangeDate.start)) {\n this._refreshCurrentlyDisplayedCalendarDate(this.selectedRangeDate.start);\n }\n }\n }\n }\n\n /** Method that provides information if model selected date/dates have properly types and are valid */\n isModelValid(): boolean {\n if (this.type === 'single') {\n return this._isSingleModelValid(this.selectedDate);\n } else {\n return this._isRangeModelValid(this.selectedRangeDate);\n }\n }\n\n /** @hidden */\n _changeMessageVisibility(): void {\n if (this.isOpen) {\n this._popoverFormMessage.hide();\n } else {\n this._popoverFormMessage.show();\n }\n }\n\n /** @hidden */\n _onOpenStateChanged(isOpen: boolean): void {\n this.isOpenChange.emit(isOpen);\n this._changeMessageVisibility();\n // focus input control every time popup is closed\n if (!isOpen && this._inputElement) {\n this._inputElement.nativeElement.focus({\n preventScroll: this.preventScrollOnFocus\n });\n }\n // focus calendar cell on opening\n if (isOpen && this._calendarComponent) {\n this._calendarComponent.initialFocus();\n }\n }\n\n /** @hidden */\n _onBlur(event: FocusEvent): void {\n this.onTouched();\n this.handleInputChange((event.target as any).value, false);\n }\n\n /** Method that returns info if single model given is valid */\n private _isSingleModelValid(date: Nullable<D>): boolean {\n return (this._isDateValid(date) && !this.disableFunction(date)) || (!date && this.allowNull);\n }\n\n /** Method that returns info if range date model given is valid */\n private _isRangeModelValid(fdRangeDate: DateRange<D>): boolean {\n return (\n (fdRangeDate && this._isStartDateValid(fdRangeDate.start) && this._isEndDateValid(fdRangeDate.end)) ||\n (!fdRangeDate.start && !fdRangeDate.end && this.allowNull)\n );\n }\n\n /** Method that returns info if end date model given is valid */\n private _isEndDateValid(endDate: Nullable<D>): boolean {\n return this._isDateValid(endDate) && !this.disableRangeEndFunction(endDate);\n }\n\n /** Method that returns info if start date model given is valid */\n private _isStartDateValid(startDate: Nullable<D>): boolean {\n return this._isDateValid(startDate) && !this.disableRangeStartFunction(startDate);\n }\n\n /** Method that returns info if given date model is valid */\n private _isDateValid(date: Nullable<D>): date is D {\n return this._dateTimeAdapter.isValid(date);\n }\n\n /** @hidden */\n private _refreshCurrentlyDisplayedCalendarDate(date: Nullable<D>): void {\n if (this._calendarComponent) {\n this._calendarComponent.setCurrentlyDisplayed(date);\n }\n }\n\n /** @hidden */\n private _formatDate(date: Nullable<D>): string {\n return this._dateTimeAdapter.format(date, this._dateTimeFormats.display.dateInput);\n }\n\n /** @hidden */\n private _parseDate(date: unknown): D | null {\n return this._dateTimeAdapter.parse(date, this._dateTimeFormats.parse.dateInput);\n }\n\n /** @hidden */\n private _formatDateRange(dateRange: DateRange<D>): string {\n const startDate = this._formatDate(dateRange.start);\n const endDate = this._formatDate(dateRange.end);\n return startDate + this._rangeDelimiter + endDate;\n }\n\n /** @hidden */\n private _InitialiseVariablesInMessageService(): void {\n this._popoverFormMessage.init(this._inputGroupElement);\n this._popoverFormMessage.message = this._message || '';\n this._popoverFormMessage.triggers = this._messageTriggers;\n this._popoverFormMessage.messageType = this._state;\n }\n}\n","<fd-popover\n [(isOpen)]=\"isOpen\"\n (isOpenChange)=\"_onOpenStateChanged($event)\"\n [triggers]=\"[]\"\n [placement]=\"placement\"\n [disabled]=\"disabled\"\n [focusTrapped]=\"true\"\n [focusAutoCapture]=\"false\"\n [appendTo]=\"appendTo\"\n>\n <fd-popover-control>\n <fd-input-group\n #inputGroupComponent\n [state]=\"state\"\n [disabled]=\"disabled\"\n [isControl]=\"true\"\n [button]=\"true\"\n [buttonFocusable]=\"buttonFocusable\"\n glyph=\"appointment-2\"\n [isExpanded]=\"isOpen\"\n [glyphAriaLabel]=\"displayCalendarToggleLabel || ('coreDatePicker.displayCalendarToggleLabel' | fdTranslate)\"\n [iconTitle]=\"displayCalendarToggleLabel || ('coreDatePicker.displayCalendarToggleLabel' | fdTranslate)\"\n (addOnButtonClicked)=\"toggleCalendar()\"\n >\n <input\n type=\"text\"\n class=\"fd-input\"\n fd-input-group-input\n [disabled]=\"disabled\"\n [placeholder]=\"placeholder\"\n [attr.id]=\"inputId\"\n aria-haspopup=\"grid\"\n aria-autocomplete=\"none\"\n [attr.aria-expanded]=\"isOpen\"\n [attr.aria-labelledby]=\"ariaLabelledBy\"\n [attr.aria-label]=\"_dateInputArialLabel || (_dateInputArialLabelKey | fdTranslate)\"\n [attr.aria-required]=\"required\"\n [attr.aria-describedby]=\"_formValueStateMessageId\"\n [ngModel]=\"_inputFieldDate\"\n (keyup.enter)=\"handleInputChange($any($event.target).value, false)\"\n (ngModelChange)=\"handleInputChange($event, true)\"\n (blur)=\"_onBlur($event)\"\n />\n </fd-input-group>\n </fd-popover-control>\n <fd-popover-body [attr.aria-expanded]=\"isOpen\" [attr.aria-hidden]=\"!isOpen\">\n <fd-form-message [embedded]=\"true\" *ngIf=\"_message\" [type]=\"state\">\n {{ _message }}\n </fd-form-message>\n <ng-content></ng-content>\n\n <fd-calendar\n (closeCalendar)=\"closeFromCalendar()\"\n [activeView]=\"activeView\"\n [markWeekends]=\"markWeekends\"\n [specialDaysRules]=\"specialDaysRules\"\n [showWeekNumbers]=\"showWeekNumbers\"\n [aggregatedYearGrid]=\"aggregatedYearGrid\"\n [yearGrid]=\"yearGrid\"\n (activeViewChange)=\"handleCalendarActiveViewChange($event)\"\n [calType]=\"type\"\n [rangeHoverEffect]=\"rangeHoverEffect\"\n [disableFunction]=\"disableFunction ? disableFunction : null\"\n [disableRangeStartFunction]=\"disableRangeStartFunction ? disableRangeStartFunction : null\"\n [disableRangeEndFunction]=\"disableRangeEndFunction ? disableRangeEndFunction : null\"\n [selectedDate]=\"selectedDate\"\n [selectedRangeDate]=\"selectedRangeDate\"\n (selectedRangeDateChange)=\"handleRangeDateChange($event)\"\n (selectedDateChange)=\"handleSingleDateChange($event)\"\n [startingDayOfWeek]=\"startingDayOfWeek\"\n [previousButtonDisableFunction]=\"previousButtonDisableFunction\"\n [nextButtonDisableFunction]=\"nextButtonDisableFunction\"\n ></fd-calendar>\n\n <div *ngIf=\"showTodayButton\" fd-bar barDesign=\"footer\">\n <div fd-bar-right>\n <fd-bar-element>\n <button fd-button [label]=\"todayButtonLabel\" (click)=\"onTodayButtonClick()\"></button>\n </fd-bar-element>\n </div>\n </div>\n </fd-popover-body>\n</fd-popover>\n\n<div style=\"display: none\" aria-hidden=\"true\">\n <div [attr.id]=\"_formValueStateMessageId\" aria-atomic=\"true\" aria-live=\"assertive\">\n <ng-container [ngSwitch]=\"state\">\n <ng-container *ngSwitchCase=\"'success'\">{{\n valueStateSuccessMessage || ('coreDatePicker.valueStateSuccessMessage' | fdTranslate)\n }}</ng-container>\n <ng-container *ngSwitchCase=\"'information'\">{{\n valueStateInformationMessage || ('coreDatePicker.valueStateInformationMessage' | fdTranslate)\n }}</ng-container>\n <ng-container *ngSwitchCase=\"'warning'\">{{\n valueStateWarningMessage || ('coreDatePicker.valueStateWarningMessage' | fdTranslate)\n }}</ng-container>\n <ng-container *ngSwitchCase=\"'error'\">{{\n valueStateErrorMessage || ('coreDatePicker.valueStateErrorMessage' | fdTranslate)\n }}</ng-container>\n </ng-container>\n {{ _message }}\n </div>\n</div>\n","import { Directive, forwardRef } from '@angular/core';\nimport { CONTENT_DENSITY_DIRECTIVE, DeprecatedCompactDirective } from '@fundamental-ngx/core/content-density';\n\n@Directive({\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: 'fd-date-picker[compact]',\n providers: [\n {\n provide: CONTENT_DENSITY_DIRECTIVE,\n useExisting: forwardRef(() => DeprecatedDatePickerCompactDirective)\n }\n ]\n})\nexport class DeprecatedDatePickerCompactDirective extends DeprecatedCompactDirective {\n /** @hidden */\n constructor() {\n super('fd-date-picker');\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { IconModule } from '@fundamental-ngx/core/icon';\nimport { PopoverModule } from '@fundamental-ngx/core/popover';\nimport { CalendarModule } from '@fundamental-ngx/core/calendar';\nimport { FormsModule } from '@angular/forms';\n\nimport { DatePickerComponent } from './date-picker.component';\nimport { InputGroupModule } from '@fundamental-ngx/core/input-group';\nimport { ButtonModule } from '@fundamental-ngx/core/button';\nimport { FormMessageModule } from '@fundamental-ngx/core/form';\nimport { I18nModule } from '@fundamental-ngx/i18n';\nimport { DeprecatedDatePickerCompactDirective } from './deprecated-date-picker-compact.directive';\nimport { ContentDensityModule } from '@fundamental-ngx/core/content-density';\nimport { BarModule } from '@fundamental-ngx/core/bar';\n\n@NgModule({\n declarations: [DatePickerComponent, DeprecatedDatePickerCompactDirective],\n imports: [\n CommonModule,\n IconModule,\n PopoverModule,\n I18nModule,\n CalendarModule,\n FormsModule,\n InputGroupModule,\n ButtonModule,\n FormMessageModule,\n BarModule,\n ContentDensityModule\n ],\n exports: [DatePickerComponent, DeprecatedDatePickerCompactDirective, ContentDensityModule]\n})\nexport class DatePickerModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"fundamental-ngx-core-date-picker.mjs","sources":["../../../../libs/core/src/lib/date-picker/errors.ts","../../../../libs/core/src/lib/date-picker/date-picker.component.ts","../../../../libs/core/src/lib/date-picker/date-picker.component.html","../../../../libs/core/src/lib/date-picker/deprecated-date-picker-compact.directive.ts","../../../../libs/core/src/lib/date-picker/date-picker.module.ts","../../../../libs/core/src/lib/date-picker/fundamental-ngx-core-date-picker.ts"],"sourcesContent":["/** Creates an error to be thrown when attempting to use an invalid date implementation. */\nexport function createMissingDateImplementationError(provider: string): Error {\n return Error(\n `FdDatePicker: No provider found for ${provider}. You must import one of the following ` +\n `modules at your application root: FdDatetimeModule, or provide a ` +\n `custom implementation.`\n );\n}\n","import {\n AfterViewInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ElementRef,\n EventEmitter,\n forwardRef,\n Inject,\n Input,\n OnDestroy,\n OnInit,\n Optional,\n Output,\n QueryList,\n SimpleChanges,\n ViewChild,\n ViewChildren,\n ViewEncapsulation\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALIDATORS, NG_VALUE_ACCESSOR, Validator } from '@angular/forms';\nimport { Subject, Subscription } from 'rxjs';\nimport { startWith, takeUntil } from 'rxjs/operators';\nimport { coerceBooleanProperty } from '@angular/cdk/coercion';\n\nimport { Placement, SpecialDayRule } from '@fundamental-ngx/core/shared';\nimport {\n CalendarComponent,\n CalendarType,\n CalendarYearGrid,\n DateRange,\n DaysOfWeek,\n FdCalendarView,\n NavigationButtonDisableFunction\n} from '@fundamental-ngx/core/calendar';\nimport { DATE_TIME_FORMATS, DatetimeAdapter, DateTimeFormats } from '@fundamental-ngx/core/datetime';\nimport { FormItemControl, PopoverFormMessageService, registerFormItemControl } from '@fundamental-ngx/core/form';\nimport { PopoverService } from '@fundamental-ngx/core/popover';\nimport { InputGroupInputDirective } from '@fundamental-ngx/core/input-group';\n\nimport { createMissingDateImplementationError } from './errors';\nimport { Nullable } from '@fundamental-ngx/cdk/utils';\nimport { FormStates } from '@fundamental-ngx/cdk/forms';\n\nlet datePickerCounter = 0;\n\n/**\n * The datetime picker component is an opinionated composition of the fd-popover and\n * fd-calendar components to accomplish the UI pattern for picking a date.\n *\n * Supports Angular Forms.\n * ```html\n * <fd-date-picker [(ngModel)]=\"date\"></fd-date-picker>\n * ```\n *\n */\n@Component({\n selector: 'fd-date-picker',\n templateUrl: './date-picker.component.html',\n styleUrls: ['./date-picker.component.scss'],\n host: {\n '(blur)': 'onTouched()',\n '[class.fd-date-picker]': 'true',\n '[class.fd-date-picker-custom]': 'inline'\n },\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => DatePickerComponent),\n multi: true\n },\n {\n provide: NG_VALIDATORS,\n useExisting: forwardRef(() => DatePickerComponent),\n multi: true\n },\n registerFormItemControl(DatePickerComponent),\n PopoverFormMessageService,\n PopoverService\n ],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class DatePickerComponent<D>\n implements OnInit, OnDestroy, AfterViewInit, ControlValueAccessor, Validator, FormItemControl\n{\n /** The type of calendar, 'single' for single date selection or 'range' for a range of dates. */\n @Input()\n type: CalendarType = 'single';\n\n /** Date picker input placeholder string */\n @Input()\n placeholder = '';\n\n /** ID attribute for input element inside DatePicker component */\n @Input()\n inputId: string;\n\n /** If it is mandatory field */\n @Input()\n required = false;\n\n /** Text displayed in message */\n @Input()\n set message(message: string) {\n this._message = message;\n this._popoverFormMessage.message = message;\n }\n\n /** @hidden */\n _message: string | null = null;\n\n /** The trigger events that will open/close the message box.\n * Accepts any [HTML DOM Events](https://www.w3schools.com/jsref/dom_obj_event.asp). */\n @Input()\n set messageTriggers(triggers: string[]) {\n this._messageTriggers = triggers;\n this._popoverFormMessage.triggers = triggers;\n }\n\n /** @hidden */\n _messageTriggers: string[] = ['focusin', 'focusout'];\n\n /** The currently selected CalendarDay model */\n @Input()\n selectedDate: Nullable<D>;\n\n /** The currently selected FdDates model start and end in range mode. */\n @Input()\n selectedRangeDate: DateRange<D> = { start: null, end: null };\n\n /** The day of the week the calendar should start on. 1 represents Sunday, 2 is Monday, 3 is Tuesday, and so on. */\n @Input()\n startingDayOfWeek: DaysOfWeek;\n\n /**\n * Whether user wants to mark day cells on hover.\n * Works only on range mode, when start date is selected on Day View.\n */\n @Input()\n rangeHoverEffect = false;\n\n /** Whether to validate the date picker input. */\n @Input()\n useValidation = true;\n\n /**\n * @deprecated use i18n capabilities instead\n * Aria-label for the datepicker input.\n */\n @Input()\n dateInputLabel: string;\n\n /**\n * @deprecated use i18n capabilities instead\n * Aria-label for the datepicker input.\n */\n @Input()\n dateRangeInputLabel: string;\n\n /**\n * @deprecated use i18n capabilities instead\n * Aria-label for the button to show/hide the calendar.\n */\n @Input()\n displayCalendarToggleLabel: string;\n\n /**\n * @deprecated use i18n capabilities instead\n * Value state \"success\" aria message.\n */\n @Input()\n valueStateSuccessMessage: string;\n\n /**\n * @deprecated use i18n capabilities instead\n * Value state \"information\" aria message.\n */\n @Input()\n valueStateInformationMessage: string;\n\n /**\n * @deprecated use i18n capabilities instead\n * Value state \"warning\" aria message.\n */\n @Input()\n valueStateWarningMessage: string;\n\n /**\n * @deprecated use i18n capabilities instead\n * Value state \"error\" aria message.\n */\n @Input()\n valueStateErrorMessage: string;\n\n /** Whether a null input is considered valid. */\n @Input()\n allowNull = true;\n\n /** Actually shown active view one of 'day' | 'month' | 'year' in calendar component*/\n @Input()\n activeView: FdCalendarView = 'day';\n\n /**\n * The placement of the popover. It can be one of: top, top-start, top-end, bottom,\n * bottom-start, bottom-end, right, right-start, right-end, left, left-start, left-end.\n */\n @Input()\n placement: Placement = 'bottom-start';\n\n /** The element to which the popover should be appended. */\n @Input()\n appendTo: ElementRef;\n\n /** Whether the date picker is disabled. */\n @Input()\n disabled: boolean;\n\n /** Defines if date picker should be closed after date choose */\n @Input()\n closeOnDateChoose = true;\n\n /** Enables Today-Selection-Button if true */\n @Input()\n showTodayButton = false;\n\n /** Label for Today-Selection-Button */\n @Input()\n todayButtonLabel = 'Today';\n\n /**\n * Function used to disable previous button in the calendar header.\n */\n @Input()\n previousButtonDisableFunction: NavigationButtonDisableFunction<D>;\n\n /**\n * Function used to disable next button in the calendar header.\n */\n @Input()\n nextButtonDisableFunction: NavigationButtonDisableFunction<D>;\n\n /**\n * The state of the form control - applies css classes.\n * Also, this is applied to message.\n * Can be `success`, `error`, `warning`, `information` or blank for default.\n */\n @Input()\n set state(state: Nullable<FormStates>) {\n this._state = state || 'default';\n this._popoverFormMessage.messageType = state || 'default';\n }\n\n /** @hidden */\n get state(): FormStates {\n if (this._state == null && this.useValidation && this._isInvalidDateInput) {\n return 'error';\n }\n return this._state;\n }\n\n /** @hidden */\n private _state: FormStates = 'default';\n\n /**\n * Whether AddOn Button should be focusable\n * @default true\n */\n @Input()\n buttonFocusable = true;\n\n /**\n * Special days mark, it can be used by passing array of object with\n * Special day number, list 1-20 [class:`fd-calendar__special-day--{{number}}`] is available there:\n * https://sap.github.io/fundamental-styles/components/calendar.html calendar special days section\n * Rule accepts method with FdDate object as a parameter. ex:\n * `rule: (fdDate: FdDate) => fdDate.getDay() === 1`, which will mark all sundays as special day.\n */\n @Input()\n specialDaysRules: SpecialDayRule<D>[] = [];\n\n /**\n * Object to customize year grid,\n * Row, Columns and method to display year can be modified\n */\n @Input()\n yearGrid: CalendarYearGrid = {\n rows: 4,\n cols: 5\n };\n\n /**\n * Object to customize aggregated year grid,\n * Row, Columns and method to display year can be modified\n */\n @Input()\n aggregatedYearGrid: CalendarYearGrid = {\n rows: 4,\n cols: 3\n };\n\n /**\n * Whether user wants to mark sunday/saturday with `fd-calendar__item--weekend` class\n */\n @Input()\n markWeekends = true;\n\n /**\n * Whether user wants to show week numbers next to days\n */\n @Input()\n showWeekNumbers = true;\n\n /** Whether the date picker is open. Can be used through two-way binding. */\n @Input()\n set isOpen(value: boolean) {\n if (value === this._isOpen) {\n return;\n }\n this._isOpen = value;\n this._showPopoverContents = value;\n this._changeDetectionRef.detectChanges();\n }\n\n get isOpen(): boolean {\n return this._isOpen;\n }\n\n /** @hidden */\n private _isOpen = false;\n\n /** Should date picker be inlined. */\n @Input()\n inline = true;\n\n /** aria-labelledby for element describing date-picker. */\n @Input()\n ariaLabelledBy: Nullable<string>;\n\n /**\n * Whether to recalculate value from the input as user types or on blur.\n * By default, updates the value as user types.\n * @default false\n */\n @Input()\n set processInputOnBlur(v: boolean) {\n this._processInputOnBlur = coerceBooleanProperty(v);\n }\n\n get processInputOnBlur(): boolean {\n return this._processInputOnBlur;\n }\n\n /**\n * Whether to prevent page scrolling when focusing date picker input field after calendar has been closed.\n */\n @Input()\n preventScrollOnFocus = false;\n\n /** @hidden */\n _processInputOnBlur = false;\n\n /** Event emitted when the state of the isOpen property changes. */\n @Output()\n readonly isOpenChange = new EventEmitter<boolean>();\n\n /** Fired when a new date is selected. */\n @Output()\n readonly selectedDateChange = new EventEmitter<Nullable<D>>();\n\n /** Event thrown every time selected first or last date in range mode is changed */\n @Output()\n readonly selectedRangeDateChange = new EventEmitter<DateRange<D>>();\n\n /** Event thrown every time calendar active view is changed */\n @Output()\n readonly activeViewChange = new EventEmitter<FdCalendarView>();\n\n /** @hideen */\n @ViewChildren(CalendarComponent)\n private readonly _calendars: QueryList<CalendarComponent<D>>;\n\n /** @hidden */\n _calendarComponent: CalendarComponent<D>;\n\n /** @hidden */\n @ViewChild('inputGroupComponent', { read: ElementRef })\n _inputGroupElement: ElementRef;\n\n /** @hidden */\n @ViewChild(InputGroupInputDirective, { read: ElementRef })\n _inputElement: ElementRef<HTMLInputElement>;\n\n /** @hidden The value of the input */\n _inputFieldDate: string | null = null;\n\n /** @hidden Whether the date input is invalid */\n _isInvalidDateInput = false;\n\n /** @hidden */\n _showPopoverContents = false;\n\n /** @hidden */\n readonly _formValueStateMessageId = `fd-date-picker-form-message-${datePickerCounter++}`;\n\n /** @hidden */\n private _calendarPendingDate: Nullable<D>;\n\n /** @hidden */\n private readonly _onDestroy$: Subject<void> = new Subject<void>();\n\n /** @hidden */\n private _subscriptions = new Subscription();\n\n /**\n * Function used to disable certain dates in the calendar.\n * @param date date representation\n */\n @Input()\n disableFunction: (value: D) => boolean = () => false;\n\n /**\n * Function used to disable certain dates in the calendar for the range start selection.\n * @param date date representation\n */\n @Input()\n disableRangeStartFunction: (value: D) => boolean = () => false;\n\n /**\n * Function used to disable certain dates in the calendar for the range end selection.\n * @param date date representation\n */\n @Input()\n disableRangeEndFunction: (value: D) => boolean = () => false;\n\n /** @hidden */\n onChange: (value: any) => void = () => {};\n\n /** @hidden */\n onTouched: any = () => {};\n\n /** @hidden */\n get _rangeDelimiter(): string {\n return this._dateTimeFormats.rangeDelimiter;\n }\n\n /**\n * Date input aria label based on type\n * @hidden\n */\n get _dateInputArialLabel(): string {\n // return either input value or a key for \"fdTranslate\" pipe\n return this.type === 'range' ? this.dateRangeInputLabel : this.dateInputLabel;\n }\n\n /**\n * Date input aria label key based on type\n * @hidden\n */\n get _dateInputArialLabelKey(): string {\n // return either input value or a key for \"fdTranslate\" pipe\n return this.type === 'range' ? 'coreDatePicker.dateRangeInputLabel' : 'coreDatePicker.dateInputLabel';\n }\n\n /** @hidden */\n constructor(\n private _changeDetectionRef: ChangeDetectorRef,\n // Use @Optional to avoid angular injection error message and throw our own which is more precise one\n @Optional() private _dateTimeAdapter: DatetimeAdapter<D>,\n @Optional() @Inject(DATE_TIME_FORMATS) private _dateTimeFormats: DateTimeFormats,\n private _popoverFormMessage: PopoverFormMessageService\n ) {\n if (!this._dateTimeAdapter) {\n throw createMissingDateImplementationError('DateTimeAdapter');\n }\n if (!this._dateTimeFormats) {\n throw createMissingDateImplementationError('DATE_TIME_FORMATS');\n }\n }\n\n /** @hidden */\n ngOnInit(): void {\n this._dateTimeAdapter.localeChanges.pipe(takeUntil(this._onDestroy$)).subscribe(() => {\n this.formatInputDate(this.selectedDate);\n this._changeDetectionRef.detectChanges();\n });\n }\n\n /** @hidden */\n ngOnChanges(changes: SimpleChanges): void {\n if ('isOpen' in changes) {\n this._showPopoverContents = this.isOpen;\n this._changeDetectionRef.detectChanges();\n }\n }\n\n /** @hidden */\n ngAfterViewInit(): void {\n this._InitialiseVariablesInMessageService();\n\n this._calendars.changes.pipe(startWith(null), takeUntil(this._onDestroy$)).subscribe(() => {\n const calendar = this._calendars.first;\n this._calendarComponent = calendar;\n setTimeout(() => {\n calendar?.setCurrentlyDisplayed(this._calendarPendingDate);\n calendar?.initialFocus();\n });\n });\n }\n\n /** @hidden */\n ngOnDestroy(): void {\n this._subscriptions.unsubscribe();\n this._onDestroy$.next();\n this._onDestroy$.complete();\n }\n\n /**\n * Method that handle calendar active view change and throws event.\n */\n public handleCalendarActiveViewChange(activeView: FdCalendarView): void {\n this.activeViewChange.emit(activeView);\n }\n\n /** @hidden */\n public closeFromCalendar(): void {\n if (this.type === 'single' && this.closeOnDateChoose) {\n this.onTouched();\n this.closeCalendar();\n }\n }\n\n /** Opens the calendar */\n openCalendar(): void {\n if (!this.disabled) {\n this._setOpenState(true);\n this._changeMessageVisibility();\n }\n }\n\n /** Toggles the calendar open or closed */\n public toggleCalendar(): void {\n this._setOpenState(!this.isOpen);\n if (!this.isOpen) {\n this.onTouched();\n }\n this._changeMessageVisibility();\n }\n\n /** Closes the calendar if it is open */\n public closeCalendar(): void {\n if (this.isOpen) {\n this._setOpenState(false);\n this._changeMessageVisibility();\n }\n }\n\n /**\n * @hidden\n * Method that is triggered by events from calendar component, when there is selected single date changed\n */\n public handleSingleDateChange(date: D): void {\n if (date) {\n this.selectedDate = date;\n this.selectedDateChange.emit(date);\n this.onChange(date);\n this.formatInputDate(date);\n this._isInvalidDateInput = !this.isModelValid();\n if (this.closeOnDateChoose && this.type === 'single') {\n this.closeCalendar();\n }\n }\n }\n\n /**\n * @hidden\n * Method that is triggered date formatting in the date control\n */\n public formatInputDate(date: Nullable<D>): void {\n if (date) {\n this._inputFieldDate = this._formatDate(date);\n }\n }\n\n /**\n * @hidden\n * Method that is triggered by events from calendar component, when there is selected range date changed\n */\n public handleRangeDateChange(dates: DateRange<D>): void {\n const startChanged = !this._dateTimeAdapter.datesEqual(dates.start, this.selectedRangeDate.start);\n const endChanged = !this._dateTimeAdapter.datesEqual(dates.end, this.selectedRangeDate.end);\n if (dates && (startChanged || endChanged)) {\n const shouldClose = this.closeOnDateChoose && dates.end !== null;\n this._inputFieldDate = this._formatDateRange(dates);\n this.selectedRangeDate = { start: dates.start, end: dates.end };\n this.selectedRangeDateChange.emit(this.selectedRangeDate);\n this.onChange(this.selectedRangeDate);\n this._isInvalidDateInput = !this.isModelValid();\n if (shouldClose) {\n this.closeCalendar();\n }\n }\n }\n\n /**\n * @hidden\n * Method that is triggered when Today-Selection-Button clicked, it changes selected date or date range to today's date\n */\n onTodayButtonClick(): void {\n const todayDate = this._dateTimeAdapter.today();\n if (this.type === 'single') {\n this.handleSingleDateChange(todayDate);\n this.closeFromCalendar();\n } else if (this.type === 'range') {\n this.handleRangeDateChange({ start: todayDate, end: todayDate });\n }\n }\n\n /**\n * @hidden\n * Method that is triggered when the text input is confirmed to ba changed, by clicking enter, or blur\n */\n public handleInputChange(strDate: string, isTypeEvent: boolean): void {\n if ((isTypeEvent && this.processInputOnBlur) || (!isTypeEvent && !this.processInputOnBlur)) {\n // if processInputOnBlur === true, ignore type event\n // if processInputOnBlur === false, ignore blur/enter event\n return;\n }\n this.dateStringUpdate(strDate);\n }\n\n /**\n * @hidden\n * Function that implements Validator Interface, adds validation support for forms\n */\n validate(): { [key: string]: any } | null {\n return this.isModelValid()\n ? null\n : {\n dateValidation: {\n valid: false\n }\n };\n }\n\n /** @hidden */\n registerOnChange(fn: (selected: any) => { void }): void {\n this.onChange = fn;\n }\n\n /** @hidden */\n registerOnTouched(fn: any): void {\n this.onTouched = fn;\n }\n\n /** @hidden */\n setDisabledState(isDisabled: boolean): void {\n this.disabled = isDisabled;\n this._changeDetectionRef.detectChanges();\n }\n\n /**\n * @hidden\n * Function that provides support for ControlValueAccessor that allows to use [(ngModel)] or forms\n */\n writeValue(selected: DateRange<D> | D | null): void {\n /** If written value is not defined, null, empty string */\n if (!selected) {\n this._inputFieldDate = '';\n this._refreshCurrentlyDisplayedCalendarDate(this._dateTimeAdapter.today());\n this.selectedRangeDate = { start: null, end: null };\n this.selectedDate = null;\n this._changeDetectionRef.detectChanges();\n return;\n }\n if (this.type === 'single') {\n /**\n * For single mode, if the date is invalid, model is changed, it refreshes currently\n * input field text, but it does not refresh currently displayed day\n */\n selected = this._parseDate(selected);\n this.selectedDate = selected;\n\n this._inputFieldDate = this._formatDate(selected);\n this._refreshCurrentlyDisplayedCalendarDate(selected);\n }\n if (this.type === 'range') {\n /**\n * For range mode, if the date is invalid, model is changed, but it does not refresh currently\n * displayed day view, or input field text\n */\n selected = selected as DateRange<D>;\n\n if (selected?.start) {\n this.selectedRangeDate = {\n start: this._parseDate(selected.start),\n end: this._parseDate(selected.end)\n };\n\n this._refreshCurrentlyDisplayedCalendarDate(selected.start);\n this._inputFieldDate = this._formatDateRange(selected);\n } else {\n this._inputFieldDate = '';\n }\n }\n this._isInvalidDateInput = !this.isModelValid();\n this._changeDetectionRef.detectChanges();\n }\n\n /**\n * @hidden\n * Method, which is responsible for transforming string to date, depending on type or\n * validation the results are different. It also changes to state of _isInvalidDateInput\n */\n dateStringUpdate(dateStr: string): void {\n this._inputFieldDate = dateStr;\n /** Case when there is single mode */\n if (this.type === 'single') {\n if (!dateStr) {\n this._isInvalidDateInput = !this.allowNull;\n this.selectedDate = null;\n this._refreshCurrentlyDisplayedCalendarDate(this.selectedDate);\n this.onChange(this.selectedDate);\n this.selectedDateChange.emit(this.selectedDate);\n return;\n }\n const date = this._parseDate(dateStr);\n\n /** Check if dates are equal, if so, there is no need to make any changes */\n if (!this._dateTimeAdapter.datesEqual(date, this.selectedDate)) {\n this._isInvalidDateInput = !this._isSingleModelValid(date);\n\n /** Check if date is valid, if it's not, there is no need to refresh calendar */\n if (!this._isInvalidDateInput) {\n this._refreshCurrentlyDisplayedCalendarDate(date);\n }\n\n /**\n * Date in model is changed no matter if the parsed date from string is valid or not.\n */\n this.selectedDate = date;\n this.onChange(this.selectedDate);\n this.selectedDateChange.emit(this.selectedDate);\n }\n\n /** Case when there is range mode */\n } else {\n if (!dateStr) {\n this._isInvalidDateInput = !this.allowNull;\n this.selectedRangeDate = { start: null, end: null };\n this._refreshCurrentlyDisplayedCalendarDate(this.selectedRangeDate.start);\n this.onChange(this.selectedRangeDate);\n this.selectedRangeDateChange.emit(this.selectedRangeDate);\n return;\n }\n const [startDateStr, endDateStr] = dateStr.split(this._rangeDelimiter);\n const startDate = this._parseDate(startDateStr);\n const endDate = this._parseDate(endDateStr);\n\n /**\n * Check if dates are equal, if dates are the same there is no need to make any changes\n * Date in model is changed no matter if the parsed dates from string are valid or not.\n */\n if (\n !this._dateTimeAdapter.datesEqual(startDate, this.selectedRangeDate.start) ||\n !this._dateTimeAdapter.datesEqual(endDate, this.selectedRangeDate.end)\n ) {\n let selectedRangeDate: DateRange<D> | null = null;\n\n /** If the end date is before the start date, there is need to replace them */\n if (\n this._dateTimeAdapter.isValid(startDate) &&\n this._dateTimeAdapter.isValid(endDate) &&\n this._dateTimeAdapter.compareDate(startDate, endDate) > 0\n ) {\n selectedRangeDate = { start: endDate, end: startDate };\n } else {\n selectedRangeDate = { start: startDate, end: endDate };\n }\n\n this._isInvalidDateInput = !this._isRangeModelValid(selectedRangeDate);\n\n /** Whole object is changed, even it's invalid */\n this.selectedRangeDate = selectedRangeDate;\n\n this.selectedRangeDateChange.emit(this.selectedRangeDate);\n this.onChange(this.selectedRangeDate);\n\n /** Check if start date is valid, if it's not, there is no need o refresh calendar */\n if (this._isStartDateValid(this.selectedRangeDate.start)) {\n this._refreshCurrentlyDisplayedCalendarDate(this.selectedRangeDate.start);\n }\n }\n }\n }\n\n /** Method that provides information if model selected date/dates have properly types and are valid */\n isModelValid(): boolean {\n if (this.type === 'single') {\n return this._isSingleModelValid(this.selectedDate);\n } else {\n return this._isRangeModelValid(this.selectedRangeDate);\n }\n }\n\n /** @hidden */\n _changeMessageVisibility(): void {\n if (this.isOpen) {\n this._popoverFormMessage.hide();\n } else {\n this._popoverFormMessage.show();\n }\n }\n\n /** @hidden */\n _onOpenStateChanged(isOpen: boolean): void {\n this.isOpenChange.emit(isOpen);\n this._changeMessageVisibility();\n // focus input control every time popup is closed\n if (!isOpen && this._inputElement) {\n this._inputElement.nativeElement.focus({\n preventScroll: this.preventScrollOnFocus\n });\n }\n }\n\n /** @hidden */\n _onBlur(event: FocusEvent): void {\n this.onTouched();\n this.handleInputChange((event.target as any).value, false);\n }\n\n /** Method that returns info if single model given is valid */\n private _isSingleModelValid(date: Nullable<D>): boolean {\n return (this._isDateValid(date) && !this.disableFunction(date)) || (!date && this.allowNull);\n }\n\n /** Method that returns info if range date model given is valid */\n private _isRangeModelValid(fdRangeDate: DateRange<D>): boolean {\n return (\n (fdRangeDate && this._isStartDateValid(fdRangeDate.start) && this._isEndDateValid(fdRangeDate.end)) ||\n (!fdRangeDate.start && !fdRangeDate.end && this.allowNull)\n );\n }\n\n /** Method that returns info if end date model given is valid */\n private _isEndDateValid(endDate: Nullable<D>): boolean {\n return this._isDateValid(endDate) && !this.disableRangeEndFunction(endDate);\n }\n\n /** Method that returns info if start date model given is valid */\n private _isStartDateValid(startDate: Nullable<D>): boolean {\n return this._isDateValid(startDate) && !this.disableRangeStartFunction(startDate);\n }\n\n /** Method that returns info if given date model is valid */\n private _isDateValid(date: Nullable<D>): date is D {\n return this._dateTimeAdapter.isValid(date);\n }\n\n /** @hidden */\n private _refreshCurrentlyDisplayedCalendarDate(date: Nullable<D>): void {\n this._calendarPendingDate = date;\n this._calendarComponent?.setCurrentlyDisplayed(date);\n }\n\n /** @hidden */\n private _formatDate(date: Nullable<D>): string {\n return this._dateTimeAdapter.format(date, this._dateTimeFormats.display.dateInput);\n }\n\n /** @hidden */\n private _parseDate(date: unknown): D | null {\n return this._dateTimeAdapter.parse(date, this._dateTimeFormats.parse.dateInput);\n }\n\n /** @hidden */\n private _formatDateRange(dateRange: DateRange<D>): string {\n const startDate = this._formatDate(dateRange.start);\n const endDate = this._formatDate(dateRange.end);\n return startDate + this._rangeDelimiter + endDate;\n }\n\n /** @hidden */\n private _InitialiseVariablesInMessageService(): void {\n this._popoverFormMessage.init(this._inputGroupElement);\n this._popoverFormMessage.message = this._message || '';\n this._popoverFormMessage.triggers = this._messageTriggers;\n this._popoverFormMessage.messageType = this._state;\n }\n\n /** @hidden */\n private _setOpenState(isOpen: boolean): void {\n this._showPopoverContents = isOpen;\n this._changeDetectionRef.detectChanges();\n this.isOpen = isOpen;\n this.isOpenChange.emit(this.isOpen);\n this._changeDetectionRef.detectChanges();\n }\n}\n","<fd-popover\n [(isOpen)]=\"isOpen\"\n (isOpenChange)=\"_onOpenStateChanged($event)\"\n [triggers]=\"[]\"\n [placement]=\"placement\"\n [disabled]=\"disabled\"\n [focusTrapped]=\"true\"\n [focusAutoCapture]=\"false\"\n [appendTo]=\"appendTo\"\n>\n <fd-popover-control>\n <fd-input-group\n #inputGroupComponent\n [state]=\"state\"\n [disabled]=\"disabled\"\n [isControl]=\"true\"\n [button]=\"true\"\n [buttonFocusable]=\"buttonFocusable\"\n glyph=\"appointment-2\"\n [isExpanded]=\"isOpen\"\n [glyphAriaLabel]=\"displayCalendarToggleLabel || ('coreDatePicker.displayCalendarToggleLabel' | fdTranslate)\"\n [iconTitle]=\"displayCalendarToggleLabel || ('coreDatePicker.displayCalendarToggleLabel' | fdTranslate)\"\n (addOnButtonClicked)=\"toggleCalendar()\"\n >\n <input\n type=\"text\"\n class=\"fd-input\"\n fd-input-group-input\n [disabled]=\"disabled\"\n [placeholder]=\"placeholder\"\n [attr.id]=\"inputId\"\n aria-haspopup=\"grid\"\n aria-autocomplete=\"none\"\n [attr.aria-expanded]=\"isOpen\"\n [attr.aria-labelledby]=\"ariaLabelledBy\"\n [attr.aria-label]=\"_dateInputArialLabel || (_dateInputArialLabelKey | fdTranslate)\"\n [attr.aria-required]=\"required\"\n [attr.aria-describedby]=\"_formValueStateMessageId\"\n [ngModel]=\"_inputFieldDate\"\n (keyup.enter)=\"handleInputChange($any($event.target).value, false)\"\n (ngModelChange)=\"handleInputChange($event, true)\"\n (blur)=\"_onBlur($event)\"\n />\n </fd-input-group>\n </fd-popover-control>\n <fd-popover-body [attr.aria-expanded]=\"isOpen\" [attr.aria-hidden]=\"!isOpen\">\n <ng-container *ngIf=\"_showPopoverContents\">\n <fd-form-message [embedded]=\"true\" *ngIf=\"_message\" [type]=\"state\">\n {{ _message }}\n </fd-form-message>\n <ng-content></ng-content>\n\n <fd-calendar\n (closeCalendar)=\"closeFromCalendar()\"\n [activeView]=\"activeView\"\n [markWeekends]=\"markWeekends\"\n [specialDaysRules]=\"specialDaysRules\"\n [showWeekNumbers]=\"showWeekNumbers\"\n [aggregatedYearGrid]=\"aggregatedYearGrid\"\n [yearGrid]=\"yearGrid\"\n (activeViewChange)=\"handleCalendarActiveViewChange($event)\"\n [calType]=\"type\"\n [rangeHoverEffect]=\"rangeHoverEffect\"\n [disableFunction]=\"disableFunction\"\n [disableRangeStartFunction]=\"disableRangeStartFunction\"\n [disableRangeEndFunction]=\"disableRangeEndFunction\"\n [selectedDate]=\"selectedDate\"\n [selectedRangeDate]=\"selectedRangeDate\"\n (selectedRangeDateChange)=\"handleRangeDateChange($event)\"\n (selectedDateChange)=\"handleSingleDateChange($event)\"\n [startingDayOfWeek]=\"startingDayOfWeek\"\n [previousButtonDisableFunction]=\"previousButtonDisableFunction\"\n [nextButtonDisableFunction]=\"nextButtonDisableFunction\"\n ></fd-calendar>\n\n <div *ngIf=\"showTodayButton\" fd-bar barDesign=\"footer\">\n <div fd-bar-right>\n <fd-bar-element>\n <button fd-button [label]=\"todayButtonLabel\" (click)=\"onTodayButtonClick()\"></button>\n </fd-bar-element>\n </div>\n </div>\n </ng-container>\n </fd-popover-body>\n</fd-popover>\n\n<div style=\"display: none\" aria-hidden=\"true\">\n <div [attr.id]=\"_formValueStateMessageId\" aria-atomic=\"true\" aria-live=\"assertive\">\n <ng-container [ngSwitch]=\"state\">\n <ng-container *ngSwitchCase=\"'success'\">{{\n valueStateSuccessMessage || ('coreDatePicker.valueStateSuccessMessage' | fdTranslate)\n }}</ng-container>\n <ng-container *ngSwitchCase=\"'information'\">{{\n valueStateInformationMessage || ('coreDatePicker.valueStateInformationMessage' | fdTranslate)\n }}</ng-container>\n <ng-container *ngSwitchCase=\"'warning'\">{{\n valueStateWarningMessage || ('coreDatePicker.valueStateWarningMessage' | fdTranslate)\n }}</ng-container>\n <ng-container *ngSwitchCase=\"'error'\">{{\n valueStateErrorMessage || ('coreDatePicker.valueStateErrorMessage' | fdTranslate)\n }}</ng-container>\n </ng-container>\n {{ _message }}\n </div>\n</div>\n","import { Directive, forwardRef } from '@angular/core';\nimport { CONTENT_DENSITY_DIRECTIVE, DeprecatedCompactDirective } from '@fundamental-ngx/core/content-density';\n\n@Directive({\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: 'fd-date-picker[compact]',\n providers: [\n {\n provide: CONTENT_DENSITY_DIRECTIVE,\n useExisting: forwardRef(() => DeprecatedDatePickerCompactDirective)\n }\n ]\n})\nexport class DeprecatedDatePickerCompactDirective extends DeprecatedCompactDirective {\n /** @hidden */\n constructor() {\n super('fd-date-picker');\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { IconModule } from '@fundamental-ngx/core/icon';\nimport { PopoverModule } from '@fundamental-ngx/core/popover';\nimport { CalendarModule } from '@fundamental-ngx/core/calendar';\nimport { FormsModule } from '@angular/forms';\n\nimport { DatePickerComponent } from './date-picker.component';\nimport { InputGroupModule } from '@fundamental-ngx/core/input-group';\nimport { ButtonModule } from '@fundamental-ngx/core/button';\nimport { FormMessageModule } from '@fundamental-ngx/core/form';\nimport { I18nModule } from '@fundamental-ngx/i18n';\nimport { DeprecatedDatePickerCompactDirective } from './deprecated-date-picker-compact.directive';\nimport { ContentDensityModule } from '@fundamental-ngx/core/content-density';\nimport { BarModule } from '@fundamental-ngx/core/bar';\n\n@NgModule({\n declarations: [DatePickerComponent, DeprecatedDatePickerCompactDirective],\n imports: [\n CommonModule,\n IconModule,\n PopoverModule,\n I18nModule,\n CalendarModule,\n FormsModule,\n InputGroupModule,\n ButtonModule,\n FormMessageModule,\n BarModule,\n ContentDensityModule\n ],\n exports: [DatePickerComponent, DeprecatedDatePickerCompactDirective, ContentDensityModule]\n})\nexport class DatePickerModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|