@dereekb/date 10.1.2 → 10.1.4

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.cjs.js CHANGED
@@ -31,7 +31,7 @@ var global$g =
31
31
 
32
32
  var objectGetOwnPropertyDescriptor = {};
33
33
 
34
- var fails$l = function (exec) {
34
+ var fails$m = function (exec) {
35
35
  try {
36
36
  return !!exec();
37
37
  } catch (error) {
@@ -39,17 +39,17 @@ var fails$l = function (exec) {
39
39
  }
40
40
  };
41
41
 
42
- var fails$k = fails$l;
42
+ var fails$l = fails$m;
43
43
 
44
44
  // Detect IE8's incomplete defineProperty implementation
45
- var descriptors = !fails$k(function () {
45
+ var descriptors = !fails$l(function () {
46
46
  // eslint-disable-next-line es/no-object-defineproperty -- required for testing
47
47
  return Object.defineProperty({}, 1, { get: function () { return 7; } })[1] !== 7;
48
48
  });
49
49
 
50
- var fails$j = fails$l;
50
+ var fails$k = fails$m;
51
51
 
52
- var functionBindNative = !fails$j(function () {
52
+ var functionBindNative = !fails$k(function () {
53
53
  // eslint-disable-next-line es/no-function-prototype-bind -- safe
54
54
  var test = (function () { /* empty */ }).bind();
55
55
  // eslint-disable-next-line no-prototype-builtins -- safe
@@ -58,10 +58,10 @@ var functionBindNative = !fails$j(function () {
58
58
 
59
59
  var NATIVE_BIND$2 = functionBindNative;
60
60
 
61
- var call$c = Function.prototype.call;
61
+ var call$d = Function.prototype.call;
62
62
 
63
- var functionCall = NATIVE_BIND$2 ? call$c.bind(call$c) : function () {
64
- return call$c.apply(call$c, arguments);
63
+ var functionCall = NATIVE_BIND$2 ? call$d.bind(call$d) : function () {
64
+ return call$d.apply(call$d, arguments);
65
65
  };
66
66
 
67
67
  var objectPropertyIsEnumerable = {};
@@ -92,33 +92,33 @@ var createPropertyDescriptor$3 = function (bitmap, value) {
92
92
  var NATIVE_BIND$1 = functionBindNative;
93
93
 
94
94
  var FunctionPrototype$2 = Function.prototype;
95
- var call$b = FunctionPrototype$2.call;
96
- var uncurryThisWithBind = NATIVE_BIND$1 && FunctionPrototype$2.bind.bind(call$b, call$b);
95
+ var call$c = FunctionPrototype$2.call;
96
+ var uncurryThisWithBind = NATIVE_BIND$1 && FunctionPrototype$2.bind.bind(call$c, call$c);
97
97
 
98
98
  var functionUncurryThis = NATIVE_BIND$1 ? uncurryThisWithBind : function (fn) {
99
99
  return function () {
100
- return call$b.apply(fn, arguments);
100
+ return call$c.apply(fn, arguments);
101
101
  };
102
102
  };
103
103
 
104
- var uncurryThis$m = functionUncurryThis;
104
+ var uncurryThis$n = functionUncurryThis;
105
105
 
106
- var toString$c = uncurryThis$m({}.toString);
107
- var stringSlice$6 = uncurryThis$m(''.slice);
106
+ var toString$e = uncurryThis$n({}.toString);
107
+ var stringSlice$7 = uncurryThis$n(''.slice);
108
108
 
109
109
  var classofRaw$2 = function (it) {
110
- return stringSlice$6(toString$c(it), 8, -1);
110
+ return stringSlice$7(toString$e(it), 8, -1);
111
111
  };
112
112
 
113
- var uncurryThis$l = functionUncurryThis;
114
- var fails$i = fails$l;
113
+ var uncurryThis$m = functionUncurryThis;
114
+ var fails$j = fails$m;
115
115
  var classof$4 = classofRaw$2;
116
116
 
117
117
  var $Object$4 = Object;
118
- var split = uncurryThis$l(''.split);
118
+ var split = uncurryThis$m(''.split);
119
119
 
120
120
  // fallback for non-array-like ES3 and non-enumerable old V8 strings
121
- var indexedObject = fails$i(function () {
121
+ var indexedObject = fails$j(function () {
122
122
  // throws an error in rhino, see https://github.com/mozilla/rhino/issues/346
123
123
  // eslint-disable-next-line no-prototype-builtins -- safe
124
124
  return !$Object$4('z').propertyIsEnumerable(0);
@@ -138,17 +138,17 @@ var $TypeError$9 = TypeError;
138
138
 
139
139
  // `RequireObjectCoercible` abstract operation
140
140
  // https://tc39.es/ecma262/#sec-requireobjectcoercible
141
- var requireObjectCoercible$9 = function (it) {
141
+ var requireObjectCoercible$b = function (it) {
142
142
  if (isNullOrUndefined$3(it)) throw new $TypeError$9("Can't call method on " + it);
143
143
  return it;
144
144
  };
145
145
 
146
146
  // toObject with fallback for non-array-like ES3 strings
147
147
  var IndexedObject$1 = indexedObject;
148
- var requireObjectCoercible$8 = requireObjectCoercible$9;
148
+ var requireObjectCoercible$a = requireObjectCoercible$b;
149
149
 
150
150
  var toIndexedObject$5 = function (it) {
151
- return IndexedObject$1(requireObjectCoercible$8(it));
151
+ return IndexedObject$1(requireObjectCoercible$a(it));
152
152
  };
153
153
 
154
154
  // https://tc39.es/ecma262/#sec-IsHTMLDDA-internal-slot
@@ -180,14 +180,14 @@ var getBuiltIn$3 = function (namespace, method) {
180
180
  return arguments.length < 2 ? aFunction(global$f[namespace]) : global$f[namespace] && global$f[namespace][method];
181
181
  };
182
182
 
183
- var uncurryThis$k = functionUncurryThis;
183
+ var uncurryThis$l = functionUncurryThis;
184
184
 
185
- var objectIsPrototypeOf = uncurryThis$k({}.isPrototypeOf);
185
+ var objectIsPrototypeOf = uncurryThis$l({}.isPrototypeOf);
186
186
 
187
187
  var engineUserAgent = typeof navigator != 'undefined' && String(navigator.userAgent) || '';
188
188
 
189
189
  var global$e = global$g;
190
- var userAgent$2 = engineUserAgent;
190
+ var userAgent$3 = engineUserAgent;
191
191
 
192
192
  var process = global$e.process;
193
193
  var Deno = global$e.Deno;
@@ -204,10 +204,10 @@ if (v8) {
204
204
 
205
205
  // BrowserFS NodeJS `process` polyfill incorrectly set `.v8` to `0.0`
206
206
  // so check `userAgent` even if `.v8` exists, but 0
207
- if (!version && userAgent$2) {
208
- match = userAgent$2.match(/Edge\/(\d+)/);
207
+ if (!version && userAgent$3) {
208
+ match = userAgent$3.match(/Edge\/(\d+)/);
209
209
  if (!match || match[1] >= 74) {
210
- match = userAgent$2.match(/Chrome\/(\d+)/);
210
+ match = userAgent$3.match(/Chrome\/(\d+)/);
211
211
  if (match) version = +match[1];
212
212
  }
213
213
  }
@@ -216,13 +216,13 @@ var engineV8Version = version;
216
216
 
217
217
  /* eslint-disable es/no-symbol -- required for testing */
218
218
  var V8_VERSION = engineV8Version;
219
- var fails$h = fails$l;
219
+ var fails$i = fails$m;
220
220
  var global$d = global$g;
221
221
 
222
222
  var $String$5 = global$d.String;
223
223
 
224
224
  // eslint-disable-next-line es/no-object-getownpropertysymbols -- required for testing
225
- var symbolConstructorDetection = !!Object.getOwnPropertySymbols && !fails$h(function () {
225
+ var symbolConstructorDetection = !!Object.getOwnPropertySymbols && !fails$i(function () {
226
226
  var symbol = Symbol('symbol detection');
227
227
  // Chrome 38 Symbol has incorrect toString conversion
228
228
  // `get-own-property-symbols` polyfill symbols converted to object are not Symbol instances
@@ -242,7 +242,7 @@ var useSymbolAsUid = NATIVE_SYMBOL$1
242
242
 
243
243
  var getBuiltIn$2 = getBuiltIn$3;
244
244
  var isCallable$d = isCallable$g;
245
- var isPrototypeOf = objectIsPrototypeOf;
245
+ var isPrototypeOf$1 = objectIsPrototypeOf;
246
246
  var USE_SYMBOL_AS_UID$1 = useSymbolAsUid;
247
247
 
248
248
  var $Object$3 = Object;
@@ -251,7 +251,7 @@ var isSymbol$2 = USE_SYMBOL_AS_UID$1 ? function (it) {
251
251
  return typeof it == 'symbol';
252
252
  } : function (it) {
253
253
  var $Symbol = getBuiltIn$2('Symbol');
254
- return isCallable$d($Symbol) && isPrototypeOf($Symbol.prototype, $Object$3(it));
254
+ return isCallable$d($Symbol) && isPrototypeOf$1($Symbol.prototype, $Object$3(it));
255
255
  };
256
256
 
257
257
  var $String$4 = String;
@@ -285,7 +285,7 @@ var getMethod$3 = function (V, P) {
285
285
  return isNullOrUndefined$2(func) ? undefined : aCallable$2(func);
286
286
  };
287
287
 
288
- var call$a = functionCall;
288
+ var call$b = functionCall;
289
289
  var isCallable$b = isCallable$g;
290
290
  var isObject$7 = isObject$8;
291
291
 
@@ -295,9 +295,9 @@ var $TypeError$7 = TypeError;
295
295
  // https://tc39.es/ecma262/#sec-ordinarytoprimitive
296
296
  var ordinaryToPrimitive$1 = function (input, pref) {
297
297
  var fn, val;
298
- if (pref === 'string' && isCallable$b(fn = input.toString) && !isObject$7(val = call$a(fn, input))) return val;
299
- if (isCallable$b(fn = input.valueOf) && !isObject$7(val = call$a(fn, input))) return val;
300
- if (pref !== 'string' && isCallable$b(fn = input.toString) && !isObject$7(val = call$a(fn, input))) return val;
298
+ if (pref === 'string' && isCallable$b(fn = input.toString) && !isObject$7(val = call$b(fn, input))) return val;
299
+ if (isCallable$b(fn = input.valueOf) && !isObject$7(val = call$b(fn, input))) return val;
300
+ if (pref !== 'string' && isCallable$b(fn = input.toString) && !isObject$7(val = call$b(fn, input))) return val;
301
301
  throw new $TypeError$7("Can't convert object to primitive value");
302
302
  };
303
303
 
@@ -336,20 +336,20 @@ var store$2 = sharedStore;
336
336
  source: 'https://github.com/zloirock/core-js'
337
337
  });
338
338
 
339
- var requireObjectCoercible$7 = requireObjectCoercible$9;
339
+ var requireObjectCoercible$9 = requireObjectCoercible$b;
340
340
 
341
341
  var $Object$2 = Object;
342
342
 
343
343
  // `ToObject` abstract operation
344
344
  // https://tc39.es/ecma262/#sec-toobject
345
345
  var toObject$5 = function (argument) {
346
- return $Object$2(requireObjectCoercible$7(argument));
346
+ return $Object$2(requireObjectCoercible$9(argument));
347
347
  };
348
348
 
349
- var uncurryThis$j = functionUncurryThis;
349
+ var uncurryThis$k = functionUncurryThis;
350
350
  var toObject$4 = toObject$5;
351
351
 
352
- var hasOwnProperty = uncurryThis$j({}.hasOwnProperty);
352
+ var hasOwnProperty = uncurryThis$k({}.hasOwnProperty);
353
353
 
354
354
  // `HasOwnProperty` abstract operation
355
355
  // https://tc39.es/ecma262/#sec-hasownproperty
@@ -358,19 +358,19 @@ var hasOwnProperty_1 = Object.hasOwn || function hasOwn(it, key) {
358
358
  return hasOwnProperty(toObject$4(it), key);
359
359
  };
360
360
 
361
- var uncurryThis$i = functionUncurryThis;
361
+ var uncurryThis$j = functionUncurryThis;
362
362
 
363
363
  var id = 0;
364
364
  var postfix = Math.random();
365
- var toString$b = uncurryThis$i(1.0.toString);
365
+ var toString$d = uncurryThis$j(1.0.toString);
366
366
 
367
367
  var uid$2 = function (key) {
368
- return 'Symbol(' + (key === undefined ? '' : key) + ')_' + toString$b(++id + postfix, 36);
368
+ return 'Symbol(' + (key === undefined ? '' : key) + ')_' + toString$d(++id + postfix, 36);
369
369
  };
370
370
 
371
371
  var global$a = global$g;
372
372
  var shared$3 = shared$4.exports;
373
- var hasOwn$8 = hasOwnProperty_1;
373
+ var hasOwn$9 = hasOwnProperty_1;
374
374
  var uid$1 = uid$2;
375
375
  var NATIVE_SYMBOL = symbolConstructorDetection;
376
376
  var USE_SYMBOL_AS_UID = useSymbolAsUid;
@@ -380,14 +380,14 @@ var WellKnownSymbolsStore = shared$3('wks');
380
380
  var createWellKnownSymbol = USE_SYMBOL_AS_UID ? Symbol$2['for'] || Symbol$2 : Symbol$2 && Symbol$2.withoutSetter || uid$1;
381
381
 
382
382
  var wellKnownSymbol$c = function (name) {
383
- if (!hasOwn$8(WellKnownSymbolsStore, name)) {
384
- WellKnownSymbolsStore[name] = NATIVE_SYMBOL && hasOwn$8(Symbol$2, name)
383
+ if (!hasOwn$9(WellKnownSymbolsStore, name)) {
384
+ WellKnownSymbolsStore[name] = NATIVE_SYMBOL && hasOwn$9(Symbol$2, name)
385
385
  ? Symbol$2[name]
386
386
  : createWellKnownSymbol('Symbol.' + name);
387
387
  } return WellKnownSymbolsStore[name];
388
388
  };
389
389
 
390
- var call$9 = functionCall;
390
+ var call$a = functionCall;
391
391
  var isObject$6 = isObject$8;
392
392
  var isSymbol$1 = isSymbol$2;
393
393
  var getMethod$2 = getMethod$3;
@@ -405,7 +405,7 @@ var toPrimitive$1 = function (input, pref) {
405
405
  var result;
406
406
  if (exoticToPrim) {
407
407
  if (pref === undefined) pref = 'default';
408
- result = call$9(exoticToPrim, input, pref);
408
+ result = call$a(exoticToPrim, input, pref);
409
409
  if (!isObject$6(result) || isSymbol$1(result)) return result;
410
410
  throw new $TypeError$6("Can't convert object to primitive value");
411
411
  }
@@ -435,11 +435,11 @@ var documentCreateElement$2 = function (it) {
435
435
  };
436
436
 
437
437
  var DESCRIPTORS$9 = descriptors;
438
- var fails$g = fails$l;
438
+ var fails$h = fails$m;
439
439
  var createElement = documentCreateElement$2;
440
440
 
441
441
  // Thanks to IE8 for its funny defineProperty
442
- var ie8DomDefine = !DESCRIPTORS$9 && !fails$g(function () {
442
+ var ie8DomDefine = !DESCRIPTORS$9 && !fails$h(function () {
443
443
  // eslint-disable-next-line es/no-object-defineproperty -- required for testing
444
444
  return Object.defineProperty(createElement('div'), 'a', {
445
445
  get: function () { return 7; }
@@ -447,12 +447,12 @@ var ie8DomDefine = !DESCRIPTORS$9 && !fails$g(function () {
447
447
  });
448
448
 
449
449
  var DESCRIPTORS$8 = descriptors;
450
- var call$8 = functionCall;
450
+ var call$9 = functionCall;
451
451
  var propertyIsEnumerableModule$1 = objectPropertyIsEnumerable;
452
452
  var createPropertyDescriptor$2 = createPropertyDescriptor$3;
453
453
  var toIndexedObject$4 = toIndexedObject$5;
454
454
  var toPropertyKey$1 = toPropertyKey$2;
455
- var hasOwn$7 = hasOwnProperty_1;
455
+ var hasOwn$8 = hasOwnProperty_1;
456
456
  var IE8_DOM_DEFINE$1 = ie8DomDefine;
457
457
 
458
458
  // eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe
@@ -466,17 +466,17 @@ objectGetOwnPropertyDescriptor.f = DESCRIPTORS$8 ? $getOwnPropertyDescriptor$1 :
466
466
  if (IE8_DOM_DEFINE$1) try {
467
467
  return $getOwnPropertyDescriptor$1(O, P);
468
468
  } catch (error) { /* empty */ }
469
- if (hasOwn$7(O, P)) return createPropertyDescriptor$2(!call$8(propertyIsEnumerableModule$1.f, O, P), O[P]);
469
+ if (hasOwn$8(O, P)) return createPropertyDescriptor$2(!call$9(propertyIsEnumerableModule$1.f, O, P), O[P]);
470
470
  };
471
471
 
472
472
  var objectDefineProperty = {};
473
473
 
474
474
  var DESCRIPTORS$7 = descriptors;
475
- var fails$f = fails$l;
475
+ var fails$g = fails$m;
476
476
 
477
477
  // V8 ~ Chrome 36-
478
478
  // https://bugs.chromium.org/p/v8/issues/detail?id=3334
479
- var v8PrototypeDefineBug = DESCRIPTORS$7 && fails$f(function () {
479
+ var v8PrototypeDefineBug = DESCRIPTORS$7 && fails$g(function () {
480
480
  // eslint-disable-next-line es/no-object-defineproperty -- required for testing
481
481
  return Object.defineProperty(function () { /* empty */ }, 'prototype', {
482
482
  value: 42,
@@ -490,7 +490,7 @@ var $String$3 = String;
490
490
  var $TypeError$5 = TypeError;
491
491
 
492
492
  // `Assert: Type(argument) is Object`
493
- var anObject$9 = function (argument) {
493
+ var anObject$a = function (argument) {
494
494
  if (isObject$4(argument)) return argument;
495
495
  throw new $TypeError$5($String$3(argument) + ' is not an object');
496
496
  };
@@ -498,7 +498,7 @@ var anObject$9 = function (argument) {
498
498
  var DESCRIPTORS$6 = descriptors;
499
499
  var IE8_DOM_DEFINE = ie8DomDefine;
500
500
  var V8_PROTOTYPE_DEFINE_BUG$1 = v8PrototypeDefineBug;
501
- var anObject$8 = anObject$9;
501
+ var anObject$9 = anObject$a;
502
502
  var toPropertyKey = toPropertyKey$2;
503
503
 
504
504
  var $TypeError$4 = TypeError;
@@ -513,9 +513,9 @@ var WRITABLE = 'writable';
513
513
  // `Object.defineProperty` method
514
514
  // https://tc39.es/ecma262/#sec-object.defineproperty
515
515
  objectDefineProperty.f = DESCRIPTORS$6 ? V8_PROTOTYPE_DEFINE_BUG$1 ? function defineProperty(O, P, Attributes) {
516
- anObject$8(O);
516
+ anObject$9(O);
517
517
  P = toPropertyKey(P);
518
- anObject$8(Attributes);
518
+ anObject$9(Attributes);
519
519
  if (typeof O === 'function' && P === 'prototype' && 'value' in Attributes && WRITABLE in Attributes && !Attributes[WRITABLE]) {
520
520
  var current = $getOwnPropertyDescriptor(O, P);
521
521
  if (current && current[WRITABLE]) {
@@ -528,9 +528,9 @@ objectDefineProperty.f = DESCRIPTORS$6 ? V8_PROTOTYPE_DEFINE_BUG$1 ? function de
528
528
  }
529
529
  } return $defineProperty(O, P, Attributes);
530
530
  } : $defineProperty : function defineProperty(O, P, Attributes) {
531
- anObject$8(O);
531
+ anObject$9(O);
532
532
  P = toPropertyKey(P);
533
- anObject$8(Attributes);
533
+ anObject$9(Attributes);
534
534
  if (IE8_DOM_DEFINE) try {
535
535
  return $defineProperty(O, P, Attributes);
536
536
  } catch (error) { /* empty */ }
@@ -553,13 +553,13 @@ var createNonEnumerableProperty$5 = DESCRIPTORS$5 ? function (object, key, value
553
553
  var makeBuiltIn$2 = {exports: {}};
554
554
 
555
555
  var DESCRIPTORS$4 = descriptors;
556
- var hasOwn$6 = hasOwnProperty_1;
556
+ var hasOwn$7 = hasOwnProperty_1;
557
557
 
558
558
  var FunctionPrototype$1 = Function.prototype;
559
559
  // eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe
560
560
  var getDescriptor = DESCRIPTORS$4 && Object.getOwnPropertyDescriptor;
561
561
 
562
- var EXISTS = hasOwn$6(FunctionPrototype$1, 'name');
562
+ var EXISTS = hasOwn$7(FunctionPrototype$1, 'name');
563
563
  // additional protection from minified / mangled / dropped function names
564
564
  var PROPER = EXISTS && (function something() { /* empty */ }).name === 'something';
565
565
  var CONFIGURABLE = EXISTS && (!DESCRIPTORS$4 || (DESCRIPTORS$4 && getDescriptor(FunctionPrototype$1, 'name').configurable));
@@ -570,11 +570,11 @@ var functionName = {
570
570
  CONFIGURABLE: CONFIGURABLE
571
571
  };
572
572
 
573
- var uncurryThis$h = functionUncurryThis;
573
+ var uncurryThis$i = functionUncurryThis;
574
574
  var isCallable$a = isCallable$g;
575
575
  var store$1 = sharedStore;
576
576
 
577
- var functionToString = uncurryThis$h(Function.toString);
577
+ var functionToString = uncurryThis$i(Function.toString);
578
578
 
579
579
  // this helper broken in `core-js@3.4.1-3.4.4`, so we can't use `shared` helper
580
580
  if (!isCallable$a(store$1.inspectSource)) {
@@ -607,7 +607,7 @@ var NATIVE_WEAK_MAP = weakMapBasicDetection;
607
607
  var global$7 = global$g;
608
608
  var isObject$3 = isObject$8;
609
609
  var createNonEnumerableProperty$4 = createNonEnumerableProperty$5;
610
- var hasOwn$5 = hasOwnProperty_1;
610
+ var hasOwn$6 = hasOwnProperty_1;
611
611
  var shared$1 = sharedStore;
612
612
  var sharedKey$2 = sharedKey$3;
613
613
  var hiddenKeys$3 = hiddenKeys$4;
@@ -653,16 +653,16 @@ if (NATIVE_WEAK_MAP || shared$1.state) {
653
653
  var STATE = sharedKey$2('state');
654
654
  hiddenKeys$3[STATE] = true;
655
655
  set = function (it, metadata) {
656
- if (hasOwn$5(it, STATE)) throw new TypeError$1(OBJECT_ALREADY_INITIALIZED);
656
+ if (hasOwn$6(it, STATE)) throw new TypeError$1(OBJECT_ALREADY_INITIALIZED);
657
657
  metadata.facade = it;
658
658
  createNonEnumerableProperty$4(it, STATE, metadata);
659
659
  return metadata;
660
660
  };
661
661
  get = function (it) {
662
- return hasOwn$5(it, STATE) ? it[STATE] : {};
662
+ return hasOwn$6(it, STATE) ? it[STATE] : {};
663
663
  };
664
664
  has = function (it) {
665
- return hasOwn$5(it, STATE);
665
+ return hasOwn$6(it, STATE);
666
666
  };
667
667
  }
668
668
 
@@ -674,10 +674,10 @@ var internalState = {
674
674
  getterFor: getterFor
675
675
  };
676
676
 
677
- var uncurryThis$g = functionUncurryThis;
678
- var fails$e = fails$l;
677
+ var uncurryThis$h = functionUncurryThis;
678
+ var fails$f = fails$m;
679
679
  var isCallable$8 = isCallable$g;
680
- var hasOwn$4 = hasOwnProperty_1;
680
+ var hasOwn$5 = hasOwnProperty_1;
681
681
  var DESCRIPTORS$3 = descriptors;
682
682
  var CONFIGURABLE_FUNCTION_NAME$1 = functionName.CONFIGURABLE;
683
683
  var inspectSource = inspectSource$1;
@@ -688,37 +688,37 @@ var getInternalState$2 = InternalStateModule$1.get;
688
688
  var $String$2 = String;
689
689
  // eslint-disable-next-line es/no-object-defineproperty -- safe
690
690
  var defineProperty$4 = Object.defineProperty;
691
- var stringSlice$5 = uncurryThis$g(''.slice);
692
- var replace$3 = uncurryThis$g(''.replace);
693
- var join = uncurryThis$g([].join);
691
+ var stringSlice$6 = uncurryThis$h(''.slice);
692
+ var replace$3 = uncurryThis$h(''.replace);
693
+ var join = uncurryThis$h([].join);
694
694
 
695
- var CONFIGURABLE_LENGTH = DESCRIPTORS$3 && !fails$e(function () {
695
+ var CONFIGURABLE_LENGTH = DESCRIPTORS$3 && !fails$f(function () {
696
696
  return defineProperty$4(function () { /* empty */ }, 'length', { value: 8 }).length !== 8;
697
697
  });
698
698
 
699
699
  var TEMPLATE = String(String).split('String');
700
700
 
701
701
  var makeBuiltIn$1 = makeBuiltIn$2.exports = function (value, name, options) {
702
- if (stringSlice$5($String$2(name), 0, 7) === 'Symbol(') {
702
+ if (stringSlice$6($String$2(name), 0, 7) === 'Symbol(') {
703
703
  name = '[' + replace$3($String$2(name), /^Symbol\(([^)]*)\).*$/, '$1') + ']';
704
704
  }
705
705
  if (options && options.getter) name = 'get ' + name;
706
706
  if (options && options.setter) name = 'set ' + name;
707
- if (!hasOwn$4(value, 'name') || (CONFIGURABLE_FUNCTION_NAME$1 && value.name !== name)) {
707
+ if (!hasOwn$5(value, 'name') || (CONFIGURABLE_FUNCTION_NAME$1 && value.name !== name)) {
708
708
  if (DESCRIPTORS$3) defineProperty$4(value, 'name', { value: name, configurable: true });
709
709
  else value.name = name;
710
710
  }
711
- if (CONFIGURABLE_LENGTH && options && hasOwn$4(options, 'arity') && value.length !== options.arity) {
711
+ if (CONFIGURABLE_LENGTH && options && hasOwn$5(options, 'arity') && value.length !== options.arity) {
712
712
  defineProperty$4(value, 'length', { value: options.arity });
713
713
  }
714
714
  try {
715
- if (options && hasOwn$4(options, 'constructor') && options.constructor) {
715
+ if (options && hasOwn$5(options, 'constructor') && options.constructor) {
716
716
  if (DESCRIPTORS$3) defineProperty$4(value, 'prototype', { writable: false });
717
717
  // in V8 ~ Chrome 53, prototypes of some methods, like `Array.prototype.values`, are non-writable
718
718
  } else if (value.prototype) value.prototype = undefined;
719
719
  } catch (error) { /* empty */ }
720
720
  var state = enforceInternalState(value);
721
- if (!hasOwn$4(state, 'source')) {
721
+ if (!hasOwn$5(state, 'source')) {
722
722
  state.source = join(TEMPLATE, typeof name == 'string' ? name : '');
723
723
  } return value;
724
724
  };
@@ -734,7 +734,7 @@ var definePropertyModule$2 = objectDefineProperty;
734
734
  var makeBuiltIn = makeBuiltIn$2.exports;
735
735
  var defineGlobalProperty$1 = defineGlobalProperty$3;
736
736
 
737
- var defineBuiltIn$4 = function (O, key, value, options) {
737
+ var defineBuiltIn$5 = function (O, key, value, options) {
738
738
  if (!options) options = {};
739
739
  var simple = options.enumerable;
740
740
  var name = options.name !== undefined ? options.name : key;
@@ -759,7 +759,7 @@ var defineBuiltIn$4 = function (O, key, value, options) {
759
759
 
760
760
  var objectGetOwnPropertyNames = {};
761
761
 
762
- var ceil = Math.ceil;
762
+ var ceil$1 = Math.ceil;
763
763
  var floor$2 = Math.floor;
764
764
 
765
765
  // `Math.trunc` method
@@ -767,20 +767,20 @@ var floor$2 = Math.floor;
767
767
  // eslint-disable-next-line es/no-math-trunc -- safe
768
768
  var mathTrunc = Math.trunc || function trunc(x) {
769
769
  var n = +x;
770
- return (n > 0 ? floor$2 : ceil)(n);
770
+ return (n > 0 ? floor$2 : ceil$1)(n);
771
771
  };
772
772
 
773
773
  var trunc = mathTrunc;
774
774
 
775
775
  // `ToIntegerOrInfinity` abstract operation
776
776
  // https://tc39.es/ecma262/#sec-tointegerorinfinity
777
- var toIntegerOrInfinity$4 = function (argument) {
777
+ var toIntegerOrInfinity$5 = function (argument) {
778
778
  var number = +argument;
779
779
  // eslint-disable-next-line no-self-compare -- NaN check
780
780
  return number !== number || number === 0 ? 0 : trunc(number);
781
781
  };
782
782
 
783
- var toIntegerOrInfinity$3 = toIntegerOrInfinity$4;
783
+ var toIntegerOrInfinity$4 = toIntegerOrInfinity$5;
784
784
 
785
785
  var max$1 = Math.max;
786
786
  var min$4 = Math.min;
@@ -789,27 +789,27 @@ var min$4 = Math.min;
789
789
  // Let integer be ? ToInteger(index).
790
790
  // If integer < 0, let result be max((length + integer), 0); else let result be min(integer, length).
791
791
  var toAbsoluteIndex$1 = function (index, length) {
792
- var integer = toIntegerOrInfinity$3(index);
792
+ var integer = toIntegerOrInfinity$4(index);
793
793
  return integer < 0 ? max$1(integer + length, 0) : min$4(integer, length);
794
794
  };
795
795
 
796
- var toIntegerOrInfinity$2 = toIntegerOrInfinity$4;
796
+ var toIntegerOrInfinity$3 = toIntegerOrInfinity$5;
797
797
 
798
798
  var min$3 = Math.min;
799
799
 
800
800
  // `ToLength` abstract operation
801
801
  // https://tc39.es/ecma262/#sec-tolength
802
- var toLength$4 = function (argument) {
803
- var len = toIntegerOrInfinity$2(argument);
802
+ var toLength$5 = function (argument) {
803
+ var len = toIntegerOrInfinity$3(argument);
804
804
  return len > 0 ? min$3(len, 0x1FFFFFFFFFFFFF) : 0; // 2 ** 53 - 1 == 9007199254740991
805
805
  };
806
806
 
807
- var toLength$3 = toLength$4;
807
+ var toLength$4 = toLength$5;
808
808
 
809
809
  // `LengthOfArrayLike` abstract operation
810
810
  // https://tc39.es/ecma262/#sec-lengthofarraylike
811
811
  var lengthOfArrayLike$2 = function (obj) {
812
- return toLength$3(obj.length);
812
+ return toLength$4(obj.length);
813
813
  };
814
814
 
815
815
  var toIndexedObject$3 = toIndexedObject$5;
@@ -817,7 +817,7 @@ var toAbsoluteIndex = toAbsoluteIndex$1;
817
817
  var lengthOfArrayLike$1 = lengthOfArrayLike$2;
818
818
 
819
819
  // `Array.prototype.{ indexOf, includes }` methods implementation
820
- var createMethod$2 = function (IS_INCLUDES) {
820
+ var createMethod$3 = function (IS_INCLUDES) {
821
821
  return function ($this, el, fromIndex) {
822
822
  var O = toIndexedObject$3($this);
823
823
  var length = lengthOfArrayLike$1(O);
@@ -839,28 +839,28 @@ var createMethod$2 = function (IS_INCLUDES) {
839
839
  var arrayIncludes = {
840
840
  // `Array.prototype.includes` method
841
841
  // https://tc39.es/ecma262/#sec-array.prototype.includes
842
- includes: createMethod$2(true),
842
+ includes: createMethod$3(true),
843
843
  // `Array.prototype.indexOf` method
844
844
  // https://tc39.es/ecma262/#sec-array.prototype.indexof
845
- indexOf: createMethod$2(false)
845
+ indexOf: createMethod$3(false)
846
846
  };
847
847
 
848
- var uncurryThis$f = functionUncurryThis;
849
- var hasOwn$3 = hasOwnProperty_1;
848
+ var uncurryThis$g = functionUncurryThis;
849
+ var hasOwn$4 = hasOwnProperty_1;
850
850
  var toIndexedObject$2 = toIndexedObject$5;
851
851
  var indexOf$1 = arrayIncludes.indexOf;
852
852
  var hiddenKeys$2 = hiddenKeys$4;
853
853
 
854
- var push$2 = uncurryThis$f([].push);
854
+ var push$2 = uncurryThis$g([].push);
855
855
 
856
856
  var objectKeysInternal = function (object, names) {
857
857
  var O = toIndexedObject$2(object);
858
858
  var i = 0;
859
859
  var result = [];
860
860
  var key;
861
- for (key in O) !hasOwn$3(hiddenKeys$2, key) && hasOwn$3(O, key) && push$2(result, key);
861
+ for (key in O) !hasOwn$4(hiddenKeys$2, key) && hasOwn$4(O, key) && push$2(result, key);
862
862
  // Don't enum bug & hidden keys
863
- while (names.length > i) if (hasOwn$3(O, key = names[i++])) {
863
+ while (names.length > i) if (hasOwn$4(O, key = names[i++])) {
864
864
  ~indexOf$1(result, key) || push$2(result, key);
865
865
  }
866
866
  return result;
@@ -895,21 +895,21 @@ var objectGetOwnPropertySymbols = {};
895
895
  objectGetOwnPropertySymbols.f = Object.getOwnPropertySymbols;
896
896
 
897
897
  var getBuiltIn$1 = getBuiltIn$3;
898
- var uncurryThis$e = functionUncurryThis;
898
+ var uncurryThis$f = functionUncurryThis;
899
899
  var getOwnPropertyNamesModule = objectGetOwnPropertyNames;
900
900
  var getOwnPropertySymbolsModule$1 = objectGetOwnPropertySymbols;
901
- var anObject$7 = anObject$9;
901
+ var anObject$8 = anObject$a;
902
902
 
903
- var concat$2 = uncurryThis$e([].concat);
903
+ var concat$2 = uncurryThis$f([].concat);
904
904
 
905
905
  // all object keys, includes non-enumerable and symbols
906
906
  var ownKeys$1 = getBuiltIn$1('Reflect', 'ownKeys') || function ownKeys(it) {
907
- var keys = getOwnPropertyNamesModule.f(anObject$7(it));
907
+ var keys = getOwnPropertyNamesModule.f(anObject$8(it));
908
908
  var getOwnPropertySymbols = getOwnPropertySymbolsModule$1.f;
909
909
  return getOwnPropertySymbols ? concat$2(keys, getOwnPropertySymbols(it)) : keys;
910
910
  };
911
911
 
912
- var hasOwn$2 = hasOwnProperty_1;
912
+ var hasOwn$3 = hasOwnProperty_1;
913
913
  var ownKeys = ownKeys$1;
914
914
  var getOwnPropertyDescriptorModule = objectGetOwnPropertyDescriptor;
915
915
  var definePropertyModule$1 = objectDefineProperty;
@@ -920,13 +920,13 @@ var copyConstructorProperties$1 = function (target, source, exceptions) {
920
920
  var getOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f;
921
921
  for (var i = 0; i < keys.length; i++) {
922
922
  var key = keys[i];
923
- if (!hasOwn$2(target, key) && !(exceptions && hasOwn$2(exceptions, key))) {
923
+ if (!hasOwn$3(target, key) && !(exceptions && hasOwn$3(exceptions, key))) {
924
924
  defineProperty(target, key, getOwnPropertyDescriptor(source, key));
925
925
  }
926
926
  }
927
927
  };
928
928
 
929
- var fails$d = fails$l;
929
+ var fails$e = fails$m;
930
930
  var isCallable$6 = isCallable$g;
931
931
 
932
932
  var replacement = /#|\.prototype\./;
@@ -935,7 +935,7 @@ var isForced$1 = function (feature, detection) {
935
935
  var value = data[normalize(feature)];
936
936
  return value === POLYFILL ? true
937
937
  : value === NATIVE ? false
938
- : isCallable$6(detection) ? fails$d(detection)
938
+ : isCallable$6(detection) ? fails$e(detection)
939
939
  : !!detection;
940
940
  };
941
941
 
@@ -952,7 +952,7 @@ var isForced_1 = isForced$1;
952
952
  var global$6 = global$g;
953
953
  var getOwnPropertyDescriptor$2 = objectGetOwnPropertyDescriptor.f;
954
954
  var createNonEnumerableProperty$3 = createNonEnumerableProperty$5;
955
- var defineBuiltIn$3 = defineBuiltIn$4;
955
+ var defineBuiltIn$4 = defineBuiltIn$5;
956
956
  var defineGlobalProperty = defineGlobalProperty$3;
957
957
  var copyConstructorProperties = copyConstructorProperties$1;
958
958
  var isForced = isForced_1;
@@ -1000,7 +1000,7 @@ var _export = function (options, source) {
1000
1000
  if (options.sham || (targetProperty && targetProperty.sham)) {
1001
1001
  createNonEnumerableProperty$3(sourceProperty, 'sham', true);
1002
1002
  }
1003
- defineBuiltIn$3(target, key, sourceProperty, options);
1003
+ defineBuiltIn$4(target, key, sourceProperty, options);
1004
1004
  }
1005
1005
  };
1006
1006
 
@@ -1015,9 +1015,9 @@ var objectKeys$2 = Object.keys || function keys(O) {
1015
1015
  };
1016
1016
 
1017
1017
  var DESCRIPTORS$2 = descriptors;
1018
- var uncurryThis$d = functionUncurryThis;
1019
- var call$7 = functionCall;
1020
- var fails$c = fails$l;
1018
+ var uncurryThis$e = functionUncurryThis;
1019
+ var call$8 = functionCall;
1020
+ var fails$d = fails$m;
1021
1021
  var objectKeys$1 = objectKeys$2;
1022
1022
  var getOwnPropertySymbolsModule = objectGetOwnPropertySymbols;
1023
1023
  var propertyIsEnumerableModule = objectPropertyIsEnumerable;
@@ -1028,11 +1028,11 @@ var IndexedObject = indexedObject;
1028
1028
  var $assign = Object.assign;
1029
1029
  // eslint-disable-next-line es/no-object-defineproperty -- required for testing
1030
1030
  var defineProperty$3 = Object.defineProperty;
1031
- var concat$1 = uncurryThis$d([].concat);
1031
+ var concat$1 = uncurryThis$e([].concat);
1032
1032
 
1033
1033
  // `Object.assign` method
1034
1034
  // https://tc39.es/ecma262/#sec-object.assign
1035
- var objectAssign = !$assign || fails$c(function () {
1035
+ var objectAssign = !$assign || fails$d(function () {
1036
1036
  // should have correct order of operations (Edge bug)
1037
1037
  if (DESCRIPTORS$2 && $assign({ b: 1 }, $assign(defineProperty$3({}, 'a', {
1038
1038
  enumerable: true,
@@ -1066,18 +1066,18 @@ var objectAssign = !$assign || fails$c(function () {
1066
1066
  var key;
1067
1067
  while (length > j) {
1068
1068
  key = keys[j++];
1069
- if (!DESCRIPTORS$2 || call$7(propertyIsEnumerable, S, key)) T[key] = S[key];
1069
+ if (!DESCRIPTORS$2 || call$8(propertyIsEnumerable, S, key)) T[key] = S[key];
1070
1070
  }
1071
1071
  } return T;
1072
1072
  } : $assign;
1073
1073
 
1074
- var $$9 = _export;
1074
+ var $$a = _export;
1075
1075
  var assign = objectAssign;
1076
1076
 
1077
1077
  // `Object.assign` method
1078
1078
  // https://tc39.es/ecma262/#sec-object.assign
1079
1079
  // eslint-disable-next-line es/no-object-assign -- required for testing
1080
- $$9({ target: 'Object', stat: true, arity: 2, forced: Object.assign !== assign }, {
1080
+ $$a({ target: 'Object', stat: true, arity: 2, forced: Object.assign !== assign }, {
1081
1081
  assign: assign
1082
1082
  });
1083
1083
 
@@ -1086,7 +1086,7 @@ var objectDefineProperties = {};
1086
1086
  var DESCRIPTORS$1 = descriptors;
1087
1087
  var V8_PROTOTYPE_DEFINE_BUG = v8PrototypeDefineBug;
1088
1088
  var definePropertyModule = objectDefineProperty;
1089
- var anObject$6 = anObject$9;
1089
+ var anObject$7 = anObject$a;
1090
1090
  var toIndexedObject$1 = toIndexedObject$5;
1091
1091
  var objectKeys = objectKeys$2;
1092
1092
 
@@ -1094,7 +1094,7 @@ var objectKeys = objectKeys$2;
1094
1094
  // https://tc39.es/ecma262/#sec-object.defineproperties
1095
1095
  // eslint-disable-next-line es/no-object-defineproperties -- safe
1096
1096
  objectDefineProperties.f = DESCRIPTORS$1 && !V8_PROTOTYPE_DEFINE_BUG ? Object.defineProperties : function defineProperties(O, Properties) {
1097
- anObject$6(O);
1097
+ anObject$7(O);
1098
1098
  var props = toIndexedObject$1(Properties);
1099
1099
  var keys = objectKeys(Properties);
1100
1100
  var length = keys.length;
@@ -1109,7 +1109,7 @@ var getBuiltIn = getBuiltIn$3;
1109
1109
  var html$1 = getBuiltIn('document', 'documentElement');
1110
1110
 
1111
1111
  /* global ActiveXObject -- old IE, WSH */
1112
- var anObject$5 = anObject$9;
1112
+ var anObject$6 = anObject$a;
1113
1113
  var definePropertiesModule = objectDefineProperties;
1114
1114
  var enumBugKeys = enumBugKeys$3;
1115
1115
  var hiddenKeys = hiddenKeys$4;
@@ -1183,7 +1183,7 @@ hiddenKeys[IE_PROTO$1] = true;
1183
1183
  var objectCreate = Object.create || function create(O, Properties) {
1184
1184
  var result;
1185
1185
  if (O !== null) {
1186
- EmptyConstructor[PROTOTYPE] = anObject$5(O);
1186
+ EmptyConstructor[PROTOTYPE] = anObject$6(O);
1187
1187
  result = new EmptyConstructor();
1188
1188
  EmptyConstructor[PROTOTYPE] = null;
1189
1189
  // add "__proto__" for Object.getPrototypeOf polyfill
@@ -1215,16 +1215,16 @@ var addToUnscopables$2 = function (key) {
1215
1215
 
1216
1216
  var iterators = {};
1217
1217
 
1218
- var fails$b = fails$l;
1218
+ var fails$c = fails$m;
1219
1219
 
1220
- var correctPrototypeGetter = !fails$b(function () {
1220
+ var correctPrototypeGetter = !fails$c(function () {
1221
1221
  function F() { /* empty */ }
1222
1222
  F.prototype.constructor = null;
1223
1223
  // eslint-disable-next-line es/no-object-getprototypeof -- required for testing
1224
1224
  return Object.getPrototypeOf(new F()) !== F.prototype;
1225
1225
  });
1226
1226
 
1227
- var hasOwn$1 = hasOwnProperty_1;
1227
+ var hasOwn$2 = hasOwnProperty_1;
1228
1228
  var isCallable$5 = isCallable$g;
1229
1229
  var toObject$2 = toObject$5;
1230
1230
  var sharedKey = sharedKey$3;
@@ -1239,18 +1239,18 @@ var ObjectPrototype = $Object$1.prototype;
1239
1239
  // eslint-disable-next-line es/no-object-getprototypeof -- safe
1240
1240
  var objectGetPrototypeOf = CORRECT_PROTOTYPE_GETTER ? $Object$1.getPrototypeOf : function (O) {
1241
1241
  var object = toObject$2(O);
1242
- if (hasOwn$1(object, IE_PROTO)) return object[IE_PROTO];
1242
+ if (hasOwn$2(object, IE_PROTO)) return object[IE_PROTO];
1243
1243
  var constructor = object.constructor;
1244
1244
  if (isCallable$5(constructor) && object instanceof constructor) {
1245
1245
  return constructor.prototype;
1246
1246
  } return object instanceof $Object$1 ? ObjectPrototype : null;
1247
1247
  };
1248
1248
 
1249
- var fails$a = fails$l;
1249
+ var fails$b = fails$m;
1250
1250
  var isCallable$4 = isCallable$g;
1251
1251
  var isObject$2 = isObject$8;
1252
1252
  var getPrototypeOf$1 = objectGetPrototypeOf;
1253
- var defineBuiltIn$2 = defineBuiltIn$4;
1253
+ var defineBuiltIn$3 = defineBuiltIn$5;
1254
1254
  var wellKnownSymbol$9 = wellKnownSymbol$c;
1255
1255
 
1256
1256
  var ITERATOR$3 = wellKnownSymbol$9('iterator');
@@ -1271,7 +1271,7 @@ if ([].keys) {
1271
1271
  }
1272
1272
  }
1273
1273
 
1274
- var NEW_ITERATOR_PROTOTYPE = !isObject$2(IteratorPrototype$2) || fails$a(function () {
1274
+ var NEW_ITERATOR_PROTOTYPE = !isObject$2(IteratorPrototype$2) || fails$b(function () {
1275
1275
  var test = {};
1276
1276
  // FF44- legacy iterators case
1277
1277
  return IteratorPrototype$2[ITERATOR$3].call(test) !== test;
@@ -1282,7 +1282,7 @@ if (NEW_ITERATOR_PROTOTYPE) IteratorPrototype$2 = {};
1282
1282
  // `%IteratorPrototype%[@@iterator]()` method
1283
1283
  // https://tc39.es/ecma262/#sec-%iteratorprototype%-@@iterator
1284
1284
  if (!isCallable$4(IteratorPrototype$2[ITERATOR$3])) {
1285
- defineBuiltIn$2(IteratorPrototype$2, ITERATOR$3, function () {
1285
+ defineBuiltIn$3(IteratorPrototype$2, ITERATOR$3, function () {
1286
1286
  return this;
1287
1287
  });
1288
1288
  }
@@ -1293,14 +1293,14 @@ var iteratorsCore = {
1293
1293
  };
1294
1294
 
1295
1295
  var defineProperty$1 = objectDefineProperty.f;
1296
- var hasOwn = hasOwnProperty_1;
1296
+ var hasOwn$1 = hasOwnProperty_1;
1297
1297
  var wellKnownSymbol$8 = wellKnownSymbol$c;
1298
1298
 
1299
1299
  var TO_STRING_TAG$2 = wellKnownSymbol$8('toStringTag');
1300
1300
 
1301
1301
  var setToStringTag$3 = function (target, TAG, STATIC) {
1302
1302
  if (target && !STATIC) target = target.prototype;
1303
- if (target && !hasOwn(target, TO_STRING_TAG$2)) {
1303
+ if (target && !hasOwn$1(target, TO_STRING_TAG$2)) {
1304
1304
  defineProperty$1(target, TO_STRING_TAG$2, { configurable: true, value: TAG });
1305
1305
  }
1306
1306
  };
@@ -1321,13 +1321,13 @@ var iteratorCreateConstructor = function (IteratorConstructor, NAME, next, ENUME
1321
1321
  return IteratorConstructor;
1322
1322
  };
1323
1323
 
1324
- var uncurryThis$c = functionUncurryThis;
1324
+ var uncurryThis$d = functionUncurryThis;
1325
1325
  var aCallable$1 = aCallable$3;
1326
1326
 
1327
1327
  var functionUncurryThisAccessor = function (object, key, method) {
1328
1328
  try {
1329
1329
  // eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe
1330
- return uncurryThis$c(aCallable$1(Object.getOwnPropertyDescriptor(object, key)[method]));
1330
+ return uncurryThis$d(aCallable$1(Object.getOwnPropertyDescriptor(object, key)[method]));
1331
1331
  } catch (error) { /* empty */ }
1332
1332
  };
1333
1333
 
@@ -1349,7 +1349,7 @@ var aPossiblePrototype$1 = function (argument) {
1349
1349
 
1350
1350
  /* eslint-disable no-proto -- safe */
1351
1351
  var uncurryThisAccessor = functionUncurryThisAccessor;
1352
- var anObject$4 = anObject$9;
1352
+ var anObject$5 = anObject$a;
1353
1353
  var aPossiblePrototype = aPossiblePrototype$1;
1354
1354
 
1355
1355
  // `Object.setPrototypeOf` method
@@ -1366,7 +1366,7 @@ var objectSetPrototypeOf = Object.setPrototypeOf || ('__proto__' in {} ? functio
1366
1366
  CORRECT_SETTER = test instanceof Array;
1367
1367
  } catch (error) { /* empty */ }
1368
1368
  return function setPrototypeOf(O, proto) {
1369
- anObject$4(O);
1369
+ anObject$5(O);
1370
1370
  aPossiblePrototype(proto);
1371
1371
  if (CORRECT_SETTER) setter(O, proto);
1372
1372
  else O.__proto__ = proto;
@@ -1374,8 +1374,8 @@ var objectSetPrototypeOf = Object.setPrototypeOf || ('__proto__' in {} ? functio
1374
1374
  };
1375
1375
  }() : undefined);
1376
1376
 
1377
- var $$8 = _export;
1378
- var call$6 = functionCall;
1377
+ var $$9 = _export;
1378
+ var call$7 = functionCall;
1379
1379
  var FunctionName = functionName;
1380
1380
  var isCallable$3 = isCallable$g;
1381
1381
  var createIteratorConstructor = iteratorCreateConstructor;
@@ -1383,12 +1383,12 @@ var getPrototypeOf = objectGetPrototypeOf;
1383
1383
  var setPrototypeOf = objectSetPrototypeOf;
1384
1384
  var setToStringTag$1 = setToStringTag$3;
1385
1385
  var createNonEnumerableProperty$2 = createNonEnumerableProperty$5;
1386
- var defineBuiltIn$1 = defineBuiltIn$4;
1386
+ var defineBuiltIn$2 = defineBuiltIn$5;
1387
1387
  var wellKnownSymbol$7 = wellKnownSymbol$c;
1388
1388
  var Iterators$1 = iterators;
1389
1389
  var IteratorsCore = iteratorsCore;
1390
1390
 
1391
- var PROPER_FUNCTION_NAME$1 = FunctionName.PROPER;
1391
+ var PROPER_FUNCTION_NAME$2 = FunctionName.PROPER;
1392
1392
  var CONFIGURABLE_FUNCTION_NAME = FunctionName.CONFIGURABLE;
1393
1393
  var IteratorPrototype = IteratorsCore.IteratorPrototype;
1394
1394
  var BUGGY_SAFARI_ITERATORS = IteratorsCore.BUGGY_SAFARI_ITERATORS;
@@ -1433,7 +1433,7 @@ var iteratorDefine = function (Iterable, NAME, IteratorConstructor, next, DEFAUL
1433
1433
  if (setPrototypeOf) {
1434
1434
  setPrototypeOf(CurrentIteratorPrototype, IteratorPrototype);
1435
1435
  } else if (!isCallable$3(CurrentIteratorPrototype[ITERATOR$2])) {
1436
- defineBuiltIn$1(CurrentIteratorPrototype, ITERATOR$2, returnThis);
1436
+ defineBuiltIn$2(CurrentIteratorPrototype, ITERATOR$2, returnThis);
1437
1437
  }
1438
1438
  }
1439
1439
  // Set @@toStringTag to native iterators
@@ -1442,12 +1442,12 @@ var iteratorDefine = function (Iterable, NAME, IteratorConstructor, next, DEFAUL
1442
1442
  }
1443
1443
 
1444
1444
  // fix Array.prototype.{ values, @@iterator }.name in V8 / FF
1445
- if (PROPER_FUNCTION_NAME$1 && DEFAULT === VALUES && nativeIterator && nativeIterator.name !== VALUES) {
1445
+ if (PROPER_FUNCTION_NAME$2 && DEFAULT === VALUES && nativeIterator && nativeIterator.name !== VALUES) {
1446
1446
  if (CONFIGURABLE_FUNCTION_NAME) {
1447
1447
  createNonEnumerableProperty$2(IterablePrototype, 'name', VALUES);
1448
1448
  } else {
1449
1449
  INCORRECT_VALUES_NAME = true;
1450
- defaultIterator = function values() { return call$6(nativeIterator, this); };
1450
+ defaultIterator = function values() { return call$7(nativeIterator, this); };
1451
1451
  }
1452
1452
  }
1453
1453
 
@@ -1460,14 +1460,14 @@ var iteratorDefine = function (Iterable, NAME, IteratorConstructor, next, DEFAUL
1460
1460
  };
1461
1461
  if (FORCED) for (KEY in methods) {
1462
1462
  if (BUGGY_SAFARI_ITERATORS || INCORRECT_VALUES_NAME || !(KEY in IterablePrototype)) {
1463
- defineBuiltIn$1(IterablePrototype, KEY, methods[KEY]);
1463
+ defineBuiltIn$2(IterablePrototype, KEY, methods[KEY]);
1464
1464
  }
1465
- } else $$8({ target: NAME, proto: true, forced: BUGGY_SAFARI_ITERATORS || INCORRECT_VALUES_NAME }, methods);
1465
+ } else $$9({ target: NAME, proto: true, forced: BUGGY_SAFARI_ITERATORS || INCORRECT_VALUES_NAME }, methods);
1466
1466
  }
1467
1467
 
1468
1468
  // define iterator
1469
1469
  if (IterablePrototype[ITERATOR$2] !== defaultIterator) {
1470
- defineBuiltIn$1(IterablePrototype, ITERATOR$2, defaultIterator, { name: DEFAULT });
1470
+ defineBuiltIn$2(IterablePrototype, ITERATOR$2, defaultIterator, { name: DEFAULT });
1471
1471
  }
1472
1472
  Iterators$1[NAME] = defaultIterator;
1473
1473
 
@@ -1673,14 +1673,14 @@ var classof$2 = classof$3;
1673
1673
 
1674
1674
  var $String = String;
1675
1675
 
1676
- var toString$a = function (argument) {
1676
+ var toString$c = function (argument) {
1677
1677
  if (classof$2(argument) === 'Symbol') throw new TypeError('Cannot convert a Symbol value to a string');
1678
1678
  return $String(argument);
1679
1679
  };
1680
1680
 
1681
- var uncurryThis$b = functionUncurryThis;
1681
+ var uncurryThis$c = functionUncurryThis;
1682
1682
 
1683
- var arraySlice$1 = uncurryThis$b([].slice);
1683
+ var arraySlice$1 = uncurryThis$c([].slice);
1684
1684
 
1685
1685
  var arraySlice = arraySlice$1;
1686
1686
 
@@ -1724,19 +1724,19 @@ var sort = function (array, comparefn) {
1724
1724
 
1725
1725
  var arraySort = sort;
1726
1726
 
1727
- var fails$9 = fails$l;
1727
+ var fails$a = fails$m;
1728
1728
 
1729
1729
  var arrayMethodIsStrict$1 = function (METHOD_NAME, argument) {
1730
1730
  var method = [][METHOD_NAME];
1731
- return !!method && fails$9(function () {
1731
+ return !!method && fails$a(function () {
1732
1732
  // eslint-disable-next-line no-useless-call -- required for testing
1733
1733
  method.call(null, argument || function () { return 1; }, 1);
1734
1734
  });
1735
1735
  };
1736
1736
 
1737
- var userAgent$1 = engineUserAgent;
1737
+ var userAgent$2 = engineUserAgent;
1738
1738
 
1739
- var firefox = userAgent$1.match(/firefox\/(\d+)/i);
1739
+ var firefox = userAgent$2.match(/firefox\/(\d+)/i);
1740
1740
 
1741
1741
  var engineFfVersion = !!firefox && +firefox[1];
1742
1742
 
@@ -1744,20 +1744,20 @@ var UA = engineUserAgent;
1744
1744
 
1745
1745
  var engineIsIeOrEdge = /MSIE|Trident/.test(UA);
1746
1746
 
1747
- var userAgent = engineUserAgent;
1747
+ var userAgent$1 = engineUserAgent;
1748
1748
 
1749
- var webkit = userAgent.match(/AppleWebKit\/(\d+)\./);
1749
+ var webkit = userAgent$1.match(/AppleWebKit\/(\d+)\./);
1750
1750
 
1751
1751
  var engineWebkitVersion = !!webkit && +webkit[1];
1752
1752
 
1753
- var $$7 = _export;
1754
- var uncurryThis$a = functionUncurryThis;
1753
+ var $$8 = _export;
1754
+ var uncurryThis$b = functionUncurryThis;
1755
1755
  var aCallable = aCallable$3;
1756
1756
  var toObject$1 = toObject$5;
1757
1757
  var lengthOfArrayLike = lengthOfArrayLike$2;
1758
1758
  var deletePropertyOrThrow = deletePropertyOrThrow$1;
1759
- var toString$9 = toString$a;
1760
- var fails$8 = fails$l;
1759
+ var toString$b = toString$c;
1760
+ var fails$9 = fails$m;
1761
1761
  var internalSort = arraySort;
1762
1762
  var arrayMethodIsStrict = arrayMethodIsStrict$1;
1763
1763
  var FF = engineFfVersion;
@@ -1766,21 +1766,21 @@ var V8 = engineV8Version;
1766
1766
  var WEBKIT = engineWebkitVersion;
1767
1767
 
1768
1768
  var test = [];
1769
- var nativeSort = uncurryThis$a(test.sort);
1770
- var push$1 = uncurryThis$a(test.push);
1769
+ var nativeSort = uncurryThis$b(test.sort);
1770
+ var push$1 = uncurryThis$b(test.push);
1771
1771
 
1772
1772
  // IE8-
1773
- var FAILS_ON_UNDEFINED = fails$8(function () {
1773
+ var FAILS_ON_UNDEFINED = fails$9(function () {
1774
1774
  test.sort(undefined);
1775
1775
  });
1776
1776
  // V8 bug
1777
- var FAILS_ON_NULL = fails$8(function () {
1777
+ var FAILS_ON_NULL = fails$9(function () {
1778
1778
  test.sort(null);
1779
1779
  });
1780
1780
  // Old WebKit
1781
1781
  var STRICT_METHOD = arrayMethodIsStrict('sort');
1782
1782
 
1783
- var STABLE_SORT = !fails$8(function () {
1783
+ var STABLE_SORT = !fails$9(function () {
1784
1784
  // feature detection can be too slow, so check engines versions
1785
1785
  if (V8) return V8 < 70;
1786
1786
  if (FF && FF > 3) return;
@@ -1822,13 +1822,13 @@ var getSortCompare = function (comparefn) {
1822
1822
  if (y === undefined) return -1;
1823
1823
  if (x === undefined) return 1;
1824
1824
  if (comparefn !== undefined) return +comparefn(x, y) || 0;
1825
- return toString$9(x) > toString$9(y) ? 1 : -1;
1825
+ return toString$b(x) > toString$b(y) ? 1 : -1;
1826
1826
  };
1827
1827
  };
1828
1828
 
1829
1829
  // `Array.prototype.sort` method
1830
1830
  // https://tc39.es/ecma262/#sec-array.prototype.sort
1831
- $$7({ target: 'Array', proto: true, forced: FORCED$1 }, {
1831
+ $$8({ target: 'Array', proto: true, forced: FORCED$1 }, {
1832
1832
  sort: function sort(comparefn) {
1833
1833
  if (comparefn !== undefined) aCallable(comparefn);
1834
1834
 
@@ -2000,6 +2000,12 @@ function copyHoursAndMinutesFromDate(target, fromDate, roundDownToMinute) {
2000
2000
  roundDownToMinute
2001
2001
  }, target);
2002
2002
  }
2003
+ /**
2004
+ * Creates a new date using UTC and copies the hours/minutes from the input date using the UTC values to the target date.
2005
+ */
2006
+ function copyHoursAndMinutesFromUTCDate(target, fromDate, roundDownToMinute) {
2007
+ return new Date(Date.UTC(target.getUTCFullYear(), target.getUTCMonth(), target.getUTCDate(), fromDate.getUTCHours(), fromDate.getUTCMinutes(), roundDownToMinute ? 0 : fromDate.getUTCSeconds(), roundDownToMinute ? 0 : fromDate.getUTCMilliseconds()));
2008
+ }
2003
2009
  /**
2004
2010
  * Creates a new date and copies the hours/minutes from the input onto the target date, if provided. Defaults to now/today otherwise.
2005
2011
  *
@@ -2093,6 +2099,15 @@ function readDaysOfWeekNames(values, readDate, nameFunction) {
2093
2099
  function isStartOfDayInUTC(date) {
2094
2100
  return date.getUTCHours() === 0 && date.getUTCMinutes() === 0 && date.getUTCSeconds() === 0 && date.getUTCMilliseconds() === 0;
2095
2101
  }
2102
+ /**
2103
+ * Returns true if the input date is at midnight for the system.
2104
+ *
2105
+ * @param date
2106
+ * @returns
2107
+ */
2108
+ function isStartOfDayForSystem(date) {
2109
+ return date.getHours() === 0 && date.getMinutes() === 0 && date.getSeconds() === 0 && date.getMilliseconds() === 0;
2110
+ }
2096
2111
 
2097
2112
  /******************************************************************************
2098
2113
  Copyright (c) Microsoft Corporation.
@@ -2854,6 +2869,33 @@ function getCurrentSystemOffsetInHours(date) {
2854
2869
  function getCurrentSystemOffsetInMinutes(date) {
2855
2870
  return -date.getTimezoneOffset();
2856
2871
  }
2872
+ /**
2873
+ * Returns the timezone offset in milliseconds.
2874
+ *
2875
+ * I.E. GMT-5 = -5 hours (in milliseconds)
2876
+ *
2877
+ * @param timezone
2878
+ * @param date
2879
+ * @returns
2880
+ */
2881
+ function calculateTimezoneOffset(timezone, date) {
2882
+ /*
2883
+ // BUG: There is a bug with getTimezoneOffset where the offset is not calculated properly for the first 2 hours after the DST change.
2884
+ // https://github.com/marnusw/date-fns-tz/issues/227
2885
+
2886
+ const tzOffset = getTimezoneOffset(timezone, date);
2887
+ */
2888
+ // WORKAROUND: This is the current workaround. Performance hit seems negligible for all UI use cases.
2889
+ const zoneDate = dateFnsTz.utcToZonedTime(date, timezone);
2890
+ const zoneDateStr = dateFnsTz.format(zoneDate, 'yyyy-MM-dd HH:mm'); // ignore seconds, etc.
2891
+ const zoneDateTime = new Date(zoneDateStr + 'Z').getTime();
2892
+ const inputTime = dateFns.set(date, {
2893
+ seconds: 0,
2894
+ milliseconds: 0
2895
+ }).getTime();
2896
+ const tzOffset = zoneDateTime - inputTime;
2897
+ return tzOffset;
2898
+ }
2857
2899
  function calculateAllConversions(date, converter, map = x => x) {
2858
2900
  const options = ['target', 'base', 'system'];
2859
2901
  const conversions = {};
@@ -2911,10 +2953,7 @@ class DateTimezoneUtcNormalInstance {
2911
2953
  constructor(config) {
2912
2954
  let getOffsetInMsFn;
2913
2955
  function useTimezone(timezone) {
2914
- getOffsetInMsFn = date => {
2915
- const tzOffset = dateFnsTz.getTimezoneOffset(timezone, date);
2916
- return tzOffset;
2917
- };
2956
+ getOffsetInMsFn = date => calculateTimezoneOffset(timezone, date);
2918
2957
  }
2919
2958
  if (config == null || typeof config === 'string') {
2920
2959
  const timezone = config !== null && config !== void 0 ? config : util.UTC_TIMEZONE_STRING;
@@ -2935,8 +2974,8 @@ class DateTimezoneUtcNormalInstance {
2935
2974
  }
2936
2975
  this.config = config;
2937
2976
  const hasConversion = !config.noConversion;
2938
- function calculateOffset(date, fn = getOffsetInMsFn) {
2939
- const offset = fn(date);
2977
+ function calculateOffset(date) {
2978
+ const offset = getOffsetInMsFn(date);
2940
2979
  return offset;
2941
2980
  }
2942
2981
  function calculateSystemNormalDifference(date) {
@@ -2973,7 +3012,6 @@ class DateTimezoneUtcNormalInstance {
2973
3012
  default:
2974
3013
  throw new Error(`unexpected offset target "${target}"`);
2975
3014
  }
2976
- // console.log('Offset: ', { date: x, target, offset, offsetInHours: millisecondsToHours(offset) });
2977
3015
  return offset;
2978
3016
  }
2979
3017
  };
@@ -3019,6 +3057,9 @@ class DateTimezoneUtcNormalInstance {
3019
3057
  getOffset(date, transform) {
3020
3058
  return this[`${transform}Offset`](date);
3021
3059
  }
3060
+ getOffsetInHours(date, transform) {
3061
+ return this.getOffset(date, transform) / util.MS_IN_HOUR;
3062
+ }
3022
3063
  offsetFunction(transform) {
3023
3064
  return date => this.getOffset(date, transform);
3024
3065
  }
@@ -3265,20 +3306,20 @@ function copyHoursAndMinutesFromDateWithTimezoneNormal(input, copyFrom, timezone
3265
3306
  return result;
3266
3307
  }
3267
3308
 
3268
- var $$6 = _export;
3309
+ var $$7 = _export;
3269
3310
  var $includes = arrayIncludes.includes;
3270
- var fails$7 = fails$l;
3311
+ var fails$8 = fails$m;
3271
3312
  var addToUnscopables = addToUnscopables$2;
3272
3313
 
3273
3314
  // FF99+ bug
3274
- var BROKEN_ON_SPARSE = fails$7(function () {
3315
+ var BROKEN_ON_SPARSE = fails$8(function () {
3275
3316
  // eslint-disable-next-line es/no-array-prototype-includes -- detection
3276
3317
  return !Array(1).includes();
3277
3318
  });
3278
3319
 
3279
3320
  // `Array.prototype.includes` method
3280
3321
  // https://tc39.es/ecma262/#sec-array.prototype.includes
3281
- $$6({ target: 'Array', proto: true, forced: BROKEN_ON_SPARSE }, {
3322
+ $$7({ target: 'Array', proto: true, forced: BROKEN_ON_SPARSE }, {
3282
3323
  includes: function includes(el /* , fromIndex = 0 */) {
3283
3324
  return $includes(this, el, arguments.length > 1 ? arguments[1] : undefined);
3284
3325
  }
@@ -3326,33 +3367,33 @@ var correctIsRegexpLogic = function (METHOD_NAME) {
3326
3367
  } return false;
3327
3368
  };
3328
3369
 
3329
- var $$5 = _export;
3330
- var uncurryThis$9 = functionUncurryThis;
3370
+ var $$6 = _export;
3371
+ var uncurryThis$a = functionUncurryThis;
3331
3372
  var notARegExp$2 = notARegexp;
3332
- var requireObjectCoercible$6 = requireObjectCoercible$9;
3333
- var toString$8 = toString$a;
3373
+ var requireObjectCoercible$8 = requireObjectCoercible$b;
3374
+ var toString$a = toString$c;
3334
3375
  var correctIsRegExpLogic$2 = correctIsRegexpLogic;
3335
3376
 
3336
- var stringIndexOf$1 = uncurryThis$9(''.indexOf);
3377
+ var stringIndexOf$1 = uncurryThis$a(''.indexOf);
3337
3378
 
3338
3379
  // `String.prototype.includes` method
3339
3380
  // https://tc39.es/ecma262/#sec-string.prototype.includes
3340
- $$5({ target: 'String', proto: true, forced: !correctIsRegExpLogic$2('includes') }, {
3381
+ $$6({ target: 'String', proto: true, forced: !correctIsRegExpLogic$2('includes') }, {
3341
3382
  includes: function includes(searchString /* , position = 0 */) {
3342
3383
  return !!~stringIndexOf$1(
3343
- toString$8(requireObjectCoercible$6(this)),
3344
- toString$8(notARegExp$2(searchString)),
3384
+ toString$a(requireObjectCoercible$8(this)),
3385
+ toString$a(notARegExp$2(searchString)),
3345
3386
  arguments.length > 1 ? arguments[1] : undefined
3346
3387
  );
3347
3388
  }
3348
3389
  });
3349
3390
 
3350
- var anObject$3 = anObject$9;
3391
+ var anObject$4 = anObject$a;
3351
3392
 
3352
3393
  // `RegExp.prototype.flags` getter implementation
3353
3394
  // https://tc39.es/ecma262/#sec-get-regexp.prototype.flags
3354
3395
  var regexpFlags$1 = function () {
3355
- var that = anObject$3(this);
3396
+ var that = anObject$4(this);
3356
3397
  var result = '';
3357
3398
  if (that.hasIndices) result += 'd';
3358
3399
  if (that.global) result += 'g';
@@ -3365,13 +3406,13 @@ var regexpFlags$1 = function () {
3365
3406
  return result;
3366
3407
  };
3367
3408
 
3368
- var fails$6 = fails$l;
3409
+ var fails$7 = fails$m;
3369
3410
  var global$4 = global$g;
3370
3411
 
3371
3412
  // babel-minify and Closure Compiler transpiles RegExp('a', 'y') -> /a/y and it causes SyntaxError
3372
3413
  var $RegExp$2 = global$4.RegExp;
3373
3414
 
3374
- var UNSUPPORTED_Y$1 = fails$6(function () {
3415
+ var UNSUPPORTED_Y$1 = fails$7(function () {
3375
3416
  var re = $RegExp$2('a', 'y');
3376
3417
  re.lastIndex = 2;
3377
3418
  return re.exec('abcd') !== null;
@@ -3379,11 +3420,11 @@ var UNSUPPORTED_Y$1 = fails$6(function () {
3379
3420
 
3380
3421
  // UC Browser bug
3381
3422
  // https://github.com/zloirock/core-js/issues/1008
3382
- var MISSED_STICKY = UNSUPPORTED_Y$1 || fails$6(function () {
3423
+ var MISSED_STICKY = UNSUPPORTED_Y$1 || fails$7(function () {
3383
3424
  return !$RegExp$2('a', 'y').sticky;
3384
3425
  });
3385
3426
 
3386
- var BROKEN_CARET = UNSUPPORTED_Y$1 || fails$6(function () {
3427
+ var BROKEN_CARET = UNSUPPORTED_Y$1 || fails$7(function () {
3387
3428
  // https://bugzilla.mozilla.org/show_bug.cgi?id=773687
3388
3429
  var re = $RegExp$2('^r', 'gy');
3389
3430
  re.lastIndex = 2;
@@ -3396,24 +3437,24 @@ var regexpStickyHelpers = {
3396
3437
  UNSUPPORTED_Y: UNSUPPORTED_Y$1
3397
3438
  };
3398
3439
 
3399
- var fails$5 = fails$l;
3440
+ var fails$6 = fails$m;
3400
3441
  var global$3 = global$g;
3401
3442
 
3402
3443
  // babel-minify and Closure Compiler transpiles RegExp('.', 's') -> /./s and it causes SyntaxError
3403
3444
  var $RegExp$1 = global$3.RegExp;
3404
3445
 
3405
- var regexpUnsupportedDotAll = fails$5(function () {
3446
+ var regexpUnsupportedDotAll = fails$6(function () {
3406
3447
  var re = $RegExp$1('.', 's');
3407
3448
  return !(re.dotAll && re.test('\n') && re.flags === 's');
3408
3449
  });
3409
3450
 
3410
- var fails$4 = fails$l;
3451
+ var fails$5 = fails$m;
3411
3452
  var global$2 = global$g;
3412
3453
 
3413
3454
  // babel-minify and Closure Compiler transpiles RegExp('(?<a>b)', 'g') -> /(?<a>b)/g and it causes SyntaxError
3414
3455
  var $RegExp = global$2.RegExp;
3415
3456
 
3416
- var regexpUnsupportedNcg = fails$4(function () {
3457
+ var regexpUnsupportedNcg = fails$5(function () {
3417
3458
  var re = $RegExp('(?<a>b)', 'g');
3418
3459
  return re.exec('b').groups.a !== 'b' ||
3419
3460
  'b'.replace(re, '$<a>c') !== 'bc';
@@ -3421,9 +3462,9 @@ var regexpUnsupportedNcg = fails$4(function () {
3421
3462
 
3422
3463
  /* eslint-disable regexp/no-empty-capturing-group, regexp/no-empty-group, regexp/no-lazy-ends -- testing */
3423
3464
  /* eslint-disable regexp/no-useless-quantifier -- testing */
3424
- var call$5 = functionCall;
3425
- var uncurryThis$8 = functionUncurryThis;
3426
- var toString$7 = toString$a;
3465
+ var call$6 = functionCall;
3466
+ var uncurryThis$9 = functionUncurryThis;
3467
+ var toString$9 = toString$c;
3427
3468
  var regexpFlags = regexpFlags$1;
3428
3469
  var stickyHelpers = regexpStickyHelpers;
3429
3470
  var shared = shared$4.exports;
@@ -3435,16 +3476,16 @@ var UNSUPPORTED_NCG = regexpUnsupportedNcg;
3435
3476
  var nativeReplace = shared('native-string-replace', String.prototype.replace);
3436
3477
  var nativeExec = RegExp.prototype.exec;
3437
3478
  var patchedExec = nativeExec;
3438
- var charAt$3 = uncurryThis$8(''.charAt);
3439
- var indexOf = uncurryThis$8(''.indexOf);
3440
- var replace$2 = uncurryThis$8(''.replace);
3441
- var stringSlice$4 = uncurryThis$8(''.slice);
3479
+ var charAt$3 = uncurryThis$9(''.charAt);
3480
+ var indexOf = uncurryThis$9(''.indexOf);
3481
+ var replace$2 = uncurryThis$9(''.replace);
3482
+ var stringSlice$5 = uncurryThis$9(''.slice);
3442
3483
 
3443
3484
  var UPDATES_LAST_INDEX_WRONG = (function () {
3444
3485
  var re1 = /a/;
3445
3486
  var re2 = /b*/g;
3446
- call$5(nativeExec, re1, 'a');
3447
- call$5(nativeExec, re2, 'a');
3487
+ call$6(nativeExec, re1, 'a');
3488
+ call$6(nativeExec, re2, 'a');
3448
3489
  return re1.lastIndex !== 0 || re2.lastIndex !== 0;
3449
3490
  })();
3450
3491
 
@@ -3459,20 +3500,20 @@ if (PATCH) {
3459
3500
  patchedExec = function exec(string) {
3460
3501
  var re = this;
3461
3502
  var state = getInternalState(re);
3462
- var str = toString$7(string);
3503
+ var str = toString$9(string);
3463
3504
  var raw = state.raw;
3464
3505
  var result, reCopy, lastIndex, match, i, object, group;
3465
3506
 
3466
3507
  if (raw) {
3467
3508
  raw.lastIndex = re.lastIndex;
3468
- result = call$5(patchedExec, raw, str);
3509
+ result = call$6(patchedExec, raw, str);
3469
3510
  re.lastIndex = raw.lastIndex;
3470
3511
  return result;
3471
3512
  }
3472
3513
 
3473
3514
  var groups = state.groups;
3474
3515
  var sticky = UNSUPPORTED_Y && re.sticky;
3475
- var flags = call$5(regexpFlags, re);
3516
+ var flags = call$6(regexpFlags, re);
3476
3517
  var source = re.source;
3477
3518
  var charsAdded = 0;
3478
3519
  var strCopy = str;
@@ -3483,7 +3524,7 @@ if (PATCH) {
3483
3524
  flags += 'g';
3484
3525
  }
3485
3526
 
3486
- strCopy = stringSlice$4(str, re.lastIndex);
3527
+ strCopy = stringSlice$5(str, re.lastIndex);
3487
3528
  // Support anchored sticky behavior.
3488
3529
  if (re.lastIndex > 0 && (!re.multiline || re.multiline && charAt$3(str, re.lastIndex - 1) !== '\n')) {
3489
3530
  source = '(?: ' + source + ')';
@@ -3500,12 +3541,12 @@ if (PATCH) {
3500
3541
  }
3501
3542
  if (UPDATES_LAST_INDEX_WRONG) lastIndex = re.lastIndex;
3502
3543
 
3503
- match = call$5(nativeExec, sticky ? reCopy : re, strCopy);
3544
+ match = call$6(nativeExec, sticky ? reCopy : re, strCopy);
3504
3545
 
3505
3546
  if (sticky) {
3506
3547
  if (match) {
3507
- match.input = stringSlice$4(match.input, charsAdded);
3508
- match[0] = stringSlice$4(match[0], charsAdded);
3548
+ match.input = stringSlice$5(match.input, charsAdded);
3549
+ match[0] = stringSlice$5(match[0], charsAdded);
3509
3550
  match.index = re.lastIndex;
3510
3551
  re.lastIndex += match[0].length;
3511
3552
  } else re.lastIndex = 0;
@@ -3515,7 +3556,7 @@ if (PATCH) {
3515
3556
  if (NPCG_INCLUDED && match && match.length > 1) {
3516
3557
  // Fix browsers whose `exec` methods don't consistently return `undefined`
3517
3558
  // for NPCG, like IE8. NOTE: This doesn't work for /(.?)?/
3518
- call$5(nativeReplace, match[0], reCopy, function () {
3559
+ call$6(nativeReplace, match[0], reCopy, function () {
3519
3560
  for (i = 1; i < arguments.length - 2; i++) {
3520
3561
  if (arguments[i] === undefined) match[i] = undefined;
3521
3562
  }
@@ -3536,38 +3577,38 @@ if (PATCH) {
3536
3577
 
3537
3578
  var regexpExec$2 = patchedExec;
3538
3579
 
3539
- var $$4 = _export;
3580
+ var $$5 = _export;
3540
3581
  var exec$1 = regexpExec$2;
3541
3582
 
3542
3583
  // `RegExp.prototype.exec` method
3543
3584
  // https://tc39.es/ecma262/#sec-regexp.prototype.exec
3544
- $$4({ target: 'RegExp', proto: true, forced: /./.exec !== exec$1 }, {
3585
+ $$5({ target: 'RegExp', proto: true, forced: /./.exec !== exec$1 }, {
3545
3586
  exec: exec$1
3546
3587
  });
3547
3588
 
3548
3589
  // TODO: Remove from `core-js@4` since it's moved to entry points
3549
3590
 
3550
- var call$4 = functionCall;
3551
- var defineBuiltIn = defineBuiltIn$4;
3591
+ var call$5 = functionCall;
3592
+ var defineBuiltIn$1 = defineBuiltIn$5;
3552
3593
  var regexpExec$1 = regexpExec$2;
3553
- var fails$3 = fails$l;
3594
+ var fails$4 = fails$m;
3554
3595
  var wellKnownSymbol$1 = wellKnownSymbol$c;
3555
3596
  var createNonEnumerableProperty = createNonEnumerableProperty$5;
3556
3597
 
3557
3598
  var SPECIES = wellKnownSymbol$1('species');
3558
- var RegExpPrototype = RegExp.prototype;
3599
+ var RegExpPrototype$2 = RegExp.prototype;
3559
3600
 
3560
3601
  var fixRegexpWellKnownSymbolLogic = function (KEY, exec, FORCED, SHAM) {
3561
3602
  var SYMBOL = wellKnownSymbol$1(KEY);
3562
3603
 
3563
- var DELEGATES_TO_SYMBOL = !fails$3(function () {
3604
+ var DELEGATES_TO_SYMBOL = !fails$4(function () {
3564
3605
  // String methods call symbol-named RegExp methods
3565
3606
  var O = {};
3566
3607
  O[SYMBOL] = function () { return 7; };
3567
3608
  return ''[KEY](O) !== 7;
3568
3609
  });
3569
3610
 
3570
- var DELEGATES_TO_EXEC = DELEGATES_TO_SYMBOL && !fails$3(function () {
3611
+ var DELEGATES_TO_EXEC = DELEGATES_TO_SYMBOL && !fails$4(function () {
3571
3612
  // Symbol-named RegExp methods call .exec
3572
3613
  var execCalled = false;
3573
3614
  var re = /a/;
@@ -3602,23 +3643,23 @@ var fixRegexpWellKnownSymbolLogic = function (KEY, exec, FORCED, SHAM) {
3602
3643
  var nativeRegExpMethod = /./[SYMBOL];
3603
3644
  var methods = exec(SYMBOL, ''[KEY], function (nativeMethod, regexp, str, arg2, forceStringMethod) {
3604
3645
  var $exec = regexp.exec;
3605
- if ($exec === regexpExec$1 || $exec === RegExpPrototype.exec) {
3646
+ if ($exec === regexpExec$1 || $exec === RegExpPrototype$2.exec) {
3606
3647
  if (DELEGATES_TO_SYMBOL && !forceStringMethod) {
3607
3648
  // The native String method already delegates to @@method (this
3608
3649
  // polyfilled function), leasing to infinite recursion.
3609
3650
  // We avoid it by directly calling the native @@method method.
3610
- return { done: true, value: call$4(nativeRegExpMethod, regexp, str, arg2) };
3651
+ return { done: true, value: call$5(nativeRegExpMethod, regexp, str, arg2) };
3611
3652
  }
3612
- return { done: true, value: call$4(nativeMethod, str, regexp, arg2) };
3653
+ return { done: true, value: call$5(nativeMethod, str, regexp, arg2) };
3613
3654
  }
3614
3655
  return { done: false };
3615
3656
  });
3616
3657
 
3617
- defineBuiltIn(String.prototype, KEY, methods[0]);
3618
- defineBuiltIn(RegExpPrototype, SYMBOL, methods[1]);
3658
+ defineBuiltIn$1(String.prototype, KEY, methods[0]);
3659
+ defineBuiltIn$1(RegExpPrototype$2, SYMBOL, methods[1]);
3619
3660
  }
3620
3661
 
3621
- if (SHAM) createNonEnumerableProperty(RegExpPrototype[SYMBOL], 'sham', true);
3662
+ if (SHAM) createNonEnumerableProperty(RegExpPrototype$2[SYMBOL], 'sham', true);
3622
3663
  };
3623
3664
 
3624
3665
  // `SameValue` abstract operation
@@ -3629,8 +3670,8 @@ var sameValue$1 = Object.is || function is(x, y) {
3629
3670
  return x === y ? x !== 0 || 1 / x === 1 / y : x !== x && y !== y;
3630
3671
  };
3631
3672
 
3632
- var call$3 = functionCall;
3633
- var anObject$2 = anObject$9;
3673
+ var call$4 = functionCall;
3674
+ var anObject$3 = anObject$a;
3634
3675
  var isCallable$1 = isCallable$g;
3635
3676
  var classof = classofRaw$2;
3636
3677
  var regexpExec = regexpExec$2;
@@ -3642,21 +3683,21 @@ var $TypeError = TypeError;
3642
3683
  var regexpExecAbstract = function (R, S) {
3643
3684
  var exec = R.exec;
3644
3685
  if (isCallable$1(exec)) {
3645
- var result = call$3(exec, R, S);
3646
- if (result !== null) anObject$2(result);
3686
+ var result = call$4(exec, R, S);
3687
+ if (result !== null) anObject$3(result);
3647
3688
  return result;
3648
3689
  }
3649
- if (classof(R) === 'RegExp') return call$3(regexpExec, R, S);
3690
+ if (classof(R) === 'RegExp') return call$4(regexpExec, R, S);
3650
3691
  throw new $TypeError('RegExp#exec called on incompatible receiver');
3651
3692
  };
3652
3693
 
3653
- var call$2 = functionCall;
3694
+ var call$3 = functionCall;
3654
3695
  var fixRegExpWellKnownSymbolLogic$1 = fixRegexpWellKnownSymbolLogic;
3655
- var anObject$1 = anObject$9;
3696
+ var anObject$2 = anObject$a;
3656
3697
  var isNullOrUndefined$1 = isNullOrUndefined$4;
3657
- var requireObjectCoercible$5 = requireObjectCoercible$9;
3698
+ var requireObjectCoercible$7 = requireObjectCoercible$b;
3658
3699
  var sameValue = sameValue$1;
3659
- var toString$6 = toString$a;
3700
+ var toString$8 = toString$c;
3660
3701
  var getMethod$1 = getMethod$3;
3661
3702
  var regExpExec$1 = regexpExecAbstract;
3662
3703
 
@@ -3666,15 +3707,15 @@ fixRegExpWellKnownSymbolLogic$1('search', function (SEARCH, nativeSearch, maybeC
3666
3707
  // `String.prototype.search` method
3667
3708
  // https://tc39.es/ecma262/#sec-string.prototype.search
3668
3709
  function search(regexp) {
3669
- var O = requireObjectCoercible$5(this);
3710
+ var O = requireObjectCoercible$7(this);
3670
3711
  var searcher = isNullOrUndefined$1(regexp) ? undefined : getMethod$1(regexp, SEARCH);
3671
- return searcher ? call$2(searcher, regexp, O) : new RegExp(regexp)[SEARCH](toString$6(O));
3712
+ return searcher ? call$3(searcher, regexp, O) : new RegExp(regexp)[SEARCH](toString$8(O));
3672
3713
  },
3673
3714
  // `RegExp.prototype[@@search]` method
3674
3715
  // https://tc39.es/ecma262/#sec-regexp.prototype-@@search
3675
3716
  function (string) {
3676
- var rx = anObject$1(this);
3677
- var S = toString$6(string);
3717
+ var rx = anObject$2(this);
3718
+ var S = toString$8(string);
3678
3719
  var res = maybeCallNative(nativeSearch, rx, S);
3679
3720
 
3680
3721
  if (res.done) return res.value;
@@ -3689,25 +3730,25 @@ fixRegExpWellKnownSymbolLogic$1('search', function (SEARCH, nativeSearch, maybeC
3689
3730
  });
3690
3731
 
3691
3732
  var classofRaw = classofRaw$2;
3692
- var uncurryThis$7 = functionUncurryThis;
3733
+ var uncurryThis$8 = functionUncurryThis;
3693
3734
 
3694
3735
  var functionUncurryThisClause = function (fn) {
3695
3736
  // Nashorn bug:
3696
3737
  // https://github.com/zloirock/core-js/issues/1128
3697
3738
  // https://github.com/zloirock/core-js/issues/1130
3698
- if (classofRaw(fn) === 'Function') return uncurryThis$7(fn);
3739
+ if (classofRaw(fn) === 'Function') return uncurryThis$8(fn);
3699
3740
  };
3700
3741
 
3701
- var $$3 = _export;
3702
- var uncurryThis$6 = functionUncurryThisClause;
3742
+ var $$4 = _export;
3743
+ var uncurryThis$7 = functionUncurryThisClause;
3703
3744
  var getOwnPropertyDescriptor$1 = objectGetOwnPropertyDescriptor.f;
3704
- var toLength$2 = toLength$4;
3705
- var toString$5 = toString$a;
3745
+ var toLength$3 = toLength$5;
3746
+ var toString$7 = toString$c;
3706
3747
  var notARegExp$1 = notARegexp;
3707
- var requireObjectCoercible$4 = requireObjectCoercible$9;
3748
+ var requireObjectCoercible$6 = requireObjectCoercible$b;
3708
3749
  var correctIsRegExpLogic$1 = correctIsRegexpLogic;
3709
3750
 
3710
- var stringSlice$3 = uncurryThis$6(''.slice);
3751
+ var stringSlice$4 = uncurryThis$7(''.slice);
3711
3752
  var min$2 = Math.min;
3712
3753
 
3713
3754
  var CORRECT_IS_REGEXP_LOGIC$1 = correctIsRegExpLogic$1('startsWith');
@@ -3719,13 +3760,13 @@ var MDN_POLYFILL_BUG$1 = !CORRECT_IS_REGEXP_LOGIC$1 && !!function () {
3719
3760
 
3720
3761
  // `String.prototype.startsWith` method
3721
3762
  // https://tc39.es/ecma262/#sec-string.prototype.startswith
3722
- $$3({ target: 'String', proto: true, forced: !MDN_POLYFILL_BUG$1 && !CORRECT_IS_REGEXP_LOGIC$1 }, {
3763
+ $$4({ target: 'String', proto: true, forced: !MDN_POLYFILL_BUG$1 && !CORRECT_IS_REGEXP_LOGIC$1 }, {
3723
3764
  startsWith: function startsWith(searchString /* , position = 0 */) {
3724
- var that = toString$5(requireObjectCoercible$4(this));
3765
+ var that = toString$7(requireObjectCoercible$6(this));
3725
3766
  notARegExp$1(searchString);
3726
- var index = toLength$2(min$2(arguments.length > 1 ? arguments[1] : undefined, that.length));
3727
- var search = toString$5(searchString);
3728
- return stringSlice$3(that, index, index + search.length) === search;
3767
+ var index = toLength$3(min$2(arguments.length > 1 ? arguments[1] : undefined, that.length));
3768
+ var search = toString$7(searchString);
3769
+ return stringSlice$4(that, index, index + search.length) === search;
3729
3770
  }
3730
3771
  });
3731
3772
 
@@ -3822,103 +3863,465 @@ function fitDateRangeToDayPeriod(dateRange, timezone) {
3822
3863
  return fitDateRangeToDayPeriodFunction(timezone)(dateRange);
3823
3864
  }
3824
3865
 
3825
- /**
3826
- * Returns true if the index is a non-negative integer.
3827
- *
3828
- * @param input
3829
- */
3830
- function isValidDateCellIndex(input) {
3831
- return input >= 0 && Number.isInteger(input);
3832
- }
3833
- class DateCell {
3834
- constructor(template) {
3835
- if (template) {
3836
- this.i = template.i;
3837
- }
3838
- }
3839
- }
3840
- __decorate([classTransformer.Expose(), classValidator.IsNumber(), classValidator.Min(0), __metadata("design:type", Number)], DateCell.prototype, "i", void 0);
3841
- /**
3842
- * Converts the input number or DateCell to a DateCell.
3843
- *
3844
- * @param dateCellOrIndex
3845
- * @returns
3846
- */
3847
- function dateCell(dateCellOrIndex) {
3848
- return typeof dateCellOrIndex === 'number' ? {
3849
- i: dateCellOrIndex
3850
- } : dateCellOrIndex;
3851
- }
3852
- /**
3853
- * Creates a new DateCellTimingStartsAt for the given time and timezone.
3854
- *
3855
- * @param now
3856
- * @returns
3857
- */
3858
- function dateCellTimingStartsAtForStartOfDay(input = {}) {
3859
- var _a;
3860
- const timezone = (_a = input.timezone) !== null && _a !== void 0 ? _a : requireCurrentTimezone();
3861
- let startsAt = dateFns.startOfDay(new Date());
3862
- if (input.timezone != null) {
3863
- startsAt = dateTimezoneUtcNormal(timezone).targetDateToSystemDate(startsAt);
3864
- }
3865
- return {
3866
- startsAt,
3867
- timezone
3866
+ var toIntegerOrInfinity$2 = toIntegerOrInfinity$5;
3867
+ var toString$6 = toString$c;
3868
+ var requireObjectCoercible$5 = requireObjectCoercible$b;
3869
+
3870
+ var $RangeError = RangeError;
3871
+
3872
+ // `String.prototype.repeat` method implementation
3873
+ // https://tc39.es/ecma262/#sec-string.prototype.repeat
3874
+ var stringRepeat = function repeat(count) {
3875
+ var str = toString$6(requireObjectCoercible$5(this));
3876
+ var result = '';
3877
+ var n = toIntegerOrInfinity$2(count);
3878
+ if (n < 0 || n === Infinity) throw new $RangeError('Wrong number of repetitions');
3879
+ for (;n > 0; (n >>>= 1) && (str += str)) if (n & 1) result += str;
3880
+ return result;
3881
+ };
3882
+
3883
+ // https://github.com/tc39/proposal-string-pad-start-end
3884
+ var uncurryThis$6 = functionUncurryThis;
3885
+ var toLength$2 = toLength$5;
3886
+ var toString$5 = toString$c;
3887
+ var $repeat = stringRepeat;
3888
+ var requireObjectCoercible$4 = requireObjectCoercible$b;
3889
+
3890
+ var repeat = uncurryThis$6($repeat);
3891
+ var stringSlice$3 = uncurryThis$6(''.slice);
3892
+ var ceil = Math.ceil;
3893
+
3894
+ // `String.prototype.{ padStart, padEnd }` methods implementation
3895
+ var createMethod$2 = function (IS_END) {
3896
+ return function ($this, maxLength, fillString) {
3897
+ var S = toString$5(requireObjectCoercible$4($this));
3898
+ var intMaxLength = toLength$2(maxLength);
3899
+ var stringLength = S.length;
3900
+ var fillStr = fillString === undefined ? ' ' : toString$5(fillString);
3901
+ var fillLen, stringFiller;
3902
+ if (intMaxLength <= stringLength || fillStr === '') return S;
3903
+ fillLen = intMaxLength - stringLength;
3904
+ stringFiller = repeat(fillStr, ceil(fillLen / fillStr.length));
3905
+ if (stringFiller.length > fillLen) stringFiller = stringSlice$3(stringFiller, 0, fillLen);
3906
+ return IS_END ? S + stringFiller : stringFiller + S;
3868
3907
  };
3869
- }
3870
- class DateCellTiming extends DateDurationSpan {
3871
- constructor(template) {
3872
- super(template);
3873
- if (template) {
3874
- this.end = template.end;
3875
- this.timezone = template.timezone;
3876
- }
3908
+ };
3909
+
3910
+ var stringPad = {
3911
+ // `String.prototype.padStart` method
3912
+ // https://tc39.es/ecma262/#sec-string.prototype.padstart
3913
+ start: createMethod$2(false),
3914
+ // `String.prototype.padEnd` method
3915
+ // https://tc39.es/ecma262/#sec-string.prototype.padend
3916
+ end: createMethod$2(true)
3917
+ };
3918
+
3919
+ // https://github.com/zloirock/core-js/issues/280
3920
+ var userAgent = engineUserAgent;
3921
+
3922
+ var stringPadWebkitBug = /Version\/10(?:\.\d+){1,2}(?: [\w./]+)?(?: Mobile\/\w+)? Safari\//.test(userAgent);
3923
+
3924
+ var $$3 = _export;
3925
+ var $padStart = stringPad.start;
3926
+ var WEBKIT_BUG = stringPadWebkitBug;
3927
+
3928
+ // `String.prototype.padStart` method
3929
+ // https://tc39.es/ecma262/#sec-string.prototype.padstart
3930
+ $$3({ target: 'String', proto: true, forced: WEBKIT_BUG }, {
3931
+ padStart: function padStart(maxLength /* , fillString = ' ' */) {
3932
+ return $padStart(this, maxLength, arguments.length > 1 ? arguments[1] : undefined);
3877
3933
  }
3934
+ });
3935
+
3936
+ var call$2 = functionCall;
3937
+ var hasOwn = hasOwnProperty_1;
3938
+ var isPrototypeOf = objectIsPrototypeOf;
3939
+ var regExpFlags = regexpFlags$1;
3940
+
3941
+ var RegExpPrototype$1 = RegExp.prototype;
3942
+
3943
+ var regexpGetFlags = function (R) {
3944
+ var flags = R.flags;
3945
+ return flags === undefined && !('flags' in RegExpPrototype$1) && !hasOwn(R, 'flags') && isPrototypeOf(RegExpPrototype$1, R)
3946
+ ? call$2(regExpFlags, R) : flags;
3947
+ };
3948
+
3949
+ var PROPER_FUNCTION_NAME$1 = functionName.PROPER;
3950
+ var defineBuiltIn = defineBuiltIn$5;
3951
+ var anObject$1 = anObject$a;
3952
+ var $toString = toString$c;
3953
+ var fails$3 = fails$m;
3954
+ var getRegExpFlags = regexpGetFlags;
3955
+
3956
+ var TO_STRING = 'toString';
3957
+ var RegExpPrototype = RegExp.prototype;
3958
+ var nativeToString = RegExpPrototype[TO_STRING];
3959
+
3960
+ var NOT_GENERIC = fails$3(function () { return nativeToString.call({ source: 'a', flags: 'b' }) !== '/a/b'; });
3961
+ // FF44- RegExp#toString has a wrong name
3962
+ var INCORRECT_NAME = PROPER_FUNCTION_NAME$1 && nativeToString.name !== TO_STRING;
3963
+
3964
+ // `RegExp.prototype.toString` method
3965
+ // https://tc39.es/ecma262/#sec-regexp.prototype.tostring
3966
+ if (NOT_GENERIC || INCORRECT_NAME) {
3967
+ defineBuiltIn(RegExpPrototype, TO_STRING, function toString() {
3968
+ var R = anObject$1(this);
3969
+ var pattern = $toString(R.source);
3970
+ var flags = $toString(getRegExpFlags(R));
3971
+ return '/' + pattern + '/' + flags;
3972
+ }, { unsafe: true });
3878
3973
  }
3879
- __decorate([classTransformer.Expose(), classValidator.IsDate(), classTransformer.Type(() => Date), __metadata("design:type", Date)], DateCellTiming.prototype, "end", void 0);
3880
- __decorate([classTransformer.Expose(), classValidator.IsString(), IsKnownTimezone(), __metadata("design:type", String)], DateCellTiming.prototype, "timezone", void 0);
3974
+
3881
3975
  /**
3882
- * Creates a DateTimezoneUtcNormalInstance from the input. Asserts and gurantees that a timezone string is provided.
3883
- *
3884
- * If null/undefined is passed, returns a normal for the system time.
3976
+ * Creates a FormatDateRangeFunction using the input config.
3885
3977
  *
3886
- * @param timezoneInput
3978
+ * @param inputConfig
3887
3979
  * @returns
3888
3980
  */
3889
- function dateCellTimingTimezoneNormalInstance(timezoneInput) {
3890
- const normalInstance = timezoneInput ? dateTimezoneUtcNormal(timezoneInput) : systemDateTimezoneUtcNormal();
3891
- const timezone = normalInstance.configuredTimezoneString;
3892
- if (!timezone) {
3893
- throw new Error('dateCellTiming() timezone must be defined and be a known timezone string.');
3894
- }
3895
- return normalInstance;
3981
+ function formatDateRangeFunction(inputConfig) {
3982
+ const config = typeof inputConfig === 'function' ? {
3983
+ format: inputConfig
3984
+ } : inputConfig;
3985
+ const {
3986
+ format,
3987
+ separator = '-',
3988
+ simplifySameDate = false
3989
+ } = config;
3990
+ return (startOrDateRange, inputEnd) => {
3991
+ const {
3992
+ start,
3993
+ end
3994
+ } = dateOrDateRangeToDateRange(startOrDateRange, inputEnd);
3995
+ let string;
3996
+ if (simplifySameDate && isSameDateDay(start, end)) {
3997
+ string = format(start);
3998
+ } else {
3999
+ string = `${format(start)} ${separator} ${format(end)}`;
4000
+ }
4001
+ return string;
4002
+ };
3896
4003
  }
3897
4004
  /**
3898
- * Creates a FullDateCellTiming from the input timing.
3899
- *
3900
- * @param timing
3901
- * @returns
4005
+ * Formats the input date range using the start and end dates and a format function.
3902
4006
  */
3903
- function fullDateCellTiming(timing) {
3904
- return fullDateCellTimingTimezonePair(timing).fullTiming;
4007
+ function formatDateRange(range, inputConfig, separator) {
4008
+ const config = typeof inputConfig === 'function' ? {
4009
+ format: inputConfig,
4010
+ separator
4011
+ } : inputConfig;
4012
+ return formatDateRangeFunction(config)(range);
3905
4013
  }
3906
4014
  /**
3907
- * Creates a FullDateCellTimingTimezonePair from the input timing.
3908
- *
3909
- * @param timing
3910
- * @returns
4015
+ * Formats the input date range using the start and end dates and distance format function
3911
4016
  */
3912
- function fullDateCellTimingTimezonePair(timing) {
3913
- const {
3914
- startsAt,
3915
- end,
3916
- duration,
3917
- timezone
3918
- } = timing;
4017
+ function formatDateRangeDistanceFunction(inputConfig) {
3919
4018
  const {
3920
- start,
3921
- normalInstance
4019
+ transform: inputTransform,
4020
+ formatSameDay,
4021
+ onlyTimeRange,
4022
+ timeRangeTimezone,
4023
+ strict = false
4024
+ } = inputConfig;
4025
+ const transform = inputTransform !== null && inputTransform !== void 0 ? inputTransform : onlyTimeRange ? timeRangeTimezone ? fitDateRangeToDayPeriodFunction(timeRangeTimezone) : fitUTCDateRangeToDayPeriod : util.mapIdentityFunction();
4026
+ return (startOrDateRange, inputEnd) => {
4027
+ const dateRange = transform(dateOrDateRangeToDateRange(startOrDateRange, inputEnd));
4028
+ const {
4029
+ start,
4030
+ end
4031
+ } = dateRange;
4032
+ let string;
4033
+ if (formatSameDay != null && isSameDateDay(start, end)) {
4034
+ string = formatSameDay(dateRange);
4035
+ } else {
4036
+ if (strict) {
4037
+ string = dateFns.formatDistanceStrict(end, start, inputConfig);
4038
+ } else {
4039
+ string = dateFns.formatDistance(end, start, inputConfig);
4040
+ }
4041
+ }
4042
+ return string;
4043
+ };
4044
+ }
4045
+ /**
4046
+ * Legacy format date distance function that will format the input as start of day to end of day.
4047
+ */
4048
+ const formatDateDistance = formatDateRangeDistanceFunction({
4049
+ addSuffix: true,
4050
+ onlyTimeRange: false,
4051
+ transform: transformDateRangeWithStartOfDay,
4052
+ formatSameDay: range => {
4053
+ let text;
4054
+ if (dateFns.isSameDay(range.start, new Date())) {
4055
+ text = 'Today';
4056
+ } else {
4057
+ text = 'Same Day';
4058
+ }
4059
+ return text;
4060
+ }
4061
+ });
4062
+ /**
4063
+ * Formats the range between the two dates into a string.
4064
+ *
4065
+ * @param range
4066
+ * @param inputConfig
4067
+ * @returns
4068
+ */
4069
+ function formatDateRangeDistance(range, inputConfig = {}) {
4070
+ return formatDateRangeDistanceFunction(inputConfig)(range);
4071
+ }
4072
+ function formatToTimeRangeString(startOrDateRange, end, onlyTimeRange = false) {
4073
+ const dateRange = dateOrDateRangeToDateRange(startOrDateRange, end);
4074
+ const isSameDay = onlyTimeRange || isSameDateDay(dateRange.start, dateRange.end);
4075
+ const format = isSameDay ? formatToTimeString : formatToShortDateAndTimeString;
4076
+ return formatDateRange(dateRange, {
4077
+ format,
4078
+ simplifySameDate: false
4079
+ });
4080
+ }
4081
+ function formatToDayTimeRangeString(startOrDateRange, end) {
4082
+ return formatDateRange(dateOrDateRangeToDateRange(startOrDateRange, end), {
4083
+ format: formatToShortDateAndTimeString,
4084
+ simplifySameDate: false
4085
+ });
4086
+ }
4087
+ function formatToDayRangeString(startOrDateRange, endOrFormat, inputFormat) {
4088
+ let end;
4089
+ if (endOrFormat != null) {
4090
+ if (typeof endOrFormat === 'function') {
4091
+ inputFormat = endOrFormat;
4092
+ } else {
4093
+ end = endOrFormat;
4094
+ }
4095
+ }
4096
+ const format = inputFormat !== null && inputFormat !== void 0 ? inputFormat : formatToShortDateString;
4097
+ return formatDateRange(dateOrDateRangeToDateRange(startOrDateRange, end), {
4098
+ format,
4099
+ simplifySameDate: true
4100
+ });
4101
+ }
4102
+ /**
4103
+ * Safely formats the input to an ISO8601DateString if possible, otherwise returns undefined.
4104
+ *
4105
+ * @param input
4106
+ * @returns
4107
+ */
4108
+ function safeFormatToISO8601DateString(input) {
4109
+ const date = safeToJsDate(input);
4110
+ return date != null && dateFns.isValid(date) ? formatToISO8601DateString(date) : undefined;
4111
+ }
4112
+ function formatToISO8601DateString(date = new Date()) {
4113
+ return date.toISOString();
4114
+ }
4115
+ /**
4116
+ * Converts the input Date or ISO8601DayString to an ISO8601DayString using the system's date (not UTC date).
4117
+ *
4118
+ * Use formatToISO8601DayStringForUTC() for using the UTC date.
4119
+ *
4120
+ * @param dateOrString
4121
+ * @returns
4122
+ */
4123
+ function toISO8601DayStringForSystem(dateOrString) {
4124
+ return isDate(dateOrString) ? formatToISO8601DayStringForSystem(dateOrString) : dateOrString;
4125
+ }
4126
+ function formatToISO8601DayStringForSystem(date = new Date()) {
4127
+ return dateFns.format(date, 'yyyy-MM-dd');
4128
+ }
4129
+ /**
4130
+ * Converts the input Date or ISO8601DayString to an ISO8601DayString using the UTC date.
4131
+ *
4132
+ * @param dateOrString
4133
+ * @returns
4134
+ */
4135
+ function toISO8601DayStringForUTC(dateOrString) {
4136
+ return isDate(dateOrString) ? formatToISO8601DayStringForUTC(dateOrString) : dateOrString;
4137
+ }
4138
+ function formatToISO8601DayStringForUTC(date = new Date()) {
4139
+ return `${date.getUTCFullYear()}-${(date.getUTCMonth() + 1).toString().padStart(2, '0')}-${date.getUTCDate().toString().padStart(2, '0')}`;
4140
+ }
4141
+ const dateShortDateStringFormat = 'MM/dd/yyyy';
4142
+ function formatToShortDateString(date = new Date()) {
4143
+ return dateFns.format(date, dateShortDateStringFormat);
4144
+ }
4145
+ const dateMonthDayStringFormat = 'MM/dd';
4146
+ function formatToMonthDayString(date = new Date()) {
4147
+ return dateFns.format(date, dateMonthDayStringFormat);
4148
+ }
4149
+ function formatToDateString(date) {
4150
+ return dateFns.format(date, 'EEE, MMM do');
4151
+ }
4152
+ const dateTimeStringFormat = 'h:mm a';
4153
+ function formatToTimeString(date) {
4154
+ return dateFns.format(date, dateTimeStringFormat);
4155
+ }
4156
+ const dateShortDateAndTimeStringFormat = `${dateShortDateStringFormat} ${dateTimeStringFormat}`;
4157
+ function formatToShortDateAndTimeString(date) {
4158
+ return dateFns.format(date, dateShortDateAndTimeStringFormat);
4159
+ }
4160
+ function formatToTimeAndDurationString(start, end) {
4161
+ const minutes = dateFns.differenceInMinutes(end, start);
4162
+ let subtitle;
4163
+ if (minutes > 120) {
4164
+ subtitle = `(${dateFns.formatDistance(end, start, {
4165
+ includeSeconds: false
4166
+ })})`;
4167
+ } else {
4168
+ subtitle = `${minutes ? `(${minutes} Minutes)` : ''}`;
4169
+ }
4170
+ return `${formatToTimeString(start)} ${subtitle}`;
4171
+ }
4172
+ function formatStartedEndedDistanceString({
4173
+ start,
4174
+ end
4175
+ }) {
4176
+ const state = dateRangeRelativeState({
4177
+ start,
4178
+ end
4179
+ });
4180
+ let distanceText;
4181
+ switch (state) {
4182
+ case 'past':
4183
+ distanceText = `ended ${dateFns.formatDistanceToNow(end, {
4184
+ addSuffix: true
4185
+ })}`;
4186
+ break;
4187
+ case 'present':
4188
+ distanceText = `started ${dateFns.formatDistanceToNow(start, {
4189
+ addSuffix: true
4190
+ })}`;
4191
+ break;
4192
+ case 'future':
4193
+ distanceText = `starting ${dateFns.formatDistanceToNow(start, {
4194
+ addSuffix: true
4195
+ })}`;
4196
+ break;
4197
+ }
4198
+ return distanceText;
4199
+ }
4200
+ /**
4201
+ * 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.
4202
+ *
4203
+ * @param input
4204
+ * @returns
4205
+ */
4206
+ function toJsDayDate(input) {
4207
+ return isDate(input) ? dateFns.startOfDay(input) : parseISO8601DayStringToDate(input);
4208
+ }
4209
+ function parseISO8601DayStringToDate(dayString) {
4210
+ // TODO: Does not support negative years.
4211
+ const inputSplit = dayString.split('-');
4212
+ const numberOfYs = inputSplit[0].length;
4213
+ const format = util.repeatString('y', numberOfYs) + '-MM-dd';
4214
+ dayString = dayString.slice(0, numberOfYs + 6); // remove everything past the days
4215
+ const result = dateFns.parse(dayString, format, new Date());
4216
+ return dateFns.startOfDay(result);
4217
+ }
4218
+ // MARK: Compat
4219
+ /**
4220
+ * @deprecated use toISO8601DayStringForSystem instead for clarity. Will be removed in the future.
4221
+ */
4222
+ const toISO8601DayString = toISO8601DayStringForSystem;
4223
+ /**
4224
+ * @deprecated use formatToISO8601DayStringForSystem instead for clarity. Will be removed in the future.
4225
+ */
4226
+ const formatToISO8601DayString = formatToISO8601DayStringForSystem;
4227
+
4228
+ /**
4229
+ * Returns true if the index is a non-negative integer.
4230
+ *
4231
+ * @param input
4232
+ */
4233
+ function isValidDateCellIndex(input) {
4234
+ return input >= 0 && Number.isInteger(input);
4235
+ }
4236
+ class DateCell {
4237
+ constructor(template) {
4238
+ if (template) {
4239
+ this.i = template.i;
4240
+ }
4241
+ }
4242
+ }
4243
+ __decorate([classTransformer.Expose(), classValidator.IsNumber(), classValidator.Min(0), __metadata("design:type", Number)], DateCell.prototype, "i", void 0);
4244
+ /**
4245
+ * Converts the input number or DateCell to a DateCell.
4246
+ *
4247
+ * @param dateCellOrIndex
4248
+ * @returns
4249
+ */
4250
+ function dateCell(dateCellOrIndex) {
4251
+ return typeof dateCellOrIndex === 'number' ? {
4252
+ i: dateCellOrIndex
4253
+ } : dateCellOrIndex;
4254
+ }
4255
+ /**
4256
+ * Creates a new DateCellTimingStartsAt for the given time and timezone.
4257
+ *
4258
+ * @param now
4259
+ * @returns
4260
+ */
4261
+ function dateCellTimingStartsAtForStartOfDay(input = {}) {
4262
+ var _a;
4263
+ const timezone = (_a = input.timezone) !== null && _a !== void 0 ? _a : requireCurrentTimezone();
4264
+ let startsAt = dateFns.startOfDay(new Date());
4265
+ if (input.timezone != null) {
4266
+ startsAt = dateTimezoneUtcNormal(timezone).targetDateToSystemDate(startsAt);
4267
+ }
4268
+ return {
4269
+ startsAt,
4270
+ timezone
4271
+ };
4272
+ }
4273
+ class DateCellTiming extends DateDurationSpan {
4274
+ constructor(template) {
4275
+ super(template);
4276
+ if (template) {
4277
+ this.end = template.end;
4278
+ this.timezone = template.timezone;
4279
+ }
4280
+ }
4281
+ }
4282
+ __decorate([classTransformer.Expose(), classValidator.IsDate(), classTransformer.Type(() => Date), __metadata("design:type", Date)], DateCellTiming.prototype, "end", void 0);
4283
+ __decorate([classTransformer.Expose(), classValidator.IsString(), IsKnownTimezone(), __metadata("design:type", String)], DateCellTiming.prototype, "timezone", void 0);
4284
+ /**
4285
+ * Creates a DateTimezoneUtcNormalInstance from the input. Asserts and gurantees that a timezone string is provided.
4286
+ *
4287
+ * If null/undefined is passed, returns a normal for the system time.
4288
+ *
4289
+ * @param timezoneInput
4290
+ * @returns
4291
+ */
4292
+ function dateCellTimingTimezoneNormalInstance(timezoneInput) {
4293
+ const normalInstance = timezoneInput ? dateTimezoneUtcNormal(timezoneInput) : systemDateTimezoneUtcNormal();
4294
+ const timezone = normalInstance.configuredTimezoneString;
4295
+ if (!timezone) {
4296
+ throw new Error('dateCellTiming() timezone must be defined and be a known timezone string.');
4297
+ }
4298
+ return normalInstance;
4299
+ }
4300
+ /**
4301
+ * Creates a FullDateCellTiming from the input timing.
4302
+ *
4303
+ * @param timing
4304
+ * @returns
4305
+ */
4306
+ function fullDateCellTiming(timing) {
4307
+ return fullDateCellTimingTimezonePair(timing).fullTiming;
4308
+ }
4309
+ /**
4310
+ * Creates a FullDateCellTimingTimezonePair from the input timing.
4311
+ *
4312
+ * @param timing
4313
+ * @returns
4314
+ */
4315
+ function fullDateCellTimingTimezonePair(timing) {
4316
+ const {
4317
+ startsAt,
4318
+ end,
4319
+ duration,
4320
+ timezone
4321
+ } = timing;
4322
+ const {
4323
+ start,
4324
+ normalInstance
3922
4325
  } = dateCellTimingStartPair(timing);
3923
4326
  const fullTiming = {
3924
4327
  start,
@@ -3955,7 +4358,7 @@ function isValidDateCellTimingStartDate(date) {
3955
4358
  *
3956
4359
  * The start date from the inputDate is considered to to have the offset noted in DateCell, and will be retained.
3957
4360
  */
3958
- function dateCellTiming(durationInput, inputRange, timezoneInput) {
4361
+ function dateCellTiming(durationInput, rangeInput, timezoneInput) {
3959
4362
  const {
3960
4363
  duration
3961
4364
  } = durationInput;
@@ -3967,52 +4370,55 @@ function dateCellTiming(durationInput, inputRange, timezoneInput) {
3967
4370
  const {
3968
4371
  startsAt: inputStartsAt
3969
4372
  } = durationInput;
3970
- // it is important that startsAt is evaluated the system time normal, as addDays/addMinutes and related functionality rely on the system timezone.
3971
- let startsAtInSystemTimezone = normalInstance ? normalInstance.systemDateToTargetDate(inputStartsAt) : inputStartsAt;
3972
- let numberOfBlockedDays;
3973
- let inputDate;
3974
- let range;
3975
- if (typeof inputRange === 'number') {
4373
+ // it is important that startsAt is evaluated the base time normal so we can avoid daylight savings issues
4374
+ let startsAtInUtc = normalInstance.baseDateToTargetDate(inputStartsAt);
4375
+ let numberOfDayBlocks;
4376
+ let hasRangeFromInput = false;
4377
+ let rangeInUtc;
4378
+ function createRangeWithStart(dateInUtc) {
4379
+ const startOfDateInUtc = util.startOfDayForUTCDateInUTC(dateInUtc);
4380
+ return {
4381
+ start: startOfDateInUtc,
4382
+ end: dateFns.addMinutes(dateFns.addHours(startOfDateInUtc, 24), -1)
4383
+ };
4384
+ }
4385
+ if (typeof rangeInput === 'number') {
3976
4386
  // input range is a number of days
3977
- numberOfBlockedDays = inputRange - 1;
3978
- range = dateRange({
3979
- type: exports.DateRangeType.DAY,
3980
- date: startsAtInSystemTimezone
3981
- });
3982
- } else if (isDateRange(inputRange)) {
4387
+ numberOfDayBlocks = rangeInput - 1;
4388
+ rangeInUtc = createRangeWithStart(startsAtInUtc);
4389
+ } else if (!isDateRange(rangeInput)) {
4390
+ // inputRange is a distance
4391
+ numberOfDayBlocks = rangeInput.distance - 1;
4392
+ const startDateInUtc = rangeInput.date ? normalInstance.baseDateToSystemDate(rangeInput.date) : startsAtInUtc;
4393
+ rangeInUtc = createRangeWithStart(startDateInUtc);
4394
+ hasRangeFromInput = true;
4395
+ } else {
3983
4396
  // input range is a DateRange
3984
- range = inputRange;
3985
- inputDate = inputRange.start;
3986
- if (!isValidDateCellTimingStartDate(inputRange.start)) {
4397
+ if (!isValidDateCellTimingStartDate(rangeInput.start)) {
3987
4398
  throw new Error('Invalid dateCellTiming start date passed to dateCellTiming() via inputRange.');
3988
4399
  }
3989
- numberOfBlockedDays = dateFns.differenceInDays(inputRange.end, inputRange.start); // min of 1 day
3990
- } else {
3991
- // input range is a Date
3992
- inputDate = startsAtInSystemTimezone;
3993
- numberOfBlockedDays = inputRange.distance - 1;
3994
- range = dateRange({
3995
- type: exports.DateRangeType.DAY,
3996
- date: inputDate
3997
- }, true);
3998
- }
3999
- if (inputDate != null) {
4400
+ rangeInUtc = normalInstance.transformDateRangeToTimezoneFunction('baseDateToSystemDate')(rangeInput);
4401
+ numberOfDayBlocks = dateFns.differenceInDays(rangeInput.end, rangeInput.start); // min of 1 day. Uses system time as-is
4402
+ hasRangeFromInput = true;
4403
+ }
4404
+ if (hasRangeFromInput) {
4000
4405
  // input date takes priority, so move the startsAt's date to be on the same date.
4001
- startsAtInSystemTimezone = copyHoursAndMinutesFromDate(range.start, startsAtInSystemTimezone, true);
4002
- const startedBeforeRange = dateFns.isBefore(startsAtInSystemTimezone, range.start);
4406
+ startsAtInUtc = copyHoursAndMinutesFromUTCDate(rangeInUtc.start, startsAtInUtc, true);
4407
+ const startedBeforeRange = dateFns.isBefore(startsAtInUtc, rangeInUtc.start);
4003
4408
  if (startedBeforeRange) {
4004
- startsAtInSystemTimezone = dateFns.addDays(startsAtInSystemTimezone, 1); // starts 24 hours later
4005
- numberOfBlockedDays = Math.max(numberOfBlockedDays - 1, 0); // reduce number of applied days by 1, to a min of 0
4409
+ startsAtInUtc = dateFns.addHours(startsAtInUtc, 24); // starts 24 hours later
4410
+ numberOfDayBlocks = Math.max(numberOfDayBlocks - 1, 0); // reduce number of applied days by 1, to a min of 0
4006
4411
  }
4007
4412
  } else {
4008
- startsAtInSystemTimezone = roundDownToMinute(startsAtInSystemTimezone); // clear seconds and milliseconds from startsAt
4413
+ startsAtInUtc = roundDownToMinute(startsAtInUtc); // clear seconds and milliseconds from startsAt
4009
4414
  }
4010
4415
 
4011
- const lastStartsAtInSystemTimezone = dateFns.addDays(startsAtInSystemTimezone, numberOfBlockedDays); // use addDays so the system (if it experiences daylight savings) can change for daylight savings
4416
+ const lastStartsAtInBaseTimezone = dateFns.addHours(startsAtInUtc, numberOfDayBlocks * 24); // use addDays so the system (if it experiences daylight savings) can account for change for daylight savings
4012
4417
  // calculate end to be the ending date/time of the final duration span
4013
- const end = normalInstance.targetDateToSystemDate(dateFns.addMinutes(lastStartsAtInSystemTimezone, duration));
4014
- const start = normalInstance.targetDateToSystemDate(dateFns.startOfDay(startsAtInSystemTimezone));
4015
- const startsAt = normalInstance.targetDateToSystemDate(startsAtInSystemTimezone);
4418
+ const end = dateFns.addMinutes(normalInstance.targetDateToBaseDate(lastStartsAtInBaseTimezone), duration);
4419
+ const utcDay = formatToISO8601DayStringForUTC(startsAtInUtc);
4420
+ const start = normalInstance.startOfDayInTargetTimezone(utcDay);
4421
+ const startsAt = normalInstance.targetDateToBaseDate(startsAtInUtc);
4016
4422
  return {
4017
4423
  start,
4018
4424
  end,
@@ -6960,236 +7366,6 @@ function calendarDateForDateDurationSpan(dateDurationSpan) {
6960
7366
  }, dateDurationSpan);
6961
7367
  }
6962
7368
 
6963
- /**
6964
- * Creates a FormatDateRangeFunction using the input config.
6965
- *
6966
- * @param inputConfig
6967
- * @returns
6968
- */
6969
- function formatDateRangeFunction(inputConfig) {
6970
- const config = typeof inputConfig === 'function' ? {
6971
- format: inputConfig
6972
- } : inputConfig;
6973
- const {
6974
- format,
6975
- separator = '-',
6976
- simplifySameDate = false
6977
- } = config;
6978
- return (startOrDateRange, inputEnd) => {
6979
- const {
6980
- start,
6981
- end
6982
- } = dateOrDateRangeToDateRange(startOrDateRange, inputEnd);
6983
- let string;
6984
- if (simplifySameDate && isSameDateDay(start, end)) {
6985
- string = format(start);
6986
- } else {
6987
- string = `${format(start)} ${separator} ${format(end)}`;
6988
- }
6989
- return string;
6990
- };
6991
- }
6992
- /**
6993
- * Formats the input date range using the start and end dates and a format function.
6994
- */
6995
- function formatDateRange(range, inputConfig, separator) {
6996
- const config = typeof inputConfig === 'function' ? {
6997
- format: inputConfig,
6998
- separator
6999
- } : inputConfig;
7000
- return formatDateRangeFunction(config)(range);
7001
- }
7002
- /**
7003
- * Formats the input date range using the start and end dates and distance format function
7004
- */
7005
- function formatDateRangeDistanceFunction(inputConfig) {
7006
- const {
7007
- transform: inputTransform,
7008
- formatSameDay,
7009
- onlyTimeRange,
7010
- timeRangeTimezone,
7011
- strict = false
7012
- } = inputConfig;
7013
- const transform = inputTransform !== null && inputTransform !== void 0 ? inputTransform : onlyTimeRange ? timeRangeTimezone ? fitDateRangeToDayPeriodFunction(timeRangeTimezone) : fitUTCDateRangeToDayPeriod : util.mapIdentityFunction();
7014
- return (startOrDateRange, inputEnd) => {
7015
- const dateRange = transform(dateOrDateRangeToDateRange(startOrDateRange, inputEnd));
7016
- const {
7017
- start,
7018
- end
7019
- } = dateRange;
7020
- let string;
7021
- if (formatSameDay != null && isSameDateDay(start, end)) {
7022
- string = formatSameDay(dateRange);
7023
- } else {
7024
- if (strict) {
7025
- string = dateFns.formatDistanceStrict(end, start, inputConfig);
7026
- } else {
7027
- string = dateFns.formatDistance(end, start, inputConfig);
7028
- }
7029
- }
7030
- return string;
7031
- };
7032
- }
7033
- /**
7034
- * Legacy format date distance function that will format the input as start of day to end of day.
7035
- */
7036
- const formatDateDistance = formatDateRangeDistanceFunction({
7037
- addSuffix: true,
7038
- onlyTimeRange: false,
7039
- transform: transformDateRangeWithStartOfDay,
7040
- formatSameDay: range => {
7041
- let text;
7042
- if (dateFns.isSameDay(range.start, new Date())) {
7043
- text = 'Today';
7044
- } else {
7045
- text = 'Same Day';
7046
- }
7047
- return text;
7048
- }
7049
- });
7050
- /**
7051
- * Formats the range between the two dates into a string.
7052
- *
7053
- * @param range
7054
- * @param inputConfig
7055
- * @returns
7056
- */
7057
- function formatDateRangeDistance(range, inputConfig = {}) {
7058
- return formatDateRangeDistanceFunction(inputConfig)(range);
7059
- }
7060
- function formatToTimeRangeString(startOrDateRange, end, onlyTimeRange = false) {
7061
- const dateRange = dateOrDateRangeToDateRange(startOrDateRange, end);
7062
- const isSameDay = onlyTimeRange || isSameDateDay(dateRange.start, dateRange.end);
7063
- const format = isSameDay ? formatToTimeString : formatToShortDateAndTimeString;
7064
- return formatDateRange(dateRange, {
7065
- format,
7066
- simplifySameDate: false
7067
- });
7068
- }
7069
- function formatToDayTimeRangeString(startOrDateRange, end) {
7070
- return formatDateRange(dateOrDateRangeToDateRange(startOrDateRange, end), {
7071
- format: formatToShortDateAndTimeString,
7072
- simplifySameDate: false
7073
- });
7074
- }
7075
- function formatToDayRangeString(startOrDateRange, endOrFormat, inputFormat) {
7076
- let end;
7077
- if (endOrFormat != null) {
7078
- if (typeof endOrFormat === 'function') {
7079
- inputFormat = endOrFormat;
7080
- } else {
7081
- end = endOrFormat;
7082
- }
7083
- }
7084
- const format = inputFormat !== null && inputFormat !== void 0 ? inputFormat : formatToShortDateString;
7085
- return formatDateRange(dateOrDateRangeToDateRange(startOrDateRange, end), {
7086
- format,
7087
- simplifySameDate: true
7088
- });
7089
- }
7090
- /**
7091
- * Safely formats the input to an ISO8601DateString if possible, otherwise returns undefined.
7092
- *
7093
- * @param input
7094
- * @returns
7095
- */
7096
- function safeFormatToISO8601DateString(input) {
7097
- const date = safeToJsDate(input);
7098
- return date != null && dateFns.isValid(date) ? formatToISO8601DateString(date) : undefined;
7099
- }
7100
- function formatToISO8601DateString(date = new Date()) {
7101
- return date.toISOString();
7102
- }
7103
- /**
7104
- * Converts the input Date or ISO8601DayString to an ISO8601DayString.
7105
- *
7106
- * @param dateOrString
7107
- * @returns
7108
- */
7109
- function toISO8601DayString(dateOrString) {
7110
- return isDate(dateOrString) ? formatToISO8601DayString(dateOrString) : dateOrString;
7111
- }
7112
- function formatToISO8601DayString(date = new Date()) {
7113
- return dateFns.format(date, 'yyyy-MM-dd');
7114
- }
7115
- const dateShortDateStringFormat = 'MM/dd/yyyy';
7116
- function formatToShortDateString(date = new Date()) {
7117
- return dateFns.format(date, dateShortDateStringFormat);
7118
- }
7119
- const dateMonthDayStringFormat = 'MM/dd';
7120
- function formatToMonthDayString(date = new Date()) {
7121
- return dateFns.format(date, dateMonthDayStringFormat);
7122
- }
7123
- function formatToDateString(date) {
7124
- return dateFns.format(date, 'EEE, MMM do');
7125
- }
7126
- const dateTimeStringFormat = 'h:mm a';
7127
- function formatToTimeString(date) {
7128
- return dateFns.format(date, dateTimeStringFormat);
7129
- }
7130
- const dateShortDateAndTimeStringFormat = `${dateShortDateStringFormat} ${dateTimeStringFormat}`;
7131
- function formatToShortDateAndTimeString(date) {
7132
- return dateFns.format(date, dateShortDateAndTimeStringFormat);
7133
- }
7134
- function formatToTimeAndDurationString(start, end) {
7135
- const minutes = dateFns.differenceInMinutes(end, start);
7136
- let subtitle;
7137
- if (minutes > 120) {
7138
- subtitle = `(${dateFns.formatDistance(end, start, {
7139
- includeSeconds: false
7140
- })})`;
7141
- } else {
7142
- subtitle = `${minutes ? `(${minutes} Minutes)` : ''}`;
7143
- }
7144
- return `${formatToTimeString(start)} ${subtitle}`;
7145
- }
7146
- function formatStartedEndedDistanceString({
7147
- start,
7148
- end
7149
- }) {
7150
- const state = dateRangeRelativeState({
7151
- start,
7152
- end
7153
- });
7154
- let distanceText;
7155
- switch (state) {
7156
- case 'past':
7157
- distanceText = `ended ${dateFns.formatDistanceToNow(end, {
7158
- addSuffix: true
7159
- })}`;
7160
- break;
7161
- case 'present':
7162
- distanceText = `started ${dateFns.formatDistanceToNow(start, {
7163
- addSuffix: true
7164
- })}`;
7165
- break;
7166
- case 'future':
7167
- distanceText = `starting ${dateFns.formatDistanceToNow(start, {
7168
- addSuffix: true
7169
- })}`;
7170
- break;
7171
- }
7172
- return distanceText;
7173
- }
7174
- /**
7175
- * 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.
7176
- *
7177
- * @param input
7178
- * @returns
7179
- */
7180
- function toJsDayDate(input) {
7181
- return isDate(input) ? dateFns.startOfDay(input) : parseISO8601DayStringToDate(input);
7182
- }
7183
- function parseISO8601DayStringToDate(dayString) {
7184
- // TODO: Does not support negative years.
7185
- const inputSplit = dayString.split('-');
7186
- const numberOfYs = inputSplit[0].length;
7187
- const format = util.repeatString('y', numberOfYs) + '-MM-dd';
7188
- dayString = dayString.slice(0, numberOfYs + 6); // remove everything past the days
7189
- const result = dateFns.parse(dayString, format, new Date());
7190
- return dateFns.startOfDay(result);
7191
- }
7192
-
7193
7369
  class DateSet extends util.HashSet {
7194
7370
  constructor(values) {
7195
7371
  super({
@@ -7258,8 +7434,8 @@ function dateOrDayStringRangeToDateRange(range) {
7258
7434
  }
7259
7435
  function dateOrDayStringRangeToISO8601DayStringRange(range) {
7260
7436
  return {
7261
- start: toISO8601DayString(range.start),
7262
- end: toISO8601DayString(range.end)
7437
+ start: toISO8601DayStringForSystem(range.start),
7438
+ end: toISO8601DayStringForSystem(range.end)
7263
7439
  };
7264
7440
  }
7265
7441
 
@@ -7623,8 +7799,8 @@ var whitespaces$3 = '\u0009\u000A\u000B\u000C\u000D\u0020\u00A0\u1680\u2000\u200
7623
7799
  '\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200A\u202F\u205F\u3000\u2028\u2029\uFEFF';
7624
7800
 
7625
7801
  var uncurryThis$5 = functionUncurryThis;
7626
- var requireObjectCoercible$3 = requireObjectCoercible$9;
7627
- var toString$4 = toString$a;
7802
+ var requireObjectCoercible$3 = requireObjectCoercible$b;
7803
+ var toString$4 = toString$c;
7628
7804
  var whitespaces$2 = whitespaces$3;
7629
7805
 
7630
7806
  var replace$1 = uncurryThis$5(''.replace);
@@ -7654,7 +7830,7 @@ var stringTrim = {
7654
7830
  };
7655
7831
 
7656
7832
  var PROPER_FUNCTION_NAME = functionName.PROPER;
7657
- var fails$2 = fails$l;
7833
+ var fails$2 = fails$m;
7658
7834
  var whitespaces$1 = whitespaces$3;
7659
7835
 
7660
7836
  var non = '\u200B\u0085\u180E';
@@ -7693,9 +7869,9 @@ var functionApply = typeof Reflect == 'object' && Reflect.apply || (NATIVE_BIND
7693
7869
  });
7694
7870
 
7695
7871
  var uncurryThis$4 = functionUncurryThis;
7696
- var toIntegerOrInfinity$1 = toIntegerOrInfinity$4;
7697
- var toString$3 = toString$a;
7698
- var requireObjectCoercible$2 = requireObjectCoercible$9;
7872
+ var toIntegerOrInfinity$1 = toIntegerOrInfinity$5;
7873
+ var toString$3 = toString$c;
7874
+ var requireObjectCoercible$2 = requireObjectCoercible$b;
7699
7875
 
7700
7876
  var charAt$2 = uncurryThis$4(''.charAt);
7701
7877
  var charCodeAt = uncurryThis$4(''.charCodeAt);
@@ -7787,14 +7963,14 @@ var apply = functionApply;
7787
7963
  var call = functionCall;
7788
7964
  var uncurryThis$2 = functionUncurryThis;
7789
7965
  var fixRegExpWellKnownSymbolLogic = fixRegexpWellKnownSymbolLogic;
7790
- var fails$1 = fails$l;
7791
- var anObject = anObject$9;
7966
+ var fails$1 = fails$m;
7967
+ var anObject = anObject$a;
7792
7968
  var isCallable = isCallable$g;
7793
7969
  var isNullOrUndefined = isNullOrUndefined$4;
7794
- var toIntegerOrInfinity = toIntegerOrInfinity$4;
7795
- var toLength$1 = toLength$4;
7796
- var toString$2 = toString$a;
7797
- var requireObjectCoercible$1 = requireObjectCoercible$9;
7970
+ var toIntegerOrInfinity = toIntegerOrInfinity$5;
7971
+ var toLength$1 = toLength$5;
7972
+ var toString$2 = toString$c;
7973
+ var requireObjectCoercible$1 = requireObjectCoercible$b;
7798
7974
  var advanceStringIndex = advanceStringIndex$1;
7799
7975
  var getMethod = getMethod$3;
7800
7976
  var getSubstitution = getSubstitution$1;
@@ -8589,10 +8765,10 @@ class AnyIterResult extends BaseRRuleIter {
8589
8765
  var $$1 = _export;
8590
8766
  var uncurryThis$1 = functionUncurryThisClause;
8591
8767
  var getOwnPropertyDescriptor = objectGetOwnPropertyDescriptor.f;
8592
- var toLength = toLength$4;
8593
- var toString$1 = toString$a;
8768
+ var toLength = toLength$5;
8769
+ var toString$1 = toString$c;
8594
8770
  var notARegExp = notARegexp;
8595
- var requireObjectCoercible = requireObjectCoercible$9;
8771
+ var requireObjectCoercible = requireObjectCoercible$b;
8596
8772
  var correctIsRegExpLogic = correctIsRegexpLogic;
8597
8773
 
8598
8774
  var slice = uncurryThis$1(''.slice);
@@ -8620,9 +8796,9 @@ $$1({ target: 'String', proto: true, forced: !MDN_POLYFILL_BUG && !CORRECT_IS_RE
8620
8796
  });
8621
8797
 
8622
8798
  var global$1 = global$g;
8623
- var fails = fails$l;
8799
+ var fails = fails$m;
8624
8800
  var uncurryThis = functionUncurryThis;
8625
- var toString = toString$a;
8801
+ var toString = toString$c;
8626
8802
  var trim = stringTrim.trim;
8627
8803
  var whitespaces = whitespaces$3;
8628
8804
 
@@ -9081,6 +9257,7 @@ exports.baseDateToTargetDate = baseDateToTargetDate;
9081
9257
  exports.calculateAllConversions = calculateAllConversions;
9082
9258
  exports.calculateExpectedDateCellTimingDuration = calculateExpectedDateCellTimingDuration;
9083
9259
  exports.calculateExpectedDateCellTimingDurationPair = calculateExpectedDateCellTimingDurationPair;
9260
+ exports.calculateTimezoneOffset = calculateTimezoneOffset;
9084
9261
  exports.calendarDate = calendarDate;
9085
9262
  exports.calendarDateFactory = calendarDateFactory;
9086
9263
  exports.calendarDateForDateDurationSpan = calendarDateForDateDurationSpan;
@@ -9096,6 +9273,7 @@ exports.copyHoursAndMinutesFromDateToToday = copyHoursAndMinutesFromDateToToday;
9096
9273
  exports.copyHoursAndMinutesFromDateWithTimezoneNormal = copyHoursAndMinutesFromDateWithTimezoneNormal;
9097
9274
  exports.copyHoursAndMinutesFromNow = copyHoursAndMinutesFromNow;
9098
9275
  exports.copyHoursAndMinutesFromNowWithTimezoneNormal = copyHoursAndMinutesFromNowWithTimezoneNormal;
9276
+ exports.copyHoursAndMinutesFromUTCDate = copyHoursAndMinutesFromUTCDate;
9099
9277
  exports.copyHoursAndMinutesToDate = copyHoursAndMinutesToDate;
9100
9278
  exports.copyHoursAndMinutesToToday = copyHoursAndMinutesToToday;
9101
9279
  exports.dateCell = dateCell;
@@ -9210,6 +9388,8 @@ exports.formatToDayRangeString = formatToDayRangeString;
9210
9388
  exports.formatToDayTimeRangeString = formatToDayTimeRangeString;
9211
9389
  exports.formatToISO8601DateString = formatToISO8601DateString;
9212
9390
  exports.formatToISO8601DayString = formatToISO8601DayString;
9391
+ exports.formatToISO8601DayStringForSystem = formatToISO8601DayStringForSystem;
9392
+ exports.formatToISO8601DayStringForUTC = formatToISO8601DayStringForUTC;
9213
9393
  exports.formatToMonthDayString = formatToMonthDayString;
9214
9394
  exports.formatToShortDateAndTimeString = formatToShortDateAndTimeString;
9215
9395
  exports.formatToShortDateString = formatToShortDateString;
@@ -9285,6 +9465,7 @@ exports.isSameDateTimezoneConversionConfig = isSameDateTimezoneConversionConfig;
9285
9465
  exports.isSameDurationSpan = isSameDurationSpan;
9286
9466
  exports.isSameFullDateCellScheduleDateRange = isSameFullDateCellScheduleDateRange;
9287
9467
  exports.isSameFullDateCellTiming = isSameFullDateCellTiming;
9468
+ exports.isStartOfDayForSystem = isStartOfDayForSystem;
9288
9469
  exports.isStartOfDayInUTC = isStartOfDayInUTC;
9289
9470
  exports.isValidDateCellIndex = isValidDateCellIndex;
9290
9471
  exports.isValidDateCellRange = isValidDateCellRange;
@@ -9368,6 +9549,8 @@ exports.timezoneStringToTimezoneInfo = timezoneStringToTimezoneInfo;
9368
9549
  exports.toExpiration = toExpiration;
9369
9550
  exports.toExpires = toExpires;
9370
9551
  exports.toISO8601DayString = toISO8601DayString;
9552
+ exports.toISO8601DayStringForSystem = toISO8601DayStringForSystem;
9553
+ exports.toISO8601DayStringForUTC = toISO8601DayStringForUTC;
9371
9554
  exports.toISODateString = toISODateString;
9372
9555
  exports.toJsDate = toJsDate;
9373
9556
  exports.toJsDayDate = toJsDayDate;