@fundamental-ngx/core 0.34.3-rc.13 → 0.34.3-rc.16

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (156) hide show
  1. package/action-bar/package.json +1 -1
  2. package/action-sheet/package.json +1 -1
  3. package/alert/package.json +1 -1
  4. package/avatar/package.json +1 -1
  5. package/avatar-group/package.json +1 -1
  6. package/bar/package.json +1 -1
  7. package/breadcrumb/package.json +1 -1
  8. package/busy-indicator/package.json +1 -1
  9. package/button/package.json +1 -1
  10. package/calendar/package.json +1 -1
  11. package/card/package.json +1 -1
  12. package/carousel/package.json +1 -1
  13. package/checkbox/package.json +1 -1
  14. package/combobox/package.json +1 -1
  15. package/date-picker/package.json +1 -1
  16. package/datetime/package.json +1 -1
  17. package/datetime-picker/datetime-picker.component.d.ts +7 -1
  18. package/datetime-picker/datetime-picker.module.d.ts +3 -2
  19. package/datetime-picker/esm2020/datetime-picker.component.mjs +21 -10
  20. package/datetime-picker/esm2020/datetime-picker.module.mjs +5 -1
  21. package/datetime-picker/fesm2015/fundamental-ngx-core-datetime-picker.mjs +25 -10
  22. package/datetime-picker/fesm2015/fundamental-ngx-core-datetime-picker.mjs.map +1 -1
  23. package/datetime-picker/fesm2020/fundamental-ngx-core-datetime-picker.mjs +25 -10
  24. package/datetime-picker/fesm2020/fundamental-ngx-core-datetime-picker.mjs.map +1 -1
  25. package/datetime-picker/package.json +1 -1
  26. package/dialog/package.json +1 -1
  27. package/dynamic-page/package.json +1 -1
  28. package/dynamic-side-content/package.json +1 -1
  29. package/esm2020/datetime-picker/datetime-picker.component.mjs +21 -10
  30. package/esm2020/datetime-picker/datetime-picker.module.mjs +5 -1
  31. package/esm2020/feed-list-item/components/item/feed-list-item.component.mjs +1 -1
  32. package/esm2020/form/form-label/form-label.component.mjs +7 -6
  33. package/esm2020/form/form-label/form-label.module.mjs +5 -4
  34. package/esm2020/link/link.component.mjs +6 -3
  35. package/esm2020/multi-input/multi-input.component.mjs +1 -1
  36. package/esm2020/text/text.component.mjs +1 -1
  37. package/esm2020/time-picker/time-picker.component.mjs +4 -1
  38. package/facets/package.json +1 -1
  39. package/feed-input/package.json +1 -1
  40. package/feed-list-item/esm2020/components/item/feed-list-item.component.mjs +1 -1
  41. package/feed-list-item/fesm2015/fundamental-ngx-core-feed-list-item.mjs +1 -1
  42. package/feed-list-item/fesm2020/fundamental-ngx-core-feed-list-item.mjs +1 -1
  43. package/feed-list-item/package.json +1 -1
  44. package/fesm2015/fundamental-ngx-core-datetime-picker.mjs +25 -10
  45. package/fesm2015/fundamental-ngx-core-datetime-picker.mjs.map +1 -1
  46. package/fesm2015/fundamental-ngx-core-feed-list-item.mjs +1 -1
  47. package/fesm2015/fundamental-ngx-core-form.mjs +10 -8
  48. package/fesm2015/fundamental-ngx-core-form.mjs.map +1 -1
  49. package/fesm2015/fundamental-ngx-core-link.mjs +5 -2
  50. package/fesm2015/fundamental-ngx-core-link.mjs.map +1 -1
  51. package/fesm2015/fundamental-ngx-core-multi-input.mjs +1 -1
  52. package/fesm2015/fundamental-ngx-core-text.mjs +1 -1
  53. package/fesm2015/fundamental-ngx-core-time-picker.mjs +3 -0
  54. package/fesm2015/fundamental-ngx-core-time-picker.mjs.map +1 -1
  55. package/fesm2020/fundamental-ngx-core-datetime-picker.mjs +25 -10
  56. package/fesm2020/fundamental-ngx-core-datetime-picker.mjs.map +1 -1
  57. package/fesm2020/fundamental-ngx-core-feed-list-item.mjs +1 -1
  58. package/fesm2020/fundamental-ngx-core-form.mjs +10 -8
  59. package/fesm2020/fundamental-ngx-core-form.mjs.map +1 -1
  60. package/fesm2020/fundamental-ngx-core-link.mjs +5 -2
  61. package/fesm2020/fundamental-ngx-core-link.mjs.map +1 -1
  62. package/fesm2020/fundamental-ngx-core-multi-input.mjs +1 -1
  63. package/fesm2020/fundamental-ngx-core-text.mjs +1 -1
  64. package/fesm2020/fundamental-ngx-core-time-picker.mjs +3 -0
  65. package/fesm2020/fundamental-ngx-core-time-picker.mjs.map +1 -1
  66. package/file-uploader/package.json +1 -1
  67. package/fixed-card-layout/package.json +1 -1
  68. package/flexible-column-layout/package.json +1 -1
  69. package/form/esm2020/form-label/form-label.component.mjs +7 -6
  70. package/form/esm2020/form-label/form-label.module.mjs +5 -4
  71. package/form/fesm2015/fundamental-ngx-core-form.mjs +10 -8
  72. package/form/fesm2015/fundamental-ngx-core-form.mjs.map +1 -1
  73. package/form/fesm2020/fundamental-ngx-core-form.mjs +10 -8
  74. package/form/fesm2020/fundamental-ngx-core-form.mjs.map +1 -1
  75. package/form/form-label/form-label.module.d.ts +2 -1
  76. package/form/package.json +1 -1
  77. package/formatted-text/package.json +1 -1
  78. package/grid-list/package.json +1 -1
  79. package/icon/package.json +1 -1
  80. package/illustrated-message/package.json +1 -1
  81. package/infinite-scroll/package.json +1 -1
  82. package/info-label/package.json +1 -1
  83. package/inline-help/package.json +1 -1
  84. package/input-group/package.json +1 -1
  85. package/layout-grid/package.json +1 -1
  86. package/layout-panel/package.json +1 -1
  87. package/link/esm2020/link.component.mjs +6 -3
  88. package/link/fesm2015/fundamental-ngx-core-link.mjs +5 -2
  89. package/link/fesm2015/fundamental-ngx-core-link.mjs.map +1 -1
  90. package/link/fesm2020/fundamental-ngx-core-link.mjs +5 -2
  91. package/link/fesm2020/fundamental-ngx-core-link.mjs.map +1 -1
  92. package/link/link.component.d.ts +3 -1
  93. package/link/package.json +1 -1
  94. package/list/package.json +1 -1
  95. package/menu/package.json +1 -1
  96. package/message-box/package.json +1 -1
  97. package/message-strip/package.json +1 -1
  98. package/message-toast/package.json +1 -1
  99. package/micro-process-flow/package.json +1 -1
  100. package/mobile-mode/package.json +1 -1
  101. package/multi-input/esm2020/multi-input.component.mjs +1 -1
  102. package/multi-input/fesm2015/fundamental-ngx-core-multi-input.mjs +1 -1
  103. package/multi-input/fesm2020/fundamental-ngx-core-multi-input.mjs +1 -1
  104. package/multi-input/package.json +1 -1
  105. package/nested-list/package.json +1 -1
  106. package/notification/package.json +1 -1
  107. package/object-identifier/package.json +1 -1
  108. package/object-marker/package.json +1 -1
  109. package/object-number/package.json +1 -1
  110. package/object-status/package.json +1 -1
  111. package/package.json +1 -1
  112. package/pagination/package.json +1 -1
  113. package/panel/package.json +1 -1
  114. package/popover/package.json +1 -1
  115. package/product-switch/package.json +1 -1
  116. package/progress-indicator/package.json +1 -1
  117. package/quick-view/package.json +1 -1
  118. package/radio/package.json +1 -1
  119. package/rating-indicator/package.json +1 -1
  120. package/resizable-card-layout/package.json +1 -1
  121. package/scroll-spy/package.json +1 -1
  122. package/scrollbar/package.json +1 -1
  123. package/segmented-button/package.json +1 -1
  124. package/select/package.json +1 -1
  125. package/shared/package.json +1 -1
  126. package/shellbar/package.json +1 -1
  127. package/side-navigation/package.json +1 -1
  128. package/slider/package.json +1 -1
  129. package/split-button/package.json +1 -1
  130. package/splitter/package.json +1 -1
  131. package/status-indicator/package.json +1 -1
  132. package/step-input/package.json +1 -1
  133. package/switch/package.json +1 -1
  134. package/table/package.json +1 -1
  135. package/tabs/package.json +1 -1
  136. package/text/esm2020/text.component.mjs +1 -1
  137. package/text/fesm2015/fundamental-ngx-core-text.mjs +1 -1
  138. package/text/fesm2020/fundamental-ngx-core-text.mjs +1 -1
  139. package/text/package.json +1 -1
  140. package/tile/package.json +1 -1
  141. package/time/package.json +1 -1
  142. package/time-picker/esm2020/time-picker.component.mjs +4 -1
  143. package/time-picker/fesm2015/fundamental-ngx-core-time-picker.mjs +3 -0
  144. package/time-picker/fesm2015/fundamental-ngx-core-time-picker.mjs.map +1 -1
  145. package/time-picker/fesm2020/fundamental-ngx-core-time-picker.mjs +3 -0
  146. package/time-picker/fesm2020/fundamental-ngx-core-time-picker.mjs.map +1 -1
  147. package/time-picker/package.json +1 -1
  148. package/timeline/package.json +1 -1
  149. package/title/package.json +1 -1
  150. package/token/package.json +1 -1
  151. package/toolbar/package.json +1 -1
  152. package/tree/package.json +1 -1
  153. package/upload-collection/package.json +1 -1
  154. package/utils/package.json +1 -1
  155. package/vertical-navigation/package.json +1 -1
  156. package/wizard/package.json +1 -1
@@ -1,13 +1,13 @@
1
1
  import * as i0 from '@angular/core';
2
2
  import { EventEmitter, forwardRef, ElementRef, Component, ViewEncapsulation, ChangeDetectionStrategy, Optional, Inject, Input, Output, ViewChild, NgModule } from '@angular/core';
3
- import * as i11 from '@angular/common';
3
+ import * as i12 from '@angular/common';
4
4
  import { CommonModule } from '@angular/common';
5
5
  import { IconModule } from '@fundamental-ngx/core/icon';
6
6
  import * as i4 from '@fundamental-ngx/core/popover';
7
7
  import { PopoverService, PopoverModule } from '@fundamental-ngx/core/popover';
8
- import * as i6 from '@fundamental-ngx/core/calendar';
8
+ import * as i8 from '@fundamental-ngx/core/calendar';
9
9
  import { CalendarComponent, CalendarModule } from '@fundamental-ngx/core/calendar';
10
- import * as i10 from '@angular/forms';
10
+ import * as i11 from '@angular/forms';
11
11
  import { NG_VALUE_ACCESSOR, NG_VALIDATORS, FormsModule } from '@angular/forms';
12
12
  import { Subject, Subscription } from 'rxjs';
13
13
  import { takeUntil, filter } from 'rxjs/operators';
@@ -19,12 +19,14 @@ import * as i5 from '@fundamental-ngx/core/input-group';
19
19
  import { InputGroupInputDirective, InputGroupModule } from '@fundamental-ngx/core/input-group';
20
20
  import { coerceBooleanProperty } from '@angular/cdk/coercion';
21
21
  import * as i1 from '@fundamental-ngx/core/utils';
22
- import * as i7 from '@fundamental-ngx/core/time';
22
+ import * as i6 from '@fundamental-ngx/core/segmented-button';
23
+ import { SegmentedButtonModule } from '@fundamental-ngx/core/segmented-button';
24
+ import * as i7 from '@fundamental-ngx/core/button';
25
+ import { ButtonModule } from '@fundamental-ngx/core/button';
26
+ import * as i9 from '@fundamental-ngx/core/time';
23
27
  import { TimeModule } from '@fundamental-ngx/core/time';
24
- import * as i8 from '@fundamental-ngx/core/bar';
28
+ import * as i10 from '@fundamental-ngx/core/bar';
25
29
  import { BarModule } from '@fundamental-ngx/core/bar';
26
- import * as i9 from '@fundamental-ngx/core/button';
27
- import { ButtonModule } from '@fundamental-ngx/core/button';
28
30
 
29
31
  function createMissingDateImplementationError(provider) {
30
32
  return Error(`FdDatetimePicker: No provider found for ${provider}. You must import one of the following ` +
@@ -76,6 +78,10 @@ class DatetimePickerComponent {
76
78
  this.datetimeInputLabel = 'Datetime input';
77
79
  /** Aria label for the button to show/hide the calendar. */
78
80
  this.displayDatetimeToggleLabel = 'Display calendar toggle';
81
+ /** Label for the "Date" button in display type switcher in mobile mode */
82
+ this.displayTypeDateLabel = 'Date';
83
+ /** Label for the "Time" button in display type switcher in mobile mode */
84
+ this.displayTypeTimeLabel = 'Time';
79
85
  /** Whether a null input is considered valid. */
80
86
  this.allowNull = true;
81
87
  /**
@@ -152,6 +158,8 @@ class DatetimePickerComponent {
152
158
  this._inputFieldDate = null;
153
159
  /** @hidden */
154
160
  this._isInvalidDateInput = false;
161
+ /** @hidden whether to display date or time in mobile mode */
162
+ this._displayType = 'date';
155
163
  /** @hidden */
156
164
  this._onDestroy$ = new Subject();
157
165
  /** @hidden */
@@ -507,7 +515,7 @@ class DatetimePickerComponent {
507
515
  }
508
516
  }
509
517
  DatetimePickerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.4", ngImport: i0, type: DatetimePickerComponent, deps: [{ token: i0.ElementRef }, { token: i0.ChangeDetectorRef }, { token: i1.ContentDensityService, optional: true }, { token: i2.DatetimeAdapter, optional: true }, { token: DATE_TIME_FORMATS, optional: true }, { token: i3.PopoverFormMessageService }], target: i0.ɵɵFactoryTarget.Component });
510
- DatetimePickerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.4", type: DatetimePickerComponent, selector: "fd-datetime-picker", inputs: { placeholder: "placeholder", compact: "compact", placement: "placement", appendTo: "appendTo", disabled: "disabled", inputId: "inputId", required: "required", meridian: "meridian", displaySeconds: "displaySeconds", message: "message", messageTriggers: "messageTriggers", displayMinutes: "displayMinutes", displayHours: "displayHours", useValidation: "useValidation", date: "date", isOpen: "isOpen", startingDayOfWeek: "startingDayOfWeek", activeView: "activeView", datetimeInputLabel: "datetimeInputLabel", displayDatetimeToggleLabel: "displayDatetimeToggleLabel", allowNull: "allowNull", keepTwoDigitsTime: "keepTwoDigitsTime", state: "state", buttonFocusable: "buttonFocusable", specialDaysRules: "specialDaysRules", yearGrid: "yearGrid", aggregatedYearGrid: "aggregatedYearGrid", markWeekends: "markWeekends", spinnerButtons: "spinnerButtons", showWeekNumbers: "showWeekNumbers", showFooter: "showFooter", processInputOnBlur: "processInputOnBlur", disableFunction: "disableFunction" }, outputs: { isOpenChange: "isOpenChange", activeViewChange: "activeViewChange", dateChange: "dateChange", calendarChange: "calendarChange", timeChange: "timeChange", onClose: "onClose", touched: "touched" }, host: { listeners: { "blur": "handleOnTouched()" } }, providers: [
518
+ DatetimePickerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.4", type: DatetimePickerComponent, selector: "fd-datetime-picker", inputs: { placeholder: "placeholder", compact: "compact", placement: "placement", appendTo: "appendTo", disabled: "disabled", inputId: "inputId", required: "required", meridian: "meridian", displaySeconds: "displaySeconds", message: "message", messageTriggers: "messageTriggers", displayMinutes: "displayMinutes", displayHours: "displayHours", useValidation: "useValidation", date: "date", isOpen: "isOpen", startingDayOfWeek: "startingDayOfWeek", activeView: "activeView", datetimeInputLabel: "datetimeInputLabel", displayDatetimeToggleLabel: "displayDatetimeToggleLabel", displayTypeDateLabel: "displayTypeDateLabel", displayTypeTimeLabel: "displayTypeTimeLabel", allowNull: "allowNull", keepTwoDigitsTime: "keepTwoDigitsTime", state: "state", buttonFocusable: "buttonFocusable", specialDaysRules: "specialDaysRules", yearGrid: "yearGrid", aggregatedYearGrid: "aggregatedYearGrid", markWeekends: "markWeekends", spinnerButtons: "spinnerButtons", showWeekNumbers: "showWeekNumbers", showFooter: "showFooter", processInputOnBlur: "processInputOnBlur", disableFunction: "disableFunction" }, outputs: { isOpenChange: "isOpenChange", activeViewChange: "activeViewChange", dateChange: "dateChange", calendarChange: "calendarChange", timeChange: "timeChange", onClose: "onClose", touched: "touched" }, host: { listeners: { "blur": "handleOnTouched()" } }, providers: [
511
519
  {
512
520
  provide: NG_VALUE_ACCESSOR,
513
521
  useExisting: forwardRef(() => DatetimePickerComponent),
@@ -520,7 +528,7 @@ DatetimePickerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0"
520
528
  },
521
529
  PopoverFormMessageService,
522
530
  PopoverService
523
- ], viewQueries: [{ propertyName: "_calendarComponent", first: true, predicate: CalendarComponent, descendants: true }, { propertyName: "_inputGroupElement", first: true, predicate: ["inputGroupComponent"], descendants: true, read: ElementRef }, { propertyName: "_inputElement", first: true, predicate: InputGroupInputDirective, descendants: true, read: ElementRef }], usesOnChanges: true, ngImport: i0, template: "<div class=\"fd-datetime\">\n <fd-popover\n [(isOpen)]=\"isOpen\"\n (isOpenChange)=\"_onOpenStateChanged($event)\"\n [focusTrapped]=\"true\"\n [focusAutoCapture]=\"false\"\n [triggers]=\"[]\"\n [disabled]=\"disabled\"\n [placement]=\"placement\"\n [appendTo]=\"appendTo\"\n >\n <fd-popover-control>\n <fd-input-group\n #inputGroupComponent\n [compact]=\"compact\"\n [state]=\"state\"\n [disabled]=\"disabled\"\n [isControl]=\"true\"\n [button]=\"true\"\n [buttonFocusable]=\"buttonFocusable\"\n glyph=\"date-time\"\n [isExpanded]=\"isOpen\"\n [glyphAriaLabel]=\"displayDatetimeToggleLabel\"\n [iconTitle]=\"displayDatetimeToggleLabel\"\n (addOnButtonClicked)=\"togglePopover()\"\n >\n <input\n type=\"text\"\n class=\"fd-input\"\n fd-input-group-input\n [attr.aria-label]=\"datetimeInputLabel\"\n [attr.id]=\"inputId\"\n [attr.aria-required]=\"required\"\n [placeholder]=\"placeholder\"\n [compact]=\"compact\"\n [disabled]=\"disabled\"\n [ngModel]=\"_inputFieldDate\"\n (keyup.enter)=\"handleInputChange($event.target.value, false)\"\n (ngModelChange)=\"handleInputChange($event, true)\"\n (blur)=\"handleOnTouched($event)\"\n />\n </fd-input-group>\n </fd-popover-control>\n <fd-popover-body\n aria-labelledby=\"fd-form-message\"\n [attr.aria-expanded]=\"isOpen\"\n [attr.aria-hidden]=\"!isOpen\"\n [style.display]=\"'block'\"\n >\n <div class=\"fd-popover__wrapper fd-datetime__wrapper\">\n <fd-form-message id=\"fd-form-message\" [embedded]=\"true\" *ngIf=\"_message\" [type]=\"state\">\n {{ _message }}\n </fd-form-message>\n <ng-content></ng-content>\n <div class=\"fd-datetime__container\">\n <fd-calendar\n calType=\"single\"\n [activeView]=\"activeView\"\n [disableFunction]=\"disableFunction || null\"\n [selectedDate]=\"_tempDate\"\n [escapeFocusFunction]=\"null\"\n [compact]=\"compact\"\n [markWeekends]=\"markWeekends\"\n [specialDaysRules]=\"specialDaysRules\"\n [showWeekNumbers]=\"showWeekNumbers\"\n [aggregatedYearGrid]=\"aggregatedYearGrid\"\n [yearGrid]=\"yearGrid\"\n [startingDayOfWeek]=\"startingDayOfWeek\"\n (activeViewChange)=\"handleCalendarActiveViewChange($event)\"\n (selectedDateChange)=\"handleDateChange($event)\"\n (isValidDateChange)=\"setInvalidDateInputHandler($event)\"\n ></fd-calendar>\n <div class=\"fd-datetime__separator\"></div>\n <fd-time\n *ngIf=\"isOpen\"\n [disabled]=\"disabled\"\n [elementsAtOnce]=\"5\"\n [keepTwoDigits]=\"keepTwoDigitsTime\"\n [ngModel]=\"_tempTime\"\n [compact]=\"compact\"\n [spinnerButtons]=\"spinnerButtons\"\n [meridian]=\"_meridian\"\n [displaySeconds]=\"_displaySeconds\"\n [displayMinutes]=\"_displayMinutes\"\n [displayHours]=\"_displayHours\"\n (ngModelChange)=\"handleTimeChange($event)\"\n ></fd-time>\n </div>\n <div fd-popover-body-footer *ngIf=\"showFooter\">\n <div fd-bar barDesign=\"footer\" [cozy]=\"!compact\">\n <div fd-bar-right>\n <fd-bar-element>\n <button\n fd-button\n fdType=\"emphasized\"\n label=\"OK\"\n [compact]=\"compact\"\n (click)=\"submit()\"\n ></button>\n </fd-bar-element>\n <fd-bar-element>\n <button\n fd-button\n fdType=\"transparent\"\n [compact]=\"compact\"\n label=\"Cancel\"\n (click)=\"cancel()\"\n ></button>\n </fd-bar-element>\n </div>\n </div>\n </div>\n </div>\n </fd-popover-body>\n </fd-popover>\n</div>\n", styles: [".fd-datetime{display:block}.fd-datetime__wrapper{max-height:80vh}.fd-datetime__container{display:flex;align-items:center;margin:0 16px}.fd-datetime__separator{background-color:#d3d3d3;width:1px;margin:42px 28px;align-self:stretch}.fd-datetime fd-time{width:auto}\n"], components: [{ type: i4.PopoverComponent, selector: "fd-popover", inputs: ["title", "trigger", "fixedPosition", "id", "mobile", "mobileConfig"] }, { type: i4.PopoverControlComponent, selector: "fd-popover-control" }, { type: i5.InputGroupComponent, selector: "fd-input-group", inputs: ["inputTemplate", "placement", "compact", "required", "inline", "placeholder", "addOnText", "buttonFocusable", "type", "glyph", "button", "disabled", "readonly", "state", "isControl", "showFocus", "isExpanded", "glyphAriaLabel", "iconTitle", "ariaLabelledby"], outputs: ["addOnButtonClicked", "search"] }, { type: i4.PopoverBodyComponent, selector: "fd-popover-body" }, { type: i3.FormMessageComponent, selector: "fd-form-message", inputs: ["type", "static", "embedded", "class"] }, { type: i6.CalendarComponent, selector: "fd-calendar", inputs: ["selectedDate", "compact", "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"] }, { type: i7.TimeComponent, selector: "fd-time", inputs: ["meridian", "validate", "keepTwoDigits", "disabled", "displaySeconds", "displayMinutes", "displayHours", "compact", "tablet", "elementsAtOnce", "time", "spinnerButtons"] }, { type: i8.BarComponent, selector: "[fd-bar]", inputs: ["class", "barDesign", "inPage", "inHomePage", "size", "cozy"] }, { type: i9.ButtonComponent, selector: "button[fd-button], a[fd-button]", inputs: ["class"], exportAs: ["fd-button"] }], directives: [{ type: i10.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: i5.InputGroupInputDirective, selector: "[fd-input-group-input]", inputs: ["class", "compact"] }, { type: i10.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i10.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { type: i11.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i4.PopoverBodyFooterDirective, selector: "[fdPopoverBodyFooter], [fd-popover-body-footer]" }, { type: i8.BarRightDirective, selector: "[fd-bar-right]" }, { type: i8.BarElementDirective, selector: "fd-bar-element", inputs: ["fullWidth", "isTitle"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
531
+ ], viewQueries: [{ propertyName: "_calendarComponent", first: true, predicate: CalendarComponent, descendants: true }, { propertyName: "_inputGroupElement", first: true, predicate: ["inputGroupComponent"], descendants: true, read: ElementRef }, { propertyName: "_inputElement", first: true, predicate: InputGroupInputDirective, descendants: true, read: ElementRef }], usesOnChanges: true, ngImport: i0, template: "<div class=\"fd-datetime\">\n <fd-popover\n [(isOpen)]=\"isOpen\"\n (isOpenChange)=\"_onOpenStateChanged($event)\"\n [focusTrapped]=\"true\"\n [focusAutoCapture]=\"false\"\n [triggers]=\"[]\"\n [disabled]=\"disabled\"\n [placement]=\"placement\"\n [appendTo]=\"appendTo\"\n >\n <fd-popover-control>\n <fd-input-group\n #inputGroupComponent\n [compact]=\"compact\"\n [state]=\"state\"\n [disabled]=\"disabled\"\n [isControl]=\"true\"\n [button]=\"true\"\n [buttonFocusable]=\"buttonFocusable\"\n glyph=\"date-time\"\n [isExpanded]=\"isOpen\"\n [glyphAriaLabel]=\"displayDatetimeToggleLabel\"\n [iconTitle]=\"displayDatetimeToggleLabel\"\n (addOnButtonClicked)=\"togglePopover()\"\n >\n <input\n type=\"text\"\n class=\"fd-input\"\n fd-input-group-input\n [attr.aria-label]=\"datetimeInputLabel\"\n [attr.id]=\"inputId\"\n [attr.aria-required]=\"required\"\n [placeholder]=\"placeholder\"\n [compact]=\"compact\"\n [disabled]=\"disabled\"\n [ngModel]=\"_inputFieldDate\"\n (keyup.enter)=\"handleInputChange($event.target.value, false)\"\n (ngModelChange)=\"handleInputChange($event, true)\"\n (blur)=\"handleOnTouched($event)\"\n />\n </fd-input-group>\n </fd-popover-control>\n <fd-popover-body\n aria-labelledby=\"fd-form-message\"\n [attr.aria-expanded]=\"isOpen\"\n [attr.aria-hidden]=\"!isOpen\"\n [style.display]=\"'block'\"\n >\n <div class=\"fd-popover__wrapper fd-datetime__wrapper\">\n <div class=\"fd-datetime__display-type-switcher\">\n <fd-segmented-button [(ngModel)]=\"_displayType\">\n <button fd-button [label]=\"displayTypeDateLabel\" value=\"date\"></button>\n <button fd-button [label]=\"displayTypeTimeLabel\" value=\"time\"></button>\n </fd-segmented-button>\n </div>\n <fd-form-message id=\"fd-form-message\" [embedded]=\"true\" *ngIf=\"_message\" [type]=\"state\">\n {{ _message }}\n </fd-form-message>\n <ng-content></ng-content>\n <div class=\"fd-datetime__container\">\n <fd-calendar\n [class.fd-datetime__active-display-type]=\"_displayType === 'date'\"\n calType=\"single\"\n [activeView]=\"activeView\"\n [disableFunction]=\"disableFunction || null\"\n [selectedDate]=\"_tempDate\"\n [escapeFocusFunction]=\"null\"\n [compact]=\"compact\"\n [markWeekends]=\"markWeekends\"\n [specialDaysRules]=\"specialDaysRules\"\n [showWeekNumbers]=\"showWeekNumbers\"\n [aggregatedYearGrid]=\"aggregatedYearGrid\"\n [yearGrid]=\"yearGrid\"\n [startingDayOfWeek]=\"startingDayOfWeek\"\n (activeViewChange)=\"handleCalendarActiveViewChange($event)\"\n (selectedDateChange)=\"handleDateChange($event)\"\n (isValidDateChange)=\"setInvalidDateInputHandler($event)\"\n ></fd-calendar>\n <div class=\"fd-datetime__separator\"></div>\n <fd-time\n *ngIf=\"isOpen\"\n [class.fd-datetime__active-display-type]=\"_displayType === 'time'\"\n [disabled]=\"disabled\"\n [elementsAtOnce]=\"5\"\n [keepTwoDigits]=\"keepTwoDigitsTime\"\n [ngModel]=\"_tempTime\"\n [compact]=\"compact\"\n [spinnerButtons]=\"spinnerButtons\"\n [meridian]=\"_meridian\"\n [displaySeconds]=\"_displaySeconds\"\n [displayMinutes]=\"_displayMinutes\"\n [displayHours]=\"_displayHours\"\n (ngModelChange)=\"handleTimeChange($event)\"\n ></fd-time>\n </div>\n <div fd-popover-body-footer *ngIf=\"showFooter\">\n <div fd-bar barDesign=\"footer\" [cozy]=\"!compact\">\n <div fd-bar-right>\n <fd-bar-element>\n <button\n fd-button\n fdType=\"emphasized\"\n label=\"OK\"\n [compact]=\"compact\"\n (click)=\"submit()\"\n ></button>\n </fd-bar-element>\n <fd-bar-element>\n <button\n fd-button\n fdType=\"transparent\"\n [compact]=\"compact\"\n label=\"Cancel\"\n (click)=\"cancel()\"\n ></button>\n </fd-bar-element>\n </div>\n </div>\n </div>\n </div>\n </fd-popover-body>\n </fd-popover>\n</div>\n", styles: [".fd-datetime{display:block}.fd-datetime__wrapper{max-height:80vh;max-width:80vw}.fd-datetime__container{display:flex;align-items:center;justify-content:center;margin:0 16px;overflow:auto}.fd-datetime__separator{background-color:#d3d3d3;width:1px;margin:42px 28px;align-self:stretch}.fd-datetime fd-time{width:auto}.fd-datetime__display-type-switcher{margin-top:1rem;display:none;width:100%;justify-content:center}@media (max-width: 960px){.fd-datetime__display-type-switcher{display:flex}.fd-datetime__wrapper{min-width:20rem}.fd-datetime__container>*:not(.fd-datetime__active-display-type){display:none}}\n"], components: [{ type: i4.PopoverComponent, selector: "fd-popover", inputs: ["title", "trigger", "fixedPosition", "id", "mobile", "mobileConfig"] }, { type: i4.PopoverControlComponent, selector: "fd-popover-control" }, { type: i5.InputGroupComponent, selector: "fd-input-group", inputs: ["inputTemplate", "placement", "compact", "required", "inline", "placeholder", "addOnText", "buttonFocusable", "type", "glyph", "button", "disabled", "readonly", "state", "isControl", "showFocus", "isExpanded", "glyphAriaLabel", "iconTitle", "ariaLabelledby"], outputs: ["addOnButtonClicked", "search"] }, { type: i4.PopoverBodyComponent, selector: "fd-popover-body" }, { type: i6.SegmentedButtonComponent, selector: "fd-segmented-button", inputs: ["toggle"] }, { type: i7.ButtonComponent, selector: "button[fd-button], a[fd-button]", inputs: ["class"], exportAs: ["fd-button"] }, { type: i3.FormMessageComponent, selector: "fd-form-message", inputs: ["type", "static", "embedded", "class"] }, { type: i8.CalendarComponent, selector: "fd-calendar", inputs: ["selectedDate", "compact", "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"] }, { type: i9.TimeComponent, selector: "fd-time", inputs: ["meridian", "validate", "keepTwoDigits", "disabled", "displaySeconds", "displayMinutes", "displayHours", "compact", "tablet", "elementsAtOnce", "time", "spinnerButtons"] }, { type: i10.BarComponent, selector: "[fd-bar]", inputs: ["class", "barDesign", "inPage", "inHomePage", "size", "cozy"] }], directives: [{ type: i11.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: i5.InputGroupInputDirective, selector: "[fd-input-group-input]", inputs: ["class", "compact"] }, { type: i11.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i11.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { type: i12.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i4.PopoverBodyFooterDirective, selector: "[fdPopoverBodyFooter], [fd-popover-body-footer]" }, { type: i10.BarRightDirective, selector: "[fd-bar-right]" }, { type: i10.BarElementDirective, selector: "fd-bar-element", inputs: ["fullWidth", "isTitle"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
524
532
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.4", ngImport: i0, type: DatetimePickerComponent, decorators: [{
525
533
  type: Component,
526
534
  args: [{ selector: 'fd-datetime-picker', host: {
@@ -538,7 +546,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.4", ngImpor
538
546
  },
539
547
  PopoverFormMessageService,
540
548
  PopoverService
541
- ], encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"fd-datetime\">\n <fd-popover\n [(isOpen)]=\"isOpen\"\n (isOpenChange)=\"_onOpenStateChanged($event)\"\n [focusTrapped]=\"true\"\n [focusAutoCapture]=\"false\"\n [triggers]=\"[]\"\n [disabled]=\"disabled\"\n [placement]=\"placement\"\n [appendTo]=\"appendTo\"\n >\n <fd-popover-control>\n <fd-input-group\n #inputGroupComponent\n [compact]=\"compact\"\n [state]=\"state\"\n [disabled]=\"disabled\"\n [isControl]=\"true\"\n [button]=\"true\"\n [buttonFocusable]=\"buttonFocusable\"\n glyph=\"date-time\"\n [isExpanded]=\"isOpen\"\n [glyphAriaLabel]=\"displayDatetimeToggleLabel\"\n [iconTitle]=\"displayDatetimeToggleLabel\"\n (addOnButtonClicked)=\"togglePopover()\"\n >\n <input\n type=\"text\"\n class=\"fd-input\"\n fd-input-group-input\n [attr.aria-label]=\"datetimeInputLabel\"\n [attr.id]=\"inputId\"\n [attr.aria-required]=\"required\"\n [placeholder]=\"placeholder\"\n [compact]=\"compact\"\n [disabled]=\"disabled\"\n [ngModel]=\"_inputFieldDate\"\n (keyup.enter)=\"handleInputChange($event.target.value, false)\"\n (ngModelChange)=\"handleInputChange($event, true)\"\n (blur)=\"handleOnTouched($event)\"\n />\n </fd-input-group>\n </fd-popover-control>\n <fd-popover-body\n aria-labelledby=\"fd-form-message\"\n [attr.aria-expanded]=\"isOpen\"\n [attr.aria-hidden]=\"!isOpen\"\n [style.display]=\"'block'\"\n >\n <div class=\"fd-popover__wrapper fd-datetime__wrapper\">\n <fd-form-message id=\"fd-form-message\" [embedded]=\"true\" *ngIf=\"_message\" [type]=\"state\">\n {{ _message }}\n </fd-form-message>\n <ng-content></ng-content>\n <div class=\"fd-datetime__container\">\n <fd-calendar\n calType=\"single\"\n [activeView]=\"activeView\"\n [disableFunction]=\"disableFunction || null\"\n [selectedDate]=\"_tempDate\"\n [escapeFocusFunction]=\"null\"\n [compact]=\"compact\"\n [markWeekends]=\"markWeekends\"\n [specialDaysRules]=\"specialDaysRules\"\n [showWeekNumbers]=\"showWeekNumbers\"\n [aggregatedYearGrid]=\"aggregatedYearGrid\"\n [yearGrid]=\"yearGrid\"\n [startingDayOfWeek]=\"startingDayOfWeek\"\n (activeViewChange)=\"handleCalendarActiveViewChange($event)\"\n (selectedDateChange)=\"handleDateChange($event)\"\n (isValidDateChange)=\"setInvalidDateInputHandler($event)\"\n ></fd-calendar>\n <div class=\"fd-datetime__separator\"></div>\n <fd-time\n *ngIf=\"isOpen\"\n [disabled]=\"disabled\"\n [elementsAtOnce]=\"5\"\n [keepTwoDigits]=\"keepTwoDigitsTime\"\n [ngModel]=\"_tempTime\"\n [compact]=\"compact\"\n [spinnerButtons]=\"spinnerButtons\"\n [meridian]=\"_meridian\"\n [displaySeconds]=\"_displaySeconds\"\n [displayMinutes]=\"_displayMinutes\"\n [displayHours]=\"_displayHours\"\n (ngModelChange)=\"handleTimeChange($event)\"\n ></fd-time>\n </div>\n <div fd-popover-body-footer *ngIf=\"showFooter\">\n <div fd-bar barDesign=\"footer\" [cozy]=\"!compact\">\n <div fd-bar-right>\n <fd-bar-element>\n <button\n fd-button\n fdType=\"emphasized\"\n label=\"OK\"\n [compact]=\"compact\"\n (click)=\"submit()\"\n ></button>\n </fd-bar-element>\n <fd-bar-element>\n <button\n fd-button\n fdType=\"transparent\"\n [compact]=\"compact\"\n label=\"Cancel\"\n (click)=\"cancel()\"\n ></button>\n </fd-bar-element>\n </div>\n </div>\n </div>\n </div>\n </fd-popover-body>\n </fd-popover>\n</div>\n", styles: [".fd-datetime{display:block}.fd-datetime__wrapper{max-height:80vh}.fd-datetime__container{display:flex;align-items:center;margin:0 16px}.fd-datetime__separator{background-color:#d3d3d3;width:1px;margin:42px 28px;align-self:stretch}.fd-datetime fd-time{width:auto}\n"] }]
549
+ ], encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"fd-datetime\">\n <fd-popover\n [(isOpen)]=\"isOpen\"\n (isOpenChange)=\"_onOpenStateChanged($event)\"\n [focusTrapped]=\"true\"\n [focusAutoCapture]=\"false\"\n [triggers]=\"[]\"\n [disabled]=\"disabled\"\n [placement]=\"placement\"\n [appendTo]=\"appendTo\"\n >\n <fd-popover-control>\n <fd-input-group\n #inputGroupComponent\n [compact]=\"compact\"\n [state]=\"state\"\n [disabled]=\"disabled\"\n [isControl]=\"true\"\n [button]=\"true\"\n [buttonFocusable]=\"buttonFocusable\"\n glyph=\"date-time\"\n [isExpanded]=\"isOpen\"\n [glyphAriaLabel]=\"displayDatetimeToggleLabel\"\n [iconTitle]=\"displayDatetimeToggleLabel\"\n (addOnButtonClicked)=\"togglePopover()\"\n >\n <input\n type=\"text\"\n class=\"fd-input\"\n fd-input-group-input\n [attr.aria-label]=\"datetimeInputLabel\"\n [attr.id]=\"inputId\"\n [attr.aria-required]=\"required\"\n [placeholder]=\"placeholder\"\n [compact]=\"compact\"\n [disabled]=\"disabled\"\n [ngModel]=\"_inputFieldDate\"\n (keyup.enter)=\"handleInputChange($event.target.value, false)\"\n (ngModelChange)=\"handleInputChange($event, true)\"\n (blur)=\"handleOnTouched($event)\"\n />\n </fd-input-group>\n </fd-popover-control>\n <fd-popover-body\n aria-labelledby=\"fd-form-message\"\n [attr.aria-expanded]=\"isOpen\"\n [attr.aria-hidden]=\"!isOpen\"\n [style.display]=\"'block'\"\n >\n <div class=\"fd-popover__wrapper fd-datetime__wrapper\">\n <div class=\"fd-datetime__display-type-switcher\">\n <fd-segmented-button [(ngModel)]=\"_displayType\">\n <button fd-button [label]=\"displayTypeDateLabel\" value=\"date\"></button>\n <button fd-button [label]=\"displayTypeTimeLabel\" value=\"time\"></button>\n </fd-segmented-button>\n </div>\n <fd-form-message id=\"fd-form-message\" [embedded]=\"true\" *ngIf=\"_message\" [type]=\"state\">\n {{ _message }}\n </fd-form-message>\n <ng-content></ng-content>\n <div class=\"fd-datetime__container\">\n <fd-calendar\n [class.fd-datetime__active-display-type]=\"_displayType === 'date'\"\n calType=\"single\"\n [activeView]=\"activeView\"\n [disableFunction]=\"disableFunction || null\"\n [selectedDate]=\"_tempDate\"\n [escapeFocusFunction]=\"null\"\n [compact]=\"compact\"\n [markWeekends]=\"markWeekends\"\n [specialDaysRules]=\"specialDaysRules\"\n [showWeekNumbers]=\"showWeekNumbers\"\n [aggregatedYearGrid]=\"aggregatedYearGrid\"\n [yearGrid]=\"yearGrid\"\n [startingDayOfWeek]=\"startingDayOfWeek\"\n (activeViewChange)=\"handleCalendarActiveViewChange($event)\"\n (selectedDateChange)=\"handleDateChange($event)\"\n (isValidDateChange)=\"setInvalidDateInputHandler($event)\"\n ></fd-calendar>\n <div class=\"fd-datetime__separator\"></div>\n <fd-time\n *ngIf=\"isOpen\"\n [class.fd-datetime__active-display-type]=\"_displayType === 'time'\"\n [disabled]=\"disabled\"\n [elementsAtOnce]=\"5\"\n [keepTwoDigits]=\"keepTwoDigitsTime\"\n [ngModel]=\"_tempTime\"\n [compact]=\"compact\"\n [spinnerButtons]=\"spinnerButtons\"\n [meridian]=\"_meridian\"\n [displaySeconds]=\"_displaySeconds\"\n [displayMinutes]=\"_displayMinutes\"\n [displayHours]=\"_displayHours\"\n (ngModelChange)=\"handleTimeChange($event)\"\n ></fd-time>\n </div>\n <div fd-popover-body-footer *ngIf=\"showFooter\">\n <div fd-bar barDesign=\"footer\" [cozy]=\"!compact\">\n <div fd-bar-right>\n <fd-bar-element>\n <button\n fd-button\n fdType=\"emphasized\"\n label=\"OK\"\n [compact]=\"compact\"\n (click)=\"submit()\"\n ></button>\n </fd-bar-element>\n <fd-bar-element>\n <button\n fd-button\n fdType=\"transparent\"\n [compact]=\"compact\"\n label=\"Cancel\"\n (click)=\"cancel()\"\n ></button>\n </fd-bar-element>\n </div>\n </div>\n </div>\n </div>\n </fd-popover-body>\n </fd-popover>\n</div>\n", styles: [".fd-datetime{display:block}.fd-datetime__wrapper{max-height:80vh;max-width:80vw}.fd-datetime__container{display:flex;align-items:center;justify-content:center;margin:0 16px;overflow:auto}.fd-datetime__separator{background-color:#d3d3d3;width:1px;margin:42px 28px;align-self:stretch}.fd-datetime fd-time{width:auto}.fd-datetime__display-type-switcher{margin-top:1rem;display:none;width:100%;justify-content:center}@media (max-width: 960px){.fd-datetime__display-type-switcher{display:flex}.fd-datetime__wrapper{min-width:20rem}.fd-datetime__container>*:not(.fd-datetime__active-display-type){display:none}}\n"] }]
542
550
  }], ctorParameters: function () {
543
551
  return [{ type: i0.ElementRef }, { type: i0.ChangeDetectorRef }, { type: i1.ContentDensityService, decorators: [{
544
552
  type: Optional
@@ -590,6 +598,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.4", ngImpor
590
598
  type: Input
591
599
  }], displayDatetimeToggleLabel: [{
592
600
  type: Input
601
+ }], displayTypeDateLabel: [{
602
+ type: Input
603
+ }], displayTypeTimeLabel: [{
604
+ type: Input
593
605
  }], allowNull: [{
594
606
  type: Input
595
607
  }], keepTwoDigitsTime: [{
@@ -653,6 +665,7 @@ DatetimePickerModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", ve
653
665
  InputGroupModule,
654
666
  ButtonModule,
655
667
  BarModule,
668
+ SegmentedButtonModule,
656
669
  FormMessageModule], exports: [DatetimePickerComponent] });
657
670
  DatetimePickerModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.2.4", ngImport: i0, type: DatetimePickerModule, imports: [[
658
671
  CommonModule,
@@ -664,6 +677,7 @@ DatetimePickerModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", ve
664
677
  InputGroupModule,
665
678
  ButtonModule,
666
679
  BarModule,
680
+ SegmentedButtonModule,
667
681
  FormMessageModule
668
682
  ]] });
669
683
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.4", ngImport: i0, type: DatetimePickerModule, decorators: [{
@@ -680,6 +694,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.4", ngImpor
680
694
  InputGroupModule,
681
695
  ButtonModule,
682
696
  BarModule,
697
+ SegmentedButtonModule,
683
698
  FormMessageModule
684
699
  ],
685
700
  exports: [DatetimePickerComponent]
@@ -1 +1 @@
1
- {"version":3,"file":"fundamental-ngx-core-datetime-picker.mjs","sources":["../../../../../libs/core/src/lib/datetime-picker/errors.ts","../../../../../libs/core/src/lib/datetime-picker/datetime-picker.component.ts","../../../../../libs/core/src/lib/datetime-picker/datetime-picker.component.html","../../../../../libs/core/src/lib/datetime-picker/datetime-picker.module.ts","../../../../../libs/core/src/lib/datetime-picker/fundamental-ngx-core-datetime-picker.ts"],"sourcesContent":["export function createMissingDateImplementationError(provider: string): Error {\n return Error(\n `FdDatetimePicker: 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 ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ElementRef,\n EventEmitter,\n forwardRef,\n Input,\n OnDestroy,\n OnInit,\n Optional,\n Output,\n ViewChild,\n ViewEncapsulation,\n Inject,\n OnChanges,\n AfterViewInit\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALIDATORS, NG_VALUE_ACCESSOR, Validator } from '@angular/forms';\nimport { Subject, Subscription } from 'rxjs';\nimport { filter, takeUntil } from 'rxjs/operators';\n\nimport { Placement, SpecialDayRule, FormStates } from '@fundamental-ngx/core/shared';\nimport { DatetimeAdapter, DateTimeFormats, DATE_TIME_FORMATS } from '@fundamental-ngx/core/datetime';\nimport { CalendarComponent, DaysOfWeek, FdCalendarView, CalendarYearGrid } from '@fundamental-ngx/core/calendar';\nimport { PopoverFormMessageService } from '@fundamental-ngx/core/form';\nimport { PopoverService } from '@fundamental-ngx/core/popover';\nimport { ContentDensityService } from '@fundamental-ngx/core/utils';\nimport { InputGroupInputDirective } from '@fundamental-ngx/core/input-group';\n\nimport { createMissingDateImplementationError } from './errors';\nimport { coerceBooleanProperty } from '@angular/cdk/coercion';\n\n/**\n * The datetime picker component is an opinionated composition of the fd-popover,\n * fd-calendar and fd-time components to accomplish the UI pattern for picking a date and time.\n * Supports Angular Forms.\n * ```html\n * <fd-date-time-picker [(ngModel)]=\"dateTime\"></fd-date-time-picker>\n * ```\n */\n@Component({\n selector: 'fd-datetime-picker',\n templateUrl: './datetime-picker.component.html',\n styleUrls: ['./datetime-picker.component.scss'],\n host: {\n '(blur)': 'handleOnTouched()'\n },\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => DatetimePickerComponent),\n multi: true\n },\n {\n provide: NG_VALIDATORS,\n useExisting: forwardRef(() => DatetimePickerComponent),\n multi: true\n },\n PopoverFormMessageService,\n PopoverService\n ],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class DatetimePickerComponent<D>\n implements OnInit, OnDestroy, OnChanges, AfterViewInit, ControlValueAccessor, Validator\n{\n /** Placeholder for the inner input element. */\n @Input()\n placeholder = '';\n\n /** Whether the component should be in compact mode. */\n @Input()\n compact?: boolean;\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 component is disabled. */\n @Input()\n disabled: boolean;\n\n /** Id attribute for input element inside DateTimePicker component */\n @Input()\n inputId: string;\n\n /** If it is mandatory field */\n @Input()\n required = false;\n\n /**\n * Whether the time component should be meridian (am/pm).\n * Default value is based on the current locale format option\n * */\n @Input()\n meridian: boolean;\n\n /**\n * Whether the time component shows seconds.\n * Default value is based on the current locale format option\n * */\n @Input()\n displaySeconds: boolean;\n\n /** Text displayed in message */\n @Input()\n set message(message: string) {\n this._message = message;\n this._popoverFormMessage.message = message;\n }\n /** @hidden */\n _message: string = 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 /** @hidden */\n _messageTriggers: string[] = ['focusin', 'focusout'];\n\n /**\n * Whether the time component shows minutes.\n * Default value is based on the current locale format option\n * */\n @Input()\n displayMinutes: boolean;\n\n /**\n * Whether the time component shows hours.\n * Default value is based on the current locale format option\n * */\n @Input()\n displayHours: boolean;\n\n /** Whether to perform visual validation on the picker input. */\n @Input()\n useValidation = true;\n\n /** Current selected date. Two-way binding is supported. */\n @Input()\n date: D;\n\n /** Whether the popover is open. Two-way binding is supported. */\n @Input()\n isOpen = false;\n\n /** The disableFunction for the calendar. */\n @Input()\n startingDayOfWeek: DaysOfWeek = 1;\n\n /** Actually shown active view one of 'day' | 'month' | 'year' in calendar component*/\n @Input()\n public activeView: FdCalendarView = 'day';\n\n /** Aria label for the datetime picker input. */\n @Input()\n datetimeInputLabel = 'Datetime input';\n\n /** Aria label for the button to show/hide the calendar. */\n @Input()\n displayDatetimeToggleLabel = 'Display calendar toggle';\n\n /** Whether a null input is considered valid. */\n @Input()\n allowNull = true;\n\n /**\n * @Input when set to true time component will use 2 digits for each number.\n * For example 9 will become 09\n * but 12 will be kept as 12.\n * Only uses by time component and does not change input format\n */\n @Input() keepTwoDigitsTime = false;\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: FormStates) {\n this._state = state;\n this._popoverFormMessage.messageType = state;\n }\n get state(): FormStates {\n if (this._state == null && this.useValidation && this.isInvalidDateInput) {\n return 'error';\n }\n return this._state;\n }\n /** @hidden */\n private _state: FormStates = null;\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 /** @Input Whether to show spinner buttons */\n @Input()\n spinnerButtons = true;\n\n /**\n * Whether user wants to show week numbers next to days\n */\n @Input()\n showWeekNumbers = true;\n\n /** Whether or not to show the datetime picker footer with OK/cancel buttons. */\n @Input()\n showFooter = true;\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 get processInputOnBlur(): boolean {\n return this._processInputOnBlur;\n }\n\n /** @hidden */\n _processInputOnBlur = false;\n\n /** Event emitted when the state of the isOpen property changes. */\n @Output()\n isOpenChange = new EventEmitter<boolean>();\n\n /** Event thrown every time calendar active view is changed */\n @Output()\n public readonly activeViewChange: EventEmitter<FdCalendarView> = new EventEmitter<FdCalendarView>();\n\n /** Event emitted when the date changes. This can be a time or day change. */\n @Output()\n readonly dateChange: EventEmitter<D> = new EventEmitter<D>();\n\n /** Event emitted when the day changes from the calendar. */\n @Output()\n readonly calendarChange: EventEmitter<D> = new EventEmitter<D>();\n\n /** Event emitted when the time changes from the time component. */\n @Output()\n readonly timeChange: EventEmitter<D> = new EventEmitter<D>();\n\n /** Event emitted when popover closes. */\n @Output()\n // eslint-disable-next-line @angular-eslint/no-output-on-prefix\n readonly onClose: EventEmitter<void> = new EventEmitter<void>();\n\n /** Event emitted when datepicker changes it's \"touched\" state. */\n @Output()\n readonly touched: EventEmitter<void> = new EventEmitter<void>();\n\n /** Indicates when datetime input is in invalid state. */\n get isInvalidDateInput(): boolean {\n return this._isInvalidDateInput && this._touched;\n }\n\n /** @hidden Reference to the inner calendar component. */\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;\n\n /**\n * @hidden\n * Date of the input field. Internal use.\n * For programmatic selection, use two-way binding on the date input.\n */\n _inputFieldDate: string = null;\n\n /** @hidden */\n _isInvalidDateInput = false;\n\n /** @hidden The temporary Time object for use before 'OK' is pressed. Internal use. */\n _tempTime: D;\n\n /** @hidden The temporary CalendarDay object for use before 'OK' is pressed. Internal use. */\n _tempDate: D;\n\n /** @hidden */\n _meridian: boolean;\n\n /** @hidden */\n _displaySeconds: boolean;\n\n /** @hidden */\n _displayMinutes: boolean;\n\n /** @hidden */\n _displayHours: boolean;\n\n /** @hidden */\n private readonly _onDestroy$: Subject<void> = new Subject<void>();\n\n /** @hidden */\n private _subscriptions = new Subscription();\n\n /** @hidden */\n private _touched = false;\n\n /** @hidden */\n onChange: (value: D) => void = () => {};\n\n /** @hidden */\n onTouched = (): void => {};\n\n /**\n * Function used to disable certain dates in the calendar.\n * @param fdDate FdDate\n */\n @Input()\n disableFunction: (value: D) => boolean = () => false;\n\n /** @hidden */\n constructor(\n private _elRef: ElementRef,\n private _changeDetRef: ChangeDetectorRef,\n @Optional() private _contentDensityService: ContentDensityService,\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 // default model value\n this.date = _dateTimeAdapter.now();\n }\n\n /** @hidden */\n ngOnChanges(changes): void {\n if (changes.date) {\n this._setTempDateTime();\n }\n\n if (['displayHours', 'displayMinutes', 'displaySeconds', 'meridian'].some((input) => input in changes)) {\n this._calculateTimeOptions();\n }\n }\n\n /** @hidden */\n ngOnInit(): void {\n if (this.date) {\n this._setTempDateTime();\n }\n\n this._calculateTimeOptions();\n\n this._dateTimeAdapter.localeChanges\n .pipe(\n takeUntil(this._onDestroy$),\n filter(() => this._inputFieldDate !== '')\n )\n .subscribe(() => {\n this._setInput(this.date);\n this._calculateTimeOptions();\n this._changeDetRef.detectChanges();\n });\n\n if (this.compact === undefined && this._contentDensityService) {\n this._subscriptions.add(\n this._contentDensityService._isCompactDensity.subscribe((isCompact) => {\n this.compact = isCompact;\n this._changeDetRef.markForCheck();\n })\n );\n }\n }\n\n /** @hidden */\n ngOnDestroy(): void {\n this._subscriptions.unsubscribe();\n this._onDestroy$.next();\n this._onDestroy$.complete();\n }\n\n /** @hidden */\n ngAfterViewInit(): void {\n this._InitialiseVariablesInMessageService();\n // update bindings after rendering\n // is needed to preperly reflect error state\n setTimeout(() => {\n this._changeDetRef.markForCheck();\n });\n }\n\n /**\n * @hidden\n * Function that implements Validator Interface, adds validation support for forms\n */\n validate(): { [key: string]: any } {\n return this.isCurrentModelValid() && !this._isInvalidDateInput\n ? null\n : {\n dateValidation: {\n valid: false\n }\n };\n }\n\n /** Toggles the popover. */\n togglePopover(): void {\n this.handleOnTouched();\n if (this.isOpen) {\n this.closePopover();\n } else {\n this.openPopover();\n }\n }\n\n /**\n * Method that handles calendar active view change and throws event.\n */\n handleCalendarActiveViewChange(activeView: FdCalendarView): void {\n this.activeViewChange.emit(activeView);\n }\n\n /** Method that handles blur events on datetime picker input */\n handleOnTouched(event?: FocusEvent): void {\n this._touched = true;\n this.onTouched();\n this.touched.next();\n if (event) {\n this.handleInputChange((<HTMLInputElement>event.target).value, false);\n }\n }\n\n /** Opens the popover. */\n openPopover(): void {\n if (!this.isOpen && !this.disabled) {\n this.handleOnTouched();\n this.isOpen = true;\n this._onOpenStateChanged(this.isOpen);\n }\n }\n\n /** Closes the popover and refresh model */\n closePopover(): void {\n if (this.isOpen) {\n this.onClose.emit();\n this.isOpen = false;\n this._onOpenStateChanged(this.isOpen);\n }\n }\n\n /** @hidden */\n setInvalidDateInputHandler(isInvalid: boolean): void {\n this._isInvalidDateInput = isInvalid;\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._changeDetRef.detectChanges();\n }\n\n /**\n * @hidden\n * Function that provides support for ControlValueAccessor that allows to use [(ngModel)] or forms\n */\n writeValue(selected: D): void {\n this.date = selected;\n this._isInvalidDateInput = !this._isModelValid(this.date);\n if (this.isCurrentModelValid()) {\n this._setTempDateTime();\n this._refreshCurrentlyDisplayedCalendarDate(this.date);\n }\n this._setInput(this.date);\n }\n\n /**\n * @hidden\n * Method that is triggered by events from calendar component, when there is selected date changed.\n * If invalid time model is detected, it takes time model data from TimeComponent.\n */\n handleDateChange(date: D): void {\n this._tempDate = date;\n if (!this.showFooter) {\n this.submit();\n }\n }\n\n /**\n * @hidden\n * Method that is triggered by events from time component, when there is selected time changed\n */\n handleTimeChange(time: D): void {\n this._tempTime = time;\n if (!this.showFooter) {\n this.submit();\n }\n }\n\n /**\n * @hidden\n * Method that is triggered when 'OK' button is pressed.\n */\n submit(): void {\n const currentDate = this._tempDate;\n const currentTime = this._tempTime;\n\n this.date = this._dateTimeAdapter.setTime(\n currentDate,\n this._dateTimeAdapter.getHours(currentTime),\n this._dateTimeAdapter.getMinutes(currentTime),\n this._dateTimeAdapter.getSeconds(currentTime)\n );\n\n this._isInvalidDateInput = !this.isCurrentModelValid();\n\n this._setInput(this.date);\n\n this.onChange(this.date);\n\n if (this.showFooter) {\n this.closePopover();\n this._changeDetRef.detectChanges();\n }\n }\n\n /**\n * @hidden\n * Function that is called when 'Cancel' button is pressed.\n */\n cancel(): void {\n this._tempDate = this.date;\n this._tempTime = this.date;\n this.closePopover();\n }\n\n /**\n * @hidden\n * Looks like no one uses it. Should be removed?\n */\n focusArrowLeft(): void {\n if (this._elRef.nativeElement.querySelector('#' + this._calendarComponent.id + '-left-arrow')) {\n this._elRef.nativeElement.querySelector('#' + this._calendarComponent.id + '-left-arrow').focus();\n }\n }\n\n /**\n * @hidden\n * Method, which is responsible for transforming string to datetime, depending on type or\n * validation the results are different. It also changes to state of _isInvalidDateInput.\n */\n handleInputChange(inputStr: 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._inputFieldDate = inputStr ?? '';\n if (!inputStr) {\n this._isInvalidDateInput = !this.allowNull;\n this.onChange(null);\n return;\n }\n this.date = this._dateTimeAdapter.parse(inputStr, this._dateTimeFormats.parse.dateTimeInput);\n this._isInvalidDateInput = !this._isModelValid(this.date);\n\n if (!this._isInvalidDateInput) {\n this._setTempDateTime();\n this._refreshCurrentlyDisplayedCalendarDate(this.date);\n }\n this.onChange(this.date);\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 }\n // focus calendar cell on opening\n if (isOpen && this._calendarComponent) {\n this._calendarComponent.initialFocus();\n }\n }\n\n /** Method that provides information if model selected date/dates have properly types and are valid */\n isCurrentModelValid(): boolean {\n return this._isModelValid(this.date);\n }\n\n /** Method that provides information if FdDateTime passed as arg has properly types and is valid */\n private _isModelValid(date: D): boolean {\n return this._dateTimeAdapter.isValid(date);\n }\n\n private _setInput(dateTime: D): void {\n this._inputFieldDate = dateTime && this._isModelValid ? this._formatDateTime(dateTime) : '';\n this._changeDetRef.detectChanges();\n }\n\n /** @hidden */\n private _refreshCurrentlyDisplayedCalendarDate(date: D): void {\n if (this._calendarComponent) {\n this._calendarComponent.setCurrentlyDisplayed(date);\n }\n }\n\n /**\n * @hidden\n * Format date time entity.\n */\n private _formatDateTime(dateTime: D): string {\n const formattedDate: string = this._dateTimeAdapter.format(\n dateTime,\n this._dateTimeFormats.display.dateTimeInput\n );\n return formattedDate || '';\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 _setTempDateTime(): void {\n this._tempDate = this.date;\n this._tempTime = this.date;\n }\n\n /** @hidden */\n private _calculateTimeOptions(): void {\n const format = this._dateTimeFormats.display.dateTimeInput;\n\n // default meridian option based on format option\n this._meridian =\n this.meridian != null ? this.meridian : this._dateTimeAdapter.isTimeFormatIncludesDayPeriod(format);\n\n // default seconds option based on format option\n this._displaySeconds =\n this.displaySeconds != null\n ? this.displaySeconds\n : this._dateTimeAdapter.isTimeFormatIncludesSeconds(format);\n\n // default minutes option based on format option\n this._displayMinutes =\n this.displayMinutes != null\n ? this.displayMinutes\n : this._dateTimeAdapter.isTimeFormatIncludesMinutes(format);\n\n // default hours option based on format option\n this._displayHours =\n this.displayHours != null ? this.displayHours : this._dateTimeAdapter.isTimeFormatIncludesHours(format);\n }\n}\n","<div class=\"fd-datetime\">\n <fd-popover\n [(isOpen)]=\"isOpen\"\n (isOpenChange)=\"_onOpenStateChanged($event)\"\n [focusTrapped]=\"true\"\n [focusAutoCapture]=\"false\"\n [triggers]=\"[]\"\n [disabled]=\"disabled\"\n [placement]=\"placement\"\n [appendTo]=\"appendTo\"\n >\n <fd-popover-control>\n <fd-input-group\n #inputGroupComponent\n [compact]=\"compact\"\n [state]=\"state\"\n [disabled]=\"disabled\"\n [isControl]=\"true\"\n [button]=\"true\"\n [buttonFocusable]=\"buttonFocusable\"\n glyph=\"date-time\"\n [isExpanded]=\"isOpen\"\n [glyphAriaLabel]=\"displayDatetimeToggleLabel\"\n [iconTitle]=\"displayDatetimeToggleLabel\"\n (addOnButtonClicked)=\"togglePopover()\"\n >\n <input\n type=\"text\"\n class=\"fd-input\"\n fd-input-group-input\n [attr.aria-label]=\"datetimeInputLabel\"\n [attr.id]=\"inputId\"\n [attr.aria-required]=\"required\"\n [placeholder]=\"placeholder\"\n [compact]=\"compact\"\n [disabled]=\"disabled\"\n [ngModel]=\"_inputFieldDate\"\n (keyup.enter)=\"handleInputChange($event.target.value, false)\"\n (ngModelChange)=\"handleInputChange($event, true)\"\n (blur)=\"handleOnTouched($event)\"\n />\n </fd-input-group>\n </fd-popover-control>\n <fd-popover-body\n aria-labelledby=\"fd-form-message\"\n [attr.aria-expanded]=\"isOpen\"\n [attr.aria-hidden]=\"!isOpen\"\n [style.display]=\"'block'\"\n >\n <div class=\"fd-popover__wrapper fd-datetime__wrapper\">\n <fd-form-message id=\"fd-form-message\" [embedded]=\"true\" *ngIf=\"_message\" [type]=\"state\">\n {{ _message }}\n </fd-form-message>\n <ng-content></ng-content>\n <div class=\"fd-datetime__container\">\n <fd-calendar\n calType=\"single\"\n [activeView]=\"activeView\"\n [disableFunction]=\"disableFunction || null\"\n [selectedDate]=\"_tempDate\"\n [escapeFocusFunction]=\"null\"\n [compact]=\"compact\"\n [markWeekends]=\"markWeekends\"\n [specialDaysRules]=\"specialDaysRules\"\n [showWeekNumbers]=\"showWeekNumbers\"\n [aggregatedYearGrid]=\"aggregatedYearGrid\"\n [yearGrid]=\"yearGrid\"\n [startingDayOfWeek]=\"startingDayOfWeek\"\n (activeViewChange)=\"handleCalendarActiveViewChange($event)\"\n (selectedDateChange)=\"handleDateChange($event)\"\n (isValidDateChange)=\"setInvalidDateInputHandler($event)\"\n ></fd-calendar>\n <div class=\"fd-datetime__separator\"></div>\n <fd-time\n *ngIf=\"isOpen\"\n [disabled]=\"disabled\"\n [elementsAtOnce]=\"5\"\n [keepTwoDigits]=\"keepTwoDigitsTime\"\n [ngModel]=\"_tempTime\"\n [compact]=\"compact\"\n [spinnerButtons]=\"spinnerButtons\"\n [meridian]=\"_meridian\"\n [displaySeconds]=\"_displaySeconds\"\n [displayMinutes]=\"_displayMinutes\"\n [displayHours]=\"_displayHours\"\n (ngModelChange)=\"handleTimeChange($event)\"\n ></fd-time>\n </div>\n <div fd-popover-body-footer *ngIf=\"showFooter\">\n <div fd-bar barDesign=\"footer\" [cozy]=\"!compact\">\n <div fd-bar-right>\n <fd-bar-element>\n <button\n fd-button\n fdType=\"emphasized\"\n label=\"OK\"\n [compact]=\"compact\"\n (click)=\"submit()\"\n ></button>\n </fd-bar-element>\n <fd-bar-element>\n <button\n fd-button\n fdType=\"transparent\"\n [compact]=\"compact\"\n label=\"Cancel\"\n (click)=\"cancel()\"\n ></button>\n </fd-bar-element>\n </div>\n </div>\n </div>\n </div>\n </fd-popover-body>\n </fd-popover>\n</div>\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';\nimport { DatetimePickerComponent } from './datetime-picker.component';\nimport { TimeModule } from '@fundamental-ngx/core/time';\nimport { ButtonModule } from '@fundamental-ngx/core/button';\nimport { InputGroupModule } from '@fundamental-ngx/core/input-group';\nimport { BarModule } from '@fundamental-ngx/core/bar';\nimport { FormMessageModule } from '@fundamental-ngx/core/form';\n\n@NgModule({\n declarations: [DatetimePickerComponent],\n imports: [\n CommonModule,\n IconModule,\n PopoverModule,\n CalendarModule,\n FormsModule,\n TimeModule,\n InputGroupModule,\n ButtonModule,\n BarModule,\n FormMessageModule\n ],\n exports: [DatetimePickerComponent]\n})\nexport class DatetimePickerModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"fundamental-ngx-core-datetime-picker.mjs","sources":["../../../../../libs/core/src/lib/datetime-picker/errors.ts","../../../../../libs/core/src/lib/datetime-picker/datetime-picker.component.ts","../../../../../libs/core/src/lib/datetime-picker/datetime-picker.component.html","../../../../../libs/core/src/lib/datetime-picker/datetime-picker.module.ts","../../../../../libs/core/src/lib/datetime-picker/fundamental-ngx-core-datetime-picker.ts"],"sourcesContent":["export function createMissingDateImplementationError(provider: string): Error {\n return Error(\n `FdDatetimePicker: 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 ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ElementRef,\n EventEmitter,\n forwardRef,\n Input,\n OnDestroy,\n OnInit,\n Optional,\n Output,\n ViewChild,\n ViewEncapsulation,\n Inject,\n OnChanges,\n AfterViewInit\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALIDATORS, NG_VALUE_ACCESSOR, Validator } from '@angular/forms';\nimport { Subject, Subscription } from 'rxjs';\nimport { filter, takeUntil } from 'rxjs/operators';\n\nimport { Placement, SpecialDayRule, FormStates } from '@fundamental-ngx/core/shared';\nimport { DatetimeAdapter, DateTimeFormats, DATE_TIME_FORMATS } from '@fundamental-ngx/core/datetime';\nimport { CalendarComponent, DaysOfWeek, FdCalendarView, CalendarYearGrid } from '@fundamental-ngx/core/calendar';\nimport { PopoverFormMessageService } from '@fundamental-ngx/core/form';\nimport { PopoverService } from '@fundamental-ngx/core/popover';\nimport { ContentDensityService } from '@fundamental-ngx/core/utils';\nimport { InputGroupInputDirective } from '@fundamental-ngx/core/input-group';\n\nimport { createMissingDateImplementationError } from './errors';\nimport { coerceBooleanProperty } from '@angular/cdk/coercion';\n\n/**\n * The datetime picker component is an opinionated composition of the fd-popover,\n * fd-calendar and fd-time components to accomplish the UI pattern for picking a date and time.\n * Supports Angular Forms.\n * ```html\n * <fd-date-time-picker [(ngModel)]=\"dateTime\"></fd-date-time-picker>\n * ```\n */\n@Component({\n selector: 'fd-datetime-picker',\n templateUrl: './datetime-picker.component.html',\n styleUrls: ['./datetime-picker.component.scss'],\n host: {\n '(blur)': 'handleOnTouched()'\n },\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => DatetimePickerComponent),\n multi: true\n },\n {\n provide: NG_VALIDATORS,\n useExisting: forwardRef(() => DatetimePickerComponent),\n multi: true\n },\n PopoverFormMessageService,\n PopoverService\n ],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class DatetimePickerComponent<D>\n implements OnInit, OnDestroy, OnChanges, AfterViewInit, ControlValueAccessor, Validator\n{\n /** Placeholder for the inner input element. */\n @Input()\n placeholder = '';\n\n /** Whether the component should be in compact mode. */\n @Input()\n compact?: boolean;\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 component is disabled. */\n @Input()\n disabled: boolean;\n\n /** Id attribute for input element inside DateTimePicker component */\n @Input()\n inputId: string;\n\n /** If it is mandatory field */\n @Input()\n required = false;\n\n /**\n * Whether the time component should be meridian (am/pm).\n * Default value is based on the current locale format option\n * */\n @Input()\n meridian: boolean;\n\n /**\n * Whether the time component shows seconds.\n * Default value is based on the current locale format option\n * */\n @Input()\n displaySeconds: boolean;\n\n /** Text displayed in message */\n @Input()\n set message(message: string) {\n this._message = message;\n this._popoverFormMessage.message = message;\n }\n /** @hidden */\n _message: string = 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 /** @hidden */\n _messageTriggers: string[] = ['focusin', 'focusout'];\n\n /**\n * Whether the time component shows minutes.\n * Default value is based on the current locale format option\n * */\n @Input()\n displayMinutes: boolean;\n\n /**\n * Whether the time component shows hours.\n * Default value is based on the current locale format option\n * */\n @Input()\n displayHours: boolean;\n\n /** Whether to perform visual validation on the picker input. */\n @Input()\n useValidation = true;\n\n /** Current selected date. Two-way binding is supported. */\n @Input()\n date: D;\n\n /** Whether the popover is open. Two-way binding is supported. */\n @Input()\n isOpen = false;\n\n /** The disableFunction for the calendar. */\n @Input()\n startingDayOfWeek: DaysOfWeek = 1;\n\n /** Actually shown active view one of 'day' | 'month' | 'year' in calendar component*/\n @Input()\n activeView: FdCalendarView = 'day';\n\n /** Aria label for the datetime picker input. */\n @Input()\n datetimeInputLabel = 'Datetime input';\n\n /** Aria label for the button to show/hide the calendar. */\n @Input()\n displayDatetimeToggleLabel = 'Display calendar toggle';\n\n /** Label for the \"Date\" button in display type switcher in mobile mode */\n @Input()\n displayTypeDateLabel = 'Date';\n\n /** Label for the \"Time\" button in display type switcher in mobile mode */\n @Input()\n displayTypeTimeLabel = 'Time';\n\n /** Whether a null input is considered valid. */\n @Input()\n allowNull = true;\n\n /**\n * @Input when set to true time component will use 2 digits for each number.\n * For example 9 will become 09\n * but 12 will be kept as 12.\n * Only uses by time component and does not change input format\n */\n @Input() keepTwoDigitsTime = false;\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: FormStates) {\n this._state = state;\n this._popoverFormMessage.messageType = state;\n }\n get state(): FormStates {\n if (this._state == null && this.useValidation && this.isInvalidDateInput) {\n return 'error';\n }\n return this._state;\n }\n /** @hidden */\n private _state: FormStates = null;\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 /** @Input Whether to show spinner buttons */\n @Input()\n spinnerButtons = true;\n\n /**\n * Whether user wants to show week numbers next to days\n */\n @Input()\n showWeekNumbers = true;\n\n /** Whether or not to show the datetime picker footer with OK/cancel buttons. */\n @Input()\n showFooter = true;\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 get processInputOnBlur(): boolean {\n return this._processInputOnBlur;\n }\n\n /** @hidden */\n _processInputOnBlur = false;\n\n /** Event emitted when the state of the isOpen property changes. */\n @Output()\n isOpenChange = new EventEmitter<boolean>();\n\n /** Event thrown every time calendar active view is changed */\n @Output()\n public readonly activeViewChange: EventEmitter<FdCalendarView> = new EventEmitter<FdCalendarView>();\n\n /** Event emitted when the date changes. This can be a time or day change. */\n @Output()\n readonly dateChange: EventEmitter<D> = new EventEmitter<D>();\n\n /** Event emitted when the day changes from the calendar. */\n @Output()\n readonly calendarChange: EventEmitter<D> = new EventEmitter<D>();\n\n /** Event emitted when the time changes from the time component. */\n @Output()\n readonly timeChange: EventEmitter<D> = new EventEmitter<D>();\n\n /** Event emitted when popover closes. */\n @Output()\n // eslint-disable-next-line @angular-eslint/no-output-on-prefix\n readonly onClose: EventEmitter<void> = new EventEmitter<void>();\n\n /** Event emitted when datepicker changes it's \"touched\" state. */\n @Output()\n readonly touched: EventEmitter<void> = new EventEmitter<void>();\n\n /** Indicates when datetime input is in invalid state. */\n get isInvalidDateInput(): boolean {\n return this._isInvalidDateInput && this._touched;\n }\n\n /** @hidden Reference to the inner calendar component. */\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;\n\n /**\n * @hidden\n * Date of the input field. Internal use.\n * For programmatic selection, use two-way binding on the date input.\n */\n _inputFieldDate: string = null;\n\n /** @hidden */\n _isInvalidDateInput = false;\n\n /** @hidden The temporary Time object for use before 'OK' is pressed. Internal use. */\n _tempTime: D;\n\n /** @hidden The temporary CalendarDay object for use before 'OK' is pressed. Internal use. */\n _tempDate: D;\n\n /** @hidden */\n _meridian: boolean;\n\n /** @hidden */\n _displaySeconds: boolean;\n\n /** @hidden */\n _displayMinutes: boolean;\n\n /** @hidden */\n _displayHours: boolean;\n\n /** @hidden whether to display date or time in mobile mode */\n _displayType: 'date' | 'time' = 'date';\n\n /** @hidden */\n private readonly _onDestroy$: Subject<void> = new Subject<void>();\n\n /** @hidden */\n private _subscriptions = new Subscription();\n\n /** @hidden */\n private _touched = false;\n\n /** @hidden */\n onChange: (value: D) => void = () => {};\n\n /** @hidden */\n onTouched = (): void => {};\n\n /**\n * Function used to disable certain dates in the calendar.\n * @param fdDate FdDate\n */\n @Input()\n disableFunction: (value: D) => boolean = () => false;\n\n /** @hidden */\n constructor(\n private _elRef: ElementRef,\n private _changeDetRef: ChangeDetectorRef,\n @Optional() private _contentDensityService: ContentDensityService,\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 // default model value\n this.date = _dateTimeAdapter.now();\n }\n\n /** @hidden */\n ngOnChanges(changes): void {\n if (changes.date) {\n this._setTempDateTime();\n }\n\n if (['displayHours', 'displayMinutes', 'displaySeconds', 'meridian'].some((input) => input in changes)) {\n this._calculateTimeOptions();\n }\n }\n\n /** @hidden */\n ngOnInit(): void {\n if (this.date) {\n this._setTempDateTime();\n }\n\n this._calculateTimeOptions();\n\n this._dateTimeAdapter.localeChanges\n .pipe(\n takeUntil(this._onDestroy$),\n filter(() => this._inputFieldDate !== '')\n )\n .subscribe(() => {\n this._setInput(this.date);\n this._calculateTimeOptions();\n this._changeDetRef.detectChanges();\n });\n\n if (this.compact === undefined && this._contentDensityService) {\n this._subscriptions.add(\n this._contentDensityService._isCompactDensity.subscribe((isCompact) => {\n this.compact = isCompact;\n this._changeDetRef.markForCheck();\n })\n );\n }\n }\n\n /** @hidden */\n ngOnDestroy(): void {\n this._subscriptions.unsubscribe();\n this._onDestroy$.next();\n this._onDestroy$.complete();\n }\n\n /** @hidden */\n ngAfterViewInit(): void {\n this._InitialiseVariablesInMessageService();\n // update bindings after rendering\n // is needed to preperly reflect error state\n setTimeout(() => {\n this._changeDetRef.markForCheck();\n });\n }\n\n /**\n * @hidden\n * Function that implements Validator Interface, adds validation support for forms\n */\n validate(): { [key: string]: any } {\n return this.isCurrentModelValid() && !this._isInvalidDateInput\n ? null\n : {\n dateValidation: {\n valid: false\n }\n };\n }\n\n /** Toggles the popover. */\n togglePopover(): void {\n this.handleOnTouched();\n if (this.isOpen) {\n this.closePopover();\n } else {\n this.openPopover();\n }\n }\n\n /**\n * Method that handles calendar active view change and throws event.\n */\n handleCalendarActiveViewChange(activeView: FdCalendarView): void {\n this.activeViewChange.emit(activeView);\n }\n\n /** Method that handles blur events on datetime picker input */\n handleOnTouched(event?: FocusEvent): void {\n this._touched = true;\n this.onTouched();\n this.touched.next();\n if (event) {\n this.handleInputChange((<HTMLInputElement>event.target).value, false);\n }\n }\n\n /** Opens the popover. */\n openPopover(): void {\n if (!this.isOpen && !this.disabled) {\n this.handleOnTouched();\n this.isOpen = true;\n this._onOpenStateChanged(this.isOpen);\n }\n }\n\n /** Closes the popover and refresh model */\n closePopover(): void {\n if (this.isOpen) {\n this.onClose.emit();\n this.isOpen = false;\n this._onOpenStateChanged(this.isOpen);\n }\n }\n\n /** @hidden */\n setInvalidDateInputHandler(isInvalid: boolean): void {\n this._isInvalidDateInput = isInvalid;\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._changeDetRef.detectChanges();\n }\n\n /**\n * @hidden\n * Function that provides support for ControlValueAccessor that allows to use [(ngModel)] or forms\n */\n writeValue(selected: D): void {\n this.date = selected;\n this._isInvalidDateInput = !this._isModelValid(this.date);\n if (this.isCurrentModelValid()) {\n this._setTempDateTime();\n this._refreshCurrentlyDisplayedCalendarDate(this.date);\n }\n this._setInput(this.date);\n }\n\n /**\n * @hidden\n * Method that is triggered by events from calendar component, when there is selected date changed.\n * If invalid time model is detected, it takes time model data from TimeComponent.\n */\n handleDateChange(date: D): void {\n this._tempDate = date;\n if (!this.showFooter) {\n this.submit();\n }\n }\n\n /**\n * @hidden\n * Method that is triggered by events from time component, when there is selected time changed\n */\n handleTimeChange(time: D): void {\n this._tempTime = time;\n if (!this.showFooter) {\n this.submit();\n }\n }\n\n /**\n * @hidden\n * Method that is triggered when 'OK' button is pressed.\n */\n submit(): void {\n const currentDate = this._tempDate;\n const currentTime = this._tempTime;\n\n this.date = this._dateTimeAdapter.setTime(\n currentDate,\n this._dateTimeAdapter.getHours(currentTime),\n this._dateTimeAdapter.getMinutes(currentTime),\n this._dateTimeAdapter.getSeconds(currentTime)\n );\n\n this._isInvalidDateInput = !this.isCurrentModelValid();\n\n this._setInput(this.date);\n\n this.onChange(this.date);\n\n if (this.showFooter) {\n this.closePopover();\n this._changeDetRef.detectChanges();\n }\n }\n\n /**\n * @hidden\n * Function that is called when 'Cancel' button is pressed.\n */\n cancel(): void {\n this._tempDate = this.date;\n this._tempTime = this.date;\n this.closePopover();\n }\n\n /**\n * @hidden\n * Looks like no one uses it. Should be removed?\n */\n focusArrowLeft(): void {\n if (this._elRef.nativeElement.querySelector('#' + this._calendarComponent.id + '-left-arrow')) {\n this._elRef.nativeElement.querySelector('#' + this._calendarComponent.id + '-left-arrow').focus();\n }\n }\n\n /**\n * @hidden\n * Method, which is responsible for transforming string to datetime, depending on type or\n * validation the results are different. It also changes to state of _isInvalidDateInput.\n */\n handleInputChange(inputStr: 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._inputFieldDate = inputStr ?? '';\n if (!inputStr) {\n this._isInvalidDateInput = !this.allowNull;\n this.onChange(null);\n return;\n }\n this.date = this._dateTimeAdapter.parse(inputStr, this._dateTimeFormats.parse.dateTimeInput);\n this._isInvalidDateInput = !this._isModelValid(this.date);\n\n if (!this._isInvalidDateInput) {\n this._setTempDateTime();\n this._refreshCurrentlyDisplayedCalendarDate(this.date);\n }\n this.onChange(this.date);\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 }\n // focus calendar cell on opening\n if (isOpen && this._calendarComponent) {\n this._calendarComponent.initialFocus();\n }\n }\n\n /** Method that provides information if model selected date/dates have properly types and are valid */\n isCurrentModelValid(): boolean {\n return this._isModelValid(this.date);\n }\n\n /** Method that provides information if FdDateTime passed as arg has properly types and is valid */\n private _isModelValid(date: D): boolean {\n return this._dateTimeAdapter.isValid(date);\n }\n\n private _setInput(dateTime: D): void {\n this._inputFieldDate = dateTime && this._isModelValid ? this._formatDateTime(dateTime) : '';\n this._changeDetRef.detectChanges();\n }\n\n /** @hidden */\n private _refreshCurrentlyDisplayedCalendarDate(date: D): void {\n if (this._calendarComponent) {\n this._calendarComponent.setCurrentlyDisplayed(date);\n }\n }\n\n /**\n * @hidden\n * Format date time entity.\n */\n private _formatDateTime(dateTime: D): string {\n const formattedDate: string = this._dateTimeAdapter.format(\n dateTime,\n this._dateTimeFormats.display.dateTimeInput\n );\n return formattedDate || '';\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 _setTempDateTime(): void {\n this._tempDate = this.date;\n this._tempTime = this.date;\n }\n\n /** @hidden */\n private _calculateTimeOptions(): void {\n const format = this._dateTimeFormats.display.dateTimeInput;\n\n // default meridian option based on format option\n this._meridian =\n this.meridian != null ? this.meridian : this._dateTimeAdapter.isTimeFormatIncludesDayPeriod(format);\n\n // default seconds option based on format option\n this._displaySeconds =\n this.displaySeconds != null\n ? this.displaySeconds\n : this._dateTimeAdapter.isTimeFormatIncludesSeconds(format);\n\n // default minutes option based on format option\n this._displayMinutes =\n this.displayMinutes != null\n ? this.displayMinutes\n : this._dateTimeAdapter.isTimeFormatIncludesMinutes(format);\n\n // default hours option based on format option\n this._displayHours =\n this.displayHours != null ? this.displayHours : this._dateTimeAdapter.isTimeFormatIncludesHours(format);\n }\n}\n","<div class=\"fd-datetime\">\n <fd-popover\n [(isOpen)]=\"isOpen\"\n (isOpenChange)=\"_onOpenStateChanged($event)\"\n [focusTrapped]=\"true\"\n [focusAutoCapture]=\"false\"\n [triggers]=\"[]\"\n [disabled]=\"disabled\"\n [placement]=\"placement\"\n [appendTo]=\"appendTo\"\n >\n <fd-popover-control>\n <fd-input-group\n #inputGroupComponent\n [compact]=\"compact\"\n [state]=\"state\"\n [disabled]=\"disabled\"\n [isControl]=\"true\"\n [button]=\"true\"\n [buttonFocusable]=\"buttonFocusable\"\n glyph=\"date-time\"\n [isExpanded]=\"isOpen\"\n [glyphAriaLabel]=\"displayDatetimeToggleLabel\"\n [iconTitle]=\"displayDatetimeToggleLabel\"\n (addOnButtonClicked)=\"togglePopover()\"\n >\n <input\n type=\"text\"\n class=\"fd-input\"\n fd-input-group-input\n [attr.aria-label]=\"datetimeInputLabel\"\n [attr.id]=\"inputId\"\n [attr.aria-required]=\"required\"\n [placeholder]=\"placeholder\"\n [compact]=\"compact\"\n [disabled]=\"disabled\"\n [ngModel]=\"_inputFieldDate\"\n (keyup.enter)=\"handleInputChange($event.target.value, false)\"\n (ngModelChange)=\"handleInputChange($event, true)\"\n (blur)=\"handleOnTouched($event)\"\n />\n </fd-input-group>\n </fd-popover-control>\n <fd-popover-body\n aria-labelledby=\"fd-form-message\"\n [attr.aria-expanded]=\"isOpen\"\n [attr.aria-hidden]=\"!isOpen\"\n [style.display]=\"'block'\"\n >\n <div class=\"fd-popover__wrapper fd-datetime__wrapper\">\n <div class=\"fd-datetime__display-type-switcher\">\n <fd-segmented-button [(ngModel)]=\"_displayType\">\n <button fd-button [label]=\"displayTypeDateLabel\" value=\"date\"></button>\n <button fd-button [label]=\"displayTypeTimeLabel\" value=\"time\"></button>\n </fd-segmented-button>\n </div>\n <fd-form-message id=\"fd-form-message\" [embedded]=\"true\" *ngIf=\"_message\" [type]=\"state\">\n {{ _message }}\n </fd-form-message>\n <ng-content></ng-content>\n <div class=\"fd-datetime__container\">\n <fd-calendar\n [class.fd-datetime__active-display-type]=\"_displayType === 'date'\"\n calType=\"single\"\n [activeView]=\"activeView\"\n [disableFunction]=\"disableFunction || null\"\n [selectedDate]=\"_tempDate\"\n [escapeFocusFunction]=\"null\"\n [compact]=\"compact\"\n [markWeekends]=\"markWeekends\"\n [specialDaysRules]=\"specialDaysRules\"\n [showWeekNumbers]=\"showWeekNumbers\"\n [aggregatedYearGrid]=\"aggregatedYearGrid\"\n [yearGrid]=\"yearGrid\"\n [startingDayOfWeek]=\"startingDayOfWeek\"\n (activeViewChange)=\"handleCalendarActiveViewChange($event)\"\n (selectedDateChange)=\"handleDateChange($event)\"\n (isValidDateChange)=\"setInvalidDateInputHandler($event)\"\n ></fd-calendar>\n <div class=\"fd-datetime__separator\"></div>\n <fd-time\n *ngIf=\"isOpen\"\n [class.fd-datetime__active-display-type]=\"_displayType === 'time'\"\n [disabled]=\"disabled\"\n [elementsAtOnce]=\"5\"\n [keepTwoDigits]=\"keepTwoDigitsTime\"\n [ngModel]=\"_tempTime\"\n [compact]=\"compact\"\n [spinnerButtons]=\"spinnerButtons\"\n [meridian]=\"_meridian\"\n [displaySeconds]=\"_displaySeconds\"\n [displayMinutes]=\"_displayMinutes\"\n [displayHours]=\"_displayHours\"\n (ngModelChange)=\"handleTimeChange($event)\"\n ></fd-time>\n </div>\n <div fd-popover-body-footer *ngIf=\"showFooter\">\n <div fd-bar barDesign=\"footer\" [cozy]=\"!compact\">\n <div fd-bar-right>\n <fd-bar-element>\n <button\n fd-button\n fdType=\"emphasized\"\n label=\"OK\"\n [compact]=\"compact\"\n (click)=\"submit()\"\n ></button>\n </fd-bar-element>\n <fd-bar-element>\n <button\n fd-button\n fdType=\"transparent\"\n [compact]=\"compact\"\n label=\"Cancel\"\n (click)=\"cancel()\"\n ></button>\n </fd-bar-element>\n </div>\n </div>\n </div>\n </div>\n </fd-popover-body>\n </fd-popover>\n</div>\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';\nimport { DatetimePickerComponent } from './datetime-picker.component';\nimport { TimeModule } from '@fundamental-ngx/core/time';\nimport { ButtonModule } from '@fundamental-ngx/core/button';\nimport { InputGroupModule } from '@fundamental-ngx/core/input-group';\nimport { BarModule } from '@fundamental-ngx/core/bar';\nimport { FormMessageModule } from '@fundamental-ngx/core/form';\nimport { SegmentedButtonModule } from '@fundamental-ngx/core/segmented-button';\n\n@NgModule({\n declarations: [DatetimePickerComponent],\n imports: [\n CommonModule,\n IconModule,\n PopoverModule,\n CalendarModule,\n FormsModule,\n TimeModule,\n InputGroupModule,\n ButtonModule,\n BarModule,\n SegmentedButtonModule,\n FormMessageModule\n ],\n exports: [DatetimePickerComponent]\n})\nexport class DatetimePickerModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}