@fundamental-ngx/core 0.43.16 → 0.43.18

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (129) hide show
  1. package/calendar/calendar-directives.d.ts +11 -9
  2. package/calendar/calendar-header/calendar-header.component.d.ts +5 -23
  3. package/calendar/calendar-views/calendar-aggregated-year-view/calendar-aggregated-year-view.component.d.ts +1 -20
  4. package/calendar/calendar-views/calendar-day-view/calendar-day-view.component.d.ts +3 -41
  5. package/calendar/calendar-views/calendar-month-view/calendar-month-view.component.d.ts +1 -20
  6. package/calendar/calendar-views/calendar-year-view/calendar-year-view.component.d.ts +1 -20
  7. package/calendar/calendar.module.d.ts +2 -1
  8. package/calendar/i18n/calendar-i18n-labels.d.ts +20 -22
  9. package/calendar/patch-deprecated-i18n-labels.d.ts +6 -0
  10. package/combobox/combobox.component.d.ts +17 -9
  11. package/esm2020/calendar/calendar-directives.mjs +27 -20
  12. package/esm2020/calendar/calendar-header/calendar-header.component.mjs +30 -60
  13. package/esm2020/calendar/calendar-views/calendar-aggregated-year-view/calendar-aggregated-year-view.component.mjs +9 -34
  14. package/esm2020/calendar/calendar-views/calendar-day-view/calendar-day-view.component.mjs +10 -62
  15. package/esm2020/calendar/calendar-views/calendar-month-view/calendar-month-view.component.mjs +9 -34
  16. package/esm2020/calendar/calendar-views/calendar-year-view/calendar-year-view.component.mjs +9 -34
  17. package/esm2020/calendar/calendar.component.mjs +13 -3
  18. package/esm2020/calendar/calendar.module.mjs +5 -4
  19. package/esm2020/calendar/i18n/calendar-i18n-labels.mjs +22 -28
  20. package/esm2020/calendar/patch-deprecated-i18n-labels.mjs +26 -0
  21. package/esm2020/combobox/combobox.component.mjs +37 -11
  22. package/esm2020/date-picker/date-picker.component.mjs +1 -1
  23. package/esm2020/datetime-picker/datetime-picker.component.mjs +12 -7
  24. package/esm2020/file-uploader/file-uploader.component.mjs +12 -13
  25. package/esm2020/input-group/input-group.component.mjs +6 -4
  26. package/esm2020/list/list-focus-item.model.mjs +5 -2
  27. package/esm2020/list/list-item/list-item.component.mjs +5 -8
  28. package/esm2020/list/list.component.mjs +12 -7
  29. package/esm2020/multi-combobox/index.mjs +2 -1
  30. package/esm2020/multi-combobox/multi-announcer/multi-announcer.directive.mjs +103 -0
  31. package/esm2020/multi-combobox/multi-combobox.component.mjs +18 -19
  32. package/esm2020/multi-combobox/multi-combobox.module.mjs +3 -2
  33. package/esm2020/multi-input/multi-input.component.mjs +15 -12
  34. package/esm2020/multi-input/multi-input.module.mjs +3 -2
  35. package/esm2020/pagination/pagination.component.mjs +1 -1
  36. package/esm2020/popover/base/base-popover.class.mjs +2 -2
  37. package/esm2020/popover/popover-body/popover-body.component.mjs +2 -2
  38. package/esm2020/select/select-key-manager.service.mjs +5 -5
  39. package/esm2020/select/select.component.mjs +22 -11
  40. package/esm2020/select/select.interface.mjs +1 -1
  41. package/esm2020/shellbar/user-menu/shellbar-user-menu.component.mjs +3 -3
  42. package/esm2020/table/table-wrapper.component.mjs +2 -2
  43. package/esm2020/table/table.component.mjs +2 -2
  44. package/esm2020/time-picker/time-picker.component.mjs +1 -1
  45. package/esm2020/token/token.component.mjs +10 -8
  46. package/esm2020/token/tokenizer.component.mjs +5 -4
  47. package/fesm2015/fundamental-ngx-core-calendar.mjs +156 -282
  48. package/fesm2015/fundamental-ngx-core-calendar.mjs.map +1 -1
  49. package/fesm2015/fundamental-ngx-core-combobox.mjs +32 -7
  50. package/fesm2015/fundamental-ngx-core-combobox.mjs.map +1 -1
  51. package/fesm2015/fundamental-ngx-core-date-picker.mjs +1 -1
  52. package/fesm2015/fundamental-ngx-core-date-picker.mjs.map +1 -1
  53. package/fesm2015/fundamental-ngx-core-datetime-picker.mjs +11 -6
  54. package/fesm2015/fundamental-ngx-core-datetime-picker.mjs.map +1 -1
  55. package/fesm2015/fundamental-ngx-core-file-uploader.mjs +11 -12
  56. package/fesm2015/fundamental-ngx-core-file-uploader.mjs.map +1 -1
  57. package/fesm2015/fundamental-ngx-core-input-group.mjs +5 -3
  58. package/fesm2015/fundamental-ngx-core-input-group.mjs.map +1 -1
  59. package/fesm2015/fundamental-ngx-core-list.mjs +17 -11
  60. package/fesm2015/fundamental-ngx-core-list.mjs.map +1 -1
  61. package/fesm2015/fundamental-ngx-core-multi-combobox.mjs +121 -21
  62. package/fesm2015/fundamental-ngx-core-multi-combobox.mjs.map +1 -1
  63. package/fesm2015/fundamental-ngx-core-multi-input.mjs +15 -11
  64. package/fesm2015/fundamental-ngx-core-multi-input.mjs.map +1 -1
  65. package/fesm2015/fundamental-ngx-core-pagination.mjs +1 -1
  66. package/fesm2015/fundamental-ngx-core-pagination.mjs.map +1 -1
  67. package/fesm2015/fundamental-ngx-core-popover.mjs +2 -2
  68. package/fesm2015/fundamental-ngx-core-popover.mjs.map +1 -1
  69. package/fesm2015/fundamental-ngx-core-select.mjs +134 -122
  70. package/fesm2015/fundamental-ngx-core-select.mjs.map +1 -1
  71. package/fesm2015/fundamental-ngx-core-shellbar.mjs +2 -2
  72. package/fesm2015/fundamental-ngx-core-shellbar.mjs.map +1 -1
  73. package/fesm2015/fundamental-ngx-core-table.mjs +4 -4
  74. package/fesm2015/fundamental-ngx-core-table.mjs.map +1 -1
  75. package/fesm2015/fundamental-ngx-core-time-picker.mjs +1 -1
  76. package/fesm2015/fundamental-ngx-core-time-picker.mjs.map +1 -1
  77. package/fesm2015/fundamental-ngx-core-token.mjs +11 -9
  78. package/fesm2015/fundamental-ngx-core-token.mjs.map +1 -1
  79. package/fesm2020/fundamental-ngx-core-calendar.mjs +162 -282
  80. package/fesm2020/fundamental-ngx-core-calendar.mjs.map +1 -1
  81. package/fesm2020/fundamental-ngx-core-combobox.mjs +34 -8
  82. package/fesm2020/fundamental-ngx-core-combobox.mjs.map +1 -1
  83. package/fesm2020/fundamental-ngx-core-date-picker.mjs +1 -1
  84. package/fesm2020/fundamental-ngx-core-date-picker.mjs.map +1 -1
  85. package/fesm2020/fundamental-ngx-core-datetime-picker.mjs +11 -6
  86. package/fesm2020/fundamental-ngx-core-datetime-picker.mjs.map +1 -1
  87. package/fesm2020/fundamental-ngx-core-file-uploader.mjs +11 -12
  88. package/fesm2020/fundamental-ngx-core-file-uploader.mjs.map +1 -1
  89. package/fesm2020/fundamental-ngx-core-input-group.mjs +5 -3
  90. package/fesm2020/fundamental-ngx-core-input-group.mjs.map +1 -1
  91. package/fesm2020/fundamental-ngx-core-list.mjs +17 -11
  92. package/fesm2020/fundamental-ngx-core-list.mjs.map +1 -1
  93. package/fesm2020/fundamental-ngx-core-multi-combobox.mjs +115 -20
  94. package/fesm2020/fundamental-ngx-core-multi-combobox.mjs.map +1 -1
  95. package/fesm2020/fundamental-ngx-core-multi-input.mjs +15 -11
  96. package/fesm2020/fundamental-ngx-core-multi-input.mjs.map +1 -1
  97. package/fesm2020/fundamental-ngx-core-pagination.mjs +1 -1
  98. package/fesm2020/fundamental-ngx-core-pagination.mjs.map +1 -1
  99. package/fesm2020/fundamental-ngx-core-popover.mjs +2 -2
  100. package/fesm2020/fundamental-ngx-core-popover.mjs.map +1 -1
  101. package/fesm2020/fundamental-ngx-core-select.mjs +134 -123
  102. package/fesm2020/fundamental-ngx-core-select.mjs.map +1 -1
  103. package/fesm2020/fundamental-ngx-core-shellbar.mjs +2 -2
  104. package/fesm2020/fundamental-ngx-core-shellbar.mjs.map +1 -1
  105. package/fesm2020/fundamental-ngx-core-table.mjs +4 -4
  106. package/fesm2020/fundamental-ngx-core-table.mjs.map +1 -1
  107. package/fesm2020/fundamental-ngx-core-time-picker.mjs +1 -1
  108. package/fesm2020/fundamental-ngx-core-time-picker.mjs.map +1 -1
  109. package/fesm2020/fundamental-ngx-core-token.mjs +11 -9
  110. package/fesm2020/fundamental-ngx-core-token.mjs.map +1 -1
  111. package/file-uploader/file-uploader.component.d.ts +1 -1
  112. package/fundamental-ngx-core-v0.43.18.tgz +0 -0
  113. package/input-group/input-group.component.d.ts +7 -1
  114. package/list/list-focus-item.model.d.ts +8 -3
  115. package/list/list-item/list-item.component.d.ts +5 -6
  116. package/list/list.component.d.ts +6 -4
  117. package/multi-combobox/index.d.ts +1 -0
  118. package/multi-combobox/multi-announcer/multi-announcer.directive.d.ts +39 -0
  119. package/multi-combobox/multi-combobox.component.d.ts +1 -1
  120. package/multi-combobox/multi-combobox.module.d.ts +2 -1
  121. package/multi-input/multi-input.component.d.ts +5 -3
  122. package/multi-input/multi-input.module.d.ts +2 -1
  123. package/package.json +3 -3
  124. package/schematics/add-dependencies/index.js +4 -4
  125. package/select/select-key-manager.service.d.ts +1 -1
  126. package/select/select.component.d.ts +18 -12
  127. package/select/select.interface.d.ts +4 -5
  128. package/token/token.component.d.ts +4 -2
  129. package/fundamental-ngx-core-v0.43.16.tgz +0 -0
@@ -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/deprecated-date-time-picker-content-density.directive.ts","../../../../libs/core/src/lib/datetime-picker/datetime-picker.module.ts","../../../../libs/core/src/lib/datetime-picker/fundamental-ngx-core-datetime-picker.ts"],"sourcesContent":["/** Creates an error to be thrown when attempting to use an invalid date implementation. */\nexport function createMissingDateImplementationError(provider: string): Error {\n return Error(\n `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 AfterViewInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ElementRef,\n EventEmitter,\n forwardRef,\n Inject,\n Input,\n OnChanges,\n OnDestroy,\n OnInit,\n Optional,\n Output,\n TemplateRef,\n ViewChild,\n ViewEncapsulation\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALIDATORS, NG_VALUE_ACCESSOR, Validator } from '@angular/forms';\nimport { Subject, Subscription } from 'rxjs';\nimport { filter, takeUntil } from 'rxjs/operators';\n\nimport { Placement, SpecialDayRule } from '@fundamental-ngx/core/shared';\nimport { DATE_TIME_FORMATS, DatetimeAdapter, DateTimeFormats } from '@fundamental-ngx/core/datetime';\nimport { CalendarComponent, CalendarYearGrid, DaysOfWeek, FdCalendarView } from '@fundamental-ngx/core/calendar';\nimport { FormItemControl, PopoverFormMessageService, registerFormItemControl } from '@fundamental-ngx/core/form';\nimport { PopoverService } from '@fundamental-ngx/core/popover';\nimport { InputGroupInputDirective } from '@fundamental-ngx/core/input-group';\n\nimport { createMissingDateImplementationError } from './errors';\nimport { coerceBooleanProperty } from '@angular/cdk/coercion';\nimport { Nullable } from '@fundamental-ngx/cdk/utils';\nimport { FormStates } from '@fundamental-ngx/cdk/forms';\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 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 registerFormItemControl(DatetimePickerComponent),\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, FormItemControl\n{\n /** Placeholder for the inner input element. */\n @Input()\n placeholder = '';\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 /** aria-labelledby for element describing date-picker. */\n @Input()\n ariaLabelledBy: Nullable<string>;\n\n /** Text displayed in message */\n @Input()\n set message(message: string) {\n this._message = message;\n this._popoverFormMessage.message = message;\n }\n\n /** @hidden */\n _message: string | null = null;\n\n /** The trigger events that will open/close the message box.\n * Accepts any [HTML DOM Events](https://www.w3schools.com/jsref/dom_obj_event.asp). */\n @Input()\n set messageTriggers(triggers: string[]) {\n this._messageTriggers = triggers;\n this._popoverFormMessage.triggers = triggers;\n }\n\n /** @hidden */\n _messageTriggers: string[] = ['focusin', 'focusout'];\n\n /**\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: Nullable<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 /**\n * @deprecated use i18n capabilities instead\n * Aria label for the datetime picker input.\n */\n @Input()\n datetimeInputLabel: string;\n\n /**\n * @deprecated use i18n capabilities instead\n * Aria label for the button to show/hide the calendar.\n */\n @Input()\n displayDatetimeToggleLabel: string;\n\n /**\n * @deprecated use i18n capabilities instead\n * Label for the \"Date\" button in display type switcher in mobile mode\n */\n @Input()\n displayTypeDateLabel: string;\n\n /**\n * @deprecated use i18n capabilities instead\n * Label for the \"Time\" button in display type switcher in mobile mode\n */\n @Input()\n displayTypeTimeLabel: string;\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 }\n\n get state(): FormStates {\n if (this.useValidation && this.isInvalidDateInput) {\n return 'error';\n }\n return this._state;\n }\n\n /** @hidden */\n private _state: FormStates = 'default';\n\n /**\n * Whether AddOn Button should be focusable\n * @default true\n */\n @Input()\n buttonFocusable = true;\n\n /**\n * Special days mark, it can be used by passing array of object with\n * Special day number, list 1-20 [class:`fd-calendar__special-day--{{number}}`] is available there:\n * https://sap.github.io/fundamental-styles/components/calendar.html calendar special days section\n * Rule accepts method with FdDate object as a parameter. ex:\n * `rule: (fdDate: FdDate) => fdDate.getDay() === 1`, which will mark all sundays as special day.\n */\n @Input()\n specialDaysRules: SpecialDayRule<D>[] = [];\n\n /**\n * Object to customize year grid,\n * Row, Columns and method to display year can be modified\n */\n @Input()\n yearGrid: CalendarYearGrid = {\n rows: 4,\n cols: 5\n };\n\n /**\n * Object to customize aggregated year grid,\n * Row, Columns and method to display year can be modified\n */\n @Input()\n aggregatedYearGrid: CalendarYearGrid = {\n rows: 4,\n cols: 3\n };\n\n /**\n * Whether user wants to mark sunday/saturday with `fd-calendar__item--weekend` class\n */\n @Input()\n markWeekends = true;\n\n /** @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\n get processInputOnBlur(): boolean {\n return this._processInputOnBlur;\n }\n\n /**\n * Whether to prevent page scrolling when focusing date picker input field after calendar has been closed.\n */\n @Input()\n preventScrollOnFocus = false;\n\n /**\n * @deprecated use i18n capabilities instead\n * Text and aria-label of the DateTimePicker 'OK' button.\n */\n @Input()\n okLabel: string;\n\n /**\n * @deprecated use i18n capabilities instead\n * Text and aria-label of the DateTimePicker 'Cancel' button.\n */\n @Input()\n cancelLabel: string;\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, { static: false })\n private set _calendarCmp(calendar: CalendarComponent<D>) {\n if (!this.isOpen) {\n return;\n }\n\n calendar?.setCurrentlyDisplayed(this._calendarPendingDate);\n calendar?.initialFocus();\n this._calendarComponent = calendar;\n }\n\n /** @hidden */\n _calendarComponent: CalendarComponent<D>;\n\n /** @hidden */\n @ViewChild('inputGroupComponent', { read: ElementRef })\n _inputGroupElement: ElementRef;\n\n /** @hidden */\n @ViewChild(InputGroupInputDirective, { read: ElementRef })\n _inputElement: ElementRef<HTMLInputElement>;\n\n /** @hidden */\n @ViewChild('formMessageTemplate')\n private readonly _formMessageTemplate: TemplateRef<any>;\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 = null;\n\n /** @hidden */\n _isInvalidDateInput = false;\n\n /** @hidden The temporary Time object for use before 'OK' is pressed. Internal use. */\n _tempTime: Nullable<D>;\n\n /** @hidden The temporary CalendarDay object for use before 'OK' is pressed. Internal use. */\n _tempDate: Nullable<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 _showPopoverContents = false;\n\n /** @hidden */\n private _calendarPendingDate: Nullable<D>;\n\n /** @hidden */\n private readonly _onDestroy$: Subject<void> = new Subject<void>();\n\n /** @hidden */\n private _subscriptions = new Subscription();\n\n /** @hidden */\n private _touched = false;\n\n /** @hidden */\n onChange: (value: D | null) => 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 // 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 if ('isOpen' in changes) {\n this._showPopoverContents = this.isOpen;\n this._changeDetRef.detectChanges();\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\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 } | null {\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 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._showPopoverContents = true;\n this._changeDetRef.detectChanges();\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 return;\n }\n this.onClose.emit();\n this.isOpen = false;\n this._onOpenStateChanged(this.isOpen);\n this.handleOnTouched();\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: Nullable<D>): void {\n this.date = this._parseDate(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 // marking date & time as not null, errors will be caught below\n const currentDate = this._tempDate!;\n let currentTime = this._tempTime;\n\n if (!currentTime) {\n currentTime = this._dateTimeAdapter.today();\n }\n\n try {\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 } catch {\n this.date = null;\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.date = null;\n this.onChange(null);\n return;\n }\n this.date = this._parseDate(inputStr);\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 preventScroll: this.preventScrollOnFocus\n });\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: Nullable<D>): boolean {\n return (date === null && this.allowNull) || this._dateTimeAdapter.isValid(date);\n }\n\n /** @hidden */\n private _setInput(dateTime: Nullable<D>): void {\n this._inputFieldDate = dateTime ? this._formatDateTime(dateTime) : '';\n this._changeDetRef.detectChanges();\n }\n\n /** @hidden */\n private _refreshCurrentlyDisplayedCalendarDate(date: Nullable<D>): void {\n this._calendarPendingDate = date;\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._formMessageTemplate;\n this._popoverFormMessage.triggers = this._messageTriggers;\n }\n\n /** @hidden */\n private _parseDate(date: unknown): D | null {\n return this._dateTimeAdapter.parse(date, this._dateTimeFormats.parse.dateInput);\n }\n\n /** @hidden */\n private _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 [state]=\"state\"\n [disabled]=\"disabled\"\n [isControl]=\"true\"\n [button]=\"true\"\n [buttonFocusable]=\"buttonFocusable\"\n glyph=\"date-time\"\n [isExpanded]=\"isOpen\"\n [glyphAriaLabel]=\"\n displayDatetimeToggleLabel || ('coreDatetimePicker.displayDatetimeToggleLabel' | fdTranslate)\n \"\n [iconTitle]=\"\n displayDatetimeToggleLabel || ('coreDatetimePicker.displayDatetimeToggleLabel' | fdTranslate)\n \"\n (addOnButtonClicked)=\"togglePopover()\"\n >\n <input\n type=\"text\"\n class=\"fd-input\"\n fd-input-group-input\n [attr.aria-labelledby]=\"ariaLabelledBy\"\n [attr.aria-label]=\"datetimeInputLabel || ('coreDatetimePicker.datetimeInputLabel' | fdTranslate)\"\n [attr.id]=\"inputId\"\n [attr.aria-required]=\"required\"\n [placeholder]=\"placeholder\"\n [disabled]=\"disabled\"\n [ngModel]=\"_inputFieldDate\"\n (keyup.enter)=\"handleInputChange($any($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 <ng-container *ngIf=\"_showPopoverContents\">\n <div class=\"fd-datetime__wrapper\">\n <ng-template [ngTemplateOutlet]=\"formMessageTemplate\"></ng-template>\n <div class=\"fd-datetime__display-type-switcher\">\n <fd-segmented-button [(ngModel)]=\"_displayType\">\n <button\n fd-button\n [label]=\"'coreDatetimePicker.displayTypeDateLabel' | fdTranslate\"\n value=\"date\"\n ></button>\n <button\n fd-button\n [label]=\"'coreDatetimePicker.displayTypeTimeLabel' | fdTranslate\"\n value=\"time\"\n ></button>\n </fd-segmented-button>\n </div>\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 [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 [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\">\n <div fd-bar-right>\n <fd-bar-element>\n <button\n fd-button\n fdType=\"emphasized\"\n [disabled]=\"!_tempDate\"\n [label]=\"'coreDatetimePicker.datetimeOkLabel' | fdTranslate\"\n [ariaLabel]=\"'coreDatetimePicker.datetimeOkLabel' | fdTranslate\"\n (click)=\"submit()\"\n ></button>\n </fd-bar-element>\n <fd-bar-element>\n <button\n fd-button\n fdType=\"transparent\"\n [label]=\"'coreDatetimePicker.datetimeCancelLabel' | fdTranslate\"\n [ariaLabel]=\"'coreDatetimePicker.datetimeCancelLabel' | fdTranslate\"\n (click)=\"cancel()\"\n ></button>\n </fd-bar-element>\n </div>\n </div>\n </div>\n </div>\n </ng-container>\n </fd-popover-body>\n </fd-popover>\n</div>\n\n<ng-template #formMessageTemplate>\n <fd-form-message id=\"fd-form-message\" [embedded]=\"true\" *ngIf=\"_message\" [type]=\"state\">\n {{ _message }}\n </fd-form-message>\n</ng-template>\n","import { Directive, forwardRef } from '@angular/core';\nimport { CONTENT_DENSITY_DIRECTIVE, DeprecatedCompactDirective } from '@fundamental-ngx/core/content-density';\n\n@Directive({\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: 'fd-datetime-picker[compact]',\n providers: [\n {\n provide: CONTENT_DENSITY_DIRECTIVE,\n useExisting: forwardRef(() => DeprecatedDateTimePickerContentDensityDirective)\n }\n ]\n})\nexport class DeprecatedDateTimePickerContentDensityDirective extends DeprecatedCompactDirective {\n /** @hidden */\n constructor() {\n super('fd-datetime-picker');\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { IconModule } from '@fundamental-ngx/core/icon';\nimport { PopoverModule } from '@fundamental-ngx/core/popover';\nimport { CalendarModule } from '@fundamental-ngx/core/calendar';\nimport { FormsModule } from '@angular/forms';\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';\nimport { I18nModule } from '@fundamental-ngx/i18n';\nimport { DeprecatedDateTimePickerContentDensityDirective } from './deprecated-date-time-picker-content-density.directive';\nimport { ContentDensityModule } from '@fundamental-ngx/core/content-density';\n\n@NgModule({\n declarations: [DatetimePickerComponent, DeprecatedDateTimePickerContentDensityDirective],\n imports: [\n CommonModule,\n IconModule,\n PopoverModule,\n CalendarModule,\n FormsModule,\n TimeModule,\n InputGroupModule,\n ButtonModule,\n I18nModule,\n BarModule,\n SegmentedButtonModule,\n FormMessageModule,\n ContentDensityModule\n ],\n exports: [DatetimePickerComponent, DeprecatedDateTimePickerContentDensityDirective, ContentDensityModule]\n})\nexport class DatetimePickerModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"fundamental-ngx-core-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/deprecated-date-time-picker-content-density.directive.ts","../../../../libs/core/src/lib/datetime-picker/datetime-picker.module.ts","../../../../libs/core/src/lib/datetime-picker/fundamental-ngx-core-datetime-picker.ts"],"sourcesContent":["/** Creates an error to be thrown when attempting to use an invalid date implementation. */\nexport function createMissingDateImplementationError(provider: string): Error {\n return Error(\n `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 AfterViewInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ElementRef,\n EventEmitter,\n forwardRef,\n Inject,\n Input,\n OnChanges,\n OnDestroy,\n OnInit,\n Optional,\n Output,\n TemplateRef,\n ViewChild,\n ViewEncapsulation\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALIDATORS, NG_VALUE_ACCESSOR, Validator } from '@angular/forms';\nimport { Subject, Subscription } from 'rxjs';\nimport { filter, takeUntil } from 'rxjs/operators';\n\nimport { Placement, SpecialDayRule } from '@fundamental-ngx/core/shared';\nimport { DATE_TIME_FORMATS, DatetimeAdapter, DateTimeFormats } from '@fundamental-ngx/core/datetime';\nimport { CalendarComponent, CalendarYearGrid, DaysOfWeek, FdCalendarView } from '@fundamental-ngx/core/calendar';\nimport { FormItemControl, PopoverFormMessageService, registerFormItemControl } from '@fundamental-ngx/core/form';\nimport { PopoverService } from '@fundamental-ngx/core/popover';\nimport { InputGroupInputDirective } from '@fundamental-ngx/core/input-group';\n\nimport { createMissingDateImplementationError } from './errors';\nimport { coerceBooleanProperty } from '@angular/cdk/coercion';\nimport { Nullable } from '@fundamental-ngx/cdk/utils';\nimport { FormStates } from '@fundamental-ngx/cdk/forms';\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 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 registerFormItemControl(DatetimePickerComponent),\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, FormItemControl\n{\n /** Placeholder for the inner input element. */\n @Input()\n placeholder = '';\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 /** aria-labelledby for element describing date-picker. */\n @Input()\n ariaLabelledBy: Nullable<string>;\n\n /** Text displayed in message */\n @Input()\n set message(message: string) {\n this._message = message;\n this._popoverFormMessage.message = message;\n }\n\n /** @hidden */\n _message: string | null = null;\n\n /** The trigger events that will open/close the message box.\n * Accepts any [HTML DOM Events](https://www.w3schools.com/jsref/dom_obj_event.asp). */\n @Input()\n set messageTriggers(triggers: string[]) {\n this._messageTriggers = triggers;\n this._popoverFormMessage.triggers = triggers;\n }\n\n /** @hidden */\n _messageTriggers: string[] = ['focusin', 'focusout'];\n\n /**\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: Nullable<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 /**\n * @deprecated use i18n capabilities instead\n * Aria label for the datetime picker input.\n */\n @Input()\n datetimeInputLabel: string;\n\n /**\n * @deprecated use i18n capabilities instead\n * Aria label for the button to show/hide the calendar.\n */\n @Input()\n displayDatetimeToggleLabel: string;\n\n /**\n * @deprecated use i18n capabilities instead\n * Label for the \"Date\" button in display type switcher in mobile mode\n */\n @Input()\n displayTypeDateLabel: string;\n\n /**\n * @deprecated use i18n capabilities instead\n * Label for the \"Time\" button in display type switcher in mobile mode\n */\n @Input()\n displayTypeTimeLabel: string;\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 }\n\n get state(): FormStates {\n if (this.useValidation && this.isInvalidDateInput) {\n return 'error';\n }\n return this._state;\n }\n\n /** @hidden */\n private _state: FormStates = 'default';\n\n /**\n * Whether AddOn Button should be focusable\n * @default true\n */\n @Input()\n buttonFocusable = true;\n\n /**\n * Special days mark, it can be used by passing array of object with\n * Special day number, list 1-20 [class:`fd-calendar__special-day--{{number}}`] is available there:\n * https://sap.github.io/fundamental-styles/components/calendar.html calendar special days section\n * Rule accepts method with FdDate object as a parameter. ex:\n * `rule: (fdDate: FdDate) => fdDate.getDay() === 1`, which will mark all sundays as special day.\n */\n @Input()\n specialDaysRules: SpecialDayRule<D>[] = [];\n\n /**\n * Object to customize year grid,\n * Row, Columns and method to display year can be modified\n */\n @Input()\n yearGrid: CalendarYearGrid = {\n rows: 4,\n cols: 5\n };\n\n /**\n * Object to customize aggregated year grid,\n * Row, Columns and method to display year can be modified\n */\n @Input()\n aggregatedYearGrid: CalendarYearGrid = {\n rows: 4,\n cols: 3\n };\n\n /**\n * Whether user wants to mark sunday/saturday with `fd-calendar__item--weekend` class\n */\n @Input()\n markWeekends = true;\n\n /** @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\n get processInputOnBlur(): boolean {\n return this._processInputOnBlur;\n }\n\n /**\n * Whether to prevent page scrolling when focusing date picker input field after calendar has been closed.\n */\n @Input()\n preventScrollOnFocus = false;\n\n /**\n * @deprecated use i18n capabilities instead\n * Text and aria-label of the DateTimePicker 'OK' button.\n */\n @Input()\n okLabel: string;\n\n /**\n * @deprecated use i18n capabilities instead\n * Text and aria-label of the DateTimePicker 'Cancel' button.\n */\n @Input()\n cancelLabel: string;\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, { static: false })\n private set _calendarCmp(calendar: CalendarComponent<D>) {\n setTimeout(() => {\n calendar?.setCurrentlyDisplayed(this._calendarPendingDate);\n calendar?.initialFocus();\n });\n this._calendarComponent = calendar;\n }\n\n /** @hidden */\n _calendarComponent: CalendarComponent<D>;\n\n /** @hidden */\n @ViewChild('inputGroupComponent', { read: ElementRef })\n _inputGroupElement: ElementRef;\n\n /** @hidden */\n @ViewChild(InputGroupInputDirective, { read: ElementRef })\n _inputElement: ElementRef<HTMLInputElement>;\n\n /** @hidden */\n @ViewChild('formMessageTemplate')\n private readonly _formMessageTemplate: TemplateRef<any>;\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 = null;\n\n /** @hidden */\n _isInvalidDateInput = false;\n\n /** @hidden The temporary Time object for use before 'OK' is pressed. Internal use. */\n _tempTime: Nullable<D>;\n\n /** @hidden The temporary CalendarDay object for use before 'OK' is pressed. Internal use. */\n _tempDate: Nullable<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 _showPopoverContents = false;\n\n /** @hidden */\n private _calendarPendingDate: Nullable<D>;\n\n /** @hidden */\n private readonly _onDestroy$: Subject<void> = new Subject<void>();\n\n /** @hidden */\n private _subscriptions = new Subscription();\n\n /** @hidden */\n private _touched = false;\n\n /** @hidden */\n onChange: (value: D | null) => 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 // 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 if ('isOpen' in changes) {\n this._showPopoverContents = this.isOpen;\n this._changeDetRef.detectChanges();\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\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 } | null {\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 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._showPopoverContents = true;\n this._changeDetRef.detectChanges();\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 return;\n }\n this.onClose.emit();\n this.isOpen = false;\n this._changeDetRef.detectChanges();\n this._onOpenStateChanged(this.isOpen);\n this.handleOnTouched();\n this._showPopoverContents = false;\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: Nullable<D>): void {\n this.date = this._parseDate(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 // marking date & time as not null, errors will be caught below\n const currentDate = this._tempDate!;\n let currentTime = this._tempTime;\n\n if (!currentTime) {\n currentTime = this._dateTimeAdapter.today();\n }\n\n try {\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 } catch {\n this.date = null;\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.date = null;\n this.onChange(null);\n return;\n }\n this.date = this._parseDate(inputStr);\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 preventScroll: this.preventScrollOnFocus\n });\n }\n if (!isOpen) {\n this._showPopoverContents = false;\n this._changeDetRef.detectChanges();\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: Nullable<D>): boolean {\n return (date === null && this.allowNull) || this._dateTimeAdapter.isValid(date);\n }\n\n /** @hidden */\n private _setInput(dateTime: Nullable<D>): void {\n this._inputFieldDate = dateTime ? this._formatDateTime(dateTime) : '';\n this._changeDetRef.detectChanges();\n }\n\n /** @hidden */\n private _refreshCurrentlyDisplayedCalendarDate(date: Nullable<D>): void {\n this._calendarPendingDate = date;\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._formMessageTemplate;\n this._popoverFormMessage.triggers = this._messageTriggers;\n }\n\n /** @hidden */\n private _parseDate(date: unknown): D | null {\n return this._dateTimeAdapter.parse(date, this._dateTimeFormats.parse.dateInput);\n }\n\n /** @hidden */\n private _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 [state]=\"state\"\n [disabled]=\"disabled\"\n [isControl]=\"true\"\n [button]=\"true\"\n [buttonFocusable]=\"buttonFocusable\"\n glyph=\"date-time\"\n [isExpanded]=\"isOpen\"\n [glyphAriaLabel]=\"\n displayDatetimeToggleLabel || ('coreDatetimePicker.displayDatetimeToggleLabel' | fdTranslate)\n \"\n [iconTitle]=\"\n displayDatetimeToggleLabel || ('coreDatetimePicker.displayDatetimeToggleLabel' | fdTranslate)\n \"\n (addOnButtonClicked)=\"togglePopover()\"\n >\n <input\n type=\"text\"\n class=\"fd-input\"\n fd-input-group-input\n [attr.aria-labelledby]=\"ariaLabelledBy\"\n [attr.aria-label]=\"datetimeInputLabel || ('coreDatetimePicker.datetimeInputLabel' | fdTranslate)\"\n [attr.id]=\"inputId\"\n [attr.aria-required]=\"required\"\n [placeholder]=\"placeholder\"\n [disabled]=\"disabled\"\n [ngModel]=\"_inputFieldDate\"\n (keyup.enter)=\"handleInputChange($any($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 <ng-container *ngIf=\"_showPopoverContents\">\n <div class=\"fd-datetime__wrapper\">\n <ng-template [ngTemplateOutlet]=\"formMessageTemplate\"></ng-template>\n <div class=\"fd-datetime__display-type-switcher\">\n <fd-segmented-button [(ngModel)]=\"_displayType\">\n <button\n fd-button\n [label]=\"'coreDatetimePicker.displayTypeDateLabel' | fdTranslate\"\n value=\"date\"\n ></button>\n <button\n fd-button\n [label]=\"'coreDatetimePicker.displayTypeTimeLabel' | fdTranslate\"\n value=\"time\"\n ></button>\n </fd-segmented-button>\n </div>\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 [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 [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\">\n <div fd-bar-right>\n <fd-bar-element>\n <button\n fd-button\n fdType=\"emphasized\"\n [disabled]=\"!_tempDate\"\n [label]=\"'coreDatetimePicker.datetimeOkLabel' | fdTranslate\"\n [ariaLabel]=\"'coreDatetimePicker.datetimeOkLabel' | fdTranslate\"\n (click)=\"submit()\"\n ></button>\n </fd-bar-element>\n <fd-bar-element>\n <button\n fd-button\n fdType=\"transparent\"\n [label]=\"'coreDatetimePicker.datetimeCancelLabel' | fdTranslate\"\n [ariaLabel]=\"'coreDatetimePicker.datetimeCancelLabel' | fdTranslate\"\n (click)=\"cancel()\"\n ></button>\n </fd-bar-element>\n </div>\n </div>\n </div>\n </div>\n </ng-container>\n </fd-popover-body>\n </fd-popover>\n</div>\n\n<ng-template #formMessageTemplate>\n <fd-form-message id=\"fd-form-message\" [embedded]=\"true\" *ngIf=\"_message\" [type]=\"state\">\n {{ _message }}\n </fd-form-message>\n</ng-template>\n","import { Directive, forwardRef } from '@angular/core';\nimport { CONTENT_DENSITY_DIRECTIVE, DeprecatedCompactDirective } from '@fundamental-ngx/core/content-density';\n\n@Directive({\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: 'fd-datetime-picker[compact]',\n providers: [\n {\n provide: CONTENT_DENSITY_DIRECTIVE,\n useExisting: forwardRef(() => DeprecatedDateTimePickerContentDensityDirective)\n }\n ]\n})\nexport class DeprecatedDateTimePickerContentDensityDirective extends DeprecatedCompactDirective {\n /** @hidden */\n constructor() {\n super('fd-datetime-picker');\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { IconModule } from '@fundamental-ngx/core/icon';\nimport { PopoverModule } from '@fundamental-ngx/core/popover';\nimport { CalendarModule } from '@fundamental-ngx/core/calendar';\nimport { FormsModule } from '@angular/forms';\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';\nimport { I18nModule } from '@fundamental-ngx/i18n';\nimport { DeprecatedDateTimePickerContentDensityDirective } from './deprecated-date-time-picker-content-density.directive';\nimport { ContentDensityModule } from '@fundamental-ngx/core/content-density';\n\n@NgModule({\n declarations: [DatetimePickerComponent, DeprecatedDateTimePickerContentDensityDirective],\n imports: [\n CommonModule,\n IconModule,\n PopoverModule,\n CalendarModule,\n FormsModule,\n TimeModule,\n InputGroupModule,\n ButtonModule,\n I18nModule,\n BarModule,\n SegmentedButtonModule,\n FormMessageModule,\n ContentDensityModule\n ],\n exports: [DatetimePickerComponent, DeprecatedDateTimePickerContentDensityDirective, ContentDensityModule]\n})\nexport class DatetimePickerModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -284,13 +284,15 @@ class FileUploaderComponent {
284
284
  }
285
285
  /** @hidden */
286
286
  writeValue(files) {
287
- if (this._isEmpty()) {
287
+ if (files && files.length === 0) {
288
+ this.clear();
289
+ }
290
+ else if (this._isEmpty()) {
288
291
  return;
289
292
  }
290
- if (!files) {
291
- this.clear();
293
+ else {
294
+ this._propagateFiles();
292
295
  }
293
- this._propagateFiles();
294
296
  }
295
297
  /** @hidden */
296
298
  handleDrop(files) {
@@ -315,7 +317,7 @@ class FileUploaderComponent {
315
317
  this.invalidFiles = (_b = fileOutput.invalidFiles) !== null && _b !== void 0 ? _b : [];
316
318
  }
317
319
  /** @hidden */
318
- setInputValue(selectedFiles) {
320
+ setInputValue(selectedFiles, fromClear = false) {
319
321
  let fileName = '';
320
322
  selectedFiles.forEach((file) => (fileName = fileName.concat(' ' + file.name)));
321
323
  if (!this.inputRefText) {
@@ -330,7 +332,9 @@ class FileUploaderComponent {
330
332
  this.inputRefText.nativeElement.placeholder = this.placeholder;
331
333
  this.inputRefText.nativeElement.title = this.placeholder;
332
334
  }
333
- this.inputRefText.nativeElement.focus();
335
+ if (!fromClear) {
336
+ this.inputRefText.nativeElement.focus();
337
+ }
334
338
  }
335
339
  /** @hidden */
336
340
  keyDownHandle(event) {
@@ -352,14 +356,9 @@ class FileUploaderComponent {
352
356
  * Clears the files from the input.
353
357
  */
354
358
  clear() {
355
- if (this.inputRef) {
356
- this.inputRef.nativeElement.value = '';
357
- }
358
- if (this.inputRefText) {
359
- this.inputRefText.nativeElement.value = '';
360
- }
361
359
  this.validFiles = [];
362
360
  this.invalidFiles = [];
361
+ this._propagateFiles();
363
362
  }
364
363
  /** @hidden */
365
364
  _isEmpty() {
@@ -1 +1 @@
1
- {"version":3,"file":"fundamental-ngx-core-file-uploader.mjs","sources":["../../../../libs/core/src/lib/file-uploader/file-uploader.service.ts","../../../../libs/core/src/lib/file-uploader/directives/file-uploader-select.directive.ts","../../../../libs/core/src/lib/file-uploader/directives/file-uploader-dragndrop.directive.ts","../../../../libs/core/src/lib/file-uploader/file-uploader.component.ts","../../../../libs/core/src/lib/file-uploader/file-uploader.component.html","../../../../libs/core/src/lib/file-uploader/deprecated-file-uploader-content-density.directive.ts","../../../../libs/core/src/lib/file-uploader/file-uploader.module.ts","../../../../libs/core/src/lib/file-uploader/fundamental-ngx-core-file-uploader.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\n\nimport { parserFileSize } from '@fundamental-ngx/cdk/utils';\nimport { Nullable } from '@fundamental-ngx/cdk/utils';\n\nexport interface FileUploadOutput {\n validFiles?: File[];\n invalidFiles?: File[];\n}\n\n@Injectable({ providedIn: 'root' })\nexport class FileUploaderService {\n /**\n * Method that validates files passed. It is based on\n * @param files File[]\n * @param minFileSize string\n * @param maxFileSize string\n * @param acceptedExtensions string\n */\n validateFiles(\n files: File[],\n minFileSize: string,\n maxFileSize: string,\n acceptedExtensions: Nullable<string>\n ): FileUploadOutput {\n const maxSize = parserFileSize(maxFileSize);\n const minSize = parserFileSize(minFileSize);\n\n let allowedExtensions: string[] | null = null;\n if (acceptedExtensions) {\n allowedExtensions = acceptedExtensions.toLocaleLowerCase().replace(/[\\s.]/g, '').split(',');\n }\n\n const fileUploadOutput: FileUploadOutput = {};\n\n fileUploadOutput.validFiles = files.filter(\n (file) => this._checkSize(file.size, maxSize, minSize) && this._checkExtension(file, allowedExtensions)\n );\n fileUploadOutput.invalidFiles = files.filter(\n (file) => !this._checkSize(file.size, maxSize, minSize) || !this._checkExtension(file, allowedExtensions)\n );\n\n return fileUploadOutput;\n }\n\n /** @hidden */\n private _checkExtension(file: File, allowedExtensions: string[] | null): boolean {\n if (!allowedExtensions) {\n return true;\n }\n const extension = file.name.split('.')[file.name.split('.').length - 1].toLocaleLowerCase();\n return allowedExtensions.lastIndexOf(extension) !== -1;\n }\n\n /** @hidden */\n private _checkSize(fileSize: number, maxSize: number, minSize: number): boolean {\n if (maxSize && fileSize > maxSize) {\n return false;\n }\n if (minSize && fileSize < minSize) {\n return false;\n }\n return true;\n }\n}\n","import { Directive, Input, Output, EventEmitter } from '@angular/core';\nimport { HostListener, HostBinding } from '@angular/core';\n\n/**\n * Directive tool to facilitate interacting with a native file input element.\n */\n@Directive({\n selector: '[fdFileSelect]'\n})\nexport class FileUploaderSelectDirective {\n /** Whether the input should accept multiple file selections. */\n @Input()\n private multiple = true;\n\n /** Event emitted when files are selected. */\n @Output()\n readonly fileSelected = new EventEmitter<File[]>();\n\n /** @hidden */\n @HostBinding('attr.multiple')\n get multipleBinding(): boolean | undefined {\n return this.multiple ? true : undefined;\n }\n\n /** @hidden */\n @HostListener('change', ['$event'])\n onChange(event: Event): void {\n if (event.target instanceof HTMLInputElement) {\n const elRef = <HTMLInputElement>event.target;\n const files = elRef.files;\n if (files?.length) {\n const fileArray = Array.from(files);\n this.fileSelected.emit(fileArray);\n }\n }\n }\n}\n","import { Directive, EventEmitter, HostListener, Input, Output } from '@angular/core';\nimport { FileUploaderService, FileUploadOutput } from '../file-uploader.service';\n\n/**\n * Directive that handles the drag and drop feature of the file input.\n */\n@Directive({\n selector: '[fdFileDragnDrop], [fd-file-drag-n-drop]'\n})\nexport class FileUploaderDragndropDirective {\n /** Whether multiple files can be dropped at once. */\n @Input()\n multiple = true;\n\n /** Accepted file extensions. Format: `'.png,.jpg'`. */\n @Input()\n accept: string;\n\n /** Max file size in bytes that the input will accept. */\n @Input()\n maxFileSize = '';\n\n /** Min file size in bytes that the input will accept. */\n @Input()\n minFileSize = '';\n\n /** Whether selecting of new files is disabled. */\n @Input()\n disabled = false;\n\n /** Whether drag and drop is enabled. Disables this directive. */\n @Input()\n dragndrop = true;\n\n /** Event emitted when files are dropped. Passes back an array of files. */\n @Output()\n readonly fileChanged = new EventEmitter<FileUploadOutput>();\n\n /** Event emitted when the dragged file enters the dropzone. */\n @Output()\n readonly dragEntered = new EventEmitter<void>();\n\n /** Event emitted when the dragged file exits the dropzone. */\n @Output()\n readonly dragLeave = new EventEmitter<void>();\n\n /** @hidden */\n private elementStateCounter = 0;\n\n /** @hidden */\n constructor(private _fileUploadService: FileUploaderService) {}\n\n /** @hidden */\n @HostListener('dragover', ['$event'])\n public onDragover(event: Event): void {\n if (this.dragndrop) {\n this._muteEvent(event);\n }\n }\n\n /** @hidden */\n @HostListener('dragenter', [])\n public onDragenter(): void {\n ++this.elementStateCounter;\n if (this.dragndrop && this.elementStateCounter === 1) {\n this.dragEntered.emit();\n }\n }\n\n /** @hidden */\n @HostListener('dragleave', ['$event'])\n public onDragleave(event: Event): void {\n --this.elementStateCounter;\n if (this.dragndrop && this.elementStateCounter === 0) {\n this._muteEvent(event);\n this.dragLeave.emit();\n }\n }\n\n /** @hidden */\n @HostListener('drop', ['$event'])\n public onDrop(event: any): void {\n this.elementStateCounter = 0;\n\n if (!this.dragndrop || this.disabled) {\n return;\n }\n this._muteEvent(event);\n const rawFiles = event.dataTransfer.files;\n const files: File[] = Array.from(rawFiles);\n\n if (!this.multiple && files.length > 1) {\n this.fileChanged.emit({\n validFiles: [],\n invalidFiles: files\n });\n return;\n }\n\n const fileOutput: FileUploadOutput = this._fileUploadService.validateFiles(\n files,\n this.minFileSize,\n this.maxFileSize,\n this.accept\n );\n\n this.fileChanged.emit(fileOutput);\n }\n\n /** @hidden */\n private _muteEvent(event: Event): void {\n event.preventDefault();\n event.stopPropagation();\n }\n}\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ElementRef,\n EventEmitter,\n forwardRef,\n Input,\n OnDestroy,\n Output,\n ViewChild,\n ViewEncapsulation\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { stateType } from '@fundamental-ngx/core/radio';\nimport { FileUploaderService, FileUploadOutput } from './file-uploader.service';\nimport { Subscription } from 'rxjs';\nimport { KeyUtil } from '@fundamental-ngx/cdk/utils';\nimport { FormItemControl, registerFormItemControl } from '@fundamental-ngx/core/form';\nimport { ENTER, SPACE, TAB } from '@angular/cdk/keycodes';\nimport { Nullable } from '@fundamental-ngx/cdk/utils';\nimport { ContentDensityObserver, contentDensityObserverProviders } from '@fundamental-ngx/core/content-density';\n\nlet fileUploaderInputUniqueId = 0;\n\n/**\n * Tool to facilitate the input of files from the user.\n * It supports drag and drop, multiple input, max file size and more.\n * The drag events make it very easy to create and style elements like a dropzone.\n */\n@Component({\n selector: 'fd-file-uploader',\n templateUrl: './file-uploader.component.html',\n styleUrls: ['./file-uploader.component.scss'],\n host: {\n '(blur)': 'onTouched()',\n class: 'fd-file-uploader'\n },\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => FileUploaderComponent),\n multi: true\n },\n registerFormItemControl(FileUploaderComponent),\n contentDensityObserverProviders()\n ],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class FileUploaderComponent implements ControlValueAccessor, OnDestroy, FormItemControl {\n /** @hidden */\n @ViewChild('fileInput')\n inputRef: ElementRef;\n\n /** @hidden */\n @ViewChild('textInput')\n inputRefText: ElementRef;\n\n /** Whether the file input is disabled. */\n @Input()\n disabled = false;\n\n /** If it is mandatory field */\n @Input()\n required = false;\n\n /** Whether the file input should accept multiple files. */\n @Input()\n multiple = true;\n\n /** Accepted file extensions. Format: `'.png,.jpg'`. */\n @Input()\n accept: string;\n\n /** Whether the file input accepts drag and dropped files. */\n @Input()\n dragndrop = true;\n\n /** Max file size in bytes that the input will accept. */\n @Input()\n maxFileSize = '';\n\n /** Min file size in bytes that the input will accept. */\n @Input()\n minFileSize = '';\n\n /** Id for the input element. */\n @Input()\n id: string = 'fd-file-uploader-input' + fileUploaderInputUniqueId++;\n\n /** aria-label value for input element. */\n @Input()\n ariaLabel: Nullable<string>;\n\n /** aria-label-by value for input element.*/\n @Input()\n ariaLabelledBy: Nullable<string>;\n\n /** placeholder for input element. */\n @Input()\n placeholder: string;\n\n /** button value */\n @Input()\n buttonLabel: string;\n\n /** value for input element. */\n @Input()\n buttonAriaLabel: Nullable<string>;\n\n /** The field to set state of radio button using:\n * 'success' | 'error' | 'warning' | 'default' | 'information'\n * by default value is set to 'default'\n */\n @Input()\n state: stateType = 'default';\n\n /** specifies number of files to allow to select */\n @Input()\n fileLimit: number;\n\n /** Whether or not to hide the input, leaving only the upload/browse button. */\n @Input()\n inputHidden = false;\n\n /** Width of the file uploader */\n @Input()\n width: string;\n\n /** * It stores the valid files */\n validFiles: File[] = [];\n\n /** * It stores the invalid files */\n invalidFiles: File[] = [];\n\n /** Event fired when files are selected. Passed object is the array of files selected. */\n @Output()\n readonly selectedFilesChanged = new EventEmitter<File[]>();\n\n /** Event fired when some invalid files are selected. Passed object is the array of invalid files. */\n @Output()\n readonly selectedInvalidFiles = new EventEmitter<File[]>();\n\n /** Event fired when the dragged file enters the component boundaries. */\n @Output()\n // eslint-disable-next-line @angular-eslint/no-output-on-prefix\n readonly onDragEnter = new EventEmitter<void>();\n\n /** Event fired when the dragged file exits the component boundaries. */\n @Output()\n // eslint-disable-next-line @angular-eslint/no-output-on-prefix\n readonly onDragLeave = new EventEmitter<void>();\n\n /** @hidden */\n private _subscriptions = new Subscription();\n\n /** @hidden */\n constructor(\n private _fileUploadService: FileUploaderService,\n private _changeDetRef: ChangeDetectorRef,\n readonly _contentDensityObserver: ContentDensityObserver\n ) {}\n\n /** @hidden */\n ngOnDestroy(): void {\n this._subscriptions.unsubscribe();\n }\n\n /** @hidden */\n onChange: (values: File[]) => void = () => {};\n\n /** @hidden */\n onTouched = (): void => {};\n\n /** @hidden */\n registerOnChange(fn: any): 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 /** @hidden */\n writeValue(files: File[]): void {\n if (this._isEmpty()) {\n return;\n }\n if (!files) {\n this.clear();\n }\n this._propagateFiles();\n }\n\n /** @hidden */\n handleDrop(files: FileUploadOutput): void {\n this.validFiles = files.validFiles ?? [];\n this.invalidFiles = files.invalidFiles ?? [];\n this._propagateFiles();\n }\n\n /** @hidden */\n selectHandler(event: File[]): void {\n this.validateFiles(event);\n this._propagateFiles();\n }\n\n /** @hidden */\n validateFiles(event: File[]): void {\n if (this.fileLimit && event.length > this.fileLimit) {\n throw new Error('FileLimitError - Selected files count is more than specified limit ');\n }\n\n const fileOutput: FileUploadOutput = this._fileUploadService.validateFiles(\n event,\n this.minFileSize,\n this.maxFileSize,\n this.accept\n );\n\n this.validFiles = fileOutput.validFiles ?? [];\n this.invalidFiles = fileOutput.invalidFiles ?? [];\n }\n\n /** @hidden */\n setInputValue(selectedFiles: File[]): void {\n let fileName = '';\n selectedFiles.forEach((file) => (fileName = fileName.concat(' ' + file.name)));\n if (!this.inputRefText) {\n return;\n }\n this.inputRefText.nativeElement.value = fileName;\n this.inputRefText.nativeElement.title = fileName;\n if (fileName) {\n this.inputRefText.nativeElement.placeholder = fileName;\n } else {\n this.inputRefText.nativeElement.placeholder = this.placeholder;\n this.inputRefText.nativeElement.title = this.placeholder;\n }\n this.inputRefText.nativeElement.focus();\n }\n\n /** @hidden */\n keyDownHandle(event: KeyboardEvent): void {\n if (KeyUtil.isKeyCode(event, [ENTER, SPACE])) {\n this.open();\n } else if (KeyUtil.isKeyCode(event, [TAB])) {\n return;\n }\n event.preventDefault();\n }\n\n /**\n * Opens the file selector.\n */\n public open(): void {\n this.inputRef.nativeElement.click();\n }\n\n /**\n * Clears the files from the input.\n */\n public clear(): void {\n if (this.inputRef) {\n this.inputRef.nativeElement.value = '';\n }\n if (this.inputRefText) {\n this.inputRefText.nativeElement.value = '';\n }\n this.validFiles = [];\n this.invalidFiles = [];\n }\n\n /** @hidden */\n private _isEmpty(): boolean {\n return this.validFiles.length === 0 && this.invalidFiles.length === 0;\n }\n\n /** @hidden */\n private _propagateFiles(): void {\n this.setInputValue(this.validFiles);\n this.onChange(this.validFiles);\n this.selectedFilesChanged.emit(this.validFiles);\n this.selectedInvalidFiles.emit(this.invalidFiles);\n }\n}\n","<div\n class=\"fd-file-uploader__container\"\n fdFileDragnDrop\n [accept]=\"accept\"\n [maxFileSize]=\"maxFileSize\"\n [minFileSize]=\"minFileSize\"\n [dragndrop]=\"dragndrop\"\n [disabled]=\"disabled\"\n [multiple]=\"multiple\"\n (fileChanged)=\"handleDrop($event)\"\n (dragEntered)=\"onDragEnter.emit()\"\n (dragLeave)=\"onDragLeave.emit()\"\n>\n <input\n #textInput\n class=\"fd-input fd-file-uploader__input\"\n [class]=\"state ? ' is-' + state : ''\"\n aria-live=\"polite\"\n autocomplete=\"off\"\n type=\"text\"\n tabindex=\"0\"\n [id]=\"id\"\n [attr.aria-label]=\"ariaLabel\"\n [attr.aria-labelledby]=\"ariaLabelledBy\"\n [attr.aria-required]=\"required\"\n [title]=\"ariaLabel\"\n [placeholder]=\"placeholder\"\n [value]=\"\"\n [style.width]=\"width\"\n [hidden]=\"inputHidden\"\n [disabled]=\"disabled\"\n (click)=\"open()\"\n (keydown)=\"keyDownHandle($event)\"\n />\n\n <button\n fd-button\n class=\"file-uploader__button\"\n [attr.aria-label]=\"buttonAriaLabel\"\n [label]=\"buttonLabel\"\n [disabled]=\"disabled\"\n (click)=\"open()\"\n ></button>\n <ng-content select=\"[fd-form-control]\"></ng-content>\n</div>\n\n<input\n #fileInput\n fdFileSelect\n class=\"fd-file-uploader__hidden\"\n type=\"file\"\n [attr.accept]=\"accept\"\n [multiple]=\"multiple\"\n [disabled]=\"disabled\"\n (fileSelected)=\"selectHandler($event)\"\n/>\n","import { Directive, forwardRef } from '@angular/core';\nimport { CONTENT_DENSITY_DIRECTIVE, DeprecatedCompactDirective } from '@fundamental-ngx/core/content-density';\n\n@Directive({\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: 'fd-file-uploader[compact]',\n providers: [\n {\n provide: CONTENT_DENSITY_DIRECTIVE,\n useExisting: forwardRef(() => DeprecatedFileUploaderContentDensityDirective)\n }\n ]\n})\nexport class DeprecatedFileUploaderContentDensityDirective extends DeprecatedCompactDirective {\n /** @hidden */\n constructor() {\n super('fd-file-uploader');\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FileUploaderComponent } from './file-uploader.component';\nimport { FormsModule } from '@angular/forms';\nimport { ButtonModule } from '@fundamental-ngx/core/button';\nimport { FileUploaderSelectDirective } from './directives/file-uploader-select.directive';\nimport { FileUploaderDragndropDirective } from './directives/file-uploader-dragndrop.directive';\nimport { DeprecatedFileUploaderContentDensityDirective } from './deprecated-file-uploader-content-density.directive';\nimport { FormControlModule } from '@fundamental-ngx/core/form';\nimport { ContentDensityModule } from '@fundamental-ngx/core/content-density';\n\n@NgModule({\n imports: [CommonModule, FormsModule, ButtonModule, FormControlModule, ContentDensityModule],\n exports: [\n FileUploaderComponent,\n FileUploaderSelectDirective,\n FileUploaderDragndropDirective,\n DeprecatedFileUploaderContentDensityDirective,\n ContentDensityModule\n ],\n declarations: [\n FileUploaderComponent,\n FileUploaderSelectDirective,\n FileUploaderDragndropDirective,\n DeprecatedFileUploaderContentDensityDirective\n ]\n})\nexport class FileUploaderModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1.FileUploaderService","i4.FileUploaderSelectDirective","i5.FileUploaderDragndropDirective"],"mappings":"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"}
1
+ {"version":3,"file":"fundamental-ngx-core-file-uploader.mjs","sources":["../../../../libs/core/src/lib/file-uploader/file-uploader.service.ts","../../../../libs/core/src/lib/file-uploader/directives/file-uploader-select.directive.ts","../../../../libs/core/src/lib/file-uploader/directives/file-uploader-dragndrop.directive.ts","../../../../libs/core/src/lib/file-uploader/file-uploader.component.ts","../../../../libs/core/src/lib/file-uploader/file-uploader.component.html","../../../../libs/core/src/lib/file-uploader/deprecated-file-uploader-content-density.directive.ts","../../../../libs/core/src/lib/file-uploader/file-uploader.module.ts","../../../../libs/core/src/lib/file-uploader/fundamental-ngx-core-file-uploader.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\n\nimport { parserFileSize } from '@fundamental-ngx/cdk/utils';\nimport { Nullable } from '@fundamental-ngx/cdk/utils';\n\nexport interface FileUploadOutput {\n validFiles?: File[];\n invalidFiles?: File[];\n}\n\n@Injectable({ providedIn: 'root' })\nexport class FileUploaderService {\n /**\n * Method that validates files passed. It is based on\n * @param files File[]\n * @param minFileSize string\n * @param maxFileSize string\n * @param acceptedExtensions string\n */\n validateFiles(\n files: File[],\n minFileSize: string,\n maxFileSize: string,\n acceptedExtensions: Nullable<string>\n ): FileUploadOutput {\n const maxSize = parserFileSize(maxFileSize);\n const minSize = parserFileSize(minFileSize);\n\n let allowedExtensions: string[] | null = null;\n if (acceptedExtensions) {\n allowedExtensions = acceptedExtensions.toLocaleLowerCase().replace(/[\\s.]/g, '').split(',');\n }\n\n const fileUploadOutput: FileUploadOutput = {};\n\n fileUploadOutput.validFiles = files.filter(\n (file) => this._checkSize(file.size, maxSize, minSize) && this._checkExtension(file, allowedExtensions)\n );\n fileUploadOutput.invalidFiles = files.filter(\n (file) => !this._checkSize(file.size, maxSize, minSize) || !this._checkExtension(file, allowedExtensions)\n );\n\n return fileUploadOutput;\n }\n\n /** @hidden */\n private _checkExtension(file: File, allowedExtensions: string[] | null): boolean {\n if (!allowedExtensions) {\n return true;\n }\n const extension = file.name.split('.')[file.name.split('.').length - 1].toLocaleLowerCase();\n return allowedExtensions.lastIndexOf(extension) !== -1;\n }\n\n /** @hidden */\n private _checkSize(fileSize: number, maxSize: number, minSize: number): boolean {\n if (maxSize && fileSize > maxSize) {\n return false;\n }\n if (minSize && fileSize < minSize) {\n return false;\n }\n return true;\n }\n}\n","import { Directive, Input, Output, EventEmitter } from '@angular/core';\nimport { HostListener, HostBinding } from '@angular/core';\n\n/**\n * Directive tool to facilitate interacting with a native file input element.\n */\n@Directive({\n selector: '[fdFileSelect]'\n})\nexport class FileUploaderSelectDirective {\n /** Whether the input should accept multiple file selections. */\n @Input()\n private multiple = true;\n\n /** Event emitted when files are selected. */\n @Output()\n readonly fileSelected = new EventEmitter<File[]>();\n\n /** @hidden */\n @HostBinding('attr.multiple')\n get multipleBinding(): boolean | undefined {\n return this.multiple ? true : undefined;\n }\n\n /** @hidden */\n @HostListener('change', ['$event'])\n onChange(event: Event): void {\n if (event.target instanceof HTMLInputElement) {\n const elRef = <HTMLInputElement>event.target;\n const files = elRef.files;\n if (files?.length) {\n const fileArray = Array.from(files);\n this.fileSelected.emit(fileArray);\n }\n }\n }\n}\n","import { Directive, EventEmitter, HostListener, Input, Output } from '@angular/core';\nimport { FileUploaderService, FileUploadOutput } from '../file-uploader.service';\n\n/**\n * Directive that handles the drag and drop feature of the file input.\n */\n@Directive({\n selector: '[fdFileDragnDrop], [fd-file-drag-n-drop]'\n})\nexport class FileUploaderDragndropDirective {\n /** Whether multiple files can be dropped at once. */\n @Input()\n multiple = true;\n\n /** Accepted file extensions. Format: `'.png,.jpg'`. */\n @Input()\n accept: string;\n\n /** Max file size in bytes that the input will accept. */\n @Input()\n maxFileSize = '';\n\n /** Min file size in bytes that the input will accept. */\n @Input()\n minFileSize = '';\n\n /** Whether selecting of new files is disabled. */\n @Input()\n disabled = false;\n\n /** Whether drag and drop is enabled. Disables this directive. */\n @Input()\n dragndrop = true;\n\n /** Event emitted when files are dropped. Passes back an array of files. */\n @Output()\n readonly fileChanged = new EventEmitter<FileUploadOutput>();\n\n /** Event emitted when the dragged file enters the dropzone. */\n @Output()\n readonly dragEntered = new EventEmitter<void>();\n\n /** Event emitted when the dragged file exits the dropzone. */\n @Output()\n readonly dragLeave = new EventEmitter<void>();\n\n /** @hidden */\n private elementStateCounter = 0;\n\n /** @hidden */\n constructor(private _fileUploadService: FileUploaderService) {}\n\n /** @hidden */\n @HostListener('dragover', ['$event'])\n public onDragover(event: Event): void {\n if (this.dragndrop) {\n this._muteEvent(event);\n }\n }\n\n /** @hidden */\n @HostListener('dragenter', [])\n public onDragenter(): void {\n ++this.elementStateCounter;\n if (this.dragndrop && this.elementStateCounter === 1) {\n this.dragEntered.emit();\n }\n }\n\n /** @hidden */\n @HostListener('dragleave', ['$event'])\n public onDragleave(event: Event): void {\n --this.elementStateCounter;\n if (this.dragndrop && this.elementStateCounter === 0) {\n this._muteEvent(event);\n this.dragLeave.emit();\n }\n }\n\n /** @hidden */\n @HostListener('drop', ['$event'])\n public onDrop(event: any): void {\n this.elementStateCounter = 0;\n\n if (!this.dragndrop || this.disabled) {\n return;\n }\n this._muteEvent(event);\n const rawFiles = event.dataTransfer.files;\n const files: File[] = Array.from(rawFiles);\n\n if (!this.multiple && files.length > 1) {\n this.fileChanged.emit({\n validFiles: [],\n invalidFiles: files\n });\n return;\n }\n\n const fileOutput: FileUploadOutput = this._fileUploadService.validateFiles(\n files,\n this.minFileSize,\n this.maxFileSize,\n this.accept\n );\n\n this.fileChanged.emit(fileOutput);\n }\n\n /** @hidden */\n private _muteEvent(event: Event): void {\n event.preventDefault();\n event.stopPropagation();\n }\n}\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ElementRef,\n EventEmitter,\n forwardRef,\n Input,\n OnDestroy,\n Output,\n ViewChild,\n ViewEncapsulation\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { stateType } from '@fundamental-ngx/core/radio';\nimport { FileUploaderService, FileUploadOutput } from './file-uploader.service';\nimport { Subscription } from 'rxjs';\nimport { KeyUtil } from '@fundamental-ngx/cdk/utils';\nimport { FormItemControl, registerFormItemControl } from '@fundamental-ngx/core/form';\nimport { ENTER, SPACE, TAB } from '@angular/cdk/keycodes';\nimport { Nullable } from '@fundamental-ngx/cdk/utils';\nimport { ContentDensityObserver, contentDensityObserverProviders } from '@fundamental-ngx/core/content-density';\n\nlet fileUploaderInputUniqueId = 0;\n\n/**\n * Tool to facilitate the input of files from the user.\n * It supports drag and drop, multiple input, max file size and more.\n * The drag events make it very easy to create and style elements like a dropzone.\n */\n@Component({\n selector: 'fd-file-uploader',\n templateUrl: './file-uploader.component.html',\n styleUrls: ['./file-uploader.component.scss'],\n host: {\n '(blur)': 'onTouched()',\n class: 'fd-file-uploader'\n },\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => FileUploaderComponent),\n multi: true\n },\n registerFormItemControl(FileUploaderComponent),\n contentDensityObserverProviders()\n ],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class FileUploaderComponent implements ControlValueAccessor, OnDestroy, FormItemControl {\n /** @hidden */\n @ViewChild('fileInput')\n inputRef: ElementRef;\n\n /** @hidden */\n @ViewChild('textInput')\n inputRefText: ElementRef;\n\n /** Whether the file input is disabled. */\n @Input()\n disabled = false;\n\n /** If it is mandatory field */\n @Input()\n required = false;\n\n /** Whether the file input should accept multiple files. */\n @Input()\n multiple = true;\n\n /** Accepted file extensions. Format: `'.png,.jpg'`. */\n @Input()\n accept: string;\n\n /** Whether the file input accepts drag and dropped files. */\n @Input()\n dragndrop = true;\n\n /** Max file size in bytes that the input will accept. */\n @Input()\n maxFileSize = '';\n\n /** Min file size in bytes that the input will accept. */\n @Input()\n minFileSize = '';\n\n /** Id for the input element. */\n @Input()\n id: string = 'fd-file-uploader-input' + fileUploaderInputUniqueId++;\n\n /** aria-label value for input element. */\n @Input()\n ariaLabel: Nullable<string>;\n\n /** aria-label-by value for input element.*/\n @Input()\n ariaLabelledBy: Nullable<string>;\n\n /** placeholder for input element. */\n @Input()\n placeholder: string;\n\n /** button value */\n @Input()\n buttonLabel: string;\n\n /** value for input element. */\n @Input()\n buttonAriaLabel: Nullable<string>;\n\n /** The field to set state of radio button using:\n * 'success' | 'error' | 'warning' | 'default' | 'information'\n * by default value is set to 'default'\n */\n @Input()\n state: stateType = 'default';\n\n /** specifies number of files to allow to select */\n @Input()\n fileLimit: number;\n\n /** Whether or not to hide the input, leaving only the upload/browse button. */\n @Input()\n inputHidden = false;\n\n /** Width of the file uploader */\n @Input()\n width: string;\n\n /** * It stores the valid files */\n validFiles: File[] = [];\n\n /** * It stores the invalid files */\n invalidFiles: File[] = [];\n\n /** Event fired when files are selected. Passed object is the array of files selected. */\n @Output()\n readonly selectedFilesChanged = new EventEmitter<File[]>();\n\n /** Event fired when some invalid files are selected. Passed object is the array of invalid files. */\n @Output()\n readonly selectedInvalidFiles = new EventEmitter<File[]>();\n\n /** Event fired when the dragged file enters the component boundaries. */\n @Output()\n // eslint-disable-next-line @angular-eslint/no-output-on-prefix\n readonly onDragEnter = new EventEmitter<void>();\n\n /** Event fired when the dragged file exits the component boundaries. */\n @Output()\n // eslint-disable-next-line @angular-eslint/no-output-on-prefix\n readonly onDragLeave = new EventEmitter<void>();\n\n /** @hidden */\n private _subscriptions = new Subscription();\n\n /** @hidden */\n constructor(\n private _fileUploadService: FileUploaderService,\n private _changeDetRef: ChangeDetectorRef,\n readonly _contentDensityObserver: ContentDensityObserver\n ) {}\n\n /** @hidden */\n ngOnDestroy(): void {\n this._subscriptions.unsubscribe();\n }\n\n /** @hidden */\n onChange: (values: File[]) => void = () => {};\n\n /** @hidden */\n onTouched = (): void => {};\n\n /** @hidden */\n registerOnChange(fn: any): 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 /** @hidden */\n writeValue(files: File[]): void {\n if (files && files.length === 0) {\n this.clear();\n } else if (this._isEmpty()) {\n return;\n } else {\n this._propagateFiles();\n }\n }\n\n /** @hidden */\n handleDrop(files: FileUploadOutput): void {\n this.validFiles = files.validFiles ?? [];\n this.invalidFiles = files.invalidFiles ?? [];\n this._propagateFiles();\n }\n\n /** @hidden */\n selectHandler(event: File[]): void {\n this.validateFiles(event);\n this._propagateFiles();\n }\n\n /** @hidden */\n validateFiles(event: File[]): void {\n if (this.fileLimit && event.length > this.fileLimit) {\n throw new Error('FileLimitError - Selected files count is more than specified limit ');\n }\n\n const fileOutput: FileUploadOutput = this._fileUploadService.validateFiles(\n event,\n this.minFileSize,\n this.maxFileSize,\n this.accept\n );\n\n this.validFiles = fileOutput.validFiles ?? [];\n this.invalidFiles = fileOutput.invalidFiles ?? [];\n }\n\n /** @hidden */\n setInputValue(selectedFiles: File[], fromClear = false): void {\n let fileName = '';\n selectedFiles.forEach((file) => (fileName = fileName.concat(' ' + file.name)));\n if (!this.inputRefText) {\n return;\n }\n this.inputRefText.nativeElement.value = fileName;\n this.inputRefText.nativeElement.title = fileName;\n if (fileName) {\n this.inputRefText.nativeElement.placeholder = fileName;\n } else {\n this.inputRefText.nativeElement.placeholder = this.placeholder;\n this.inputRefText.nativeElement.title = this.placeholder;\n }\n if (!fromClear) {\n this.inputRefText.nativeElement.focus();\n }\n }\n\n /** @hidden */\n keyDownHandle(event: KeyboardEvent): void {\n if (KeyUtil.isKeyCode(event, [ENTER, SPACE])) {\n this.open();\n } else if (KeyUtil.isKeyCode(event, [TAB])) {\n return;\n }\n event.preventDefault();\n }\n\n /**\n * Opens the file selector.\n */\n public open(): void {\n this.inputRef.nativeElement.click();\n }\n\n /**\n * Clears the files from the input.\n */\n public clear(): void {\n this.validFiles = [];\n this.invalidFiles = [];\n this._propagateFiles();\n }\n\n /** @hidden */\n private _isEmpty(): boolean {\n return this.validFiles.length === 0 && this.invalidFiles.length === 0;\n }\n\n /** @hidden */\n private _propagateFiles(): void {\n this.setInputValue(this.validFiles);\n this.onChange(this.validFiles);\n this.selectedFilesChanged.emit(this.validFiles);\n this.selectedInvalidFiles.emit(this.invalidFiles);\n }\n}\n","<div\n class=\"fd-file-uploader__container\"\n fdFileDragnDrop\n [accept]=\"accept\"\n [maxFileSize]=\"maxFileSize\"\n [minFileSize]=\"minFileSize\"\n [dragndrop]=\"dragndrop\"\n [disabled]=\"disabled\"\n [multiple]=\"multiple\"\n (fileChanged)=\"handleDrop($event)\"\n (dragEntered)=\"onDragEnter.emit()\"\n (dragLeave)=\"onDragLeave.emit()\"\n>\n <input\n #textInput\n class=\"fd-input fd-file-uploader__input\"\n [class]=\"state ? ' is-' + state : ''\"\n aria-live=\"polite\"\n autocomplete=\"off\"\n type=\"text\"\n tabindex=\"0\"\n [id]=\"id\"\n [attr.aria-label]=\"ariaLabel\"\n [attr.aria-labelledby]=\"ariaLabelledBy\"\n [attr.aria-required]=\"required\"\n [title]=\"ariaLabel\"\n [placeholder]=\"placeholder\"\n [value]=\"\"\n [style.width]=\"width\"\n [hidden]=\"inputHidden\"\n [disabled]=\"disabled\"\n (click)=\"open()\"\n (keydown)=\"keyDownHandle($event)\"\n />\n\n <button\n fd-button\n class=\"file-uploader__button\"\n [attr.aria-label]=\"buttonAriaLabel\"\n [label]=\"buttonLabel\"\n [disabled]=\"disabled\"\n (click)=\"open()\"\n ></button>\n <ng-content select=\"[fd-form-control]\"></ng-content>\n</div>\n\n<input\n #fileInput\n fdFileSelect\n class=\"fd-file-uploader__hidden\"\n type=\"file\"\n [attr.accept]=\"accept\"\n [multiple]=\"multiple\"\n [disabled]=\"disabled\"\n (fileSelected)=\"selectHandler($event)\"\n/>\n","import { Directive, forwardRef } from '@angular/core';\nimport { CONTENT_DENSITY_DIRECTIVE, DeprecatedCompactDirective } from '@fundamental-ngx/core/content-density';\n\n@Directive({\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: 'fd-file-uploader[compact]',\n providers: [\n {\n provide: CONTENT_DENSITY_DIRECTIVE,\n useExisting: forwardRef(() => DeprecatedFileUploaderContentDensityDirective)\n }\n ]\n})\nexport class DeprecatedFileUploaderContentDensityDirective extends DeprecatedCompactDirective {\n /** @hidden */\n constructor() {\n super('fd-file-uploader');\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FileUploaderComponent } from './file-uploader.component';\nimport { FormsModule } from '@angular/forms';\nimport { ButtonModule } from '@fundamental-ngx/core/button';\nimport { FileUploaderSelectDirective } from './directives/file-uploader-select.directive';\nimport { FileUploaderDragndropDirective } from './directives/file-uploader-dragndrop.directive';\nimport { DeprecatedFileUploaderContentDensityDirective } from './deprecated-file-uploader-content-density.directive';\nimport { FormControlModule } from '@fundamental-ngx/core/form';\nimport { ContentDensityModule } from '@fundamental-ngx/core/content-density';\n\n@NgModule({\n imports: [CommonModule, FormsModule, ButtonModule, FormControlModule, ContentDensityModule],\n exports: [\n FileUploaderComponent,\n FileUploaderSelectDirective,\n FileUploaderDragndropDirective,\n DeprecatedFileUploaderContentDensityDirective,\n ContentDensityModule\n ],\n declarations: [\n FileUploaderComponent,\n FileUploaderSelectDirective,\n FileUploaderDragndropDirective,\n DeprecatedFileUploaderContentDensityDirective\n ]\n})\nexport class FileUploaderModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1.FileUploaderService","i4.FileUploaderSelectDirective","i5.FileUploaderDragndropDirective"],"mappings":"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"}