@synerise/ds-date-range-picker 1.6.10 → 1.6.12
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/CHANGELOG.md +8 -0
- package/README.md +12 -6
- package/dist/AddonCollapse/AddonCollapse.d.ts +2 -2
- package/dist/AddonCollapse/AddonCollapse.js +22 -19
- package/dist/AddonCollapse/AddonCollapse.styles.d.ts +5 -5
- package/dist/AddonCollapse/AddonCollapse.styles.js +16 -13
- package/dist/AddonCollapse/AddonCollapse.types.d.ts +1 -1
- package/dist/AddonCollapse/AddonCollapse.types.js +1 -1
- package/dist/DateRangePicker.d.ts +2 -2
- package/dist/DateRangePicker.js +64 -112
- package/dist/DateRangePicker.styles.d.ts +8 -8
- package/dist/DateRangePicker.styles.js +24 -24
- package/dist/DateRangePicker.types.d.ts +11 -11
- package/dist/DateRangePicker.types.js +1 -1
- package/dist/Footer/Footer.d.ts +2 -2
- package/dist/Footer/Footer.js +63 -65
- package/dist/Footer/Footer.styles.d.ts +6 -6
- package/dist/Footer/Footer.styles.js +19 -27
- package/dist/Footer/Footer.types.d.ts +3 -3
- package/dist/Footer/Footer.types.js +1 -1
- package/dist/RangeFilter/Filters/DailyFilter/DailyFilter.d.ts +8 -8
- package/dist/RangeFilter/Filters/DailyFilter/DailyFilter.js +55 -44
- package/dist/RangeFilter/Filters/DailyFilter/DailyFilter.styles.d.ts +1 -1
- package/dist/RangeFilter/Filters/DailyFilter/DailyFilter.styles.js +6 -3
- package/dist/RangeFilter/Filters/MonthlyFilter/MonthlyFilter.d.ts +3 -3
- package/dist/RangeFilter/Filters/MonthlyFilter/MonthlyFilter.js +283 -324
- package/dist/RangeFilter/Filters/MonthlyFilter/MonthlyFilter.styles.d.ts +11 -11
- package/dist/RangeFilter/Filters/MonthlyFilter/MonthlyFilter.styles.js +26 -18
- package/dist/RangeFilter/Filters/MonthlyFilter/MonthlyFilter.types.d.ts +7 -7
- package/dist/RangeFilter/Filters/MonthlyFilter/MonthlyFilter.types.js +1 -1
- package/dist/RangeFilter/Filters/WeeklyFilter/WeeklyFilter.d.ts +1 -1
- package/dist/RangeFilter/Filters/WeeklyFilter/WeeklyFilter.js +45 -44
- package/dist/RangeFilter/Filters/WeeklyFilter/WeeklyFilter.types.d.ts +5 -5
- package/dist/RangeFilter/Filters/WeeklyFilter/WeeklyFilter.types.js +1 -1
- package/dist/RangeFilter/Filters/new/Daily/Daily.d.ts +2 -2
- package/dist/RangeFilter/Filters/new/Daily/Daily.js +72 -92
- package/dist/RangeFilter/Filters/new/Daily/Daily.types.d.ts +6 -6
- package/dist/RangeFilter/Filters/new/Daily/Daily.types.js +1 -1
- package/dist/RangeFilter/Filters/new/Filters.types.d.ts +3 -3
- package/dist/RangeFilter/Filters/new/Filters.types.js +1 -1
- package/dist/RangeFilter/Filters/new/Monthly/Monthly.d.ts +2 -2
- package/dist/RangeFilter/Filters/new/Monthly/Monthly.js +207 -264
- package/dist/RangeFilter/Filters/new/Monthly/Monthly.types.d.ts +7 -7
- package/dist/RangeFilter/Filters/new/Monthly/Monthly.types.js +1 -1
- package/dist/RangeFilter/Filters/new/Monthly/utils.d.ts +2 -2
- package/dist/RangeFilter/Filters/new/Monthly/utils.js +17 -20
- package/dist/RangeFilter/Filters/new/Weekly/Weekly.d.ts +2 -2
- package/dist/RangeFilter/Filters/new/Weekly/Weekly.js +173 -227
- package/dist/RangeFilter/Filters/new/Weekly/Weekly.types.d.ts +6 -6
- package/dist/RangeFilter/Filters/new/Weekly/Weekly.types.js +1 -1
- package/dist/RangeFilter/Filters/new/Weekly/utils.d.ts +2 -2
- package/dist/RangeFilter/Filters/new/Weekly/utils.js +22 -26
- package/dist/RangeFilter/Filters/new/constants.js +17 -9
- package/dist/RangeFilter/Filters/new/filters.spec.constants.d.ts +333 -0
- package/dist/RangeFilter/Filters/new/filters.spec.constants.js +218 -0
- package/dist/RangeFilter/Filters/new/hooks/useShiftAndControlKeys.d.ts +1 -1
- package/dist/RangeFilter/Filters/new/hooks/useShiftAndControlKeys.js +16 -23
- package/dist/RangeFilter/RangeFilter.d.ts +3 -3
- package/dist/RangeFilter/RangeFilter.js +171 -168
- package/dist/RangeFilter/RangeFilter.styles.d.ts +9 -9
- package/dist/RangeFilter/RangeFilter.styles.js +24 -17
- package/dist/RangeFilter/RangeFilter.types.d.ts +6 -6
- package/dist/RangeFilter/RangeFilter.types.js +1 -1
- package/dist/RangeFilter/Shared/AddButton/AddButton.d.ts +2 -2
- package/dist/RangeFilter/Shared/AddButton/AddButton.js +17 -19
- package/dist/RangeFilter/Shared/AddButton/AddButton.types.d.ts +2 -2
- package/dist/RangeFilter/Shared/AddButton/AddButton.types.js +1 -1
- package/dist/RangeFilter/Shared/FilterDropdown/FilterDropdown.d.ts +2 -2
- package/dist/RangeFilter/Shared/FilterDropdown/FilterDropdown.js +31 -54
- package/dist/RangeFilter/Shared/FilterDropdown/FilterDropdown.styles.d.ts +3 -3
- package/dist/RangeFilter/Shared/FilterDropdown/FilterDropdown.styles.js +11 -6
- package/dist/RangeFilter/Shared/FilterDropdown/FilterDropdown.types.d.ts +2 -2
- package/dist/RangeFilter/Shared/FilterDropdown/FilterDropdown.types.js +1 -1
- package/dist/RangeFilter/Shared/RangeFilterStatus/RangeFilterStatus.d.ts +2 -2
- package/dist/RangeFilter/Shared/RangeFilterStatus/RangeFilterStatus.js +34 -46
- package/dist/RangeFilter/Shared/RangeFilterStatus/RangeFilterStatus.styles.d.ts +6 -6
- package/dist/RangeFilter/Shared/RangeFilterStatus/RangeFilterStatus.styles.js +21 -17
- package/dist/RangeFilter/Shared/RangeFilterStatus/RangeFilterStatus.types.d.ts +3 -3
- package/dist/RangeFilter/Shared/RangeFilterStatus/RangeFilterStatus.types.js +1 -1
- package/dist/RangeFilter/Shared/SaveFilterForm/SaveFilterForm.d.ts +2 -2
- package/dist/RangeFilter/Shared/SaveFilterForm/SaveFilterForm.js +26 -45
- package/dist/RangeFilter/Shared/SaveFilterForm/SaveFilterForm.styles.d.ts +2 -2
- package/dist/RangeFilter/Shared/SaveFilterForm/SaveFilterForm.styles.js +9 -5
- package/dist/RangeFilter/Shared/SaveFilterForm/SaveFilterForm.types.d.ts +1 -1
- package/dist/RangeFilter/Shared/SaveFilterForm/SaveFilterForm.types.js +1 -1
- package/dist/RangeFilter/Shared/SelectionCount/SelectionCount.d.ts +2 -2
- package/dist/RangeFilter/Shared/SelectionCount/SelectionCount.js +18 -7
- package/dist/RangeFilter/Shared/SelectionCount/SelectionCount.styles.d.ts +2 -2
- package/dist/RangeFilter/Shared/SelectionCount/SelectionCount.styles.js +8 -4
- package/dist/RangeFilter/Shared/SelectionCount/SelectionCount.types.d.ts +1 -1
- package/dist/RangeFilter/Shared/SelectionCount/SelectionCount.types.js +1 -1
- package/dist/RangeFilter/Shared/SelectionHint/SelectionHint.d.ts +2 -2
- package/dist/RangeFilter/Shared/SelectionHint/SelectionHint.js +17 -12
- package/dist/RangeFilter/Shared/TimeWindow/Day/Day.d.ts +2 -2
- package/dist/RangeFilter/Shared/TimeWindow/Day/Day.js +39 -66
- package/dist/RangeFilter/Shared/TimeWindow/Day/Day.styles.d.ts +4 -4
- package/dist/RangeFilter/Shared/TimeWindow/Day/Day.styles.js +13 -13
- package/dist/RangeFilter/Shared/TimeWindow/Day/Day.types.d.ts +4 -4
- package/dist/RangeFilter/Shared/TimeWindow/Day/Day.types.js +1 -1
- package/dist/RangeFilter/Shared/TimeWindow/Grid/Grid.d.ts +2 -2
- package/dist/RangeFilter/Shared/TimeWindow/Grid/Grid.js +43 -47
- package/dist/RangeFilter/Shared/TimeWindow/Grid/Grid.types.d.ts +4 -4
- package/dist/RangeFilter/Shared/TimeWindow/Grid/Grid.types.js +1 -1
- package/dist/RangeFilter/Shared/TimeWindow/Header/Header.d.ts +1 -1
- package/dist/RangeFilter/Shared/TimeWindow/Header/Header.js +15 -20
- package/dist/RangeFilter/Shared/TimeWindow/Header/Header.styles.d.ts +5 -5
- package/dist/RangeFilter/Shared/TimeWindow/Header/Header.styles.js +14 -7
- package/dist/RangeFilter/Shared/TimeWindow/RangeActions/RangeActions.d.ts +2 -2
- package/dist/RangeFilter/Shared/TimeWindow/RangeActions/RangeActions.js +33 -56
- package/dist/RangeFilter/Shared/TimeWindow/RangeActions/RangeActions.styles.d.ts +2 -2
- package/dist/RangeFilter/Shared/TimeWindow/RangeActions/RangeActions.styles.js +9 -5
- package/dist/RangeFilter/Shared/TimeWindow/RangeActions/RangeActions.types.d.ts +2 -2
- package/dist/RangeFilter/Shared/TimeWindow/RangeActions/RangeActions.types.js +1 -1
- package/dist/RangeFilter/Shared/TimeWindow/RangeFormContainer/RangeForm/RangeForm.constants.d.ts +1 -1
- package/dist/RangeFilter/Shared/TimeWindow/RangeFormContainer/RangeForm/RangeForm.constants.js +22 -14
- package/dist/RangeFilter/Shared/TimeWindow/RangeFormContainer/RangeForm/RangeForm.d.ts +2 -2
- package/dist/RangeFilter/Shared/TimeWindow/RangeFormContainer/RangeForm/RangeForm.js +89 -157
- package/dist/RangeFilter/Shared/TimeWindow/RangeFormContainer/RangeForm/RangeForm.styles.d.ts +5 -5
- package/dist/RangeFilter/Shared/TimeWindow/RangeFormContainer/RangeForm/RangeForm.styles.js +13 -13
- package/dist/RangeFilter/Shared/TimeWindow/RangeFormContainer/RangeForm/RangeForm.types.d.ts +4 -4
- package/dist/RangeFilter/Shared/TimeWindow/RangeFormContainer/RangeForm/RangeForm.types.js +1 -1
- package/dist/RangeFilter/Shared/TimeWindow/RangeFormContainer/RangeForm/RangeForm.utils.js +18 -14
- package/dist/RangeFilter/Shared/TimeWindow/RangeFormContainer/RangeFormContainer.d.ts +2 -2
- package/dist/RangeFilter/Shared/TimeWindow/RangeFormContainer/RangeFormContainer.js +100 -117
- package/dist/RangeFilter/Shared/TimeWindow/RangeFormContainer/RangeFormContainer.styles.d.ts +1 -1
- package/dist/RangeFilter/Shared/TimeWindow/RangeFormContainer/RangeFormContainer.styles.js +6 -3
- package/dist/RangeFilter/Shared/TimeWindow/RangeFormContainer/RangeFormContainer.types.d.ts +6 -6
- package/dist/RangeFilter/Shared/TimeWindow/RangeFormContainer/RangeFormContainer.types.js +1 -1
- package/dist/RangeFilter/Shared/TimeWindow/RangeSummary/RangeSummary.d.ts +2 -2
- package/dist/RangeFilter/Shared/TimeWindow/RangeSummary/RangeSummary.js +26 -18
- package/dist/RangeFilter/Shared/TimeWindow/RangeSummary/RangeSummary.styles.d.ts +2 -2
- package/dist/RangeFilter/Shared/TimeWindow/RangeSummary/RangeSummary.styles.js +9 -9
- package/dist/RangeFilter/Shared/TimeWindow/RangeSummary/RangeSummary.types.d.ts +3 -3
- package/dist/RangeFilter/Shared/TimeWindow/RangeSummary/RangeSummary.types.js +1 -1
- package/dist/RangeFilter/Shared/TimeWindow/TimeWindow.d.ts +3 -3
- package/dist/RangeFilter/Shared/TimeWindow/TimeWindow.js +324 -345
- package/dist/RangeFilter/Shared/TimeWindow/TimeWindow.styles.d.ts +8 -8
- package/dist/RangeFilter/Shared/TimeWindow/TimeWindow.styles.js +23 -19
- package/dist/RangeFilter/Shared/TimeWindow/TimeWindow.types.d.ts +9 -9
- package/dist/RangeFilter/Shared/TimeWindow/TimeWindow.types.js +1 -1
- package/dist/RangeFilter/Shared/TimeWindow/constants/timeWindow.constants.js +10 -4
- package/dist/RangeFilter/Shared/TimeWindow/utils.d.ts +2 -2
- package/dist/RangeFilter/Shared/TimeWindow/utils.js +24 -22
- package/dist/RangeFilter/Shared/index.js +16 -7
- package/dist/RangeFilter/constants.d.ts +6 -6
- package/dist/RangeFilter/constants.js +120 -86
- package/dist/RangeFilter/utils.d.ts +2 -2
- package/dist/RangeFilter/utils.js +165 -186
- package/dist/RangePicker/RangePicker.d.ts +2 -2
- package/dist/RangePicker/RangePicker.js +351 -330
- package/dist/RangePicker/RangePicker.styles.d.ts +5 -5
- package/dist/RangePicker/RangePicker.styles.js +19 -13
- package/dist/RangePicker/RangePicker.types.d.ts +3 -3
- package/dist/RangePicker/RangePicker.types.js +1 -1
- package/dist/RangePicker/utils.d.ts +3 -3
- package/dist/RangePicker/utils.js +84 -80
- package/dist/RangePickerInput/RangePickerInput.d.ts +2 -2
- package/dist/RangePickerInput/RangePickerInput.js +76 -103
- package/dist/RangePickerInput/RangePickerInput.styles.d.ts +8 -8
- package/dist/RangePickerInput/RangePickerInput.styles.js +25 -25
- package/dist/RangePickerInput/RangePickerInput.types.d.ts +5 -5
- package/dist/RangePickerInput/RangePickerInput.types.js +1 -1
- package/dist/RawDateRangePicker.d.ts +3 -3
- package/dist/RawDateRangePicker.js +195 -253
- package/dist/RelativeRangePicker/Elements/CustomRangeForm/CustomRangeForm.d.ts +2 -2
- package/dist/RelativeRangePicker/Elements/CustomRangeForm/CustomRangeForm.js +40 -60
- package/dist/RelativeRangePicker/Elements/CustomRangeForm/CustomRangeForm.types.d.ts +2 -2
- package/dist/RelativeRangePicker/Elements/CustomRangeForm/CustomRangeForm.types.js +1 -1
- package/dist/RelativeRangePicker/Elements/CustomRangeForm/DurationField/DurationField.d.ts +2 -2
- package/dist/RelativeRangePicker/Elements/CustomRangeForm/DurationField/DurationField.js +43 -52
- package/dist/RelativeRangePicker/Elements/CustomRangeForm/DurationField/DurationField.types.d.ts +1 -1
- package/dist/RelativeRangePicker/Elements/CustomRangeForm/DurationField/DurationField.types.js +1 -1
- package/dist/RelativeRangePicker/Elements/CustomRangeForm/OffsetField/OffsetField.d.ts +2 -2
- package/dist/RelativeRangePicker/Elements/CustomRangeForm/OffsetField/OffsetField.js +41 -49
- package/dist/RelativeRangePicker/Elements/CustomRangeForm/OffsetField/OffsetField.types.d.ts +1 -1
- package/dist/RelativeRangePicker/Elements/CustomRangeForm/OffsetField/OffsetField.types.js +1 -1
- package/dist/RelativeRangePicker/Elements/ModeDropdown/ModeDropdown.d.ts +2 -2
- package/dist/RelativeRangePicker/Elements/ModeDropdown/ModeDropdown.js +29 -53
- package/dist/RelativeRangePicker/Elements/ModeDropdown/ModeDropdown.types.d.ts +2 -2
- package/dist/RelativeRangePicker/Elements/ModeDropdown/ModeDropdown.types.js +1 -1
- package/dist/RelativeRangePicker/Elements/RangeButtons/RangeButtons.d.ts +2 -2
- package/dist/RelativeRangePicker/Elements/RangeButtons/RangeButtons.js +21 -22
- package/dist/RelativeRangePicker/Elements/RangeButtons/RangeButtons.types.d.ts +2 -2
- package/dist/RelativeRangePicker/Elements/RangeButtons/RangeButtons.types.js +1 -1
- package/dist/RelativeRangePicker/Elements/RangeDropdown/RangeDropdown.d.ts +3 -3
- package/dist/RelativeRangePicker/Elements/RangeDropdown/RangeDropdown.js +57 -87
- package/dist/RelativeRangePicker/Elements/RangeDropdown/RangeDropdown.types.d.ts +2 -2
- package/dist/RelativeRangePicker/Elements/RangeDropdown/RangeDropdown.types.js +1 -1
- package/dist/RelativeRangePicker/Elements/TimestampRange/TimestampDuration/TimestampDuration.d.ts +2 -2
- package/dist/RelativeRangePicker/Elements/TimestampRange/TimestampDuration/TimestampDuration.js +39 -68
- package/dist/RelativeRangePicker/Elements/TimestampRange/TimestampDuration/TimestampDuration.types.d.ts +2 -2
- package/dist/RelativeRangePicker/Elements/TimestampRange/TimestampDuration/TimestampDuration.types.js +1 -1
- package/dist/RelativeRangePicker/Elements/TimestampRange/TimestampRange.d.ts +2 -2
- package/dist/RelativeRangePicker/Elements/TimestampRange/TimestampRange.js +70 -102
- package/dist/RelativeRangePicker/Elements/TimestampRange/TimestampRange.types.d.ts +2 -2
- package/dist/RelativeRangePicker/Elements/TimestampRange/TimestampRange.types.js +1 -1
- package/dist/RelativeRangePicker/RelativeRangePicker.d.ts +4 -4
- package/dist/RelativeRangePicker/RelativeRangePicker.js +189 -170
- package/dist/RelativeRangePicker/RelativeRangePicker.styles.d.ts +17 -17
- package/dist/RelativeRangePicker/RelativeRangePicker.styles.js +47 -48
- package/dist/RelativeRangePicker/RelativeRangePicker.types.d.ts +3 -3
- package/dist/RelativeRangePicker/RelativeRangePicker.types.js +1 -1
- package/dist/RelativeRangePicker/utils/findMatchingPreset.utils.d.ts +7 -7
- package/dist/RelativeRangePicker/utils/findMatchingPreset.utils.js +12 -9
- package/dist/RelativeRangePicker/utils/findRangeByKey.utils.d.ts +1 -1
- package/dist/RelativeRangePicker/utils/findRangeByKey.utils.js +6 -5
- package/dist/RelativeRangePicker/utils/getCurrentGroupFromProps.utils.d.ts +2 -2
- package/dist/RelativeRangePicker/utils/getCurrentGroupFromProps.utils.js +8 -4
- package/dist/RelativeRangePicker/utils/getDefaultCustomRange.utils.d.ts +1 -1
- package/dist/RelativeRangePicker/utils/getDefaultCustomRange.utils.js +18 -17
- package/dist/RelativeRangePicker/utils/index.js +20 -9
- package/dist/RelativeRangePicker/utils/isAbsolute.utils.d.ts +1 -1
- package/dist/RelativeRangePicker/utils/isAbsolute.utils.js +5 -4
- package/dist/RelativeRangePicker/utils/setDurationValue.utils.d.ts +1 -1
- package/dist/RelativeRangePicker/utils/setDurationValue.utils.js +9 -6
- package/dist/RelativeRangePicker/utils/setFuture.utils.js +6 -3
- package/dist/RelativeRangePicker/utils/setOffsetValue.utils.d.ts +1 -1
- package/dist/RelativeRangePicker/utils/setOffsetValue.utils.js +9 -6
- package/dist/RelativeRangePicker/utils/updatePresetKey.utils.d.ts +1 -1
- package/dist/RelativeRangePicker/utils/updatePresetKey.utils.js +14 -10
- package/dist/constants.d.ts +3 -3
- package/dist/constants.js +112 -85
- package/dist/date.types.d.ts +3 -3
- package/dist/date.types.js +1 -1
- package/dist/dateUtils/Date.d.ts +1 -1
- package/dist/dateUtils/Date.js +14 -16
- package/dist/dateUtils/add.d.ts +7 -7
- package/dist/dateUtils/add.js +12 -9
- package/dist/dateUtils/difference.d.ts +7 -7
- package/dist/dateUtils/difference.js +12 -9
- package/dist/dateUtils/endOf.d.ts +7 -7
- package/dist/dateUtils/endOf.js +12 -9
- package/dist/dateUtils/format.js +14 -15
- package/dist/dateUtils/get.d.ts +3 -3
- package/dist/dateUtils/get.js +8 -5
- package/dist/dateUtils/getDateFromString.js +3 -3
- package/dist/dateUtils/getRelativePresetForRange.d.ts +1 -1
- package/dist/dateUtils/getRelativePresetForRange.js +9 -9
- package/dist/dateUtils/index.js +2 -1
- package/dist/dateUtils/relativeToAbsolute.d.ts +1 -1
- package/dist/dateUtils/relativeToAbsolute.js +35 -27
- package/dist/dateUtils/set.d.ts +3 -3
- package/dist/dateUtils/set.js +8 -5
- package/dist/dateUtils/startOf.d.ts +7 -7
- package/dist/dateUtils/startOf.js +12 -9
- package/dist/dateUtils/sub.d.ts +7 -7
- package/dist/dateUtils/sub.js +12 -9
- package/dist/fns.d.ts +20 -20
- package/dist/fns.js +42 -40
- package/dist/index.js +44 -13
- package/dist/utils.d.ts +5 -5
- package/dist/utils.js +158 -153
- package/package.json +26 -26
|
@@ -1,16 +1,15 @@
|
|
|
1
|
-
import { DEFAULT_MAX_ENTRIES } from
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
for (
|
|
1
|
+
import { DEFAULT_MAX_ENTRIES } from "../constants.js";
|
|
2
|
+
const range = (start, stop) => {
|
|
3
|
+
const result = [];
|
|
4
|
+
for (let i = start; i < stop; i += 1) {
|
|
5
5
|
result.push(i);
|
|
6
6
|
}
|
|
7
7
|
return result;
|
|
8
8
|
};
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
var currentDay = days[dayIndex];
|
|
9
|
+
const haveActiveDaysCommonRange = (days, activeDaysArray) => {
|
|
10
|
+
let previousDay;
|
|
11
|
+
const activeDaysHaveDifferentRanges = activeDaysArray.some((dayIndex) => {
|
|
12
|
+
const currentDay = days[dayIndex];
|
|
14
13
|
if (!currentDay) {
|
|
15
14
|
return true;
|
|
16
15
|
}
|
|
@@ -18,19 +17,17 @@ export var haveActiveDaysCommonRange = function haveActiveDaysCommonRange(days,
|
|
|
18
17
|
previousDay = currentDay;
|
|
19
18
|
return false;
|
|
20
19
|
}
|
|
21
|
-
|
|
20
|
+
const areRangeDifferent = currentDay?.start !== previousDay?.start || currentDay?.stop !== previousDay?.stop;
|
|
22
21
|
previousDay = currentDay;
|
|
23
22
|
return areRangeDifferent;
|
|
24
23
|
});
|
|
25
24
|
return !activeDaysHaveDifferentRanges;
|
|
26
25
|
};
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
});
|
|
36
|
-
};
|
|
26
|
+
const canAddAnotherRange = (schedule, activeDays, maxRanges = DEFAULT_MAX_ENTRIES) => {
|
|
27
|
+
return Object.keys(schedule).length < maxRanges || Object.keys(schedule).some((key) => activeDays.every((day) => schedule[key][day] === void 0) && !haveActiveDaysCommonRange(schedule[key], activeDays));
|
|
28
|
+
};
|
|
29
|
+
export {
|
|
30
|
+
canAddAnotherRange,
|
|
31
|
+
haveActiveDaysCommonRange,
|
|
32
|
+
range
|
|
33
|
+
};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import React from 'react';
|
|
2
|
-
import {
|
|
1
|
+
import { default as React } from 'react';
|
|
2
|
+
import { WeeklyProps } from './Weekly.types';
|
|
3
3
|
declare const Weekly: ({ maxEntries, valueSelectionMode, onChange, timeFormat, valueFormatOptions, value, texts, timePickerProps, disabled, errorTexts, }: WeeklyProps) => React.JSX.Element;
|
|
4
4
|
export default Weekly;
|
|
@@ -1,175 +1,163 @@
|
|
|
1
|
-
|
|
2
|
-
import dayjs from
|
|
3
|
-
import
|
|
4
|
-
import { useIntl } from
|
|
5
|
-
import { v4
|
|
6
|
-
import { useDataFormat } from
|
|
7
|
-
import { getDefaultTexts } from
|
|
8
|
-
import
|
|
9
|
-
import
|
|
10
|
-
import
|
|
11
|
-
import
|
|
12
|
-
import
|
|
13
|
-
import
|
|
14
|
-
import
|
|
15
|
-
import
|
|
16
|
-
import
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
useEffect(
|
|
1
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
2
|
+
import dayjs from "dayjs";
|
|
3
|
+
import { useMemo, useState, useRef, useEffect, useCallback } from "react";
|
|
4
|
+
import { useIntl } from "react-intl";
|
|
5
|
+
import { v4 } from "uuid";
|
|
6
|
+
import { useDataFormat } from "@synerise/ds-core";
|
|
7
|
+
import { getDefaultTexts } from "../../../../utils.js";
|
|
8
|
+
import { NewFilterContainer } from "../../../RangeFilter.styles.js";
|
|
9
|
+
import AddButton from "../../../Shared/AddButton/AddButton.js";
|
|
10
|
+
import "@synerise/ds-button";
|
|
11
|
+
import "@synerise/ds-dropdown";
|
|
12
|
+
import "@synerise/ds-icon";
|
|
13
|
+
import "@synerise/ds-tooltip";
|
|
14
|
+
import "styled-components";
|
|
15
|
+
import "@synerise/ds-list-item";
|
|
16
|
+
import "@synerise/ds-badge";
|
|
17
|
+
import "@synerise/ds-button/dist/Button.styles";
|
|
18
|
+
import "@synerise/ds-manageable-list/dist/Item/ContentItem/ContentItem";
|
|
19
|
+
import "@synerise/ds-input";
|
|
20
|
+
import SelectionCount from "../../../Shared/SelectionCount/SelectionCount.js";
|
|
21
|
+
import SelectionHint from "../../../Shared/SelectionHint/SelectionHint.js";
|
|
22
|
+
import "../../../Shared/TimeWindow/TimeWindow.js";
|
|
23
|
+
import Day from "../../../Shared/TimeWindow/Day/Day.js";
|
|
24
|
+
import Grid from "../../../Shared/TimeWindow/Grid/Grid.js";
|
|
25
|
+
import RangeFormContainer from "../../../Shared/TimeWindow/RangeFormContainer/RangeFormContainer.js";
|
|
26
|
+
import { US_NOTATION_WEEK_DAYS_INDEXES, EU_NOTATION_WEEK_DAYS_INDEXES } from "../../../Shared/TimeWindow/constants/timeWindow.constants.js";
|
|
27
|
+
import { DEFAULT_RANGE_END, DEFAULT_RANGE_START, DEFAULT_TIME_FORMAT, NOOP, EMPTY_OBJECT, DEFAULT_MAX_ENTRIES, RENDER_EMPTY_NODE_FN } from "../constants.js";
|
|
28
|
+
import { useShiftAndControlKeys } from "../hooks/useShiftAndControlKeys.js";
|
|
29
|
+
import { removeEmptyEntries, haveActiveDaysCommonRange, range, canAddAnotherRange } from "./utils.js";
|
|
30
|
+
const Weekly = ({
|
|
31
|
+
maxEntries = DEFAULT_MAX_ENTRIES,
|
|
32
|
+
valueSelectionMode = ["Hour", "Range"],
|
|
33
|
+
onChange = NOOP,
|
|
34
|
+
timeFormat,
|
|
35
|
+
valueFormatOptions,
|
|
36
|
+
value,
|
|
37
|
+
texts,
|
|
38
|
+
timePickerProps,
|
|
39
|
+
disabled,
|
|
40
|
+
errorTexts
|
|
41
|
+
}) => {
|
|
42
|
+
const intl = useIntl();
|
|
43
|
+
const allTexts = useMemo(() => getDefaultTexts(intl, false, texts), [texts, intl]);
|
|
44
|
+
const defaultDayValue = useMemo(() => ({
|
|
45
|
+
start: DEFAULT_RANGE_START,
|
|
46
|
+
stop: DEFAULT_RANGE_END,
|
|
47
|
+
restricted: false,
|
|
48
|
+
display: false,
|
|
49
|
+
inverted: false,
|
|
50
|
+
mode: valueSelectionMode[0]
|
|
51
|
+
}), [valueSelectionMode]);
|
|
52
|
+
const [filteredSchedule, setFilteredSchedule] = useState(Object.keys(value));
|
|
53
|
+
const [activeDays, setActiveDays] = useState([]);
|
|
54
|
+
const ref = useRef();
|
|
55
|
+
const [controlKeyPressed, shiftKeyPressed] = useShiftAndControlKeys(ref);
|
|
56
|
+
const {
|
|
57
|
+
isSundayFirstWeekDay
|
|
58
|
+
} = useDataFormat();
|
|
59
|
+
const allKeys = useMemo(() => isSundayFirstWeekDay ? US_NOTATION_WEEK_DAYS_INDEXES : EU_NOTATION_WEEK_DAYS_INDEXES, [isSundayFirstWeekDay]);
|
|
60
|
+
useEffect(() => {
|
|
61
61
|
removeEmptyEntries(value);
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
!!value[id][day] && haveActiveDaysCommonRange(value[id], activeDays)
|
|
67
|
-
);
|
|
68
|
-
});
|
|
69
|
-
}) : [];
|
|
62
|
+
const entriesWithActiveDaysValue = activeDays.length ? Object.keys(value).filter((id) => activeDays.every((day) => (
|
|
63
|
+
// @ts-expect-error - requires type refactor
|
|
64
|
+
!!value[id][day] && haveActiveDaysCommonRange(value[id], activeDays)
|
|
65
|
+
))) : [];
|
|
70
66
|
setFilteredSchedule(entriesWithActiveDaysValue);
|
|
71
67
|
}, [value, activeDays]);
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
end = dayValue[1],
|
|
76
|
-
inverted = dayValue[2];
|
|
68
|
+
const handleDayTimeChange = useCallback((dayValue, dayKey, guid) => {
|
|
69
|
+
const updatedSchedule = value;
|
|
70
|
+
const [start, end, inverted] = dayValue;
|
|
77
71
|
if (dayKey instanceof Array) {
|
|
78
|
-
dayKey.forEach(
|
|
72
|
+
dayKey.forEach((day) => {
|
|
79
73
|
if (guid in updatedSchedule) {
|
|
80
|
-
|
|
81
|
-
|
|
74
|
+
updatedSchedule[guid][day] = {
|
|
75
|
+
// @ts-expect-error - requires type refactor
|
|
76
|
+
...value[guid][day],
|
|
82
77
|
restricted: true,
|
|
83
|
-
start: start ? dayjs(start).format(DEFAULT_TIME_FORMAT) :
|
|
84
|
-
stop: end ? dayjs(end).format(DEFAULT_TIME_FORMAT) :
|
|
78
|
+
start: start ? dayjs(start).format(DEFAULT_TIME_FORMAT) : void 0,
|
|
79
|
+
stop: end ? dayjs(end).format(DEFAULT_TIME_FORMAT) : void 0,
|
|
85
80
|
inverted: Boolean(inverted)
|
|
86
|
-
}
|
|
81
|
+
};
|
|
87
82
|
}
|
|
88
83
|
});
|
|
89
84
|
} else if (guid in updatedSchedule) {
|
|
90
|
-
|
|
91
|
-
|
|
85
|
+
updatedSchedule[guid][dayKey] = {
|
|
86
|
+
// @ts-expect-error - requires type refactor
|
|
87
|
+
...value[guid][dayKey],
|
|
92
88
|
restricted: true,
|
|
93
|
-
start: start ? dayjs(start).format(DEFAULT_TIME_FORMAT) :
|
|
94
|
-
stop: end ? dayjs(end).format(DEFAULT_TIME_FORMAT) :
|
|
89
|
+
start: start ? dayjs(start).format(DEFAULT_TIME_FORMAT) : void 0,
|
|
90
|
+
stop: end ? dayjs(end).format(DEFAULT_TIME_FORMAT) : void 0,
|
|
95
91
|
inverted: Boolean(inverted)
|
|
96
|
-
}
|
|
92
|
+
};
|
|
97
93
|
}
|
|
98
94
|
onChange(updatedSchedule);
|
|
99
95
|
}, [value, onChange]);
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
if (typeof dayKey === 'number' && value[guid] && !!value[guid][dayKey]) {
|
|
103
|
-
// @ts-expect-error - requires type refactor
|
|
96
|
+
const getDayValue = useCallback((dayKey, guid) => {
|
|
97
|
+
if (typeof dayKey === "number" && value[guid] && !!value[guid][dayKey]) {
|
|
104
98
|
return value[guid][dayKey];
|
|
105
99
|
}
|
|
106
100
|
return defaultDayValue;
|
|
107
101
|
}, [value, defaultDayValue]);
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
dayKeys.forEach(
|
|
111
|
-
|
|
112
|
-
|
|
102
|
+
const handleModeChange = useCallback((selectedMode, dayKeys, guid) => {
|
|
103
|
+
const updatedSchedule = value;
|
|
104
|
+
dayKeys.forEach((day) => {
|
|
105
|
+
updatedSchedule[guid][day] = {
|
|
106
|
+
// @ts-expect-error - requires type refactor
|
|
107
|
+
...value[guid][day],
|
|
113
108
|
mode: selectedMode
|
|
114
|
-
}
|
|
109
|
+
};
|
|
115
110
|
});
|
|
116
111
|
onChange(updatedSchedule);
|
|
117
112
|
}, [value, onChange]);
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
activeDaysArray.forEach(
|
|
121
|
-
// @ts-expect-error - requires type refactor
|
|
113
|
+
const handleRangeDelete = useCallback((guid, activeDaysArray) => {
|
|
114
|
+
const updatedSchedule = value;
|
|
115
|
+
activeDaysArray.forEach((activeDay) => {
|
|
122
116
|
delete updatedSchedule[guid][activeDay];
|
|
123
117
|
});
|
|
124
|
-
onChange(
|
|
125
|
-
|
|
126
|
-
var dayFormatter = useCallback(function (dayKey) {
|
|
127
|
-
return intl.formatMessage({
|
|
128
|
-
id: "DS.DATE-RANGE-PICKER.WEEKDAYS-SHORT-" + dayKey
|
|
118
|
+
onChange({
|
|
119
|
+
...updatedSchedule
|
|
129
120
|
});
|
|
130
|
-
}, [
|
|
131
|
-
|
|
121
|
+
}, [value, onChange]);
|
|
122
|
+
const dayFormatter = useCallback((dayKey) => intl.formatMessage({
|
|
123
|
+
id: `DS.DATE-RANGE-PICKER.WEEKDAYS-SHORT-${dayKey}`
|
|
124
|
+
}), [intl]);
|
|
125
|
+
const checkDay = useCallback((dayKey) => {
|
|
132
126
|
setActiveDays([dayKey]);
|
|
133
127
|
}, []);
|
|
134
|
-
|
|
128
|
+
const getDayLabel = useCallback((dayKey) => {
|
|
135
129
|
return dayFormatter(dayKey);
|
|
136
130
|
}, [dayFormatter]);
|
|
137
|
-
|
|
138
|
-
setActiveDays(activeDays.filter(
|
|
139
|
-
return day !== dayKey;
|
|
140
|
-
}));
|
|
131
|
+
const excludeDayFromActive = useCallback((dayKey) => {
|
|
132
|
+
setActiveDays(activeDays.filter((day) => day !== dayKey));
|
|
141
133
|
}, [activeDays]);
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
return Object.keys(value).some(function (key) {
|
|
145
|
-
return !!value[key][dayKey];
|
|
146
|
-
});
|
|
134
|
+
const isDayRestricted = useCallback((dayKey) => {
|
|
135
|
+
return Object.keys(value).some((key) => !!value[key][dayKey]);
|
|
147
136
|
}, [value]);
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
Object.keys(value).forEach(
|
|
151
|
-
// @ts-expect-error - requires type refactor
|
|
137
|
+
const removeDaySelection = useCallback((dayKey) => {
|
|
138
|
+
const updatedSchedule = value;
|
|
139
|
+
Object.keys(value).forEach((key) => {
|
|
152
140
|
delete updatedSchedule[key][dayKey];
|
|
153
141
|
});
|
|
154
142
|
excludeDayFromActive(dayKey);
|
|
155
143
|
onChange(updatedSchedule);
|
|
156
144
|
}, [value, onChange, excludeDayFromActive]);
|
|
157
|
-
|
|
145
|
+
const uncheckActiveDay = useCallback((dayKey) => {
|
|
158
146
|
removeDaySelection(dayKey);
|
|
159
147
|
}, [removeDaySelection]);
|
|
160
|
-
|
|
148
|
+
const handleSelectAll = useCallback(() => {
|
|
161
149
|
setActiveDays(allKeys);
|
|
162
150
|
}, [allKeys]);
|
|
163
|
-
|
|
151
|
+
const handleUnselectAll = useCallback(() => {
|
|
164
152
|
setActiveDays([]);
|
|
165
153
|
}, []);
|
|
166
|
-
|
|
154
|
+
const checkActiveDay = useCallback((dayKey) => {
|
|
167
155
|
if (!isDayRestricted(dayKey)) {
|
|
168
156
|
checkDay(dayKey);
|
|
169
157
|
}
|
|
170
|
-
|
|
158
|
+
let updatedActiveDay = [];
|
|
171
159
|
if (controlKeyPressed) {
|
|
172
|
-
updatedActiveDay = activeDays.includes(dayKey) ? activeDays : [
|
|
160
|
+
updatedActiveDay = activeDays.includes(dayKey) ? activeDays : [...activeDays, dayKey];
|
|
173
161
|
} else if (activeDays.length > 0 && shiftKeyPressed) {
|
|
174
162
|
updatedActiveDay = activeDays[0] < dayKey ? range(+activeDays[0], +dayKey + 1) : range(+dayKey, +activeDays[0] + 1);
|
|
175
163
|
} else {
|
|
@@ -177,8 +165,8 @@ var Weekly = function Weekly(_ref) {
|
|
|
177
165
|
}
|
|
178
166
|
setActiveDays(updatedActiveDay);
|
|
179
167
|
}, [checkDay, isDayRestricted, activeDays, controlKeyPressed, shiftKeyPressed]);
|
|
180
|
-
|
|
181
|
-
if (typeof forcedState !==
|
|
168
|
+
const handleToggleDay = useCallback((dayKey, forcedState) => {
|
|
169
|
+
if (typeof forcedState !== "undefined") {
|
|
182
170
|
if (controlKeyPressed && forcedState) {
|
|
183
171
|
activeDays.includes(dayKey) ? excludeDayFromActive(dayKey) : checkActiveDay(dayKey);
|
|
184
172
|
return;
|
|
@@ -188,113 +176,71 @@ var Weekly = function Weekly(_ref) {
|
|
|
188
176
|
activeDays.includes(dayKey) ? uncheckActiveDay(dayKey) : checkActiveDay(dayKey);
|
|
189
177
|
}
|
|
190
178
|
}, [controlKeyPressed, activeDays, uncheckActiveDay, checkActiveDay, excludeDayFromActive]);
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
return
|
|
194
|
-
key: dayKey,
|
|
195
|
-
dayKey: dayKey,
|
|
196
|
-
"data-attr": dayKey,
|
|
197
|
-
label: getDayLabel(dayKey),
|
|
198
|
-
restricted: isDayRestricted(dayKey),
|
|
199
|
-
active: isActive,
|
|
200
|
-
readOnly: disabled,
|
|
201
|
-
intl: intl,
|
|
202
|
-
onToggle: handleToggleDay,
|
|
203
|
-
onClear: removeDaySelection,
|
|
204
|
-
texts: allTexts
|
|
205
|
-
});
|
|
179
|
+
const renderDay = useCallback((dayKey) => {
|
|
180
|
+
const isActive = activeDays.includes(dayKey);
|
|
181
|
+
return /* @__PURE__ */ jsx(Day, { dayKey, "data-attr": dayKey, label: getDayLabel(dayKey), restricted: isDayRestricted(dayKey), active: isActive, readOnly: disabled, intl, onToggle: handleToggleDay, onClear: removeDaySelection, texts: allTexts }, dayKey);
|
|
206
182
|
}, [activeDays, getDayLabel, isDayRestricted, disabled, intl, handleToggleDay, removeDaySelection, allTexts]);
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
var guid = Object.keys(value).find(function (key) {
|
|
211
|
-
return (
|
|
212
|
-
// @ts-expect-error - requires type refactor
|
|
213
|
-
activeDays.every(function (day) {
|
|
214
|
-
return value[key][day] === undefined;
|
|
215
|
-
})
|
|
216
|
-
);
|
|
217
|
-
});
|
|
218
|
-
activeDays.forEach(function (day) {
|
|
183
|
+
const handleRangeAdd = useCallback(() => {
|
|
184
|
+
const updatedDay = {};
|
|
185
|
+
const guid = Object.keys(value).find((key) => (
|
|
219
186
|
// @ts-expect-error - requires type refactor
|
|
187
|
+
activeDays.every((day) => value[key][day] === void 0)
|
|
188
|
+
));
|
|
189
|
+
activeDays.forEach((day) => {
|
|
220
190
|
updatedDay[day] = defaultDayValue;
|
|
221
191
|
});
|
|
222
|
-
|
|
223
|
-
|
|
192
|
+
const restOfScheduleObject = guid ? value[guid] : EMPTY_OBJECT;
|
|
193
|
+
const updatedSchedule = {
|
|
194
|
+
...value,
|
|
195
|
+
[guid || v4()]: {
|
|
196
|
+
...restOfScheduleObject,
|
|
197
|
+
...updatedDay
|
|
198
|
+
}
|
|
199
|
+
};
|
|
224
200
|
onChange(updatedSchedule);
|
|
225
201
|
}, [value, activeDays, defaultDayValue, onChange]);
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
var canAddRange = canAddAnotherRange(value, activeDays, maxEntries);
|
|
233
|
-
var isAnyDaySelected = activeDays.length > 0;
|
|
234
|
-
var shouldRenderAddButton = isAnyDaySelected && filteredSchedule.length < maxEntries && canAddRange && !disabled;
|
|
235
|
-
var getErrorTextsForFormRow = function getErrorTextsForFormRow(guid) {
|
|
236
|
-
return activeDays.length === 1 && errorTexts && errorTexts[guid] &&
|
|
237
|
-
// @ts-expect-error - requires type refactor
|
|
202
|
+
const renderGridTitle = useCallback((count) => /* @__PURE__ */ jsx(SelectionCount, { selectedDayCount: count, label: allTexts.selected }), [allTexts.selected]);
|
|
203
|
+
const canAddRange = canAddAnotherRange(value, activeDays, maxEntries);
|
|
204
|
+
const isAnyDaySelected = activeDays.length > 0;
|
|
205
|
+
const shouldRenderAddButton = isAnyDaySelected && filteredSchedule.length < maxEntries && canAddRange && !disabled;
|
|
206
|
+
const getErrorTextsForFormRow = (guid) => {
|
|
207
|
+
return activeDays.length === 1 && errorTexts && errorTexts[guid] && // @ts-expect-error - requires type refactor
|
|
238
208
|
errorTexts[guid][activeDays[0]];
|
|
239
209
|
};
|
|
240
|
-
return
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
210
|
+
return /* @__PURE__ */ jsxs(NewFilterContainer, { ref, children: [
|
|
211
|
+
/* @__PURE__ */ jsx(Grid, { reverseGroup: 0, onUnselectAll: handleUnselectAll, onSelectAll: handleSelectAll, showUnselectAll: Boolean(activeDays.length), showSelectAll: allKeys.length > activeDays.length, renderDay, keys: allKeys, days: EMPTY_OBJECT, intl, numberOfDays: 7, texts: allTexts, title: renderGridTitle(activeDays.length) }),
|
|
212
|
+
isAnyDaySelected && filteredSchedule.map((guid, index) => /* @__PURE__ */ jsx(
|
|
213
|
+
RangeFormContainer,
|
|
214
|
+
{
|
|
215
|
+
days: EMPTY_OBJECT,
|
|
216
|
+
onChange: NOOP,
|
|
217
|
+
errorTexts: getErrorTextsForFormRow(guid),
|
|
218
|
+
onDayTimeChange: (dayValue, dayKey) => {
|
|
219
|
+
handleDayTimeChange(dayValue, dayKey, guid);
|
|
220
|
+
},
|
|
221
|
+
texts: allTexts,
|
|
222
|
+
onMultipleDayTimeChange: (dates) => handleDayTimeChange(dates, activeDays, guid),
|
|
223
|
+
dayKeys: activeDays,
|
|
224
|
+
getDayLabel,
|
|
225
|
+
activeDays,
|
|
226
|
+
getDayValue: (dayKey) => getDayValue(dayKey, guid),
|
|
227
|
+
onRangeDelete: disabled ? void 0 : () => handleRangeDelete(guid, activeDays),
|
|
228
|
+
onModeChange: (mode) => handleModeChange(mode, activeDays, guid),
|
|
229
|
+
valueSelectionModes: valueSelectionMode,
|
|
230
|
+
hideHeader: index !== 0,
|
|
231
|
+
renderSuffix: RENDER_EMPTY_NODE_FN,
|
|
232
|
+
timePickerProps,
|
|
233
|
+
timeFormat,
|
|
234
|
+
valueFormatOptions,
|
|
235
|
+
disabled
|
|
263
236
|
},
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
getDayValue: function getDayValue(dayKey) {
|
|
274
|
-
return _getDayValue(dayKey, guid);
|
|
275
|
-
},
|
|
276
|
-
onRangeDelete: disabled ? undefined : function () {
|
|
277
|
-
return handleRangeDelete(guid, activeDays);
|
|
278
|
-
},
|
|
279
|
-
onModeChange: function onModeChange(mode) {
|
|
280
|
-
return handleModeChange(mode, activeDays, guid);
|
|
281
|
-
},
|
|
282
|
-
valueSelectionModes: valueSelectionMode,
|
|
283
|
-
hideHeader: index !== 0,
|
|
284
|
-
renderSuffix: RENDER_EMPTY_NODE_FN,
|
|
285
|
-
timePickerProps: timePickerProps,
|
|
286
|
-
timeFormat: timeFormat,
|
|
287
|
-
valueFormatOptions: valueFormatOptions,
|
|
288
|
-
disabled: disabled
|
|
289
|
-
});
|
|
290
|
-
}), isAnyDaySelected && !canAddRange && /*#__PURE__*/React.createElement(SelectionHint, {
|
|
291
|
-
message: allTexts.maximumRanges
|
|
292
|
-
}), shouldRenderAddButton && /*#__PURE__*/React.createElement(AddButton, {
|
|
293
|
-
"data-testid": "drp-filter-add-range",
|
|
294
|
-
label: allTexts.addTime,
|
|
295
|
-
onClick: handleRangeAdd
|
|
296
|
-
}), !isAnyDaySelected && !disabled && /*#__PURE__*/React.createElement(SelectionHint, {
|
|
297
|
-
message: allTexts.selectDaysDescription
|
|
298
|
-
}));
|
|
237
|
+
`value-range-${guid}`
|
|
238
|
+
)),
|
|
239
|
+
isAnyDaySelected && !canAddRange && /* @__PURE__ */ jsx(SelectionHint, { message: allTexts.maximumRanges }),
|
|
240
|
+
shouldRenderAddButton && /* @__PURE__ */ jsx(AddButton, { "data-testid": "drp-filter-add-range", label: allTexts.addTime, onClick: handleRangeAdd }),
|
|
241
|
+
!isAnyDaySelected && !disabled && /* @__PURE__ */ jsx(SelectionHint, { message: allTexts.selectDaysDescription })
|
|
242
|
+
] });
|
|
243
|
+
};
|
|
244
|
+
export {
|
|
245
|
+
Weekly as default
|
|
299
246
|
};
|
|
300
|
-
export default Weekly;
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
6
|
-
import {
|
|
1
|
+
import { Texts } from '../../../../DateRangePicker.types';
|
|
2
|
+
import { WithDisabledProp } from '../../../RangeFilter.types';
|
|
3
|
+
import { DateLimitMode } from '../../../Shared/TimeWindow/RangeFormContainer/RangeForm/RangeForm.types';
|
|
4
|
+
import { FilterErrorType } from '../../../Shared/TimeWindow/RangeFormContainer/RangeFormContainer.types';
|
|
5
|
+
import { DayOptions } from '../../../Shared/TimeWindow/TimeWindow.types';
|
|
6
|
+
import { FilterBaseProps } from '../Filters.types';
|
|
7
7
|
export type WeeklyScheduleDayValue = DayOptions & {
|
|
8
8
|
mode: DateLimitMode;
|
|
9
9
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
1
|
+
import { DayKey } from '../../../Shared/TimeWindow/TimeWindow.types';
|
|
2
|
+
import { DayOfWeekIndex, WeeklySchedule, WeeklyScheduleDayValue } from './Weekly.types';
|
|
3
3
|
export declare const range: (start: number, stop: number) => number[];
|
|
4
4
|
export declare const haveActiveDaysCommonRange: (days: Record<DayOfWeekIndex, WeeklyScheduleDayValue>, activeDaysArray: DayKey[]) => boolean;
|
|
5
5
|
export declare const canAddAnotherRange: (schedule: WeeklySchedule, activeDays: DayKey[], maxRanges?: number) => boolean;
|
|
@@ -1,16 +1,15 @@
|
|
|
1
|
-
import { DEFAULT_MAX_ENTRIES } from
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
for (
|
|
1
|
+
import { DEFAULT_MAX_ENTRIES } from "../constants.js";
|
|
2
|
+
const range = (start, stop) => {
|
|
3
|
+
const result = [];
|
|
4
|
+
for (let i = start; i < stop; i += 1) {
|
|
5
5
|
result.push(i);
|
|
6
6
|
}
|
|
7
7
|
return result;
|
|
8
8
|
};
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
var currentDay = days[dayIndex];
|
|
9
|
+
const haveActiveDaysCommonRange = (days, activeDaysArray) => {
|
|
10
|
+
let previousDay;
|
|
11
|
+
const activeDaysHaveDifferentRanges = activeDaysArray.some((dayIndex) => {
|
|
12
|
+
const currentDay = days[dayIndex];
|
|
14
13
|
if (!currentDay) {
|
|
15
14
|
return true;
|
|
16
15
|
}
|
|
@@ -18,28 +17,25 @@ export var haveActiveDaysCommonRange = function haveActiveDaysCommonRange(days,
|
|
|
18
17
|
previousDay = currentDay;
|
|
19
18
|
return false;
|
|
20
19
|
}
|
|
21
|
-
|
|
20
|
+
const areRangeDifferent = currentDay?.start !== previousDay?.start || currentDay?.stop !== previousDay?.stop;
|
|
22
21
|
previousDay = currentDay;
|
|
23
22
|
return areRangeDifferent;
|
|
24
23
|
});
|
|
25
24
|
return !activeDaysHaveDifferentRanges;
|
|
26
25
|
};
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
maxRanges = DEFAULT_MAX_ENTRIES;
|
|
30
|
-
}
|
|
31
|
-
return Object.keys(schedule).length < maxRanges || Object.keys(schedule).some(function (key) {
|
|
32
|
-
return activeDays.every(function (day) {
|
|
33
|
-
return schedule[key][day] === undefined;
|
|
34
|
-
}) && !haveActiveDaysCommonRange(schedule[key], activeDays);
|
|
35
|
-
});
|
|
26
|
+
const canAddAnotherRange = (schedule, activeDays, maxRanges = DEFAULT_MAX_ENTRIES) => {
|
|
27
|
+
return Object.keys(schedule).length < maxRanges || Object.keys(schedule).some((key) => activeDays.every((day) => schedule[key][day] === void 0) && !haveActiveDaysCommonRange(schedule[key], activeDays));
|
|
36
28
|
};
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
var scheduleToUpdate = weeklySchedule;
|
|
42
|
-
emptyEntries.forEach(function (emptyEntry) {
|
|
29
|
+
const removeEmptyEntries = (weeklySchedule) => {
|
|
30
|
+
const emptyEntries = Object.keys(weeklySchedule).filter((key) => Object.keys(weeklySchedule[key]).length === 0);
|
|
31
|
+
const scheduleToUpdate = weeklySchedule;
|
|
32
|
+
emptyEntries.forEach((emptyEntry) => {
|
|
43
33
|
delete scheduleToUpdate[emptyEntry];
|
|
44
34
|
});
|
|
45
|
-
};
|
|
35
|
+
};
|
|
36
|
+
export {
|
|
37
|
+
canAddAnotherRange,
|
|
38
|
+
haveActiveDaysCommonRange,
|
|
39
|
+
range,
|
|
40
|
+
removeEmptyEntries
|
|
41
|
+
};
|