@lighthouse/common 6.5.0 → 6.6.0-canary.1
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/dist/constants.js +7 -13
- package/dist/errors/DomainError.js +2 -4
- package/dist/errors/ValidationError.js +0 -8
- package/dist/errors/index.js +1 -5
- package/dist/helpers/build-fetch-url/index.js +0 -5
- package/dist/helpers/fetch-image/index.js +16 -32
- package/dist/helpers/fetch-image-for-pdf-generator-service/index.js +7 -40
- package/dist/helpers/fetch-image-for-web/index.js +0 -9
- package/dist/helpers/fetch-lighthouse-logo/index.js +2 -13
- package/dist/helpers/floatify/index.js +0 -1
- package/dist/helpers/get-assignees-full-names/index.js +0 -4
- package/dist/helpers/get-audit-entry-details/index.js +0 -3
- package/dist/helpers/get-audit-items-data/index.js +2 -6
- package/dist/helpers/get-geometry-geocoded-string/index.js +0 -3
- package/dist/helpers/get-issue-details/index.js +0 -7
- package/dist/helpers/get-job-details/index.js +0 -7
- package/dist/helpers/get-location-reference/index.js +18 -21
- package/dist/helpers/get-pretty-duration/index.js +0 -5
- package/dist/helpers/get-reference-details/index.js +0 -4
- package/dist/helpers/get-status-details/index.js +2 -9
- package/dist/helpers/get-task-entry-details/index.js +0 -3
- package/dist/helpers/get-timezone-abbr/index.js +0 -4
- package/dist/helpers/get-timezone-datetime/index.js +0 -5
- package/dist/helpers/get-user-full-name/index.js +0 -1
- package/dist/helpers/get-value-as-percentage/index.js +0 -1
- package/dist/helpers/image-validators/index.js +8 -9
- package/dist/helpers/index.js +16 -33
- package/dist/images/index.js +5 -9
- package/dist/index.js +4 -20
- package/dist/pdf/activity-report/index.js +41 -62
- package/dist/pdf/audit/index.js +0 -14
- package/dist/pdf/helpers/build-audit-content/index.js +4 -15
- package/dist/pdf/helpers/build-audit-follow-ups/index.js +4 -14
- package/dist/pdf/helpers/build-location-scans-content/index.js +4 -17
- package/dist/pdf/helpers/build-template-content/index.js +5 -14
- package/dist/pdf/helpers/default-footer/index.js +2 -3
- package/dist/pdf/helpers/default-header/index.js +0 -2
- package/dist/pdf/helpers/default-styles/index.js +2 -3
- package/dist/pdf/helpers/fields/index.js +21 -51
- package/dist/pdf/helpers/format-location-address/index.js +0 -3
- package/dist/pdf/helpers/generate-definition/index.js +0 -12
- package/dist/pdf/helpers/horizontal-line/index.js +0 -1
- package/dist/pdf/helpers/html-transformer/index.js +11 -23
- package/dist/pdf/helpers/index.js +40 -55
- package/dist/pdf/helpers/parse-value/index.js +2 -6
- package/dist/pdf/helpers/table/index.js +13 -31
- package/dist/pdf/helpers/text/index.js +0 -1
- package/dist/pdf/icons/index.js +3 -5
- package/dist/pdf/index.js +4 -10
- package/dist/pdf/issue/index.js +17 -16
- package/dist/pdf/job/index.js +1 -13
- package/dist/pdf/shift-report/emptyFixtures.js +4 -6
- package/dist/pdf/shift-report/index.js +2 -25
- package/dist/pdf/task/index.js +0 -13
- package/dist/scheduling/generators/index.js +0 -6
- package/dist/scheduling/generators/occurrenceIntervalsGenerator.js +1 -6
- package/dist/scheduling/generators/scheduleIntervalsGenerator.js +0 -5
- package/dist/scheduling/generators/serviceIntervalsGenerator.js +13 -27
- package/dist/scheduling/helpers/convertToTimezone.js +1 -6
- package/dist/scheduling/helpers/generateNonRepeatingSchedule.js +3 -9
- package/dist/scheduling/helpers/generateRepeatingSchedule.js +11 -18
- package/dist/scheduling/helpers/generateScheduleEnd.js +2 -8
- package/dist/scheduling/helpers/hasValidStartAndEnd.js +0 -6
- package/dist/scheduling/helpers/index.js +0 -28
- package/dist/scheduling/helpers/intervalCovers.js +0 -1
- package/dist/scheduling/helpers/intervalIntersectsEnd.js +0 -1
- package/dist/scheduling/helpers/intervalIntersectsStart.js +0 -1
- package/dist/scheduling/helpers/intervalOnlyIntersectsEnd.js +1 -3
- package/dist/scheduling/helpers/intervalOnlyIntersectsStart.js +0 -3
- package/dist/scheduling/helpers/intervalOutside.js +0 -1
- package/dist/scheduling/helpers/intervalWithin.js +0 -1
- package/dist/scheduling/helpers/mergeIntervals.js +0 -4
- package/dist/scheduling/helpers/splitIntervals.js +0 -3
- package/dist/scheduling/index.js +0 -6
- package/dist/scheduling/scheduling.types.js +10 -18
- package/dist/scheduling/strategies/getNext.js +2 -13
- package/dist/scheduling/strategies/getNextExactDateOfMonth.js +0 -12
- package/dist/scheduling/strategies/getNextLastDayOfMonth.js +0 -10
- package/dist/scheduling/strategies/getNextLastWeekdayOfMonth.js +0 -11
- package/dist/scheduling/strategies/getNextNoRepeat.js +0 -7
- package/dist/scheduling/strategies/getNextWeekday.js +0 -10
- package/dist/scheduling/strategies/getNextXDayOfXWeekOfMonth.js +0 -12
- package/dist/scheduling/strategies/index.js +0 -14
- package/dist/schema/index.js +0 -2
- package/dist/schema/schema.js +2 -7
- package/dist/service-hours/__helpers__/calculate-hours.js +4 -13
- package/dist/service-hours/__helpers__/isOpen.js +0 -9
- package/dist/service-hours/index.js +0 -4
- package/dist/service-hours/schema.js +20 -43
- package/lib/constants.js.map +1 -1
- package/lib/errors/DomainError.js +11 -47
- package/lib/errors/DomainError.js.map +1 -1
- package/lib/errors/ValidationError.js +15 -52
- package/lib/errors/ValidationError.js.map +1 -1
- package/lib/errors/index.js.map +1 -1
- package/lib/helpers/build-fetch-url/index.js +14 -20
- package/lib/helpers/build-fetch-url/index.js.map +1 -1
- package/lib/helpers/fetch-image/index.js +20 -27
- package/lib/helpers/fetch-image/index.js.map +1 -1
- package/lib/helpers/fetch-image-for-pdf-generator-service/index.js +187 -239
- package/lib/helpers/fetch-image-for-pdf-generator-service/index.js.map +1 -1
- package/lib/helpers/fetch-image-for-web/index.js +50 -66
- package/lib/helpers/fetch-image-for-web/index.js.map +1 -1
- package/lib/helpers/fetch-lighthouse-logo/index.js +47 -59
- package/lib/helpers/fetch-lighthouse-logo/index.js.map +1 -1
- package/lib/helpers/floatify/index.js.map +1 -1
- package/lib/helpers/get-assignees-full-names/index.js +0 -1
- package/lib/helpers/get-assignees-full-names/index.js.map +1 -1
- package/lib/helpers/get-audit-entry-details/index.js +8 -8
- package/lib/helpers/get-audit-entry-details/index.js.map +1 -1
- package/lib/helpers/get-audit-items-data/index.js +16 -19
- package/lib/helpers/get-audit-items-data/index.js.map +1 -1
- package/lib/helpers/get-geometry-geocoded-string/index.js.map +1 -1
- package/lib/helpers/get-issue-details/index.js +11 -11
- package/lib/helpers/get-issue-details/index.js.map +1 -1
- package/lib/helpers/get-job-details/index.js +12 -12
- package/lib/helpers/get-job-details/index.js.map +1 -1
- package/lib/helpers/get-location-reference/index.js +32 -36
- package/lib/helpers/get-location-reference/index.js.map +1 -1
- package/lib/helpers/get-pretty-duration/index.js +0 -4
- package/lib/helpers/get-pretty-duration/index.js.map +1 -1
- package/lib/helpers/get-reference-details/index.js +1 -3
- package/lib/helpers/get-reference-details/index.js.map +1 -1
- package/lib/helpers/get-status-details/index.js +0 -4
- package/lib/helpers/get-status-details/index.js.map +1 -1
- package/lib/helpers/get-task-entry-details/index.js +5 -5
- package/lib/helpers/get-task-entry-details/index.js.map +1 -1
- package/lib/helpers/get-timezone-abbr/index.js.map +1 -1
- package/lib/helpers/get-timezone-datetime/index.js +6 -6
- package/lib/helpers/get-timezone-datetime/index.js.map +1 -1
- package/lib/helpers/get-user-full-name/index.js.map +1 -1
- package/lib/helpers/get-value-as-percentage/index.js.map +1 -1
- package/lib/helpers/image-validators/index.js +8 -7
- package/lib/helpers/image-validators/index.js.map +1 -1
- package/lib/helpers/index.js.map +1 -1
- package/lib/images/index.js.map +1 -1
- package/lib/index.js.map +1 -1
- package/lib/pdf/activity-report/index.js +360 -416
- package/lib/pdf/activity-report/index.js.map +1 -1
- package/lib/pdf/audit/index.js +25 -36
- package/lib/pdf/audit/index.js.map +1 -1
- package/lib/pdf/fonts/index.js.map +1 -1
- package/lib/pdf/helpers/build-audit-content/index.js +3 -5
- package/lib/pdf/helpers/build-audit-content/index.js.map +1 -1
- package/lib/pdf/helpers/build-audit-follow-ups/index.js +5 -12
- package/lib/pdf/helpers/build-audit-follow-ups/index.js.map +1 -1
- package/lib/pdf/helpers/build-location-scans-content/index.js +4 -9
- package/lib/pdf/helpers/build-location-scans-content/index.js.map +1 -1
- package/lib/pdf/helpers/build-template-content/index.js +7 -9
- package/lib/pdf/helpers/build-template-content/index.js.map +1 -1
- package/lib/pdf/helpers/default-footer/index.js +9 -8
- package/lib/pdf/helpers/default-footer/index.js.map +1 -1
- package/lib/pdf/helpers/default-header/index.js +5 -5
- package/lib/pdf/helpers/default-header/index.js.map +1 -1
- package/lib/pdf/helpers/default-styles/index.js.map +1 -1
- package/lib/pdf/helpers/fields/index.js +48 -81
- package/lib/pdf/helpers/fields/index.js.map +1 -1
- package/lib/pdf/helpers/format-location-address/index.js.map +1 -1
- package/lib/pdf/helpers/generate-definition/index.js +22 -29
- package/lib/pdf/helpers/generate-definition/index.js.map +1 -1
- package/lib/pdf/helpers/horizontal-line/index.js +1 -1
- package/lib/pdf/helpers/horizontal-line/index.js.map +1 -1
- package/lib/pdf/helpers/html-transformer/index.js +19 -30
- package/lib/pdf/helpers/html-transformer/index.js.map +1 -1
- package/lib/pdf/helpers/index.js.map +1 -1
- package/lib/pdf/helpers/parse-value/index.js +2 -4
- package/lib/pdf/helpers/parse-value/index.js.map +1 -1
- package/lib/pdf/helpers/table/index.js +78 -84
- package/lib/pdf/helpers/table/index.js.map +1 -1
- package/lib/pdf/helpers/text/index.js +2 -5
- package/lib/pdf/helpers/text/index.js.map +1 -1
- package/lib/pdf/icons/index.js.map +1 -1
- package/lib/pdf/index.js.map +1 -1
- package/lib/pdf/issue/index.js +36 -30
- package/lib/pdf/issue/index.js.map +1 -1
- package/lib/pdf/job/index.js +12 -19
- package/lib/pdf/job/index.js.map +1 -1
- package/lib/pdf/shift-report/emptyFixtures.js.map +1 -1
- package/lib/pdf/shift-report/index.js +308 -374
- package/lib/pdf/shift-report/index.js.map +1 -1
- package/lib/pdf/task/index.js +11 -19
- package/lib/pdf/task/index.js.map +1 -1
- package/lib/scheduling/generators/index.js.map +1 -1
- package/lib/scheduling/generators/occurrenceIntervalsGenerator.js +27 -38
- package/lib/scheduling/generators/occurrenceIntervalsGenerator.js.map +1 -1
- package/lib/scheduling/generators/scheduleIntervalsGenerator.js +19 -30
- package/lib/scheduling/generators/scheduleIntervalsGenerator.js.map +1 -1
- package/lib/scheduling/generators/serviceIntervalsGenerator.js +139 -181
- package/lib/scheduling/generators/serviceIntervalsGenerator.js.map +1 -1
- package/lib/scheduling/helpers/convertToTimezone.js +1 -1
- package/lib/scheduling/helpers/convertToTimezone.js.map +1 -1
- package/lib/scheduling/helpers/generateNonRepeatingSchedule.js +84 -124
- package/lib/scheduling/helpers/generateNonRepeatingSchedule.js.map +1 -1
- package/lib/scheduling/helpers/generateRepeatingSchedule.js +107 -175
- package/lib/scheduling/helpers/generateRepeatingSchedule.js.map +1 -1
- package/lib/scheduling/helpers/generateScheduleEnd.js +6 -6
- package/lib/scheduling/helpers/generateScheduleEnd.js.map +1 -1
- package/lib/scheduling/helpers/hasValidStartAndEnd.js +1 -2
- package/lib/scheduling/helpers/hasValidStartAndEnd.js.map +1 -1
- package/lib/scheduling/helpers/index.js.map +1 -1
- package/lib/scheduling/helpers/intervalCovers.js.map +1 -1
- package/lib/scheduling/helpers/intervalIntersectsEnd.js.map +1 -1
- package/lib/scheduling/helpers/intervalIntersectsStart.js.map +1 -1
- package/lib/scheduling/helpers/intervalOnlyIntersectsEnd.js +1 -0
- package/lib/scheduling/helpers/intervalOnlyIntersectsEnd.js.map +1 -1
- package/lib/scheduling/helpers/intervalOnlyIntersectsStart.js +1 -1
- package/lib/scheduling/helpers/intervalOnlyIntersectsStart.js.map +1 -1
- package/lib/scheduling/helpers/intervalOutside.js.map +1 -1
- package/lib/scheduling/helpers/intervalWithin.js.map +1 -1
- package/lib/scheduling/helpers/mergeIntervals.js +0 -3
- package/lib/scheduling/helpers/mergeIntervals.js.map +1 -1
- package/lib/scheduling/helpers/splitIntervals.js +1 -1
- package/lib/scheduling/helpers/splitIntervals.js.map +1 -1
- package/lib/scheduling/index.js.map +1 -1
- package/lib/scheduling/scheduling.types.js +9 -14
- package/lib/scheduling/scheduling.types.js.map +1 -1
- package/lib/scheduling/strategies/getNext.js +22 -30
- package/lib/scheduling/strategies/getNext.js.map +1 -1
- package/lib/scheduling/strategies/getNextExactDateOfMonth.js +22 -31
- package/lib/scheduling/strategies/getNextExactDateOfMonth.js.map +1 -1
- package/lib/scheduling/strategies/getNextLastDayOfMonth.js +21 -28
- package/lib/scheduling/strategies/getNextLastDayOfMonth.js.map +1 -1
- package/lib/scheduling/strategies/getNextLastWeekdayOfMonth.js +21 -28
- package/lib/scheduling/strategies/getNextLastWeekdayOfMonth.js.map +1 -1
- package/lib/scheduling/strategies/getNextNoRepeat.js +15 -23
- package/lib/scheduling/strategies/getNextNoRepeat.js.map +1 -1
- package/lib/scheduling/strategies/getNextWeekday.js +43 -78
- package/lib/scheduling/strategies/getNextWeekday.js.map +1 -1
- package/lib/scheduling/strategies/getNextXDayOfXWeekOfMonth.js +21 -28
- package/lib/scheduling/strategies/getNextXDayOfXWeekOfMonth.js.map +1 -1
- package/lib/scheduling/strategies/index.js.map +1 -1
- package/lib/schema/index.js.map +1 -1
- package/lib/schema/schema.js +22 -30
- package/lib/schema/schema.js.map +1 -1
- package/lib/service-hours/__helpers__/calculate-hours.js +4 -13
- package/lib/service-hours/__helpers__/calculate-hours.js.map +1 -1
- package/lib/service-hours/__helpers__/isOpen.js +3 -7
- package/lib/service-hours/__helpers__/isOpen.js.map +1 -1
- package/lib/service-hours/index.js.map +1 -1
- package/lib/service-hours/schema.js +21 -36
- package/lib/service-hours/schema.js.map +1 -1
- package/package.json +1 -1
|
@@ -1,140 +1,100 @@
|
|
|
1
|
-
import _regeneratorRuntime from "@babel/runtime/regenerator";
|
|
2
1
|
import _toConsumableArray from "@babel/runtime/helpers/toConsumableArray";
|
|
3
|
-
|
|
2
|
+
import _regeneratorRuntime from "@babel/runtime/regenerator";
|
|
4
3
|
var _marked = /*#__PURE__*/_regeneratorRuntime.mark(generateNonRepeatingSchedule);
|
|
5
|
-
|
|
4
|
+
function _createForOfIteratorHelper(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray(r)) || e && r && "number" == typeof r.length) { t && (r = t); var _n = 0, F = function F() {}; return { s: F, n: function n() { return _n >= r.length ? { done: !0 } : { done: !1, value: r[_n++] }; }, e: function e(r) { throw r; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var o, a = !0, u = !1; return { s: function s() { t = t.call(r); }, n: function n() { var r = t.next(); return a = r.done, r; }, e: function e(r) { u = !0, o = r; }, f: function f() { try { a || null == t.return || t.return(); } finally { if (u) throw o; } } }; }
|
|
5
|
+
function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }
|
|
6
|
+
function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
|
|
6
7
|
import { isEmpty, first, last } from 'lodash/fp';
|
|
7
8
|
import { hasValidStartAndEnd } from '.';
|
|
8
9
|
import { IntervalTypes } from '../scheduling.types';
|
|
9
10
|
import { occurrenceIntervalsGenerator, serviceIntervalsGenerator } from '../generators';
|
|
11
|
+
|
|
10
12
|
/**
|
|
11
13
|
* Generates non repeating schedule service and occurrence intervals
|
|
12
14
|
*/
|
|
13
|
-
|
|
14
15
|
export function generateNonRepeatingSchedule(props) {
|
|
15
|
-
var end, serviceHours, start, strategy, isStartAndEndValid, serviceIntervalSequence, hours, timezone, hasServiceHours, intervals, serviceIntervals, _i, _serviceIntervals, serviceInterval, occurrenceIntervalsSequence,
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
end
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
if (isStartAndEndValid) {
|
|
28
|
-
_context.next = 4;
|
|
29
|
-
break;
|
|
30
|
-
}
|
|
31
|
-
|
|
32
|
-
return _context.abrupt("return", []);
|
|
33
|
-
|
|
34
|
-
case 4:
|
|
35
|
-
serviceIntervalSequence = serviceIntervalsGenerator({
|
|
36
|
-
end: end,
|
|
37
|
-
serviceHours: serviceHours,
|
|
38
|
-
start: start
|
|
39
|
-
});
|
|
40
|
-
hours = serviceHours.hours, timezone = serviceHours.timezone;
|
|
41
|
-
hasServiceHours = !isEmpty(hours);
|
|
42
|
-
intervals = _toConsumableArray(serviceIntervalSequence); // NOTE: when non repeating and has service hours the service interval is
|
|
43
|
-
// from the first and last service interval otherwise from the start and end
|
|
44
|
-
|
|
45
|
-
serviceIntervals = !hasServiceHours ? [[start, end]] : !isEmpty(intervals) ? [[first(intervals)[0], last(intervals)[1]]] : [];
|
|
46
|
-
_i = 0, _serviceIntervals = serviceIntervals;
|
|
47
|
-
|
|
48
|
-
case 10:
|
|
49
|
-
if (!(_i < _serviceIntervals.length)) {
|
|
50
|
-
_context.next = 44;
|
|
51
|
-
break;
|
|
52
|
-
}
|
|
53
|
-
|
|
54
|
-
serviceInterval = _serviceIntervals[_i];
|
|
55
|
-
_context.next = 14;
|
|
56
|
-
return {
|
|
57
|
-
interval: serviceInterval,
|
|
58
|
-
type: IntervalTypes.Service
|
|
59
|
-
};
|
|
60
|
-
|
|
61
|
-
case 14:
|
|
62
|
-
occurrenceIntervalsSequence = occurrenceIntervalsGenerator({
|
|
63
|
-
// NOTE: as we only have one interval we should always set isInitial to
|
|
64
|
-
// true
|
|
65
|
-
isInitial: true,
|
|
66
|
-
serviceInterval: serviceInterval,
|
|
67
|
-
strategy: strategy,
|
|
68
|
-
timezone: timezone
|
|
69
|
-
});
|
|
70
|
-
_iteratorNormalCompletion = true;
|
|
71
|
-
_didIteratorError = false;
|
|
72
|
-
_iteratorError = undefined;
|
|
73
|
-
_context.prev = 18;
|
|
74
|
-
_iterator = occurrenceIntervalsSequence[Symbol.iterator]();
|
|
75
|
-
|
|
76
|
-
case 20:
|
|
77
|
-
if (_iteratorNormalCompletion = (_step = _iterator.next()).done) {
|
|
78
|
-
_context.next = 27;
|
|
79
|
-
break;
|
|
80
|
-
}
|
|
81
|
-
|
|
82
|
-
occurrenceInterval = _step.value;
|
|
83
|
-
_context.next = 24;
|
|
84
|
-
return {
|
|
85
|
-
interval: occurrenceInterval,
|
|
86
|
-
type: IntervalTypes.Occurrence
|
|
87
|
-
};
|
|
88
|
-
|
|
89
|
-
case 24:
|
|
90
|
-
_iteratorNormalCompletion = true;
|
|
91
|
-
_context.next = 20;
|
|
16
|
+
var end, serviceHours, start, strategy, isStartAndEndValid, serviceIntervalSequence, hours, timezone, hasServiceHours, intervals, serviceIntervals, _i, _serviceIntervals, serviceInterval, occurrenceIntervalsSequence, _iterator, _step, occurrenceInterval, _t;
|
|
17
|
+
return _regeneratorRuntime.wrap(function (_context) {
|
|
18
|
+
while (1) switch (_context.prev = _context.next) {
|
|
19
|
+
case 0:
|
|
20
|
+
end = props.end, serviceHours = props.serviceHours, start = props.start, strategy = props.strategy;
|
|
21
|
+
isStartAndEndValid = hasValidStartAndEnd({
|
|
22
|
+
end: end,
|
|
23
|
+
start: start
|
|
24
|
+
});
|
|
25
|
+
if (isStartAndEndValid) {
|
|
26
|
+
_context.next = 1;
|
|
92
27
|
break;
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
28
|
+
}
|
|
29
|
+
return _context.abrupt("return", []);
|
|
30
|
+
case 1:
|
|
31
|
+
serviceIntervalSequence = serviceIntervalsGenerator({
|
|
32
|
+
end: end,
|
|
33
|
+
serviceHours: serviceHours,
|
|
34
|
+
start: start
|
|
35
|
+
});
|
|
36
|
+
hours = serviceHours.hours, timezone = serviceHours.timezone;
|
|
37
|
+
hasServiceHours = !isEmpty(hours);
|
|
38
|
+
intervals = _toConsumableArray(serviceIntervalSequence); // NOTE: when non repeating and has service hours the service interval is
|
|
39
|
+
// from the first and last service interval otherwise from the start and end
|
|
40
|
+
serviceIntervals = !hasServiceHours ? [[start, end]] : !isEmpty(intervals) ? [[first(intervals)[0], last(intervals)[1]]] : [];
|
|
41
|
+
_i = 0, _serviceIntervals = serviceIntervals;
|
|
42
|
+
case 2:
|
|
43
|
+
if (!(_i < _serviceIntervals.length)) {
|
|
44
|
+
_context.next = 11;
|
|
96
45
|
break;
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
throw _iteratorError;
|
|
121
|
-
|
|
122
|
-
case 39:
|
|
123
|
-
return _context.finish(36);
|
|
124
|
-
|
|
125
|
-
case 40:
|
|
126
|
-
return _context.finish(33);
|
|
127
|
-
|
|
128
|
-
case 41:
|
|
129
|
-
_i++;
|
|
130
|
-
_context.next = 10;
|
|
46
|
+
}
|
|
47
|
+
serviceInterval = _serviceIntervals[_i];
|
|
48
|
+
_context.next = 3;
|
|
49
|
+
return {
|
|
50
|
+
interval: serviceInterval,
|
|
51
|
+
type: IntervalTypes.Service
|
|
52
|
+
};
|
|
53
|
+
case 3:
|
|
54
|
+
occurrenceIntervalsSequence = occurrenceIntervalsGenerator({
|
|
55
|
+
// NOTE: as we only have one interval we should always set isInitial to
|
|
56
|
+
// true
|
|
57
|
+
isInitial: true,
|
|
58
|
+
serviceInterval: serviceInterval,
|
|
59
|
+
strategy: strategy,
|
|
60
|
+
timezone: timezone
|
|
61
|
+
});
|
|
62
|
+
_iterator = _createForOfIteratorHelper(occurrenceIntervalsSequence);
|
|
63
|
+
_context.prev = 4;
|
|
64
|
+
_iterator.s();
|
|
65
|
+
case 5:
|
|
66
|
+
if ((_step = _iterator.n()).done) {
|
|
67
|
+
_context.next = 7;
|
|
131
68
|
break;
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
69
|
+
}
|
|
70
|
+
occurrenceInterval = _step.value;
|
|
71
|
+
_context.next = 6;
|
|
72
|
+
return {
|
|
73
|
+
interval: occurrenceInterval,
|
|
74
|
+
type: IntervalTypes.Occurrence
|
|
75
|
+
};
|
|
76
|
+
case 6:
|
|
77
|
+
_context.next = 5;
|
|
78
|
+
break;
|
|
79
|
+
case 7:
|
|
80
|
+
_context.next = 9;
|
|
81
|
+
break;
|
|
82
|
+
case 8:
|
|
83
|
+
_context.prev = 8;
|
|
84
|
+
_t = _context["catch"](4);
|
|
85
|
+
_iterator.e(_t);
|
|
86
|
+
case 9:
|
|
87
|
+
_context.prev = 9;
|
|
88
|
+
_iterator.f();
|
|
89
|
+
return _context.finish(9);
|
|
90
|
+
case 10:
|
|
91
|
+
_i++;
|
|
92
|
+
_context.next = 2;
|
|
93
|
+
break;
|
|
94
|
+
case 11:
|
|
95
|
+
case "end":
|
|
96
|
+
return _context.stop();
|
|
137
97
|
}
|
|
138
|
-
}, _marked, null, [[
|
|
98
|
+
}, _marked, null, [[4, 8, 9, 10]]);
|
|
139
99
|
}
|
|
140
100
|
//# sourceMappingURL=generateNonRepeatingSchedule.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"generateNonRepeatingSchedule.js","names":["generateNonRepeatingSchedule","_createForOfIteratorHelper","r","e","t","Symbol","iterator","Array","isArray","_unsupportedIterableToArray","length","_n","F","s","n","done","value","f","TypeError","o","a","u","call","next","return","_arrayLikeToArray","toString","slice","constructor","name","from","test","isEmpty","first","last","hasValidStartAndEnd","IntervalTypes","occurrenceIntervalsGenerator","serviceIntervalsGenerator","props","end","serviceHours","start","strategy","isStartAndEndValid","serviceIntervalSequence","hours","timezone","hasServiceHours","intervals","serviceIntervals","_i","_serviceIntervals","serviceInterval","occurrenceIntervalsSequence","_iterator","_step","occurrenceInterval","_t","_regeneratorRuntime","wrap","_context","prev","abrupt","_toConsumableArray","interval","type","Service","isInitial","Occurrence","finish","stop","_marked"],"sources":["../../../src/scheduling/helpers/generateNonRepeatingSchedule.ts"],"sourcesContent":["import { isEmpty, first, last } from 'lodash/fp'\n\nimport { hasValidStartAndEnd } from '.'\nimport { IntervalTypes, ScheduleIntervalsGenerator } from '../scheduling.types'\nimport {\n occurrenceIntervalsGenerator,\n serviceIntervalsGenerator,\n} from '../generators'\n\n/**\n * Generates non repeating schedule service and occurrence intervals\n */\nexport function* generateNonRepeatingSchedule(\n props: ScheduleIntervalsGenerator\n) {\n const { end, serviceHours, start, strategy } = props\n\n const isStartAndEndValid = hasValidStartAndEnd({ end, start })\n if (!isStartAndEndValid) return []\n\n const serviceIntervalSequence = serviceIntervalsGenerator({\n end,\n serviceHours,\n start,\n })\n\n const { hours, timezone } = serviceHours\n const hasServiceHours = !isEmpty(hours)\n const intervals = [...serviceIntervalSequence]\n\n // NOTE: when non repeating and has service hours the service interval is\n // from the first and last service interval otherwise from the start and end\n const serviceIntervals = !hasServiceHours\n ? [[start, end]]\n : !isEmpty(intervals)\n ? [[first(intervals)[0], last(intervals)[1]]]\n : []\n\n for (const serviceInterval of serviceIntervals) {\n yield { interval: serviceInterval, type: IntervalTypes.Service }\n\n const occurrenceIntervalsSequence = occurrenceIntervalsGenerator({\n // NOTE: as we only have one interval we should always set isInitial to\n // true\n isInitial: true,\n serviceInterval,\n strategy,\n timezone,\n })\n\n for (const occurrenceInterval of occurrenceIntervalsSequence) {\n yield { interval: occurrenceInterval, type: IntervalTypes.Occurrence }\n }\n }\n}\n"],"mappings":";;oDAYiBA,4BAA4B;AAAA,SAAAC,2BAAAC,CAAA,EAAAC,CAAA,QAAAC,CAAA,yBAAAC,MAAA,IAAAH,CAAA,CAAAG,MAAA,CAAAC,QAAA,KAAAJ,CAAA,qBAAAE,CAAA,QAAAG,KAAA,CAAAC,OAAA,CAAAN,CAAA,MAAAE,CAAA,GAAAK,2BAAA,CAAAP,CAAA,MAAAC,CAAA,IAAAD,CAAA,uBAAAA,CAAA,CAAAQ,MAAA,IAAAN,CAAA,KAAAF,CAAA,GAAAE,CAAA,OAAAO,EAAA,MAAAC,CAAA,YAAAA,EAAA,eAAAC,CAAA,EAAAD,CAAA,EAAAE,CAAA,WAAAA,EAAA,WAAAH,EAAA,IAAAT,CAAA,CAAAQ,MAAA,KAAAK,IAAA,WAAAA,IAAA,MAAAC,KAAA,EAAAd,CAAA,CAAAS,EAAA,UAAAR,CAAA,WAAAA,EAAAD,CAAA,UAAAA,CAAA,KAAAe,CAAA,EAAAL,CAAA,gBAAAM,SAAA,iJAAAC,CAAA,EAAAC,CAAA,OAAAC,CAAA,gBAAAR,CAAA,WAAAA,EAAA,IAAAT,CAAA,GAAAA,CAAA,CAAAkB,IAAA,CAAApB,CAAA,MAAAY,CAAA,WAAAA,EAAA,QAAAZ,CAAA,GAAAE,CAAA,CAAAmB,IAAA,WAAAH,CAAA,GAAAlB,CAAA,CAAAa,IAAA,EAAAb,CAAA,KAAAC,CAAA,WAAAA,EAAAD,CAAA,IAAAmB,CAAA,OAAAF,CAAA,GAAAjB,CAAA,KAAAe,CAAA,WAAAA,EAAA,UAAAG,CAAA,YAAAhB,CAAA,CAAAoB,MAAA,IAAApB,CAAA,CAAAoB,MAAA,oBAAAH,CAAA,QAAAF,CAAA;AAAA,SAAAV,4BAAAP,CAAA,EAAAkB,CAAA,QAAAlB,CAAA,2BAAAA,CAAA,SAAAuB,iBAAA,CAAAvB,CAAA,EAAAkB,CAAA,OAAAhB,CAAA,MAAAsB,QAAA,CAAAJ,IAAA,CAAApB,CAAA,EAAAyB,KAAA,6BAAAvB,CAAA,IAAAF,CAAA,CAAA0B,WAAA,KAAAxB,CAAA,GAAAF,CAAA,CAAA0B,WAAA,CAAAC,IAAA,aAAAzB,CAAA,cAAAA,CAAA,GAAAG,KAAA,CAAAuB,IAAA,CAAA5B,CAAA,oBAAAE,CAAA,+CAAA2B,IAAA,CAAA3B,CAAA,IAAAqB,iBAAA,CAAAvB,CAAA,EAAAkB,CAAA;AAAA,SAAAK,kBAAAvB,CAAA,EAAAkB,CAAA,aAAAA,CAAA,IAAAA,CAAA,GAAAlB,CAAA,CAAAQ,MAAA,MAAAU,CAAA,GAAAlB,CAAA,CAAAQ,MAAA,YAAAP,CAAA,MAAAW,CAAA,GAAAP,KAAA,CAAAa,CAAA,GAAAjB,CAAA,GAAAiB,CAAA,EAAAjB,CAAA,IAAAW,CAAA,CAAAX,CAAA,IAAAD,CAAA,CAAAC,CAAA,UAAAW,CAAA;AAZ7C,SAASkB,OAAO,EAAEC,KAAK,EAAEC,IAAI,QAAQ,WAAW;AAEhD,SAASC,mBAAmB,QAAQ,GAAG;AACvC,SAASC,aAAa,QAAoC,qBAAqB;AAC/E,SACEC,4BAA4B,EAC5BC,yBAAyB,QACpB,eAAe;;AAEtB;AACA;AACA;AACA,OAAO,SAAUtC,4BAA4BA,CAC3CuC,KAAiC;EAAA,IAAAC,GAAA,EAAAC,YAAA,EAAAC,KAAA,EAAAC,QAAA,EAAAC,kBAAA,EAAAC,uBAAA,EAAAC,KAAA,EAAAC,QAAA,EAAAC,eAAA,EAAAC,SAAA,EAAAC,gBAAA,EAAAC,EAAA,EAAAC,iBAAA,EAAAC,eAAA,EAAAC,2BAAA,EAAAC,SAAA,EAAAC,KAAA,EAAAC,kBAAA,EAAAC,EAAA;EAAA,OAAAC,mBAAA,CAAAC,IAAA,WAAAC,QAAA;IAAA,kBAAAA,QAAA,CAAAC,IAAA,GAAAD,QAAA,CAAAtC,IAAA;MAAA;QAEzBiB,GAAG,GAAoCD,KAAK,CAA5CC,GAAG,EAAEC,YAAY,GAAsBF,KAAK,CAAvCE,YAAY,EAAEC,KAAK,GAAeH,KAAK,CAAzBG,KAAK,EAAEC,QAAQ,GAAKJ,KAAK,CAAlBI,QAAQ;QAEpCC,kBAAkB,GAAGT,mBAAmB,CAAC;UAAEK,GAAG,EAAHA,GAAG;UAAEE,KAAK,EAALA;QAAM,CAAC,CAAC;QAAA,IACzDE,kBAAkB;UAAAiB,QAAA,CAAAtC,IAAA;UAAA;QAAA;QAAA,OAAAsC,QAAA,CAAAE,MAAA,WAAS,EAAE;MAAA;QAE5BlB,uBAAuB,GAAGP,yBAAyB,CAAC;UACxDE,GAAG,EAAHA,GAAG;UACHC,YAAY,EAAZA,YAAY;UACZC,KAAK,EAALA;QACF,CAAC,CAAC;QAEMI,KAAK,GAAeL,YAAY,CAAhCK,KAAK,EAAEC,QAAQ,GAAKN,YAAY,CAAzBM,QAAQ;QACjBC,eAAe,GAAG,CAAChB,OAAO,CAACc,KAAK,CAAC;QACjCG,SAAS,GAAAe,kBAAA,CAAOnB,uBAAuB,GAE7C;QACA;QACMK,gBAAgB,GAAG,CAACF,eAAe,GACrC,CAAC,CAACN,KAAK,EAAEF,GAAG,CAAC,CAAC,GACd,CAACR,OAAO,CAACiB,SAAS,CAAC,GACnB,CAAC,CAAChB,KAAK,CAACgB,SAAS,CAAC,CAAC,CAAC,CAAC,EAAEf,IAAI,CAACe,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAC3C,EAAE;QAAAE,EAAA,MAAAC,iBAAA,GAEwBF,gBAAgB;MAAA;QAAA,MAAAC,EAAA,GAAAC,iBAAA,CAAA1C,MAAA;UAAAmD,QAAA,CAAAtC,IAAA;UAAA;QAAA;QAAnC8B,eAAe,GAAAD,iBAAA,CAAAD,EAAA;QAAAU,QAAA,CAAAtC,IAAA;QACxB,OAAM;UAAE0C,QAAQ,EAAEZ,eAAe;UAAEa,IAAI,EAAE9B,aAAa,CAAC+B;QAAQ,CAAC;MAAA;QAE1Db,2BAA2B,GAAGjB,4BAA4B,CAAC;UAC/D;UACA;UACA+B,SAAS,EAAE,IAAI;UACff,eAAe,EAAfA,eAAe;UACfV,QAAQ,EAARA,QAAQ;UACRI,QAAQ,EAARA;QACF,CAAC,CAAC;QAAAQ,SAAA,GAAAtD,0BAAA,CAE+BqD,2BAA2B;QAAAO,QAAA,CAAAC,IAAA;QAAAP,SAAA,CAAA1C,CAAA;MAAA;QAAA,KAAA2C,KAAA,GAAAD,SAAA,CAAAzC,CAAA,IAAAC,IAAA;UAAA8C,QAAA,CAAAtC,IAAA;UAAA;QAAA;QAAjDkC,kBAAkB,GAAAD,KAAA,CAAAxC,KAAA;QAAA6C,QAAA,CAAAtC,IAAA;QAC3B,OAAM;UAAE0C,QAAQ,EAAER,kBAAkB;UAAES,IAAI,EAAE9B,aAAa,CAACiC;QAAW,CAAC;MAAA;QAAAR,QAAA,CAAAtC,IAAA;QAAA;MAAA;QAAAsC,QAAA,CAAAtC,IAAA;QAAA;MAAA;QAAAsC,QAAA,CAAAC,IAAA;QAAAJ,EAAA,GAAAG,QAAA;QAAAN,SAAA,CAAApD,CAAA,CAAAuD,EAAA;MAAA;QAAAG,QAAA,CAAAC,IAAA;QAAAP,SAAA,CAAAtC,CAAA;QAAA,OAAA4C,QAAA,CAAAS,MAAA;MAAA;QAAAnB,EAAA;QAAAU,QAAA,CAAAtC,IAAA;QAAA;MAAA;MAAA;QAAA,OAAAsC,QAAA,CAAAU,IAAA;IAAA;EAAA,GAAAC,OAAA;AAAA","ignoreList":[]}
|
|
@@ -1,192 +1,124 @@
|
|
|
1
|
-
import _regeneratorRuntime from "@babel/runtime/regenerator";
|
|
2
1
|
import _toConsumableArray from "@babel/runtime/helpers/toConsumableArray";
|
|
3
|
-
|
|
2
|
+
import _regeneratorRuntime from "@babel/runtime/regenerator";
|
|
4
3
|
var _marked = /*#__PURE__*/_regeneratorRuntime.mark(generateRepeatingSchedule);
|
|
5
|
-
|
|
4
|
+
function _createForOfIteratorHelper(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray(r)) || e && r && "number" == typeof r.length) { t && (r = t); var _n = 0, F = function F() {}; return { s: F, n: function n() { return _n >= r.length ? { done: !0 } : { done: !1, value: r[_n++] }; }, e: function e(r) { throw r; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var o, a = !0, u = !1; return { s: function s() { t = t.call(r); }, n: function n() { var r = t.next(); return a = r.done, r; }, e: function e(r) { u = !0, o = r; }, f: function f() { try { a || null == t.return || t.return(); } finally { if (u) throw o; } } }; }
|
|
5
|
+
function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }
|
|
6
|
+
function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
|
|
6
7
|
import { includes } from 'lodash/fp';
|
|
7
8
|
import { generateScheduleEnd, hasValidStartAndEnd } from '.';
|
|
8
9
|
import { IntervalTypes, Unit } from '../scheduling.types';
|
|
9
10
|
import { occurrenceIntervalsGenerator, serviceIntervalsGenerator } from '../generators';
|
|
10
11
|
export var complyingServiceIntervalUnits = [Unit.Second, Unit.Minute, Unit.Hour];
|
|
12
|
+
|
|
11
13
|
/**
|
|
12
14
|
* Generates repeating schedule service and occurrence intervals
|
|
13
15
|
*/
|
|
14
|
-
|
|
15
16
|
export function generateRepeatingSchedule(props) {
|
|
16
|
-
var serviceHours, start, strategy, end, isInitial, frequency, frequencyUnit, timezone, isStartAndEndValid, serviceIntervalSequence, complyToServiceHours, serviceIntervals,
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
});
|
|
38
|
-
|
|
39
|
-
if (isStartAndEndValid) {
|
|
40
|
-
_context.next = 9;
|
|
41
|
-
break;
|
|
42
|
-
}
|
|
43
|
-
|
|
44
|
-
return _context.abrupt("return", []);
|
|
45
|
-
|
|
46
|
-
case 9:
|
|
47
|
-
serviceIntervalSequence = serviceIntervalsGenerator({
|
|
48
|
-
end: end,
|
|
49
|
-
serviceHours: serviceHours,
|
|
50
|
-
start: start
|
|
51
|
-
}); // NOTE: when repeating and is complying to service hours we iterate through
|
|
52
|
-
// all service intervals otherwise service interval is from the start and end
|
|
53
|
-
|
|
54
|
-
complyToServiceHours = includes(frequencyUnit, complyingServiceIntervalUnits);
|
|
55
|
-
serviceIntervals = complyToServiceHours ? _toConsumableArray(serviceIntervalSequence) : [[start, end]];
|
|
56
|
-
_iteratorNormalCompletion = true;
|
|
57
|
-
_didIteratorError = false;
|
|
58
|
-
_iteratorError = undefined;
|
|
59
|
-
_context.prev = 15;
|
|
60
|
-
_iterator = serviceIntervals[Symbol.iterator]();
|
|
61
|
-
|
|
62
|
-
case 17:
|
|
63
|
-
if (_iteratorNormalCompletion = (_step = _iterator.next()).done) {
|
|
64
|
-
_context.next = 52;
|
|
65
|
-
break;
|
|
66
|
-
}
|
|
67
|
-
|
|
68
|
-
serviceInterval = _step.value;
|
|
69
|
-
_context.next = 21;
|
|
70
|
-
return {
|
|
71
|
-
interval: serviceInterval,
|
|
72
|
-
type: IntervalTypes.Service
|
|
73
|
-
};
|
|
74
|
-
|
|
75
|
-
case 21:
|
|
76
|
-
occurrenceIntervalsSequence = occurrenceIntervalsGenerator({
|
|
77
|
-
isInitial: isInitial,
|
|
78
|
-
serviceInterval: serviceInterval,
|
|
79
|
-
strategy: strategy,
|
|
80
|
-
timezone: timezone
|
|
81
|
-
});
|
|
82
|
-
_iteratorNormalCompletion2 = true;
|
|
83
|
-
_didIteratorError2 = false;
|
|
84
|
-
_iteratorError2 = undefined;
|
|
85
|
-
_context.prev = 25;
|
|
86
|
-
_iterator2 = occurrenceIntervalsSequence[Symbol.iterator]();
|
|
87
|
-
|
|
88
|
-
case 27:
|
|
89
|
-
if (_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done) {
|
|
90
|
-
_context.next = 34;
|
|
91
|
-
break;
|
|
92
|
-
}
|
|
93
|
-
|
|
94
|
-
occurrenceInterval = _step2.value;
|
|
95
|
-
_context.next = 31;
|
|
96
|
-
return {
|
|
97
|
-
interval: occurrenceInterval,
|
|
98
|
-
type: IntervalTypes.Occurrence
|
|
99
|
-
};
|
|
100
|
-
|
|
101
|
-
case 31:
|
|
102
|
-
_iteratorNormalCompletion2 = true;
|
|
103
|
-
_context.next = 27;
|
|
104
|
-
break;
|
|
105
|
-
|
|
106
|
-
case 34:
|
|
107
|
-
_context.next = 40;
|
|
17
|
+
var serviceHours, start, strategy, end, isInitial, frequency, frequencyUnit, timezone, isStartAndEndValid, serviceIntervalSequence, complyToServiceHours, serviceIntervals, _iterator, _step, serviceInterval, occurrenceIntervalsSequence, _iterator2, _step2, occurrenceInterval, _t, _t2;
|
|
18
|
+
return _regeneratorRuntime.wrap(function (_context) {
|
|
19
|
+
while (1) switch (_context.prev = _context.next) {
|
|
20
|
+
case 0:
|
|
21
|
+
serviceHours = props.serviceHours, start = props.start, strategy = props.strategy;
|
|
22
|
+
end = props.end, isInitial = props.isInitial; // NOTE support never ending repeating schedule where no end date defined by
|
|
23
|
+
// setting a custom end date using the frequency unit and value
|
|
24
|
+
frequency = strategy.options.frequency;
|
|
25
|
+
frequencyUnit = frequency.unit;
|
|
26
|
+
timezone = serviceHours.timezone;
|
|
27
|
+
end = end || generateScheduleEnd({
|
|
28
|
+
frequency: frequency,
|
|
29
|
+
start: start,
|
|
30
|
+
timezone: timezone
|
|
31
|
+
});
|
|
32
|
+
isStartAndEndValid = hasValidStartAndEnd({
|
|
33
|
+
end: end,
|
|
34
|
+
start: start
|
|
35
|
+
});
|
|
36
|
+
if (isStartAndEndValid) {
|
|
37
|
+
_context.next = 1;
|
|
108
38
|
break;
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
_context.
|
|
126
|
-
|
|
127
|
-
if (!_didIteratorError2) {
|
|
128
|
-
_context.next = 46;
|
|
129
|
-
break;
|
|
130
|
-
}
|
|
131
|
-
|
|
132
|
-
throw _iteratorError2;
|
|
133
|
-
|
|
134
|
-
case 46:
|
|
135
|
-
return _context.finish(43);
|
|
136
|
-
|
|
137
|
-
case 47:
|
|
138
|
-
return _context.finish(40);
|
|
139
|
-
|
|
140
|
-
case 48:
|
|
141
|
-
// NOTE: we must reset isInitial to true following the first service
|
|
142
|
-
// interval otherwise the occurrence will not start exactly on the next
|
|
143
|
-
// service interval start time
|
|
144
|
-
isInitial = true;
|
|
145
|
-
|
|
146
|
-
case 49:
|
|
147
|
-
_iteratorNormalCompletion = true;
|
|
148
|
-
_context.next = 17;
|
|
39
|
+
}
|
|
40
|
+
return _context.abrupt("return", []);
|
|
41
|
+
case 1:
|
|
42
|
+
serviceIntervalSequence = serviceIntervalsGenerator({
|
|
43
|
+
end: end,
|
|
44
|
+
serviceHours: serviceHours,
|
|
45
|
+
start: start
|
|
46
|
+
}); // NOTE: when repeating and is complying to service hours we iterate through
|
|
47
|
+
// all service intervals otherwise service interval is from the start and end
|
|
48
|
+
complyToServiceHours = includes(frequencyUnit, complyingServiceIntervalUnits);
|
|
49
|
+
serviceIntervals = complyToServiceHours ? _toConsumableArray(serviceIntervalSequence) : [[start, end]];
|
|
50
|
+
_iterator = _createForOfIteratorHelper(serviceIntervals);
|
|
51
|
+
_context.prev = 2;
|
|
52
|
+
_iterator.s();
|
|
53
|
+
case 3:
|
|
54
|
+
if ((_step = _iterator.n()).done) {
|
|
55
|
+
_context.next = 13;
|
|
149
56
|
break;
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
57
|
+
}
|
|
58
|
+
serviceInterval = _step.value;
|
|
59
|
+
_context.next = 4;
|
|
60
|
+
return {
|
|
61
|
+
interval: serviceInterval,
|
|
62
|
+
type: IntervalTypes.Service
|
|
63
|
+
};
|
|
64
|
+
case 4:
|
|
65
|
+
occurrenceIntervalsSequence = occurrenceIntervalsGenerator({
|
|
66
|
+
isInitial: isInitial,
|
|
67
|
+
serviceInterval: serviceInterval,
|
|
68
|
+
strategy: strategy,
|
|
69
|
+
timezone: timezone
|
|
70
|
+
});
|
|
71
|
+
_iterator2 = _createForOfIteratorHelper(occurrenceIntervalsSequence);
|
|
72
|
+
_context.prev = 5;
|
|
73
|
+
_iterator2.s();
|
|
74
|
+
case 6:
|
|
75
|
+
if ((_step2 = _iterator2.n()).done) {
|
|
76
|
+
_context.next = 8;
|
|
153
77
|
break;
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
78
|
+
}
|
|
79
|
+
occurrenceInterval = _step2.value;
|
|
80
|
+
_context.next = 7;
|
|
81
|
+
return {
|
|
82
|
+
interval: occurrenceInterval,
|
|
83
|
+
type: IntervalTypes.Occurrence
|
|
84
|
+
};
|
|
85
|
+
case 7:
|
|
86
|
+
_context.next = 6;
|
|
87
|
+
break;
|
|
88
|
+
case 8:
|
|
89
|
+
_context.next = 10;
|
|
90
|
+
break;
|
|
91
|
+
case 9:
|
|
92
|
+
_context.prev = 9;
|
|
93
|
+
_t = _context["catch"](5);
|
|
94
|
+
_iterator2.e(_t);
|
|
95
|
+
case 10:
|
|
96
|
+
_context.prev = 10;
|
|
97
|
+
_iterator2.f();
|
|
98
|
+
return _context.finish(10);
|
|
99
|
+
case 11:
|
|
100
|
+
// NOTE: we must reset isInitial to true following the first service
|
|
101
|
+
// interval otherwise the occurrence will not start exactly on the next
|
|
102
|
+
// service interval start time
|
|
103
|
+
isInitial = true;
|
|
104
|
+
case 12:
|
|
105
|
+
_context.next = 3;
|
|
106
|
+
break;
|
|
107
|
+
case 13:
|
|
108
|
+
_context.next = 15;
|
|
109
|
+
break;
|
|
110
|
+
case 14:
|
|
111
|
+
_context.prev = 14;
|
|
112
|
+
_t2 = _context["catch"](2);
|
|
113
|
+
_iterator.e(_t2);
|
|
114
|
+
case 15:
|
|
115
|
+
_context.prev = 15;
|
|
116
|
+
_iterator.f();
|
|
117
|
+
return _context.finish(15);
|
|
118
|
+
case 16:
|
|
119
|
+
case "end":
|
|
120
|
+
return _context.stop();
|
|
189
121
|
}
|
|
190
|
-
}, _marked, null, [[
|
|
122
|
+
}, _marked, null, [[2, 14, 15, 16], [5, 9, 10, 11]]);
|
|
191
123
|
}
|
|
192
124
|
//# sourceMappingURL=generateRepeatingSchedule.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"generateRepeatingSchedule.js","names":["generateRepeatingSchedule","_createForOfIteratorHelper","r","e","t","Symbol","iterator","Array","isArray","_unsupportedIterableToArray","length","_n","F","s","n","done","value","f","TypeError","o","a","u","call","next","return","_arrayLikeToArray","toString","slice","constructor","name","from","test","includes","generateScheduleEnd","hasValidStartAndEnd","IntervalTypes","Unit","occurrenceIntervalsGenerator","serviceIntervalsGenerator","complyingServiceIntervalUnits","Second","Minute","Hour","props","serviceHours","start","strategy","end","isInitial","frequency","frequencyUnit","timezone","isStartAndEndValid","serviceIntervalSequence","complyToServiceHours","serviceIntervals","_iterator","_step","serviceInterval","occurrenceIntervalsSequence","_iterator2","_step2","occurrenceInterval","_t","_t2","_regeneratorRuntime","wrap","_context","prev","options","unit","abrupt","_toConsumableArray","interval","type","Service","Occurrence","finish","stop","_marked"],"sources":["../../../src/scheduling/helpers/generateRepeatingSchedule.ts"],"sourcesContent":["import { includes } from 'lodash/fp'\n\nimport { generateScheduleEnd, hasValidStartAndEnd } from '.'\nimport {\n IntervalTypes,\n ScheduleIntervalsGenerator,\n Unit,\n} from '../scheduling.types'\nimport {\n occurrenceIntervalsGenerator,\n serviceIntervalsGenerator,\n} from '../generators'\n\nexport const complyingServiceIntervalUnits = [\n Unit.Second,\n Unit.Minute,\n Unit.Hour,\n]\n\n/**\n * Generates repeating schedule service and occurrence intervals\n */\nexport function* generateRepeatingSchedule(props: ScheduleIntervalsGenerator) {\n const { serviceHours, start, strategy } = props\n let { end, isInitial } = props\n\n // NOTE support never ending repeating schedule where no end date defined by\n // setting a custom end date using the frequency unit and value\n const {\n options: { frequency },\n } = strategy\n const { unit: frequencyUnit } = frequency\n const { timezone } = serviceHours\n\n end = end || generateScheduleEnd({ frequency, start, timezone })\n\n const isStartAndEndValid = hasValidStartAndEnd({ end, start })\n\n if (!isStartAndEndValid) return []\n\n const serviceIntervalSequence = serviceIntervalsGenerator({\n end,\n serviceHours,\n start,\n })\n\n // NOTE: when repeating and is complying to service hours we iterate through\n // all service intervals otherwise service interval is from the start and end\n const complyToServiceHours = includes(\n frequencyUnit,\n complyingServiceIntervalUnits\n )\n\n const serviceIntervals = complyToServiceHours\n ? [...serviceIntervalSequence]\n : [[start, end]]\n\n for (const serviceInterval of serviceIntervals) {\n yield { interval: serviceInterval, type: IntervalTypes.Service }\n\n const occurrenceIntervalsSequence = occurrenceIntervalsGenerator({\n isInitial,\n serviceInterval,\n strategy,\n timezone,\n })\n\n for (const occurrenceInterval of occurrenceIntervalsSequence) {\n yield { interval: occurrenceInterval, type: IntervalTypes.Occurrence }\n }\n\n // NOTE: we must reset isInitial to true following the first service\n // interval otherwise the occurrence will not start exactly on the next\n // service interval start time\n isInitial = true\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1,21 +1,21 @@
|
|
|
1
1
|
import { includes } from 'lodash/fp';
|
|
2
2
|
import moment from 'moment-timezone';
|
|
3
3
|
import { Unit } from '../scheduling.types';
|
|
4
|
-
|
|
5
4
|
/**
|
|
6
5
|
* Generates a schedule end datetime based on the start and frequency
|
|
7
6
|
*/
|
|
8
7
|
export function generateScheduleEnd(_ref) {
|
|
9
8
|
var frequency = _ref.frequency,
|
|
10
|
-
|
|
11
|
-
|
|
9
|
+
start = _ref.start,
|
|
10
|
+
timezone = _ref.timezone;
|
|
12
11
|
var frequencyUnit = frequency.unit,
|
|
13
|
-
|
|
12
|
+
frequencyValue = frequency.value;
|
|
14
13
|
var isFrequencyLessThanWeek = includes(frequencyUnit, [Unit.Millisecond, Unit.Second, Unit.Minute, Unit.Hour, Unit.Day]);
|
|
15
|
-
var mStart = moment.tz(start, timezone);
|
|
14
|
+
var mStart = moment.tz(start, timezone);
|
|
15
|
+
|
|
16
|
+
// NOTE: if frequency unit less than a week we must set end to jump a week
|
|
16
17
|
// plus the interval length of the schedule frequency
|
|
17
18
|
// so that we can ensure that we are within a service interval
|
|
18
|
-
|
|
19
19
|
var end = isFrequencyLessThanWeek ? mStart.add(2, Unit.Week).valueOf() : mStart.add(frequencyValue * 2, frequencyUnit).valueOf();
|
|
20
20
|
return end;
|
|
21
21
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"generateScheduleEnd.js","names":["includes","moment","Unit","generateScheduleEnd","_ref","frequency","start","timezone","frequencyUnit","unit","frequencyValue","value","isFrequencyLessThanWeek","Millisecond","Second","Minute","Hour","Day","mStart","tz","end","add","Week","valueOf"],"sources":["../../../src/scheduling/helpers/generateScheduleEnd.ts"],"sourcesContent":["import { includes } from 'lodash/fp'\nimport moment from 'moment-timezone'\n\nimport { Period, Unit } from '../scheduling.types'\n\ninterface GenerateScheduleEnd {\n readonly frequency: Period\n readonly start: number\n readonly timezone: string\n}\n\n/**\n * Generates a schedule end datetime based on the start and frequency\n */\nexport function generateScheduleEnd({\n frequency,\n start,\n timezone,\n}: GenerateScheduleEnd): number {\n const { unit: frequencyUnit, value: frequencyValue } = frequency\n\n const isFrequencyLessThanWeek = includes(frequencyUnit, [\n Unit.Millisecond,\n Unit.Second,\n Unit.Minute,\n Unit.Hour,\n Unit.Day,\n ])\n\n const mStart = moment.tz(start, timezone)\n\n // NOTE: if frequency unit less than a week we must set end to jump a week\n // plus the interval length of the schedule frequency\n // so that we can ensure that we are within a service interval\n const end = isFrequencyLessThanWeek\n ? mStart.add(2, Unit.Week).valueOf()\n : mStart.add(frequencyValue * 2, frequencyUnit).valueOf()\n\n return end\n}\n"],"mappings":"AAAA,SAASA,QAAQ,QAAQ,WAAW;AACpC,OAAOC,MAAM,MAAM,iBAAiB;AAEpC,SAAiBC,IAAI,QAAQ,qBAAqB;AAQlD;AACA;AACA;AACA,OAAO,SAASC,mBAAmBA,CAAAC,IAAA,EAIH;EAAA,IAH9BC,SAAS,GAAAD,IAAA,CAATC,SAAS;IACTC,KAAK,GAAAF,IAAA,CAALE,KAAK;IACLC,QAAQ,GAAAH,IAAA,CAARG,QAAQ;EAER,IAAcC,aAAa,GAA4BH,SAAS,CAAxDI,IAAI;IAAwBC,cAAc,GAAKL,SAAS,CAAnCM,KAAK;EAElC,IAAMC,uBAAuB,GAAGZ,QAAQ,CAACQ,aAAa,EAAE,CACtDN,IAAI,CAACW,WAAW,EAChBX,IAAI,CAACY,MAAM,EACXZ,IAAI,CAACa,MAAM,EACXb,IAAI,CAACc,IAAI,EACTd,IAAI,CAACe,GAAG,CACT,CAAC;EAEF,IAAMC,MAAM,GAAGjB,MAAM,CAACkB,EAAE,CAACb,KAAK,EAAEC,QAAQ,CAAC;;EAEzC;EACA;EACA;EACA,IAAMa,GAAG,GAAGR,uBAAuB,GAC/BM,MAAM,CAACG,GAAG,CAAC,CAAC,EAAEnB,IAAI,CAACoB,IAAI,CAAC,CAACC,OAAO,CAAC,CAAC,GAClCL,MAAM,CAACG,GAAG,CAACX,cAAc,GAAG,CAAC,EAAEF,aAAa,CAAC,CAACe,OAAO,CAAC,CAAC;EAE3D,OAAOH,GAAG;AACZ","ignoreList":[]}
|