@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,117 @@
1
+ import _defineProperty from '@babel/runtime/helpers/defineProperty';
2
+ import _slicedToArray from '@babel/runtime/helpers/slicedToArray';
3
+ import _set from 'lodash/fp/set';
4
+ import _last from 'lodash/fp/last';
5
+ import { useMemo } from 'react';
6
+ import { callIfFunction } from './utils.mjs';
7
+ import { _s } from './lodashUtils.mjs';
8
+
9
+ 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; }
10
+ 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; }
11
+ const isNotSelector = v => typeof v !== 'function' || v.length === 0;
12
+ const toSelector = v => isNotSelector(v) ? s => _s.get(callIfFunction(v), s) : v;
13
+ const mergeSelectors = (prev, next) => v => next(prev(v));
14
+ const concatSelectors = function () {
15
+ for (var _len = arguments.length, paths = new Array(_len), _key = 0; _key < _len; _key++) {
16
+ paths[_key] = arguments[_key];
17
+ }
18
+ return paths.reduce((_ref, path) => {
19
+ let _ref2 = _slicedToArray(_ref, 2),
20
+ selector = _ref2[0],
21
+ isSelector = _ref2[1];
22
+ return isNotSelector(path) && !isSelector ? [selector.concat(path), false] : [mergeSelectors(toSelector(selector), path), true];
23
+ }, [[], false]);
24
+ };
25
+ const COMPLETE_ACTION = {};
26
+ const REDUCE = {};
27
+ const FETCH = {};
28
+ const SKIP_FETCH = {};
29
+ const SKIP_DISPATCH = {};
30
+ const SKIPPED_ACTION = {};
31
+ const selectPath = function (useState) {
32
+ for (var _len2 = arguments.length, paths = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {
33
+ paths[_key2 - 1] = arguments[_key2];
34
+ }
35
+ const _useMemo = useMemo(() => concatSelectors(...paths), paths),
36
+ _useMemo2 = _slicedToArray(_useMemo, 1),
37
+ selector = _useMemo2[0];
38
+ const _useState = useState(selector),
39
+ _useState2 = _slicedToArray(_useState, 1),
40
+ value = _useState2[0];
41
+ return value;
42
+ };
43
+ const Action = function (fnOrArray) {
44
+ let prevArgs = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];
45
+ const isArray = Array.isArray(fnOrArray);
46
+ if (isArray) {
47
+ // excessive paramaeters called on the action, used for options.
48
+ const actionType = _last(prevArgs);
49
+ const _fnOrArray = _slicedToArray(fnOrArray, 3),
50
+ fetcher = _fnOrArray[0],
51
+ reducer = _fnOrArray[1],
52
+ rollbacker = _fnOrArray[2];
53
+ if (actionType === REDUCE) {
54
+ return reducer(null, prevArgs);
55
+ } else if (actionType === FETCH) {
56
+ return fetcher();
57
+ } else {
58
+ return _set('extra', fnOrArray.extra, [actionType === SKIP_FETCH ? () => Promise.resolve() : fetcher, actionType === SKIP_DISPATCH ? undefined : reducer].concat(rollbacker || []));
59
+ }
60
+ } else {
61
+ return prevArgs.length < fnOrArray.length ? function () {
62
+ for (var _len3 = arguments.length, moreArgs = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {
63
+ moreArgs[_key3] = arguments[_key3];
64
+ }
65
+ return Action(fnOrArray, [...prevArgs, ...moreArgs]);
66
+ } : Action(fnOrArray(...prevArgs), prevArgs);
67
+ }
68
+ };
69
+ const mapAction = (get, dispatcher, firstRun) => action => {
70
+ if (Array.isArray(action)) {
71
+ if (firstRun) {
72
+ return () => mapAction(get, dispatcher)(action);
73
+ }
74
+ const _action = _slicedToArray(action, 3),
75
+ fetcher = _action[0],
76
+ reducer = _action[1],
77
+ rollbacker = _action[2];
78
+ const _ref3 = action.extra || {},
79
+ skip = _ref3.skip;
80
+ if (skip && skip(get())) {
81
+ return Promise.resolve(SKIPPED_ACTION);
82
+ }
83
+ const fetched = fetcher();
84
+ if (rollbacker) {
85
+ dispatcher(prevState => {
86
+ const nextState = reducer(null)(prevState);
87
+ fetched.catch(response => {
88
+ dispatcher(rollbacker(prevState, nextState, response));
89
+ });
90
+ return nextState;
91
+ });
92
+ }
93
+ if (reducer !== undefined) {
94
+ fetched.then(response => dispatcher(reducer(response)));
95
+ }
96
+ return fetched;
97
+ } else {
98
+ return function () {
99
+ return mapAction(get, dispatcher)(action(...arguments));
100
+ };
101
+ }
102
+ };
103
+ const activateActions = function (get, dispatcher) {
104
+ for (var _len4 = arguments.length, actions = new Array(_len4 > 2 ? _len4 - 2 : 0), _key4 = 2; _key4 < _len4; _key4++) {
105
+ actions[_key4 - 2] = arguments[_key4];
106
+ }
107
+ return actions.map(mapAction(get, dispatcher, true));
108
+ };
109
+ const SkipAction = (skip, action) => {
110
+ action.extra = _objectSpread(_objectSpread({}, action.extra), {}, {
111
+ skip
112
+ });
113
+ return action;
114
+ };
115
+
116
+ export { Action, COMPLETE_ACTION, FETCH, REDUCE, SKIPPED_ACTION, SKIP_DISPATCH, SKIP_FETCH, SkipAction, activateActions, concatSelectors, selectPath };
117
+ //# sourceMappingURL=ActionUtils.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ActionUtils.mjs","sources":["../src/ActionUtils.js"],"sourcesContent":["import {useMemo} from 'react'\nimport {callIfFunction} from './utils'\nimport {_s} from './lodashUtils'\nimport _ from 'lodash/fp'\n\nconst isNotSelector = (v) => (typeof v !== 'function' || v.length === 0)\n\nconst toSelector = (v) => isNotSelector(v) ? (s) => _s.get(callIfFunction(v),s) : v\n\nconst mergeSelectors = (prev, next) => (v) => next(prev(v))\nexport const concatSelectors = (...paths) => paths.reduce(([selector, isSelector], path) =>\n isNotSelector(path) && !isSelector\n ? [selector.concat(path), false]\n : [mergeSelectors(toSelector(selector), path), true],\n [[], false]\n)\n\nexport const COMPLETE_ACTION = {}\nexport const REDUCE = {}\nexport const FETCH = {}\nexport const SKIP_FETCH = {}\nexport const SKIP_DISPATCH = {}\nexport const SKIPPED_ACTION = {}\n\nconst ACTION_TYPES = [COMPLETE_ACTION,REDUCE,FETCH,SKIP_FETCH,SKIP_DISPATCH]\n\nexport const selectPath = (useState, ...paths) => {\n const [selector] = useMemo(() => concatSelectors(...paths), paths)\n const [value] = useState(selector)\n return value\n}\n\nexport const Action = (fnOrArray, prevArgs = []) => {\n const isArray = Array.isArray(fnOrArray)\n if (isArray) {\n // excessive paramaeters called on the action, used for options.\n const actionType = _.last(prevArgs)\n const [fetcher, reducer, rollbacker] = fnOrArray\n if (actionType === REDUCE) {\n return reducer(null,prevArgs)\n } else if (actionType === FETCH) {\n return fetcher()\n } else {\n return _.set('extra',fnOrArray.extra,[\n actionType === SKIP_FETCH ? () => Promise.resolve() : fetcher,\n actionType === SKIP_DISPATCH ? undefined : reducer,\n ].concat(rollbacker || []))\n }\n } else {\n return prevArgs.length < fnOrArray.length ? (...moreArgs) => Action(fnOrArray,[...prevArgs,...moreArgs]) : Action(fnOrArray(...prevArgs),prevArgs)\n }\n}\n\nconst mapAction = (get, dispatcher, firstRun) => (action) => {\n if (Array.isArray(action)) {\n if (firstRun) {\n return () => mapAction(get,dispatcher)(action)\n }\n const [fetcher, reducer, rollbacker] = action\n const {skip} = action.extra || {}\n if (skip && skip(get())) {\n return Promise.resolve(SKIPPED_ACTION)\n }\n const fetched = fetcher()\n if (rollbacker) {\n dispatcher(prevState => {\n const nextState = reducer(null)(prevState)\n fetched.catch((response)=> {\n dispatcher(rollbacker(prevState,nextState,response))\n })\n return nextState\n })\n }\n if (reducer !== undefined) {\n fetched.then((response) => dispatcher(reducer(response)))\n }\n return fetched\n } else {\n return (...moreMetas) => mapAction(get,dispatcher)(action(...moreMetas))\n }\n}\n\nexport const activateActions = (get, dispatcher, ...actions) => {\n return actions.map(mapAction(get, dispatcher,true))\n}\n\nexport const SkipAction = (skip,action) => {\n action.extra = {...action.extra,skip}\n return action\n}"],"names":["isNotSelector","v","length","toSelector","s","_s","get","callIfFunction","mergeSelectors","prev","next","concatSelectors","_len","arguments","paths","Array","_key","reduce","_ref","path","_ref2","_slicedToArray","selector","isSelector","concat","COMPLETE_ACTION","REDUCE","FETCH","SKIP_FETCH","SKIP_DISPATCH","SKIPPED_ACTION","selectPath","useState","_len2","_key2","_useMemo","useMemo","_useMemo2","_useState","_useState2","value","Action","fnOrArray","prevArgs","undefined","isArray","actionType","_last","_fnOrArray","fetcher","reducer","rollbacker","_set","extra","Promise","resolve","_len3","moreArgs","_key3","mapAction","dispatcher","firstRun","action","_action","_ref3","skip","fetched","prevState","nextState","catch","response","then","activateActions","_len4","actions","_key4","map","SkipAction","_objectSpread"],"mappings":"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"}
@@ -0,0 +1,100 @@
1
+ import _slicedToArray from '@babel/runtime/helpers/slicedToArray';
2
+ import _defineProperty from '@babel/runtime/helpers/defineProperty';
3
+ import _isPlainObject from 'lodash/fp/isPlainObject';
4
+ import { callIfFunction } from './utils.mjs';
5
+
6
+ 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; }
7
+ 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; }
8
+ const resolveFetch = async (url, fetchOptions) => {
9
+ try {
10
+ const response = await fetch(url, _objectSpread({
11
+ credentials: 'same-origin'
12
+ }, fetchOptions));
13
+ const text = await response.text();
14
+ try {
15
+ const json = JSON.parse(text);
16
+ return [json, response];
17
+ } catch (eror) {
18
+ return [text, response];
19
+ }
20
+ } catch (error) {
21
+ return [error, false];
22
+ }
23
+ };
24
+ const innerFetcher = async (url, fetchOptions) => {
25
+ const _await$resolveFetch = await resolveFetch(url, fetchOptions),
26
+ _await$resolveFetch2 = _slicedToArray(_await$resolveFetch, 2),
27
+ data = _await$resolveFetch2[0],
28
+ response = _await$resolveFetch2[1];
29
+ if (!response || response.status >= 400) {
30
+ throw [data, response];
31
+ } else {
32
+ return [data, response];
33
+ }
34
+ };
35
+ const queryStringToObj = function () {
36
+ let str = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : window.location.search;
37
+ return Object.fromEntries(new URLSearchParams(str).entries());
38
+ };
39
+ const addQueryString = function () {
40
+ let existingUrl = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';
41
+ let obj = arguments.length > 1 ? arguments[1] : undefined;
42
+ const _existingUrl$split = existingUrl.split('?'),
43
+ _existingUrl$split2 = _slicedToArray(_existingUrl$split, 2),
44
+ onlyUrl = _existingUrl$split2[0],
45
+ otherQueryString = _existingUrl$split2[1];
46
+ const params = new URLSearchParams(otherQueryString);
47
+ for (let key in obj) {
48
+ const value = obj[key];
49
+ if (value === null) {
50
+ params.delete(key);
51
+ } else {
52
+ params.set(key, obj[key]);
53
+ }
54
+ }
55
+ const paramsStr = params.toString();
56
+ if (!paramsStr) {
57
+ return onlyUrl;
58
+ }
59
+ return onlyUrl + '?' + paramsStr;
60
+ };
61
+ const cleanNulls = str => str.replace(/\0/g, '');
62
+
63
+ // Cross-origin o X-Requested-With só custa: dispara preflight e impede o reuso do
64
+ // <link rel=preload as=fetch>, cujo request vai sem ele. Quem lê o header é servidor nosso.
65
+ const isSameOrigin = url => new URL(url, window.location.href).origin === window.location.origin;
66
+ let postFetcherWithResponse = async function (url, jsonOrForm) {
67
+ let fetchOptions = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
68
+ return innerFetcher(url, _objectSpread(_objectSpread({
69
+ method: 'POST',
70
+ body: typeof jsonOrForm === 'string' ? jsonOrForm : !jsonOrForm || jsonOrForm.constructor === window.FormData || jsonOrForm.constructor === window.File ? jsonOrForm : cleanNulls(JSON.stringify(jsonOrForm))
71
+ }, fetchOptions), {}, {
72
+ headers: _isPlainObject(fetchOptions.headers) || !fetchOptions.headers ? _objectSpread(_objectSpread(_objectSpread({}, jsonOrForm && (typeof jsonOrForm === 'string' || jsonOrForm.constructor === window.FormData) ? {} : {
73
+ 'Content-Type': 'application/json; charset=UTF-8'
74
+ }), isSameOrigin(url) ? {
75
+ 'X-Requested-With': 'XMLHttpRequest'
76
+ } : {}), fetchOptions.headers) : fetchOptions.headers
77
+ }));
78
+ };
79
+ let getFetcherWithResponse = async (url, jsonParams, fetchOptions) => innerFetcher(addQueryString(url, jsonParams), _objectSpread(_objectSpread({
80
+ method: 'GET'
81
+ }, fetchOptions), {}, {
82
+ headers: _objectSpread(_objectSpread({}, isSameOrigin(url) ? {
83
+ 'X-Requested-With': 'XMLHttpRequest'
84
+ } : {}), fetchOptions === null || fetchOptions === void 0 ? void 0 : fetchOptions.headers)
85
+ }));
86
+ let postFetcher = async (url, json, options) => postFetcherWithResponse(url, json, options).then(_ref => {
87
+ let _ref2 = _slicedToArray(_ref, 1),
88
+ json = _ref2[0];
89
+ return json;
90
+ });
91
+ let getFetcher = async (url, json, options) => getFetcherWithResponse(url, json, options).then(_ref3 => {
92
+ let _ref4 = _slicedToArray(_ref3, 1),
93
+ json = _ref4[0];
94
+ return json;
95
+ });
96
+ const formFetchWithResponse = (url, options) => (values, meta) => postFetcherWithResponse(callIfFunction(url, meta, values), values, callIfFunction(options, meta, values));
97
+ const formFetch = (url, options) => (values, meta) => postFetcher(callIfFunction(url, meta, values), values, callIfFunction(options, meta, values));
98
+
99
+ export { addQueryString, formFetch, formFetchWithResponse, getFetcher, getFetcherWithResponse, postFetcher, postFetcherWithResponse, queryStringToObj };
100
+ //# sourceMappingURL=FetchUtils.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FetchUtils.mjs","sources":["../src/FetchUtils.js"],"sourcesContent":["import {callIfFunction} from './utils'\nimport _ from 'lodash/fp'\n\nconst resolveFetch = async (url, fetchOptions) => {\n try {\n const response = await fetch(url, {\n credentials: 'same-origin',\n ...fetchOptions\n })\n const text = await response.text()\n try {\n const json = JSON.parse(text)\n return [json, response]\n } catch (eror) {\n return [text, response]\n }\n } catch (error) {\n return [error, false]\n }\n}\n\nconst innerFetcher = async (url, fetchOptions) => {\n const [data, response] = await resolveFetch(url, fetchOptions)\n if (!response || response.status >= 400) {\n throw [data, response]\n } else {\n return [data, response]\n }\n}\nexport const queryStringToObj = (str = window.location.search) => Object.fromEntries(new URLSearchParams(str).entries())\n\nexport const addQueryString = (existingUrl = '',obj) => {\n const [onlyUrl, otherQueryString] = existingUrl.split('?')\n const params = new URLSearchParams(otherQueryString)\n for (let key in obj) {\n const value = obj[key]\n if (value === null) {\n params.delete(key)\n } else {\n params.set(key, obj[key])\n }\n }\n const paramsStr = params.toString()\n if (!paramsStr) {\n return onlyUrl\n }\n return onlyUrl + '?' + paramsStr\n}\n\nconst cleanNulls = (str) => str.replace(/\\0/g, '')\n\n// Cross-origin o X-Requested-With só custa: dispara preflight e impede o reuso do\n// <link rel=preload as=fetch>, cujo request vai sem ele. Quem lê o header é servidor nosso.\nconst isSameOrigin = (url) => new URL(url, window.location.href).origin === window.location.origin\n\nexport let postFetcherWithResponse = async (url, jsonOrForm, fetchOptions = {}) => innerFetcher(url, {\n method: 'POST',\n body: typeof jsonOrForm === 'string'\n ? jsonOrForm\n : !jsonOrForm || jsonOrForm.constructor === window.FormData || jsonOrForm.constructor === window.File\n ? jsonOrForm\n : cleanNulls(JSON.stringify(jsonOrForm)),\n ...fetchOptions,\n headers:\n (_.isPlainObject(fetchOptions.headers) || !fetchOptions.headers)\n ? {\n ...(jsonOrForm && (typeof jsonOrForm === 'string' || jsonOrForm.constructor === window.FormData) ? {} : {'Content-Type': 'application/json; charset=UTF-8'}),\n ...(isSameOrigin(url) ? {'X-Requested-With': 'XMLHttpRequest'} : {}),\n ...fetchOptions.headers\n }\n : fetchOptions.headers\n})\n\nexport let getFetcherWithResponse = async (url, jsonParams, fetchOptions) => innerFetcher(addQueryString(url, jsonParams), {\n method: 'GET',\n ...fetchOptions,\n headers: {\n ...(isSameOrigin(url) ? {'X-Requested-With': 'XMLHttpRequest'} : {}),\n ...fetchOptions?.headers\n }\n})\n\nexport let postFetcher = async (url, json, options) => postFetcherWithResponse(url, json, options).then(([json]) => json)\nexport let getFetcher = async (url, json, options) => getFetcherWithResponse(url, json, options).then(([json]) => json)\n\nexport const formFetchWithResponse = (url, options) => (values, meta) => postFetcherWithResponse(callIfFunction(url, meta, values), values, callIfFunction(options, meta, values))\nexport const formFetch = (url, options) => (values, meta) => postFetcher(callIfFunction(url, meta, values), values, callIfFunction(options, meta, values))\n"],"names":["resolveFetch","url","fetchOptions","response","fetch","_objectSpread","credentials","text","json","JSON","parse","eror","error","innerFetcher","_await$resolveFetch","_await$resolveFetch2","_slicedToArray","data","status","queryStringToObj","str","arguments","length","undefined","window","location","search","Object","fromEntries","URLSearchParams","entries","addQueryString","existingUrl","obj","_existingUrl$split","split","_existingUrl$split2","onlyUrl","otherQueryString","params","key","value","delete","set","paramsStr","toString","cleanNulls","replace","isSameOrigin","URL","href","origin","postFetcherWithResponse","jsonOrForm","method","body","constructor","FormData","File","stringify","headers","_isPlainObject","getFetcherWithResponse","jsonParams","postFetcher","options","then","_ref","_ref2","getFetcher","_ref3","_ref4","formFetchWithResponse","values","meta","callIfFunction","formFetch"],"mappings":";;;;;;;AAGA,MAAMA,YAAY,GAAG,OAAOC,GAAG,EAAEC,YAAY,KAAK;EAChD,IAAI;AACF,IAAA,MAAMC,QAAQ,GAAG,MAAMC,KAAK,CAACH,GAAG,EAAAI,aAAA,CAAA;AAC9BC,MAAAA,WAAW,EAAE,aAAA;KACVJ,EAAAA,YAAY,CAChB,CAAC,CAAA;AACF,IAAA,MAAMK,IAAI,GAAG,MAAMJ,QAAQ,CAACI,IAAI,EAAE,CAAA;IAClC,IAAI;AACF,MAAA,MAAMC,IAAI,GAAGC,IAAI,CAACC,KAAK,CAACH,IAAI,CAAC,CAAA;AAC7B,MAAA,OAAO,CAACC,IAAI,EAAEL,QAAQ,CAAC,CAAA;KACxB,CAAC,OAAOQ,IAAI,EAAE;AACb,MAAA,OAAO,CAACJ,IAAI,EAAEJ,QAAQ,CAAC,CAAA;AACzB,KAAA;GACD,CAAC,OAAOS,KAAK,EAAE;AACd,IAAA,OAAO,CAACA,KAAK,EAAE,KAAK,CAAC,CAAA;AACvB,GAAA;AACF,CAAC,CAAA;AAED,MAAMC,YAAY,GAAG,OAAOZ,GAAG,EAAEC,YAAY,KAAK;EAChD,MAAAY,mBAAA,GAAyB,MAAMd,YAAY,CAACC,GAAG,EAAEC,YAAY,CAAC;IAAAa,oBAAA,GAAAC,cAAA,CAAAF,mBAAA,EAAA,CAAA,CAAA;AAAvDG,IAAAA,IAAI,GAAAF,oBAAA,CAAA,CAAA,CAAA;AAAEZ,IAAAA,QAAQ,GAAAY,oBAAA,CAAA,CAAA,CAAA,CAAA;EACrB,IAAI,CAACZ,QAAQ,IAAIA,QAAQ,CAACe,MAAM,IAAI,GAAG,EAAE;AACvC,IAAA,MAAM,CAACD,IAAI,EAAEd,QAAQ,CAAC,CAAA;AACxB,GAAC,MAAM;AACL,IAAA,OAAO,CAACc,IAAI,EAAEd,QAAQ,CAAC,CAAA;AACzB,GAAA;AACF,CAAC,CAAA;AACYgB,MAAAA,gBAAgB,GAAG,YAAA;AAAA,EAAA,IAACC,GAAG,GAAAC,SAAA,CAAAC,MAAA,QAAAD,SAAA,CAAA,CAAA,CAAA,KAAAE,SAAA,GAAAF,SAAA,CAAGG,CAAAA,CAAAA,GAAAA,MAAM,CAACC,QAAQ,CAACC,MAAM,CAAA;AAAA,EAAA,OAAKC,MAAM,CAACC,WAAW,CAAC,IAAIC,eAAe,CAACT,GAAG,CAAC,CAACU,OAAO,EAAE,CAAC,CAAA;AAAA,EAAA;AAE3GC,MAAAA,cAAc,GAAG,YAA0B;AAAA,EAAA,IAAzBC,WAAW,GAAAX,SAAA,CAAAC,MAAA,GAAA,CAAA,IAAAD,SAAA,CAAA,CAAA,CAAA,KAAAE,SAAA,GAAAF,SAAA,CAAA,CAAA,CAAA,GAAG,EAAE,CAAA;EAAA,IAACY,GAAG,GAAAZ,SAAA,CAAAC,MAAA,GAAAD,CAAAA,GAAAA,SAAA,MAAAE,SAAA,CAAA;AACjD,EAAA,MAAAW,kBAAA,GAAoCF,WAAW,CAACG,KAAK,CAAC,GAAG,CAAC;IAAAC,mBAAA,GAAApB,cAAA,CAAAkB,kBAAA,EAAA,CAAA,CAAA;AAAnDG,IAAAA,OAAO,GAAAD,mBAAA,CAAA,CAAA,CAAA;AAAEE,IAAAA,gBAAgB,GAAAF,mBAAA,CAAA,CAAA,CAAA,CAAA;AAChC,EAAA,MAAMG,MAAM,GAAG,IAAIV,eAAe,CAACS,gBAAgB,CAAC,CAAA;AACpD,EAAA,KAAK,IAAIE,GAAG,IAAIP,GAAG,EAAE;AACnB,IAAA,MAAMQ,KAAK,GAAGR,GAAG,CAACO,GAAG,CAAC,CAAA;IACtB,IAAIC,KAAK,KAAK,IAAI,EAAE;AAClBF,MAAAA,MAAM,CAACG,MAAM,CAACF,GAAG,CAAC,CAAA;AACpB,KAAC,MAAM;MACLD,MAAM,CAACI,GAAG,CAACH,GAAG,EAAEP,GAAG,CAACO,GAAG,CAAC,CAAC,CAAA;AAC3B,KAAA;AACF,GAAA;AACA,EAAA,MAAMI,SAAS,GAAGL,MAAM,CAACM,QAAQ,EAAE,CAAA;EACnC,IAAI,CAACD,SAAS,EAAE;AACd,IAAA,OAAOP,OAAO,CAAA;AAChB,GAAA;AACA,EAAA,OAAOA,OAAO,GAAG,GAAG,GAAGO,SAAS,CAAA;AAClC,EAAC;AAED,MAAME,UAAU,GAAI1B,GAAG,IAAKA,GAAG,CAAC2B,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAA;;AAElD;AACA;AACA,MAAMC,YAAY,GAAI/C,GAAG,IAAK,IAAIgD,GAAG,CAAChD,GAAG,EAAEuB,MAAM,CAACC,QAAQ,CAACyB,IAAI,CAAC,CAACC,MAAM,KAAK3B,MAAM,CAACC,QAAQ,CAAC0B,MAAM,CAAA;IAEvFC,uBAAuB,GAAG,gBAAOnD,GAAG,EAAEoD,UAAU,EAAA;AAAA,EAAA,IAAEnD,YAAY,GAAAmB,SAAA,CAAAC,MAAA,GAAA,CAAA,IAAAD,SAAA,CAAA,CAAA,CAAA,KAAAE,SAAA,GAAAF,SAAA,CAAA,CAAA,CAAA,GAAG,EAAE,CAAA;AAAA,EAAA,OAAKR,YAAY,CAACZ,GAAG,EAAAI,aAAA,CAAAA,aAAA,CAAA;AACjGiD,IAAAA,MAAM,EAAE,MAAM;AACdC,IAAAA,IAAI,EAAE,OAAOF,UAAU,KAAK,QAAQ,GAChCA,UAAU,GACV,CAACA,UAAU,IAAIA,UAAU,CAACG,WAAW,KAAKhC,MAAM,CAACiC,QAAQ,IAAIJ,UAAU,CAACG,WAAW,KAAKhC,MAAM,CAACkC,IAAI,GACjGL,UAAU,GACVP,UAAU,CAACrC,IAAI,CAACkD,SAAS,CAACN,UAAU,CAAC,CAAA;AAAC,GAAA,EACzCnD,YAAY,CAAA,EAAA,EAAA,EAAA;AACf0D,IAAAA,OAAO,EACJC,cAAA,CAAgB3D,YAAY,CAAC0D,OAAO,CAAC,IAAI,CAAC1D,YAAY,CAAC0D,OAAO,GAAAvD,aAAA,CAAAA,aAAA,CAAAA,aAAA,CAEvDgD,EAAAA,EAAAA,UAAU,KAAK,OAAOA,UAAU,KAAK,QAAQ,IAAIA,UAAU,CAACG,WAAW,KAAKhC,MAAM,CAACiC,QAAQ,CAAC,GAAG,EAAE,GAAG;AAAC,MAAA,cAAc,EAAE,iCAAA;AAAiC,KAAC,CACvJT,EAAAA,YAAY,CAAC/C,GAAG,CAAC,GAAG;AAAC,MAAA,kBAAkB,EAAE,gBAAA;KAAiB,GAAG,EAAE,CAAA,EAChEC,YAAY,CAAC0D,OAAO,CAEzB1D,GAAAA,YAAY,CAAC0D,OAAAA;AAAO,GAAA,CACzB,CAAC,CAAA;AAAA,EAAA;AAEK,IAAIE,sBAAsB,GAAG,OAAO7D,GAAG,EAAE8D,UAAU,EAAE7D,YAAY,KAAKW,YAAY,CAACkB,cAAc,CAAC9B,GAAG,EAAE8D,UAAU,CAAC,EAAA1D,aAAA,CAAAA,aAAA,CAAA;AACvHiD,EAAAA,MAAM,EAAE,KAAA;AAAK,CAAA,EACVpD,YAAY,CAAA,EAAA,EAAA,EAAA;EACf0D,OAAO,EAAAvD,aAAA,CAAAA,aAAA,KACD2C,YAAY,CAAC/C,GAAG,CAAC,GAAG;AAAC,IAAA,kBAAkB,EAAE,gBAAA;GAAiB,GAAG,EAAE,CAChEC,EAAAA,YAAY,aAAZA,YAAY,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAZA,YAAY,CAAE0D,OAAO,CAAA;AACzB,CAAA,CACF,EAAC;AAEK,IAAII,WAAW,GAAG,OAAO/D,GAAG,EAAEO,IAAI,EAAEyD,OAAO,KAAKb,uBAAuB,CAACnD,GAAG,EAAEO,IAAI,EAAEyD,OAAO,CAAC,CAACC,IAAI,CAACC,IAAA,IAAA;AAAA,EAAA,IAAAC,KAAA,GAAApD,cAAA,CAAAmD,IAAA,EAAA,CAAA,CAAA;AAAE3D,IAAAA,IAAI,GAAA4D,KAAA,CAAA,CAAA,CAAA,CAAA;AAAA,EAAA,OAAM5D,IAAI,CAAA;AAAA,CAAC,EAAA;AAClH,IAAI6D,UAAU,GAAG,OAAOpE,GAAG,EAAEO,IAAI,EAAEyD,OAAO,KAAKH,sBAAsB,CAAC7D,GAAG,EAAEO,IAAI,EAAEyD,OAAO,CAAC,CAACC,IAAI,CAACI,KAAA,IAAA;AAAA,EAAA,IAAAC,KAAA,GAAAvD,cAAA,CAAAsD,KAAA,EAAA,CAAA,CAAA;AAAE9D,IAAAA,IAAI,GAAA+D,KAAA,CAAA,CAAA,CAAA,CAAA;AAAA,EAAA,OAAM/D,IAAI,CAAA;AAAA,CAAC,EAAA;AAE1GgE,MAAAA,qBAAqB,GAAGA,CAACvE,GAAG,EAAEgE,OAAO,KAAK,CAACQ,MAAM,EAAEC,IAAI,KAAKtB,uBAAuB,CAACuB,cAAc,CAAC1E,GAAG,EAAEyE,IAAI,EAAED,MAAM,CAAC,EAAEA,MAAM,EAAEE,cAAc,CAACV,OAAO,EAAES,IAAI,EAAED,MAAM,CAAC,EAAC;AACrKG,MAAAA,SAAS,GAAGA,CAAC3E,GAAG,EAAEgE,OAAO,KAAK,CAACQ,MAAM,EAAEC,IAAI,KAAKV,WAAW,CAACW,cAAc,CAAC1E,GAAG,EAAEyE,IAAI,EAAED,MAAM,CAAC,EAAEA,MAAM,EAAEE,cAAc,CAACV,OAAO,EAAES,IAAI,EAAED,MAAM,CAAC;;;;"}
@@ -0,0 +1,74 @@
1
+ import _slicedToArray from '@babel/runtime/helpers/slicedToArray';
2
+ import 'react';
3
+ import { normalizePress, callIfFunction } from './utils.mjs';
4
+
5
+ const disableSelect = e => {
6
+ e.preventDefault();
7
+ };
8
+ const createPressEvent = onStart => normalizePress((startEvent, info) => {
9
+ const onEnd = onStart(startEvent, info);
10
+ const finish = normalizePress((e, info) => {
11
+ callIfFunction(onEnd, e, info);
12
+ window.removeEventListener('selectstart', disableSelect);
13
+ window.removeEventListener('touchend', finish);
14
+ window.removeEventListener('mouseup', finish);
15
+ });
16
+ window.addEventListener('selectstart', disableSelect);
17
+ if (startEvent.touches) {
18
+ window.addEventListener('touchend', finish);
19
+ } else {
20
+ window.addEventListener("mouseup", finish);
21
+ }
22
+ });
23
+ const createPressAndHoldEvent = (onStart, interval) => createPressEvent((startEvent, info) => {
24
+ const _concat = [].concat(onStart(startEvent, info)),
25
+ _concat2 = _slicedToArray(_concat, 2),
26
+ onInterval = _concat2[0],
27
+ onEnd = _concat2[1];
28
+ let i = 0;
29
+ if (interval) {
30
+ const intervalId = setInterval(() => {
31
+ onInterval(i++);
32
+ }, interval);
33
+ return normalizePress((e, info) => {
34
+ callIfFunction(onEnd, e, info);
35
+ clearInterval(intervalId);
36
+ });
37
+ } else {
38
+ let running = true;
39
+ const run = () => window.requestAnimationFrame(() => {
40
+ if (running) {
41
+ onInterval(i++);
42
+ run();
43
+ }
44
+ });
45
+ run();
46
+ return normalizePress((e, info) => {
47
+ callIfFunction(onEnd, e, info);
48
+ running = false;
49
+ });
50
+ }
51
+ });
52
+ const createPressAndMoveEvent = onStart => createPressEvent((startEvent, info) => {
53
+ const _concat3 = [].concat(onStart(startEvent, info)),
54
+ _concat4 = _slicedToArray(_concat3, 2),
55
+ onMove = _concat4[0],
56
+ onEnd = _concat4[1];
57
+ const finish = normalizePress((e, info) => {
58
+ callIfFunction(onEnd, e, info);
59
+ window.removeEventListener('touchmove', move);
60
+ window.removeEventListener('mousemove', move);
61
+ });
62
+ const move = normalizePress(onMove, finish);
63
+ if (startEvent.touches) {
64
+ window.addEventListener('touchmove', move, {
65
+ passive: false
66
+ });
67
+ } else {
68
+ window.addEventListener("mousemove", move);
69
+ }
70
+ return finish;
71
+ });
72
+
73
+ export { createPressAndHoldEvent, createPressAndMoveEvent, createPressEvent };
74
+ //# sourceMappingURL=createPressEvent.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"createPressEvent.mjs","sources":["../src/createPressEvent.jsx"],"sourcesContent":["import React from 'react'\nimport {callIfFunction, normalizePress} from './utils'\n\n\nconst disableSelect = (e) => {\n e.preventDefault();\n}\n\nexport const createPressEvent = (onStart) => normalizePress((startEvent, info) => {\n const onEnd = onStart(startEvent,info)\n\n const finish = normalizePress((e,info) => {\n callIfFunction(onEnd,e,info)\n window.removeEventListener('selectstart', disableSelect)\n window.removeEventListener('touchend',finish)\n window.removeEventListener('mouseup',finish)\n })\n\n\n window.addEventListener('selectstart', disableSelect);\n if (startEvent.touches) {\n window.addEventListener('touchend', finish)\n } else {\n window.addEventListener(\"mouseup\", finish);\n }\n\n})\n\nexport const createPressAndHoldEvent = (onStart,interval) => createPressEvent((startEvent,info) => {\n\n const [onInterval,onEnd] = [].concat(onStart(startEvent,info))\n\n let i = 0;\n if (interval) {\n const intervalId = setInterval(() => {\n onInterval(i++)\n }, interval)\n\n return normalizePress((e, info) => {\n callIfFunction(onEnd, e, info)\n clearInterval(intervalId)\n })\n } else {\n let running = true\n const run = () => window.requestAnimationFrame(() => {\n if (running) {\n onInterval(i++)\n run()\n }\n })\n run()\n return normalizePress((e,info) => {\n callIfFunction(onEnd, e, info)\n running = false\n })\n }\n})\n\n\nexport const createPressAndMoveEvent = (onStart) => createPressEvent((startEvent, info) => {\n\n const [onMove,onEnd] = [].concat(onStart(startEvent,info))\n\n const finish = normalizePress((e,info) => {\n callIfFunction(onEnd,e,info)\n window.removeEventListener('touchmove',move)\n window.removeEventListener('mousemove',move)\n })\n const move = normalizePress(onMove,finish)\n\n if (startEvent.touches) {\n window.addEventListener('touchmove', move, {passive: false})\n } else {\n window.addEventListener(\"mousemove\", move);\n }\n\n return finish\n})\n\n"],"names":["disableSelect","e","preventDefault","createPressEvent","onStart","normalizePress","startEvent","info","onEnd","finish","callIfFunction","window","removeEventListener","addEventListener","touches","createPressAndHoldEvent","interval","_concat","concat","_concat2","_slicedToArray","onInterval","i","intervalId","setInterval","clearInterval","running","run","requestAnimationFrame","createPressAndMoveEvent","_concat3","_concat4","onMove","move","passive"],"mappings":"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"}
@@ -0,0 +1,64 @@
1
+ let fixed = false;
2
+ const scrollWidth = function () {
3
+ if (!window.document) return 0;
4
+ const html = document.documentElement;
5
+ const oldOverflow = html.style.overflowY;
6
+ html.style.overflowY = 'scroll';
7
+ const width = window.innerWidth - html.clientWidth;
8
+ html.style.overflowY = oldOverflow;
9
+ return width;
10
+ }();
11
+ const fixMediaQueryFn = function () {
12
+ const fontSize = parseFloat(window.getComputedStyle(document.body).getPropertyValue('font-size'));
13
+ if (scrollWidth > 0) {
14
+ [].slice.call(document.styleSheets).filter(styleSheet => isValidExternal(styleSheet) || isInline(styleSheet)).forEach(stylesheet => {
15
+ try {
16
+ [].slice.call(stylesheet.cssRules || stylesheet.media).filter(rule => rule.constructor === window.CSSMediaRule).forEach(rule => {
17
+ rule.media.mediaText = rule.media.mediaText.replace(/m(in|ax)-width:\s*(\d|\.)+(px|em)/gi, function (strA) {
18
+ if (strA.match('px')) {
19
+ return strA.replace(/\d+px/gi, function (strB) {
20
+ return parseInt(strB, 10) + scrollWidth + 'px';
21
+ });
22
+ } else {
23
+ return strA.replace(/\d.+?em/gi, function (strB) {
24
+ return (parseFloat(strB) * fontSize + scrollWidth) / fontSize + 'em';
25
+ });
26
+ }
27
+ });
28
+ });
29
+ } catch (e) {}
30
+ });
31
+ }
32
+ fixed = true;
33
+ function sameOrigin(url) {
34
+ const loc = window.location,
35
+ a = document.createElement('a');
36
+ a.href = url;
37
+ return a.hostname === loc.hostname && a.protocol === loc.protocol;
38
+ }
39
+ function isInline(stylesheet) {
40
+ try {
41
+ return stylesheet.ownerNode.constructor === HTMLStyleElement && stylesheet.ownerNode.getAttribute("data-styled") === null;
42
+ } catch (e) {
43
+ return stylesheet.ownerNode.constructor === HTMLStyleElement;
44
+ }
45
+ }
46
+ function isValidExternal(stylesheet) {
47
+ var _stylesheet$ownerNode;
48
+ return stylesheet.href && (sameOrigin(stylesheet.href) || ((_stylesheet$ownerNode = stylesheet.ownerNode) === null || _stylesheet$ownerNode === void 0 ? void 0 : _stylesheet$ownerNode.crossOrigin) === "anonymous");
49
+ }
50
+ };
51
+ function fixMediaQuery() {
52
+ if (fixed || !document || !document.readyState) return;
53
+ if (process.env.NODE_ENV === 'test') {
54
+ return;
55
+ }
56
+ if (document.readyState !== 'loading') {
57
+ fixMediaQueryFn();
58
+ } else {
59
+ document.addEventListener('DOMContentLoaded', fixMediaQueryFn);
60
+ }
61
+ }
62
+
63
+ export { fixMediaQuery, scrollWidth };
64
+ //# sourceMappingURL=fixMediaQuery.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fixMediaQuery.mjs","sources":["../src/fixMediaQuery.js"],"sourcesContent":["let fixed = false\nexport const scrollWidth = (function() {\n if (!window.document) return 0\n const html = document.documentElement\n const oldOverflow = html.style.overflowY\n html.style.overflowY = 'scroll'\n const width = window.innerWidth - html.clientWidth\n html.style.overflowY = oldOverflow\n return width\n})()\n\nconst fixMediaQueryFn = function() {\n\n const fontSize = parseFloat(window.getComputedStyle(document.body).getPropertyValue('font-size'))\n\n if (scrollWidth > 0) {\n\n [].slice.call(document.styleSheets).filter(styleSheet => isValidExternal(styleSheet) || isInline(styleSheet)).forEach(stylesheet => {\n try {\n [].slice.call(stylesheet.cssRules || stylesheet.media).filter(rule => rule.constructor === window.CSSMediaRule).forEach(rule => {\n rule.media.mediaText = rule.media.mediaText.replace(/m(in|ax)-width:\\s*(\\d|\\.)+(px|em)/gi, function(strA) {\n if (strA.match('px')) {\n return strA.replace(/\\d+px/gi, function(strB) {\n return parseInt(strB, 10) + scrollWidth + 'px'\n })\n }\n else {\n return strA.replace(/\\d.+?em/gi, function(strB) {\n return ((parseFloat(strB) * fontSize) + scrollWidth) / fontSize + 'em'\n })\n }\n })\n })\n } catch (e) {}\n })\n }\n\n fixed = true\n\n function sameOrigin(url) {\n const loc = window.location,\n a = document.createElement('a')\n a.href = url\n return (a.hostname === loc.hostname && a.protocol === loc.protocol)\n }\n\n function isInline(stylesheet) {\n try {\n return stylesheet.ownerNode.constructor === HTMLStyleElement && stylesheet.ownerNode.getAttribute(\"data-styled\") === null\n } catch (e) {\n return stylesheet.ownerNode.constructor === HTMLStyleElement\n }\n }\n\n function isValidExternal(stylesheet) {\n return stylesheet.href && (sameOrigin(stylesheet.href) || stylesheet.ownerNode?.crossOrigin === \"anonymous\")\n }\n\n}\n\n\nexport function fixMediaQuery() {\n if (fixed || !document || !document.readyState)\n return\n if (process.env.NODE_ENV === 'test') { return }\n if (document.readyState !== 'loading') {\n fixMediaQueryFn()\n } else {\n document.addEventListener('DOMContentLoaded', fixMediaQueryFn)\n }\n}"],"names":["fixed","scrollWidth","window","document","html","documentElement","oldOverflow","style","overflowY","width","innerWidth","clientWidth","fixMediaQueryFn","fontSize","parseFloat","getComputedStyle","body","getPropertyValue","slice","call","styleSheets","filter","styleSheet","isValidExternal","isInline","forEach","stylesheet","cssRules","media","rule","constructor","CSSMediaRule","mediaText","replace","strA","match","strB","parseInt","e","sameOrigin","url","loc","location","a","createElement","href","hostname","protocol","ownerNode","HTMLStyleElement","getAttribute","_stylesheet$ownerNode","crossOrigin","fixMediaQuery","readyState","process","env","NODE_ENV","addEventListener"],"mappings":"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"}
@@ -0,0 +1,110 @@
1
+ import _slicedToArray from '@babel/runtime/helpers/slicedToArray';
2
+
3
+ const escapedValidParts = /(^|[^\\])(dd?|DD?|mm?|LL?|hh?|MM?|ss|SSS|yy(?:yy)?)/g;
4
+ const validParts = /(dd?|DD?|mm?|LL?|hh?|MM?|yy(?:yy)|yy|ss|SSS)$/;
5
+ const addZero = v => (v < 10 ? '0' : '') + v;
6
+ const getSet = function (index, ttype) {
7
+ let plus = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 0;
8
+ let format = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : v => v;
9
+ let parse = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : (v, defaultDate) => v === '0' ? '' : v;
10
+ return [(date, _, noUTC) => format((typeof date === 'number' ? new Date(date) : date)['get' + (noUTC ? '' : 'UTC') + ttype]() + plus), (unformatedStr, date, _, failOnFormat, noUTC) => {
11
+ const str = parse(unformatedStr, date, failOnFormat);
12
+ if (str === '' || isNaN(date.getTime())) return date;
13
+ if (str === '\0') return date.setTime(NaN);
14
+ const utcSTR = noUTC ? '' : 'UTC';
15
+ const v = parseInt(str, 10) - plus;
16
+ const prevDay = date['get' + utcSTR + 'Date']();
17
+ if (ttype !== 'Date') {
18
+ date['set' + utcSTR + 'Date'](1);
19
+ }
20
+ date['set' + utcSTR + ttype](v);
21
+ if (date['get' + utcSTR + ttype]() !== v) {
22
+ date['set' + utcSTR + ttype](NaN);
23
+ return date;
24
+ }
25
+ if (ttype !== 'Date') {
26
+ date['set' + utcSTR + 'Date'](prevDay);
27
+ if (date['get' + utcSTR + ttype]() !== v) {
28
+ date['set' + utcSTR + 'Date'](0);
29
+ return date;
30
+ }
31
+ }
32
+ return date;
33
+ }, index];
34
+ };
35
+ const getText = function (type, total) {
36
+ let slice = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 99;
37
+ return [(date, messages, noUTC) => messages(type.toLowerCase(), date['get' + (noUTC ? '' : 'UTC') + type]()).slice(0, slice)];
38
+ };
39
+ const yearParse = (y, date, failOnFormat) => {
40
+ const formattedY = y.length === 2 && y !== '20' ? '20' + y : y.length === 4 ? y : '';
41
+ if (formattedY === '') {
42
+ if (failOnFormat) {
43
+ const found = date.getUTCFullYear().toString().indexOf(y);
44
+ return found === 0 || found === 2 ? date.getUTCFullYear() : '\0';
45
+ } else {
46
+ return date.getUTCFullYear();
47
+ }
48
+ } else {
49
+ return formattedY;
50
+ }
51
+ };
52
+ const val = {
53
+ yyyy: getSet(0, 'FullYear', 0, v => v, yearParse),
54
+ yy: getSet(0, 'FullYear', 0, v => (v + "").slice(2, 4), yearParse),
55
+ M: getSet(1, 'Month', 1),
56
+ MM: getSet(1, 'Month', 1, addZero),
57
+ L: getText('Month', 12, 3),
58
+ LL: getText('Month', 12),
59
+ d: getSet(2, 'Date'),
60
+ dd: getSet(2, 'Date', 0, addZero),
61
+ D: getText('Day', 7, 3),
62
+ DD: getText('Day', 7),
63
+ m: getSet(4, 'Minutes'),
64
+ mm: getSet(4, 'Minutes', 0, addZero),
65
+ h: getSet(5, 'Hours'),
66
+ hh: getSet(5, 'Hours', 0, addZero),
67
+ ss: getSet(6, 'Seconds', 0, addZero),
68
+ SSS: getSet(7, 'Milliseconds', 0, addZero)
69
+ };
70
+ function formatDateToPattern(format) {
71
+ return format.replace(escapedValidParts, (_, _1, _2) => _1 + (_2 === 'yy' ? '##' : _2 === 'yyyy' ? '####' : '0#'));
72
+ }
73
+ function formatDate(date, format, messages, noUTC) {
74
+ if (!date) return '';
75
+ const separators = format.replace(escapedValidParts, '\0').split('\0');
76
+ const parts = format.match(escapedValidParts);
77
+ const formattedDate = parts.reduce((acc, part) => acc.concat(separators.length ? [separators.shift()] : [], part.replace(validParts, ''), val[part.match(validParts)[0]][0](date, messages, noUTC)), []);
78
+ return formattedDate.join('').replace(/\\([dDmLhMy])/g, '$1');
79
+ }
80
+ const now = () => new Date();
81
+ function parseDate(str, possibleDate, format, messages, failOnFormat, noUTC) {
82
+ if (!str) return possibleDate;
83
+ const separators = format.replace(escapedValidParts, '\0').split('\0');
84
+ const parts = format.match(escapedValidParts);
85
+ const mutations = [];
86
+ parts.reduce((rest, part, i) => {
87
+ const separator = (separators.length ? separators.shift() : '') + part.replace(validParts, '');
88
+ const current = rest.slice(separator.length);
89
+ if (current && separator === rest.slice(0, separator.length)) {
90
+ const setType = part.match(validParts)[0];
91
+ const nextSeparator = separators[0];
92
+ const nextStrIndex = current.indexOf(nextSeparator + (parts[i + 1] || '').replace(validParts, ''));
93
+ mutations[val[setType][2]] = [val[setType][1], nextStrIndex ? current.slice(0, nextStrIndex) : current];
94
+ return current.slice(nextStrIndex);
95
+ } else {
96
+ return '';
97
+ }
98
+ }, str);
99
+ const date = possibleDate && possibleDate.getTime() !== -1 ? new Date(possibleDate) : now();
100
+ mutations.forEach(_ref => {
101
+ let _ref2 = _slicedToArray(_ref, 2),
102
+ setter = _ref2[0],
103
+ text = _ref2[1];
104
+ return setter(text, date, messages, failOnFormat, noUTC);
105
+ });
106
+ return date;
107
+ }
108
+
109
+ export { addZero, formatDate, formatDateToPattern, parseDate };
110
+ //# sourceMappingURL=formatDate.mjs.map
@@ -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)\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":";;AACA,MAAMA,iBAAiB,GAAG,sDAAsD,CAAA;AAChF,MAAMC,UAAU,GAAG,+CAA+C,CAAA;AACrDC,MAAAA,OAAO,GAAIC,CAAC,IAAK,CAACA,CAAC,GAAG,EAAE,GAAG,GAAG,GAAG,EAAE,IAAIA,EAAC;AAErD,MAAMC,MAAM,GAAG,UAACC,KAAK,EAAEC,KAAK,EAAA;AAAA,EAAA,IAAEC,IAAI,GAAAC,SAAA,CAAAC,MAAA,GAAA,CAAA,IAAAD,SAAA,CAAA,CAAA,CAAA,KAAAE,SAAA,GAAAF,SAAA,CAAA,CAAA,CAAA,GAAG,CAAC,CAAA;AAAA,EAAA,IAAEG,MAAM,GAAAH,SAAA,CAAAC,MAAA,GAAAD,CAAAA,IAAAA,SAAA,CAAAE,CAAAA,CAAAA,KAAAA,SAAA,GAAAF,SAAA,CAAIL,CAAAA,CAAAA,GAAAA,CAAC,IAAKA,CAAC,CAAA;EAAA,IAAES,KAAK,GAAAJ,SAAA,CAAAC,MAAA,GAAAD,CAAAA,IAAAA,SAAA,CAAAE,CAAAA,CAAAA,KAAAA,SAAA,GAAAF,SAAA,MAAG,CAACL,CAAC,EAAEU,WAAW,KAAMV,CAAC,KAAK,GAAG,GAAG,EAAE,GAAGA,CAAE,CAAA;EAAA,OAAM,CAC/G,CAACW,IAAI,EAACC,CAAC,EAACC,KAAK,KAAKL,MAAM,CAAC,CAAC,OAAOG,IAAI,KAAK,QAAQ,GAAG,IAAIG,IAAI,CAACH,IAAI,CAAC,GAAGA,IAAI,EAAE,KAAK,IAAEE,KAAK,GAAC,EAAE,GAAC,KAAK,CAAC,GAAGV,KAAK,CAAC,EAAE,GAAGC,IAAI,CAAC,EACrH,CAACW,aAAa,EAAEJ,IAAI,EAAEC,CAAC,EAAEI,YAAY,EAAEH,KAAK,KAAK;IAC/C,MAAMI,GAAG,GAAGR,KAAK,CAACM,aAAa,EAAEJ,IAAI,EAAEK,YAAY,CAAC,CAAA;AACpD,IAAA,IAAIC,GAAG,KAAK,EAAE,IAAIC,KAAK,CAACP,IAAI,CAACQ,OAAO,EAAE,CAAC,EACrC,OAAOR,IAAI,CAAA;IACb,IAAIM,GAAG,KAAI,IAAI,EACb,OAAON,IAAI,CAACS,OAAO,CAACC,GAAG,CAAC,CAAA;AAC1B,IAAA,MAAMC,MAAM,GAAGT,KAAK,GAAG,EAAE,GAAG,KAAK,CAAA;IACjC,MAAMb,CAAC,GAAGuB,QAAQ,CAACN,GAAG,EAAE,EAAE,CAAC,GAAGb,IAAI,CAAA;IAClC,MAAMoB,OAAO,GAAGb,IAAI,CAAC,KAAK,GAACW,MAAM,GAAC,MAAM,CAAC,EAAE,CAAA;IAC3C,IAAInB,KAAK,KAAK,MAAM,EAAE;MACpBQ,IAAI,CAAC,KAAK,GAACW,MAAM,GAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAA;AAC9B,KAAA;IACAX,IAAI,CAAC,KAAK,GAAEW,MAAM,GAAGnB,KAAK,CAAC,CAACH,CAAC,CAAC,CAAA;AAC9B,IAAA,IAAIW,IAAI,CAAC,KAAK,GAAGW,MAAM,GAAGnB,KAAK,CAAC,EAAE,KAAKH,CAAC,EAAE;MACxCW,IAAI,CAAC,KAAK,GAAGW,MAAM,GAAGnB,KAAK,CAAC,CAACkB,GAAG,CAAC,CAAA;AACjC,MAAA,OAAOV,IAAI,CAAA;AACb,KAAA;IACA,IAAIR,KAAK,KAAK,MAAM,EAAE;MACpBQ,IAAI,CAAC,KAAK,GAACW,MAAM,GAAC,MAAM,CAAC,CAACE,OAAO,CAAC,CAAA;AAClC,MAAA,IAAIb,IAAI,CAAC,KAAK,GAAGW,MAAM,GAAGnB,KAAK,CAAC,EAAE,KAAKH,CAAC,EAAE;QACxCW,IAAI,CAAC,KAAK,GAACW,MAAM,GAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAA;AAC5B,QAAA,OAAOX,IAAI,CAAA;AACb,OAAA;AACF,KAAA;AACA,IAAA,OAAOA,IAAI,CAAA;GACZ,EACDT,KAAK,CACN,CAAA;AAAA,CAAC,CAAA;AAEF,MAAMuB,OAAO,GAAG,UAACC,IAAI,EAAEC,KAAK,EAAA;AAAA,EAAA,IAAEC,KAAK,GAAAvB,SAAA,CAAAC,MAAA,GAAA,CAAA,IAAAD,SAAA,CAAA,CAAA,CAAA,KAAAE,SAAA,GAAAF,SAAA,CAAA,CAAA,CAAA,GAAG,EAAE,CAAA;AAAA,EAAA,OAAK,CAC3C,CAACM,IAAI,EAAEkB,QAAQ,EAAChB,KAAK,KAAKgB,QAAQ,CAACH,IAAI,CAACI,WAAW,EAAE,EAACnB,IAAI,CAAC,KAAK,IAAEE,KAAK,GAAE,EAAE,GAAE,KAAK,CAAC,GAAGa,IAAI,CAAC,EAAE,CAAC,CAACE,KAAK,CAAC,CAAC,EAAEA,KAAK,CAAC,CAC/G,CAAA;AAAA,CAAA,CAAA;AAED,MAAMG,SAAS,GAAGA,CAACC,CAAC,EAAErB,IAAI,EAAEK,YAAY,KAAM;EAC5C,MAAMiB,UAAU,GAAGD,CAAC,CAAC1B,MAAM,KAAK,CAAC,IAAI0B,CAAC,KAAK,IAAI,GAAG,IAAI,GAAGA,CAAC,GAAGA,CAAC,CAAC1B,MAAM,KAAK,CAAC,GAAG0B,CAAC,GAAG,EAAE,CAAA;EACpF,IAAIC,UAAU,KAAK,EAAE,EAAE;AACrB,IAAA,IAAIjB,YAAY,EAAE;AAChB,MAAA,MAAMkB,KAAK,GAAGvB,IAAI,CAACwB,cAAc,EAAE,CAACC,QAAQ,EAAE,CAACC,OAAO,CAACL,CAAC,CAAC,CAAA;AACzD,MAAA,OAAOE,KAAK,KAAK,CAAC,IAAIA,KAAK,KAAK,CAAC,GAAGvB,IAAI,CAACwB,cAAc,EAAE,GAAG,IAAI,CAAA;AAClE,KAAC,MAAM;AACL,MAAA,OAAOxB,IAAI,CAACwB,cAAc,EAAE,CAAA;AAC9B,KAAA;AACF,GAAC,MAAM;AACL,IAAA,OAAOF,UAAU,CAAA;AACnB,GAAA;AACF,CAAC,CAAA;AAED,MAAMK,GAAG,GAAG;AACVC,EAAAA,IAAI,EAAEtC,MAAM,CAAC,CAAC,EAAC,UAAU,EAAE,CAAC,EAAGD,CAAC,IAAKA,CAAC,EAAE+B,SAAS,CAAC;EAClDS,EAAE,EAAEvC,MAAM,CAAC,CAAC,EAAC,UAAU,EAAE,CAAC,EAAGD,CAAC,IAAK,CAACA,CAAC,GAAC,EAAE,EAAE4B,KAAK,CAAC,CAAC,EAAC,CAAC,CAAC,EAAEG,SAAS,CAAC;EAChEU,CAAC,EAAExC,MAAM,CAAC,CAAC,EAAC,OAAO,EAAE,CAAC,CAAC;EACvByC,EAAE,EAAEzC,MAAM,CAAC,CAAC,EAAC,OAAO,EAAE,CAAC,EAAEF,OAAO,CAAC;EACjC4C,CAAC,EAAElB,OAAO,CAAC,OAAO,EAAC,EAAE,EAAC,CAAC,CAAC;AACxBmB,EAAAA,EAAE,EAAEnB,OAAO,CAAC,OAAO,EAAC,EAAE,CAAC;AACvBoB,EAAAA,CAAC,EAAE5C,MAAM,CAAC,CAAC,EAAC,MAAM,CAAC;EACnB6C,EAAE,EAAE7C,MAAM,CAAC,CAAC,EAAC,MAAM,EAAE,CAAC,EAAEF,OAAO,CAAC;EAChCgD,CAAC,EAAEtB,OAAO,CAAC,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC;AACvBuB,EAAAA,EAAE,EAAEvB,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC;AACrBwB,EAAAA,CAAC,EAAEhD,MAAM,CAAC,CAAC,EAAC,SAAS,CAAC;EACtBiD,EAAE,EAAEjD,MAAM,CAAC,CAAC,EAAC,SAAS,EAAE,CAAC,EAAEF,OAAO,CAAC;AACnCoD,EAAAA,CAAC,EAAElD,MAAM,CAAC,CAAC,EAAC,OAAO,CAAC;EACpBmD,EAAE,EAAEnD,MAAM,CAAC,CAAC,EAAC,OAAO,EAAE,CAAC,EAAEF,OAAO,CAAC;EACjCsD,EAAE,EAAEpD,MAAM,CAAC,CAAC,EAAC,SAAS,EAAE,CAAC,EAAEF,OAAO,CAAC;EACnCuD,GAAG,EAAErD,MAAM,CAAC,CAAC,EAAC,cAAc,EAAE,CAAC,EAAEF,OAAO,CAAA;AAE1C,CAAC,CAAA;AAEM,SAASwD,mBAAmBA,CAAC/C,MAAM,EAAE;AAC1C,EAAA,OAAOA,MAAM,CAACgD,OAAO,CAAC3D,iBAAiB,EAAE,CAACe,CAAC,EAAE6C,EAAE,EAAEC,EAAE,KAAKD,EAAE,IAAIC,EAAE,KAAK,IAAI,GAAG,IAAI,GAAGA,EAAE,KAAK,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC,CAAC,CAAA;AACpH,CAAA;AAEO,SAASC,UAAUA,CAAChD,IAAI,EAAEH,MAAM,EAAEqB,QAAQ,EAAChB,KAAK,EAAE;AACvD,EAAA,IAAI,CAACF,IAAI,EACP,OAAO,EAAE,CAAA;AACX,EAAA,MAAMiD,UAAU,GAAGpD,MAAM,CAACgD,OAAO,CAAC3D,iBAAiB,EAAE,IAAI,CAAC,CAACgE,KAAK,CAAC,IAAI,CAAC,CAAA;AACtE,EAAA,MAAMC,KAAK,GAAGtD,MAAM,CAACuD,KAAK,CAAClE,iBAAiB,CAAC,CAAA;AAC7C,EAAA,MAAMmE,aAAa,GAAGF,KAAK,CAACG,MAAM,CAAC,CAACC,GAAG,EAAEC,IAAI,KACzCD,GAAG,CAACE,MAAM,CACRR,UAAU,CAACtD,MAAM,GAAG,CAACsD,UAAU,CAACS,KAAK,EAAE,CAAC,GAAG,EAAE,EAC7CF,IAAI,CAACX,OAAO,CAAC1D,UAAU,EAAE,EAAE,CAAC,EAC5BwC,GAAG,CAAC6B,IAAI,CAACJ,KAAK,CAACjE,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAACa,IAAI,EAAEkB,QAAQ,EAAChB,KAAK,CACxD,CAAC,EACH,EACF,CAAC,CAAA;AACD,EAAA,OAAOmD,aAAa,CAACM,IAAI,CAAC,EAAE,CAAC,CAACd,OAAO,CAAC,gBAAgB,EAAE,IAAI,CAAC,CAAA;AAC/D,CAAA;AAEA,MAAMe,GAAG,GAAGA,MAAM,IAAIzD,IAAI,EAAE,CAAA;AAErB,SAAS0D,SAASA,CAACvD,GAAG,EAAEwD,YAAY,EAAEjE,MAAM,EAAEqB,QAAQ,EAAEb,YAAY,EAAEH,KAAK,EAAE;AAClF,EAAA,IAAI,CAACI,GAAG,EACN,OAAOwD,YAAY,CAAA;AACrB,EAAA,MAAMb,UAAU,GAAGpD,MAAM,CAACgD,OAAO,CAAC3D,iBAAiB,EAAE,IAAI,CAAC,CAACgE,KAAK,CAAC,IAAI,CAAC,CAAA;AACtE,EAAA,MAAMC,KAAK,GAAGtD,MAAM,CAACuD,KAAK,CAAClE,iBAAiB,CAAC,CAAA;EAC7C,MAAM6E,SAAS,GAAG,EAAE,CAAA;EACpBZ,KAAK,CAACG,MAAM,CAAC,CAACU,IAAI,EAAER,IAAI,EAAES,CAAC,KAAK;IAC5B,MAAMC,SAAS,GAAG,CAACjB,UAAU,CAACtD,MAAM,GAAGsD,UAAU,CAACS,KAAK,EAAE,GAAG,EAAE,IAAIF,IAAI,CAACX,OAAO,CAAC1D,UAAU,EAAE,EAAE,CAAC,CAAA;IAC9F,MAAMgF,OAAO,GAAGH,IAAI,CAAC/C,KAAK,CAACiD,SAAS,CAACvE,MAAM,CAAC,CAAA;AAC5C,IAAA,IAAIwE,OAAO,IAAID,SAAS,KAAKF,IAAI,CAAC/C,KAAK,CAAC,CAAC,EAAEiD,SAAS,CAACvE,MAAM,CAAC,EAAE;MAC5D,MAAMyE,OAAO,GAAGZ,IAAI,CAACJ,KAAK,CAACjE,UAAU,CAAC,CAAC,CAAC,CAAC,CAAA;AACzC,MAAA,MAAMkF,aAAa,GAAGpB,UAAU,CAAC,CAAC,CAAC,CAAA;MACnC,MAAMqB,YAAY,GAAGH,OAAO,CAACzC,OAAO,CAAC2C,aAAa,GAAG,CAAClB,KAAK,CAACc,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAEpB,OAAO,CAAC1D,UAAU,EAAE,EAAE,CAAC,CAAC,CAAA;AAClG4E,MAAAA,SAAS,CAACpC,GAAG,CAACyC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAACzC,GAAG,CAACyC,OAAO,CAAC,CAAC,CAAC,CAAC,EAACE,YAAY,GAAGH,OAAO,CAAClD,KAAK,CAAC,CAAC,EAACqD,YAAY,CAAC,GAAGH,OAAO,CAAC,CAAA;AACrG,MAAA,OAAOA,OAAO,CAAClD,KAAK,CAACqD,YAAY,CAAC,CAAA;AACpC,KAAC,MAAM;AACL,MAAA,OAAO,EAAE,CAAA;AACX,KAAA;GACD,EACDhE,GACF,CAAC,CAAA;EACD,MAAMN,IAAI,GAAG8D,YAAY,IAAIA,YAAY,CAACtD,OAAO,EAAE,KAAG,CAAC,CAAC,GAAG,IAAIL,IAAI,CAAC2D,YAAY,CAAC,GAAGF,GAAG,EAAE,CAAA;EACzFG,SAAS,CAACQ,OAAO,CAACC,IAAA,IAAA;AAAA,IAAA,IAAAC,KAAA,GAAAC,cAAA,CAAAF,IAAA,EAAA,CAAA,CAAA;AAAEG,MAAAA,MAAM,GAAAF,KAAA,CAAA,CAAA,CAAA;AAACG,MAAAA,IAAI,GAAAH,KAAA,CAAA,CAAA,CAAA,CAAA;IAAA,OAAKE,MAAM,CAACC,IAAI,EAAC5E,IAAI,EAACkB,QAAQ,EAACb,YAAY,EAACH,KAAK,CAAC,CAAA;GAAC,CAAA,CAAA;AAClF,EAAA,OAAOF,IAAI,CAAA;AACb;;;;"}
@@ -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{".concat(digits, "})"));
26
+ const singleRegex = new RegExp("/^([^,]*,\\d{0,".concat(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