novo-elements 11.4.0 → 12.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/addons/ace-editor/index.d.ts +49 -2
- package/addons/ckeditor/index.d.ts +58 -2
- package/addons/code-editor/index.d.ts +43 -2
- package/elements/agenda/index.d.ts +601 -6
- package/elements/aside/index.d.ts +61 -5
- package/elements/autocomplete/index.d.ts +105 -2
- package/elements/avatar/index.d.ts +42 -3
- package/elements/breadcrumbs/index.d.ts +87 -6
- package/elements/button/index.d.ts +65 -2
- package/elements/calendar/index.d.ts +200 -6
- package/elements/card/index.d.ts +69 -2
- package/elements/category-dropdown/index.d.ts +44 -2
- package/elements/checkbox/index.d.ts +117 -3
- package/elements/chips/index.d.ts +665 -9
- package/elements/color-picker/index.d.ts +142 -4
- package/elements/common/index.d.ts +745 -19
- package/elements/data-table/index.d.ts +939 -15
- package/elements/date-picker/index.d.ts +410 -5
- package/elements/date-time-picker/index.d.ts +113 -3
- package/elements/divider/index.d.ts +25 -2
- package/elements/drag-drop/index.d.ts +74 -2
- package/elements/dropdown/index.d.ts +117 -2
- package/elements/expansion/index.d.ts +161 -6
- package/elements/field/index.d.ts +513 -14
- package/elements/flex/index.d.ts +53 -4
- package/elements/form/index.d.ts +1312 -17
- package/elements/header/index.d.ts +51 -2
- package/elements/icon/index.d.ts +37 -2
- package/elements/layout/index.d.ts +306 -6
- package/elements/list/index.d.ts +59 -2
- package/elements/loading/index.d.ts +64 -2
- package/elements/menu/index.d.ts +202 -8
- package/elements/modal/index.d.ts +96 -6
- package/elements/multi-picker/index.d.ts +122 -2
- package/elements/non-ideal-state/index.d.ts +22 -2
- package/elements/picker/index.d.ts +387 -3
- package/elements/places/index.d.ts +121 -3
- package/elements/popover/index.d.ts +93 -3
- package/elements/progress/index.d.ts +85 -4
- package/elements/query-builder/index.d.ts +625 -17
- package/elements/quick-note/index.d.ts +187 -3
- package/elements/radio/index.d.ts +147 -4
- package/elements/search/index.d.ts +85 -2
- package/elements/select/index.d.ts +248 -3
- package/elements/select-search/index.d.ts +268 -3
- package/elements/simple-table/index.d.ts +544 -12
- package/elements/simple-table/table.scss +10 -10
- package/elements/slider/index.d.ts +32 -2
- package/elements/stepper/index.d.ts +134 -7
- package/elements/switch/index.d.ts +35 -2
- package/elements/tabbed-group-picker/index.d.ts +147 -2
- package/elements/tabs/index.d.ts +105 -2
- package/elements/tiles/index.d.ts +45 -2
- package/elements/time-picker/index.d.ts +141 -3
- package/elements/tip-well/index.d.ts +37 -2
- package/elements/toast/index.d.ts +94 -3
- package/elements/toolbar/index.d.ts +32 -2
- package/elements/tooltip/index.d.ts +70 -3
- package/elements/unless/index.d.ts +26 -2
- package/elements/value/index.d.ts +142 -4
- package/fesm2022/novo-elements-addons-ace-editor.mjs +7 -7
- package/fesm2022/novo-elements-addons-ace-editor.mjs.map +1 -1
- package/fesm2022/novo-elements-addons-ckeditor.mjs +7 -7
- package/fesm2022/novo-elements-addons-ckeditor.mjs.map +1 -1
- package/fesm2022/novo-elements-addons-code-editor.mjs +7 -7
- package/fesm2022/novo-elements-addons-code-editor.mjs.map +1 -1
- package/fesm2022/novo-elements-elements-agenda.mjs +61 -61
- package/fesm2022/novo-elements-elements-agenda.mjs.map +1 -1
- package/fesm2022/novo-elements-elements-aside.mjs +17 -16
- package/fesm2022/novo-elements-elements-aside.mjs.map +1 -1
- package/fesm2022/novo-elements-elements-autocomplete.mjs +7 -7
- package/fesm2022/novo-elements-elements-autocomplete.mjs.map +1 -1
- package/fesm2022/novo-elements-elements-avatar.mjs +10 -10
- package/fesm2022/novo-elements-elements-avatar.mjs.map +1 -1
- package/fesm2022/novo-elements-elements-breadcrumbs.mjs +13 -13
- package/fesm2022/novo-elements-elements-breadcrumbs.mjs.map +1 -1
- package/fesm2022/novo-elements-elements-button.mjs +12 -12
- package/fesm2022/novo-elements-elements-button.mjs.map +1 -1
- package/fesm2022/novo-elements-elements-calendar.mjs +25 -25
- package/fesm2022/novo-elements-elements-calendar.mjs.map +1 -1
- package/fesm2022/novo-elements-elements-card.mjs +19 -19
- package/fesm2022/novo-elements-elements-card.mjs.map +1 -1
- package/fesm2022/novo-elements-elements-category-dropdown.mjs +7 -7
- package/fesm2022/novo-elements-elements-category-dropdown.mjs.map +1 -1
- package/fesm2022/novo-elements-elements-checkbox.mjs +10 -10
- package/fesm2022/novo-elements-elements-checkbox.mjs.map +1 -1
- package/fesm2022/novo-elements-elements-chips.mjs +47 -39
- package/fesm2022/novo-elements-elements-chips.mjs.map +1 -1
- package/fesm2022/novo-elements-elements-color-picker.mjs +13 -13
- package/fesm2022/novo-elements-elements-color-picker.mjs.map +1 -1
- package/fesm2022/novo-elements-elements-common.mjs +116 -107
- package/fesm2022/novo-elements-elements-common.mjs.map +1 -1
- package/fesm2022/novo-elements-elements-data-table.mjs +77 -77
- package/fesm2022/novo-elements-elements-data-table.mjs.map +1 -1
- package/fesm2022/novo-elements-elements-date-picker.mjs +17 -17
- package/fesm2022/novo-elements-elements-date-picker.mjs.map +1 -1
- package/fesm2022/novo-elements-elements-date-time-picker.mjs +11 -11
- package/fesm2022/novo-elements-elements-date-time-picker.mjs.map +1 -1
- package/fesm2022/novo-elements-elements-divider.mjs +7 -7
- package/fesm2022/novo-elements-elements-divider.mjs.map +1 -1
- package/fesm2022/novo-elements-elements-drag-drop.mjs +11 -11
- package/fesm2022/novo-elements-elements-drag-drop.mjs.map +1 -1
- package/fesm2022/novo-elements-elements-dropdown.mjs +19 -19
- package/fesm2022/novo-elements-elements-dropdown.mjs.map +1 -1
- package/fesm2022/novo-elements-elements-expansion.mjs +26 -26
- package/fesm2022/novo-elements-elements-expansion.mjs.map +1 -1
- package/fesm2022/novo-elements-elements-field.mjs +46 -46
- package/fesm2022/novo-elements-elements-field.mjs.map +1 -1
- package/fesm2022/novo-elements-elements-flex.mjs +16 -16
- package/fesm2022/novo-elements-elements-flex.mjs.map +1 -1
- package/fesm2022/novo-elements-elements-form.mjs +53 -53
- package/fesm2022/novo-elements-elements-form.mjs.map +1 -1
- package/fesm2022/novo-elements-elements-header.mjs +16 -16
- package/fesm2022/novo-elements-elements-header.mjs.map +1 -1
- package/fesm2022/novo-elements-elements-icon.mjs +7 -7
- package/fesm2022/novo-elements-elements-icon.mjs.map +1 -1
- package/fesm2022/novo-elements-elements-layout.mjs +19 -19
- package/fesm2022/novo-elements-elements-layout.mjs.map +1 -1
- package/fesm2022/novo-elements-elements-list.mjs +28 -28
- package/fesm2022/novo-elements-elements-list.mjs.map +1 -1
- package/fesm2022/novo-elements-elements-loading.mjs +19 -19
- package/fesm2022/novo-elements-elements-loading.mjs.map +1 -1
- package/fesm2022/novo-elements-elements-menu.mjs +19 -19
- package/fesm2022/novo-elements-elements-menu.mjs.map +1 -1
- package/fesm2022/novo-elements-elements-modal.mjs +26 -23
- package/fesm2022/novo-elements-elements-modal.mjs.map +1 -1
- package/fesm2022/novo-elements-elements-multi-picker.mjs +7 -7
- package/fesm2022/novo-elements-elements-multi-picker.mjs.map +1 -1
- package/fesm2022/novo-elements-elements-non-ideal-state.mjs +7 -7
- package/fesm2022/novo-elements-elements-non-ideal-state.mjs.map +1 -1
- package/fesm2022/novo-elements-elements-picker.mjs +42 -39
- package/fesm2022/novo-elements-elements-picker.mjs.map +1 -1
- package/fesm2022/novo-elements-elements-places.mjs +10 -10
- package/fesm2022/novo-elements-elements-places.mjs.map +1 -1
- package/fesm2022/novo-elements-elements-popover.mjs +10 -10
- package/fesm2022/novo-elements-elements-popover.mjs.map +1 -1
- package/fesm2022/novo-elements-elements-progress.mjs +10 -10
- package/fesm2022/novo-elements-elements-progress.mjs.map +1 -1
- package/fesm2022/novo-elements-elements-query-builder.mjs +88 -88
- package/fesm2022/novo-elements-elements-query-builder.mjs.map +1 -1
- package/fesm2022/novo-elements-elements-quick-note.mjs +10 -10
- package/fesm2022/novo-elements-elements-quick-note.mjs.map +1 -1
- package/fesm2022/novo-elements-elements-radio.mjs +10 -10
- package/fesm2022/novo-elements-elements-radio.mjs.map +1 -1
- package/fesm2022/novo-elements-elements-search.mjs +7 -7
- package/fesm2022/novo-elements-elements-search.mjs.map +1 -1
- package/fesm2022/novo-elements-elements-select-search.mjs +10 -10
- package/fesm2022/novo-elements-elements-select-search.mjs.map +1 -1
- package/fesm2022/novo-elements-elements-select.mjs +23 -19
- package/fesm2022/novo-elements-elements-select.mjs.map +1 -1
- package/fesm2022/novo-elements-elements-simple-table.mjs +119 -93
- package/fesm2022/novo-elements-elements-simple-table.mjs.map +1 -1
- package/fesm2022/novo-elements-elements-slider.mjs +7 -7
- package/fesm2022/novo-elements-elements-slider.mjs.map +1 -1
- package/fesm2022/novo-elements-elements-stepper.mjs +34 -34
- package/fesm2022/novo-elements-elements-stepper.mjs.map +1 -1
- package/fesm2022/novo-elements-elements-switch.mjs +7 -7
- package/fesm2022/novo-elements-elements-switch.mjs.map +1 -1
- package/fesm2022/novo-elements-elements-tabbed-group-picker.mjs +7 -7
- package/fesm2022/novo-elements-elements-tabbed-group-picker.mjs.map +1 -1
- package/fesm2022/novo-elements-elements-tabs.mjs +26 -26
- package/fesm2022/novo-elements-elements-tabs.mjs.map +1 -1
- package/fesm2022/novo-elements-elements-tiles.mjs +7 -7
- package/fesm2022/novo-elements-elements-tiles.mjs.map +1 -1
- package/fesm2022/novo-elements-elements-time-picker.mjs +10 -10
- package/fesm2022/novo-elements-elements-time-picker.mjs.map +1 -1
- package/fesm2022/novo-elements-elements-tip-well.mjs +7 -7
- package/fesm2022/novo-elements-elements-tip-well.mjs.map +1 -1
- package/fesm2022/novo-elements-elements-toast.mjs +10 -10
- package/fesm2022/novo-elements-elements-toast.mjs.map +1 -1
- package/fesm2022/novo-elements-elements-toolbar.mjs +10 -10
- package/fesm2022/novo-elements-elements-toolbar.mjs.map +1 -1
- package/fesm2022/novo-elements-elements-tooltip.mjs +12 -12
- package/fesm2022/novo-elements-elements-tooltip.mjs.map +1 -1
- package/fesm2022/novo-elements-elements-unless.mjs +7 -7
- package/fesm2022/novo-elements-elements-unless.mjs.map +1 -1
- package/fesm2022/novo-elements-elements-value.mjs +14 -14
- package/fesm2022/novo-elements-elements-value.mjs.map +1 -1
- package/fesm2022/novo-elements-pipes.mjs +35 -35
- package/fesm2022/novo-elements-pipes.mjs.map +1 -1
- package/fesm2022/novo-elements-services.mjs +24 -24
- package/fesm2022/novo-elements-services.mjs.map +1 -1
- package/fesm2022/novo-elements-utils.mjs +4 -4
- package/fesm2022/novo-elements-utils.mjs.map +1 -1
- package/fesm2022/novo-elements.mjs +9 -8
- package/fesm2022/novo-elements.mjs.map +1 -1
- package/index.d.ts +27 -3
- package/package.json +17 -17
- package/pipes/index.d.ts +75 -7
- package/services/index.d.ts +602 -9
- package/utils/index.d.ts +1631 -12
- package/addons/ace-editor/AceEditor.d.ts +0 -42
- package/addons/ace-editor/AceEditor.module.d.ts +0 -8
- package/addons/ckeditor/CKEditor.d.ts +0 -52
- package/addons/ckeditor/CKEditor.module.d.ts +0 -9
- package/addons/code-editor/CodeEditor.d.ts +0 -32
- package/addons/code-editor/CodeEditor.module.d.ts +0 -9
- package/elements/agenda/Agenda.module.d.ts +0 -29
- package/elements/agenda/common/AgendaDateChange.d.ts +0 -28
- package/elements/agenda/common/EventTypeLegend.d.ts +0 -10
- package/elements/agenda/common/index.d.ts +0 -2
- package/elements/agenda/day/AgendaAllDayEvent.d.ts +0 -10
- package/elements/agenda/day/AgendaDayEvent.d.ts +0 -11
- package/elements/agenda/day/AgendaDayView.d.ts +0 -151
- package/elements/agenda/day/AgendaHourSegment.d.ts +0 -10
- package/elements/agenda/day/index.d.ts +0 -4
- package/elements/agenda/month/AgendaMonthDay.d.ts +0 -17
- package/elements/agenda/month/AgendaMonthHeader.d.ts +0 -17
- package/elements/agenda/month/AgendaMonthView.d.ts +0 -113
- package/elements/agenda/month/index.d.ts +0 -3
- package/elements/agenda/pipe/DayOfMonth.pipe.d.ts +0 -9
- package/elements/agenda/pipe/EndOfWeekDisplayPipe.pipe.d.ts +0 -9
- package/elements/agenda/pipe/Hours.pipe.d.ts +0 -9
- package/elements/agenda/pipe/Month.pipe.d.ts +0 -9
- package/elements/agenda/pipe/MonthDay.pipe.d.ts +0 -9
- package/elements/agenda/pipe/Weekday.pipe.d.ts +0 -9
- package/elements/agenda/pipe/Year.pipe.d.ts +0 -9
- package/elements/agenda/pipe/index.d.ts +0 -7
- package/elements/agenda/week/AgendaWeekEvent.d.ts +0 -11
- package/elements/agenda/week/AgendaWeekHeader.d.ts +0 -17
- package/elements/agenda/week/AgendaWeekView.d.ts +0 -159
- package/elements/agenda/week/index.d.ts +0 -3
- package/elements/aside/aside-ref.d.ts +0 -17
- package/elements/aside/aside.animation.d.ts +0 -1
- package/elements/aside/aside.component.d.ts +0 -18
- package/elements/aside/aside.module.d.ts +0 -9
- package/elements/aside/aside.service.d.ts +0 -16
- package/elements/autocomplete/autocomplete.component.d.ts +0 -92
- package/elements/autocomplete/autocomplete.module.d.ts +0 -12
- package/elements/avatar/Avatar.d.ts +0 -22
- package/elements/avatar/Avatar.module.d.ts +0 -9
- package/elements/avatar/AvatarStack.d.ts +0 -12
- package/elements/breadcrumbs/Breadcrumb.d.ts +0 -13
- package/elements/breadcrumbs/Breadcrumb.module.d.ts +0 -15
- package/elements/breadcrumbs/Breadcrumb.service.d.ts +0 -9
- package/elements/breadcrumbs/Breadcrumb.tokens.d.ts +0 -13
- package/elements/breadcrumbs/Breadcrumb.types.d.ts +0 -18
- package/elements/breadcrumbs/breadcrumb-item/BreadcrumbItem.d.ts +0 -23
- package/elements/breadcrumbs/breadcrumb-item/index.d.ts +0 -1
- package/elements/button/Button.d.ts +0 -55
- package/elements/button/Button.module.d.ts +0 -8
- package/elements/calendar/Calendar.module.d.ts +0 -15
- package/elements/calendar/calendar.component.d.ts +0 -57
- package/elements/calendar/month-select/month-select.component.d.ts +0 -18
- package/elements/calendar/month-view/month-view.component.d.ts +0 -60
- package/elements/calendar/strategies/default-selection.strategy.d.ts +0 -17
- package/elements/calendar/strategies/index.d.ts +0 -4
- package/elements/calendar/strategies/multi-date-selection.strategy.d.ts +0 -9
- package/elements/calendar/strategies/range-selection.strategy.d.ts +0 -9
- package/elements/calendar/strategies/week-selection.strategy.d.ts +0 -9
- package/elements/calendar/year-select/year-select.component.d.ts +0 -20
- package/elements/card/Card.d.ts +0 -55
- package/elements/card/Card.module.d.ts +0 -12
- package/elements/category-dropdown/CategoryDropdown.d.ts +0 -32
- package/elements/category-dropdown/CategoryDropdown.module.d.ts +0 -10
- package/elements/checkbox/CheckList.d.ts +0 -23
- package/elements/checkbox/Checkbox.d.ts +0 -84
- package/elements/checkbox/Checkbox.module.d.ts +0 -11
- package/elements/chips/Chip.d.ts +0 -164
- package/elements/chips/ChipDefaults.d.ts +0 -8
- package/elements/chips/ChipInput.d.ts +0 -77
- package/elements/chips/ChipList.d.ts +0 -293
- package/elements/chips/ChipTextControl.d.ts +0 -14
- package/elements/chips/Chips.d.ts +0 -91
- package/elements/chips/Chips.module.d.ts +0 -19
- package/elements/chips/RowChips.d.ts +0 -17
- package/elements/chips/pipe/AvatarType.pipe.d.ts +0 -7
- package/elements/chips/pipe/index.d.ts +0 -1
- package/elements/color-picker/color-input.component.d.ts +0 -57
- package/elements/color-picker/color-picker.component.d.ts +0 -41
- package/elements/color-picker/color-picker.module.d.ts +0 -15
- package/elements/color-picker/color-swatch.component.d.ts +0 -31
- package/elements/common/common.module.d.ts +0 -24
- package/elements/common/directives/accent.directive.d.ts +0 -14
- package/elements/common/directives/bg.directive.d.ts +0 -11
- package/elements/common/directives/border.directive.d.ts +0 -29
- package/elements/common/directives/color.directive.d.ts +0 -11
- package/elements/common/directives/fill.directive.d.ts +0 -10
- package/elements/common/directives/flex.directive.d.ts +0 -12
- package/elements/common/directives/space.directive.d.ts +0 -54
- package/elements/common/directives/switch-cases.directive.d.ts +0 -16
- package/elements/common/directives/theme.directive.d.ts +0 -10
- package/elements/common/directives/visible.directive.d.ts +0 -10
- package/elements/common/error/error-options.d.ts +0 -14
- package/elements/common/mixins/color.mixin.d.ts +0 -15
- package/elements/common/mixins/constructor.d.ts +0 -9
- package/elements/common/mixins/disabled.mixin.d.ts +0 -10
- package/elements/common/mixins/error-state.mixin.d.ts +0 -25
- package/elements/common/mixins/index.d.ts +0 -9
- package/elements/common/mixins/overlay.mixin.d.ts +0 -17
- package/elements/common/mixins/required.mixin.d.ts +0 -10
- package/elements/common/mixins/size.mixin.d.ts +0 -15
- package/elements/common/mixins/tab-index.mixin.d.ts +0 -13
- package/elements/common/mixins/types.d.ts +0 -5
- package/elements/common/novo-template/index.d.ts +0 -1
- package/elements/common/novo-template/novo-template.directive.d.ts +0 -11
- package/elements/common/option/index.d.ts +0 -13
- package/elements/common/option/optgroup.component.d.ts +0 -32
- package/elements/common/option/option-parent.d.ts +0 -14
- package/elements/common/option/option.component.d.ts +0 -140
- package/elements/common/overlay/Overlay.d.ts +0 -71
- package/elements/common/overlay/Overlay.module.d.ts +0 -11
- package/elements/common/overlay/index.d.ts +0 -2
- package/elements/common/selection/index.d.ts +0 -8
- package/elements/common/selection/pseudo-checkbox/pseudo-checkbox.component.d.ts +0 -32
- package/elements/common/theme/theme-options.d.ts +0 -25
- package/elements/common/typography/base/base-text.component.d.ts +0 -33
- package/elements/common/typography/caption/caption.component.d.ts +0 -16
- package/elements/common/typography/index.d.ts +0 -7
- package/elements/common/typography/label/label.component.d.ts +0 -10
- package/elements/common/typography/link/link.component.d.ts +0 -17
- package/elements/common/typography/text/text.component.d.ts +0 -17
- package/elements/common/typography/text.types.d.ts +0 -3
- package/elements/common/typography/title/title.component.d.ts +0 -18
- package/elements/data-table/ListInteractionTypes.d.ts +0 -10
- package/elements/data-table/cell-headers/data-table-checkbox-header-cell.component.d.ts +0 -24
- package/elements/data-table/cell-headers/data-table-expand-header-cell.component.d.ts +0 -16
- package/elements/data-table/cell-headers/data-table-header-cell-filter-header.component.d.ts +0 -16
- package/elements/data-table/cell-headers/data-table-header-cell.component.d.ts +0 -91
- package/elements/data-table/cell-headers/data-table-header-cell.directive.d.ts +0 -14
- package/elements/data-table/cell-headers/index.d.ts +0 -5
- package/elements/data-table/cells/data-table-cell.component.d.ts +0 -20
- package/elements/data-table/cells/data-table-checkbox-cell.component.d.ts +0 -23
- package/elements/data-table/cells/data-table-expand-cell.component.d.ts +0 -19
- package/elements/data-table/cells/index.d.ts +0 -3
- package/elements/data-table/data-table-clear-button.component.d.ts +0 -23
- package/elements/data-table/data-table-expand.directive.d.ts +0 -21
- package/elements/data-table/data-table.component.d.ts +0 -126
- package/elements/data-table/data-table.module.d.ts +0 -42
- package/elements/data-table/data-table.pipes.d.ts +0 -52
- package/elements/data-table/data-table.source.d.ts +0 -22
- package/elements/data-table/data-table.token.d.ts +0 -27
- package/elements/data-table/interfaces.d.ts +0 -268
- package/elements/data-table/pagination/data-table-pagination.component.d.ts +0 -62
- package/elements/data-table/pagination/index.d.ts +0 -1
- package/elements/data-table/rows/data-table-header-row.component.d.ts +0 -9
- package/elements/data-table/rows/data-table-row.component.d.ts +0 -10
- package/elements/data-table/rows/index.d.ts +0 -2
- package/elements/data-table/services/data-table-filter-utils.d.ts +0 -3
- package/elements/data-table/services/index.d.ts +0 -3
- package/elements/data-table/services/remote-data-table.service.d.ts +0 -11
- package/elements/data-table/services/static-data-table.service.d.ts +0 -15
- package/elements/data-table/sort-filter/index.d.ts +0 -3
- package/elements/data-table/sort-filter/sort-button.animations.d.ts +0 -5
- package/elements/data-table/sort-filter/sort-button.component.d.ts +0 -21
- package/elements/data-table/sort-filter/sort-direction.d.ts +0 -5
- package/elements/data-table/sort-filter/sort-filter.directive.d.ts +0 -11
- package/elements/data-table/state/data-table-state.service.d.ts +0 -52
- package/elements/data-table/state/index.d.ts +0 -1
- package/elements/date-picker/DatePicker.d.ts +0 -113
- package/elements/date-picker/DatePicker.module.d.ts +0 -19
- package/elements/date-picker/DatePickerInput.d.ts +0 -146
- package/elements/date-picker/DateRangeInput.d.ts +0 -77
- package/elements/date-picker/MultiDateInput.d.ts +0 -67
- package/elements/date-time-picker/DateTimePicker.d.ts +0 -51
- package/elements/date-time-picker/DateTimePicker.module.d.ts +0 -14
- package/elements/date-time-picker/DateTimePickerInput.d.ts +0 -50
- package/elements/divider/divider.component.d.ts +0 -16
- package/elements/divider/divider.module.d.ts +0 -7
- package/elements/drag-drop/drag-drop-box.d.ts +0 -65
- package/elements/drag-drop/drag-drop.module.d.ts +0 -7
- package/elements/dropdown/Dropdown.d.ts +0 -108
- package/elements/dropdown/Dropdown.module.d.ts +0 -8
- package/elements/expansion/accordion.d.ts +0 -24
- package/elements/expansion/expansion-animations.d.ts +0 -9
- package/elements/expansion/expansion-panel-content.d.ts +0 -12
- package/elements/expansion/expansion-panel-header.d.ts +0 -52
- package/elements/expansion/expansion-panel.d.ts +0 -57
- package/elements/expansion/expansion.module.d.ts +0 -13
- package/elements/field/error/error.d.ts +0 -10
- package/elements/field/error/index.d.ts +0 -1
- package/elements/field/field-control.d.ts +0 -54
- package/elements/field/field.d.ts +0 -59
- package/elements/field/field.module.d.ts +0 -20
- package/elements/field/fieldset.d.ts +0 -18
- package/elements/field/formats/base-format.d.ts +0 -13
- package/elements/field/formats/date-format.d.ts +0 -26
- package/elements/field/formats/date-range-format.d.ts +0 -36
- package/elements/field/formats/date-time-format.d.ts +0 -35
- package/elements/field/formats/time-format.d.ts +0 -38
- package/elements/field/hint/hint.d.ts +0 -11
- package/elements/field/hint/index.d.ts +0 -1
- package/elements/field/input.d.ts +0 -165
- package/elements/field/picker.directive.d.ts +0 -22
- package/elements/field/toggle/picker-toggle.component.d.ts +0 -48
- package/elements/flex/Box.d.ts +0 -11
- package/elements/flex/Flex.d.ts +0 -17
- package/elements/flex/Flex.module.d.ts +0 -10
- package/elements/flex/Grid.d.ts +0 -14
- package/elements/form/Control.d.ts +0 -116
- package/elements/form/ControlGroup.d.ts +0 -111
- package/elements/form/ControlTemplates.d.ts +0 -12
- package/elements/form/DynamicForm.d.ts +0 -54
- package/elements/form/FieldInteractionApi.d.ts +0 -177
- package/elements/form/FieldInteractionApiTypes.d.ts +0 -29
- package/elements/form/FieldInteractionModals.d.ts +0 -21
- package/elements/form/Form.d.ts +0 -24
- package/elements/form/Form.module.d.ts +0 -39
- package/elements/form/FormControls.d.ts +0 -24
- package/elements/form/FormInterfaces.d.ts +0 -29
- package/elements/form/FormValidators.d.ts +0 -22
- package/elements/form/NovoFormControl.d.ts +0 -112
- package/elements/form/NovoFormGroup.d.ts +0 -19
- package/elements/form/controls/BaseControl.d.ts +0 -119
- package/elements/form/controls/ControlFactory.d.ts +0 -4
- package/elements/form/controls/ace-editor/AceEditorControl.d.ts +0 -5
- package/elements/form/controls/ace-editor/index.d.ts +0 -1
- package/elements/form/controls/address/AddressControl.d.ts +0 -5
- package/elements/form/controls/address/index.d.ts +0 -1
- package/elements/form/controls/check-list/CheckListControl.d.ts +0 -5
- package/elements/form/controls/check-list/index.d.ts +0 -1
- package/elements/form/controls/checkbox/CheckboxControl.d.ts +0 -5
- package/elements/form/controls/checkbox/index.d.ts +0 -1
- package/elements/form/controls/code-editor/CodeEditorControl.d.ts +0 -5
- package/elements/form/controls/code-editor/index.d.ts +0 -1
- package/elements/form/controls/custom/CustomControl.d.ts +0 -5
- package/elements/form/controls/custom/index.d.ts +0 -1
- package/elements/form/controls/date/DateControl.d.ts +0 -5
- package/elements/form/controls/date/index.d.ts +0 -1
- package/elements/form/controls/date-time/DateTimeControl.d.ts +0 -5
- package/elements/form/controls/date-time/index.d.ts +0 -1
- package/elements/form/controls/editor/EditorControl.d.ts +0 -6
- package/elements/form/controls/editor/index.d.ts +0 -1
- package/elements/form/controls/file/FileControl.d.ts +0 -5
- package/elements/form/controls/file/index.d.ts +0 -1
- package/elements/form/controls/grouped/GroupedControl.d.ts +0 -6
- package/elements/form/controls/grouped/index.d.ts +0 -1
- package/elements/form/controls/index.d.ts +0 -24
- package/elements/form/controls/native-select/NativeSelectControl.d.ts +0 -6
- package/elements/form/controls/native-select/index.d.ts +0 -1
- package/elements/form/controls/picker/PickerControl.d.ts +0 -9
- package/elements/form/controls/picker/index.d.ts +0 -1
- package/elements/form/controls/quick-note/QuickNoteControl.d.ts +0 -6
- package/elements/form/controls/quick-note/index.d.ts +0 -1
- package/elements/form/controls/radio/RadioControl.d.ts +0 -6
- package/elements/form/controls/radio/index.d.ts +0 -1
- package/elements/form/controls/read-only/ReadOnlyControl.d.ts +0 -5
- package/elements/form/controls/read-only/index.d.ts +0 -1
- package/elements/form/controls/select/SelectControl.d.ts +0 -6
- package/elements/form/controls/select/index.d.ts +0 -1
- package/elements/form/controls/switch/SwitchControl.d.ts +0 -5
- package/elements/form/controls/switch/index.d.ts +0 -1
- package/elements/form/controls/text-area/TextAreaControl.d.ts +0 -5
- package/elements/form/controls/text-area/index.d.ts +0 -1
- package/elements/form/controls/textbox/TextBoxControl.d.ts +0 -9
- package/elements/form/controls/textbox/index.d.ts +0 -1
- package/elements/form/controls/tiles/TilesControl.d.ts +0 -6
- package/elements/form/controls/tiles/index.d.ts +0 -1
- package/elements/form/controls/time/TimeControl.d.ts +0 -5
- package/elements/form/controls/time/index.d.ts +0 -1
- package/elements/form/controls/timezone/TimezoneControl.d.ts +0 -7
- package/elements/form/controls/timezone/index.d.ts +0 -1
- package/elements/form/extras/FormExtras.module.d.ts +0 -21
- package/elements/form/extras/address/Address.d.ts +0 -70
- package/elements/form/extras/address/index.d.ts +0 -1
- package/elements/form/extras/file/FileInput.d.ts +0 -134
- package/elements/form/extras/file/extras/file/File.d.ts +0 -22
- package/elements/form/extras/file/extras/file/index.d.ts +0 -1
- package/elements/form/extras/file/extras/index.d.ts +0 -1
- package/elements/form/extras/file/index.d.ts +0 -2
- package/elements/form/extras/index.d.ts +0 -4
- package/elements/form/extras/number-range/index.d.ts +0 -1
- package/elements/form/extras/number-range/number-range.component.d.ts +0 -27
- package/elements/form/utils/FormUtils.d.ts +0 -79
- package/elements/form/utils/index.d.ts +0 -1
- package/elements/header/Header.d.ts +0 -38
- package/elements/header/Header.module.d.ts +0 -11
- package/elements/icon/Icon.d.ts +0 -27
- package/elements/icon/Icon.module.d.ts +0 -8
- package/elements/layout/container/layout-container.component.d.ts +0 -118
- package/elements/layout/content/layout-content.component.d.ts +0 -13
- package/elements/layout/layout.constants.d.ts +0 -19
- package/elements/layout/layout.module.d.ts +0 -11
- package/elements/layout/rail/rail.component.d.ts +0 -9
- package/elements/layout/sidenav/sidenav.animations.d.ts +0 -8
- package/elements/layout/sidenav/sidenav.component.d.ts +0 -147
- package/elements/list/List.d.ts +0 -47
- package/elements/list/List.module.d.ts +0 -10
- package/elements/loading/Loading.d.ts +0 -54
- package/elements/loading/Loading.module.d.ts +0 -8
- package/elements/menu/menu-content.component.d.ts +0 -45
- package/elements/menu/menu-item.directive.d.ts +0 -21
- package/elements/menu/menu.component.d.ts +0 -39
- package/elements/menu/menu.directive.d.ts +0 -29
- package/elements/menu/menu.module.d.ts +0 -17
- package/elements/menu/menu.service.d.ts +0 -60
- package/elements/menu/menu.tokens.d.ts +0 -3
- package/elements/menu/menu.types.d.ts +0 -8
- package/elements/modal/modal-container.component.d.ts +0 -20
- package/elements/modal/modal-ref.d.ts +0 -25
- package/elements/modal/modal.animation.d.ts +0 -1
- package/elements/modal/modal.component.d.ts +0 -21
- package/elements/modal/modal.module.d.ts +0 -12
- package/elements/modal/modal.service.d.ts +0 -19
- package/elements/multi-picker/MultiPicker.d.ts +0 -110
- package/elements/multi-picker/MultiPicker.module.d.ts +0 -11
- package/elements/non-ideal-state/NonIdealState.d.ts +0 -10
- package/elements/non-ideal-state/NonIdealState.module.d.ts +0 -10
- package/elements/picker/Picker.d.ts +0 -78
- package/elements/picker/Picker.module.d.ts +0 -22
- package/elements/picker/extras/base-picker-results/BasePickerResults.d.ts +0 -96
- package/elements/picker/extras/base-picker-results/index.d.ts +0 -1
- package/elements/picker/extras/checklist-picker-results/ChecklistPickerResults.d.ts +0 -24
- package/elements/picker/extras/checklist-picker-results/index.d.ts +0 -1
- package/elements/picker/extras/distributionlist-picker-results/DistributionListPickerResults.d.ts +0 -16
- package/elements/picker/extras/distributionlist-picker-results/index.d.ts +0 -1
- package/elements/picker/extras/entity-picker-results/EntityPickerResults.d.ts +0 -37
- package/elements/picker/extras/entity-picker-results/index.d.ts +0 -1
- package/elements/picker/extras/grouped-multi-picker-results/GroupedMultiPickerResults.d.ts +0 -45
- package/elements/picker/extras/grouped-multi-picker-results/index.d.ts +0 -1
- package/elements/picker/extras/index.d.ts +0 -9
- package/elements/picker/extras/mixed-multi-picker-results/MixedMultiPickerResults.d.ts +0 -50
- package/elements/picker/extras/mixed-multi-picker-results/index.d.ts +0 -1
- package/elements/picker/extras/picker-results/PickerResults.d.ts +0 -14
- package/elements/picker/extras/picker-results/index.d.ts +0 -1
- package/elements/picker/extras/skills-picker-results/SkillsSpecialtyPickerResults.d.ts +0 -24
- package/elements/picker/extras/skills-picker-results/index.d.ts +0 -1
- package/elements/picker/extras/workers-comp-codes-picker-results/WorkersCompCodesPickerResults.d.ts +0 -13
- package/elements/picker/extras/workers-comp-codes-picker-results/index.d.ts +0 -1
- package/elements/places/places.component.d.ts +0 -85
- package/elements/places/places.module.d.ts +0 -10
- package/elements/places/places.service.d.ts +0 -25
- package/elements/popover/PopOver.d.ts +0 -37
- package/elements/popover/PopOver.module.d.ts +0 -9
- package/elements/popover/PopOverContent.d.ts +0 -49
- package/elements/progress/Progress.d.ts +0 -24
- package/elements/progress/Progress.module.d.ts +0 -9
- package/elements/progress/ProgressBar.d.ts +0 -45
- package/elements/progress/ProgressConstants.d.ts +0 -10
- package/elements/query-builder/condition-builder/condition-builder.component.d.ts +0 -94
- package/elements/query-builder/condition-definitions/abstract-condition.definition.d.ts +0 -35
- package/elements/query-builder/condition-definitions/address-condition.definition.d.ts +0 -45
- package/elements/query-builder/condition-definitions/boolean-condition.definition.d.ts +0 -14
- package/elements/query-builder/condition-definitions/date-condition.definition.d.ts +0 -19
- package/elements/query-builder/condition-definitions/date-time-condition.definition.d.ts +0 -19
- package/elements/query-builder/condition-definitions/id-condition.definition.d.ts +0 -11
- package/elements/query-builder/condition-definitions/number-condition.definition.d.ts +0 -14
- package/elements/query-builder/condition-definitions/picker-condition.definition.d.ts +0 -23
- package/elements/query-builder/condition-definitions/string-condition.definition.d.ts +0 -21
- package/elements/query-builder/condition-group/condition-group.component.d.ts +0 -37
- package/elements/query-builder/condition-templates/condition-templates.component.d.ts +0 -8
- package/elements/query-builder/criteria-builder/criteria-builder.component.d.ts +0 -54
- package/elements/query-builder/query-builder.directives.d.ts +0 -66
- package/elements/query-builder/query-builder.module.d.ts +0 -46
- package/elements/query-builder/query-builder.service.d.ts +0 -54
- package/elements/query-builder/query-builder.tokens.d.ts +0 -4
- package/elements/query-builder/query-builder.types.d.ts +0 -128
- package/elements/quick-note/QuickNote.d.ts +0 -142
- package/elements/quick-note/QuickNote.module.d.ts +0 -13
- package/elements/quick-note/extras/index.d.ts +0 -1
- package/elements/quick-note/extras/quick-note-results/QuickNoteResults.d.ts +0 -33
- package/elements/quick-note/extras/quick-note-results/index.d.ts +0 -1
- package/elements/radio/Radio.d.ts +0 -40
- package/elements/radio/Radio.module.d.ts +0 -10
- package/elements/radio/RadioGroup.d.ts +0 -91
- package/elements/radio/tokens.d.ts +0 -9
- package/elements/search/SearchBox.d.ts +0 -71
- package/elements/search/SearchBox.module.d.ts +0 -12
- package/elements/select/Select.d.ts +0 -216
- package/elements/select/Select.extupdatefix.directive.d.ts +0 -17
- package/elements/select/Select.module.d.ts +0 -17
- package/elements/select-search/select-search-clear.directive.d.ts +0 -12
- package/elements/select-search/select-search.component.d.ts +0 -239
- package/elements/select-search/select-search.module.d.ts +0 -17
- package/elements/simple-table/PaginationOld.d.ts +0 -42
- package/elements/simple-table/activity-table-renderers.d.ts +0 -4
- package/elements/simple-table/cell-header.d.ts +0 -67
- package/elements/simple-table/cell.d.ts +0 -100
- package/elements/simple-table/interfaces.d.ts +0 -81
- package/elements/simple-table/pagination.d.ts +0 -40
- package/elements/simple-table/row.d.ts +0 -29
- package/elements/simple-table/simple-table.module.d.ts +0 -26
- package/elements/simple-table/sort.d.ts +0 -25
- package/elements/simple-table/state.d.ts +0 -25
- package/elements/simple-table/table-source.d.ts +0 -62
- package/elements/simple-table/table.d.ts +0 -72
- package/elements/slider/Slider.d.ts +0 -21
- package/elements/slider/Slider.module.d.ts +0 -9
- package/elements/stepper/step-header.component.d.ts +0 -48
- package/elements/stepper/step-label.component.d.ts +0 -8
- package/elements/stepper/step-status.component.d.ts +0 -7
- package/elements/stepper/stepper-buttons.component.d.ts +0 -12
- package/elements/stepper/stepper.animations.d.ts +0 -6
- package/elements/stepper/stepper.component.d.ts +0 -44
- package/elements/stepper/stepper.module.d.ts +0 -17
- package/elements/switch/Switch.d.ts +0 -23
- package/elements/switch/Switch.module.d.ts +0 -10
- package/elements/tabbed-group-picker/TabbedGroupPicker.d.ts +0 -128
- package/elements/tabbed-group-picker/TabbedGroupPicker.module.d.ts +0 -17
- package/elements/tabs/Tabs.d.ts +0 -95
- package/elements/tabs/Tabs.module.d.ts +0 -8
- package/elements/tiles/Tiles.d.ts +0 -33
- package/elements/tiles/Tiles.module.d.ts +0 -10
- package/elements/time-picker/TimePicker.d.ts +0 -58
- package/elements/time-picker/TimePicker.module.d.ts +0 -14
- package/elements/time-picker/TimePickerInput.d.ts +0 -71
- package/elements/tip-well/TipWell.d.ts +0 -26
- package/elements/tip-well/TipWell.module.d.ts +0 -9
- package/elements/toast/Toast.d.ts +0 -37
- package/elements/toast/Toast.module.d.ts +0 -9
- package/elements/toast/ToastService.d.ts +0 -45
- package/elements/toolbar/toolbar.component.d.ts +0 -22
- package/elements/toolbar/toolbar.module.d.ts +0 -8
- package/elements/tooltip/Tooltip.component.d.ts +0 -16
- package/elements/tooltip/Tooltip.directive.d.ts +0 -44
- package/elements/tooltip/Tooltip.module.d.ts +0 -9
- package/elements/unless/Unless.d.ts +0 -16
- package/elements/unless/Unless.module.d.ts +0 -8
- package/elements/value/EntityList.d.ts +0 -16
- package/elements/value/Render.d.ts +0 -70
- package/elements/value/Value.d.ts +0 -46
- package/elements/value/Value.module.d.ts +0 -12
- package/novo-elements.module.d.ts +0 -11
- package/novo-elements.providers.d.ts +0 -12
- package/pipes/Pipes.module.d.ts +0 -15
- package/pipes/decode-uri/DecodeURI.d.ts +0 -8
- package/pipes/decode-uri/index.d.ts +0 -1
- package/pipes/default/Default.d.ts +0 -8
- package/pipes/default/index.d.ts +0 -1
- package/pipes/group-by/GroupBy.d.ts +0 -7
- package/pipes/group-by/index.d.ts +0 -1
- package/pipes/highlight/Highlight.d.ts +0 -9
- package/pipes/highlight/index.d.ts +0 -1
- package/pipes/iso8601/index.d.ts +0 -4
- package/pipes/iso8601/iso-date-range.pipe.d.ts +0 -10
- package/pipes/iso8601/iso-date.pipe.d.ts +0 -8
- package/pipes/iso8601/iso-time-range.pipe.d.ts +0 -10
- package/pipes/iso8601/iso-time.pipe.d.ts +0 -8
- package/pipes/plural/Plural.d.ts +0 -8
- package/pipes/plural/index.d.ts +0 -1
- package/services/component-utils/ComponentUtils.d.ts +0 -7
- package/services/component-utils/index.d.ts +0 -1
- package/services/data-provider/ArrayCollection.d.ts +0 -168
- package/services/data-provider/Collection.d.ts +0 -78
- package/services/data-provider/CollectionEvent.d.ts +0 -17
- package/services/data-provider/PagedArrayCollection.d.ts +0 -18
- package/services/data-provider/PagedCollection.d.ts +0 -15
- package/services/data-provider/index.d.ts +0 -5
- package/services/date-format/DateFormat.d.ts +0 -28
- package/services/date-format/index.d.ts +0 -1
- package/services/global/global.service.d.ts +0 -17
- package/services/global/index.d.ts +0 -1
- package/services/novo-label-service.d.ts +0 -202
- package/services/options/OptionsService.d.ts +0 -12
- package/services/options/index.d.ts +0 -1
- package/services/security/Security.d.ts +0 -23
- package/services/security/index.d.ts +0 -1
- package/services/storage/index.d.ts +0 -1
- package/services/storage/storage.service.d.ts +0 -8
- package/services/template/NovoTemplateService.d.ts +0 -10
- package/services/template/index.d.ts +0 -1
- package/utils/Helpers.d.ts +0 -188
- package/utils/app-bridge/AppBridge.d.ts +0 -178
- package/utils/app-bridge/index.d.ts +0 -2
- package/utils/app-bridge/interfaces.d.ts +0 -58
- package/utils/base-renderer/BaseRenderer.d.ts +0 -9
- package/utils/base-renderer/index.d.ts +0 -1
- package/utils/calendar-utils/CalendarUtils.d.ts +0 -151
- package/utils/calendar-utils/index.d.ts +0 -1
- package/utils/color-utils/ColorUtils.d.ts +0 -40
- package/utils/color-utils/index.d.ts +0 -1
- package/utils/countries/Countries.d.ts +0 -47
- package/utils/countries/index.d.ts +0 -1
- package/utils/date/Date.d.ts +0 -50
- package/utils/date/Date.types.d.ts +0 -71
- package/utils/date/convert-tokens.d.ts +0 -5
- package/utils/date/index.d.ts +0 -5
- package/utils/date/legacy-parse.d.ts +0 -15
- package/utils/date/timezone-support.d.ts +0 -5
- package/utils/decorators/BooleanInput.d.ts +0 -1
- package/utils/decorators/index.d.ts +0 -1
- package/utils/deferred/Deferred.d.ts +0 -8
- package/utils/deferred/index.d.ts +0 -1
- package/utils/key-codes/Key.d.ts +0 -669
- package/utils/key-codes/KeyCodes.d.ts +0 -93
- package/utils/key-codes/index.d.ts +0 -2
- package/utils/notifier/index.d.ts +0 -1
- package/utils/notifier/notifier.util.d.ts +0 -1
- package/utils/outside-click/OutsideClick.d.ts +0 -27
- package/utils/outside-click/index.d.ts +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"novo-elements-elements-field.mjs","sources":["../../../projects/novo-elements/src/elements/field/error/error.ts","../../../projects/novo-elements/src/elements/field/error/error.html","../../../projects/novo-elements/src/elements/field/field-control.ts","../../../projects/novo-elements/src/elements/field/hint/hint.ts","../../../projects/novo-elements/src/elements/field/hint/hint.html","../../../projects/novo-elements/src/elements/field/field.ts","../../../projects/novo-elements/src/elements/field/field.html","../../../projects/novo-elements/src/elements/field/fieldset.ts","../../../projects/novo-elements/src/elements/field/fieldset.html","../../../projects/novo-elements/src/elements/field/formats/base-format.ts","../../../projects/novo-elements/src/elements/field/formats/date-format.ts","../../../projects/novo-elements/src/elements/field/formats/date-range-format.ts","../../../projects/novo-elements/src/elements/field/formats/date-time-format.ts","../../../projects/novo-elements/src/elements/field/formats/time-format.ts","../../../projects/novo-elements/src/elements/field/input.ts","../../../projects/novo-elements/src/elements/field/picker.directive.ts","../../../projects/novo-elements/src/elements/field/toggle/picker-toggle.component.ts","../../../projects/novo-elements/src/elements/field/toggle/picker-toggle.component.html","../../../projects/novo-elements/src/elements/field/field.module.ts","../../../projects/novo-elements/src/elements/field/novo-elements-elements-field.ts"],"sourcesContent":["// NG2\nimport { Component, OnInit } from '@angular/core';\nimport { DomSanitizer } from '@angular/platform-browser';\n\n@Component({\n selector: 'novo-error',\n templateUrl: './error.html',\n styleUrls: ['./error.scss'],\n standalone: false,\n})\nexport class NovoErrorElement implements OnInit {\n constructor(private sanitizer: DomSanitizer) {}\n\n ngOnInit(): any {}\n}\n","<ng-content></ng-content>","import { Directive } from '@angular/core';\nimport { NgControl } from '@angular/forms';\nimport { Observable } from 'rxjs';\n\n/** An interface which allows a control to work inside of a `NovoField`. */\n@Directive()\nexport abstract class NovoFieldControl<T> {\n /** The value of the control. */\n value: T | null;\n\n /** The last key pressed. */\n lastKeyValue: string | null;\n\n /** The last cursor position. */\n lastCaretPosition: number | null;\n\n /**\n * Stream that emits whenever the state of the control changes such that the parent `NovoField`\n * needs to run change detection.\n */\n readonly stateChanges: Observable<void>;\n\n /** The element ID for this control. */\n readonly id: string;\n\n /** The placeholder for this control. */\n readonly placeholder: string;\n\n /** Gets the NgControl for this control. */\n readonly ngControl: NgControl | null;\n\n /** Whether the control is focused. */\n readonly focused: boolean;\n\n /** Whether the control is empty. */\n readonly empty: boolean;\n\n /** Whether the `NovoField` label should try to float. */\n // readonly shouldLabelFloat: boolean;\n // readonly shouldFieldHaveUnderline: boolean;\n\n /** Whether the control is required. */\n readonly required: boolean;\n\n /** Whether the control is disabled. */\n readonly disabled: boolean;\n\n /** Whether the control is in an error state. */\n readonly errorState: boolean;\n\n /** Whether the control can have multiple values. */\n readonly multiple?: boolean;\n /**\n * An optional name for the control type that can be used to distinguish `novo-form-field` elements\n * based on their control type. The form field will add a class,\n * `novo-form-field-type-{{controlType}}` to its root element.\n */\n readonly controlType?: string;\n\n /**\n * Whether the input is currently in an autofilled state. If property is not present on the\n * control it is assumed to be false.\n */\n readonly autofilled?: boolean;\n\n /** Sets the list of element IDs that currently describe this control. */\n abstract setDescribedByIds(ids: string[]): void;\n\n /** Handles a click on the control's container. */\n abstract onContainerClick(event: MouseEvent): void;\n\n abstract focus(options?: FocusOptions): void;\n}\n","// NG2\nimport { Component, Input, OnInit } from '@angular/core';\n\nlet nextUniqueId = 0;\n@Component({\n selector: 'novo-hint',\n templateUrl: './hint.html',\n styleUrls: ['./hint.scss'],\n host: {\n class: 'novo-hint',\n '[class.novo-field-hint-end]': 'align === \"end\"',\n '[attr.id]': 'id',\n // Remove align attribute to prevent it from interfering with layout.\n '[attr.align]': 'null',\n },\n standalone: false,\n})\nexport class NovoHintElement implements OnInit {\n /** Whether to align the hint label at the start or end of the line. */\n @Input() align: 'start' | 'end' = 'start';\n\n /** Unique ID for the hint. Used for the aria-describedby on the form field control. */\n @Input() id: string = `novo-hint-${nextUniqueId++}`;\n\n ngOnInit(): any {}\n}\n","<ng-content></ng-content>","// NG2\nimport {\n AfterContentInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ContentChild,\n ContentChildren,\n Directive,\n ElementRef,\n EventEmitter,\n HostListener,\n InjectionToken,\n Input,\n OnDestroy,\n Output,\n QueryList,\n ViewChild,\n} from '@angular/core';\nimport { NgControl } from '@angular/forms';\nimport { fromEvent, Subject, Subscription } from 'rxjs';\nimport { startWith, takeUntil } from 'rxjs/operators';\nimport { NovoLabel, HasOverlay, NOVO_OVERLAY_CONTAINER } from 'novo-elements/elements/common';\nimport { NovoErrorElement } from './error/error';\nimport { NovoFieldControl } from './field-control';\nimport { NovoHintElement } from './hint/hint';\n\n@Directive({\n selector: '[novoPrefix]',\n standalone: false,\n})\nexport class NovoFieldPrefixDirective {}\n@Directive({\n selector: '[novoSuffix]',\n standalone: false,\n})\nexport class NovoFieldSuffixDirective {}\n\nconst NOVO_INPUT_UNDERLINED_TYPES = [\n 'text',\n 'date',\n 'time',\n 'datetime-local',\n 'password',\n 'email',\n 'tel',\n 'select',\n 'textarea',\n 'number',\n 'novo-chip-list',\n 'chip-list',\n];\nexport const NOVO_FORM_FIELD = new InjectionToken<NovoFieldElement>('NovoFormField');\n\n@Component({\n selector: 'novo-field',\n templateUrl: './field.html',\n styleUrls: ['./field.scss', './field-standard.scss', './field-fill.scss', './field-outline.scss', './field-list.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n class: 'novo-field',\n '[class.novo-field-layout-horizontal]': 'layout==\"horizontal\"',\n '[class.novo-field-layout-vertical]': 'layout==\"vertical\"',\n '[class.novo-field-appearance-standard]': 'appearance == \"standard\"',\n '[class.novo-field-appearance-fill]': 'appearance == \"fill\"',\n '[class.novo-field-appearance-outline]': 'appearance == \"outline\"',\n '[class.novo-field-appearance-list]': 'appearance == \"list\"',\n '[class.novo-field-appearance-underlined]': '_isUnderlinedInput()',\n '[class.novo-field-invalid]': '_control.errorState',\n '[class.novo-field-has-label]': '_hasLabel()',\n '[class.novo-field-no-label]': '!_hasLabel()',\n '[class.novo-field-disabled]': '_control.disabled',\n '[class.novo-field-autofilled]': '_control.autofilled',\n '[class.novo-focused]': '_control.focused',\n '[class.ng-untouched]': '_shouldForward(\"untouched\")',\n '[class.ng-touched]': '_shouldForward(\"touched\")',\n '[class.ng-pristine]': '_shouldForward(\"pristine\")',\n '[class.ng-dirty]': '_shouldForward(\"dirty\")',\n '[class.ng-valid]': '_shouldForward(\"valid\")',\n '[class.ng-invalid]': '_shouldForward(\"invalid\")',\n '[class.ng-pending]': '_shouldForward(\"pending\")',\n },\n providers: [{ provide: NOVO_FORM_FIELD, useExisting: NovoFieldElement }],\n standalone: false,\n})\nexport class NovoFieldElement implements AfterContentInit, OnDestroy {\n private _labelClicks = Subscription.EMPTY;\n\n @ViewChild('inputContainer') _inputContainerRef: ElementRef;\n\n @ContentChild(NovoLabel) _labelElement: NovoLabel;\n @ContentChildren(NovoHintElement) _hintElements: QueryList<NovoHintElement>;\n @ContentChildren(NovoErrorElement) _errorElements: QueryList<NovoErrorElement>;\n @ContentChildren(NovoFieldPrefixDirective) _prefixElements: QueryList<NovoFieldPrefixDirective>;\n @ContentChildren(NovoFieldSuffixDirective) _suffixElements: QueryList<NovoFieldSuffixDirective>;\n @ContentChildren(NOVO_OVERLAY_CONTAINER) _overlayElements: QueryList<HasOverlay>;\n\n @ContentChild(NovoFieldControl) _control: NovoFieldControl<any>;\n\n @Input() layout: 'horizontal' | 'vertical' = 'vertical';\n @Input() appearance: 'standard' | 'outline' | 'fill' | 'list' = 'standard';\n /**\n * When this field has a picker element, express which element it should be parented to\n */\n @Input() customOverlayOrigin: ElementRef;\n\n @Input()\n width: string;\n\n private _destroyed = new Subject<void>();\n\n @Output() valueChanges: EventEmitter<any> = new EventEmitter();\n @Output() stateChanges: EventEmitter<void> = new EventEmitter();\n\n constructor(public _elementRef: ElementRef, private _changeDetectorRef: ChangeDetectorRef) {}\n /**\n * Gets an ElementRef for the element that a overlay attached to the form-field should be\n * positioned relative to.\n */\n getConnectedOverlayOrigin(): ElementRef {\n return this.customOverlayOrigin || this._inputContainerRef || this._elementRef;\n }\n\n ngAfterContentInit(): any {\n this._validateControlChild();\n\n const control = this._control;\n if (control.controlType) {\n this._elementRef.nativeElement.classList.add(`novo-field-type-${control.controlType}`);\n this._elementRef.nativeElement.setAttribute('data-control-type', control.controlType);\n }\n\n if (control.id) {\n this._elementRef.nativeElement.setAttribute('data-control-id', control.id);\n }\n\n if (control.ngControl?.name) {\n this._elementRef.nativeElement.setAttribute('data-control-key', control.ngControl.name);\n }\n\n // Subscribe to changes in the child control state in order to update the form field UI.\n control.stateChanges.pipe(startWith(null)).subscribe(() => {\n this.stateChanges.next();\n this._changeDetectorRef.markForCheck();\n });\n\n // Run change detection if the value changes.\n if (control.ngControl && control.ngControl.valueChanges) {\n control.ngControl.valueChanges.pipe(takeUntil(this._destroyed)).subscribe((v) => {\n this.valueChanges.next(v);\n this._changeDetectorRef.markForCheck();\n });\n }\n\n if (this._hasLabel()) {\n this._labelClicks = fromEvent(this._labelElement.nativeElement, 'click').subscribe(() => this._control.focus());\n }\n }\n\n ngOnDestroy() {\n this._destroyed.next();\n this._destroyed.complete();\n this._labelClicks.unsubscribe();\n }\n\n /** Throws an error if the form field's control is missing. */\n protected _validateControlChild() {\n if (!this._control) {\n throw new Error('Missing Novo Control');\n }\n }\n\n public blurEventIsInField(blurEvt: FocusEvent): boolean {\n return this._elementRef.nativeElement.contains(blurEvt.relatedTarget) || this._overlayElements.some(hasOverlay => hasOverlay.overlay?.isBlurRecipient(blurEvt));\n }\n\n @HostListener('click', ['$event'])\n _handleContainerClick(evt: MouseEvent) {\n this._control.onContainerClick(evt);\n }\n\n _isUnderlinedInput(): boolean {\n return NOVO_INPUT_UNDERLINED_TYPES.includes(this._control.controlType);\n }\n\n /** Determines whether to display hints or errors. */\n _getDisplayedMessages(): 'error' | 'hint' {\n return this._errorElements && this._errorElements.length > 0 && this._control.errorState ? 'error' : 'hint';\n }\n\n /** Determines whether a class from the NgControl should be forwarded to the host element. */\n _shouldForward(prop: keyof NgControl): boolean {\n const ngControl = this._control ? this._control.ngControl : null;\n return ngControl && ngControl[prop];\n }\n\n _hasLabel() {\n return !!this._labelElement;\n }\n}\n","<div class=\"novo-field-label\">\n <ng-content select=\"novo-label\"></ng-content>\n</div>\n<div class=\"novo-field-input\" [style.width]=\"width\" #inputContainer>\n <div class=\"novo-field-prefix\">\n <ng-content select=\"[novoPrefix]\"></ng-content>\n </div>\n <div class=\"novo-field-infix\">\n <ng-content></ng-content>\n </div>\n <div class=\"novo-field-suffix\">\n <ng-content select=\"[novoSuffix]\"></ng-content>\n </div>\n</div>\n<div class=\"novo-field-messages\" [ngSwitch]=\"_getDisplayedMessages()\">\n <div class=\"novo-field-hint-wrapper\" *ngSwitchCase=\"'error'\">\n <ng-content select=\"novo-error\"></ng-content>\n </div>\n <div class=\"novo-field-hint-wrapper\" *ngSwitchCase=\"'hint'\">\n <ng-content select=\"novo-hint\"></ng-content>\n <ng-content select=\"novo-hint[align=end]\"></ng-content>\n </div>\n</div>","// NG2\nimport { AfterContentInit, ChangeDetectionStrategy, Component, ContentChildren, HostBinding, Input, QueryList } from '@angular/core';\nimport { BooleanInput } from 'novo-elements/utils';\nimport { NovoFieldElement } from './field';\n\n@Component({\n selector: 'novo-fields',\n templateUrl: './fieldset.html',\n styleUrls: ['./fieldset.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n class: 'novo-field',\n '[class.novo-fieldset-appearance-standard]': 'appearance == \"standard\"',\n '[class.novo-fieldset-appearance-fill]': 'appearance == \"fill\"',\n '[class.novo-fieldset-appearance-outline]': 'appearance == \"outline\"',\n '[class.novo-fieldset-appearance-list]': 'appearance == \"list\"',\n },\n standalone: false,\n})\nexport class NovoFieldsElement implements AfterContentInit {\n @ContentChildren(NovoFieldElement)\n _fields: QueryList<NovoFieldElement>;\n\n _layout: 'horizontal' | 'vertical' = 'horizontal';\n @Input() get layout(): any {\n return this._layout;\n }\n set layout(value) {\n if (this._layout !== value) {\n this._layout = value;\n this._updateFieldLayout();\n }\n }\n\n _appearance: 'standard' | 'outline' | 'fill' | 'list' = 'standard';\n @Input() get appearance(): any {\n return this._appearance;\n }\n set appearance(value) {\n if (this._appearance !== value) {\n this._appearance = value;\n this._updateFieldAppearance();\n }\n }\n\n @HostBinding('class.full-width')\n @Input()\n @BooleanInput()\n fullWidth: boolean = false;\n\n ngAfterContentInit(): any {\n this._updateFieldLayout();\n this._updateFieldAppearance();\n }\n\n private _updateFieldLayout(): void {\n if (this._fields) {\n this._fields.forEach((field) => {\n field.layout = this.layout;\n });\n }\n }\n\n private _updateFieldAppearance(): void {\n if (this._fields) {\n this._fields.forEach((field) => {\n field.appearance = this.appearance;\n });\n }\n }\n}\n","<ng-content></ng-content>","import { EventEmitter, InjectionToken } from '@angular/core';\nimport { ControlValueAccessor } from '@angular/forms';\n\nexport const NOVO_INPUT_FORMAT = new InjectionToken<NovoInputFormat>('NovoInputFormat');\n\nexport interface NovoInputFormat<T = any> extends ControlValueAccessor {\n valueChange: EventEmitter<any>;\n formatValue(value: T): string;\n}\n\nexport enum DATE_FORMATS {\n DATE = 'date',\n ISO8601 = 'iso8601',\n STRING = 'string',\n YEAR_MONTH_DAY = 'yyyy-mm-dd',\n}\n","import { Directive, EventEmitter, forwardRef, Input } from '@angular/core';\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { IMaskDirective } from 'angular-imask';\nimport { isValid } from 'date-fns';\nimport { MaskedRange } from 'imask';\nimport { DateFormatService, NovoLabelService } from 'novo-elements/services';\nimport { DateParseOptions, DateUtil } from 'novo-elements/utils';\nimport { DATE_FORMATS, NOVO_INPUT_FORMAT } from './base-format';\n\nexport const DATEFORMAT_VALUE_ACCESSOR = {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => NovoDateFormatDirective),\n multi: true,\n};\n\n@Directive({\n selector: 'input[dateFormat]',\n host: {\n class: 'novo-date-format',\n },\n providers: [DATEFORMAT_VALUE_ACCESSOR, { provide: NOVO_INPUT_FORMAT, useExisting: NovoDateFormatDirective }],\n standalone: false,\n})\nexport class NovoDateFormatDirective extends IMaskDirective<any> {\n valueChange: EventEmitter<any> = new EventEmitter();\n\n @Input() dateFormat: DATE_FORMATS = DATE_FORMATS.DATE;\n\n constructor(private labels: NovoLabelService, private dateFormatService: DateFormatService) {\n super();\n this.unmask = 'typed' as unknown as false; // typing is to work around angular-imask bug\n this.imask = {\n mask: Date,\n pattern: this.dateFormatService.dateFormatAsImaskPattern,\n overwrite: true,\n autofix: true,\n lazy: false,\n min: new Date(1900, 0, 1),\n max: new Date(2100, 0, 1),\n prepare: (str) => str.toUpperCase(),\n format: (date) => this.formatValue(date, { userDateFormat: this.labels.dateFormatString()}),\n parse: (str) => DateUtil.parse(str, { userDateFormat: this.labels.dateFormatString().toUpperCase() }),\n blocks: {\n d: {\n mask: MaskedRange,\n placeholderChar: 'D',\n from: 1,\n to: 31,\n maxLength: 2,\n },\n m: {\n mask: MaskedRange,\n placeholderChar: 'M',\n from: 1,\n to: 12,\n maxLength: 2,\n },\n Y: {\n mask: MaskedRange,\n placeholderChar: 'Y',\n from: 1900,\n to: 9999,\n },\n },\n };\n }\n\n normalize(value: string) {\n const pattern = this.labels.dateFormatString().toUpperCase();\n if (!value) {\n return '';\n }\n return DateUtil.format(DateUtil.parse(value, { userDateFormat: this.labels.dateFormatString()}), pattern);\n }\n\n formatAsIso(date: Date): string {\n if (date && isValid(date)) {\n return date.toISOString().slice(0, 10);\n }\n return null;\n }\n\n formatYearMonthDay(date: Date): string {\n if (date && isValid(date)) {\n return DateUtil.format(date, 'YYYY-MM-DD');\n }\n return null;\n }\n\n formatValue(value: any, options?: DateParseOptions): string {\n if (value == null) {\n return '';\n }\n const dateFormat = this.labels.dateFormatString().toUpperCase();\n const date = DateUtil.parse(value, options);\n if (isValid(date)) {\n return DateUtil.format(date, dateFormat);\n }\n return this.normalize(value);\n }\n\n writeValue(value: any) {\n const initialValue = this['_initialValue'];\n if (initialValue != null && value === initialValue) {\n // This value has already been formatted from the first call to writeValue, simply use it.\n super.writeValue(initialValue);\n } else {\n super.writeValue(this.formatValue(value));\n this.valueChange.emit(value);\n }\n }\n\n registerOnChange(fn: (_: any) => void): void {\n this.onChange = (date: any) => {\n let formatted = date;\n switch (this.dateFormat) {\n case DATE_FORMATS.ISO8601:\n formatted = this.formatAsIso(date);\n break;\n case DATE_FORMATS.STRING:\n formatted = this.formatValue(date);\n break;\n case DATE_FORMATS.YEAR_MONTH_DAY:\n formatted = this.formatYearMonthDay(date);\n break;\n default:\n formatted = date;\n break;\n }\n this.valueChange.emit(date);\n fn(formatted);\n };\n }\n}\n","import { Directive, EventEmitter, forwardRef, Input } from '@angular/core';\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { IMaskDirective } from 'angular-imask';\nimport { isValid } from 'date-fns';\nimport { MaskedRange } from 'imask';\nimport { DateFormatService, NovoLabelService } from 'novo-elements/services';\nimport { DateParseOptions, DateUtil } from 'novo-elements/utils';\nimport { DATE_FORMATS, NOVO_INPUT_FORMAT } from './base-format';\n\nexport const DATERANGEFORMAT_VALUE_ACCESSOR = {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => NovoDateRangeFormatDirective),\n multi: true,\n};\n\ntype DateRange = {\n startDate: Date;\n endDate: Date;\n};\n\n@Directive({\n selector: 'input[dateRangeFormat]',\n host: {\n class: 'novo-date-range-format',\n },\n providers: [DATERANGEFORMAT_VALUE_ACCESSOR, { provide: NOVO_INPUT_FORMAT, useExisting: NovoDateRangeFormatDirective }],\n standalone: false,\n})\nexport class NovoDateRangeFormatDirective extends IMaskDirective<any> {\n valueChange: EventEmitter<any> = new EventEmitter();\n\n @Input() dateRangeFormat: DATE_FORMATS = DATE_FORMATS.DATE;\n\n constructor(private labels: NovoLabelService, private dateFormat: DateFormatService) {\n super();\n this.unmask = false;\n this.imask = {\n mask: `${this.dateFormat.dateFormatAsImaskPattern} - ${this.dateFormat.dateFormatAsImaskPattern}`,\n overwrite: true,\n autofix: true,\n lazy: false,\n blocks: {\n d: {\n mask: MaskedRange,\n placeholderChar: 'D',\n from: 1,\n to: 31,\n maxLength: 2,\n },\n m: {\n mask: MaskedRange,\n placeholderChar: 'M',\n from: 1,\n to: 12,\n maxLength: 2,\n },\n Y: {\n mask: MaskedRange,\n placeholderChar: 'Y',\n from: 1900,\n to: 9999,\n },\n },\n };\n }\n\n normalize(value: string | Date, options?: DateParseOptions) {\n const pattern = this.labels.dateFormatString().toUpperCase();\n return DateUtil.format(value ? DateUtil.parse(value, options) : null, pattern);\n }\n\n formatAsIso(value: DateRange): string {\n if (!value) {\n return '';\n }\n const { startDate, endDate } = value;\n if (startDate && isValid(startDate) && endDate && isValid(endDate)) {\n const startIso = startDate.toISOString().slice(0, 10);\n const endIso = endDate.toISOString().slice(0, 10);\n return `${startIso}/${endIso}`;\n }\n return null;\n }\n\n formatValue(value: DateRange): string {\n if (!value) {\n return '';\n }\n const { startDate, endDate } = value;\n return `${this.formatDate(startDate)} - ${this.formatDate(endDate)}`;\n }\n\n formatDate(source: Date | string) {\n const dateRangeFormat = this.labels.dateFormatString().toUpperCase();\n const date = DateUtil.parse(source);\n if (isValid(date)) {\n return DateUtil.format(date, dateRangeFormat);\n }\n return this.normalize(source);\n }\n\n writeValue(value: any) {\n if (this['_initialValue'] && value === this['_initialValue']) {\n // if this call is coming from the super class, skip through.\n // If we ever wanted to reduce the need for this hack/workaround, we could refactor\n // IMaskDirective to exist as a child portion of DateRangeFormatDirective.\n super.writeValue(value);\n return;\n }\n const formattedValue = this.formatValue(value);\n if (formattedValue !== this.maskValue) {\n super.writeValue(this.formatValue(value));\n this.onChange(this.formatValue(value));\n this.valueChange.emit(value);\n }\n }\n\n registerOnChange(fn: (_: any) => void): void {\n this.onChange = (input: any) => {\n if (this.validate(input)) {\n const dates = this.extractDatesFromInput(input);\n let formatted: DateRange | string = dates;\n switch (this.dateRangeFormat) {\n case DATE_FORMATS.ISO8601:\n formatted = this.formatAsIso(dates);\n break;\n case DATE_FORMATS.STRING:\n formatted = this.formatValue(dates);\n break;\n default:\n formatted = dates;\n break;\n }\n this.valueChange.emit(dates);\n fn(formatted);\n }\n };\n }\n\n extractDatesFromInput(value) {\n const [startStr, endStr] = value.split(' - ');\n const startDate = DateUtil.parse(startStr, { userDateFormat: this.labels.dateFormatString()});\n const endDate = DateUtil.parse(endStr, { userDateFormat: this.labels.dateFormatString()});\n return { startDate, endDate };\n }\n\n validate(dateStr: string) {\n const { startDate, endDate } = this.extractDatesFromInput(dateStr);\n return isValid(startDate) && isValid(endDate);\n }\n}\n","import { Directive, EventEmitter, Input, OnChanges, SimpleChanges, forwardRef } from '@angular/core';\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { IMaskDirective } from 'angular-imask';\nimport { isValid } from 'date-fns';\nimport { MaskedEnum, MaskedRange } from 'imask';\nimport { DateFormatService, NovoLabelService } from 'novo-elements/services';\nimport { DateParseOptions, DateUtil, Key } from 'novo-elements/utils';\nimport { DATE_FORMATS, NOVO_INPUT_FORMAT, NovoInputFormat } from './base-format';\n\nexport const DATETIMEFORMAT_VALUE_ACCESSOR = {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => NovoDateTimeFormatDirective),\n multi: true,\n};\n\n@Directive({\n selector: 'input[dateTimeFormat]',\n host: {\n class: 'novo-date-time-format',\n '(input)': '_checkInput($event)',\n '(blur)': '_handleBlur($event)',\n '(keydown)': '_handleKeydown($event)',\n },\n providers: [DATETIMEFORMAT_VALUE_ACCESSOR, { provide: NOVO_INPUT_FORMAT, useExisting: NovoDateTimeFormatDirective }],\n standalone: false,\n})\nexport class NovoDateTimeFormatDirective extends IMaskDirective<any> implements NovoInputFormat, OnChanges {\n valueChange: EventEmitter<any> = new EventEmitter();\n\n @Input() military: boolean = false;\n @Input() dateTimeFormat: DATE_FORMATS = DATE_FORMATS.DATE;\n\n constructor(private labels: NovoLabelService, private dateFormat: DateFormatService) {\n super();\n this.initFormatOptions();\n }\n\n initFormatOptions() {\n const amFormat = this.labels.timeFormatAM.toUpperCase();\n const pmFormat = this.labels.timeFormatPM.toUpperCase();\n this.unmask = 'typed' as unknown as false; // typing is to work around angular-imask bug\n let pattern = `${this.dateFormat.dateFormatAsImaskPattern}, HH:mm`;\n if (!this.military) {\n pattern += ' aa';\n }\n this.imask = {\n mask: Date,\n pattern,\n overwrite: true,\n autofix: true,\n lazy: false,\n min: new Date(1900, 0, 1),\n max: new Date(2100, 0, 1),\n prepare: (str) => str.toUpperCase(),\n format: (date) => this.formatValue(date, { userDateFormat: this.labels.dateFormatString() }),\n parse: (str) => DateUtil.parse(str, { userDateFormat: this.labels.dateFormatString().toUpperCase() }),\n blocks: {\n d: {\n mask: MaskedRange,\n placeholderChar: 'D',\n from: 1,\n to: 31,\n maxLength: 2,\n },\n m: {\n mask: MaskedRange,\n placeholderChar: 'M',\n from: 1,\n to: 12,\n maxLength: 2,\n },\n Y: {\n mask: MaskedRange,\n placeholderChar: 'Y',\n from: 1900,\n to: 9999,\n },\n HH: {\n mask: MaskedRange,\n placeholderChar: '-',\n maxLength: 2,\n from: 0,\n to: 23,\n },\n hh: {\n mask: MaskedRange,\n placeholderChar: '-',\n maxLength: 2,\n from: 1,\n to: 12,\n },\n mm: {\n mask: MaskedRange,\n placeholderChar: '-',\n maxLength: 2,\n from: 0,\n to: 59,\n },\n ss: {\n mask: MaskedRange,\n placeholderChar: '-',\n maxLength: 2,\n from: 0,\n to: 59,\n },\n aa: {\n mask: MaskedEnum,\n placeholderChar: '-',\n enum: ['AM', 'PM', 'am', 'pm', amFormat, pmFormat],\n },\n },\n };\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (Object.keys(changes).some((key) => ['military', 'dateFormat'].includes(key))) {\n this.initFormatOptions();\n }\n }\n\n _checkInput(event: InputEvent): void {\n if (document.activeElement === event.target) {\n const text = (event.target as HTMLInputElement).value;\n const dateTime = text.split(', ');\n const hour = dateTime[1].slice(0, 2);\n if ((this.military && Number(dateTime[1][0]) > 2) || (!this.military && Number(dateTime[1][0]) > 1)) {\n event.preventDefault();\n const value = `0${dateTime[1]}`;\n (event.target as HTMLInputElement).value = value;\n }\n if (!this.military) {\n const input = dateTime[1].substr(5, 4).replace(/\\-/g, '').trim().slice(0, 2);\n const timePeriod = this.imask.blocks.aa.enum.find((it) => it[0] === input[0]);\n if (timePeriod) {\n (event.target as HTMLInputElement).value = `${dateTime[0]}, ${dateTime[1].slice(0, 5)} ${timePeriod}`;\n }\n if ((event.target as HTMLInputElement).selectionStart >= 3 && this.hourOneFormatRequired(hour)) {\n (event.target as HTMLInputElement).value = `${dateTime[0]}, 01:${(event.target as HTMLInputElement).value.slice(\n 3,\n (event.target as HTMLInputElement).value.length,\n )}`;\n }\n }\n }\n }\n\n _handleBlur(event: FocusEvent): void {\n const text = (event.target as HTMLInputElement).value;\n const dateTime = text.split(', ');\n const hour: string = dateTime[1].slice(0, 2);\n if (!this.military) {\n const input = dateTime[1].substr(5, 4).replace(/\\-/g, '').trim().slice(0, 2);\n const timePeriod = this.imask.blocks.aa.enum.find((it) => it[0] === input[0]);\n if (this.hourOneFormatRequired(hour)) {\n (event.target as HTMLInputElement).value = `${dateTime[0]}, 01:${dateTime[1].slice(3, dateTime[1].length)}`;\n }\n if (!timePeriod) {\n (event.target as HTMLInputElement).value = `${dateTime[0]}, ${dateTime[1].slice(0, 5)} --`;\n }\n }\n }\n\n _handleKeydown(event: KeyboardEvent): void {\n const input = event.target as HTMLInputElement;\n const dateTime = input.value.split(', ');\n const hour: string = dateTime[1].slice(0, 2);\n\n if (event.key === Key.Backspace && input.selectionStart === dateTime[1].length) {\n (event.target as HTMLInputElement).value = `${dateTime[1].slice(0, 5)} --`;\n } else if (event.key === Key.Tab && input.selectionStart <= 2 && this.hourOneFormatRequired(hour)) {\n event.preventDefault();\n event.stopPropagation();\n event.stopImmediatePropagation();\n input.value = `${dateTime[0]}, 01:${dateTime[1].slice(3, dateTime[1].length)}`;\n input.setSelectionRange(15, 15);\n } else if (event.key === Key.ArrowRight && input.selectionStart >= 2 && this.hourOneFormatRequired(hour)) {\n input.value = `${dateTime[0]}, 01:${dateTime[1].slice(3, dateTime[1].length)}`;\n input.setSelectionRange(14, 14);\n }\n }\n\n normalize(value: string, options?: DateParseOptions) {\n const pattern = this.labels.dateFormatString().toUpperCase();\n return DateUtil.format(value ? DateUtil.parse(value, options) : null, pattern);\n }\n\n formatAsIso(date: Date): string {\n if (date && isValid(date)) {\n return date.toISOString();\n }\n return null;\n }\n\n convertTime12to24(time12h: string) {\n const pmFormat = this.labels.timeFormatPM.toUpperCase();\n const [time, meridian] = time12h.split(' ');\n // eslint-disable-next-line prefer-const\n let [hours, minutes] = time.split(':');\n if (hours === '12') {\n hours = '00';\n }\n if (['PM', pmFormat].includes(meridian)) {\n hours = `${parseInt(hours, 10) + 12}`.padStart(2, '0');\n }\n return `${hours}:${minutes}`;\n }\n\n convertTime24to12(time24h: string) {\n if (time24h.length === 5) {\n const date = DateUtil.parse(`2020-01-01T${time24h}`);\n return DateUtil.format(date, 'hh:mm A');\n }\n return time24h;\n }\n\n formatValue(value: Date | string, options?: DateParseOptions): string {\n if (value == null) {\n return '';\n }\n // Use `parse` because it keeps dates in locale\n const date = DateUtil.parse(value, options);\n if (isValid(date)) {\n const dateFormat = `${this.labels.dateFormatString().toUpperCase()}, ${this.military ? 'HH:mm' : 'hh:mm A'}`;\n return DateUtil.format(date, dateFormat);\n }\n return this.normalize(value as string, options);\n }\n\n writeValue(value: any) {\n const initialValue = this['_initialValue'];\n if (initialValue != null && value === initialValue) {\n // This value has already been formatted from the first call to writeValue, simply use it.\n super.writeValue(initialValue);\n } else {\n super.writeValue(this.formatValue(value));\n this.valueChange.emit(value);\n }\n }\n\n registerOnChange(fn: (_: any) => void): void {\n this.onChange = (date: Date) => {\n let formatted: Date | string;\n switch (this.dateTimeFormat) {\n case DATE_FORMATS.ISO8601:\n formatted = this.formatAsIso(date);\n break;\n case DATE_FORMATS.STRING:\n formatted = this.formatValue(date);\n break;\n default:\n formatted = date;\n break;\n }\n this.valueChange.emit(date);\n fn(formatted);\n };\n }\n\n hourOneFormatRequired(hourInput: string): boolean {\n return hourInput === '-1' || hourInput === '1-';\n }\n\n get initialValue(): any {\n return this.maskValue;\n }\n}\n","import {\n AfterViewInit,\n ChangeDetectorRef,\n Directive,\n EventEmitter,\n forwardRef,\n Input,\n OnChanges,\n SimpleChanges,\n} from '@angular/core';\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { IMaskDirective } from 'angular-imask';\nimport { isValid } from 'date-fns';\nimport { MaskedEnum, MaskedRange } from 'imask';\nimport { NovoLabelService } from 'novo-elements/services';\nimport { DateUtil, Key } from 'novo-elements/utils';\nimport { NOVO_INPUT_FORMAT, NovoInputFormat } from './base-format';\n\nexport const TIMEFORMAT_VALUE_ACCESSOR = {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => NovoTimeFormatDirective),\n multi: true,\n};\n\nexport enum TIME_FORMATS {\n DATE = 'date',\n ISO8601 = 'iso8601',\n STRING = 'string',\n}\n\n@Directive({\n selector: 'input[timeFormat]',\n host: {\n class: 'novo-time-format',\n '(input)': '_checkInput($event)',\n '(blur)': '_handleBlur($event)',\n '(keydown)': '_handleKeydown($event)',\n },\n providers: [TIMEFORMAT_VALUE_ACCESSOR, { provide: NOVO_INPUT_FORMAT, useExisting: NovoTimeFormatDirective }],\n standalone: false,\n})\nexport class NovoTimeFormatDirective extends IMaskDirective<any> implements NovoInputFormat, AfterViewInit, OnChanges {\n valueChange: EventEmitter<any> = new EventEmitter();\n\n @Input() military: boolean = false;\n @Input() timeFormat: TIME_FORMATS = TIME_FORMATS.DATE;\n\n constructor(private labels: NovoLabelService, private cdr: ChangeDetectorRef) {\n super();\n this.initFormatOptions();\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (Object.keys(changes).some((key) => ['military', 'timeFormat'].includes(key))) {\n this.initFormatOptions();\n }\n }\n\n initFormatOptions() {\n const amFormat = this.labels.timeFormatAM.toUpperCase();\n const pmFormat = this.labels.timeFormatPM.toUpperCase();\n this.unmask = 'typed' as unknown as false; // typing is to work around angular-imask bug\n this.imask = {\n mask: Date,\n pattern: this.military ? 'HH:mm' : 'hh:mm aa',\n overwrite: true,\n autofix: true,\n lazy: false,\n min: new Date(1970, 0, 1),\n max: new Date(2100, 0, 1),\n prepare: (str) => str.toUpperCase(),\n format: (value) => this.formatValue(value),\n parse: (str) => {\n const time = this.convertTime12to24(str);\n return DateUtil.parse(`${DateUtil.format(Date.now(), 'YYYY-MM-DD')}T${time}`);\n },\n blocks: {\n HH: {\n mask: MaskedRange,\n placeholderChar: '-',\n maxLength: 2,\n from: 0,\n to: 23,\n },\n hh: {\n mask: MaskedRange,\n placeholderChar: '-',\n maxLength: 2,\n from: 1,\n to: 12,\n },\n mm: {\n mask: MaskedRange,\n placeholderChar: '-',\n maxLength: 2,\n from: 0,\n to: 59,\n },\n aa: {\n mask: MaskedEnum,\n placeholderChar: '-',\n enum: ['AM', 'PM', 'am', 'pm', amFormat, pmFormat],\n },\n },\n };\n }\n\n _checkInput(event: InputEvent): void {\n if (document.activeElement === event.target) {\n const text = (event.target as HTMLInputElement).value;\n const hour = text.slice(0, 2);\n if ((this.military && Number(text[0]) > 2) || (!this.military && Number(text[0]) > 1)) {\n event.preventDefault();\n const value = `0${text}`;\n (event.target as HTMLInputElement).value = value;\n }\n if (!this.military) {\n const input = text.substr(5, 4).replace(/\\-/g, '').trim().slice(0, 2);\n const timePeriod = this.imask.blocks.aa.enum.find((it) => it[0] === input[0]);\n if (timePeriod) {\n (event.target as HTMLInputElement).value = `${text.slice(0, 5)} ${timePeriod}`;\n }\n if ((event.target as HTMLInputElement).selectionStart >= 3 && this.hourOneFormatRequired(hour)) {\n (event.target as HTMLInputElement).value = `01:${(event.target as HTMLInputElement).value.slice(\n 3,\n (event.target as HTMLInputElement).value.length,\n )}`;\n }\n }\n }\n }\n\n _handleBlur(event: FocusEvent): void {\n const text = (event.target as HTMLInputElement).value;\n const hour: string = text.slice(0, 2);\n if (!this.military) {\n const input = text.substr(5, 4).replace(/\\-/g, '').trim().slice(0, 2);\n const timePeriod = this.imask.blocks.aa.enum.find((it) => it[0] === input[0]);\n if (this.hourOneFormatRequired(hour)) {\n (event.target as HTMLInputElement).value = `01:${text.slice(3, text.length)}`;\n }\n if (!timePeriod) {\n (event.target as HTMLInputElement).value = `${text.slice(0, 5)} --`;\n }\n }\n }\n\n _handleKeydown(event: KeyboardEvent): void {\n const input = event.target as HTMLInputElement;\n const hour: string = input.value.slice(0, 2);\n\n if (event.key === Key.Backspace && input.selectionStart === input.value.length) {\n (event.target as HTMLInputElement).value = `${input.value.slice(0, 5)} --`;\n } else if (event.key === Key.Tab && input.selectionStart <= 2 && this.hourOneFormatRequired(hour)) {\n event.preventDefault();\n event.stopPropagation();\n event.stopImmediatePropagation();\n input.value = `01:${input.value.slice(3, input.value.length)}`;\n input.setSelectionRange(3, 3);\n } else if (event.key === Key.ArrowRight && input.selectionStart >= 2 && this.hourOneFormatRequired(hour)) {\n input.value = `01:${input.value.slice(3, input.value.length)}`;\n input.setSelectionRange(2, 2);\n }\n }\n\n normalize(value: string) {\n if (this.military) {\n return this.convertTime12to24(value);\n }\n return this.convertTime24to12(value);\n }\n\n formatValue(value: any): string {\n const date = DateUtil.parse(value);\n if (isValid(date)) {\n const pattern = this.military ? 'HH:mm' : 'hh:mm A';\n return DateUtil.format(date, pattern);\n }\n return this.normalize(value);\n }\n\n formatAsIso(date: Date): string {\n if (date && isValid(date)) {\n return DateUtil.format(date, 'HH:mm');\n }\n return null;\n }\n\n convertTime12to24(time12h: string) {\n const pmFormat = this.labels.timeFormatPM.toUpperCase();\n const [time, meridian] = time12h.split(' ');\n // eslint-disable-next-line prefer-const\n let [hours, minutes] = time.split(':');\n if (hours === '12') {\n hours = '00';\n }\n if (['PM', pmFormat].includes(meridian)) {\n hours = `${parseInt(hours, 10) + 12}`.padStart(2, '0');\n }\n return `${hours}:${minutes}`;\n }\n\n convertTime24to12(time24h: string) {\n if (time24h.length === 5) {\n const date = DateUtil.parse(`2020-01-01T${time24h}`);\n return DateUtil.format(date, 'hh:mm A');\n }\n return time24h;\n }\n\n writeValue(value: any) {\n super.writeValue(this.formatValue(value));\n this.valueChange.emit(value);\n }\n\n registerOnChange(fn: (date: any) => void): void {\n this.onChange = (date: any) => {\n let formatted = date;\n switch (this.timeFormat) {\n case TIME_FORMATS.ISO8601:\n formatted = this.formatAsIso(date);\n break;\n case TIME_FORMATS.STRING:\n formatted = this.formatValue(date);\n break;\n default:\n formatted = date;\n break;\n }\n this.valueChange.emit(date);\n fn(formatted);\n };\n }\n\n hourOneFormatRequired(hourInput: string): boolean {\n return hourInput === '-1' || hourInput === '1-';\n }\n}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport { BooleanInput, coerceBooleanProperty } from '@angular/cdk/coercion';\nimport { getSupportedInputTypes, Platform } from '@angular/cdk/platform';\nimport { AutofillMonitor } from '@angular/cdk/text-field';\nimport {\n AfterViewInit,\n Directive,\n DoCheck,\n ElementRef,\n EventEmitter,\n HostBinding,\n HostListener,\n Inject,\n InjectionToken,\n Input,\n NgZone,\n OnChanges,\n OnDestroy,\n Optional,\n Output,\n Self,\n} from '@angular/core';\nimport { FormGroupDirective, NgControl, NgForm } from '@angular/forms';\nimport { Subject } from 'rxjs';\nimport { NovoFieldControl } from './field-control';\n\n/**\n * This token is used to inject the object whose value should be set into `NovoInput`. If none is\n * provided, the native `HTMLInputElement` is used. Directives like `MatDatepickerInput` can provide\n * themselves for this token, in order to make `NovoInput` delegate the getting and setting of the\n * value to them.\n */\nexport const NOVO_INPUT_VALUE_ACCESSOR = new InjectionToken<{ value: any }>('NOVO_INPUT_VALUE_ACCESSOR');\n\n// Invalid input type. Using one of these will throw an NovoInputUnsupportedTypeError.\nconst NOVO_INPUT_INVALID_TYPES = ['button', 'file', 'hidden', 'image', 'radio', 'reset', 'submit'];\n\nlet nextUniqueId = 0;\n\n// Boilerplate for applying mixins to NovoInput.\nclass NovoInputBase {\n constructor(\n public _parentForm: NgForm,\n public _parentFormGroup: FormGroupDirective,\n /** @docs-private */\n public ngControl: NgControl,\n ) {}\n}\n\n/** Directive that allows a native input to work inside a `NovoField`. */\n@Directive({\n selector: 'input[novoInput], textarea[novoInput], select[novoInput]',\n host: {\n class: 'novo-input-element',\n '[attr.id]': 'id',\n '[attr.placeholder]': 'placeholder',\n '[disabled]': 'disabled',\n '[required]': 'required',\n '[attr.readonly]': 'readonly && !_isNativeSelect || null',\n '[attr.aria-invalid]': 'errorState',\n '[attr.aria-required]': 'required.toString()',\n '[attr.autocomplete]': \"'off'\",\n },\n providers: [{ provide: NovoFieldControl, useExisting: NovoInput }],\n standalone: false,\n})\nexport class NovoInput extends NovoInputBase implements NovoFieldControl<any>, OnChanges, OnDestroy, AfterViewInit, DoCheck {\n protected _uid = `novo-input-${nextUniqueId++}`;\n protected _previousNativeValue: any;\n private _inputValueAccessor: { value: any };\n /** The aria-describedby attribute on the input for improved a11y. */\n @HostBinding('attr.aria-describedby') _ariaDescribedby: string;\n\n /** Whether the component is being rendered on the server. */\n readonly _isServer: boolean;\n\n /** Whether the component is a native html select. */\n readonly _isNativeSelect: boolean;\n\n /** Whether the component is a textarea. */\n readonly _isTextarea: boolean;\n\n /**\n * Implemented as part of NovoFieldControl.\n * @docs-private\n */\n focused: boolean = false;\n\n errorState: boolean = false;\n\n /** @docs-private Implemented as part of NovoFieldControl. */\n lastKeyValue: string = null;\n /** @docs-private Implemented as part of NovoFieldControl.*/\n lastCaretPosition: number | null;\n\n /**\n * Implemented as part of NovoFieldControl.\n * @docs-private\n */\n readonly stateChanges: Subject<void> = new Subject<void>();\n\n /**\n * Implemented as part of NovoFieldControl.\n * @docs-private\n */\n controlType: string = 'novo-input';\n\n /**\n * Implemented as part of NovoFieldControl.\n * @docs-private\n */\n autofilled = false;\n\n /**\n * Implemented as part of NovoFieldControl.\n * @docs-private\n */\n @Input()\n get disabled(): boolean {\n if (this.ngControl && this.ngControl.disabled !== null) {\n return this.ngControl.disabled;\n }\n return this._disabled;\n }\n set disabled(value: boolean) {\n this._disabled = coerceBooleanProperty(value);\n\n // Browsers may not fire the blur event if the input is disabled too quickly.\n // Reset from here to ensure that the element doesn't become stuck.\n if (this.focused) {\n this.focused = false;\n this.stateChanges.next();\n }\n }\n protected _disabled = false;\n\n /**\n * Implemented as part of NovoFieldControl.\n * @docs-private\n */\n @Input()\n get id(): string {\n return this._id;\n }\n set id(value: string) {\n this._id = value || this._uid;\n }\n protected _id: string;\n\n /**\n * Implemented as part of NovoFieldControl.\n * @docs-private\n */\n @Input() placeholder: string;\n\n /**\n * Implemented as part of NovoFieldControl.\n * @docs-private\n */\n @Input()\n get required(): boolean {\n return this._required;\n }\n set required(value: boolean) {\n this._required = coerceBooleanProperty(value);\n }\n protected _required = false;\n\n /** Input type of the element. */\n @Input()\n get type(): string {\n return this._type;\n }\n set type(value: string) {\n this._type = value || 'text';\n this._validateType();\n\n // When using Angular inputs, developers are no longer able to set the properties on the native\n // input element. To ensure that bindings for `type` work, we need to sync the setter\n // with the native property. Textarea elements don't support the type property or attribute.\n if (!this._isTextarea && getSupportedInputTypes().has(this._type)) {\n (this._elementRef.nativeElement as HTMLInputElement).type = this._type;\n }\n }\n protected _type = 'text';\n\n /**\n * Implemented as part of NovoFieldControl.\n * @docs-private\n */\n @Input()\n get value(): string {\n return this._inputValueAccessor.value;\n }\n set value(value: string) {\n if (value !== this.value) {\n this._inputValueAccessor.value = value;\n this.stateChanges.next();\n }\n }\n\n /** Whether the element is readonly. */\n @Input()\n get readonly(): boolean {\n return this._readonly;\n }\n set readonly(value: boolean) {\n this._readonly = coerceBooleanProperty(value);\n }\n private _readonly = false;\n\n protected _neverEmptyInputTypes = ['date', 'datetime', 'datetime-local', 'month', 'time', 'week'].filter((t) =>\n getSupportedInputTypes().has(t),\n );\n\n constructor(\n protected _elementRef: ElementRef<HTMLInputElement | HTMLSelectElement | HTMLTextAreaElement>,\n protected _platform: Platform,\n /** @docs-private */\n @Optional() @Self() public ngControl: NgControl,\n @Optional() _parentForm: NgForm,\n @Optional() _parentFormGroup: FormGroupDirective,\n @Optional() @Self() @Inject(NOVO_INPUT_VALUE_ACCESSOR) inputValueAccessor: any,\n private _autofillMonitor: AutofillMonitor,\n ngZone: NgZone,\n ) {\n super(_parentForm, _parentFormGroup, ngControl);\n\n const element = this._elementRef.nativeElement;\n const nodeName = element.nodeName.toLowerCase();\n\n // If no input value accessor was explicitly specified, use the element as the input value\n // accessor.\n this._inputValueAccessor = inputValueAccessor || element;\n\n this._previousNativeValue = this.value;\n\n // Force setter to be called in case id was not specified.\n this.id = this.id;\n\n // On some versions of iOS the caret gets stuck in the wrong place when holding down the delete\n // key. In order to get around this we need to \"jiggle\" the caret loose. Since this bug only\n // exists on iOS, we only bother to install the listener on iOS.\n if (_platform.IOS) {\n ngZone.runOutsideAngular(() => {\n _elementRef.nativeElement.addEventListener('keyup', (event: Event) => {\n const el = event.target as HTMLInputElement;\n if (!el.value && !el.selectionStart && !el.selectionEnd) {\n // Note: Just setting `0, 0` doesn't fix the issue. Setting\n // `1, 1` fixes it for the first time that you type text and\n // then hold delete. Toggling to `1, 1` and then back to\n // `0, 0` seems to completely fix it.\n el.setSelectionRange(1, 1);\n el.setSelectionRange(0, 0);\n }\n });\n });\n }\n\n this._isServer = !this._platform.isBrowser;\n this._isNativeSelect = nodeName === 'select';\n this._isTextarea = nodeName === 'textarea';\n\n this.controlType = (this._elementRef.nativeElement as HTMLInputElement).type;\n if (this._isNativeSelect) {\n this.controlType = (element as HTMLSelectElement).multiple ? 'select-multiple' : 'select';\n } else if (this._isTextarea) {\n this.controlType = 'textarea';\n }\n }\n\n ngAfterViewInit() {\n if (this._platform.isBrowser) {\n this._autofillMonitor.monitor(this._elementRef.nativeElement).subscribe((event) => {\n this.autofilled = event.isAutofilled;\n this.stateChanges.next();\n });\n }\n }\n\n ngOnChanges() {\n this.stateChanges.next();\n }\n\n ngOnDestroy() {\n this.stateChanges.complete();\n\n if (this._platform.isBrowser) {\n this._autofillMonitor.stopMonitoring(this._elementRef.nativeElement);\n }\n }\n\n ngDoCheck() {\n // We need to dirty-check the native element's value, because there are some cases where\n // we won't be notified when it changes (e.g. the consumer isn't using forms or they're\n // updating the value using `emitEvent: false`).\n this._dirtyCheckNativeValue();\n }\n\n /** Focuses the input. */\n focus(options?: FocusOptions): void {\n this._elementRef.nativeElement.focus(options);\n }\n\n // We have to use a `HostListener` here in order to support both Ivy and ViewEngine.\n // In Ivy the `host` bindings will be merged when this class is extended, whereas in\n // ViewEngine they're overwritten.\n @HostListener('focus', ['true'])\n @HostListener('blur', ['false'])\n _focusChanged(isFocused: boolean) {\n if (isFocused !== this.focused && (!this.readonly || !isFocused)) {\n this.focused = isFocused;\n this.stateChanges.next();\n }\n }\n\n // We have to use a `HostListener` here in order to support both Ivy and ViewEngine.\n // In Ivy the `host` bindings will be merged when this class is extended, whereas in\n // ViewEngine they're overwritten.\n @HostListener('input', ['$event'])\n _onInput(event: InputEvent) {\n // Listening to the input event wouldn't be necessary when the input is using the\n // FormsModule or ReactiveFormsModule, because Angular forms also listens to input events.\n this.lastKeyValue = event.data;\n if (this._isTextarea) {\n this.lastCaretPosition = (this._elementRef.nativeElement as HTMLTextAreaElement).selectionStart;\n }\n }\n\n /** Does some manual dirty checking on the native input `value` property. */\n protected _dirtyCheckNativeValue() {\n const newValue = this._elementRef.nativeElement.value;\n\n if (this._previousNativeValue !== newValue) {\n this._previousNativeValue = newValue;\n this.stateChanges.next();\n }\n }\n\n /** Make sure the input is a supported type. */\n protected _validateType() {\n if (NOVO_INPUT_INVALID_TYPES.indexOf(this._type) > -1) {\n throw new Error(`Invalid Input Type: ${this._type}`);\n }\n }\n\n /** Checks whether the input type is one of the types that are never empty. */\n protected _isNeverEmpty() {\n return this._neverEmptyInputTypes.indexOf(this._type) > -1;\n }\n\n /** Checks whether the input is invalid based on the native validation. */\n protected _isBadInput() {\n // The `validity` property won't be present on platform-server.\n const validity = (this._elementRef.nativeElement as HTMLInputElement).validity;\n return validity && validity.badInput;\n }\n\n /**\n * Implemented as part of NovoFieldControl.\n * @docs-private\n */\n get empty(): boolean {\n return !this._isNeverEmpty() && !this._elementRef.nativeElement.value && !this._isBadInput() && !this.autofilled;\n }\n\n /**\n * Implemented as part of NovoFieldControl.\n * @docs-private\n */\n get shouldLabelFloat(): boolean {\n if (this._isNativeSelect) {\n // For a single-selection `<select>`, the label should float when the selected option has\n // a non-empty display value. For a `<select multiple>`, the label *always* floats to avoid\n // overlapping the label with the options.\n const selectElement = this._elementRef.nativeElement as HTMLSelectElement;\n const firstOption: HTMLOptionElement | undefined = selectElement.options[0];\n\n // On most browsers the `selectedIndex` will always be 0, however on IE and Edge it'll be\n // -1 if the `value` is set to something, that isn't in the list of options, at a later point.\n return (\n this.focused || selectElement.multiple || !this.empty || !!(selectElement.selectedIndex > -1 && firstOption && firstOption.label)\n );\n } else {\n return this.focused || !this.empty;\n }\n }\n\n /**\n * Implemented as part of NovoFieldControl.\n * @docs-private\n */\n setDescribedByIds(ids: string[]) {\n this._ariaDescribedby = ids.join(' ');\n }\n\n /**\n * Implemented as part of NovoFieldControl.\n * @docs-private\n */\n onContainerClick() {\n // Do not re-focus the input element if the element is already focused. Otherwise it can happen\n // that someone clicks on a time input and the cursor resets to the \"hours\" field while the\n // \"minutes\" field was actually clicked. See: https://github.com/angular/components/issues/12849\n if (!this.focused) {\n this.focus();\n }\n }\n\n static ngAcceptInputType_disabled: BooleanInput;\n static ngAcceptInputType_readonly: BooleanInput;\n static ngAcceptInputType_required: BooleanInput;\n\n // Accept `any` to avoid conflicts with other directives on `<input>` that may\n // accept different types.\n static ngAcceptInputType_value: any;\n @Output() onSelect = new EventEmitter<unknown>();\n}\n","import { Directive, ElementRef, Inject, Input, Optional, Self } from '@angular/core';\nimport { ControlValueAccessor } from '@angular/forms';\nimport { NovoInputFormat, NOVO_INPUT_FORMAT } from './formats/base-format';\n\n/** Directive used to connect an input to a MatDatepicker. */\n@Directive({\n selector: 'input[picker]',\n host: {\n class: 'novo-has-picker',\n '[attr.autocomplete]': 'autocompleteAttribute',\n },\n standalone: false,\n})\nexport class NovoPickerDirective {\n /** The datepicker that this input is associated with. */\n @Input()\n set picker(picker: ControlValueAccessor) {\n if (picker) {\n this._picker = picker;\n picker.registerOnChange((value) => this.updateValue(value));\n }\n }\n _picker: ControlValueAccessor;\n /**\n * `autocomplete` attribute to be set on the input element.\n * @docs-private\n */\n @Input('autocomplete') autocompleteAttribute: string = 'off';\n\n constructor(\n private _elementRef: ElementRef<HTMLInputElement>,\n @Optional() @Self() @Inject(NOVO_INPUT_FORMAT) private formatter: NovoInputFormat<any>,\n ) {\n if (!this.formatter) {\n console.warn('Picker directive is missing required formatter');\n }\n this.formatter?.valueChange.subscribe((value) => {\n this.updatePicker(value);\n });\n }\n\n updateValue(value: any) {\n this.formatter.writeValue(value);\n }\n\n updatePicker(value: any) {\n if (this._picker) {\n this._picker.writeValue(value);\n }\n }\n}\n","import { coerceBooleanProperty } from '@angular/cdk/coercion';\nimport {\n AfterContentInit,\n AfterViewInit,\n Attribute,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ElementRef,\n Inject,\n Input,\n OnChanges,\n OnDestroy,\n Optional,\n SimpleChanges,\n ViewChild,\n ViewEncapsulation,\n} from '@angular/core';\nimport { Subject, Subscription } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\nimport { BooleanInput } from 'novo-elements/utils';\nimport { NovoButtonElement } from 'novo-elements/elements/button';\nimport { NovoOverlayTemplateComponent } from 'novo-elements/elements/common';\nimport { NovoFieldElement, NOVO_FORM_FIELD } from '../field';\n\n@Component({\n selector: 'novo-picker-toggle',\n templateUrl: 'picker-toggle.component.html',\n host: {\n class: 'novo-picker-toggle',\n // Always set the tabindex to -1 so that it doesn't overlap with any custom tabindex the\n // consumer may have provided, while still being able to receive focus.\n '[attr.tabindex]': 'disabled ? null : -1',\n '[class.novo-toggle-active]': 'picker && picker.opened',\n '[class.novo-accent]': 'picker && picker.color === \"accent\"',\n '[class.novo-warn]': 'picker && picker.color === \"warn\"',\n '(focus)': '_button.focus()',\n },\n exportAs: 'novoPickerToggle',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: false,\n})\nexport class NovoPickerToggleElement<T = any> implements AfterContentInit, AfterViewInit, OnChanges, OnDestroy {\n private _stateChanges = Subscription.EMPTY;\n private _onDestroy = new Subject<void>();\n\n /** Datepicker instance that the button will toggle. */\n @Input('for') picker: T;\n\n @Input() icon: string;\n\n /** Tabindex for the toggle. */\n @Input() tabIndex: number | null;\n\n /** Screenreader label for the button. */\n @Input('aria-label') ariaLabel: string;\n\n /** Determines whether the overlay is triggered on input focus or solely button click. */\n @Input()\n @BooleanInput()\n triggerOnFocus: boolean = false;\n\n /** An id to select the correct overlay.*/\n @Input() overlayId: string;\n\n /** Width to pass to overlay.*/\n @Input() width: string;\n\n /** Whether the toggle button is disabled. */\n @Input()\n get disabled(): boolean {\n if (this._disabled === undefined && this.picker) {\n return (this.picker as any).disabled;\n }\n\n return !!this._disabled;\n }\n set disabled(value: boolean) {\n this._disabled = coerceBooleanProperty(value);\n }\n private _disabled: boolean;\n\n /** Underlying button element. */\n @ViewChild('button') _button: NovoButtonElement;\n\n /** Element for the panel containing the autocomplete options. */\n @ViewChild(NovoOverlayTemplateComponent)\n overlay: NovoOverlayTemplateComponent;\n\n element: ElementRef;\n\n constructor(\n private _elementRef: ElementRef,\n private cdr: ChangeDetectorRef,\n @Attribute('tabindex') defaultTabIndex: string,\n @Optional() @Inject(NOVO_FORM_FIELD) private _formField: NovoFieldElement,\n ) {\n const parsedTabIndex = Number(defaultTabIndex);\n this.tabIndex = parsedTabIndex || parsedTabIndex === 0 ? parsedTabIndex : null;\n }\n\n ngOnChanges(changes: SimpleChanges) {\n if (changes.picker) {\n this._watchStateChanges();\n }\n }\n\n ngOnDestroy() {\n this._stateChanges.unsubscribe();\n this._onDestroy.next();\n this._onDestroy.complete();\n }\n\n ngAfterContentInit() {\n this._watchStateChanges();\n }\n\n ngAfterViewInit() {\n this.element = this._formField.getConnectedOverlayOrigin() || this._elementRef;\n }\n\n checkPanel() {\n if (this.triggerOnFocus && this._formField._control.focused) {\n this.openPanel();\n }\n }\n\n togglePanel(event?: Event) {\n this.cdr.detectChanges();\n this.overlay.parent = this.element;\n if (!this.overlay.panelOpen) {\n this.openPanel(event);\n } else {\n this.closePanel(event);\n }\n }\n\n /** BEGIN: Convenient Panel Methods. */\n openPanel(event?: Event): void {\n if (!this.overlay.panelOpen) {\n this.overlay.parent = this.element;\n this.overlay.openPanel();\n }\n }\n\n closePanel(event?: Event): void {\n this.overlay.closePanel();\n }\n\n get panelOpen(): boolean {\n return this.overlay && this.overlay.panelOpen;\n }\n\n private _watchStateChanges() {\n this._formField._control?.stateChanges.pipe(takeUntil(this._onDestroy)).subscribe(() => {\n this.checkPanel();\n });\n }\n}\n","<novo-button\n #button\n theme=\"icon\"\n [icon]=\"icon\"\n [attr.aria-haspopup]=\"'dialog'\"\n [attr.tabindex]=\"disabled ? -1 : tabIndex\"\n [disabled]=\"disabled\"\n (click)=\"togglePanel($event)\"></novo-button>\n\n<novo-overlay-template [width]=\"width\" [parent]=\"element\" position=\"above-below\">\n <ng-content></ng-content>\n</novo-overlay-template>","// NG2\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\n// APP\nimport { NovoButtonModule } from 'novo-elements/elements/button';\nimport { NovoCommonModule, NovoOptionModule, NovoOverlayModule } from 'novo-elements/elements/common';\nimport { NovoErrorElement } from './error/error';\nimport { NovoFieldElement, NovoFieldPrefixDirective, NovoFieldSuffixDirective } from './field';\nimport { NovoFieldsElement } from './fieldset';\nimport { NovoDateFormatDirective } from './formats/date-format';\nimport { NovoDateRangeFormatDirective } from './formats/date-range-format';\nimport { NovoDateTimeFormatDirective } from './formats/date-time-format';\nimport { NovoTimeFormatDirective } from './formats/time-format';\nimport { NovoHintElement } from './hint/hint';\nimport { NovoInput } from './input';\nimport { NovoPickerDirective } from './picker.directive';\nimport { NovoPickerToggleElement } from './toggle/picker-toggle.component';\n\n@NgModule({\n imports: [CommonModule, NovoButtonModule, NovoOverlayModule, NovoOptionModule, NovoCommonModule],\n declarations: [\n NovoFieldElement,\n NovoHintElement,\n NovoErrorElement,\n NovoInput,\n NovoFieldPrefixDirective,\n NovoFieldSuffixDirective,\n NovoFieldsElement,\n NovoTimeFormatDirective,\n NovoDateFormatDirective,\n NovoDateTimeFormatDirective,\n NovoDateRangeFormatDirective,\n NovoPickerToggleElement,\n NovoPickerDirective,\n ],\n exports: [\n NovoFieldElement,\n NovoHintElement,\n NovoErrorElement,\n NovoInput,\n NovoFieldPrefixDirective,\n NovoFieldSuffixDirective,\n NovoFieldsElement,\n NovoTimeFormatDirective,\n NovoDateFormatDirective,\n NovoDateRangeFormatDirective,\n NovoDateTimeFormatDirective,\n NovoPickerToggleElement,\n NovoPickerDirective,\n ],\n})\nexport class NovoFieldModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["nextUniqueId","i1","__decorate","i2"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"novo-elements-elements-field.mjs","sources":["../../../projects/novo-elements/src/elements/field/error/error.ts","../../../projects/novo-elements/src/elements/field/error/error.html","../../../projects/novo-elements/src/elements/field/field-control.ts","../../../projects/novo-elements/src/elements/field/hint/hint.ts","../../../projects/novo-elements/src/elements/field/hint/hint.html","../../../projects/novo-elements/src/elements/field/field.ts","../../../projects/novo-elements/src/elements/field/field.html","../../../projects/novo-elements/src/elements/field/fieldset.ts","../../../projects/novo-elements/src/elements/field/fieldset.html","../../../projects/novo-elements/src/elements/field/formats/base-format.ts","../../../projects/novo-elements/src/elements/field/formats/date-format.ts","../../../projects/novo-elements/src/elements/field/formats/date-range-format.ts","../../../projects/novo-elements/src/elements/field/formats/date-time-format.ts","../../../projects/novo-elements/src/elements/field/formats/time-format.ts","../../../projects/novo-elements/src/elements/field/input.ts","../../../projects/novo-elements/src/elements/field/picker.directive.ts","../../../projects/novo-elements/src/elements/field/toggle/picker-toggle.component.ts","../../../projects/novo-elements/src/elements/field/toggle/picker-toggle.component.html","../../../projects/novo-elements/src/elements/field/field.module.ts","../../../projects/novo-elements/src/elements/field/novo-elements-elements-field.ts"],"sourcesContent":["// NG2\nimport { Component, OnInit } from '@angular/core';\nimport { DomSanitizer } from '@angular/platform-browser';\n\n@Component({\n selector: 'novo-error',\n templateUrl: './error.html',\n styleUrls: ['./error.scss'],\n standalone: false,\n})\nexport class NovoErrorElement implements OnInit {\n constructor(private sanitizer: DomSanitizer) {}\n\n ngOnInit(): any {}\n}\n","<ng-content></ng-content>","import { Directive } from '@angular/core';\nimport { NgControl } from '@angular/forms';\nimport { Observable } from 'rxjs';\n\n/** An interface which allows a control to work inside of a `NovoField`. */\n@Directive()\nexport abstract class NovoFieldControl<T> {\n /** The value of the control. */\n value: T | null;\n\n /** The last key pressed. */\n lastKeyValue: string | null;\n\n /** The last cursor position. */\n lastCaretPosition: number | null;\n\n /**\n * Stream that emits whenever the state of the control changes such that the parent `NovoField`\n * needs to run change detection.\n */\n readonly stateChanges: Observable<void>;\n\n /** The element ID for this control. */\n readonly id: string;\n\n /** The placeholder for this control. */\n readonly placeholder: string;\n\n /** Gets the NgControl for this control. */\n readonly ngControl: NgControl | null;\n\n /** Whether the control is focused. */\n readonly focused: boolean;\n\n /** Whether the control is empty. */\n readonly empty: boolean;\n\n /** Whether the `NovoField` label should try to float. */\n // readonly shouldLabelFloat: boolean;\n // readonly shouldFieldHaveUnderline: boolean;\n\n /** Whether the control is required. */\n readonly required: boolean;\n\n /** Whether the control is disabled. */\n readonly disabled: boolean;\n\n /** Whether the control is in an error state. */\n readonly errorState: boolean;\n\n /** Whether the control can have multiple values. */\n readonly multiple?: boolean;\n /**\n * An optional name for the control type that can be used to distinguish `novo-form-field` elements\n * based on their control type. The form field will add a class,\n * `novo-form-field-type-{{controlType}}` to its root element.\n */\n readonly controlType?: string;\n\n /**\n * Whether the input is currently in an autofilled state. If property is not present on the\n * control it is assumed to be false.\n */\n readonly autofilled?: boolean;\n\n /** Sets the list of element IDs that currently describe this control. */\n abstract setDescribedByIds(ids: string[]): void;\n\n /** Handles a click on the control's container. */\n abstract onContainerClick(event: MouseEvent): void;\n\n abstract focus(options?: FocusOptions): void;\n}\n","// NG2\nimport { Component, Input, OnInit } from '@angular/core';\n\nlet nextUniqueId = 0;\n@Component({\n selector: 'novo-hint',\n templateUrl: './hint.html',\n styleUrls: ['./hint.scss'],\n host: {\n class: 'novo-hint',\n '[class.novo-field-hint-end]': 'align === \"end\"',\n '[attr.id]': 'id',\n // Remove align attribute to prevent it from interfering with layout.\n '[attr.align]': 'null',\n },\n standalone: false,\n})\nexport class NovoHintElement implements OnInit {\n /** Whether to align the hint label at the start or end of the line. */\n @Input() align: 'start' | 'end' = 'start';\n\n /** Unique ID for the hint. Used for the aria-describedby on the form field control. */\n @Input() id: string = `novo-hint-${nextUniqueId++}`;\n\n ngOnInit(): any {}\n}\n","<ng-content></ng-content>","// NG2\nimport {\n AfterContentInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ContentChild,\n ContentChildren,\n Directive,\n ElementRef,\n EventEmitter,\n HostListener,\n InjectionToken,\n Input,\n OnDestroy,\n Output,\n QueryList,\n ViewChild,\n} from '@angular/core';\nimport { NgControl } from '@angular/forms';\nimport { fromEvent, Subject, Subscription } from 'rxjs';\nimport { startWith, takeUntil } from 'rxjs/operators';\nimport { NovoLabel, HasOverlay, NOVO_OVERLAY_CONTAINER } from 'novo-elements/elements/common';\nimport { NovoErrorElement } from './error/error';\nimport { NovoFieldControl } from './field-control';\nimport { NovoHintElement } from './hint/hint';\n\n@Directive({\n selector: '[novoPrefix]',\n standalone: false,\n})\nexport class NovoFieldPrefixDirective {}\n@Directive({\n selector: '[novoSuffix]',\n standalone: false,\n})\nexport class NovoFieldSuffixDirective {}\n\nconst NOVO_INPUT_UNDERLINED_TYPES = [\n 'text',\n 'date',\n 'time',\n 'datetime-local',\n 'password',\n 'email',\n 'tel',\n 'select',\n 'textarea',\n 'number',\n 'novo-chip-list',\n 'chip-list',\n];\nexport const NOVO_FORM_FIELD = new InjectionToken<NovoFieldElement>('NovoFormField');\n\n@Component({\n selector: 'novo-field',\n templateUrl: './field.html',\n styleUrls: ['./field.scss', './field-standard.scss', './field-fill.scss', './field-outline.scss', './field-list.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n class: 'novo-field',\n '[class.novo-field-layout-horizontal]': 'layout==\"horizontal\"',\n '[class.novo-field-layout-vertical]': 'layout==\"vertical\"',\n '[class.novo-field-appearance-standard]': 'appearance == \"standard\"',\n '[class.novo-field-appearance-fill]': 'appearance == \"fill\"',\n '[class.novo-field-appearance-outline]': 'appearance == \"outline\"',\n '[class.novo-field-appearance-list]': 'appearance == \"list\"',\n '[class.novo-field-appearance-underlined]': '_isUnderlinedInput()',\n '[class.novo-field-invalid]': '_control.errorState',\n '[class.novo-field-has-label]': '_hasLabel()',\n '[class.novo-field-no-label]': '!_hasLabel()',\n '[class.novo-field-disabled]': '_control.disabled',\n '[class.novo-field-autofilled]': '_control.autofilled',\n '[class.novo-focused]': '_control.focused',\n '[class.ng-untouched]': '_shouldForward(\"untouched\")',\n '[class.ng-touched]': '_shouldForward(\"touched\")',\n '[class.ng-pristine]': '_shouldForward(\"pristine\")',\n '[class.ng-dirty]': '_shouldForward(\"dirty\")',\n '[class.ng-valid]': '_shouldForward(\"valid\")',\n '[class.ng-invalid]': '_shouldForward(\"invalid\")',\n '[class.ng-pending]': '_shouldForward(\"pending\")',\n },\n providers: [{ provide: NOVO_FORM_FIELD, useExisting: NovoFieldElement }],\n standalone: false,\n})\nexport class NovoFieldElement implements AfterContentInit, OnDestroy {\n private _labelClicks = Subscription.EMPTY;\n\n @ViewChild('inputContainer') _inputContainerRef: ElementRef;\n\n @ContentChild(NovoLabel) _labelElement: NovoLabel;\n @ContentChildren(NovoHintElement) _hintElements: QueryList<NovoHintElement>;\n @ContentChildren(NovoErrorElement) _errorElements: QueryList<NovoErrorElement>;\n @ContentChildren(NovoFieldPrefixDirective) _prefixElements: QueryList<NovoFieldPrefixDirective>;\n @ContentChildren(NovoFieldSuffixDirective) _suffixElements: QueryList<NovoFieldSuffixDirective>;\n @ContentChildren(NOVO_OVERLAY_CONTAINER) _overlayElements: QueryList<HasOverlay>;\n\n @ContentChild(NovoFieldControl) _control: NovoFieldControl<any>;\n\n @Input() layout: 'horizontal' | 'vertical' = 'vertical';\n @Input() appearance: 'standard' | 'outline' | 'fill' | 'list' = 'standard';\n /**\n * When this field has a picker element, express which element it should be parented to\n */\n @Input() customOverlayOrigin: ElementRef;\n\n @Input()\n width: string;\n\n private _destroyed = new Subject<void>();\n\n @Output() valueChanges: EventEmitter<any> = new EventEmitter();\n @Output() stateChanges: EventEmitter<void> = new EventEmitter();\n\n constructor(public _elementRef: ElementRef, private _changeDetectorRef: ChangeDetectorRef) {}\n /**\n * Gets an ElementRef for the element that a overlay attached to the form-field should be\n * positioned relative to.\n */\n getConnectedOverlayOrigin(): ElementRef {\n return this.customOverlayOrigin || this._inputContainerRef || this._elementRef;\n }\n\n ngAfterContentInit(): any {\n this._validateControlChild();\n\n const control = this._control;\n if (control.controlType) {\n this._elementRef.nativeElement.classList.add(`novo-field-type-${control.controlType}`);\n this._elementRef.nativeElement.setAttribute('data-control-type', control.controlType);\n }\n\n if (control.id) {\n this._elementRef.nativeElement.setAttribute('data-control-id', control.id);\n }\n\n if (control.ngControl?.name) {\n this._elementRef.nativeElement.setAttribute('data-control-key', control.ngControl.name);\n }\n\n // Subscribe to changes in the child control state in order to update the form field UI.\n control.stateChanges.pipe(startWith(null)).subscribe(() => {\n this.stateChanges.next();\n this._changeDetectorRef.markForCheck();\n });\n\n // Run change detection if the value changes.\n if (control.ngControl && control.ngControl.valueChanges) {\n control.ngControl.valueChanges.pipe(takeUntil(this._destroyed)).subscribe((v) => {\n this.valueChanges.next(v);\n this._changeDetectorRef.markForCheck();\n });\n }\n\n if (this._hasLabel()) {\n this._labelClicks = fromEvent(this._labelElement.nativeElement, 'click').subscribe(() => this._control.focus());\n }\n }\n\n ngOnDestroy() {\n this._destroyed.next();\n this._destroyed.complete();\n this._labelClicks.unsubscribe();\n }\n\n /** Throws an error if the form field's control is missing. */\n protected _validateControlChild() {\n if (!this._control) {\n throw new Error('Missing Novo Control');\n }\n }\n\n public blurEventIsInField(blurEvt: FocusEvent): boolean {\n return this._elementRef.nativeElement.contains(blurEvt.relatedTarget) || this._overlayElements.some(hasOverlay => hasOverlay.overlay?.isBlurRecipient(blurEvt));\n }\n\n @HostListener('click', ['$event'])\n _handleContainerClick(evt: MouseEvent) {\n this._control.onContainerClick(evt);\n }\n\n _isUnderlinedInput(): boolean {\n return NOVO_INPUT_UNDERLINED_TYPES.includes(this._control.controlType);\n }\n\n /** Determines whether to display hints or errors. */\n _getDisplayedMessages(): 'error' | 'hint' {\n return this._errorElements && this._errorElements.length > 0 && this._control.errorState ? 'error' : 'hint';\n }\n\n /** Determines whether a class from the NgControl should be forwarded to the host element. */\n _shouldForward(prop: keyof NgControl): boolean {\n const ngControl = this._control ? this._control.ngControl : null;\n return ngControl && ngControl[prop];\n }\n\n _hasLabel() {\n return !!this._labelElement;\n }\n}\n","<div class=\"novo-field-label\">\n <ng-content select=\"novo-label\"></ng-content>\n</div>\n<div class=\"novo-field-input\" [style.width]=\"width\" #inputContainer>\n <div class=\"novo-field-prefix\">\n <ng-content select=\"[novoPrefix]\"></ng-content>\n </div>\n <div class=\"novo-field-infix\">\n <ng-content></ng-content>\n </div>\n <div class=\"novo-field-suffix\">\n <ng-content select=\"[novoSuffix]\"></ng-content>\n </div>\n</div>\n<div class=\"novo-field-messages\" [ngSwitch]=\"_getDisplayedMessages()\">\n <div class=\"novo-field-hint-wrapper\" *ngSwitchCase=\"'error'\">\n <ng-content select=\"novo-error\"></ng-content>\n </div>\n <div class=\"novo-field-hint-wrapper\" *ngSwitchCase=\"'hint'\">\n <ng-content select=\"novo-hint\"></ng-content>\n <ng-content select=\"novo-hint[align=end]\"></ng-content>\n </div>\n</div>","// NG2\nimport { AfterContentInit, ChangeDetectionStrategy, Component, ContentChildren, HostBinding, Input, QueryList } from '@angular/core';\nimport { BooleanInput } from 'novo-elements/utils';\nimport { NovoFieldElement } from './field';\n\n@Component({\n selector: 'novo-fields',\n templateUrl: './fieldset.html',\n styleUrls: ['./fieldset.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n class: 'novo-field',\n '[class.novo-fieldset-appearance-standard]': 'appearance == \"standard\"',\n '[class.novo-fieldset-appearance-fill]': 'appearance == \"fill\"',\n '[class.novo-fieldset-appearance-outline]': 'appearance == \"outline\"',\n '[class.novo-fieldset-appearance-list]': 'appearance == \"list\"',\n },\n standalone: false,\n})\nexport class NovoFieldsElement implements AfterContentInit {\n @ContentChildren(NovoFieldElement)\n _fields: QueryList<NovoFieldElement>;\n\n _layout: 'horizontal' | 'vertical' = 'horizontal';\n @Input() get layout(): any {\n return this._layout;\n }\n set layout(value) {\n if (this._layout !== value) {\n this._layout = value;\n this._updateFieldLayout();\n }\n }\n\n _appearance: 'standard' | 'outline' | 'fill' | 'list' = 'standard';\n @Input() get appearance(): any {\n return this._appearance;\n }\n set appearance(value) {\n if (this._appearance !== value) {\n this._appearance = value;\n this._updateFieldAppearance();\n }\n }\n\n @HostBinding('class.full-width')\n @Input()\n @BooleanInput()\n fullWidth: boolean = false;\n\n ngAfterContentInit(): any {\n this._updateFieldLayout();\n this._updateFieldAppearance();\n }\n\n private _updateFieldLayout(): void {\n if (this._fields) {\n this._fields.forEach((field) => {\n field.layout = this.layout;\n });\n }\n }\n\n private _updateFieldAppearance(): void {\n if (this._fields) {\n this._fields.forEach((field) => {\n field.appearance = this.appearance;\n });\n }\n }\n}\n","<ng-content></ng-content>","import { EventEmitter, InjectionToken } from '@angular/core';\nimport { ControlValueAccessor } from '@angular/forms';\n\nexport const NOVO_INPUT_FORMAT = new InjectionToken<NovoInputFormat>('NovoInputFormat');\n\nexport interface NovoInputFormat<T = any> extends ControlValueAccessor {\n valueChange: EventEmitter<any>;\n formatValue(value: T): string;\n}\n\nexport enum DATE_FORMATS {\n DATE = 'date',\n ISO8601 = 'iso8601',\n STRING = 'string',\n YEAR_MONTH_DAY = 'yyyy-mm-dd',\n}\n","import { Directive, EventEmitter, forwardRef, Input } from '@angular/core';\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { IMaskDirective } from 'angular-imask';\nimport { isValid } from 'date-fns';\nimport { MaskedRange } from 'imask';\nimport { DateFormatService, NovoLabelService } from 'novo-elements/services';\nimport { DateParseOptions, DateUtil } from 'novo-elements/utils';\nimport { DATE_FORMATS, NOVO_INPUT_FORMAT } from './base-format';\n\nexport const DATEFORMAT_VALUE_ACCESSOR = {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => NovoDateFormatDirective),\n multi: true,\n};\n\n@Directive({\n selector: 'input[dateFormat]',\n host: {\n class: 'novo-date-format',\n },\n providers: [DATEFORMAT_VALUE_ACCESSOR, { provide: NOVO_INPUT_FORMAT, useExisting: NovoDateFormatDirective }],\n standalone: false,\n})\nexport class NovoDateFormatDirective extends IMaskDirective<any> {\n valueChange: EventEmitter<any> = new EventEmitter();\n\n @Input() dateFormat: DATE_FORMATS = DATE_FORMATS.DATE;\n\n constructor(private labels: NovoLabelService, private dateFormatService: DateFormatService) {\n super();\n this.unmask = 'typed' as unknown as false; // typing is to work around angular-imask bug\n this.imask = {\n mask: Date,\n pattern: this.dateFormatService.dateFormatAsImaskPattern,\n overwrite: true,\n autofix: true,\n lazy: false,\n min: new Date(1900, 0, 1),\n max: new Date(2100, 0, 1),\n prepare: (str) => str.toUpperCase(),\n format: (date) => this.formatValue(date, { userDateFormat: this.labels.dateFormatString()}),\n parse: (str) => DateUtil.parse(str, { userDateFormat: this.labels.dateFormatString().toUpperCase() }),\n blocks: {\n d: {\n mask: MaskedRange,\n placeholderChar: 'D',\n from: 1,\n to: 31,\n maxLength: 2,\n },\n m: {\n mask: MaskedRange,\n placeholderChar: 'M',\n from: 1,\n to: 12,\n maxLength: 2,\n },\n Y: {\n mask: MaskedRange,\n placeholderChar: 'Y',\n from: 1900,\n to: 9999,\n },\n },\n };\n }\n\n normalize(value: string) {\n const pattern = this.labels.dateFormatString().toUpperCase();\n if (!value) {\n return '';\n }\n return DateUtil.format(DateUtil.parse(value, { userDateFormat: this.labels.dateFormatString()}), pattern);\n }\n\n formatAsIso(date: Date): string {\n if (date && isValid(date)) {\n return date.toISOString().slice(0, 10);\n }\n return null;\n }\n\n formatYearMonthDay(date: Date): string {\n if (date && isValid(date)) {\n return DateUtil.format(date, 'YYYY-MM-DD');\n }\n return null;\n }\n\n formatValue(value: any, options?: DateParseOptions): string {\n if (value == null) {\n return '';\n }\n const dateFormat = this.labels.dateFormatString().toUpperCase();\n const date = DateUtil.parse(value, options);\n if (isValid(date)) {\n return DateUtil.format(date, dateFormat);\n }\n return this.normalize(value);\n }\n\n writeValue(value: any) {\n const initialValue = this['_initialValue'];\n if (initialValue != null && value === initialValue) {\n // This value has already been formatted from the first call to writeValue, simply use it.\n super.writeValue(initialValue);\n } else {\n super.writeValue(this.formatValue(value));\n this.valueChange.emit(value);\n }\n }\n\n registerOnChange(fn: (_: any) => void): void {\n this.onChange = (date: any) => {\n let formatted = date;\n switch (this.dateFormat) {\n case DATE_FORMATS.ISO8601:\n formatted = this.formatAsIso(date);\n break;\n case DATE_FORMATS.STRING:\n formatted = this.formatValue(date);\n break;\n case DATE_FORMATS.YEAR_MONTH_DAY:\n formatted = this.formatYearMonthDay(date);\n break;\n default:\n formatted = date;\n break;\n }\n this.valueChange.emit(date);\n fn(formatted);\n };\n }\n}\n","import { Directive, EventEmitter, forwardRef, Input } from '@angular/core';\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { IMaskDirective } from 'angular-imask';\nimport { isValid } from 'date-fns';\nimport { MaskedRange } from 'imask';\nimport { DateFormatService, NovoLabelService } from 'novo-elements/services';\nimport { DateParseOptions, DateUtil } from 'novo-elements/utils';\nimport { DATE_FORMATS, NOVO_INPUT_FORMAT } from './base-format';\n\nexport const DATERANGEFORMAT_VALUE_ACCESSOR = {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => NovoDateRangeFormatDirective),\n multi: true,\n};\n\ntype DateRange = {\n startDate: Date;\n endDate: Date;\n};\n\n@Directive({\n selector: 'input[dateRangeFormat]',\n host: {\n class: 'novo-date-range-format',\n },\n providers: [DATERANGEFORMAT_VALUE_ACCESSOR, { provide: NOVO_INPUT_FORMAT, useExisting: NovoDateRangeFormatDirective }],\n standalone: false,\n})\nexport class NovoDateRangeFormatDirective extends IMaskDirective<any> {\n valueChange: EventEmitter<any> = new EventEmitter();\n\n @Input() dateRangeFormat: DATE_FORMATS = DATE_FORMATS.DATE;\n\n constructor(private labels: NovoLabelService, private dateFormat: DateFormatService) {\n super();\n this.unmask = false;\n this.imask = {\n mask: `${this.dateFormat.dateFormatAsImaskPattern} - ${this.dateFormat.dateFormatAsImaskPattern}`,\n overwrite: true,\n autofix: true,\n lazy: false,\n blocks: {\n d: {\n mask: MaskedRange,\n placeholderChar: 'D',\n from: 1,\n to: 31,\n maxLength: 2,\n },\n m: {\n mask: MaskedRange,\n placeholderChar: 'M',\n from: 1,\n to: 12,\n maxLength: 2,\n },\n Y: {\n mask: MaskedRange,\n placeholderChar: 'Y',\n from: 1900,\n to: 9999,\n },\n },\n };\n }\n\n normalize(value: string | Date, options?: DateParseOptions) {\n const pattern = this.labels.dateFormatString().toUpperCase();\n return DateUtil.format(value ? DateUtil.parse(value, options) : null, pattern);\n }\n\n formatAsIso(value: DateRange): string {\n if (!value) {\n return '';\n }\n const { startDate, endDate } = value;\n if (startDate && isValid(startDate) && endDate && isValid(endDate)) {\n const startIso = startDate.toISOString().slice(0, 10);\n const endIso = endDate.toISOString().slice(0, 10);\n return `${startIso}/${endIso}`;\n }\n return null;\n }\n\n formatValue(value: DateRange): string {\n if (!value) {\n return '';\n }\n const { startDate, endDate } = value;\n return `${this.formatDate(startDate)} - ${this.formatDate(endDate)}`;\n }\n\n formatDate(source: Date | string) {\n const dateRangeFormat = this.labels.dateFormatString().toUpperCase();\n const date = DateUtil.parse(source);\n if (isValid(date)) {\n return DateUtil.format(date, dateRangeFormat);\n }\n return this.normalize(source);\n }\n\n writeValue(value: any) {\n if (this['_initialValue'] && value === this['_initialValue']) {\n // if this call is coming from the super class, skip through.\n // If we ever wanted to reduce the need for this hack/workaround, we could refactor\n // IMaskDirective to exist as a child portion of DateRangeFormatDirective.\n super.writeValue(value);\n return;\n }\n const formattedValue = this.formatValue(value);\n if (formattedValue !== this.maskValue) {\n super.writeValue(this.formatValue(value));\n this.onChange(this.formatValue(value));\n this.valueChange.emit(value);\n }\n }\n\n registerOnChange(fn: (_: any) => void): void {\n this.onChange = (input: any) => {\n if (this.validate(input)) {\n const dates = this.extractDatesFromInput(input);\n let formatted: DateRange | string = dates;\n switch (this.dateRangeFormat) {\n case DATE_FORMATS.ISO8601:\n formatted = this.formatAsIso(dates);\n break;\n case DATE_FORMATS.STRING:\n formatted = this.formatValue(dates);\n break;\n default:\n formatted = dates;\n break;\n }\n this.valueChange.emit(dates);\n fn(formatted);\n }\n };\n }\n\n extractDatesFromInput(value) {\n const [startStr, endStr] = value.split(' - ');\n const startDate = DateUtil.parse(startStr, { userDateFormat: this.labels.dateFormatString()});\n const endDate = DateUtil.parse(endStr, { userDateFormat: this.labels.dateFormatString()});\n return { startDate, endDate };\n }\n\n validate(dateStr: string) {\n const { startDate, endDate } = this.extractDatesFromInput(dateStr);\n return isValid(startDate) && isValid(endDate);\n }\n}\n","import { Directive, EventEmitter, Input, OnChanges, SimpleChanges, forwardRef } from '@angular/core';\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { IMaskDirective } from 'angular-imask';\nimport { isValid } from 'date-fns';\nimport { MaskedEnum, MaskedRange } from 'imask';\nimport { DateFormatService, NovoLabelService } from 'novo-elements/services';\nimport { DateParseOptions, DateUtil, Key } from 'novo-elements/utils';\nimport { DATE_FORMATS, NOVO_INPUT_FORMAT, NovoInputFormat } from './base-format';\n\nexport const DATETIMEFORMAT_VALUE_ACCESSOR = {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => NovoDateTimeFormatDirective),\n multi: true,\n};\n\n@Directive({\n selector: 'input[dateTimeFormat]',\n host: {\n class: 'novo-date-time-format',\n '(input)': '_checkInput($event)',\n '(blur)': '_handleBlur($event)',\n '(keydown)': '_handleKeydown($event)',\n },\n providers: [DATETIMEFORMAT_VALUE_ACCESSOR, { provide: NOVO_INPUT_FORMAT, useExisting: NovoDateTimeFormatDirective }],\n standalone: false,\n})\nexport class NovoDateTimeFormatDirective extends IMaskDirective<any> implements NovoInputFormat, OnChanges {\n valueChange: EventEmitter<any> = new EventEmitter();\n\n @Input() military: boolean = false;\n @Input() dateTimeFormat: DATE_FORMATS = DATE_FORMATS.DATE;\n\n constructor(private labels: NovoLabelService, private dateFormat: DateFormatService) {\n super();\n this.initFormatOptions();\n }\n\n initFormatOptions() {\n const amFormat = this.labels.timeFormatAM.toUpperCase();\n const pmFormat = this.labels.timeFormatPM.toUpperCase();\n this.unmask = 'typed' as unknown as false; // typing is to work around angular-imask bug\n let pattern = `${this.dateFormat.dateFormatAsImaskPattern}, HH:mm`;\n if (!this.military) {\n pattern += ' aa';\n }\n this.imask = {\n mask: Date,\n pattern,\n overwrite: true,\n autofix: true,\n lazy: false,\n min: new Date(1900, 0, 1),\n max: new Date(2100, 0, 1),\n prepare: (str) => str.toUpperCase(),\n format: (date) => this.formatValue(date, { userDateFormat: this.labels.dateFormatString() }),\n parse: (str) => DateUtil.parse(str, { userDateFormat: this.labels.dateFormatString().toUpperCase() }),\n blocks: {\n d: {\n mask: MaskedRange,\n placeholderChar: 'D',\n from: 1,\n to: 31,\n maxLength: 2,\n },\n m: {\n mask: MaskedRange,\n placeholderChar: 'M',\n from: 1,\n to: 12,\n maxLength: 2,\n },\n Y: {\n mask: MaskedRange,\n placeholderChar: 'Y',\n from: 1900,\n to: 9999,\n },\n HH: {\n mask: MaskedRange,\n placeholderChar: '-',\n maxLength: 2,\n from: 0,\n to: 23,\n },\n hh: {\n mask: MaskedRange,\n placeholderChar: '-',\n maxLength: 2,\n from: 1,\n to: 12,\n },\n mm: {\n mask: MaskedRange,\n placeholderChar: '-',\n maxLength: 2,\n from: 0,\n to: 59,\n },\n ss: {\n mask: MaskedRange,\n placeholderChar: '-',\n maxLength: 2,\n from: 0,\n to: 59,\n },\n aa: {\n mask: MaskedEnum,\n placeholderChar: '-',\n enum: ['AM', 'PM', 'am', 'pm', amFormat, pmFormat],\n },\n },\n };\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (Object.keys(changes).some((key) => ['military', 'dateFormat'].includes(key))) {\n this.initFormatOptions();\n }\n }\n\n _checkInput(event: InputEvent): void {\n if (document.activeElement === event.target) {\n const text = (event.target as HTMLInputElement).value;\n const dateTime = text.split(', ');\n const hour = dateTime[1].slice(0, 2);\n if ((this.military && Number(dateTime[1][0]) > 2) || (!this.military && Number(dateTime[1][0]) > 1)) {\n event.preventDefault();\n const value = `0${dateTime[1]}`;\n (event.target as HTMLInputElement).value = value;\n }\n if (!this.military) {\n const input = dateTime[1].substr(5, 4).replace(/\\-/g, '').trim().slice(0, 2);\n const timePeriod = this.imask.blocks.aa.enum.find((it) => it[0] === input[0]);\n if (timePeriod) {\n (event.target as HTMLInputElement).value = `${dateTime[0]}, ${dateTime[1].slice(0, 5)} ${timePeriod}`;\n }\n if ((event.target as HTMLInputElement).selectionStart >= 3 && this.hourOneFormatRequired(hour)) {\n (event.target as HTMLInputElement).value = `${dateTime[0]}, 01:${(event.target as HTMLInputElement).value.slice(\n 3,\n (event.target as HTMLInputElement).value.length,\n )}`;\n }\n }\n }\n }\n\n _handleBlur(event: FocusEvent): void {\n const text = (event.target as HTMLInputElement).value;\n const dateTime = text.split(', ');\n const hour: string = dateTime[1].slice(0, 2);\n if (!this.military) {\n const input = dateTime[1].substr(5, 4).replace(/\\-/g, '').trim().slice(0, 2);\n const timePeriod = this.imask.blocks.aa.enum.find((it) => it[0] === input[0]);\n if (this.hourOneFormatRequired(hour)) {\n (event.target as HTMLInputElement).value = `${dateTime[0]}, 01:${dateTime[1].slice(3, dateTime[1].length)}`;\n }\n if (!timePeriod) {\n (event.target as HTMLInputElement).value = `${dateTime[0]}, ${dateTime[1].slice(0, 5)} --`;\n }\n }\n }\n\n _handleKeydown(event: KeyboardEvent): void {\n const input = event.target as HTMLInputElement;\n const dateTime = input.value.split(', ');\n const hour: string = dateTime[1].slice(0, 2);\n\n if (event.key === Key.Backspace && input.selectionStart === dateTime[1].length) {\n (event.target as HTMLInputElement).value = `${dateTime[1].slice(0, 5)} --`;\n } else if (event.key === Key.Tab && input.selectionStart <= 2 && this.hourOneFormatRequired(hour)) {\n event.preventDefault();\n event.stopPropagation();\n event.stopImmediatePropagation();\n input.value = `${dateTime[0]}, 01:${dateTime[1].slice(3, dateTime[1].length)}`;\n input.setSelectionRange(15, 15);\n } else if (event.key === Key.ArrowRight && input.selectionStart >= 2 && this.hourOneFormatRequired(hour)) {\n input.value = `${dateTime[0]}, 01:${dateTime[1].slice(3, dateTime[1].length)}`;\n input.setSelectionRange(14, 14);\n }\n }\n\n normalize(value: string, options?: DateParseOptions) {\n const pattern = this.labels.dateFormatString().toUpperCase();\n return DateUtil.format(value ? DateUtil.parse(value, options) : null, pattern);\n }\n\n formatAsIso(date: Date): string {\n if (date && isValid(date)) {\n return date.toISOString();\n }\n return null;\n }\n\n convertTime12to24(time12h: string) {\n const pmFormat = this.labels.timeFormatPM.toUpperCase();\n const [time, meridian] = time12h.split(' ');\n // eslint-disable-next-line prefer-const\n let [hours, minutes] = time.split(':');\n if (hours === '12') {\n hours = '00';\n }\n if (['PM', pmFormat].includes(meridian)) {\n hours = `${parseInt(hours, 10) + 12}`.padStart(2, '0');\n }\n return `${hours}:${minutes}`;\n }\n\n convertTime24to12(time24h: string) {\n if (time24h.length === 5) {\n const date = DateUtil.parse(`2020-01-01T${time24h}`);\n return DateUtil.format(date, 'hh:mm A');\n }\n return time24h;\n }\n\n formatValue(value: Date | string, options?: DateParseOptions): string {\n if (value == null) {\n return '';\n }\n // Use `parse` because it keeps dates in locale\n const date = DateUtil.parse(value, options);\n if (isValid(date)) {\n const dateFormat = `${this.labels.dateFormatString().toUpperCase()}, ${this.military ? 'HH:mm' : 'hh:mm A'}`;\n return DateUtil.format(date, dateFormat);\n }\n return this.normalize(value as string, options);\n }\n\n writeValue(value: any) {\n const initialValue = this['_initialValue'];\n if (initialValue != null && value === initialValue) {\n // This value has already been formatted from the first call to writeValue, simply use it.\n super.writeValue(initialValue);\n } else {\n super.writeValue(this.formatValue(value));\n this.valueChange.emit(value);\n }\n }\n\n registerOnChange(fn: (_: any) => void): void {\n this.onChange = (date: Date) => {\n let formatted: Date | string;\n switch (this.dateTimeFormat) {\n case DATE_FORMATS.ISO8601:\n formatted = this.formatAsIso(date);\n break;\n case DATE_FORMATS.STRING:\n formatted = this.formatValue(date);\n break;\n default:\n formatted = date;\n break;\n }\n this.valueChange.emit(date);\n fn(formatted);\n };\n }\n\n hourOneFormatRequired(hourInput: string): boolean {\n return hourInput === '-1' || hourInput === '1-';\n }\n\n get initialValue(): any {\n return this.maskValue;\n }\n}\n","import {\n AfterViewInit,\n ChangeDetectorRef,\n Directive,\n EventEmitter,\n forwardRef,\n Input,\n OnChanges,\n SimpleChanges,\n} from '@angular/core';\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { IMaskDirective } from 'angular-imask';\nimport { isValid } from 'date-fns';\nimport { MaskedEnum, MaskedRange } from 'imask';\nimport { NovoLabelService } from 'novo-elements/services';\nimport { DateUtil, Key } from 'novo-elements/utils';\nimport { NOVO_INPUT_FORMAT, NovoInputFormat } from './base-format';\n\nexport const TIMEFORMAT_VALUE_ACCESSOR = {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => NovoTimeFormatDirective),\n multi: true,\n};\n\nexport enum TIME_FORMATS {\n DATE = 'date',\n ISO8601 = 'iso8601',\n STRING = 'string',\n}\n\n@Directive({\n selector: 'input[timeFormat]',\n host: {\n class: 'novo-time-format',\n '(input)': '_checkInput($event)',\n '(blur)': '_handleBlur($event)',\n '(keydown)': '_handleKeydown($event)',\n },\n providers: [TIMEFORMAT_VALUE_ACCESSOR, { provide: NOVO_INPUT_FORMAT, useExisting: NovoTimeFormatDirective }],\n standalone: false,\n})\nexport class NovoTimeFormatDirective extends IMaskDirective<any> implements NovoInputFormat, AfterViewInit, OnChanges {\n valueChange: EventEmitter<any> = new EventEmitter();\n\n @Input() military: boolean = false;\n @Input() timeFormat: TIME_FORMATS = TIME_FORMATS.DATE;\n\n constructor(private labels: NovoLabelService, private cdr: ChangeDetectorRef) {\n super();\n this.initFormatOptions();\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (Object.keys(changes).some((key) => ['military', 'timeFormat'].includes(key))) {\n this.initFormatOptions();\n }\n }\n\n initFormatOptions() {\n const amFormat = this.labels.timeFormatAM.toUpperCase();\n const pmFormat = this.labels.timeFormatPM.toUpperCase();\n this.unmask = 'typed' as unknown as false; // typing is to work around angular-imask bug\n this.imask = {\n mask: Date,\n pattern: this.military ? 'HH:mm' : 'hh:mm aa',\n overwrite: true,\n autofix: true,\n lazy: false,\n min: new Date(1970, 0, 1),\n max: new Date(2100, 0, 1),\n prepare: (str) => str.toUpperCase(),\n format: (value) => this.formatValue(value),\n parse: (str) => {\n const time = this.convertTime12to24(str);\n return DateUtil.parse(`${DateUtil.format(Date.now(), 'YYYY-MM-DD')}T${time}`);\n },\n blocks: {\n HH: {\n mask: MaskedRange,\n placeholderChar: '-',\n maxLength: 2,\n from: 0,\n to: 23,\n },\n hh: {\n mask: MaskedRange,\n placeholderChar: '-',\n maxLength: 2,\n from: 1,\n to: 12,\n },\n mm: {\n mask: MaskedRange,\n placeholderChar: '-',\n maxLength: 2,\n from: 0,\n to: 59,\n },\n aa: {\n mask: MaskedEnum,\n placeholderChar: '-',\n enum: ['AM', 'PM', 'am', 'pm', amFormat, pmFormat],\n },\n },\n };\n }\n\n _checkInput(event: InputEvent): void {\n if (document.activeElement === event.target) {\n const text = (event.target as HTMLInputElement).value;\n const hour = text.slice(0, 2);\n if ((this.military && Number(text[0]) > 2) || (!this.military && Number(text[0]) > 1)) {\n event.preventDefault();\n const value = `0${text}`;\n (event.target as HTMLInputElement).value = value;\n }\n if (!this.military) {\n const input = text.substr(5, 4).replace(/\\-/g, '').trim().slice(0, 2);\n const timePeriod = this.imask.blocks.aa.enum.find((it) => it[0] === input[0]);\n if (timePeriod) {\n (event.target as HTMLInputElement).value = `${text.slice(0, 5)} ${timePeriod}`;\n }\n if ((event.target as HTMLInputElement).selectionStart >= 3 && this.hourOneFormatRequired(hour)) {\n (event.target as HTMLInputElement).value = `01:${(event.target as HTMLInputElement).value.slice(\n 3,\n (event.target as HTMLInputElement).value.length,\n )}`;\n }\n }\n }\n }\n\n _handleBlur(event: FocusEvent): void {\n const text = (event.target as HTMLInputElement).value;\n const hour: string = text.slice(0, 2);\n if (!this.military) {\n const input = text.substr(5, 4).replace(/\\-/g, '').trim().slice(0, 2);\n const timePeriod = this.imask.blocks.aa.enum.find((it) => it[0] === input[0]);\n if (this.hourOneFormatRequired(hour)) {\n (event.target as HTMLInputElement).value = `01:${text.slice(3, text.length)}`;\n }\n if (!timePeriod) {\n (event.target as HTMLInputElement).value = `${text.slice(0, 5)} --`;\n }\n }\n }\n\n _handleKeydown(event: KeyboardEvent): void {\n const input = event.target as HTMLInputElement;\n const hour: string = input.value.slice(0, 2);\n\n if (event.key === Key.Backspace && input.selectionStart === input.value.length) {\n (event.target as HTMLInputElement).value = `${input.value.slice(0, 5)} --`;\n } else if (event.key === Key.Tab && input.selectionStart <= 2 && this.hourOneFormatRequired(hour)) {\n event.preventDefault();\n event.stopPropagation();\n event.stopImmediatePropagation();\n input.value = `01:${input.value.slice(3, input.value.length)}`;\n input.setSelectionRange(3, 3);\n } else if (event.key === Key.ArrowRight && input.selectionStart >= 2 && this.hourOneFormatRequired(hour)) {\n input.value = `01:${input.value.slice(3, input.value.length)}`;\n input.setSelectionRange(2, 2);\n }\n }\n\n normalize(value: string) {\n if (this.military) {\n return this.convertTime12to24(value);\n }\n return this.convertTime24to12(value);\n }\n\n formatValue(value: any): string {\n const date = DateUtil.parse(value);\n if (isValid(date)) {\n const pattern = this.military ? 'HH:mm' : 'hh:mm A';\n return DateUtil.format(date, pattern);\n }\n return this.normalize(value);\n }\n\n formatAsIso(date: Date): string {\n if (date && isValid(date)) {\n return DateUtil.format(date, 'HH:mm');\n }\n return null;\n }\n\n convertTime12to24(time12h: string) {\n const pmFormat = this.labels.timeFormatPM.toUpperCase();\n const [time, meridian] = time12h.split(' ');\n // eslint-disable-next-line prefer-const\n let [hours, minutes] = time.split(':');\n if (hours === '12') {\n hours = '00';\n }\n if (['PM', pmFormat].includes(meridian)) {\n hours = `${parseInt(hours, 10) + 12}`.padStart(2, '0');\n }\n return `${hours}:${minutes}`;\n }\n\n convertTime24to12(time24h: string) {\n if (time24h.length === 5) {\n const date = DateUtil.parse(`2020-01-01T${time24h}`);\n return DateUtil.format(date, 'hh:mm A');\n }\n return time24h;\n }\n\n writeValue(value: any) {\n super.writeValue(this.formatValue(value));\n this.valueChange.emit(value);\n }\n\n registerOnChange(fn: (date: any) => void): void {\n this.onChange = (date: any) => {\n let formatted = date;\n switch (this.timeFormat) {\n case TIME_FORMATS.ISO8601:\n formatted = this.formatAsIso(date);\n break;\n case TIME_FORMATS.STRING:\n formatted = this.formatValue(date);\n break;\n default:\n formatted = date;\n break;\n }\n this.valueChange.emit(date);\n fn(formatted);\n };\n }\n\n hourOneFormatRequired(hourInput: string): boolean {\n return hourInput === '-1' || hourInput === '1-';\n }\n}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport { BooleanInput, coerceBooleanProperty } from '@angular/cdk/coercion';\nimport { getSupportedInputTypes, Platform } from '@angular/cdk/platform';\nimport { AutofillMonitor } from '@angular/cdk/text-field';\nimport {\n AfterViewInit,\n Directive,\n DoCheck,\n ElementRef,\n EventEmitter,\n HostBinding,\n HostListener,\n Inject,\n InjectionToken,\n Input,\n NgZone,\n OnChanges,\n OnDestroy,\n Optional,\n Output,\n Self,\n} from '@angular/core';\nimport { FormGroupDirective, NgControl, NgForm } from '@angular/forms';\nimport { Subject } from 'rxjs';\nimport { NovoFieldControl } from './field-control';\n\n/**\n * This token is used to inject the object whose value should be set into `NovoInput`. If none is\n * provided, the native `HTMLInputElement` is used. Directives like `MatDatepickerInput` can provide\n * themselves for this token, in order to make `NovoInput` delegate the getting and setting of the\n * value to them.\n */\nexport const NOVO_INPUT_VALUE_ACCESSOR = new InjectionToken<{ value: any }>('NOVO_INPUT_VALUE_ACCESSOR');\n\n// Invalid input type. Using one of these will throw an NovoInputUnsupportedTypeError.\nconst NOVO_INPUT_INVALID_TYPES = ['button', 'file', 'hidden', 'image', 'radio', 'reset', 'submit'];\n\nlet nextUniqueId = 0;\n\n// Boilerplate for applying mixins to NovoInput.\nclass NovoInputBase {\n constructor(\n public _parentForm: NgForm,\n public _parentFormGroup: FormGroupDirective,\n /** @docs-private */\n public ngControl: NgControl,\n ) {}\n}\n\n/** Directive that allows a native input to work inside a `NovoField`. */\n@Directive({\n selector: 'input[novoInput], textarea[novoInput], select[novoInput]',\n host: {\n class: 'novo-input-element',\n '[attr.id]': 'id',\n '[attr.placeholder]': 'placeholder',\n '[disabled]': 'disabled',\n '[required]': 'required',\n '[attr.readonly]': 'readonly && !_isNativeSelect || null',\n '[attr.aria-invalid]': 'errorState',\n '[attr.aria-required]': 'required.toString()',\n '[attr.autocomplete]': \"'off'\",\n },\n providers: [{ provide: NovoFieldControl, useExisting: NovoInput }],\n standalone: false,\n})\nexport class NovoInput extends NovoInputBase implements NovoFieldControl<any>, OnChanges, OnDestroy, AfterViewInit, DoCheck {\n protected _uid = `novo-input-${nextUniqueId++}`;\n protected _previousNativeValue: any;\n private _inputValueAccessor: { value: any };\n /** The aria-describedby attribute on the input for improved a11y. */\n @HostBinding('attr.aria-describedby') _ariaDescribedby: string;\n\n /** Whether the component is being rendered on the server. */\n readonly _isServer: boolean;\n\n /** Whether the component is a native html select. */\n readonly _isNativeSelect: boolean;\n\n /** Whether the component is a textarea. */\n readonly _isTextarea: boolean;\n\n /**\n * Implemented as part of NovoFieldControl.\n * @docs-private\n */\n focused: boolean = false;\n\n errorState: boolean = false;\n\n /** @docs-private Implemented as part of NovoFieldControl. */\n lastKeyValue: string = null;\n /** @docs-private Implemented as part of NovoFieldControl.*/\n lastCaretPosition: number | null;\n\n /**\n * Implemented as part of NovoFieldControl.\n * @docs-private\n */\n readonly stateChanges: Subject<void> = new Subject<void>();\n\n /**\n * Implemented as part of NovoFieldControl.\n * @docs-private\n */\n controlType: string = 'novo-input';\n\n /**\n * Implemented as part of NovoFieldControl.\n * @docs-private\n */\n autofilled = false;\n\n /**\n * Implemented as part of NovoFieldControl.\n * @docs-private\n */\n @Input()\n get disabled(): boolean {\n if (this.ngControl && this.ngControl.disabled !== null) {\n return this.ngControl.disabled;\n }\n return this._disabled;\n }\n set disabled(value: boolean) {\n this._disabled = coerceBooleanProperty(value);\n\n // Browsers may not fire the blur event if the input is disabled too quickly.\n // Reset from here to ensure that the element doesn't become stuck.\n if (this.focused) {\n this.focused = false;\n this.stateChanges.next();\n }\n }\n protected _disabled = false;\n\n /**\n * Implemented as part of NovoFieldControl.\n * @docs-private\n */\n @Input()\n get id(): string {\n return this._id;\n }\n set id(value: string) {\n this._id = value || this._uid;\n }\n protected _id: string;\n\n /**\n * Implemented as part of NovoFieldControl.\n * @docs-private\n */\n @Input() placeholder: string;\n\n /**\n * Implemented as part of NovoFieldControl.\n * @docs-private\n */\n @Input()\n get required(): boolean {\n return this._required;\n }\n set required(value: boolean) {\n this._required = coerceBooleanProperty(value);\n }\n protected _required = false;\n\n /** Input type of the element. */\n @Input()\n get type(): string {\n return this._type;\n }\n set type(value: string) {\n this._type = value || 'text';\n this._validateType();\n\n // When using Angular inputs, developers are no longer able to set the properties on the native\n // input element. To ensure that bindings for `type` work, we need to sync the setter\n // with the native property. Textarea elements don't support the type property or attribute.\n if (!this._isTextarea && getSupportedInputTypes().has(this._type)) {\n (this._elementRef.nativeElement as HTMLInputElement).type = this._type;\n }\n }\n protected _type = 'text';\n\n /**\n * Implemented as part of NovoFieldControl.\n * @docs-private\n */\n @Input()\n get value(): string {\n return this._inputValueAccessor.value;\n }\n set value(value: string) {\n if (value !== this.value) {\n this._inputValueAccessor.value = value;\n this.stateChanges.next();\n }\n }\n\n /** Whether the element is readonly. */\n @Input()\n get readonly(): boolean {\n return this._readonly;\n }\n set readonly(value: boolean) {\n this._readonly = coerceBooleanProperty(value);\n }\n private _readonly = false;\n\n protected _neverEmptyInputTypes = ['date', 'datetime', 'datetime-local', 'month', 'time', 'week'].filter((t) =>\n getSupportedInputTypes().has(t),\n );\n\n constructor(\n protected _elementRef: ElementRef<HTMLInputElement | HTMLSelectElement | HTMLTextAreaElement>,\n protected _platform: Platform,\n /** @docs-private */\n @Optional() @Self() public ngControl: NgControl,\n @Optional() _parentForm: NgForm,\n @Optional() _parentFormGroup: FormGroupDirective,\n @Optional() @Self() @Inject(NOVO_INPUT_VALUE_ACCESSOR) inputValueAccessor: any,\n private _autofillMonitor: AutofillMonitor,\n ngZone: NgZone,\n ) {\n super(_parentForm, _parentFormGroup, ngControl);\n\n const element = this._elementRef.nativeElement;\n const nodeName = element.nodeName.toLowerCase();\n\n // If no input value accessor was explicitly specified, use the element as the input value\n // accessor.\n this._inputValueAccessor = inputValueAccessor || element;\n\n this._previousNativeValue = this.value;\n\n // Force setter to be called in case id was not specified.\n this.id = this.id;\n\n // On some versions of iOS the caret gets stuck in the wrong place when holding down the delete\n // key. In order to get around this we need to \"jiggle\" the caret loose. Since this bug only\n // exists on iOS, we only bother to install the listener on iOS.\n if (_platform.IOS) {\n ngZone.runOutsideAngular(() => {\n _elementRef.nativeElement.addEventListener('keyup', (event: Event) => {\n const el = event.target as HTMLInputElement;\n if (!el.value && !el.selectionStart && !el.selectionEnd) {\n // Note: Just setting `0, 0` doesn't fix the issue. Setting\n // `1, 1` fixes it for the first time that you type text and\n // then hold delete. Toggling to `1, 1` and then back to\n // `0, 0` seems to completely fix it.\n el.setSelectionRange(1, 1);\n el.setSelectionRange(0, 0);\n }\n });\n });\n }\n\n this._isServer = !this._platform.isBrowser;\n this._isNativeSelect = nodeName === 'select';\n this._isTextarea = nodeName === 'textarea';\n\n this.controlType = (this._elementRef.nativeElement as HTMLInputElement).type;\n if (this._isNativeSelect) {\n this.controlType = (element as HTMLSelectElement).multiple ? 'select-multiple' : 'select';\n } else if (this._isTextarea) {\n this.controlType = 'textarea';\n }\n }\n\n ngAfterViewInit() {\n if (this._platform.isBrowser) {\n this._autofillMonitor.monitor(this._elementRef.nativeElement).subscribe((event) => {\n this.autofilled = event.isAutofilled;\n this.stateChanges.next();\n });\n }\n }\n\n ngOnChanges() {\n this.stateChanges.next();\n }\n\n ngOnDestroy() {\n this.stateChanges.complete();\n\n if (this._platform.isBrowser) {\n this._autofillMonitor.stopMonitoring(this._elementRef.nativeElement);\n }\n }\n\n ngDoCheck() {\n // We need to dirty-check the native element's value, because there are some cases where\n // we won't be notified when it changes (e.g. the consumer isn't using forms or they're\n // updating the value using `emitEvent: false`).\n this._dirtyCheckNativeValue();\n }\n\n /** Focuses the input. */\n focus(options?: FocusOptions): void {\n this._elementRef.nativeElement.focus(options);\n }\n\n // We have to use a `HostListener` here in order to support both Ivy and ViewEngine.\n // In Ivy the `host` bindings will be merged when this class is extended, whereas in\n // ViewEngine they're overwritten.\n @HostListener('focus', ['true'])\n @HostListener('blur', ['false'])\n _focusChanged(isFocused: boolean) {\n if (isFocused !== this.focused && (!this.readonly || !isFocused)) {\n this.focused = isFocused;\n this.stateChanges.next();\n }\n }\n\n // We have to use a `HostListener` here in order to support both Ivy and ViewEngine.\n // In Ivy the `host` bindings will be merged when this class is extended, whereas in\n // ViewEngine they're overwritten.\n @HostListener('input', ['$event'])\n _onInput(event: InputEvent) {\n // Listening to the input event wouldn't be necessary when the input is using the\n // FormsModule or ReactiveFormsModule, because Angular forms also listens to input events.\n this.lastKeyValue = event.data;\n if (this._isTextarea) {\n this.lastCaretPosition = (this._elementRef.nativeElement as HTMLTextAreaElement).selectionStart;\n }\n }\n\n /** Does some manual dirty checking on the native input `value` property. */\n protected _dirtyCheckNativeValue() {\n const newValue = this._elementRef.nativeElement.value;\n\n if (this._previousNativeValue !== newValue) {\n this._previousNativeValue = newValue;\n this.stateChanges.next();\n }\n }\n\n /** Make sure the input is a supported type. */\n protected _validateType() {\n if (NOVO_INPUT_INVALID_TYPES.indexOf(this._type) > -1) {\n throw new Error(`Invalid Input Type: ${this._type}`);\n }\n }\n\n /** Checks whether the input type is one of the types that are never empty. */\n protected _isNeverEmpty() {\n return this._neverEmptyInputTypes.indexOf(this._type) > -1;\n }\n\n /** Checks whether the input is invalid based on the native validation. */\n protected _isBadInput() {\n // The `validity` property won't be present on platform-server.\n const validity = (this._elementRef.nativeElement as HTMLInputElement).validity;\n return validity && validity.badInput;\n }\n\n /**\n * Implemented as part of NovoFieldControl.\n * @docs-private\n */\n get empty(): boolean {\n return !this._isNeverEmpty() && !this._elementRef.nativeElement.value && !this._isBadInput() && !this.autofilled;\n }\n\n /**\n * Implemented as part of NovoFieldControl.\n * @docs-private\n */\n get shouldLabelFloat(): boolean {\n if (this._isNativeSelect) {\n // For a single-selection `<select>`, the label should float when the selected option has\n // a non-empty display value. For a `<select multiple>`, the label *always* floats to avoid\n // overlapping the label with the options.\n const selectElement = this._elementRef.nativeElement as HTMLSelectElement;\n const firstOption: HTMLOptionElement | undefined = selectElement.options[0];\n\n // On most browsers the `selectedIndex` will always be 0, however on IE and Edge it'll be\n // -1 if the `value` is set to something, that isn't in the list of options, at a later point.\n return (\n this.focused || selectElement.multiple || !this.empty || !!(selectElement.selectedIndex > -1 && firstOption && firstOption.label)\n );\n } else {\n return this.focused || !this.empty;\n }\n }\n\n /**\n * Implemented as part of NovoFieldControl.\n * @docs-private\n */\n setDescribedByIds(ids: string[]) {\n this._ariaDescribedby = ids.join(' ');\n }\n\n /**\n * Implemented as part of NovoFieldControl.\n * @docs-private\n */\n onContainerClick() {\n // Do not re-focus the input element if the element is already focused. Otherwise it can happen\n // that someone clicks on a time input and the cursor resets to the \"hours\" field while the\n // \"minutes\" field was actually clicked. See: https://github.com/angular/components/issues/12849\n if (!this.focused) {\n this.focus();\n }\n }\n\n static ngAcceptInputType_disabled: BooleanInput;\n static ngAcceptInputType_readonly: BooleanInput;\n static ngAcceptInputType_required: BooleanInput;\n\n // Accept `any` to avoid conflicts with other directives on `<input>` that may\n // accept different types.\n static ngAcceptInputType_value: any;\n @Output() onSelect = new EventEmitter<unknown>();\n}\n","import { Directive, ElementRef, Inject, Input, Optional, Self } from '@angular/core';\nimport { ControlValueAccessor } from '@angular/forms';\nimport { NovoInputFormat, NOVO_INPUT_FORMAT } from './formats/base-format';\n\n/** Directive used to connect an input to a MatDatepicker. */\n@Directive({\n selector: 'input[picker]',\n host: {\n class: 'novo-has-picker',\n '[attr.autocomplete]': 'autocompleteAttribute',\n },\n standalone: false,\n})\nexport class NovoPickerDirective {\n /** The datepicker that this input is associated with. */\n @Input()\n set picker(picker: ControlValueAccessor) {\n if (picker) {\n this._picker = picker;\n picker.registerOnChange((value) => this.updateValue(value));\n }\n }\n _picker: ControlValueAccessor;\n /**\n * `autocomplete` attribute to be set on the input element.\n * @docs-private\n */\n @Input('autocomplete') autocompleteAttribute: string = 'off';\n\n constructor(\n private _elementRef: ElementRef<HTMLInputElement>,\n @Optional() @Self() @Inject(NOVO_INPUT_FORMAT) private formatter: NovoInputFormat<any>,\n ) {\n if (!this.formatter) {\n console.warn('Picker directive is missing required formatter');\n }\n this.formatter?.valueChange.subscribe((value) => {\n this.updatePicker(value);\n });\n }\n\n updateValue(value: any) {\n this.formatter.writeValue(value);\n }\n\n updatePicker(value: any) {\n if (this._picker) {\n this._picker.writeValue(value);\n }\n }\n}\n","import { coerceBooleanProperty } from '@angular/cdk/coercion';\nimport {\n AfterContentInit,\n AfterViewInit,\n Attribute,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ElementRef,\n Inject,\n Input,\n OnChanges,\n OnDestroy,\n Optional,\n SimpleChanges,\n ViewChild,\n ViewEncapsulation,\n} from '@angular/core';\nimport { Subject, Subscription } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\nimport { BooleanInput } from 'novo-elements/utils';\nimport { NovoButtonElement } from 'novo-elements/elements/button';\nimport { NovoOverlayTemplateComponent } from 'novo-elements/elements/common';\nimport { NovoFieldElement, NOVO_FORM_FIELD } from '../field';\n\n@Component({\n selector: 'novo-picker-toggle',\n templateUrl: 'picker-toggle.component.html',\n host: {\n class: 'novo-picker-toggle',\n // Always set the tabindex to -1 so that it doesn't overlap with any custom tabindex the\n // consumer may have provided, while still being able to receive focus.\n '[attr.tabindex]': 'disabled ? null : -1',\n '[class.novo-toggle-active]': 'picker && picker.opened',\n '[class.novo-accent]': 'picker && picker.color === \"accent\"',\n '[class.novo-warn]': 'picker && picker.color === \"warn\"',\n '(focus)': '_button.focus()',\n },\n exportAs: 'novoPickerToggle',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: false,\n})\nexport class NovoPickerToggleElement<T = any> implements AfterContentInit, AfterViewInit, OnChanges, OnDestroy {\n private _stateChanges = Subscription.EMPTY;\n private _onDestroy = new Subject<void>();\n\n /** Datepicker instance that the button will toggle. */\n @Input('for') picker: T;\n\n @Input() icon: string;\n\n /** Tabindex for the toggle. */\n @Input() tabIndex: number | null;\n\n /** Screenreader label for the button. */\n @Input('aria-label') ariaLabel: string;\n\n /** Determines whether the overlay is triggered on input focus or solely button click. */\n @Input()\n @BooleanInput()\n triggerOnFocus: boolean = false;\n\n /** An id to select the correct overlay.*/\n @Input() overlayId: string;\n\n /** Width to pass to overlay.*/\n @Input() width: string;\n\n /** Whether the toggle button is disabled. */\n @Input()\n get disabled(): boolean {\n if (this._disabled === undefined && this.picker) {\n return (this.picker as any).disabled;\n }\n\n return !!this._disabled;\n }\n set disabled(value: boolean) {\n this._disabled = coerceBooleanProperty(value);\n }\n private _disabled: boolean;\n\n /** Underlying button element. */\n @ViewChild('button') _button: NovoButtonElement;\n\n /** Element for the panel containing the autocomplete options. */\n @ViewChild(NovoOverlayTemplateComponent)\n overlay: NovoOverlayTemplateComponent;\n\n element: ElementRef;\n\n constructor(\n private _elementRef: ElementRef,\n private cdr: ChangeDetectorRef,\n @Attribute('tabindex') defaultTabIndex: string,\n @Optional() @Inject(NOVO_FORM_FIELD) private _formField: NovoFieldElement,\n ) {\n const parsedTabIndex = Number(defaultTabIndex);\n this.tabIndex = parsedTabIndex || parsedTabIndex === 0 ? parsedTabIndex : null;\n }\n\n ngOnChanges(changes: SimpleChanges) {\n if (changes.picker) {\n this._watchStateChanges();\n }\n }\n\n ngOnDestroy() {\n this._stateChanges.unsubscribe();\n this._onDestroy.next();\n this._onDestroy.complete();\n }\n\n ngAfterContentInit() {\n this._watchStateChanges();\n }\n\n ngAfterViewInit() {\n this.element = this._formField.getConnectedOverlayOrigin() || this._elementRef;\n }\n\n checkPanel() {\n if (this.triggerOnFocus && this._formField._control.focused) {\n this.openPanel();\n }\n }\n\n togglePanel(event?: Event) {\n this.cdr.detectChanges();\n this.overlay.parent = this.element;\n if (!this.overlay.panelOpen) {\n this.openPanel(event);\n } else {\n this.closePanel(event);\n }\n }\n\n /** BEGIN: Convenient Panel Methods. */\n openPanel(event?: Event): void {\n if (!this.overlay.panelOpen) {\n this.overlay.parent = this.element;\n this.overlay.openPanel();\n }\n }\n\n closePanel(event?: Event): void {\n this.overlay.closePanel();\n }\n\n get panelOpen(): boolean {\n return this.overlay && this.overlay.panelOpen;\n }\n\n private _watchStateChanges() {\n this._formField._control?.stateChanges.pipe(takeUntil(this._onDestroy)).subscribe(() => {\n this.checkPanel();\n });\n }\n}\n","<novo-button\n #button\n theme=\"icon\"\n [icon]=\"icon\"\n [attr.aria-haspopup]=\"'dialog'\"\n [attr.tabindex]=\"disabled ? -1 : tabIndex\"\n [disabled]=\"disabled\"\n (click)=\"togglePanel($event)\"></novo-button>\n\n<novo-overlay-template [width]=\"width\" [parent]=\"element\" position=\"above-below\">\n <ng-content></ng-content>\n</novo-overlay-template>","// NG2\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\n// APP\nimport { NovoButtonModule } from 'novo-elements/elements/button';\nimport { NovoCommonModule, NovoOptionModule, NovoOverlayModule } from 'novo-elements/elements/common';\nimport { NovoErrorElement } from './error/error';\nimport { NovoFieldElement, NovoFieldPrefixDirective, NovoFieldSuffixDirective } from './field';\nimport { NovoFieldsElement } from './fieldset';\nimport { NovoDateFormatDirective } from './formats/date-format';\nimport { NovoDateRangeFormatDirective } from './formats/date-range-format';\nimport { NovoDateTimeFormatDirective } from './formats/date-time-format';\nimport { NovoTimeFormatDirective } from './formats/time-format';\nimport { NovoHintElement } from './hint/hint';\nimport { NovoInput } from './input';\nimport { NovoPickerDirective } from './picker.directive';\nimport { NovoPickerToggleElement } from './toggle/picker-toggle.component';\n\n@NgModule({\n imports: [CommonModule, NovoButtonModule, NovoOverlayModule, NovoOptionModule, NovoCommonModule],\n declarations: [\n NovoFieldElement,\n NovoHintElement,\n NovoErrorElement,\n NovoInput,\n NovoFieldPrefixDirective,\n NovoFieldSuffixDirective,\n NovoFieldsElement,\n NovoTimeFormatDirective,\n NovoDateFormatDirective,\n NovoDateTimeFormatDirective,\n NovoDateRangeFormatDirective,\n NovoPickerToggleElement,\n NovoPickerDirective,\n ],\n exports: [\n NovoFieldElement,\n NovoHintElement,\n NovoErrorElement,\n NovoInput,\n NovoFieldPrefixDirective,\n NovoFieldSuffixDirective,\n NovoFieldsElement,\n NovoTimeFormatDirective,\n NovoDateFormatDirective,\n NovoDateRangeFormatDirective,\n NovoDateTimeFormatDirective,\n NovoPickerToggleElement,\n NovoPickerDirective,\n ],\n})\nexport class NovoFieldModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["nextUniqueId","i1","__decorate","i2"],"mappings":"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"}
|