@koine/utils 2.0.0-beta.73 → 2.0.0-beta.74
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/Defer.d.ts +1 -0
- package/Defer.js +1 -0
- package/Emitter.d.ts +1 -0
- package/Emitter.js +1 -0
- package/accentSets.d.ts +1 -0
- package/accentSets.js +1 -0
- package/addOrReplaceAtIdx.d.ts +1 -0
- package/addOrReplaceAtIdx.js +1 -0
- package/areEqual.d.ts +1 -1
- package/areEqual.js +1 -0
- package/arrayFilterFalsy.d.ts +1 -0
- package/arrayFilterFalsy.js +1 -0
- package/arrayFindLastIndex.d.ts +1 -0
- package/arrayFindLastIndex.js +1 -0
- package/arrayOfAll.d.ts +1 -0
- package/arrayOfAll.js +1 -0
- package/arraySum.d.ts +1 -0
- package/arraySum.js +1 -0
- package/arrayToLookup.d.ts +1 -0
- package/arrayToLookup.js +1 -0
- package/arrayUniqueByProperties.d.ts +1 -0
- package/arrayUniqueByProperties.js +1 -0
- package/buildUrlQueryString.d.ts +1 -0
- package/buildUrlQueryString.js +1 -0
- package/capitalize.d.ts +1 -0
- package/capitalize.js +1 -0
- package/changeCaseCamel.d.ts +1 -0
- package/changeCaseCamel.js +1 -0
- package/changeCaseCapital.d.ts +1 -0
- package/changeCaseCapital.js +1 -0
- package/changeCaseConstant.d.ts +1 -0
- package/changeCaseConstant.js +1 -0
- package/changeCaseDot.d.ts +1 -0
- package/changeCaseDot.js +1 -0
- package/changeCaseKebab.d.ts +1 -0
- package/changeCaseKebab.js +1 -0
- package/changeCaseNone.d.ts +1 -0
- package/changeCaseNone.js +1 -0
- package/changeCasePascal.d.ts +1 -0
- package/changeCasePascal.js +1 -0
- package/changeCasePascalSnake.d.ts +1 -0
- package/changeCasePascalSnake.js +1 -0
- package/changeCasePath.d.ts +1 -0
- package/changeCasePath.js +1 -0
- package/changeCaseSentence.d.ts +1 -0
- package/changeCaseSentence.js +1 -0
- package/changeCaseSnake.d.ts +1 -0
- package/changeCaseSnake.js +1 -0
- package/changeCaseTrain.d.ts +1 -0
- package/changeCaseTrain.js +1 -0
- package/chunkByChunks.d.ts +1 -0
- package/chunkByChunks.js +1 -0
- package/chunkBySize.d.ts +1 -0
- package/chunkBySize.js +1 -0
- package/clamp.d.ts +1 -0
- package/clamp.js +1 -0
- package/clsx.d.ts +1 -1
- package/clsx.js +1 -0
- package/convertRange.d.ts +1 -0
- package/convertRange.js +1 -0
- package/cookie.d.ts +0 -3
- package/createPalette.d.ts +1 -1
- package/createPalette.js +1 -0
- package/debounce.d.ts +1 -0
- package/debounce.js +1 -0
- package/debouncePromise.d.ts +1 -0
- package/debouncePromise.js +1 -0
- package/debounceRaf.d.ts +1 -0
- package/debounceRaf.js +1 -0
- package/decode.d.ts +1 -0
- package/decode.js +1 -0
- package/encode.d.ts +1 -0
- package/encode.js +1 -0
- package/ensureInt.d.ts +1 -0
- package/ensureInt.js +1 -0
- package/errorToString.d.ts +1 -0
- package/errorToString.js +1 -0
- package/escapeRegExp.d.ts +1 -0
- package/escapeRegExp.js +1 -0
- package/findDuplicatedIndexes.d.ts +1 -0
- package/findDuplicatedIndexes.js +1 -0
- package/forin.d.ts +1 -0
- package/forin.js +1 -0
- package/gbToBytes.d.ts +1 -0
- package/gbToBytes.js +1 -0
- package/getEmptyArray.d.ts +1 -0
- package/getEmptyArray.js +1 -0
- package/getKeys.d.ts +1 -0
- package/getKeys.js +1 -0
- package/getMediaQueryWidthResolvers.d.ts +1 -0
- package/getMediaQueryWidthResolvers.js +1 -0
- package/getMediaQueryWidthTailwindScreens.d.ts +1 -0
- package/getMediaQueryWidthTailwindScreens.js +1 -0
- package/getNonce.d.ts +1 -0
- package/getNonce.js +1 -0
- package/getParamAmong.d.ts +1 -0
- package/getParamAmong.js +1 -0
- package/getParamAsInt.d.ts +1 -0
- package/getParamAsInt.js +1 -0
- package/getParamAsString.d.ts +1 -0
- package/getParamAsString.js +1 -0
- package/getType.d.ts +1 -0
- package/getType.js +1 -0
- package/getUrlHashParams.d.ts +1 -0
- package/getUrlHashParams.js +1 -0
- package/getUrlHashPathname.d.ts +1 -0
- package/getUrlHashPathname.js +1 -0
- package/getUrlPathnameParts.d.ts +1 -0
- package/getUrlPathnameParts.js +1 -0
- package/getUrlQueryParams.d.ts +1 -0
- package/getUrlQueryParams.js +1 -0
- package/imgEmptyPixel.d.ts +1 -0
- package/imgEmptyPixel.js +1 -0
- package/index.cjs.js +69 -69
- package/index.d.ts +1 -1
- package/index.esm.js +69 -69
- package/index.js +1 -1
- package/invariant.d.ts +1 -0
- package/invariant.js +1 -0
- package/isAbsoluteUrl.d.ts +1 -0
- package/isAbsoluteUrl.js +1 -0
- package/isAnyObject.d.ts +1 -0
- package/isAnyObject.js +1 -0
- package/isArray.d.ts +1 -0
- package/isArray.js +1 -0
- package/isBlob.d.ts +1 -0
- package/isBlob.js +1 -0
- package/isBoolean.d.ts +1 -0
- package/isBoolean.js +1 -0
- package/isBrowser.d.ts +1 -0
- package/isBrowser.js +1 -0
- package/isBrowserNow.d.ts +1 -0
- package/isBrowserNow.js +1 -0
- package/isDate.d.ts +1 -0
- package/isDate.js +1 -0
- package/isEmptyArray.d.ts +1 -0
- package/isEmptyArray.js +1 -0
- package/isEmptyObject.d.ts +1 -0
- package/isEmptyObject.js +1 -0
- package/isEmptyString.d.ts +1 -0
- package/isEmptyString.js +1 -0
- package/isError.d.ts +1 -0
- package/isError.js +1 -0
- package/isExternalUrl.d.ts +1 -0
- package/isExternalUrl.js +1 -0
- package/isFile.d.ts +1 -0
- package/isFile.js +1 -0
- package/isFloat.d.ts +1 -0
- package/isFloat.js +1 -0
- package/isFormData.d.ts +1 -0
- package/isFormData.js +1 -0
- package/isFullArray.d.ts +1 -0
- package/isFullArray.js +1 -0
- package/isFullObject.d.ts +1 -0
- package/isFullObject.js +1 -0
- package/isFullString.d.ts +1 -0
- package/isFullString.js +1 -0
- package/isFunction.d.ts +1 -0
- package/isFunction.js +1 -0
- package/isInt.d.ts +1 -0
- package/isInt.js +1 -0
- package/isMap.d.ts +1 -0
- package/isMap.js +1 -0
- package/isNaNValue.d.ts +1 -0
- package/isNaNValue.js +1 -0
- package/isNegativeNumber.d.ts +1 -0
- package/isNegativeNumber.js +1 -0
- package/isNull.d.ts +1 -0
- package/isNull.js +1 -0
- package/isNullOrUndefined.d.ts +1 -0
- package/isNullOrUndefined.js +1 -0
- package/isNumber.d.ts +1 -0
- package/isNumber.js +1 -0
- package/isNumericLiteral.d.ts +1 -0
- package/isNumericLiteral.js +1 -0
- package/isObject.d.ts +1 -0
- package/isObject.js +1 -0
- package/isObjectLike.d.ts +1 -0
- package/isObjectLike.js +1 -0
- package/isObjectStringKeyed.d.ts +1 -0
- package/isObjectStringKeyed.js +1 -0
- package/isOneOf.d.ts +1 -0
- package/isOneOf.js +1 -0
- package/isPlainObject.d.ts +1 -0
- package/isPlainObject.js +1 -0
- package/isPositiveNumber.d.ts +1 -0
- package/isPositiveNumber.js +1 -0
- package/isPrimitive.d.ts +1 -0
- package/isPrimitive.js +1 -0
- package/isPromise.d.ts +1 -0
- package/isPromise.js +1 -0
- package/isRegExp.d.ts +1 -0
- package/isRegExp.js +1 -0
- package/isServer.d.ts +1 -0
- package/isServer.js +1 -0
- package/isServerNow.d.ts +1 -0
- package/isServerNow.js +1 -0
- package/isSet.d.ts +1 -0
- package/isSet.js +1 -0
- package/isString.d.ts +1 -0
- package/isString.js +1 -0
- package/isSymbol.d.ts +1 -0
- package/isSymbol.js +1 -0
- package/isType.d.ts +1 -0
- package/isType.js +1 -0
- package/isUndefined.d.ts +1 -0
- package/isUndefined.js +1 -0
- package/isWeakMap.d.ts +1 -0
- package/isWeakMap.js +1 -0
- package/isWeakSet.d.ts +1 -0
- package/isWeakSet.js +1 -0
- package/kbToBytes.d.ts +1 -0
- package/kbToBytes.js +1 -0
- package/lowercase.d.ts +1 -0
- package/lowercase.js +1 -0
- package/mapListBy.d.ts +1 -0
- package/mapListBy.js +1 -0
- package/matchSorter.d.ts +1 -0
- package/matchSorter.js +1 -0
- package/mbToBytes.d.ts +1 -0
- package/mbToBytes.js +1 -0
- package/mergeObjects.d.ts +1 -0
- package/mergeObjects.js +1 -0
- package/mergeUrlQueryParams.d.ts +1 -0
- package/mergeUrlQueryParams.js +1 -0
- package/moveSortableArrayItemByKey.d.ts +1 -0
- package/moveSortableArrayItemByKey.js +1 -0
- package/noop.d.ts +1 -0
- package/noop.js +1 -0
- package/normaliseUrl.d.ts +1 -0
- package/normaliseUrl.js +3 -2
- package/normaliseUrlPathname.d.ts +1 -0
- package/normaliseUrlPathname.js +3 -2
- package/objectFlat.d.ts +1 -0
- package/objectFlat.js +1 -0
- package/objectFlip.d.ts +1 -0
- package/objectFlip.js +1 -0
- package/objectMergeWithDefaults.d.ts +1 -0
- package/objectMergeWithDefaults.js +1 -0
- package/objectOmit.d.ts +1 -0
- package/objectOmit.js +1 -0
- package/objectPick.d.ts +1 -0
- package/objectPick.js +1 -0
- package/objectSort.d.ts +1 -0
- package/objectSort.js +1 -0
- package/objectSortByKeysMatching.d.ts +1 -0
- package/objectSortByKeysMatching.js +1 -0
- package/objectToArray.d.ts +1 -0
- package/objectToArray.js +1 -0
- package/package.json +1 -1
- package/parseCookie.d.ts +1 -0
- package/parseCookie.js +1 -0
- package/parseURL.d.ts +1 -0
- package/parseURL.js +1 -0
- package/quaranteneProps.d.ts +1 -1
- package/quaranteneProps.js +1 -0
- package/randomInt.d.ts +1 -0
- package/randomInt.js +1 -0
- package/randomKey.d.ts +1 -0
- package/randomKey.js +1 -0
- package/readCookie.d.ts +1 -0
- package/readCookie.js +1 -0
- package/removeAccents.d.ts +1 -0
- package/removeAccents.js +1 -0
- package/removeCookie.d.ts +1 -0
- package/removeCookie.js +1 -0
- package/removeDuplicates.d.ts +2 -0
- package/removeDuplicates.js +2 -1
- package/removeDuplicatesByKey.d.ts +1 -0
- package/removeDuplicatesByKey.js +1 -0
- package/removeDuplicatesComparing.d.ts +1 -0
- package/removeDuplicatesComparing.js +1 -0
- package/removeIndexesFromArray.d.ts +1 -0
- package/removeIndexesFromArray.js +1 -0
- package/removeTrailingSlash.d.ts +2 -1
- package/removeTrailingSlash.js +2 -1
- package/removeUrlQueryParams.d.ts +1 -0
- package/removeUrlQueryParams.js +1 -0
- package/render.d.ts +1 -1
- package/render.js +1 -0
- package/round.d.ts +1 -0
- package/round.js +1 -0
- package/roundTo.d.ts +1 -0
- package/roundTo.js +1 -0
- package/serializeCookie.d.ts +1 -0
- package/serializeCookie.js +1 -0
- package/setCookie.d.ts +1 -0
- package/setCookie.js +1 -0
- package/shuffle.d.ts +1 -0
- package/shuffle.js +1 -0
- package/slugify.d.ts +1 -0
- package/slugify.js +1 -0
- package/split.d.ts +1 -0
- package/split.js +1 -0
- package/splitReverse.d.ts +1 -0
- package/splitReverse.js +1 -0
- package/swapMap.d.ts +1 -0
- package/swapMap.js +1 -0
- package/throttle.d.ts +1 -0
- package/throttle.js +1 -0
- package/titleCase.d.ts +1 -0
- package/titleCase.js +1 -0
- package/toNumber.d.ts +1 -0
- package/toNumber.js +1 -0
- package/toRgba.d.ts +1 -0
- package/toRgba.js +1 -0
- package/transformToUrlPathname.d.ts +1 -0
- package/transformToUrlPathname.js +1 -0
- package/truncate.d.ts +1 -0
- package/truncate.js +1 -0
- package/tryUntil.d.ts +1 -0
- package/tryUntil.js +1 -0
- package/uid.d.ts +1 -0
- package/uid.js +1 -0
- package/updateLinkParams.d.ts +1 -0
- package/updateLinkParams.js +1 -0
- package/updateUrlQueryParams.d.ts +1 -0
- package/updateUrlQueryParams.js +1 -0
- package/uppercase.d.ts +1 -0
- package/uppercase.js +1 -0
- package/uuid.d.ts +1 -0
- package/uuid.js +1 -0
- package/uuidNumeric.d.ts +1 -0
- package/uuidNumeric.js +1 -0
- package/wait.d.ts +1 -0
- package/wait.js +1 -0
package/index.esm.js
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
let accentsSets=[["a","ÀÁÂÃÅÆĀĂĄẠẢẤẦẨẪẬẮẰẲẴẶ"],["ae","Ä"],["c","ÇĆĈČ"],["d","ÐĎĐÞ"],["e","ÈÉÊËĒĔĖĘĚẸẺẼẾỀỂỄỆ"],["g","ĜĞĢǴ"],["h","ĤḦ"],["i","ÌÍÎÏĨĪĮİỈỊ"],["j","Ĵ"],["ij","IJ"],["k","Ķ"],["l","ĹĻĽŁ"],["m","Ḿ"],["n","ÑŃŅŇ"],["o","ÒÓÔÕØŌŎŐỌỎỐỒỔỖỘỚỜỞỠỢǪǬƠ"],["oe","ŒÖ"],["p","ṕ"],["r","ŔŖŘ"],["s","ŚŜŞŠ"],["ss","ß"],["t","ŢŤ"],["u","ÙÚÛŨŪŬŮŰŲỤỦỨỪỬỮỰƯ"],["ue","Ü"],["w","ẂŴẀẄ"],["x","ẍ"],["y","ÝŶŸỲỴỶỸ"],["z","ŹŻŽ"]];
|
|
2
2
|
|
|
3
|
-
let addOrReplaceAtIdx=(e,t
|
|
3
|
+
let addOrReplaceAtIdx=(e,d,t)=>0===e.length?[d]:void 0===t||e.length-1<t?[...e,d]:e.map((e,a)=>a===t?d:e);
|
|
4
4
|
|
|
5
|
-
let getType=
|
|
5
|
+
let getType=e=>Object.prototype.toString.call(e).slice(8,-1);
|
|
6
6
|
|
|
7
7
|
let isArray=e=>"Array"===getType(e);
|
|
8
8
|
|
|
@@ -10,7 +10,7 @@ let isPlainObject=e=>"Object"===getType(e)&&e.constructor===Object&&Object.getPr
|
|
|
10
10
|
|
|
11
11
|
let isObject=e=>isPlainObject(e);
|
|
12
12
|
|
|
13
|
-
let t$
|
|
13
|
+
let t$3=(r,e)=>{if(!e||r.length!==e.length)return !1;for(let t=0;t<r.length;t++)if(!areEqual(r[t],e[t]))return !1;return !0},u$1=(r,e)=>{if(!e)return !1;for(let t of Object.keys(r))if(!areEqual(r[t],e[t]))return !1;return !0};let areEqual=(l,f)=>{if(!l&&!f)return !0;if(!f&&l!==f)return !1;let n=isObject(l)&&isObject(f);if(n&&!u$1(l,f))return !1;let i=isArray(l)&&isArray(f);return !!(!i||t$3(l,f))&&(!!n||!!i||l===f)};
|
|
14
14
|
|
|
15
15
|
let arrayFilterFalsy=r=>r?r.filter(r=>!!r):[];
|
|
16
16
|
|
|
@@ -18,49 +18,49 @@ let arrayFindLastIndex=(r,e)=>{let t=r.length;for(;t--;)if(e(r[t],t,r))return t;
|
|
|
18
18
|
|
|
19
19
|
let arrayOfAll=()=>l=>l;
|
|
20
20
|
|
|
21
|
-
let arraySum=
|
|
21
|
+
let arraySum=r=>r.reduce((r,e)=>r+e,0);
|
|
22
22
|
|
|
23
|
-
let arrayToLookup=(
|
|
23
|
+
let arrayToLookup=(o=[])=>o.reduce((o,r)=>(o[r]=1,o),{});
|
|
24
24
|
|
|
25
|
-
let arrayUniqueByProperties=(e,r)=>e.filter((e,i
|
|
25
|
+
let arrayUniqueByProperties=(e,r)=>e.filter((e,t,i)=>i.findIndex(t=>r.every(r=>t[r]===e[r]))===t);
|
|
26
26
|
|
|
27
27
|
let isNull=e=>"Null"===getType(e);
|
|
28
28
|
|
|
29
29
|
let isUndefined=d=>"Undefined"===getType(d);
|
|
30
30
|
|
|
31
|
-
let buildUrlQueryString=
|
|
31
|
+
let buildUrlQueryString=o=>{let l="";if(!o)return l;for(let i in o){let n=o[i];if(isArray(n))for(let e=0;e<n.length;e++)l+=`${i}=${encodeURIComponent(n[e]+"")}&`;else isNull(n)||isUndefined(n)||(l+=`${i}=${encodeURIComponent(n+"")}&`);}return l?`?${l.replace(/&+$/,"")}`:""};
|
|
32
32
|
|
|
33
33
|
let capitalize=e=>(e||"").charAt(0).toUpperCase()+(e||"").slice(1);
|
|
34
34
|
|
|
35
|
-
let e$3=/([\p{Ll}\d])(\p{Lu})/gu,t$
|
|
35
|
+
let e$3=/([\p{Ll}\d])(\p{Lu})/gu,t$2=/(\p{Lu})([\p{Lu}][\p{Ll}])/gu,r$1=/(\d)\p{Ll}|(\p{L})\d/u,l$1=/[^\p{L}\d]+/giu,p="$1\0$2";let split$1=r=>{let a=r.trim();a=(a=a.replace(e$3,p).replace(t$2,p)).replace(l$1,"\0");let s=0,i=a.length;for(;"\0"===a.charAt(s);)s++;if(s===i)return [];for(;"\0"===a.charAt(i-1);)i--;return a.slice(s,i).split(/\0/g)};let splitSeparateNumbers=e=>{let t=split$1(e);for(let e=0;e<t.length;e++){let l=t[e],p=r$1.exec(l);if(p){let r=p.index+(p[1]??p[2]).length;t.splice(e,1,l.slice(0,r),l.slice(r));}}return t};let lowerFactory=e=>!1===e?e=>e.toLowerCase():t=>t.toLocaleLowerCase(e);let upperFactory=e=>!1===e?e=>e.toUpperCase():t=>t.toLocaleUpperCase(e);let capitalCaseTransformFactory=(e,t)=>r=>`${t(r[0])}${e(r.slice(1))}`;let pascalCaseTransformFactory=(e,t)=>(r,l)=>{let p=r[0];return (l>0&&p>="0"&&p<="9"?"_"+p:t(p))+e(r.slice(1))};let splitPrefixSuffix=(e,t={})=>{let r=t.split??(t.separateNumbers?splitSeparateNumbers:split$1),l=t.prefixCharacters??"",p=t.suffixCharacters??"",a=0,s=e.length;for(;a<e.length;){let t=e.charAt(a);if(!l.includes(t))break;a++;}for(;s>a;){let t=s-1,r=e.charAt(t);if(!p.includes(r))break;s=t;}return [e.slice(0,a),r(e.slice(a,s)),e.slice(s)]};
|
|
36
36
|
|
|
37
|
-
let changeCaseCamel=(o
|
|
37
|
+
let changeCaseCamel=(m,o)=>{let[c,s,C]=splitPrefixSuffix(m,o),g=lowerFactory(o?.locale),i=upperFactory(o?.locale),n=o?.mergeAmbiguousCharacters?capitalCaseTransformFactory(g,i):pascalCaseTransformFactory(g,i);return c+s.map((e,a)=>0===a?g(e):n(e,a)).join(o?.delimiter??"")+C};
|
|
38
38
|
|
|
39
|
-
let changeCaseConstant=(a,
|
|
39
|
+
let changeCaseConstant=(a,n)=>{let[o,r,l]=splitPrefixSuffix(a,n);return o+r.map(upperFactory(n?.locale)).join(n?.delimiter??"_")+l};
|
|
40
40
|
|
|
41
|
-
let changeCaseNone=(
|
|
41
|
+
let changeCaseNone=(o,r)=>{let[t,l,n]=splitPrefixSuffix(o,r);return t+l.map(lowerFactory(r?.locale)).join(r?.delimiter??" ")+n};
|
|
42
42
|
|
|
43
|
-
let changeCaseDot=(
|
|
43
|
+
let changeCaseDot=(t,a)=>changeCaseNone(t,{delimiter:".",...a});
|
|
44
44
|
|
|
45
|
-
let changeCaseKebab=(a,
|
|
45
|
+
let changeCaseKebab=(a,t)=>changeCaseNone(a,{delimiter:"-",...t});
|
|
46
46
|
|
|
47
|
-
let changeCasePascal=(
|
|
47
|
+
let changeCasePascal=(c,o)=>{let[s,m,g]=splitPrefixSuffix(c,o),i=lowerFactory(o?.locale),n=upperFactory(o?.locale),p=o?.mergeAmbiguousCharacters?capitalCaseTransformFactory(i,n):pascalCaseTransformFactory(i,n);return s+m.map(p).join(o?.delimiter??"")+g};
|
|
48
48
|
|
|
49
49
|
let changeCasePath=(a,t)=>changeCaseNone(a,{delimiter:"/",...t});
|
|
50
50
|
|
|
51
|
-
let changeCaseSentence=(
|
|
51
|
+
let changeCaseSentence=(n,r)=>{let[c,o,p]=splitPrefixSuffix(n,r),i=lowerFactory(r?.locale),m=capitalCaseTransformFactory(i,upperFactory(r?.locale));return c+o.map((e,a)=>0===a?m(e):i(e)).join(r?.delimiter??" ")+p};
|
|
52
52
|
|
|
53
53
|
let changeCaseSnake=(a,n)=>changeCaseNone(a,{delimiter:"_",...n});
|
|
54
54
|
|
|
55
|
-
let changeCaseCapital=(
|
|
55
|
+
let changeCaseCapital=(r,o)=>{let[p,i,c]=splitPrefixSuffix(r,o),n=lowerFactory(o?.locale),C=upperFactory(o?.locale);return p+i.map(capitalCaseTransformFactory(n,C)).join(o?.delimiter??" ")+c};
|
|
56
56
|
|
|
57
|
-
let changeCaseTrain=(a,
|
|
57
|
+
let changeCaseTrain=(a,r)=>changeCaseCapital(a,{delimiter:"-",...r});
|
|
58
58
|
|
|
59
|
-
let chunkByChunks=(e,l,
|
|
59
|
+
let chunkByChunks=(e,l,h)=>{let s;if(l<2)return [e];let t=e.length,r=[],u=0;if(t%l==0)for(s=Math.floor(t/l);u<t;)r.push(e.slice(u,u+=s));else if(h)for(;u<t;)s=Math.ceil((t-u)/l--),r.push(e.slice(u,u+=s));else {for(s=Math.floor(t/--l),t%s==0&&s--;u<s*l;)r.push(e.slice(u,u+=s));r.push(e.slice(s*l));}return r};
|
|
60
60
|
|
|
61
61
|
let chunkBySize=(e,t)=>{let l=[];for(let r=0;r<e.length;r+=t)l.push(e.slice(r,r+t));return l};
|
|
62
62
|
|
|
63
|
-
let clamp=(a,t,
|
|
63
|
+
let clamp=(a,t,e)=>Math.min(Math.max(a,t),e);
|
|
64
64
|
|
|
65
65
|
let e$2=t=>{let r,f,l="";if("string"==typeof t||"number"==typeof t)l+=t;else if("object"==typeof t){if(Array.isArray(t))for(r=0;r<t.length;r++)t[r]&&(f=e$2(t[r]))&&(l&&(l+=" "),l+=f);else for(r in t)t[r]&&(l&&(l+=" "),l+=r);}return l};/**
|
|
66
66
|
* Class names utility
|
|
@@ -74,7 +74,7 @@ let convertRange=(e,t,n)=>(e-t[0])*(n[1]-n[0])/(t[1]-t[0])+n[0];
|
|
|
74
74
|
|
|
75
75
|
let createPalette=(e,t)=>{let r=t.reduce((e,t)=>(e[t[0]]=t[1],e),{});return [r,t.reduce((t,r)=>(t[`${e}-${r[0]}`]=r[1],t),{}),Object.values(r)]};
|
|
76
76
|
|
|
77
|
-
let debounce=(e,t,l)=>{let
|
|
77
|
+
let debounce=(e,t,l)=>{let u;return function(...n){let o=this,p=l&&!u;u&&clearTimeout(u),u=setTimeout(function(){u=null,l||e.apply(o,n);},t),p&&e.apply(o,n);}};
|
|
78
78
|
|
|
79
79
|
/**
|
|
80
80
|
* Debounce function (with `requestAnimationFrame`)
|
|
@@ -82,7 +82,7 @@ let debounce=(e,t,l)=>{let n;return function(...u){let o=this,i=l&&!n;n&&clearTi
|
|
|
82
82
|
* @category function
|
|
83
83
|
* @borrows [vanillajstoolkit/debounce](https://vanillajstoolkit.com/helpers/debounce/)
|
|
84
84
|
* @license (c) 2021 Chris Ferdinandi, MIT License, https://gomakethings.com
|
|
85
|
-
*/function debounceRaf(n){let e;return function(...t){let
|
|
85
|
+
*/function debounceRaf(n){let e;return function(...t){let o=this;e&&window.cancelAnimationFrame(e),e=window.requestAnimationFrame(function(){n.apply(o,t);});}}
|
|
86
86
|
|
|
87
87
|
/**
|
|
88
88
|
* Debounce function (with `Promise`)
|
|
@@ -90,17 +90,17 @@ let debounce=(e,t,l)=>{let n;return function(...u){let o=this,i=l&&!n;n&&clearTi
|
|
|
90
90
|
* @category function
|
|
91
91
|
* @borrows [chodorowicz/ts-debounce](https://github.com/chodorowicz/ts-debounce)
|
|
92
92
|
* @license MIT: Jakub Chodorowicz
|
|
93
|
-
*/let debouncePromise=(e,t=50,
|
|
93
|
+
*/let debouncePromise=(e,t=50,o={})=>{let i;let n=o.isImmediate??!1,r=o.callback??!1,a=o.maxWait,l=Date.now(),u=[],c=function(...o){let c=this;return new Promise((f,d)=>{let m=n&&void 0===i;if(void 0!==i&&clearTimeout(i),i=setTimeout(function(){if(i=void 0,l=Date.now(),!n){let t=e.apply(c,o);r&&r(t),u.forEach(({resolve:e})=>e(t)),u=[];}},function(){if(void 0!==a){let e=Date.now()-l;if(e+t>=a)return a-e}return t}()),m){let t=e.apply(c,o);return r&&r(t),f(t)}u.push({resolve:f,reject:d});})};return c.cancel=function(e){void 0!==i&&clearTimeout(i),u.forEach(({reject:t})=>t(e)),u=[];},c};
|
|
94
94
|
|
|
95
95
|
let decode=e=>e.replace(/.{3}/g,e=>String.fromCharCode(parseInt(e,10)));
|
|
96
96
|
|
|
97
|
-
function Defer(){let e=this||{},t=e.promise=new Promise((t,
|
|
97
|
+
function Defer(){let e=this||{},t=e.promise=new Promise((t,r)=>{e.resolve=t,e.reject=r;});return e.then=t.then.bind(t),e.catch=t.catch.bind(t),e}
|
|
98
98
|
|
|
99
99
|
let Emitter=t=>{let e=new Map;return {on(r,i){let n=e.get(`${t}.${String(r)}`);n&&n.push(i)||e.set(`${t}.${String(r)}`,[i]);},emit(r,i){(e.get(`${t}.${String(r)}`)||[]).slice().map(t=>{t(i);});}}};
|
|
100
100
|
|
|
101
101
|
let encode=e=>e.replace(/./g,e=>("00"+e.charCodeAt(0)).slice(-3));
|
|
102
102
|
|
|
103
|
-
let ensureInt=
|
|
103
|
+
let ensureInt=e=>"string"==typeof e?parseInt(e,10):Math.round(e);
|
|
104
104
|
|
|
105
105
|
let isString=r=>"String"===getType(r);
|
|
106
106
|
|
|
@@ -108,7 +108,7 @@ let errorToString=o=>o instanceof Error?o.message:isString(o)?o:"";
|
|
|
108
108
|
|
|
109
109
|
let escapeRegExp=e=>e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&");
|
|
110
110
|
|
|
111
|
-
let findDuplicatedIndexes=e=>{let t={};for(let
|
|
111
|
+
let findDuplicatedIndexes=e=>{let t={};for(let d=0;d<e.length;d++){let l=e.indexOf(e[d]);l!==d&&-1!==l&&(t[d]=!0);}return t};
|
|
112
112
|
|
|
113
113
|
let forin=(e,o)=>{for(let r in e)o(r,e[r]);};
|
|
114
114
|
|
|
@@ -120,15 +120,15 @@ let getEmptyArray=t=>Array.from({length:isNumber(t)?t:parseInt(t,10)});
|
|
|
120
120
|
|
|
121
121
|
let getKeys=Object.keys;
|
|
122
122
|
|
|
123
|
-
let getMediaQueryWidthResolvers=
|
|
123
|
+
let getMediaQueryWidthResolvers=e=>{let t={xs:0,...e},r=Object.keys(t).map(e=>[e,t[e]]).sort((e,t)=>e[1]-t[1]).map(e=>e[0]),d=e=>{let t=r.indexOf(e);return r[t+1]},x=e=>`(min-width: ${t[e]}px)`,i=(e,r)=>(r=r||d(e))?`(min-width: ${t[e]}px) and (max-width: ${t[r]-.02}px)`:x(e);return {max:e=>`(max-width: ${t[e]-.02}px)`,min:x,down:e=>{let r=d(e);return r&&`(max-width: ${t[r]-.02}px)`},up:x,between:i,only:e=>{let t=d(e);return t?i(e,t):x(e)}}};
|
|
124
124
|
|
|
125
|
-
let getMediaQueryWidthTailwindScreens=t=>{let r=getMediaQueryWidthResolvers(t);return Object.keys(t).reduce((e,i,
|
|
125
|
+
let getMediaQueryWidthTailwindScreens=t=>{let r=getMediaQueryWidthResolvers(t);return Object.keys(t).reduce((e,i,d)=>{let l=Object.keys(t)[d+1];for(let t in r){let d=(0, r[t])(i);d&&("min"===t&&(e[`@${i}`]={raw:d}),"between"===t?l&&(e[`@${t}-${i}_${l}`]={raw:d}):e[`@${t}-${i}`]={raw:d});}return e},{})};
|
|
126
126
|
|
|
127
127
|
let getNonce=()=>isUndefined(__webpack_nonce__)?null:__webpack_nonce__;
|
|
128
128
|
|
|
129
129
|
let getParamAsString=t=>(isArray(t)?t[0]:t)||"";
|
|
130
130
|
|
|
131
|
-
let getParamAmong=(
|
|
131
|
+
let getParamAmong=(e,r=[])=>{let a=getParamAsString(e);return r.includes(a)?a:null};
|
|
132
132
|
|
|
133
133
|
let getParamAsInt=(r,e=null)=>{let a=getParamAsString(r);return a?parseInt(a,10):e};
|
|
134
134
|
|
|
@@ -138,13 +138,13 @@ let getUrlHashPathname=(a="")=>(a||location.hash).split("?")[0].replace(/^#\//,"
|
|
|
138
138
|
|
|
139
139
|
let isBrowser="undefined"!=typeof window;
|
|
140
140
|
|
|
141
|
-
let getUrlPathnameParts=(
|
|
141
|
+
let getUrlPathnameParts=(e="")=>(e||(isBrowser?location.pathname:"")).replace(/^\//,"").split("/").filter(Boolean);
|
|
142
142
|
|
|
143
|
-
let getUrlQueryParams=r=>{let t={},
|
|
143
|
+
let getUrlQueryParams=r=>{let t={},a=r?r.split("?")?.[1]:isBrowser?location.search.substring(1):"";if(!a)return {};try{let e=`{"${a.replace(/&/g,'","').replace(/=/g,'":"')}"}`;t=JSON.parse(e,(e,r)=>""===e?r:decodeURIComponent(r));}catch(e){}return t};
|
|
144
144
|
|
|
145
145
|
let imgEmptyPixel="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mNkYAAAAAYAAjCB0C8AAAAASUVORK5CYII=";
|
|
146
146
|
|
|
147
|
-
let t$
|
|
147
|
+
let t$1=/^(?:[a-z+]+:)?\/\//i;let isAbsoluteUrl=e=>t$1.test(e);
|
|
148
148
|
|
|
149
149
|
let isAnyObject=t=>"Object"===getType(t);
|
|
150
150
|
|
|
@@ -164,23 +164,23 @@ let isEmptyString=t=>""===t;
|
|
|
164
164
|
|
|
165
165
|
let isError=o=>"Error"===getType(o);
|
|
166
166
|
|
|
167
|
-
let isExternalUrl=(r,t)=>{let
|
|
167
|
+
let isExternalUrl=(r,t)=>{let l=/https?:\/\/((?:[\w\d-]+\.)+[\w\d]{2,})/i,o=l.exec(r);return !!o&&(!(t=t||isBrowser?location.href:"")||l.exec(t)?.[1]!==o[1])};
|
|
168
168
|
|
|
169
169
|
let isFile=i=>"File"===getType(i);
|
|
170
170
|
|
|
171
|
-
let isFloat=
|
|
171
|
+
let isFloat=o=>isNumber(o)&&o%1!=0;
|
|
172
172
|
|
|
173
|
-
let isFormData=
|
|
173
|
+
let isFormData=a=>"FormData"===getType(a);
|
|
174
174
|
|
|
175
175
|
let isFullArray=l=>isArray(l)&&l.length>0;
|
|
176
176
|
|
|
177
177
|
let isFullObject=t=>isPlainObject(t)&&Object.keys(t).length>0;
|
|
178
178
|
|
|
179
|
-
let isFullString=
|
|
179
|
+
let isFullString=i=>isString(i)&&""!==i;
|
|
180
180
|
|
|
181
181
|
let isFunction=t=>"function"==typeof t;
|
|
182
182
|
|
|
183
|
-
let isInt=
|
|
183
|
+
let isInt=e=>isNumber(e)&&e%1==0;
|
|
184
184
|
|
|
185
185
|
let isMap=e=>"Map"===getType(e);
|
|
186
186
|
|
|
@@ -188,7 +188,7 @@ let isNaNValue=N=>"Number"===getType(N)&&isNaN(N);
|
|
|
188
188
|
|
|
189
189
|
let isNegativeNumber=r=>isNumber(r)&&r<0;
|
|
190
190
|
|
|
191
|
-
function isOneOf(
|
|
191
|
+
function isOneOf(e,n,t,f,r){return O=>e(O)||n(O)||!!t&&t(O)||!!f&&f(O)||!!r&&r(O)}
|
|
192
192
|
|
|
193
193
|
let isNullOrUndefined=isOneOf(isNull,isUndefined);
|
|
194
194
|
|
|
@@ -214,9 +214,9 @@ let isServerNow=()=>isUndefined(window);
|
|
|
214
214
|
|
|
215
215
|
let isSet=t=>"Set"===getType(t);
|
|
216
216
|
|
|
217
|
-
let isType=(r
|
|
217
|
+
let isType=(e,r)=>{if(!(r instanceof Function))throw TypeError("Type must be a function");if(!Object.prototype.hasOwnProperty.call(r,"prototype"))throw TypeError("Type is not a class");let o=r.name;return getType(e)===o||!!(e&&e.constructor===r)};
|
|
218
218
|
|
|
219
|
-
let isWeakMap=
|
|
219
|
+
let isWeakMap=a=>"WeakMap"===getType(a);
|
|
220
220
|
|
|
221
221
|
let isWeakSet=t=>"WeakSet"===getType(t);
|
|
222
222
|
|
|
@@ -226,9 +226,9 @@ let lowercase=e=>(e||"").toLowerCase();
|
|
|
226
226
|
|
|
227
227
|
let mapListBy=(e=[],t="")=>e.reduce((e,p)=>(e[p[t]]=p,e),{});
|
|
228
228
|
|
|
229
|
-
let removeAccents=(t="",r=accentsSets)=>{let c=r.length;for(;c--;){let[e,
|
|
229
|
+
let removeAccents=(t="",r=accentsSets)=>{let c=r.length;for(;c--;){let[e,o]=r[c];t=t.replace(RegExp(`[${o}]`,"gi"),e);}return t};
|
|
230
230
|
|
|
231
|
-
let
|
|
231
|
+
let r=(e,t)=>String(e.rankedValue).localeCompare(String(t.rankedValue)),l=(e,t,l={})=>{let{keys:u,threshold:a=1,baseSort:o=r,sorter:s=e=>e.sort((e,t)=>i$1(e,t,o))}=l;return s(e.reduce(function(e,r,o){let i=n$1(r,u,t,l),{rank:s,keyThreshold:h=a}=i;return s>=h&&e.push({...i,item:r,index:o}),e},[])).map(({item:e})=>e)},n$1=(e,t,r,l)=>t?c(e,t).reduce(({rank:e,rankedValue:t,keyIndex:n,keyThreshold:a},{itemValue:o,attributes:i},s)=>{let h=u(o,r,l),f=t,{minRanking:c,maxRanking:d,threshold:k}=i;return h<c&&h>=1?h=c:h>d&&(h=d),h>e&&(e=h,n=s,a=k,f=o),{rankedValue:f,rank:e,keyIndex:n,keyThreshold:a}},{rankedValue:e,rank:0,keyIndex:-1,keyThreshold:l.threshold}):{rankedValue:e,rank:u(e,r,l),keyIndex:-1,keyThreshold:l.threshold},u=(e,t,r)=>(e=s(e,r),(t=s(t,r)).length>e.length)?0:e===t?7:(e=e.toLowerCase())===(t=t.toLowerCase())?6:e.startsWith(t)?5:e.includes(` ${t}`)?4:e.includes(t)?3:1===t.length?0:a(e).includes(t)?2:o(e,t),a=e=>{let t="";return e.split(" ").forEach(e=>{e.split("-").forEach(e=>{t+=e.substring(0,1);});}),t},o=(e,t)=>{let r=0,l=0;function n(e,t,l){for(let n=l,u=t.length;n<u;n++)if(t[n]===e)return r+=1,n+1;return -1}let u=n(t[0],e,0);if(u<0)return 0;l=u;for(let r=1,u=t.length;r<u;r++)if(!((l=n(t[r],e,l))>-1))return 0;return 1+1/(l-u)*(r/t.length)},i$1=(e,t,r)=>{let{rank:l,keyIndex:n}=e,{rank:u,keyIndex:a}=t;return l!==u?l>u?-1:1:n===a?r(e,t):n<a?-1:1},s=(e,{keepDiacritics:r})=>(e=`${e}`,r||(e=removeAccents(e)),e),h=(e,t)=>{let r;if("object"==typeof t&&(t=t.key),"function"==typeof t)r=t(e);else if(null==e)r=null;else if(Object.hasOwnProperty.call(e,t))r=e[t];else {if(t.includes("."))return f(t,e);r=null;}return null==r?[]:Array.isArray(r)?r:[String(r)]},f=(e,t)=>{let r=e.split("."),l=[t];for(let e=0,t=r.length;e<t;e++){let t=r[e],n=[];for(let e=0,r=l.length;e<r;e++){let r=l[e];if(null!=r){if(Object.hasOwnProperty.call(r,t)){let e=r[t];null!=e&&n.push(e);}else "*"===t&&(n=n.concat(r));}}l=n;}return Array.isArray(l[0])?[].concat(...l):l},c=(e,t)=>{let r=[];for(let l=0,n=t.length;l<n;l++){let n=t[l],u=k(n),a=h(e,n);for(let e=0,t=a.length;e<t;e++)r.push({itemValue:a[e],attributes:u});}return r},d={maxRanking:1/0,minRanking:-1/0},k=t=>isString(t)?d:{...d,...t};
|
|
232
232
|
|
|
233
233
|
let mbToBytes=e=>1e6*e;
|
|
234
234
|
|
|
@@ -236,47 +236,47 @@ let mergeObjects=(r,...i)=>{if(!i.length)return r;let m=i.shift();return void 0=
|
|
|
236
236
|
|
|
237
237
|
let mergeUrlQueryParams=(r={},l={})=>{for(let t in l){let m=l[t];r[t]&&isNull(m)?delete r[t]:r[t]=m;}return r};
|
|
238
238
|
|
|
239
|
-
let moveSortableArrayItemByKey=(e,r,t,l)=>{let
|
|
239
|
+
let moveSortableArrayItemByKey=(e,r,t,l)=>{let a=e.map(e=>e[r]),o=a.indexOf(t[r]),y=a.indexOf(l[r]),[m]=e.splice(o,1);return e.splice(y,0,m),[...e]};
|
|
240
240
|
|
|
241
241
|
let noop=()=>void 0;
|
|
242
242
|
|
|
243
|
-
let
|
|
243
|
+
let removeTrailingSlash=e=>(e||"").replace(/\/*$/,"");
|
|
244
244
|
|
|
245
|
-
let normaliseUrlPathname=(r="")=>
|
|
245
|
+
let normaliseUrlPathname=(r="")=>removeTrailingSlash(r.replace(/\/+/g,"/"));
|
|
246
246
|
|
|
247
|
-
let normaliseUrl=(e="")=>
|
|
247
|
+
let normaliseUrl=(e="")=>removeTrailingSlash(e.replace(/(:\/\/)|(\/)+/g,"$1$2"));
|
|
248
248
|
|
|
249
|
-
let objectFlat=(e,t=".",
|
|
249
|
+
let objectFlat=(e,t=".",o="")=>Object.keys(e).reduce((c,l)=>{let b=o?`${o}${t}${l}`:l;return "object"==typeof e[l]?c={...c,...objectFlat(e[l],t,b)}:c[b]=e[l],c},{});
|
|
250
250
|
|
|
251
|
-
let objectFlip=(e,t)=>Object.fromEntries(Object.entries(e).map(([e,
|
|
251
|
+
let objectFlip=(e,t)=>Object.fromEntries(Object.entries(e).map(([e,o])=>[o,t?t(e):e]));
|
|
252
252
|
|
|
253
|
-
let objectPick=(e,t)=>{let
|
|
253
|
+
let objectPick=(e,t)=>{let o={},r=t.length;for(;r--;)o[t[r]]=e[t[r]];return o};
|
|
254
254
|
|
|
255
255
|
let objectMergeWithDefaults=(t,o)=>o?Object.keys(o).reduce((r,c)=>(isObject(o[c])?(t[c]||(t[c]={}),r[c]=objectMergeWithDefaults(t[c],o[c])):r[c]=void 0===o[c]?t[c]:o[c],r),{...t}):t;
|
|
256
256
|
|
|
257
|
-
let objectOmit=(e,t)=>Object.keys(e).reduce((c,
|
|
257
|
+
let objectOmit=(e,t)=>Object.keys(e).reduce((c,o)=>(t.includes(o)||(c[o]=e[o]),c),{});
|
|
258
258
|
|
|
259
259
|
let objectSort=(t,e)=>Object.fromEntries(Object.entries(t).sort(e));
|
|
260
260
|
|
|
261
|
-
let objectSortByKeysMatching=(
|
|
261
|
+
let objectSortByKeysMatching=(o,e)=>objectSort(o,([t],[o])=>t===e?-1:t.localeCompare(o));
|
|
262
262
|
|
|
263
263
|
let objectToArray=(e,t)=>Object.keys(e).map(t);
|
|
264
264
|
|
|
265
|
-
let t
|
|
265
|
+
let t=(t,e)=>{try{return e(t)}catch(e){return t}};let parseCookie=(e,r={})=>{if("string"!=typeof e)throw TypeError("argument str must be a string");let i={},n=e.split(";"),{decode:o=decodeURIComponent}=r;for(let e=0;e<n.length;e++){let r=n[e],l=r.indexOf("=");if(l<0)continue;let s=r.substring(0,l).trim();if(void 0==i[s]){let e=r.substring(l+1,r.length).trim();'"'===e[0]&&(e=e.slice(1,-1)),i[s]=t(e,o);}}return i};
|
|
266
266
|
|
|
267
267
|
let parseURL=t=>{let e=t.match(/^(https?:)\/\/(([^:/?#]*)(?::([0-9]+))?)([/]{0,1}[^?#]*)(\?[^#]*|)(#.*|)$/);return e&&{href:t,protocol:e[1],host:e[2],hostname:e[3],port:e[4],pathname:e[5],search:e[6],hash:e[7]}};
|
|
268
268
|
|
|
269
|
-
let quaranteneProps=(e,t)=>{let r={_:{}};for(let
|
|
269
|
+
let quaranteneProps=(e,t)=>{let r={_:{}};for(let n in e){let l=e[n];t.includes(n)?r._[n]=l:r[n]=l;}return r};
|
|
270
270
|
|
|
271
|
-
let randomInt=(o
|
|
271
|
+
let randomInt=(t,o)=>Math.floor(Math.random()*(o-t+1)+t);
|
|
272
272
|
|
|
273
273
|
let randomKey=e=>{let t=Object.keys(e);return t[t.length*Math.random()<<0]};
|
|
274
274
|
|
|
275
|
-
let e$1=e=>('"'===e[0]&&(e=e.slice(1,-1)),e.replace(/(%[\dA-F]{2})+/gi,decodeURIComponent));function readCookie(o){if("undefined"==typeof document)return "development"===process.env.NODE_ENV&&console.warn("[@koine/utils:readCookie] document is undefined"),o?"":{};let n=document.cookie?document.cookie.split("; "):[],t={};for(let
|
|
275
|
+
let e$1=e=>('"'===e[0]&&(e=e.slice(1,-1)),e.replace(/(%[\dA-F]{2})+/gi,decodeURIComponent));function readCookie(o){if("undefined"==typeof document)return "development"===process.env.NODE_ENV&&console.warn("[@koine/utils:readCookie] document is undefined"),o?"":{};let n=document.cookie?document.cookie.split("; "):[],t={};for(let d=0;d<n.length;d++){let i=n[d].split("="),c=i.slice(1).join("=");try{let n=decodeURIComponent(i[0]);if(t[n]=e$1(c),o===n)break}catch(e){"development"===process.env.NODE_ENV&&console.warn("[@koine/utils:readCookie] failed to decode",c);}}return o?t[o]:t}
|
|
276
276
|
|
|
277
277
|
let defaultAttributesClient={path:"/"};
|
|
278
278
|
|
|
279
|
-
let
|
|
279
|
+
let n=e=>encodeURIComponent(e).replace(/%(2[346BF]|3[AC-F]|40|5[BDE]|60|7[BCD])/g,decodeURIComponent);let setCookie=(r,i,p={})=>{let {expires:c,...d}=p;({expires:"",...defaultAttributesClient,...d});if(isUndefined(document)){"development"===process.env.NODE_ENV&&console.warn("[@koine/utils:setCookie] document is undefined");return}isNumber(c)&&(c=new Date(Date.now()+864e5*c)),c&&(c.toUTCString()),r=encodeURIComponent(r).replace(/%(2[346B]|5E|60|7C)/g,decodeURIComponent).replace(/[()]/g,escape);let s="";for(let e in p)p[e]&&(s+="; "+e,!0!==p[e]&&(s+="="+String(p[e]).split(";")[0]));return document.cookie=r+"="+n(i)+s};
|
|
280
280
|
|
|
281
281
|
let removeCookie=(r,i={})=>{setCookie(r,"",{...defaultAttributesClient,...i,expires:-1});};
|
|
282
282
|
|
|
@@ -286,25 +286,25 @@ let removeIndexesFromArray=(e,r)=>{let t=[];for(let o=0;o<e.length;o++)r.hasOwnP
|
|
|
286
286
|
|
|
287
287
|
let removeDuplicatesComparing=(o,m)=>removeIndexesFromArray(m,findDuplicatedIndexes(o));
|
|
288
288
|
|
|
289
|
-
let removeUrlQueryParams=(t,l=[])=>{let
|
|
289
|
+
let removeUrlQueryParams=(t,l=[])=>{let m=t.split("?"),o=getUrlQueryParams(t),u={};for(let r in o)l.includes(r)||(u[r]=o[r]);return m[0]+buildUrlQueryString(u)};
|
|
290
290
|
|
|
291
291
|
let round=(e,r,t)=>r?parseFloat(e.toFixed(r).replace(t?"":/\.+0*$/,"")):parseInt(e+"",10);
|
|
292
292
|
|
|
293
|
-
let roundTo=(e,n=2)=>{if(isFinite(e)&&!isNaN(e)){let
|
|
293
|
+
let roundTo=(e,n=2)=>{if(isFinite(e)&&!isNaN(e)){let o=Math.pow(10,n);return Math.round(e*o)/o+""}return "development"===process.env.NODE_ENV&&console.warn("[@koine/utils] math:roundTo -> given not a finite number as first arg"),""};
|
|
294
294
|
|
|
295
|
-
let i=/^[\u0009\u0020-\u007e\u0080-\u00ff]+$/;let serializeCookie=(t,o,r={})=>{let{encode:n=encodeURIComponent,domain:a,path:s,httpOnly:p,secure:l,sameSite:f}=r,{maxAge:m,expires:c}=r,d=n(o);if("development"===process.env.NODE_ENV){if(!i.test(t))throw TypeError("argument name is invalid");if("function"!=typeof r.encode)throw TypeError("option encode is invalid");if(d&&!i.test(d))throw TypeError("argument val is invalid")}let
|
|
295
|
+
let i=/^[\u0009\u0020-\u007e\u0080-\u00ff]+$/;let serializeCookie=(t,o,r={})=>{let{encode:n=encodeURIComponent,domain:a,path:s,httpOnly:p,secure:l,sameSite:f}=r,{maxAge:m,expires:c}=r,d=n(o);if("development"===process.env.NODE_ENV){if(!i.test(t))throw TypeError("argument name is invalid");if("function"!=typeof r.encode)throw TypeError("option encode is invalid");if(d&&!i.test(d))throw TypeError("argument val is invalid")}let u=t+"="+d;if(null!=m){if(isNaN(m-=0)||!isFinite(m))throw TypeError("option maxAge is invalid");u+="; Max-Age="+Math.floor(m);}if(a){if("development"===process.env.NODE_ENV&&!i.test(a))throw TypeError("option domain is invalid");u+="; Domain="+a;}if(s){if("development"===process.env.NODE_ENV&&!i.test(s))throw TypeError("option path is invalid");u+="; Path="+s;}if(c&&(isNumber(c)&&(c=new Date(Date.now()+864e5*c)),u+="; Expires="+c.toUTCString()),p&&(u+="; HttpOnly"),l&&(u+="; Secure"),f)switch(f.toLowerCase()){case"lax":u+="; SameSite=Lax";break;case"strict":u+="; SameSite=Strict";break;case"none":u+="; SameSite=None";}return u};
|
|
296
296
|
|
|
297
|
-
let shuffle=
|
|
297
|
+
let shuffle=e=>{let t=null==e?0:e.length;if(!t)return [];let l=-1,r=t-1,f=[...e];for(;++l<t;){let e=l+Math.floor(Math.random()*(r-l+1)),t=f[e];f[e]=f[l],f[l]=t;}return f};
|
|
298
298
|
|
|
299
|
-
let slugify=(c
|
|
299
|
+
let slugify=(t,c="-")=>removeAccents(t.toString().toLowerCase().trim(),accentsSets.concat([["-","[·/_,:;']"]])).replace(/\s+/g,"-").replace(/&/g,"-and-").replace(/[^\w-]+/g,"").replace(/--+/g,"-").replace(/^-+/,"").replace(/-+$/,"").replace(/-/g,c);
|
|
300
300
|
|
|
301
301
|
let split=(t,l)=>t.split(l);
|
|
302
302
|
|
|
303
|
-
let splitReverse=(e,
|
|
303
|
+
let splitReverse=(e,t)=>e.split(t).reverse();
|
|
304
304
|
|
|
305
|
-
let swapMap=(e={})=>{let t={};for(let
|
|
305
|
+
let swapMap=(e={})=>{let t={};for(let p in e)t[e[p]]=p;return t};
|
|
306
306
|
|
|
307
|
-
let throttle=(t,e,
|
|
307
|
+
let throttle=(t,e,r)=>{let o;return function(...l){if(r=r||this,!o)return t.apply(r,...l),o=!0,setTimeout(function(){o=!1;},e)}};
|
|
308
308
|
|
|
309
309
|
/**
|
|
310
310
|
* @category text
|
|
@@ -313,21 +313,21 @@ let throttle=(t,e,n)=>{let r;return function(...i){if(n=n||this,!r)return t.appl
|
|
|
313
313
|
* @license Blake Embrey (hello@blakeembrey.com)
|
|
314
314
|
*/let titleCase=e=>e?e.replace(/\w\S*/g,e=>e.charAt(0).toUpperCase()+e.substring(1).toLowerCase()):"";
|
|
315
315
|
|
|
316
|
-
let toNumber=(
|
|
316
|
+
let toNumber=(r,t)=>isNumber(r)?r:r?parseFloat(r):t||0;
|
|
317
317
|
|
|
318
|
-
let toRgba=(e,
|
|
318
|
+
let toRgba=(e,t=1)=>{let a=/^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(e);return a?`rgba(${parseInt(a[1],16)},${parseInt(a[2],16)},${parseInt(a[3],16)},${t})`:""};
|
|
319
319
|
|
|
320
320
|
let transformToUrlPathname=o=>isString(o)?`/${encodeURIComponent(o.replace(/\s/g,"-").toLowerCase())}`:"";
|
|
321
321
|
|
|
322
322
|
let truncate=(t,e)=>t?t.length>e?t.substring(0,e)+"...":t:"";
|
|
323
323
|
|
|
324
|
-
let tryUntil=(e,
|
|
324
|
+
let tryUntil=(t,e,l,n,r)=>{let a=new Date,c=setInterval(function(){t()?(clearInterval(c),n()):new Date-a>e&&(clearInterval(c),r&&r());},l);};
|
|
325
325
|
|
|
326
326
|
let e=0;let uid=(t="id")=>(e++,`${t}-${e}`);
|
|
327
327
|
|
|
328
|
-
let updateUrlQueryParams=(m
|
|
328
|
+
let updateUrlQueryParams=(a,m={})=>{let l=a.split("?"),u=l[1]?mergeUrlQueryParams(getUrlQueryParams(a),m):m;return l[0]+buildUrlQueryString(u)};
|
|
329
329
|
|
|
330
|
-
let updateLinkParams=(e,
|
|
330
|
+
let updateLinkParams=(e,a)=>{let t=updateUrlQueryParams(e.href,a);return e.href=t,t};
|
|
331
331
|
|
|
332
332
|
let uppercase=e=>(e||"").toUpperCase();
|
|
333
333
|
|
|
@@ -337,4 +337,4 @@ let uuidNumeric=()=>new Date().valueOf();
|
|
|
337
337
|
|
|
338
338
|
let wait=e=>new Promise(t=>setTimeout(t,e));
|
|
339
339
|
|
|
340
|
-
export { Defer, Emitter, accentsSets, addOrReplaceAtIdx, areEqual, arrayFilterFalsy, arrayFindLastIndex, arrayOfAll, arraySum, arrayToLookup, arrayUniqueByProperties, buildUrlQueryString, capitalize, changeCaseCamel, changeCaseConstant, changeCaseDot, changeCaseKebab, changeCasePascal, changeCasePath, changeCaseSentence, changeCaseSnake, changeCaseTrain, chunkByChunks, chunkBySize, clamp, clsx, convertRange, createPalette, debounce, debouncePromise, debounceRaf, decode, encode, ensureInt, errorToString, escapeRegExp, findDuplicatedIndexes, forin, gbToBytes, getEmptyArray, getKeys, getMediaQueryWidthResolvers, getMediaQueryWidthTailwindScreens, getNonce, getParamAmong, getParamAsInt, getParamAsString, getType, getUrlHashParams, getUrlHashPathname, getUrlPathnameParts, getUrlQueryParams, imgEmptyPixel, isAbsoluteUrl, isAnyObject, isArray, isBlob, isBoolean, isBrowser, isBrowserNow, isDate, isEmptyArray, isEmptyObject, isEmptyString, isError, isExternalUrl, isFile, isFloat, isFormData, isFullArray, isFullObject, isFullString, isFunction, isInt, isMap, isNaNValue, isNegativeNumber, isNull, isNullOrUndefined, isNumber, isNumericLiteral, isObject, isObjectLike, isObjectStringKeyed, isOneOf, isPlainObject, isPositiveNumber, isPrimitive, isPromise, isRegExp, isServer, isServerNow, isSet, isString, isSymbol, isType, isUndefined, isWeakMap, isWeakSet, kbToBytes, lowercase, mapListBy, l as matchSorter, mbToBytes, mergeObjects, mergeUrlQueryParams, moveSortableArrayItemByKey, noop, normaliseUrl, normaliseUrlPathname, objectFlat, objectFlip, objectMergeWithDefaults, objectOmit, objectPick, objectSort, objectSortByKeysMatching, objectToArray, parseCookie, parseURL, quaranteneProps, randomInt, randomKey, readCookie, removeAccents, removeCookie, removeDuplicatesByKey, removeDuplicatesComparing, removeIndexesFromArray,
|
|
340
|
+
export { Defer, Emitter, accentsSets, addOrReplaceAtIdx, areEqual, arrayFilterFalsy, arrayFindLastIndex, arrayOfAll, arraySum, arrayToLookup, arrayUniqueByProperties, buildUrlQueryString, capitalize, changeCaseCamel, changeCaseConstant, changeCaseDot, changeCaseKebab, changeCasePascal, changeCasePath, changeCaseSentence, changeCaseSnake, changeCaseTrain, chunkByChunks, chunkBySize, clamp, clsx, convertRange, createPalette, debounce, debouncePromise, debounceRaf, decode, encode, ensureInt, errorToString, escapeRegExp, findDuplicatedIndexes, forin, gbToBytes, getEmptyArray, getKeys, getMediaQueryWidthResolvers, getMediaQueryWidthTailwindScreens, getNonce, getParamAmong, getParamAsInt, getParamAsString, getType, getUrlHashParams, getUrlHashPathname, getUrlPathnameParts, getUrlQueryParams, imgEmptyPixel, isAbsoluteUrl, isAnyObject, isArray, isBlob, isBoolean, isBrowser, isBrowserNow, isDate, isEmptyArray, isEmptyObject, isEmptyString, isError, isExternalUrl, isFile, isFloat, isFormData, isFullArray, isFullObject, isFullString, isFunction, isInt, isMap, isNaNValue, isNegativeNumber, isNull, isNullOrUndefined, isNumber, isNumericLiteral, isObject, isObjectLike, isObjectStringKeyed, isOneOf, isPlainObject, isPositiveNumber, isPrimitive, isPromise, isRegExp, isServer, isServerNow, isSet, isString, isSymbol, isType, isUndefined, isWeakMap, isWeakSet, kbToBytes, lowercase, mapListBy, l as matchSorter, mbToBytes, mergeObjects, mergeUrlQueryParams, moveSortableArrayItemByKey, noop, normaliseUrl, normaliseUrlPathname, objectFlat, objectFlip, objectMergeWithDefaults, objectOmit, objectPick, objectSort, objectSortByKeysMatching, objectToArray, parseCookie, parseURL, quaranteneProps, randomInt, randomKey, readCookie, removeAccents, removeCookie, removeDuplicatesByKey, removeDuplicatesComparing, removeIndexesFromArray, removeTrailingSlash, removeUrlQueryParams, round, roundTo, serializeCookie, setCookie, shuffle, slugify, split, splitReverse, swapMap, throttle, titleCase, toNumber, toRgba, transformToUrlPathname, truncate, tryUntil, uid, updateLinkParams, updateUrlQueryParams, uppercase, uuid, uuidNumeric, wait };
|
package/index.js
CHANGED
|
@@ -129,7 +129,7 @@ export { removeCookie } from "./removeCookie";
|
|
|
129
129
|
export { removeDuplicatesByKey } from "./removeDuplicatesByKey";
|
|
130
130
|
export { removeDuplicatesComparing } from "./removeDuplicatesComparing";
|
|
131
131
|
export { removeIndexesFromArray } from "./removeIndexesFromArray";
|
|
132
|
-
export {
|
|
132
|
+
export { removeTrailingSlash } from "./removeTrailingSlash";
|
|
133
133
|
export { removeUrlQueryParams } from "./removeUrlQueryParams";
|
|
134
134
|
export { round } from "./round";
|
|
135
135
|
export { roundTo } from "./roundTo";
|
package/invariant.d.ts
CHANGED
package/invariant.js
CHANGED
package/isAbsoluteUrl.d.ts
CHANGED
package/isAbsoluteUrl.js
CHANGED
package/isAnyObject.d.ts
CHANGED
package/isAnyObject.js
CHANGED
package/isArray.d.ts
CHANGED
package/isArray.js
CHANGED
package/isBlob.d.ts
CHANGED
package/isBlob.js
CHANGED
package/isBoolean.d.ts
CHANGED
package/isBoolean.js
CHANGED
package/isBrowser.d.ts
CHANGED
package/isBrowser.js
CHANGED
package/isBrowserNow.d.ts
CHANGED
package/isBrowserNow.js
CHANGED
package/isDate.d.ts
CHANGED
package/isDate.js
CHANGED
package/isEmptyArray.d.ts
CHANGED
package/isEmptyArray.js
CHANGED
package/isEmptyObject.d.ts
CHANGED
package/isEmptyObject.js
CHANGED
package/isEmptyString.d.ts
CHANGED
package/isEmptyString.js
CHANGED
package/isError.d.ts
CHANGED
package/isError.js
CHANGED
package/isExternalUrl.d.ts
CHANGED
package/isExternalUrl.js
CHANGED
package/isFile.d.ts
CHANGED
package/isFile.js
CHANGED
package/isFloat.d.ts
CHANGED
package/isFloat.js
CHANGED
package/isFormData.d.ts
CHANGED
package/isFormData.js
CHANGED
package/isFullArray.d.ts
CHANGED