@startlibs/utils 1.1.2 → 1.2.0-rc.2

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 (107) hide show
  1. package/lib/ActionUtils.mjs +4 -4
  2. package/lib/ActionUtils.mjs.map +1 -1
  3. package/lib/FetchUtils.mjs.map +1 -1
  4. package/lib/animationKeyframes.mjs +11 -0
  5. package/lib/animationKeyframes.mjs.map +1 -0
  6. package/lib/createPressEvent.mjs +1 -1
  7. package/lib/createPressEvent.mjs.map +1 -1
  8. package/lib/fixMediaQuery.mjs +43 -17
  9. package/lib/fixMediaQuery.mjs.map +1 -1
  10. package/lib/fixMediaText.mjs +16 -0
  11. package/lib/fixMediaText.mjs.map +1 -0
  12. package/lib/formatDate.mjs.map +1 -1
  13. package/lib/formatUtils.mjs +2 -2
  14. package/lib/formatUtils.mjs.map +1 -1
  15. package/lib/getClosestOffsetScroll.mjs.map +1 -1
  16. package/lib/hooks/useEventListener.mjs.map +1 -1
  17. package/lib/index.cjs +311 -199
  18. package/lib/index.cjs.map +1 -1
  19. package/lib/index.mjs +5 -3
  20. package/lib/index.mjs.map +1 -1
  21. package/lib/insertKeyframes.mjs +68 -0
  22. package/lib/insertKeyframes.mjs.map +1 -0
  23. package/lib/lodashUtils.mjs +6 -6
  24. package/lib/lodashUtils.mjs.map +1 -1
  25. package/lib/promiseUtils.mjs.map +1 -1
  26. package/lib/reactUtils.mjs +1 -1
  27. package/lib/reactUtils.mjs.map +1 -1
  28. package/lib/reduceUtils.mjs.map +1 -1
  29. package/lib/smoothScroll.mjs.map +1 -1
  30. package/lib/styled.mjs +25 -144
  31. package/lib/styled.mjs.map +1 -1
  32. package/lib/styledShared.mjs +125 -0
  33. package/lib/styledShared.mjs.map +1 -0
  34. package/lib/timeUtils.mjs +1 -1
  35. package/lib/timeUtils.mjs.map +1 -1
  36. package/lib/timerUtils.mjs +0 -1
  37. package/lib/timerUtils.mjs.map +1 -1
  38. package/lib/utils.mjs +1 -1
  39. package/lib/utils.mjs.map +1 -1
  40. package/lib/wrapLazy.mjs +2 -2
  41. package/lib/wrapLazy.mjs.map +1 -1
  42. package/lib/yakDomTag.mjs +44 -0
  43. package/lib/yakDomTag.mjs.map +1 -0
  44. package/lib-yak/ActionUtils.mjs +117 -0
  45. package/lib-yak/ActionUtils.mjs.map +1 -0
  46. package/lib-yak/FetchUtils.mjs +100 -0
  47. package/lib-yak/FetchUtils.mjs.map +1 -0
  48. package/lib-yak/animationKeyframes.mjs +31 -0
  49. package/lib-yak/animationKeyframes.mjs.map +1 -0
  50. package/lib-yak/createPressEvent.mjs +74 -0
  51. package/lib-yak/createPressEvent.mjs.map +1 -0
  52. package/lib-yak/fixMediaQuery.mjs +90 -0
  53. package/lib-yak/fixMediaQuery.mjs.map +1 -0
  54. package/lib-yak/fixMediaText.mjs +16 -0
  55. package/lib-yak/fixMediaText.mjs.map +1 -0
  56. package/lib-yak/formatDate.mjs +110 -0
  57. package/lib-yak/formatDate.mjs.map +1 -0
  58. package/lib-yak/formatUtils.mjs +64 -0
  59. package/lib-yak/formatUtils.mjs.map +1 -0
  60. package/lib-yak/getClosestOffsetScroll.mjs +15 -0
  61. package/lib-yak/getClosestOffsetScroll.mjs.map +1 -0
  62. package/lib-yak/hooks/useEventListener.mjs +27 -0
  63. package/lib-yak/hooks/useEventListener.mjs.map +1 -0
  64. package/lib-yak/index.mjs +21 -0
  65. package/lib-yak/index.mjs.map +1 -0
  66. package/lib-yak/insertKeyframes.mjs +68 -0
  67. package/lib-yak/insertKeyframes.mjs.map +1 -0
  68. package/lib-yak/lodashUtils.mjs +131 -0
  69. package/lib-yak/lodashUtils.mjs.map +1 -0
  70. package/lib-yak/promiseUtils.mjs +92 -0
  71. package/lib-yak/promiseUtils.mjs.map +1 -0
  72. package/lib-yak/reactUtils.mjs +12 -0
  73. package/lib-yak/reactUtils.mjs.map +1 -0
  74. package/lib-yak/reduceUtils.mjs +14 -0
  75. package/lib-yak/reduceUtils.mjs.map +1 -0
  76. package/lib-yak/smoothScroll.mjs +59 -0
  77. package/lib-yak/smoothScroll.mjs.map +1 -0
  78. package/lib-yak/styled.mjs +23 -0
  79. package/lib-yak/styled.mjs.map +1 -0
  80. package/lib-yak/styledShared.mjs +129 -0
  81. package/lib-yak/styledShared.mjs.map +1 -0
  82. package/lib-yak/timeUtils.mjs +81 -0
  83. package/lib-yak/timeUtils.mjs.map +1 -0
  84. package/lib-yak/timerUtils.mjs +10 -0
  85. package/lib-yak/timerUtils.mjs.map +1 -0
  86. package/lib-yak/utils.mjs +386 -0
  87. package/lib-yak/utils.mjs.map +1 -0
  88. package/lib-yak/wrapLazy.mjs +132 -0
  89. package/lib-yak/wrapLazy.mjs.map +1 -0
  90. package/lib-yak/yakDomTag.mjs +44 -0
  91. package/lib-yak/yakDomTag.mjs.map +1 -0
  92. package/package.json +14 -3
  93. package/src/animationKeyframes.js +10 -0
  94. package/src/animationKeyframes.test.mjs +75 -0
  95. package/src/animationKeyframes.yak.js +30 -0
  96. package/src/fixMediaQuery.js +40 -19
  97. package/src/fixMediaText.js +18 -0
  98. package/src/fixMediaText.test.mjs +60 -0
  99. package/src/index.js +1 -0
  100. package/src/insertKeyframes.js +73 -0
  101. package/src/insertKeyframes.test.mjs +144 -0
  102. package/src/styled.js +5 -97
  103. package/src/styled.yak.js +30 -0
  104. package/src/styledShared.js +96 -0
  105. package/src/timerUtils.jsx +0 -2
  106. package/src/yakDomTag.jsx +42 -0
  107. package/src/yakDomTag.test.mjs +49 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"formatDate.mjs","sources":["../src/formatDate.js"],"sourcesContent":["\nconst escapedValidParts = /(^|[^\\\\])(dd?|DD?|mm?|LL?|hh?|MM?|ss|SSS|yy(?:yy)?)/g\nconst validParts = /(dd?|DD?|mm?|LL?|hh?|MM?|yy(?:yy)|yy|ss|SSS)$/\nexport const addZero = (v) => (v < 10 ? '0' : '') + v\n\nconst getSet = (index, ttype, plus = 0, format = (v) => v, parse = (v, defaultDate) => (v === '0' ? '' : v)) => ([\n (date,_,noUTC) => format((typeof date === 'number' ? new Date(date) : date)['get'+(noUTC?'':'UTC') + ttype]() + plus),\n (unformatedStr, date, _, failOnFormat, noUTC) => {\n const str = parse(unformatedStr, date, failOnFormat)\n if (str === '' || isNaN(date.getTime()))\n return date\n if (str=== '\\0')\n return date.setTime(NaN)\n const utcSTR = noUTC ? '' : 'UTC'\n const v = parseInt(str, 10) - plus\n const prevDay = date['get'+utcSTR+'Date']()\n if (ttype !== 'Date') {\n date['set'+utcSTR+'Date'](1)\n }\n date['set'+ utcSTR + ttype](v)\n if (date['get' + utcSTR + ttype]() !== v) {\n date['set' + utcSTR + ttype](NaN)\n return date\n }\n if (ttype !== 'Date') {\n date['set'+utcSTR+'Date'](prevDay)\n if (date['get' + utcSTR + ttype]() !== v) {\n date['set'+utcSTR+'Date'](0)\n return date\n }\n }\n return date\n },\n index\n])\n\nconst getText = (type, total, slice = 99) => [\n (date, messages,noUTC) => messages(type.toLowerCase(),date['get'+(noUTC? '': 'UTC') + type]()).slice(0, slice)\n]\n\nconst yearParse = (y, date, failOnFormat) => {\n const formattedY = y.length === 2 && y !== '20' ? '20' + y : y.length === 4 ? y : ''\n if (formattedY === '') {\n if (failOnFormat) {\n const found = date.getUTCFullYear().toString().indexOf(y)\n return found === 0 || found === 2 ? date.getUTCFullYear() : '\\0'\n } else {\n return date.getUTCFullYear()\n }\n } else {\n return formattedY\n }\n}\n\nconst val = {\n yyyy: getSet(0,'FullYear', 0, (v) => v, yearParse),\n yy: getSet(0,'FullYear', 0, (v) => (v+\"\").slice(2,4), yearParse),\n M: getSet(1,'Month', 1),\n MM: getSet(1,'Month', 1, addZero),\n L: getText('Month',12,3),\n LL: getText('Month',12),\n d: getSet(2,'Date'),\n dd: getSet(2,'Date', 0, addZero),\n D: getText('Day', 7, 3),\n DD: getText('Day', 7),\n m: getSet(4,'Minutes'),\n mm: getSet(4,'Minutes', 0, addZero),\n h: getSet(5,'Hours'),\n hh: getSet(5,'Hours', 0, addZero),\n ss: getSet(6,'Seconds', 0, addZero),\n SSS: getSet(7,'Milliseconds', 0, addZero),\n\n}\n\nexport function formatDateToPattern(format) {\n return format.replace(escapedValidParts, (_, _1, _2) => _1 + (_2 === 'yy' ? '##' : _2 === 'yyyy' ? '####' : '0#'))\n}\n\nexport function formatDate(date, format, messages,noUTC) {\n if (!date && date !== 0)\n return ''\n const separators = format.replace(escapedValidParts, '\\0').split('\\0')\n const parts = format.match(escapedValidParts)\n const formattedDate = parts.reduce((acc, part) =>\n acc.concat(\n separators.length ? [separators.shift()] : [],\n part.replace(validParts, ''),\n val[part.match(validParts)[0]][0](date, messages,noUTC)\n ),\n []\n )\n return formattedDate.join('').replace(/\\\\([dDmLhMy])/g, '$1')\n}\n\nconst now = () => new Date()\n\nexport function parseDate(str, possibleDate, format, messages, failOnFormat, noUTC) {\n if (!str)\n return possibleDate\n const separators = format.replace(escapedValidParts, '\\0').split('\\0')\n const parts = format.match(escapedValidParts)\n const mutations = []\n parts.reduce((rest, part, i) => {\n const separator = (separators.length ? separators.shift() : '') + part.replace(validParts, '')\n const current = rest.slice(separator.length)\n if (current && separator === rest.slice(0, separator.length)) {\n const setType = part.match(validParts)[0]\n const nextSeparator = separators[0]\n const nextStrIndex = current.indexOf(nextSeparator + (parts[i + 1] || '').replace(validParts, ''))\n mutations[val[setType][2]] = [val[setType][1],nextStrIndex ? current.slice(0,nextStrIndex) : current]\n return current.slice(nextStrIndex)\n } else {\n return ''\n }\n },\n str\n )\n const date = possibleDate && possibleDate.getTime()!==-1 ? new Date(possibleDate) : now()\n mutations.forEach(([setter,text])=> setter(text,date,messages,failOnFormat,noUTC))\n return date\n}"],"names":["escapedValidParts","validParts","addZero","v","getSet","index","ttype","plus","arguments","length","undefined","format","parse","defaultDate","date","_","noUTC","Date","unformatedStr","failOnFormat","str","isNaN","getTime","setTime","NaN","utcSTR","parseInt","prevDay","getText","type","total","slice","messages","toLowerCase","yearParse","y","formattedY","found","getUTCFullYear","toString","indexOf","val","yyyy","yy","M","MM","L","LL","d","dd","D","DD","m","mm","h","hh","ss","SSS","formatDateToPattern","replace","_1","_2","formatDate","separators","split","parts","match","formattedDate","reduce","acc","part","concat","shift","join","now","parseDate","possibleDate","mutations","rest","i","separator","current","setType","nextSeparator","nextStrIndex","forEach","_ref","_ref2","_slicedToArray","setter","text"],"mappings":"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"}
@@ -0,0 +1,64 @@
1
+ import _isString from 'lodash/fp/isString';
2
+ import _flow from 'lodash/fp/flow';
3
+ import _isNumber from 'lodash/fp/isNumber';
4
+ import _padCharsEnd from 'lodash/fp/padCharsEnd';
5
+ import 'react';
6
+
7
+ const formatJoin = function (arr) {
8
+ let separator = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : ', ';
9
+ let lastSeparator = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : ' e ';
10
+ return [arr.slice(0, -1).join(separator), arr.slice(-1)].join(lastSeparator);
11
+ };
12
+ const formatJoinArr = (arr, separator, lastSeparator) => arr.flatMap((v, i) => i < arr.length - 2 ? [v, separator] : i < arr.length - 1 ? [v, lastSeparator] : [v]);
13
+ const removeAccents = str => (str || "").normalize('NFD').replace(/\p{Diacritic}/gu, "");
14
+ const asciify = str => removeAccents(str || "").replace(/[^\x00-\x7F]/g, "");
15
+ const normalizeText = str => removeAccents(str).toLowerCase();
16
+ const normalizeTextUrl = str => removeAccents(str).replace(/[\s.\u0022&/]/g, '-').replace(/-{2,}/g, '-').toLowerCase();
17
+ const willFormatDecimal = function () {
18
+ let digits = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 2;
19
+ let _ref = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},
20
+ max = _ref.max,
21
+ min = _ref.min,
22
+ padTo = _ref.padTo,
23
+ zeroless = _ref.zeroless,
24
+ clean = _ref.clean;
25
+ const splitRegex = new RegExp(`(\\d+)(\\d{${digits}})`);
26
+ const singleRegex = new RegExp(`/^([^,]*,\\d{0,${digits}).*/`);
27
+ const pad = str => padTo ? str.indexOf(",") >= 0 ? _padCharsEnd("0", str.indexOf(",") + padTo + 1, str) : _padCharsEnd("0", str.length + 1 + padTo, str + ",") : str;
28
+ const constrain = val => {
29
+ if (_isNumber(max) && parseFloat(val.replace(",", ".")) > max) return max.toString();
30
+ if (_isNumber(min) && parseFloat(val.replace(",", ".")) < min) return min.toString();
31
+ return val;
32
+ };
33
+ const cleaned = val => clean ? val.replace(/,$/, '').replace(/^0*,/, '0,') || "0" : val;
34
+ return v => {
35
+ const skipZero = finalV => v !== '0' && zeroless && finalV === '0' ? '' : finalV.replace(/^0+([^,])/, '$1');
36
+ const formatted = _flow(constrain, pad, skipZero, cleaned);
37
+ if (_isNumber(v)) {
38
+ return formatted(v.toString().replace(".", ","));
39
+ }
40
+ const fixComma = v => v.replace(/,/g, '').replace(splitRegex, "$1,$2");
41
+ const format = () => {
42
+ const allowedChars = (v || "").replace(/[^\d,]/g, "");
43
+ const commaIndex = allowedChars.indexOf(',');
44
+ if (commaIndex >= 0 && commaIndex < allowedChars.length - 1 - digits) {
45
+ const alteredComma = fixComma(allowedChars);
46
+ if (_isNumber(max) && parseFloat(alteredComma.replace(",", ".")) > max) {
47
+ return fixComma(allowedChars.slice(0, commaIndex + 1 + digits));
48
+ }
49
+ return alteredComma;
50
+ }
51
+ const simpleNumber = allowedChars.replace(singleRegex, "$1");
52
+ if (_isNumber(max) && parseInt(simpleNumber) > max) {
53
+ return simpleNumber.slice(0, -1);
54
+ }
55
+ return simpleNumber;
56
+ };
57
+ const result = format();
58
+ return formatted(result);
59
+ };
60
+ };
61
+ const parseDecimalToNumber = v => _isString(v) ? Number(v.replace(/\./g, '').replace(',', ".")) : v || 0;
62
+
63
+ export { asciify, formatJoin, formatJoinArr, normalizeText, normalizeTextUrl, parseDecimalToNumber, removeAccents, willFormatDecimal };
64
+ //# sourceMappingURL=formatUtils.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"formatUtils.mjs","sources":["../src/formatUtils.jsx"],"sourcesContent":["import React from 'react'\nimport _ from 'lodash/fp'\n\nexport const formatJoin = (arr,separator = ', ', lastSeparator = ' e ') => [arr.slice(0,-1).join(separator),arr.slice(-1)].join(lastSeparator)\n\nexport const formatJoinArr = (arr,separator,lastSeparator) =>\n arr.flatMap((v,i) => i < arr.length - 2 ? [v,separator] : (i < arr.length - 1 ? [v,lastSeparator] : [v]))\n\nexport const removeAccents = (str) => (str||\"\").normalize('NFD').replace(/\\p{Diacritic}/gu, \"\")\nexport const asciify = (str) => removeAccents(str||\"\").replace(/[^\\x00-\\x7F]/g, \"\")\nexport const normalizeText = (str) => removeAccents(str).toLowerCase()\nexport const normalizeTextUrl = (str) => removeAccents(str).replace(/[\\s.\\u0022&/]/g, '-').replace(/-{2,}/g,'-').toLowerCase()\n\n\nexport const willFormatDecimal = (digits = 2,{max,min,padTo,zeroless,clean} = {}) => {\n const splitRegex = new RegExp(`(\\\\d+)(\\\\d{${digits}})`)\n const singleRegex = new RegExp(`/^([^,]*,\\\\d{0,${digits}).*/`)\n const pad = (str) =>\n padTo\n ? (str.indexOf(\",\") >= 0\n ? _.padCharsEnd(\"0\", str.indexOf(\",\") + padTo + 1,str)\n : _.padCharsEnd(\"0\", str.length + 1 + padTo, str + \",\")\n )\n : str\n const constrain = (val) => {\n if (_.isNumber(max) && parseFloat(val.replace(\",\",\".\")) > max) return max.toString()\n if (_.isNumber(min) && parseFloat(val.replace(\",\",\".\")) < min) return min.toString()\n return val\n }\n const cleaned = (val) =>\n clean\n ? (val.replace(/,$/,'').replace(/^0*,/,'0,') || \"0\")\n : val\n\n return (v) => {\n const skipZero = (finalV) => v!=='0' && zeroless && finalV === '0' ? '' : finalV.replace(/^0+([^,])/,'$1')\n const formatted = _.flow(constrain,pad,skipZero,cleaned)\n if (_.isNumber(v)) {\n return formatted(v.toString().replace(\".\",\",\"))\n }\n const fixComma = (v) => v.replace(/,/g, '').replace(splitRegex, \"$1,$2\")\n\n const format = () => {\n const allowedChars = (v||\"\").replace(/[^\\d,]/g, \"\")\n const commaIndex = allowedChars.indexOf(',')\n if (commaIndex >= 0 && commaIndex < allowedChars.length - 1 - digits) {\n const alteredComma = fixComma(allowedChars)\n if (_.isNumber(max) && parseFloat(alteredComma.replace(\",\",\".\")) > max) {\n return fixComma(allowedChars.slice(0, commaIndex + 1 + digits))\n }\n return alteredComma\n }\n const simpleNumber = allowedChars.replace(singleRegex, \"$1\")\n if (_.isNumber(max) && parseInt(simpleNumber) > max) {\n return simpleNumber.slice(0, -1)\n }\n return simpleNumber\n }\n const result = format()\n return formatted(result)\n }\n}\nexport const parseDecimalToNumber = (v) => _.isString(v) ? Number(v.replace(/\\./g,'').replace(',', \".\")) : (v || 0)"],"names":["formatJoin","arr","separator","arguments","length","undefined","lastSeparator","slice","join","formatJoinArr","flatMap","v","i","removeAccents","str","normalize","replace","asciify","normalizeText","toLowerCase","normalizeTextUrl","willFormatDecimal","digits","_ref","max","min","padTo","zeroless","clean","splitRegex","RegExp","singleRegex","pad","indexOf","_padCharsEnd","constrain","val","_isNumber","parseFloat","toString","cleaned","skipZero","finalV","formatted","_flow","fixComma","format","allowedChars","commaIndex","alteredComma","simpleNumber","parseInt","result","parseDecimalToNumber","_isString","Number"],"mappings":"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"}
@@ -0,0 +1,15 @@
1
+ const getClosestOffsetScroll = node => {
2
+ if (!node) {
3
+ return document.body;
4
+ }
5
+ const overflowY = window.getComputedStyle(node).overflowY;
6
+ const isScrollable = overflowY !== 'visible' && overflowY !== 'hidden';
7
+ if (isScrollable && node.scrollHeight > node.clientHeight) {
8
+ return node;
9
+ } else {
10
+ return getClosestOffsetScroll(node.offsetParent);
11
+ }
12
+ };
13
+
14
+ export { getClosestOffsetScroll };
15
+ //# sourceMappingURL=getClosestOffsetScroll.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getClosestOffsetScroll.mjs","sources":["../src/getClosestOffsetScroll.js"],"sourcesContent":["export const getClosestOffsetScroll = (node) => {\n if (!node) {\n return ((document.body))\n }\n const overflowY = window.getComputedStyle(node).overflowY\n const isScrollable = overflowY !== 'visible' && overflowY !== 'hidden';\n if (isScrollable && node.scrollHeight > node.clientHeight) {\n return node;\n } else {\n return getClosestOffsetScroll((node.offsetParent));\n }\n}\n"],"names":["getClosestOffsetScroll","node","document","body","overflowY","window","getComputedStyle","isScrollable","scrollHeight","clientHeight","offsetParent"],"mappings":"AAAaA,MAAAA,sBAAsB,GAAIC,IAAI,IAAK;EAC9C,IAAI,CAACA,IAAI,EAAE;IACT,OAASC,QAAQ,CAACC,IAAI,CAAA;AACxB,GAAA;EACA,MAAMC,SAAS,GAAGC,MAAM,CAACC,gBAAgB,CAACL,IAAI,CAAC,CAACG,SAAS,CAAA;EACzD,MAAMG,YAAY,GAAGH,SAAS,KAAK,SAAS,IAAIA,SAAS,KAAK,QAAQ,CAAA;EACtE,IAAIG,YAAY,IAAIN,IAAI,CAACO,YAAY,GAAGP,IAAI,CAACQ,YAAY,EAAE;AACzD,IAAA,OAAOR,IAAI,CAAA;AACb,GAAC,MAAM;AACL,IAAA,OAAOD,sBAAsB,CAAEC,IAAI,CAACS,YAAa,CAAC,CAAA;AACpD,GAAA;AACF;;;;"}
@@ -0,0 +1,27 @@
1
+ import { useEffect } from 'react';
2
+
3
+ const useEventListener = function (eventName, callback) {
4
+ let deps = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : [];
5
+ useEffect(() => {
6
+ window.addEventListener(eventName, callback);
7
+ return () => window.removeEventListener(eventName, callback);
8
+ }, deps);
9
+ };
10
+ const useEventListenerIf = function (check, eventName, callback) {
11
+ let deps = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : [];
12
+ useEffect(() => {
13
+ if (!check()) return;
14
+ window.addEventListener(eventName, callback);
15
+ return () => window.removeEventListener(eventName, callback);
16
+ }, deps);
17
+ };
18
+ const useEventListenerFor = function (element, eventName, callback) {
19
+ let deps = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : [];
20
+ useEffect(() => {
21
+ element.addEventListener(eventName, callback);
22
+ return () => element.removeEventListener(eventName, callback);
23
+ }, deps.concat(element));
24
+ };
25
+
26
+ export { useEventListener, useEventListenerFor, useEventListenerIf };
27
+ //# sourceMappingURL=useEventListener.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useEventListener.mjs","sources":["../../src/hooks/useEventListener.js"],"sourcesContent":["import {useEffect} from 'react'\n\nexport const useEventListener = (eventName,callback,deps = []) => {\n useEffect(() => {\n window.addEventListener(eventName,callback)\n return () => window.removeEventListener(eventName,callback)\n },deps)\n\n}\n\nexport const useEventListenerIf = (check,eventName,callback,deps = []) => {\n useEffect(() => {\n if (!check()) return\n window.addEventListener(eventName,callback)\n return () => window.removeEventListener(eventName,callback)\n },deps)\n\n}\n\nexport const useEventListenerFor = (element,eventName,callback,deps = []) => {\n useEffect(() => {\n element.addEventListener(eventName,callback)\n return () => element.removeEventListener(eventName,callback)\n },deps.concat(element))\n\n}"],"names":["useEventListener","eventName","callback","deps","arguments","length","undefined","useEffect","window","addEventListener","removeEventListener","useEventListenerIf","check","useEventListenerFor","element","concat"],"mappings":";;AAEO,MAAMA,gBAAgB,GAAG,UAACC,SAAS,EAACC,QAAQ,EAAe;AAAA,EAAA,IAAdC,IAAI,GAAAC,SAAA,CAAAC,MAAA,GAAA,CAAA,IAAAD,SAAA,CAAA,CAAA,CAAA,KAAAE,SAAA,GAAAF,SAAA,CAAA,CAAA,CAAA,GAAG,EAAE,CAAA;AAC3DG,EAAAA,SAAS,CAAC,MAAM;AACdC,IAAAA,MAAM,CAACC,gBAAgB,CAACR,SAAS,EAACC,QAAQ,CAAC,CAAA;IAC3C,OAAO,MAAMM,MAAM,CAACE,mBAAmB,CAACT,SAAS,EAACC,QAAQ,CAAC,CAAA;GAC5D,EAACC,IAAI,CAAC,CAAA;AAET,EAAC;AAEM,MAAMQ,kBAAkB,GAAG,UAACC,KAAK,EAACX,SAAS,EAACC,QAAQ,EAAe;AAAA,EAAA,IAAdC,IAAI,GAAAC,SAAA,CAAAC,MAAA,GAAA,CAAA,IAAAD,SAAA,CAAA,CAAA,CAAA,KAAAE,SAAA,GAAAF,SAAA,CAAA,CAAA,CAAA,GAAG,EAAE,CAAA;AACnEG,EAAAA,SAAS,CAAC,MAAM;AACd,IAAA,IAAI,CAACK,KAAK,EAAE,EAAE,OAAA;AACdJ,IAAAA,MAAM,CAACC,gBAAgB,CAACR,SAAS,EAACC,QAAQ,CAAC,CAAA;IAC3C,OAAO,MAAMM,MAAM,CAACE,mBAAmB,CAACT,SAAS,EAACC,QAAQ,CAAC,CAAA;GAC5D,EAACC,IAAI,CAAC,CAAA;AAET,EAAC;AAEM,MAAMU,mBAAmB,GAAG,UAACC,OAAO,EAACb,SAAS,EAACC,QAAQ,EAAe;AAAA,EAAA,IAAdC,IAAI,GAAAC,SAAA,CAAAC,MAAA,GAAA,CAAA,IAAAD,SAAA,CAAA,CAAA,CAAA,KAAAE,SAAA,GAAAF,SAAA,CAAA,CAAA,CAAA,GAAG,EAAE,CAAA;AACtEG,EAAAA,SAAS,CAAC,MAAM;AACdO,IAAAA,OAAO,CAACL,gBAAgB,CAACR,SAAS,EAACC,QAAQ,CAAC,CAAA;IAC5C,OAAO,MAAMY,OAAO,CAACJ,mBAAmB,CAACT,SAAS,EAACC,QAAQ,CAAC,CAAA;AAC9D,GAAC,EAACC,IAAI,CAACY,MAAM,CAACD,OAAO,CAAC,CAAC,CAAA;AAEzB;;;;"}
@@ -0,0 +1,21 @@
1
+ export { asyncDebounce, createPromiseQueue, createPromiseResolverPair, createSimplePromiseLock, promiseMapReduce } from './promiseUtils.mjs';
2
+ export { getClosestOffsetScroll } from './getClosestOffsetScroll.mjs';
3
+ export { smoothScroll } from './smoothScroll.mjs';
4
+ export { fixMediaQuery, scrollWidth } from './fixMediaQuery.mjs';
5
+ export { addQueryString, formFetch, formFetchWithResponse, getFetcher, getFetcherWithResponse, postFetcher, postFetcherWithResponse, queryStringToObj } from './FetchUtils.mjs';
6
+ export { ifNotProp, ifProp, ifPropEquals, media, notPrinterMedia, printerMedia, styledExtend } from './styled.mjs';
7
+ export { insertKeyframes } from './insertKeyframes.mjs';
8
+ export { addZero, formatDate, formatDateToPattern, parseDate } from './formatDate.mjs';
9
+ export { _s } from './lodashUtils.mjs';
10
+ export { Action, COMPLETE_ACTION, FETCH, REDUCE, SKIPPED_ACTION, SKIP_DISPATCH, SKIP_FETCH, SkipAction, activateActions, concatSelectors, selectPath } from './ActionUtils.mjs';
11
+ export { compareBest, toHighest, toLowest } from './reduceUtils.mjs';
12
+ export { addExtraProp } from './reactUtils.mjs';
13
+ export { useEventListener, useEventListenerFor, useEventListenerIf } from './hooks/useEventListener.mjs';
14
+ 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 } from './utils.mjs';
15
+ export { createPressAndHoldEvent, createPressAndMoveEvent, createPressEvent } from './createPressEvent.mjs';
16
+ export { wrapLazy } from './wrapLazy.mjs';
17
+ export { DAY, HOUR, MINUTE, MONTH, SECOND, WEEK, YEAR, blockDiffIntervals, diffIntervals, getStartOfDay, intervalsIntersect, intervalsIntersectExclusive, intervalsIntersection, isSameDay, startBlockDiffIntervals } from './timeUtils.mjs';
18
+ export { cancelableTimer, timerPromise } from './timerUtils.mjs';
19
+ export { asciify, formatJoin, formatJoinArr, normalizeText, normalizeTextUrl, parseDecimalToNumber, removeAccents, willFormatDecimal } from './formatUtils.mjs';
20
+ export { animationTiming, customTheme, getColor, getMargin, identityOpacityFrames, identityTranslateFrames, oneWayAnimation, prop, twoWayAnimation, vheight } from './styledShared.mjs';
21
+ //# sourceMappingURL=index.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;"}
@@ -0,0 +1,68 @@
1
+ // Registra um @keyframes pelo CSSOM, sem criar <style> na página: funciona com CSP
2
+ // `style-src 'self'` sem nonce. Ordem de tentativa:
3
+ // 1. uma folha construída (new CSSStyleSheet) em document.adoptedStyleSheets;
4
+ // 2. browser sem folha construída: insertRule numa folha do próprio site já carregada
5
+ // (de preferência um <link>, que nenhum runtime de CSS-in-JS gerencia);
6
+ // 3. nenhuma das duas: <style> com o nonce do <meta property="csp-nonce">, se houver.
7
+ // Cada nome entra uma vez só; quem chama garante que nome igual é conteúdo igual.
8
+ const inserted = new Set();
9
+ let adoptedSheet = null;
10
+ let pageSheet = null;
11
+ const canAdoptSheets = () => typeof CSSStyleSheet !== 'undefined' && 'replaceSync' in CSSStyleSheet.prototype && 'adoptedStyleSheets' in document;
12
+
13
+ // Outro código pode reatribuir document.adoptedStyleSheets e tirar a folha da lista: recoloca.
14
+ const getAdoptedSheet = () => {
15
+ if (!adoptedSheet) adoptedSheet = new CSSStyleSheet();
16
+ if (document.adoptedStyleSheets.indexOf(adoptedSheet) < 0) {
17
+ document.adoptedStyleSheets = document.adoptedStyleSheets.concat(adoptedSheet);
18
+ }
19
+ return adoptedSheet;
20
+ };
21
+
22
+ // Folha que vale pra tela inteira e cujas regras dá pra ler (folha de outra origem lança erro).
23
+ const isWritable = sheet => {
24
+ if (sheet.disabled || !sheet.ownerNode || !sheet.ownerNode.isConnected) return false;
25
+ if (sheet.media && sheet.media.length && sheet.media.mediaText !== 'all') return false;
26
+ try {
27
+ return !!sheet.cssRules;
28
+ } catch (e) {
29
+ return false;
30
+ }
31
+ };
32
+ const getPageSheet = () => {
33
+ if (pageSheet && isWritable(pageSheet)) return pageSheet;
34
+ const sheets = Array.prototype.slice.call(document.styleSheets).filter(isWritable);
35
+ pageSheet = sheets.filter(sheet => sheet.ownerNode.tagName === 'LINK')[0] || sheets[0] || null;
36
+ return pageSheet;
37
+ };
38
+ const appendRule = (sheet, rule) => {
39
+ try {
40
+ sheet.insertRule(rule, sheet.cssRules.length);
41
+ } catch (e) {
42
+ // regra que o browser não entende: igual a um <style> com ela, só não faz nada
43
+ }
44
+ };
45
+ const appendStyleElement = (name, rule) => {
46
+ const style = document.createElement('style');
47
+ style.id = 'startlibs-keyframes-' + name;
48
+ const nonce = (document.querySelector('meta[property="csp-nonce"]') || {}).content;
49
+ if (nonce) style.nonce = nonce;
50
+ style.textContent = rule;
51
+ document.head.appendChild(style);
52
+ };
53
+ const insertKeyframes = (name, frames) => {
54
+ if (typeof document === 'undefined' || inserted.has(name)) return name;
55
+ inserted.add(name);
56
+ const rule = '@keyframes ' + name + ' {' + frames + '}';
57
+ if (canAdoptSheets()) {
58
+ appendRule(getAdoptedSheet(), rule);
59
+ } else if (getPageSheet()) {
60
+ appendRule(pageSheet, rule);
61
+ } else {
62
+ appendStyleElement(name, rule);
63
+ }
64
+ return name;
65
+ };
66
+
67
+ export { insertKeyframes };
68
+ //# sourceMappingURL=insertKeyframes.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"insertKeyframes.mjs","sources":["../src/insertKeyframes.js"],"sourcesContent":["// Registra um @keyframes pelo CSSOM, sem criar <style> na página: funciona com CSP\n// `style-src 'self'` sem nonce. Ordem de tentativa:\n// 1. uma folha construída (new CSSStyleSheet) em document.adoptedStyleSheets;\n// 2. browser sem folha construída: insertRule numa folha do próprio site já carregada\n// (de preferência um <link>, que nenhum runtime de CSS-in-JS gerencia);\n// 3. nenhuma das duas: <style> com o nonce do <meta property=\"csp-nonce\">, se houver.\n// Cada nome entra uma vez só; quem chama garante que nome igual é conteúdo igual.\nconst inserted = new Set()\nlet adoptedSheet = null\nlet pageSheet = null\n\nconst canAdoptSheets = () =>\n typeof CSSStyleSheet !== 'undefined' &&\n 'replaceSync' in CSSStyleSheet.prototype &&\n 'adoptedStyleSheets' in document\n\n// Outro código pode reatribuir document.adoptedStyleSheets e tirar a folha da lista: recoloca.\nconst getAdoptedSheet = () => {\n if (!adoptedSheet) adoptedSheet = new CSSStyleSheet()\n if (document.adoptedStyleSheets.indexOf(adoptedSheet) < 0) {\n document.adoptedStyleSheets = document.adoptedStyleSheets.concat(adoptedSheet)\n }\n return adoptedSheet\n}\n\n// Folha que vale pra tela inteira e cujas regras dá pra ler (folha de outra origem lança erro).\nconst isWritable = (sheet) => {\n if (sheet.disabled || !sheet.ownerNode || !sheet.ownerNode.isConnected) return false\n if (sheet.media && sheet.media.length && sheet.media.mediaText !== 'all') return false\n try {\n return !!sheet.cssRules\n } catch (e) {\n return false\n }\n}\n\nconst getPageSheet = () => {\n if (pageSheet && isWritable(pageSheet)) return pageSheet\n const sheets = Array.prototype.slice.call(document.styleSheets).filter(isWritable)\n pageSheet = sheets.filter((sheet) => sheet.ownerNode.tagName === 'LINK')[0] || sheets[0] || null\n return pageSheet\n}\n\nconst appendRule = (sheet, rule) => {\n try {\n sheet.insertRule(rule, sheet.cssRules.length)\n } catch (e) {\n // regra que o browser não entende: igual a um <style> com ela, só não faz nada\n }\n}\n\nconst appendStyleElement = (name, rule) => {\n const style = document.createElement('style')\n style.id = 'startlibs-keyframes-' + name\n const nonce = (document.querySelector('meta[property=\"csp-nonce\"]') || {}).content\n if (nonce) style.nonce = nonce\n style.textContent = rule\n document.head.appendChild(style)\n}\n\nexport const insertKeyframes = (name, frames) => {\n if (typeof document === 'undefined' || inserted.has(name)) return name\n inserted.add(name)\n const rule = '@keyframes ' + name + ' {' + frames + '}'\n if (canAdoptSheets()) {\n appendRule(getAdoptedSheet(), rule)\n } else if (getPageSheet()) {\n appendRule(pageSheet, rule)\n } else {\n appendStyleElement(name, rule)\n }\n return name\n}\n"],"names":["inserted","Set","adoptedSheet","pageSheet","canAdoptSheets","CSSStyleSheet","prototype","document","getAdoptedSheet","adoptedStyleSheets","indexOf","concat","isWritable","sheet","disabled","ownerNode","isConnected","media","length","mediaText","cssRules","e","getPageSheet","sheets","Array","slice","call","styleSheets","filter","tagName","appendRule","rule","insertRule","appendStyleElement","name","style","createElement","id","nonce","querySelector","content","textContent","head","appendChild","insertKeyframes","frames","has","add"],"mappings":"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"}
@@ -0,0 +1,131 @@
1
+ import _slicedToArray from '@babel/runtime/helpers/slicedToArray';
2
+ import _flow from 'lodash/fp/flow';
3
+ import _without from 'lodash/fp/without';
4
+ import _identity from 'lodash/fp/identity';
5
+ import _isFunction from 'lodash/fp/isFunction';
6
+ import _flatMap from 'lodash/fp/flatMap';
7
+ import _mapValues from 'lodash/fp/mapValues';
8
+ import _map from 'lodash/fp/map';
9
+ import _filter from 'lodash/fp/filter';
10
+ import _find from 'lodash/fp/find';
11
+ import _each from 'lodash/fp/each';
12
+ import _concat from 'lodash/fp/concat';
13
+ import _assign from 'lodash/fp/assign';
14
+ import _2 from 'lodash/fp/__';
15
+ import _unset from 'lodash/fp/unset';
16
+ import _set from 'lodash/fp/set';
17
+ import _get from 'lodash/fp/get';
18
+ import _update from 'lodash/fp/update';
19
+ import _toPath from 'lodash/fp/toPath';
20
+ import _pullAt from 'lodash/fp/pullAt';
21
+ import _curry from 'lodash/fp/curry';
22
+ import { callIfFunction } from './utils.mjs';
23
+
24
+ const moveElement = _curry((from, to, list) => {
25
+ const el = list[from];
26
+ const without = _pullAt(from, list);
27
+ without.splice(to, 0, el);
28
+ return without;
29
+ });
30
+ const unsetOrRemoveAt = _curry((path, value) => {
31
+ const pathArr = toPath(path);
32
+ const _pathArr$slice = pathArr.slice(-1),
33
+ _pathArr$slice2 = _slicedToArray(_pathArr$slice, 1),
34
+ lastKey = _pathArr$slice2[0];
35
+ return update(pathArr.slice(0, -1), v => Array.isArray(v) ? removeAt(lastKey, v) : unset(lastKey, v), value);
36
+ });
37
+ const pathToString = path => toPath(path).join(".");
38
+ const sanitizePath = path => Array.isArray(path) ? path.map(sanitizePath) : typeof path === 'number' ? path.toString() : path === undefined ? [] : path;
39
+ const toPath = path => _toPath(sanitizePath(path));
40
+ const isEmptyPath = path => path && !path.length;
41
+ const update = _curry((path, updater, state) => {
42
+ const sanitizedPath = sanitizePath(path);
43
+ if (isEmptyPath(sanitizedPath)) {
44
+ return updater(state);
45
+ } else {
46
+ return _update(sanitizedPath, updater, state);
47
+ }
48
+ });
49
+ const get = _curry((path, state) => {
50
+ const sanitizedPath = sanitizePath(path);
51
+ if (isEmptyPath(sanitizedPath)) {
52
+ return state;
53
+ } else {
54
+ return _get(sanitizedPath, state);
55
+ }
56
+ });
57
+ const set = _curry((path, value, state) => {
58
+ const sanitizedPath = sanitizePath(path);
59
+ if (isEmptyPath(sanitizedPath)) {
60
+ return value;
61
+ } else {
62
+ return _set(sanitizedPath, value, state);
63
+ }
64
+ });
65
+ const unset = _curry((path, state) => {
66
+ const sanitizedPath = sanitizePath(path);
67
+ if (isEmptyPath(sanitizedPath)) {
68
+ return undefined;
69
+ } else {
70
+ return _unset(sanitizedPath, state);
71
+ }
72
+ });
73
+ const removeNAt = _curry((pos, n, value) => [...value.slice(0, Number(pos)), ...value.slice(Number(pos) + n)]);
74
+ const removeAt = removeNAt(_2, 1);
75
+ const when = _curry((cond, fn, value) => callIfFunction(cond, value) ? fn(value) : value);
76
+ const assign = _curry((a, b) => _assign(b, a));
77
+ const concat = _curry((a, b) => _concat(b, a));
78
+ const each = _each.convert({
79
+ cap: false
80
+ });
81
+ const find = _find.convert({
82
+ cap: false
83
+ });
84
+ const filter = _filter.convert({
85
+ cap: false
86
+ });
87
+ const map = _map.convert({
88
+ cap: false
89
+ });
90
+ const mapValues = _mapValues.convert({
91
+ cap: false
92
+ });
93
+ const flatMap = _flatMap.convert({
94
+ cap: false
95
+ });
96
+ const insertAt = _curry((pos, newElements, value) => [...value.slice(0, pos).concat(newElements), ...value.slice(pos)]);
97
+ const select = _curry((selector, value) => (_isFunction(selector) ? selector : selector ? _get(selector) : _identity)(value));
98
+ const itemToggle = _curry((item, list) => (list || []).indexOf(item) >= 0 ? _without([item], list) : [...(list || []), item]);
99
+ const _s = {
100
+ moveElement,
101
+ unsetOrRemoveAt,
102
+ pathToString,
103
+ toPath,
104
+ update,
105
+ get,
106
+ set,
107
+ select,
108
+ unset,
109
+ removeNAt,
110
+ removeAt,
111
+ itemToggle,
112
+ when,
113
+ assign,
114
+ concat,
115
+ each,
116
+ find,
117
+ filter,
118
+ map,
119
+ flatMap,
120
+ mapValues,
121
+ insertAt,
122
+ flowEach: function () {
123
+ for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
124
+ args[_key] = arguments[_key];
125
+ }
126
+ return _flow(...args.filter(Boolean));
127
+ }
128
+ };
129
+
130
+ export { _s };
131
+ //# sourceMappingURL=lodashUtils.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lodashUtils.mjs","sources":["../src/lodashUtils.jsx"],"sourcesContent":["import _ from 'lodash/fp'\nimport {callIfFunction} from './utils'\n\nconst moveElement = _.curry((from, to, list) => {\n const el = list[from]\n const without = _.pullAt(from, list)\n without.splice(to, 0, el)\n return without\n})\n\nconst unsetOrRemoveAt = _.curry((path, value) => {\n const pathArr = toPath(path)\n const [lastKey] = pathArr.slice(-1)\n return update(pathArr.slice(0, -1), (v) => Array.isArray(v) ? removeAt(lastKey, v) : unset(lastKey, v), value)\n})\n\nconst pathToString = (path) => toPath(path).join(\".\")\n\nconst sanitizePath = (path) =>\n Array.isArray(path)\n ? path.map(sanitizePath)\n : typeof path === 'number'\n ? path.toString()\n : path === undefined\n ? []\n : path\n\nconst toPath = (path) => _.toPath(sanitizePath(path))\n\nconst isEmptyPath = (path) => (path && !path.length)\n\nconst update = _.curry((path, updater, state) => {\n const sanitizedPath = sanitizePath(path)\n if (isEmptyPath(sanitizedPath)) {\n return updater(state)\n } else {\n return _.update(sanitizedPath, updater, state)\n }\n})\n\nconst get = _.curry((path, state) => {\n const sanitizedPath = sanitizePath(path)\n if (isEmptyPath(sanitizedPath)) {\n return state\n } else {\n return _.get(sanitizedPath, state)\n }\n})\n\nconst set = _.curry((path, value, state) => {\n const sanitizedPath = sanitizePath(path)\n if (isEmptyPath(sanitizedPath)) {\n return value\n } else {\n return _.set(sanitizedPath, value, state)\n }\n})\nconst unset = _.curry((path, state) => {\n const sanitizedPath = sanitizePath(path)\n if (isEmptyPath(sanitizedPath)) {\n return undefined\n } else {\n return _.unset(sanitizedPath, state)\n }\n})\n\nconst removeNAt = _.curry((pos, n, value) => [...value.slice(0, Number(pos)), ...value.slice(Number(pos)+n)])\nconst removeAt = removeNAt(_.__,1)\n\nconst when = _.curry((cond,fn,value) => callIfFunction(cond,value) ? fn(value) : value)\nconst assign = _.curry((a,b) => _.assign(b,a))\nconst concat = _.curry((a,b) => _.concat(b,a))\n\nconst each = _.each.convert({cap:false})\nconst find = _.find.convert({cap:false})\nconst filter = _.filter.convert({cap:false})\nconst map = _.map.convert({cap:false})\nconst mapValues = _.mapValues.convert({cap:false})\nconst flatMap = _.flatMap.convert({cap:false})\n\nconst insertAt = _.curry((pos, newElements, value) => [...value.slice(0, pos).concat(newElements), ...value.slice(pos)])\n\nconst select = _.curry((selector,value) => (_.isFunction(selector) ? selector : (selector ? _.get(selector) : _.identity))(value))\nconst itemToggle = _.curry((item,list ) => (list||[]).indexOf(item)>=0 ? _.without([item],list) : [...(list||[]),item])\n\nexport const _s = {\n moveElement,\n unsetOrRemoveAt,\n pathToString,\n toPath,\n update,\n get,\n set,\n select,\n unset,\n removeNAt,\n removeAt,\n itemToggle,\n when,\n assign,\n concat,\n each,\n find,\n filter,\n map,\n flatMap,\n mapValues,\n insertAt,\n flowEach: (...args) => _.flow(...args.filter(Boolean))\n}"],"names":["moveElement","_curry","from","to","list","el","without","_pullAt","splice","unsetOrRemoveAt","path","value","pathArr","toPath","_pathArr$slice","slice","_pathArr$slice2","_slicedToArray","lastKey","update","v","Array","isArray","removeAt","unset","pathToString","join","sanitizePath","map","toString","undefined","_toPath","isEmptyPath","length","updater","state","sanitizedPath","_update","get","_get","set","_set","_unset","removeNAt","pos","n","Number","_2","when","cond","fn","callIfFunction","assign","a","b","_assign","concat","_concat","each","_each","convert","cap","find","_find","filter","_filter","_map","mapValues","_mapValues","flatMap","_flatMap","insertAt","newElements","select","selector","_isFunction","_identity","itemToggle","item","indexOf","_without","_s","flowEach","_len","arguments","args","_key","_flow","Boolean"],"mappings":"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"}
@@ -0,0 +1,92 @@
1
+ import _awaitAsyncGenerator from '@babel/runtime/helpers/awaitAsyncGenerator';
2
+ import _wrapAsyncGenerator from '@babel/runtime/helpers/wrapAsyncGenerator';
3
+ import _times from 'lodash/fp/times';
4
+ import _identity from 'lodash/fp/identity';
5
+ import 'react';
6
+
7
+ const createPromiseResolverPair = () => {
8
+ let res, rej;
9
+ const promise = new Promise((res2, rej2) => {
10
+ res = res2;
11
+ rej = rej2;
12
+ });
13
+ return [promise, [res, rej]];
14
+ };
15
+ const createSimplePromiseLock = () => {
16
+ let promiseQueue = Promise.resolve();
17
+ return () => {
18
+ let resolve = _identity;
19
+ const nextPromise = new Promise(res => {
20
+ resolve = res;
21
+ });
22
+ const prevPromise = promiseQueue;
23
+ promiseQueue = nextPromise;
24
+ return prevPromise.then(() => resolve);
25
+ };
26
+ };
27
+ function createSinglePromiseQueue() {
28
+ return _createSinglePromiseQueue.apply(this, arguments);
29
+ }
30
+ function _createSinglePromiseQueue() {
31
+ _createSinglePromiseQueue = _wrapAsyncGenerator(function* () {
32
+ let lastPromise = Promise.resolve();
33
+ /* eslint-disable no-await-in-loop */
34
+ while (true) {
35
+ yield _awaitAsyncGenerator(lastPromise);
36
+ let resolve = _identity;
37
+ lastPromise = new Promise(res => {
38
+ resolve = res;
39
+ });
40
+ yield resolve;
41
+ }
42
+ });
43
+ return _createSinglePromiseQueue.apply(this, arguments);
44
+ }
45
+ function createPromiseQueue() {
46
+ return _createPromiseQueue.apply(this, arguments);
47
+ }
48
+ function _createPromiseQueue() {
49
+ _createPromiseQueue = _wrapAsyncGenerator(function () {
50
+ let parallel = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 1;
51
+ return function* () {
52
+ const queues = _times(createSinglePromiseQueue, parallel);
53
+ const promises = queues.map(q => q.next());
54
+ const locks = yield _awaitAsyncGenerator(Promise.all(promises));
55
+ const getNextAvailableLock = async () => {
56
+ const index = locks.findIndex(Boolean);
57
+ if (index >= 0) {
58
+ const lock = locks[index];
59
+ locks[index] = null;
60
+ promises[index] = queues[index].next().then(result => {
61
+ locks[index] = result;
62
+ });
63
+ return [lock.value, locks.filter(Boolean).length];
64
+ }
65
+ await Promise.race(promises);
66
+ return getNextAvailableLock();
67
+ };
68
+ while (true) {
69
+ const lock = yield _awaitAsyncGenerator(getNextAvailableLock());
70
+ yield lock;
71
+ }
72
+ }();
73
+ });
74
+ return _createPromiseQueue.apply(this, arguments);
75
+ }
76
+ const promiseMapReduce = (arr, callback) => arr.reduce((acc, item) => acc.then(seq => callback(item).then(res => [...seq, res])), Promise.resolve([]));
77
+ const asyncDebounce = function (fn) {
78
+ let delay = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 200;
79
+ let timeout;
80
+ return function () {
81
+ for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
82
+ args[_key] = arguments[_key];
83
+ }
84
+ clearTimeout(timeout);
85
+ return new Promise(res => {
86
+ timeout = setTimeout(() => res(fn(...args)), delay);
87
+ });
88
+ };
89
+ };
90
+
91
+ export { asyncDebounce, createPromiseQueue, createPromiseResolverPair, createSimplePromiseLock, promiseMapReduce };
92
+ //# sourceMappingURL=promiseUtils.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"promiseUtils.mjs","sources":["../src/promiseUtils.jsx"],"sourcesContent":["import React from 'react'\nimport _ from \"lodash/fp\";\n\nexport const createPromiseResolverPair = () => {\n let res, rej;\n const promise = new Promise((res2,rej2) => {\n res = res2;\n rej = rej2;\n })\n return [promise,[res,rej]]\n}\n\n\nexport const createSimplePromiseLock = () => {\n let promiseQueue = Promise.resolve()\n return () => {\n let resolve = _.identity\n const nextPromise = new Promise(res => {\n resolve = res\n })\n const prevPromise = promiseQueue\n promiseQueue = nextPromise\n return prevPromise.then(() => resolve)\n }\n}\nasync function* createSinglePromiseQueue() {\n let lastPromise = Promise.resolve()\n /* eslint-disable no-await-in-loop */\n while (true) {\n await lastPromise\n let resolve = _.identity\n lastPromise = new Promise(res => {\n resolve = res\n })\n yield resolve\n }\n}\n\n\nexport async function* createPromiseQueue(parallel = 1) {\n const queues = _.times(createSinglePromiseQueue, parallel)\n const promises = queues.map(q => q.next())\n const locks = await Promise.all(promises)\n\n const getNextAvailableLock = async () => {\n const index = locks.findIndex(Boolean)\n if (index >= 0) {\n const lock = locks[index]\n locks[index] = null\n promises[index] = queues[index].next().then(result => {\n locks[index] = result\n })\n return [lock.value, locks.filter(Boolean).length]\n }\n await Promise.race(promises)\n return getNextAvailableLock()\n }\n while (true) {\n const lock = await getNextAvailableLock()\n yield lock\n }\n}\n\nexport const promiseMapReduce = (arr, callback) =>\n arr.reduce((acc, item) => acc.then(seq => callback(item).then(res => [...seq, res])), Promise.resolve([]))\n\nexport const asyncDebounce = (fn, delay = 200) => {\n let timeout\n return (...args) => {\n clearTimeout(timeout)\n return new Promise(res => {\n timeout = setTimeout(() => res(fn(...args)), delay)\n })\n }\n}"],"names":["createPromiseResolverPair","res","rej","promise","Promise","res2","rej2","createSimplePromiseLock","promiseQueue","resolve","_identity","nextPromise","prevPromise","then","createSinglePromiseQueue","_createSinglePromiseQueue","apply","arguments","_wrapAsyncGenerator","lastPromise","_awaitAsyncGenerator","createPromiseQueue","_createPromiseQueue","parallel","length","undefined","queues","_times","promises","map","q","next","locks","all","getNextAvailableLock","index","findIndex","Boolean","lock","result","value","filter","race","promiseMapReduce","arr","callback","reduce","acc","item","seq","asyncDebounce","fn","delay","timeout","_len","args","Array","_key","clearTimeout","setTimeout"],"mappings":"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"}
@@ -0,0 +1,12 @@
1
+ import _defineProperty from '@babel/runtime/helpers/defineProperty';
2
+ import React from 'react';
3
+
4
+ function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
5
+ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
6
+ const addExtraProp = function (element, extra) {
7
+ let override = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;
8
+ return /*#__PURE__*/React.cloneElement(element, override ? _objectSpread(_objectSpread({}, element.props), extra) : _objectSpread(_objectSpread({}, extra), element.props), element.props.children);
9
+ };
10
+
11
+ export { addExtraProp };
12
+ //# sourceMappingURL=reactUtils.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"reactUtils.mjs","sources":["../src/reactUtils.jsx"],"sourcesContent":["import React from 'react'\n\nexport const addExtraProp = (element, extra, override = true) => React.cloneElement(\n element,\n override ? {...element.props,...extra} : {...extra,...element.props},\n element.props.children\n)\n"],"names":["addExtraProp","element","extra","override","arguments","length","undefined","React","cloneElement","_objectSpread","props","children"],"mappings":";;;;;MAEaA,YAAY,GAAG,UAACC,OAAO,EAAEC,KAAK,EAAA;AAAA,EAAA,IAAEC,QAAQ,GAAAC,SAAA,CAAAC,MAAA,GAAA,CAAA,IAAAD,SAAA,CAAA,CAAA,CAAA,KAAAE,SAAA,GAAAF,SAAA,CAAA,CAAA,CAAA,GAAG,IAAI,CAAA;AAAA,EAAA,oBAAKG,KAAK,CAACC,YAAY,CACjFP,OAAO,EACPE,QAAQ,GAAAM,aAAA,CAAAA,aAAA,CAAA,EAAA,EAAOR,OAAO,CAACS,KAAK,CAAIR,EAAAA,KAAK,CAAAO,GAAAA,aAAA,CAAAA,aAAA,CAAQP,EAAAA,EAAAA,KAAK,GAAID,OAAO,CAACS,KAAK,CAAC,EACpET,OAAO,CAACS,KAAK,CAACC,QAChB,CAAC,CAAA;AAAA;;;;"}
@@ -0,0 +1,14 @@
1
+ import _identity from 'lodash/fp/identity';
2
+
3
+ const compareBest = compare => (best, next) => best ? compare(best, next) ? next : best : next;
4
+ const toLowest = function () {
5
+ let getValue = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : _identity;
6
+ return compareBest((best, next) => getValue(next) < getValue(best));
7
+ };
8
+ const toHighest = function () {
9
+ let getValue = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : _identity;
10
+ return compareBest((best, next) => getValue(next) > getValue(best));
11
+ };
12
+
13
+ export { compareBest, toHighest, toLowest };
14
+ //# sourceMappingURL=reduceUtils.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"reduceUtils.mjs","sources":["../src/reduceUtils.jsx"],"sourcesContent":["import _ from 'lodash/fp'\n\nexport const compareBest = (compare) => (best,next) => best ? (compare(best,next) ? next : best) : next\n\nexport const toLowest = (getValue = _.identity) => compareBest((best,next) => (getValue(next) < getValue(best)))\nexport const toHighest = (getValue = _.identity) => compareBest((best,next) => (getValue(next) > getValue(best)))\n"],"names":["compareBest","compare","best","next","toLowest","getValue","arguments","length","undefined","_identity","toHighest"],"mappings":";;AAEO,MAAMA,WAAW,GAAIC,OAAO,IAAK,CAACC,IAAI,EAACC,IAAI,KAAKD,IAAI,GAAID,OAAO,CAACC,IAAI,EAACC,IAAI,CAAC,GAAGA,IAAI,GAAGD,IAAI,GAAIC,KAAI;AAE1FC,MAAAA,QAAQ,GAAG,YAAA;AAAA,EAAA,IAACC,QAAQ,GAAAC,SAAA,CAAAC,MAAA,GAAA,CAAA,IAAAD,SAAA,CAAA,CAAA,CAAA,KAAAE,SAAA,GAAAF,SAAA,CAAA,CAAA,CAAA,GAAAG,SAAA,CAAA;AAAA,EAAA,OAAkBT,WAAW,CAAC,CAACE,IAAI,EAACC,IAAI,KAAME,QAAQ,CAACF,IAAI,CAAC,GAAGE,QAAQ,CAACH,IAAI,CAAE,CAAC,CAAA;AAAA,EAAA;AACnGQ,MAAAA,SAAS,GAAG,YAAA;AAAA,EAAA,IAACL,QAAQ,GAAAC,SAAA,CAAAC,MAAA,GAAA,CAAA,IAAAD,SAAA,CAAA,CAAA,CAAA,KAAAE,SAAA,GAAAF,SAAA,CAAA,CAAA,CAAA,GAAAG,SAAA,CAAA;AAAA,EAAA,OAAkBT,WAAW,CAAC,CAACE,IAAI,EAACC,IAAI,KAAME,QAAQ,CAACF,IAAI,CAAC,GAAGE,QAAQ,CAACH,IAAI,CAAE,CAAC,CAAA;AAAA;;;;"}