@startlibs/utils 1.0.0-alpha-7o → 1.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/lib/index.js CHANGED
@@ -2,19 +2,18 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
- var React = require('react');
5
+ var _toConsumableArray = require('@babel/runtime/helpers/toConsumableArray');
6
6
  var _asyncToGenerator = require('@babel/runtime/helpers/asyncToGenerator');
7
7
  var _regeneratorRuntime = require('@babel/runtime/regenerator');
8
8
  var _awaitAsyncGenerator = require('@babel/runtime/helpers/awaitAsyncGenerator');
9
9
  var _wrapAsyncGenerator = require('@babel/runtime/helpers/wrapAsyncGenerator');
10
10
  var _times = require('lodash/fp/times');
11
11
  var _identity = require('lodash/fp/identity');
12
+ var React = require('react');
12
13
  var _slicedToArray = require('@babel/runtime/helpers/slicedToArray');
13
14
  var _objectSpread = require('@babel/runtime/helpers/objectSpread');
14
15
  var _isPlainObject = require('lodash/fp/isPlainObject');
15
- var _toConsumableArray = require('@babel/runtime/helpers/toConsumableArray');
16
- var _fromPairs = require('lodash/fp/fromPairs');
17
- var _isFinite = require('lodash/fp/isFinite');
16
+ var utils = require('@startlibs/utils');
18
17
  var _taggedTemplateLiteral = require('@babel/runtime/helpers/taggedTemplateLiteral');
19
18
  var _typeof = require('@babel/runtime/helpers/typeof');
20
19
  var _objectWithoutProperties = require('@babel/runtime/helpers/objectWithoutProperties');
@@ -29,6 +28,8 @@ var styled = require('styled-components');
29
28
  var createEmotion = require('create-emotion');
30
29
  var _flow = require('lodash/fp/flow');
31
30
  var _without = require('lodash/fp/without');
31
+ var _flatMap = require('lodash/fp/flatMap');
32
+ var _mapValues = require('lodash/fp/mapValues');
32
33
  var _map = require('lodash/fp/map');
33
34
  var _filter = require('lodash/fp/filter');
34
35
  var _each = require('lodash/fp/each');
@@ -41,22 +42,25 @@ var _toPath = require('lodash/fp/toPath');
41
42
  var _pullAt = require('lodash/fp/pullAt');
42
43
  var _curry = require('lodash/fp/curry');
43
44
  var _last = require('lodash/fp/last');
45
+ var _fromPairs = require('lodash/fp/fromPairs');
46
+ var _isFinite = require('lodash/fp/isFinite');
47
+ var _isString = require('lodash/fp/isString');
48
+ var _isNumber = require('lodash/fp/isNumber');
49
+ var _padCharsEnd = require('lodash/fp/padCharsEnd');
44
50
 
45
51
  function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
46
52
 
47
- var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
53
+ var _toConsumableArray__default = /*#__PURE__*/_interopDefaultLegacy(_toConsumableArray);
48
54
  var _asyncToGenerator__default = /*#__PURE__*/_interopDefaultLegacy(_asyncToGenerator);
49
55
  var _regeneratorRuntime__default = /*#__PURE__*/_interopDefaultLegacy(_regeneratorRuntime);
50
56
  var _awaitAsyncGenerator__default = /*#__PURE__*/_interopDefaultLegacy(_awaitAsyncGenerator);
51
57
  var _wrapAsyncGenerator__default = /*#__PURE__*/_interopDefaultLegacy(_wrapAsyncGenerator);
52
58
  var _times__default = /*#__PURE__*/_interopDefaultLegacy(_times);
53
59
  var _identity__default = /*#__PURE__*/_interopDefaultLegacy(_identity);
60
+ var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
54
61
  var _slicedToArray__default = /*#__PURE__*/_interopDefaultLegacy(_slicedToArray);
55
62
  var _objectSpread__default = /*#__PURE__*/_interopDefaultLegacy(_objectSpread);
56
63
  var _isPlainObject__default = /*#__PURE__*/_interopDefaultLegacy(_isPlainObject);
57
- var _toConsumableArray__default = /*#__PURE__*/_interopDefaultLegacy(_toConsumableArray);
58
- var _fromPairs__default = /*#__PURE__*/_interopDefaultLegacy(_fromPairs);
59
- var _isFinite__default = /*#__PURE__*/_interopDefaultLegacy(_isFinite);
60
64
  var _taggedTemplateLiteral__default = /*#__PURE__*/_interopDefaultLegacy(_taggedTemplateLiteral);
61
65
  var _typeof__default = /*#__PURE__*/_interopDefaultLegacy(_typeof);
62
66
  var _objectWithoutProperties__default = /*#__PURE__*/_interopDefaultLegacy(_objectWithoutProperties);
@@ -70,6 +74,8 @@ var styled__default = /*#__PURE__*/_interopDefaultLegacy(styled);
70
74
  var createEmotion__default = /*#__PURE__*/_interopDefaultLegacy(createEmotion);
71
75
  var _flow__default = /*#__PURE__*/_interopDefaultLegacy(_flow);
72
76
  var _without__default = /*#__PURE__*/_interopDefaultLegacy(_without);
77
+ var _flatMap__default = /*#__PURE__*/_interopDefaultLegacy(_flatMap);
78
+ var _mapValues__default = /*#__PURE__*/_interopDefaultLegacy(_mapValues);
73
79
  var _map__default = /*#__PURE__*/_interopDefaultLegacy(_map);
74
80
  var _filter__default = /*#__PURE__*/_interopDefaultLegacy(_filter);
75
81
  var _each__default = /*#__PURE__*/_interopDefaultLegacy(_each);
@@ -82,6 +88,11 @@ var _toPath__default = /*#__PURE__*/_interopDefaultLegacy(_toPath);
82
88
  var _pullAt__default = /*#__PURE__*/_interopDefaultLegacy(_pullAt);
83
89
  var _curry__default = /*#__PURE__*/_interopDefaultLegacy(_curry);
84
90
  var _last__default = /*#__PURE__*/_interopDefaultLegacy(_last);
91
+ var _fromPairs__default = /*#__PURE__*/_interopDefaultLegacy(_fromPairs);
92
+ var _isFinite__default = /*#__PURE__*/_interopDefaultLegacy(_isFinite);
93
+ var _isString__default = /*#__PURE__*/_interopDefaultLegacy(_isString);
94
+ var _isNumber__default = /*#__PURE__*/_interopDefaultLegacy(_isNumber);
95
+ var _padCharsEnd__default = /*#__PURE__*/_interopDefaultLegacy(_padCharsEnd);
85
96
 
86
97
  var createPromiseResolverPair = function createPromiseResolverPair() {
87
98
  var res, rej;
@@ -91,6 +102,20 @@ var createPromiseResolverPair = function createPromiseResolverPair() {
91
102
  });
92
103
  return [promise, [res, rej]];
93
104
  };
105
+ var createSimplePromiseLock = function createSimplePromiseLock() {
106
+ var promiseQueue = Promise.resolve();
107
+ return function () {
108
+ var resolve = _identity__default['default'];
109
+ var nextPromise = new Promise(function (res) {
110
+ resolve = res;
111
+ });
112
+ var prevPromise = promiseQueue;
113
+ promiseQueue = nextPromise;
114
+ return prevPromise.then(function () {
115
+ return resolve;
116
+ });
117
+ };
118
+ };
94
119
 
95
120
  function createSinglePromiseQueue() {
96
121
  return _createSinglePromiseQueue.apply(this, arguments);
@@ -234,6 +259,32 @@ function _createPromiseQueue() {
234
259
  return _createPromiseQueue.apply(this, arguments);
235
260
  }
236
261
 
262
+ var promiseMapReduce = function promiseMapReduce(arr, callback) {
263
+ return arr.reduce(function (acc, item) {
264
+ return acc.then(function (seq) {
265
+ return callback(item).then(function (res) {
266
+ return _toConsumableArray__default['default'](seq).concat([res]);
267
+ });
268
+ });
269
+ }, Promise.resolve([]));
270
+ };
271
+ var asyncDebounce = function asyncDebounce(fn) {
272
+ var delay = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 200;
273
+ var timeout;
274
+ return function () {
275
+ for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
276
+ args[_key] = arguments[_key];
277
+ }
278
+
279
+ clearTimeout(timeout);
280
+ return new Promise(function (res) {
281
+ timeout = setTimeout(function () {
282
+ return res(fn.apply(void 0, args));
283
+ }, delay);
284
+ });
285
+ };
286
+ };
287
+
237
288
  var getClosestOffsetScroll = function getClosestOffsetScroll(node) {
238
289
  if (!node) {
239
290
  return document.body;
@@ -388,699 +439,710 @@ function fixMediaQuery() {
388
439
  }
389
440
  }
390
441
 
391
- var formatPath = function formatPath() {
392
- for (var _len = arguments.length, paths = new Array(_len), _key = 0; _key < _len; _key++) {
393
- paths[_key] = arguments[_key];
394
- }
442
+ var resolveFetch =
443
+ /*#__PURE__*/
444
+ function () {
445
+ var _ref = _asyncToGenerator__default['default'](
446
+ /*#__PURE__*/
447
+ _regeneratorRuntime__default['default'].mark(function _callee(url, fetchOptions) {
448
+ var response, text, json;
449
+ return _regeneratorRuntime__default['default'].wrap(function _callee$(_context) {
450
+ while (1) {
451
+ switch (_context.prev = _context.next) {
452
+ case 0:
453
+ _context.prev = 0;
454
+ _context.next = 3;
455
+ return fetch(url, _objectSpread__default['default']({
456
+ credentials: 'same-origin'
457
+ }, fetchOptions));
395
458
 
396
- return paths.map(function (path) {
397
- return Array.isArray(path) ? path.join('.') : path ? path.toString().replace(/\[/g, '.').replace(/]/g, '') : '';
398
- }).filter(function (_) {
399
- return _;
400
- }).join('.');
401
- };
402
- var identityFn = function identityFn() {
403
- var n = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;
404
- return function () {
405
- for (var _len2 = arguments.length, e = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {
406
- e[_key2] = arguments[_key2];
407
- }
459
+ case 3:
460
+ response = _context.sent;
461
+ _context.next = 6;
462
+ return response.text();
408
463
 
409
- return e[n];
410
- };
411
- };
412
- var will = function will(fn) {
413
- for (var _len3 = arguments.length, props = new Array(_len3 > 1 ? _len3 - 1 : 0), _key3 = 1; _key3 < _len3; _key3++) {
414
- props[_key3 - 1] = arguments[_key3];
415
- }
464
+ case 6:
465
+ text = _context.sent;
466
+ _context.prev = 7;
467
+ json = JSON.parse(text);
468
+ return _context.abrupt("return", [json, response]);
416
469
 
417
- return function () {
418
- for (var _len4 = arguments.length, more = new Array(_len4), _key4 = 0; _key4 < _len4; _key4++) {
419
- more[_key4] = arguments[_key4];
420
- }
470
+ case 12:
471
+ _context.prev = 12;
472
+ _context.t0 = _context["catch"](7);
473
+ return _context.abrupt("return", [text, response]);
421
474
 
422
- return fn.apply(void 0, props.concat(more));
423
- };
424
- };
425
- var unWill = function unWill(fn) {
426
- for (var _len5 = arguments.length, props = new Array(_len5 > 1 ? _len5 - 1 : 0), _key5 = 1; _key5 < _len5; _key5++) {
427
- props[_key5 - 1] = arguments[_key5];
428
- }
475
+ case 15:
476
+ _context.next = 20;
477
+ break;
429
478
 
430
- return function () {
431
- return fn.apply(void 0, props);
432
- };
433
- };
434
- var lazyValue = function lazyValue(v) {
435
- return function () {
436
- return v;
479
+ case 17:
480
+ _context.prev = 17;
481
+ _context.t1 = _context["catch"](0);
482
+ return _context.abrupt("return", [_context.t1, false]);
483
+
484
+ case 20:
485
+ case "end":
486
+ return _context.stop();
487
+ }
488
+ }
489
+ }, _callee, this, [[0, 17], [7, 12]]);
490
+ }));
491
+
492
+ return function resolveFetch(_x, _x2) {
493
+ return _ref.apply(this, arguments);
437
494
  };
438
- };
439
- var callIfFunction = function callIfFunction(prop) {
440
- for (var _len6 = arguments.length, args = new Array(_len6 > 1 ? _len6 - 1 : 0), _key6 = 1; _key6 < _len6; _key6++) {
441
- args[_key6 - 1] = arguments[_key6];
442
- }
495
+ }();
443
496
 
444
- return typeof prop === "function" ? prop.apply(void 0, args) : prop;
445
- };
446
- var callIfFunctions = function callIfFunctions(prop) {
447
- for (var _len7 = arguments.length, args = new Array(_len7 > 1 ? _len7 - 1 : 0), _key7 = 1; _key7 < _len7; _key7++) {
448
- args[_key7 - 1] = arguments[_key7];
449
- }
497
+ var innerFetcher =
498
+ /*#__PURE__*/
499
+ function () {
500
+ var _ref2 = _asyncToGenerator__default['default'](
501
+ /*#__PURE__*/
502
+ _regeneratorRuntime__default['default'].mark(function _callee2(url, fetchOptions) {
503
+ var _ref3, _ref4, data, response;
450
504
 
451
- return typeof prop === "function" ? prop.apply(void 0, _toConsumableArray__default['default'](args.map(function (e) {
452
- return callIfFunction(e);
453
- }))) : prop;
454
- };
455
- var callMany = function callMany() {
456
- for (var _len8 = arguments.length, many = new Array(_len8), _key8 = 0; _key8 < _len8; _key8++) {
457
- many[_key8] = arguments[_key8];
458
- }
505
+ return _regeneratorRuntime__default['default'].wrap(function _callee2$(_context2) {
506
+ while (1) {
507
+ switch (_context2.prev = _context2.next) {
508
+ case 0:
509
+ _context2.next = 2;
510
+ return resolveFetch(url, fetchOptions);
459
511
 
460
- return function () {
461
- for (var _len9 = arguments.length, args = new Array(_len9), _key9 = 0; _key9 < _len9; _key9++) {
462
- args[_key9] = arguments[_key9];
463
- }
512
+ case 2:
513
+ _ref3 = _context2.sent;
514
+ _ref4 = _slicedToArray__default['default'](_ref3, 2);
515
+ data = _ref4[0];
516
+ response = _ref4[1];
464
517
 
465
- return many.map(function (_) {
466
- return callIfFunction.apply(void 0, [_].concat(args));
467
- });
468
- };
469
- };
470
- var ifUndefined = function ifUndefined(v) {
471
- for (var _len10 = arguments.length, or = new Array(_len10 > 1 ? _len10 - 1 : 0), _key10 = 1; _key10 < _len10; _key10++) {
472
- or[_key10 - 1] = arguments[_key10];
473
- }
518
+ if (!(!response || response.status >= 400)) {
519
+ _context2.next = 10;
520
+ break;
521
+ }
474
522
 
475
- return v !== undefined ? v : or.length === 1 ? or[0] : ifUndefined.apply(void 0, [or[0]].concat(_toConsumableArray__default['default'](or.slice(1))));
476
- };
477
- var using = function using() {
478
- for (var _len11 = arguments.length, v = new Array(_len11), _key11 = 0; _key11 < _len11; _key11++) {
479
- v[_key11] = arguments[_key11];
480
- }
523
+ throw [data, response];
481
524
 
482
- return function (fn) {
483
- return fn.apply(void 0, _toConsumableArray__default['default'](v.map(function (v) {
484
- return callIfFunction(v);
485
- })));
486
- };
487
- };
488
- var stopPropagation = function stopPropagation(cb) {
489
- return function (e) {
490
- e && e.stopPropagation && e.stopPropagation();
491
- callIfFunction(cb, e);
492
- };
493
- };
494
- var preventDefault = function preventDefault(cb) {
495
- return function (e) {
496
- e && e.preventDefault && e.preventDefault();
497
- callIfFunction(cb, e);
498
- };
499
- };
500
- var constrainEvent = function constrainEvent(cb) {
501
- return function (e) {
502
- e === null || e === void 0 ? void 0 : e.preventDefault();
503
- e.stopPropagation();
504
- callIfFunction(cb, e);
525
+ case 10:
526
+ return _context2.abrupt("return", [data, response]);
527
+
528
+ case 11:
529
+ case "end":
530
+ return _context2.stop();
531
+ }
532
+ }
533
+ }, _callee2, this);
534
+ }));
535
+
536
+ return function innerFetcher(_x3, _x4) {
537
+ return _ref2.apply(this, arguments);
505
538
  };
539
+ }();
540
+
541
+ var queryStringToObj = function queryStringToObj() {
542
+ var str = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : window.location.search;
543
+ return Object.fromEntries(new URLSearchParams(str).entries());
506
544
  };
507
- var mapGetOrSet = function mapGetOrSet(map, key, value) {
508
- return (map.has(key) ? map : map.set(key, value)).get(key);
509
- };
510
- var intToHour = function intToHour(hour) {
511
- var autoFill = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;
512
- if (hour === undefined || hour === null) return '';
545
+ var addQueryString = function addQueryString() {
546
+ var existingUrl = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';
547
+ var obj = arguments.length > 1 ? arguments[1] : undefined;
513
548
 
514
- if (hour === 0) {
515
- return "00:00";
516
- } //const [h,m] = ('000' + hour.toString().replace(":","")).slice(-4).replace(/(\d\d)(\d\d)/, '$1:$2').split(":")
549
+ var _existingUrl$split = existingUrl.split('?'),
550
+ _existingUrl$split2 = _slicedToArray__default['default'](_existingUrl$split, 2),
551
+ onlyUrl = _existingUrl$split2[0],
552
+ otherQueryString = _existingUrl$split2[1];
517
553
 
554
+ var params = new URLSearchParams(otherQueryString);
518
555
 
519
- var h = hour.toString().replace(":", "").slice(-4, -2);
520
- var m = hour.toString().replace(":", "").slice(-2);
556
+ for (var key in obj) {
557
+ var value = obj[key];
521
558
 
522
- if (callIfFunction(autoFill, hour)) {
523
- return ('000' + (h ? parseInt(h, 10) % 24 : '') + m).slice(-4).replace(/(\d\d)(\d\d)/, '$1:$2');
559
+ if (value === null) {
560
+ params.delete(key);
561
+ } else {
562
+ params.set(key, obj[key]);
563
+ }
524
564
  }
525
565
 
526
- if (h) return (parseInt(h, 10) > 23 ? h.slice(1) : h) + ':' + m;
527
- return m;
528
- };
529
- var formatHour = function formatHour() {
530
- var hour = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : "";
566
+ var paramsStr = params.toString();
531
567
 
532
- if (!hour) {
533
- return "";
534
- }
535
-
536
- var h = hour.toString().replace(":", "").slice(-4, -2);
537
- var m = hour.toString().replace(":", "").slice(-2);
538
-
539
- if (!h && parseInt(m) < 24 && !_isFinite__default['default'](hour)) {
540
- return m + ":00";
541
- } else if (h) {
542
- return (parseInt(h, 10) > 23 ? h.slice(1) : h) + ':' + m;
568
+ if (!paramsStr) {
569
+ return onlyUrl;
543
570
  }
544
571
 
545
- return ('000' + hour.toString().replace(":", "")).slice(-4).replace(/(\d\d)(\d\d)/, '$1:$2');
572
+ return onlyUrl + '?' + paramsStr;
546
573
  };
547
- var willRafThrottle = function willRafThrottle() {
548
- var ticking = false;
549
- return function (fn) {
550
- if (!ticking) {
551
- window.requestAnimationFrame(function () {
552
- fn();
553
- ticking = false;
554
- });
555
- ticking = true;
556
- }
557
- };
574
+
575
+ var cleanNulls = function cleanNulls(str) {
576
+ return str.replace(/\0/g, '');
558
577
  };
559
- var rafThrottle = function rafThrottle(fn) {
560
- var throttle = willRafThrottle();
561
- return function () {
562
- throttle(fn);
578
+
579
+ var postFetcherWithResponse =
580
+ /*#__PURE__*/
581
+ function () {
582
+ var _ref5 = _asyncToGenerator__default['default'](
583
+ /*#__PURE__*/
584
+ _regeneratorRuntime__default['default'].mark(function _callee3(url, jsonOrForm) {
585
+ var fetchOptions,
586
+ _args3 = arguments;
587
+ return _regeneratorRuntime__default['default'].wrap(function _callee3$(_context3) {
588
+ while (1) {
589
+ switch (_context3.prev = _context3.next) {
590
+ case 0:
591
+ fetchOptions = _args3.length > 2 && _args3[2] !== undefined ? _args3[2] : {};
592
+ return _context3.abrupt("return", innerFetcher(url, _objectSpread__default['default']({
593
+ method: 'POST',
594
+ body: typeof jsonOrForm === 'string' ? jsonOrForm : !jsonOrForm || jsonOrForm.constructor === window.FormData || jsonOrForm.constructor === window.File ? jsonOrForm : cleanNulls(JSON.stringify(jsonOrForm))
595
+ }, fetchOptions, {
596
+ headers: _isPlainObject__default['default'](fetchOptions.headers) || !fetchOptions.headers ? _objectSpread__default['default']({}, jsonOrForm && (typeof jsonOrForm === 'string' || jsonOrForm.constructor === window.FormData) ? {} : {
597
+ 'Content-Type': 'application/json; charset=UTF-8'
598
+ }, {
599
+ 'X-Requested-With': 'XMLHttpRequest'
600
+ }, fetchOptions.headers) : fetchOptions.headers
601
+ })));
602
+
603
+ case 2:
604
+ case "end":
605
+ return _context3.stop();
606
+ }
607
+ }
608
+ }, _callee3, this);
609
+ }));
610
+
611
+ return function postFetcherWithResponse(_x5, _x6) {
612
+ return _ref5.apply(this, arguments);
563
613
  };
564
- };
565
- var intsToHour = function intsToHour(_ref) {
566
- var open = _ref.open,
567
- close = _ref.close;
568
- return intToHour(open) + ' - ' + intToHour(close);
569
- };
570
- function isSmallDevice() {
571
- var width = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 600;
572
- var smallDeviceQuery = window.matchMedia ? window.matchMedia("(max-width: ".concat(width + scrollWidth, "px)")) : {
573
- matches: false
614
+ }();
615
+ var getFetcherWithResponse =
616
+ /*#__PURE__*/
617
+ function () {
618
+ var _ref6 = _asyncToGenerator__default['default'](
619
+ /*#__PURE__*/
620
+ _regeneratorRuntime__default['default'].mark(function _callee4(url, jsonParams, fetchOptions) {
621
+ return _regeneratorRuntime__default['default'].wrap(function _callee4$(_context4) {
622
+ while (1) {
623
+ switch (_context4.prev = _context4.next) {
624
+ case 0:
625
+ return _context4.abrupt("return", innerFetcher(addQueryString(url, jsonParams), _objectSpread__default['default']({
626
+ method: 'GET'
627
+ }, fetchOptions)));
628
+
629
+ case 1:
630
+ case "end":
631
+ return _context4.stop();
632
+ }
633
+ }
634
+ }, _callee4, this);
635
+ }));
636
+
637
+ return function getFetcherWithResponse(_x7, _x8, _x9) {
638
+ return _ref6.apply(this, arguments);
574
639
  };
575
- return smallDeviceQuery.matches;
576
- }
577
- function isHighDensity() {
578
- return window.matchMedia && (window.matchMedia('only screen and (min-resolution: 124dpi), only screen and (min-resolution: 1.3dppx), only screen and (min-resolution: 48.8dpcm)').matches || window.matchMedia('only screen and (-webkit-min-device-pixel-ratio: 1.3), only screen and (-o-min-device-pixel-ratio: 2.6/2), only screen and (min--moz-device-pixel-ratio: 1.3), only screen and (min-device-pixel-ratio: 1.3)').matches) || window.devicePixelRatio && window.devicePixelRatio > 1.3;
579
- }
580
- function isRetina() {
581
- return (window.matchMedia && (window.matchMedia('only screen and (min-resolution: 192dpi), only screen and (min-resolution: 2dppx), only screen and (min-resolution: 75.6dpcm)').matches || window.matchMedia('only screen and (-webkit-min-device-pixel-ratio: 2), only screen and (-o-min-device-pixel-ratio: 2/1), only screen and (min--moz-device-pixel-ratio: 2), only screen and (min-device-pixel-ratio: 2)').matches) || window.devicePixelRatio && window.devicePixelRatio >= 2) && /(iPad|iPhone|iPod)/g.test(navigator.userAgent);
582
- }
583
- function isMobile() {
584
- var check = false;
640
+ }();
641
+ var postFetcher =
642
+ /*#__PURE__*/
643
+ function () {
644
+ var _ref7 = _asyncToGenerator__default['default'](
645
+ /*#__PURE__*/
646
+ _regeneratorRuntime__default['default'].mark(function _callee5(url, json, options) {
647
+ return _regeneratorRuntime__default['default'].wrap(function _callee5$(_context5) {
648
+ while (1) {
649
+ switch (_context5.prev = _context5.next) {
650
+ case 0:
651
+ return _context5.abrupt("return", postFetcherWithResponse(url, json, options).then(function (_ref8) {
652
+ var _ref9 = _slicedToArray__default['default'](_ref8, 1),
653
+ json = _ref9[0];
585
654
 
586
- if (typeof navigator === 'undefined') {
587
- return false;
588
- }
655
+ return json;
656
+ }));
589
657
 
590
- (function (a) {
591
- if (/(android|bb\d+|meego).+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series([46])0|symbian|treo|up\.(browser|link)|vodafone|wap|windows ce|xda|xiino/i.test(a) || /1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br([ev])w|bumb|bw-([nu])|c55\/|capi|ccwa|cdm-|cell|chtm|cldc|cmd-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc-s|devi|dica|dmob|do([cp])o|ds(12|-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly([-_])|g1 u|g560|gene|gf-5|g-mo|go(\.w|od)|gr(ad|un)|haie|hcit|hd-([mpt])|hei-|hi(pt|ta)|hp( i|ip)|hs-c|ht(c([- _agpst])|tp)|hu(aw|tc)|i-(20|go|ma)|i230|iac([ -/])|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja([tv])a|jbro|jemu|jigs|kddi|keji|kgt([ /])|klon|kpt |kwc-|kyo([ck])|le(no|xi)|lg( g|\/([klu])|50|54|-[a-w])|libw|lynx|m1-w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|m-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t([- ov])|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30([02])|n50([025])|n7(0([01])|10)|ne(([cm])-|on|tf|wf|wg|wt)|nok([6i])|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan([adt])|pdxg|pg(13|-([1-8]|c))|phil|pire|pl(ay|uc)|pn-2|po(ck|rt|se)|prox|psio|pt-g|qa-a|qc(07|12|21|32|60|-[2-7]|i-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h-|oo|p-)|sdk\/|se(c([-01])|47|mc|nd|ri)|sgh-|shar|sie([-m])|sk-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h-|v-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl-|tdg-|tel(i|m)|tim-|t-mo|to(pl|sh)|ts(70|m-|m3|m5)|tx-9|up(\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c([- ])|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas-|your|zeto|zte-/i.test(a.substr(0, 4))) check = true;
592
- })(navigator.userAgent || navigator.vendor || window['opera']);
658
+ case 1:
659
+ case "end":
660
+ return _context5.stop();
661
+ }
662
+ }
663
+ }, _callee5, this);
664
+ }));
593
665
 
594
- return check;
595
- }
596
- var isPWA = function isPWA() {
597
- return window.matchMedia && window.matchMedia("(display-mode: standalone)").matches;
598
- };
599
- function isTouchDevice() {
600
- return window.document && 'ontouchstart' in window.document.documentElement;
601
- }
602
- var isIOS = function isIOS() {
603
- return /iPad|iPhone|iPod/.test(navigator.platform) || navigator.platform === 'MacIntel' && navigator.maxTouchPoints > 1;
604
- };
605
- var isIPad = function isIPad() {
606
- return navigator.userAgent.match(/iPad/i) != null;
607
- };
608
- var getNumberInputType2 = function getNumberInputType2() {
609
- var isIOS = /iPad|iPhone|iPod/.test(navigator.platform) || navigator.platform === 'MacIntel' && navigator.maxTouchPoints > 1;
610
- return isMobile() ? isIOS ? "tel" : "number" : "text";
611
- };
612
- var getNumberInputType = function getNumberInputType() {
613
- return "tel";
614
- };
615
- function addHttp(s) {
616
- s = (s || '').trim();
666
+ return function postFetcher(_x10, _x11, _x12) {
667
+ return _ref7.apply(this, arguments);
668
+ };
669
+ }();
670
+ var getFetcher =
671
+ /*#__PURE__*/
672
+ function () {
673
+ var _ref10 = _asyncToGenerator__default['default'](
674
+ /*#__PURE__*/
675
+ _regeneratorRuntime__default['default'].mark(function _callee6(url, json, options) {
676
+ return _regeneratorRuntime__default['default'].wrap(function _callee6$(_context6) {
677
+ while (1) {
678
+ switch (_context6.prev = _context6.next) {
679
+ case 0:
680
+ return _context6.abrupt("return", getFetcherWithResponse(url, json, options).then(function (_ref11) {
681
+ var _ref12 = _slicedToArray__default['default'](_ref11, 1),
682
+ json = _ref12[0];
617
683
 
618
- if (s.indexOf('http://') === 0 || s.indexOf('https://') === 0) {
619
- return s;
620
- } else {
621
- return 'http://' + s;
622
- }
623
- }
624
- var protocols = "(^|\\s|\xA0)(https?://)?(www\\.)?";
625
- var subdomains = '([a-zA-Z0-9][a-zA-Z0-9-_]*[a-zA-Z0-9]?\\.)*';
626
- var domain = '(([a-zA-Z]{1})|([a-zA-Z]{1}[a-zA-Z]{1})|([a-zA-Z]{1}[0-9]{1})|([0-9]{1}[a-zA-Z]{1})|([a-zA-Z0-9][a-zA-Z0-9-_]{1,61}[a-zA-Z0-9]))\\.([a-zA-Z]{2,6}|[a-zA-Z0-9-]{2,30}\\.[a-zA-Z]{2,3})';
627
- var resource = "[\xA1-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEFa-zA-Z0-9-._~:/?#%[\\]@!$&'()*+,;=]*";
628
- var linkRegex = new RegExp(protocols + subdomains + domain + resource);
629
- function isUrl(url) {
630
- return linkRegex.test(addHttp(url));
631
- }
632
- function ellipsis() {
633
- var str = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : "";
634
- var length = arguments.length > 1 ? arguments[1] : undefined;
684
+ return json;
685
+ }));
635
686
 
636
- if (str.length > length) {
637
- var words = str.slice(0, length).split(' ');
638
- if (str.split(' ').indexOf(words[words.length - 1]) < 0) words = words.slice(0, words.length - 1);
639
- return words.join(' ') + '...';
640
- } else return str;
641
- }
642
- function safeNewLineToBr(str) {
643
- return (str || "").replace(/&/g, '&amp;').replace(/</g, '&lt;').replace(/>/g, '&gt;').replace(/"/g, '&quot;').replace(/\n+/g, '<br/>');
644
- }
687
+ case 1:
688
+ case "end":
689
+ return _context6.stop();
690
+ }
691
+ }
692
+ }, _callee6, this);
693
+ }));
645
694
 
646
- function padGroups(pattern, value) {
647
- return pattern.split('').reduce(function (_ref2, char, i) {
648
- var _ref3 = _slicedToArray__default['default'](_ref2, 2),
649
- acc = _ref3[0],
650
- value = _ref3[1];
695
+ return function getFetcher(_x13, _x14, _x15) {
696
+ return _ref10.apply(this, arguments);
697
+ };
698
+ }();
699
+ var formFetchWithResponse = function formFetchWithResponse(url, options) {
700
+ return function (values, meta) {
701
+ return postFetcherWithResponse(utils.callIfFunction(url, meta, values), values, utils.callIfFunction(options, meta, values));
702
+ };
703
+ };
704
+ var formFetch = function formFetch(url, options) {
705
+ return function (values, meta) {
706
+ return postFetcher(utils.callIfFunction(url, meta, values), values, utils.callIfFunction(options, meta, values));
707
+ };
708
+ };
651
709
 
652
- if (char === '0') {
653
- var shouldHave = pattern.slice(i).search(/[^0#?*]/);
654
- var has = value.slice(i).search(/\D/);
710
+ function _templateObject() {
711
+ var data = _taggedTemplateLiteral__default['default'](["\n ", ""]);
655
712
 
656
- if (has > 0 && shouldHave > has) {
657
- return [acc.concat('0'), acc.join('') + '0' + value.slice(i)];
658
- } else {
659
- return [acc.concat(value[i]), value];
660
- }
661
- } else {
662
- return [acc.concat(value[i]), value];
663
- }
664
- }, [[], value])[0].join('');
665
- }
713
+ _templateObject = function _templateObject() {
714
+ return data;
715
+ };
666
716
 
667
- var digitsToPattern = function digitsToPattern(patternWithLimit, optValue) {
668
- var value = optValue || "";
669
- if (patternWithLimit[0] === '>' && Number(patternWithLimit.replace(/^>(\d*).*/g, "$1")) > value.length) return value;
670
- var pattern = patternWithLimit.replace(/^>\d+/, '');
671
- var digits = padGroups(pattern, value).replace(/\D/g, '');
672
- var totalRequired = pattern.split(/[0#]/).length - 1;
673
- var totalOptional = pattern.split(/[?*]/).length - 1;
674
- var available = digits.length - totalRequired;
717
+ return data;
718
+ }
719
+ var getColor = function getColor(propsOrColor, hover) {
720
+ if (propsOrColor === undefined) {
721
+ return function (_ref) {
722
+ var theme = _ref.theme;
723
+ return theme.colors.gray150;
724
+ };
725
+ }
675
726
 
676
- if (available > 0 && totalOptional > 0) {
677
- var _i = 0;
678
- return digitsToPattern(pattern.replace(/\?/g, function () {
679
- return _i++ < available ? '#' : '';
680
- }).replace('*', new Array(Math.max(0, available - _i + 1)).join("#")), value);
727
+ if (typeof propsOrColor === 'string') {
728
+ return function (_ref2) {
729
+ var theme = _ref2.theme;
730
+ return theme.colors[propsOrColor] || propsOrColor;
731
+ };
681
732
  }
682
733
 
683
- var i = 0;
684
- return pattern.replace(/^>\d*/, '').split('').reduce(function (acc, char) {
685
- if (!digits[Math.max(i - 1, 0)] || char === '?' || char === '*') return acc;
734
+ var theme = propsOrColor.theme,
735
+ props = _objectWithoutProperties__default['default'](propsOrColor, ["theme"]);
686
736
 
687
- if (char === '#' || char === '0') {
688
- return acc + (digits[i++] || '');
689
- } else {
690
- return acc + char;
691
- }
692
- }, '');
737
+ if (props.dark) {
738
+ return polished.darken(0.1, getColor(_objectSpread__default['default']({
739
+ theme: theme
740
+ }, _unset__default['default']('dark', props))));
741
+ } else if (hover && props.hover) {
742
+ return getColor({
743
+ theme: theme,
744
+ color: props.hover
745
+ });
746
+ } else if (props.color) {
747
+ return theme.colors[props.color] || props.color;
748
+ } else if (props.highlight) {
749
+ return theme.colors.main;
750
+ } else if (props.alert) {
751
+ return theme.colors.alert;
752
+ } else if (props.success) {
753
+ return theme.colors.success;
754
+ } else {
755
+ return theme.colors.gray150;
756
+ }
693
757
  };
694
- var normalizeTouch = function normalizeTouch(fn, endFn) {
695
- return function (e) {
696
- var touch = e.touches[0];
697
-
698
- if (e.touches.length > 1 && e.type !== 'touchend') {
699
- callIfFunction(endFn, e, touch);
700
- } else {
701
- callIfFunction(fn, e, touch);
702
- }
758
+ var getMargin = function getMargin(enumeratedMargins) {
759
+ return function (props) {
760
+ return enumeratedMargins[props.margin] || props.margin || enumeratedMargins['default'] || 0;
703
761
  };
704
762
  };
705
- var normalizeMouse = function normalizeMouse(fn, endFn) {
706
- return function (e) {
707
- if (e.buttons > 1 && e.type !== 'mouseup') {
708
- callIfFunction(endFn, e, e);
709
- } else {
710
- callIfFunction(fn, e, e);
711
- }
763
+ /**
764
+ * Returns the value of `props[path]` or `defaultValue`
765
+ * @example
766
+ * const Button = styled.button`
767
+ * color: ${prop('color', 'red')};
768
+ * `
769
+ */
770
+
771
+ var prop = function prop(path, defaultValue) {
772
+ return function () {
773
+ var props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
774
+ return _get__default['default'](path.trim(), props) || defaultValue;
712
775
  };
713
776
  };
714
- var normalizePress = function normalizePress(fn, endFn) {
715
- return function (e) {
716
- if (e.touches) {
717
- normalizeTouch(fn, endFn)(e);
718
- } else {
719
- normalizeMouse(fn, endFn)(e);
720
- }
777
+ var customTheme = function customTheme(type) {
778
+ return function () {
779
+ var props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
780
+ return _get__default['default'](["theme", "startlibs", type], props) || '';
721
781
  };
722
782
  };
723
- var touchClick = function touchClick(cb) {
724
- var sensibility = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 5;
725
- return function (e) {
726
- var _e$touches;
727
-
728
- if (((_e$touches = e.touches) === null || _e$touches === void 0 ? void 0 : _e$touches.length) !== 1) {
729
- return;
730
- }
783
+ /**
784
+ * Returns `pass` if prop is truthy. Otherwise returns `fail`
785
+ * @example
786
+ * // usage with styled-theme
787
+ * import styled from 'styled-components'
788
+ * import { ifProp } from 'styled-tools'
789
+ * import { palette } from 'styled-theme'
790
+ *
791
+ * const Button = styled.button`
792
+ * background-color: ${ifProp('transparent', 'transparent', palette(0))};
793
+ * color: ${ifProp(['transparent', 'accent'], palette('secondary', 0))};
794
+ * font-size: ${ifProp({ size: 'large' }, '20px', ifProp({ size: 'medium' }, '16px', '12px'))};
795
+ *`
796
+ */
731
797
 
732
- var target = e.target;
733
- var originalX = e.touches[0].screenX;
734
- var originalY = e.touches[0].screenY;
798
+ var ifProp = function ifProp(path, pass, fail) {
799
+ if (pass && !_isFunction__default['default'](pass)) {
800
+ // old version
801
+ return function () {
802
+ var props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
803
+ var result = false;
735
804
 
736
- var isInsideBounds = function isInsideBounds(touch) {
737
- return Math.sqrt(Math.pow(originalX - touch.screenX, 2) + Math.pow(originalY - touch.screenY, 2)) < sensibility;
738
- };
805
+ if (Array.isArray(path)) {
806
+ result = path.every(function (p) {
807
+ return testSinglePath(props, p);
808
+ });
809
+ } else if (_typeof__default['default'](path) === 'object') {
810
+ result = !Object.entries(path).find(function (_ref3) {
811
+ var _ref4 = _slicedToArray__default['default'](_ref3, 2),
812
+ k = _ref4[0],
813
+ v = _ref4[1];
739
814
 
740
- var checkBounds = function checkBounds(e) {
741
- if (e.touches.length !== 1) {
742
- return;
815
+ return props[k] !== v;
816
+ });
817
+ } else {
818
+ result = testSinglePath(props, path);
743
819
  }
744
820
 
745
- if (!isInsideBounds(e.changedTouches[0])) {
746
- maybeClick();
747
- }
821
+ return result ? pass : fail;
748
822
  };
749
-
750
- var maybeClick = function maybeClick(e) {
751
- var _e$changedTouches;
752
-
753
- target.removeEventListener('touchend', maybeClick);
754
- target.removeEventListener('touchmove', checkBounds);
755
-
756
- if ((e === null || e === void 0 ? void 0 : (_e$changedTouches = e.changedTouches) === null || _e$changedTouches === void 0 ? void 0 : _e$changedTouches.length) !== 1) {
757
- return;
823
+ } else {
824
+ return function () {
825
+ for (var _len = arguments.length, argsTrue = new Array(_len), _key = 0; _key < _len; _key++) {
826
+ argsTrue[_key] = arguments[_key];
758
827
  }
759
828
 
760
- if (isInsideBounds(e.changedTouches[0])) {
761
- e.preventDefault();
762
- cb(e);
763
- }
764
- };
829
+ var check = pass || _identity__default['default'];
765
830
 
766
- target.addEventListener('touchend', maybeClick);
767
- target.addEventListener('touchmove', checkBounds);
768
- };
769
- };
770
- var isEmptyHtml = function isEmptyHtml() {
771
- var __html = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : "";
831
+ var fn = function fn(props) {
832
+ return check(_get__default['default'](path, props)) ? styled.css.apply(void 0, argsTrue) : '';
833
+ };
772
834
 
773
- var a = document.createElement('span');
774
- a.innerHTML = __html;
775
- return a.textContent.replace(/\s/g, '').length === 0;
776
- };
777
- var getScrollParent = function getScrollParent(node) {
778
- if (!node) {
779
- return window;
780
- }
835
+ fn.orElse = function () {
836
+ for (var _len2 = arguments.length, argsFalse = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {
837
+ argsFalse[_key2] = arguments[_key2];
838
+ }
781
839
 
782
- var overflowY = window.getComputedStyle(node).overflowY;
783
- var isScrollable = overflowY !== 'visible' && overflowY !== 'hidden';
840
+ return function (props) {
841
+ return check(_get__default['default'](path, props)) ? styled.css.apply(void 0, argsTrue) : styled.css.apply(void 0, argsFalse);
842
+ };
843
+ };
784
844
 
785
- if (isScrollable && (node.scrollHeight > node.clientHeight || overflowY === 'scroll')) {
786
- return node;
787
- } else {
788
- return getScrollParent(node.offsetParent);
845
+ return fn;
846
+ };
789
847
  }
790
848
  };
791
- var scrollIntoViewWithOffset = function scrollIntoViewWithOffset(el, offset) {
792
- var scrollOffset = getScrollParent(el);
793
- var scrollY = scrollOffset === window ? window.pageYOffset : scrollOffset.scrollTop;
794
- var elTop = el.getBoundingClientRect().top;
795
- var computedOffset = callIfFunction(offset, elTop > 0);
796
- var y = el.getBoundingClientRect().top + scrollY + computedOffset;
797
- scrollOffset.scrollTo({
798
- top: y,
799
- behavior: 'smooth'
800
- });
801
- };
802
- var isElementInView = function isElementInView(element) {
803
- if (!element) return false;
804
- if (1 !== element.nodeType) return false;
805
- var html = document.documentElement;
806
- var rect = element.getBoundingClientRect();
807
- return !!rect && rect.bottom >= 0 && rect.right >= 0 && rect.left <= html.clientWidth && rect.top <= html.clientHeight;
849
+ var ifPropEquals = function ifPropEquals(path, str) {
850
+ return ifProp(path, _isEqual__default['default'](str));
808
851
  };
809
- var timerPromise = function timerPromise(time) {
810
- return new Promise(function (res) {
811
- return setTimeout(res, time);
852
+ var ifNotProp = function ifNotProp(path) {
853
+ return ifProp(path, function (v) {
854
+ return !v;
812
855
  });
813
856
  };
814
- var i = 0;
815
- var getUID = function getUID() {
816
- return Date.now().toString(36) + Math.random().toString(36).slice(2) + (i++).toString(36);
817
- };
818
- var getUrlParams = function getUrlParams() {
819
- return _fromPairs__default['default'](Array.from(new URLSearchParams(location.search).entries()));
820
- };
821
857
 
822
- var resolveFetch =
823
- /*#__PURE__*/
824
- function () {
825
- var _ref = _asyncToGenerator__default['default'](
826
- /*#__PURE__*/
827
- _regeneratorRuntime__default['default'].mark(function _callee(url, fetchOptions) {
828
- var response, text, json;
829
- return _regeneratorRuntime__default['default'].wrap(function _callee$(_context) {
830
- while (1) {
831
- switch (_context.prev = _context.next) {
832
- case 0:
833
- _context.prev = 0;
834
- _context.next = 3;
835
- return fetch(url, _objectSpread__default['default']({
836
- credentials: 'same-origin'
837
- }, fetchOptions));
838
-
839
- case 3:
840
- response = _context.sent;
841
- _context.next = 6;
842
- return response.text();
843
-
844
- case 6:
845
- text = _context.sent;
846
- _context.prev = 7;
847
- json = JSON.parse(text);
848
- return _context.abrupt("return", [json, response]);
858
+ var checkCustomScreenWidth = function checkCustomScreenWidth(sizeParis, customWidth) {
859
+ var currentWidth = utils.callIfFunction(customWidth);
860
+ return !sizeParis.find(function (_ref5) {
861
+ var _ref6 = _slicedToArray__default['default'](_ref5, 2),
862
+ size = _ref6[0],
863
+ type = _ref6[1];
849
864
 
850
- case 12:
851
- _context.prev = 12;
852
- _context.t0 = _context["catch"](7);
853
- return _context.abrupt("return", [text, response]);
865
+ if (type === "min-width") {
866
+ return currentWidth < size;
867
+ }
854
868
 
855
- case 15:
856
- _context.next = 20;
857
- break;
869
+ if (type === "max-width") {
870
+ return currentWidth > size;
871
+ }
872
+ });
873
+ };
858
874
 
859
- case 17:
860
- _context.prev = 17;
861
- _context.t1 = _context["catch"](0);
862
- return _context.abrupt("return", [_context.t1, false]);
875
+ var media = function media() {
876
+ for (var _len3 = arguments.length, sizePairs = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {
877
+ sizePairs[_key3] = arguments[_key3];
878
+ }
863
879
 
864
- case 20:
865
- case "end":
866
- return _context.stop();
867
- }
868
- }
869
- }, _callee, this, [[0, 17], [7, 12]]);
870
- }));
880
+ return function () {
881
+ for (var _len4 = arguments.length, args = new Array(_len4), _key4 = 0; _key4 < _len4; _key4++) {
882
+ args[_key4] = arguments[_key4];
883
+ }
871
884
 
872
- return function resolveFetch(_x, _x2) {
873
- return _ref.apply(this, arguments);
874
- };
875
- }();
885
+ return styled.css(["", ""], function (props) {
886
+ var _props$theme, _props$theme2;
876
887
 
877
- var innerFetcher =
878
- /*#__PURE__*/
879
- function () {
880
- var _ref2 = _asyncToGenerator__default['default'](
881
- /*#__PURE__*/
882
- _regeneratorRuntime__default['default'].mark(function _callee2(url, fetchOptions) {
883
- var _ref3, _ref4, data, response;
888
+ return ((_props$theme = props.theme) === null || _props$theme === void 0 ? void 0 : _props$theme.overrideMediaWidth) ? checkCustomScreenWidth(sizePairs, (_props$theme2 = props.theme) === null || _props$theme2 === void 0 ? void 0 : _props$theme2.overrideMediaWidth) ? styled.css.apply(void 0, args) : "" : styled.css(["@media ", "{", "}"], sizePairs.map(function (_ref7) {
889
+ var _ref8 = _slicedToArray__default['default'](_ref7, 2),
890
+ size = _ref8[0],
891
+ type = _ref8[1];
884
892
 
885
- return _regeneratorRuntime__default['default'].wrap(function _callee2$(_context2) {
886
- while (1) {
887
- switch (_context2.prev = _context2.next) {
888
- case 0:
889
- _context2.next = 2;
890
- return resolveFetch(url, fetchOptions);
893
+ return "(".concat(type, ": ").concat(size + utils.scrollWidth, "px)");
894
+ }).join(' and '), styled.css.apply(void 0, args));
895
+ });
896
+ };
897
+ };
898
+ media.mobile = media([600, 'max-width']);
891
899
 
892
- case 2:
893
- _ref3 = _context2.sent;
894
- _ref4 = _slicedToArray__default['default'](_ref3, 2);
895
- data = _ref4[0];
896
- response = _ref4[1];
900
+ media.between = function (min, max) {
901
+ return media([min, 'min-width'], [max, 'max-width']);
902
+ };
897
903
 
898
- if (!(!response || response.status >= 400)) {
899
- _context2.next = 10;
900
- break;
901
- }
904
+ media.max = function (n) {
905
+ return media([n, 'max-width']);
906
+ };
902
907
 
903
- throw [data, response];
908
+ media.min = function (n) {
909
+ return media([n, 'min-width']);
910
+ };
904
911
 
905
- case 10:
906
- return _context2.abrupt("return", [data, response]);
912
+ media.desktop = media([601, 'min-width']);
913
+ var vheight = function vheight(strings, size) {
914
+ var propType = strings[0];
915
+ var calc = (strings[1] || "").replace(";", "").trim();
916
+ return "\n ".concat(propType, " ").concat(calc ? "calc(".concat(size, "vh ").concat(calc, ")") : "".concat(size, "vh"), ";\n ").concat(propType, " ").concat(calc ? "calc(calc(var(--vh, 1vh) * ".concat(size, ") ").concat(calc, ")") : "calc(var(--vh, 1vh) * ".concat(size, ")"), ";\n ");
917
+ };
907
918
 
908
- case 11:
909
- case "end":
910
- return _context2.stop();
911
- }
912
- }
913
- }, _callee2, this);
914
- }));
919
+ function testSinglePath(props, path) {
920
+ if (typeof path === 'string') {
921
+ return !!utils._s.get(path, props);
922
+ } else if (typeof path === 'number') {
923
+ return !!props[path];
924
+ } else {
925
+ return false;
926
+ }
927
+ }
915
928
 
916
- return function innerFetcher(_x3, _x4) {
917
- return _ref2.apply(this, arguments);
918
- };
919
- }();
929
+ var getFrameOffset = function getFrameOffset(i, total) {
930
+ return Math.round(i * 100 / (total - 1));
931
+ };
920
932
 
921
- var addQueryString = function addQueryString() {
922
- var existingUrl = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';
923
- var obj = arguments.length > 1 ? arguments[1] : undefined;
933
+ var emotion = createEmotion__default['default']({
934
+ nonce: 'animation_nonce'
935
+ });
936
+ var oneWayAnimation = function oneWayAnimation() {
937
+ for (var _len5 = arguments.length, frames = new Array(_len5), _key5 = 0; _key5 < _len5; _key5++) {
938
+ frames[_key5] = arguments[_key5];
939
+ }
924
940
 
925
- var _existingUrl$split = existingUrl.split('?'),
926
- _existingUrl$split2 = _slicedToArray__default['default'](_existingUrl$split, 2),
927
- onlyUrl = _existingUrl$split2[0],
928
- otherQueryString = _existingUrl$split2[1];
941
+ return emotion.keyframes(_templateObject(), frames.map(function (frame, i) {
942
+ return !frame ? '' : "".concat(getFrameOffset(i, frames.length), "% {\n ").concat(frame, "\n }");
943
+ }));
944
+ };
945
+ var twoWayAnimation = function twoWayAnimation() {
946
+ for (var _len6 = arguments.length, frames = new Array(_len6), _key6 = 0; _key6 < _len6; _key6++) {
947
+ frames[_key6] = arguments[_key6];
948
+ }
929
949
 
930
- var params = new URLSearchParams(otherQueryString);
950
+ return [frames, _reverse__default['default'](frames)].map(function (frames) {
951
+ return oneWayAnimation.apply(void 0, _toConsumableArray__default['default'](frames));
952
+ });
953
+ };
954
+ var animationTiming = function animationTiming(props) {
955
+ return function () {
956
+ for (var _len7 = arguments.length, animations = new Array(_len7), _key7 = 0; _key7 < _len7; _key7++) {
957
+ animations[_key7] = arguments[_key7];
958
+ }
931
959
 
932
- for (var key in obj) {
933
- var value = obj[key];
960
+ return animations.filter(function (_) {
961
+ return _;
962
+ }).map(function (_) {
963
+ return _ + ' ' + props;
964
+ }).join(',');
965
+ };
966
+ };
967
+ var identityTranslateFrames = oneWayAnimation('transform: translateY(0);', 'transform: translateY(0);');
968
+ var identityOpacityFrames = oneWayAnimation('opacity: 1;', 'opacity:1;');
969
+ var styledExtend = function styledExtend(_ref9) {
970
+ var target = _ref9.target,
971
+ componentStyle = _ref9.componentStyle;
972
+ return function () {
973
+ var wasStatic = !_find__default['default'](_isFunction__default['default'], componentStyle.rules);
934
974
 
935
- if (value === undefined || value === null) {
936
- params.delete(key);
937
- } else {
938
- params.set(key, obj[key]);
975
+ for (var _len8 = arguments.length, template = new Array(_len8), _key8 = 0; _key8 < _len8; _key8++) {
976
+ template[_key8] = arguments[_key8];
939
977
  }
940
- }
941
978
 
942
- var paramsStr = params.toString();
943
-
944
- if (!paramsStr) {
945
- return onlyUrl;
979
+ var v = styled__default['default'](target).apply(void 0, template.concat(_toConsumableArray__default['default'](wasStatic ? [] : [function () {
980
+ return "";
981
+ }])));
982
+ v.componentStyle.rules = _toConsumableArray__default['default'](componentStyle.rules).concat(_toConsumableArray__default['default'](v.componentStyle.rules));
983
+ return v;
984
+ };
985
+ };
986
+ var printerMedia = function printerMedia() {
987
+ for (var _len9 = arguments.length, args = new Array(_len9), _key9 = 0; _key9 < _len9; _key9++) {
988
+ args[_key9] = arguments[_key9];
946
989
  }
947
990
 
948
- return onlyUrl + '?' + paramsStr;
991
+ return function (props) {
992
+ return props.theme.printMode ? styled.css.apply(void 0, args) : styled.css(["@media print{", "}"], styled.css.apply(void 0, args));
993
+ };
949
994
  };
995
+ var notPrinterMedia = function notPrinterMedia() {
996
+ for (var _len10 = arguments.length, args = new Array(_len10), _key10 = 0; _key10 < _len10; _key10++) {
997
+ args[_key10] = arguments[_key10];
998
+ }
950
999
 
951
- var cleanNulls = function cleanNulls(str) {
952
- return str.replace(/\0/g, '');
1000
+ return function (props) {
1001
+ return props.theme.printMode ? '' : styled.css(["@media screen{", "}"], styled.css.apply(void 0, args));
1002
+ };
953
1003
  };
954
1004
 
955
- var postFetcherWithResponse =
956
- /*#__PURE__*/
957
- function () {
958
- var _ref5 = _asyncToGenerator__default['default'](
959
- /*#__PURE__*/
960
- _regeneratorRuntime__default['default'].mark(function _callee3(url, jsonOrForm) {
961
- var fetchOptions,
962
- _args3 = arguments;
963
- return _regeneratorRuntime__default['default'].wrap(function _callee3$(_context3) {
964
- while (1) {
965
- switch (_context3.prev = _context3.next) {
966
- case 0:
967
- fetchOptions = _args3.length > 2 && _args3[2] !== undefined ? _args3[2] : {};
968
- return _context3.abrupt("return", innerFetcher(url, _objectSpread__default['default']({
969
- method: 'POST',
970
- body: typeof jsonOrForm === 'string' ? jsonOrForm : !jsonOrForm || jsonOrForm.constructor === window.FormData ? jsonOrForm : cleanNulls(JSON.stringify(jsonOrForm))
971
- }, fetchOptions, {
972
- headers: _isPlainObject__default['default'](fetchOptions.headers) || !fetchOptions.headers ? _objectSpread__default['default']({}, jsonOrForm && (typeof jsonOrForm === 'string' || jsonOrForm.constructor === window.FormData) ? {} : {
973
- 'Content-Type': 'application/json; charset=UTF-8'
974
- }, fetchOptions.headers) : fetchOptions.headers
975
- })));
976
-
977
- case 2:
978
- case "end":
979
- return _context3.stop();
980
- }
981
- }
982
- }, _callee3, this);
983
- }));
1005
+ var escapedValidParts = /(^|[^\\])(dd?|DD?|mm?|LL?|hh?|MM?|ss|SSS|yy(?:yy)?)/g;
1006
+ var validParts = /(dd?|DD?|mm?|LL?|hh?|MM?|yy(?:yy)|yy|ss|SSS)$/;
1007
+ var addZero = function addZero(v) {
1008
+ return (v < 10 ? '0' : '') + v;
1009
+ };
984
1010
 
985
- return function postFetcherWithResponse(_x5, _x6) {
986
- return _ref5.apply(this, arguments);
1011
+ var getSet = function getSet(index, ttype) {
1012
+ var plus = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 0;
1013
+ var format = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : function (v) {
1014
+ return v;
987
1015
  };
988
- }();
989
- var getFetcherWithResponse =
990
- /*#__PURE__*/
991
- function () {
992
- var _ref6 = _asyncToGenerator__default['default'](
993
- /*#__PURE__*/
994
- _regeneratorRuntime__default['default'].mark(function _callee4(url, jsonParams, fetchOptions) {
995
- return _regeneratorRuntime__default['default'].wrap(function _callee4$(_context4) {
996
- while (1) {
997
- switch (_context4.prev = _context4.next) {
998
- case 0:
999
- return _context4.abrupt("return", innerFetcher(addQueryString(url, jsonParams), _objectSpread__default['default']({
1000
- method: 'GET'
1001
- }, fetchOptions)));
1016
+ var parse = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : function (v, defaultDate) {
1017
+ return v === '0' ? '' : v;
1018
+ };
1019
+ return [function (date, _, noUTC) {
1020
+ return format((typeof date === 'number' ? new Date(date) : date)['get' + (noUTC ? '' : 'UTC') + ttype]() + plus);
1021
+ }, function (unformatedStr, date, _, failOnFormat, noUTC) {
1022
+ var str = parse(unformatedStr, date, failOnFormat);
1023
+ if (str === '' || isNaN(date.getTime())) return date;
1024
+ if (str === '\0') return date.setTime(NaN);
1025
+ var utcSTR = noUTC ? '' : 'UTC';
1026
+ var v = parseInt(str, 10) - plus;
1027
+ var prevDay = date['get' + utcSTR + 'Date']();
1002
1028
 
1003
- case 1:
1004
- case "end":
1005
- return _context4.stop();
1006
- }
1007
- }
1008
- }, _callee4, this);
1009
- }));
1029
+ if (ttype !== 'Date') {
1030
+ date['set' + utcSTR + 'Date'](1);
1031
+ }
1010
1032
 
1011
- return function getFetcherWithResponse(_x7, _x8, _x9) {
1012
- return _ref6.apply(this, arguments);
1013
- };
1014
- }();
1015
- var postFetcher =
1016
- /*#__PURE__*/
1017
- function () {
1018
- var _ref7 = _asyncToGenerator__default['default'](
1019
- /*#__PURE__*/
1020
- _regeneratorRuntime__default['default'].mark(function _callee5(url, json, options) {
1021
- return _regeneratorRuntime__default['default'].wrap(function _callee5$(_context5) {
1022
- while (1) {
1023
- switch (_context5.prev = _context5.next) {
1024
- case 0:
1025
- return _context5.abrupt("return", postFetcherWithResponse(url, json, options).then(function (_ref8) {
1026
- var _ref9 = _slicedToArray__default['default'](_ref8, 1),
1027
- json = _ref9[0];
1033
+ date['set' + utcSTR + ttype](v);
1028
1034
 
1029
- return json;
1030
- }));
1035
+ if (date['get' + utcSTR + ttype]() !== v) {
1036
+ date['set' + utcSTR + ttype](NaN);
1037
+ return date;
1038
+ }
1031
1039
 
1032
- case 1:
1033
- case "end":
1034
- return _context5.stop();
1035
- }
1040
+ if (ttype !== 'Date') {
1041
+ date['set' + utcSTR + 'Date'](prevDay);
1042
+
1043
+ if (date['get' + utcSTR + ttype]() !== v) {
1044
+ date['set' + utcSTR + 'Date'](0);
1045
+ return date;
1036
1046
  }
1037
- }, _callee5, this);
1038
- }));
1047
+ }
1039
1048
 
1040
- return function postFetcher(_x10, _x11, _x12) {
1041
- return _ref7.apply(this, arguments);
1042
- };
1043
- }();
1044
- var getFetcher =
1045
- /*#__PURE__*/
1046
- function () {
1047
- var _ref10 = _asyncToGenerator__default['default'](
1048
- /*#__PURE__*/
1049
- _regeneratorRuntime__default['default'].mark(function _callee6(url, json, options) {
1050
- return _regeneratorRuntime__default['default'].wrap(function _callee6$(_context6) {
1051
- while (1) {
1052
- switch (_context6.prev = _context6.next) {
1053
- case 0:
1054
- return _context6.abrupt("return", getFetcherWithResponse(url, json, options).then(function (_ref11) {
1055
- var _ref12 = _slicedToArray__default['default'](_ref11, 1),
1056
- json = _ref12[0];
1049
+ return date;
1050
+ }, index];
1051
+ };
1057
1052
 
1058
- return json;
1059
- }));
1053
+ var getText = function getText(type, total) {
1054
+ var slice = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 99;
1055
+ return [function (date, messages, noUTC) {
1056
+ return messages(type.toLowerCase(), date['get' + (noUTC ? '' : 'UTC') + type]()).slice(0, slice);
1057
+ }];
1058
+ };
1060
1059
 
1061
- case 1:
1062
- case "end":
1063
- return _context6.stop();
1064
- }
1065
- }
1066
- }, _callee6, this);
1067
- }));
1060
+ var yearParse = function yearParse(y, date, failOnFormat) {
1061
+ var formattedY = y.length === 2 && y !== '20' ? '20' + y : y.length === 4 ? y : '';
1068
1062
 
1069
- return function getFetcher(_x13, _x14, _x15) {
1070
- return _ref10.apply(this, arguments);
1071
- };
1072
- }();
1073
- var formFetchWithResponse = function formFetchWithResponse(url, options) {
1074
- return function (values, meta) {
1075
- return postFetcherWithResponse(callIfFunction(url, meta, values), values, callIfFunction(options, meta, values));
1076
- };
1063
+ if (formattedY === '') {
1064
+ if (failOnFormat) {
1065
+ var found = date.getUTCFullYear().toString().indexOf(y);
1066
+ return found === 0 || found === 2 ? date.getUTCFullYear() : '\0';
1067
+ } else {
1068
+ return date.getUTCFullYear();
1069
+ }
1070
+ } else {
1071
+ return formattedY;
1072
+ }
1077
1073
  };
1078
- var formFetch = function formFetch(url, options) {
1079
- return function (values, meta) {
1080
- return postFetcher(callIfFunction(url, meta, values), values, callIfFunction(options, meta, values));
1081
- };
1074
+
1075
+ var val = {
1076
+ yyyy: getSet(0, 'FullYear', 0, function (v) {
1077
+ return v;
1078
+ }, yearParse),
1079
+ yy: getSet(0, 'FullYear', 0, function (v) {
1080
+ return (v + "").slice(2, 4);
1081
+ }, yearParse),
1082
+ M: getSet(1, 'Month', 1),
1083
+ MM: getSet(1, 'Month', 1, addZero),
1084
+ L: getText('Month', 12, 3),
1085
+ LL: getText('Month', 12),
1086
+ d: getSet(2, 'Date'),
1087
+ dd: getSet(2, 'Date', 0, addZero),
1088
+ D: getText('Day', 7, 3),
1089
+ DD: getText('Day', 7),
1090
+ m: getSet(4, 'Minutes'),
1091
+ mm: getSet(4, 'Minutes', 0, addZero),
1092
+ h: getSet(5, 'Hours'),
1093
+ hh: getSet(5, 'Hours', 0, addZero),
1094
+ ss: getSet(6, 'Seconds', 0, addZero),
1095
+ SSS: getSet(7, 'Milliseconds', 0, addZero)
1096
+ };
1097
+ function formatDateToPattern(format) {
1098
+ return format.replace(escapedValidParts, function (_, _1, _2) {
1099
+ return _1 + (_2 === 'yy' ? '##' : _2 === 'yyyy' ? '####' : '0#');
1100
+ });
1101
+ }
1102
+ function formatDate(date, format, messages, noUTC) {
1103
+ if (!date) return '';
1104
+ var separators = format.replace(escapedValidParts, '\0').split('\0');
1105
+ var parts = format.match(escapedValidParts);
1106
+ var formattedDate = parts.reduce(function (acc, part) {
1107
+ return acc.concat(separators.length ? [separators.shift()] : [], part.replace(validParts, ''), val[part.match(validParts)[0]][0](date, messages, noUTC));
1108
+ }, []);
1109
+ return formattedDate.join('').replace(/\\([dDmLhMy])/g, '$1');
1110
+ }
1111
+
1112
+ var now = function now() {
1113
+ return new Date();
1082
1114
  };
1083
1115
 
1116
+ function parseDate(str, possibleDate, format, messages, failOnFormat, noUTC) {
1117
+ if (!str) return possibleDate;
1118
+ var separators = format.replace(escapedValidParts, '\0').split('\0');
1119
+ var parts = format.match(escapedValidParts);
1120
+ var mutations = [];
1121
+ parts.reduce(function (rest, part, i) {
1122
+ var separator = (separators.length ? separators.shift() : '') + part.replace(validParts, '');
1123
+ var current = rest.slice(separator.length);
1124
+
1125
+ if (current && separator === rest.slice(0, separator.length)) {
1126
+ var setType = part.match(validParts)[0];
1127
+ var nextSeparator = separators[0];
1128
+ var nextStrIndex = current.indexOf(nextSeparator + (parts[i + 1] || '').replace(validParts, ''));
1129
+ mutations[val[setType][2]] = [val[setType][1], nextStrIndex ? current.slice(0, nextStrIndex) : current];
1130
+ return current.slice(nextStrIndex);
1131
+ } else {
1132
+ return '';
1133
+ }
1134
+ }, str);
1135
+ var date = possibleDate && possibleDate.getTime() !== -1 ? new Date(possibleDate) : now();
1136
+ mutations.forEach(function (_ref) {
1137
+ var _ref2 = _slicedToArray__default['default'](_ref, 2),
1138
+ setter = _ref2[0],
1139
+ text = _ref2[1];
1140
+
1141
+ return setter(text, date, messages, failOnFormat, noUTC);
1142
+ });
1143
+ return date;
1144
+ }
1145
+
1084
1146
  var moveElement = _curry__default['default'](function (from, to, list) {
1085
1147
  var el = list[from];
1086
1148
 
@@ -1089,6 +1151,7 @@ var moveElement = _curry__default['default'](function (from, to, list) {
1089
1151
  without.splice(to, 0, el);
1090
1152
  return without;
1091
1153
  });
1154
+
1092
1155
  var unsetOrRemoveAt = _curry__default['default'](function (path, value) {
1093
1156
  var pathArr = toPath(path);
1094
1157
 
@@ -1100,6 +1163,7 @@ var unsetOrRemoveAt = _curry__default['default'](function (path, value) {
1100
1163
  return Array.isArray(v) ? removeAt(lastKey, v) : unset(lastKey, v);
1101
1164
  }, value);
1102
1165
  });
1166
+
1103
1167
  var pathToString = function pathToString(path) {
1104
1168
  return toPath(path).join(".");
1105
1169
  };
@@ -1125,6 +1189,7 @@ var update = _curry__default['default'](function (path, updater, state) {
1125
1189
  return _update__default['default'](sanitizedPath, updater, state);
1126
1190
  }
1127
1191
  });
1192
+
1128
1193
  var get = _curry__default['default'](function (path, state) {
1129
1194
  var sanitizedPath = sanitizePath(path);
1130
1195
 
@@ -1134,6 +1199,7 @@ var get = _curry__default['default'](function (path, state) {
1134
1199
  return _get__default['default'](sanitizedPath, state);
1135
1200
  }
1136
1201
  });
1202
+
1137
1203
  var set = _curry__default['default'](function (path, value, state) {
1138
1204
  var sanitizedPath = sanitizePath(path);
1139
1205
 
@@ -1143,6 +1209,7 @@ var set = _curry__default['default'](function (path, value, state) {
1143
1209
  return _set__default['default'](sanitizedPath, value, state);
1144
1210
  }
1145
1211
  });
1212
+
1146
1213
  var unset = _curry__default['default'](function (path, state) {
1147
1214
  var sanitizedPath = sanitizePath(path);
1148
1215
 
@@ -1152,34 +1219,53 @@ var unset = _curry__default['default'](function (path, state) {
1152
1219
  return _unset__default['default'](sanitizedPath, state);
1153
1220
  }
1154
1221
  });
1222
+
1155
1223
  var removeNAt = _curry__default['default'](function (pos, n, value) {
1156
1224
  return _toConsumableArray__default['default'](value.slice(0, Number(pos))).concat(_toConsumableArray__default['default'](value.slice(Number(pos) + n)));
1157
1225
  });
1226
+
1158
1227
  var removeAt = removeNAt(_2__default['default'], 1);
1228
+
1159
1229
  var when = _curry__default['default'](function (cond, fn, value) {
1160
- return callIfFunction(cond, value) ? fn(value) : value;
1230
+ return utils.callIfFunction(cond, value) ? fn(value) : value;
1161
1231
  });
1232
+
1162
1233
  var assign = _curry__default['default'](function (a, b) {
1163
1234
  return _assign__default['default'](b, a);
1164
1235
  });
1236
+
1165
1237
  var concat = _curry__default['default'](function (a, b) {
1166
1238
  return _concat__default['default'](b, a);
1167
1239
  });
1240
+
1168
1241
  var each = _each__default['default'].convert({
1169
1242
  cap: false
1170
1243
  });
1244
+
1171
1245
  var find = _find__default['default'].convert({
1172
1246
  cap: false
1173
1247
  });
1248
+
1174
1249
  var filter = _filter__default['default'].convert({
1175
1250
  cap: false
1176
1251
  });
1252
+
1177
1253
  var map = _map__default['default'].convert({
1178
1254
  cap: false
1179
1255
  });
1256
+
1257
+ var mapValues = _mapValues__default['default'].convert({
1258
+ cap: false
1259
+ });
1260
+
1261
+ var flatMap = _flatMap__default['default'].convert({
1262
+ cap: false
1263
+ });
1264
+
1180
1265
  var insertAt = _curry__default['default'](function (pos, newElements, value) {
1181
1266
  return _toConsumableArray__default['default'](value.slice(0, pos).concat(newElements)).concat(_toConsumableArray__default['default'](value.slice(pos)));
1182
1267
  });
1268
+
1183
1269
  var select = _curry__default['default'](function (selector, value) {
1184
1270
  return (_isFunction__default['default'](selector) ? selector : selector ? _get__default['default'](selector) : _identity__default['default'])(value);
1185
1271
  });
@@ -1208,6 +1294,8 @@ var _s = {
1208
1294
  find: find,
1209
1295
  filter: filter,
1210
1296
  map: map,
1297
+ flatMap: flatMap,
1298
+ mapValues: mapValues,
1211
1299
  insertAt: insertAt,
1212
1300
  flowEach: function flowEach() {
1213
1301
  for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
@@ -1218,629 +1306,679 @@ var _s = {
1218
1306
  }
1219
1307
  };
1220
1308
 
1221
- function _templateObject() {
1222
- var data = _taggedTemplateLiteral__default['default'](["\n ", ""]);
1309
+ var isNotSelector = function isNotSelector(v) {
1310
+ return typeof v !== 'function' || v.length === 0;
1311
+ };
1223
1312
 
1224
- _templateObject = function _templateObject() {
1225
- return data;
1313
+ var toSelector = function toSelector(v) {
1314
+ return isNotSelector(v) ? function (s) {
1315
+ return utils._s.get(utils.callIfFunction(v), s);
1316
+ } : v;
1317
+ };
1318
+
1319
+ var mergeSelectors = function mergeSelectors(prev, next) {
1320
+ return function (v) {
1321
+ return next(prev(v));
1226
1322
  };
1323
+ };
1227
1324
 
1228
- return data;
1229
- }
1230
- var getColor = function getColor(propsOrColor, hover) {
1231
- if (propsOrColor === undefined) {
1232
- return function (_ref) {
1233
- var theme = _ref.theme;
1234
- return theme.colors.gray150;
1235
- };
1325
+ var concatSelectors = function concatSelectors() {
1326
+ for (var _len = arguments.length, paths = new Array(_len), _key = 0; _key < _len; _key++) {
1327
+ paths[_key] = arguments[_key];
1328
+ }
1329
+
1330
+ return paths.reduce(function (_ref, path) {
1331
+ var _ref2 = _slicedToArray__default['default'](_ref, 2),
1332
+ selector = _ref2[0],
1333
+ isSelector = _ref2[1];
1334
+
1335
+ return isNotSelector(path) && !isSelector ? [selector.concat(path), false] : [mergeSelectors(toSelector(selector), path), true];
1336
+ }, [[], false]);
1337
+ };
1338
+ var COMPLETE_ACTION = {};
1339
+ var REDUCE = {};
1340
+ var FETCH = {};
1341
+ var SKIP_FETCH = {};
1342
+ var SKIP_DISPATCH = {};
1343
+ var SKIPPED_ACTION = {};
1344
+ var selectPath = function selectPath(useState) {
1345
+ for (var _len2 = arguments.length, paths = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {
1346
+ paths[_key2 - 1] = arguments[_key2];
1236
1347
  }
1237
1348
 
1238
- if (typeof propsOrColor === 'string') {
1239
- return function (_ref2) {
1240
- var theme = _ref2.theme;
1241
- return theme.colors[propsOrColor];
1242
- };
1243
- }
1349
+ var _useMemo = React.useMemo(function () {
1350
+ return concatSelectors.apply(void 0, paths);
1351
+ }, paths),
1352
+ _useMemo2 = _slicedToArray__default['default'](_useMemo, 1),
1353
+ selector = _useMemo2[0];
1354
+
1355
+ var _useState = useState(selector),
1356
+ _useState2 = _slicedToArray__default['default'](_useState, 1),
1357
+ value = _useState2[0];
1358
+
1359
+ return value;
1360
+ };
1361
+ var Action = function Action(fnOrArray) {
1362
+ var prevArgs = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];
1363
+ var isArray = Array.isArray(fnOrArray);
1364
+
1365
+ if (isArray) {
1366
+ // excessive paramaeters called on the action, used for options.
1367
+ var actionType = _last__default['default'](prevArgs);
1244
1368
 
1245
- var theme = propsOrColor.theme,
1246
- props = _objectWithoutProperties__default['default'](propsOrColor, ["theme"]);
1369
+ var _fnOrArray = _slicedToArray__default['default'](fnOrArray, 3),
1370
+ fetcher = _fnOrArray[0],
1371
+ reducer = _fnOrArray[1],
1372
+ rollbacker = _fnOrArray[2];
1247
1373
 
1248
- if (props.dark) {
1249
- return polished.darken(0.1, getColor(_objectSpread__default['default']({
1250
- theme: theme
1251
- }, _unset__default['default']('dark', props))));
1252
- } else if (hover && props.hover) {
1253
- return getColor({
1254
- theme: theme,
1255
- color: props.hover
1256
- });
1257
- } else if (props.color) {
1258
- return theme.colors[props.color] || props.color;
1259
- } else if (props.highlight) {
1260
- return theme.colors.main;
1261
- } else if (props.alert) {
1262
- return theme.colors.alert;
1263
- } else if (props.success) {
1264
- return theme.colors.success;
1374
+ if (actionType === REDUCE) {
1375
+ return reducer(null, prevArgs);
1376
+ } else if (actionType === FETCH) {
1377
+ return fetcher();
1378
+ } else {
1379
+ return _set__default['default']('extra', fnOrArray.extra, [actionType === SKIP_FETCH ? function () {
1380
+ return Promise.resolve();
1381
+ } : fetcher, actionType === SKIP_DISPATCH ? undefined : reducer].concat(rollbacker || []));
1382
+ }
1265
1383
  } else {
1266
- return theme.colors.gray150;
1384
+ return prevArgs.length < fnOrArray.length ? function () {
1385
+ for (var _len3 = arguments.length, moreArgs = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {
1386
+ moreArgs[_key3] = arguments[_key3];
1387
+ }
1388
+
1389
+ return Action(fnOrArray, _toConsumableArray__default['default'](prevArgs).concat(moreArgs));
1390
+ } : Action(fnOrArray.apply(void 0, _toConsumableArray__default['default'](prevArgs)), prevArgs);
1267
1391
  }
1268
1392
  };
1269
- var getMargin = function getMargin(enumeratedMargins) {
1270
- return function (props) {
1271
- return enumeratedMargins[props.margin] || props.margin || enumeratedMargins['default'] || 0;
1272
- };
1273
- };
1274
- /**
1275
- * Returns the value of `props[path]` or `defaultValue`
1276
- * @example
1277
- * const Button = styled.button`
1278
- * color: ${prop('color', 'red')};
1279
- * `
1280
- */
1281
1393
 
1282
- var prop = function prop(path, defaultValue) {
1283
- return function () {
1284
- var props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
1285
- return _get__default['default'](path.trim(), props) || defaultValue;
1286
- };
1287
- };
1288
- var customTheme = function customTheme(type) {
1289
- return function () {
1290
- var props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
1291
- return _get__default['default'](["theme", "startlibs", type], props) || '';
1292
- };
1293
- };
1294
- /**
1295
- * Returns `pass` if prop is truthy. Otherwise returns `fail`
1296
- * @example
1297
- * // usage with styled-theme
1298
- * import styled from 'styled-components'
1299
- * import { ifProp } from 'styled-tools'
1300
- * import { palette } from 'styled-theme'
1301
- *
1302
- * const Button = styled.button`
1303
- * background-color: ${ifProp('transparent', 'transparent', palette(0))};
1304
- * color: ${ifProp(['transparent', 'accent'], palette('secondary', 0))};
1305
- * font-size: ${ifProp({ size: 'large' }, '20px', ifProp({ size: 'medium' }, '16px', '12px'))};
1306
- *`
1307
- */
1394
+ var mapAction = function mapAction(get, dispatcher, firstRun) {
1395
+ return function (action) {
1396
+ if (Array.isArray(action)) {
1397
+ if (firstRun) {
1398
+ return function () {
1399
+ return mapAction(get, dispatcher)(action);
1400
+ };
1401
+ }
1308
1402
 
1309
- var ifProp = function ifProp(path, pass, fail) {
1310
- if (pass && !_isFunction__default['default'](pass)) {
1311
- // old version
1312
- return function () {
1313
- var props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
1314
- var result = false;
1403
+ var _action = _slicedToArray__default['default'](action, 3),
1404
+ fetcher = _action[0],
1405
+ reducer = _action[1],
1406
+ rollbacker = _action[2];
1315
1407
 
1316
- if (Array.isArray(path)) {
1317
- result = path.every(function (p) {
1318
- return testSinglePath(props, p);
1319
- });
1320
- } else if (_typeof__default['default'](path) === 'object') {
1321
- result = !Object.entries(path).find(function (_ref3) {
1322
- var _ref4 = _slicedToArray__default['default'](_ref3, 2),
1323
- k = _ref4[0],
1324
- v = _ref4[1];
1408
+ var _ref3 = action.extra || {},
1409
+ skip = _ref3.skip;
1325
1410
 
1326
- return props[k] !== v;
1327
- });
1328
- } else {
1329
- result = testSinglePath(props, path);
1411
+ if (skip && skip(get())) {
1412
+ return Promise.resolve(SKIPPED_ACTION);
1330
1413
  }
1331
1414
 
1332
- return result ? pass : fail;
1333
- };
1334
- } else {
1335
- return function () {
1336
- for (var _len = arguments.length, argsTrue = new Array(_len), _key = 0; _key < _len; _key++) {
1337
- argsTrue[_key] = arguments[_key];
1415
+ var fetched = fetcher();
1416
+
1417
+ if (rollbacker) {
1418
+ dispatcher(function (prevState) {
1419
+ var nextState = reducer(null)(prevState);
1420
+ fetched.catch(function (response) {
1421
+ dispatcher(rollbacker(prevState, nextState, response));
1422
+ });
1423
+ return nextState;
1424
+ });
1338
1425
  }
1339
1426
 
1340
- var check = pass || _identity__default['default'];
1427
+ if (reducer !== undefined) {
1428
+ fetched.then(function (response) {
1429
+ return dispatcher(reducer(response));
1430
+ });
1431
+ }
1341
1432
 
1342
- var fn = function fn(props) {
1343
- return check(_get__default['default'](path, props)) ? styled.css.apply(void 0, argsTrue) : '';
1433
+ return fetched;
1434
+ } else {
1435
+ return function () {
1436
+ return mapAction(get, dispatcher)(action.apply(void 0, arguments));
1344
1437
  };
1438
+ }
1439
+ };
1440
+ };
1345
1441
 
1346
- fn.orElse = function () {
1347
- for (var _len2 = arguments.length, argsFalse = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {
1348
- argsFalse[_key2] = arguments[_key2];
1349
- }
1442
+ var activateActions = function activateActions(get, dispatcher) {
1443
+ for (var _len4 = arguments.length, actions = new Array(_len4 > 2 ? _len4 - 2 : 0), _key4 = 2; _key4 < _len4; _key4++) {
1444
+ actions[_key4 - 2] = arguments[_key4];
1445
+ }
1350
1446
 
1351
- return function (props) {
1352
- return check(_get__default['default'](path, props)) ? styled.css.apply(void 0, argsTrue) : styled.css.apply(void 0, argsFalse);
1353
- };
1354
- };
1447
+ return actions.map(mapAction(get, dispatcher, true));
1448
+ };
1449
+ var SkipAction = function SkipAction(skip, action) {
1450
+ action.extra = _objectSpread__default['default']({}, action.extra, {
1451
+ skip: skip
1452
+ });
1453
+ return action;
1454
+ };
1355
1455
 
1356
- return fn;
1357
- };
1358
- }
1456
+ var compareBest = function compareBest(compare) {
1457
+ return function (best, next) {
1458
+ return best ? compare(best, next) ? next : best : next;
1459
+ };
1359
1460
  };
1360
- var ifPropEquals = function ifPropEquals(path, str) {
1361
- return ifProp(path, _isEqual__default['default'](str));
1461
+ var toLowest = function toLowest() {
1462
+ var getValue = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : _identity__default['default'];
1463
+ return compareBest(function (best, next) {
1464
+ return getValue(next) < getValue(best);
1465
+ });
1362
1466
  };
1363
- var ifNotProp = function ifNotProp(path) {
1364
- return ifProp(path, function (v) {
1365
- return !v;
1467
+ var toHighest = function toHighest() {
1468
+ var getValue = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : _identity__default['default'];
1469
+ return compareBest(function (best, next) {
1470
+ return getValue(next) > getValue(best);
1366
1471
  });
1367
1472
  };
1368
1473
 
1369
- var checkCustomScreenWidth = function checkCustomScreenWidth(sizeParis, customWidth) {
1370
- var currentWidth = callIfFunction(customWidth);
1371
- return !sizeParis.find(function (_ref5) {
1372
- var _ref6 = _slicedToArray__default['default'](_ref5, 2),
1373
- size = _ref6[0],
1374
- type = _ref6[1];
1375
-
1376
- if (type === "min-width") {
1377
- return currentWidth < size;
1378
- }
1474
+ var addExtraProp = function addExtraProp(element, extra) {
1475
+ var override = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;
1476
+ return React__default['default'].cloneElement(element, override ? _objectSpread__default['default']({}, element.props, extra) : _objectSpread__default['default']({}, extra, element.props), element.props.children);
1477
+ };
1379
1478
 
1380
- if (type === "max-width") {
1381
- return currentWidth > size;
1382
- }
1383
- });
1479
+ var useEventListener = function useEventListener(eventName, callback) {
1480
+ var deps = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : [];
1481
+ React.useEffect(function () {
1482
+ window.addEventListener(eventName, callback);
1483
+ return function () {
1484
+ return window.removeEventListener(eventName, callback);
1485
+ };
1486
+ }, deps);
1487
+ };
1488
+ var useEventListenerFor = function useEventListenerFor(element, eventName, callback) {
1489
+ var deps = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : [];
1490
+ React.useEffect(function () {
1491
+ element.addEventListener(eventName, callback);
1492
+ return function () {
1493
+ return element.removeEventListener(eventName, callback);
1494
+ };
1495
+ }, deps.concat(element));
1384
1496
  };
1385
1497
 
1386
- var media = function media() {
1387
- for (var _len3 = arguments.length, sizePairs = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {
1388
- sizePairs[_key3] = arguments[_key3];
1498
+ var formatPath = function formatPath() {
1499
+ for (var _len = arguments.length, paths = new Array(_len), _key = 0; _key < _len; _key++) {
1500
+ paths[_key] = arguments[_key];
1389
1501
  }
1390
1502
 
1503
+ return paths.map(function (path) {
1504
+ return Array.isArray(path) ? path.join('.') : path ? path.toString().replace(/\[/g, '.').replace(/^\./, '').replace(/]/g, '') : '';
1505
+ }).filter(function (_) {
1506
+ return _;
1507
+ }).join('.');
1508
+ };
1509
+ var identityFn = function identityFn() {
1510
+ var n = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;
1391
1511
  return function () {
1392
- for (var _len4 = arguments.length, args = new Array(_len4), _key4 = 0; _key4 < _len4; _key4++) {
1393
- args[_key4] = arguments[_key4];
1512
+ for (var _len2 = arguments.length, e = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {
1513
+ e[_key2] = arguments[_key2];
1394
1514
  }
1395
1515
 
1396
- return styled.css(["", ""], function (props) {
1397
- var _props$theme, _props$theme2;
1398
-
1399
- return ((_props$theme = props.theme) === null || _props$theme === void 0 ? void 0 : _props$theme.overrideMediaWidth) ? checkCustomScreenWidth(sizePairs, (_props$theme2 = props.theme) === null || _props$theme2 === void 0 ? void 0 : _props$theme2.overrideMediaWidth) ? styled.css.apply(void 0, args) : "" : styled.css(["@media ", "{", "}"], sizePairs.map(function (_ref7) {
1400
- var _ref8 = _slicedToArray__default['default'](_ref7, 2),
1401
- size = _ref8[0],
1402
- type = _ref8[1];
1403
-
1404
- return "(".concat(type, ": ").concat(size + scrollWidth, "px)");
1405
- }).join(' and '), styled.css.apply(void 0, args));
1406
- });
1516
+ return e[n];
1407
1517
  };
1408
1518
  };
1409
- media.mobile = media([600, 'max-width']);
1519
+ var will = function will(fn) {
1520
+ for (var _len3 = arguments.length, props = new Array(_len3 > 1 ? _len3 - 1 : 0), _key3 = 1; _key3 < _len3; _key3++) {
1521
+ props[_key3 - 1] = arguments[_key3];
1522
+ }
1410
1523
 
1411
- media.between = function (min, max) {
1412
- return media([min, 'min-width'], [max, 'max-width']);
1413
- };
1524
+ return function () {
1525
+ for (var _len4 = arguments.length, more = new Array(_len4), _key4 = 0; _key4 < _len4; _key4++) {
1526
+ more[_key4] = arguments[_key4];
1527
+ }
1414
1528
 
1415
- media.max = function (n) {
1416
- return media([n, 'max-width']);
1529
+ return fn.apply(void 0, props.concat(more));
1530
+ };
1417
1531
  };
1532
+ var unWill = function unWill(fn) {
1533
+ for (var _len5 = arguments.length, props = new Array(_len5 > 1 ? _len5 - 1 : 0), _key5 = 1; _key5 < _len5; _key5++) {
1534
+ props[_key5 - 1] = arguments[_key5];
1535
+ }
1418
1536
 
1419
- media.min = function (n) {
1420
- return media([n, 'min-width']);
1537
+ return function () {
1538
+ return fn.apply(void 0, props);
1539
+ };
1421
1540
  };
1422
-
1423
- media.desktop = media([601, 'min-width']);
1424
- var vheight = function vheight(strings, size) {
1425
- var propType = strings[0];
1426
- var calc = (strings[1] || "").replace(";", "").trim();
1427
- return "\n ".concat(propType, " ").concat(calc ? "calc(".concat(size, "vh ").concat(calc, ")") : "".concat(size, "vh"), ";\n ").concat(propType, " ").concat(calc ? "calc(calc(var(--vh, 1vh) * ".concat(size, ") ").concat(calc, ")") : "calc(var(--vh, 1vh) * ".concat(size, ")"), ";\n ");
1541
+ var lazyValue = function lazyValue(v) {
1542
+ return function () {
1543
+ return v;
1544
+ };
1428
1545
  };
1429
-
1430
- function testSinglePath(props, path) {
1431
- if (typeof path === 'string') {
1432
- return !!get(path, props);
1433
- } else if (typeof path === 'number') {
1434
- return !!props[path];
1435
- } else {
1436
- return false;
1546
+ var callIfFunction = function callIfFunction(prop) {
1547
+ for (var _len6 = arguments.length, args = new Array(_len6 > 1 ? _len6 - 1 : 0), _key6 = 1; _key6 < _len6; _key6++) {
1548
+ args[_key6 - 1] = arguments[_key6];
1437
1549
  }
1438
- }
1439
1550
 
1440
- var getFrameOffset = function getFrameOffset(i, total) {
1441
- return Math.round(i * 100 / (total - 1));
1551
+ return typeof prop === "function" ? prop.apply(void 0, args) : prop;
1442
1552
  };
1443
-
1444
- var emotion = createEmotion__default['default']({
1445
- nonce: __webpack_nonce__
1446
- });
1447
- var oneWayAnimation = function oneWayAnimation() {
1448
- for (var _len5 = arguments.length, frames = new Array(_len5), _key5 = 0; _key5 < _len5; _key5++) {
1449
- frames[_key5] = arguments[_key5];
1553
+ var callIfFunctions = function callIfFunctions(prop) {
1554
+ for (var _len7 = arguments.length, args = new Array(_len7 > 1 ? _len7 - 1 : 0), _key7 = 1; _key7 < _len7; _key7++) {
1555
+ args[_key7 - 1] = arguments[_key7];
1450
1556
  }
1451
1557
 
1452
- return emotion.keyframes(_templateObject(), frames.map(function (frame, i) {
1453
- return !frame ? '' : "".concat(getFrameOffset(i, frames.length), "% {\n ").concat(frame, "\n }");
1454
- }));
1558
+ return typeof prop === "function" ? prop.apply(void 0, _toConsumableArray__default['default'](args.map(function (e) {
1559
+ return callIfFunction(e);
1560
+ }))) : prop;
1455
1561
  };
1456
- var twoWayAnimation = function twoWayAnimation() {
1457
- for (var _len6 = arguments.length, frames = new Array(_len6), _key6 = 0; _key6 < _len6; _key6++) {
1458
- frames[_key6] = arguments[_key6];
1562
+ var callMany = function callMany() {
1563
+ for (var _len8 = arguments.length, many = new Array(_len8), _key8 = 0; _key8 < _len8; _key8++) {
1564
+ many[_key8] = arguments[_key8];
1459
1565
  }
1460
1566
 
1461
- return [frames, _reverse__default['default'](frames)].map(function (frames) {
1462
- return oneWayAnimation.apply(void 0, _toConsumableArray__default['default'](frames));
1463
- });
1464
- };
1465
- var animationTiming = function animationTiming(props) {
1466
- return function () {
1467
- for (var _len7 = arguments.length, animations = new Array(_len7), _key7 = 0; _key7 < _len7; _key7++) {
1468
- animations[_key7] = arguments[_key7];
1469
- }
1470
-
1471
- return animations.filter(function (_) {
1472
- return _;
1473
- }).map(function (_) {
1474
- return _ + ' ' + props;
1475
- }).join(',');
1476
- };
1477
- };
1478
- var identityTranslateFrames = oneWayAnimation('transform: translateY(0);', 'transform: translateY(0);');
1479
- var identityOpacityFrames = oneWayAnimation('opacity: 1;', 'opacity:1;');
1480
- var styledExtend = function styledExtend(_ref9) {
1481
- var target = _ref9.target,
1482
- componentStyle = _ref9.componentStyle;
1483
1567
  return function () {
1484
- var wasStatic = !_find__default['default'](_isFunction__default['default'], componentStyle.rules);
1485
-
1486
- for (var _len8 = arguments.length, template = new Array(_len8), _key8 = 0; _key8 < _len8; _key8++) {
1487
- template[_key8] = arguments[_key8];
1568
+ for (var _len9 = arguments.length, args = new Array(_len9), _key9 = 0; _key9 < _len9; _key9++) {
1569
+ args[_key9] = arguments[_key9];
1488
1570
  }
1489
1571
 
1490
- var v = styled__default['default'](target).apply(void 0, template.concat(_toConsumableArray__default['default'](wasStatic ? [] : [function () {
1491
- return "";
1492
- }])));
1493
- v.componentStyle.rules = _toConsumableArray__default['default'](componentStyle.rules).concat(_toConsumableArray__default['default'](v.componentStyle.rules));
1494
- return v;
1572
+ return many.map(function (_) {
1573
+ return callIfFunction.apply(void 0, [_].concat(args));
1574
+ });
1495
1575
  };
1496
1576
  };
1497
- var printerMedia = function printerMedia() {
1498
- for (var _len9 = arguments.length, args = new Array(_len9), _key9 = 0; _key9 < _len9; _key9++) {
1499
- args[_key9] = arguments[_key9];
1577
+ var ifUndefined = function ifUndefined(v) {
1578
+ for (var _len10 = arguments.length, or = new Array(_len10 > 1 ? _len10 - 1 : 0), _key10 = 1; _key10 < _len10; _key10++) {
1579
+ or[_key10 - 1] = arguments[_key10];
1500
1580
  }
1501
1581
 
1502
- return function (props) {
1503
- return props.theme.printMode ? styled.css.apply(void 0, args) : styled.css(["@media print{", "}"], styled.css.apply(void 0, args));
1504
- };
1582
+ return v !== undefined ? v : or.length === 1 ? or[0] : ifUndefined.apply(void 0, [or[0]].concat(_toConsumableArray__default['default'](or.slice(1))));
1505
1583
  };
1506
- var notPrinterMedia = function notPrinterMedia() {
1507
- for (var _len10 = arguments.length, args = new Array(_len10), _key10 = 0; _key10 < _len10; _key10++) {
1508
- args[_key10] = arguments[_key10];
1584
+ var using = function using() {
1585
+ for (var _len11 = arguments.length, v = new Array(_len11), _key11 = 0; _key11 < _len11; _key11++) {
1586
+ v[_key11] = arguments[_key11];
1509
1587
  }
1510
1588
 
1511
- return function (props) {
1512
- return props.theme.printMode ? '' : styled.css(["@media screen{", "}"], styled.css.apply(void 0, args));
1589
+ return function (fn) {
1590
+ return fn.apply(void 0, _toConsumableArray__default['default'](v.map(function (v) {
1591
+ return callIfFunction(v);
1592
+ })));
1513
1593
  };
1514
1594
  };
1515
-
1516
- var escapedValidParts = /(^|[^\\])(dd?|DD?|mm?|LL?|hh?|MM?|ss|SSS|yy(?:yy)?)/g;
1517
- var validParts = /(dd?|DD?|mm?|LL?|hh?|MM?|yy(?:yy)|yy|ss|SSS)$/;
1518
- var addZero = function addZero(v) {
1519
- return (v < 10 ? '0' : '') + v;
1595
+ var stopPropagation = function stopPropagation(cb) {
1596
+ return function (e) {
1597
+ e && e.stopPropagation && e.stopPropagation();
1598
+ callIfFunction(cb, e);
1599
+ };
1520
1600
  };
1521
-
1522
- var getSet = function getSet(index, ttype) {
1523
- var plus = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 0;
1524
- var format = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : function (v) {
1525
- return v;
1601
+ var preventDefault = function preventDefault(cb) {
1602
+ return function (e) {
1603
+ e && e.preventDefault && e.preventDefault();
1604
+ callIfFunction(cb, e);
1526
1605
  };
1527
- var parse = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : function (v, defaultDate) {
1528
- return v === '0' ? '' : v;
1606
+ };
1607
+ var constrainEvent = function constrainEvent(cb) {
1608
+ return function (e) {
1609
+ e === null || e === void 0 ? void 0 : e.preventDefault();
1610
+ e.stopPropagation();
1611
+ callIfFunction(cb, e);
1529
1612
  };
1530
- return [function (date, _, noUTC) {
1531
- return format((typeof date === 'number' ? new Date(date) : date)['get' + (noUTC ? '' : 'UTC') + ttype]() + plus);
1532
- }, function (unformatedStr, date, _, failOnFormat, noUTC) {
1533
- var str = parse(unformatedStr, date, failOnFormat);
1534
- if (str === '' || isNaN(date.getTime())) return date;
1535
- if (str === '\0') return date.setTime(NaN);
1536
- var utcSTR = noUTC ? '' : 'UTC';
1537
- var v = parseInt(str, 10) - plus;
1538
- var prevDay = date['get' + utcSTR + 'Date']();
1539
-
1540
- if (ttype !== 'Date') {
1541
- date['set' + utcSTR + 'Date'](1);
1542
- }
1613
+ };
1614
+ var mapGetOrSet = function mapGetOrSet(map, key, value) {
1615
+ return (map.has(key) ? map : map.set(key, value)).get(key);
1616
+ };
1617
+ var intToHour = function intToHour(hour) {
1618
+ var autoFill = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;
1619
+ if (hour === undefined || hour === null) return '';
1543
1620
 
1544
- date['set' + utcSTR + ttype](v);
1621
+ if (hour === 0) {
1622
+ return "00:00";
1623
+ } //const [h,m] = ('000' + hour.toString().replace(":","")).slice(-4).replace(/(\d\d)(\d\d)/, '$1:$2').split(":")
1545
1624
 
1546
- if (date['get' + utcSTR + ttype]() !== v) {
1547
- date['set' + utcSTR + ttype](NaN);
1548
- return date;
1549
- }
1550
1625
 
1551
- if (ttype !== 'Date') {
1552
- date['set' + utcSTR + 'Date'](prevDay);
1626
+ var h = hour.toString().replace(":", "").slice(-4, -2);
1627
+ var m = hour.toString().replace(":", "").slice(-2);
1553
1628
 
1554
- if (date['get' + utcSTR + ttype]() !== v) {
1555
- date['set' + utcSTR + 'Date'](0);
1556
- return date;
1557
- }
1558
- }
1629
+ if (callIfFunction(autoFill, hour)) {
1630
+ return ('000' + (h ? parseInt(h, 10) % 24 : '') + m).slice(-4).replace(/(\d\d)(\d\d)/, '$1:$2');
1631
+ }
1559
1632
 
1560
- return date;
1561
- }, index];
1633
+ if (h) return (parseInt(h, 10) > 23 ? h.slice(1) : h) + ':' + m;
1634
+ return m;
1562
1635
  };
1636
+ var formatHour = function formatHour() {
1637
+ var hour = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : "";
1563
1638
 
1564
- var getText = function getText(type, total) {
1565
- var slice = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 99;
1566
- return [function (date, messages, noUTC) {
1567
- return messages(type.toLowerCase(), date['get' + (noUTC ? '' : 'UTC') + type]()).slice(0, slice);
1568
- }];
1569
- };
1639
+ if (!hour) {
1640
+ return "";
1641
+ }
1570
1642
 
1571
- var yearParse = function yearParse(y, date, failOnFormat) {
1572
- var formattedY = y.length === 2 && y !== '20' ? '20' + y : y.length === 4 ? y : '';
1643
+ var h = hour.toString().replace(":", "").slice(-4, -2);
1644
+ var m = hour.toString().replace(":", "").slice(-2);
1573
1645
 
1574
- if (formattedY === '') {
1575
- if (failOnFormat) {
1576
- var found = date.getUTCFullYear().toString().indexOf(y);
1577
- return found === 0 || found === 2 ? date.getUTCFullYear() : '\0';
1578
- } else {
1579
- return date.getUTCFullYear();
1580
- }
1581
- } else {
1582
- return formattedY;
1646
+ if (!h && parseInt(m) < 24 && !_isFinite__default['default'](hour)) {
1647
+ return m + ":00";
1648
+ } else if (h) {
1649
+ return (parseInt(h, 10) > 23 ? h.slice(1) : h) + ':' + m;
1583
1650
  }
1584
- };
1585
1651
 
1586
- var val = {
1587
- yyyy: getSet(0, 'FullYear', 0, function (v) {
1588
- return v;
1589
- }, yearParse),
1590
- yy: getSet(0, 'FullYear', 0, function (v) {
1591
- return (v + "").slice(2, 4);
1592
- }, yearParse),
1593
- M: getSet(1, 'Month', 1),
1594
- MM: getSet(1, 'Month', 1, addZero),
1595
- L: getText('Month', 12, 3),
1596
- LL: getText('Month', 12),
1597
- d: getSet(2, 'Date'),
1598
- dd: getSet(2, 'Date', 0, addZero),
1599
- D: getText('Day', 7, 3),
1600
- DD: getText('Day', 7),
1601
- m: getSet(4, 'Minutes'),
1602
- mm: getSet(4, 'Minutes', 0, addZero),
1603
- h: getSet(5, 'Hours'),
1604
- hh: getSet(5, 'Hours', 0, addZero),
1605
- ss: getSet(6, 'Seconds', 0, addZero),
1606
- SSS: getSet(7, 'Milliseconds', 0, addZero)
1652
+ return ('000' + hour.toString().replace(":", "")).slice(-4).replace(/(\d\d)(\d\d)/, '$1:$2');
1653
+ };
1654
+ var willRafThrottle = function willRafThrottle() {
1655
+ var ticking = false;
1656
+ return function (fn) {
1657
+ if (!ticking) {
1658
+ window.requestAnimationFrame(function () {
1659
+ fn();
1660
+ ticking = false;
1661
+ });
1662
+ ticking = true;
1663
+ }
1664
+ };
1607
1665
  };
1608
- function formatDateToPattern(format) {
1609
- return format.replace(escapedValidParts, function (_, _1, _2) {
1610
- return _1 + (_2 === 'yy' ? '##' : _2 === 'yyyy' ? '####' : '0#');
1611
- });
1666
+ var rafThrottle = function rafThrottle(fn) {
1667
+ var throttle = willRafThrottle();
1668
+ return function () {
1669
+ throttle(fn);
1670
+ };
1671
+ };
1672
+ var intsToHour = function intsToHour(_ref) {
1673
+ var open = _ref.open,
1674
+ close = _ref.close;
1675
+ return intToHour(open) + ' - ' + intToHour(close);
1676
+ };
1677
+ function isSmallDevice() {
1678
+ var width = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 600;
1679
+ var smallDeviceQuery = window.matchMedia ? window.matchMedia("(max-width: ".concat(width + utils.scrollWidth, "px)")) : {
1680
+ matches: false
1681
+ };
1682
+ return smallDeviceQuery.matches;
1612
1683
  }
1613
- function formatDate(date, format, messages, noUTC) {
1614
- if (!date) return '';
1615
- var separators = format.replace(escapedValidParts, '\0').split('\0');
1616
- var parts = format.match(escapedValidParts);
1617
- var formattedDate = parts.reduce(function (acc, part) {
1618
- return acc.concat(separators.length ? [separators.shift()] : [], part.replace(validParts, ''), val[part.match(validParts)[0]][0](date, messages, noUTC));
1619
- }, []);
1620
- return formattedDate.join('').replace(/\\([dDmLhMy])/g, '$1');
1684
+ function isHighDensity() {
1685
+ return window.matchMedia && (window.matchMedia('only screen and (min-resolution: 124dpi), only screen and (min-resolution: 1.3dppx), only screen and (min-resolution: 48.8dpcm)').matches || window.matchMedia('only screen and (-webkit-min-device-pixel-ratio: 1.3), only screen and (-o-min-device-pixel-ratio: 2.6/2), only screen and (min--moz-device-pixel-ratio: 1.3), only screen and (min-device-pixel-ratio: 1.3)').matches) || window.devicePixelRatio && window.devicePixelRatio > 1.3;
1621
1686
  }
1687
+ function isRetina() {
1688
+ return (window.matchMedia && (window.matchMedia('only screen and (min-resolution: 192dpi), only screen and (min-resolution: 2dppx), only screen and (min-resolution: 75.6dpcm)').matches || window.matchMedia('only screen and (-webkit-min-device-pixel-ratio: 2), only screen and (-o-min-device-pixel-ratio: 2/1), only screen and (min--moz-device-pixel-ratio: 2), only screen and (min-device-pixel-ratio: 2)').matches) || window.devicePixelRatio && window.devicePixelRatio >= 2) && /(iPad|iPhone|iPod)/g.test(navigator.userAgent);
1689
+ }
1690
+ function isMobile() {
1691
+ var check = false;
1622
1692
 
1623
- var now = function now() {
1624
- return new Date();
1625
- };
1626
-
1627
- function parseDate(str, possibleDate, format, messages, failOnFormat, noUTC) {
1628
- if (!str) return possibleDate;
1629
- var separators = format.replace(escapedValidParts, '\0').split('\0');
1630
- var parts = format.match(escapedValidParts);
1631
- var mutations = [];
1632
- parts.reduce(function (rest, part, i) {
1633
- var separator = (separators.length ? separators.shift() : '') + part.replace(validParts, '');
1634
- var current = rest.slice(separator.length);
1693
+ if (typeof navigator === 'undefined') {
1694
+ return false;
1695
+ }
1635
1696
 
1636
- if (current && separator === rest.slice(0, separator.length)) {
1637
- var setType = part.match(validParts)[0];
1638
- var nextSeparator = separators[0];
1639
- var nextStrIndex = current.indexOf(nextSeparator + (parts[i + 1] || '').replace(validParts, ''));
1640
- mutations[val[setType][2]] = [val[setType][1], nextStrIndex ? current.slice(0, nextStrIndex) : current];
1641
- return current.slice(nextStrIndex);
1642
- } else {
1643
- return '';
1644
- }
1645
- }, str);
1646
- var date = possibleDate && possibleDate.getTime() !== -1 ? new Date(possibleDate) : now();
1647
- mutations.forEach(function (_ref) {
1648
- var _ref2 = _slicedToArray__default['default'](_ref, 2),
1649
- setter = _ref2[0],
1650
- text = _ref2[1];
1697
+ (function (a) {
1698
+ if (/(android|bb\d+|meego).+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series([46])0|symbian|treo|up\.(browser|link)|vodafone|wap|windows ce|xda|xiino/i.test(a) || /1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br([ev])w|bumb|bw-([nu])|c55\/|capi|ccwa|cdm-|cell|chtm|cldc|cmd-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc-s|devi|dica|dmob|do([cp])o|ds(12|-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly([-_])|g1 u|g560|gene|gf-5|g-mo|go(\.w|od)|gr(ad|un)|haie|hcit|hd-([mpt])|hei-|hi(pt|ta)|hp( i|ip)|hs-c|ht(c([- _agpst])|tp)|hu(aw|tc)|i-(20|go|ma)|i230|iac([ -/])|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja([tv])a|jbro|jemu|jigs|kddi|keji|kgt([ /])|klon|kpt |kwc-|kyo([ck])|le(no|xi)|lg( g|\/([klu])|50|54|-[a-w])|libw|lynx|m1-w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|m-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t([- ov])|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30([02])|n50([025])|n7(0([01])|10)|ne(([cm])-|on|tf|wf|wg|wt)|nok([6i])|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan([adt])|pdxg|pg(13|-([1-8]|c))|phil|pire|pl(ay|uc)|pn-2|po(ck|rt|se)|prox|psio|pt-g|qa-a|qc(07|12|21|32|60|-[2-7]|i-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h-|oo|p-)|sdk\/|se(c([-01])|47|mc|nd|ri)|sgh-|shar|sie([-m])|sk-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h-|v-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl-|tdg-|tel(i|m)|tim-|t-mo|to(pl|sh)|ts(70|m-|m3|m5)|tx-9|up(\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c([- ])|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas-|your|zeto|zte-/i.test(a.substr(0, 4))) check = true;
1699
+ })(navigator.userAgent || navigator.vendor || window['opera']);
1651
1700
 
1652
- return setter(text, date, messages, failOnFormat, noUTC);
1653
- });
1654
- return date;
1701
+ return check;
1655
1702
  }
1656
-
1657
- var isNotSelector = function isNotSelector(v) {
1658
- return typeof v !== 'function' || v.length === 0;
1703
+ var isPWA = function isPWA() {
1704
+ return window.matchMedia && window.matchMedia("(display-mode: standalone)").matches;
1659
1705
  };
1660
-
1661
- var toSelector = function toSelector(v) {
1662
- return isNotSelector(v) ? function (s) {
1663
- return get(callIfFunction(v), s);
1664
- } : v;
1706
+ function isTouchDevice() {
1707
+ return window.document && 'ontouchstart' in window.document.documentElement;
1708
+ }
1709
+ var isIOS = function isIOS() {
1710
+ return /iPad|iPhone|iPod/.test(navigator.platform) || navigator.platform === 'MacIntel' && navigator.maxTouchPoints > 1;
1665
1711
  };
1666
-
1667
- var mergeSelectors = function mergeSelectors(prev, next) {
1668
- return function (v) {
1669
- return next(prev(v));
1670
- };
1712
+ var isIPad = function isIPad() {
1713
+ return navigator.userAgent.match(/iPad/i) != null;
1714
+ };
1715
+ var getNumberInputType2 = function getNumberInputType2() {
1716
+ var isIOS = /iPad|iPhone|iPod/.test(navigator.platform) || navigator.platform === 'MacIntel' && navigator.maxTouchPoints > 1;
1717
+ return isMobile() ? isIOS ? "tel" : "number" : "text";
1671
1718
  };
1719
+ var getNumberInputType = function getNumberInputType() {
1720
+ return "tel";
1721
+ };
1722
+ function addHttp(s, secure) {
1723
+ s = (s || '').trim();
1672
1724
 
1673
- var concatSelectors = function concatSelectors() {
1674
- for (var _len = arguments.length, paths = new Array(_len), _key = 0; _key < _len; _key++) {
1675
- paths[_key] = arguments[_key];
1725
+ if (s.indexOf('http://') === 0 || s.indexOf('https://') === 0) {
1726
+ return s;
1727
+ } else {
1728
+ return "http".concat(secure ? 's' : '', "://") + s;
1676
1729
  }
1730
+ }
1731
+ var protocols = "(^|\\s|\xA0)(https?://)?(www\\.)?";
1732
+ var subdomains = '([a-zA-Z0-9][a-zA-Z0-9-_]*[a-zA-Z0-9]?\\.)*';
1733
+ var domain = '(([a-zA-Z]{1})|([a-zA-Z]{1}[a-zA-Z]{1})|([a-zA-Z]{1}[0-9]{1})|([0-9]{1}[a-zA-Z]{1})|([a-zA-Z0-9][a-zA-Z0-9-_]{1,61}[a-zA-Z0-9]))\\.([a-zA-Z]{2,6}|[a-zA-Z0-9-]{2,30}\\.[a-zA-Z]{2,3})';
1734
+ var resource = "[\xA1-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEFa-zA-Z0-9-._~:/?#%[\\]@!$&'()*+,;=]*";
1735
+ var linkRegex = new RegExp(protocols + subdomains + domain + resource);
1736
+ function isUrl(url) {
1737
+ return linkRegex.test(addHttp(url));
1738
+ }
1739
+ function ellipsis() {
1740
+ var str = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : "";
1741
+ var length = arguments.length > 1 ? arguments[1] : undefined;
1677
1742
 
1678
- return paths.reduce(function (_ref, path) {
1679
- var _ref2 = _slicedToArray__default['default'](_ref, 2),
1680
- selector = _ref2[0],
1681
- isSelector = _ref2[1];
1743
+ if (str.length > length) {
1744
+ var words = str.slice(0, length).split(' ');
1745
+ if (str.split(' ').indexOf(words[words.length - 1]) < 0) words = words.slice(0, words.length - 1);
1746
+ return words.join(' ') + '...';
1747
+ } else return str;
1748
+ }
1749
+ function safeNewLineToBr(str, keepMany) {
1750
+ var result = (str || "").replace(/&/g, '&amp;').replace(/</g, '&lt;').replace(/>/g, '&gt;').replace(/"/g, '&quot;');
1682
1751
 
1683
- return isNotSelector(path) && !isSelector ? [selector.concat(path), false] : [mergeSelectors(toSelector(selector), path), true];
1684
- }, [[], false]);
1685
- };
1686
- var COMPLETE_ACTION = {};
1687
- var REDUCE = {};
1688
- var FETCH = {};
1689
- var SKIP_FETCH = {};
1690
- var SKIP_DISPATCH = {};
1691
- var SKIPPED_ACTION = {};
1692
- var selectPath = function selectPath(useState) {
1693
- for (var _len2 = arguments.length, paths = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {
1694
- paths[_key2 - 1] = arguments[_key2];
1752
+ if (keepMany === true) {
1753
+ return result.replace(/\n/g, '<br/>');
1695
1754
  }
1696
1755
 
1697
- var _useMemo = React.useMemo(function () {
1698
- return concatSelectors.apply(void 0, paths);
1699
- }, paths),
1700
- _useMemo2 = _slicedToArray__default['default'](_useMemo, 1),
1701
- selector = _useMemo2[0];
1756
+ return result.replace(/\n+/g, '<br/>');
1757
+ }
1702
1758
 
1703
- var _useState = useState(selector),
1704
- _useState2 = _slicedToArray__default['default'](_useState, 1),
1705
- value = _useState2[0];
1759
+ function padGroups(pattern, value) {
1760
+ return pattern.split('').reduce(function (_ref2, char, i) {
1761
+ var _ref3 = _slicedToArray__default['default'](_ref2, 2),
1762
+ acc = _ref3[0],
1763
+ value = _ref3[1];
1706
1764
 
1707
- return value;
1708
- };
1709
- var Action = function Action(fnOrArray) {
1710
- var prevArgs = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];
1711
- var isArray = Array.isArray(fnOrArray);
1765
+ if (char === '0') {
1766
+ var shouldHave = pattern.slice(i).search(/[^0#?*]/);
1767
+ var has = value.slice(i).search(/\D/);
1712
1768
 
1713
- if (isArray) {
1714
- // excessive paramaeters called on the action, used for options.
1715
- var actionType = _last__default['default'](prevArgs);
1769
+ if (has > 0 && shouldHave > has) {
1770
+ return [acc.concat('0'), acc.join('') + '0' + value.slice(i)];
1771
+ } else {
1772
+ return [acc.concat(value[i]), value];
1773
+ }
1774
+ } else {
1775
+ return [acc.concat(value[i]), value];
1776
+ }
1777
+ }, [[], value])[0].join('');
1778
+ }
1716
1779
 
1717
- var _fnOrArray = _slicedToArray__default['default'](fnOrArray, 3),
1718
- fetcher = _fnOrArray[0],
1719
- reducer = _fnOrArray[1],
1720
- rollbacker = _fnOrArray[2];
1780
+ var digitsToPattern = function digitsToPattern(patternWithLimit, optValue) {
1781
+ var value = optValue || "";
1782
+ if (patternWithLimit[0] === '>' && Number(patternWithLimit.replace(/^>(\d*).*/g, "$1")) > value.length) return value;
1783
+ var pattern = patternWithLimit.replace(/^>\d+/, '');
1784
+ var digits = padGroups(pattern, value).replace(/\D/g, '');
1785
+ var totalRequired = pattern.split(/[0#]/).length - 1;
1786
+ var totalOptional = pattern.split(/[?*]/).length - 1;
1787
+ var available = digits.length - totalRequired;
1721
1788
 
1722
- if (actionType === REDUCE) {
1723
- return reducer(null, prevArgs);
1724
- } else if (actionType === FETCH) {
1725
- return fetcher();
1789
+ if (available > 0 && totalOptional > 0) {
1790
+ var _i = 0;
1791
+ return digitsToPattern(pattern.replace(/\?/g, function () {
1792
+ return _i++ < available ? '#' : '';
1793
+ }).replace('*', new Array(Math.max(0, available - _i + 1)).join("#")), value);
1794
+ }
1795
+
1796
+ var i = 0;
1797
+ return pattern.replace(/^>\d*/, '').split('').reduce(function (acc, char) {
1798
+ if (!digits[Math.max(i - 1, 0)] || char === '?' || char === '*') return acc;
1799
+
1800
+ if (char === '#' || char === '0') {
1801
+ return acc + (digits[i++] || '');
1726
1802
  } else {
1727
- return _set__default['default']('extra', fnOrArray.extra, [actionType === SKIP_FETCH ? function () {
1728
- return Promise.resolve();
1729
- } : fetcher, actionType === SKIP_DISPATCH ? undefined : reducer].concat(rollbacker || []));
1803
+ return acc + char;
1730
1804
  }
1731
- } else {
1732
- return prevArgs.length < fnOrArray.length ? function () {
1733
- for (var _len3 = arguments.length, moreArgs = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {
1734
- moreArgs[_key3] = arguments[_key3];
1735
- }
1805
+ }, '');
1806
+ };
1807
+ var normalizeTouch = function normalizeTouch(fn, endFn) {
1808
+ return function (e) {
1809
+ var touch = e.touches[0];
1736
1810
 
1737
- return Action(fnOrArray, _toConsumableArray__default['default'](prevArgs).concat(moreArgs));
1738
- } : Action(fnOrArray.apply(void 0, _toConsumableArray__default['default'](prevArgs)), prevArgs);
1739
- }
1811
+ if (e.touches.length > 1 && e.type !== 'touchend') {
1812
+ callIfFunction(endFn, e, touch);
1813
+ } else {
1814
+ callIfFunction(fn, e, touch);
1815
+ }
1816
+ };
1817
+ };
1818
+ var normalizeMouse = function normalizeMouse(fn, endFn) {
1819
+ return function (e) {
1820
+ if (e.buttons > 1 && e.type !== 'mouseup') {
1821
+ callIfFunction(endFn, e, e);
1822
+ } else {
1823
+ callIfFunction(fn, e, e);
1824
+ }
1825
+ };
1826
+ };
1827
+ var normalizePress = function normalizePress(fn, endFn) {
1828
+ return function (e) {
1829
+ if (e.touches) {
1830
+ normalizeTouch(fn, endFn)(e);
1831
+ } else {
1832
+ normalizeMouse(fn, endFn)(e);
1833
+ }
1834
+ };
1740
1835
  };
1836
+ var touchClick = function touchClick(cb) {
1837
+ var sensibility = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 5;
1838
+ return function (e) {
1839
+ var _e$touches;
1741
1840
 
1742
- var mapAction = function mapAction(get, dispatcher, firstRun) {
1743
- return function (action) {
1744
- if (Array.isArray(action)) {
1745
- if (firstRun) {
1746
- return function () {
1747
- return mapAction(get, dispatcher)(action);
1748
- };
1749
- }
1841
+ if (((_e$touches = e.touches) === null || _e$touches === void 0 ? void 0 : _e$touches.length) !== 1) {
1842
+ return;
1843
+ }
1750
1844
 
1751
- var _action = _slicedToArray__default['default'](action, 3),
1752
- fetcher = _action[0],
1753
- reducer = _action[1],
1754
- rollbacker = _action[2];
1845
+ var target = e.target;
1846
+ var originalX = e.touches[0].screenX;
1847
+ var originalY = e.touches[0].screenY;
1755
1848
 
1756
- var _ref3 = action.extra || {},
1757
- skip = _ref3.skip;
1849
+ var isInsideBounds = function isInsideBounds(touch) {
1850
+ return Math.sqrt(Math.pow(originalX - touch.screenX, 2) + Math.pow(originalY - touch.screenY, 2)) < sensibility;
1851
+ };
1758
1852
 
1759
- if (skip && skip(get())) {
1760
- return Promise.resolve(SKIPPED_ACTION);
1853
+ var checkBounds = function checkBounds(e) {
1854
+ if (e.touches.length !== 1) {
1855
+ return;
1761
1856
  }
1762
1857
 
1763
- var fetched = fetcher();
1858
+ if (!isInsideBounds(e.changedTouches[0])) {
1859
+ maybeClick();
1860
+ }
1861
+ };
1764
1862
 
1765
- if (rollbacker) {
1766
- dispatcher(function (prevState) {
1767
- var nextState = reducer(null)(prevState);
1768
- fetched.catch(function (response) {
1769
- dispatcher(rollbacker(prevState, nextState, response));
1770
- });
1771
- return nextState;
1772
- });
1863
+ var maybeClick = function maybeClick(e) {
1864
+ var _e$changedTouches;
1865
+
1866
+ target.removeEventListener('touchend', maybeClick);
1867
+ target.removeEventListener('touchmove', checkBounds);
1868
+
1869
+ if ((e === null || e === void 0 ? void 0 : (_e$changedTouches = e.changedTouches) === null || _e$changedTouches === void 0 ? void 0 : _e$changedTouches.length) !== 1) {
1870
+ return;
1773
1871
  }
1774
1872
 
1775
- if (reducer !== undefined) {
1776
- fetched.then(function (response) {
1777
- return dispatcher(reducer(response));
1778
- });
1873
+ if (isInsideBounds(e.changedTouches[0])) {
1874
+ e.preventDefault();
1875
+ cb(e);
1779
1876
  }
1877
+ };
1780
1878
 
1781
- return fetched;
1782
- } else {
1783
- return function () {
1784
- return mapAction(get, dispatcher)(action.apply(void 0, arguments));
1785
- };
1786
- }
1879
+ target.addEventListener('touchend', maybeClick);
1880
+ target.addEventListener('touchmove', checkBounds);
1787
1881
  };
1788
1882
  };
1883
+ var isEmptyHtml = function isEmptyHtml() {
1884
+ var __html = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : "";
1789
1885
 
1790
- var activateActions = function activateActions(get, dispatcher) {
1791
- for (var _len4 = arguments.length, actions = new Array(_len4 > 2 ? _len4 - 2 : 0), _key4 = 2; _key4 < _len4; _key4++) {
1792
- actions[_key4 - 2] = arguments[_key4];
1886
+ var a = document.createElement('span');
1887
+ a.innerHTML = __html;
1888
+ return a.textContent.replace(/\s/g, '').length === 0;
1889
+ };
1890
+ var getScrollParent = function getScrollParent(node) {
1891
+ if (!node) {
1892
+ return window;
1793
1893
  }
1794
1894
 
1795
- return actions.map(mapAction(get, dispatcher, true));
1796
- };
1797
- var SkipAction = function SkipAction(skip, action) {
1798
- action.extra = _objectSpread__default['default']({}, action.extra, {
1799
- skip: skip
1800
- });
1801
- return action;
1802
- };
1895
+ var overflowY = window.getComputedStyle(node).overflowY;
1896
+ var isScrollable = overflowY !== 'visible' && overflowY !== 'hidden';
1803
1897
 
1804
- var compareBest = function compareBest(compare) {
1805
- return function (best, next) {
1806
- return best ? compare(best, next) ? next : best : next;
1807
- };
1808
- };
1809
- var toLowest = function toLowest() {
1810
- var getValue = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : _identity__default['default'];
1811
- return compareBest(function (best, next) {
1812
- return getValue(next) < getValue(best);
1813
- });
1898
+ if (isScrollable && (node.scrollHeight > node.clientHeight || overflowY === 'scroll')) {
1899
+ return node;
1900
+ } else {
1901
+ return getScrollParent(node.offsetParent);
1902
+ }
1814
1903
  };
1815
- var toHighest = function toHighest() {
1816
- var getValue = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : _identity__default['default'];
1817
- return compareBest(function (best, next) {
1818
- return getValue(next) > getValue(best);
1904
+ var scrollIntoViewWithOffset = function scrollIntoViewWithOffset(el, offset) {
1905
+ var scrollOffset = getScrollParent(el);
1906
+ var scrollY = scrollOffset === window ? window.pageYOffset : scrollOffset.scrollTop;
1907
+ var elTop = el.getBoundingClientRect().top;
1908
+ var computedOffset = callIfFunction(offset, elTop > 0);
1909
+ var y = el.getBoundingClientRect().top + scrollY + computedOffset;
1910
+ scrollOffset.scrollTo({
1911
+ top: y,
1912
+ behavior: 'smooth'
1819
1913
  });
1820
1914
  };
1915
+ var isElementInView =
1916
+ /*#__PURE__*/
1917
+ function () {
1918
+ var _ref4 = _asyncToGenerator__default['default'](
1919
+ /*#__PURE__*/
1920
+ _regeneratorRuntime__default['default'].mark(function _callee(element) {
1921
+ var html, rect;
1922
+ return _regeneratorRuntime__default['default'].wrap(function _callee$(_context) {
1923
+ while (1) {
1924
+ switch (_context.prev = _context.next) {
1925
+ case 0:
1926
+ if (element) {
1927
+ _context.next = 2;
1928
+ break;
1929
+ }
1821
1930
 
1822
- var addExtraProp = function addExtraProp(element, extra) {
1823
- var override = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;
1824
- return React__default['default'].cloneElement(element, override ? _objectSpread__default['default']({}, element.props, extra) : _objectSpread__default['default']({}, extra, element.props), element.props.children);
1825
- };
1931
+ return _context.abrupt("return", false);
1826
1932
 
1827
- var useEventListener = function useEventListener(eventName, callback) {
1828
- var deps = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : [];
1829
- React.useEffect(function () {
1830
- window.addEventListener(eventName, callback);
1831
- return function () {
1832
- return window.removeEventListener(eventName, callback);
1833
- };
1834
- }, deps);
1933
+ case 2:
1934
+ if (!(1 !== element.nodeType)) {
1935
+ _context.next = 4;
1936
+ break;
1937
+ }
1938
+
1939
+ return _context.abrupt("return", false);
1940
+
1941
+ case 4:
1942
+ html = document.documentElement;
1943
+ rect = element.getBoundingClientRect();
1944
+
1945
+ if (!IntersectionObserver) {
1946
+ _context.next = 8;
1947
+ break;
1948
+ }
1949
+
1950
+ return _context.abrupt("return", new Promise(function (resolve) {
1951
+ var o = new IntersectionObserver(function (_ref5) {
1952
+ var _ref6 = _slicedToArray__default['default'](_ref5, 1),
1953
+ entry = _ref6[0];
1954
+
1955
+ resolve(entry.intersectionRatio === 1);
1956
+ o.disconnect();
1957
+ });
1958
+ o.observe(element);
1959
+ }));
1960
+
1961
+ case 8:
1962
+ return _context.abrupt("return", !!rect && rect.bottom >= 0 && rect.right >= 0 && rect.left <= html.clientWidth && rect.top <= html.clientHeight);
1963
+
1964
+ case 9:
1965
+ case "end":
1966
+ return _context.stop();
1967
+ }
1968
+ }
1969
+ }, _callee, this);
1970
+ }));
1971
+
1972
+ return function isElementInView(_x) {
1973
+ return _ref4.apply(this, arguments);
1974
+ };
1975
+ }();
1976
+ var i = 0;
1977
+ var getUID = function getUID() {
1978
+ return Date.now().toString(36) + Math.random().toString(36).slice(2) + (i++).toString(36);
1835
1979
  };
1836
- var useEventListenerFor = function useEventListenerFor(element, eventName, callback) {
1837
- var deps = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : [];
1838
- React.useEffect(function () {
1839
- element.addEventListener(eventName, callback);
1840
- return function () {
1841
- return element.removeEventListener(eventName, callback);
1842
- };
1843
- }, deps.concat(element));
1980
+ var getUrlParams = function getUrlParams() {
1981
+ return _fromPairs__default['default'](Array.from(new URLSearchParams(location.search).entries()));
1844
1982
  };
1845
1983
 
1846
1984
  var disableSelect = function disableSelect(e) {
@@ -1848,10 +1986,10 @@ var disableSelect = function disableSelect(e) {
1848
1986
  };
1849
1987
 
1850
1988
  var createPressEvent = function createPressEvent(onStart) {
1851
- return normalizePress(function (startEvent, info) {
1989
+ return utils.normalizePress(function (startEvent, info) {
1852
1990
  var onEnd = onStart(startEvent, info);
1853
- var finish = normalizePress(function (e, info) {
1854
- callIfFunction(onEnd, e, info);
1991
+ var finish = utils.normalizePress(function (e, info) {
1992
+ utils.callIfFunction(onEnd, e, info);
1855
1993
  window.removeEventListener('selectstart', disableSelect);
1856
1994
  window.removeEventListener('touchend', finish);
1857
1995
  window.removeEventListener('mouseup', finish);
@@ -1878,8 +2016,8 @@ var createPressAndHoldEvent = function createPressAndHoldEvent(onStart, interval
1878
2016
  var intervalId = setInterval(function () {
1879
2017
  onInterval(i++);
1880
2018
  }, interval);
1881
- return normalizePress(function (e, info) {
1882
- callIfFunction(onEnd, e, info);
2019
+ return utils.normalizePress(function (e, info) {
2020
+ utils.callIfFunction(onEnd, e, info);
1883
2021
  clearInterval(intervalId);
1884
2022
  });
1885
2023
  } else {
@@ -1895,8 +2033,8 @@ var createPressAndHoldEvent = function createPressAndHoldEvent(onStart, interval
1895
2033
  };
1896
2034
 
1897
2035
  run();
1898
- return normalizePress(function (e, info) {
1899
- callIfFunction(onEnd, e, info);
2036
+ return utils.normalizePress(function (e, info) {
2037
+ utils.callIfFunction(onEnd, e, info);
1900
2038
  running = false;
1901
2039
  });
1902
2040
  }
@@ -1909,12 +2047,12 @@ var createPressAndMoveEvent = function createPressAndMoveEvent(onStart) {
1909
2047
  onMove = _concat4[0],
1910
2048
  onEnd = _concat4[1];
1911
2049
 
1912
- var finish = normalizePress(function (e, info) {
1913
- callIfFunction(onEnd, e, info);
2050
+ var finish = utils.normalizePress(function (e, info) {
2051
+ utils.callIfFunction(onEnd, e, info);
1914
2052
  window.removeEventListener('touchmove', move);
1915
2053
  window.removeEventListener('mousemove', move);
1916
2054
  });
1917
- var move = normalizePress(onMove, finish);
2055
+ var move = utils.normalizePress(onMove, finish);
1918
2056
 
1919
2057
  if (startEvent.touches) {
1920
2058
  window.addEventListener('touchmove', move, {
@@ -1942,8 +2080,7 @@ var innerWrapLazy = function innerWrapLazy(refreshCallback) {
1942
2080
  }
1943
2081
 
1944
2082
  var status;
1945
- var lazyResolver;
1946
- var lazyPromise;
2083
+ var awaitReadResolver;
1947
2084
  var checker = _isEqual__default['default'];
1948
2085
  var lazyArgs = EMPTY_ARGS;
1949
2086
 
@@ -1952,19 +2089,20 @@ var innerWrapLazy = function innerWrapLazy(refreshCallback) {
1952
2089
  var result;
1953
2090
  var currentValue = UNDEFINED_CURRENT_VALUE;
1954
2091
 
1955
- var suspend = function suspend(maybePromise) {
1956
- status = "pending";
1957
- lazyResolver = _identity__default['default'];
1958
- lazyPromise = _isFunction__default['default'](maybePromise) ? new Promise(function (res) {
1959
- return lazyResolver = res;
1960
- }) : Promise.resolve();
1961
- var returnedPromise = lazyPromise.then(function () {
2092
+ var promisify = function promisify(maybePromise, resolveNow) {
2093
+ return (_isFunction__default['default'](maybePromise) && !resolveNow ? new Promise(function (res) {
2094
+ return awaitReadResolver = res;
2095
+ }) : Promise.resolve()).then(function () {
1962
2096
  for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {
1963
2097
  args[_key2] = arguments[_key2];
1964
2098
  }
1965
2099
 
1966
- return callIfFunction.apply(void 0, [maybePromise].concat(rootArgs, _toConsumableArray__default['default'](lazyArgs), args));
1967
- }).then(function (r) {
2100
+ return utils.callIfFunction.apply(void 0, [maybePromise].concat(rootArgs, _toConsumableArray__default['default'](lazyArgs), args));
2101
+ });
2102
+ };
2103
+
2104
+ var onPromiseSuccess = function onPromiseSuccess(returnedPromise) {
2105
+ return function (r) {
1968
2106
  if (returnedPromise !== suspender) {
1969
2107
  return suspender;
1970
2108
  }
@@ -1973,7 +2111,11 @@ var innerWrapLazy = function innerWrapLazy(refreshCallback) {
1973
2111
  currentValue = r;
1974
2112
  result = r;
1975
2113
  return r;
1976
- }, function (e) {
2114
+ };
2115
+ };
2116
+
2117
+ var onPromiseError = function onPromiseError(returnedPromise) {
2118
+ return function (e) {
1977
2119
  if (returnedPromise !== suspender) {
1978
2120
  return suspender;
1979
2121
  }
@@ -1981,14 +2123,21 @@ var innerWrapLazy = function innerWrapLazy(refreshCallback) {
1981
2123
  status = "error";
1982
2124
  result = e;
1983
2125
  return Promise.reject(e);
1984
- });
2126
+ };
2127
+ };
2128
+
2129
+ var suspend = function suspend(maybePromise) {
2130
+ status = "pending";
2131
+ awaitReadResolver = _identity__default['default'];
2132
+ var returnedPromise = promisify(maybePromise);
2133
+ returnedPromise.then(onPromiseSuccess(returnedPromise), onPromiseError(returnedPromise));
1985
2134
  return returnedPromise;
1986
2135
  };
1987
2136
 
1988
2137
  var suspender = suspend(maybePromise);
1989
2138
  return {
1990
2139
  read: function read() {
1991
- lazyResolver();
2140
+ awaitReadResolver();
1992
2141
 
1993
2142
  if (status === "pending") {
1994
2143
  throw suspender;
@@ -1999,14 +2148,14 @@ var innerWrapLazy = function innerWrapLazy(refreshCallback) {
1999
2148
  }
2000
2149
  },
2001
2150
  promise: function promise() {
2002
- lazyResolver();
2151
+ awaitReadResolver();
2003
2152
  return suspender;
2004
2153
  },
2005
2154
  refresh: function refresh(force) {
2006
2155
  if (status !== "pending" || force) {
2007
2156
  suspender = suspend(maybePromise);
2008
2157
  _uid = Math.random().toString() + Date.now();
2009
- callIfFunction(refreshCallback, this);
2158
+ utils.callIfFunction(refreshCallback, this);
2010
2159
  }
2011
2160
 
2012
2161
  return this;
@@ -2037,13 +2186,27 @@ var innerWrapLazy = function innerWrapLazy(refreshCallback) {
2037
2186
  _getCurrentValue: function _getCurrentValue() {
2038
2187
  return currentValue;
2039
2188
  },
2189
+ silentRefresh: function silentRefresh() {
2190
+ var currentSuspender = suspender;
2191
+ var suspended = promisify(maybePromise, true).then(function (v) {
2192
+ if (currentSuspender === suspender) {
2193
+ suspender = suspended;
2194
+ }
2195
+
2196
+ return v;
2197
+ });
2198
+ suspended.then(onPromiseSuccess(suspended), onPromiseError(suspended));
2199
+ _uid = Math.random().toString() + Date.now();
2200
+ utils.callIfFunction(refreshCallback, this);
2201
+ return suspended;
2202
+ },
2040
2203
  and: function and(lazy) {},
2041
2204
  checkWith: function checkWith(isEqual) {
2042
2205
  checker = isEqual;
2043
2206
  return this;
2044
2207
  },
2045
2208
  localUpdate: function localUpdate(updater) {
2046
- currentValue = callIfFunction(updater, currentValue);
2209
+ currentValue = utils.callIfFunction(updater, currentValue);
2047
2210
  return this;
2048
2211
  },
2049
2212
  uid: function uid() {
@@ -2052,75 +2215,7 @@ var innerWrapLazy = function innerWrapLazy(refreshCallback) {
2052
2215
  };
2053
2216
  };
2054
2217
  };
2055
-
2056
- var UNMOUNTED = {};
2057
2218
  var wrapLazy = innerWrapLazy();
2058
- var willUseLazy = function willUseLazy() {
2059
- var promiseCallbackRef = {
2060
- current: null
2061
- };
2062
- var promiseRef = {
2063
- current: new Promise(function (res) {
2064
- return promiseCallbackRef.current = res;
2065
- })
2066
- };
2067
-
2068
- var useLazyEffect = function useLazyEffect(callback) {
2069
- var value = lazy._getCurrentValue();
2070
-
2071
- var componentState = React.useRef(value);
2072
- React.useEffect(function () {
2073
- var callbackCaller = function callbackCaller(result) {
2074
- if (componentState.current !== UNMOUNTED) {
2075
- componentState.current = result;
2076
- callback(result);
2077
- promiseRef.current.then(callbackCaller);
2078
- }
2079
- };
2080
-
2081
- promiseRef.current.then(callbackCaller);
2082
- return function () {
2083
- return componentState.current = UNMOUNTED;
2084
- };
2085
- }, []);
2086
- React.useEffect(function () {
2087
- if (value !== componentState.current) {
2088
- callback(value);
2089
- }
2090
- }, [value]);
2091
- };
2092
-
2093
- var lazy = innerWrapLazy(function (lazy) {
2094
- lazy.promise().then(function (result) {
2095
- var tempCallback = promiseCallbackRef.current;
2096
- promiseRef.current = new Promise(function (res) {
2097
- return promiseCallbackRef.current = res;
2098
- });
2099
- tempCallback(result);
2100
- });
2101
- }).apply(void 0, arguments);
2102
- return [lazy, useLazyEffect];
2103
- };
2104
- var willUseAutoLazy = function willUseAutoLazy() {
2105
- var _willUseLazy = willUseLazy.apply(void 0, arguments),
2106
- _willUseLazy2 = _slicedToArray__default['default'](_willUseLazy, 2),
2107
- lazy = _willUseLazy2[0],
2108
- useLazyEffect = _willUseLazy2[1];
2109
-
2110
- var useAutoLazyEffect = function useAutoLazyEffect(extraEffect) {
2111
- var _useState = React.useState(1),
2112
- _useState2 = _slicedToArray__default['default'](_useState, 2),
2113
- update = _useState2[1];
2114
-
2115
- useLazyEffect(function () {
2116
- return update(function (i) {
2117
- return i + 1;
2118
- });
2119
- });
2120
- };
2121
-
2122
- return [lazy, useAutoLazyEffect];
2123
- };
2124
2219
 
2125
2220
  var SECOND = 1000;
2126
2221
  var MINUTE = SECOND * 60;
@@ -2209,7 +2304,19 @@ var blockDiffIntervals = function blockDiffIntervals(a, b) {
2209
2304
  return intervalsIntersect(a, b) ? [] : [a];
2210
2305
  };
2211
2306
  var startBlockDiffIntervals = function startBlockDiffIntervals(a, b) {
2212
- return intervalsIntersectExclusive(a, b) && a[0] > b[0] ? [] : [a];
2307
+ return intervalsIntersectExclusive(a, b) && a[0] >= b[0] ? [] : [a];
2308
+ };
2309
+
2310
+ var timerPromise = function timerPromise(time) {
2311
+ return new Promise(function (res) {
2312
+ return setTimeout(res, time);
2313
+ });
2314
+ };
2315
+ var cancelableTimer = function cancelableTimer(res, time) {
2316
+ var v = setTimeout(res, time);
2317
+ return function () {
2318
+ return clearTimeout(v);
2319
+ };
2213
2320
  };
2214
2321
 
2215
2322
  var formatJoin = function formatJoin(arr) {
@@ -2222,8 +2329,89 @@ var formatJoinArr = function formatJoinArr(arr, separator, lastSeparator) {
2222
2329
  return i < arr.length - 2 ? [v, separator] : i < arr.length - 1 ? [v, lastSeparator] : [v];
2223
2330
  });
2224
2331
  };
2332
+ var removeAccents = function removeAccents(str) {
2333
+ return (str || "").normalize('NFD').replace(/(?:[\^`\xA8\xAF\xB4\xB7\xB8\u02B0-\u034E\u0350-\u0357\u035D-\u0362\u0374\u0375\u037A\u0384\u0385\u0483-\u0487\u0559\u0591-\u05A1\u05A3-\u05BD\u05BF\u05C1\u05C2\u05C4\u064B-\u0652\u0657\u0658\u06DF\u06E0\u06E5\u06E6\u06EA-\u06EC\u0730-\u074A\u07A6-\u07B0\u07EB-\u07F5\u0818\u0819\u0898-\u089F\u08C9-\u08D2\u08E3-\u08FE\u093C\u094D\u0951-\u0954\u0971\u09BC\u09CD\u0A3C\u0A4D\u0ABC\u0ACD\u0AFD-\u0AFF\u0B3C\u0B4D\u0B55\u0BCD\u0C3C\u0C4D\u0CBC\u0CCD\u0D3B\u0D3C\u0D4D\u0DCA\u0E3A\u0E47-\u0E4C\u0E4E\u0EBA\u0EC8-\u0ECC\u0F18\u0F19\u0F35\u0F37\u0F39\u0F3E\u0F3F\u0F82-\u0F84\u0F86\u0F87\u0FC6\u1037\u1039\u103A\u1063\u1064\u1069-\u106D\u1087-\u108D\u108F\u109A\u109B\u135D-\u135F\u1714\u1715\u1734\u17C9-\u17D3\u17DD\u1939-\u193B\u1A60\u1A75-\u1A7C\u1A7F\u1AB0-\u1ABE\u1AC1-\u1ACB\u1B34\u1B44\u1B6B-\u1B73\u1BAA\u1BAB\u1BE6\u1BF2\u1BF3\u1C36\u1C37\u1C78-\u1C7D\u1CD0-\u1CE8\u1CED\u1CF4\u1CF7-\u1CF9\u1D2C-\u1D6A\u1DC4-\u1DCF\u1DF5-\u1DFF\u1FBD\u1FBF-\u1FC1\u1FCD-\u1FCF\u1FDD-\u1FDF\u1FED-\u1FEF\u1FFD\u1FFE\u2CEF-\u2CF1\u2E2F\u302A-\u302F\u3099-\u309C\u30FC\uA66F\uA67C\uA67D\uA67F\uA69C\uA69D\uA6F0\uA6F1\uA700-\uA721\uA788-\uA78A\uA7F8\uA7F9\uA806\uA82C\uA8C4\uA8E0-\uA8F1\uA92B-\uA92E\uA953\uA9B3\uA9C0\uA9E5\uAA7B-\uAA7D\uAABF-\uAAC2\uAAF6\uAB5B-\uAB5F\uAB69-\uAB6B\uABEC\uABED\uFB1E\uFE20-\uFE2F\uFF3E\uFF40\uFF70\uFF9E\uFF9F\uFFE3]|\uD800\uDEE0|\uD801[\uDF80-\uDF85\uDF87-\uDFB0\uDFB2-\uDFBA]|\uD802[\uDE38-\uDE3A\uDE3F\uDEE5\uDEE6]|\uD803[\uDD22-\uDD27\uDD4E\uDD69-\uDD6D\uDEFD-\uDEFF\uDF46-\uDF50\uDF82-\uDF85]|\uD804[\uDC46\uDC70\uDCB9\uDCBA\uDD33\uDD34\uDD73\uDDC0\uDDCA-\uDDCC\uDE35\uDE36\uDEE9\uDEEA\uDF3B\uDF3C\uDF4D\uDF66-\uDF6C\uDF70-\uDF74\uDFCE-\uDFD0\uDFD2\uDFD3\uDFE1\uDFE2]|\uD805[\uDC42\uDC46\uDCC2\uDCC3\uDDBF\uDDC0\uDE3F\uDEB6\uDEB7\uDF2B]|\uD806[\uDC39\uDC3A\uDD3D\uDD3E\uDD43\uDDE0\uDE34\uDE47\uDE99]|\uD807[\uDC3F\uDD42\uDD44\uDD45\uDD97\uDF41\uDF42\uDF5A]|\uD80D[\uDC47-\uDC55]|\uD818\uDD2F|\uD81A[\uDEF0-\uDEF4\uDF30-\uDF36]|\uD81B[\uDD6B\uDD6C\uDF8F-\uDF9F\uDFF0\uDFF1]|\uD82B[\uDFF0-\uDFF3\uDFF5-\uDFFB\uDFFD\uDFFE]|\uD833[\uDF00-\uDF2D\uDF30-\uDF46]|\uD834[\uDD67-\uDD69\uDD6D-\uDD72\uDD7B-\uDD82\uDD85-\uDD8B\uDDAA-\uDDAD]|\uD838[\uDC30-\uDC6D\uDD30-\uDD36\uDEAE\uDEEC-\uDEEF]|\uD839[\uDDEE\uDDEF]|\uD83A[\uDCD0-\uDCD6\uDD44-\uDD46\uDD48-\uDD4A])/g, "");
2334
+ };
2335
+ var asciify = function asciify(str) {
2336
+ return removeAccents(str || "").replace(/[^\x00-\x7F]/g, "");
2337
+ };
2225
2338
  var normalizeText = function normalizeText(str) {
2226
- return (str || "").normalize('NFD').replace(/[0-9A-Za-z\xC0-\xD6\xD9-\xF6\xF9-\u017E\u1E00-\u1EFF]/g, "").toLowerCase();
2339
+ return removeAccents(str).toLowerCase();
2340
+ };
2341
+ var normalizeTextUrl = function normalizeTextUrl(str) {
2342
+ return removeAccents(str).replace(/[\s.\u0022&/]/g, '-').replace(/-{2,}/g, '-').toLowerCase();
2343
+ };
2344
+ var willFormatDecimal = function willFormatDecimal() {
2345
+ var digits = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 2;
2346
+
2347
+ var _ref = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},
2348
+ max = _ref.max,
2349
+ min = _ref.min,
2350
+ padTo = _ref.padTo,
2351
+ zeroless = _ref.zeroless,
2352
+ clean = _ref.clean;
2353
+
2354
+ var splitRegex = new RegExp("(\\d+)(\\d{".concat(digits, "})"));
2355
+ var singleRegex = new RegExp("/^([^,]*,\\d{0,".concat(digits, ").*/"));
2356
+
2357
+ var pad = function pad(str) {
2358
+ return padTo ? str.indexOf(",") >= 0 ? _padCharsEnd__default['default']("0", str.indexOf(",") + padTo + 1, str) : _padCharsEnd__default['default']("0", str.length + 1 + padTo, str + ",") : str;
2359
+ };
2360
+
2361
+ var constrain = function constrain(val) {
2362
+ if (_isNumber__default['default'](max) && parseFloat(val.replace(",", ".")) > max) return max.toString();
2363
+ if (_isNumber__default['default'](min) && parseFloat(val.replace(",", ".")) < min) return min.toString();
2364
+ return val;
2365
+ };
2366
+
2367
+ var cleaned = function cleaned(val) {
2368
+ return clean ? val.replace(/,$/, '').replace(/^0*,/, '0,') || "0" : val;
2369
+ };
2370
+
2371
+ return function (v) {
2372
+ var skipZero = function skipZero(finalV) {
2373
+ return v !== '0' && zeroless && finalV === '0' ? '' : finalV.replace(/^0+([^,])/, '$1');
2374
+ };
2375
+
2376
+ var formatted = _flow__default['default'](constrain, pad, skipZero, cleaned);
2377
+
2378
+ if (_isNumber__default['default'](v)) {
2379
+ return formatted(v.toString().replace(".", ","));
2380
+ }
2381
+
2382
+ var fixComma = function fixComma(v) {
2383
+ return v.replace(/,/g, '').replace(splitRegex, "$1,$2");
2384
+ };
2385
+
2386
+ var format = function format() {
2387
+ var allowedChars = (v || "").replace(/[^\d,]/g, "");
2388
+ var commaIndex = allowedChars.indexOf(',');
2389
+
2390
+ if (commaIndex >= 0 && commaIndex < allowedChars.length - 1 - digits) {
2391
+ var alteredComma = fixComma(allowedChars);
2392
+
2393
+ if (_isNumber__default['default'](max) && parseFloat(alteredComma.replace(",", ".")) > max) {
2394
+ return fixComma(allowedChars.slice(0, commaIndex + 1 + digits));
2395
+ }
2396
+
2397
+ return alteredComma;
2398
+ }
2399
+
2400
+ var simpleNumber = allowedChars.replace(singleRegex, "$1");
2401
+
2402
+ if (_isNumber__default['default'](max) && parseInt(simpleNumber) > max) {
2403
+ return simpleNumber.slice(0, -1);
2404
+ }
2405
+
2406
+ return simpleNumber;
2407
+ };
2408
+
2409
+ var result = format();
2410
+ return formatted(result);
2411
+ };
2412
+ };
2413
+ var parseDecimalToNumber = function parseDecimalToNumber(v) {
2414
+ return _isString__default['default'](v) ? Number(v.replace(/\./g, '').replace(',', ".")) : v || 0;
2227
2415
  };
2228
2416
 
2229
2417
  exports.Action = Action;
@@ -2248,10 +2436,13 @@ exports.addHttp = addHttp;
2248
2436
  exports.addQueryString = addQueryString;
2249
2437
  exports.addZero = addZero;
2250
2438
  exports.animationTiming = animationTiming;
2439
+ exports.asciify = asciify;
2440
+ exports.asyncDebounce = asyncDebounce;
2251
2441
  exports.blockDiffIntervals = blockDiffIntervals;
2252
2442
  exports.callIfFunction = callIfFunction;
2253
2443
  exports.callIfFunctions = callIfFunctions;
2254
2444
  exports.callMany = callMany;
2445
+ exports.cancelableTimer = cancelableTimer;
2255
2446
  exports.compareBest = compareBest;
2256
2447
  exports.concatSelectors = concatSelectors;
2257
2448
  exports.constrainEvent = constrainEvent;
@@ -2260,6 +2451,7 @@ exports.createPressAndMoveEvent = createPressAndMoveEvent;
2260
2451
  exports.createPressEvent = createPressEvent;
2261
2452
  exports.createPromiseQueue = createPromiseQueue;
2262
2453
  exports.createPromiseResolverPair = createPromiseResolverPair;
2454
+ exports.createSimplePromiseLock = createSimplePromiseLock;
2263
2455
  exports.customTheme = customTheme;
2264
2456
  exports.diffIntervals = diffIntervals;
2265
2457
  exports.digitsToPattern = digitsToPattern;
@@ -2315,16 +2507,21 @@ exports.media = media;
2315
2507
  exports.normalizeMouse = normalizeMouse;
2316
2508
  exports.normalizePress = normalizePress;
2317
2509
  exports.normalizeText = normalizeText;
2510
+ exports.normalizeTextUrl = normalizeTextUrl;
2318
2511
  exports.normalizeTouch = normalizeTouch;
2319
2512
  exports.notPrinterMedia = notPrinterMedia;
2320
2513
  exports.oneWayAnimation = oneWayAnimation;
2321
2514
  exports.parseDate = parseDate;
2515
+ exports.parseDecimalToNumber = parseDecimalToNumber;
2322
2516
  exports.postFetcher = postFetcher;
2323
2517
  exports.postFetcherWithResponse = postFetcherWithResponse;
2324
2518
  exports.preventDefault = preventDefault;
2325
2519
  exports.printerMedia = printerMedia;
2520
+ exports.promiseMapReduce = promiseMapReduce;
2326
2521
  exports.prop = prop;
2522
+ exports.queryStringToObj = queryStringToObj;
2327
2523
  exports.rafThrottle = rafThrottle;
2524
+ exports.removeAccents = removeAccents;
2328
2525
  exports.safeNewLineToBr = safeNewLineToBr;
2329
2526
  exports.scrollIntoViewWithOffset = scrollIntoViewWithOffset;
2330
2527
  exports.scrollWidth = scrollWidth;
@@ -2344,7 +2541,6 @@ exports.useEventListenerFor = useEventListenerFor;
2344
2541
  exports.using = using;
2345
2542
  exports.vheight = vheight;
2346
2543
  exports.will = will;
2544
+ exports.willFormatDecimal = willFormatDecimal;
2347
2545
  exports.willRafThrottle = willRafThrottle;
2348
- exports.willUseAutoLazy = willUseAutoLazy;
2349
- exports.willUseLazy = willUseLazy;
2350
2546
  exports.wrapLazy = wrapLazy;