@energycap/components 0.41.1-ECAP-26841-date-input-features.20250108-1149 → 0.42.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/{esm2020 → esm2022}/energycap-components.mjs +4 -4
- package/esm2022/lib/components.module.mjs +418 -0
- package/esm2022/lib/controls/banner/banner.component.mjs +109 -0
- package/esm2022/lib/controls/button/button.component.mjs +106 -0
- package/esm2022/lib/controls/button/copy-button-base.directive.mjs +67 -0
- package/{esm2020 → esm2022}/lib/controls/button/copy-button.directive.mjs +28 -28
- package/esm2022/lib/controls/button/copy-table-button.directive.mjs +43 -0
- package/esm2022/lib/controls/calendar/calendar-item.component.mjs +59 -0
- package/esm2022/lib/controls/calendar/calendar.component.mjs +200 -0
- package/esm2022/lib/controls/calendar/calendar.types.mjs +4 -0
- package/esm2022/lib/controls/checkbox/checkbox.component.mjs +140 -0
- package/{esm2020 → esm2022}/lib/controls/collapsible-toggle/collapsible-toggle.component.mjs +38 -38
- package/esm2022/lib/controls/combobox/combobox.component.mjs +879 -0
- package/esm2022/lib/controls/date-input/date-input.component.mjs +256 -0
- package/esm2022/lib/controls/dropdown/dropdown.component.mjs +243 -0
- package/esm2022/lib/controls/file-upload/file-upload.component.mjs +261 -0
- package/esm2022/lib/controls/form-control/form-control.component.mjs +104 -0
- package/esm2022/lib/controls/form-control-base.mjs +151 -0
- package/esm2022/lib/controls/form-control-label/form-control-label.component.mjs +136 -0
- package/esm2022/lib/controls/form-group/form-group.component.mjs +261 -0
- package/{esm2020 → esm2022}/lib/controls/help-popover/help-popover.component.mjs +31 -31
- package/esm2022/lib/controls/item-picker/item-picker.component.mjs +329 -0
- package/{esm2020 → esm2022}/lib/controls/link-button/link-button.component.mjs +11 -11
- package/esm2022/lib/controls/menu/menu.component.mjs +485 -0
- package/{esm2020 → esm2022}/lib/controls/navigation/link-item.mjs +1 -1
- package/esm2022/lib/controls/navigation/nav-group.mjs +39 -0
- package/esm2022/lib/controls/navigation/nav-item-active.directive.mjs +92 -0
- package/{esm2020 → esm2022}/lib/controls/navigation/nav-item.mjs +1 -1
- package/esm2022/lib/controls/numericbox/numericbox.component.mjs +372 -0
- package/esm2022/lib/controls/popover/popover.component.mjs +117 -0
- package/{esm2020 → esm2022}/lib/controls/radio-button/radio-button-option.mjs +2 -2
- package/esm2022/lib/controls/radio-button/radio-button.component.mjs +82 -0
- package/esm2022/lib/controls/select/select.component.mjs +88 -0
- package/esm2022/lib/controls/tabs/tabs.component.mjs +47 -0
- package/esm2022/lib/controls/textbox/textbox.component.mjs +155 -0
- package/esm2022/lib/core/cache.service.mjs +105 -0
- package/esm2022/lib/core/custom-validators.mjs +29 -0
- package/esm2022/lib/core/date-time-helper.mjs +220 -0
- package/esm2022/lib/core/error.service.mjs +61 -0
- package/esm2022/lib/core/router-helper.service.mjs +111 -0
- package/esm2022/lib/core/scroll.service.mjs +89 -0
- package/{esm2020 → esm2022}/lib/core/telemetry-tracker.service.mjs +16 -16
- package/{esm2020 → esm2022}/lib/core/telemetry.service.mjs +38 -38
- package/esm2022/lib/core/validation-message.service.mjs +185 -0
- package/{esm2020 → esm2022}/lib/core/validation-patterns.mjs +30 -30
- package/esm2022/lib/core/window.service.mjs +186 -0
- package/esm2022/lib/display/app-bar/app-bar.component.mjs +46 -0
- package/esm2022/lib/display/avatar/avatar.component.mjs +67 -0
- package/esm2022/lib/display/avatar/avatar.service.mjs +64 -0
- package/esm2022/lib/display/confirm/confirm.component.mjs +168 -0
- package/{esm2020 → esm2022}/lib/display/dialog/dialog-content.mjs +1 -1
- package/esm2022/lib/display/dialog/dialog-group/dialog-group.component.mjs +63 -0
- package/{esm2020 → esm2022}/lib/display/dialog/dialog-types.mjs +76 -76
- package/esm2022/lib/display/dialog/dialog.component.mjs +281 -0
- package/{esm2020 → esm2022}/lib/display/dialog/dialog.service.mjs +71 -71
- package/{esm2020 → esm2022}/lib/display/help/help-types.mjs +1 -1
- package/esm2022/lib/display/hierarchy/hierarchy-base.mjs +111 -0
- package/{esm2020 → esm2022}/lib/display/hierarchy/hierarchy-mocks.spec.mjs +53 -53
- package/esm2022/lib/display/hierarchy/hierarchy-tree/hierarchy-tree.component.mjs +61 -0
- package/esm2022/lib/display/item-display/item-display.component.mjs +81 -0
- package/esm2022/lib/display/json-display/json-display.component.mjs +47 -0
- package/esm2022/lib/display/resizable/resizable-base.mjs +120 -0
- package/{esm2020 → esm2022}/lib/display/resizable/resizable.component.mjs +52 -52
- package/{esm2020 → esm2022}/lib/display/spinner/spinner.component.mjs +12 -12
- package/esm2022/lib/display/splash/splash.component.mjs +42 -0
- package/{esm2020 → esm2022}/lib/display/splash/splash.service.mjs +35 -35
- package/{esm2020 → esm2022}/lib/display/table/resizable-column.component.mjs +20 -20
- package/esm2022/lib/display/table/resizable-table.directive.mjs +227 -0
- package/esm2022/lib/display/table/searchable-table.component.mjs +342 -0
- package/{esm2020 → esm2022}/lib/display/table/table-detail-row.component.mjs +19 -19
- package/esm2022/lib/display/table/table-locked-column.component.mjs +58 -0
- package/{esm2020 → esm2022}/lib/display/table/table-master-header-row.component.mjs +14 -14
- package/esm2022/lib/display/table/table-master-row.component.mjs +163 -0
- package/esm2022/lib/display/table/table-pagination.component.mjs +155 -0
- package/esm2022/lib/display/table/table-selectable-row.component.mjs +235 -0
- package/esm2022/lib/display/table/table.component.mjs +249 -0
- package/esm2022/lib/display/tags/tag.mjs +18 -0
- package/esm2022/lib/display/tags/tags.component.mjs +77 -0
- package/esm2022/lib/display/toast/toast/toast.component.mjs +77 -0
- package/{esm2020 → esm2022}/lib/display/toast/toast-types.mjs +7 -7
- package/{esm2020 → esm2022}/lib/display/toast/toast.service.mjs +35 -35
- package/esm2022/lib/display/toast/toaster/toaster.component.mjs +114 -0
- package/{esm2020 → esm2022}/lib/display/tooltip/tooltip.component.mjs +28 -28
- package/{esm2020 → esm2022}/lib/display/tooltip/tooltip.service.mjs +78 -78
- package/esm2022/lib/display/tooltip-directive/tooltip.directive.mjs +173 -0
- package/{esm2020 → esm2022}/lib/display/tour/tour-types.mjs +33 -33
- package/esm2022/lib/display/tour/tour.component.mjs +398 -0
- package/esm2022/lib/display/tour/tour.service.mjs +75 -0
- package/esm2022/lib/display/tree/tree.component.mjs +135 -0
- package/esm2022/lib/display/view-overlay/view-overlay.component.mjs +58 -0
- package/esm2022/lib/shared/directives/click-area-for/click-area-for.directive.mjs +32 -0
- package/esm2022/lib/shared/directives/if-viewport-width/if-viewport-width.directive.mjs +111 -0
- package/esm2022/lib/shared/directives/popup/popup-container.directive.mjs +166 -0
- package/esm2022/lib/shared/display/pipes/date-display.pipe.mjs +50 -0
- package/esm2022/lib/shared/display/pipes/highlight-text.pipe.mjs +30 -0
- package/esm2022/lib/shared/display/pipes/relative-date.pipe.mjs +62 -0
- package/esm2022/lib/shared/display/pipes/row-count.pipe.mjs +48 -0
- package/esm2022/lib/shared/display/pipes/time-display.pipe.mjs +41 -0
- package/esm2022/lib/shared/display.mjs +6 -0
- package/esm2022/lib/shared/form-group.helper.mjs +67 -0
- package/esm2022/lib/shared/json-helper.mjs +19 -0
- package/esm2022/lib/shared/lodash-helper.mjs +52 -0
- package/esm2022/lib/shared/page/page-base/page-base.component.mjs +387 -0
- package/{esm2020 → esm2022}/lib/shared/page/page-statuses.mjs +22 -22
- package/{esm2020 → esm2022}/lib/shared/page/page-title/page-title.component.mjs +23 -23
- package/esm2022/lib/shared/page/page-view/page-view.component.mjs +147 -0
- package/{esm2020 → esm2022}/lib/shared/testing/copy-button-base-test-injector-factory.spec.mjs +16 -16
- package/{esm2020 → esm2022}/lib/shared/testing/hierarchy-base-test-injector-factory.spec.mjs +16 -16
- package/{esm2020 → esm2022}/lib/shared/testing/page-base-component-test-helper.spec.mjs +37 -37
- package/esm2022/lib/shared/testing/page-base-component-test-injector-factory.spec.mjs +98 -0
- package/{esm2020 → esm2022}/lib/shared/testing/public-mocks.spec.mjs +148 -148
- package/{esm2020 → esm2022}/lib/shared/testing/spy-factory.spec.mjs +39 -39
- package/{esm2020 → esm2022}/lib/shared/testing/translation-mocks.spec.mjs +56 -56
- package/{esm2020 → esm2022}/lib/shared/user-preference.service.mjs +17 -17
- package/esm2022/lib/shared/wizard/wizard-base/wizard-base.component.mjs +246 -0
- package/{esm2020 → esm2022}/lib/shared/wizard/wizard-buttons/wizard-buttons.component.mjs +68 -68
- package/{esm2020 → esm2022}/lib/shared/wizard/wizard-progress/wizard-progress.component.mjs +18 -18
- package/esm2022/public-api.mjs +115 -0
- package/{fesm2020 → fesm2022}/energycap-components.mjs +11819 -12974
- package/fesm2022/energycap-components.mjs.map +1 -0
- package/index.d.ts +5 -5
- package/lib/components.module.d.ts +91 -92
- package/lib/controls/banner/banner.component.d.ts +50 -50
- package/lib/controls/button/button.component.d.ts +78 -78
- package/lib/controls/button/copy-button-base.directive.d.ts +20 -20
- package/lib/controls/button/copy-button.directive.d.ts +14 -14
- package/lib/controls/button/copy-table-button.directive.d.ts +19 -19
- package/lib/controls/calendar/calendar-item.component.d.ts +17 -22
- package/lib/controls/calendar/calendar.component.d.ts +54 -52
- package/lib/controls/calendar/calendar.types.d.ts +7 -11
- package/lib/controls/checkbox/checkbox.component.d.ts +65 -65
- package/lib/controls/collapsible-toggle/collapsible-toggle.component.d.ts +25 -25
- package/lib/controls/combobox/combobox.component.d.ts +418 -418
- package/lib/controls/date-input/date-input.component.d.ts +80 -115
- package/lib/controls/dropdown/dropdown.component.d.ts +161 -161
- package/lib/controls/file-upload/file-upload.component.d.ts +124 -124
- package/lib/controls/form-control/form-control.component.d.ts +30 -28
- package/lib/controls/form-control-base.d.ts +110 -110
- package/lib/controls/form-control-label/form-control-label.component.d.ts +73 -73
- package/lib/controls/form-group/form-group.component.d.ts +105 -105
- package/lib/controls/help-popover/help-popover.component.d.ts +11 -11
- package/lib/controls/item-picker/item-picker.component.d.ts +164 -164
- package/lib/controls/link-button/link-button.component.d.ts +5 -5
- package/lib/controls/menu/menu.component.d.ts +255 -255
- package/lib/controls/navigation/link-item.d.ts +32 -32
- package/lib/controls/navigation/nav-group.d.ts +18 -18
- package/lib/controls/navigation/nav-item-active.directive.d.ts +42 -42
- package/lib/controls/navigation/nav-item.d.ts +31 -31
- package/lib/controls/numericbox/numericbox.component.d.ts +148 -148
- package/lib/controls/popover/popover.component.d.ts +51 -51
- package/lib/controls/radio-button/radio-button-option.d.ts +19 -19
- package/lib/controls/radio-button/radio-button.component.d.ts +53 -53
- package/lib/controls/select/select.component.d.ts +44 -44
- package/lib/controls/tabs/tabs.component.d.ts +30 -30
- package/lib/controls/textbox/textbox.component.d.ts +107 -107
- package/lib/core/cache.service.d.ts +33 -33
- package/lib/core/custom-validators.d.ts +20 -20
- package/lib/core/date-time-helper.d.ts +101 -101
- package/lib/core/error.service.d.ts +20 -20
- package/lib/core/router-helper.service.d.ts +48 -48
- package/lib/core/scroll.service.d.ts +36 -36
- package/lib/core/telemetry-tracker.service.d.ts +13 -13
- package/lib/core/telemetry.service.d.ts +31 -31
- package/lib/core/validation-message.service.d.ts +26 -26
- package/lib/core/validation-patterns.d.ts +22 -22
- package/lib/core/window.service.d.ts +116 -116
- package/lib/display/app-bar/app-bar.component.d.ts +20 -20
- package/lib/display/avatar/avatar.component.d.ts +35 -35
- package/lib/display/avatar/avatar.service.d.ts +24 -24
- package/lib/display/confirm/confirm.component.d.ts +123 -123
- package/lib/display/dialog/dialog-content.d.ts +19 -19
- package/lib/display/dialog/dialog-group/dialog-group.component.d.ts +32 -32
- package/lib/display/dialog/dialog-types.d.ts +130 -130
- package/lib/display/dialog/dialog.component.d.ts +120 -120
- package/lib/display/dialog/dialog.service.d.ts +48 -48
- package/lib/display/help/help-types.d.ts +33 -33
- package/lib/display/hierarchy/hierarchy-base.d.ts +97 -97
- package/lib/display/hierarchy/hierarchy-mocks.spec.d.ts +53 -53
- package/lib/display/hierarchy/hierarchy-tree/hierarchy-tree.component.d.ts +34 -34
- package/lib/display/item-display/item-display.component.d.ts +43 -43
- package/lib/display/json-display/json-display.component.d.ts +16 -16
- package/lib/display/resizable/resizable-base.d.ts +67 -67
- package/lib/display/resizable/resizable.component.d.ts +31 -31
- package/lib/display/spinner/spinner.component.d.ts +5 -5
- package/lib/display/splash/splash.component.d.ts +16 -16
- package/lib/display/splash/splash.service.d.ts +22 -22
- package/lib/display/table/resizable-column.component.d.ts +10 -10
- package/lib/display/table/resizable-table.directive.d.ts +93 -93
- package/lib/display/table/searchable-table.component.d.ts +206 -206
- package/lib/display/table/table-detail-row.component.d.ts +8 -8
- package/lib/display/table/table-locked-column.component.d.ts +20 -20
- package/lib/display/table/table-master-header-row.component.d.ts +9 -9
- package/lib/display/table/table-master-row.component.d.ts +113 -113
- package/lib/display/table/table-pagination.component.d.ts +91 -91
- package/lib/display/table/table-selectable-row.component.d.ts +102 -102
- package/lib/display/table/table.component.d.ts +121 -121
- package/lib/display/tags/tag.d.ts +18 -18
- package/lib/display/tags/tags.component.d.ts +48 -48
- package/lib/display/toast/toast/toast.component.d.ts +23 -23
- package/lib/display/toast/toast-types.d.ts +24 -24
- package/lib/display/toast/toast.service.d.ts +20 -20
- package/lib/display/toast/toaster/toaster.component.d.ts +35 -35
- package/lib/display/tooltip/tooltip.component.d.ts +70 -70
- package/lib/display/tooltip/tooltip.service.d.ts +16 -16
- package/lib/display/tooltip-directive/tooltip.directive.d.ts +44 -44
- package/lib/display/tour/tour-types.d.ts +70 -70
- package/lib/display/tour/tour.component.d.ts +147 -147
- package/lib/display/tour/tour.service.d.ts +38 -38
- package/lib/display/tree/tree.component.d.ts +75 -75
- package/lib/display/view-overlay/view-overlay.component.d.ts +38 -38
- package/lib/shared/directives/click-area-for/click-area-for.directive.d.ts +14 -14
- package/lib/shared/directives/if-viewport-width/if-viewport-width.directive.d.ts +60 -60
- package/lib/shared/directives/popup/popup-container.directive.d.ts +101 -101
- package/lib/shared/display/pipes/date-display.pipe.d.ts +21 -21
- package/lib/shared/display/pipes/highlight-text.pipe.d.ts +9 -9
- package/lib/shared/display/pipes/relative-date.pipe.d.ts +36 -36
- package/lib/shared/display/pipes/row-count.pipe.d.ts +23 -23
- package/lib/shared/display/pipes/time-display.pipe.d.ts +18 -18
- package/lib/shared/display.d.ts +42 -42
- package/lib/shared/form-group.helper.d.ts +31 -31
- package/lib/shared/json-helper.d.ts +7 -7
- package/lib/shared/lodash-helper.d.ts +18 -18
- package/lib/shared/page/page-base/page-base.component.d.ts +259 -259
- package/lib/shared/page/page-statuses.d.ts +13 -13
- package/lib/shared/page/page-title/page-title.component.d.ts +9 -9
- package/lib/shared/page/page-view/page-view.component.d.ts +102 -102
- package/lib/shared/testing/copy-button-base-test-injector-factory.spec.d.ts +4 -4
- package/lib/shared/testing/hierarchy-base-test-injector-factory.spec.d.ts +4 -4
- package/lib/shared/testing/page-base-component-test-helper.spec.d.ts +30 -30
- package/lib/shared/testing/page-base-component-test-injector-factory.spec.d.ts +28 -28
- package/lib/shared/testing/public-mocks.spec.d.ts +90 -90
- package/lib/shared/testing/spy-factory.spec.d.ts +27 -27
- package/lib/shared/testing/translation-mocks.spec.d.ts +30 -30
- package/lib/shared/user-preference.service.d.ts +13 -13
- package/lib/shared/wizard/wizard-base/wizard-base.component.d.ts +134 -134
- package/lib/shared/wizard/wizard-buttons/wizard-buttons.component.d.ts +27 -27
- package/lib/shared/wizard/wizard-progress/wizard-progress.component.d.ts +10 -10
- package/package.json +12 -18
- package/public-api.d.ts +111 -113
- package/schematics/rxjs-7-upgrade/index.d.ts +3 -3
- package/schematics/rxjs-7-upgrade/index.js +67 -67
- package/schematics/rxjs-7-upgrade/index.js.map +1 -1
- package/schematics/rxjs-7-upgrade/schema.d.ts +4 -4
- package/schematics/rxjs-7-upgrade/schema.js +2 -2
- package/schematics/utilities/typescript.d.ts +7 -7
- package/schematics/utilities/typescript.js +41 -41
- package/schematics/utilities/workspace.d.ts +8 -8
- package/schematics/utilities/workspace.js +71 -71
- package/schematics/utilities/workspace.js.map +1 -1
- package/src/assets/locales/en_US.json +1 -9
- package/esm2020/lib/components.module.mjs +0 -423
- package/esm2020/lib/controls/banner/banner.component.mjs +0 -109
- package/esm2020/lib/controls/button/button.component.mjs +0 -106
- package/esm2020/lib/controls/button/copy-button-base.directive.mjs +0 -67
- package/esm2020/lib/controls/button/copy-table-button.directive.mjs +0 -43
- package/esm2020/lib/controls/calendar/calendar-item.component.mjs +0 -91
- package/esm2020/lib/controls/calendar/calendar.component.mjs +0 -248
- package/esm2020/lib/controls/calendar/calendar.types.mjs +0 -2
- package/esm2020/lib/controls/checkbox/checkbox.component.mjs +0 -140
- package/esm2020/lib/controls/combobox/combobox.component.mjs +0 -879
- package/esm2020/lib/controls/date-input/date-input-selection-strategies/date-input-selection-strategy-base.mjs +0 -57
- package/esm2020/lib/controls/date-input/date-input-selection-strategies/day-selection-strategy.mjs +0 -62
- package/esm2020/lib/controls/date-input/date-input-selection-strategies/last-28-days-selection-strategy.mjs +0 -100
- package/esm2020/lib/controls/date-input/date-input-selection-strategies/last-7-days-selection-strategy.mjs +0 -101
- package/esm2020/lib/controls/date-input/date-input-selection-strategies/month-selection-strategy.mjs +0 -76
- package/esm2020/lib/controls/date-input/date-input-selection-strategies/quarter-selection-strategy.mjs +0 -79
- package/esm2020/lib/controls/date-input/date-input-selection-strategies/range-selection-strategy.mjs +0 -210
- package/esm2020/lib/controls/date-input/date-input-selection-strategies/year-selection-strategy.mjs +0 -81
- package/esm2020/lib/controls/date-input/date-input.component.mjs +0 -465
- package/esm2020/lib/controls/date-input/date-input.types.mjs +0 -44
- package/esm2020/lib/controls/dropdown/dropdown.component.mjs +0 -243
- package/esm2020/lib/controls/file-upload/file-upload.component.mjs +0 -261
- package/esm2020/lib/controls/form-control/form-control.component.mjs +0 -98
- package/esm2020/lib/controls/form-control-base.mjs +0 -151
- package/esm2020/lib/controls/form-control-label/form-control-label.component.mjs +0 -136
- package/esm2020/lib/controls/form-group/form-group.component.mjs +0 -261
- package/esm2020/lib/controls/item-picker/item-picker.component.mjs +0 -329
- package/esm2020/lib/controls/menu/menu.component.mjs +0 -485
- package/esm2020/lib/controls/navigation/nav-group.mjs +0 -39
- package/esm2020/lib/controls/navigation/nav-item-active.directive.mjs +0 -92
- package/esm2020/lib/controls/numericbox/numericbox.component.mjs +0 -372
- package/esm2020/lib/controls/popover/popover.component.mjs +0 -117
- package/esm2020/lib/controls/radio-button/radio-button.component.mjs +0 -82
- package/esm2020/lib/controls/select/select.component.mjs +0 -88
- package/esm2020/lib/controls/tabs/tabs.component.mjs +0 -47
- package/esm2020/lib/controls/textbox/textbox.component.mjs +0 -155
- package/esm2020/lib/core/cache.service.mjs +0 -105
- package/esm2020/lib/core/custom-validators.mjs +0 -29
- package/esm2020/lib/core/date-time-helper.mjs +0 -228
- package/esm2020/lib/core/error.service.mjs +0 -61
- package/esm2020/lib/core/router-helper.service.mjs +0 -111
- package/esm2020/lib/core/scroll.service.mjs +0 -89
- package/esm2020/lib/core/validation-message.service.mjs +0 -185
- package/esm2020/lib/core/window.service.mjs +0 -186
- package/esm2020/lib/display/app-bar/app-bar.component.mjs +0 -46
- package/esm2020/lib/display/avatar/avatar.component.mjs +0 -67
- package/esm2020/lib/display/avatar/avatar.service.mjs +0 -64
- package/esm2020/lib/display/confirm/confirm.component.mjs +0 -168
- package/esm2020/lib/display/dialog/dialog-group/dialog-group.component.mjs +0 -63
- package/esm2020/lib/display/dialog/dialog.component.mjs +0 -281
- package/esm2020/lib/display/hierarchy/hierarchy-base.mjs +0 -111
- package/esm2020/lib/display/hierarchy/hierarchy-tree/hierarchy-tree.component.mjs +0 -61
- package/esm2020/lib/display/item-display/item-display.component.mjs +0 -81
- package/esm2020/lib/display/json-display/json-display.component.mjs +0 -47
- package/esm2020/lib/display/resizable/resizable-base.mjs +0 -120
- package/esm2020/lib/display/splash/splash.component.mjs +0 -42
- package/esm2020/lib/display/table/resizable-table.directive.mjs +0 -227
- package/esm2020/lib/display/table/searchable-table.component.mjs +0 -342
- package/esm2020/lib/display/table/table-locked-column.component.mjs +0 -58
- package/esm2020/lib/display/table/table-master-row.component.mjs +0 -163
- package/esm2020/lib/display/table/table-pagination.component.mjs +0 -155
- package/esm2020/lib/display/table/table-selectable-row.component.mjs +0 -235
- package/esm2020/lib/display/table/table.component.mjs +0 -249
- package/esm2020/lib/display/tags/tag.mjs +0 -18
- package/esm2020/lib/display/tags/tags.component.mjs +0 -77
- package/esm2020/lib/display/toast/toast/toast.component.mjs +0 -77
- package/esm2020/lib/display/toast/toaster/toaster.component.mjs +0 -114
- package/esm2020/lib/display/tooltip-directive/tooltip.directive.mjs +0 -173
- package/esm2020/lib/display/tour/tour.component.mjs +0 -398
- package/esm2020/lib/display/tour/tour.service.mjs +0 -75
- package/esm2020/lib/display/tree/tree.component.mjs +0 -135
- package/esm2020/lib/display/view-overlay/view-overlay.component.mjs +0 -58
- package/esm2020/lib/shared/directives/click-area-for/click-area-for.directive.mjs +0 -32
- package/esm2020/lib/shared/directives/if-viewport-width/if-viewport-width.directive.mjs +0 -111
- package/esm2020/lib/shared/directives/keyboard-nav-container/keyboard-nav-container.directive.mjs +0 -100
- package/esm2020/lib/shared/directives/popup/popup-container.directive.mjs +0 -163
- package/esm2020/lib/shared/display/pipes/date-display.pipe.mjs +0 -50
- package/esm2020/lib/shared/display/pipes/highlight-text.pipe.mjs +0 -30
- package/esm2020/lib/shared/display/pipes/relative-date.pipe.mjs +0 -62
- package/esm2020/lib/shared/display/pipes/row-count.pipe.mjs +0 -48
- package/esm2020/lib/shared/display/pipes/time-display.pipe.mjs +0 -41
- package/esm2020/lib/shared/display.mjs +0 -6
- package/esm2020/lib/shared/form-group.helper.mjs +0 -67
- package/esm2020/lib/shared/json-helper.mjs +0 -19
- package/esm2020/lib/shared/lodash-helper.mjs +0 -51
- package/esm2020/lib/shared/page/page-base/page-base.component.mjs +0 -387
- package/esm2020/lib/shared/page/page-view/page-view.component.mjs +0 -147
- package/esm2020/lib/shared/testing/page-base-component-test-injector-factory.spec.mjs +0 -98
- package/esm2020/lib/shared/wizard/wizard-base/wizard-base.component.mjs +0 -246
- package/esm2020/public-api.mjs +0 -117
- package/fesm2015/energycap-components.mjs +0 -13373
- package/fesm2015/energycap-components.mjs.map +0 -1
- package/fesm2020/energycap-components.mjs.map +0 -1
- package/lib/controls/date-input/date-input-selection-strategies/date-input-selection-strategy-base.d.ts +0 -42
- package/lib/controls/date-input/date-input-selection-strategies/day-selection-strategy.d.ts +0 -21
- package/lib/controls/date-input/date-input-selection-strategies/last-28-days-selection-strategy.d.ts +0 -21
- package/lib/controls/date-input/date-input-selection-strategies/last-7-days-selection-strategy.d.ts +0 -21
- package/lib/controls/date-input/date-input-selection-strategies/month-selection-strategy.d.ts +0 -18
- package/lib/controls/date-input/date-input-selection-strategies/quarter-selection-strategy.d.ts +0 -18
- package/lib/controls/date-input/date-input-selection-strategies/range-selection-strategy.d.ts +0 -21
- package/lib/controls/date-input/date-input-selection-strategies/year-selection-strategy.d.ts +0 -20
- package/lib/controls/date-input/date-input.types.d.ts +0 -62
- package/lib/shared/directives/keyboard-nav-container/keyboard-nav-container.directive.d.ts +0 -23
@@ -1,57 +0,0 @@
|
|
1
|
-
import moment from "moment";
|
2
|
-
import { DateInput } from "../date-input.types";
|
3
|
-
/**
|
4
|
-
* Contains the logic for selecting, formatting, and parsing date dates for a specific selection mode.
|
5
|
-
*/
|
6
|
-
export class DateInputSelectionStrategyBase {
|
7
|
-
/** Parses the string into a date using the provided parse formats. */
|
8
|
-
parseString(value, parseFormats, opts) {
|
9
|
-
if (!value) {
|
10
|
-
return null;
|
11
|
-
}
|
12
|
-
const date = moment(value, parseFormats);
|
13
|
-
if (date.isValid()) {
|
14
|
-
// If we're in a temporary state (when the user is typing in a textbox), we need to set the year to the current year if it's before the min year
|
15
|
-
// This prevents the calendars from showing unhelpful dates that are in the distant past before the user finishes typing in the date.
|
16
|
-
// We don't do this modification when the real selection happens on textbox blur.
|
17
|
-
if (opts?.shiftToCurrentYearIfBelow && date.isBefore(opts.shiftToCurrentYearIfBelow)) {
|
18
|
-
date.set('year', moment().year());
|
19
|
-
}
|
20
|
-
return date.toDate();
|
21
|
-
}
|
22
|
-
return null;
|
23
|
-
}
|
24
|
-
/** Returns a new selection for the provided date. */
|
25
|
-
getSelectionForQuickSelectDate(date, existingSelection) {
|
26
|
-
return this.getSelectionFromDate(date, existingSelection);
|
27
|
-
}
|
28
|
-
/** Returns the view for the primary calendar for the selection and selection mode */
|
29
|
-
getPrimaryCalendarView(selection, minDate, maxDate, currentView) {
|
30
|
-
let date;
|
31
|
-
// If we have a range, use the end date, defaulting to the start date or today
|
32
|
-
if (DateInput.isSelectionRange(selection)) {
|
33
|
-
date = selection.end || selection.start || new Date();
|
34
|
-
// If we have a single date, use it, defaulting to today
|
35
|
-
}
|
36
|
-
else {
|
37
|
-
date = selection || new Date();
|
38
|
-
}
|
39
|
-
// Ensure the date is within the min and max dates
|
40
|
-
date = date < minDate ? minDate : date;
|
41
|
-
date = date > maxDate ? maxDate : date;
|
42
|
-
// If the current calendar view mode is valid for the selection mode, use it, otherwise use the selection view mode
|
43
|
-
// This prevents the calendar from changing view modes as the user types/blurs the textboxes as long as the view mode is valid
|
44
|
-
const viewMode = this.validViewModes.includes(currentView.mode) ? currentView.mode : this.selectionViewMode;
|
45
|
-
return { mode: viewMode, date };
|
46
|
-
}
|
47
|
-
;
|
48
|
-
/**
|
49
|
-
* Returns the view for the secondary calendar for the selection and selection mode.
|
50
|
-
* This is is only used by the range selection strategy. All others just return the current date.
|
51
|
-
*/
|
52
|
-
getSecondaryCalendarView(selection, minDate, maxDate, currentView) {
|
53
|
-
return { mode: this.selectionViewMode, date: new Date() };
|
54
|
-
}
|
55
|
-
;
|
56
|
-
}
|
57
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS1pbnB1dC1zZWxlY3Rpb24tc3RyYXRlZ3ktYmFzZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvbXBvbmVudHMvc3JjL2xpYi9jb250cm9scy9kYXRlLWlucHV0L2RhdGUtaW5wdXQtc2VsZWN0aW9uLXN0cmF0ZWdpZXMvZGF0ZS1pbnB1dC1zZWxlY3Rpb24tc3RyYXRlZ3ktYmFzZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLE1BQU0sTUFBTSxRQUFRLENBQUM7QUFFNUIsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBRWhEOztHQUVHO0FBQ0gsTUFBTSxPQUFnQiw4QkFBOEI7SUFTbEQsc0VBQXNFO0lBQ3RFLFdBQVcsQ0FBQyxLQUFnQyxFQUFFLFlBQXNCLEVBQUUsSUFBK0I7UUFDbkcsSUFBSSxDQUFDLEtBQUssRUFBRTtZQUNWLE9BQU8sSUFBSSxDQUFDO1NBQ2I7UUFDRCxNQUFNLElBQUksR0FBRyxNQUFNLENBQUMsS0FBSyxFQUFFLFlBQVksQ0FBQyxDQUFDO1FBRXpDLElBQUksSUFBSSxDQUFDLE9BQU8sRUFBRSxFQUFFO1lBQ2xCLGdKQUFnSjtZQUNoSixxSUFBcUk7WUFDckksaUZBQWlGO1lBQ2pGLElBQUksSUFBSSxFQUFFLHlCQUF5QixJQUFJLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLHlCQUF5QixDQUFDLEVBQUU7Z0JBQ3BGLElBQUksQ0FBQyxHQUFHLENBQUMsTUFBTSxFQUFFLE1BQU0sRUFBRSxDQUFDLElBQUksRUFBRSxDQUFDLENBQUM7YUFDbkM7WUFFRCxPQUFPLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztTQUN0QjtRQUVELE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQWFELHFEQUFxRDtJQUNyRCw4QkFBOEIsQ0FBQyxJQUFVLEVBQUUsaUJBQThDO1FBQ3ZGLE9BQU8sSUFBSSxDQUFDLG9CQUFvQixDQUFDLElBQUksRUFBRSxpQkFBaUIsQ0FBQyxDQUFDO0lBQzVELENBQUM7SUFNRCxxRkFBcUY7SUFDckYsc0JBQXNCLENBQUMsU0FBcUMsRUFBRSxPQUFhLEVBQUUsT0FBYSxFQUFFLFdBQTBCO1FBQ3BILElBQUksSUFBVSxDQUFDO1FBRWYsOEVBQThFO1FBQzlFLElBQUksU0FBUyxDQUFDLGdCQUFnQixDQUFDLFNBQVMsQ0FBQyxFQUFFO1lBQ3pDLElBQUksR0FBRyxTQUFTLENBQUMsR0FBRyxJQUFJLFNBQVMsQ0FBQyxLQUFLLElBQUksSUFBSSxJQUFJLEVBQUUsQ0FBQztZQUN4RCx3REFBd0Q7U0FDdkQ7YUFBTTtZQUNMLElBQUksR0FBRyxTQUFTLElBQUksSUFBSSxJQUFJLEVBQUUsQ0FBQztTQUNoQztRQUVELGtEQUFrRDtRQUNsRCxJQUFJLEdBQUcsSUFBSSxHQUFHLE9BQU8sQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7UUFDdkMsSUFBSSxHQUFHLElBQUksR0FBRyxPQUFPLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO1FBRXZDLG1IQUFtSDtRQUNuSCw4SEFBOEg7UUFDOUgsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUM7UUFFNUcsT0FBTyxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLENBQUM7SUFDbEMsQ0FBQztJQUFBLENBQUM7SUFFRjs7O09BR0c7SUFDSCx3QkFBd0IsQ0FBQyxTQUFxQyxFQUFFLE9BQWEsRUFBRSxPQUFhLEVBQUUsV0FBMEI7UUFDdEgsT0FBTyxFQUFFLElBQUksRUFBRSxJQUFJLENBQUMsaUJBQWlCLEVBQUUsSUFBSSxFQUFFLElBQUksSUFBSSxFQUFFLEVBQUUsQ0FBQTtJQUMzRCxDQUFDO0lBQUEsQ0FBQztDQUNIIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IG1vbWVudCBmcm9tIFwibW9tZW50XCI7XHJcbmltcG9ydCB7IENhbGVuZGFyIH0gZnJvbSBcIi4uLy4uL2NhbGVuZGFyL2NhbGVuZGFyLnR5cGVzXCI7XHJcbmltcG9ydCB7IERhdGVJbnB1dCB9IGZyb20gXCIuLi9kYXRlLWlucHV0LnR5cGVzXCI7XHJcblxyXG4vKipcclxuICogQ29udGFpbnMgdGhlIGxvZ2ljIGZvciBzZWxlY3RpbmcsIGZvcm1hdHRpbmcsIGFuZCBwYXJzaW5nIGRhdGUgZGF0ZXMgZm9yIGEgc3BlY2lmaWMgc2VsZWN0aW9uIG1vZGUuXHJcbiAqL1xyXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgRGF0ZUlucHV0U2VsZWN0aW9uU3RyYXRlZ3lCYXNlIHtcclxuICAvKiogVGhlIGNhbGVuZGFyIHZpZXcgbW9kZSB3aGVyZSBzZWxlY3Rpb25zIG9jY3VyIGZvciB0aGlzIG1vZGUuIFRoaXMgaXMgdXNlZCB0byB6b29tIHRoZSBjYWxlbmRhciBpbnRvIHRoZSBzZWxlY3Rpb24gKi9cclxuICBhYnN0cmFjdCByZWFkb25seSBzZWxlY3Rpb25WaWV3TW9kZTogQ2FsZW5kYXIuVmlld01vZGU7XHJcbiAgLyoqIFRoZSBsaXN0IG9mIHZpZXcgbW9kZXMgdGhhdCBhcmUgYWNjZXNzaWJsZSBieSB0aGlzIHNlbGVjdGlvbiBtb2RlLiBVc2VkIHRvIGRldGVybWluZSB3aGV0aGVyIHRoZSBjYWxlbmRhciB2aWV3IG5lZWRzIHRvIGJlIGNoYW5nZWQgb3Igbm90IG9uIHNlbGVjdGlvbiBjaGFuZ2UuICovXHJcbiAgYWJzdHJhY3QgcmVhZG9ubHkgdmFsaWRWaWV3TW9kZXM6IENhbGVuZGFyLlZpZXdNb2RlW107XHJcbiAgLyoqIFdoZXRoZXIgdGhlIHNlY29uZGFyeSB0ZXh0Ym94IHNob3VsZCBiZSBzaG93biBmb3IgdGhpcyBzZWxlY3Rpb24gbW9kZSAqL1xyXG4gIGFic3RyYWN0IHJlYWRvbmx5IHNob3dTZWNvbmRhcnlUZXh0Ym94OiBib29sZWFuO1xyXG4gIC8qKiBXaGV0aGVyIHRoZSBzZWNvbmRhcnkgY2FsZW5kYXIgc2hvdWxkIGJlIHNob3duIGZvciB0aGlzIHNlbGVjdGlvbiBtb2RlICovXHJcbiAgYWJzdHJhY3QgcmVhZG9ubHkgc2hvd1NlY29uZGFyeUNhbGVuZGFyOiBib29sZWFuO1xyXG4gIC8qKiBQYXJzZXMgdGhlIHN0cmluZyBpbnRvIGEgZGF0ZSB1c2luZyB0aGUgcHJvdmlkZWQgcGFyc2UgZm9ybWF0cy4gKi9cclxuICBwYXJzZVN0cmluZyh2YWx1ZTogc3RyaW5nIHwgbnVsbCB8IHVuZGVmaW5lZCwgcGFyc2VGb3JtYXRzOiBzdHJpbmdbXSwgb3B0cz86IERhdGVJbnB1dC5QYXJzaW5nT3B0aW9ucyk6IERhdGUgfCBudWxsIHtcclxuICAgIGlmICghdmFsdWUpIHtcclxuICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICB9XHJcbiAgICBjb25zdCBkYXRlID0gbW9tZW50KHZhbHVlLCBwYXJzZUZvcm1hdHMpO1xyXG5cclxuICAgIGlmIChkYXRlLmlzVmFsaWQoKSkge1xyXG4gICAgICAvLyBJZiB3ZSdyZSBpbiBhIHRlbXBvcmFyeSBzdGF0ZSAod2hlbiB0aGUgdXNlciBpcyB0eXBpbmcgaW4gYSB0ZXh0Ym94KSwgd2UgbmVlZCB0byBzZXQgdGhlIHllYXIgdG8gdGhlIGN1cnJlbnQgeWVhciBpZiBpdCdzIGJlZm9yZSB0aGUgbWluIHllYXJcclxuICAgICAgLy8gVGhpcyBwcmV2ZW50cyB0aGUgY2FsZW5kYXJzIGZyb20gc2hvd2luZyB1bmhlbHBmdWwgZGF0ZXMgdGhhdCBhcmUgaW4gdGhlIGRpc3RhbnQgcGFzdCBiZWZvcmUgdGhlIHVzZXIgZmluaXNoZXMgdHlwaW5nIGluIHRoZSBkYXRlLlxyXG4gICAgICAvLyBXZSBkb24ndCBkbyB0aGlzIG1vZGlmaWNhdGlvbiB3aGVuIHRoZSByZWFsIHNlbGVjdGlvbiBoYXBwZW5zIG9uIHRleHRib3ggYmx1ci5cclxuICAgICAgaWYgKG9wdHM/LnNoaWZ0VG9DdXJyZW50WWVhcklmQmVsb3cgJiYgZGF0ZS5pc0JlZm9yZShvcHRzLnNoaWZ0VG9DdXJyZW50WWVhcklmQmVsb3cpKSB7XHJcbiAgICAgICAgZGF0ZS5zZXQoJ3llYXInLCBtb21lbnQoKS55ZWFyKCkpO1xyXG4gICAgICB9XHJcblxyXG4gICAgICByZXR1cm4gZGF0ZS50b0RhdGUoKTtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gbnVsbDtcclxuICB9XHJcbiAgLyoqIEZvcm1hdHMgYSBkYXRlIGlucHV0IHNlbGVjdGlvbiBpbnRvIHZhbHVlcyB0byBiZSBkaXNwbGF5ZWQgaW4gdGhlIGRhdGUgaW5wdXQncyB0ZXh0Ym94ZXMuICovXHJcbiAgYWJzdHJhY3QgZm9ybWF0U2VsZWN0aW9uKHNlbGVjdGlvbj86IERhdGVJbnB1dC5TZWxlY3Rpb24gfCBudWxsKTogRGF0ZUlucHV0LlRleHRib3hHcm91cFsndmFsdWUnXTtcclxuICAvKiogXHJcbiAgICogUGFyc2VzIHRoZSBkYXRlIGlucHV0J3MgdmFsdWVzIGludG8gYSBkYXRlIHNlbGVjdGlvbiB0byBkaXNwbGF5IGluIHRoZSBjYWxlbmRhcnMuXHJcbiAgICogYHBhcnNlRnJvbUVuZGAgY29udHJvbHMgd2hldGhlciB0aGUgZml4ZWQgcmFuZ2UgbW9kZXMgKGxhc3Q3ZGF5cywgbGFzdDI4ZGF5cykgd2lsbCBrZXkgb2ZmIHRoZSBlbmQgZGF0ZSBpbnN0ZWFkIG9mIHRoZSBzdGFydCBkYXRlLlxyXG4gICAqIFRoaXMgaXMgdXNlZCB3aGVuIHRoZSB1c2VyIGlzIHR5cGluZyBpbiB0aGUgZW5kIGRhdGUgdGV4dGJveC5cclxuICAgKi9cclxuICBhYnN0cmFjdCBwYXJzZVRleHRib3hWYWx1ZXModmFsdWU6IERhdGVJbnB1dC5UZXh0Ym94R3JvdXBbJ3ZhbHVlJ10sIHBhcnNlRm9ybWF0czogc3RyaW5nW10sIG9wdHM/OiBEYXRlSW5wdXQuUGFyc2luZ09wdGlvbnMpOiBEYXRlSW5wdXQuU2VsZWN0aW9uIHwgbnVsbDtcclxuICAvKiogUmV0dXJucyBhIHNlbGVjdGlvbiBnaXZlbiBhIGRhdGUgYW5kIGFuIGV4aXN0aW5nIHNlbGVjdGlvbiAoaW4gdGhlIGNhc2Ugb2YgZGF0ZSByYW5nZXMpLiBDYWxsZWQgd2hlbiBhIGRhdGUgaXMgY2xpY2tlZCBpbiB0aGUgY2FsZW5kYXJzLiAqL1xyXG4gIGFic3RyYWN0IGdldFNlbGVjdGlvbkZyb21EYXRlKGRhdGU6IERhdGUsIGV4aXN0aW5nU2VsZWN0aW9uPzogRGF0ZUlucHV0LlNlbGVjdGlvbiB8IG51bGwpOiBEYXRlSW5wdXQuU2VsZWN0aW9uIHwgbnVsbDtcclxuICAvKiogUmV0dXJucyBhIG5ldyBzZWxlY3Rpb24gdGhhdCBiZXN0IG1hdGNoZXMgdGhlIGdpdmVuIHByZXZpb3VzIHNlbGVjdGlvbiBmcm9tIGEgZGlmZmVyZW50IHNlbGVjdGlvbiBtb2RlICovXHJcbiAgYWJzdHJhY3QgZ2V0TmV3U2VsZWN0aW9uRnJvbUV4aXN0aW5nKHByZXZpb3VzU2VsZWN0aW9uPzogRGF0ZUlucHV0LlNlbGVjdGlvbiB8IG51bGwpOiBEYXRlSW5wdXQuU2VsZWN0aW9uIHwgbnVsbDtcclxuICAvKiogUmV0dXJucyBhIG5ldyBzZWxlY3Rpb24gZm9yIHRoZSBwcm92aWRlZCBkYXRlLiAqL1xyXG4gIGdldFNlbGVjdGlvbkZvclF1aWNrU2VsZWN0RGF0ZShkYXRlOiBEYXRlLCBleGlzdGluZ1NlbGVjdGlvbj86IERhdGVJbnB1dC5TZWxlY3Rpb24gfCBudWxsKTogRGF0ZUlucHV0LlNlbGVjdGlvbiB8IG51bGwge1xyXG4gICAgcmV0dXJuIHRoaXMuZ2V0U2VsZWN0aW9uRnJvbURhdGUoZGF0ZSwgZXhpc3RpbmdTZWxlY3Rpb24pO1xyXG4gIH1cclxuICAvKiogUmV0dXJucyB0aGUgbmV4dCBzZWxlY3Rpb24uIENhbGxlZCBieSB0aGUgZGF0ZSBpbnB1dCBzdGVwcGVycyB0byBtb3ZlIHRoZSByYW5nZS4gKi9cclxuICBhYnN0cmFjdCBnZXROZXh0U2VsZWN0aW9uKHNlbGVjdGlvbjogRGF0ZUlucHV0LlNlbGVjdGlvbiB8IG51bGwpOiBEYXRlSW5wdXQuU2VsZWN0aW9uIHwgbnVsbDtcclxuICAvKiogUmV0dXJucyB0aGUgcHJldmlvdXMgc2VsZWN0aW9uLiBDYWxsZWQgYnkgdGhlIGRhdGUgaW5wdXQgc3RlcHBlcnMgdG8gbW92ZSB0aGUgcmFuZ2UuICovXHJcbiAgYWJzdHJhY3QgZ2V0UHJldmlvdXNTZWxlY3Rpb24oc2VsZWN0aW9uOiBEYXRlSW5wdXQuU2VsZWN0aW9uIHwgbnVsbCk6IERhdGVJbnB1dC5TZWxlY3Rpb24gfCBudWxsO1xyXG4gIFxyXG4gIC8qKiBSZXR1cm5zIHRoZSB2aWV3IGZvciB0aGUgcHJpbWFyeSBjYWxlbmRhciBmb3IgdGhlIHNlbGVjdGlvbiBhbmQgc2VsZWN0aW9uIG1vZGUgKi9cclxuICBnZXRQcmltYXJ5Q2FsZW5kYXJWaWV3KHNlbGVjdGlvbjogRGF0ZUlucHV0LlNlbGVjdGlvbiB8IG51bGwsIG1pbkRhdGU6IERhdGUsIG1heERhdGU6IERhdGUsIGN1cnJlbnRWaWV3OiBDYWxlbmRhci5WaWV3KTogQ2FsZW5kYXIuVmlldyB7XHJcbiAgICBsZXQgZGF0ZTogRGF0ZTtcclxuXHJcbiAgICAvLyBJZiB3ZSBoYXZlIGEgcmFuZ2UsIHVzZSB0aGUgZW5kIGRhdGUsIGRlZmF1bHRpbmcgdG8gdGhlIHN0YXJ0IGRhdGUgb3IgdG9kYXlcclxuICAgIGlmIChEYXRlSW5wdXQuaXNTZWxlY3Rpb25SYW5nZShzZWxlY3Rpb24pKSB7XHJcbiAgICAgIGRhdGUgPSBzZWxlY3Rpb24uZW5kIHx8IHNlbGVjdGlvbi5zdGFydCB8fCBuZXcgRGF0ZSgpO1xyXG4gICAgLy8gSWYgd2UgaGF2ZSBhIHNpbmdsZSBkYXRlLCB1c2UgaXQsIGRlZmF1bHRpbmcgdG8gdG9kYXlcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGRhdGUgPSBzZWxlY3Rpb24gfHwgbmV3IERhdGUoKTtcclxuICAgIH1cclxuXHJcbiAgICAvLyBFbnN1cmUgdGhlIGRhdGUgaXMgd2l0aGluIHRoZSBtaW4gYW5kIG1heCBkYXRlc1xyXG4gICAgZGF0ZSA9IGRhdGUgPCBtaW5EYXRlID8gbWluRGF0ZSA6IGRhdGU7XHJcbiAgICBkYXRlID0gZGF0ZSA+IG1heERhdGUgPyBtYXhEYXRlIDogZGF0ZTtcclxuXHJcbiAgICAvLyBJZiB0aGUgY3VycmVudCBjYWxlbmRhciB2aWV3IG1vZGUgaXMgdmFsaWQgZm9yIHRoZSBzZWxlY3Rpb24gbW9kZSwgdXNlIGl0LCBvdGhlcndpc2UgdXNlIHRoZSBzZWxlY3Rpb24gdmlldyBtb2RlXHJcbiAgICAvLyBUaGlzIHByZXZlbnRzIHRoZSBjYWxlbmRhciBmcm9tIGNoYW5naW5nIHZpZXcgbW9kZXMgYXMgdGhlIHVzZXIgdHlwZXMvYmx1cnMgdGhlIHRleHRib3hlcyBhcyBsb25nIGFzIHRoZSB2aWV3IG1vZGUgaXMgdmFsaWRcclxuICAgIGNvbnN0IHZpZXdNb2RlID0gdGhpcy52YWxpZFZpZXdNb2Rlcy5pbmNsdWRlcyhjdXJyZW50Vmlldy5tb2RlKSA/IGN1cnJlbnRWaWV3Lm1vZGUgOiB0aGlzLnNlbGVjdGlvblZpZXdNb2RlO1xyXG5cclxuICAgIHJldHVybiB7IG1vZGU6IHZpZXdNb2RlLCBkYXRlIH07XHJcbiAgfTtcclxuICBcclxuICAvKipcclxuICAgKiBSZXR1cm5zIHRoZSB2aWV3IGZvciB0aGUgc2Vjb25kYXJ5IGNhbGVuZGFyIGZvciB0aGUgc2VsZWN0aW9uIGFuZCBzZWxlY3Rpb24gbW9kZS5cclxuICAgKiBUaGlzIGlzIGlzIG9ubHkgdXNlZCBieSB0aGUgcmFuZ2Ugc2VsZWN0aW9uIHN0cmF0ZWd5LiBBbGwgb3RoZXJzIGp1c3QgcmV0dXJuIHRoZSBjdXJyZW50IGRhdGUuXHJcbiAgICovXHJcbiAgZ2V0U2Vjb25kYXJ5Q2FsZW5kYXJWaWV3KHNlbGVjdGlvbjogRGF0ZUlucHV0LlNlbGVjdGlvbiB8IG51bGwsIG1pbkRhdGU6IERhdGUsIG1heERhdGU6IERhdGUsIGN1cnJlbnRWaWV3OiBDYWxlbmRhci5WaWV3KTogQ2FsZW5kYXIuVmlldyB7XHJcbiAgICByZXR1cm4geyBtb2RlOiB0aGlzLnNlbGVjdGlvblZpZXdNb2RlLCBkYXRlOiBuZXcgRGF0ZSgpIH1cclxuICB9O1xyXG59XHJcbiJdfQ==
|
package/esm2020/lib/controls/date-input/date-input-selection-strategies/day-selection-strategy.mjs
DELETED
@@ -1,62 +0,0 @@
|
|
1
|
-
import moment from "moment";
|
2
|
-
import { DateInput } from "../date-input.types";
|
3
|
-
import { DateInputSelectionStrategyBase } from "./date-input-selection-strategy-base";
|
4
|
-
/**
|
5
|
-
* Selection strategy for the 'day' selection mode.
|
6
|
-
*/
|
7
|
-
export class DaySelectionStrategy extends DateInputSelectionStrategyBase {
|
8
|
-
constructor(dateDisplayPipe) {
|
9
|
-
super();
|
10
|
-
this.dateDisplayPipe = dateDisplayPipe;
|
11
|
-
this.selectionViewMode = 'day';
|
12
|
-
this.validViewModes = ['day', 'month', 'year'];
|
13
|
-
this.showSecondaryTextbox = false;
|
14
|
-
this.showSecondaryCalendar = false;
|
15
|
-
}
|
16
|
-
formatSelection(selection) {
|
17
|
-
// If the selection is a single date, format it into the first textbox.
|
18
|
-
if (DateInput.isSelectionSingleDate(selection)) {
|
19
|
-
return { textbox: this.dateDisplayPipe.transform(selection, true), textbox2: null };
|
20
|
-
// Otherwise, clear both textboxes. This shouldn't happen based on current date input flows,
|
21
|
-
// and even if it did there's not really a good way to handle it.
|
22
|
-
}
|
23
|
-
else {
|
24
|
-
return { textbox: null, textbox2: null };
|
25
|
-
}
|
26
|
-
}
|
27
|
-
parseTextboxValues(value, parseFormats, opts) {
|
28
|
-
return this.parseString(value.textbox, parseFormats, opts);
|
29
|
-
}
|
30
|
-
getSelectionFromDate(date) {
|
31
|
-
// Nice and simple
|
32
|
-
return date;
|
33
|
-
}
|
34
|
-
getNewSelectionFromExisting(previousSelection) {
|
35
|
-
// If the previous selection was a range, return the end date and default to the start date if there isn't one.
|
36
|
-
if (DateInput.isSelectionRange(previousSelection)) {
|
37
|
-
return previousSelection.end || previousSelection.start;
|
38
|
-
// If the previous selection was a single date, return it.
|
39
|
-
}
|
40
|
-
else if (DateInput.isSelectionSingleDate(previousSelection)) {
|
41
|
-
return previousSelection;
|
42
|
-
}
|
43
|
-
return null;
|
44
|
-
}
|
45
|
-
getNextSelection(selection) {
|
46
|
-
// Add a single day to the selection
|
47
|
-
if (DateInput.isSelectionSingleDate(selection)) {
|
48
|
-
return moment(selection).add(1, 'day').toDate();
|
49
|
-
}
|
50
|
-
// This shouldn't happen based on current date input flows, but if it does just return the selection as-is.
|
51
|
-
return selection;
|
52
|
-
}
|
53
|
-
getPreviousSelection(selection) {
|
54
|
-
// Subtract a single day from the selection
|
55
|
-
if (DateInput.isSelectionSingleDate(selection)) {
|
56
|
-
return moment(selection).subtract(1, 'day').toDate();
|
57
|
-
}
|
58
|
-
// This shouldn't happen based on current date input flows, but if it does just return the selection as-is.
|
59
|
-
return selection;
|
60
|
-
}
|
61
|
-
}
|
62
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF5LXNlbGVjdGlvbi1zdHJhdGVneS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvbXBvbmVudHMvc3JjL2xpYi9jb250cm9scy9kYXRlLWlucHV0L2RhdGUtaW5wdXQtc2VsZWN0aW9uLXN0cmF0ZWdpZXMvZGF5LXNlbGVjdGlvbi1zdHJhdGVneS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLE1BQU0sTUFBTSxRQUFRLENBQUM7QUFHNUIsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ2hELE9BQU8sRUFBRSw4QkFBOEIsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBRXRGOztHQUVHO0FBQ0gsTUFBTSxPQUFPLG9CQUFxQixTQUFRLDhCQUE4QjtJQU10RSxZQUNVLGVBQWdDO1FBRXhDLEtBQUssRUFBRSxDQUFDO1FBRkEsb0JBQWUsR0FBZixlQUFlLENBQWlCO1FBTjFCLHNCQUFpQixHQUFzQixLQUFLLENBQUM7UUFDN0MsbUJBQWMsR0FBd0IsQ0FBQyxLQUFLLEVBQUUsT0FBTyxFQUFFLE1BQU0sQ0FBQyxDQUFDO1FBQy9ELHlCQUFvQixHQUFHLEtBQUssQ0FBQztRQUM3QiwwQkFBcUIsR0FBRyxLQUFLLENBQUM7SUFNOUMsQ0FBQztJQUVELGVBQWUsQ0FBQyxTQUFzQztRQUNwRCx1RUFBdUU7UUFDdkUsSUFBSSxTQUFTLENBQUMscUJBQXFCLENBQUMsU0FBUyxDQUFDLEVBQUU7WUFDOUMsT0FBTyxFQUFFLE9BQU8sRUFBRSxJQUFJLENBQUMsZUFBZSxDQUFDLFNBQVMsQ0FBQyxTQUFTLEVBQUUsSUFBSSxDQUFDLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxDQUFDO1lBQ3RGLDRGQUE0RjtZQUM1RixpRUFBaUU7U0FDaEU7YUFBTTtZQUNMLE9BQU8sRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsQ0FBQztTQUMxQztJQUNILENBQUM7SUFFRCxrQkFBa0IsQ0FBQyxLQUFzQyxFQUFFLFlBQXNCLEVBQUUsSUFBK0I7UUFDaEgsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxPQUFPLEVBQUUsWUFBWSxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQzdELENBQUM7SUFFRCxvQkFBb0IsQ0FBQyxJQUFVO1FBQzdCLGtCQUFrQjtRQUNsQixPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFRCwyQkFBMkIsQ0FBQyxpQkFBOEM7UUFDeEUsK0dBQStHO1FBQy9HLElBQUksU0FBUyxDQUFDLGdCQUFnQixDQUFDLGlCQUFpQixDQUFDLEVBQUU7WUFDakQsT0FBTyxpQkFBaUIsQ0FBQyxHQUFHLElBQUksaUJBQWlCLENBQUMsS0FBSyxDQUFDO1lBQzFELDBEQUEwRDtTQUN6RDthQUFNLElBQUksU0FBUyxDQUFDLHFCQUFxQixDQUFDLGlCQUFpQixDQUFDLEVBQUU7WUFDN0QsT0FBTyxpQkFBaUIsQ0FBQztTQUMxQjtRQUVELE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVELGdCQUFnQixDQUFDLFNBQXFDO1FBQ3BELG9DQUFvQztRQUNwQyxJQUFJLFNBQVMsQ0FBQyxxQkFBcUIsQ0FBQyxTQUFTLENBQUMsRUFBRTtZQUM5QyxPQUFPLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLEtBQUssQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDO1NBQ2pEO1FBRUQsMkdBQTJHO1FBQzNHLE9BQU8sU0FBUyxDQUFDO0lBQ25CLENBQUM7SUFFRCxvQkFBb0IsQ0FBQyxTQUFxQztRQUN4RCwyQ0FBMkM7UUFDM0MsSUFBSSxTQUFTLENBQUMscUJBQXFCLENBQUMsU0FBUyxDQUFDLEVBQUU7WUFDOUMsT0FBTyxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsRUFBRSxLQUFLLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQztTQUN0RDtRQUVELDJHQUEyRztRQUMzRyxPQUFPLFNBQVMsQ0FBQztJQUNuQixDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgbW9tZW50IGZyb20gXCJtb21lbnRcIjtcclxuaW1wb3J0IHsgRGF0ZURpc3BsYXlQaXBlIH0gZnJvbSBcIi4uLy4uLy4uL3NoYXJlZC9kaXNwbGF5L3BpcGVzL2RhdGUtZGlzcGxheS5waXBlXCI7XHJcbmltcG9ydCB7IENhbGVuZGFyIH0gZnJvbSBcIi4uLy4uL2NhbGVuZGFyL2NhbGVuZGFyLnR5cGVzXCI7XHJcbmltcG9ydCB7IERhdGVJbnB1dCB9IGZyb20gXCIuLi9kYXRlLWlucHV0LnR5cGVzXCI7XHJcbmltcG9ydCB7IERhdGVJbnB1dFNlbGVjdGlvblN0cmF0ZWd5QmFzZSB9IGZyb20gXCIuL2RhdGUtaW5wdXQtc2VsZWN0aW9uLXN0cmF0ZWd5LWJhc2VcIjtcclxuXHJcbi8qKlxyXG4gKiBTZWxlY3Rpb24gc3RyYXRlZ3kgZm9yIHRoZSAnZGF5JyBzZWxlY3Rpb24gbW9kZS5cclxuICovXHJcbmV4cG9ydCBjbGFzcyBEYXlTZWxlY3Rpb25TdHJhdGVneSBleHRlbmRzIERhdGVJbnB1dFNlbGVjdGlvblN0cmF0ZWd5QmFzZSB7XHJcbiAgcHVibGljIHJlYWRvbmx5IHNlbGVjdGlvblZpZXdNb2RlOiBDYWxlbmRhci5WaWV3TW9kZSA9ICdkYXknO1xyXG4gIHB1YmxpYyByZWFkb25seSB2YWxpZFZpZXdNb2RlczogQ2FsZW5kYXIuVmlld01vZGVbXSA9IFsnZGF5JywgJ21vbnRoJywgJ3llYXInXTtcclxuICBwdWJsaWMgcmVhZG9ubHkgc2hvd1NlY29uZGFyeVRleHRib3ggPSBmYWxzZTtcclxuICBwdWJsaWMgcmVhZG9ubHkgc2hvd1NlY29uZGFyeUNhbGVuZGFyID0gZmFsc2U7XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSBkYXRlRGlzcGxheVBpcGU6IERhdGVEaXNwbGF5UGlwZVxyXG4gICkge1xyXG4gICAgc3VwZXIoKTtcclxuICB9XHJcblxyXG4gIGZvcm1hdFNlbGVjdGlvbihzZWxlY3Rpb24/OiBEYXRlSW5wdXQuU2VsZWN0aW9uIHwgbnVsbCk6IERhdGVJbnB1dC5UZXh0Ym94R3JvdXBbJ3ZhbHVlJ10ge1xyXG4gICAgLy8gSWYgdGhlIHNlbGVjdGlvbiBpcyBhIHNpbmdsZSBkYXRlLCBmb3JtYXQgaXQgaW50byB0aGUgZmlyc3QgdGV4dGJveC5cclxuICAgIGlmIChEYXRlSW5wdXQuaXNTZWxlY3Rpb25TaW5nbGVEYXRlKHNlbGVjdGlvbikpIHtcclxuICAgICAgcmV0dXJuIHsgdGV4dGJveDogdGhpcy5kYXRlRGlzcGxheVBpcGUudHJhbnNmb3JtKHNlbGVjdGlvbiwgdHJ1ZSksIHRleHRib3gyOiBudWxsIH07XHJcbiAgICAvLyBPdGhlcndpc2UsIGNsZWFyIGJvdGggdGV4dGJveGVzLiBUaGlzIHNob3VsZG4ndCBoYXBwZW4gYmFzZWQgb24gY3VycmVudCBkYXRlIGlucHV0IGZsb3dzLFxyXG4gICAgLy8gYW5kIGV2ZW4gaWYgaXQgZGlkIHRoZXJlJ3Mgbm90IHJlYWxseSBhIGdvb2Qgd2F5IHRvIGhhbmRsZSBpdC5cclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHJldHVybiB7IHRleHRib3g6IG51bGwsIHRleHRib3gyOiBudWxsIH07XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwYXJzZVRleHRib3hWYWx1ZXModmFsdWU6IERhdGVJbnB1dC5UZXh0Ym94R3JvdXBbJ3ZhbHVlJ10sIHBhcnNlRm9ybWF0czogc3RyaW5nW10sIG9wdHM/OiBEYXRlSW5wdXQuUGFyc2luZ09wdGlvbnMpOiBEYXRlSW5wdXQuU2VsZWN0aW9uIHwgbnVsbCB7XHJcbiAgICByZXR1cm4gdGhpcy5wYXJzZVN0cmluZyh2YWx1ZS50ZXh0Ym94LCBwYXJzZUZvcm1hdHMsIG9wdHMpO1xyXG4gIH1cclxuXHJcbiAgZ2V0U2VsZWN0aW9uRnJvbURhdGUoZGF0ZTogRGF0ZSk6IERhdGVJbnB1dC5TZWxlY3Rpb24gfCBudWxsIHtcclxuICAgIC8vIE5pY2UgYW5kIHNpbXBsZVxyXG4gICAgcmV0dXJuIGRhdGU7XHJcbiAgfVxyXG5cclxuICBnZXROZXdTZWxlY3Rpb25Gcm9tRXhpc3RpbmcocHJldmlvdXNTZWxlY3Rpb24/OiBEYXRlSW5wdXQuU2VsZWN0aW9uIHwgbnVsbCk6IERhdGVJbnB1dC5TZWxlY3Rpb24gfCBudWxsIHtcclxuICAgIC8vIElmIHRoZSBwcmV2aW91cyBzZWxlY3Rpb24gd2FzIGEgcmFuZ2UsIHJldHVybiB0aGUgZW5kIGRhdGUgYW5kIGRlZmF1bHQgdG8gdGhlIHN0YXJ0IGRhdGUgaWYgdGhlcmUgaXNuJ3Qgb25lLlxyXG4gICAgaWYgKERhdGVJbnB1dC5pc1NlbGVjdGlvblJhbmdlKHByZXZpb3VzU2VsZWN0aW9uKSkge1xyXG4gICAgICByZXR1cm4gcHJldmlvdXNTZWxlY3Rpb24uZW5kIHx8IHByZXZpb3VzU2VsZWN0aW9uLnN0YXJ0O1xyXG4gICAgLy8gSWYgdGhlIHByZXZpb3VzIHNlbGVjdGlvbiB3YXMgYSBzaW5nbGUgZGF0ZSwgcmV0dXJuIGl0LlxyXG4gICAgfSBlbHNlIGlmIChEYXRlSW5wdXQuaXNTZWxlY3Rpb25TaW5nbGVEYXRlKHByZXZpb3VzU2VsZWN0aW9uKSkge1xyXG4gICAgICByZXR1cm4gcHJldmlvdXNTZWxlY3Rpb247XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIG51bGw7XHJcbiAgfVxyXG5cclxuICBnZXROZXh0U2VsZWN0aW9uKHNlbGVjdGlvbjogRGF0ZUlucHV0LlNlbGVjdGlvbiB8IG51bGwpOiBEYXRlSW5wdXQuU2VsZWN0aW9uIHwgbnVsbCB7XHJcbiAgICAvLyBBZGQgYSBzaW5nbGUgZGF5IHRvIHRoZSBzZWxlY3Rpb25cclxuICAgIGlmIChEYXRlSW5wdXQuaXNTZWxlY3Rpb25TaW5nbGVEYXRlKHNlbGVjdGlvbikpIHtcclxuICAgICAgcmV0dXJuIG1vbWVudChzZWxlY3Rpb24pLmFkZCgxLCAnZGF5JykudG9EYXRlKCk7XHJcbiAgICB9XHJcblxyXG4gICAgLy8gVGhpcyBzaG91bGRuJ3QgaGFwcGVuIGJhc2VkIG9uIGN1cnJlbnQgZGF0ZSBpbnB1dCBmbG93cywgYnV0IGlmIGl0IGRvZXMganVzdCByZXR1cm4gdGhlIHNlbGVjdGlvbiBhcy1pcy5cclxuICAgIHJldHVybiBzZWxlY3Rpb247XHJcbiAgfVxyXG5cclxuICBnZXRQcmV2aW91c1NlbGVjdGlvbihzZWxlY3Rpb246IERhdGVJbnB1dC5TZWxlY3Rpb24gfCBudWxsKTogRGF0ZUlucHV0LlNlbGVjdGlvbiB8IG51bGwge1xyXG4gICAgLy8gU3VidHJhY3QgYSBzaW5nbGUgZGF5IGZyb20gdGhlIHNlbGVjdGlvblxyXG4gICAgaWYgKERhdGVJbnB1dC5pc1NlbGVjdGlvblNpbmdsZURhdGUoc2VsZWN0aW9uKSkge1xyXG4gICAgICByZXR1cm4gbW9tZW50KHNlbGVjdGlvbikuc3VidHJhY3QoMSwgJ2RheScpLnRvRGF0ZSgpO1xyXG4gICAgfVxyXG5cclxuICAgIC8vIFRoaXMgc2hvdWxkbid0IGhhcHBlbiBiYXNlZCBvbiBjdXJyZW50IGRhdGUgaW5wdXQgZmxvd3MsIGJ1dCBpZiBpdCBkb2VzIGp1c3QgcmV0dXJuIHRoZSBzZWxlY3Rpb24gYXMtaXMuXHJcbiAgICByZXR1cm4gc2VsZWN0aW9uO1xyXG4gIH1cclxufVxyXG4iXX0=
|
@@ -1,100 +0,0 @@
|
|
1
|
-
import moment from "moment";
|
2
|
-
import { DateInput } from "../date-input.types";
|
3
|
-
import { DateInputSelectionStrategyBase } from "./date-input-selection-strategy-base";
|
4
|
-
/**
|
5
|
-
* Selection strategy for the 'last 28 days' selection mode.
|
6
|
-
*/
|
7
|
-
export class Last28DaysSelectionStrategy extends DateInputSelectionStrategyBase {
|
8
|
-
constructor(rangeStrategy) {
|
9
|
-
super();
|
10
|
-
this.rangeStrategy = rangeStrategy;
|
11
|
-
this.selectionViewMode = 'day';
|
12
|
-
this.validViewModes = ['day', 'month', 'year'];
|
13
|
-
this.showSecondaryTextbox = true;
|
14
|
-
this.showSecondaryCalendar = false;
|
15
|
-
}
|
16
|
-
formatSelection(value) {
|
17
|
-
// Delegate to the range strategy for formatting since the logic is the same
|
18
|
-
return this.rangeStrategy.formatSelection(value);
|
19
|
-
}
|
20
|
-
parseTextboxValues(value, parseFormats, opts) {
|
21
|
-
let start = this.parseString(value.textbox, parseFormats, opts);
|
22
|
-
let end = this.parseString(value.textbox2, parseFormats, opts);
|
23
|
-
if (start && end) {
|
24
|
-
// Even if both dates are provided, it's possible that they don't match a 28-day range
|
25
|
-
// Update the start and end dates to match a 28-day range, keying off the end date if parseFromEnd is true
|
26
|
-
// parseFromEnd is true when a date is being entered from the end date textbox
|
27
|
-
if (opts?.parseFromEnd) {
|
28
|
-
start = moment(end).subtract(27, 'days').toDate();
|
29
|
-
}
|
30
|
-
else {
|
31
|
-
end = moment(start).add(27, 'days').toDate();
|
32
|
-
}
|
33
|
-
}
|
34
|
-
// If the start date is not provided, we'll use the end date to calculate the start date
|
35
|
-
if (!start && end && !opts?.preventAutoComplete) {
|
36
|
-
start = moment(end).subtract(27, 'days').toDate();
|
37
|
-
}
|
38
|
-
// If the end date is not provided, we'll use the start date to calculate the end date
|
39
|
-
if (!end && start && !opts?.preventAutoComplete) {
|
40
|
-
end = moment(start).add(27, 'days').toDate();
|
41
|
-
}
|
42
|
-
if (!start && !end) {
|
43
|
-
return null;
|
44
|
-
}
|
45
|
-
else {
|
46
|
-
return { start, end };
|
47
|
-
}
|
48
|
-
}
|
49
|
-
getSelectionFromDate(date) {
|
50
|
-
return {
|
51
|
-
start: moment(date).subtract(27, 'days').toDate(),
|
52
|
-
end: date
|
53
|
-
};
|
54
|
-
}
|
55
|
-
getNewSelectionFromExisting(previousSelection) {
|
56
|
-
if (DateInput.isSelectionRange(previousSelection)) {
|
57
|
-
// If the range only has a start date, make the 28-day range start on that date
|
58
|
-
if (!previousSelection.end && previousSelection.start) {
|
59
|
-
return {
|
60
|
-
start: previousSelection.start,
|
61
|
-
end: moment(previousSelection.start).add(27, 'days').toDate()
|
62
|
-
};
|
63
|
-
// If the range only has an end date, make the 28-day range end on that date
|
64
|
-
}
|
65
|
-
else if (previousSelection.end) {
|
66
|
-
return this.getSelectionFromDate(previousSelection.end);
|
67
|
-
}
|
68
|
-
// If the previous selection was a single date, make the range the 28 days ending on that date
|
69
|
-
}
|
70
|
-
else if (DateInput.isSelectionSingleDate(previousSelection)) {
|
71
|
-
return this.getSelectionFromDate(previousSelection);
|
72
|
-
}
|
73
|
-
return null;
|
74
|
-
}
|
75
|
-
getNextSelection(selection) {
|
76
|
-
// Move the selection to the next 28 days
|
77
|
-
if (DateInput.isSelectionRange(selection) && selection.end) {
|
78
|
-
return {
|
79
|
-
start: moment(selection.end).add(1, 'day').toDate(),
|
80
|
-
end: moment(selection.end).add(28, 'days').toDate()
|
81
|
-
};
|
82
|
-
}
|
83
|
-
// This shouldn't happen since the next stepper is disabled if the selection only has one date.
|
84
|
-
// Just return the selection as-is in this case.
|
85
|
-
return selection;
|
86
|
-
}
|
87
|
-
getPreviousSelection(selection) {
|
88
|
-
// Move the selection to the previous 28 days
|
89
|
-
if (DateInput.isSelectionRange(selection) && selection.start) {
|
90
|
-
return {
|
91
|
-
start: moment(selection.start).subtract(28, 'days').toDate(),
|
92
|
-
end: moment(selection.start).subtract(1, 'day').toDate()
|
93
|
-
};
|
94
|
-
}
|
95
|
-
// This shouldn't happen since the previous stepper is disabled if the selection only has one date.
|
96
|
-
// Just return the selection as-is in this case.
|
97
|
-
return selection;
|
98
|
-
}
|
99
|
-
}
|
100
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGFzdC0yOC1kYXlzLXNlbGVjdGlvbi1zdHJhdGVneS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvbXBvbmVudHMvc3JjL2xpYi9jb250cm9scy9kYXRlLWlucHV0L2RhdGUtaW5wdXQtc2VsZWN0aW9uLXN0cmF0ZWdpZXMvbGFzdC0yOC1kYXlzLXNlbGVjdGlvbi1zdHJhdGVneS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLE1BQU0sTUFBTSxRQUFRLENBQUM7QUFFNUIsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ2hELE9BQU8sRUFBRSw4QkFBOEIsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBR3RGOztHQUVHO0FBQ0gsTUFBTSxPQUFPLDJCQUE0QixTQUFRLDhCQUE4QjtJQU03RSxZQUNVLGFBQXFDO1FBRTdDLEtBQUssRUFBRSxDQUFDO1FBRkEsa0JBQWEsR0FBYixhQUFhLENBQXdCO1FBTi9CLHNCQUFpQixHQUFzQixLQUFLLENBQUM7UUFDN0MsbUJBQWMsR0FBd0IsQ0FBQyxLQUFLLEVBQUUsT0FBTyxFQUFFLE1BQU0sQ0FBQyxDQUFDO1FBQy9ELHlCQUFvQixHQUFHLElBQUksQ0FBQztRQUM1QiwwQkFBcUIsR0FBRyxLQUFLLENBQUM7SUFNOUMsQ0FBQztJQUVELGVBQWUsQ0FBQyxLQUFrQztRQUNoRCw0RUFBNEU7UUFDNUUsT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFDLGVBQWUsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNuRCxDQUFDO0lBRUQsa0JBQWtCLENBQUMsS0FBc0MsRUFBRSxZQUFzQixFQUFFLElBQStCO1FBQ2hILElBQUksS0FBSyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLE9BQU8sRUFBRSxZQUFZLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDaEUsSUFBSSxHQUFHLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FB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UyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxFQUFFLEVBQUUsTUFBTSxDQUFDLENBQUMsTUFBTSxFQUFFO2FBQ3BELENBQUM7U0FDSDtRQUVELCtGQUErRjtRQUMvRixnREFBZ0Q7UUFDaEQsT0FBTyxTQUFTLENBQUM7SUFDbkIsQ0FBQztJQUVELG9CQUFvQixDQUFDLFNBQXFDO1FBQ3hELDZDQUE2QztRQUM3QyxJQUFJLFNBQVMsQ0FBQyxnQkFBZ0IsQ0FBQyxTQUFTLENBQUMsSUFBSSxTQUFTLENBQUMsS0FBSyxFQUFFO1lBQzVELE9BQU87Z0JBQ0wsS0FBSyxFQUFFLE1BQU0sQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEVBQUUsRUFBRSxNQUFNLENBQUMsQ0FBQyxNQUFNLEVBQUU7Z0JBQzVELEdBQUcsRUFBRSxNQUFNLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLEVBQUUsS0FBSyxDQUFDLENBQUMsTUFBTSxFQUFFO2FBQ3pELENBQUM7U0FDSDtRQUVELG1HQUFtRztRQUNuRyxnREFBZ0Q7UUFDaEQsT0FBTyxTQUFTLENBQUM7SUFDbkIsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IG1vbWVudCBmcm9tIFwibW9tZW50XCI7XHJcbmltcG9ydCB7IENhbGVuZGFyIH0gZnJvbSBcIi4uLy4uL2NhbGVuZGFyL2NhbGVuZGFyLnR5cGVzXCI7XHJcbmltcG9ydCB7IERhdGVJbnB1dCB9IGZyb20gXCIuLi9kYXRlLWlucHV0LnR5cGVzXCI7XHJcbmltcG9ydCB7IERhdGVJbnB1dFNlbGVjdGlvblN0cmF0ZWd5QmFzZSB9IGZyb20gXCIuL2RhdGUtaW5wdXQtc2VsZWN0aW9uLXN0cmF0ZWd5LWJhc2VcIjtcclxuaW1wb3J0IHsgUmFuZ2VTZWxlY3Rpb25TdHJhdGVneSB9IGZyb20gXCIuL3JhbmdlLXNlbGVjdGlvbi1zdHJhdGVneVwiO1xyXG5cclxuLyoqXHJcbiAqIFNlbGVjdGlvbiBzdHJhdGVneSBmb3IgdGhlICdsYXN0IDI4IGRheXMnIHNlbGVjdGlvbiBtb2RlLlxyXG4gKi9cclxuZXhwb3J0IGNsYXNzIExhc3QyOERheXNTZWxlY3Rpb25TdHJhdGVneSBleHRlbmRzIERhdGVJbnB1dFNlbGVjdGlvblN0cmF0ZWd5QmFzZSB7XHJcbiAgcHVibGljIHJlYWRvbmx5IHNlbGVjdGlvblZpZXdNb2RlOiBDYWxlbmRhci5WaWV3TW9kZSA9ICdkYXknO1xyXG4gIHB1YmxpYyByZWFkb25seSB2YWxpZFZpZXdNb2RlczogQ2FsZW5kYXIuVmlld01vZGVbXSA9IFsnZGF5JywgJ21vbnRoJywgJ3llYXInXTtcclxuICBwdWJsaWMgcmVhZG9ubHkgc2hvd1NlY29uZGFyeVRleHRib3ggPSB0cnVlO1xyXG4gIHB1YmxpYyByZWFkb25seSBzaG93U2Vjb25kYXJ5Q2FsZW5kYXIgPSBmYWxzZTtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIHJhbmdlU3RyYXRlZ3k6IFJhbmdlU2VsZWN0aW9uU3RyYXRlZ3lcclxuICApIHtcclxuICAgIHN1cGVyKCk7XHJcbiAgfVxyXG5cclxuICBmb3JtYXRTZWxlY3Rpb24odmFsdWU/OiBEYXRlSW5wdXQuU2VsZWN0aW9uIHwgbnVsbCk6IERhdGVJbnB1dC5UZXh0Ym94R3JvdXBbJ3ZhbHVlJ10ge1xyXG4gICAgLy8gRGVsZWdhdGUgdG8gdGhlIHJhbmdlIHN0cmF0ZWd5IGZvciBmb3JtYXR0aW5nIHNpbmNlIHRoZSBsb2dpYyBpcyB0aGUgc2FtZVxyXG4gICAgcmV0dXJuIHRoaXMucmFuZ2VTdHJhdGVneS5mb3JtYXRTZWxlY3Rpb24odmFsdWUpO1xyXG4gIH1cclxuXHJcbiAgcGFyc2VUZXh0Ym94VmFsdWVzKHZhbHVlOiBEYXRlSW5wdXQuVGV4dGJveEdyb3VwWyd2YWx1ZSddLCBwYXJzZUZvcm1hdHM6IHN0cmluZ1tdLCBvcHRzPzogRGF0ZUlucHV0LlBhcnNpbmdPcHRpb25zKTogRGF0ZUlucHV0LlNlbGVjdGlvbiB8IG51bGwge1xyXG4gICAgbGV0IHN0YXJ0ID0gdGhpcy5wYXJzZVN0cmluZyh2YWx1ZS50ZXh0Ym94LCBwYXJzZUZvcm1hdHMsIG9wdHMpO1xyXG4gICAgbGV0IGVuZCA9IHRoaXMucGFyc2VTdHJpbmcodmFsdWUudGV4dGJveDIsIHBhcnNlRm9ybWF0cywgb3B0cyk7XHJcblxyXG4gICAgaWYgKHN0YXJ0ICYmIGVuZCkge1xyXG4gICAgICAvLyBFdmVuIGlmIGJvdGggZGF0ZXMgYXJlIHByb3ZpZGVkLCBpdCdzIHBvc3NpYmxlIHRoYXQgdGhleSBkb24ndCBtYXRjaCBhIDI4LWRheSByYW5nZVxyXG4gICAgICAvLyBVcGRhdGUgdGhlIHN0YXJ0IGFuZCBlbmQgZGF0ZXMgdG8gbWF0Y2ggYSAyOC1kYXkgcmFuZ2UsIGtleWluZyBvZmYgdGhlIGVuZCBkYXRlIGlmIHBhcnNlRnJvbUVuZCBpcyB0cnVlXHJcbiAgICAgIC8vIHBhcnNlRnJvbUVuZCBpcyB0cnVlIHdoZW4gYSBkYXRlIGlzIGJlaW5nIGVudGVyZWQgZnJvbSB0aGUgZW5kIGRhdGUgdGV4dGJveFxyXG4gICAgICBpZiAob3B0cz8ucGFyc2VGcm9tRW5kKSB7XHJcbiAgICAgICAgc3RhcnQgPSBtb21lbnQoZW5kKS5zdWJ0cmFjdCgyNywgJ2RheXMnKS50b0RhdGUoKTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBlbmQgPSBtb21lbnQoc3RhcnQpLmFkZCgyNywgJ2RheXMnKS50b0RhdGUoKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC8vIElmIHRoZSBzdGFydCBkYXRlIGlzIG5vdCBwcm92aWRlZCwgd2UnbGwgdXNlIHRoZSBlbmQgZGF0ZSB0byBjYWxjdWxhdGUgdGhlIHN0YXJ0IGRhdGVcclxuICAgIGlmICghc3RhcnQgJiYgZW5kICYmICFvcHRzPy5wcmV2ZW50QXV0b0NvbXBsZXRlKSB7XHJcbiAgICAgIHN0YXJ0ID0gbW9tZW50KGVuZCkuc3VidHJhY3QoMjcsICdkYXlzJykudG9EYXRlKCk7XHJcbiAgICB9XHJcblxyXG4gICAgLy8gSWYgdGhlIGVuZCBkYXRlIGlzIG5vdCBwcm92aWRlZCwgd2UnbGwgdXNlIHRoZSBzdGFydCBkYXRlIHRvIGNhbGN1bGF0ZSB0aGUgZW5kIGRhdGVcclxuICAgIGlmICghZW5kICYmIHN0YXJ0ICYmICFvcHRzPy5wcmV2ZW50QXV0b0NvbXBsZXRlKSB7XHJcbiAgICAgIGVuZCA9IG1vbWVudChzdGFydCkuYWRkKDI3LCAnZGF5cycpLnRvRGF0ZSgpO1xyXG4gICAgfVxyXG5cclxuICAgIGlmICghc3RhcnQgJiYgIWVuZCkge1xyXG4gICAgICByZXR1cm4gbnVsbDtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHJldHVybiB7IHN0YXJ0LCBlbmQgfTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGdldFNlbGVjdGlvbkZyb21EYXRlKGRhdGU6IERhdGUpOiBEYXRlSW5wdXQuU2VsZWN0aW9uIHwgbnVsbCB7XHJcbiAgICByZXR1cm4geyBcclxuICAgICAgc3RhcnQ6IG1vbWVudChkYXRlKS5zdWJ0cmFjdCgyNywgJ2RheXMnKS50b0RhdGUoKSxcclxuICAgICAgZW5kOiBkYXRlXHJcbiAgICB9O1xyXG4gIH1cclxuXHJcbiAgZ2V0TmV3U2VsZWN0aW9uRnJvbUV4aXN0aW5nKHByZXZpb3VzU2VsZWN0aW9uPzogRGF0ZUlucHV0LlNlbGVjdGlvbik6IERhdGVJbnB1dC5TZWxlY3Rpb24gfCBudWxsIHtcclxuICAgIGlmIChEYXRlSW5wdXQuaXNTZWxlY3Rpb25SYW5nZShwcmV2aW91c1NlbGVjdGlvbikpIHtcclxuICAgICAgLy8gSWYgdGhlIHJhbmdlIG9ubHkgaGFzIGEgc3RhcnQgZGF0ZSwgbWFrZSB0aGUgMjgtZGF5IHJhbmdlIHN0YXJ0IG9uIHRoYXQgZGF0ZVxyXG4gICAgICBpZiAoIXByZXZpb3VzU2VsZWN0aW9uLmVuZCAmJiBwcmV2aW91c1NlbGVjdGlvbi5zdGFydCkge1xyXG4gICAgICAgIHJldHVybiB7XHJcbiAgICAgICAgICBzdGFydDogcHJldmlvdXNTZWxlY3Rpb24uc3RhcnQsXHJcbiAgICAgICAgICBlbmQ6IG1vbWVudChwcmV2aW91c1NlbGVjdGlvbi5zdGFydCkuYWRkKDI3LCAnZGF5cycpLnRvRGF0ZSgpXHJcbiAgICAgICAgfTtcclxuICAgICAgLy8gSWYgdGhlIHJhbmdlIG9ubHkgaGFzIGFuIGVuZCBkYXRlLCBtYWtlIHRoZSAyOC1kYXkgcmFuZ2UgZW5kIG9uIHRoYXQgZGF0ZVxyXG4gICAgICB9IGVsc2UgaWYgKHByZXZpb3VzU2VsZWN0aW9uLmVuZCkge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmdldFNlbGVjdGlvbkZyb21EYXRlKHByZXZpb3VzU2VsZWN0aW9uLmVuZCk7XHJcbiAgICAgIH1cclxuICAgIC8vIElmIHRoZSBwcmV2aW91cyBzZWxlY3Rpb24gd2FzIGEgc2luZ2xlIGRhdGUsIG1ha2UgdGhlIHJhbmdlIHRoZSAyOCBkYXlzIGVuZGluZyBvbiB0aGF0IGRhdGVcclxuICAgIH0gZWxzZSBpZiAoRGF0ZUlucHV0LmlzU2VsZWN0aW9uU2luZ2xlRGF0ZShwcmV2aW91c1NlbGVjdGlvbikpIHtcclxuICAgICAgcmV0dXJuIHRoaXMuZ2V0U2VsZWN0aW9uRnJvbURhdGUocHJldmlvdXNTZWxlY3Rpb24pO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBudWxsO1xyXG4gIH1cclxuXHJcbiAgZ2V0TmV4dFNlbGVjdGlvbihzZWxlY3Rpb246IERhdGVJbnB1dC5TZWxlY3Rpb24gfCBudWxsKTogRGF0ZUlucHV0LlNlbGVjdGlvbiB8IG51bGwge1xyXG4gICAgLy8gTW92ZSB0aGUgc2VsZWN0aW9uIHRvIHRoZSBuZXh0IDI4IGRheXNcclxuICAgIGlmIChEYXRlSW5wdXQuaXNTZWxlY3Rpb25SYW5nZShzZWxlY3Rpb24pICYmIHNlbGVjdGlvbi5lbmQpIHtcclxuICAgICAgcmV0dXJuIHtcclxuICAgICAgICBzdGFydDogbW9tZW50KHNlbGVjdGlvbi5lbmQpLmFkZCgxLCAnZGF5JykudG9EYXRlKCksXHJcbiAgICAgICAgZW5kOiBtb21lbnQoc2VsZWN0aW9uLmVuZCkuYWRkKDI4LCAnZGF5cycpLnRvRGF0ZSgpXHJcbiAgICAgIH07XHJcbiAgICB9XHJcblxyXG4gICAgLy8gVGhpcyBzaG91bGRuJ3QgaGFwcGVuIHNpbmNlIHRoZSBuZXh0IHN0ZXBwZXIgaXMgZGlzYWJsZWQgaWYgdGhlIHNlbGVjdGlvbiBvbmx5IGhhcyBvbmUgZGF0ZS5cclxuICAgIC8vIEp1c3QgcmV0dXJuIHRoZSBzZWxlY3Rpb24gYXMtaXMgaW4gdGhpcyBjYXNlLlxyXG4gICAgcmV0dXJuIHNlbGVjdGlvbjtcclxuICB9XHJcblxyXG4gIGdldFByZXZpb3VzU2VsZWN0aW9uKHNlbGVjdGlvbjogRGF0ZUlucHV0LlNlbGVjdGlvbiB8IG51bGwpOiBEYXRlSW5wdXQuU2VsZWN0aW9uIHwgbnVsbCB7XHJcbiAgICAvLyBNb3ZlIHRoZSBzZWxlY3Rpb24gdG8gdGhlIHByZXZpb3VzIDI4IGRheXNcclxuICAgIGlmIChEYXRlSW5wdXQuaXNTZWxlY3Rpb25SYW5nZShzZWxlY3Rpb24pICYmIHNlbGVjdGlvbi5zdGFydCkge1xyXG4gICAgICByZXR1cm4ge1xyXG4gICAgICAgIHN0YXJ0OiBtb21lbnQoc2VsZWN0aW9uLnN0YXJ0KS5zdWJ0cmFjdCgyOCwgJ2RheXMnKS50b0RhdGUoKSxcclxuICAgICAgICBlbmQ6IG1vbWVudChzZWxlY3Rpb24uc3RhcnQpLnN1YnRyYWN0KDEsICdkYXknKS50b0RhdGUoKVxyXG4gICAgICB9O1xyXG4gICAgfVxyXG5cclxuICAgIC8vIFRoaXMgc2hvdWxkbid0IGhhcHBlbiBzaW5jZSB0aGUgcHJldmlvdXMgc3RlcHBlciBpcyBkaXNhYmxlZCBpZiB0aGUgc2VsZWN0aW9uIG9ubHkgaGFzIG9uZSBkYXRlLlxyXG4gICAgLy8gSnVzdCByZXR1cm4gdGhlIHNlbGVjdGlvbiBhcy1pcyBpbiB0aGlzIGNhc2UuXHJcbiAgICByZXR1cm4gc2VsZWN0aW9uO1xyXG4gIH1cclxufVxyXG4iXX0=
|
@@ -1,101 +0,0 @@
|
|
1
|
-
import moment from "moment";
|
2
|
-
import { DateInput } from "../date-input.types";
|
3
|
-
import { DateInputSelectionStrategyBase } from "./date-input-selection-strategy-base";
|
4
|
-
/**
|
5
|
-
* Selection strategy for the 'last 7 days' selection mode.
|
6
|
-
*/
|
7
|
-
export class Last7DaysSelectionStrategy extends DateInputSelectionStrategyBase {
|
8
|
-
constructor(rangeStrategy) {
|
9
|
-
super();
|
10
|
-
this.rangeStrategy = rangeStrategy;
|
11
|
-
this.selectionViewMode = 'day';
|
12
|
-
this.validViewModes = ['day', 'month', 'year'];
|
13
|
-
this.showSecondaryTextbox = true;
|
14
|
-
this.showSecondaryCalendar = false;
|
15
|
-
}
|
16
|
-
formatSelection(value) {
|
17
|
-
// Delegate to the range strategy for formatting since the logic is the same
|
18
|
-
return this.rangeStrategy.formatSelection(value);
|
19
|
-
}
|
20
|
-
parseTextboxValues(value, parseFormats, opts) {
|
21
|
-
let start = this.parseString(value.textbox, parseFormats, opts);
|
22
|
-
let end = this.parseString(value.textbox2, parseFormats, opts);
|
23
|
-
if (start && end) {
|
24
|
-
// Even if both dates are provided, it's possible that they don't match a 7-day range
|
25
|
-
// Update the start and end dates to match a 7-day range, keying off the end date if parseFromEnd is true
|
26
|
-
// parseFromEnd is true when a date is being entered from the end date textbox
|
27
|
-
if (opts?.parseFromEnd) {
|
28
|
-
start = moment(end).subtract(6, 'days').toDate();
|
29
|
-
}
|
30
|
-
else {
|
31
|
-
end = moment(start).add(6, 'days').toDate();
|
32
|
-
}
|
33
|
-
}
|
34
|
-
// If the start date is not provided, we'll use the end date to calculate the start date
|
35
|
-
if (!start && end && !opts?.preventAutoComplete) {
|
36
|
-
start = moment(end).subtract(6, 'days').toDate();
|
37
|
-
}
|
38
|
-
// If the end date is not provided, we'll use the start date to calculate the end date
|
39
|
-
if (!end && start && !opts?.preventAutoComplete) {
|
40
|
-
end = moment(start).add(6, 'days').toDate();
|
41
|
-
}
|
42
|
-
if (!start && !end) {
|
43
|
-
return null;
|
44
|
-
}
|
45
|
-
else {
|
46
|
-
return { start, end };
|
47
|
-
}
|
48
|
-
}
|
49
|
-
getSelectionFromDate(date) {
|
50
|
-
// Base the selection on the given date, moving back 6 days
|
51
|
-
return {
|
52
|
-
start: moment(date).subtract(6, 'days').toDate(),
|
53
|
-
end: date
|
54
|
-
};
|
55
|
-
}
|
56
|
-
getNewSelectionFromExisting(previousSelection) {
|
57
|
-
if (DateInput.isSelectionRange(previousSelection)) {
|
58
|
-
// If we don't have an end date, create the new selection based on the start date forwards
|
59
|
-
if (!previousSelection.end && previousSelection.start) {
|
60
|
-
return {
|
61
|
-
start: previousSelection.start,
|
62
|
-
end: moment(previousSelection.start).add(6, 'days').toDate()
|
63
|
-
};
|
64
|
-
// Otherwise, create the new selection based on the end date backwards
|
65
|
-
}
|
66
|
-
else if (previousSelection.end) {
|
67
|
-
return this.getSelectionFromDate(previousSelection.end);
|
68
|
-
}
|
69
|
-
// If we only have a single date, create the new selection based on that date backwards
|
70
|
-
}
|
71
|
-
else if (DateInput.isSelectionSingleDate(previousSelection)) {
|
72
|
-
return this.getSelectionFromDate(previousSelection);
|
73
|
-
}
|
74
|
-
return null;
|
75
|
-
}
|
76
|
-
getNextSelection(selection) {
|
77
|
-
// Shift the range forward by 7 days
|
78
|
-
if (DateInput.isSelectionRange(selection) && selection.end) {
|
79
|
-
return {
|
80
|
-
start: moment(selection.end).add(1, 'day').toDate(),
|
81
|
-
end: moment(selection.end).add(7, 'days').toDate()
|
82
|
-
};
|
83
|
-
}
|
84
|
-
// This shouldn't happen since the next stepper is disabled if the selection only has one date.
|
85
|
-
// Just return the selection as-is in this case.
|
86
|
-
return selection;
|
87
|
-
}
|
88
|
-
getPreviousSelection(selection) {
|
89
|
-
// Shift the range back 7 days
|
90
|
-
if (DateInput.isSelectionRange(selection) && selection.start) {
|
91
|
-
return {
|
92
|
-
start: moment(selection.start).subtract(7, 'days').toDate(),
|
93
|
-
end: moment(selection.start).subtract(1, 'day').toDate()
|
94
|
-
};
|
95
|
-
}
|
96
|
-
// This shouldn't happen since the previous stepper is disabled if the selection only has one date.
|
97
|
-
// Just return the selection as-is in this case.
|
98
|
-
return selection;
|
99
|
-
}
|
100
|
-
}
|
101
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGFzdC03LWRheXMtc2VsZWN0aW9uLXN0cmF0ZWd5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29tcG9uZW50cy9zcmMvbGliL2NvbnRyb2xzL2RhdGUtaW5wdXQvZGF0ZS1pbnB1dC1zZWxlY3Rpb24tc3RyYXRlZ2llcy9sYXN0LTctZGF5cy1zZWxlY3Rpb24tc3RyYXRlZ3kudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxNQUFNLE1BQU0sUUFBUSxDQUFDO0FBRTVCLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNoRCxPQUFPLEVBQUUsOEJBQThCLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUd0Rjs7R0FFRztBQUNILE1BQU0sT0FBTywwQkFBMkIsU0FBUSw4QkFBOEI7SUFNNUUsWUFDVSxhQUFxQztRQUU3QyxLQUFLLEVBQUUsQ0FBQztRQUZBLGtCQUFhLEdBQWIsYUFBYSxDQUF3QjtRQU4vQixzQkFBaUIsR0FBc0IsS0FBSyxDQUFDO1FBQzdDLG1CQUFjLEdBQXdCLENBQUMsS0FBSyxFQUFFLE9BQU8sRUFBRSxNQUFNLENBQUMsQ0FBQztRQUMvRCx5QkFBb0IsR0FBRyxJQUFJLENBQUM7UUFDNUIsMEJBQXFCLEdBQUcsS0FBSyxDQUFDO0lBTTlDLENBQUM7SUFFRCxlQUFlLENBQUMsS0FBa0M7UUFDaEQsNEVBQTRFO1FBQzVFLE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FBQyxlQUFlLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDbkQsQ0FBQztJQUVELGtCQUFrQixDQUFDLEtBQXNDLEVBQUUsWUFBc0IsRUFBRSxJQUErQjtRQUNoSCxJQUFJLEtBQUssR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxPQUFPLEVBQUUsWUFBWSxFQUFFLElBQUksQ0FBQyxDQUFDO1FBQ2hFLElBQUksR0FBRyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMs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QU0sQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxNQUFNLENBQUMsQ0FBQyxNQUFNLEVBQUU7YUFDbkQsQ0FBQztTQUNIO1FBRUQsK0ZBQStGO1FBQy9GLGdEQUFnRDtRQUNoRCxPQUFPLFNBQVMsQ0FBQztJQUNuQixDQUFDO0lBRUQsb0JBQW9CLENBQUMsU0FBcUM7UUFDeEQsOEJBQThCO1FBQzlCLElBQUksU0FBUyxDQUFDLGdCQUFnQixDQUFDLFNBQVMsQ0FBQyxJQUFJLFNBQVMsQ0FBQyxLQUFLLEVBQUU7WUFDNUQsT0FBTztnQkFDTCxLQUFLLEVBQUUsTUFBTSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxFQUFFLE1BQU0sQ0FBQyxDQUFDLE1BQU0sRUFBRTtnQkFDM0QsR0FBRyxFQUFFLE1BQU0sQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsRUFBRSxLQUFLLENBQUMsQ0FBQyxNQUFNLEVBQUU7YUFDekQsQ0FBQztTQUNIO1FBRUQsbUdBQW1HO1FBQ25HLGdEQUFnRDtRQUNoRCxPQUFPLFNBQVMsQ0FBQztJQUNuQixDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgbW9tZW50IGZyb20gXCJtb21lbnRcIjtcclxuaW1wb3J0IHsgQ2FsZW5kYXIgfSBmcm9tIFwiLi4vLi4vY2FsZW5kYXIvY2FsZW5kYXIudHlwZXNcIjtcclxuaW1wb3J0IHsgRGF0ZUlucHV0IH0gZnJvbSBcIi4uL2RhdGUtaW5wdXQudHlwZXNcIjtcclxuaW1wb3J0IHsgRGF0ZUlucHV0U2VsZWN0aW9uU3RyYXRlZ3lCYXNlIH0gZnJvbSBcIi4vZGF0ZS1pbnB1dC1zZWxlY3Rpb24tc3RyYXRlZ3ktYmFzZVwiO1xyXG5pbXBvcnQgeyBSYW5nZVNlbGVjdGlvblN0cmF0ZWd5IH0gZnJvbSBcIi4vcmFuZ2Utc2VsZWN0aW9uLXN0cmF0ZWd5XCI7XHJcblxyXG4vKipcclxuICogU2VsZWN0aW9uIHN0cmF0ZWd5IGZvciB0aGUgJ2xhc3QgNyBkYXlzJyBzZWxlY3Rpb24gbW9kZS5cclxuICovXHJcbmV4cG9ydCBjbGFzcyBMYXN0N0RheXNTZWxlY3Rpb25TdHJhdGVneSBleHRlbmRzIERhdGVJbnB1dFNlbGVjdGlvblN0cmF0ZWd5QmFzZSB7XHJcbiAgcHVibGljIHJlYWRvbmx5IHNlbGVjdGlvblZpZXdNb2RlOiBDYWxlbmRhci5WaWV3TW9kZSA9ICdkYXknO1xyXG4gIHB1YmxpYyByZWFkb25seSB2YWxpZFZpZXdNb2RlczogQ2FsZW5kYXIuVmlld01vZGVbXSA9IFsnZGF5JywgJ21vbnRoJywgJ3llYXInXTtcclxuICBwdWJsaWMgcmVhZG9ubHkgc2hvd1NlY29uZGFyeVRleHRib3ggPSB0cnVlO1xyXG4gIHB1YmxpYyByZWFkb25seSBzaG93U2Vjb25kYXJ5Q2FsZW5kYXIgPSBmYWxzZTtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIHJhbmdlU3RyYXRlZ3k6IFJhbmdlU2VsZWN0aW9uU3RyYXRlZ3lcclxuICApIHtcclxuICAgIHN1cGVyKCk7XHJcbiAgfVxyXG5cclxuICBmb3JtYXRTZWxlY3Rpb24odmFsdWU/OiBEYXRlSW5wdXQuU2VsZWN0aW9uIHwgbnVsbCk6IERhdGVJbnB1dC5UZXh0Ym94R3JvdXBbJ3ZhbHVlJ10ge1xyXG4gICAgLy8gRGVsZWdhdGUgdG8gdGhlIHJhbmdlIHN0cmF0ZWd5IGZvciBmb3JtYXR0aW5nIHNpbmNlIHRoZSBsb2dpYyBpcyB0aGUgc2FtZVxyXG4gICAgcmV0dXJuIHRoaXMucmFuZ2VTdHJhdGVneS5mb3JtYXRTZWxlY3Rpb24odmFsdWUpO1xyXG4gIH1cclxuXHJcbiAgcGFyc2VUZXh0Ym94VmFsdWVzKHZhbHVlOiBEYXRlSW5wdXQuVGV4dGJveEdyb3VwWyd2YWx1ZSddLCBwYXJzZUZvcm1hdHM6IHN0cmluZ1tdLCBvcHRzPzogRGF0ZUlucHV0LlBhcnNpbmdPcHRpb25zKTogRGF0ZUlucHV0LlNlbGVjdGlvbiB8IG51bGwge1xyXG4gICAgbGV0IHN0YXJ0ID0gdGhpcy5wYXJzZVN0cmluZyh2YWx1ZS50ZXh0Ym94LCBwYXJzZUZvcm1hdHMsIG9wdHMpO1xyXG4gICAgbGV0IGVuZCA9IHRoaXMucGFyc2VTdHJpbmcodmFsdWUudGV4dGJveDIsIHBhcnNlRm9ybWF0cywgb3B0cyk7XHJcblxyXG4gICAgaWYgKHN0YXJ0ICYmIGVuZCkge1xyXG4gICAgICAvLyBFdmVuIGlmIGJvdGggZGF0ZXMgYXJlIHByb3ZpZGVkLCBpdCdzIHBvc3NpYmxlIHRoYXQgdGhleSBkb24ndCBtYXRjaCBhIDctZGF5IHJhbmdlXHJcbiAgICAgIC8vIFVwZGF0ZSB0aGUgc3RhcnQgYW5kIGVuZCBkYXRlcyB0byBtYXRjaCBhIDctZGF5IHJhbmdlLCBrZXlpbmcgb2ZmIHRoZSBlbmQgZGF0ZSBpZiBwYXJzZUZyb21FbmQgaXMgdHJ1ZVxyXG4gICAgICAvLyBwYXJzZUZyb21FbmQgaXMgdHJ1ZSB3aGVuIGEgZGF0ZSBpcyBiZWluZyBlbnRlcmVkIGZyb20gdGhlIGVuZCBkYXRlIHRleHRib3hcclxuICAgICAgaWYgKG9wdHM/LnBhcnNlRnJvbUVuZCkge1xyXG4gICAgICAgIHN0YXJ0ID0gbW9tZW50KGVuZCkuc3VidHJhY3QoNiwgJ2RheXMnKS50b0RhdGUoKTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBlbmQgPSBtb21lbnQoc3RhcnQpLmFkZCg2LCAnZGF5cycpLnRvRGF0ZSgpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLy8gSWYgdGhlIHN0YXJ0IGRhdGUgaXMgbm90IHByb3ZpZGVkLCB3ZSdsbCB1c2UgdGhlIGVuZCBkYXRlIHRvIGNhbGN1bGF0ZSB0aGUgc3RhcnQgZGF0ZVxyXG4gICAgaWYgKCFzdGFydCAmJiBlbmQgJiYgIW9wdHM/LnByZXZlbnRBdXRvQ29tcGxldGUpIHtcclxuICAgICAgc3RhcnQgPSBtb21lbnQoZW5kKS5zdWJ0cmFjdCg2LCAnZGF5cycpLnRvRGF0ZSgpO1xyXG4gICAgfVxyXG5cclxuICAgIC8vIElmIHRoZSBlbmQgZGF0ZSBpcyBub3QgcHJvdmlkZWQsIHdlJ2xsIHVzZSB0aGUgc3RhcnQgZGF0ZSB0byBjYWxjdWxhdGUgdGhlIGVuZCBkYXRlXHJcbiAgICBpZiAoIWVuZCAmJiBzdGFydCAmJiAhb3B0cz8ucHJldmVudEF1dG9Db21wbGV0ZSkge1xyXG4gICAgICBlbmQgPSBtb21lbnQoc3RhcnQpLmFkZCg2LCAnZGF5cycpLnRvRGF0ZSgpO1xyXG4gICAgfVxyXG5cclxuICAgIGlmICghc3RhcnQgJiYgIWVuZCkge1xyXG4gICAgICByZXR1cm4gbnVsbDtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHJldHVybiB7IHN0YXJ0LCBlbmQgfTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGdldFNlbGVjdGlvbkZyb21EYXRlKGRhdGU6IERhdGUpOiBEYXRlSW5wdXQuU2VsZWN0aW9uIHwgbnVsbCB7XHJcbiAgICAvLyBCYXNlIHRoZSBzZWxlY3Rpb24gb24gdGhlIGdpdmVuIGRhdGUsIG1vdmluZyBiYWNrIDYgZGF5c1xyXG4gICAgcmV0dXJuIHtcclxuICAgICAgc3RhcnQ6IG1vbWVudChkYXRlKS5zdWJ0cmFjdCg2LCAnZGF5cycpLnRvRGF0ZSgpLFxyXG4gICAgICBlbmQ6IGRhdGVcclxuICAgIH07XHJcbiAgfVxyXG5cclxuICBnZXROZXdTZWxlY3Rpb25Gcm9tRXhpc3RpbmcocHJldmlvdXNTZWxlY3Rpb24/OiBEYXRlSW5wdXQuU2VsZWN0aW9uIHwgbnVsbCk6IERhdGVJbnB1dC5TZWxlY3Rpb24gfCBudWxsIHtcclxuICAgIGlmIChEYXRlSW5wdXQuaXNTZWxlY3Rpb25SYW5nZShwcmV2aW91c1NlbGVjdGlvbikpIHtcclxuICAgICAgLy8gSWYgd2UgZG9uJ3QgaGF2ZSBhbiBlbmQgZGF0ZSwgY3JlYXRlIHRoZSBuZXcgc2VsZWN0aW9uIGJhc2VkIG9uIHRoZSBzdGFydCBkYXRlIGZvcndhcmRzXHJcbiAgICAgIGlmICghcHJldmlvdXNTZWxlY3Rpb24uZW5kICYmIHByZXZpb3VzU2VsZWN0aW9uLnN0YXJ0KSB7XHJcbiAgICAgICAgcmV0dXJuIHtcclxuICAgICAgICAgIHN0YXJ0OiBwcmV2aW91c1NlbGVjdGlvbi5zdGFydCxcclxuICAgICAgICAgIGVuZDogbW9tZW50KHByZXZpb3VzU2VsZWN0aW9uLnN0YXJ0KS5hZGQoNiwgJ2RheXMnKS50b0RhdGUoKVxyXG4gICAgICAgIH07XHJcbiAgICAgIC8vIE90aGVyd2lzZSwgY3JlYXRlIHRoZSBuZXcgc2VsZWN0aW9uIGJhc2VkIG9uIHRoZSBlbmQgZGF0ZSBiYWNrd2FyZHNcclxuICAgICAgfSBlbHNlIGlmIChwcmV2aW91c1NlbGVjdGlvbi5lbmQpIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5nZXRTZWxlY3Rpb25Gcm9tRGF0ZShwcmV2aW91c1NlbGVjdGlvbi5lbmQpO1xyXG4gICAgICB9XHJcbiAgICAvLyBJZiB3ZSBvbmx5IGhhdmUgYSBzaW5nbGUgZGF0ZSwgY3JlYXRlIHRoZSBuZXcgc2VsZWN0aW9uIGJhc2VkIG9uIHRoYXQgZGF0ZSBiYWNrd2FyZHNcclxuICAgIH0gZWxzZSBpZiAoRGF0ZUlucHV0LmlzU2VsZWN0aW9uU2luZ2xlRGF0ZShwcmV2aW91c1NlbGVjdGlvbikpIHtcclxuICAgICAgcmV0dXJuIHRoaXMuZ2V0U2VsZWN0aW9uRnJvbURhdGUocHJldmlvdXNTZWxlY3Rpb24pO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBudWxsO1xyXG4gIH1cclxuXHJcbiAgZ2V0TmV4dFNlbGVjdGlvbihzZWxlY3Rpb246IERhdGVJbnB1dC5TZWxlY3Rpb24gfCBudWxsKTogRGF0ZUlucHV0LlNlbGVjdGlvbiB8IG51bGwge1xyXG4gICAgLy8gU2hpZnQgdGhlIHJhbmdlIGZvcndhcmQgYnkgNyBkYXlzXHJcbiAgICBpZiAoRGF0ZUlucHV0LmlzU2VsZWN0aW9uUmFuZ2Uoc2VsZWN0aW9uKSAmJiBzZWxlY3Rpb24uZW5kKSB7XHJcbiAgICAgIHJldHVybiB7XHJcbiAgICAgICAgc3RhcnQ6IG1vbWVudChzZWxlY3Rpb24uZW5kKS5hZGQoMSwgJ2RheScpLnRvRGF0ZSgpLFxyXG4gICAgICAgIGVuZDogbW9tZW50KHNlbGVjdGlvbi5lbmQpLmFkZCg3LCAnZGF5cycpLnRvRGF0ZSgpXHJcbiAgICAgIH07XHJcbiAgICB9XHJcblxyXG4gICAgLy8gVGhpcyBzaG91bGRuJ3QgaGFwcGVuIHNpbmNlIHRoZSBuZXh0IHN0ZXBwZXIgaXMgZGlzYWJsZWQgaWYgdGhlIHNlbGVjdGlvbiBvbmx5IGhhcyBvbmUgZGF0ZS5cclxuICAgIC8vIEp1c3QgcmV0dXJuIHRoZSBzZWxlY3Rpb24gYXMtaXMgaW4gdGhpcyBjYXNlLlxyXG4gICAgcmV0dXJuIHNlbGVjdGlvbjtcclxuICB9XHJcblxyXG4gIGdldFByZXZpb3VzU2VsZWN0aW9uKHNlbGVjdGlvbjogRGF0ZUlucHV0LlNlbGVjdGlvbiB8IG51bGwpOiBEYXRlSW5wdXQuU2VsZWN0aW9uIHwgbnVsbCB7XHJcbiAgICAvLyBTaGlmdCB0aGUgcmFuZ2UgYmFjayA3IGRheXNcclxuICAgIGlmIChEYXRlSW5wdXQuaXNTZWxlY3Rpb25SYW5nZShzZWxlY3Rpb24pICYmIHNlbGVjdGlvbi5zdGFydCkge1xyXG4gICAgICByZXR1cm4ge1xyXG4gICAgICAgIHN0YXJ0OiBtb21lbnQoc2VsZWN0aW9uLnN0YXJ0KS5zdWJ0cmFjdCg3LCAnZGF5cycpLnRvRGF0ZSgpLFxyXG4gICAgICAgIGVuZDogbW9tZW50KHNlbGVjdGlvbi5zdGFydCkuc3VidHJhY3QoMSwgJ2RheScpLnRvRGF0ZSgpXHJcbiAgICAgIH07XHJcbiAgICB9XHJcblxyXG4gICAgLy8gVGhpcyBzaG91bGRuJ3QgaGFwcGVuIHNpbmNlIHRoZSBwcmV2aW91cyBzdGVwcGVyIGlzIGRpc2FibGVkIGlmIHRoZSBzZWxlY3Rpb24gb25seSBoYXMgb25lIGRhdGUuXHJcbiAgICAvLyBKdXN0IHJldHVybiB0aGUgc2VsZWN0aW9uIGFzLWlzIGluIHRoaXMgY2FzZS5cclxuICAgIHJldHVybiBzZWxlY3Rpb247XHJcbiAgfVxyXG59XHJcbiJdfQ==
|
package/esm2020/lib/controls/date-input/date-input-selection-strategies/month-selection-strategy.mjs
DELETED
@@ -1,76 +0,0 @@
|
|
1
|
-
import moment from "moment";
|
2
|
-
import { DateInput } from "../date-input.types";
|
3
|
-
import { DateInputSelectionStrategyBase } from "./date-input-selection-strategy-base";
|
4
|
-
/**
|
5
|
-
* Selection strategy for the 'month' selection mode.
|
6
|
-
*/
|
7
|
-
export class MonthSelectionStrategy extends DateInputSelectionStrategyBase {
|
8
|
-
constructor() {
|
9
|
-
super(...arguments);
|
10
|
-
this.selectionViewMode = 'month';
|
11
|
-
this.validViewModes = ['month', 'year'];
|
12
|
-
this.showSecondaryTextbox = false;
|
13
|
-
this.showSecondaryCalendar = false;
|
14
|
-
}
|
15
|
-
formatSelection(selection) {
|
16
|
-
if (!selection) {
|
17
|
-
return { textbox: null, textbox2: null };
|
18
|
-
}
|
19
|
-
// We only need one date in the range to format since it only spans one month
|
20
|
-
// A single date selection shouldn't happen in this mode but it's simple enough to handle
|
21
|
-
const date = DateInput.isSelectionRange(selection) ? selection.start : selection;
|
22
|
-
return {
|
23
|
-
textbox: moment(date).format('MMM, YYYY'),
|
24
|
-
textbox2: null
|
25
|
-
};
|
26
|
-
}
|
27
|
-
parseTextboxValues(value, parseFormats, opts) {
|
28
|
-
// Only one textbox is used in this mode
|
29
|
-
const date = this.parseString(value.textbox, parseFormats, opts);
|
30
|
-
if (!date) {
|
31
|
-
return null;
|
32
|
-
}
|
33
|
-
return this.getSelectionFromDate(date);
|
34
|
-
}
|
35
|
-
getSelectionFromDate(date) {
|
36
|
-
return {
|
37
|
-
start: moment(date).startOf('month').toDate(),
|
38
|
-
end: moment(date).endOf('month').toDate()
|
39
|
-
};
|
40
|
-
}
|
41
|
-
getNewSelectionFromExisting(previousSelection) {
|
42
|
-
if (DateInput.isSelectionRange(previousSelection)) {
|
43
|
-
// We'll use the existing selection's end date and fall back to the start date if it's not available
|
44
|
-
const date = previousSelection.end || previousSelection.start;
|
45
|
-
if (date) {
|
46
|
-
return this.getSelectionFromDate(date);
|
47
|
-
}
|
48
|
-
}
|
49
|
-
else if (DateInput.isSelectionSingleDate(previousSelection)) {
|
50
|
-
// If the previous selection was a single date, make the range that month
|
51
|
-
return this.getSelectionFromDate(previousSelection);
|
52
|
-
}
|
53
|
-
return null;
|
54
|
-
}
|
55
|
-
getNextSelection(selection) {
|
56
|
-
// Move the selection to the next month
|
57
|
-
if (DateInput.isSelectionRange(selection) && selection.start) {
|
58
|
-
const date = moment(selection.start).add(1, 'month');
|
59
|
-
return this.getSelectionFromDate(date.toDate());
|
60
|
-
}
|
61
|
-
// This shouldn't happen since the next stepper is disabled if the selection only has one date.
|
62
|
-
// If it does, just return the selection as-is.
|
63
|
-
return selection;
|
64
|
-
}
|
65
|
-
getPreviousSelection(selection) {
|
66
|
-
// Move the selection to the previous month
|
67
|
-
if (DateInput.isSelectionRange(selection) && selection.start) {
|
68
|
-
const date = moment(selection.start).subtract(1, 'month');
|
69
|
-
return this.getSelectionFromDate(date.toDate());
|
70
|
-
}
|
71
|
-
// This shouldn't happen since the previous stepper is disabled if the selection only has one date.
|
72
|
-
// If it does, just return the selection as-is.
|
73
|
-
return selection;
|
74
|
-
}
|
75
|
-
}
|
76
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9udGgtc2VsZWN0aW9uLXN0cmF0ZWd5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29tcG9uZW50cy9zcmMvbGliL2NvbnRyb2xzL2RhdGUtaW5wdXQvZGF0ZS1pbnB1dC1zZWxlY3Rpb24tc3RyYXRlZ2llcy9tb250aC1zZWxlY3Rpb24tc3RyYXRlZ3kudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxNQUFNLE1BQU0sUUFBUSxDQUFDO0FBRTVCLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNoRCxPQUFPLEVBQUUsOEJBQThCLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUV0Rjs7R0FFRztBQUNILE1BQU0sT0FBTyxzQkFBdUIsU0FBUSw4QkFBOEI7SUFBMUU7O1FBQ2tCLHNCQUFpQixHQUFzQixPQUFPLENBQUM7UUFDL0MsbUJBQWMsR0FBd0IsQ0FBQyxPQUFPLEVBQUUsTUFBTSxDQUFDLENBQUM7UUFDeEQseUJBQW9CLEdBQUcsS0FBSyxDQUFDO1FBQzdCLDBCQUFxQixHQUFHLEtBQUssQ0FBQztJQXdFaEQsQ0FBQztJQXRFQyxlQUFlLENBQUMsU0FBc0M7UUFDcEQsSUFBSSxDQUFDLFNBQVMsRUFBRTtZQUNkLE9BQU8sRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsQ0FBQztTQUMxQztRQUVELDZFQUE2RTtRQUM3RSx5RkFBeUY7UUFDekYsTUFBTSxJQUFJLEdBQUcsU0FBUyxDQUFDLGdCQUFnQixDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUM7UUFDakYsT0FBTztZQUNMLE9BQU8sRUFBRSxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsTUFBTSxDQUFDLFdBQVcsQ0FBQztZQUN6QyxRQUFRLEVBQUUsSUFBSTtTQUNmLENBQUM7SUFDSixDQUFDO0lBRUQsa0JBQWtCLENBQUMsS0FBc0MsRUFBRSxZQUFzQixFQUFFLElBQStCO1FBQ2hILHdDQUF3QztRQUN4QyxNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxPQUFPLEVBQUUsWUFBWSxFQUFFLElBQUksQ0FBQyxDQUFDO1FBRWpFLElBQUksQ0FBQyxJQUFJLEVBQUU7WUFDVCxPQUFPLElBQUksQ0FBQztTQUNiO1FBRUQsT0FBTyxJQUFJLENBQUMsb0JBQW9CLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDekMsQ0FBQztJQUVELG9CQUFvQixDQUFDLElBQVU7UUFDN0IsT0FBTztZQUNMLEtBQUssRUFBRSxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDLE1BQU0sRUFBRTtZQUM3QyxHQUFHLEVBQUUsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQyxNQUFNLEVBQUU7U0FDMUMsQ0FBQztJQUNKLENBQUM7SUFFRCwyQkFBMkIsQ0FBQyxpQkFBdUM7UUFDakUsSUFBSSxTQUFTLENBQUMsZ0JBQWdCLENBQUMsaUJBQWlCLENBQUMsRUFBRTtZQUNqRCxvR0FBb0c7WUFDcEcsTUFBTSxJQUFJLEdBQUcsaUJBQWlCLENBQUMsR0FBRyxJQUFJLGlCQUFpQixDQUFDLEtBQUssQ0FBQztZQUM5RCxJQUFJLElBQUksRUFBRTtnQkFDUixPQUFPLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxJQUFJLENBQUMsQ0FBQzthQUN4QztTQUNGO2FBQU0sSUFBSSxTQUFTLENBQUMscUJBQXFCLENBQUMsaUJBQWlCLENBQUMsRUFBRTtZQUM3RCx5RUFBeUU7WUFDekUsT0FBTyxJQUFJLENBQUMsb0JBQW9CLENBQUMsaUJBQWlCLENBQUMsQ0FBQztTQUNyRDtRQUVELE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVELGdCQUFnQixDQUFDLFNBQXFDO1FBQ3BELHVDQUF1QztRQUN2QyxJQUFJLFNBQVMsQ0FBQyxnQkFBZ0IsQ0FBQyxTQUFTLENBQUMsSUFBSSxTQUFTLENBQUMsS0FBSyxFQUFFO1lBQzVELE1BQU0sSUFBSSxHQUFHLE1BQU0sQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxPQUFPLENBQUMsQ0FBQztZQUNyRCxPQUFPLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQztTQUNqRDtRQUVELCtGQUErRjtRQUMvRiwrQ0FBK0M7UUFDL0MsT0FBTyxTQUFTLENBQUM7SUFDbkIsQ0FBQztJQUVELG9CQUFvQixDQUFDLFNBQXFDO1FBQ3hELDJDQUEyQztRQUMzQyxJQUFJLFNBQVMsQ0FBQyxnQkFBZ0IsQ0FBQyxTQUFTLENBQUMsSUFBSSxTQUFTLENBQUMsS0FBSyxFQUFFO1lBQzVELE1BQU0sSUFBSSxHQUFHLE1BQU0sQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsRUFBRSxPQUFPLENBQUMsQ0FBQztZQUMxRCxPQUFPLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQztTQUNqRDtRQUVELG1HQUFtRztRQUNuRywrQ0FBK0M7UUFDL0MsT0FBTyxTQUFTLENBQUM7SUFDbkIsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IG1vbWVudCBmcm9tIFwibW9tZW50XCI7XHJcbmltcG9ydCB7IENhbGVuZGFyIH0gZnJvbSBcIi4uLy4uL2NhbGVuZGFyL2NhbGVuZGFyLnR5cGVzXCI7XHJcbmltcG9ydCB7IERhdGVJbnB1dCB9IGZyb20gXCIuLi9kYXRlLWlucHV0LnR5cGVzXCI7XHJcbmltcG9ydCB7IERhdGVJbnB1dFNlbGVjdGlvblN0cmF0ZWd5QmFzZSB9IGZyb20gXCIuL2RhdGUtaW5wdXQtc2VsZWN0aW9uLXN0cmF0ZWd5LWJhc2VcIjtcclxuXHJcbi8qKlxyXG4gKiBTZWxlY3Rpb24gc3RyYXRlZ3kgZm9yIHRoZSAnbW9udGgnIHNlbGVjdGlvbiBtb2RlLlxyXG4gKi9cclxuZXhwb3J0IGNsYXNzIE1vbnRoU2VsZWN0aW9uU3RyYXRlZ3kgZXh0ZW5kcyBEYXRlSW5wdXRTZWxlY3Rpb25TdHJhdGVneUJhc2Uge1xyXG4gIHB1YmxpYyByZWFkb25seSBzZWxlY3Rpb25WaWV3TW9kZTogQ2FsZW5kYXIuVmlld01vZGUgPSAnbW9udGgnO1xyXG4gIHB1YmxpYyByZWFkb25seSB2YWxpZFZpZXdNb2RlczogQ2FsZW5kYXIuVmlld01vZGVbXSA9IFsnbW9udGgnLCAneWVhciddO1xyXG4gIHB1YmxpYyByZWFkb25seSBzaG93U2Vjb25kYXJ5VGV4dGJveCA9IGZhbHNlO1xyXG4gIHB1YmxpYyByZWFkb25seSBzaG93U2Vjb25kYXJ5Q2FsZW5kYXIgPSBmYWxzZTtcclxuXHJcbiAgZm9ybWF0U2VsZWN0aW9uKHNlbGVjdGlvbj86IERhdGVJbnB1dC5TZWxlY3Rpb24gfCBudWxsKTogRGF0ZUlucHV0LlRleHRib3hHcm91cFsndmFsdWUnXSB7XHJcbiAgICBpZiAoIXNlbGVjdGlvbikge1xyXG4gICAgICByZXR1cm4geyB0ZXh0Ym94OiBudWxsLCB0ZXh0Ym94MjogbnVsbCB9O1xyXG4gICAgfVxyXG5cclxuICAgIC8vIFdlIG9ubHkgbmVlZCBvbmUgZGF0ZSBpbiB0aGUgcmFuZ2UgdG8gZm9ybWF0IHNpbmNlIGl0IG9ubHkgc3BhbnMgb25lIG1vbnRoXHJcbiAgICAvLyBBIHNpbmdsZSBkYXRlIHNlbGVjdGlvbiBzaG91bGRuJ3QgaGFwcGVuIGluIHRoaXMgbW9kZSBidXQgaXQncyBzaW1wbGUgZW5vdWdoIHRvIGhhbmRsZVxyXG4gICAgY29uc3QgZGF0ZSA9IERhdGVJbnB1dC5pc1NlbGVjdGlvblJhbmdlKHNlbGVjdGlvbikgPyBzZWxlY3Rpb24uc3RhcnQgOiBzZWxlY3Rpb247XHJcbiAgICByZXR1cm4ge1xyXG4gICAgICB0ZXh0Ym94OiBtb21lbnQoZGF0ZSkuZm9ybWF0KCdNTU0sIFlZWVknKSxcclxuICAgICAgdGV4dGJveDI6IG51bGxcclxuICAgIH07XHJcbiAgfVxyXG5cclxuICBwYXJzZVRleHRib3hWYWx1ZXModmFsdWU6IERhdGVJbnB1dC5UZXh0Ym94R3JvdXBbJ3ZhbHVlJ10sIHBhcnNlRm9ybWF0czogc3RyaW5nW10sIG9wdHM/OiBEYXRlSW5wdXQuUGFyc2luZ09wdGlvbnMpOiBEYXRlSW5wdXQuU2VsZWN0aW9uIHwgbnVsbCB7XHJcbiAgICAvLyBPbmx5IG9uZSB0ZXh0Ym94IGlzIHVzZWQgaW4gdGhpcyBtb2RlXHJcbiAgICBjb25zdCBkYXRlID0gdGhpcy5wYXJzZVN0cmluZyh2YWx1ZS50ZXh0Ym94LCBwYXJzZUZvcm1hdHMsIG9wdHMpO1xyXG5cclxuICAgIGlmICghZGF0ZSkge1xyXG4gICAgICByZXR1cm4gbnVsbDtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gdGhpcy5nZXRTZWxlY3Rpb25Gcm9tRGF0ZShkYXRlKTtcclxuICB9XHJcblxyXG4gIGdldFNlbGVjdGlvbkZyb21EYXRlKGRhdGU6IERhdGUpOiBEYXRlSW5wdXQuU2VsZWN0aW9uIHwgbnVsbCB7XHJcbiAgICByZXR1cm4ge1xyXG4gICAgICBzdGFydDogbW9tZW50KGRhdGUpLnN0YXJ0T2YoJ21vbnRoJykudG9EYXRlKCksXHJcbiAgICAgIGVuZDogbW9tZW50KGRhdGUpLmVuZE9mKCdtb250aCcpLnRvRGF0ZSgpXHJcbiAgICB9O1xyXG4gIH1cclxuXHJcbiAgZ2V0TmV3U2VsZWN0aW9uRnJvbUV4aXN0aW5nKHByZXZpb3VzU2VsZWN0aW9uPzogRGF0ZUlucHV0LlNlbGVjdGlvbik6IERhdGVJbnB1dC5TZWxlY3Rpb24gfCBudWxsIHtcclxuICAgIGlmIChEYXRlSW5wdXQuaXNTZWxlY3Rpb25SYW5nZShwcmV2aW91c1NlbGVjdGlvbikpIHtcclxuICAgICAgLy8gV2UnbGwgdXNlIHRoZSBleGlzdGluZyBzZWxlY3Rpb24ncyBlbmQgZGF0ZSBhbmQgZmFsbCBiYWNrIHRvIHRoZSBzdGFydCBkYXRlIGlmIGl0J3Mgbm90IGF2YWlsYWJsZVxyXG4gICAgICBjb25zdCBkYXRlID0gcHJldmlvdXNTZWxlY3Rpb24uZW5kIHx8IHByZXZpb3VzU2VsZWN0aW9uLnN0YXJ0O1xyXG4gICAgICBpZiAoZGF0ZSkge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmdldFNlbGVjdGlvbkZyb21EYXRlKGRhdGUpO1xyXG4gICAgICB9XHJcbiAgICB9IGVsc2UgaWYgKERhdGVJbnB1dC5pc1NlbGVjdGlvblNpbmdsZURhdGUocHJldmlvdXNTZWxlY3Rpb24pKSB7XHJcbiAgICAgIC8vIElmIHRoZSBwcmV2aW91cyBzZWxlY3Rpb24gd2FzIGEgc2luZ2xlIGRhdGUsIG1ha2UgdGhlIHJhbmdlIHRoYXQgbW9udGhcclxuICAgICAgcmV0dXJuIHRoaXMuZ2V0U2VsZWN0aW9uRnJvbURhdGUocHJldmlvdXNTZWxlY3Rpb24pO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBudWxsO1xyXG4gIH1cclxuXHJcbiAgZ2V0TmV4dFNlbGVjdGlvbihzZWxlY3Rpb246IERhdGVJbnB1dC5TZWxlY3Rpb24gfCBudWxsKTogRGF0ZUlucHV0LlNlbGVjdGlvbiB8IG51bGwge1xyXG4gICAgLy8gTW92ZSB0aGUgc2VsZWN0aW9uIHRvIHRoZSBuZXh0IG1vbnRoXHJcbiAgICBpZiAoRGF0ZUlucHV0LmlzU2VsZWN0aW9uUmFuZ2Uoc2VsZWN0aW9uKSAmJiBzZWxlY3Rpb24uc3RhcnQpIHsgXHJcbiAgICAgIGNvbnN0IGRhdGUgPSBtb21lbnQoc2VsZWN0aW9uLnN0YXJ0KS5hZGQoMSwgJ21vbnRoJyk7XHJcbiAgICAgIHJldHVybiB0aGlzLmdldFNlbGVjdGlvbkZyb21EYXRlKGRhdGUudG9EYXRlKCkpO1xyXG4gICAgfVxyXG5cclxuICAgIC8vIFRoaXMgc2hvdWxkbid0IGhhcHBlbiBzaW5jZSB0aGUgbmV4dCBzdGVwcGVyIGlzIGRpc2FibGVkIGlmIHRoZSBzZWxlY3Rpb24gb25seSBoYXMgb25lIGRhdGUuXHJcbiAgICAvLyBJZiBpdCBkb2VzLCBqdXN0IHJldHVybiB0aGUgc2VsZWN0aW9uIGFzLWlzLlxyXG4gICAgcmV0dXJuIHNlbGVjdGlvbjtcclxuICB9XHJcblxyXG4gIGdldFByZXZpb3VzU2VsZWN0aW9uKHNlbGVjdGlvbjogRGF0ZUlucHV0LlNlbGVjdGlvbiB8IG51bGwpOiBEYXRlSW5wdXQuU2VsZWN0aW9uIHwgbnVsbCB7XHJcbiAgICAvLyBNb3ZlIHRoZSBzZWxlY3Rpb24gdG8gdGhlIHByZXZpb3VzIG1vbnRoXHJcbiAgICBpZiAoRGF0ZUlucHV0LmlzU2VsZWN0aW9uUmFuZ2Uoc2VsZWN0aW9uKSAmJiBzZWxlY3Rpb24uc3RhcnQpIHtcclxuICAgICAgY29uc3QgZGF0ZSA9IG1vbWVudChzZWxlY3Rpb24uc3RhcnQpLnN1YnRyYWN0KDEsICdtb250aCcpO1xyXG4gICAgICByZXR1cm4gdGhpcy5nZXRTZWxlY3Rpb25Gcm9tRGF0ZShkYXRlLnRvRGF0ZSgpKTtcclxuICAgIH1cclxuXHJcbiAgICAvLyBUaGlzIHNob3VsZG4ndCBoYXBwZW4gc2luY2UgdGhlIHByZXZpb3VzIHN0ZXBwZXIgaXMgZGlzYWJsZWQgaWYgdGhlIHNlbGVjdGlvbiBvbmx5IGhhcyBvbmUgZGF0ZS5cclxuICAgIC8vIElmIGl0IGRvZXMsIGp1c3QgcmV0dXJuIHRoZSBzZWxlY3Rpb24gYXMtaXMuXHJcbiAgICByZXR1cm4gc2VsZWN0aW9uO1xyXG4gIH1cclxufVxyXG4iXX0=
|
@@ -1,79 +0,0 @@
|
|
1
|
-
import moment from "moment";
|
2
|
-
import { DateInput } from "../date-input.types";
|
3
|
-
import { DateInputSelectionStrategyBase } from "./date-input-selection-strategy-base";
|
4
|
-
/**
|
5
|
-
* Selection strategy for the 'month' selection mode.
|
6
|
-
*/
|
7
|
-
export class QuarterSelectionStrategy extends DateInputSelectionStrategyBase {
|
8
|
-
constructor() {
|
9
|
-
super(...arguments);
|
10
|
-
this.selectionViewMode = 'quarter';
|
11
|
-
this.validViewModes = ['quarter', 'year'];
|
12
|
-
this.showSecondaryTextbox = false;
|
13
|
-
this.showSecondaryCalendar = false;
|
14
|
-
}
|
15
|
-
formatSelection(selection) {
|
16
|
-
// Format the the quarter range as "MMM–MMM, YYYY"
|
17
|
-
// We only have one textbox in this mode
|
18
|
-
if (DateInput.isSelectionRange(selection)) {
|
19
|
-
const start = moment(selection.start).format('MMM');
|
20
|
-
const end = moment(selection.end).format('MMM');
|
21
|
-
const year = moment(selection.end).format('YYYY');
|
22
|
-
return {
|
23
|
-
textbox: `${start}–${end}, ${year}`,
|
24
|
-
textbox2: null
|
25
|
-
};
|
26
|
-
}
|
27
|
-
// This shouldn't happen since the selection should always be a range in quarter mode
|
28
|
-
return { textbox: null, textbox2: null };
|
29
|
-
}
|
30
|
-
parseTextboxValues(value, parseFormats, opts) {
|
31
|
-
// Only one textbox is used in this mode
|
32
|
-
const date = this.parseString(value.textbox, parseFormats, opts);
|
33
|
-
if (!date) {
|
34
|
-
return null;
|
35
|
-
}
|
36
|
-
return this.getSelectionFromDate(date);
|
37
|
-
}
|
38
|
-
getSelectionFromDate(date) {
|
39
|
-
return {
|
40
|
-
start: moment(date).startOf('quarter').toDate(),
|
41
|
-
end: moment(date).endOf('quarter').toDate()
|
42
|
-
};
|
43
|
-
}
|
44
|
-
getNewSelectionFromExisting(previousSelection) {
|
45
|
-
if (DateInput.isSelectionRange(previousSelection)) {
|
46
|
-
// Base the quarter range off of the existing selection's end date, falling back to the start date
|
47
|
-
const date = previousSelection.end || previousSelection.start;
|
48
|
-
if (date) {
|
49
|
-
return this.getSelectionFromDate(date);
|
50
|
-
}
|
51
|
-
}
|
52
|
-
else if (DateInput.isSelectionSingleDate(previousSelection)) {
|
53
|
-
// If the previous selection was a single date, make the range that quarter
|
54
|
-
return this.getSelectionFromDate(previousSelection);
|
55
|
-
}
|
56
|
-
return null;
|
57
|
-
}
|
58
|
-
getNextSelection(selection) {
|
59
|
-
// Move the selection to the next quarter
|
60
|
-
if (DateInput.isSelectionRange(selection) && selection.start) {
|
61
|
-
const date = moment(selection.start).add(1, 'quarter');
|
62
|
-
return this.getSelectionFromDate(date.toDate());
|
63
|
-
}
|
64
|
-
// This shouldn't happen since the next stepper is disabled if the selection only has one date.
|
65
|
-
// If it does, just return the selection as-is.
|
66
|
-
return selection;
|
67
|
-
}
|
68
|
-
getPreviousSelection(selection) {
|
69
|
-
// Move the selection to the previous quarter
|
70
|
-
if (DateInput.isSelectionRange(selection) && selection.start) {
|
71
|
-
const date = moment(selection.start).subtract(1, 'quarter');
|
72
|
-
return this.getSelectionFromDate(date.toDate());
|
73
|
-
}
|
74
|
-
// This shouldn't happen since the previous stepper is disabled if the selection only has one date.
|
75
|
-
// If it does, just return the selection as-is.
|
76
|
-
return selection;
|
77
|
-
}
|
78
|
-
}
|
79
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVhcnRlci1zZWxlY3Rpb24tc3RyYXRlZ3kuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb21wb25lbnRzL3NyYy9saWIvY29udHJvbHMvZGF0ZS1pbnB1dC9kYXRlLWlucHV0LXNlbGVjdGlvbi1zdHJhdGVnaWVzL3F1YXJ0ZXItc2VsZWN0aW9uLXN0cmF0ZWd5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sTUFBTSxNQUFNLFFBQVEsQ0FBQztBQUU1QixPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDaEQsT0FBTyxFQUFFLDhCQUE4QixFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFFdEY7O0dBRUc7QUFDSCxNQUFNLE9BQU8sd0JBQXlCLFNBQVEsOEJBQThCO0lBQTVFOztRQUNrQixzQkFBaUIsR0FBc0IsU0FBUyxDQUFDO1FBQ2pELG1CQUFjLEdBQXdCLENBQUMsU0FBUyxFQUFFLE1BQU0sQ0FBQyxDQUFDO1FBQzFELHlCQUFvQixHQUFHLEtBQUssQ0FBQztRQUM3QiwwQkFBcUIsR0FBRyxLQUFLLENBQUM7SUEyRWhELENBQUM7SUF6RUMsZUFBZSxDQUFDLFNBQXNDO1FBQ3BELGtEQUFrRDtRQUNsRCx3Q0FBd0M7UUFDeEMsSUFBSSxTQUFTLENBQUMsZ0JBQWdCLENBQUMsU0FBUyxDQUFDLEVBQUU7WUFDekMsTUFBTSxLQUFLLEdBQUcsTUFBTSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDcEQsTUFBTSxHQUFHLEdBQUcsTUFBTSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDaEQsTUFBTSxJQUFJLEdBQUcsTUFBTSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUM7WUFDbEQsT0FBTztnQkFDTCxPQUFPLEVBQUUsR0FBRyxLQUFLLElBQUksR0FBRyxLQUFLLElBQUksRUFBRTtnQkFDbkMsUUFBUSxFQUFFLElBQUk7YUFDZixDQUFDO1NBQ0g7UUFFRCxxRkFBcUY7UUFDckYsT0FBTyxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxDQUFDO0lBQzNDLENBQUM7SUFFRCxrQkFBa0IsQ0FBQyxLQUFzQyxFQUFFLFlBQXNCLEVBQUUsSUFBK0I7UUFDaEgsd0NBQXdDO1FBQ3hDLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLE9BQU8sRUFBRSxZQUFZLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFFakUsSUFBSSxDQUFDLElBQUksRUFBRTtZQUNULE9BQU8sSUFBSSxDQUFDO1NBQ2I7UUFFRCxPQUFPLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUN6QyxDQUFDO0lBRUQsb0JBQW9CLENBQUMsSUFBVTtRQUM3QixPQUFPO1lBQ0wsS0FBSyxFQUFFLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUMsTUFBTSxFQUFFO1lBQy9DLEdBQUcsRUFBRSxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxDQUFDLE1BQU0sRUFBRTtTQUM1QyxDQUFDO0lBQ0osQ0FBQztJQUVELDJCQUEyQixDQUFDLGlCQUF1QztRQUNqRSxJQUFJLFNBQVMsQ0FBQyxnQkFBZ0IsQ0FBQyxpQkFBaUIsQ0FBQyxFQUFFO1lBQ2pELGtHQUFrRztZQUNsRyxNQUFNLElBQUksR0FBRyxpQkFBaUIsQ0FBQyxHQUFHLElBQUksaUJBQWlCLENBQUMsS0FBSyxDQUFDO1lBQzlELElBQUksSUFBSSxFQUFFO2dCQUNSLE9BQU8sSUFBSSxDQUFDLG9CQUFvQixDQUFDLElBQUksQ0FBQyxDQUFDO2FBQ3hDO1NBQ0Y7YUFBTSxJQUFJLFNBQVMsQ0FBQyxxQkFBcUIsQ0FBQyxpQkFBaUIsQ0FBQyxFQUFFO1lBQzdELDJFQUEyRTtZQUMzRSxPQUFPLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO1NBQ3JEO1FBRUQsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRUQsZ0JBQWdCLENBQUMsU0FBcUM7UUFDcEQseUNBQXlDO1FBQ3pDLElBQUksU0FBUyxDQUFDLGdCQUFnQixDQUFDLFNBQVMsQ0FBQyxJQUFJLFNBQVMsQ0FBQyxLQUFLLEVBQUU7WUFDNUQsTUFBTSxJQUFJLEdBQUcsTUFBTSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLFNBQVMsQ0FBQyxDQUFDO1lBQ3ZELE9BQU8sSUFBSSxDQUFDLG9CQUFvQixDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDO1NBQ2pEO1FBRUQsK0ZBQStGO1FBQy9GLCtDQUErQztRQUMvQyxPQUFPLFNBQVMsQ0FBQztJQUNuQixDQUFDO0lBRUQsb0JBQW9CLENBQUMsU0FBcUM7UUFDeEQsNkNBQTZDO1FBQzdDLElBQUksU0FBUyxDQUFDLGdCQUFnQixDQUFDLFNBQVMsQ0FBQyxJQUFJLFNBQVMsQ0FBQyxLQUFLLEVBQUU7WUFDNUQsTUFBTSxJQUFJLEdBQUcsTUFBTSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxFQUFFLFNBQVMsQ0FBQyxDQUFDO1lBQzVELE9BQU8sSUFBSSxDQUFDLG9CQUFvQixDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDO1NBQ2pEO1FBRUQsbUdBQW1HO1FBQ25HLCtDQUErQztRQUMvQyxPQUFPLFNBQVMsQ0FBQztJQUNuQixDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgbW9tZW50IGZyb20gXCJtb21lbnRcIjtcclxuaW1wb3J0IHsgQ2FsZW5kYXIgfSBmcm9tIFwiLi4vLi4vY2FsZW5kYXIvY2FsZW5kYXIudHlwZXNcIjtcclxuaW1wb3J0IHsgRGF0ZUlucHV0IH0gZnJvbSBcIi4uL2RhdGUtaW5wdXQudHlwZXNcIjtcclxuaW1wb3J0IHsgRGF0ZUlucHV0U2VsZWN0aW9uU3RyYXRlZ3lCYXNlIH0gZnJvbSBcIi4vZGF0ZS1pbnB1dC1zZWxlY3Rpb24tc3RyYXRlZ3ktYmFzZVwiO1xyXG5cclxuLyoqXHJcbiAqIFNlbGVjdGlvbiBzdHJhdGVneSBmb3IgdGhlICdtb250aCcgc2VsZWN0aW9uIG1vZGUuXHJcbiAqL1xyXG5leHBvcnQgY2xhc3MgUXVhcnRlclNlbGVjdGlvblN0cmF0ZWd5IGV4dGVuZHMgRGF0ZUlucHV0U2VsZWN0aW9uU3RyYXRlZ3lCYXNlIHtcclxuICBwdWJsaWMgcmVhZG9ubHkgc2VsZWN0aW9uVmlld01vZGU6IENhbGVuZGFyLlZpZXdNb2RlID0gJ3F1YXJ0ZXInO1xyXG4gIHB1YmxpYyByZWFkb25seSB2YWxpZFZpZXdNb2RlczogQ2FsZW5kYXIuVmlld01vZGVbXSA9IFsncXVhcnRlcicsICd5ZWFyJ107XHJcbiAgcHVibGljIHJlYWRvbmx5IHNob3dTZWNvbmRhcnlUZXh0Ym94ID0gZmFsc2U7XHJcbiAgcHVibGljIHJlYWRvbmx5IHNob3dTZWNvbmRhcnlDYWxlbmRhciA9IGZhbHNlO1xyXG5cclxuICBmb3JtYXRTZWxlY3Rpb24oc2VsZWN0aW9uPzogRGF0ZUlucHV0LlNlbGVjdGlvbiB8IG51bGwpOiBEYXRlSW5wdXQuVGV4dGJveEdyb3VwWyd2YWx1ZSddIHtcclxuICAgIC8vIEZvcm1hdCB0aGUgdGhlIHF1YXJ0ZXIgcmFuZ2UgYXMgXCJNTU3igJNNTU0sIFlZWVlcIlxyXG4gICAgLy8gV2Ugb25seSBoYXZlIG9uZSB0ZXh0Ym94IGluIHRoaXMgbW9kZVxyXG4gICAgaWYgKERhdGVJbnB1dC5pc1NlbGVjdGlvblJhbmdlKHNlbGVjdGlvbikpIHtcclxuICAgICAgY29uc3Qgc3RhcnQgPSBtb21lbnQoc2VsZWN0aW9uLnN0YXJ0KS5mb3JtYXQoJ01NTScpO1xyXG4gICAgICBjb25zdCBlbmQgPSBtb21lbnQoc2VsZWN0aW9uLmVuZCkuZm9ybWF0KCdNTU0nKTtcclxuICAgICAgY29uc3QgeWVhciA9IG1vbWVudChzZWxlY3Rpb24uZW5kKS5mb3JtYXQoJ1lZWVknKTtcclxuICAgICAgcmV0dXJuIHtcclxuICAgICAgICB0ZXh0Ym94OiBgJHtzdGFydH3igJMke2VuZH0sICR7eWVhcn1gLFxyXG4gICAgICAgIHRleHRib3gyOiBudWxsXHJcbiAgICAgIH07XHJcbiAgICB9XHJcbiAgICBcclxuICAgIC8vIFRoaXMgc2hvdWxkbid0IGhhcHBlbiBzaW5jZSB0aGUgc2VsZWN0aW9uIHNob3VsZCBhbHdheXMgYmUgYSByYW5nZSBpbiBxdWFydGVyIG1vZGVcclxuICAgIHJldHVybiB7IHRleHRib3g6IG51bGwsIHRleHRib3gyOiBudWxsIH07XHJcbiAgfVxyXG5cclxuICBwYXJzZVRleHRib3hWYWx1ZXModmFsdWU6IERhdGVJbnB1dC5UZXh0Ym94R3JvdXBbJ3ZhbHVlJ10sIHBhcnNlRm9ybWF0czogc3RyaW5nW10sIG9wdHM/OiBEYXRlSW5wdXQuUGFyc2luZ09wdGlvbnMpOiBEYXRlSW5wdXQuU2VsZWN0aW9uIHwgbnVsbCB7XHJcbiAgICAvLyBPbmx5IG9uZSB0ZXh0Ym94IGlzIHVzZWQgaW4gdGhpcyBtb2RlXHJcbiAgICBjb25zdCBkYXRlID0gdGhpcy5wYXJzZVN0cmluZyh2YWx1ZS50ZXh0Ym94LCBwYXJzZUZvcm1hdHMsIG9wdHMpO1xyXG4gICAgXHJcbiAgICBpZiAoIWRhdGUpIHtcclxuICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIHRoaXMuZ2V0U2VsZWN0aW9uRnJvbURhdGUoZGF0ZSk7XHJcbiAgfVxyXG5cclxuICBnZXRTZWxlY3Rpb25Gcm9tRGF0ZShkYXRlOiBEYXRlKTogRGF0ZUlucHV0LlNlbGVjdGlvbiB8IG51bGwge1xyXG4gICAgcmV0dXJuIHtcclxuICAgICAgc3RhcnQ6IG1vbWVudChkYXRlKS5zdGFydE9mKCdxdWFydGVyJykudG9EYXRlKCksXHJcbiAgICAgIGVuZDogbW9tZW50KGRhdGUpLmVuZE9mKCdxdWFydGVyJykudG9EYXRlKClcclxuICAgIH07XHJcbiAgfVxyXG5cclxuICBnZXROZXdTZWxlY3Rpb25Gcm9tRXhpc3RpbmcocHJldmlvdXNTZWxlY3Rpb24/OiBEYXRlSW5wdXQuU2VsZWN0aW9uKTogRGF0ZUlucHV0LlNlbGVjdGlvbiB8IG51bGwge1xyXG4gICAgaWYgKERhdGVJbnB1dC5pc1NlbGVjdGlvblJhbmdlKHByZXZpb3VzU2VsZWN0aW9uKSkge1xyXG4gICAgICAvLyBCYXNlIHRoZSBxdWFydGVyIHJhbmdlIG9mZiBvZiB0aGUgZXhpc3Rpbmcgc2VsZWN0aW9uJ3MgZW5kIGRhdGUsIGZhbGxpbmcgYmFjayB0byB0aGUgc3RhcnQgZGF0ZVxyXG4gICAgICBjb25zdCBkYXRlID0gcHJldmlvdXNTZWxlY3Rpb24uZW5kIHx8IHByZXZpb3VzU2VsZWN0aW9uLnN0YXJ0O1xyXG4gICAgICBpZiAoZGF0ZSkge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmdldFNlbGVjdGlvbkZyb21EYXRlKGRhdGUpO1xyXG4gICAgICB9XHJcbiAgICB9IGVsc2UgaWYgKERhdGVJbnB1dC5pc1NlbGVjdGlvblNpbmdsZURhdGUocHJldmlvdXNTZWxlY3Rpb24pKSB7XHJcbiAgICAgIC8vIElmIHRoZSBwcmV2aW91cyBzZWxlY3Rpb24gd2FzIGEgc2luZ2xlIGRhdGUsIG1ha2UgdGhlIHJhbmdlIHRoYXQgcXVhcnRlclxyXG4gICAgICByZXR1cm4gdGhpcy5nZXRTZWxlY3Rpb25Gcm9tRGF0ZShwcmV2aW91c1NlbGVjdGlvbik7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIG51bGw7XHJcbiAgfVxyXG5cclxuICBnZXROZXh0U2VsZWN0aW9uKHNlbGVjdGlvbjogRGF0ZUlucHV0LlNlbGVjdGlvbiB8IG51bGwpOiBEYXRlSW5wdXQuU2VsZWN0aW9uIHwgbnVsbCB7XHJcbiAgICAvLyBNb3ZlIHRoZSBzZWxlY3Rpb24gdG8gdGhlIG5leHQgcXVhcnRlclxyXG4gICAgaWYgKERhdGVJbnB1dC5pc1NlbGVjdGlvblJhbmdlKHNlbGVjdGlvbikgJiYgc2VsZWN0aW9uLnN0YXJ0KSB7XHJcbiAgICAgIGNvbnN0IGRhdGUgPSBtb21lbnQoc2VsZWN0aW9uLnN0YXJ0KS5hZGQoMSwgJ3F1YXJ0ZXInKTtcclxuICAgICAgcmV0dXJuIHRoaXMuZ2V0U2VsZWN0aW9uRnJvbURhdGUoZGF0ZS50b0RhdGUoKSk7XHJcbiAgICB9XHJcblxyXG4gICAgLy8gVGhpcyBzaG91bGRuJ3QgaGFwcGVuIHNpbmNlIHRoZSBuZXh0IHN0ZXBwZXIgaXMgZGlzYWJsZWQgaWYgdGhlIHNlbGVjdGlvbiBvbmx5IGhhcyBvbmUgZGF0ZS5cclxuICAgIC8vIElmIGl0IGRvZXMsIGp1c3QgcmV0dXJuIHRoZSBzZWxlY3Rpb24gYXMtaXMuXHJcbiAgICByZXR1cm4gc2VsZWN0aW9uO1xyXG4gIH1cclxuXHJcbiAgZ2V0UHJldmlvdXNTZWxlY3Rpb24oc2VsZWN0aW9uOiBEYXRlSW5wdXQuU2VsZWN0aW9uIHwgbnVsbCk6IERhdGVJbnB1dC5TZWxlY3Rpb24gfCBudWxsIHtcclxuICAgIC8vIE1vdmUgdGhlIHNlbGVjdGlvbiB0byB0aGUgcHJldmlvdXMgcXVhcnRlclxyXG4gICAgaWYgKERhdGVJbnB1dC5pc1NlbGVjdGlvblJhbmdlKHNlbGVjdGlvbikgJiYgc2VsZWN0aW9uLnN0YXJ0KSB7XHJcbiAgICAgIGNvbnN0IGRhdGUgPSBtb21lbnQoc2VsZWN0aW9uLnN0YXJ0KS5zdWJ0cmFjdCgxLCAncXVhcnRlcicpO1xyXG4gICAgICByZXR1cm4gdGhpcy5nZXRTZWxlY3Rpb25Gcm9tRGF0ZShkYXRlLnRvRGF0ZSgpKTtcclxuICAgIH1cclxuXHJcbiAgICAvLyBUaGlzIHNob3VsZG4ndCBoYXBwZW4gc2luY2UgdGhlIHByZXZpb3VzIHN0ZXBwZXIgaXMgZGlzYWJsZWQgaWYgdGhlIHNlbGVjdGlvbiBvbmx5IGhhcyBvbmUgZGF0ZS5cclxuICAgIC8vIElmIGl0IGRvZXMsIGp1c3QgcmV0dXJuIHRoZSBzZWxlY3Rpb24gYXMtaXMuXHJcbiAgICByZXR1cm4gc2VsZWN0aW9uO1xyXG4gIH1cclxufVxyXG4iXX0=
|