@startlibs/utils 1.0.3 → 1.1.0

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.
Files changed (63) hide show
  1. package/lib/ActionUtils.mjs +117 -0
  2. package/lib/ActionUtils.mjs.map +1 -0
  3. package/lib/FetchUtils.mjs +100 -0
  4. package/lib/FetchUtils.mjs.map +1 -0
  5. package/lib/createPressEvent.mjs +74 -0
  6. package/lib/createPressEvent.mjs.map +1 -0
  7. package/lib/fixMediaQuery.mjs +64 -0
  8. package/lib/fixMediaQuery.mjs.map +1 -0
  9. package/lib/formatDate.mjs +110 -0
  10. package/lib/formatDate.mjs.map +1 -0
  11. package/lib/formatUtils.mjs +64 -0
  12. package/lib/formatUtils.mjs.map +1 -0
  13. package/lib/getClosestOffsetScroll.mjs +15 -0
  14. package/lib/getClosestOffsetScroll.mjs.map +1 -0
  15. package/lib/hooks/useEventListener.mjs +27 -0
  16. package/lib/hooks/useEventListener.mjs.map +1 -0
  17. package/lib/index.cjs +1811 -0
  18. package/lib/index.cjs.map +1 -0
  19. package/lib/index.mjs +19 -0
  20. package/lib/index.mjs.map +1 -0
  21. package/lib/lodashUtils.mjs +131 -0
  22. package/lib/lodashUtils.mjs.map +1 -0
  23. package/lib/promiseUtils.mjs +92 -0
  24. package/lib/promiseUtils.mjs.map +1 -0
  25. package/lib/reactUtils.mjs +12 -0
  26. package/lib/reactUtils.mjs.map +1 -0
  27. package/lib/reduceUtils.mjs +14 -0
  28. package/lib/reduceUtils.mjs.map +1 -0
  29. package/lib/smoothScroll.mjs +59 -0
  30. package/lib/smoothScroll.mjs.map +1 -0
  31. package/lib/styled.mjs +234 -0
  32. package/lib/styled.mjs.map +1 -0
  33. package/lib/timeUtils.mjs +81 -0
  34. package/lib/timeUtils.mjs.map +1 -0
  35. package/lib/timerUtils.mjs +11 -0
  36. package/lib/timerUtils.mjs.map +1 -0
  37. package/lib/utils.mjs +386 -0
  38. package/lib/utils.mjs.map +1 -0
  39. package/lib/wrapLazy.mjs +132 -0
  40. package/lib/wrapLazy.mjs.map +1 -0
  41. package/package.json +44 -30
  42. package/src/ActionUtils.js +90 -0
  43. package/src/FetchUtils.js +87 -0
  44. package/src/createPressEvent.jsx +79 -0
  45. package/src/fixMediaQuery.js +71 -0
  46. package/src/formatDate.js +121 -0
  47. package/src/formatUtils.jsx +63 -0
  48. package/src/getClosestOffsetScroll.js +12 -0
  49. package/src/hooks/useEventListener.js +26 -0
  50. package/src/index.js +19 -0
  51. package/src/lodashUtils.jsx +110 -0
  52. package/src/promiseUtils.jsx +75 -0
  53. package/src/reactUtils.jsx +7 -0
  54. package/src/reduceUtils.jsx +6 -0
  55. package/src/smoothScroll.js +58 -0
  56. package/src/styled.js +177 -0
  57. package/src/timeUtils.jsx +57 -0
  58. package/src/timerUtils.jsx +10 -0
  59. package/src/utils.jsx +342 -0
  60. package/src/wrapLazy.jsx +122 -0
  61. package/.babelrc +0 -26
  62. package/lib/index.js +0 -2382
  63. package/rollup.config.js +0 -44
package/lib/utils.mjs ADDED
@@ -0,0 +1,386 @@
1
+ import _slicedToArray from '@babel/runtime/helpers/slicedToArray';
2
+ import _fromPairs from 'lodash/fp/fromPairs';
3
+ import _isFinite from 'lodash/fp/isFinite';
4
+ import { scrollWidth } from './fixMediaQuery.mjs';
5
+
6
+ const formatPath = function () {
7
+ for (var _len = arguments.length, paths = new Array(_len), _key = 0; _key < _len; _key++) {
8
+ paths[_key] = arguments[_key];
9
+ }
10
+ return paths.map(path => Array.isArray(path) ? path.join('.') : path ? path.toString().replace(/\[/g, '.').replace(/^\./, '').replace(/]/g, '') : '').filter(_ => _).join('.');
11
+ };
12
+ const identityFn = function () {
13
+ let n = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;
14
+ return function () {
15
+ for (var _len2 = arguments.length, e = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {
16
+ e[_key2] = arguments[_key2];
17
+ }
18
+ return e[n];
19
+ };
20
+ };
21
+ const will = function (fn) {
22
+ for (var _len3 = arguments.length, props = new Array(_len3 > 1 ? _len3 - 1 : 0), _key3 = 1; _key3 < _len3; _key3++) {
23
+ props[_key3 - 1] = arguments[_key3];
24
+ }
25
+ return function () {
26
+ for (var _len4 = arguments.length, more = new Array(_len4), _key4 = 0; _key4 < _len4; _key4++) {
27
+ more[_key4] = arguments[_key4];
28
+ }
29
+ return fn(...props, ...more);
30
+ };
31
+ };
32
+ const lazyValue = v => () => v;
33
+ const callIfFunction = function (prop) {
34
+ for (var _len5 = arguments.length, args = new Array(_len5 > 1 ? _len5 - 1 : 0), _key5 = 1; _key5 < _len5; _key5++) {
35
+ args[_key5 - 1] = arguments[_key5];
36
+ }
37
+ return typeof prop === "function" ? prop(...args) : prop;
38
+ };
39
+ const callIfFunctions = function (prop) {
40
+ for (var _len6 = arguments.length, args = new Array(_len6 > 1 ? _len6 - 1 : 0), _key6 = 1; _key6 < _len6; _key6++) {
41
+ args[_key6 - 1] = arguments[_key6];
42
+ }
43
+ return typeof prop === "function" ? prop(...args.map(e => callIfFunction(e))) : prop;
44
+ };
45
+ const callMany = function () {
46
+ for (var _len7 = arguments.length, many = new Array(_len7), _key7 = 0; _key7 < _len7; _key7++) {
47
+ many[_key7] = arguments[_key7];
48
+ }
49
+ return function () {
50
+ for (var _len8 = arguments.length, args = new Array(_len8), _key8 = 0; _key8 < _len8; _key8++) {
51
+ args[_key8] = arguments[_key8];
52
+ }
53
+ return many.map(_ => callIfFunction(_, ...args));
54
+ };
55
+ };
56
+ const ifUndefined = function (v) {
57
+ for (var _len9 = arguments.length, or = new Array(_len9 > 1 ? _len9 - 1 : 0), _key9 = 1; _key9 < _len9; _key9++) {
58
+ or[_key9 - 1] = arguments[_key9];
59
+ }
60
+ return v !== undefined ? v : or.length === 1 ? or[0] : ifUndefined(or[0], ...or.slice(1));
61
+ };
62
+ const using = function () {
63
+ for (var _len0 = arguments.length, v = new Array(_len0), _key0 = 0; _key0 < _len0; _key0++) {
64
+ v[_key0] = arguments[_key0];
65
+ }
66
+ return fn => fn(...v.map(v => callIfFunction(v)));
67
+ };
68
+ const stopPropagation = cb => e => {
69
+ e && e.stopPropagation && e.stopPropagation();
70
+ callIfFunction(cb, e);
71
+ };
72
+ const preventDefault = cb => e => {
73
+ e && e.preventDefault && e.preventDefault();
74
+ callIfFunction(cb, e);
75
+ };
76
+ const constrainEvent = cb => e => {
77
+ e === null || e === void 0 || e.preventDefault();
78
+ e.stopPropagation();
79
+ callIfFunction(cb, e);
80
+ };
81
+ const mapGetOrSet = (map, key, value) => (map.has(key) ? map : map.set(key, value)).get(key);
82
+ const intToHour = function (hour) {
83
+ let autoFill = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;
84
+ if (hour === undefined || hour === null) return '';
85
+ if (hour === 0) {
86
+ return "00:00";
87
+ }
88
+
89
+ //const [h,m] = ('000' + hour.toString().replace(":","")).slice(-4).replace(/(\d\d)(\d\d)/, '$1:$2').split(":")
90
+
91
+ const h = hour.toString().replace(":", "").slice(-4, -2);
92
+ const m = hour.toString().replace(":", "").slice(-2);
93
+ if (callIfFunction(autoFill, hour)) {
94
+ return ('000' + (h ? parseInt(h, 10) % 24 : '') + m).slice(-4).replace(/(\d\d)(\d\d)/, '$1:$2');
95
+ }
96
+ if (h) return (parseInt(h, 10) > 23 ? h.slice(1) : h) + ':' + m;
97
+ return m;
98
+ };
99
+ const formatHour = function () {
100
+ let hour = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : "";
101
+ if (!hour) {
102
+ return "";
103
+ }
104
+ const h = hour.toString().replace(":", "").slice(-4, -2);
105
+ const m = hour.toString().replace(":", "").slice(-2);
106
+ if (!h && parseInt(m) < 24 && !_isFinite(hour)) {
107
+ return m + ":00";
108
+ } else if (h) {
109
+ return (parseInt(h, 10) > 23 ? h.slice(1) : h) + ':' + m;
110
+ }
111
+ return ('000' + hour.toString().replace(":", "")).slice(-4).replace(/(\d\d)(\d\d)/, '$1:$2');
112
+ };
113
+ const willRafThrottle = () => {
114
+ let ticking = false;
115
+ return fn => {
116
+ if (!ticking) {
117
+ window.requestAnimationFrame(() => {
118
+ fn();
119
+ ticking = false;
120
+ });
121
+ ticking = true;
122
+ }
123
+ };
124
+ };
125
+ const rafThrottle = fn => {
126
+ const throttle = willRafThrottle();
127
+ return () => {
128
+ throttle(fn);
129
+ };
130
+ };
131
+ const intsToHour = _ref => {
132
+ let open = _ref.open,
133
+ close = _ref.close;
134
+ return intToHour(open) + ' - ' + intToHour(close);
135
+ };
136
+ function isSmallDevice() {
137
+ let width = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 600;
138
+ const smallDeviceQuery = window.matchMedia ? window.matchMedia("(max-width: ".concat(width + scrollWidth, "px)")) : {
139
+ matches: false
140
+ };
141
+ return smallDeviceQuery.matches;
142
+ }
143
+ function isHighDensity() {
144
+ 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;
145
+ }
146
+ function isRetina() {
147
+ 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);
148
+ }
149
+ function isMobile() {
150
+ if (typeof navigator === 'undefined') return false;
151
+ const ua = navigator.userAgent;
152
+ const isAndroid = /android/i.test(ua);
153
+ const isiOS = /iphone|ipod|ipad/i.test(ua);
154
+
155
+ // iPadOS 13+ reports "Macintosh" but has touch
156
+ const isIPadOS = navigator.platform === 'MacIntel' && navigator.maxTouchPoints > 1;
157
+ return isAndroid || isiOS || isIPadOS;
158
+ }
159
+ function isAndroid() {
160
+ if (navigator.userAgentData) {
161
+ return navigator.userAgentData.platform === "Android";
162
+ }
163
+ return /Android/i.test(navigator.userAgent);
164
+ }
165
+ const isPWA = () => {
166
+ return window.matchMedia && window.matchMedia("(display-mode: standalone)").matches || !!window.hasWebviewBridge;
167
+ };
168
+ function isTouchDevice() {
169
+ return window.document && 'ontouchstart' in window.document.documentElement;
170
+ }
171
+ const isIOS = () => {
172
+ return /iPad|iPhone|iPod/.test(navigator.platform) || navigator.platform === 'MacIntel' && navigator.maxTouchPoints > 1;
173
+ };
174
+ const isIPad = () => {
175
+ return navigator.userAgent.match(/iPad/i) != null;
176
+ };
177
+ const getNumberInputType2 = () => {
178
+ const isIOS = /iPad|iPhone|iPod/.test(navigator.platform) || navigator.platform === 'MacIntel' && navigator.maxTouchPoints > 1;
179
+ return isMobile() ? isIOS ? "tel" : "number" : "text";
180
+ };
181
+ const getNumberInputType = () => {
182
+ return "tel";
183
+ };
184
+ function addHttp(s, secure) {
185
+ s = (s || '').trim();
186
+ if (s.indexOf('http://') === 0 || s.indexOf('https://') === 0) {
187
+ return s;
188
+ } else {
189
+ return "http".concat(secure ? 's' : '', "://") + s;
190
+ }
191
+ }
192
+ const protocols = '(^|\\s|\u00a0)(https?://)?(www\\.)?';
193
+ const subdomains = '([a-zA-Z0-9][a-zA-Z0-9-_]*[a-zA-Z0-9]?\\.)*';
194
+ const 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})';
195
+ const resource = '[\u00A1-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEFa-zA-Z0-9-._~:/?#%[\\]@!$&\'()*+,;=]*';
196
+ const linkRegex = new RegExp(protocols + subdomains + domain + resource);
197
+ function isUrl(url) {
198
+ return linkRegex.test(addHttp(url));
199
+ }
200
+ function ellipsis() {
201
+ let str = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : "";
202
+ let length = arguments.length > 1 ? arguments[1] : undefined;
203
+ if (str.length > length) {
204
+ let words = str.slice(0, length).split(' ');
205
+ if (str.split(' ').indexOf(words[words.length - 1]) < 0) words = words.slice(0, words.length - 1);
206
+ return words.join(' ') + '...';
207
+ } else return str;
208
+ }
209
+ function safeNewLineToBr(str, keepMany) {
210
+ const result = (str || "").replace(/&/g, '&amp;').replace(/</g, '&lt;').replace(/>/g, '&gt;').replace(/"/g, '&quot;');
211
+ if (keepMany === true) {
212
+ return result.replace(/\n/g, '<br/>');
213
+ }
214
+ return result.replace(/\n+/g, '<br/>');
215
+ }
216
+ function padGroups(pattern, value) {
217
+ return pattern.split('').reduce((_ref2, char, i) => {
218
+ let _ref3 = _slicedToArray(_ref2, 2),
219
+ acc = _ref3[0],
220
+ value = _ref3[1];
221
+ if (char === '0') {
222
+ const shouldHave = pattern.slice(i).search(/[^0#?*]/);
223
+ const has = value.slice(i).search(/\D/);
224
+ if (has > 0 && shouldHave > has) {
225
+ return [acc.concat('0'), acc.join('') + '0' + value.slice(i)];
226
+ } else {
227
+ return [acc.concat(value[i]), value];
228
+ }
229
+ } else {
230
+ return [acc.concat(value[i]), value];
231
+ }
232
+ }, [[], value])[0].join('');
233
+ }
234
+ const digitsToPattern = (patternWithLimit, optValue) => {
235
+ const value = optValue || "";
236
+ if (patternWithLimit[0] === '>' && Number(patternWithLimit.replace(/^>(\d*).*/g, "$1")) > value.length) return value;
237
+ const pattern = patternWithLimit.replace(/^>\d+/, '');
238
+ const digits = padGroups(pattern, value).replace(/\D/g, '');
239
+ const totalRequired = pattern.split(/[0#]/).length - 1;
240
+ const totalOptional = pattern.split(/[?*]/).length - 1;
241
+ const available = digits.length - totalRequired;
242
+ if (available > 0 && totalOptional > 0) {
243
+ let i = 0;
244
+ return digitsToPattern(pattern.replace(/\?/g, () => i++ < available ? '#' : '').replace('*', new Array(Math.max(0, available - i + 1)).join("#")), value);
245
+ }
246
+ let i = 0;
247
+ return pattern.replace(/^>\d*/, '').split('').reduce((acc, char) => {
248
+ if (!digits[Math.max(i - 1, 0)] || char === '?' || char === '*') return acc;
249
+ if (char === '#' || char === '0') {
250
+ return acc + (digits[i++] || '');
251
+ } else {
252
+ return acc + char;
253
+ }
254
+ }, '');
255
+ };
256
+ const normalizeTouch = (fn, endFn) => e => {
257
+ const touch = e.touches[0];
258
+ if (e.touches.length > 1 && e.type !== 'touchend') {
259
+ callIfFunction(endFn, e, touch);
260
+ } else {
261
+ callIfFunction(fn, e, touch);
262
+ }
263
+ };
264
+ const normalizeMouse = (fn, endFn) => e => {
265
+ if (e.buttons > 1 && e.type !== 'mouseup') {
266
+ callIfFunction(endFn, e, e);
267
+ } else {
268
+ callIfFunction(fn, e, e);
269
+ }
270
+ };
271
+ const normalizePress = (fn, endFn) => e => {
272
+ if (e.touches) {
273
+ normalizeTouch(fn, endFn)(e);
274
+ } else {
275
+ normalizeMouse(fn, endFn)(e);
276
+ }
277
+ };
278
+ const touchClick = function (cb) {
279
+ let sensibility = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 5;
280
+ return e => {
281
+ var _e$touches;
282
+ if (((_e$touches = e.touches) === null || _e$touches === void 0 ? void 0 : _e$touches.length) !== 1) {
283
+ return;
284
+ }
285
+ const target = e.target;
286
+ const originalX = e.touches[0].screenX;
287
+ const originalY = e.touches[0].screenY;
288
+ const isInsideBounds = touch => Math.sqrt(Math.pow(originalX - touch.screenX, 2) + Math.pow(originalY - touch.screenY, 2)) < sensibility;
289
+ const checkBounds = e => {
290
+ if (e.touches.length !== 1) {
291
+ return;
292
+ }
293
+ if (!isInsideBounds(e.changedTouches[0])) {
294
+ maybeClick();
295
+ }
296
+ };
297
+ const maybeClick = e => {
298
+ var _e$changedTouches;
299
+ target.removeEventListener('touchend', maybeClick);
300
+ target.removeEventListener('touchmove', checkBounds);
301
+ if ((e === null || e === void 0 || (_e$changedTouches = e.changedTouches) === null || _e$changedTouches === void 0 ? void 0 : _e$changedTouches.length) !== 1) {
302
+ return;
303
+ }
304
+ if (isInsideBounds(e.changedTouches[0])) {
305
+ e.preventDefault();
306
+ cb(e);
307
+ }
308
+ };
309
+ target.addEventListener('touchend', maybeClick);
310
+ target.addEventListener('touchmove', checkBounds);
311
+ };
312
+ };
313
+ const isEmptyHtml = function () {
314
+ let __html = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : "";
315
+ const a = document.createElement('span');
316
+ a.innerHTML = __html;
317
+ return a.textContent.replace(/\s/g, '').length === 0;
318
+ };
319
+ const getScrollParent = node => {
320
+ if (!node) {
321
+ return window;
322
+ }
323
+ const overflowY = window.getComputedStyle(node).overflowY;
324
+ const isScrollable = overflowY !== 'visible' && overflowY !== 'hidden';
325
+ if (isScrollable && (node.scrollHeight > node.clientHeight || overflowY === 'scroll')) {
326
+ return node;
327
+ } else {
328
+ return getScrollParent(node.offsetParent);
329
+ }
330
+ };
331
+ const scrollIntoViewWithOffset = (el, offset) => {
332
+ const scrollOffset = getScrollParent(el);
333
+ const scrollY = scrollOffset === window ? window.pageYOffset : scrollOffset.scrollTop;
334
+ const elTop = el.getBoundingClientRect().top;
335
+ const computedOffset = callIfFunction(offset, elTop > 0);
336
+ const y = el.getBoundingClientRect().top + scrollY + computedOffset;
337
+ scrollOffset.scrollTo({
338
+ top: y,
339
+ behavior: 'smooth'
340
+ });
341
+ };
342
+ const isElementInView = async element => {
343
+ if (!element) return false;
344
+ if (1 !== element.nodeType) return false;
345
+ var html = document.documentElement;
346
+ var rect = element.getBoundingClientRect();
347
+ if (IntersectionObserver) {
348
+ return new Promise(resolve => {
349
+ const o = new IntersectionObserver(_ref4 => {
350
+ let _ref5 = _slicedToArray(_ref4, 1),
351
+ entry = _ref5[0];
352
+ resolve(entry.intersectionRatio === 1);
353
+ o.disconnect();
354
+ });
355
+ o.observe(element);
356
+ });
357
+ }
358
+ return !!rect && rect.bottom >= 0 && rect.right >= 0 && rect.left <= html.clientWidth && rect.top <= html.clientHeight;
359
+ };
360
+ let i = 0;
361
+ const getUID = () => Date.now().toString(36) + Math.random().toString(36).slice(2) + (i++).toString(36);
362
+ const getUrlParams = () => _fromPairs(Array.from(new URLSearchParams(location.search).entries()));
363
+ const isShallowEqualSameKeys = (a, b) => {
364
+ for (var key in a) {
365
+ if (a[key] !== b[key]) {
366
+ return false;
367
+ }
368
+ }
369
+ return true;
370
+ };
371
+ const isShallowEqual = (a, b) => {
372
+ for (var key in a) {
373
+ if (!(key in b) || a[key] !== b[key]) {
374
+ return false;
375
+ }
376
+ }
377
+ for (var key in b) {
378
+ if (!(key in a) || a[key] !== b[key]) {
379
+ return false;
380
+ }
381
+ }
382
+ return true;
383
+ };
384
+
385
+ export { addHttp, callIfFunction, callIfFunctions, callMany, constrainEvent, digitsToPattern, ellipsis, formatHour, formatPath, getNumberInputType, getNumberInputType2, getScrollParent, getUID, getUrlParams, identityFn, ifUndefined, intToHour, intsToHour, isAndroid, isElementInView, isEmptyHtml, isHighDensity, isIOS, isIPad, isMobile, isPWA, isRetina, isShallowEqual, isShallowEqualSameKeys, isSmallDevice, isTouchDevice, isUrl, lazyValue, linkRegex, mapGetOrSet, normalizeMouse, normalizePress, normalizeTouch, preventDefault, rafThrottle, safeNewLineToBr, scrollIntoViewWithOffset, stopPropagation, touchClick, using, will, willRafThrottle };
386
+ //# sourceMappingURL=utils.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.mjs","sources":["../src/utils.jsx"],"sourcesContent":["import {scrollWidth} from './fixMediaQuery'\nimport _ from 'lodash/fp'\n\nexport const formatPath = (...paths) => paths.map(path=>Array.isArray(path) ? path.join('.') : ( path ? path.toString().replace(/\\[/g,'.').replace(/^\\./,'').replace(/]/g,'') : '')).filter(_=>_).join('.')\n\nexport const identityFn = (n=0) => (...e) => e[n]\n\nexport const will = (fn,...props) => (...more) => fn(...props,...more)\n\nexport const lazyValue = (v) => () => v\nexport const callIfFunction = (prop,...args) => typeof prop === \"function\" ? prop(...args) : prop\nexport const callIfFunctions = (prop,...args) => typeof prop === \"function\" ? prop(...args.map((e)=>callIfFunction(e))) : prop\nexport const callMany = (...many) => (...args) => many.map(_=> callIfFunction(_,...args))\nexport const ifUndefined = (v,...or) => v !== undefined ? v : (or.length === 1 ? or[0] : ifUndefined(or[0],...or.slice(1)))\nexport const using = (...v) => (fn) => fn(...v.map((v) => callIfFunction(v)))\n\nexport const stopPropagation = (cb) => (e) => { (e && e.stopPropagation && e.stopPropagation()); callIfFunction(cb,e) }\nexport const preventDefault = (cb) => (e) => { (e && e.preventDefault && e.preventDefault()); callIfFunction(cb,e) }\nexport const constrainEvent = (cb) => (e) => { e?.preventDefault(); e.stopPropagation(); callIfFunction(cb,e) }\n\nexport const mapGetOrSet = (map,key,value) => (map.has(key) ? map : map.set(key, value)).get(key);\n\nexport const intToHour = (hour, autoFill = true) => {\n if (hour === undefined || hour === null) return ''\n if (hour === 0) { return \"00:00\"}\n\n //const [h,m] = ('000' + hour.toString().replace(\":\",\"\")).slice(-4).replace(/(\\d\\d)(\\d\\d)/, '$1:$2').split(\":\")\n\n const h = hour.toString().replace(\":\",\"\").slice(-4, -2)\n const m = hour.toString().replace(\":\",\"\").slice(-2)\n if (callIfFunction(autoFill,hour)) {\n return ('000' + (h ? parseInt(h,10) % 24 : '') + m).slice(-4).replace(/(\\d\\d)(\\d\\d)/, '$1:$2')\n }\n if (h) return (parseInt(h, 10) > 23 ? h.slice(1) : h) + ':' + m\n return m\n}\nexport const formatHour = (hour = \"\") => {\n if (!hour) { return \"\"}\n const h = hour.toString().replace(\":\",\"\").slice(-4, -2)\n const m = hour.toString().replace(\":\",\"\").slice(-2)\n if (!h && parseInt(m) < 24 && !_.isFinite(hour)) {\n return m+\":00\"\n } else if (h) {\n return (parseInt(h, 10) > 23 ? h.slice(1) : h) + ':' + m\n }\n return ('000' + hour.toString().replace(\":\",\"\")).slice(-4).replace(/(\\d\\d)(\\d\\d)/, '$1:$2')\n}\n\n\nexport const willRafThrottle = () => {\n let ticking = false;\n return (fn) => {\n if (!ticking) {\n window.requestAnimationFrame(() => {\n fn()\n ticking = false;\n });\n ticking = true;\n }\n }\n}\n\nexport const rafThrottle = (fn) => {\n const throttle = willRafThrottle()\n return () => {\n throttle(fn)\n }\n}\n\nexport const intsToHour = ({open, close}) => intToHour(open) + ' - ' + intToHour(close)\n\nexport function isSmallDevice(width=600) {\n const smallDeviceQuery = window.matchMedia ? window.matchMedia( `(max-width: ${width+scrollWidth}px)` ) : {matches:false}\n return smallDeviceQuery.matches;\n}\n\nexport function isHighDensity() {\n 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))\n}\n\nexport function isRetina() {\n 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)\n}\n\nexport function isMobile() {\n if (typeof navigator === 'undefined') return false\n\n const ua = navigator.userAgent\n\n const isAndroid = /android/i.test(ua)\n const isiOS = /iphone|ipod|ipad/i.test(ua)\n\n // iPadOS 13+ reports \"Macintosh\" but has touch\n const isIPadOS =\n navigator.platform === 'MacIntel' && navigator.maxTouchPoints > 1\n\n return isAndroid || isiOS || isIPadOS\n}\nexport function isAndroid() {\n if (navigator.userAgentData) {\n return navigator.userAgentData.platform === \"Android\"\n }\n return /Android/i.test(navigator.userAgent)\n}\nexport const isPWA = () => {\n return (window.matchMedia && window.matchMedia(\"(display-mode: standalone)\").matches)\n || !!window.hasWebviewBridge\n}\n\nexport function isTouchDevice() {\n return window.document && 'ontouchstart' in window.document.documentElement;\n}\n\nexport const isIOS = () => {\n return /iPad|iPhone|iPod/.test(navigator.platform) || (navigator.platform === 'MacIntel' && navigator.maxTouchPoints > 1)\n}\nexport const isIPad = () => {\n return navigator.userAgent.match(/iPad/i) != null;\n}\n\nexport const getNumberInputType2 = () => {\n const isIOS = (/iPad|iPhone|iPod/.test(navigator.platform) || (navigator.platform === 'MacIntel' && navigator.maxTouchPoints > 1))\n return isMobile() ? (isIOS ? \"tel\" : \"number\") : \"text\"\n}\nexport const getNumberInputType = () => {\n return \"tel\"\n}\n\nexport function addHttp(s,secure) {\n s = (s || '').trim()\n if (s.indexOf('http://') === 0 || s.indexOf('https://') === 0) {\n return s\n } else {\n return `http${secure ? 's': ''}://` + s\n }\n}\n\nconst protocols = '(^|\\\\s|\\u00a0)(https?://)?(www\\\\.)?'\nconst subdomains = '([a-zA-Z0-9][a-zA-Z0-9-_]*[a-zA-Z0-9]?\\\\.)*'\nconst 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})'\nconst resource = '[\\u00A1-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEFa-zA-Z0-9-._~:/?#%[\\\\]@!$&\\'()*+,;=]*'\nexport const linkRegex = new RegExp(protocols + subdomains + domain + resource)\n\nexport function isUrl(url) {\n return linkRegex.test(addHttp(url))\n}\n\nexport function ellipsis(str = \"\", length) {\n if (str.length > length) {\n let words = str.slice(0, length).split(' ')\n if (str.split(' ').indexOf(words[words.length - 1]) < 0)\n words = words.slice(0, words.length - 1)\n return words.join(' ') + '...'\n } else\n return str\n}\n\nexport function safeNewLineToBr(str,keepMany) {\n const result = (str||\"\").replace(/&/g, '&amp;').replace(/</g, '&lt;').replace(/>/g, '&gt;').replace(/\"/g, '&quot;')\n if (keepMany===true) {\n return result.replace(/\\n/g,'<br/>')\n }\n return result.replace(/\\n+/g,'<br/>')\n}\n\nfunction padGroups(pattern,value) {\n return pattern.split('').reduce(([acc,value],char,i) => {\n if (char === '0') {\n const shouldHave = pattern.slice(i).search(/[^0#?*]/)\n const has = value.slice(i).search(/\\D/)\n if (has > 0 && shouldHave > has) {\n return [acc.concat('0'),acc.join('')+'0'+value.slice(i)]\n } else {\n return [acc.concat(value[i]),value]\n }\n } else {\n return [acc.concat(value[i]),value]\n }\n },[[],value])[0].join('')\n}\n\nexport const digitsToPattern = (patternWithLimit,optValue) => {\n const value = optValue || \"\"\n if (patternWithLimit[0] === '>' && Number(patternWithLimit.replace(/^>(\\d*).*/g,\"$1\"))>value.length) return value\n const pattern = patternWithLimit.replace(/^>\\d+/,'')\n const digits = padGroups(pattern,value).replace(/\\D/g,'')\n const totalRequired = pattern.split(/[0#]/).length-1\n const totalOptional = pattern.split(/[?*]/).length-1\n const available = digits.length-totalRequired\n\n if (available>0 && totalOptional>0) {\n let i = 0;\n return digitsToPattern(\n pattern\n .replace(/\\?/g,()=>i++<available?'#':'')\n .replace('*',new Array(Math.max(0,available-i+1)).join(\"#\")),\n value\n )\n }\n let i = 0\n return pattern.replace(/^>\\d*/,'').split('').reduce((acc,char)=> {\n if (!digits[Math.max(i-1,0)] || char === '?' || char === '*') return acc\n if (char==='#' || char=== '0') {\n return acc+(digits[i++]||'')\n } else {\n return acc+char\n }\n },'')\n}\n\nexport const normalizeTouch = (fn, endFn) => (e) => {\n const touch = e.touches[0]\n if (e.touches.length > 1 && e.type !== 'touchend') {\n callIfFunction(endFn,e,touch)\n } else {\n callIfFunction(fn,e, touch)\n }\n}\nexport const normalizeMouse = (fn,endFn) => (e) => {\n if (e.buttons>1 && e.type !== 'mouseup') {\n callIfFunction(endFn,e,e)\n } else {\n callIfFunction(fn,e, e)\n }\n}\n\nexport const normalizePress = (fn,endFn) => (e) => {\n if (e.touches) {\n normalizeTouch(fn,endFn)(e)\n } else {\n normalizeMouse(fn,endFn)(e)\n }\n}\n\n\nexport const touchClick = (cb,sensibility = 5) => (e) => {\n if (e.touches?.length !== 1) { return }\n const target = e.target\n const originalX = e.touches[0].screenX\n const originalY = e.touches[0].screenY\n const isInsideBounds = (touch) => Math.sqrt( Math.pow((originalX-touch.screenX), 2) + Math.pow((originalY-touch.screenY), 2) ) < sensibility\n\n const checkBounds = (e) => {\n if (e.touches.length !== 1) { return }\n if (!isInsideBounds(e.changedTouches[0])) {\n maybeClick()\n }\n }\n const maybeClick = (e) => {\n target.removeEventListener('touchend',maybeClick)\n target.removeEventListener('touchmove',checkBounds)\n if (e?.changedTouches?.length !== 1) { return }\n if (isInsideBounds(e.changedTouches[0])) {\n e.preventDefault()\n cb(e)\n }\n }\n target.addEventListener('touchend',maybeClick)\n target.addEventListener('touchmove',checkBounds)\n}\n\n\nexport const isEmptyHtml = (__html = \"\") => {\n const a = document.createElement('span')\n a.innerHTML = __html\n return a.textContent.replace(/\\s/g,'').length === 0\n}\n\n\nexport const getScrollParent = (node) => {\n if (!node) {\n return window\n }\n const overflowY = window.getComputedStyle(node).overflowY\n const isScrollable = overflowY !== 'visible' && overflowY !== 'hidden'\n if (isScrollable && (node.scrollHeight > node.clientHeight || overflowY === 'scroll')) {\n return node\n } else {\n return getScrollParent((node.offsetParent))\n }\n}\n\nexport const scrollIntoViewWithOffset = (el,offset) => {\n const scrollOffset = getScrollParent(el)\n const scrollY = scrollOffset === window ? window.pageYOffset : scrollOffset.scrollTop\n\n const elTop = el.getBoundingClientRect().top\n const computedOffset = callIfFunction(offset,elTop > 0)\n\n const y = el.getBoundingClientRect().top + scrollY + computedOffset;\n\n scrollOffset.scrollTo({top: y, behavior: 'smooth'});\n}\nexport const isElementInView = async (element) => {\n if (!element) return false;\n if (1 !== element.nodeType) return false;\n\n var html = document.documentElement;\n var rect = element.getBoundingClientRect();\n if (IntersectionObserver) {\n return new Promise(resolve => {\n const o = new IntersectionObserver(([entry]) => {\n resolve(entry.intersectionRatio === 1);\n o.disconnect();\n });\n o.observe(element);\n });\n }\n return !!rect &&\n rect.bottom >= 0 &&\n rect.right >= 0 &&\n rect.left <= html.clientWidth &&\n rect.top <= html.clientHeight;\n}\n\n\nlet i = 0\nexport const getUID = () => Date.now().toString(36)+Math.random().toString(36).slice(2)+(i++).toString(36)\n\nexport const getUrlParams = () => _.fromPairs(Array.from(new URLSearchParams(location.search).entries()))\n\nexport const isShallowEqualSameKeys = (a, b) => {\n for(var key in a) {\n if(a[key] !== b[key]) {\n return false;\n }\n }\n return true;\n}\nexport const isShallowEqual = (a, b) => {\n for(var key in a) {\n if(!(key in b) || a[key] !== b[key]) {\n return false;\n }\n }\n for(var key in b) {\n if(!(key in a) || a[key] !== b[key]) {\n return false;\n }\n }\n return true;\n}"],"names":["formatPath","_len","arguments","length","paths","Array","_key","map","path","isArray","join","toString","replace","filter","_","identityFn","n","undefined","_len2","e","_key2","will","fn","_len3","props","_key3","_len4","more","_key4","lazyValue","v","callIfFunction","prop","_len5","args","_key5","callIfFunctions","_len6","_key6","callMany","_len7","many","_key7","_len8","_key8","ifUndefined","_len9","or","_key9","slice","using","_len0","_key0","stopPropagation","cb","preventDefault","constrainEvent","mapGetOrSet","key","value","has","set","get","intToHour","hour","autoFill","h","m","parseInt","formatHour","_isFinite","willRafThrottle","ticking","window","requestAnimationFrame","rafThrottle","throttle","intsToHour","_ref","open","close","isSmallDevice","width","smallDeviceQuery","matchMedia","concat","scrollWidth","matches","isHighDensity","devicePixelRatio","isRetina","test","navigator","userAgent","isMobile","ua","isAndroid","isiOS","isIPadOS","platform","maxTouchPoints","userAgentData","isPWA","hasWebviewBridge","isTouchDevice","document","documentElement","isIOS","isIPad","match","getNumberInputType2","getNumberInputType","addHttp","s","secure","trim","indexOf","protocols","subdomains","domain","resource","linkRegex","RegExp","isUrl","url","ellipsis","str","words","split","safeNewLineToBr","keepMany","result","padGroups","pattern","reduce","_ref2","char","i","_ref3","_slicedToArray","acc","shouldHave","search","digitsToPattern","patternWithLimit","optValue","Number","digits","totalRequired","totalOptional","available","Math","max","normalizeTouch","endFn","touch","touches","type","normalizeMouse","buttons","normalizePress","touchClick","sensibility","_e$touches","target","originalX","screenX","originalY","screenY","isInsideBounds","sqrt","pow","checkBounds","changedTouches","maybeClick","_e$changedTouches","removeEventListener","addEventListener","isEmptyHtml","__html","a","createElement","innerHTML","textContent","getScrollParent","node","overflowY","getComputedStyle","isScrollable","scrollHeight","clientHeight","offsetParent","scrollIntoViewWithOffset","el","offset","scrollOffset","scrollY","pageYOffset","scrollTop","elTop","getBoundingClientRect","top","computedOffset","y","scrollTo","behavior","isElementInView","element","nodeType","html","rect","IntersectionObserver","Promise","resolve","o","_ref4","_ref5","entry","intersectionRatio","disconnect","observe","bottom","right","left","clientWidth","getUID","Date","now","random","getUrlParams","_fromPairs","from","URLSearchParams","location","entries","isShallowEqualSameKeys","b","isShallowEqual"],"mappings":"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"}
@@ -0,0 +1,132 @@
1
+ import _identity from 'lodash/fp/identity';
2
+ import _isFunction from 'lodash/fp/isFunction';
3
+ import _isEqual from 'lodash/fp/isEqual';
4
+ import 'react';
5
+ import { callIfFunction } from './utils.mjs';
6
+
7
+ // Suspense integrations like Relay implement
8
+ // a contract like this to integrate with React.
9
+ // Real implementations can be significantly more complex.
10
+ // Don't copy-paste this into your project!
11
+ const EMPTY_ARGS = [];
12
+ const UNDEFINED_CURRENT_VALUE = {};
13
+ const innerWrapLazy = refreshCallback => function (maybePromise) {
14
+ for (var _len = arguments.length, rootArgs = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
15
+ rootArgs[_key - 1] = arguments[_key];
16
+ }
17
+ let status;
18
+ let awaitReadResolver;
19
+ let checker = _isEqual;
20
+ let lazyArgs = EMPTY_ARGS;
21
+ let uid = Math.random().toString() + Date.now();
22
+ let result;
23
+ let currentValue = UNDEFINED_CURRENT_VALUE;
24
+ const promisify = (maybePromise, resolveNow) => {
25
+ return (_isFunction(maybePromise) && !resolveNow ? new Promise(res => awaitReadResolver = res) : Promise.resolve()).then(function () {
26
+ for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {
27
+ args[_key2] = arguments[_key2];
28
+ }
29
+ return callIfFunction(maybePromise, ...rootArgs, ...lazyArgs, ...args);
30
+ });
31
+ };
32
+ const onPromiseSuccess = returnedPromise => r => {
33
+ if (returnedPromise !== suspender) {
34
+ return suspender;
35
+ }
36
+ status = "success";
37
+ currentValue = r;
38
+ result = r;
39
+ return r;
40
+ };
41
+ const onPromiseError = returnedPromise => e => {
42
+ if (returnedPromise !== suspender) {
43
+ return suspender;
44
+ }
45
+ status = "error";
46
+ result = e;
47
+ return Promise.reject(e);
48
+ };
49
+ const suspend = maybePromise => {
50
+ status = "pending";
51
+ awaitReadResolver = _identity;
52
+ const returnedPromise = promisify(maybePromise);
53
+ returnedPromise.then(onPromiseSuccess(returnedPromise), onPromiseError(returnedPromise));
54
+ return returnedPromise;
55
+ };
56
+ let suspender = suspend(maybePromise);
57
+ return {
58
+ read() {
59
+ awaitReadResolver();
60
+ if (status === "pending") {
61
+ throw suspender;
62
+ } else if (status === "error") {
63
+ throw result;
64
+ } else if (status === "success") {
65
+ return currentValue;
66
+ }
67
+ },
68
+ promise() {
69
+ awaitReadResolver();
70
+ return suspender;
71
+ },
72
+ refresh(force) {
73
+ if (status !== "pending" || force) {
74
+ suspender = suspend(maybePromise);
75
+ uid = Math.random().toString() + Date.now();
76
+ callIfFunction(refreshCallback, this);
77
+ }
78
+ return this;
79
+ },
80
+ next() {
81
+ for (var _len3 = arguments.length, args = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {
82
+ args[_key3] = arguments[_key3];
83
+ }
84
+ return wrapLazy(maybePromise, ...rootArgs, ...args).checkWith(checker);
85
+ },
86
+ use() {
87
+ for (var _len4 = arguments.length, args = new Array(_len4), _key4 = 0; _key4 < _len4; _key4++) {
88
+ args[_key4] = arguments[_key4];
89
+ }
90
+ if (!checker(args, lazyArgs)) {
91
+ if (lazyArgs !== EMPTY_ARGS) {
92
+ uid = Math.random().toString() + Date.now();
93
+ }
94
+ lazyArgs = args;
95
+ suspender = suspend(maybePromise);
96
+ }
97
+ return this;
98
+ },
99
+ _getCurrentValue() {
100
+ return currentValue;
101
+ },
102
+ silentRefresh() {
103
+ const currentSuspender = suspender;
104
+ const suspended = promisify(maybePromise, true).then(v => {
105
+ if (currentSuspender === suspender) {
106
+ suspender = suspended;
107
+ }
108
+ return v;
109
+ });
110
+ suspended.then(onPromiseSuccess(suspended), onPromiseError(suspended));
111
+ uid = Math.random().toString() + Date.now();
112
+ callIfFunction(refreshCallback, this);
113
+ return suspended;
114
+ },
115
+ and(lazy) {},
116
+ checkWith(isEqual) {
117
+ checker = isEqual;
118
+ return this;
119
+ },
120
+ localUpdate(updater) {
121
+ currentValue = callIfFunction(updater, currentValue);
122
+ return this;
123
+ },
124
+ uid() {
125
+ return uid;
126
+ }
127
+ };
128
+ };
129
+ const wrapLazy = innerWrapLazy();
130
+
131
+ export { wrapLazy };
132
+ //# sourceMappingURL=wrapLazy.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"wrapLazy.mjs","sources":["../src/wrapLazy.jsx"],"sourcesContent":["import React from 'react'\nimport _ from 'lodash/fp'\nimport {callIfFunction} from './utils'\n\n// Suspense integrations like Relay implement\n// a contract like this to integrate with React.\n// Real implementations can be significantly more complex.\n// Don't copy-paste this into your project!\nconst EMPTY_ARGS = []\nconst UNDEFINED_CURRENT_VALUE = {}\nconst innerWrapLazy = (refreshCallback) => (maybePromise, ...rootArgs) => {\n let status;\n let awaitReadResolver;\n let checker = _.isEqual;\n let lazyArgs = EMPTY_ARGS;\n let uid = Math.random().toString()+Date.now();\n let result;\n let currentValue = UNDEFINED_CURRENT_VALUE\n\n const promisify = (maybePromise,resolveNow) => {\n return ((_.isFunction(maybePromise) && !resolveNow) ? new Promise(res => awaitReadResolver = res) : Promise.resolve())\n .then((...args) => callIfFunction(maybePromise, ...rootArgs, ...lazyArgs, ...args))\n }\n const onPromiseSuccess = (returnedPromise) => r => {\n if (returnedPromise !== suspender) {\n return suspender\n }\n status = \"success\";\n currentValue = r\n result = r;\n return r\n }\n const onPromiseError = (returnedPromise) => (e) => {\n if (returnedPromise !== suspender) {\n return suspender\n }\n status = \"error\";\n result = e;\n return Promise.reject(e)\n }\n\n const suspend = (maybePromise) => {\n status = \"pending\"\n awaitReadResolver = _.identity\n const returnedPromise = promisify(maybePromise)\n returnedPromise.then(onPromiseSuccess(returnedPromise), onPromiseError(returnedPromise));\n return returnedPromise;\n }\n\n let suspender = suspend(maybePromise)\n\n return {\n read() {\n awaitReadResolver()\n if (status === \"pending\") {\n throw suspender;\n } else if (status === \"error\") {\n throw result;\n } else if (status === \"success\") {\n return currentValue;\n }\n },\n promise() {\n awaitReadResolver()\n return suspender\n },\n refresh(force) {\n if (status !== \"pending\" || force) {\n suspender = suspend(maybePromise)\n uid = Math.random().toString()+Date.now();\n callIfFunction(refreshCallback,this)\n }\n return this\n },\n next(...args) {\n return wrapLazy(maybePromise, ...rootArgs, ...args).checkWith(checker)\n },\n use(...args) {\n if (!checker(args, lazyArgs)) {\n if (lazyArgs !== EMPTY_ARGS) {\n uid = Math.random().toString()+Date.now();\n }\n lazyArgs = args\n suspender = suspend(maybePromise)\n }\n return this\n },\n _getCurrentValue() {\n return currentValue\n },\n silentRefresh() {\n const currentSuspender = suspender\n const suspended = promisify(maybePromise,true).then((v) => {\n if (currentSuspender === suspender) {\n suspender = suspended\n }\n return v\n })\n suspended.then(onPromiseSuccess(suspended),onPromiseError(suspended))\n uid = Math.random().toString()+Date.now();\n callIfFunction(refreshCallback,this)\n return suspended\n },\n and(lazy) {\n\n },\n checkWith(isEqual) {\n checker = isEqual\n return this\n },\n localUpdate(updater) {\n currentValue = callIfFunction(updater,currentValue)\n return this\n },\n uid() {\n return uid\n }\n }\n}\nconst UNMOUNTED = {}\n\nexport const wrapLazy = innerWrapLazy()"],"names":["EMPTY_ARGS","UNDEFINED_CURRENT_VALUE","innerWrapLazy","refreshCallback","maybePromise","_len","arguments","length","rootArgs","Array","_key","status","awaitReadResolver","checker","_isEqual","lazyArgs","uid","Math","random","toString","Date","now","result","currentValue","promisify","resolveNow","_isFunction","Promise","res","resolve","then","_len2","args","_key2","callIfFunction","onPromiseSuccess","returnedPromise","r","suspender","onPromiseError","e","reject","suspend","_identity","read","promise","refresh","force","next","_len3","_key3","wrapLazy","checkWith","use","_len4","_key4","_getCurrentValue","silentRefresh","currentSuspender","suspended","v","and","lazy","isEqual","localUpdate","updater"],"mappings":";;;;;;AAIA;AACA;AACA;AACA;AACA,MAAMA,UAAU,GAAG,EAAE,CAAA;AACrB,MAAMC,uBAAuB,GAAG,EAAE,CAAA;AAClC,MAAMC,aAAa,GAAIC,eAAe,IAAK,UAACC,YAAY,EAAkB;EAAA,KAAAC,IAAAA,IAAA,GAAAC,SAAA,CAAAC,MAAA,EAAbC,QAAQ,OAAAC,KAAA,CAAAJ,IAAA,GAAAA,CAAAA,GAAAA,IAAA,WAAAK,IAAA,GAAA,CAAA,EAAAA,IAAA,GAAAL,IAAA,EAAAK,IAAA,EAAA,EAAA;AAARF,IAAAA,QAAQ,CAAAE,IAAA,GAAAJ,CAAAA,CAAAA,GAAAA,SAAA,CAAAI,IAAA,CAAA,CAAA;AAAA,GAAA;AACnE,EAAA,IAAIC,MAAM,CAAA;AACV,EAAA,IAAIC,iBAAiB,CAAA;EACrB,IAAIC,OAAO,GAAAC,QAAY,CAAA;EACvB,IAAIC,QAAQ,GAAGf,UAAU,CAAA;AACzB,EAAA,IAAIgB,GAAG,GAAGC,IAAI,CAACC,MAAM,EAAE,CAACC,QAAQ,EAAE,GAACC,IAAI,CAACC,GAAG,EAAE,CAAA;AAC7C,EAAA,IAAIC,MAAM,CAAA;EACV,IAAIC,YAAY,GAAGtB,uBAAuB,CAAA;AAE1C,EAAA,MAAMuB,SAAS,GAAGA,CAACpB,YAAY,EAACqB,UAAU,KAAK;IAC7C,OAAO,CAAEC,WAAA,CAAatB,YAAY,CAAC,IAAI,CAACqB,UAAU,GAAI,IAAIE,OAAO,CAACC,GAAG,IAAIhB,iBAAiB,GAAGgB,GAAG,CAAC,GAAGD,OAAO,CAACE,OAAO,EAAE,EAClHC,IAAI,CAAC,YAAA;AAAA,MAAA,KAAA,IAAAC,KAAA,GAAAzB,SAAA,CAAAC,MAAA,EAAIyB,IAAI,GAAAvB,IAAAA,KAAA,CAAAsB,KAAA,GAAAE,KAAA,GAAA,CAAA,EAAAA,KAAA,GAAAF,KAAA,EAAAE,KAAA,EAAA,EAAA;AAAJD,QAAAA,IAAI,CAAAC,KAAA,CAAA3B,GAAAA,SAAA,CAAA2B,KAAA,CAAA,CAAA;AAAA,OAAA;AAAA,MAAA,OAAKC,cAAc,CAAC9B,YAAY,EAAE,GAAGI,QAAQ,EAAE,GAAGO,QAAQ,EAAE,GAAGiB,IAAI,CAAC,CAAA;KAAC,CAAA,CAAA;GACtF,CAAA;AACD,EAAA,MAAMG,gBAAgB,GAAIC,eAAe,IAAKC,CAAC,IAAI;IACjD,IAAID,eAAe,KAAKE,SAAS,EAAE;AACjC,MAAA,OAAOA,SAAS,CAAA;AAClB,KAAA;AACA3B,IAAAA,MAAM,GAAG,SAAS,CAAA;AAClBY,IAAAA,YAAY,GAAGc,CAAC,CAAA;AAChBf,IAAAA,MAAM,GAAGe,CAAC,CAAA;AACV,IAAA,OAAOA,CAAC,CAAA;GACT,CAAA;AACD,EAAA,MAAME,cAAc,GAAIH,eAAe,IAAMI,CAAC,IAAK;IACjD,IAAIJ,eAAe,KAAKE,SAAS,EAAE;AACjC,MAAA,OAAOA,SAAS,CAAA;AAClB,KAAA;AACA3B,IAAAA,MAAM,GAAG,OAAO,CAAA;AAChBW,IAAAA,MAAM,GAAGkB,CAAC,CAAA;AACV,IAAA,OAAOb,OAAO,CAACc,MAAM,CAACD,CAAC,CAAC,CAAA;GACzB,CAAA;EAED,MAAME,OAAO,GAAItC,YAAY,IAAK;AAChCO,IAAAA,MAAM,GAAG,SAAS,CAAA;AAClBC,IAAAA,iBAAiB,GAAA+B,SAAa,CAAA;AAC9B,IAAA,MAAMP,eAAe,GAAGZ,SAAS,CAACpB,YAAY,CAAC,CAAA;AAC/CgC,IAAAA,eAAe,CAACN,IAAI,CAACK,gBAAgB,CAACC,eAAe,CAAC,EAAEG,cAAc,CAACH,eAAe,CAAC,CAAC,CAAA;AACxF,IAAA,OAAOA,eAAe,CAAA;GACvB,CAAA;AAED,EAAA,IAAIE,SAAS,GAAGI,OAAO,CAACtC,YAAY,CAAC,CAAA;EAErC,OAAO;AACLwC,IAAAA,IAAIA,GAAG;AACLhC,MAAAA,iBAAiB,EAAE,CAAA;MACnB,IAAID,MAAM,KAAK,SAAS,EAAE;AACxB,QAAA,MAAM2B,SAAS,CAAA;AACjB,OAAC,MAAM,IAAI3B,MAAM,KAAK,OAAO,EAAE;AAC7B,QAAA,MAAMW,MAAM,CAAA;AACd,OAAC,MAAM,IAAIX,MAAM,KAAK,SAAS,EAAE;AAC/B,QAAA,OAAOY,YAAY,CAAA;AACrB,OAAA;KACD;AACDsB,IAAAA,OAAOA,GAAG;AACRjC,MAAAA,iBAAiB,EAAE,CAAA;AACnB,MAAA,OAAO0B,SAAS,CAAA;KACjB;IACDQ,OAAOA,CAACC,KAAK,EAAE;AACb,MAAA,IAAIpC,MAAM,KAAK,SAAS,IAAIoC,KAAK,EAAG;AAClCT,QAAAA,SAAS,GAAGI,OAAO,CAACtC,YAAY,CAAC,CAAA;AACjCY,QAAAA,GAAG,GAAGC,IAAI,CAACC,MAAM,EAAE,CAACC,QAAQ,EAAE,GAACC,IAAI,CAACC,GAAG,EAAE,CAAA;AACzCa,QAAAA,cAAc,CAAC/B,eAAe,EAAC,IAAI,CAAC,CAAA;AACtC,OAAA;AACA,MAAA,OAAO,IAAI,CAAA;KACZ;AACD6C,IAAAA,IAAIA,GAAU;AAAA,MAAA,KAAA,IAAAC,KAAA,GAAA3C,SAAA,CAAAC,MAAA,EAANyB,IAAI,GAAAvB,IAAAA,KAAA,CAAAwC,KAAA,GAAAC,KAAA,GAAA,CAAA,EAAAA,KAAA,GAAAD,KAAA,EAAAC,KAAA,EAAA,EAAA;AAAJlB,QAAAA,IAAI,CAAAkB,KAAA,CAAA5C,GAAAA,SAAA,CAAA4C,KAAA,CAAA,CAAA;AAAA,OAAA;AACV,MAAA,OAAOC,QAAQ,CAAC/C,YAAY,EAAE,GAAGI,QAAQ,EAAE,GAAGwB,IAAI,CAAC,CAACoB,SAAS,CAACvC,OAAO,CAAC,CAAA;KACvE;AACDwC,IAAAA,GAAGA,GAAU;AAAA,MAAA,KAAA,IAAAC,KAAA,GAAAhD,SAAA,CAAAC,MAAA,EAANyB,IAAI,GAAAvB,IAAAA,KAAA,CAAA6C,KAAA,GAAAC,KAAA,GAAA,CAAA,EAAAA,KAAA,GAAAD,KAAA,EAAAC,KAAA,EAAA,EAAA;AAAJvB,QAAAA,IAAI,CAAAuB,KAAA,CAAAjD,GAAAA,SAAA,CAAAiD,KAAA,CAAA,CAAA;AAAA,OAAA;AACT,MAAA,IAAI,CAAC1C,OAAO,CAACmB,IAAI,EAAEjB,QAAQ,CAAC,EAAE;QAC5B,IAAIA,QAAQ,KAAKf,UAAU,EAAE;AAC3BgB,UAAAA,GAAG,GAAGC,IAAI,CAACC,MAAM,EAAE,CAACC,QAAQ,EAAE,GAACC,IAAI,CAACC,GAAG,EAAE,CAAA;AAC3C,SAAA;AACAN,QAAAA,QAAQ,GAAGiB,IAAI,CAAA;AACfM,QAAAA,SAAS,GAAGI,OAAO,CAACtC,YAAY,CAAC,CAAA;AACnC,OAAA;AACA,MAAA,OAAO,IAAI,CAAA;KACZ;AACDoD,IAAAA,gBAAgBA,GAAG;AACjB,MAAA,OAAOjC,YAAY,CAAA;KACpB;AACDkC,IAAAA,aAAaA,GAAG;MACd,MAAMC,gBAAgB,GAAGpB,SAAS,CAAA;AAClC,MAAA,MAAMqB,SAAS,GAAGnC,SAAS,CAACpB,YAAY,EAAC,IAAI,CAAC,CAAC0B,IAAI,CAAE8B,CAAC,IAAK;QACzD,IAAIF,gBAAgB,KAAKpB,SAAS,EAAE;AAClCA,UAAAA,SAAS,GAAGqB,SAAS,CAAA;AACvB,SAAA;AACA,QAAA,OAAOC,CAAC,CAAA;AACV,OAAC,CAAC,CAAA;AACFD,MAAAA,SAAS,CAAC7B,IAAI,CAACK,gBAAgB,CAACwB,SAAS,CAAC,EAACpB,cAAc,CAACoB,SAAS,CAAC,CAAC,CAAA;AACrE3C,MAAAA,GAAG,GAAGC,IAAI,CAACC,MAAM,EAAE,CAACC,QAAQ,EAAE,GAACC,IAAI,CAACC,GAAG,EAAE,CAAA;AACzCa,MAAAA,cAAc,CAAC/B,eAAe,EAAC,IAAI,CAAC,CAAA;AACpC,MAAA,OAAOwD,SAAS,CAAA;KACjB;AACDE,IAAAA,GAAGA,CAACC,IAAI,EAAE,EAET;IACDV,SAASA,CAACW,OAAO,EAAE;AACjBlD,MAAAA,OAAO,GAAGkD,OAAO,CAAA;AACjB,MAAA,OAAO,IAAI,CAAA;KACZ;IACDC,WAAWA,CAACC,OAAO,EAAE;AACnB1C,MAAAA,YAAY,GAAGW,cAAc,CAAC+B,OAAO,EAAC1C,YAAY,CAAC,CAAA;AACnD,MAAA,OAAO,IAAI,CAAA;KACZ;AACDP,IAAAA,GAAGA,GAAG;AACJ,MAAA,OAAOA,GAAG,CAAA;AACZ,KAAA;GACD,CAAA;AACH,CAAC,CAAA;AAGYmC,MAAAA,QAAQ,GAAGjD,aAAa;;;;"}