@dereekb/date 10.1.1 → 10.1.3

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/index.esm.js CHANGED
@@ -1,8 +1,8 @@
1
- import { MS_IN_HOUR, MS_IN_MINUTE, MINUTES_IN_DAY, isISO8601DateString, filterMaybeValues, asArray, dayOfWeek, sortNumbersAscendingFunction, SORT_VALUE_LESS_THAN, SORT_VALUE_GREATER_THAN, SORT_VALUE_EQUAL, copyArray, compareFnOrder, groupValues, daysOfWeekArray, MS_IN_DAY, minutesToFractionalHours, safeCompareEquality, UTC_TIMEZONE_STRING, isSameNonNullValue, isConsideredUtcTimezoneString, parseISO8601DayStringToUTCDate, cachedGetter, replaceStringsFunction, sortAscendingIndexNumberRefFunction, range, addToSet, sumOfIntegersBetween, makeValuesGroupMap, lastValue, pushArrayItemsIntoArray, asGetter, indexRangeCheckFunction, mergeFilterFunctions, isDate as isDate$2, HOURS_IN_DAY, getNextDay, enabledDaysFromDaysOfWeek, daysOfWeekFromEnabledDays, firstValueFromIterable, forEachInIterable, iterablesAreSetEquivalent, invertFilter, mapIdentityFunction, repeatString, HashSet, DATE_NOW_VALUE, roundNumberUpToStep, protectedFactory, MS_IN_SECOND, TimeAM, isLogicalDateStringCode as isLogicalDateStringCode$1, dateFromLogicalDate as dateFromLogicalDate$1, flattenArray, splitJoinRemainder } from '@dereekb/util';
2
- import { isDate as isDate$1, startOfMinute, isValid, parseISO, min as min$5, max as max$2, isAfter as isAfter$1, isEqual, isSameDay, isPast, addDays, set as set$1, differenceInDays, startOfMonth, endOfWeek, startOfWeek, endOfMonth, addHours, addMinutes, isBefore, addMilliseconds, startOfDay, addMonths, addWeeks, endOfDay, endOfHour, startOfHour, endOfMinute, minutesToHours, getMinutes, getSeconds, getMilliseconds, differenceInMilliseconds, differenceInHours, getWeek, getYear, setWeek, getDay, formatDistanceStrict, formatDistance, format, differenceInMinutes, formatDistanceToNow, parse, addSeconds } from 'date-fns';
1
+ import { MS_IN_HOUR, MS_IN_MINUTE, MINUTES_IN_DAY, isISO8601DateString, filterMaybeValues, asArray, dayOfWeek, sortNumbersAscendingFunction, SORT_VALUE_LESS_THAN, SORT_VALUE_GREATER_THAN, SORT_VALUE_EQUAL, copyArray, compareFnOrder, groupValues, daysOfWeekArray, MS_IN_DAY, minutesToFractionalHours, safeCompareEquality, UTC_TIMEZONE_STRING, isSameNonNullValue, isConsideredUtcTimezoneString, parseISO8601DayStringToUTCDate, cachedGetter, replaceStringsFunction, mapIdentityFunction, repeatString, startOfDayForUTCDateInUTC, sortAscendingIndexNumberRefFunction, range, addToSet, sumOfIntegersBetween, makeValuesGroupMap, lastValue, pushArrayItemsIntoArray, asGetter, indexRangeCheckFunction, mergeFilterFunctions, isDate as isDate$2, HOURS_IN_DAY, getNextDay, enabledDaysFromDaysOfWeek, daysOfWeekFromEnabledDays, firstValueFromIterable, forEachInIterable, iterablesAreSetEquivalent, invertFilter, HashSet, DATE_NOW_VALUE, roundNumberUpToStep, protectedFactory, MS_IN_SECOND, TimeAM, isLogicalDateStringCode as isLogicalDateStringCode$1, dateFromLogicalDate as dateFromLogicalDate$1, flattenArray, splitJoinRemainder } from '@dereekb/util';
2
+ import { isDate as isDate$1, startOfMinute, isValid, parseISO, min as min$5, max as max$2, isAfter as isAfter$1, isEqual, isSameDay, isPast, addDays, set as set$1, differenceInDays, startOfMonth, endOfWeek, startOfWeek, endOfMonth, addHours, addMinutes, isBefore, addMilliseconds, startOfDay, addMonths, addWeeks, endOfDay, endOfHour, startOfHour, endOfMinute, minutesToHours, formatDistanceStrict, formatDistance, format as format$1, differenceInMinutes, formatDistanceToNow, parse, getMinutes, getSeconds, getMilliseconds, differenceInMilliseconds, differenceInHours, getWeek, getYear, setWeek, getDay, addSeconds } from 'date-fns';
3
3
  import { Expose, Type, Exclude } from 'class-transformer';
4
4
  import { IsDate, IsEnum, IsOptional, IsNumber, Min, registerDecorator, IsString, Matches, IsArray, IsBoolean } from 'class-validator';
5
- import { getTimezoneOffset, formatInTimeZone, utcToZonedTime, format as format$1 } from 'date-fns-tz';
5
+ import { utcToZonedTime, format, formatInTimeZone } from 'date-fns-tz';
6
6
  import { timeZonesNames } from '@vvo/tzdb';
7
7
  import { interval, startWith, map, distinctUntilChanged, filter, switchMap, takeWhile, skipWhile } from 'rxjs';
8
8
  import { RRule } from 'rrule';
@@ -27,7 +27,7 @@ var global$g =
27
27
 
28
28
  var objectGetOwnPropertyDescriptor = {};
29
29
 
30
- var fails$l = function (exec) {
30
+ var fails$m = function (exec) {
31
31
  try {
32
32
  return !!exec();
33
33
  } catch (error) {
@@ -35,17 +35,17 @@ var fails$l = function (exec) {
35
35
  }
36
36
  };
37
37
 
38
- var fails$k = fails$l;
38
+ var fails$l = fails$m;
39
39
 
40
40
  // Detect IE8's incomplete defineProperty implementation
41
- var descriptors = !fails$k(function () {
41
+ var descriptors = !fails$l(function () {
42
42
  // eslint-disable-next-line es/no-object-defineproperty -- required for testing
43
43
  return Object.defineProperty({}, 1, { get: function () { return 7; } })[1] !== 7;
44
44
  });
45
45
 
46
- var fails$j = fails$l;
46
+ var fails$k = fails$m;
47
47
 
48
- var functionBindNative = !fails$j(function () {
48
+ var functionBindNative = !fails$k(function () {
49
49
  // eslint-disable-next-line es/no-function-prototype-bind -- safe
50
50
  var test = (function () { /* empty */ }).bind();
51
51
  // eslint-disable-next-line no-prototype-builtins -- safe
@@ -54,10 +54,10 @@ var functionBindNative = !fails$j(function () {
54
54
 
55
55
  var NATIVE_BIND$2 = functionBindNative;
56
56
 
57
- var call$c = Function.prototype.call;
57
+ var call$d = Function.prototype.call;
58
58
 
59
- var functionCall = NATIVE_BIND$2 ? call$c.bind(call$c) : function () {
60
- return call$c.apply(call$c, arguments);
59
+ var functionCall = NATIVE_BIND$2 ? call$d.bind(call$d) : function () {
60
+ return call$d.apply(call$d, arguments);
61
61
  };
62
62
 
63
63
  var objectPropertyIsEnumerable = {};
@@ -88,33 +88,33 @@ var createPropertyDescriptor$3 = function (bitmap, value) {
88
88
  var NATIVE_BIND$1 = functionBindNative;
89
89
 
90
90
  var FunctionPrototype$2 = Function.prototype;
91
- var call$b = FunctionPrototype$2.call;
92
- var uncurryThisWithBind = NATIVE_BIND$1 && FunctionPrototype$2.bind.bind(call$b, call$b);
91
+ var call$c = FunctionPrototype$2.call;
92
+ var uncurryThisWithBind = NATIVE_BIND$1 && FunctionPrototype$2.bind.bind(call$c, call$c);
93
93
 
94
94
  var functionUncurryThis = NATIVE_BIND$1 ? uncurryThisWithBind : function (fn) {
95
95
  return function () {
96
- return call$b.apply(fn, arguments);
96
+ return call$c.apply(fn, arguments);
97
97
  };
98
98
  };
99
99
 
100
- var uncurryThis$m = functionUncurryThis;
100
+ var uncurryThis$n = functionUncurryThis;
101
101
 
102
- var toString$c = uncurryThis$m({}.toString);
103
- var stringSlice$6 = uncurryThis$m(''.slice);
102
+ var toString$e = uncurryThis$n({}.toString);
103
+ var stringSlice$7 = uncurryThis$n(''.slice);
104
104
 
105
105
  var classofRaw$2 = function (it) {
106
- return stringSlice$6(toString$c(it), 8, -1);
106
+ return stringSlice$7(toString$e(it), 8, -1);
107
107
  };
108
108
 
109
- var uncurryThis$l = functionUncurryThis;
110
- var fails$i = fails$l;
109
+ var uncurryThis$m = functionUncurryThis;
110
+ var fails$j = fails$m;
111
111
  var classof$4 = classofRaw$2;
112
112
 
113
113
  var $Object$4 = Object;
114
- var split = uncurryThis$l(''.split);
114
+ var split = uncurryThis$m(''.split);
115
115
 
116
116
  // fallback for non-array-like ES3 and non-enumerable old V8 strings
117
- var indexedObject = fails$i(function () {
117
+ var indexedObject = fails$j(function () {
118
118
  // throws an error in rhino, see https://github.com/mozilla/rhino/issues/346
119
119
  // eslint-disable-next-line no-prototype-builtins -- safe
120
120
  return !$Object$4('z').propertyIsEnumerable(0);
@@ -134,17 +134,17 @@ var $TypeError$9 = TypeError;
134
134
 
135
135
  // `RequireObjectCoercible` abstract operation
136
136
  // https://tc39.es/ecma262/#sec-requireobjectcoercible
137
- var requireObjectCoercible$9 = function (it) {
137
+ var requireObjectCoercible$b = function (it) {
138
138
  if (isNullOrUndefined$3(it)) throw new $TypeError$9("Can't call method on " + it);
139
139
  return it;
140
140
  };
141
141
 
142
142
  // toObject with fallback for non-array-like ES3 strings
143
143
  var IndexedObject$1 = indexedObject;
144
- var requireObjectCoercible$8 = requireObjectCoercible$9;
144
+ var requireObjectCoercible$a = requireObjectCoercible$b;
145
145
 
146
146
  var toIndexedObject$5 = function (it) {
147
- return IndexedObject$1(requireObjectCoercible$8(it));
147
+ return IndexedObject$1(requireObjectCoercible$a(it));
148
148
  };
149
149
 
150
150
  // https://tc39.es/ecma262/#sec-IsHTMLDDA-internal-slot
@@ -176,14 +176,14 @@ var getBuiltIn$3 = function (namespace, method) {
176
176
  return arguments.length < 2 ? aFunction(global$f[namespace]) : global$f[namespace] && global$f[namespace][method];
177
177
  };
178
178
 
179
- var uncurryThis$k = functionUncurryThis;
179
+ var uncurryThis$l = functionUncurryThis;
180
180
 
181
- var objectIsPrototypeOf = uncurryThis$k({}.isPrototypeOf);
181
+ var objectIsPrototypeOf = uncurryThis$l({}.isPrototypeOf);
182
182
 
183
183
  var engineUserAgent = typeof navigator != 'undefined' && String(navigator.userAgent) || '';
184
184
 
185
185
  var global$e = global$g;
186
- var userAgent$2 = engineUserAgent;
186
+ var userAgent$3 = engineUserAgent;
187
187
 
188
188
  var process = global$e.process;
189
189
  var Deno = global$e.Deno;
@@ -200,10 +200,10 @@ if (v8) {
200
200
 
201
201
  // BrowserFS NodeJS `process` polyfill incorrectly set `.v8` to `0.0`
202
202
  // so check `userAgent` even if `.v8` exists, but 0
203
- if (!version && userAgent$2) {
204
- match = userAgent$2.match(/Edge\/(\d+)/);
203
+ if (!version && userAgent$3) {
204
+ match = userAgent$3.match(/Edge\/(\d+)/);
205
205
  if (!match || match[1] >= 74) {
206
- match = userAgent$2.match(/Chrome\/(\d+)/);
206
+ match = userAgent$3.match(/Chrome\/(\d+)/);
207
207
  if (match) version = +match[1];
208
208
  }
209
209
  }
@@ -212,13 +212,13 @@ var engineV8Version = version;
212
212
 
213
213
  /* eslint-disable es/no-symbol -- required for testing */
214
214
  var V8_VERSION = engineV8Version;
215
- var fails$h = fails$l;
215
+ var fails$i = fails$m;
216
216
  var global$d = global$g;
217
217
 
218
218
  var $String$5 = global$d.String;
219
219
 
220
220
  // eslint-disable-next-line es/no-object-getownpropertysymbols -- required for testing
221
- var symbolConstructorDetection = !!Object.getOwnPropertySymbols && !fails$h(function () {
221
+ var symbolConstructorDetection = !!Object.getOwnPropertySymbols && !fails$i(function () {
222
222
  var symbol = Symbol('symbol detection');
223
223
  // Chrome 38 Symbol has incorrect toString conversion
224
224
  // `get-own-property-symbols` polyfill symbols converted to object are not Symbol instances
@@ -238,7 +238,7 @@ var useSymbolAsUid = NATIVE_SYMBOL$1
238
238
 
239
239
  var getBuiltIn$2 = getBuiltIn$3;
240
240
  var isCallable$d = isCallable$g;
241
- var isPrototypeOf = objectIsPrototypeOf;
241
+ var isPrototypeOf$1 = objectIsPrototypeOf;
242
242
  var USE_SYMBOL_AS_UID$1 = useSymbolAsUid;
243
243
 
244
244
  var $Object$3 = Object;
@@ -247,7 +247,7 @@ var isSymbol$2 = USE_SYMBOL_AS_UID$1 ? function (it) {
247
247
  return typeof it == 'symbol';
248
248
  } : function (it) {
249
249
  var $Symbol = getBuiltIn$2('Symbol');
250
- return isCallable$d($Symbol) && isPrototypeOf($Symbol.prototype, $Object$3(it));
250
+ return isCallable$d($Symbol) && isPrototypeOf$1($Symbol.prototype, $Object$3(it));
251
251
  };
252
252
 
253
253
  var $String$4 = String;
@@ -281,7 +281,7 @@ var getMethod$3 = function (V, P) {
281
281
  return isNullOrUndefined$2(func) ? undefined : aCallable$2(func);
282
282
  };
283
283
 
284
- var call$a = functionCall;
284
+ var call$b = functionCall;
285
285
  var isCallable$b = isCallable$g;
286
286
  var isObject$7 = isObject$8;
287
287
 
@@ -291,9 +291,9 @@ var $TypeError$7 = TypeError;
291
291
  // https://tc39.es/ecma262/#sec-ordinarytoprimitive
292
292
  var ordinaryToPrimitive$1 = function (input, pref) {
293
293
  var fn, val;
294
- if (pref === 'string' && isCallable$b(fn = input.toString) && !isObject$7(val = call$a(fn, input))) return val;
295
- if (isCallable$b(fn = input.valueOf) && !isObject$7(val = call$a(fn, input))) return val;
296
- if (pref !== 'string' && isCallable$b(fn = input.toString) && !isObject$7(val = call$a(fn, input))) return val;
294
+ if (pref === 'string' && isCallable$b(fn = input.toString) && !isObject$7(val = call$b(fn, input))) return val;
295
+ if (isCallable$b(fn = input.valueOf) && !isObject$7(val = call$b(fn, input))) return val;
296
+ if (pref !== 'string' && isCallable$b(fn = input.toString) && !isObject$7(val = call$b(fn, input))) return val;
297
297
  throw new $TypeError$7("Can't convert object to primitive value");
298
298
  };
299
299
 
@@ -332,20 +332,20 @@ var store$2 = sharedStore;
332
332
  source: 'https://github.com/zloirock/core-js'
333
333
  });
334
334
 
335
- var requireObjectCoercible$7 = requireObjectCoercible$9;
335
+ var requireObjectCoercible$9 = requireObjectCoercible$b;
336
336
 
337
337
  var $Object$2 = Object;
338
338
 
339
339
  // `ToObject` abstract operation
340
340
  // https://tc39.es/ecma262/#sec-toobject
341
341
  var toObject$5 = function (argument) {
342
- return $Object$2(requireObjectCoercible$7(argument));
342
+ return $Object$2(requireObjectCoercible$9(argument));
343
343
  };
344
344
 
345
- var uncurryThis$j = functionUncurryThis;
345
+ var uncurryThis$k = functionUncurryThis;
346
346
  var toObject$4 = toObject$5;
347
347
 
348
- var hasOwnProperty = uncurryThis$j({}.hasOwnProperty);
348
+ var hasOwnProperty = uncurryThis$k({}.hasOwnProperty);
349
349
 
350
350
  // `HasOwnProperty` abstract operation
351
351
  // https://tc39.es/ecma262/#sec-hasownproperty
@@ -354,19 +354,19 @@ var hasOwnProperty_1 = Object.hasOwn || function hasOwn(it, key) {
354
354
  return hasOwnProperty(toObject$4(it), key);
355
355
  };
356
356
 
357
- var uncurryThis$i = functionUncurryThis;
357
+ var uncurryThis$j = functionUncurryThis;
358
358
 
359
359
  var id = 0;
360
360
  var postfix = Math.random();
361
- var toString$b = uncurryThis$i(1.0.toString);
361
+ var toString$d = uncurryThis$j(1.0.toString);
362
362
 
363
363
  var uid$2 = function (key) {
364
- return 'Symbol(' + (key === undefined ? '' : key) + ')_' + toString$b(++id + postfix, 36);
364
+ return 'Symbol(' + (key === undefined ? '' : key) + ')_' + toString$d(++id + postfix, 36);
365
365
  };
366
366
 
367
367
  var global$a = global$g;
368
368
  var shared$3 = shared$4.exports;
369
- var hasOwn$8 = hasOwnProperty_1;
369
+ var hasOwn$9 = hasOwnProperty_1;
370
370
  var uid$1 = uid$2;
371
371
  var NATIVE_SYMBOL = symbolConstructorDetection;
372
372
  var USE_SYMBOL_AS_UID = useSymbolAsUid;
@@ -376,14 +376,14 @@ var WellKnownSymbolsStore = shared$3('wks');
376
376
  var createWellKnownSymbol = USE_SYMBOL_AS_UID ? Symbol$2['for'] || Symbol$2 : Symbol$2 && Symbol$2.withoutSetter || uid$1;
377
377
 
378
378
  var wellKnownSymbol$c = function (name) {
379
- if (!hasOwn$8(WellKnownSymbolsStore, name)) {
380
- WellKnownSymbolsStore[name] = NATIVE_SYMBOL && hasOwn$8(Symbol$2, name)
379
+ if (!hasOwn$9(WellKnownSymbolsStore, name)) {
380
+ WellKnownSymbolsStore[name] = NATIVE_SYMBOL && hasOwn$9(Symbol$2, name)
381
381
  ? Symbol$2[name]
382
382
  : createWellKnownSymbol('Symbol.' + name);
383
383
  } return WellKnownSymbolsStore[name];
384
384
  };
385
385
 
386
- var call$9 = functionCall;
386
+ var call$a = functionCall;
387
387
  var isObject$6 = isObject$8;
388
388
  var isSymbol$1 = isSymbol$2;
389
389
  var getMethod$2 = getMethod$3;
@@ -401,7 +401,7 @@ var toPrimitive$1 = function (input, pref) {
401
401
  var result;
402
402
  if (exoticToPrim) {
403
403
  if (pref === undefined) pref = 'default';
404
- result = call$9(exoticToPrim, input, pref);
404
+ result = call$a(exoticToPrim, input, pref);
405
405
  if (!isObject$6(result) || isSymbol$1(result)) return result;
406
406
  throw new $TypeError$6("Can't convert object to primitive value");
407
407
  }
@@ -431,11 +431,11 @@ var documentCreateElement$2 = function (it) {
431
431
  };
432
432
 
433
433
  var DESCRIPTORS$9 = descriptors;
434
- var fails$g = fails$l;
434
+ var fails$h = fails$m;
435
435
  var createElement = documentCreateElement$2;
436
436
 
437
437
  // Thanks to IE8 for its funny defineProperty
438
- var ie8DomDefine = !DESCRIPTORS$9 && !fails$g(function () {
438
+ var ie8DomDefine = !DESCRIPTORS$9 && !fails$h(function () {
439
439
  // eslint-disable-next-line es/no-object-defineproperty -- required for testing
440
440
  return Object.defineProperty(createElement('div'), 'a', {
441
441
  get: function () { return 7; }
@@ -443,12 +443,12 @@ var ie8DomDefine = !DESCRIPTORS$9 && !fails$g(function () {
443
443
  });
444
444
 
445
445
  var DESCRIPTORS$8 = descriptors;
446
- var call$8 = functionCall;
446
+ var call$9 = functionCall;
447
447
  var propertyIsEnumerableModule$1 = objectPropertyIsEnumerable;
448
448
  var createPropertyDescriptor$2 = createPropertyDescriptor$3;
449
449
  var toIndexedObject$4 = toIndexedObject$5;
450
450
  var toPropertyKey$1 = toPropertyKey$2;
451
- var hasOwn$7 = hasOwnProperty_1;
451
+ var hasOwn$8 = hasOwnProperty_1;
452
452
  var IE8_DOM_DEFINE$1 = ie8DomDefine;
453
453
 
454
454
  // eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe
@@ -462,17 +462,17 @@ objectGetOwnPropertyDescriptor.f = DESCRIPTORS$8 ? $getOwnPropertyDescriptor$1 :
462
462
  if (IE8_DOM_DEFINE$1) try {
463
463
  return $getOwnPropertyDescriptor$1(O, P);
464
464
  } catch (error) { /* empty */ }
465
- if (hasOwn$7(O, P)) return createPropertyDescriptor$2(!call$8(propertyIsEnumerableModule$1.f, O, P), O[P]);
465
+ if (hasOwn$8(O, P)) return createPropertyDescriptor$2(!call$9(propertyIsEnumerableModule$1.f, O, P), O[P]);
466
466
  };
467
467
 
468
468
  var objectDefineProperty = {};
469
469
 
470
470
  var DESCRIPTORS$7 = descriptors;
471
- var fails$f = fails$l;
471
+ var fails$g = fails$m;
472
472
 
473
473
  // V8 ~ Chrome 36-
474
474
  // https://bugs.chromium.org/p/v8/issues/detail?id=3334
475
- var v8PrototypeDefineBug = DESCRIPTORS$7 && fails$f(function () {
475
+ var v8PrototypeDefineBug = DESCRIPTORS$7 && fails$g(function () {
476
476
  // eslint-disable-next-line es/no-object-defineproperty -- required for testing
477
477
  return Object.defineProperty(function () { /* empty */ }, 'prototype', {
478
478
  value: 42,
@@ -486,7 +486,7 @@ var $String$3 = String;
486
486
  var $TypeError$5 = TypeError;
487
487
 
488
488
  // `Assert: Type(argument) is Object`
489
- var anObject$9 = function (argument) {
489
+ var anObject$a = function (argument) {
490
490
  if (isObject$4(argument)) return argument;
491
491
  throw new $TypeError$5($String$3(argument) + ' is not an object');
492
492
  };
@@ -494,7 +494,7 @@ var anObject$9 = function (argument) {
494
494
  var DESCRIPTORS$6 = descriptors;
495
495
  var IE8_DOM_DEFINE = ie8DomDefine;
496
496
  var V8_PROTOTYPE_DEFINE_BUG$1 = v8PrototypeDefineBug;
497
- var anObject$8 = anObject$9;
497
+ var anObject$9 = anObject$a;
498
498
  var toPropertyKey = toPropertyKey$2;
499
499
 
500
500
  var $TypeError$4 = TypeError;
@@ -509,9 +509,9 @@ var WRITABLE = 'writable';
509
509
  // `Object.defineProperty` method
510
510
  // https://tc39.es/ecma262/#sec-object.defineproperty
511
511
  objectDefineProperty.f = DESCRIPTORS$6 ? V8_PROTOTYPE_DEFINE_BUG$1 ? function defineProperty(O, P, Attributes) {
512
- anObject$8(O);
512
+ anObject$9(O);
513
513
  P = toPropertyKey(P);
514
- anObject$8(Attributes);
514
+ anObject$9(Attributes);
515
515
  if (typeof O === 'function' && P === 'prototype' && 'value' in Attributes && WRITABLE in Attributes && !Attributes[WRITABLE]) {
516
516
  var current = $getOwnPropertyDescriptor(O, P);
517
517
  if (current && current[WRITABLE]) {
@@ -524,9 +524,9 @@ objectDefineProperty.f = DESCRIPTORS$6 ? V8_PROTOTYPE_DEFINE_BUG$1 ? function de
524
524
  }
525
525
  } return $defineProperty(O, P, Attributes);
526
526
  } : $defineProperty : function defineProperty(O, P, Attributes) {
527
- anObject$8(O);
527
+ anObject$9(O);
528
528
  P = toPropertyKey(P);
529
- anObject$8(Attributes);
529
+ anObject$9(Attributes);
530
530
  if (IE8_DOM_DEFINE) try {
531
531
  return $defineProperty(O, P, Attributes);
532
532
  } catch (error) { /* empty */ }
@@ -549,13 +549,13 @@ var createNonEnumerableProperty$5 = DESCRIPTORS$5 ? function (object, key, value
549
549
  var makeBuiltIn$2 = {exports: {}};
550
550
 
551
551
  var DESCRIPTORS$4 = descriptors;
552
- var hasOwn$6 = hasOwnProperty_1;
552
+ var hasOwn$7 = hasOwnProperty_1;
553
553
 
554
554
  var FunctionPrototype$1 = Function.prototype;
555
555
  // eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe
556
556
  var getDescriptor = DESCRIPTORS$4 && Object.getOwnPropertyDescriptor;
557
557
 
558
- var EXISTS = hasOwn$6(FunctionPrototype$1, 'name');
558
+ var EXISTS = hasOwn$7(FunctionPrototype$1, 'name');
559
559
  // additional protection from minified / mangled / dropped function names
560
560
  var PROPER = EXISTS && (function something() { /* empty */ }).name === 'something';
561
561
  var CONFIGURABLE = EXISTS && (!DESCRIPTORS$4 || (DESCRIPTORS$4 && getDescriptor(FunctionPrototype$1, 'name').configurable));
@@ -566,11 +566,11 @@ var functionName = {
566
566
  CONFIGURABLE: CONFIGURABLE
567
567
  };
568
568
 
569
- var uncurryThis$h = functionUncurryThis;
569
+ var uncurryThis$i = functionUncurryThis;
570
570
  var isCallable$a = isCallable$g;
571
571
  var store$1 = sharedStore;
572
572
 
573
- var functionToString = uncurryThis$h(Function.toString);
573
+ var functionToString = uncurryThis$i(Function.toString);
574
574
 
575
575
  // this helper broken in `core-js@3.4.1-3.4.4`, so we can't use `shared` helper
576
576
  if (!isCallable$a(store$1.inspectSource)) {
@@ -603,7 +603,7 @@ var NATIVE_WEAK_MAP = weakMapBasicDetection;
603
603
  var global$7 = global$g;
604
604
  var isObject$3 = isObject$8;
605
605
  var createNonEnumerableProperty$4 = createNonEnumerableProperty$5;
606
- var hasOwn$5 = hasOwnProperty_1;
606
+ var hasOwn$6 = hasOwnProperty_1;
607
607
  var shared$1 = sharedStore;
608
608
  var sharedKey$2 = sharedKey$3;
609
609
  var hiddenKeys$3 = hiddenKeys$4;
@@ -649,16 +649,16 @@ if (NATIVE_WEAK_MAP || shared$1.state) {
649
649
  var STATE = sharedKey$2('state');
650
650
  hiddenKeys$3[STATE] = true;
651
651
  set = function (it, metadata) {
652
- if (hasOwn$5(it, STATE)) throw new TypeError$1(OBJECT_ALREADY_INITIALIZED);
652
+ if (hasOwn$6(it, STATE)) throw new TypeError$1(OBJECT_ALREADY_INITIALIZED);
653
653
  metadata.facade = it;
654
654
  createNonEnumerableProperty$4(it, STATE, metadata);
655
655
  return metadata;
656
656
  };
657
657
  get = function (it) {
658
- return hasOwn$5(it, STATE) ? it[STATE] : {};
658
+ return hasOwn$6(it, STATE) ? it[STATE] : {};
659
659
  };
660
660
  has = function (it) {
661
- return hasOwn$5(it, STATE);
661
+ return hasOwn$6(it, STATE);
662
662
  };
663
663
  }
664
664
 
@@ -670,10 +670,10 @@ var internalState = {
670
670
  getterFor: getterFor
671
671
  };
672
672
 
673
- var uncurryThis$g = functionUncurryThis;
674
- var fails$e = fails$l;
673
+ var uncurryThis$h = functionUncurryThis;
674
+ var fails$f = fails$m;
675
675
  var isCallable$8 = isCallable$g;
676
- var hasOwn$4 = hasOwnProperty_1;
676
+ var hasOwn$5 = hasOwnProperty_1;
677
677
  var DESCRIPTORS$3 = descriptors;
678
678
  var CONFIGURABLE_FUNCTION_NAME$1 = functionName.CONFIGURABLE;
679
679
  var inspectSource = inspectSource$1;
@@ -684,37 +684,37 @@ var getInternalState$2 = InternalStateModule$1.get;
684
684
  var $String$2 = String;
685
685
  // eslint-disable-next-line es/no-object-defineproperty -- safe
686
686
  var defineProperty$4 = Object.defineProperty;
687
- var stringSlice$5 = uncurryThis$g(''.slice);
688
- var replace$3 = uncurryThis$g(''.replace);
689
- var join = uncurryThis$g([].join);
687
+ var stringSlice$6 = uncurryThis$h(''.slice);
688
+ var replace$3 = uncurryThis$h(''.replace);
689
+ var join = uncurryThis$h([].join);
690
690
 
691
- var CONFIGURABLE_LENGTH = DESCRIPTORS$3 && !fails$e(function () {
691
+ var CONFIGURABLE_LENGTH = DESCRIPTORS$3 && !fails$f(function () {
692
692
  return defineProperty$4(function () { /* empty */ }, 'length', { value: 8 }).length !== 8;
693
693
  });
694
694
 
695
695
  var TEMPLATE = String(String).split('String');
696
696
 
697
697
  var makeBuiltIn$1 = makeBuiltIn$2.exports = function (value, name, options) {
698
- if (stringSlice$5($String$2(name), 0, 7) === 'Symbol(') {
698
+ if (stringSlice$6($String$2(name), 0, 7) === 'Symbol(') {
699
699
  name = '[' + replace$3($String$2(name), /^Symbol\(([^)]*)\).*$/, '$1') + ']';
700
700
  }
701
701
  if (options && options.getter) name = 'get ' + name;
702
702
  if (options && options.setter) name = 'set ' + name;
703
- if (!hasOwn$4(value, 'name') || (CONFIGURABLE_FUNCTION_NAME$1 && value.name !== name)) {
703
+ if (!hasOwn$5(value, 'name') || (CONFIGURABLE_FUNCTION_NAME$1 && value.name !== name)) {
704
704
  if (DESCRIPTORS$3) defineProperty$4(value, 'name', { value: name, configurable: true });
705
705
  else value.name = name;
706
706
  }
707
- if (CONFIGURABLE_LENGTH && options && hasOwn$4(options, 'arity') && value.length !== options.arity) {
707
+ if (CONFIGURABLE_LENGTH && options && hasOwn$5(options, 'arity') && value.length !== options.arity) {
708
708
  defineProperty$4(value, 'length', { value: options.arity });
709
709
  }
710
710
  try {
711
- if (options && hasOwn$4(options, 'constructor') && options.constructor) {
711
+ if (options && hasOwn$5(options, 'constructor') && options.constructor) {
712
712
  if (DESCRIPTORS$3) defineProperty$4(value, 'prototype', { writable: false });
713
713
  // in V8 ~ Chrome 53, prototypes of some methods, like `Array.prototype.values`, are non-writable
714
714
  } else if (value.prototype) value.prototype = undefined;
715
715
  } catch (error) { /* empty */ }
716
716
  var state = enforceInternalState(value);
717
- if (!hasOwn$4(state, 'source')) {
717
+ if (!hasOwn$5(state, 'source')) {
718
718
  state.source = join(TEMPLATE, typeof name == 'string' ? name : '');
719
719
  } return value;
720
720
  };
@@ -730,7 +730,7 @@ var definePropertyModule$2 = objectDefineProperty;
730
730
  var makeBuiltIn = makeBuiltIn$2.exports;
731
731
  var defineGlobalProperty$1 = defineGlobalProperty$3;
732
732
 
733
- var defineBuiltIn$4 = function (O, key, value, options) {
733
+ var defineBuiltIn$5 = function (O, key, value, options) {
734
734
  if (!options) options = {};
735
735
  var simple = options.enumerable;
736
736
  var name = options.name !== undefined ? options.name : key;
@@ -755,7 +755,7 @@ var defineBuiltIn$4 = function (O, key, value, options) {
755
755
 
756
756
  var objectGetOwnPropertyNames = {};
757
757
 
758
- var ceil = Math.ceil;
758
+ var ceil$1 = Math.ceil;
759
759
  var floor$2 = Math.floor;
760
760
 
761
761
  // `Math.trunc` method
@@ -763,20 +763,20 @@ var floor$2 = Math.floor;
763
763
  // eslint-disable-next-line es/no-math-trunc -- safe
764
764
  var mathTrunc = Math.trunc || function trunc(x) {
765
765
  var n = +x;
766
- return (n > 0 ? floor$2 : ceil)(n);
766
+ return (n > 0 ? floor$2 : ceil$1)(n);
767
767
  };
768
768
 
769
769
  var trunc = mathTrunc;
770
770
 
771
771
  // `ToIntegerOrInfinity` abstract operation
772
772
  // https://tc39.es/ecma262/#sec-tointegerorinfinity
773
- var toIntegerOrInfinity$4 = function (argument) {
773
+ var toIntegerOrInfinity$5 = function (argument) {
774
774
  var number = +argument;
775
775
  // eslint-disable-next-line no-self-compare -- NaN check
776
776
  return number !== number || number === 0 ? 0 : trunc(number);
777
777
  };
778
778
 
779
- var toIntegerOrInfinity$3 = toIntegerOrInfinity$4;
779
+ var toIntegerOrInfinity$4 = toIntegerOrInfinity$5;
780
780
 
781
781
  var max$1 = Math.max;
782
782
  var min$4 = Math.min;
@@ -785,27 +785,27 @@ var min$4 = Math.min;
785
785
  // Let integer be ? ToInteger(index).
786
786
  // If integer < 0, let result be max((length + integer), 0); else let result be min(integer, length).
787
787
  var toAbsoluteIndex$1 = function (index, length) {
788
- var integer = toIntegerOrInfinity$3(index);
788
+ var integer = toIntegerOrInfinity$4(index);
789
789
  return integer < 0 ? max$1(integer + length, 0) : min$4(integer, length);
790
790
  };
791
791
 
792
- var toIntegerOrInfinity$2 = toIntegerOrInfinity$4;
792
+ var toIntegerOrInfinity$3 = toIntegerOrInfinity$5;
793
793
 
794
794
  var min$3 = Math.min;
795
795
 
796
796
  // `ToLength` abstract operation
797
797
  // https://tc39.es/ecma262/#sec-tolength
798
- var toLength$4 = function (argument) {
799
- var len = toIntegerOrInfinity$2(argument);
798
+ var toLength$5 = function (argument) {
799
+ var len = toIntegerOrInfinity$3(argument);
800
800
  return len > 0 ? min$3(len, 0x1FFFFFFFFFFFFF) : 0; // 2 ** 53 - 1 == 9007199254740991
801
801
  };
802
802
 
803
- var toLength$3 = toLength$4;
803
+ var toLength$4 = toLength$5;
804
804
 
805
805
  // `LengthOfArrayLike` abstract operation
806
806
  // https://tc39.es/ecma262/#sec-lengthofarraylike
807
807
  var lengthOfArrayLike$2 = function (obj) {
808
- return toLength$3(obj.length);
808
+ return toLength$4(obj.length);
809
809
  };
810
810
 
811
811
  var toIndexedObject$3 = toIndexedObject$5;
@@ -813,7 +813,7 @@ var toAbsoluteIndex = toAbsoluteIndex$1;
813
813
  var lengthOfArrayLike$1 = lengthOfArrayLike$2;
814
814
 
815
815
  // `Array.prototype.{ indexOf, includes }` methods implementation
816
- var createMethod$2 = function (IS_INCLUDES) {
816
+ var createMethod$3 = function (IS_INCLUDES) {
817
817
  return function ($this, el, fromIndex) {
818
818
  var O = toIndexedObject$3($this);
819
819
  var length = lengthOfArrayLike$1(O);
@@ -835,28 +835,28 @@ var createMethod$2 = function (IS_INCLUDES) {
835
835
  var arrayIncludes = {
836
836
  // `Array.prototype.includes` method
837
837
  // https://tc39.es/ecma262/#sec-array.prototype.includes
838
- includes: createMethod$2(true),
838
+ includes: createMethod$3(true),
839
839
  // `Array.prototype.indexOf` method
840
840
  // https://tc39.es/ecma262/#sec-array.prototype.indexof
841
- indexOf: createMethod$2(false)
841
+ indexOf: createMethod$3(false)
842
842
  };
843
843
 
844
- var uncurryThis$f = functionUncurryThis;
845
- var hasOwn$3 = hasOwnProperty_1;
844
+ var uncurryThis$g = functionUncurryThis;
845
+ var hasOwn$4 = hasOwnProperty_1;
846
846
  var toIndexedObject$2 = toIndexedObject$5;
847
847
  var indexOf$1 = arrayIncludes.indexOf;
848
848
  var hiddenKeys$2 = hiddenKeys$4;
849
849
 
850
- var push$2 = uncurryThis$f([].push);
850
+ var push$2 = uncurryThis$g([].push);
851
851
 
852
852
  var objectKeysInternal = function (object, names) {
853
853
  var O = toIndexedObject$2(object);
854
854
  var i = 0;
855
855
  var result = [];
856
856
  var key;
857
- for (key in O) !hasOwn$3(hiddenKeys$2, key) && hasOwn$3(O, key) && push$2(result, key);
857
+ for (key in O) !hasOwn$4(hiddenKeys$2, key) && hasOwn$4(O, key) && push$2(result, key);
858
858
  // Don't enum bug & hidden keys
859
- while (names.length > i) if (hasOwn$3(O, key = names[i++])) {
859
+ while (names.length > i) if (hasOwn$4(O, key = names[i++])) {
860
860
  ~indexOf$1(result, key) || push$2(result, key);
861
861
  }
862
862
  return result;
@@ -891,21 +891,21 @@ var objectGetOwnPropertySymbols = {};
891
891
  objectGetOwnPropertySymbols.f = Object.getOwnPropertySymbols;
892
892
 
893
893
  var getBuiltIn$1 = getBuiltIn$3;
894
- var uncurryThis$e = functionUncurryThis;
894
+ var uncurryThis$f = functionUncurryThis;
895
895
  var getOwnPropertyNamesModule = objectGetOwnPropertyNames;
896
896
  var getOwnPropertySymbolsModule$1 = objectGetOwnPropertySymbols;
897
- var anObject$7 = anObject$9;
897
+ var anObject$8 = anObject$a;
898
898
 
899
- var concat$2 = uncurryThis$e([].concat);
899
+ var concat$2 = uncurryThis$f([].concat);
900
900
 
901
901
  // all object keys, includes non-enumerable and symbols
902
902
  var ownKeys$1 = getBuiltIn$1('Reflect', 'ownKeys') || function ownKeys(it) {
903
- var keys = getOwnPropertyNamesModule.f(anObject$7(it));
903
+ var keys = getOwnPropertyNamesModule.f(anObject$8(it));
904
904
  var getOwnPropertySymbols = getOwnPropertySymbolsModule$1.f;
905
905
  return getOwnPropertySymbols ? concat$2(keys, getOwnPropertySymbols(it)) : keys;
906
906
  };
907
907
 
908
- var hasOwn$2 = hasOwnProperty_1;
908
+ var hasOwn$3 = hasOwnProperty_1;
909
909
  var ownKeys = ownKeys$1;
910
910
  var getOwnPropertyDescriptorModule = objectGetOwnPropertyDescriptor;
911
911
  var definePropertyModule$1 = objectDefineProperty;
@@ -916,13 +916,13 @@ var copyConstructorProperties$1 = function (target, source, exceptions) {
916
916
  var getOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f;
917
917
  for (var i = 0; i < keys.length; i++) {
918
918
  var key = keys[i];
919
- if (!hasOwn$2(target, key) && !(exceptions && hasOwn$2(exceptions, key))) {
919
+ if (!hasOwn$3(target, key) && !(exceptions && hasOwn$3(exceptions, key))) {
920
920
  defineProperty(target, key, getOwnPropertyDescriptor(source, key));
921
921
  }
922
922
  }
923
923
  };
924
924
 
925
- var fails$d = fails$l;
925
+ var fails$e = fails$m;
926
926
  var isCallable$6 = isCallable$g;
927
927
 
928
928
  var replacement = /#|\.prototype\./;
@@ -931,7 +931,7 @@ var isForced$1 = function (feature, detection) {
931
931
  var value = data[normalize(feature)];
932
932
  return value === POLYFILL ? true
933
933
  : value === NATIVE ? false
934
- : isCallable$6(detection) ? fails$d(detection)
934
+ : isCallable$6(detection) ? fails$e(detection)
935
935
  : !!detection;
936
936
  };
937
937
 
@@ -948,7 +948,7 @@ var isForced_1 = isForced$1;
948
948
  var global$6 = global$g;
949
949
  var getOwnPropertyDescriptor$2 = objectGetOwnPropertyDescriptor.f;
950
950
  var createNonEnumerableProperty$3 = createNonEnumerableProperty$5;
951
- var defineBuiltIn$3 = defineBuiltIn$4;
951
+ var defineBuiltIn$4 = defineBuiltIn$5;
952
952
  var defineGlobalProperty = defineGlobalProperty$3;
953
953
  var copyConstructorProperties = copyConstructorProperties$1;
954
954
  var isForced = isForced_1;
@@ -996,7 +996,7 @@ var _export = function (options, source) {
996
996
  if (options.sham || (targetProperty && targetProperty.sham)) {
997
997
  createNonEnumerableProperty$3(sourceProperty, 'sham', true);
998
998
  }
999
- defineBuiltIn$3(target, key, sourceProperty, options);
999
+ defineBuiltIn$4(target, key, sourceProperty, options);
1000
1000
  }
1001
1001
  };
1002
1002
 
@@ -1011,9 +1011,9 @@ var objectKeys$2 = Object.keys || function keys(O) {
1011
1011
  };
1012
1012
 
1013
1013
  var DESCRIPTORS$2 = descriptors;
1014
- var uncurryThis$d = functionUncurryThis;
1015
- var call$7 = functionCall;
1016
- var fails$c = fails$l;
1014
+ var uncurryThis$e = functionUncurryThis;
1015
+ var call$8 = functionCall;
1016
+ var fails$d = fails$m;
1017
1017
  var objectKeys$1 = objectKeys$2;
1018
1018
  var getOwnPropertySymbolsModule = objectGetOwnPropertySymbols;
1019
1019
  var propertyIsEnumerableModule = objectPropertyIsEnumerable;
@@ -1024,11 +1024,11 @@ var IndexedObject = indexedObject;
1024
1024
  var $assign = Object.assign;
1025
1025
  // eslint-disable-next-line es/no-object-defineproperty -- required for testing
1026
1026
  var defineProperty$3 = Object.defineProperty;
1027
- var concat$1 = uncurryThis$d([].concat);
1027
+ var concat$1 = uncurryThis$e([].concat);
1028
1028
 
1029
1029
  // `Object.assign` method
1030
1030
  // https://tc39.es/ecma262/#sec-object.assign
1031
- var objectAssign = !$assign || fails$c(function () {
1031
+ var objectAssign = !$assign || fails$d(function () {
1032
1032
  // should have correct order of operations (Edge bug)
1033
1033
  if (DESCRIPTORS$2 && $assign({ b: 1 }, $assign(defineProperty$3({}, 'a', {
1034
1034
  enumerable: true,
@@ -1062,18 +1062,18 @@ var objectAssign = !$assign || fails$c(function () {
1062
1062
  var key;
1063
1063
  while (length > j) {
1064
1064
  key = keys[j++];
1065
- if (!DESCRIPTORS$2 || call$7(propertyIsEnumerable, S, key)) T[key] = S[key];
1065
+ if (!DESCRIPTORS$2 || call$8(propertyIsEnumerable, S, key)) T[key] = S[key];
1066
1066
  }
1067
1067
  } return T;
1068
1068
  } : $assign;
1069
1069
 
1070
- var $$9 = _export;
1070
+ var $$a = _export;
1071
1071
  var assign = objectAssign;
1072
1072
 
1073
1073
  // `Object.assign` method
1074
1074
  // https://tc39.es/ecma262/#sec-object.assign
1075
1075
  // eslint-disable-next-line es/no-object-assign -- required for testing
1076
- $$9({ target: 'Object', stat: true, arity: 2, forced: Object.assign !== assign }, {
1076
+ $$a({ target: 'Object', stat: true, arity: 2, forced: Object.assign !== assign }, {
1077
1077
  assign: assign
1078
1078
  });
1079
1079
 
@@ -1082,7 +1082,7 @@ var objectDefineProperties = {};
1082
1082
  var DESCRIPTORS$1 = descriptors;
1083
1083
  var V8_PROTOTYPE_DEFINE_BUG = v8PrototypeDefineBug;
1084
1084
  var definePropertyModule = objectDefineProperty;
1085
- var anObject$6 = anObject$9;
1085
+ var anObject$7 = anObject$a;
1086
1086
  var toIndexedObject$1 = toIndexedObject$5;
1087
1087
  var objectKeys = objectKeys$2;
1088
1088
 
@@ -1090,7 +1090,7 @@ var objectKeys = objectKeys$2;
1090
1090
  // https://tc39.es/ecma262/#sec-object.defineproperties
1091
1091
  // eslint-disable-next-line es/no-object-defineproperties -- safe
1092
1092
  objectDefineProperties.f = DESCRIPTORS$1 && !V8_PROTOTYPE_DEFINE_BUG ? Object.defineProperties : function defineProperties(O, Properties) {
1093
- anObject$6(O);
1093
+ anObject$7(O);
1094
1094
  var props = toIndexedObject$1(Properties);
1095
1095
  var keys = objectKeys(Properties);
1096
1096
  var length = keys.length;
@@ -1105,7 +1105,7 @@ var getBuiltIn = getBuiltIn$3;
1105
1105
  var html$1 = getBuiltIn('document', 'documentElement');
1106
1106
 
1107
1107
  /* global ActiveXObject -- old IE, WSH */
1108
- var anObject$5 = anObject$9;
1108
+ var anObject$6 = anObject$a;
1109
1109
  var definePropertiesModule = objectDefineProperties;
1110
1110
  var enumBugKeys = enumBugKeys$3;
1111
1111
  var hiddenKeys = hiddenKeys$4;
@@ -1179,7 +1179,7 @@ hiddenKeys[IE_PROTO$1] = true;
1179
1179
  var objectCreate = Object.create || function create(O, Properties) {
1180
1180
  var result;
1181
1181
  if (O !== null) {
1182
- EmptyConstructor[PROTOTYPE] = anObject$5(O);
1182
+ EmptyConstructor[PROTOTYPE] = anObject$6(O);
1183
1183
  result = new EmptyConstructor();
1184
1184
  EmptyConstructor[PROTOTYPE] = null;
1185
1185
  // add "__proto__" for Object.getPrototypeOf polyfill
@@ -1211,16 +1211,16 @@ var addToUnscopables$2 = function (key) {
1211
1211
 
1212
1212
  var iterators = {};
1213
1213
 
1214
- var fails$b = fails$l;
1214
+ var fails$c = fails$m;
1215
1215
 
1216
- var correctPrototypeGetter = !fails$b(function () {
1216
+ var correctPrototypeGetter = !fails$c(function () {
1217
1217
  function F() { /* empty */ }
1218
1218
  F.prototype.constructor = null;
1219
1219
  // eslint-disable-next-line es/no-object-getprototypeof -- required for testing
1220
1220
  return Object.getPrototypeOf(new F()) !== F.prototype;
1221
1221
  });
1222
1222
 
1223
- var hasOwn$1 = hasOwnProperty_1;
1223
+ var hasOwn$2 = hasOwnProperty_1;
1224
1224
  var isCallable$5 = isCallable$g;
1225
1225
  var toObject$2 = toObject$5;
1226
1226
  var sharedKey = sharedKey$3;
@@ -1235,18 +1235,18 @@ var ObjectPrototype = $Object$1.prototype;
1235
1235
  // eslint-disable-next-line es/no-object-getprototypeof -- safe
1236
1236
  var objectGetPrototypeOf = CORRECT_PROTOTYPE_GETTER ? $Object$1.getPrototypeOf : function (O) {
1237
1237
  var object = toObject$2(O);
1238
- if (hasOwn$1(object, IE_PROTO)) return object[IE_PROTO];
1238
+ if (hasOwn$2(object, IE_PROTO)) return object[IE_PROTO];
1239
1239
  var constructor = object.constructor;
1240
1240
  if (isCallable$5(constructor) && object instanceof constructor) {
1241
1241
  return constructor.prototype;
1242
1242
  } return object instanceof $Object$1 ? ObjectPrototype : null;
1243
1243
  };
1244
1244
 
1245
- var fails$a = fails$l;
1245
+ var fails$b = fails$m;
1246
1246
  var isCallable$4 = isCallable$g;
1247
1247
  var isObject$2 = isObject$8;
1248
1248
  var getPrototypeOf$1 = objectGetPrototypeOf;
1249
- var defineBuiltIn$2 = defineBuiltIn$4;
1249
+ var defineBuiltIn$3 = defineBuiltIn$5;
1250
1250
  var wellKnownSymbol$9 = wellKnownSymbol$c;
1251
1251
 
1252
1252
  var ITERATOR$3 = wellKnownSymbol$9('iterator');
@@ -1267,7 +1267,7 @@ if ([].keys) {
1267
1267
  }
1268
1268
  }
1269
1269
 
1270
- var NEW_ITERATOR_PROTOTYPE = !isObject$2(IteratorPrototype$2) || fails$a(function () {
1270
+ var NEW_ITERATOR_PROTOTYPE = !isObject$2(IteratorPrototype$2) || fails$b(function () {
1271
1271
  var test = {};
1272
1272
  // FF44- legacy iterators case
1273
1273
  return IteratorPrototype$2[ITERATOR$3].call(test) !== test;
@@ -1278,7 +1278,7 @@ if (NEW_ITERATOR_PROTOTYPE) IteratorPrototype$2 = {};
1278
1278
  // `%IteratorPrototype%[@@iterator]()` method
1279
1279
  // https://tc39.es/ecma262/#sec-%iteratorprototype%-@@iterator
1280
1280
  if (!isCallable$4(IteratorPrototype$2[ITERATOR$3])) {
1281
- defineBuiltIn$2(IteratorPrototype$2, ITERATOR$3, function () {
1281
+ defineBuiltIn$3(IteratorPrototype$2, ITERATOR$3, function () {
1282
1282
  return this;
1283
1283
  });
1284
1284
  }
@@ -1289,14 +1289,14 @@ var iteratorsCore = {
1289
1289
  };
1290
1290
 
1291
1291
  var defineProperty$1 = objectDefineProperty.f;
1292
- var hasOwn = hasOwnProperty_1;
1292
+ var hasOwn$1 = hasOwnProperty_1;
1293
1293
  var wellKnownSymbol$8 = wellKnownSymbol$c;
1294
1294
 
1295
1295
  var TO_STRING_TAG$2 = wellKnownSymbol$8('toStringTag');
1296
1296
 
1297
1297
  var setToStringTag$3 = function (target, TAG, STATIC) {
1298
1298
  if (target && !STATIC) target = target.prototype;
1299
- if (target && !hasOwn(target, TO_STRING_TAG$2)) {
1299
+ if (target && !hasOwn$1(target, TO_STRING_TAG$2)) {
1300
1300
  defineProperty$1(target, TO_STRING_TAG$2, { configurable: true, value: TAG });
1301
1301
  }
1302
1302
  };
@@ -1317,13 +1317,13 @@ var iteratorCreateConstructor = function (IteratorConstructor, NAME, next, ENUME
1317
1317
  return IteratorConstructor;
1318
1318
  };
1319
1319
 
1320
- var uncurryThis$c = functionUncurryThis;
1320
+ var uncurryThis$d = functionUncurryThis;
1321
1321
  var aCallable$1 = aCallable$3;
1322
1322
 
1323
1323
  var functionUncurryThisAccessor = function (object, key, method) {
1324
1324
  try {
1325
1325
  // eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe
1326
- return uncurryThis$c(aCallable$1(Object.getOwnPropertyDescriptor(object, key)[method]));
1326
+ return uncurryThis$d(aCallable$1(Object.getOwnPropertyDescriptor(object, key)[method]));
1327
1327
  } catch (error) { /* empty */ }
1328
1328
  };
1329
1329
 
@@ -1345,7 +1345,7 @@ var aPossiblePrototype$1 = function (argument) {
1345
1345
 
1346
1346
  /* eslint-disable no-proto -- safe */
1347
1347
  var uncurryThisAccessor = functionUncurryThisAccessor;
1348
- var anObject$4 = anObject$9;
1348
+ var anObject$5 = anObject$a;
1349
1349
  var aPossiblePrototype = aPossiblePrototype$1;
1350
1350
 
1351
1351
  // `Object.setPrototypeOf` method
@@ -1362,7 +1362,7 @@ var objectSetPrototypeOf = Object.setPrototypeOf || ('__proto__' in {} ? functio
1362
1362
  CORRECT_SETTER = test instanceof Array;
1363
1363
  } catch (error) { /* empty */ }
1364
1364
  return function setPrototypeOf(O, proto) {
1365
- anObject$4(O);
1365
+ anObject$5(O);
1366
1366
  aPossiblePrototype(proto);
1367
1367
  if (CORRECT_SETTER) setter(O, proto);
1368
1368
  else O.__proto__ = proto;
@@ -1370,8 +1370,8 @@ var objectSetPrototypeOf = Object.setPrototypeOf || ('__proto__' in {} ? functio
1370
1370
  };
1371
1371
  }() : undefined);
1372
1372
 
1373
- var $$8 = _export;
1374
- var call$6 = functionCall;
1373
+ var $$9 = _export;
1374
+ var call$7 = functionCall;
1375
1375
  var FunctionName = functionName;
1376
1376
  var isCallable$3 = isCallable$g;
1377
1377
  var createIteratorConstructor = iteratorCreateConstructor;
@@ -1379,12 +1379,12 @@ var getPrototypeOf = objectGetPrototypeOf;
1379
1379
  var setPrototypeOf = objectSetPrototypeOf;
1380
1380
  var setToStringTag$1 = setToStringTag$3;
1381
1381
  var createNonEnumerableProperty$2 = createNonEnumerableProperty$5;
1382
- var defineBuiltIn$1 = defineBuiltIn$4;
1382
+ var defineBuiltIn$2 = defineBuiltIn$5;
1383
1383
  var wellKnownSymbol$7 = wellKnownSymbol$c;
1384
1384
  var Iterators$1 = iterators;
1385
1385
  var IteratorsCore = iteratorsCore;
1386
1386
 
1387
- var PROPER_FUNCTION_NAME$1 = FunctionName.PROPER;
1387
+ var PROPER_FUNCTION_NAME$2 = FunctionName.PROPER;
1388
1388
  var CONFIGURABLE_FUNCTION_NAME = FunctionName.CONFIGURABLE;
1389
1389
  var IteratorPrototype = IteratorsCore.IteratorPrototype;
1390
1390
  var BUGGY_SAFARI_ITERATORS = IteratorsCore.BUGGY_SAFARI_ITERATORS;
@@ -1429,7 +1429,7 @@ var iteratorDefine = function (Iterable, NAME, IteratorConstructor, next, DEFAUL
1429
1429
  if (setPrototypeOf) {
1430
1430
  setPrototypeOf(CurrentIteratorPrototype, IteratorPrototype);
1431
1431
  } else if (!isCallable$3(CurrentIteratorPrototype[ITERATOR$2])) {
1432
- defineBuiltIn$1(CurrentIteratorPrototype, ITERATOR$2, returnThis);
1432
+ defineBuiltIn$2(CurrentIteratorPrototype, ITERATOR$2, returnThis);
1433
1433
  }
1434
1434
  }
1435
1435
  // Set @@toStringTag to native iterators
@@ -1438,12 +1438,12 @@ var iteratorDefine = function (Iterable, NAME, IteratorConstructor, next, DEFAUL
1438
1438
  }
1439
1439
 
1440
1440
  // fix Array.prototype.{ values, @@iterator }.name in V8 / FF
1441
- if (PROPER_FUNCTION_NAME$1 && DEFAULT === VALUES && nativeIterator && nativeIterator.name !== VALUES) {
1441
+ if (PROPER_FUNCTION_NAME$2 && DEFAULT === VALUES && nativeIterator && nativeIterator.name !== VALUES) {
1442
1442
  if (CONFIGURABLE_FUNCTION_NAME) {
1443
1443
  createNonEnumerableProperty$2(IterablePrototype, 'name', VALUES);
1444
1444
  } else {
1445
1445
  INCORRECT_VALUES_NAME = true;
1446
- defaultIterator = function values() { return call$6(nativeIterator, this); };
1446
+ defaultIterator = function values() { return call$7(nativeIterator, this); };
1447
1447
  }
1448
1448
  }
1449
1449
 
@@ -1456,14 +1456,14 @@ var iteratorDefine = function (Iterable, NAME, IteratorConstructor, next, DEFAUL
1456
1456
  };
1457
1457
  if (FORCED) for (KEY in methods) {
1458
1458
  if (BUGGY_SAFARI_ITERATORS || INCORRECT_VALUES_NAME || !(KEY in IterablePrototype)) {
1459
- defineBuiltIn$1(IterablePrototype, KEY, methods[KEY]);
1459
+ defineBuiltIn$2(IterablePrototype, KEY, methods[KEY]);
1460
1460
  }
1461
- } else $$8({ target: NAME, proto: true, forced: BUGGY_SAFARI_ITERATORS || INCORRECT_VALUES_NAME }, methods);
1461
+ } else $$9({ target: NAME, proto: true, forced: BUGGY_SAFARI_ITERATORS || INCORRECT_VALUES_NAME }, methods);
1462
1462
  }
1463
1463
 
1464
1464
  // define iterator
1465
1465
  if (IterablePrototype[ITERATOR$2] !== defaultIterator) {
1466
- defineBuiltIn$1(IterablePrototype, ITERATOR$2, defaultIterator, { name: DEFAULT });
1466
+ defineBuiltIn$2(IterablePrototype, ITERATOR$2, defaultIterator, { name: DEFAULT });
1467
1467
  }
1468
1468
  Iterators$1[NAME] = defaultIterator;
1469
1469
 
@@ -1669,14 +1669,14 @@ var classof$2 = classof$3;
1669
1669
 
1670
1670
  var $String = String;
1671
1671
 
1672
- var toString$a = function (argument) {
1672
+ var toString$c = function (argument) {
1673
1673
  if (classof$2(argument) === 'Symbol') throw new TypeError('Cannot convert a Symbol value to a string');
1674
1674
  return $String(argument);
1675
1675
  };
1676
1676
 
1677
- var uncurryThis$b = functionUncurryThis;
1677
+ var uncurryThis$c = functionUncurryThis;
1678
1678
 
1679
- var arraySlice$1 = uncurryThis$b([].slice);
1679
+ var arraySlice$1 = uncurryThis$c([].slice);
1680
1680
 
1681
1681
  var arraySlice = arraySlice$1;
1682
1682
 
@@ -1720,19 +1720,19 @@ var sort = function (array, comparefn) {
1720
1720
 
1721
1721
  var arraySort = sort;
1722
1722
 
1723
- var fails$9 = fails$l;
1723
+ var fails$a = fails$m;
1724
1724
 
1725
1725
  var arrayMethodIsStrict$1 = function (METHOD_NAME, argument) {
1726
1726
  var method = [][METHOD_NAME];
1727
- return !!method && fails$9(function () {
1727
+ return !!method && fails$a(function () {
1728
1728
  // eslint-disable-next-line no-useless-call -- required for testing
1729
1729
  method.call(null, argument || function () { return 1; }, 1);
1730
1730
  });
1731
1731
  };
1732
1732
 
1733
- var userAgent$1 = engineUserAgent;
1733
+ var userAgent$2 = engineUserAgent;
1734
1734
 
1735
- var firefox = userAgent$1.match(/firefox\/(\d+)/i);
1735
+ var firefox = userAgent$2.match(/firefox\/(\d+)/i);
1736
1736
 
1737
1737
  var engineFfVersion = !!firefox && +firefox[1];
1738
1738
 
@@ -1740,20 +1740,20 @@ var UA = engineUserAgent;
1740
1740
 
1741
1741
  var engineIsIeOrEdge = /MSIE|Trident/.test(UA);
1742
1742
 
1743
- var userAgent = engineUserAgent;
1743
+ var userAgent$1 = engineUserAgent;
1744
1744
 
1745
- var webkit = userAgent.match(/AppleWebKit\/(\d+)\./);
1745
+ var webkit = userAgent$1.match(/AppleWebKit\/(\d+)\./);
1746
1746
 
1747
1747
  var engineWebkitVersion = !!webkit && +webkit[1];
1748
1748
 
1749
- var $$7 = _export;
1750
- var uncurryThis$a = functionUncurryThis;
1749
+ var $$8 = _export;
1750
+ var uncurryThis$b = functionUncurryThis;
1751
1751
  var aCallable = aCallable$3;
1752
1752
  var toObject$1 = toObject$5;
1753
1753
  var lengthOfArrayLike = lengthOfArrayLike$2;
1754
1754
  var deletePropertyOrThrow = deletePropertyOrThrow$1;
1755
- var toString$9 = toString$a;
1756
- var fails$8 = fails$l;
1755
+ var toString$b = toString$c;
1756
+ var fails$9 = fails$m;
1757
1757
  var internalSort = arraySort;
1758
1758
  var arrayMethodIsStrict = arrayMethodIsStrict$1;
1759
1759
  var FF = engineFfVersion;
@@ -1762,21 +1762,21 @@ var V8 = engineV8Version;
1762
1762
  var WEBKIT = engineWebkitVersion;
1763
1763
 
1764
1764
  var test = [];
1765
- var nativeSort = uncurryThis$a(test.sort);
1766
- var push$1 = uncurryThis$a(test.push);
1765
+ var nativeSort = uncurryThis$b(test.sort);
1766
+ var push$1 = uncurryThis$b(test.push);
1767
1767
 
1768
1768
  // IE8-
1769
- var FAILS_ON_UNDEFINED = fails$8(function () {
1769
+ var FAILS_ON_UNDEFINED = fails$9(function () {
1770
1770
  test.sort(undefined);
1771
1771
  });
1772
1772
  // V8 bug
1773
- var FAILS_ON_NULL = fails$8(function () {
1773
+ var FAILS_ON_NULL = fails$9(function () {
1774
1774
  test.sort(null);
1775
1775
  });
1776
1776
  // Old WebKit
1777
1777
  var STRICT_METHOD = arrayMethodIsStrict('sort');
1778
1778
 
1779
- var STABLE_SORT = !fails$8(function () {
1779
+ var STABLE_SORT = !fails$9(function () {
1780
1780
  // feature detection can be too slow, so check engines versions
1781
1781
  if (V8) return V8 < 70;
1782
1782
  if (FF && FF > 3) return;
@@ -1818,13 +1818,13 @@ var getSortCompare = function (comparefn) {
1818
1818
  if (y === undefined) return -1;
1819
1819
  if (x === undefined) return 1;
1820
1820
  if (comparefn !== undefined) return +comparefn(x, y) || 0;
1821
- return toString$9(x) > toString$9(y) ? 1 : -1;
1821
+ return toString$b(x) > toString$b(y) ? 1 : -1;
1822
1822
  };
1823
1823
  };
1824
1824
 
1825
1825
  // `Array.prototype.sort` method
1826
1826
  // https://tc39.es/ecma262/#sec-array.prototype.sort
1827
- $$7({ target: 'Array', proto: true, forced: FORCED$1 }, {
1827
+ $$8({ target: 'Array', proto: true, forced: FORCED$1 }, {
1828
1828
  sort: function sort(comparefn) {
1829
1829
  if (comparefn !== undefined) aCallable(comparefn);
1830
1830
 
@@ -2057,6 +2057,13 @@ function copyHoursAndMinutesFromDate(target, fromDate, roundDownToMinute) {
2057
2057
  }, target);
2058
2058
  }
2059
2059
 
2060
+ /**
2061
+ * Creates a new date using UTC and copies the hours/minutes from the input date using the UTC values to the target date.
2062
+ */
2063
+ function copyHoursAndMinutesFromUTCDate(target, fromDate, roundDownToMinute) {
2064
+ return new Date(Date.UTC(target.getUTCFullYear(), target.getUTCMonth(), target.getUTCDate(), fromDate.getUTCHours(), fromDate.getUTCMinutes(), roundDownToMinute ? 0 : fromDate.getUTCSeconds(), roundDownToMinute ? 0 : fromDate.getUTCMilliseconds()));
2065
+ }
2066
+
2060
2067
  /**
2061
2068
  * Creates a new date and copies the hours/minutes from the input onto the target date, if provided. Defaults to now/today otherwise.
2062
2069
  *
@@ -2157,6 +2164,16 @@ function isStartOfDayInUTC(date) {
2157
2164
  return date.getUTCHours() === 0 && date.getUTCMinutes() === 0 && date.getUTCSeconds() === 0 && date.getUTCMilliseconds() === 0;
2158
2165
  }
2159
2166
 
2167
+ /**
2168
+ * Returns true if the input date is at midnight for the system.
2169
+ *
2170
+ * @param date
2171
+ * @returns
2172
+ */
2173
+ function isStartOfDayForSystem(date) {
2174
+ return date.getHours() === 0 && date.getMinutes() === 0 && date.getSeconds() === 0 && date.getMilliseconds() === 0;
2175
+ }
2176
+
2160
2177
  function _initializerDefineProperty(target, property, descriptor, context) {
2161
2178
  if (!descriptor) return;
2162
2179
  Object.defineProperty(target, property, {
@@ -3042,6 +3059,35 @@ function getCurrentSystemOffsetInHours(date) {
3042
3059
  function getCurrentSystemOffsetInMinutes(date) {
3043
3060
  return -date.getTimezoneOffset();
3044
3061
  }
3062
+
3063
+ /**
3064
+ * Returns the timezone offset in milliseconds.
3065
+ *
3066
+ * I.E. GMT-5 = -5 hours (in milliseconds)
3067
+ *
3068
+ * @param timezone
3069
+ * @param date
3070
+ * @returns
3071
+ */
3072
+ function calculateTimezoneOffset(timezone, date) {
3073
+ /*
3074
+ // BUG: There is a bug with getTimezoneOffset where the offset is not calculated properly for the first 2 hours after the DST change.
3075
+ // https://github.com/marnusw/date-fns-tz/issues/227
3076
+
3077
+ const tzOffset = getTimezoneOffset(timezone, date);
3078
+ */
3079
+
3080
+ // WORKAROUND: This is the current workaround. Performance hit seems negligible for all UI use cases.
3081
+ const zoneDate = utcToZonedTime(date, timezone);
3082
+ const zoneDateStr = format(zoneDate, 'yyyy-MM-dd HH:mm'); // ignore seconds, etc.
3083
+ const zoneDateTime = new Date(zoneDateStr + 'Z').getTime();
3084
+ const inputTime = set$1(date, {
3085
+ seconds: 0,
3086
+ milliseconds: 0
3087
+ }).getTime();
3088
+ const tzOffset = zoneDateTime - inputTime;
3089
+ return tzOffset;
3090
+ }
3045
3091
  function calculateAllConversions(date, converter, map = x => x) {
3046
3092
  const options = ['target', 'base', 'system'];
3047
3093
  const conversions = {};
@@ -3103,10 +3149,7 @@ class DateTimezoneUtcNormalInstance {
3103
3149
  this._getOffset = void 0;
3104
3150
  let getOffsetInMsFn;
3105
3151
  function useTimezone(timezone) {
3106
- getOffsetInMsFn = date => {
3107
- const tzOffset = getTimezoneOffset(timezone, date);
3108
- return tzOffset;
3109
- };
3152
+ getOffsetInMsFn = date => calculateTimezoneOffset(timezone, date);
3110
3153
  }
3111
3154
  if (config == null || typeof config === 'string') {
3112
3155
  var _config;
@@ -3128,8 +3171,8 @@ class DateTimezoneUtcNormalInstance {
3128
3171
  }
3129
3172
  this.config = config;
3130
3173
  const hasConversion = !config.noConversion;
3131
- function calculateOffset(date, fn = getOffsetInMsFn) {
3132
- const offset = fn(date);
3174
+ function calculateOffset(date) {
3175
+ const offset = getOffsetInMsFn(date);
3133
3176
  return offset;
3134
3177
  }
3135
3178
  function calculateSystemNormalDifference(date) {
@@ -3166,9 +3209,6 @@ class DateTimezoneUtcNormalInstance {
3166
3209
  default:
3167
3210
  throw new Error(`unexpected offset target "${target}"`);
3168
3211
  }
3169
-
3170
- // console.log('Offset: ', { date: x, target, offset, offsetInHours: millisecondsToHours(offset) });
3171
-
3172
3212
  return offset;
3173
3213
  }
3174
3214
  };
@@ -3215,6 +3255,9 @@ class DateTimezoneUtcNormalInstance {
3215
3255
  getOffset(date, transform) {
3216
3256
  return this[`${transform}Offset`](date);
3217
3257
  }
3258
+ getOffsetInHours(date, transform) {
3259
+ return this.getOffset(date, transform) / MS_IN_HOUR;
3260
+ }
3218
3261
  offsetFunction(transform) {
3219
3262
  return date => this.getOffset(date, transform);
3220
3263
  }
@@ -3498,20 +3541,20 @@ function copyHoursAndMinutesFromDateWithTimezoneNormal(input, copyFrom, timezone
3498
3541
  return result;
3499
3542
  }
3500
3543
 
3501
- var $$6 = _export;
3544
+ var $$7 = _export;
3502
3545
  var $includes = arrayIncludes.includes;
3503
- var fails$7 = fails$l;
3546
+ var fails$8 = fails$m;
3504
3547
  var addToUnscopables = addToUnscopables$2;
3505
3548
 
3506
3549
  // FF99+ bug
3507
- var BROKEN_ON_SPARSE = fails$7(function () {
3550
+ var BROKEN_ON_SPARSE = fails$8(function () {
3508
3551
  // eslint-disable-next-line es/no-array-prototype-includes -- detection
3509
3552
  return !Array(1).includes();
3510
3553
  });
3511
3554
 
3512
3555
  // `Array.prototype.includes` method
3513
3556
  // https://tc39.es/ecma262/#sec-array.prototype.includes
3514
- $$6({ target: 'Array', proto: true, forced: BROKEN_ON_SPARSE }, {
3557
+ $$7({ target: 'Array', proto: true, forced: BROKEN_ON_SPARSE }, {
3515
3558
  includes: function includes(el /* , fromIndex = 0 */) {
3516
3559
  return $includes(this, el, arguments.length > 1 ? arguments[1] : undefined);
3517
3560
  }
@@ -3559,33 +3602,33 @@ var correctIsRegexpLogic = function (METHOD_NAME) {
3559
3602
  } return false;
3560
3603
  };
3561
3604
 
3562
- var $$5 = _export;
3563
- var uncurryThis$9 = functionUncurryThis;
3605
+ var $$6 = _export;
3606
+ var uncurryThis$a = functionUncurryThis;
3564
3607
  var notARegExp$2 = notARegexp;
3565
- var requireObjectCoercible$6 = requireObjectCoercible$9;
3566
- var toString$8 = toString$a;
3608
+ var requireObjectCoercible$8 = requireObjectCoercible$b;
3609
+ var toString$a = toString$c;
3567
3610
  var correctIsRegExpLogic$2 = correctIsRegexpLogic;
3568
3611
 
3569
- var stringIndexOf$1 = uncurryThis$9(''.indexOf);
3612
+ var stringIndexOf$1 = uncurryThis$a(''.indexOf);
3570
3613
 
3571
3614
  // `String.prototype.includes` method
3572
3615
  // https://tc39.es/ecma262/#sec-string.prototype.includes
3573
- $$5({ target: 'String', proto: true, forced: !correctIsRegExpLogic$2('includes') }, {
3616
+ $$6({ target: 'String', proto: true, forced: !correctIsRegExpLogic$2('includes') }, {
3574
3617
  includes: function includes(searchString /* , position = 0 */) {
3575
3618
  return !!~stringIndexOf$1(
3576
- toString$8(requireObjectCoercible$6(this)),
3577
- toString$8(notARegExp$2(searchString)),
3619
+ toString$a(requireObjectCoercible$8(this)),
3620
+ toString$a(notARegExp$2(searchString)),
3578
3621
  arguments.length > 1 ? arguments[1] : undefined
3579
3622
  );
3580
3623
  }
3581
3624
  });
3582
3625
 
3583
- var anObject$3 = anObject$9;
3626
+ var anObject$4 = anObject$a;
3584
3627
 
3585
3628
  // `RegExp.prototype.flags` getter implementation
3586
3629
  // https://tc39.es/ecma262/#sec-get-regexp.prototype.flags
3587
3630
  var regexpFlags$1 = function () {
3588
- var that = anObject$3(this);
3631
+ var that = anObject$4(this);
3589
3632
  var result = '';
3590
3633
  if (that.hasIndices) result += 'd';
3591
3634
  if (that.global) result += 'g';
@@ -3598,13 +3641,13 @@ var regexpFlags$1 = function () {
3598
3641
  return result;
3599
3642
  };
3600
3643
 
3601
- var fails$6 = fails$l;
3644
+ var fails$7 = fails$m;
3602
3645
  var global$4 = global$g;
3603
3646
 
3604
3647
  // babel-minify and Closure Compiler transpiles RegExp('a', 'y') -> /a/y and it causes SyntaxError
3605
3648
  var $RegExp$2 = global$4.RegExp;
3606
3649
 
3607
- var UNSUPPORTED_Y$1 = fails$6(function () {
3650
+ var UNSUPPORTED_Y$1 = fails$7(function () {
3608
3651
  var re = $RegExp$2('a', 'y');
3609
3652
  re.lastIndex = 2;
3610
3653
  return re.exec('abcd') !== null;
@@ -3612,11 +3655,11 @@ var UNSUPPORTED_Y$1 = fails$6(function () {
3612
3655
 
3613
3656
  // UC Browser bug
3614
3657
  // https://github.com/zloirock/core-js/issues/1008
3615
- var MISSED_STICKY = UNSUPPORTED_Y$1 || fails$6(function () {
3658
+ var MISSED_STICKY = UNSUPPORTED_Y$1 || fails$7(function () {
3616
3659
  return !$RegExp$2('a', 'y').sticky;
3617
3660
  });
3618
3661
 
3619
- var BROKEN_CARET = UNSUPPORTED_Y$1 || fails$6(function () {
3662
+ var BROKEN_CARET = UNSUPPORTED_Y$1 || fails$7(function () {
3620
3663
  // https://bugzilla.mozilla.org/show_bug.cgi?id=773687
3621
3664
  var re = $RegExp$2('^r', 'gy');
3622
3665
  re.lastIndex = 2;
@@ -3629,24 +3672,24 @@ var regexpStickyHelpers = {
3629
3672
  UNSUPPORTED_Y: UNSUPPORTED_Y$1
3630
3673
  };
3631
3674
 
3632
- var fails$5 = fails$l;
3675
+ var fails$6 = fails$m;
3633
3676
  var global$3 = global$g;
3634
3677
 
3635
3678
  // babel-minify and Closure Compiler transpiles RegExp('.', 's') -> /./s and it causes SyntaxError
3636
3679
  var $RegExp$1 = global$3.RegExp;
3637
3680
 
3638
- var regexpUnsupportedDotAll = fails$5(function () {
3681
+ var regexpUnsupportedDotAll = fails$6(function () {
3639
3682
  var re = $RegExp$1('.', 's');
3640
3683
  return !(re.dotAll && re.test('\n') && re.flags === 's');
3641
3684
  });
3642
3685
 
3643
- var fails$4 = fails$l;
3686
+ var fails$5 = fails$m;
3644
3687
  var global$2 = global$g;
3645
3688
 
3646
3689
  // babel-minify and Closure Compiler transpiles RegExp('(?<a>b)', 'g') -> /(?<a>b)/g and it causes SyntaxError
3647
3690
  var $RegExp = global$2.RegExp;
3648
3691
 
3649
- var regexpUnsupportedNcg = fails$4(function () {
3692
+ var regexpUnsupportedNcg = fails$5(function () {
3650
3693
  var re = $RegExp('(?<a>b)', 'g');
3651
3694
  return re.exec('b').groups.a !== 'b' ||
3652
3695
  'b'.replace(re, '$<a>c') !== 'bc';
@@ -3654,9 +3697,9 @@ var regexpUnsupportedNcg = fails$4(function () {
3654
3697
 
3655
3698
  /* eslint-disable regexp/no-empty-capturing-group, regexp/no-empty-group, regexp/no-lazy-ends -- testing */
3656
3699
  /* eslint-disable regexp/no-useless-quantifier -- testing */
3657
- var call$5 = functionCall;
3658
- var uncurryThis$8 = functionUncurryThis;
3659
- var toString$7 = toString$a;
3700
+ var call$6 = functionCall;
3701
+ var uncurryThis$9 = functionUncurryThis;
3702
+ var toString$9 = toString$c;
3660
3703
  var regexpFlags = regexpFlags$1;
3661
3704
  var stickyHelpers = regexpStickyHelpers;
3662
3705
  var shared = shared$4.exports;
@@ -3668,16 +3711,16 @@ var UNSUPPORTED_NCG = regexpUnsupportedNcg;
3668
3711
  var nativeReplace = shared('native-string-replace', String.prototype.replace);
3669
3712
  var nativeExec = RegExp.prototype.exec;
3670
3713
  var patchedExec = nativeExec;
3671
- var charAt$3 = uncurryThis$8(''.charAt);
3672
- var indexOf = uncurryThis$8(''.indexOf);
3673
- var replace$2 = uncurryThis$8(''.replace);
3674
- var stringSlice$4 = uncurryThis$8(''.slice);
3714
+ var charAt$3 = uncurryThis$9(''.charAt);
3715
+ var indexOf = uncurryThis$9(''.indexOf);
3716
+ var replace$2 = uncurryThis$9(''.replace);
3717
+ var stringSlice$5 = uncurryThis$9(''.slice);
3675
3718
 
3676
3719
  var UPDATES_LAST_INDEX_WRONG = (function () {
3677
3720
  var re1 = /a/;
3678
3721
  var re2 = /b*/g;
3679
- call$5(nativeExec, re1, 'a');
3680
- call$5(nativeExec, re2, 'a');
3722
+ call$6(nativeExec, re1, 'a');
3723
+ call$6(nativeExec, re2, 'a');
3681
3724
  return re1.lastIndex !== 0 || re2.lastIndex !== 0;
3682
3725
  })();
3683
3726
 
@@ -3692,20 +3735,20 @@ if (PATCH) {
3692
3735
  patchedExec = function exec(string) {
3693
3736
  var re = this;
3694
3737
  var state = getInternalState(re);
3695
- var str = toString$7(string);
3738
+ var str = toString$9(string);
3696
3739
  var raw = state.raw;
3697
3740
  var result, reCopy, lastIndex, match, i, object, group;
3698
3741
 
3699
3742
  if (raw) {
3700
3743
  raw.lastIndex = re.lastIndex;
3701
- result = call$5(patchedExec, raw, str);
3744
+ result = call$6(patchedExec, raw, str);
3702
3745
  re.lastIndex = raw.lastIndex;
3703
3746
  return result;
3704
3747
  }
3705
3748
 
3706
3749
  var groups = state.groups;
3707
3750
  var sticky = UNSUPPORTED_Y && re.sticky;
3708
- var flags = call$5(regexpFlags, re);
3751
+ var flags = call$6(regexpFlags, re);
3709
3752
  var source = re.source;
3710
3753
  var charsAdded = 0;
3711
3754
  var strCopy = str;
@@ -3716,7 +3759,7 @@ if (PATCH) {
3716
3759
  flags += 'g';
3717
3760
  }
3718
3761
 
3719
- strCopy = stringSlice$4(str, re.lastIndex);
3762
+ strCopy = stringSlice$5(str, re.lastIndex);
3720
3763
  // Support anchored sticky behavior.
3721
3764
  if (re.lastIndex > 0 && (!re.multiline || re.multiline && charAt$3(str, re.lastIndex - 1) !== '\n')) {
3722
3765
  source = '(?: ' + source + ')';
@@ -3733,12 +3776,12 @@ if (PATCH) {
3733
3776
  }
3734
3777
  if (UPDATES_LAST_INDEX_WRONG) lastIndex = re.lastIndex;
3735
3778
 
3736
- match = call$5(nativeExec, sticky ? reCopy : re, strCopy);
3779
+ match = call$6(nativeExec, sticky ? reCopy : re, strCopy);
3737
3780
 
3738
3781
  if (sticky) {
3739
3782
  if (match) {
3740
- match.input = stringSlice$4(match.input, charsAdded);
3741
- match[0] = stringSlice$4(match[0], charsAdded);
3783
+ match.input = stringSlice$5(match.input, charsAdded);
3784
+ match[0] = stringSlice$5(match[0], charsAdded);
3742
3785
  match.index = re.lastIndex;
3743
3786
  re.lastIndex += match[0].length;
3744
3787
  } else re.lastIndex = 0;
@@ -3748,7 +3791,7 @@ if (PATCH) {
3748
3791
  if (NPCG_INCLUDED && match && match.length > 1) {
3749
3792
  // Fix browsers whose `exec` methods don't consistently return `undefined`
3750
3793
  // for NPCG, like IE8. NOTE: This doesn't work for /(.?)?/
3751
- call$5(nativeReplace, match[0], reCopy, function () {
3794
+ call$6(nativeReplace, match[0], reCopy, function () {
3752
3795
  for (i = 1; i < arguments.length - 2; i++) {
3753
3796
  if (arguments[i] === undefined) match[i] = undefined;
3754
3797
  }
@@ -3769,38 +3812,38 @@ if (PATCH) {
3769
3812
 
3770
3813
  var regexpExec$2 = patchedExec;
3771
3814
 
3772
- var $$4 = _export;
3815
+ var $$5 = _export;
3773
3816
  var exec$1 = regexpExec$2;
3774
3817
 
3775
3818
  // `RegExp.prototype.exec` method
3776
3819
  // https://tc39.es/ecma262/#sec-regexp.prototype.exec
3777
- $$4({ target: 'RegExp', proto: true, forced: /./.exec !== exec$1 }, {
3820
+ $$5({ target: 'RegExp', proto: true, forced: /./.exec !== exec$1 }, {
3778
3821
  exec: exec$1
3779
3822
  });
3780
3823
 
3781
3824
  // TODO: Remove from `core-js@4` since it's moved to entry points
3782
3825
 
3783
- var call$4 = functionCall;
3784
- var defineBuiltIn = defineBuiltIn$4;
3826
+ var call$5 = functionCall;
3827
+ var defineBuiltIn$1 = defineBuiltIn$5;
3785
3828
  var regexpExec$1 = regexpExec$2;
3786
- var fails$3 = fails$l;
3829
+ var fails$4 = fails$m;
3787
3830
  var wellKnownSymbol$1 = wellKnownSymbol$c;
3788
3831
  var createNonEnumerableProperty = createNonEnumerableProperty$5;
3789
3832
 
3790
3833
  var SPECIES = wellKnownSymbol$1('species');
3791
- var RegExpPrototype = RegExp.prototype;
3834
+ var RegExpPrototype$2 = RegExp.prototype;
3792
3835
 
3793
3836
  var fixRegexpWellKnownSymbolLogic = function (KEY, exec, FORCED, SHAM) {
3794
3837
  var SYMBOL = wellKnownSymbol$1(KEY);
3795
3838
 
3796
- var DELEGATES_TO_SYMBOL = !fails$3(function () {
3839
+ var DELEGATES_TO_SYMBOL = !fails$4(function () {
3797
3840
  // String methods call symbol-named RegExp methods
3798
3841
  var O = {};
3799
3842
  O[SYMBOL] = function () { return 7; };
3800
3843
  return ''[KEY](O) !== 7;
3801
3844
  });
3802
3845
 
3803
- var DELEGATES_TO_EXEC = DELEGATES_TO_SYMBOL && !fails$3(function () {
3846
+ var DELEGATES_TO_EXEC = DELEGATES_TO_SYMBOL && !fails$4(function () {
3804
3847
  // Symbol-named RegExp methods call .exec
3805
3848
  var execCalled = false;
3806
3849
  var re = /a/;
@@ -3835,23 +3878,23 @@ var fixRegexpWellKnownSymbolLogic = function (KEY, exec, FORCED, SHAM) {
3835
3878
  var nativeRegExpMethod = /./[SYMBOL];
3836
3879
  var methods = exec(SYMBOL, ''[KEY], function (nativeMethod, regexp, str, arg2, forceStringMethod) {
3837
3880
  var $exec = regexp.exec;
3838
- if ($exec === regexpExec$1 || $exec === RegExpPrototype.exec) {
3881
+ if ($exec === regexpExec$1 || $exec === RegExpPrototype$2.exec) {
3839
3882
  if (DELEGATES_TO_SYMBOL && !forceStringMethod) {
3840
3883
  // The native String method already delegates to @@method (this
3841
3884
  // polyfilled function), leasing to infinite recursion.
3842
3885
  // We avoid it by directly calling the native @@method method.
3843
- return { done: true, value: call$4(nativeRegExpMethod, regexp, str, arg2) };
3886
+ return { done: true, value: call$5(nativeRegExpMethod, regexp, str, arg2) };
3844
3887
  }
3845
- return { done: true, value: call$4(nativeMethod, str, regexp, arg2) };
3888
+ return { done: true, value: call$5(nativeMethod, str, regexp, arg2) };
3846
3889
  }
3847
3890
  return { done: false };
3848
3891
  });
3849
3892
 
3850
- defineBuiltIn(String.prototype, KEY, methods[0]);
3851
- defineBuiltIn(RegExpPrototype, SYMBOL, methods[1]);
3893
+ defineBuiltIn$1(String.prototype, KEY, methods[0]);
3894
+ defineBuiltIn$1(RegExpPrototype$2, SYMBOL, methods[1]);
3852
3895
  }
3853
3896
 
3854
- if (SHAM) createNonEnumerableProperty(RegExpPrototype[SYMBOL], 'sham', true);
3897
+ if (SHAM) createNonEnumerableProperty(RegExpPrototype$2[SYMBOL], 'sham', true);
3855
3898
  };
3856
3899
 
3857
3900
  // `SameValue` abstract operation
@@ -3862,8 +3905,8 @@ var sameValue$1 = Object.is || function is(x, y) {
3862
3905
  return x === y ? x !== 0 || 1 / x === 1 / y : x !== x && y !== y;
3863
3906
  };
3864
3907
 
3865
- var call$3 = functionCall;
3866
- var anObject$2 = anObject$9;
3908
+ var call$4 = functionCall;
3909
+ var anObject$3 = anObject$a;
3867
3910
  var isCallable$1 = isCallable$g;
3868
3911
  var classof = classofRaw$2;
3869
3912
  var regexpExec = regexpExec$2;
@@ -3875,21 +3918,21 @@ var $TypeError = TypeError;
3875
3918
  var regexpExecAbstract = function (R, S) {
3876
3919
  var exec = R.exec;
3877
3920
  if (isCallable$1(exec)) {
3878
- var result = call$3(exec, R, S);
3879
- if (result !== null) anObject$2(result);
3921
+ var result = call$4(exec, R, S);
3922
+ if (result !== null) anObject$3(result);
3880
3923
  return result;
3881
3924
  }
3882
- if (classof(R) === 'RegExp') return call$3(regexpExec, R, S);
3925
+ if (classof(R) === 'RegExp') return call$4(regexpExec, R, S);
3883
3926
  throw new $TypeError('RegExp#exec called on incompatible receiver');
3884
3927
  };
3885
3928
 
3886
- var call$2 = functionCall;
3929
+ var call$3 = functionCall;
3887
3930
  var fixRegExpWellKnownSymbolLogic$1 = fixRegexpWellKnownSymbolLogic;
3888
- var anObject$1 = anObject$9;
3931
+ var anObject$2 = anObject$a;
3889
3932
  var isNullOrUndefined$1 = isNullOrUndefined$4;
3890
- var requireObjectCoercible$5 = requireObjectCoercible$9;
3933
+ var requireObjectCoercible$7 = requireObjectCoercible$b;
3891
3934
  var sameValue = sameValue$1;
3892
- var toString$6 = toString$a;
3935
+ var toString$8 = toString$c;
3893
3936
  var getMethod$1 = getMethod$3;
3894
3937
  var regExpExec$1 = regexpExecAbstract;
3895
3938
 
@@ -3899,15 +3942,15 @@ fixRegExpWellKnownSymbolLogic$1('search', function (SEARCH, nativeSearch, maybeC
3899
3942
  // `String.prototype.search` method
3900
3943
  // https://tc39.es/ecma262/#sec-string.prototype.search
3901
3944
  function search(regexp) {
3902
- var O = requireObjectCoercible$5(this);
3945
+ var O = requireObjectCoercible$7(this);
3903
3946
  var searcher = isNullOrUndefined$1(regexp) ? undefined : getMethod$1(regexp, SEARCH);
3904
- return searcher ? call$2(searcher, regexp, O) : new RegExp(regexp)[SEARCH](toString$6(O));
3947
+ return searcher ? call$3(searcher, regexp, O) : new RegExp(regexp)[SEARCH](toString$8(O));
3905
3948
  },
3906
3949
  // `RegExp.prototype[@@search]` method
3907
3950
  // https://tc39.es/ecma262/#sec-regexp.prototype-@@search
3908
3951
  function (string) {
3909
- var rx = anObject$1(this);
3910
- var S = toString$6(string);
3952
+ var rx = anObject$2(this);
3953
+ var S = toString$8(string);
3911
3954
  var res = maybeCallNative(nativeSearch, rx, S);
3912
3955
 
3913
3956
  if (res.done) return res.value;
@@ -3922,25 +3965,25 @@ fixRegExpWellKnownSymbolLogic$1('search', function (SEARCH, nativeSearch, maybeC
3922
3965
  });
3923
3966
 
3924
3967
  var classofRaw = classofRaw$2;
3925
- var uncurryThis$7 = functionUncurryThis;
3968
+ var uncurryThis$8 = functionUncurryThis;
3926
3969
 
3927
3970
  var functionUncurryThisClause = function (fn) {
3928
3971
  // Nashorn bug:
3929
3972
  // https://github.com/zloirock/core-js/issues/1128
3930
3973
  // https://github.com/zloirock/core-js/issues/1130
3931
- if (classofRaw(fn) === 'Function') return uncurryThis$7(fn);
3974
+ if (classofRaw(fn) === 'Function') return uncurryThis$8(fn);
3932
3975
  };
3933
3976
 
3934
- var $$3 = _export;
3935
- var uncurryThis$6 = functionUncurryThisClause;
3977
+ var $$4 = _export;
3978
+ var uncurryThis$7 = functionUncurryThisClause;
3936
3979
  var getOwnPropertyDescriptor$1 = objectGetOwnPropertyDescriptor.f;
3937
- var toLength$2 = toLength$4;
3938
- var toString$5 = toString$a;
3980
+ var toLength$3 = toLength$5;
3981
+ var toString$7 = toString$c;
3939
3982
  var notARegExp$1 = notARegexp;
3940
- var requireObjectCoercible$4 = requireObjectCoercible$9;
3983
+ var requireObjectCoercible$6 = requireObjectCoercible$b;
3941
3984
  var correctIsRegExpLogic$1 = correctIsRegexpLogic;
3942
3985
 
3943
- var stringSlice$3 = uncurryThis$6(''.slice);
3986
+ var stringSlice$4 = uncurryThis$7(''.slice);
3944
3987
  var min$2 = Math.min;
3945
3988
 
3946
3989
  var CORRECT_IS_REGEXP_LOGIC$1 = correctIsRegExpLogic$1('startsWith');
@@ -3952,13 +3995,13 @@ var MDN_POLYFILL_BUG$1 = !CORRECT_IS_REGEXP_LOGIC$1 && !!function () {
3952
3995
 
3953
3996
  // `String.prototype.startsWith` method
3954
3997
  // https://tc39.es/ecma262/#sec-string.prototype.startswith
3955
- $$3({ target: 'String', proto: true, forced: !MDN_POLYFILL_BUG$1 && !CORRECT_IS_REGEXP_LOGIC$1 }, {
3998
+ $$4({ target: 'String', proto: true, forced: !MDN_POLYFILL_BUG$1 && !CORRECT_IS_REGEXP_LOGIC$1 }, {
3956
3999
  startsWith: function startsWith(searchString /* , position = 0 */) {
3957
- var that = toString$5(requireObjectCoercible$4(this));
4000
+ var that = toString$7(requireObjectCoercible$6(this));
3958
4001
  notARegExp$1(searchString);
3959
- var index = toLength$2(min$2(arguments.length > 1 ? arguments[1] : undefined, that.length));
3960
- var search = toString$5(searchString);
3961
- return stringSlice$3(that, index, index + search.length) === search;
4002
+ var index = toLength$3(min$2(arguments.length > 1 ? arguments[1] : undefined, that.length));
4003
+ var search = toString$7(searchString);
4004
+ return stringSlice$4(that, index, index + search.length) === search;
3962
4005
  }
3963
4006
  });
3964
4007
 
@@ -4063,119 +4106,523 @@ function fitDateRangeToDayPeriod(dateRange, timezone) {
4063
4106
  return fitDateRangeToDayPeriodFunction(timezone)(dateRange);
4064
4107
  }
4065
4108
 
4066
- var _dec$4, _dec2$4, _dec3$4, _dec4$3, _class$4, _descriptor$4, _dec5$3, _dec6$2, _dec7$2, _dec8$2, _dec9$2, _dec10$2, _dec11$2, _dec12$2, _class2$1, _descriptor2$2, _descriptor3$2;
4109
+ var toIntegerOrInfinity$2 = toIntegerOrInfinity$5;
4110
+ var toString$6 = toString$c;
4111
+ var requireObjectCoercible$5 = requireObjectCoercible$b;
4067
4112
 
4068
- /**
4069
- * Index from 0 of which day this block represents.
4070
- *
4071
- * It is easiest to think of DateCellIndexes as days on a calendar. An index of 0 means the entire first day for that timezone.
4072
- *
4073
- * It is not the time from the startsAt time to the endsAt time for a period.
4074
- */
4113
+ var $RangeError = RangeError;
4075
4114
 
4076
- /**
4077
- * Returns true if the index is a non-negative integer.
4078
- *
4079
- * @param input
4080
- */
4081
- function isValidDateCellIndex(input) {
4082
- return input >= 0 && Number.isInteger(input);
4083
- }
4115
+ // `String.prototype.repeat` method implementation
4116
+ // https://tc39.es/ecma262/#sec-string.prototype.repeat
4117
+ var stringRepeat = function repeat(count) {
4118
+ var str = toString$6(requireObjectCoercible$5(this));
4119
+ var result = '';
4120
+ var n = toIntegerOrInfinity$2(count);
4121
+ if (n < 0 || n === Infinity) throw new $RangeError('Wrong number of repetitions');
4122
+ for (;n > 0; (n >>>= 1) && (str += str)) if (n & 1) result += str;
4123
+ return result;
4124
+ };
4084
4125
 
4085
- /**
4086
- * Input type that is either a Date or a DateCellIndex.
4087
- */
4126
+ // https://github.com/tc39/proposal-string-pad-start-end
4127
+ var uncurryThis$6 = functionUncurryThis;
4128
+ var toLength$2 = toLength$5;
4129
+ var toString$5 = toString$c;
4130
+ var $repeat = stringRepeat;
4131
+ var requireObjectCoercible$4 = requireObjectCoercible$b;
4088
4132
 
4089
- /**
4090
- * A duration-span block.
4091
- */
4133
+ var repeat = uncurryThis$6($repeat);
4134
+ var stringSlice$3 = uncurryThis$6(''.slice);
4135
+ var ceil = Math.ceil;
4092
4136
 
4093
- let DateCell = (_dec$4 = Expose(), _dec2$4 = IsNumber(), _dec3$4 = Min(0), _dec4$3 = Reflect.metadata("design:type", typeof DateCellIndex === "undefined" ? Object : DateCellIndex), (_class$4 = class DateCell {
4094
- constructor(template) {
4095
- _initializerDefineProperty(this, "i", _descriptor$4, this);
4096
- if (template) {
4097
- this.i = template.i;
4098
- }
4137
+ // `String.prototype.{ padStart, padEnd }` methods implementation
4138
+ var createMethod$2 = function (IS_END) {
4139
+ return function ($this, maxLength, fillString) {
4140
+ var S = toString$5(requireObjectCoercible$4($this));
4141
+ var intMaxLength = toLength$2(maxLength);
4142
+ var stringLength = S.length;
4143
+ var fillStr = fillString === undefined ? ' ' : toString$5(fillString);
4144
+ var fillLen, stringFiller;
4145
+ if (intMaxLength <= stringLength || fillStr === '') return S;
4146
+ fillLen = intMaxLength - stringLength;
4147
+ stringFiller = repeat(fillStr, ceil(fillLen / fillStr.length));
4148
+ if (stringFiller.length > fillLen) stringFiller = stringSlice$3(stringFiller, 0, fillLen);
4149
+ return IS_END ? S + stringFiller : stringFiller + S;
4150
+ };
4151
+ };
4152
+
4153
+ var stringPad = {
4154
+ // `String.prototype.padStart` method
4155
+ // https://tc39.es/ecma262/#sec-string.prototype.padstart
4156
+ start: createMethod$2(false),
4157
+ // `String.prototype.padEnd` method
4158
+ // https://tc39.es/ecma262/#sec-string.prototype.padend
4159
+ end: createMethod$2(true)
4160
+ };
4161
+
4162
+ // https://github.com/zloirock/core-js/issues/280
4163
+ var userAgent = engineUserAgent;
4164
+
4165
+ var stringPadWebkitBug = /Version\/10(?:\.\d+){1,2}(?: [\w./]+)?(?: Mobile\/\w+)? Safari\//.test(userAgent);
4166
+
4167
+ var $$3 = _export;
4168
+ var $padStart = stringPad.start;
4169
+ var WEBKIT_BUG = stringPadWebkitBug;
4170
+
4171
+ // `String.prototype.padStart` method
4172
+ // https://tc39.es/ecma262/#sec-string.prototype.padstart
4173
+ $$3({ target: 'String', proto: true, forced: WEBKIT_BUG }, {
4174
+ padStart: function padStart(maxLength /* , fillString = ' ' */) {
4175
+ return $padStart(this, maxLength, arguments.length > 1 ? arguments[1] : undefined);
4099
4176
  }
4100
- }, (_descriptor$4 = _applyDecoratedDescriptor(_class$4.prototype, "i", [_dec$4, _dec2$4, _dec3$4, _dec4$3], {
4101
- configurable: true,
4102
- enumerable: true,
4103
- writable: true,
4104
- initializer: null
4105
- })), _class$4));
4177
+ });
4106
4178
 
4107
- /**
4108
- * Converts the input number or DateCell to a DateCell.
4109
- *
4110
- * @param dateCellOrIndex
4111
- * @returns
4112
- */
4113
- function dateCell(dateCellOrIndex) {
4114
- return typeof dateCellOrIndex === 'number' ? {
4115
- i: dateCellOrIndex
4116
- } : dateCellOrIndex;
4117
- }
4179
+ var call$2 = functionCall;
4180
+ var hasOwn = hasOwnProperty_1;
4181
+ var isPrototypeOf = objectIsPrototypeOf;
4182
+ var regExpFlags = regexpFlags$1;
4118
4183
 
4119
- /**
4120
- * An array of DateCell-like values.
4121
- */
4184
+ var RegExpPrototype$1 = RegExp.prototype;
4122
4185
 
4123
- /**
4124
- * Reference to a DateCellArray
4125
- */
4186
+ var regexpGetFlags = function (R) {
4187
+ var flags = R.flags;
4188
+ return flags === undefined && !('flags' in RegExpPrototype$1) && !hasOwn(R, 'flags') && isPrototypeOf(RegExpPrototype$1, R)
4189
+ ? call$2(regExpFlags, R) : flags;
4190
+ };
4126
4191
 
4127
- /**
4128
- * The DateCellTimingStartsAt and startsAt times and timezone.
4129
- *
4130
- * Used to derive the indexes for the days.
4131
- */
4192
+ var PROPER_FUNCTION_NAME$1 = functionName.PROPER;
4193
+ var defineBuiltIn = defineBuiltIn$5;
4194
+ var anObject$1 = anObject$a;
4195
+ var $toString = toString$c;
4196
+ var fails$3 = fails$m;
4197
+ var getRegExpFlags = regexpGetFlags;
4132
4198
 
4133
- /**
4134
- * Input for dateCellTimingStartsAtForStartOfDay()
4135
- */
4199
+ var TO_STRING = 'toString';
4200
+ var RegExpPrototype = RegExp.prototype;
4201
+ var nativeToString = RegExpPrototype[TO_STRING];
4202
+
4203
+ var NOT_GENERIC = fails$3(function () { return nativeToString.call({ source: 'a', flags: 'b' }) !== '/a/b'; });
4204
+ // FF44- RegExp#toString has a wrong name
4205
+ var INCORRECT_NAME = PROPER_FUNCTION_NAME$1 && nativeToString.name !== TO_STRING;
4206
+
4207
+ // `RegExp.prototype.toString` method
4208
+ // https://tc39.es/ecma262/#sec-regexp.prototype.tostring
4209
+ if (NOT_GENERIC || INCORRECT_NAME) {
4210
+ defineBuiltIn(RegExpPrototype, TO_STRING, function toString() {
4211
+ var R = anObject$1(this);
4212
+ var pattern = $toString(R.source);
4213
+ var flags = $toString(getRegExpFlags(R));
4214
+ return '/' + pattern + '/' + flags;
4215
+ }, { unsafe: true });
4216
+ }
4136
4217
 
4137
4218
  /**
4138
- * Creates a new DateCellTimingStartsAt for the given time and timezone.
4219
+ * Creates a FormatDateRangeFunction using the input config.
4139
4220
  *
4140
- * @param now
4221
+ * @param inputConfig
4141
4222
  * @returns
4142
4223
  */
4143
- function dateCellTimingStartsAtForStartOfDay(input = {}) {
4144
- var _input$timezone;
4145
- const timezone = (_input$timezone = input.timezone) != null ? _input$timezone : requireCurrentTimezone();
4146
- let startsAt = startOfDay(new Date());
4147
- if (input.timezone != null) {
4148
- startsAt = dateTimezoneUtcNormal(timezone).targetDateToSystemDate(startsAt);
4149
- }
4150
- return {
4151
- startsAt,
4152
- timezone
4224
+ function formatDateRangeFunction(inputConfig) {
4225
+ const config = typeof inputConfig === 'function' ? {
4226
+ format: inputConfig
4227
+ } : inputConfig;
4228
+ const {
4229
+ format,
4230
+ separator = '-',
4231
+ simplifySameDate = false
4232
+ } = config;
4233
+ return (startOrDateRange, inputEnd) => {
4234
+ const {
4235
+ start,
4236
+ end
4237
+ } = dateOrDateRangeToDateRange(startOrDateRange, inputEnd);
4238
+ let string;
4239
+ if (simplifySameDate && isSameDateDay(start, end)) {
4240
+ string = format(start);
4241
+ } else {
4242
+ string = `${format(start)} ${separator} ${format(end)}`;
4243
+ }
4244
+ return string;
4153
4245
  };
4154
4246
  }
4155
4247
 
4156
4248
  /**
4157
- * The DateCellTimingEnd and endsAt times and timezone.
4249
+ * Formats the input date range using the start and end dates and a format function.
4158
4250
  */
4251
+ function formatDateRange(range, inputConfig, separator) {
4252
+ const config = typeof inputConfig === 'function' ? {
4253
+ format: inputConfig,
4254
+ separator
4255
+ } : inputConfig;
4256
+ return formatDateRangeFunction(config)(range);
4257
+ }
4159
4258
 
4160
4259
  /**
4161
- * Is combination of DateRange and DateDurationSpan. The DateRange captures a range of days that a DateCell takes up, and the DateDurationSpan
4162
- * captures the Dates at which the Job occurs at.
4163
- *
4164
- * NOTES:
4165
- * - The startsAt time is the time of the first event.
4166
- * - The end time is the ending date/time of the final end duration.
4167
- * - The timezone is required to properly handle daylight savings and timezone differences.
4260
+ * formatDateRangeDistanceFunction() configuration
4168
4261
  */
4169
4262
 
4170
4263
  /**
4171
- * Corresponds to the range of dates in a DateCellTiming.
4172
- *
4173
- * NOTES:
4174
- * - The start time is midnight in the given timezone of the first day of the range.
4175
- * - The end time is the ending date/time of the final end duration.
4176
- * - The timezone is required to properly handle daylight savings and timezone differences.
4264
+ * Formats the input date range using the start and end dates and distance format function
4177
4265
  */
4178
-
4266
+ function formatDateRangeDistanceFunction(inputConfig) {
4267
+ const {
4268
+ transform: inputTransform,
4269
+ formatSameDay,
4270
+ onlyTimeRange,
4271
+ timeRangeTimezone,
4272
+ strict = false
4273
+ } = inputConfig;
4274
+ const transform = inputTransform != null ? inputTransform : onlyTimeRange ? timeRangeTimezone ? fitDateRangeToDayPeriodFunction(timeRangeTimezone) : fitUTCDateRangeToDayPeriod : mapIdentityFunction();
4275
+ return (startOrDateRange, inputEnd) => {
4276
+ const dateRange = transform(dateOrDateRangeToDateRange(startOrDateRange, inputEnd));
4277
+ const {
4278
+ start,
4279
+ end
4280
+ } = dateRange;
4281
+ let string;
4282
+ if (formatSameDay != null && isSameDateDay(start, end)) {
4283
+ string = formatSameDay(dateRange);
4284
+ } else {
4285
+ if (strict) {
4286
+ string = formatDistanceStrict(end, start, inputConfig);
4287
+ } else {
4288
+ string = formatDistance(end, start, inputConfig);
4289
+ }
4290
+ }
4291
+ return string;
4292
+ };
4293
+ }
4294
+
4295
+ /**
4296
+ * Legacy format date distance function that will format the input as start of day to end of day.
4297
+ */
4298
+ const formatDateDistance = formatDateRangeDistanceFunction({
4299
+ addSuffix: true,
4300
+ onlyTimeRange: false,
4301
+ transform: transformDateRangeWithStartOfDay,
4302
+ formatSameDay: range => {
4303
+ let text;
4304
+ if (isSameDay(range.start, new Date())) {
4305
+ text = 'Today';
4306
+ } else {
4307
+ text = 'Same Day';
4308
+ }
4309
+ return text;
4310
+ }
4311
+ });
4312
+
4313
+ /**
4314
+ * Formats the range between the two dates into a string.
4315
+ *
4316
+ * @param range
4317
+ * @param inputConfig
4318
+ * @returns
4319
+ */
4320
+ function formatDateRangeDistance(range, inputConfig = {}) {
4321
+ return formatDateRangeDistanceFunction(inputConfig)(range);
4322
+ }
4323
+
4324
+ /**
4325
+ * Formats the input dates to be time start - end using formatToTimeString().
4326
+ *
4327
+ * I.E. 12:00AM - 4:00PM
4328
+ *
4329
+ * If the input dates are on different days, then the format will come from formatToDayTimeRangeString().
4330
+ *
4331
+ * I.E. 1/1/2001 12:00AM - 1/2/2001 4:00PM
4332
+ */
4333
+
4334
+ function formatToTimeRangeString(startOrDateRange, end, onlyTimeRange = false) {
4335
+ const dateRange = dateOrDateRangeToDateRange(startOrDateRange, end);
4336
+ const isSameDay = onlyTimeRange || isSameDateDay(dateRange.start, dateRange.end);
4337
+ const format = isSameDay ? formatToTimeString : formatToShortDateAndTimeString;
4338
+ return formatDateRange(dateRange, {
4339
+ format,
4340
+ simplifySameDate: false
4341
+ });
4342
+ }
4343
+
4344
+ /**
4345
+ * Formats the input dates to be date start - end using formatToShortDateAndTimeString().
4346
+ *
4347
+ * I.E. 1/1/2001 12:00AM - 1/2/2001 4:00PM
4348
+ */
4349
+
4350
+ function formatToDayTimeRangeString(startOrDateRange, end) {
4351
+ return formatDateRange(dateOrDateRangeToDateRange(startOrDateRange, end), {
4352
+ format: formatToShortDateAndTimeString,
4353
+ simplifySameDate: false
4354
+ });
4355
+ }
4356
+
4357
+ /**
4358
+ * Formats the input dates to be date start - end using formatToShortDateString(). Can alternatively specify a custom format function.
4359
+ *
4360
+ * I.E. 02/01/1992 - 03/01/1992
4361
+ */
4362
+
4363
+ function formatToDayRangeString(startOrDateRange, endOrFormat, inputFormat) {
4364
+ var _inputFormat;
4365
+ let end;
4366
+ if (endOrFormat != null) {
4367
+ if (typeof endOrFormat === 'function') {
4368
+ inputFormat = endOrFormat;
4369
+ } else {
4370
+ end = endOrFormat;
4371
+ }
4372
+ }
4373
+ const format = (_inputFormat = inputFormat) != null ? _inputFormat : formatToShortDateString;
4374
+ return formatDateRange(dateOrDateRangeToDateRange(startOrDateRange, end), {
4375
+ format,
4376
+ simplifySameDate: true
4377
+ });
4378
+ }
4379
+
4380
+ /**
4381
+ * Safely formats the input to an ISO8601DateString if possible, otherwise returns undefined.
4382
+ *
4383
+ * @param input
4384
+ * @returns
4385
+ */
4386
+ function safeFormatToISO8601DateString(input) {
4387
+ const date = safeToJsDate(input);
4388
+ return date != null && isValid(date) ? formatToISO8601DateString(date) : undefined;
4389
+ }
4390
+ function formatToISO8601DateString(date = new Date()) {
4391
+ return date.toISOString();
4392
+ }
4393
+
4394
+ /**
4395
+ * Converts the input Date or ISO8601DayString to an ISO8601DayString using the system's date (not UTC date).
4396
+ *
4397
+ * Use formatToISO8601DayStringForUTC() for using the UTC date.
4398
+ *
4399
+ * @param dateOrString
4400
+ * @returns
4401
+ */
4402
+ function toISO8601DayStringForSystem(dateOrString) {
4403
+ return isDate(dateOrString) ? formatToISO8601DayStringForSystem(dateOrString) : dateOrString;
4404
+ }
4405
+ function formatToISO8601DayStringForSystem(date = new Date()) {
4406
+ return format$1(date, 'yyyy-MM-dd');
4407
+ }
4408
+
4409
+ /**
4410
+ * Converts the input Date or ISO8601DayString to an ISO8601DayString using the UTC date.
4411
+ *
4412
+ * @param dateOrString
4413
+ * @returns
4414
+ */
4415
+ function toISO8601DayStringForUTC(dateOrString) {
4416
+ return isDate(dateOrString) ? formatToISO8601DayStringForUTC(dateOrString) : dateOrString;
4417
+ }
4418
+ function formatToISO8601DayStringForUTC(date = new Date()) {
4419
+ return `${date.getUTCFullYear()}-${(date.getUTCMonth() + 1).toString().padStart(2, '0')}-${date.getUTCDate().toString().padStart(2, '0')}`;
4420
+ }
4421
+ const dateShortDateStringFormat = 'MM/dd/yyyy';
4422
+ function formatToShortDateString(date = new Date()) {
4423
+ return format$1(date, dateShortDateStringFormat);
4424
+ }
4425
+ const dateMonthDayStringFormat = 'MM/dd';
4426
+ function formatToMonthDayString(date = new Date()) {
4427
+ return format$1(date, dateMonthDayStringFormat);
4428
+ }
4429
+ function formatToDateString(date) {
4430
+ return format$1(date, 'EEE, MMM do');
4431
+ }
4432
+ const dateTimeStringFormat = 'h:mm a';
4433
+ function formatToTimeString(date) {
4434
+ return format$1(date, dateTimeStringFormat);
4435
+ }
4436
+ const dateShortDateAndTimeStringFormat = `${dateShortDateStringFormat} ${dateTimeStringFormat}`;
4437
+ function formatToShortDateAndTimeString(date) {
4438
+ return format$1(date, dateShortDateAndTimeStringFormat);
4439
+ }
4440
+ function formatToTimeAndDurationString(start, end) {
4441
+ const minutes = differenceInMinutes(end, start);
4442
+ let subtitle;
4443
+ if (minutes > 120) {
4444
+ subtitle = `(${formatDistance(end, start, {
4445
+ includeSeconds: false
4446
+ })})`;
4447
+ } else {
4448
+ subtitle = `${minutes ? `(${minutes} Minutes)` : ''}`;
4449
+ }
4450
+ return `${formatToTimeString(start)} ${subtitle}`;
4451
+ }
4452
+ function formatStartedEndedDistanceString({
4453
+ start,
4454
+ end
4455
+ }) {
4456
+ const state = dateRangeRelativeState({
4457
+ start,
4458
+ end
4459
+ });
4460
+ let distanceText;
4461
+ switch (state) {
4462
+ case 'past':
4463
+ distanceText = `ended ${formatDistanceToNow(end, {
4464
+ addSuffix: true
4465
+ })}`;
4466
+ break;
4467
+ case 'present':
4468
+ distanceText = `started ${formatDistanceToNow(start, {
4469
+ addSuffix: true
4470
+ })}`;
4471
+ break;
4472
+ case 'future':
4473
+ distanceText = `starting ${formatDistanceToNow(start, {
4474
+ addSuffix: true
4475
+ })}`;
4476
+ break;
4477
+ }
4478
+ return distanceText;
4479
+ }
4480
+
4481
+ /**
4482
+ * Returns the input date as the start of the day in the system timezone, or parses the input ISO8601DayString to the start of the day in the system timezone.
4483
+ *
4484
+ * @param input
4485
+ * @returns
4486
+ */
4487
+ function toJsDayDate(input) {
4488
+ return isDate(input) ? startOfDay(input) : parseISO8601DayStringToDate(input);
4489
+ }
4490
+ function parseISO8601DayStringToDate(dayString) {
4491
+ // TODO: Does not support negative years.
4492
+
4493
+ const inputSplit = dayString.split('-');
4494
+ const numberOfYs = inputSplit[0].length;
4495
+ const format = repeatString('y', numberOfYs) + '-MM-dd';
4496
+ dayString = dayString.slice(0, numberOfYs + 6); // remove everything past the days
4497
+
4498
+ const result = parse(dayString, format, new Date());
4499
+ return startOfDay(result);
4500
+ }
4501
+
4502
+ // MARK: Compat
4503
+ /**
4504
+ * @deprecated use toISO8601DayStringForSystem instead for clarity. Will be removed in the future.
4505
+ */
4506
+ const toISO8601DayString = toISO8601DayStringForSystem;
4507
+
4508
+ /**
4509
+ * @deprecated use formatToISO8601DayStringForSystem instead for clarity. Will be removed in the future.
4510
+ */
4511
+ const formatToISO8601DayString = formatToISO8601DayStringForSystem;
4512
+
4513
+ var _dec$4, _dec2$4, _dec3$4, _dec4$3, _class$4, _descriptor$4, _dec5$3, _dec6$2, _dec7$2, _dec8$2, _dec9$2, _dec10$2, _dec11$2, _dec12$2, _class2$1, _descriptor2$2, _descriptor3$2;
4514
+
4515
+ /**
4516
+ * Index from 0 of which day this block represents.
4517
+ *
4518
+ * It is easiest to think of DateCellIndexes as days on a calendar. An index of 0 means the entire first day for that timezone.
4519
+ *
4520
+ * It is not the time from the startsAt time to the endsAt time for a period.
4521
+ */
4522
+
4523
+ /**
4524
+ * Returns true if the index is a non-negative integer.
4525
+ *
4526
+ * @param input
4527
+ */
4528
+ function isValidDateCellIndex(input) {
4529
+ return input >= 0 && Number.isInteger(input);
4530
+ }
4531
+
4532
+ /**
4533
+ * Input type that is either a Date or a DateCellIndex.
4534
+ */
4535
+
4536
+ /**
4537
+ * A duration-span block.
4538
+ */
4539
+
4540
+ let DateCell = (_dec$4 = Expose(), _dec2$4 = IsNumber(), _dec3$4 = Min(0), _dec4$3 = Reflect.metadata("design:type", typeof DateCellIndex === "undefined" ? Object : DateCellIndex), (_class$4 = class DateCell {
4541
+ constructor(template) {
4542
+ _initializerDefineProperty(this, "i", _descriptor$4, this);
4543
+ if (template) {
4544
+ this.i = template.i;
4545
+ }
4546
+ }
4547
+ }, (_descriptor$4 = _applyDecoratedDescriptor(_class$4.prototype, "i", [_dec$4, _dec2$4, _dec3$4, _dec4$3], {
4548
+ configurable: true,
4549
+ enumerable: true,
4550
+ writable: true,
4551
+ initializer: null
4552
+ })), _class$4));
4553
+
4554
+ /**
4555
+ * Converts the input number or DateCell to a DateCell.
4556
+ *
4557
+ * @param dateCellOrIndex
4558
+ * @returns
4559
+ */
4560
+ function dateCell(dateCellOrIndex) {
4561
+ return typeof dateCellOrIndex === 'number' ? {
4562
+ i: dateCellOrIndex
4563
+ } : dateCellOrIndex;
4564
+ }
4565
+
4566
+ /**
4567
+ * An array of DateCell-like values.
4568
+ */
4569
+
4570
+ /**
4571
+ * Reference to a DateCellArray
4572
+ */
4573
+
4574
+ /**
4575
+ * The DateCellTimingStartsAt and startsAt times and timezone.
4576
+ *
4577
+ * Used to derive the indexes for the days.
4578
+ */
4579
+
4580
+ /**
4581
+ * Input for dateCellTimingStartsAtForStartOfDay()
4582
+ */
4583
+
4584
+ /**
4585
+ * Creates a new DateCellTimingStartsAt for the given time and timezone.
4586
+ *
4587
+ * @param now
4588
+ * @returns
4589
+ */
4590
+ function dateCellTimingStartsAtForStartOfDay(input = {}) {
4591
+ var _input$timezone;
4592
+ const timezone = (_input$timezone = input.timezone) != null ? _input$timezone : requireCurrentTimezone();
4593
+ let startsAt = startOfDay(new Date());
4594
+ if (input.timezone != null) {
4595
+ startsAt = dateTimezoneUtcNormal(timezone).targetDateToSystemDate(startsAt);
4596
+ }
4597
+ return {
4598
+ startsAt,
4599
+ timezone
4600
+ };
4601
+ }
4602
+
4603
+ /**
4604
+ * The DateCellTimingEnd and endsAt times and timezone.
4605
+ */
4606
+
4607
+ /**
4608
+ * Is combination of DateRange and DateDurationSpan. The DateRange captures a range of days that a DateCell takes up, and the DateDurationSpan
4609
+ * captures the Dates at which the Job occurs at.
4610
+ *
4611
+ * NOTES:
4612
+ * - The startsAt time is the time of the first event.
4613
+ * - The end time is the ending date/time of the final end duration.
4614
+ * - The timezone is required to properly handle daylight savings and timezone differences.
4615
+ */
4616
+
4617
+ /**
4618
+ * Corresponds to the range of dates in a DateCellTiming.
4619
+ *
4620
+ * NOTES:
4621
+ * - The start time is midnight in the given timezone of the first day of the range.
4622
+ * - The end time is the ending date/time of the final end duration.
4623
+ * - The timezone is required to properly handle daylight savings and timezone differences.
4624
+ */
4625
+
4179
4626
  /**
4180
4627
  * A DateCellTimingDateRange, but the start time is the startsAt time for the first event.
4181
4628
  */
@@ -4310,7 +4757,7 @@ function isValidDateCellTimingStartDate(date) {
4310
4757
  *
4311
4758
  * The start date from the inputDate is considered to to have the offset noted in DateCell, and will be retained.
4312
4759
  */
4313
- function dateCellTiming(durationInput, inputRange, timezoneInput) {
4760
+ function dateCellTiming(durationInput, rangeInput, timezoneInput) {
4314
4761
  const {
4315
4762
  duration
4316
4763
  } = durationInput;
@@ -4323,53 +4770,56 @@ function dateCellTiming(durationInput, inputRange, timezoneInput) {
4323
4770
  startsAt: inputStartsAt
4324
4771
  } = durationInput;
4325
4772
 
4326
- // it is important that startsAt is evaluated the system time normal, as addDays/addMinutes and related functionality rely on the system timezone.
4327
- let startsAtInSystemTimezone = normalInstance ? normalInstance.systemDateToTargetDate(inputStartsAt) : inputStartsAt;
4328
- let numberOfBlockedDays;
4329
- let inputDate;
4330
- let range;
4331
- if (typeof inputRange === 'number') {
4773
+ // it is important that startsAt is evaluated the base time normal so we can avoid daylight savings issues
4774
+ let startsAtInUtc = normalInstance.baseDateToTargetDate(inputStartsAt);
4775
+ let numberOfDayBlocks;
4776
+ let hasRangeFromInput = false;
4777
+ let rangeInUtc;
4778
+ function createRangeWithStart(dateInUtc) {
4779
+ const startOfDateInUtc = startOfDayForUTCDateInUTC(dateInUtc);
4780
+ return {
4781
+ start: startOfDateInUtc,
4782
+ end: addMinutes(addHours(startOfDateInUtc, 24), -1)
4783
+ };
4784
+ }
4785
+ if (typeof rangeInput === 'number') {
4332
4786
  // input range is a number of days
4333
- numberOfBlockedDays = inputRange - 1;
4334
- range = dateRange({
4335
- type: DateRangeType.DAY,
4336
- date: startsAtInSystemTimezone
4337
- });
4338
- } else if (isDateRange(inputRange)) {
4787
+ numberOfDayBlocks = rangeInput - 1;
4788
+ rangeInUtc = createRangeWithStart(startsAtInUtc);
4789
+ } else if (!isDateRange(rangeInput)) {
4790
+ // inputRange is a distance
4791
+ numberOfDayBlocks = rangeInput.distance - 1;
4792
+ const startDateInUtc = rangeInput.date ? normalInstance.baseDateToSystemDate(rangeInput.date) : startsAtInUtc;
4793
+ rangeInUtc = createRangeWithStart(startDateInUtc);
4794
+ hasRangeFromInput = true;
4795
+ } else {
4339
4796
  // input range is a DateRange
4340
- range = inputRange;
4341
- inputDate = inputRange.start;
4342
- if (!isValidDateCellTimingStartDate(inputRange.start)) {
4797
+ if (!isValidDateCellTimingStartDate(rangeInput.start)) {
4343
4798
  throw new Error('Invalid dateCellTiming start date passed to dateCellTiming() via inputRange.');
4344
4799
  }
4345
- numberOfBlockedDays = differenceInDays(inputRange.end, inputRange.start); // min of 1 day
4346
- } else {
4347
- // input range is a Date
4348
- inputDate = startsAtInSystemTimezone;
4349
- numberOfBlockedDays = inputRange.distance - 1;
4350
- range = dateRange({
4351
- type: DateRangeType.DAY,
4352
- date: inputDate
4353
- }, true);
4354
- }
4355
- if (inputDate != null) {
4800
+ rangeInUtc = normalInstance.transformDateRangeToTimezoneFunction('baseDateToSystemDate')(rangeInput);
4801
+ numberOfDayBlocks = differenceInDays(rangeInput.end, rangeInput.start); // min of 1 day. Uses system time as-is
4802
+ hasRangeFromInput = true;
4803
+ }
4804
+ if (hasRangeFromInput) {
4356
4805
  // input date takes priority, so move the startsAt's date to be on the same date.
4357
- startsAtInSystemTimezone = copyHoursAndMinutesFromDate(range.start, startsAtInSystemTimezone, true);
4358
- const startedBeforeRange = isBefore(startsAtInSystemTimezone, range.start);
4806
+ startsAtInUtc = copyHoursAndMinutesFromUTCDate(rangeInUtc.start, startsAtInUtc, true);
4807
+ const startedBeforeRange = isBefore(startsAtInUtc, rangeInUtc.start);
4359
4808
  if (startedBeforeRange) {
4360
- startsAtInSystemTimezone = addDays(startsAtInSystemTimezone, 1); // starts 24 hours later
4361
- numberOfBlockedDays = Math.max(numberOfBlockedDays - 1, 0); // reduce number of applied days by 1, to a min of 0
4809
+ startsAtInUtc = addHours(startsAtInUtc, 24); // starts 24 hours later
4810
+ numberOfDayBlocks = Math.max(numberOfDayBlocks - 1, 0); // reduce number of applied days by 1, to a min of 0
4362
4811
  }
4363
4812
  } else {
4364
- startsAtInSystemTimezone = roundDownToMinute(startsAtInSystemTimezone); // clear seconds and milliseconds from startsAt
4813
+ startsAtInUtc = roundDownToMinute(startsAtInUtc); // clear seconds and milliseconds from startsAt
4365
4814
  }
4366
4815
 
4367
- const lastStartsAtInSystemTimezone = addDays(startsAtInSystemTimezone, numberOfBlockedDays); // use addDays so the system (if it experiences daylight savings) can change for daylight savings
4816
+ const lastStartsAtInBaseTimezone = addHours(startsAtInUtc, numberOfDayBlocks * 24); // use addDays so the system (if it experiences daylight savings) can account for change for daylight savings
4368
4817
 
4369
4818
  // calculate end to be the ending date/time of the final duration span
4370
- const end = normalInstance.targetDateToSystemDate(addMinutes(lastStartsAtInSystemTimezone, duration));
4371
- const start = normalInstance.targetDateToSystemDate(startOfDay(startsAtInSystemTimezone));
4372
- const startsAt = normalInstance.targetDateToSystemDate(startsAtInSystemTimezone);
4819
+ const end = addMinutes(normalInstance.targetDateToBaseDate(lastStartsAtInBaseTimezone), duration);
4820
+ const utcDay = formatToISO8601DayStringForUTC(startsAtInUtc);
4821
+ const start = normalInstance.startOfDayInTargetTimezone(utcDay);
4822
+ const startsAt = normalInstance.targetDateToBaseDate(startsAtInUtc);
4373
4823
  return {
4374
4824
  start,
4375
4825
  end,
@@ -7663,412 +8113,143 @@ function expandDateCellScheduleRange(input) {
7663
8113
  }));
7664
8114
  }
7665
8115
 
7666
- // MARK: DateCellScheduleRange
7667
-
7668
- function expandDateCellScheduleRangeToDateCellRanges(input) {
7669
- const dateCellDurationSpans = expandDateCellScheduleRange(input);
7670
- return groupToDateCellRanges(dateCellDurationSpans);
7671
- }
7672
-
7673
- /**
7674
- * Converts the input day codes into DateCellIndex values.
7675
- *
7676
- * @param dayCodes
7677
- * @returns
7678
- */
7679
- function dateCellIndexsForDateCellScheduleDayCodes(sundayIndex, dayCodes) {
7680
- return expandDateCellScheduleDayCodes(dayCodes).map(x => sundayIndex + x - 1);
7681
- }
7682
-
7683
- /**
7684
- * isValidDateCellTiming validator
7685
- */
7686
- function IsValidDateCellTiming(validationOptions) {
7687
- return function (object, propertyName) {
7688
- registerDecorator({
7689
- name: 'isValidDateCellTiming',
7690
- target: object.constructor,
7691
- propertyName: propertyName,
7692
- options: validationOptions,
7693
- validator: {
7694
- validate: isValidDateCellTiming,
7695
- defaultMessage(args) {
7696
- return `"${JSON.stringify(args.value)}" is not a valid DateCellTiming.`;
7697
- }
7698
- }
7699
- });
7700
- };
7701
- }
7702
-
7703
- /**
7704
- * isValidDateCellRange validator
7705
- */
7706
- function IsValidDateCellRange(validationOptions) {
7707
- return function (object, propertyName) {
7708
- registerDecorator({
7709
- name: 'isValidDateCellRange',
7710
- target: object.constructor,
7711
- propertyName: propertyName,
7712
- options: validationOptions,
7713
- validator: {
7714
- validate: isValidDateCellRange,
7715
- defaultMessage(args) {
7716
- return `"${JSON.stringify(args.value)}" is not a valid DateCellRange.`;
7717
- }
7718
- }
7719
- });
7720
- };
7721
- }
7722
-
7723
- /**
7724
- * isValidDateCellRangeSeries validator
7725
- */
7726
- function IsValidDateCellRangeSeries(validationOptions) {
7727
- return function (object, propertyName) {
7728
- registerDecorator({
7729
- name: 'isValidDateCellRangeSeries',
7730
- target: object.constructor,
7731
- propertyName: propertyName,
7732
- options: validationOptions,
7733
- validator: {
7734
- validate: isValidDateCellRangeSeries,
7735
- defaultMessage(args) {
7736
- return `"${JSON.stringify(args.value)}" is not a valid DateCellRange series. Items must be sorted in ascending order and have no repeat indexes.`;
7737
- }
7738
- }
7739
- });
7740
- };
7741
- }
7742
-
7743
- var _dec$1, _dec2$1, _dec3$1, _class$1, _descriptor$1;
7744
-
7745
- /**
7746
- * CalendarDateType
7747
- */
7748
- let CalendarDateType = /*#__PURE__*/function (CalendarDateType) {
7749
- CalendarDateType["TIME"] = "time";
7750
- CalendarDateType["DAYS"] = "days";
7751
- return CalendarDateType;
7752
- }({});
7753
-
7754
- /**
7755
- * Represents a date on a calendar.
7756
- */
7757
-
7758
- let CalendarDate = (_dec$1 = Expose(), _dec2$1 = IsEnum(CalendarDateType), _dec3$1 = Reflect.metadata("design:type", typeof CalendarDateType === "undefined" ? Object : CalendarDateType), (_class$1 = class CalendarDate extends DateDurationSpan {
7759
- constructor(template) {
7760
- super(template);
7761
- /**
7762
- * The type of event date.
7763
- */
7764
- _initializerDefineProperty(this, "type", _descriptor$1, this);
7765
- if (template != null) {
7766
- this.type = template.type;
7767
- }
7768
- }
7769
- }, (_descriptor$1 = _applyDecoratedDescriptor(_class$1.prototype, "type", [_dec$1, _dec2$1, _dec3$1], {
7770
- configurable: true,
7771
- enumerable: true,
7772
- writable: true,
7773
- initializer: function () {
7774
- return CalendarDateType.TIME;
7775
- }
7776
- })), _class$1));
7777
- function calendarDateFactory(config) {
7778
- const normalConfig = (config == null ? void 0 : config.timezone) === undefined ? {
7779
- useSystemTimezone: true
7780
- } : {
7781
- timezone: config.timezone ? config.timezone : undefined
7782
- };
7783
- const normal = dateTimezoneUtcNormal(normalConfig);
7784
- return (day, days) => {
7785
- const date = parseISO8601DayStringToUTCDate(day);
7786
- const startsAt = normal.targetDateToBaseDate(date);
7787
- return {
7788
- type: CalendarDateType.DAYS,
7789
- startsAt,
7790
- duration: daysToMinutes(days)
7791
- };
7792
- };
7793
- }
7794
- function calendarDate(day, days, timezone) {
7795
- return calendarDateFactory({
7796
- timezone
7797
- })(day, days);
7798
- }
7799
- function calendarDateForDateDurationSpan(dateDurationSpan) {
7800
- return Object.assign({
7801
- type: CalendarDateType.TIME
7802
- }, dateDurationSpan);
7803
- }
7804
-
7805
- /**
7806
- * Creates a FormatDateRangeFunction using the input config.
7807
- *
7808
- * @param inputConfig
7809
- * @returns
7810
- */
7811
- function formatDateRangeFunction(inputConfig) {
7812
- const config = typeof inputConfig === 'function' ? {
7813
- format: inputConfig
7814
- } : inputConfig;
7815
- const {
7816
- format,
7817
- separator = '-',
7818
- simplifySameDate = false
7819
- } = config;
7820
- return (startOrDateRange, inputEnd) => {
7821
- const {
7822
- start,
7823
- end
7824
- } = dateOrDateRangeToDateRange(startOrDateRange, inputEnd);
7825
- let string;
7826
- if (simplifySameDate && isSameDateDay(start, end)) {
7827
- string = format(start);
7828
- } else {
7829
- string = `${format(start)} ${separator} ${format(end)}`;
7830
- }
7831
- return string;
7832
- };
7833
- }
7834
-
7835
- /**
7836
- * Formats the input date range using the start and end dates and a format function.
7837
- */
7838
- function formatDateRange(range, inputConfig, separator) {
7839
- const config = typeof inputConfig === 'function' ? {
7840
- format: inputConfig,
7841
- separator
7842
- } : inputConfig;
7843
- return formatDateRangeFunction(config)(range);
7844
- }
7845
-
7846
- /**
7847
- * formatDateRangeDistanceFunction() configuration
7848
- */
7849
-
7850
- /**
7851
- * Formats the input date range using the start and end dates and distance format function
7852
- */
7853
- function formatDateRangeDistanceFunction(inputConfig) {
7854
- const {
7855
- transform: inputTransform,
7856
- formatSameDay,
7857
- onlyTimeRange,
7858
- timeRangeTimezone,
7859
- strict = false
7860
- } = inputConfig;
7861
- const transform = inputTransform != null ? inputTransform : onlyTimeRange ? timeRangeTimezone ? fitDateRangeToDayPeriodFunction(timeRangeTimezone) : fitUTCDateRangeToDayPeriod : mapIdentityFunction();
7862
- return (startOrDateRange, inputEnd) => {
7863
- const dateRange = transform(dateOrDateRangeToDateRange(startOrDateRange, inputEnd));
7864
- const {
7865
- start,
7866
- end
7867
- } = dateRange;
7868
- let string;
7869
- if (formatSameDay != null && isSameDateDay(start, end)) {
7870
- string = formatSameDay(dateRange);
7871
- } else {
7872
- if (strict) {
7873
- string = formatDistanceStrict(end, start, inputConfig);
7874
- } else {
7875
- string = formatDistance(end, start, inputConfig);
7876
- }
7877
- }
7878
- return string;
7879
- };
7880
- }
7881
-
7882
- /**
7883
- * Legacy format date distance function that will format the input as start of day to end of day.
7884
- */
7885
- const formatDateDistance = formatDateRangeDistanceFunction({
7886
- addSuffix: true,
7887
- onlyTimeRange: false,
7888
- transform: transformDateRangeWithStartOfDay,
7889
- formatSameDay: range => {
7890
- let text;
7891
- if (isSameDay(range.start, new Date())) {
7892
- text = 'Today';
7893
- } else {
7894
- text = 'Same Day';
7895
- }
7896
- return text;
7897
- }
7898
- });
7899
-
8116
+ // MARK: DateCellScheduleRange
8117
+
8118
+ function expandDateCellScheduleRangeToDateCellRanges(input) {
8119
+ const dateCellDurationSpans = expandDateCellScheduleRange(input);
8120
+ return groupToDateCellRanges(dateCellDurationSpans);
8121
+ }
8122
+
7900
8123
  /**
7901
- * Formats the range between the two dates into a string.
8124
+ * Converts the input day codes into DateCellIndex values.
7902
8125
  *
7903
- * @param range
7904
- * @param inputConfig
8126
+ * @param dayCodes
7905
8127
  * @returns
7906
8128
  */
7907
- function formatDateRangeDistance(range, inputConfig = {}) {
7908
- return formatDateRangeDistanceFunction(inputConfig)(range);
8129
+ function dateCellIndexsForDateCellScheduleDayCodes(sundayIndex, dayCodes) {
8130
+ return expandDateCellScheduleDayCodes(dayCodes).map(x => sundayIndex + x - 1);
7909
8131
  }
7910
8132
 
7911
8133
  /**
7912
- * Formats the input dates to be time start - end using formatToTimeString().
7913
- *
7914
- * I.E. 12:00AM - 4:00PM
7915
- *
7916
- * If the input dates are on different days, then the format will come from formatToDayTimeRangeString().
7917
- *
7918
- * I.E. 1/1/2001 12:00AM - 1/2/2001 4:00PM
8134
+ * isValidDateCellTiming validator
7919
8135
  */
7920
-
7921
- function formatToTimeRangeString(startOrDateRange, end, onlyTimeRange = false) {
7922
- const dateRange = dateOrDateRangeToDateRange(startOrDateRange, end);
7923
- const isSameDay = onlyTimeRange || isSameDateDay(dateRange.start, dateRange.end);
7924
- const format = isSameDay ? formatToTimeString : formatToShortDateAndTimeString;
7925
- return formatDateRange(dateRange, {
7926
- format,
7927
- simplifySameDate: false
7928
- });
8136
+ function IsValidDateCellTiming(validationOptions) {
8137
+ return function (object, propertyName) {
8138
+ registerDecorator({
8139
+ name: 'isValidDateCellTiming',
8140
+ target: object.constructor,
8141
+ propertyName: propertyName,
8142
+ options: validationOptions,
8143
+ validator: {
8144
+ validate: isValidDateCellTiming,
8145
+ defaultMessage(args) {
8146
+ return `"${JSON.stringify(args.value)}" is not a valid DateCellTiming.`;
8147
+ }
8148
+ }
8149
+ });
8150
+ };
7929
8151
  }
7930
8152
 
7931
8153
  /**
7932
- * Formats the input dates to be date start - end using formatToShortDateAndTimeString().
7933
- *
7934
- * I.E. 1/1/2001 12:00AM - 1/2/2001 4:00PM
8154
+ * isValidDateCellRange validator
7935
8155
  */
7936
-
7937
- function formatToDayTimeRangeString(startOrDateRange, end) {
7938
- return formatDateRange(dateOrDateRangeToDateRange(startOrDateRange, end), {
7939
- format: formatToShortDateAndTimeString,
7940
- simplifySameDate: false
7941
- });
8156
+ function IsValidDateCellRange(validationOptions) {
8157
+ return function (object, propertyName) {
8158
+ registerDecorator({
8159
+ name: 'isValidDateCellRange',
8160
+ target: object.constructor,
8161
+ propertyName: propertyName,
8162
+ options: validationOptions,
8163
+ validator: {
8164
+ validate: isValidDateCellRange,
8165
+ defaultMessage(args) {
8166
+ return `"${JSON.stringify(args.value)}" is not a valid DateCellRange.`;
8167
+ }
8168
+ }
8169
+ });
8170
+ };
7942
8171
  }
7943
8172
 
7944
8173
  /**
7945
- * Formats the input dates to be date start - end using formatToShortDateString(). Can alternatively specify a custom format function.
7946
- *
7947
- * I.E. 02/01/1992 - 03/01/1992
8174
+ * isValidDateCellRangeSeries validator
7948
8175
  */
7949
-
7950
- function formatToDayRangeString(startOrDateRange, endOrFormat, inputFormat) {
7951
- var _inputFormat;
7952
- let end;
7953
- if (endOrFormat != null) {
7954
- if (typeof endOrFormat === 'function') {
7955
- inputFormat = endOrFormat;
7956
- } else {
7957
- end = endOrFormat;
7958
- }
7959
- }
7960
- const format = (_inputFormat = inputFormat) != null ? _inputFormat : formatToShortDateString;
7961
- return formatDateRange(dateOrDateRangeToDateRange(startOrDateRange, end), {
7962
- format,
7963
- simplifySameDate: true
7964
- });
8176
+ function IsValidDateCellRangeSeries(validationOptions) {
8177
+ return function (object, propertyName) {
8178
+ registerDecorator({
8179
+ name: 'isValidDateCellRangeSeries',
8180
+ target: object.constructor,
8181
+ propertyName: propertyName,
8182
+ options: validationOptions,
8183
+ validator: {
8184
+ validate: isValidDateCellRangeSeries,
8185
+ defaultMessage(args) {
8186
+ return `"${JSON.stringify(args.value)}" is not a valid DateCellRange series. Items must be sorted in ascending order and have no repeat indexes.`;
8187
+ }
8188
+ }
8189
+ });
8190
+ };
7965
8191
  }
7966
8192
 
8193
+ var _dec$1, _dec2$1, _dec3$1, _class$1, _descriptor$1;
8194
+
7967
8195
  /**
7968
- * Safely formats the input to an ISO8601DateString if possible, otherwise returns undefined.
7969
- *
7970
- * @param input
7971
- * @returns
8196
+ * CalendarDateType
7972
8197
  */
7973
- function safeFormatToISO8601DateString(input) {
7974
- const date = safeToJsDate(input);
7975
- return date != null && isValid(date) ? formatToISO8601DateString(date) : undefined;
7976
- }
7977
- function formatToISO8601DateString(date = new Date()) {
7978
- return date.toISOString();
7979
- }
8198
+ let CalendarDateType = /*#__PURE__*/function (CalendarDateType) {
8199
+ CalendarDateType["TIME"] = "time";
8200
+ CalendarDateType["DAYS"] = "days";
8201
+ return CalendarDateType;
8202
+ }({});
7980
8203
 
7981
8204
  /**
7982
- * Converts the input Date or ISO8601DayString to an ISO8601DayString.
7983
- *
7984
- * @param dateOrString
7985
- * @returns
8205
+ * Represents a date on a calendar.
7986
8206
  */
7987
- function toISO8601DayString(dateOrString) {
7988
- return isDate(dateOrString) ? formatToISO8601DayString(dateOrString) : dateOrString;
7989
- }
7990
- function formatToISO8601DayString(date = new Date()) {
7991
- return format(date, 'yyyy-MM-dd');
7992
- }
7993
- const dateShortDateStringFormat = 'MM/dd/yyyy';
7994
- function formatToShortDateString(date = new Date()) {
7995
- return format(date, dateShortDateStringFormat);
7996
- }
7997
- const dateMonthDayStringFormat = 'MM/dd';
7998
- function formatToMonthDayString(date = new Date()) {
7999
- return format(date, dateMonthDayStringFormat);
8000
- }
8001
- function formatToDateString(date) {
8002
- return format(date, 'EEE, MMM do');
8003
- }
8004
- const dateTimeStringFormat = 'h:mm a';
8005
- function formatToTimeString(date) {
8006
- return format(date, dateTimeStringFormat);
8007
- }
8008
- const dateShortDateAndTimeStringFormat = `${dateShortDateStringFormat} ${dateTimeStringFormat}`;
8009
- function formatToShortDateAndTimeString(date) {
8010
- return format(date, dateShortDateAndTimeStringFormat);
8011
- }
8012
- function formatToTimeAndDurationString(start, end) {
8013
- const minutes = differenceInMinutes(end, start);
8014
- let subtitle;
8015
- if (minutes > 120) {
8016
- subtitle = `(${formatDistance(end, start, {
8017
- includeSeconds: false
8018
- })})`;
8019
- } else {
8020
- subtitle = `${minutes ? `(${minutes} Minutes)` : ''}`;
8207
+
8208
+ let CalendarDate = (_dec$1 = Expose(), _dec2$1 = IsEnum(CalendarDateType), _dec3$1 = Reflect.metadata("design:type", typeof CalendarDateType === "undefined" ? Object : CalendarDateType), (_class$1 = class CalendarDate extends DateDurationSpan {
8209
+ constructor(template) {
8210
+ super(template);
8211
+ /**
8212
+ * The type of event date.
8213
+ */
8214
+ _initializerDefineProperty(this, "type", _descriptor$1, this);
8215
+ if (template != null) {
8216
+ this.type = template.type;
8217
+ }
8021
8218
  }
8022
- return `${formatToTimeString(start)} ${subtitle}`;
8023
- }
8024
- function formatStartedEndedDistanceString({
8025
- start,
8026
- end
8027
- }) {
8028
- const state = dateRangeRelativeState({
8029
- start,
8030
- end
8031
- });
8032
- let distanceText;
8033
- switch (state) {
8034
- case 'past':
8035
- distanceText = `ended ${formatDistanceToNow(end, {
8036
- addSuffix: true
8037
- })}`;
8038
- break;
8039
- case 'present':
8040
- distanceText = `started ${formatDistanceToNow(start, {
8041
- addSuffix: true
8042
- })}`;
8043
- break;
8044
- case 'future':
8045
- distanceText = `starting ${formatDistanceToNow(start, {
8046
- addSuffix: true
8047
- })}`;
8048
- break;
8219
+ }, (_descriptor$1 = _applyDecoratedDescriptor(_class$1.prototype, "type", [_dec$1, _dec2$1, _dec3$1], {
8220
+ configurable: true,
8221
+ enumerable: true,
8222
+ writable: true,
8223
+ initializer: function () {
8224
+ return CalendarDateType.TIME;
8049
8225
  }
8050
- return distanceText;
8226
+ })), _class$1));
8227
+ function calendarDateFactory(config) {
8228
+ const normalConfig = (config == null ? void 0 : config.timezone) === undefined ? {
8229
+ useSystemTimezone: true
8230
+ } : {
8231
+ timezone: config.timezone ? config.timezone : undefined
8232
+ };
8233
+ const normal = dateTimezoneUtcNormal(normalConfig);
8234
+ return (day, days) => {
8235
+ const date = parseISO8601DayStringToUTCDate(day);
8236
+ const startsAt = normal.targetDateToBaseDate(date);
8237
+ return {
8238
+ type: CalendarDateType.DAYS,
8239
+ startsAt,
8240
+ duration: daysToMinutes(days)
8241
+ };
8242
+ };
8051
8243
  }
8052
-
8053
- /**
8054
- * Returns the input date as the start of the day in the system timezone, or parses the input ISO8601DayString to the start of the day in the system timezone.
8055
- *
8056
- * @param input
8057
- * @returns
8058
- */
8059
- function toJsDayDate(input) {
8060
- return isDate(input) ? startOfDay(input) : parseISO8601DayStringToDate(input);
8244
+ function calendarDate(day, days, timezone) {
8245
+ return calendarDateFactory({
8246
+ timezone
8247
+ })(day, days);
8061
8248
  }
8062
- function parseISO8601DayStringToDate(dayString) {
8063
- // TODO: Does not support negative years.
8064
-
8065
- const inputSplit = dayString.split('-');
8066
- const numberOfYs = inputSplit[0].length;
8067
- const format = repeatString('y', numberOfYs) + '-MM-dd';
8068
- dayString = dayString.slice(0, numberOfYs + 6); // remove everything past the days
8069
-
8070
- const result = parse(dayString, format, new Date());
8071
- return startOfDay(result);
8249
+ function calendarDateForDateDurationSpan(dateDurationSpan) {
8250
+ return Object.assign({
8251
+ type: CalendarDateType.TIME
8252
+ }, dateDurationSpan);
8072
8253
  }
8073
8254
 
8074
8255
  class DateSet extends HashSet {
@@ -8155,8 +8336,8 @@ function dateOrDayStringRangeToDateRange(range) {
8155
8336
  }
8156
8337
  function dateOrDayStringRangeToISO8601DayStringRange(range) {
8157
8338
  return {
8158
- start: toISO8601DayString(range.start),
8159
- end: toISO8601DayString(range.end)
8339
+ start: toISO8601DayStringForSystem(range.start),
8340
+ end: toISO8601DayStringForSystem(range.end)
8160
8341
  };
8161
8342
  }
8162
8343
 
@@ -8518,13 +8699,29 @@ function dateTimeMinuteDecisionFunction(config) {
8518
8699
  return date => instance.isValid(date);
8519
8700
  }
8520
8701
 
8702
+ /**
8703
+ * Similar to dateTimeMinuteDecisionFunction(), but compares the first and last instant of the input day.
8704
+ *
8705
+ * @param config
8706
+ * @param startAndEndOfDayMustBeValue Whether or not the start of the day and end of the day must be valid to be considered valid. Defaults to false.
8707
+ * @returns
8708
+ */
8709
+ function dateTimeMinuteWholeDayDecisionFunction(config, startAndEndOfDayMustBeValue = false) {
8710
+ const instance = new DateTimeMinuteInstance(config, null);
8711
+ if (startAndEndOfDayMustBeValue) {
8712
+ return date => instance.isValid(startOfDay(date)) && instance.isValid(endOfDay(date));
8713
+ } else {
8714
+ return date => instance.isValid(startOfDay(date)) || instance.isValid(endOfDay(date));
8715
+ }
8716
+ }
8717
+
8521
8718
  // a string of all valid unicode whitespaces
8522
8719
  var whitespaces$3 = '\u0009\u000A\u000B\u000C\u000D\u0020\u00A0\u1680\u2000\u2001\u2002' +
8523
8720
  '\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200A\u202F\u205F\u3000\u2028\u2029\uFEFF';
8524
8721
 
8525
8722
  var uncurryThis$5 = functionUncurryThis;
8526
- var requireObjectCoercible$3 = requireObjectCoercible$9;
8527
- var toString$4 = toString$a;
8723
+ var requireObjectCoercible$3 = requireObjectCoercible$b;
8724
+ var toString$4 = toString$c;
8528
8725
  var whitespaces$2 = whitespaces$3;
8529
8726
 
8530
8727
  var replace$1 = uncurryThis$5(''.replace);
@@ -8554,7 +8751,7 @@ var stringTrim = {
8554
8751
  };
8555
8752
 
8556
8753
  var PROPER_FUNCTION_NAME = functionName.PROPER;
8557
- var fails$2 = fails$l;
8754
+ var fails$2 = fails$m;
8558
8755
  var whitespaces$1 = whitespaces$3;
8559
8756
 
8560
8757
  var non = '\u200B\u0085\u180E';
@@ -8593,9 +8790,9 @@ var functionApply = typeof Reflect == 'object' && Reflect.apply || (NATIVE_BIND
8593
8790
  });
8594
8791
 
8595
8792
  var uncurryThis$4 = functionUncurryThis;
8596
- var toIntegerOrInfinity$1 = toIntegerOrInfinity$4;
8597
- var toString$3 = toString$a;
8598
- var requireObjectCoercible$2 = requireObjectCoercible$9;
8793
+ var toIntegerOrInfinity$1 = toIntegerOrInfinity$5;
8794
+ var toString$3 = toString$c;
8795
+ var requireObjectCoercible$2 = requireObjectCoercible$b;
8599
8796
 
8600
8797
  var charAt$2 = uncurryThis$4(''.charAt);
8601
8798
  var charCodeAt = uncurryThis$4(''.charCodeAt);
@@ -8687,14 +8884,14 @@ var apply = functionApply;
8687
8884
  var call = functionCall;
8688
8885
  var uncurryThis$2 = functionUncurryThis;
8689
8886
  var fixRegExpWellKnownSymbolLogic = fixRegexpWellKnownSymbolLogic;
8690
- var fails$1 = fails$l;
8691
- var anObject = anObject$9;
8887
+ var fails$1 = fails$m;
8888
+ var anObject = anObject$a;
8692
8889
  var isCallable = isCallable$g;
8693
8890
  var isNullOrUndefined = isNullOrUndefined$4;
8694
- var toIntegerOrInfinity = toIntegerOrInfinity$4;
8695
- var toLength$1 = toLength$4;
8696
- var toString$2 = toString$a;
8697
- var requireObjectCoercible$1 = requireObjectCoercible$9;
8891
+ var toIntegerOrInfinity = toIntegerOrInfinity$5;
8892
+ var toLength$1 = toLength$5;
8893
+ var toString$2 = toString$c;
8894
+ var requireObjectCoercible$1 = requireObjectCoercible$b;
8698
8895
  var advanceStringIndex = advanceStringIndex$1;
8699
8896
  var getMethod = getMethod$3;
8700
8897
  var getSubstitution = getSubstitution$1;
@@ -9011,11 +9208,12 @@ class DateTimeUtilityInstance {
9011
9208
  // console.log('Raw: ', input, systemParsedDateTime, differenceInHours(raw, systemParsedDateTime!), raw, differenceInHours(raw, result), result, this.normalInstance.config);
9012
9209
  }
9013
9210
 
9014
- return {
9211
+ const output = {
9015
9212
  raw,
9016
9213
  result,
9017
9214
  valid
9018
9215
  };
9216
+ return output;
9019
9217
  }
9020
9218
  _normalizeInstanceForConfig(config) {
9021
9219
  let instance;
@@ -9546,10 +9744,10 @@ class AnyIterResult extends BaseRRuleIter {
9546
9744
  var $$1 = _export;
9547
9745
  var uncurryThis$1 = functionUncurryThisClause;
9548
9746
  var getOwnPropertyDescriptor = objectGetOwnPropertyDescriptor.f;
9549
- var toLength = toLength$4;
9550
- var toString$1 = toString$a;
9747
+ var toLength = toLength$5;
9748
+ var toString$1 = toString$c;
9551
9749
  var notARegExp = notARegexp;
9552
- var requireObjectCoercible = requireObjectCoercible$9;
9750
+ var requireObjectCoercible = requireObjectCoercible$b;
9553
9751
  var correctIsRegExpLogic = correctIsRegexpLogic;
9554
9752
 
9555
9753
  var slice = uncurryThis$1(''.slice);
@@ -9577,9 +9775,9 @@ $$1({ target: 'String', proto: true, forced: !MDN_POLYFILL_BUG && !CORRECT_IS_RE
9577
9775
  });
9578
9776
 
9579
9777
  var global$1 = global$g;
9580
- var fails = fails$l;
9778
+ var fails = fails$m;
9581
9779
  var uncurryThis = functionUncurryThis;
9582
- var toString = toString$a;
9780
+ var toString = toString$c;
9583
9781
  var trim = stringTrim.trim;
9584
9782
  var whitespaces = whitespaces$3;
9585
9783
 
@@ -9745,7 +9943,7 @@ class DateRRuleParseUtility {
9745
9943
  return date;
9746
9944
  }
9747
9945
  static formatDateTimeString(date) {
9748
- return format$1(date, `yyyyMMdd'T'HHmmss'Z'`);
9946
+ return format(date, `yyyyMMdd'T'HHmmss'Z'`);
9749
9947
  }
9750
9948
  static parseProperty(line) {
9751
9949
  const rawLine = DateRRuleParseUtility.parseRawLine(line);
@@ -10110,4 +10308,4 @@ class ModelRecurrenceInfoUtility {
10110
10308
  }
10111
10309
  }
10112
10310
 
10113
- export { AnyIterResult, CalendarDate, CalendarDateType, DATE_CELL_SCHEDULE_ENCODED_WEEK_REGEX, DATE_TODAY_END_VALUE, DATE_TODAY_START_VALUE, DATE_WEEK_END_VALUE, DATE_WEEK_START_VALUE, DEFAULT_EXPAND_DAYS_FOR_DATE_RANGE_MAX_EXPANSION_SIZE, DEFAULT_FULL_DATE_SCHEDULE_RANGE_DURATION, DEFAULT_ITERATE_DAYS_IN_DATE_RANGE_MAX_ITERATIONS, DEFAULT_LAST_ITER_RESULT_MAX_ITERATIONS_ALLOWED, DateCell, DateCellRange, DateCellSchedule, DateCellScheduleDayCode, DateCellTiming, DateDurationSpan, DateRRule, DateRRuleInstance, DateRRuleParseUtility, DateRRuleUtility, DateRange, DateRangeParams, DateRangeType, DateSet, DateTimeMinuteInstance, DateTimeUtilityInstance, DateTimezoneUtcNormalInstance, IsKnownTimezone, IsValidDateCellRange, IsValidDateCellRangeSeries, IsValidDateCellTiming, IterateDaysInDateRangeFunctionBailError, LastIterResult, LimitDateTimeInstance, MAX_FUTURE_DATE, ModelRecurrenceInfo, ModelRecurrenceInfoUtility, NextIterResult, RRuleStringSplitter, SYSTEM_DATE_TIMEZONE_UTC_NORMAL_INSTANCE, UNKNOWN_YEAR_WEEK_CODE, UTC_DATE_TIMEZONE_UTC_NORMAL_INSTANCE, allIndexesInDateCellRange, allIndexesInDateCellRanges, allKnownTimezoneStrings, allTimezoneInfos, allTimezoneStrings, anyHaveExpired, atleastOneNotExpired, baseDateToTargetDate, calculateAllConversions, calculateExpectedDateCellTimingDuration, calculateExpectedDateCellTimingDurationPair, calendarDate, calendarDateFactory, calendarDateForDateDurationSpan, changeDateCellScheduleDateRangeToTimezone, changeDateCellScheduleDateRangeToTimezoneFunction, clampDateFunction, clampDateRangeFunction, clampDateRangeToDateRange, clampDateToDateRange, copyDateCellScheduleDateFilterConfig, copyHoursAndMinutesFromDate, copyHoursAndMinutesFromDateToToday, copyHoursAndMinutesFromDateWithTimezoneNormal, copyHoursAndMinutesFromNow, copyHoursAndMinutesFromNowWithTimezoneNormal, copyHoursAndMinutesToDate, copyHoursAndMinutesToToday, dateCell, dateCellDayOfWeekFactory, dateCellDayTimingInfoFactory, dateCellDurationSpanHasEndedFilterFunction, dateCellDurationSpanHasNotEndedFilterFunction, dateCellDurationSpanHasNotStartedFilterFunction, dateCellDurationSpanHasStartedFilterFunction, dateCellEndIndex, dateCellIndexRange, dateCellIndexRangeToDateCellRange, dateCellIndexYearWeekCodeFactory, dateCellIndexYearWeekCodeGroupFactory, dateCellIndexsForDateCellScheduleDayCodes, dateCellRange, dateCellRangeBlocksCount, dateCellRangeBlocksCountInfo, dateCellRangeHasRange, dateCellRangeIncludedByRangeFunction, dateCellRangeOfTiming, dateCellRangeOfTimingFactory, dateCellRangeOverlapsRange, dateCellRangeOverlapsRangeFunction, dateCellRangeToDateCellIndexRange, dateCellRangeWithRange, dateCellRangeWithRangeFromIndex, dateCellRangesFullyCoverDateCellRangeFunction, dateCellScheduleDateCellTimingFilter, dateCellScheduleDateFilter, dateCellScheduleDateRange, dateCellScheduleDayCodeFactory, dateCellScheduleDayCodesAreSetsEquivalent, dateCellScheduleDayCodesFromEnabledDays, dateCellScheduleDayCodesSetFromDaysOfWeek, dateCellScheduleEncodedWeek, dateCellTiming, dateCellTimingCompletedTimeRange, dateCellTimingDateFactory, dateCellTimingDateRange, dateCellTimingEndDateFactory, dateCellTimingEndIndex, dateCellTimingEventRange, dateCellTimingExpansionFactory, dateCellTimingFinalStartsAtEvent, dateCellTimingFromDateCellTimingStartsAtEndRange, dateCellTimingLatestCompletedIndex, dateCellTimingRelativeIndexArrayFactory, dateCellTimingRelativeIndexFactory, dateCellTimingStart, dateCellTimingStartDateFactory, dateCellTimingStartPair, dateCellTimingStartsAtDateFactory, dateCellTimingStartsAtForStartOfDay, dateCellTimingTimezoneNormalInstance, dateDurationSpanEndDate, dateFromDateOrTimeNumber, dateFromLogicalDate, dateInterval, dateMonthDayStringFormat, dateOrDateRangeToDateRange, dateOrDayStringRangeToDateRange, dateOrDayStringRangeToISO8601DayStringRange, dateRange, dateRangeDaysCount, dateRangeOverlapsDateRange, dateRangeOverlapsDateRangeFunction, dateRangeRelativeState, dateRelativeStateForDateCellRangeComparedToIndex, dateShortDateAndTimeStringFormat, dateShortDateStringFormat, dateTimeInstance, dateTimeInstanceUtc, dateTimeMinuteDecisionFunction, dateTimeStringFormat, dateTimezoneUtcNormal, daysToMinutes, durationSpanDateRelativeState, durationSpanToDateRange, earliestDate, enabledDaysFromDateCellScheduleDayCodes, endItreateDaysInDateRangeEarly, expandDateCellCollection, expandDateCellRange, expandDateCellSchedule, expandDateCellScheduleDayCodes, expandDateCellScheduleDayCodesToDayCodesSet, expandDateCellScheduleDayCodesToDayOfWeekSet, expandDateCellScheduleFactory, expandDateCellScheduleRange, expandDateCellScheduleRangeToDateCellRanges, expandDateCellTiming, expandDaysForDateRange, expandDaysForDateRangeFunction, expandUniqueDateCellsFunction, filterDateCellsInDateCellRange, findMaxDate, findMinDate, fitDateRangeToDayPeriod, fitDateRangeToDayPeriodFunction, fitUTCDateRangeToDayPeriod, forEachDayInDateRange, formatDateDistance, formatDateRange, formatDateRangeDistance, formatDateRangeDistanceFunction, formatDateRangeFunction, formatStartedEndedDistanceString, formatToDateString, formatToDayRangeString, formatToDayTimeRangeString, formatToISO8601DateString, formatToISO8601DayString, formatToMonthDayString, formatToShortDateAndTimeString, formatToShortDateString, formatToTimeAndDurationString, formatToTimeRangeString, formatToTimeString, fractionalHoursInDurationSpan, fullDateCellScheduleRange, fullDateCellTiming, fullDateCellTimingTimezonePair, fullWeekDateCellScheduleDayCodes, getCurrentSystemOffsetInHours, getCurrentSystemOffsetInMinutes, getCurrentSystemOffsetInMs, getDateCellTimingFirstEventDateRange, getDateCellTimingHoursInEvent, getDaysOfWeekInDateRange, getExpiration, getGreatestDateCellIndexInDateCellRanges, getLeastAndGreatestDateCellIndexInDateCellRanges, getLeastDateCellIndexInDateCellRanges, getNextDateCellTimingIndex, getRelativeDateForDateCellTiming, getRelativeIndexForDateCellTiming, getTimeAM, getTimezoneAbbreviation, getTimezoneLongName, groupDateRangesByDateRelativeState, groupToDateCellRanges, groupUniqueDateCells, guessCurrentTimezone, hasExpired, hoursToMs, inverseDateTimezoneUtcNormalInstanceTransformType, isAfter, isDate, isDateCellRange, isDateCellSchedule, isDateCellScheduleDateRange, isDateCellScheduleEncodedWeek, isDateCellScheduleStartOfDayDateRange, isDateCellTiming, isDateCellTimingRelativeIndexFactory, isDateCellWithinDateCellRange, isDateCellWithinDateCellRangeFunction, isDateInDateRange, isDateInDateRangeFunction, isDateRange, isDateRangeInDateRange, isDateRangeInDateRangeFunction, isDateRangeStart, isDateWithinDateCellRangeFunction, isEmptyDateCellScheduleEncodedWeek, isFullDateCellScheduleDateRange, isFullDateCellTiming, isFullDateRange, isInfiniteDateRange, isKnownTimezone, isLogicalDateStringCode, isMaxFutureDate, isPartialDateRange, isSameDate, isSameDateCellSchedule, isSameDateCellScheduleDateRange, isSameDateCellScheduleEventRange, isSameDateCellTiming, isSameDateCellTimingEventStartsAtEndRange, isSameDateDay, isSameDateDayRange, isSameDateHoursAndMinutes, isSameDateRange, isSameDateTimezoneConversionConfig, isSameDurationSpan, isSameFullDateCellScheduleDateRange, isSameFullDateCellTiming, isStartOfDayInUTC, isValidDateCellIndex, isValidDateCellRange, isValidDateCellRangeSeries, isValidDateCellTiming, isValidDateCellTimingInfo, isValidDateCellTimingStartDate, isValidDateFromTimestringResult, isValidDateTimezoneConversionConfig, isValidFullDateCellTiming, isValidFullDateCellTimingInfo, iterateDaysInDateRange, iterateDaysInDateRangeFunction, latestDate, latestMinute, limitDateTime, limitDateTimeInstance, logicalDateStringCodeDateFactory, makeDateQueryForDateItemRangeFilter, makeDateQueryForDateStartsEndsFilter, makeDateQueryForOccuringFilter, makeDaysAndTimeFiltersFunction, makeMongoDBLikeDateQueryBuilder, maxFutureDate, mergeMongoDBLikeRangeFilters, minutesToMs, modifyDateCellToFitRange, modifyDateCellsToFitRange, modifyDateCellsToFitRangeFunction, msToMinutes, msToSeconds, nowInterval, parseISO8601DayStringToDate, parseJsDateString, parseReadableTimeString, rawDateCellScheduleDayCodes, readDaysOfWeek, readDaysOfWeekNames, readableTimeStringToDate, reduceDatesFunction, requireCurrentTimezone, roundDateTimeDown, roundDateTimeDownToSteps, roundDownToHour, roundDownToMinute, roundToMinuteSteps, safeFormatToISO8601DateString, safeToJsDate, searchTimezoneInfos, shiftDateCellTimingToSystemTimezone, shiftDateCellTimingToTimezone, shiftDateCellTimingToTimezoneFunction, shiftDateCellTimingToUTCTimezone, simplifyDateCellScheduleDayCodes, skipAfterExpiration, skipExpired, skipUntilExpiration, skipUntilTimeElapsedAfterLastEmission, sortByDateFunction, sortByISO8601DateStringFunction, sortByISO8601DateStrings, sortDateCellRangeAndSizeFunction, sortDateCellRanges, sortDateRangeStartAscendingCompareFunction, startOfDayInTimezoneDayStringFactory, startOfDayInTimezoneFromISO8601DayString, startOfWeekForYearWeekCode, systemBaseDateToNormalDate, systemBaseDateToNormalDateOffset, systemDateTimezoneUtcNormal, systemExperiencesDaylightSavings, systemNormalDateToBaseDate, systemNormalDateToBaseDateOffset, takeAfterTimeElapsedSinceLastEmission, takeNextUpcomingTime, targetDateToBaseDate, timeHasExpired, timezoneInfoForSystem, timezoneStringToSearchableString, timezoneStringToTimezoneInfo, toExpiration, toExpires, toISO8601DayString, toISODateString, toJsDate, toJsDayDate, toLocalReadableTimeString, toReadableTimeString, transformDateInTimezoneNormalFunction, transformDateRangeDatesFunction, transformDateRangeInTimezoneNormalFunction, transformDateRangeToTimezoneFunction, transformDateRangeWithStartOfDay, unixTimeNumberForNow, unixTimeNumberFromDate, unixTimeNumberFromDateOrTimeNumber, unixTimeNumberToDate, updateDateCellTimingToSystemTimezone, updateDateCellTimingToTimezone, updateDateCellTimingToTimezoneFunction, updateDateCellTimingToUTCTimezone, updateDateCellTimingWithDateCellTimingEvent, utcDayForDate, weekdayDateCellScheduleDayCodes, weekendDateCellScheduleDayCodes, yearWeekCode, yearWeekCodeDateFactory, yearWeekCodeDateTimezoneInstance, yearWeekCodeFactory, yearWeekCodeForCalendarMonth, yearWeekCodeForCalendarMonthFactory, yearWeekCodeForDateRange, yearWeekCodeForDateRangeFactory, yearWeekCodeForDateRangeInTimezone, yearWeekCodeFromDate, yearWeekCodeFromPair, yearWeekCodeGroupFactory, yearWeekCodeIndex, yearWeekCodePair, yearWeekCodePairFromDate };
10311
+ export { AnyIterResult, CalendarDate, CalendarDateType, DATE_CELL_SCHEDULE_ENCODED_WEEK_REGEX, DATE_TODAY_END_VALUE, DATE_TODAY_START_VALUE, DATE_WEEK_END_VALUE, DATE_WEEK_START_VALUE, DEFAULT_EXPAND_DAYS_FOR_DATE_RANGE_MAX_EXPANSION_SIZE, DEFAULT_FULL_DATE_SCHEDULE_RANGE_DURATION, DEFAULT_ITERATE_DAYS_IN_DATE_RANGE_MAX_ITERATIONS, DEFAULT_LAST_ITER_RESULT_MAX_ITERATIONS_ALLOWED, DateCell, DateCellRange, DateCellSchedule, DateCellScheduleDayCode, DateCellTiming, DateDurationSpan, DateRRule, DateRRuleInstance, DateRRuleParseUtility, DateRRuleUtility, DateRange, DateRangeParams, DateRangeType, DateSet, DateTimeMinuteInstance, DateTimeUtilityInstance, DateTimezoneUtcNormalInstance, IsKnownTimezone, IsValidDateCellRange, IsValidDateCellRangeSeries, IsValidDateCellTiming, IterateDaysInDateRangeFunctionBailError, LastIterResult, LimitDateTimeInstance, MAX_FUTURE_DATE, ModelRecurrenceInfo, ModelRecurrenceInfoUtility, NextIterResult, RRuleStringSplitter, SYSTEM_DATE_TIMEZONE_UTC_NORMAL_INSTANCE, UNKNOWN_YEAR_WEEK_CODE, UTC_DATE_TIMEZONE_UTC_NORMAL_INSTANCE, allIndexesInDateCellRange, allIndexesInDateCellRanges, allKnownTimezoneStrings, allTimezoneInfos, allTimezoneStrings, anyHaveExpired, atleastOneNotExpired, baseDateToTargetDate, calculateAllConversions, calculateExpectedDateCellTimingDuration, calculateExpectedDateCellTimingDurationPair, calculateTimezoneOffset, calendarDate, calendarDateFactory, calendarDateForDateDurationSpan, changeDateCellScheduleDateRangeToTimezone, changeDateCellScheduleDateRangeToTimezoneFunction, clampDateFunction, clampDateRangeFunction, clampDateRangeToDateRange, clampDateToDateRange, copyDateCellScheduleDateFilterConfig, copyHoursAndMinutesFromDate, copyHoursAndMinutesFromDateToToday, copyHoursAndMinutesFromDateWithTimezoneNormal, copyHoursAndMinutesFromNow, copyHoursAndMinutesFromNowWithTimezoneNormal, copyHoursAndMinutesFromUTCDate, copyHoursAndMinutesToDate, copyHoursAndMinutesToToday, dateCell, dateCellDayOfWeekFactory, dateCellDayTimingInfoFactory, dateCellDurationSpanHasEndedFilterFunction, dateCellDurationSpanHasNotEndedFilterFunction, dateCellDurationSpanHasNotStartedFilterFunction, dateCellDurationSpanHasStartedFilterFunction, dateCellEndIndex, dateCellIndexRange, dateCellIndexRangeToDateCellRange, dateCellIndexYearWeekCodeFactory, dateCellIndexYearWeekCodeGroupFactory, dateCellIndexsForDateCellScheduleDayCodes, dateCellRange, dateCellRangeBlocksCount, dateCellRangeBlocksCountInfo, dateCellRangeHasRange, dateCellRangeIncludedByRangeFunction, dateCellRangeOfTiming, dateCellRangeOfTimingFactory, dateCellRangeOverlapsRange, dateCellRangeOverlapsRangeFunction, dateCellRangeToDateCellIndexRange, dateCellRangeWithRange, dateCellRangeWithRangeFromIndex, dateCellRangesFullyCoverDateCellRangeFunction, dateCellScheduleDateCellTimingFilter, dateCellScheduleDateFilter, dateCellScheduleDateRange, dateCellScheduleDayCodeFactory, dateCellScheduleDayCodesAreSetsEquivalent, dateCellScheduleDayCodesFromEnabledDays, dateCellScheduleDayCodesSetFromDaysOfWeek, dateCellScheduleEncodedWeek, dateCellTiming, dateCellTimingCompletedTimeRange, dateCellTimingDateFactory, dateCellTimingDateRange, dateCellTimingEndDateFactory, dateCellTimingEndIndex, dateCellTimingEventRange, dateCellTimingExpansionFactory, dateCellTimingFinalStartsAtEvent, dateCellTimingFromDateCellTimingStartsAtEndRange, dateCellTimingLatestCompletedIndex, dateCellTimingRelativeIndexArrayFactory, dateCellTimingRelativeIndexFactory, dateCellTimingStart, dateCellTimingStartDateFactory, dateCellTimingStartPair, dateCellTimingStartsAtDateFactory, dateCellTimingStartsAtForStartOfDay, dateCellTimingTimezoneNormalInstance, dateDurationSpanEndDate, dateFromDateOrTimeNumber, dateFromLogicalDate, dateInterval, dateMonthDayStringFormat, dateOrDateRangeToDateRange, dateOrDayStringRangeToDateRange, dateOrDayStringRangeToISO8601DayStringRange, dateRange, dateRangeDaysCount, dateRangeOverlapsDateRange, dateRangeOverlapsDateRangeFunction, dateRangeRelativeState, dateRelativeStateForDateCellRangeComparedToIndex, dateShortDateAndTimeStringFormat, dateShortDateStringFormat, dateTimeInstance, dateTimeInstanceUtc, dateTimeMinuteDecisionFunction, dateTimeMinuteWholeDayDecisionFunction, dateTimeStringFormat, dateTimezoneUtcNormal, daysToMinutes, durationSpanDateRelativeState, durationSpanToDateRange, earliestDate, enabledDaysFromDateCellScheduleDayCodes, endItreateDaysInDateRangeEarly, expandDateCellCollection, expandDateCellRange, expandDateCellSchedule, expandDateCellScheduleDayCodes, expandDateCellScheduleDayCodesToDayCodesSet, expandDateCellScheduleDayCodesToDayOfWeekSet, expandDateCellScheduleFactory, expandDateCellScheduleRange, expandDateCellScheduleRangeToDateCellRanges, expandDateCellTiming, expandDaysForDateRange, expandDaysForDateRangeFunction, expandUniqueDateCellsFunction, filterDateCellsInDateCellRange, findMaxDate, findMinDate, fitDateRangeToDayPeriod, fitDateRangeToDayPeriodFunction, fitUTCDateRangeToDayPeriod, forEachDayInDateRange, formatDateDistance, formatDateRange, formatDateRangeDistance, formatDateRangeDistanceFunction, formatDateRangeFunction, formatStartedEndedDistanceString, formatToDateString, formatToDayRangeString, formatToDayTimeRangeString, formatToISO8601DateString, formatToISO8601DayString, formatToISO8601DayStringForSystem, formatToISO8601DayStringForUTC, formatToMonthDayString, formatToShortDateAndTimeString, formatToShortDateString, formatToTimeAndDurationString, formatToTimeRangeString, formatToTimeString, fractionalHoursInDurationSpan, fullDateCellScheduleRange, fullDateCellTiming, fullDateCellTimingTimezonePair, fullWeekDateCellScheduleDayCodes, getCurrentSystemOffsetInHours, getCurrentSystemOffsetInMinutes, getCurrentSystemOffsetInMs, getDateCellTimingFirstEventDateRange, getDateCellTimingHoursInEvent, getDaysOfWeekInDateRange, getExpiration, getGreatestDateCellIndexInDateCellRanges, getLeastAndGreatestDateCellIndexInDateCellRanges, getLeastDateCellIndexInDateCellRanges, getNextDateCellTimingIndex, getRelativeDateForDateCellTiming, getRelativeIndexForDateCellTiming, getTimeAM, getTimezoneAbbreviation, getTimezoneLongName, groupDateRangesByDateRelativeState, groupToDateCellRanges, groupUniqueDateCells, guessCurrentTimezone, hasExpired, hoursToMs, inverseDateTimezoneUtcNormalInstanceTransformType, isAfter, isDate, isDateCellRange, isDateCellSchedule, isDateCellScheduleDateRange, isDateCellScheduleEncodedWeek, isDateCellScheduleStartOfDayDateRange, isDateCellTiming, isDateCellTimingRelativeIndexFactory, isDateCellWithinDateCellRange, isDateCellWithinDateCellRangeFunction, isDateInDateRange, isDateInDateRangeFunction, isDateRange, isDateRangeInDateRange, isDateRangeInDateRangeFunction, isDateRangeStart, isDateWithinDateCellRangeFunction, isEmptyDateCellScheduleEncodedWeek, isFullDateCellScheduleDateRange, isFullDateCellTiming, isFullDateRange, isInfiniteDateRange, isKnownTimezone, isLogicalDateStringCode, isMaxFutureDate, isPartialDateRange, isSameDate, isSameDateCellSchedule, isSameDateCellScheduleDateRange, isSameDateCellScheduleEventRange, isSameDateCellTiming, isSameDateCellTimingEventStartsAtEndRange, isSameDateDay, isSameDateDayRange, isSameDateHoursAndMinutes, isSameDateRange, isSameDateTimezoneConversionConfig, isSameDurationSpan, isSameFullDateCellScheduleDateRange, isSameFullDateCellTiming, isStartOfDayForSystem, isStartOfDayInUTC, isValidDateCellIndex, isValidDateCellRange, isValidDateCellRangeSeries, isValidDateCellTiming, isValidDateCellTimingInfo, isValidDateCellTimingStartDate, isValidDateFromTimestringResult, isValidDateTimezoneConversionConfig, isValidFullDateCellTiming, isValidFullDateCellTimingInfo, iterateDaysInDateRange, iterateDaysInDateRangeFunction, latestDate, latestMinute, limitDateTime, limitDateTimeInstance, logicalDateStringCodeDateFactory, makeDateQueryForDateItemRangeFilter, makeDateQueryForDateStartsEndsFilter, makeDateQueryForOccuringFilter, makeDaysAndTimeFiltersFunction, makeMongoDBLikeDateQueryBuilder, maxFutureDate, mergeMongoDBLikeRangeFilters, minutesToMs, modifyDateCellToFitRange, modifyDateCellsToFitRange, modifyDateCellsToFitRangeFunction, msToMinutes, msToSeconds, nowInterval, parseISO8601DayStringToDate, parseJsDateString, parseReadableTimeString, rawDateCellScheduleDayCodes, readDaysOfWeek, readDaysOfWeekNames, readableTimeStringToDate, reduceDatesFunction, requireCurrentTimezone, roundDateTimeDown, roundDateTimeDownToSteps, roundDownToHour, roundDownToMinute, roundToMinuteSteps, safeFormatToISO8601DateString, safeToJsDate, searchTimezoneInfos, shiftDateCellTimingToSystemTimezone, shiftDateCellTimingToTimezone, shiftDateCellTimingToTimezoneFunction, shiftDateCellTimingToUTCTimezone, simplifyDateCellScheduleDayCodes, skipAfterExpiration, skipExpired, skipUntilExpiration, skipUntilTimeElapsedAfterLastEmission, sortByDateFunction, sortByISO8601DateStringFunction, sortByISO8601DateStrings, sortDateCellRangeAndSizeFunction, sortDateCellRanges, sortDateRangeStartAscendingCompareFunction, startOfDayInTimezoneDayStringFactory, startOfDayInTimezoneFromISO8601DayString, startOfWeekForYearWeekCode, systemBaseDateToNormalDate, systemBaseDateToNormalDateOffset, systemDateTimezoneUtcNormal, systemExperiencesDaylightSavings, systemNormalDateToBaseDate, systemNormalDateToBaseDateOffset, takeAfterTimeElapsedSinceLastEmission, takeNextUpcomingTime, targetDateToBaseDate, timeHasExpired, timezoneInfoForSystem, timezoneStringToSearchableString, timezoneStringToTimezoneInfo, toExpiration, toExpires, toISO8601DayString, toISO8601DayStringForSystem, toISO8601DayStringForUTC, toISODateString, toJsDate, toJsDayDate, toLocalReadableTimeString, toReadableTimeString, transformDateInTimezoneNormalFunction, transformDateRangeDatesFunction, transformDateRangeInTimezoneNormalFunction, transformDateRangeToTimezoneFunction, transformDateRangeWithStartOfDay, unixTimeNumberForNow, unixTimeNumberFromDate, unixTimeNumberFromDateOrTimeNumber, unixTimeNumberToDate, updateDateCellTimingToSystemTimezone, updateDateCellTimingToTimezone, updateDateCellTimingToTimezoneFunction, updateDateCellTimingToUTCTimezone, updateDateCellTimingWithDateCellTimingEvent, utcDayForDate, weekdayDateCellScheduleDayCodes, weekendDateCellScheduleDayCodes, yearWeekCode, yearWeekCodeDateFactory, yearWeekCodeDateTimezoneInstance, yearWeekCodeFactory, yearWeekCodeForCalendarMonth, yearWeekCodeForCalendarMonthFactory, yearWeekCodeForDateRange, yearWeekCodeForDateRangeFactory, yearWeekCodeForDateRangeInTimezone, yearWeekCodeFromDate, yearWeekCodeFromPair, yearWeekCodeGroupFactory, yearWeekCodeIndex, yearWeekCodePair, yearWeekCodePairFromDate };