UNPKG

@descope/sdk-helpers

Version:
3 lines (2 loc) 4.25 kB
"use strict";var e=require("tslib");const t=e=>{const t=document.createElement("template");return t.innerHTML=e,t},r=(e,t)=>e.length===t.length&&e.every(((e,r)=>e===t[r])),s=e=>e.replace(/([a-z])([A-Z])/g,"$1-$2").replace(/[\s_.]+/g,"-").toLowerCase(),i=e=>null!==e&&"object"==typeof e&&Object.getPrototypeOf(e)===Object.prototype;var a,o,c,l;function n(e,t){const r=Object.getOwnPropertyNames(e),s=Object.getOwnPropertyNames(t);if(r.length!==s.length)return!1;for(let s=0;s<r.length;s+=1){const i=r[s],a=e[i],o=t[i];if(null===a||null===o){if(a!==o)return!1}else if("object"==typeof a&&"object"==typeof o){if(!n(a,o))return!1}else if(a!==o)return!1}return!0}a=new WeakMap,o=new WeakMap,c=new WeakMap,l=new WeakMap;const u=["=","+","-","@","\t","\r"],p=e=>{const t=(e=>e.length>0&&u.includes(e[0])?`'${e}`:e)(Array.isArray(e)?e.join("; "):String(null!=e?e:""));return t.includes(",")||t.includes('"')||t.includes("\n")||t.includes("\r")?`"${t.replace(/"/g,'""')}"`:t};exports.State=class{constructor(t={},{forceUpdate:r=!1}={}){a.set(this,void 0),o.set(this,{}),c.set(this,0),l.set(this,!0),this.update=t=>{const r="function"==typeof t?t(e.__classPrivateFieldGet(this,a,"f")):t,s=Object.assign(Object.assign({},e.__classPrivateFieldGet(this,a,"f")),r);if(e.__classPrivateFieldGet(this,l,"f")||!n(e.__classPrivateFieldGet(this,a,"f"),s)){const t=e.__classPrivateFieldGet(this,a,"f");e.__classPrivateFieldSet(this,a,s,"f"),Object.freeze(e.__classPrivateFieldGet(this,a,"f")),setTimeout((()=>{Object.values(e.__classPrivateFieldGet(this,o,"f")).forEach((e=>e(s,t,((e,t)=>r=>e[r]!==t[r])(s,t))))}),0)}},e.__classPrivateFieldSet(this,a,t,"f"),e.__classPrivateFieldSet(this,l,r,"f")}get current(){return Object.assign({},e.__classPrivateFieldGet(this,a,"f"))}subscribe(t){return e.__classPrivateFieldSet(this,c,e.__classPrivateFieldGet(this,c,"f")+1,"f"),e.__classPrivateFieldGet(this,o,"f")[e.__classPrivateFieldGet(this,c,"f")]=t,e.__classPrivateFieldGet(this,c,"f").toString()}unsubscribe(t){const r=!!e.__classPrivateFieldGet(this,o,"f")[t];return r&&delete e.__classPrivateFieldGet(this,o,"f")[t],r}unsubscribeAll(){return e.__classPrivateFieldSet(this,o,{},"f"),!0}},exports.compareArrays=r,exports.compose=function(...e){return t=>e.reduce(((e,t)=>t(e)),t)},exports.createFlowTemplate=(e={})=>{const r=t("<descope-wc></descope-wc>");return Object.entries(e).forEach((([e,t])=>{r.content.querySelector("descope-wc").setAttribute(s(e),(e=>"string"==typeof e?e:i(e)?JSON.stringify(e):"")(t))})),r},exports.createSingletonMixin=e=>{const t=Symbol((e=>{const t=e.toString();let r=0;for(let e=0;e<t.length;e++)r=(r<<5)-r+t.charCodeAt(e),r&=r;return r.toString(16)})(e));return r=>{if(r[t])return r;const s=e(r);return s[t]=!0,s}},exports.createTemplate=t,exports.debounce=(e,t=500)=>{let r;return function(...s){clearTimeout(r),r=setTimeout((()=>e.apply(this,s)),t)}},exports.decodeJWT=e=>{try{const t=e.split(".")[1].replace(/-/g,"+").replace(/_/g,"/"),r=decodeURIComponent(atob(t).split("").map((e=>"%"+("00"+e.charCodeAt(0).toString(16)).slice(-2))).join(""));return JSON.parse(r)}catch(e){return null}},exports.downloadCsv=(e,t)=>{const r=new Blob(["\ufeff"+e],{type:"text/csv;charset=utf-8;"}),s=URL.createObjectURL(r),i=document.createElement("a");i.href=s,i.setAttribute("download",t),document.body.appendChild(i),i.click(),document.body.removeChild(i),URL.revokeObjectURL(s)},exports.escapeCsvValue=p,exports.generateCsv=(e,t)=>[t.map((e=>p(e.header))).join(","),...e.map((e=>t.map((t=>p(e[t.path]))).join(",")))].join("\n"),exports.getUserLocale=function(e){if(e)return{locale:e.toLowerCase(),fallback:e.toLowerCase()};const t=navigator.language;return t?t.includes("-")?{locale:t.toLowerCase(),fallback:t.split("-")[0].toLowerCase()}:{locale:t.toLowerCase(),fallback:t.toLowerCase()}:{locale:"",fallback:""}},exports.isObjEmpty=e=>0===Object.keys(e).length&&e.constructor===Object,exports.isPlainObject=i,exports.kebabCase=s,exports.pathJoin=(...e)=>e.join("/").replace(/\/+/g,"/"),exports.pluralize=e=>(t,...r)=>t.reduce(((t,s,i)=>{var a;return`${t}${s}${(null===(a=null==r?void 0:r[i])||void 0===a?void 0:a[e>1?1:0])||""}`}),""),exports.withMemCache=e=>{let t,s;return(...i)=>(t&&r(t,i)||(t=i,s=e(...i)),s)}; //# sourceMappingURL=index.cjs.js.map