@energycap/components 0.44.8 → 0.44.9-Angular19Upgrade.20260217-1620
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/fesm2022/energycap-components.mjs +379 -354
- package/fesm2022/energycap-components.mjs.map +1 -1
- package/lib/controls/button/copy-button-base.directive.d.ts +1 -1
- package/lib/controls/date-input/date-input.component.d.ts +1 -1
- package/lib/controls/form-control-base.d.ts +1 -1
- package/lib/core/date-time-helper.d.ts +2 -2
- package/lib/display/hierarchy/hierarchy-base.d.ts +1 -1
- package/lib/display/hierarchy/hierarchy-mocks.spec.d.ts +1 -1
- package/lib/display/resizable/resizable-base.d.ts +1 -1
- package/lib/shared/display/pipes/date-display.pipe.d.ts +1 -1
- package/lib/shared/page/page-base/page-base.component.d.ts +1 -1
- package/lib/shared/testing/public-mocks.spec.d.ts +1 -1
- package/lib/shared/wizard/wizard-base/wizard-base.component.d.ts +1 -1
- package/package.json +1 -3
- package/schematics/utilities/typescript.js +3 -4
- package/schematics/utilities/typescript.js.map +1 -1
- package/schematics/utilities/workspace.d.ts +0 -8
- package/schematics/utilities/workspace.js +48 -71
- package/schematics/utilities/workspace.js.map +1 -1
- package/esm2022/energycap-components.mjs +0 -5
- package/esm2022/lib/components.module.mjs +0 -425
- package/esm2022/lib/controls/banner/banner.component.mjs +0 -112
- package/esm2022/lib/controls/button/button.component.mjs +0 -114
- package/esm2022/lib/controls/button/copy-button-base.directive.mjs +0 -67
- package/esm2022/lib/controls/button/copy-button.directive.mjs +0 -28
- package/esm2022/lib/controls/button/copy-table-button.directive.mjs +0 -43
- package/esm2022/lib/controls/calendar/calendar-item.component.mjs +0 -91
- package/esm2022/lib/controls/calendar/calendar.component.mjs +0 -251
- package/esm2022/lib/controls/calendar/calendar.types.mjs +0 -2
- package/esm2022/lib/controls/checkbox/checkbox.component.mjs +0 -140
- package/esm2022/lib/controls/collapsible-toggle/collapsible-toggle.component.mjs +0 -38
- package/esm2022/lib/controls/combobox/combobox.component.mjs +0 -879
- package/esm2022/lib/controls/date-input/date-input-selection-strategies/date-input-selection-strategy-base.mjs +0 -57
- package/esm2022/lib/controls/date-input/date-input-selection-strategies/day-selection-strategy.mjs +0 -62
- package/esm2022/lib/controls/date-input/date-input-selection-strategies/last-28-days-selection-strategy.mjs +0 -100
- package/esm2022/lib/controls/date-input/date-input-selection-strategies/last-7-days-selection-strategy.mjs +0 -101
- package/esm2022/lib/controls/date-input/date-input-selection-strategies/month-selection-strategy.mjs +0 -76
- package/esm2022/lib/controls/date-input/date-input-selection-strategies/quarter-selection-strategy.mjs +0 -79
- package/esm2022/lib/controls/date-input/date-input-selection-strategies/range-selection-strategy.mjs +0 -210
- package/esm2022/lib/controls/date-input/date-input-selection-strategies/year-selection-strategy.mjs +0 -81
- package/esm2022/lib/controls/date-input/date-input.component.mjs +0 -466
- package/esm2022/lib/controls/date-input/date-input.types.mjs +0 -44
- package/esm2022/lib/controls/dropdown/dropdown.component.mjs +0 -243
- package/esm2022/lib/controls/file-upload/file-upload.component.mjs +0 -261
- package/esm2022/lib/controls/form-control/form-control.component.mjs +0 -110
- package/esm2022/lib/controls/form-control-base.mjs +0 -151
- package/esm2022/lib/controls/form-control-label/form-control-label.component.mjs +0 -136
- package/esm2022/lib/controls/form-group/form-group.component.mjs +0 -261
- package/esm2022/lib/controls/help-popover/help-popover.component.mjs +0 -31
- package/esm2022/lib/controls/item-picker/item-picker.component.mjs +0 -329
- package/esm2022/lib/controls/link-button/link-button.component.mjs +0 -11
- package/esm2022/lib/controls/menu/menu.component.mjs +0 -485
- package/esm2022/lib/controls/navigation/link-item.mjs +0 -2
- package/esm2022/lib/controls/navigation/nav-group.mjs +0 -39
- package/esm2022/lib/controls/navigation/nav-item-active.directive.mjs +0 -92
- package/esm2022/lib/controls/navigation/nav-item.mjs +0 -2
- package/esm2022/lib/controls/numericbox/numericbox.component.mjs +0 -372
- package/esm2022/lib/controls/popover/popover.component.mjs +0 -117
- package/esm2022/lib/controls/radio-button/radio-button-option.mjs +0 -3
- package/esm2022/lib/controls/radio-button/radio-button.component.mjs +0 -82
- package/esm2022/lib/controls/select/select.component.mjs +0 -88
- package/esm2022/lib/controls/tabs/tabs.component.mjs +0 -47
- package/esm2022/lib/controls/textbox/textbox.component.mjs +0 -155
- package/esm2022/lib/core/cache.service.mjs +0 -105
- package/esm2022/lib/core/custom-validators.mjs +0 -29
- package/esm2022/lib/core/date-time-helper.mjs +0 -228
- package/esm2022/lib/core/error.service.mjs +0 -61
- package/esm2022/lib/core/router-helper.service.mjs +0 -111
- package/esm2022/lib/core/scroll.service.mjs +0 -89
- package/esm2022/lib/core/telemetry-tracker.service.mjs +0 -16
- package/esm2022/lib/core/telemetry.service.mjs +0 -38
- package/esm2022/lib/core/validation-message.service.mjs +0 -185
- package/esm2022/lib/core/validation-patterns.mjs +0 -31
- package/esm2022/lib/core/window.service.mjs +0 -186
- package/esm2022/lib/display/app-bar/app-bar.component.mjs +0 -49
- package/esm2022/lib/display/avatar/avatar.component.mjs +0 -67
- package/esm2022/lib/display/avatar/avatar.service.mjs +0 -64
- package/esm2022/lib/display/confirm/confirm.component.mjs +0 -168
- package/esm2022/lib/display/dialog/dialog-content.mjs +0 -2
- package/esm2022/lib/display/dialog/dialog-group/dialog-group.component.mjs +0 -63
- package/esm2022/lib/display/dialog/dialog-types.mjs +0 -77
- package/esm2022/lib/display/dialog/dialog.component.mjs +0 -287
- package/esm2022/lib/display/dialog/dialog.service.mjs +0 -71
- package/esm2022/lib/display/help/help-types.mjs +0 -2
- package/esm2022/lib/display/hierarchy/hierarchy-base.mjs +0 -111
- package/esm2022/lib/display/hierarchy/hierarchy-mocks.spec.mjs +0 -54
- package/esm2022/lib/display/hierarchy/hierarchy-tree/hierarchy-tree.component.mjs +0 -65
- package/esm2022/lib/display/item-display/item-display.component.mjs +0 -83
- package/esm2022/lib/display/json-display/json-display.component.mjs +0 -47
- package/esm2022/lib/display/resizable/resizable-base.mjs +0 -120
- package/esm2022/lib/display/resizable/resizable.component.mjs +0 -57
- package/esm2022/lib/display/spinner/spinner.component.mjs +0 -12
- package/esm2022/lib/display/splash/splash.component.mjs +0 -61
- package/esm2022/lib/display/splash/splash.service.mjs +0 -35
- package/esm2022/lib/display/table/resizable-column.component.mjs +0 -20
- package/esm2022/lib/display/table/resizable-table.directive.mjs +0 -227
- package/esm2022/lib/display/table/searchable-table.component.mjs +0 -344
- package/esm2022/lib/display/table/table-detail-row.component.mjs +0 -28
- package/esm2022/lib/display/table/table-locked-column.component.mjs +0 -58
- package/esm2022/lib/display/table/table-master-header-row.component.mjs +0 -14
- package/esm2022/lib/display/table/table-master-row.component.mjs +0 -163
- package/esm2022/lib/display/table/table-pagination.component.mjs +0 -155
- package/esm2022/lib/display/table/table-selectable-row.component.mjs +0 -235
- package/esm2022/lib/display/table/table.component.mjs +0 -257
- package/esm2022/lib/display/tags/tag.mjs +0 -18
- package/esm2022/lib/display/tags/tags.component.mjs +0 -82
- package/esm2022/lib/display/toast/toast/toast.component.mjs +0 -77
- package/esm2022/lib/display/toast/toast-types.mjs +0 -8
- package/esm2022/lib/display/toast/toast.service.mjs +0 -35
- package/esm2022/lib/display/toast/toaster/toaster.component.mjs +0 -114
- package/esm2022/lib/display/tooltip/tooltip.component.mjs +0 -28
- package/esm2022/lib/display/tooltip/tooltip.service.mjs +0 -78
- package/esm2022/lib/display/tooltip-directive/tooltip.directive.mjs +0 -173
- package/esm2022/lib/display/tree/tree.component.mjs +0 -139
- package/esm2022/lib/display/view-overlay/view-overlay.component.mjs +0 -58
- package/esm2022/lib/shared/directives/click-area-for/click-area-for.directive.mjs +0 -32
- package/esm2022/lib/shared/directives/if-viewport-width/if-viewport-width.directive.mjs +0 -111
- package/esm2022/lib/shared/directives/keyboard-nav-container/keyboard-nav-container.directive.mjs +0 -103
- package/esm2022/lib/shared/directives/popup/popup-container.directive.mjs +0 -166
- package/esm2022/lib/shared/display/pipes/date-display-2.pipe.mjs +0 -39
- package/esm2022/lib/shared/display/pipes/date-display.pipe.mjs +0 -51
- package/esm2022/lib/shared/display/pipes/highlight-text.pipe.mjs +0 -30
- package/esm2022/lib/shared/display/pipes/relative-date.pipe.mjs +0 -62
- package/esm2022/lib/shared/display/pipes/row-count.pipe.mjs +0 -48
- package/esm2022/lib/shared/display/pipes/time-display.pipe.mjs +0 -41
- package/esm2022/lib/shared/display.mjs +0 -6
- package/esm2022/lib/shared/form-group.helper.mjs +0 -67
- package/esm2022/lib/shared/json-helper.mjs +0 -19
- package/esm2022/lib/shared/lodash-helper.mjs +0 -52
- package/esm2022/lib/shared/page/page-base/page-base.component.mjs +0 -387
- package/esm2022/lib/shared/page/page-statuses.mjs +0 -23
- package/esm2022/lib/shared/page/page-title/page-title.component.mjs +0 -23
- package/esm2022/lib/shared/page/page-view/page-view.component.mjs +0 -147
- package/esm2022/lib/shared/testing/copy-button-base-test-injector-factory.spec.mjs +0 -17
- package/esm2022/lib/shared/testing/hierarchy-base-test-injector-factory.spec.mjs +0 -17
- package/esm2022/lib/shared/testing/page-base-component-test-helper.spec.mjs +0 -38
- package/esm2022/lib/shared/testing/page-base-component-test-injector-factory.spec.mjs +0 -98
- package/esm2022/lib/shared/testing/public-mocks.spec.mjs +0 -148
- package/esm2022/lib/shared/testing/spy-factory.spec.mjs +0 -40
- package/esm2022/lib/shared/testing/translation-mocks.spec.mjs +0 -57
- package/esm2022/lib/shared/user-preference.service.mjs +0 -17
- package/esm2022/lib/shared/wizard/wizard-base/wizard-base.component.mjs +0 -246
- package/esm2022/lib/shared/wizard/wizard-buttons/wizard-buttons.component.mjs +0 -68
- package/esm2022/lib/shared/wizard/wizard-progress/wizard-progress.component.mjs +0 -18
- package/esm2022/public-api.mjs +0 -115
|
@@ -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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS1pbnB1dC1zZWxlY3Rpb24tc3RyYXRlZ3ktYmFzZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvbXBvbmVudHMvc3JjL2xpYi9jb250cm9scy9kYXRlLWlucHV0L2RhdGUtaW5wdXQtc2VsZWN0aW9uLXN0cmF0ZWdpZXMvZGF0ZS1pbnB1dC1zZWxlY3Rpb24tc3RyYXRlZ3ktYmFzZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLE1BQU0sTUFBTSxRQUFRLENBQUM7QUFFNUIsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBRWhEOztHQUVHO0FBQ0gsTUFBTSxPQUFnQiw4QkFBOEI7SUFTbEQsc0VBQXNFO0lBQ3RFLFdBQVcsQ0FBQyxLQUFnQyxFQUFFLFlBQXNCLEVBQUUsSUFBK0I7UUFDbkcsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO1lBQ1gsT0FBTyxJQUFJLENBQUM7UUFDZCxDQUFDO1FBQ0QsTUFBTSxJQUFJLEdBQUcsTUFBTSxDQUFDLEtBQUssRUFBRSxZQUFZLENBQUMsQ0FBQztRQUV6QyxJQUFJLElBQUksQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUFDO1lBQ25CLGdKQUFnSjtZQUNoSixxSUFBcUk7WUFDckksaUZBQWlGO1lBQ2pGLElBQUksSUFBSSxFQUFFLHlCQUF5QixJQUFJLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLHlCQUF5QixDQUFDLEVBQUUsQ0FBQztnQkFDckYsSUFBSSxDQUFDLEdBQUcsQ0FBQyxNQUFNLEVBQUUsTUFBTSxFQUFFLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQztZQUNwQyxDQUFDO1lBRUQsT0FBTyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDdkIsQ0FBQztRQUVELE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQWFELHFEQUFxRDtJQUNyRCw4QkFBOEIsQ0FBQyxJQUFVLEVBQUUsaUJBQThDO1FBQ3ZGLE9BQU8sSUFBSSxDQUFDLG9CQUFvQixDQUFDLElBQUksRUFBRSxpQkFBaUIsQ0FBQyxDQUFDO0lBQzVELENBQUM7SUFNRCxxRkFBcUY7SUFDckYsc0JBQXNCLENBQUMsU0FBcUMsRUFBRSxPQUFhLEVBQUUsT0FBYSxFQUFFLFdBQTBCO1FBQ3BILElBQUksSUFBVSxDQUFDO1FBRWYsOEVBQThFO1FBQzlFLElBQUksU0FBUyxDQUFDLGdCQUFnQixDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUM7WUFDMUMsSUFBSSxHQUFHLFNBQVMsQ0FBQyxHQUFHLElBQUksU0FBUyxDQUFDLEtBQUssSUFBSSxJQUFJLElBQUksRUFBRSxDQUFDO1lBQ3hELHdEQUF3RDtRQUN4RCxDQUFDO2FBQU0sQ0FBQztZQUNOLElBQUksR0FBRyxTQUFTLElBQUksSUFBSSxJQUFJLEVBQUUsQ0FBQztRQUNqQyxDQUFDO1FBRUQsa0RBQWtEO1FBQ2xELElBQUksR0FBRyxJQUFJLEdBQUcsT0FBTyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztRQUN2QyxJQUFJLEdBQUcsSUFBSSxHQUFHLE9BQU8sQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7UUFFdkMsbUhBQW1IO1FBQ25ILDhIQUE4SDtRQUM5SCxNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQztRQUU1RyxPQUFPLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsQ0FBQztJQUNsQyxDQUFDO0lBQUEsQ0FBQztJQUVGOzs7T0FHRztJQUNILHdCQUF3QixDQUFDLFNBQXFDLEVBQUUsT0FBYSxFQUFFLE9BQWEsRUFBRSxXQUEwQjtRQUN0SCxPQUFPLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxJQUFJLEVBQUUsSUFBSSxJQUFJLEVBQUUsRUFBRSxDQUFBO0lBQzNELENBQUM7SUFBQSxDQUFDO0NBQ0giLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgbW9tZW50IGZyb20gXCJtb21lbnRcIjtcbmltcG9ydCB7IENhbGVuZGFyIH0gZnJvbSBcIi4uLy4uL2NhbGVuZGFyL2NhbGVuZGFyLnR5cGVzXCI7XG5pbXBvcnQgeyBEYXRlSW5wdXQgfSBmcm9tIFwiLi4vZGF0ZS1pbnB1dC50eXBlc1wiO1xuXG4vKipcbiAqIENvbnRhaW5zIHRoZSBsb2dpYyBmb3Igc2VsZWN0aW5nLCBmb3JtYXR0aW5nLCBhbmQgcGFyc2luZyBkYXRlIGRhdGVzIGZvciBhIHNwZWNpZmljIHNlbGVjdGlvbiBtb2RlLlxuICovXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgRGF0ZUlucHV0U2VsZWN0aW9uU3RyYXRlZ3lCYXNlIHtcbiAgLyoqIFRoZSBjYWxlbmRhciB2aWV3IG1vZGUgd2hlcmUgc2VsZWN0aW9ucyBvY2N1ciBmb3IgdGhpcyBtb2RlLiBUaGlzIGlzIHVzZWQgdG8gem9vbSB0aGUgY2FsZW5kYXIgaW50byB0aGUgc2VsZWN0aW9uICovXG4gIGFic3RyYWN0IHJlYWRvbmx5IHNlbGVjdGlvblZpZXdNb2RlOiBDYWxlbmRhci5WaWV3TW9kZTtcbiAgLyoqIFRoZSBsaXN0IG9mIHZpZXcgbW9kZXMgdGhhdCBhcmUgYWNjZXNzaWJsZSBieSB0aGlzIHNlbGVjdGlvbiBtb2RlLiBVc2VkIHRvIGRldGVybWluZSB3aGV0aGVyIHRoZSBjYWxlbmRhciB2aWV3IG5lZWRzIHRvIGJlIGNoYW5nZWQgb3Igbm90IG9uIHNlbGVjdGlvbiBjaGFuZ2UuICovXG4gIGFic3RyYWN0IHJlYWRvbmx5IHZhbGlkVmlld01vZGVzOiBDYWxlbmRhci5WaWV3TW9kZVtdO1xuICAvKiogV2hldGhlciB0aGUgc2Vjb25kYXJ5IHRleHRib3ggc2hvdWxkIGJlIHNob3duIGZvciB0aGlzIHNlbGVjdGlvbiBtb2RlICovXG4gIGFic3RyYWN0IHJlYWRvbmx5IHNob3dTZWNvbmRhcnlUZXh0Ym94OiBib29sZWFuO1xuICAvKiogV2hldGhlciB0aGUgc2Vjb25kYXJ5IGNhbGVuZGFyIHNob3VsZCBiZSBzaG93biBmb3IgdGhpcyBzZWxlY3Rpb24gbW9kZSAqL1xuICBhYnN0cmFjdCByZWFkb25seSBzaG93U2Vjb25kYXJ5Q2FsZW5kYXI6IGJvb2xlYW47XG4gIC8qKiBQYXJzZXMgdGhlIHN0cmluZyBpbnRvIGEgZGF0ZSB1c2luZyB0aGUgcHJvdmlkZWQgcGFyc2UgZm9ybWF0cy4gKi9cbiAgcGFyc2VTdHJpbmcodmFsdWU6IHN0cmluZyB8IG51bGwgfCB1bmRlZmluZWQsIHBhcnNlRm9ybWF0czogc3RyaW5nW10sIG9wdHM/OiBEYXRlSW5wdXQuUGFyc2luZ09wdGlvbnMpOiBEYXRlIHwgbnVsbCB7XG4gICAgaWYgKCF2YWx1ZSkge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuICAgIGNvbnN0IGRhdGUgPSBtb21lbnQodmFsdWUsIHBhcnNlRm9ybWF0cyk7XG5cbiAgICBpZiAoZGF0ZS5pc1ZhbGlkKCkpIHtcbiAgICAgIC8vIElmIHdlJ3JlIGluIGEgdGVtcG9yYXJ5IHN0YXRlICh3aGVuIHRoZSB1c2VyIGlzIHR5cGluZyBpbiBhIHRleHRib3gpLCB3ZSBuZWVkIHRvIHNldCB0aGUgeWVhciB0byB0aGUgY3VycmVudCB5ZWFyIGlmIGl0J3MgYmVmb3JlIHRoZSBtaW4geWVhclxuICAgICAgLy8gVGhpcyBwcmV2ZW50cyB0aGUgY2FsZW5kYXJzIGZyb20gc2hvd2luZyB1bmhlbHBmdWwgZGF0ZXMgdGhhdCBhcmUgaW4gdGhlIGRpc3RhbnQgcGFzdCBiZWZvcmUgdGhlIHVzZXIgZmluaXNoZXMgdHlwaW5nIGluIHRoZSBkYXRlLlxuICAgICAgLy8gV2UgZG9uJ3QgZG8gdGhpcyBtb2RpZmljYXRpb24gd2hlbiB0aGUgcmVhbCBzZWxlY3Rpb24gaGFwcGVucyBvbiB0ZXh0Ym94IGJsdXIuXG4gICAgICBpZiAob3B0cz8uc2hpZnRUb0N1cnJlbnRZZWFySWZCZWxvdyAmJiBkYXRlLmlzQmVmb3JlKG9wdHMuc2hpZnRUb0N1cnJlbnRZZWFySWZCZWxvdykpIHtcbiAgICAgICAgZGF0ZS5zZXQoJ3llYXInLCBtb21lbnQoKS55ZWFyKCkpO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gZGF0ZS50b0RhdGUoKTtcbiAgICB9XG5cbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuICAvKiogRm9ybWF0cyBhIGRhdGUgaW5wdXQgc2VsZWN0aW9uIGludG8gdmFsdWVzIHRvIGJlIGRpc3BsYXllZCBpbiB0aGUgZGF0ZSBpbnB1dCdzIHRleHRib3hlcy4gKi9cbiAgYWJzdHJhY3QgZm9ybWF0U2VsZWN0aW9uKHNlbGVjdGlvbj86IERhdGVJbnB1dC5TZWxlY3Rpb24gfCBudWxsKTogRGF0ZUlucHV0LlRleHRib3hHcm91cFsndmFsdWUnXTtcbiAgLyoqIFxuICAgKiBQYXJzZXMgdGhlIGRhdGUgaW5wdXQncyB2YWx1ZXMgaW50byBhIGRhdGUgc2VsZWN0aW9uIHRvIGRpc3BsYXkgaW4gdGhlIGNhbGVuZGFycy5cbiAgICogYHBhcnNlRnJvbUVuZGAgY29udHJvbHMgd2hldGhlciB0aGUgZml4ZWQgcmFuZ2UgbW9kZXMgKGxhc3Q3ZGF5cywgbGFzdDI4ZGF5cykgd2lsbCBrZXkgb2ZmIHRoZSBlbmQgZGF0ZSBpbnN0ZWFkIG9mIHRoZSBzdGFydCBkYXRlLlxuICAgKiBUaGlzIGlzIHVzZWQgd2hlbiB0aGUgdXNlciBpcyB0eXBpbmcgaW4gdGhlIGVuZCBkYXRlIHRleHRib3guXG4gICAqL1xuICBhYnN0cmFjdCBwYXJzZVRleHRib3hWYWx1ZXModmFsdWU6IERhdGVJbnB1dC5UZXh0Ym94R3JvdXBbJ3ZhbHVlJ10sIHBhcnNlRm9ybWF0czogc3RyaW5nW10sIG9wdHM/OiBEYXRlSW5wdXQuUGFyc2luZ09wdGlvbnMpOiBEYXRlSW5wdXQuU2VsZWN0aW9uIHwgbnVsbDtcbiAgLyoqIFJldHVybnMgYSBzZWxlY3Rpb24gZ2l2ZW4gYSBkYXRlIGFuZCBhbiBleGlzdGluZyBzZWxlY3Rpb24gKGluIHRoZSBjYXNlIG9mIGRhdGUgcmFuZ2VzKS4gQ2FsbGVkIHdoZW4gYSBkYXRlIGlzIGNsaWNrZWQgaW4gdGhlIGNhbGVuZGFycy4gKi9cbiAgYWJzdHJhY3QgZ2V0U2VsZWN0aW9uRnJvbURhdGUoZGF0ZTogRGF0ZSwgZXhpc3RpbmdTZWxlY3Rpb24/OiBEYXRlSW5wdXQuU2VsZWN0aW9uIHwgbnVsbCk6IERhdGVJbnB1dC5TZWxlY3Rpb24gfCBudWxsO1xuICAvKiogUmV0dXJucyBhIG5ldyBzZWxlY3Rpb24gdGhhdCBiZXN0IG1hdGNoZXMgdGhlIGdpdmVuIHByZXZpb3VzIHNlbGVjdGlvbiBmcm9tIGEgZGlmZmVyZW50IHNlbGVjdGlvbiBtb2RlICovXG4gIGFic3RyYWN0IGdldE5ld1NlbGVjdGlvbkZyb21FeGlzdGluZyhwcmV2aW91c1NlbGVjdGlvbj86IERhdGVJbnB1dC5TZWxlY3Rpb24gfCBudWxsKTogRGF0ZUlucHV0LlNlbGVjdGlvbiB8IG51bGw7XG4gIC8qKiBSZXR1cm5zIGEgbmV3IHNlbGVjdGlvbiBmb3IgdGhlIHByb3ZpZGVkIGRhdGUuICovXG4gIGdldFNlbGVjdGlvbkZvclF1aWNrU2VsZWN0RGF0ZShkYXRlOiBEYXRlLCBleGlzdGluZ1NlbGVjdGlvbj86IERhdGVJbnB1dC5TZWxlY3Rpb24gfCBudWxsKTogRGF0ZUlucHV0LlNlbGVjdGlvbiB8IG51bGwge1xuICAgIHJldHVybiB0aGlzLmdldFNlbGVjdGlvbkZyb21EYXRlKGRhdGUsIGV4aXN0aW5nU2VsZWN0aW9uKTtcbiAgfVxuICAvKiogUmV0dXJucyB0aGUgbmV4dCBzZWxlY3Rpb24uIENhbGxlZCBieSB0aGUgZGF0ZSBpbnB1dCBzdGVwcGVycyB0byBtb3ZlIHRoZSByYW5nZS4gKi9cbiAgYWJzdHJhY3QgZ2V0TmV4dFNlbGVjdGlvbihzZWxlY3Rpb246IERhdGVJbnB1dC5TZWxlY3Rpb24gfCBudWxsKTogRGF0ZUlucHV0LlNlbGVjdGlvbiB8IG51bGw7XG4gIC8qKiBSZXR1cm5zIHRoZSBwcmV2aW91cyBzZWxlY3Rpb24uIENhbGxlZCBieSB0aGUgZGF0ZSBpbnB1dCBzdGVwcGVycyB0byBtb3ZlIHRoZSByYW5nZS4gKi9cbiAgYWJzdHJhY3QgZ2V0UHJldmlvdXNTZWxlY3Rpb24oc2VsZWN0aW9uOiBEYXRlSW5wdXQuU2VsZWN0aW9uIHwgbnVsbCk6IERhdGVJbnB1dC5TZWxlY3Rpb24gfCBudWxsO1xuICBcbiAgLyoqIFJldHVybnMgdGhlIHZpZXcgZm9yIHRoZSBwcmltYXJ5IGNhbGVuZGFyIGZvciB0aGUgc2VsZWN0aW9uIGFuZCBzZWxlY3Rpb24gbW9kZSAqL1xuICBnZXRQcmltYXJ5Q2FsZW5kYXJWaWV3KHNlbGVjdGlvbjogRGF0ZUlucHV0LlNlbGVjdGlvbiB8IG51bGwsIG1pbkRhdGU6IERhdGUsIG1heERhdGU6IERhdGUsIGN1cnJlbnRWaWV3OiBDYWxlbmRhci5WaWV3KTogQ2FsZW5kYXIuVmlldyB7XG4gICAgbGV0IGRhdGU6IERhdGU7XG5cbiAgICAvLyBJZiB3ZSBoYXZlIGEgcmFuZ2UsIHVzZSB0aGUgZW5kIGRhdGUsIGRlZmF1bHRpbmcgdG8gdGhlIHN0YXJ0IGRhdGUgb3IgdG9kYXlcbiAgICBpZiAoRGF0ZUlucHV0LmlzU2VsZWN0aW9uUmFuZ2Uoc2VsZWN0aW9uKSkge1xuICAgICAgZGF0ZSA9IHNlbGVjdGlvbi5lbmQgfHwgc2VsZWN0aW9uLnN0YXJ0IHx8IG5ldyBEYXRlKCk7XG4gICAgLy8gSWYgd2UgaGF2ZSBhIHNpbmdsZSBkYXRlLCB1c2UgaXQsIGRlZmF1bHRpbmcgdG8gdG9kYXlcbiAgICB9IGVsc2Uge1xuICAgICAgZGF0ZSA9IHNlbGVjdGlvbiB8fCBuZXcgRGF0ZSgpO1xuICAgIH1cblxuICAgIC8vIEVuc3VyZSB0aGUgZGF0ZSBpcyB3aXRoaW4gdGhlIG1pbiBhbmQgbWF4IGRhdGVzXG4gICAgZGF0ZSA9IGRhdGUgPCBtaW5EYXRlID8gbWluRGF0ZSA6IGRhdGU7XG4gICAgZGF0ZSA9IGRhdGUgPiBtYXhEYXRlID8gbWF4RGF0ZSA6IGRhdGU7XG5cbiAgICAvLyBJZiB0aGUgY3VycmVudCBjYWxlbmRhciB2aWV3IG1vZGUgaXMgdmFsaWQgZm9yIHRoZSBzZWxlY3Rpb24gbW9kZSwgdXNlIGl0LCBvdGhlcndpc2UgdXNlIHRoZSBzZWxlY3Rpb24gdmlldyBtb2RlXG4gICAgLy8gVGhpcyBwcmV2ZW50cyB0aGUgY2FsZW5kYXIgZnJvbSBjaGFuZ2luZyB2aWV3IG1vZGVzIGFzIHRoZSB1c2VyIHR5cGVzL2JsdXJzIHRoZSB0ZXh0Ym94ZXMgYXMgbG9uZyBhcyB0aGUgdmlldyBtb2RlIGlzIHZhbGlkXG4gICAgY29uc3Qgdmlld01vZGUgPSB0aGlzLnZhbGlkVmlld01vZGVzLmluY2x1ZGVzKGN1cnJlbnRWaWV3Lm1vZGUpID8gY3VycmVudFZpZXcubW9kZSA6IHRoaXMuc2VsZWN0aW9uVmlld01vZGU7XG5cbiAgICByZXR1cm4geyBtb2RlOiB2aWV3TW9kZSwgZGF0ZSB9O1xuICB9O1xuICBcbiAgLyoqXG4gICAqIFJldHVybnMgdGhlIHZpZXcgZm9yIHRoZSBzZWNvbmRhcnkgY2FsZW5kYXIgZm9yIHRoZSBzZWxlY3Rpb24gYW5kIHNlbGVjdGlvbiBtb2RlLlxuICAgKiBUaGlzIGlzIGlzIG9ubHkgdXNlZCBieSB0aGUgcmFuZ2Ugc2VsZWN0aW9uIHN0cmF0ZWd5LiBBbGwgb3RoZXJzIGp1c3QgcmV0dXJuIHRoZSBjdXJyZW50IGRhdGUuXG4gICAqL1xuICBnZXRTZWNvbmRhcnlDYWxlbmRhclZpZXcoc2VsZWN0aW9uOiBEYXRlSW5wdXQuU2VsZWN0aW9uIHwgbnVsbCwgbWluRGF0ZTogRGF0ZSwgbWF4RGF0ZTogRGF0ZSwgY3VycmVudFZpZXc6IENhbGVuZGFyLlZpZXcpOiBDYWxlbmRhci5WaWV3IHtcbiAgICByZXR1cm4geyBtb2RlOiB0aGlzLnNlbGVjdGlvblZpZXdNb2RlLCBkYXRlOiBuZXcgRGF0ZSgpIH1cbiAgfTtcbn1cbiJdfQ==
|
package/esm2022/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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF5LXNlbGVjdGlvbi1zdHJhdGVneS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvbXBvbmVudHMvc3JjL2xpYi9jb250cm9scy9kYXRlLWlucHV0L2RhdGUtaW5wdXQtc2VsZWN0aW9uLXN0cmF0ZWdpZXMvZGF5LXNlbGVjdGlvbi1zdHJhdGVneS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLE1BQU0sTUFBTSxRQUFRLENBQUM7QUFHNUIsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ2hELE9BQU8sRUFBRSw4QkFBOEIsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBRXRGOztHQUVHO0FBQ0gsTUFBTSxPQUFPLG9CQUFxQixTQUFRLDhCQUE4QjtJQU10RSxZQUNVLGVBQWdDO1FBRXhDLEtBQUssRUFBRSxDQUFDO1FBRkEsb0JBQWUsR0FBZixlQUFlLENBQWlCO1FBTjFCLHNCQUFpQixHQUFzQixLQUFLLENBQUM7UUFDN0MsbUJBQWMsR0FBd0IsQ0FBQyxLQUFLLEVBQUUsT0FBTyxFQUFFLE1BQU0sQ0FBQyxDQUFDO1FBQy9ELHlCQUFvQixHQUFHLEtBQUssQ0FBQztRQUM3QiwwQkFBcUIsR0FBRyxLQUFLLENBQUM7SUFNOUMsQ0FBQztJQUVELGVBQWUsQ0FBQyxTQUFzQztRQUNwRCx1RUFBdUU7UUFDdkUsSUFBSSxTQUFTLENBQUMscUJBQXFCLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQztZQUMvQyxPQUFPLEVBQUUsT0FBTyxFQUFFLElBQUksQ0FBQyxlQUFlLENBQUMsU0FBUyxDQUFDLFNBQVMsRUFBRSxJQUFJLENBQUMsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLENBQUM7WUFDdEYsNEZBQTRGO1lBQzVGLGlFQUFpRTtRQUNqRSxDQUFDO2FBQU0sQ0FBQztZQUNOLE9BQU8sRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsQ0FBQztRQUMzQyxDQUFDO0lBQ0gsQ0FBQztJQUVELGtCQUFrQixDQUFDLEtBQXNDLEVBQUUsWUFBc0IsRUFBRSxJQUErQjtRQUNoSCxPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLE9BQU8sRUFBRSxZQUFZLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDN0QsQ0FBQztJQUVELG9CQUFvQixDQUFDLElBQVU7UUFDN0Isa0JBQWtCO1FBQ2xCLE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVELDJCQUEyQixDQUFDLGlCQUE4QztRQUN4RSwrR0FBK0c7UUFDL0csSUFBSSxTQUFTLENBQUMsZ0JBQWdCLENBQUMsaUJBQWlCLENBQUMsRUFBRSxDQUFDO1lBQ2xELE9BQU8saUJBQWlCLENBQUMsR0FBRyxJQUFJLGlCQUFpQixDQUFDLEtBQUssQ0FBQztZQUMxRCwwREFBMEQ7UUFDMUQsQ0FBQzthQUFNLElBQUksU0FBUyxDQUFDLHFCQUFxQixDQUFDLGlCQUFpQixDQUFDLEVBQUUsQ0FBQztZQUM5RCxPQUFPLGlCQUFpQixDQUFDO1FBQzNCLENBQUM7UUFFRCxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFRCxnQkFBZ0IsQ0FBQyxTQUFxQztRQUNwRCxvQ0FBb0M7UUFDcEMsSUFBSSxTQUFTLENBQUMscUJBQXFCLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQztZQUMvQyxPQUFPLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLEtBQUssQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQ2xELENBQUM7UUFFRCwyR0FBMkc7UUFDM0csT0FBTyxTQUFTLENBQUM7SUFDbkIsQ0FBQztJQUVELG9CQUFvQixDQUFDLFNBQXFDO1FBQ3hELDJDQUEyQztRQUMzQyxJQUFJLFNBQVMsQ0FBQyxxQkFBcUIsQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDO1lBQy9DLE9BQU8sTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLEVBQUUsS0FBSyxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDdkQsQ0FBQztRQUVELDJHQUEyRztRQUMzRyxPQUFPLFNBQVMsQ0FBQztJQUNuQixDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgbW9tZW50IGZyb20gXCJtb21lbnRcIjtcbmltcG9ydCB7IERhdGVEaXNwbGF5UGlwZSB9IGZyb20gXCIuLi8uLi8uLi9zaGFyZWQvZGlzcGxheS9waXBlcy9kYXRlLWRpc3BsYXkucGlwZVwiO1xuaW1wb3J0IHsgQ2FsZW5kYXIgfSBmcm9tIFwiLi4vLi4vY2FsZW5kYXIvY2FsZW5kYXIudHlwZXNcIjtcbmltcG9ydCB7IERhdGVJbnB1dCB9IGZyb20gXCIuLi9kYXRlLWlucHV0LnR5cGVzXCI7XG5pbXBvcnQgeyBEYXRlSW5wdXRTZWxlY3Rpb25TdHJhdGVneUJhc2UgfSBmcm9tIFwiLi9kYXRlLWlucHV0LXNlbGVjdGlvbi1zdHJhdGVneS1iYXNlXCI7XG5cbi8qKlxuICogU2VsZWN0aW9uIHN0cmF0ZWd5IGZvciB0aGUgJ2RheScgc2VsZWN0aW9uIG1vZGUuXG4gKi9cbmV4cG9ydCBjbGFzcyBEYXlTZWxlY3Rpb25TdHJhdGVneSBleHRlbmRzIERhdGVJbnB1dFNlbGVjdGlvblN0cmF0ZWd5QmFzZSB7XG4gIHB1YmxpYyByZWFkb25seSBzZWxlY3Rpb25WaWV3TW9kZTogQ2FsZW5kYXIuVmlld01vZGUgPSAnZGF5JztcbiAgcHVibGljIHJlYWRvbmx5IHZhbGlkVmlld01vZGVzOiBDYWxlbmRhci5WaWV3TW9kZVtdID0gWydkYXknLCAnbW9udGgnLCAneWVhciddO1xuICBwdWJsaWMgcmVhZG9ubHkgc2hvd1NlY29uZGFyeVRleHRib3ggPSBmYWxzZTtcbiAgcHVibGljIHJlYWRvbmx5IHNob3dTZWNvbmRhcnlDYWxlbmRhciA9IGZhbHNlO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgZGF0ZURpc3BsYXlQaXBlOiBEYXRlRGlzcGxheVBpcGVcbiAgKSB7XG4gICAgc3VwZXIoKTtcbiAgfVxuXG4gIGZvcm1hdFNlbGVjdGlvbihzZWxlY3Rpb24/OiBEYXRlSW5wdXQuU2VsZWN0aW9uIHwgbnVsbCk6IERhdGVJbnB1dC5UZXh0Ym94R3JvdXBbJ3ZhbHVlJ10ge1xuICAgIC8vIElmIHRoZSBzZWxlY3Rpb24gaXMgYSBzaW5nbGUgZGF0ZSwgZm9ybWF0IGl0IGludG8gdGhlIGZpcnN0IHRleHRib3guXG4gICAgaWYgKERhdGVJbnB1dC5pc1NlbGVjdGlvblNpbmdsZURhdGUoc2VsZWN0aW9uKSkge1xuICAgICAgcmV0dXJuIHsgdGV4dGJveDogdGhpcy5kYXRlRGlzcGxheVBpcGUudHJhbnNmb3JtKHNlbGVjdGlvbiwgdHJ1ZSksIHRleHRib3gyOiBudWxsIH07XG4gICAgLy8gT3RoZXJ3aXNlLCBjbGVhciBib3RoIHRleHRib3hlcy4gVGhpcyBzaG91bGRuJ3QgaGFwcGVuIGJhc2VkIG9uIGN1cnJlbnQgZGF0ZSBpbnB1dCBmbG93cyxcbiAgICAvLyBhbmQgZXZlbiBpZiBpdCBkaWQgdGhlcmUncyBub3QgcmVhbGx5IGEgZ29vZCB3YXkgdG8gaGFuZGxlIGl0LlxuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4geyB0ZXh0Ym94OiBudWxsLCB0ZXh0Ym94MjogbnVsbCB9O1xuICAgIH1cbiAgfVxuXG4gIHBhcnNlVGV4dGJveFZhbHVlcyh2YWx1ZTogRGF0ZUlucHV0LlRleHRib3hHcm91cFsndmFsdWUnXSwgcGFyc2VGb3JtYXRzOiBzdHJpbmdbXSwgb3B0cz86IERhdGVJbnB1dC5QYXJzaW5nT3B0aW9ucyk6IERhdGVJbnB1dC5TZWxlY3Rpb24gfCBudWxsIHtcbiAgICByZXR1cm4gdGhpcy5wYXJzZVN0cmluZyh2YWx1ZS50ZXh0Ym94LCBwYXJzZUZvcm1hdHMsIG9wdHMpO1xuICB9XG5cbiAgZ2V0U2VsZWN0aW9uRnJvbURhdGUoZGF0ZTogRGF0ZSk6IERhdGVJbnB1dC5TZWxlY3Rpb24gfCBudWxsIHtcbiAgICAvLyBOaWNlIGFuZCBzaW1wbGVcbiAgICByZXR1cm4gZGF0ZTtcbiAgfVxuXG4gIGdldE5ld1NlbGVjdGlvbkZyb21FeGlzdGluZyhwcmV2aW91c1NlbGVjdGlvbj86IERhdGVJbnB1dC5TZWxlY3Rpb24gfCBudWxsKTogRGF0ZUlucHV0LlNlbGVjdGlvbiB8IG51bGwge1xuICAgIC8vIElmIHRoZSBwcmV2aW91cyBzZWxlY3Rpb24gd2FzIGEgcmFuZ2UsIHJldHVybiB0aGUgZW5kIGRhdGUgYW5kIGRlZmF1bHQgdG8gdGhlIHN0YXJ0IGRhdGUgaWYgdGhlcmUgaXNuJ3Qgb25lLlxuICAgIGlmIChEYXRlSW5wdXQuaXNTZWxlY3Rpb25SYW5nZShwcmV2aW91c1NlbGVjdGlvbikpIHtcbiAgICAgIHJldHVybiBwcmV2aW91c1NlbGVjdGlvbi5lbmQgfHwgcHJldmlvdXNTZWxlY3Rpb24uc3RhcnQ7XG4gICAgLy8gSWYgdGhlIHByZXZpb3VzIHNlbGVjdGlvbiB3YXMgYSBzaW5nbGUgZGF0ZSwgcmV0dXJuIGl0LlxuICAgIH0gZWxzZSBpZiAoRGF0ZUlucHV0LmlzU2VsZWN0aW9uU2luZ2xlRGF0ZShwcmV2aW91c1NlbGVjdGlvbikpIHtcbiAgICAgIHJldHVybiBwcmV2aW91c1NlbGVjdGlvbjtcbiAgICB9XG5cbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIGdldE5leHRTZWxlY3Rpb24oc2VsZWN0aW9uOiBEYXRlSW5wdXQuU2VsZWN0aW9uIHwgbnVsbCk6IERhdGVJbnB1dC5TZWxlY3Rpb24gfCBudWxsIHtcbiAgICAvLyBBZGQgYSBzaW5nbGUgZGF5IHRvIHRoZSBzZWxlY3Rpb25cbiAgICBpZiAoRGF0ZUlucHV0LmlzU2VsZWN0aW9uU2luZ2xlRGF0ZShzZWxlY3Rpb24pKSB7XG4gICAgICByZXR1cm4gbW9tZW50KHNlbGVjdGlvbikuYWRkKDEsICdkYXknKS50b0RhdGUoKTtcbiAgICB9XG5cbiAgICAvLyBUaGlzIHNob3VsZG4ndCBoYXBwZW4gYmFzZWQgb24gY3VycmVudCBkYXRlIGlucHV0IGZsb3dzLCBidXQgaWYgaXQgZG9lcyBqdXN0IHJldHVybiB0aGUgc2VsZWN0aW9uIGFzLWlzLlxuICAgIHJldHVybiBzZWxlY3Rpb247XG4gIH1cblxuICBnZXRQcmV2aW91c1NlbGVjdGlvbihzZWxlY3Rpb246IERhdGVJbnB1dC5TZWxlY3Rpb24gfCBudWxsKTogRGF0ZUlucHV0LlNlbGVjdGlvbiB8IG51bGwge1xuICAgIC8vIFN1YnRyYWN0IGEgc2luZ2xlIGRheSBmcm9tIHRoZSBzZWxlY3Rpb25cbiAgICBpZiAoRGF0ZUlucHV0LmlzU2VsZWN0aW9uU2luZ2xlRGF0ZShzZWxlY3Rpb24pKSB7XG4gICAgICByZXR1cm4gbW9tZW50KHNlbGVjdGlvbikuc3VidHJhY3QoMSwgJ2RheScpLnRvRGF0ZSgpO1xuICAgIH1cblxuICAgIC8vIFRoaXMgc2hvdWxkbid0IGhhcHBlbiBiYXNlZCBvbiBjdXJyZW50IGRhdGUgaW5wdXQgZmxvd3MsIGJ1dCBpZiBpdCBkb2VzIGp1c3QgcmV0dXJuIHRoZSBzZWxlY3Rpb24gYXMtaXMuXG4gICAgcmV0dXJuIHNlbGVjdGlvbjtcbiAgfVxufVxuIl19
|
|
@@ -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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RUFBRSxNQUFNLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsS0FBSyxDQUFDLENBQUMsTUFBTSxFQUFFO2dCQUNuRCxHQUFHLEVBQUUsTUFBTSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsRUFBRSxFQUFFLE1BQU0sQ0FBQyxDQUFDLE1BQU0sRUFBRTthQUNwRCxDQUFDO1FBQ0osQ0FBQztRQUVELCtGQUErRjtRQUMvRixnREFBZ0Q7UUFDaEQsT0FBTyxTQUFTLENBQUM7SUFDbkIsQ0FBQztJQUVELG9CQUFvQixDQUFDLFNBQXFDO1FBQ3hELDZDQUE2QztRQUM3QyxJQUFJLFNBQVMsQ0FBQyxnQkFBZ0IsQ0FBQyxTQUFTLENBQUMsSUFBSSxTQUFTLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDN0QsT0FBTztnQkFDTCxLQUFLLEVBQUUsTUFBTSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsRUFBRSxFQUFFLE1BQU0sQ0FBQyxDQUFDLE1BQU0sRUFBRTtnQkFDNUQsR0FBRyxFQUFFLE1BQU0sQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsRUFBRSxLQUFLLENBQUMsQ0FBQyxNQUFNLEVBQUU7YUFDekQsQ0FBQztRQUNKLENBQUM7UUFFRCxtR0FBbUc7UUFDbkcsZ0RBQWdEO1FBQ2hELE9BQU8sU0FBUyxDQUFDO0lBQ25CLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBtb21lbnQgZnJvbSBcIm1vbWVudFwiO1xuaW1wb3J0IHsgQ2FsZW5kYXIgfSBmcm9tIFwiLi4vLi4vY2FsZW5kYXIvY2FsZW5kYXIudHlwZXNcIjtcbmltcG9ydCB7IERhdGVJbnB1dCB9IGZyb20gXCIuLi9kYXRlLWlucHV0LnR5cGVzXCI7XG5pbXBvcnQgeyBEYXRlSW5wdXRTZWxlY3Rpb25TdHJhdGVneUJhc2UgfSBmcm9tIFwiLi9kYXRlLWlucHV0LXNlbGVjdGlvbi1zdHJhdGVneS1iYXNlXCI7XG5pbXBvcnQgeyBSYW5nZVNlbGVjdGlvblN0cmF0ZWd5IH0gZnJvbSBcIi4vcmFuZ2Utc2VsZWN0aW9uLXN0cmF0ZWd5XCI7XG5cbi8qKlxuICogU2VsZWN0aW9uIHN0cmF0ZWd5IGZvciB0aGUgJ2xhc3QgMjggZGF5cycgc2VsZWN0aW9uIG1vZGUuXG4gKi9cbmV4cG9ydCBjbGFzcyBMYXN0MjhEYXlzU2VsZWN0aW9uU3RyYXRlZ3kgZXh0ZW5kcyBEYXRlSW5wdXRTZWxlY3Rpb25TdHJhdGVneUJhc2Uge1xuICBwdWJsaWMgcmVhZG9ubHkgc2VsZWN0aW9uVmlld01vZGU6IENhbGVuZGFyLlZpZXdNb2RlID0gJ2RheSc7XG4gIHB1YmxpYyByZWFkb25seSB2YWxpZFZpZXdNb2RlczogQ2FsZW5kYXIuVmlld01vZGVbXSA9IFsnZGF5JywgJ21vbnRoJywgJ3llYXInXTtcbiAgcHVibGljIHJlYWRvbmx5IHNob3dTZWNvbmRhcnlUZXh0Ym94ID0gdHJ1ZTtcbiAgcHVibGljIHJlYWRvbmx5IHNob3dTZWNvbmRhcnlDYWxlbmRhciA9IGZhbHNlO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgcmFuZ2VTdHJhdGVneTogUmFuZ2VTZWxlY3Rpb25TdHJhdGVneVxuICApIHtcbiAgICBzdXBlcigpO1xuICB9XG5cbiAgZm9ybWF0U2VsZWN0aW9uKHZhbHVlPzogRGF0ZUlucHV0LlNlbGVjdGlvbiB8IG51bGwpOiBEYXRlSW5wdXQuVGV4dGJveEdyb3VwWyd2YWx1ZSddIHtcbiAgICAvLyBEZWxlZ2F0ZSB0byB0aGUgcmFuZ2Ugc3RyYXRlZ3kgZm9yIGZvcm1hdHRpbmcgc2luY2UgdGhlIGxvZ2ljIGlzIHRoZSBzYW1lXG4gICAgcmV0dXJuIHRoaXMucmFuZ2VTdHJhdGVneS5mb3JtYXRTZWxlY3Rpb24odmFsdWUpO1xuICB9XG5cbiAgcGFyc2VUZXh0Ym94VmFsdWVzKHZhbHVlOiBEYXRlSW5wdXQuVGV4dGJveEdyb3VwWyd2YWx1ZSddLCBwYXJzZUZvcm1hdHM6IHN0cmluZ1tdLCBvcHRzPzogRGF0ZUlucHV0LlBhcnNpbmdPcHRpb25zKTogRGF0ZUlucHV0LlNlbGVjdGlvbiB8IG51bGwge1xuICAgIGxldCBzdGFydCA9IHRoaXMucGFyc2VTdHJpbmcodmFsdWUudGV4dGJveCwgcGFyc2VGb3JtYXRzLCBvcHRzKTtcbiAgICBsZXQgZW5kID0gdGhpcy5wYXJzZVN0cmluZyh2YWx1ZS50ZXh0Ym94MiwgcGFyc2VGb3JtYXRzLCBvcHRzKTtcblxuICAgIGlmIChzdGFydCAmJiBlbmQpIHtcbiAgICAgIC8vIEV2ZW4gaWYgYm90aCBkYXRlcyBhcmUgcHJvdmlkZWQsIGl0J3MgcG9zc2libGUgdGhhdCB0aGV5IGRvbid0IG1hdGNoIGEgMjgtZGF5IHJhbmdlXG4gICAgICAvLyBVcGRhdGUgdGhlIHN0YXJ0IGFuZCBlbmQgZGF0ZXMgdG8gbWF0Y2ggYSAyOC1kYXkgcmFuZ2UsIGtleWluZyBvZmYgdGhlIGVuZCBkYXRlIGlmIHBhcnNlRnJvbUVuZCBpcyB0cnVlXG4gICAgICAvLyBwYXJzZUZyb21FbmQgaXMgdHJ1ZSB3aGVuIGEgZGF0ZSBpcyBiZWluZyBlbnRlcmVkIGZyb20gdGhlIGVuZCBkYXRlIHRleHRib3hcbiAgICAgIGlmIChvcHRzPy5wYXJzZUZyb21FbmQpIHtcbiAgICAgICAgc3RhcnQgPSBtb21lbnQoZW5kKS5zdWJ0cmFjdCgyNywgJ2RheXMnKS50b0RhdGUoKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGVuZCA9IG1vbWVudChzdGFydCkuYWRkKDI3LCAnZGF5cycpLnRvRGF0ZSgpO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIElmIHRoZSBzdGFydCBkYXRlIGlzIG5vdCBwcm92aWRlZCwgd2UnbGwgdXNlIHRoZSBlbmQgZGF0ZSB0byBjYWxjdWxhdGUgdGhlIHN0YXJ0IGRhdGVcbiAgICBpZiAoIXN0YXJ0ICYmIGVuZCAmJiAhb3B0cz8ucHJldmVudEF1dG9Db21wbGV0ZSkge1xuICAgICAgc3RhcnQgPSBtb21lbnQoZW5kKS5zdWJ0cmFjdCgyNywgJ2RheXMnKS50b0RhdGUoKTtcbiAgICB9XG5cbiAgICAvLyBJZiB0aGUgZW5kIGRhdGUgaXMgbm90IHByb3ZpZGVkLCB3ZSdsbCB1c2UgdGhlIHN0YXJ0IGRhdGUgdG8gY2FsY3VsYXRlIHRoZSBlbmQgZGF0ZVxuICAgIGlmICghZW5kICYmIHN0YXJ0ICYmICFvcHRzPy5wcmV2ZW50QXV0b0NvbXBsZXRlKSB7XG4gICAgICBlbmQgPSBtb21lbnQoc3RhcnQpLmFkZCgyNywgJ2RheXMnKS50b0RhdGUoKTtcbiAgICB9XG5cbiAgICBpZiAoIXN0YXJ0ICYmICFlbmQpIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4geyBzdGFydCwgZW5kIH07XG4gICAgfVxuICB9XG5cbiAgZ2V0U2VsZWN0aW9uRnJvbURhdGUoZGF0ZTogRGF0ZSk6IERhdGVJbnB1dC5TZWxlY3Rpb24gfCBudWxsIHtcbiAgICByZXR1cm4geyBcbiAgICAgIHN0YXJ0OiBtb21lbnQoZGF0ZSkuc3VidHJhY3QoMjcsICdkYXlzJykudG9EYXRlKCksXG4gICAgICBlbmQ6IGRhdGVcbiAgICB9O1xuICB9XG5cbiAgZ2V0TmV3U2VsZWN0aW9uRnJvbUV4aXN0aW5nKHByZXZpb3VzU2VsZWN0aW9uPzogRGF0ZUlucHV0LlNlbGVjdGlvbik6IERhdGVJbnB1dC5TZWxlY3Rpb24gfCBudWxsIHtcbiAgICBpZiAoRGF0ZUlucHV0LmlzU2VsZWN0aW9uUmFuZ2UocHJldmlvdXNTZWxlY3Rpb24pKSB7XG4gICAgICAvLyBJZiB0aGUgcmFuZ2Ugb25seSBoYXMgYSBzdGFydCBkYXRlLCBtYWtlIHRoZSAyOC1kYXkgcmFuZ2Ugc3RhcnQgb24gdGhhdCBkYXRlXG4gICAgICBpZiAoIXByZXZpb3VzU2VsZWN0aW9uLmVuZCAmJiBwcmV2aW91c1NlbGVjdGlvbi5zdGFydCkge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIHN0YXJ0OiBwcmV2aW91c1NlbGVjdGlvbi5zdGFydCxcbiAgICAgICAgICBlbmQ6IG1vbWVudChwcmV2aW91c1NlbGVjdGlvbi5zdGFydCkuYWRkKDI3LCAnZGF5cycpLnRvRGF0ZSgpXG4gICAgICAgIH07XG4gICAgICAvLyBJZiB0aGUgcmFuZ2Ugb25seSBoYXMgYW4gZW5kIGRhdGUsIG1ha2UgdGhlIDI4LWRheSByYW5nZSBlbmQgb24gdGhhdCBkYXRlXG4gICAgICB9IGVsc2UgaWYgKHByZXZpb3VzU2VsZWN0aW9uLmVuZCkge1xuICAgICAgICByZXR1cm4gdGhpcy5nZXRTZWxlY3Rpb25Gcm9tRGF0ZShwcmV2aW91c1NlbGVjdGlvbi5lbmQpO1xuICAgICAgfVxuICAgIC8vIElmIHRoZSBwcmV2aW91cyBzZWxlY3Rpb24gd2FzIGEgc2luZ2xlIGRhdGUsIG1ha2UgdGhlIHJhbmdlIHRoZSAyOCBkYXlzIGVuZGluZyBvbiB0aGF0IGRhdGVcbiAgICB9IGVsc2UgaWYgKERhdGVJbnB1dC5pc1NlbGVjdGlvblNpbmdsZURhdGUocHJldmlvdXNTZWxlY3Rpb24pKSB7XG4gICAgICByZXR1cm4gdGhpcy5nZXRTZWxlY3Rpb25Gcm9tRGF0ZShwcmV2aW91c1NlbGVjdGlvbik7XG4gICAgfVxuXG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICBnZXROZXh0U2VsZWN0aW9uKHNlbGVjdGlvbjogRGF0ZUlucHV0LlNlbGVjdGlvbiB8IG51bGwpOiBEYXRlSW5wdXQuU2VsZWN0aW9uIHwgbnVsbCB7XG4gICAgLy8gTW92ZSB0aGUgc2VsZWN0aW9uIHRvIHRoZSBuZXh0IDI4IGRheXNcbiAgICBpZiAoRGF0ZUlucHV0LmlzU2VsZWN0aW9uUmFuZ2Uoc2VsZWN0aW9uKSAmJiBzZWxlY3Rpb24uZW5kKSB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICBzdGFydDogbW9tZW50KHNlbGVjdGlvbi5lbmQpLmFkZCgxLCAnZGF5JykudG9EYXRlKCksXG4gICAgICAgIGVuZDogbW9tZW50KHNlbGVjdGlvbi5lbmQpLmFkZCgyOCwgJ2RheXMnKS50b0RhdGUoKVxuICAgICAgfTtcbiAgICB9XG5cbiAgICAvLyBUaGlzIHNob3VsZG4ndCBoYXBwZW4gc2luY2UgdGhlIG5leHQgc3RlcHBlciBpcyBkaXNhYmxlZCBpZiB0aGUgc2VsZWN0aW9uIG9ubHkgaGFzIG9uZSBkYXRlLlxuICAgIC8vIEp1c3QgcmV0dXJuIHRoZSBzZWxlY3Rpb24gYXMtaXMgaW4gdGhpcyBjYXNlLlxuICAgIHJldHVybiBzZWxlY3Rpb247XG4gIH1cblxuICBnZXRQcmV2aW91c1NlbGVjdGlvbihzZWxlY3Rpb246IERhdGVJbnB1dC5TZWxlY3Rpb24gfCBudWxsKTogRGF0ZUlucHV0LlNlbGVjdGlvbiB8IG51bGwge1xuICAgIC8vIE1vdmUgdGhlIHNlbGVjdGlvbiB0byB0aGUgcHJldmlvdXMgMjggZGF5c1xuICAgIGlmIChEYXRlSW5wdXQuaXNTZWxlY3Rpb25SYW5nZShzZWxlY3Rpb24pICYmIHNlbGVjdGlvbi5zdGFydCkge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgc3RhcnQ6IG1vbWVudChzZWxlY3Rpb24uc3RhcnQpLnN1YnRyYWN0KDI4LCAnZGF5cycpLnRvRGF0ZSgpLFxuICAgICAgICBlbmQ6IG1vbWVudChzZWxlY3Rpb24uc3RhcnQpLnN1YnRyYWN0KDEsICdkYXknKS50b0RhdGUoKVxuICAgICAgfTtcbiAgICB9XG5cbiAgICAvLyBUaGlzIHNob3VsZG4ndCBoYXBwZW4gc2luY2UgdGhlIHByZXZpb3VzIHN0ZXBwZXIgaXMgZGlzYWJsZWQgaWYgdGhlIHNlbGVjdGlvbiBvbmx5IGhhcyBvbmUgZGF0ZS5cbiAgICAvLyBKdXN0IHJldHVybiB0aGUgc2VsZWN0aW9uIGFzLWlzIGluIHRoaXMgY2FzZS5cbiAgICByZXR1cm4gc2VsZWN0aW9uO1xuICB9XG59XG4iXX0=
|
|
@@ -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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGFzdC03LWRheXMtc2VsZWN0aW9uLXN0cmF0ZWd5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29tcG9uZW50cy9zcmMvbGliL2NvbnRyb2xzL2RhdGUtaW5wdXQvZGF0ZS1pbnB1dC1zZWxlY3Rpb24tc3RyYXRlZ2llcy9sYXN0LTctZGF5cy1zZWxlY3Rpb24tc3RyYXRlZ3kudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxNQUFNLE1BQU0sUUFBUSxDQUFDO0FBRTVCLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNoRCxPQUFPLEVBQUUsOEJBQThCLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUd0Rjs7R0FFRztBQUNILE1BQU0sT0FBTywwQkFBMkIsU0FBUSw4QkFBOEI7SUFNNUUsWUFDVSxhQUFxQztRQUU3QyxLQUFLLEVBQUUsQ0FBQztRQUZBLGtCQUFhLEdBQWIsYUFBYSxDQUF3QjtRQU4vQixzQkFBaUIsR0FBc0IsS0FBSyxDQUFDO1FBQzdDLG1CQUFjLEdBQXdCLENBQUMsS0FBSyxFQUFFLE9BQU8sRUFBRSxNQUFNLENBQUMsQ0FBQztRQUMvRCx5QkFBb0IsR0FBRyxJQUFJLENBQUM7UUFDNUIsMEJBQXFCLEdBQUcsS0FBSyxDQUFDO0lBTTlDLENBQUM7SUFFRCxlQUFlLENBQUMsS0FBa0M7UUFDaEQsNEVBQTRFO1FBQzVFLE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FBQyxlQUFlLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDbkQsQ0FBQztJQUVELGtCQUFrQixDQUFDLEtBQXNDLEVBQUUsWUFBc0IsRUFBRSxJQUErQjtRQUNoSCxJQUFJLEtBQUssR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxPQUFPLEVBQUUsWUFBWSxFQUFFLElBQUksQ0FBQyxDQUFDO1FBQ2hFLElBQUksR0FBRyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLFFBQVEsRUFBRSxZQUFZLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFFL0QsSUFBSSxLQUFLLElBQUksR0FBRyxFQUFFLENBQUM7WUFDakIscUZBQXFGO1lBQ3JGLHlHQUF5RztZQUN6Ryw4RUFBOEU7WUFDOUUsSUFBSSxJQUFJLEVBQUUsWUFBWSxFQUFFLENBQUM7Z0JBQ3ZCLEtBQUssR0FBRyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsRUFBRSxNQUFNLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUNuRCxDQUFDO2lCQUFNLENBQUM7Z0JBQ04sR0FBRyxHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLE1BQU0sQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQzlDLENBQUM7UUFDSCxDQUFDO1FBRUQsd0ZBQXdGO1FBQ3hGLElBQUksQ0FBQyxLQUFLLElBQUksR0FBRyxJQUFJLENBQUMsSUFBSSxFQUFFLG1CQUFtQixFQUFFLENBQUM7WUFDaEQsS0FBSyxHQUFHLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxFQUFFLE1BQU0sQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQ25ELENBQUM7UUFFRCxzRkFBc0Y7UUFDdEYsSUFBSSxDQUFDLEdBQUcsSUFBSSxLQUFLLElBQUksQ0FBQyxJQUFJLEVBQUUsbUJBQW1CLEVBQUUsQ0FBQztZQUNoRCxHQUFHLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsTUFBTSxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDOUMsQ0FBQztRQUVELElBQUksQ0FBQyxLQUFLLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQztZQUNuQixPQUFPLElBQUksQ0FBQztRQUNkLENBQUM7YUFBTSxDQUFDO1lBQ04sT0FBTyxFQUFFLEtBQUssRUFBRSxHQUFHLEVBQUUsQ0FBQztRQUN4QixDQUFDO0lBQ0gsQ0FBQztJQUVELG9CQUFvQixDQUFDLElBQVU7UUFDN0IsMkRBQTJEO1FBQzNELE9BQU87WUFDTCxLQUFLLEVBQUUsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLEVBQUUsTUFBTSxDQUFDLENBQUMsTUFBTSxFQUFFO1lBQ2hELEdBQUcsRUFBRSxJQUFJO1NBQ1YsQ0FBQztJQUNKLENBQUM7SUFFRCwyQkFBMkIsQ0FBQyxpQkFBOEM7UUFDeEUsSUFBSSxTQUFTLENBQUMsZ0JBQWdCLENBQUMsaUJBQWlCLENBQUMsRUFBRSxDQUFDO1lBQ2xELDBGQUEwRjtZQUMxRixJQUFJLENBQUMsaUJBQWlCLENBQUMsR0FBRyxJQUFJLGlCQUFpQixDQUFDLEtBQUssRUFBRSxDQUFDO2dCQUN0RCxPQUFPO29CQUNMLEtBQUssRUFBRSxpQkFBaUIsQ0FBQyxLQUFLO29CQUM5QixHQUFHLEVBQUUsTUFBTSxDQUFDLGlCQUFpQixDQUFDLEtBQUssQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsTUFBTSxDQUFDLENBQUMsTUFBTSxFQUFFO2lCQUM3RCxDQUFDO2dCQUNKLHNFQUFzRTtZQUN0RSxDQUFDO2lCQUFNLElBQUksaUJBQWlCLENBQUMsR0FBRyxFQUFFLENBQUM7Z0JBQ2pDLE9BQU8sSUFBSSxDQUFDLG9CQUFvQixDQUFDLGlCQUFpQixDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQzFELENBQUM7WUFDSCx1RkFBdUY7UUFDdkYsQ0FBQzthQUFNLElBQUksU0FBUyxDQUFDLHFCQUFxQixDQUFDLGlCQUFpQixDQUFDLEVBQUUsQ0FBQztZQUM5RCxPQUFPLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO1FBQ3RELENBQUM7UUFFRCxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFRCxnQkFBZ0IsQ0FBQyxTQUFxQztRQUNwRCxvQ0FBb0M7UUFDcEMsSUFBSSxTQUFTLENBQUMsZ0JBQWdCLENBQUMsU0FBUyxDQUFDLElBQUksU0FBUyxDQUFDLEdBQUcsRUFBRSxDQUFDO1lBQzNELE9BQU87Z0JBQ0wsS0FBSyxFQUFFLE1BQU0sQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxLQUFLLENBQUMsQ0FBQyxNQUFNLEVBQUU7Z0JBQ25ELEdBQUcsRUFBRSxNQUFNLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsTUFBTSxDQUFDLENBQUMsTUFBTSxFQUFFO2FBQ25ELENBQUM7UUFDSixDQUFDO1FBRUQsK0ZBQStGO1FBQy9GLGdEQUFnRDtRQUNoRCxPQUFPLFNBQVMsQ0FBQztJQUNuQixDQUFDO0lBRUQsb0JBQW9CLENBQUMsU0FBcUM7UUFDeEQsOEJBQThCO1FBQzlCLElBQUksU0FBUyxDQUFDLGdCQUFnQixDQUFDLFNBQVMsQ0FBQyxJQUFJLFNBQVMsQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUM3RCxPQUFPO2dCQUNMLEtBQUssRUFBRSxNQUFNLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLEVBQUUsTUFBTSxDQUFDLENBQUMsTUFBTSxFQUFFO2dCQUMzRCxHQUFHLEVBQUUsTUFBTSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxFQUFFLEtBQUssQ0FBQyxDQUFDLE1BQU0sRUFBRTthQUN6RCxDQUFDO1FBQ0osQ0FBQztRQUVELG1HQUFtRztRQUNuRyxnREFBZ0Q7UUFDaEQsT0FBTyxTQUFTLENBQUM7SUFDbkIsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IG1vbWVudCBmcm9tIFwibW9tZW50XCI7XG5pbXBvcnQgeyBDYWxlbmRhciB9IGZyb20gXCIuLi8uLi9jYWxlbmRhci9jYWxlbmRhci50eXBlc1wiO1xuaW1wb3J0IHsgRGF0ZUlucHV0IH0gZnJvbSBcIi4uL2RhdGUtaW5wdXQudHlwZXNcIjtcbmltcG9ydCB7IERhdGVJbnB1dFNlbGVjdGlvblN0cmF0ZWd5QmFzZSB9IGZyb20gXCIuL2RhdGUtaW5wdXQtc2VsZWN0aW9uLXN0cmF0ZWd5LWJhc2VcIjtcbmltcG9ydCB7IFJhbmdlU2VsZWN0aW9uU3RyYXRlZ3kgfSBmcm9tIFwiLi9yYW5nZS1zZWxlY3Rpb24tc3RyYXRlZ3lcIjtcblxuLyoqXG4gKiBTZWxlY3Rpb24gc3RyYXRlZ3kgZm9yIHRoZSAnbGFzdCA3IGRheXMnIHNlbGVjdGlvbiBtb2RlLlxuICovXG5leHBvcnQgY2xhc3MgTGFzdDdEYXlzU2VsZWN0aW9uU3RyYXRlZ3kgZXh0ZW5kcyBEYXRlSW5wdXRTZWxlY3Rpb25TdHJhdGVneUJhc2Uge1xuICBwdWJsaWMgcmVhZG9ubHkgc2VsZWN0aW9uVmlld01vZGU6IENhbGVuZGFyLlZpZXdNb2RlID0gJ2RheSc7XG4gIHB1YmxpYyByZWFkb25seSB2YWxpZFZpZXdNb2RlczogQ2FsZW5kYXIuVmlld01vZGVbXSA9IFsnZGF5JywgJ21vbnRoJywgJ3llYXInXTtcbiAgcHVibGljIHJlYWRvbmx5IHNob3dTZWNvbmRhcnlUZXh0Ym94ID0gdHJ1ZTtcbiAgcHVibGljIHJlYWRvbmx5IHNob3dTZWNvbmRhcnlDYWxlbmRhciA9IGZhbHNlO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgcmFuZ2VTdHJhdGVneTogUmFuZ2VTZWxlY3Rpb25TdHJhdGVneVxuICApIHtcbiAgICBzdXBlcigpO1xuICB9XG5cbiAgZm9ybWF0U2VsZWN0aW9uKHZhbHVlPzogRGF0ZUlucHV0LlNlbGVjdGlvbiB8IG51bGwpOiBEYXRlSW5wdXQuVGV4dGJveEdyb3VwWyd2YWx1ZSddIHtcbiAgICAvLyBEZWxlZ2F0ZSB0byB0aGUgcmFuZ2Ugc3RyYXRlZ3kgZm9yIGZvcm1hdHRpbmcgc2luY2UgdGhlIGxvZ2ljIGlzIHRoZSBzYW1lXG4gICAgcmV0dXJuIHRoaXMucmFuZ2VTdHJhdGVneS5mb3JtYXRTZWxlY3Rpb24odmFsdWUpO1xuICB9XG5cbiAgcGFyc2VUZXh0Ym94VmFsdWVzKHZhbHVlOiBEYXRlSW5wdXQuVGV4dGJveEdyb3VwWyd2YWx1ZSddLCBwYXJzZUZvcm1hdHM6IHN0cmluZ1tdLCBvcHRzPzogRGF0ZUlucHV0LlBhcnNpbmdPcHRpb25zKTogRGF0ZUlucHV0LlNlbGVjdGlvbiB8IG51bGwge1xuICAgIGxldCBzdGFydCA9IHRoaXMucGFyc2VTdHJpbmcodmFsdWUudGV4dGJveCwgcGFyc2VGb3JtYXRzLCBvcHRzKTtcbiAgICBsZXQgZW5kID0gdGhpcy5wYXJzZVN0cmluZyh2YWx1ZS50ZXh0Ym94MiwgcGFyc2VGb3JtYXRzLCBvcHRzKTtcblxuICAgIGlmIChzdGFydCAmJiBlbmQpIHtcbiAgICAgIC8vIEV2ZW4gaWYgYm90aCBkYXRlcyBhcmUgcHJvdmlkZWQsIGl0J3MgcG9zc2libGUgdGhhdCB0aGV5IGRvbid0IG1hdGNoIGEgNy1kYXkgcmFuZ2VcbiAgICAgIC8vIFVwZGF0ZSB0aGUgc3RhcnQgYW5kIGVuZCBkYXRlcyB0byBtYXRjaCBhIDctZGF5IHJhbmdlLCBrZXlpbmcgb2ZmIHRoZSBlbmQgZGF0ZSBpZiBwYXJzZUZyb21FbmQgaXMgdHJ1ZVxuICAgICAgLy8gcGFyc2VGcm9tRW5kIGlzIHRydWUgd2hlbiBhIGRhdGUgaXMgYmVpbmcgZW50ZXJlZCBmcm9tIHRoZSBlbmQgZGF0ZSB0ZXh0Ym94XG4gICAgICBpZiAob3B0cz8ucGFyc2VGcm9tRW5kKSB7XG4gICAgICAgIHN0YXJ0ID0gbW9tZW50KGVuZCkuc3VidHJhY3QoNiwgJ2RheXMnKS50b0RhdGUoKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGVuZCA9IG1vbWVudChzdGFydCkuYWRkKDYsICdkYXlzJykudG9EYXRlKCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gSWYgdGhlIHN0YXJ0IGRhdGUgaXMgbm90IHByb3ZpZGVkLCB3ZSdsbCB1c2UgdGhlIGVuZCBkYXRlIHRvIGNhbGN1bGF0ZSB0aGUgc3RhcnQgZGF0ZVxuICAgIGlmICghc3RhcnQgJiYgZW5kICYmICFvcHRzPy5wcmV2ZW50QXV0b0NvbXBsZXRlKSB7XG4gICAgICBzdGFydCA9IG1vbWVudChlbmQpLnN1YnRyYWN0KDYsICdkYXlzJykudG9EYXRlKCk7XG4gICAgfVxuXG4gICAgLy8gSWYgdGhlIGVuZCBkYXRlIGlzIG5vdCBwcm92aWRlZCwgd2UnbGwgdXNlIHRoZSBzdGFydCBkYXRlIHRvIGNhbGN1bGF0ZSB0aGUgZW5kIGRhdGVcbiAgICBpZiAoIWVuZCAmJiBzdGFydCAmJiAhb3B0cz8ucHJldmVudEF1dG9Db21wbGV0ZSkge1xuICAgICAgZW5kID0gbW9tZW50KHN0YXJ0KS5hZGQoNiwgJ2RheXMnKS50b0RhdGUoKTtcbiAgICB9XG5cbiAgICBpZiAoIXN0YXJ0ICYmICFlbmQpIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4geyBzdGFydCwgZW5kIH07XG4gICAgfVxuICB9XG5cbiAgZ2V0U2VsZWN0aW9uRnJvbURhdGUoZGF0ZTogRGF0ZSk6IERhdGVJbnB1dC5TZWxlY3Rpb24gfCBudWxsIHtcbiAgICAvLyBCYXNlIHRoZSBzZWxlY3Rpb24gb24gdGhlIGdpdmVuIGRhdGUsIG1vdmluZyBiYWNrIDYgZGF5c1xuICAgIHJldHVybiB7XG4gICAgICBzdGFydDogbW9tZW50KGRhdGUpLnN1YnRyYWN0KDYsICdkYXlzJykudG9EYXRlKCksXG4gICAgICBlbmQ6IGRhdGVcbiAgICB9O1xuICB9XG5cbiAgZ2V0TmV3U2VsZWN0aW9uRnJvbUV4aXN0aW5nKHByZXZpb3VzU2VsZWN0aW9uPzogRGF0ZUlucHV0LlNlbGVjdGlvbiB8IG51bGwpOiBEYXRlSW5wdXQuU2VsZWN0aW9uIHwgbnVsbCB7XG4gICAgaWYgKERhdGVJbnB1dC5pc1NlbGVjdGlvblJhbmdlKHByZXZpb3VzU2VsZWN0aW9uKSkge1xuICAgICAgLy8gSWYgd2UgZG9uJ3QgaGF2ZSBhbiBlbmQgZGF0ZSwgY3JlYXRlIHRoZSBuZXcgc2VsZWN0aW9uIGJhc2VkIG9uIHRoZSBzdGFydCBkYXRlIGZvcndhcmRzXG4gICAgICBpZiAoIXByZXZpb3VzU2VsZWN0aW9uLmVuZCAmJiBwcmV2aW91c1NlbGVjdGlvbi5zdGFydCkge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIHN0YXJ0OiBwcmV2aW91c1NlbGVjdGlvbi5zdGFydCxcbiAgICAgICAgICBlbmQ6IG1vbWVudChwcmV2aW91c1NlbGVjdGlvbi5zdGFydCkuYWRkKDYsICdkYXlzJykudG9EYXRlKClcbiAgICAgICAgfTtcbiAgICAgIC8vIE90aGVyd2lzZSwgY3JlYXRlIHRoZSBuZXcgc2VsZWN0aW9uIGJhc2VkIG9uIHRoZSBlbmQgZGF0ZSBiYWNrd2FyZHNcbiAgICAgIH0gZWxzZSBpZiAocHJldmlvdXNTZWxlY3Rpb24uZW5kKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmdldFNlbGVjdGlvbkZyb21EYXRlKHByZXZpb3VzU2VsZWN0aW9uLmVuZCk7XG4gICAgICB9XG4gICAgLy8gSWYgd2Ugb25seSBoYXZlIGEgc2luZ2xlIGRhdGUsIGNyZWF0ZSB0aGUgbmV3IHNlbGVjdGlvbiBiYXNlZCBvbiB0aGF0IGRhdGUgYmFja3dhcmRzXG4gICAgfSBlbHNlIGlmIChEYXRlSW5wdXQuaXNTZWxlY3Rpb25TaW5nbGVEYXRlKHByZXZpb3VzU2VsZWN0aW9uKSkge1xuICAgICAgcmV0dXJuIHRoaXMuZ2V0U2VsZWN0aW9uRnJvbURhdGUocHJldmlvdXNTZWxlY3Rpb24pO1xuICAgIH1cblxuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgZ2V0TmV4dFNlbGVjdGlvbihzZWxlY3Rpb246IERhdGVJbnB1dC5TZWxlY3Rpb24gfCBudWxsKTogRGF0ZUlucHV0LlNlbGVjdGlvbiB8IG51bGwge1xuICAgIC8vIFNoaWZ0IHRoZSByYW5nZSBmb3J3YXJkIGJ5IDcgZGF5c1xuICAgIGlmIChEYXRlSW5wdXQuaXNTZWxlY3Rpb25SYW5nZShzZWxlY3Rpb24pICYmIHNlbGVjdGlvbi5lbmQpIHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIHN0YXJ0OiBtb21lbnQoc2VsZWN0aW9uLmVuZCkuYWRkKDEsICdkYXknKS50b0RhdGUoKSxcbiAgICAgICAgZW5kOiBtb21lbnQoc2VsZWN0aW9uLmVuZCkuYWRkKDcsICdkYXlzJykudG9EYXRlKClcbiAgICAgIH07XG4gICAgfVxuXG4gICAgLy8gVGhpcyBzaG91bGRuJ3QgaGFwcGVuIHNpbmNlIHRoZSBuZXh0IHN0ZXBwZXIgaXMgZGlzYWJsZWQgaWYgdGhlIHNlbGVjdGlvbiBvbmx5IGhhcyBvbmUgZGF0ZS5cbiAgICAvLyBKdXN0IHJldHVybiB0aGUgc2VsZWN0aW9uIGFzLWlzIGluIHRoaXMgY2FzZS5cbiAgICByZXR1cm4gc2VsZWN0aW9uO1xuICB9XG5cbiAgZ2V0UHJldmlvdXNTZWxlY3Rpb24oc2VsZWN0aW9uOiBEYXRlSW5wdXQuU2VsZWN0aW9uIHwgbnVsbCk6IERhdGVJbnB1dC5TZWxlY3Rpb24gfCBudWxsIHtcbiAgICAvLyBTaGlmdCB0aGUgcmFuZ2UgYmFjayA3IGRheXNcbiAgICBpZiAoRGF0ZUlucHV0LmlzU2VsZWN0aW9uUmFuZ2Uoc2VsZWN0aW9uKSAmJiBzZWxlY3Rpb24uc3RhcnQpIHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIHN0YXJ0OiBtb21lbnQoc2VsZWN0aW9uLnN0YXJ0KS5zdWJ0cmFjdCg3LCAnZGF5cycpLnRvRGF0ZSgpLFxuICAgICAgICBlbmQ6IG1vbWVudChzZWxlY3Rpb24uc3RhcnQpLnN1YnRyYWN0KDEsICdkYXknKS50b0RhdGUoKVxuICAgICAgfTtcbiAgICB9XG5cbiAgICAvLyBUaGlzIHNob3VsZG4ndCBoYXBwZW4gc2luY2UgdGhlIHByZXZpb3VzIHN0ZXBwZXIgaXMgZGlzYWJsZWQgaWYgdGhlIHNlbGVjdGlvbiBvbmx5IGhhcyBvbmUgZGF0ZS5cbiAgICAvLyBKdXN0IHJldHVybiB0aGUgc2VsZWN0aW9uIGFzLWlzIGluIHRoaXMgY2FzZS5cbiAgICByZXR1cm4gc2VsZWN0aW9uO1xuICB9XG59XG4iXX0=
|
package/esm2022/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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9udGgtc2VsZWN0aW9uLXN0cmF0ZWd5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29tcG9uZW50cy9zcmMvbGliL2NvbnRyb2xzL2RhdGUtaW5wdXQvZGF0ZS1pbnB1dC1zZWxlY3Rpb24tc3RyYXRlZ2llcy9tb250aC1zZWxlY3Rpb24tc3RyYXRlZ3kudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxNQUFNLE1BQU0sUUFBUSxDQUFDO0FBRTVCLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNoRCxPQUFPLEVBQUUsOEJBQThCLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUV0Rjs7R0FFRztBQUNILE1BQU0sT0FBTyxzQkFBdUIsU0FBUSw4QkFBOEI7SUFBMUU7O1FBQ2tCLHNCQUFpQixHQUFzQixPQUFPLENBQUM7UUFDL0MsbUJBQWMsR0FBd0IsQ0FBQyxPQUFPLEVBQUUsTUFBTSxDQUFDLENBQUM7UUFDeEQseUJBQW9CLEdBQUcsS0FBSyxDQUFDO1FBQzdCLDBCQUFxQixHQUFHLEtBQUssQ0FBQztJQXdFaEQsQ0FBQztJQXRFQyxlQUFlLENBQUMsU0FBc0M7UUFDcEQsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO1lBQ2YsT0FBTyxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxDQUFDO1FBQzNDLENBQUM7UUFFRCw2RUFBNkU7UUFDN0UseUZBQXlGO1FBQ3pGLE1BQU0sSUFBSSxHQUFHLFNBQVMsQ0FBQyxnQkFBZ0IsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDO1FBQ2pGLE9BQU87WUFDTCxPQUFPLEVBQUUsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLE1BQU0sQ0FBQyxXQUFXLENBQUM7WUFDekMsUUFBUSxFQUFFLElBQUk7U0FDZixDQUFDO0lBQ0osQ0FBQztJQUVELGtCQUFrQixDQUFDLEtBQXNDLEVBQUUsWUFBc0IsRUFBRSxJQUErQjtRQUNoSCx3Q0FBd0M7UUFDeEMsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsT0FBTyxFQUFFLFlBQVksRUFBRSxJQUFJLENBQUMsQ0FBQztRQUVqRSxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDVixPQUFPLElBQUksQ0FBQztRQUNkLENBQUM7UUFFRCxPQUFPLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUN6QyxDQUFDO0lBRUQsb0JBQW9CLENBQUMsSUFBVTtRQUM3QixPQUFPO1lBQ0wsS0FBSyxFQUFFLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUMsTUFBTSxFQUFFO1lBQzdDLEdBQUcsRUFBRSxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDLE1BQU0sRUFBRTtTQUMxQyxDQUFDO0lBQ0osQ0FBQztJQUVELDJCQUEyQixDQUFDLGlCQUF1QztRQUNqRSxJQUFJLFNBQVMsQ0FBQyxnQkFBZ0IsQ0FBQyxpQkFBaUIsQ0FBQyxFQUFFLENBQUM7WUFDbEQsb0dBQW9HO1lBQ3BHLE1BQU0sSUFBSSxHQUFHLGlCQUFpQixDQUFDLEdBQUcsSUFBSSxpQkFBaUIsQ0FBQyxLQUFLLENBQUM7WUFDOUQsSUFBSSxJQUFJLEVBQUUsQ0FBQztnQkFDVCxPQUFPLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUN6QyxDQUFDO1FBQ0gsQ0FBQzthQUFNLElBQUksU0FBUyxDQUFDLHFCQUFxQixDQUFDLGlCQUFpQixDQUFDLEVBQUUsQ0FBQztZQUM5RCx5RUFBeUU7WUFDekUsT0FBTyxJQUFJLENBQUMsb0JBQW9CLENBQUMsaUJBQWlCLENBQUMsQ0FBQztRQUN0RCxDQUFDO1FBRUQsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRUQsZ0JBQWdCLENBQUMsU0FBcUM7UUFDcEQsdUNBQXVDO1FBQ3ZDLElBQUksU0FBUyxDQUFDLGdCQUFnQixDQUFDLFNBQVMsQ0FBQyxJQUFJLFNBQVMsQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUM3RCxNQUFNLElBQUksR0FBRyxNQUFNLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsT0FBTyxDQUFDLENBQUM7WUFDckQsT0FBTyxJQUFJLENBQUMsb0JBQW9CLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUM7UUFDbEQsQ0FBQztRQUVELCtGQUErRjtRQUMvRiwrQ0FBK0M7UUFDL0MsT0FBTyxTQUFTLENBQUM7SUFDbkIsQ0FBQztJQUVELG9CQUFvQixDQUFDLFNBQXFDO1FBQ3hELDJDQUEyQztRQUMzQyxJQUFJLFNBQVMsQ0FBQyxnQkFBZ0IsQ0FBQyxTQUFTLENBQUMsSUFBSSxTQUFTLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDN0QsTUFBTSxJQUFJLEdBQUcsTUFBTSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxFQUFFLE9BQU8sQ0FBQyxDQUFDO1lBQzFELE9BQU8sSUFBSSxDQUFDLG9CQUFvQixDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDO1FBQ2xELENBQUM7UUFFRCxtR0FBbUc7UUFDbkcsK0NBQStDO1FBQy9DLE9BQU8sU0FBUyxDQUFDO0lBQ25CLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBtb21lbnQgZnJvbSBcIm1vbWVudFwiO1xuaW1wb3J0IHsgQ2FsZW5kYXIgfSBmcm9tIFwiLi4vLi4vY2FsZW5kYXIvY2FsZW5kYXIudHlwZXNcIjtcbmltcG9ydCB7IERhdGVJbnB1dCB9IGZyb20gXCIuLi9kYXRlLWlucHV0LnR5cGVzXCI7XG5pbXBvcnQgeyBEYXRlSW5wdXRTZWxlY3Rpb25TdHJhdGVneUJhc2UgfSBmcm9tIFwiLi9kYXRlLWlucHV0LXNlbGVjdGlvbi1zdHJhdGVneS1iYXNlXCI7XG5cbi8qKlxuICogU2VsZWN0aW9uIHN0cmF0ZWd5IGZvciB0aGUgJ21vbnRoJyBzZWxlY3Rpb24gbW9kZS5cbiAqL1xuZXhwb3J0IGNsYXNzIE1vbnRoU2VsZWN0aW9uU3RyYXRlZ3kgZXh0ZW5kcyBEYXRlSW5wdXRTZWxlY3Rpb25TdHJhdGVneUJhc2Uge1xuICBwdWJsaWMgcmVhZG9ubHkgc2VsZWN0aW9uVmlld01vZGU6IENhbGVuZGFyLlZpZXdNb2RlID0gJ21vbnRoJztcbiAgcHVibGljIHJlYWRvbmx5IHZhbGlkVmlld01vZGVzOiBDYWxlbmRhci5WaWV3TW9kZVtdID0gWydtb250aCcsICd5ZWFyJ107XG4gIHB1YmxpYyByZWFkb25seSBzaG93U2Vjb25kYXJ5VGV4dGJveCA9IGZhbHNlO1xuICBwdWJsaWMgcmVhZG9ubHkgc2hvd1NlY29uZGFyeUNhbGVuZGFyID0gZmFsc2U7XG5cbiAgZm9ybWF0U2VsZWN0aW9uKHNlbGVjdGlvbj86IERhdGVJbnB1dC5TZWxlY3Rpb24gfCBudWxsKTogRGF0ZUlucHV0LlRleHRib3hHcm91cFsndmFsdWUnXSB7XG4gICAgaWYgKCFzZWxlY3Rpb24pIHtcbiAgICAgIHJldHVybiB7IHRleHRib3g6IG51bGwsIHRleHRib3gyOiBudWxsIH07XG4gICAgfVxuXG4gICAgLy8gV2Ugb25seSBuZWVkIG9uZSBkYXRlIGluIHRoZSByYW5nZSB0byBmb3JtYXQgc2luY2UgaXQgb25seSBzcGFucyBvbmUgbW9udGhcbiAgICAvLyBBIHNpbmdsZSBkYXRlIHNlbGVjdGlvbiBzaG91bGRuJ3QgaGFwcGVuIGluIHRoaXMgbW9kZSBidXQgaXQncyBzaW1wbGUgZW5vdWdoIHRvIGhhbmRsZVxuICAgIGNvbnN0IGRhdGUgPSBEYXRlSW5wdXQuaXNTZWxlY3Rpb25SYW5nZShzZWxlY3Rpb24pID8gc2VsZWN0aW9uLnN0YXJ0IDogc2VsZWN0aW9uO1xuICAgIHJldHVybiB7XG4gICAgICB0ZXh0Ym94OiBtb21lbnQoZGF0ZSkuZm9ybWF0KCdNTU0sIFlZWVknKSxcbiAgICAgIHRleHRib3gyOiBudWxsXG4gICAgfTtcbiAgfVxuXG4gIHBhcnNlVGV4dGJveFZhbHVlcyh2YWx1ZTogRGF0ZUlucHV0LlRleHRib3hHcm91cFsndmFsdWUnXSwgcGFyc2VGb3JtYXRzOiBzdHJpbmdbXSwgb3B0cz86IERhdGVJbnB1dC5QYXJzaW5nT3B0aW9ucyk6IERhdGVJbnB1dC5TZWxlY3Rpb24gfCBudWxsIHtcbiAgICAvLyBPbmx5IG9uZSB0ZXh0Ym94IGlzIHVzZWQgaW4gdGhpcyBtb2RlXG4gICAgY29uc3QgZGF0ZSA9IHRoaXMucGFyc2VTdHJpbmcodmFsdWUudGV4dGJveCwgcGFyc2VGb3JtYXRzLCBvcHRzKTtcblxuICAgIGlmICghZGF0ZSkge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMuZ2V0U2VsZWN0aW9uRnJvbURhdGUoZGF0ZSk7XG4gIH1cblxuICBnZXRTZWxlY3Rpb25Gcm9tRGF0ZShkYXRlOiBEYXRlKTogRGF0ZUlucHV0LlNlbGVjdGlvbiB8IG51bGwge1xuICAgIHJldHVybiB7XG4gICAgICBzdGFydDogbW9tZW50KGRhdGUpLnN0YXJ0T2YoJ21vbnRoJykudG9EYXRlKCksXG4gICAgICBlbmQ6IG1vbWVudChkYXRlKS5lbmRPZignbW9udGgnKS50b0RhdGUoKVxuICAgIH07XG4gIH1cblxuICBnZXROZXdTZWxlY3Rpb25Gcm9tRXhpc3RpbmcocHJldmlvdXNTZWxlY3Rpb24/OiBEYXRlSW5wdXQuU2VsZWN0aW9uKTogRGF0ZUlucHV0LlNlbGVjdGlvbiB8IG51bGwge1xuICAgIGlmIChEYXRlSW5wdXQuaXNTZWxlY3Rpb25SYW5nZShwcmV2aW91c1NlbGVjdGlvbikpIHtcbiAgICAgIC8vIFdlJ2xsIHVzZSB0aGUgZXhpc3Rpbmcgc2VsZWN0aW9uJ3MgZW5kIGRhdGUgYW5kIGZhbGwgYmFjayB0byB0aGUgc3RhcnQgZGF0ZSBpZiBpdCdzIG5vdCBhdmFpbGFibGVcbiAgICAgIGNvbnN0IGRhdGUgPSBwcmV2aW91c1NlbGVjdGlvbi5lbmQgfHwgcHJldmlvdXNTZWxlY3Rpb24uc3RhcnQ7XG4gICAgICBpZiAoZGF0ZSkge1xuICAgICAgICByZXR1cm4gdGhpcy5nZXRTZWxlY3Rpb25Gcm9tRGF0ZShkYXRlKTtcbiAgICAgIH1cbiAgICB9IGVsc2UgaWYgKERhdGVJbnB1dC5pc1NlbGVjdGlvblNpbmdsZURhdGUocHJldmlvdXNTZWxlY3Rpb24pKSB7XG4gICAgICAvLyBJZiB0aGUgcHJldmlvdXMgc2VsZWN0aW9uIHdhcyBhIHNpbmdsZSBkYXRlLCBtYWtlIHRoZSByYW5nZSB0aGF0IG1vbnRoXG4gICAgICByZXR1cm4gdGhpcy5nZXRTZWxlY3Rpb25Gcm9tRGF0ZShwcmV2aW91c1NlbGVjdGlvbik7XG4gICAgfVxuXG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICBnZXROZXh0U2VsZWN0aW9uKHNlbGVjdGlvbjogRGF0ZUlucHV0LlNlbGVjdGlvbiB8IG51bGwpOiBEYXRlSW5wdXQuU2VsZWN0aW9uIHwgbnVsbCB7XG4gICAgLy8gTW92ZSB0aGUgc2VsZWN0aW9uIHRvIHRoZSBuZXh0IG1vbnRoXG4gICAgaWYgKERhdGVJbnB1dC5pc1NlbGVjdGlvblJhbmdlKHNlbGVjdGlvbikgJiYgc2VsZWN0aW9uLnN0YXJ0KSB7IFxuICAgICAgY29uc3QgZGF0ZSA9IG1vbWVudChzZWxlY3Rpb24uc3RhcnQpLmFkZCgxLCAnbW9udGgnKTtcbiAgICAgIHJldHVybiB0aGlzLmdldFNlbGVjdGlvbkZyb21EYXRlKGRhdGUudG9EYXRlKCkpO1xuICAgIH1cblxuICAgIC8vIFRoaXMgc2hvdWxkbid0IGhhcHBlbiBzaW5jZSB0aGUgbmV4dCBzdGVwcGVyIGlzIGRpc2FibGVkIGlmIHRoZSBzZWxlY3Rpb24gb25seSBoYXMgb25lIGRhdGUuXG4gICAgLy8gSWYgaXQgZG9lcywganVzdCByZXR1cm4gdGhlIHNlbGVjdGlvbiBhcy1pcy5cbiAgICByZXR1cm4gc2VsZWN0aW9uO1xuICB9XG5cbiAgZ2V0UHJldmlvdXNTZWxlY3Rpb24oc2VsZWN0aW9uOiBEYXRlSW5wdXQuU2VsZWN0aW9uIHwgbnVsbCk6IERhdGVJbnB1dC5TZWxlY3Rpb24gfCBudWxsIHtcbiAgICAvLyBNb3ZlIHRoZSBzZWxlY3Rpb24gdG8gdGhlIHByZXZpb3VzIG1vbnRoXG4gICAgaWYgKERhdGVJbnB1dC5pc1NlbGVjdGlvblJhbmdlKHNlbGVjdGlvbikgJiYgc2VsZWN0aW9uLnN0YXJ0KSB7XG4gICAgICBjb25zdCBkYXRlID0gbW9tZW50KHNlbGVjdGlvbi5zdGFydCkuc3VidHJhY3QoMSwgJ21vbnRoJyk7XG4gICAgICByZXR1cm4gdGhpcy5nZXRTZWxlY3Rpb25Gcm9tRGF0ZShkYXRlLnRvRGF0ZSgpKTtcbiAgICB9XG5cbiAgICAvLyBUaGlzIHNob3VsZG4ndCBoYXBwZW4gc2luY2UgdGhlIHByZXZpb3VzIHN0ZXBwZXIgaXMgZGlzYWJsZWQgaWYgdGhlIHNlbGVjdGlvbiBvbmx5IGhhcyBvbmUgZGF0ZS5cbiAgICAvLyBJZiBpdCBkb2VzLCBqdXN0IHJldHVybiB0aGUgc2VsZWN0aW9uIGFzLWlzLlxuICAgIHJldHVybiBzZWxlY3Rpb247XG4gIH1cbn1cbiJdfQ==
|
|
@@ -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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVhcnRlci1zZWxlY3Rpb24tc3RyYXRlZ3kuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb21wb25lbnRzL3NyYy9saWIvY29udHJvbHMvZGF0ZS1pbnB1dC9kYXRlLWlucHV0LXNlbGVjdGlvbi1zdHJhdGVnaWVzL3F1YXJ0ZXItc2VsZWN0aW9uLXN0cmF0ZWd5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sTUFBTSxNQUFNLFFBQVEsQ0FBQztBQUU1QixPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDaEQsT0FBTyxFQUFFLDhCQUE4QixFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFFdEY7O0dBRUc7QUFDSCxNQUFNLE9BQU8sd0JBQXlCLFNBQVEsOEJBQThCO0lBQTVFOztRQUNrQixzQkFBaUIsR0FBc0IsU0FBUyxDQUFDO1FBQ2pELG1CQUFjLEdBQXdCLENBQUMsU0FBUyxFQUFFLE1BQU0sQ0FBQyxDQUFDO1FBQzFELHlCQUFvQixHQUFHLEtBQUssQ0FBQztRQUM3QiwwQkFBcUIsR0FBRyxLQUFLLENBQUM7SUEyRWhELENBQUM7SUF6RUMsZUFBZSxDQUFDLFNBQXNDO1FBQ3BELGtEQUFrRDtRQUNsRCx3Q0FBd0M7UUFDeEMsSUFBSSxTQUFTLENBQUMsZ0JBQWdCLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQztZQUMxQyxNQUFNLEtBQUssR0FBRyxNQUFNLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUNwRCxNQUFNLEdBQUcsR0FBRyxNQUFNLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUNoRCxNQUFNLElBQUksR0FBRyxNQUFNLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUNsRCxPQUFPO2dCQUNMLE9BQU8sRUFBRSxHQUFHLEtBQUssSUFBSSxHQUFHLEtBQUssSUFBSSxFQUFFO2dCQUNuQyxRQUFRLEVBQUUsSUFBSTthQUNmLENBQUM7UUFDSixDQUFDO1FBRUQscUZBQXFGO1FBQ3JGLE9BQU8sRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsQ0FBQztJQUMzQyxDQUFDO0lBRUQsa0JBQWtCLENBQUMsS0FBc0MsRUFBRSxZQUFzQixFQUFFLElBQStCO1FBQ2hILHdDQUF3QztRQUN4QyxNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxPQUFPLEVBQUUsWUFBWSxFQUFFLElBQUksQ0FBQyxDQUFDO1FBRWpFLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUNWLE9BQU8sSUFBSSxDQUFDO1FBQ2QsQ0FBQztRQUVELE9BQU8sSUFBSSxDQUFDLG9CQUFvQixDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3pDLENBQUM7SUFFRCxvQkFBb0IsQ0FBQyxJQUFVO1FBQzdCLE9BQU87WUFDTCxLQUFLLEVBQUUsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FBQyxNQUFNLEVBQUU7WUFDL0MsR0FBRyxFQUFFLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDLENBQUMsTUFBTSxFQUFFO1NBQzVDLENBQUM7SUFDSixDQUFDO0lBRUQsMkJBQTJCLENBQUMsaUJBQXVDO1FBQ2pFLElBQUksU0FBUyxDQUFDLGdCQUFnQixDQUFDLGlCQUFpQixDQUFDLEVBQUUsQ0FBQztZQUNsRCxrR0FBa0c7WUFDbEcsTUFBTSxJQUFJLEdBQUcsaUJBQWlCLENBQUMsR0FBRyxJQUFJLGlCQUFpQixDQUFDLEtBQUssQ0FBQztZQUM5RCxJQUFJLElBQUksRUFBRSxDQUFDO2dCQUNULE9BQU8sSUFBSSxDQUFDLG9CQUFvQixDQUFDLElBQUksQ0FBQyxDQUFDO1lBQ3pDLENBQUM7UUFDSCxDQUFDO2FBQU0sSUFBSSxTQUFTLENBQUMscUJBQXFCLENBQUMsaUJBQWlCLENBQUMsRUFBRSxDQUFDO1lBQzlELDJFQUEyRTtZQUMzRSxPQUFPLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO1FBQ3RELENBQUM7UUFFRCxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFRCxnQkFBZ0IsQ0FBQyxTQUFxQztRQUNwRCx5Q0FBeUM7UUFDekMsSUFBSSxTQUFTLENBQUMsZ0JBQWdCLENBQUMsU0FBUyxDQUFDLElBQUksU0FBUyxDQUFDLEtBQUssRUFBRSxDQUFDO1lBQzdELE1BQU0sSUFBSSxHQUFHLE1BQU0sQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxTQUFTLENBQUMsQ0FBQztZQUN2RCxPQUFPLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQztRQUNsRCxDQUFDO1FBRUQsK0ZBQStGO1FBQy9GLCtDQUErQztRQUMvQyxPQUFPLFNBQVMsQ0FBQztJQUNuQixDQUFDO0lBRUQsb0JBQW9CLENBQUMsU0FBcUM7UUFDeEQsNkNBQTZDO1FBQzdDLElBQUksU0FBUyxDQUFDLGdCQUFnQixDQUFDLFNBQVMsQ0FBQyxJQUFJLFNBQVMsQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUM3RCxNQUFNLElBQUksR0FBRyxNQUFNLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLEVBQUUsU0FBUyxDQUFDLENBQUM7WUFDNUQsT0FBTyxJQUFJLENBQUMsb0JBQW9CLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUM7UUFDbEQsQ0FBQztRQUVELG1HQUFtRztRQUNuRywrQ0FBK0M7UUFDL0MsT0FBTyxTQUFTLENBQUM7SUFDbkIsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IG1vbWVudCBmcm9tIFwibW9tZW50XCI7XG5pbXBvcnQgeyBDYWxlbmRhciB9IGZyb20gXCIuLi8uLi9jYWxlbmRhci9jYWxlbmRhci50eXBlc1wiO1xuaW1wb3J0IHsgRGF0ZUlucHV0IH0gZnJvbSBcIi4uL2RhdGUtaW5wdXQudHlwZXNcIjtcbmltcG9ydCB7IERhdGVJbnB1dFNlbGVjdGlvblN0cmF0ZWd5QmFzZSB9IGZyb20gXCIuL2RhdGUtaW5wdXQtc2VsZWN0aW9uLXN0cmF0ZWd5LWJhc2VcIjtcblxuLyoqXG4gKiBTZWxlY3Rpb24gc3RyYXRlZ3kgZm9yIHRoZSAnbW9udGgnIHNlbGVjdGlvbiBtb2RlLlxuICovXG5leHBvcnQgY2xhc3MgUXVhcnRlclNlbGVjdGlvblN0cmF0ZWd5IGV4dGVuZHMgRGF0ZUlucHV0U2VsZWN0aW9uU3RyYXRlZ3lCYXNlIHtcbiAgcHVibGljIHJlYWRvbmx5IHNlbGVjdGlvblZpZXdNb2RlOiBDYWxlbmRhci5WaWV3TW9kZSA9ICdxdWFydGVyJztcbiAgcHVibGljIHJlYWRvbmx5IHZhbGlkVmlld01vZGVzOiBDYWxlbmRhci5WaWV3TW9kZVtdID0gWydxdWFydGVyJywgJ3llYXInXTtcbiAgcHVibGljIHJlYWRvbmx5IHNob3dTZWNvbmRhcnlUZXh0Ym94ID0gZmFsc2U7XG4gIHB1YmxpYyByZWFkb25seSBzaG93U2Vjb25kYXJ5Q2FsZW5kYXIgPSBmYWxzZTtcblxuICBmb3JtYXRTZWxlY3Rpb24oc2VsZWN0aW9uPzogRGF0ZUlucHV0LlNlbGVjdGlvbiB8IG51bGwpOiBEYXRlSW5wdXQuVGV4dGJveEdyb3VwWyd2YWx1ZSddIHtcbiAgICAvLyBGb3JtYXQgdGhlIHRoZSBxdWFydGVyIHJhbmdlIGFzIFwiTU1N4oCTTU1NLCBZWVlZXCJcbiAgICAvLyBXZSBvbmx5IGhhdmUgb25lIHRleHRib3ggaW4gdGhpcyBtb2RlXG4gICAgaWYgKERhdGVJbnB1dC5pc1NlbGVjdGlvblJhbmdlKHNlbGVjdGlvbikpIHtcbiAgICAgIGNvbnN0IHN0YXJ0ID0gbW9tZW50KHNlbGVjdGlvbi5zdGFydCkuZm9ybWF0KCdNTU0nKTtcbiAgICAgIGNvbnN0IGVuZCA9IG1vbWVudChzZWxlY3Rpb24uZW5kKS5mb3JtYXQoJ01NTScpO1xuICAgICAgY29uc3QgeWVhciA9IG1vbWVudChzZWxlY3Rpb24uZW5kKS5mb3JtYXQoJ1lZWVknKTtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIHRleHRib3g6IGAke3N0YXJ0feKAkyR7ZW5kfSwgJHt5ZWFyfWAsXG4gICAgICAgIHRleHRib3gyOiBudWxsXG4gICAgICB9O1xuICAgIH1cbiAgICBcbiAgICAvLyBUaGlzIHNob3VsZG4ndCBoYXBwZW4gc2luY2UgdGhlIHNlbGVjdGlvbiBzaG91bGQgYWx3YXlzIGJlIGEgcmFuZ2UgaW4gcXVhcnRlciBtb2RlXG4gICAgcmV0dXJuIHsgdGV4dGJveDogbnVsbCwgdGV4dGJveDI6IG51bGwgfTtcbiAgfVxuXG4gIHBhcnNlVGV4dGJveFZhbHVlcyh2YWx1ZTogRGF0ZUlucHV0LlRleHRib3hHcm91cFsndmFsdWUnXSwgcGFyc2VGb3JtYXRzOiBzdHJpbmdbXSwgb3B0cz86IERhdGVJbnB1dC5QYXJzaW5nT3B0aW9ucyk6IERhdGVJbnB1dC5TZWxlY3Rpb24gfCBudWxsIHtcbiAgICAvLyBPbmx5IG9uZSB0ZXh0Ym94IGlzIHVzZWQgaW4gdGhpcyBtb2RlXG4gICAgY29uc3QgZGF0ZSA9IHRoaXMucGFyc2VTdHJpbmcodmFsdWUudGV4dGJveCwgcGFyc2VGb3JtYXRzLCBvcHRzKTtcbiAgICBcbiAgICBpZiAoIWRhdGUpIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIHJldHVybiB0aGlzLmdldFNlbGVjdGlvbkZyb21EYXRlKGRhdGUpO1xuICB9XG5cbiAgZ2V0U2VsZWN0aW9uRnJvbURhdGUoZGF0ZTogRGF0ZSk6IERhdGVJbnB1dC5TZWxlY3Rpb24gfCBudWxsIHtcbiAgICByZXR1cm4ge1xuICAgICAgc3RhcnQ6IG1vbWVudChkYXRlKS5zdGFydE9mKCdxdWFydGVyJykudG9EYXRlKCksXG4gICAgICBlbmQ6IG1vbWVudChkYXRlKS5lbmRPZigncXVhcnRlcicpLnRvRGF0ZSgpXG4gICAgfTtcbiAgfVxuXG4gIGdldE5ld1NlbGVjdGlvbkZyb21FeGlzdGluZyhwcmV2aW91c1NlbGVjdGlvbj86IERhdGVJbnB1dC5TZWxlY3Rpb24pOiBEYXRlSW5wdXQuU2VsZWN0aW9uIHwgbnVsbCB7XG4gICAgaWYgKERhdGVJbnB1dC5pc1NlbGVjdGlvblJhbmdlKHByZXZpb3VzU2VsZWN0aW9uKSkge1xuICAgICAgLy8gQmFzZSB0aGUgcXVhcnRlciByYW5nZSBvZmYgb2YgdGhlIGV4aXN0aW5nIHNlbGVjdGlvbidzIGVuZCBkYXRlLCBmYWxsaW5nIGJhY2sgdG8gdGhlIHN0YXJ0IGRhdGVcbiAgICAgIGNvbnN0IGRhdGUgPSBwcmV2aW91c1NlbGVjdGlvbi5lbmQgfHwgcHJldmlvdXNTZWxlY3Rpb24uc3RhcnQ7XG4gICAgICBpZiAoZGF0ZSkge1xuICAgICAgICByZXR1cm4gdGhpcy5nZXRTZWxlY3Rpb25Gcm9tRGF0ZShkYXRlKTtcbiAgICAgIH1cbiAgICB9IGVsc2UgaWYgKERhdGVJbnB1dC5pc1NlbGVjdGlvblNpbmdsZURhdGUocHJldmlvdXNTZWxlY3Rpb24pKSB7XG4gICAgICAvLyBJZiB0aGUgcHJldmlvdXMgc2VsZWN0aW9uIHdhcyBhIHNpbmdsZSBkYXRlLCBtYWtlIHRoZSByYW5nZSB0aGF0IHF1YXJ0ZXJcbiAgICAgIHJldHVybiB0aGlzLmdldFNlbGVjdGlvbkZyb21EYXRlKHByZXZpb3VzU2VsZWN0aW9uKTtcbiAgICB9XG5cbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIGdldE5leHRTZWxlY3Rpb24oc2VsZWN0aW9uOiBEYXRlSW5wdXQuU2VsZWN0aW9uIHwgbnVsbCk6IERhdGVJbnB1dC5TZWxlY3Rpb24gfCBudWxsIHtcbiAgICAvLyBNb3ZlIHRoZSBzZWxlY3Rpb24gdG8gdGhlIG5leHQgcXVhcnRlclxuICAgIGlmIChEYXRlSW5wdXQuaXNTZWxlY3Rpb25SYW5nZShzZWxlY3Rpb24pICYmIHNlbGVjdGlvbi5zdGFydCkge1xuICAgICAgY29uc3QgZGF0ZSA9IG1vbWVudChzZWxlY3Rpb24uc3RhcnQpLmFkZCgxLCAncXVhcnRlcicpO1xuICAgICAgcmV0dXJuIHRoaXMuZ2V0U2VsZWN0aW9uRnJvbURhdGUoZGF0ZS50b0RhdGUoKSk7XG4gICAgfVxuXG4gICAgLy8gVGhpcyBzaG91bGRuJ3QgaGFwcGVuIHNpbmNlIHRoZSBuZXh0IHN0ZXBwZXIgaXMgZGlzYWJsZWQgaWYgdGhlIHNlbGVjdGlvbiBvbmx5IGhhcyBvbmUgZGF0ZS5cbiAgICAvLyBJZiBpdCBkb2VzLCBqdXN0IHJldHVybiB0aGUgc2VsZWN0aW9uIGFzLWlzLlxuICAgIHJldHVybiBzZWxlY3Rpb247XG4gIH1cblxuICBnZXRQcmV2aW91c1NlbGVjdGlvbihzZWxlY3Rpb246IERhdGVJbnB1dC5TZWxlY3Rpb24gfCBudWxsKTogRGF0ZUlucHV0LlNlbGVjdGlvbiB8IG51bGwge1xuICAgIC8vIE1vdmUgdGhlIHNlbGVjdGlvbiB0byB0aGUgcHJldmlvdXMgcXVhcnRlclxuICAgIGlmIChEYXRlSW5wdXQuaXNTZWxlY3Rpb25SYW5nZShzZWxlY3Rpb24pICYmIHNlbGVjdGlvbi5zdGFydCkge1xuICAgICAgY29uc3QgZGF0ZSA9IG1vbWVudChzZWxlY3Rpb24uc3RhcnQpLnN1YnRyYWN0KDEsICdxdWFydGVyJyk7XG4gICAgICByZXR1cm4gdGhpcy5nZXRTZWxlY3Rpb25Gcm9tRGF0ZShkYXRlLnRvRGF0ZSgpKTtcbiAgICB9XG5cbiAgICAvLyBUaGlzIHNob3VsZG4ndCBoYXBwZW4gc2luY2UgdGhlIHByZXZpb3VzIHN0ZXBwZXIgaXMgZGlzYWJsZWQgaWYgdGhlIHNlbGVjdGlvbiBvbmx5IGhhcyBvbmUgZGF0ZS5cbiAgICAvLyBJZiBpdCBkb2VzLCBqdXN0IHJldHVybiB0aGUgc2VsZWN0aW9uIGFzLWlzLlxuICAgIHJldHVybiBzZWxlY3Rpb247XG4gIH1cbn1cbiJdfQ==
|