@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.cjs.js
CHANGED
|
@@ -4,9 +4,9 @@ Object.defineProperty(exports, '__esModule', { value: true });
|
|
|
4
4
|
|
|
5
5
|
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","ŹŻŽ"]];
|
|
6
6
|
|
|
7
|
-
let addOrReplaceAtIdx=(e,t
|
|
7
|
+
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);
|
|
8
8
|
|
|
9
|
-
let getType=
|
|
9
|
+
let getType=e=>Object.prototype.toString.call(e).slice(8,-1);
|
|
10
10
|
|
|
11
11
|
let isArray=e=>"Array"===getType(e);
|
|
12
12
|
|
|
@@ -14,7 +14,7 @@ let isPlainObject=e=>"Object"===getType(e)&&e.constructor===Object&&Object.getPr
|
|
|
14
14
|
|
|
15
15
|
let isObject=e=>isPlainObject(e);
|
|
16
16
|
|
|
17
|
-
let t$
|
|
17
|
+
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)};
|
|
18
18
|
|
|
19
19
|
let arrayFilterFalsy=r=>r?r.filter(r=>!!r):[];
|
|
20
20
|
|
|
@@ -22,49 +22,49 @@ let arrayFindLastIndex=(r,e)=>{let t=r.length;for(;t--;)if(e(r[t],t,r))return t;
|
|
|
22
22
|
|
|
23
23
|
let arrayOfAll=()=>l=>l;
|
|
24
24
|
|
|
25
|
-
let arraySum=
|
|
25
|
+
let arraySum=r=>r.reduce((r,e)=>r+e,0);
|
|
26
26
|
|
|
27
|
-
let arrayToLookup=(
|
|
27
|
+
let arrayToLookup=(o=[])=>o.reduce((o,r)=>(o[r]=1,o),{});
|
|
28
28
|
|
|
29
|
-
let arrayUniqueByProperties=(e,r)=>e.filter((e,i
|
|
29
|
+
let arrayUniqueByProperties=(e,r)=>e.filter((e,t,i)=>i.findIndex(t=>r.every(r=>t[r]===e[r]))===t);
|
|
30
30
|
|
|
31
31
|
let isNull=e=>"Null"===getType(e);
|
|
32
32
|
|
|
33
33
|
let isUndefined=d=>"Undefined"===getType(d);
|
|
34
34
|
|
|
35
|
-
let buildUrlQueryString=
|
|
35
|
+
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(/&+$/,"")}`:""};
|
|
36
36
|
|
|
37
37
|
let capitalize=e=>(e||"").charAt(0).toUpperCase()+(e||"").slice(1);
|
|
38
38
|
|
|
39
|
-
let e$3=/([\p{Ll}\d])(\p{Lu})/gu,t$
|
|
39
|
+
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)]};
|
|
40
40
|
|
|
41
|
-
let changeCaseCamel=(o
|
|
41
|
+
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};
|
|
42
42
|
|
|
43
|
-
let changeCaseConstant=(a,
|
|
43
|
+
let changeCaseConstant=(a,n)=>{let[o,r,l]=splitPrefixSuffix(a,n);return o+r.map(upperFactory(n?.locale)).join(n?.delimiter??"_")+l};
|
|
44
44
|
|
|
45
|
-
let changeCaseNone=(
|
|
45
|
+
let changeCaseNone=(o,r)=>{let[t,l,n]=splitPrefixSuffix(o,r);return t+l.map(lowerFactory(r?.locale)).join(r?.delimiter??" ")+n};
|
|
46
46
|
|
|
47
|
-
let changeCaseDot=(
|
|
47
|
+
let changeCaseDot=(t,a)=>changeCaseNone(t,{delimiter:".",...a});
|
|
48
48
|
|
|
49
|
-
let changeCaseKebab=(a,
|
|
49
|
+
let changeCaseKebab=(a,t)=>changeCaseNone(a,{delimiter:"-",...t});
|
|
50
50
|
|
|
51
|
-
let changeCasePascal=(
|
|
51
|
+
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};
|
|
52
52
|
|
|
53
53
|
let changeCasePath=(a,t)=>changeCaseNone(a,{delimiter:"/",...t});
|
|
54
54
|
|
|
55
|
-
let changeCaseSentence=(
|
|
55
|
+
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};
|
|
56
56
|
|
|
57
57
|
let changeCaseSnake=(a,n)=>changeCaseNone(a,{delimiter:"_",...n});
|
|
58
58
|
|
|
59
|
-
let changeCaseCapital=(
|
|
59
|
+
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};
|
|
60
60
|
|
|
61
|
-
let changeCaseTrain=(a,
|
|
61
|
+
let changeCaseTrain=(a,r)=>changeCaseCapital(a,{delimiter:"-",...r});
|
|
62
62
|
|
|
63
|
-
let chunkByChunks=(e,l,
|
|
63
|
+
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};
|
|
64
64
|
|
|
65
65
|
let chunkBySize=(e,t)=>{let l=[];for(let r=0;r<e.length;r+=t)l.push(e.slice(r,r+t));return l};
|
|
66
66
|
|
|
67
|
-
let clamp=(a,t,
|
|
67
|
+
let clamp=(a,t,e)=>Math.min(Math.max(a,t),e);
|
|
68
68
|
|
|
69
69
|
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};/**
|
|
70
70
|
* Class names utility
|
|
@@ -78,7 +78,7 @@ let convertRange=(e,t,n)=>(e-t[0])*(n[1]-n[0])/(t[1]-t[0])+n[0];
|
|
|
78
78
|
|
|
79
79
|
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)]};
|
|
80
80
|
|
|
81
|
-
let debounce=(e,t,l)=>{let
|
|
81
|
+
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);}};
|
|
82
82
|
|
|
83
83
|
/**
|
|
84
84
|
* Debounce function (with `requestAnimationFrame`)
|
|
@@ -86,7 +86,7 @@ let debounce=(e,t,l)=>{let n;return function(...u){let o=this,i=l&&!n;n&&clearTi
|
|
|
86
86
|
* @category function
|
|
87
87
|
* @borrows [vanillajstoolkit/debounce](https://vanillajstoolkit.com/helpers/debounce/)
|
|
88
88
|
* @license (c) 2021 Chris Ferdinandi, MIT License, https://gomakethings.com
|
|
89
|
-
*/function debounceRaf(n){let e;return function(...t){let
|
|
89
|
+
*/function debounceRaf(n){let e;return function(...t){let o=this;e&&window.cancelAnimationFrame(e),e=window.requestAnimationFrame(function(){n.apply(o,t);});}}
|
|
90
90
|
|
|
91
91
|
/**
|
|
92
92
|
* Debounce function (with `Promise`)
|
|
@@ -94,17 +94,17 @@ let debounce=(e,t,l)=>{let n;return function(...u){let o=this,i=l&&!n;n&&clearTi
|
|
|
94
94
|
* @category function
|
|
95
95
|
* @borrows [chodorowicz/ts-debounce](https://github.com/chodorowicz/ts-debounce)
|
|
96
96
|
* @license MIT: Jakub Chodorowicz
|
|
97
|
-
*/let debouncePromise=(e,t=50,
|
|
97
|
+
*/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};
|
|
98
98
|
|
|
99
99
|
let decode=e=>e.replace(/.{3}/g,e=>String.fromCharCode(parseInt(e,10)));
|
|
100
100
|
|
|
101
|
-
function Defer(){let e=this||{},t=e.promise=new Promise((t,
|
|
101
|
+
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}
|
|
102
102
|
|
|
103
103
|
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);});}}};
|
|
104
104
|
|
|
105
105
|
let encode=e=>e.replace(/./g,e=>("00"+e.charCodeAt(0)).slice(-3));
|
|
106
106
|
|
|
107
|
-
let ensureInt=
|
|
107
|
+
let ensureInt=e=>"string"==typeof e?parseInt(e,10):Math.round(e);
|
|
108
108
|
|
|
109
109
|
let isString=r=>"String"===getType(r);
|
|
110
110
|
|
|
@@ -112,7 +112,7 @@ let errorToString=o=>o instanceof Error?o.message:isString(o)?o:"";
|
|
|
112
112
|
|
|
113
113
|
let escapeRegExp=e=>e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&");
|
|
114
114
|
|
|
115
|
-
let findDuplicatedIndexes=e=>{let t={};for(let
|
|
115
|
+
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};
|
|
116
116
|
|
|
117
117
|
let forin=(e,o)=>{for(let r in e)o(r,e[r]);};
|
|
118
118
|
|
|
@@ -124,15 +124,15 @@ let getEmptyArray=t=>Array.from({length:isNumber(t)?t:parseInt(t,10)});
|
|
|
124
124
|
|
|
125
125
|
let getKeys=Object.keys;
|
|
126
126
|
|
|
127
|
-
let getMediaQueryWidthResolvers=
|
|
127
|
+
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)}}};
|
|
128
128
|
|
|
129
|
-
let getMediaQueryWidthTailwindScreens=t=>{let r=getMediaQueryWidthResolvers(t);return Object.keys(t).reduce((e,i,
|
|
129
|
+
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},{})};
|
|
130
130
|
|
|
131
131
|
let getNonce=()=>isUndefined(__webpack_nonce__)?null:__webpack_nonce__;
|
|
132
132
|
|
|
133
133
|
let getParamAsString=t=>(isArray(t)?t[0]:t)||"";
|
|
134
134
|
|
|
135
|
-
let getParamAmong=(
|
|
135
|
+
let getParamAmong=(e,r=[])=>{let a=getParamAsString(e);return r.includes(a)?a:null};
|
|
136
136
|
|
|
137
137
|
let getParamAsInt=(r,e=null)=>{let a=getParamAsString(r);return a?parseInt(a,10):e};
|
|
138
138
|
|
|
@@ -142,13 +142,13 @@ let getUrlHashPathname=(a="")=>(a||location.hash).split("?")[0].replace(/^#\//,"
|
|
|
142
142
|
|
|
143
143
|
let isBrowser="undefined"!=typeof window;
|
|
144
144
|
|
|
145
|
-
let getUrlPathnameParts=(
|
|
145
|
+
let getUrlPathnameParts=(e="")=>(e||(isBrowser?location.pathname:"")).replace(/^\//,"").split("/").filter(Boolean);
|
|
146
146
|
|
|
147
|
-
let getUrlQueryParams=r=>{let t={},
|
|
147
|
+
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};
|
|
148
148
|
|
|
149
149
|
let imgEmptyPixel="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mNkYAAAAAYAAjCB0C8AAAAASUVORK5CYII=";
|
|
150
150
|
|
|
151
|
-
let t$
|
|
151
|
+
let t$1=/^(?:[a-z+]+:)?\/\//i;let isAbsoluteUrl=e=>t$1.test(e);
|
|
152
152
|
|
|
153
153
|
let isAnyObject=t=>"Object"===getType(t);
|
|
154
154
|
|
|
@@ -168,23 +168,23 @@ let isEmptyString=t=>""===t;
|
|
|
168
168
|
|
|
169
169
|
let isError=o=>"Error"===getType(o);
|
|
170
170
|
|
|
171
|
-
let isExternalUrl=(r,t)=>{let
|
|
171
|
+
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])};
|
|
172
172
|
|
|
173
173
|
let isFile=i=>"File"===getType(i);
|
|
174
174
|
|
|
175
|
-
let isFloat=
|
|
175
|
+
let isFloat=o=>isNumber(o)&&o%1!=0;
|
|
176
176
|
|
|
177
|
-
let isFormData=
|
|
177
|
+
let isFormData=a=>"FormData"===getType(a);
|
|
178
178
|
|
|
179
179
|
let isFullArray=l=>isArray(l)&&l.length>0;
|
|
180
180
|
|
|
181
181
|
let isFullObject=t=>isPlainObject(t)&&Object.keys(t).length>0;
|
|
182
182
|
|
|
183
|
-
let isFullString=
|
|
183
|
+
let isFullString=i=>isString(i)&&""!==i;
|
|
184
184
|
|
|
185
185
|
let isFunction=t=>"function"==typeof t;
|
|
186
186
|
|
|
187
|
-
let isInt=
|
|
187
|
+
let isInt=e=>isNumber(e)&&e%1==0;
|
|
188
188
|
|
|
189
189
|
let isMap=e=>"Map"===getType(e);
|
|
190
190
|
|
|
@@ -192,7 +192,7 @@ let isNaNValue=N=>"Number"===getType(N)&&isNaN(N);
|
|
|
192
192
|
|
|
193
193
|
let isNegativeNumber=r=>isNumber(r)&&r<0;
|
|
194
194
|
|
|
195
|
-
function isOneOf(
|
|
195
|
+
function isOneOf(e,n,t,f,r){return O=>e(O)||n(O)||!!t&&t(O)||!!f&&f(O)||!!r&&r(O)}
|
|
196
196
|
|
|
197
197
|
let isNullOrUndefined=isOneOf(isNull,isUndefined);
|
|
198
198
|
|
|
@@ -218,9 +218,9 @@ let isServerNow=()=>isUndefined(window);
|
|
|
218
218
|
|
|
219
219
|
let isSet=t=>"Set"===getType(t);
|
|
220
220
|
|
|
221
|
-
let isType=(r
|
|
221
|
+
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)};
|
|
222
222
|
|
|
223
|
-
let isWeakMap=
|
|
223
|
+
let isWeakMap=a=>"WeakMap"===getType(a);
|
|
224
224
|
|
|
225
225
|
let isWeakSet=t=>"WeakSet"===getType(t);
|
|
226
226
|
|
|
@@ -230,9 +230,9 @@ let lowercase=e=>(e||"").toLowerCase();
|
|
|
230
230
|
|
|
231
231
|
let mapListBy=(e=[],t="")=>e.reduce((e,p)=>(e[p[t]]=p,e),{});
|
|
232
232
|
|
|
233
|
-
let removeAccents=(t="",r=accentsSets)=>{let c=r.length;for(;c--;){let[e,
|
|
233
|
+
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};
|
|
234
234
|
|
|
235
|
-
let
|
|
235
|
+
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};
|
|
236
236
|
|
|
237
237
|
let mbToBytes=e=>1e6*e;
|
|
238
238
|
|
|
@@ -240,47 +240,47 @@ let mergeObjects=(r,...i)=>{if(!i.length)return r;let m=i.shift();return void 0=
|
|
|
240
240
|
|
|
241
241
|
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};
|
|
242
242
|
|
|
243
|
-
let moveSortableArrayItemByKey=(e,r,t,l)=>{let
|
|
243
|
+
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]};
|
|
244
244
|
|
|
245
245
|
let noop=()=>void 0;
|
|
246
246
|
|
|
247
|
-
let
|
|
247
|
+
let removeTrailingSlash=e=>(e||"").replace(/\/*$/,"");
|
|
248
248
|
|
|
249
|
-
let normaliseUrlPathname=(r="")=>
|
|
249
|
+
let normaliseUrlPathname=(r="")=>removeTrailingSlash(r.replace(/\/+/g,"/"));
|
|
250
250
|
|
|
251
|
-
let normaliseUrl=(e="")=>
|
|
251
|
+
let normaliseUrl=(e="")=>removeTrailingSlash(e.replace(/(:\/\/)|(\/)+/g,"$1$2"));
|
|
252
252
|
|
|
253
|
-
let objectFlat=(e,t=".",
|
|
253
|
+
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},{});
|
|
254
254
|
|
|
255
|
-
let objectFlip=(e,t)=>Object.fromEntries(Object.entries(e).map(([e,
|
|
255
|
+
let objectFlip=(e,t)=>Object.fromEntries(Object.entries(e).map(([e,o])=>[o,t?t(e):e]));
|
|
256
256
|
|
|
257
|
-
let objectPick=(e,t)=>{let
|
|
257
|
+
let objectPick=(e,t)=>{let o={},r=t.length;for(;r--;)o[t[r]]=e[t[r]];return o};
|
|
258
258
|
|
|
259
259
|
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;
|
|
260
260
|
|
|
261
|
-
let objectOmit=(e,t)=>Object.keys(e).reduce((c,
|
|
261
|
+
let objectOmit=(e,t)=>Object.keys(e).reduce((c,o)=>(t.includes(o)||(c[o]=e[o]),c),{});
|
|
262
262
|
|
|
263
263
|
let objectSort=(t,e)=>Object.fromEntries(Object.entries(t).sort(e));
|
|
264
264
|
|
|
265
|
-
let objectSortByKeysMatching=(
|
|
265
|
+
let objectSortByKeysMatching=(o,e)=>objectSort(o,([t],[o])=>t===e?-1:t.localeCompare(o));
|
|
266
266
|
|
|
267
267
|
let objectToArray=(e,t)=>Object.keys(e).map(t);
|
|
268
268
|
|
|
269
|
-
let t
|
|
269
|
+
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};
|
|
270
270
|
|
|
271
271
|
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]}};
|
|
272
272
|
|
|
273
|
-
let quaranteneProps=(e,t)=>{let r={_:{}};for(let
|
|
273
|
+
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};
|
|
274
274
|
|
|
275
|
-
let randomInt=(o
|
|
275
|
+
let randomInt=(t,o)=>Math.floor(Math.random()*(o-t+1)+t);
|
|
276
276
|
|
|
277
277
|
let randomKey=e=>{let t=Object.keys(e);return t[t.length*Math.random()<<0]};
|
|
278
278
|
|
|
279
|
-
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
|
|
279
|
+
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}
|
|
280
280
|
|
|
281
281
|
let defaultAttributesClient={path:"/"};
|
|
282
282
|
|
|
283
|
-
let
|
|
283
|
+
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};
|
|
284
284
|
|
|
285
285
|
let removeCookie=(r,i={})=>{setCookie(r,"",{...defaultAttributesClient,...i,expires:-1});};
|
|
286
286
|
|
|
@@ -290,25 +290,25 @@ let removeIndexesFromArray=(e,r)=>{let t=[];for(let o=0;o<e.length;o++)r.hasOwnP
|
|
|
290
290
|
|
|
291
291
|
let removeDuplicatesComparing=(o,m)=>removeIndexesFromArray(m,findDuplicatedIndexes(o));
|
|
292
292
|
|
|
293
|
-
let removeUrlQueryParams=(t,l=[])=>{let
|
|
293
|
+
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)};
|
|
294
294
|
|
|
295
295
|
let round=(e,r,t)=>r?parseFloat(e.toFixed(r).replace(t?"":/\.+0*$/,"")):parseInt(e+"",10);
|
|
296
296
|
|
|
297
|
-
let roundTo=(e,n=2)=>{if(isFinite(e)&&!isNaN(e)){let
|
|
297
|
+
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"),""};
|
|
298
298
|
|
|
299
|
-
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
|
|
299
|
+
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};
|
|
300
300
|
|
|
301
|
-
let shuffle=
|
|
301
|
+
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};
|
|
302
302
|
|
|
303
|
-
let slugify=(c
|
|
303
|
+
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);
|
|
304
304
|
|
|
305
305
|
let split=(t,l)=>t.split(l);
|
|
306
306
|
|
|
307
|
-
let splitReverse=(e,
|
|
307
|
+
let splitReverse=(e,t)=>e.split(t).reverse();
|
|
308
308
|
|
|
309
|
-
let swapMap=(e={})=>{let t={};for(let
|
|
309
|
+
let swapMap=(e={})=>{let t={};for(let p in e)t[e[p]]=p;return t};
|
|
310
310
|
|
|
311
|
-
let throttle=(t,e,
|
|
311
|
+
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)}};
|
|
312
312
|
|
|
313
313
|
/**
|
|
314
314
|
* @category text
|
|
@@ -317,21 +317,21 @@ let throttle=(t,e,n)=>{let r;return function(...i){if(n=n||this,!r)return t.appl
|
|
|
317
317
|
* @license Blake Embrey (hello@blakeembrey.com)
|
|
318
318
|
*/let titleCase=e=>e?e.replace(/\w\S*/g,e=>e.charAt(0).toUpperCase()+e.substring(1).toLowerCase()):"";
|
|
319
319
|
|
|
320
|
-
let toNumber=(
|
|
320
|
+
let toNumber=(r,t)=>isNumber(r)?r:r?parseFloat(r):t||0;
|
|
321
321
|
|
|
322
|
-
let toRgba=(e,
|
|
322
|
+
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})`:""};
|
|
323
323
|
|
|
324
324
|
let transformToUrlPathname=o=>isString(o)?`/${encodeURIComponent(o.replace(/\s/g,"-").toLowerCase())}`:"";
|
|
325
325
|
|
|
326
326
|
let truncate=(t,e)=>t?t.length>e?t.substring(0,e)+"...":t:"";
|
|
327
327
|
|
|
328
|
-
let tryUntil=(e,
|
|
328
|
+
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);};
|
|
329
329
|
|
|
330
330
|
let e=0;let uid=(t="id")=>(e++,`${t}-${e}`);
|
|
331
331
|
|
|
332
|
-
let updateUrlQueryParams=(m
|
|
332
|
+
let updateUrlQueryParams=(a,m={})=>{let l=a.split("?"),u=l[1]?mergeUrlQueryParams(getUrlQueryParams(a),m):m;return l[0]+buildUrlQueryString(u)};
|
|
333
333
|
|
|
334
|
-
let updateLinkParams=(e,
|
|
334
|
+
let updateLinkParams=(e,a)=>{let t=updateUrlQueryParams(e.href,a);return e.href=t,t};
|
|
335
335
|
|
|
336
336
|
let uppercase=e=>(e||"").toUpperCase();
|
|
337
337
|
|
|
@@ -470,7 +470,7 @@ exports.removeCookie = removeCookie;
|
|
|
470
470
|
exports.removeDuplicatesByKey = removeDuplicatesByKey;
|
|
471
471
|
exports.removeDuplicatesComparing = removeDuplicatesComparing;
|
|
472
472
|
exports.removeIndexesFromArray = removeIndexesFromArray;
|
|
473
|
-
exports.
|
|
473
|
+
exports.removeTrailingSlash = removeTrailingSlash;
|
|
474
474
|
exports.removeUrlQueryParams = removeUrlQueryParams;
|
|
475
475
|
exports.round = round;
|
|
476
476
|
exports.roundTo = roundTo;
|
package/index.d.ts
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";
|