@startlibs/utils 1.0.4 → 1.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (64) 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 +46 -31
  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 -2399
  63. package/rollup.config.js +0 -44
  64. package/yarn-error.log +0 -3643
@@ -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","concat","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;;;;"}