@oardi/ts-utils 0.0.6

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 (43) hide show
  1. package/extensions/array-extension.d.ts +12 -0
  2. package/extensions/array-extension.d.ts.map +1 -0
  3. package/extensions/date-extension.d.ts +16 -0
  4. package/extensions/date-extension.d.ts.map +1 -0
  5. package/extensions/index.d.ts +4 -0
  6. package/extensions/index.d.ts.map +1 -0
  7. package/extensions/string-extensions.d.ts +7 -0
  8. package/extensions/string-extensions.d.ts.map +1 -0
  9. package/helpers/enum.helper.d.ts +6 -0
  10. package/helpers/enum.helper.d.ts.map +1 -0
  11. package/helpers/index.d.ts +2 -0
  12. package/helpers/index.d.ts.map +1 -0
  13. package/helpers/sort.helper.d.ts +2 -0
  14. package/helpers/sort.helper.d.ts.map +1 -0
  15. package/index.cjs.js +15 -0
  16. package/index.d.ts +3 -0
  17. package/index.d.ts.map +1 -0
  18. package/index.es.d.ts +1 -0
  19. package/index.es.js +714 -0
  20. package/index.umd.js +15 -0
  21. package/interfaces/index.d.ts +2 -0
  22. package/interfaces/index.d.ts.map +1 -0
  23. package/interfaces/keyvalue.interface.d.ts +5 -0
  24. package/interfaces/keyvalue.interface.d.ts.map +1 -0
  25. package/package.json +22 -0
  26. package/services/browser.service.d.ts +49 -0
  27. package/services/browser.service.d.ts.map +1 -0
  28. package/services/clipboard.service.d.ts +4 -0
  29. package/services/clipboard.service.d.ts.map +1 -0
  30. package/services/file.service.d.ts +11 -0
  31. package/services/file.service.d.ts.map +1 -0
  32. package/services/index.d.ts +7 -0
  33. package/services/index.d.ts.map +1 -0
  34. package/services/local.service.d.ts +8 -0
  35. package/services/local.service.d.ts.map +1 -0
  36. package/services/logger.service.d.ts +24 -0
  37. package/services/logger.service.d.ts.map +1 -0
  38. package/services/token.service.d.ts +9 -0
  39. package/services/token.service.d.ts.map +1 -0
  40. package/types/dictionary.type.d.ts +2 -0
  41. package/types/dictionary.type.d.ts.map +1 -0
  42. package/types/index.d.ts +8 -0
  43. package/types/index.d.ts.map +1 -0
@@ -0,0 +1,12 @@
1
+ import { Dictionary } from '../types';
2
+ export {};
3
+ declare global {
4
+ interface Array<T> {
5
+ groupBy(valueGetter: (a: T) => string): Dictionary<T[]>;
6
+ removeBy<T, G>(valueGetter: (a: T) => G, val: G): T[];
7
+ orderBy<T, G>(valueGetter: (a: T) => G, ascending?: boolean): T[];
8
+ filterBy<G>(key?: string): G[];
9
+ distinct<T>(comparator?: (obj1: unknown, obj2: unknown) => boolean): T[];
10
+ }
11
+ }
12
+ //# sourceMappingURL=array-extension.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"array-extension.d.ts","sourceRoot":"","sources":["../../../src/lib/extensions/array-extension.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAEtC,OAAO,EAAE,CAAC;AAEV,OAAO,CAAC,MAAM,CAAC;IACd,UAAU,KAAK,CAAC,CAAC;QAChB,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,MAAM,GAAG,UAAU,CAAC,CAAC,EAAE,CAAC,CAAC;QACxD,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,WAAW,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC;QACtD,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,WAAW,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,SAAS,CAAC,EAAE,OAAO,GAAG,CAAC,EAAE,CAAC;QAClE,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,MAAM,GAAG,CAAC,EAAE,CAAC;QAC/B,QAAQ,CAAC,CAAC,EAAE,UAAU,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,KAAK,OAAO,GAAG,CAAC,EAAE,CAAC;KACzE;CACD"}
@@ -0,0 +1,16 @@
1
+ import { ConfigType, ManipulateType, OpUnitType, UnitType } from 'dayjs';
2
+ declare global {
3
+ interface Date {
4
+ isAfter(date: ConfigType, unit?: OpUnitType): boolean;
5
+ isBefore(date: ConfigType, unit?: OpUnitType): boolean;
6
+ format(template?: string): string;
7
+ isValid(): boolean;
8
+ add(value: number, unit?: ManipulateType): Date;
9
+ subtract(value: number, unit?: ManipulateType): Date;
10
+ firstDayOfMonth(): Date;
11
+ lastDayOfMonth(): Date;
12
+ set(unit: UnitType, value: number): Date;
13
+ diff(date: Date, unit?: UnitType): number;
14
+ }
15
+ }
16
+ //# sourceMappingURL=date-extension.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"date-extension.d.ts","sourceRoot":"","sources":["../../../src/lib/extensions/date-extension.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,cAAc,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAK9E,OAAO,CAAC,MAAM,CAAC;IACd,UAAU,IAAI;QACb,OAAO,CAAC,IAAI,EAAE,UAAU,EAAE,IAAI,CAAC,EAAE,UAAU,GAAG,OAAO,CAAC;QACtD,QAAQ,CAAC,IAAI,EAAE,UAAU,EAAE,IAAI,CAAC,EAAE,UAAU,GAAG,OAAO,CAAC;QACvD,MAAM,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;QAClC,OAAO,IAAI,OAAO,CAAC;QACnB,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,cAAc,GAAG,IAAI,CAAC;QAChD,QAAQ,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,cAAc,GAAG,IAAI,CAAC;QACrD,eAAe,IAAI,IAAI,CAAC;QACxB,cAAc,IAAI,IAAI,CAAC;QACvB,GAAG,CAAC,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;QACzC,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,EAAE,QAAQ,GAAG,MAAM,CAAC;KAC1C;CACD"}
@@ -0,0 +1,4 @@
1
+ export * from './array-extension';
2
+ export * from './date-extension';
3
+ export * from './string-extensions';
4
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/lib/extensions/index.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAC;AAClC,cAAc,kBAAkB,CAAC;AACjC,cAAc,qBAAqB,CAAC"}
@@ -0,0 +1,7 @@
1
+ export {};
2
+ declare global {
3
+ interface String {
4
+ capitalize(): string;
5
+ }
6
+ }
7
+ //# sourceMappingURL=string-extensions.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"string-extensions.d.ts","sourceRoot":"","sources":["../../../src/lib/extensions/string-extensions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC;AAEV,OAAO,CAAC,MAAM,CAAC;IACd,UAAU,MAAM;QACf,UAAU,IAAI,MAAM,CAAC;KACrB;CACD"}
@@ -0,0 +1,6 @@
1
+ import { IKeyValue } from '../interfaces/keyvalue.interface';
2
+ export declare class EnumHelper {
3
+ static getEnumValue<T extends object>(enumObj: T, key: string): T[keyof T];
4
+ static getKeyValues<T extends object>(enumObj: T): IKeyValue<string>[];
5
+ }
6
+ //# sourceMappingURL=enum.helper.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"enum.helper.d.ts","sourceRoot":"","sources":["../../../src/lib/helpers/enum.helper.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,kCAAkC,CAAC;AAE7D,qBAAa,UAAU;IACtB,MAAM,CAAC,YAAY,CAAC,CAAC,SAAS,MAAM,EAAE,OAAO,EAAE,CAAC,EAAE,GAAG,EAAE,MAAM,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC;IAQ1E,MAAM,CAAC,YAAY,CAAC,CAAC,SAAS,MAAM,EAAE,OAAO,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,CAAC,EAAE;CAQtE"}
@@ -0,0 +1,2 @@
1
+ export * from './sort.helper';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/lib/helpers/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAC"}
@@ -0,0 +1,2 @@
1
+ export declare const sortHelper: <T, G>(a: T, b: T, valueGetter: (a: T) => G, ascending?: boolean) => number;
2
+ //# sourceMappingURL=sort.helper.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sort.helper.d.ts","sourceRoot":"","sources":["../../../src/lib/helpers/sort.helper.ts"],"names":[],"mappings":"AA4BA,eAAO,MAAM,UAAU,GAAI,CAAC,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,cAAc,OAAO,KAAG,MAI5F,CAAC"}
package/index.cjs.js ADDED
@@ -0,0 +1,15 @@
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});var Re=(b=>(b.opera="opera",b.firefox="firefox",b.safari="safari",b.ie="ie",b.edge="edge",b.edg="edg",b.electron="electron",b.chrome="chrome",b.iOsSafari="iOsSafari",b.edgiOs="edgiOs",b.headlessChrome="headlessChrome",b))(Re||{});const ce=[{breakpoint:"xs",screenWidth:0},{breakpoint:"sm",screenWidth:375},{breakpoint:"md",screenWidth:768},{breakpoint:"lg",screenWidth:992},{breakpoint:"xl",screenWidth:1200},{breakpoint:"xxl",screenWidth:1400},{breakpoint:"xxxl",screenWidth:1600}];class xe{screenWidth=0;lastBreakpoint;resizeListener;resizeCallbacks=new Set;constructor(){typeof window<"u"&&(this.screenWidth=window.innerWidth,this.resizeListener=this.onResize.bind(this),window.addEventListener("resize",this.resizeListener),this.lastBreakpoint=this.getBreakpointBySize(this.screenWidth))}destroy(){typeof window<"u"&&window.removeEventListener("resize",this.resizeListener),this.resizeCallbacks.clear()}onBreakpointChange(i){this.resizeCallbacks.add(i)}offBreakpointChange(i){this.resizeCallbacks.delete(i)}getCurrentBrowser(){const i=navigator.userAgent.toLowerCase();if(this.isOpera())return"opera";if(this.isFirefox())return"firefox";if(this.isSafari())return"safari";if(this.isIE())return"ie";if(this.isEdge())return"edge";if(this.isEdg())return"edg";if(this.isElectron(i))return"electron";if(this.isChrome())return"chrome";if(this.isIOsSafari(i))return"iOsSafari";if(this.isEdgiOs(i))return"edgiOs";if(this.isHeadlessChrome(i))return"headlessChrome";throw new Error("Browser could not be detected: "+i)}getBreakpointBySize(i=this.screenWidth){let u=ce[0];for(const l of ce)l.screenWidth<=i&&(u=l);return u}isScreenGreaterThan(i){const u=this.getBreakpoint(i);return this.screenWidth>(u?.screenWidth??0)}isScreenSmallerThan(i){const u=this.getBreakpoint(i);return this.screenWidth<(u?.screenWidth??0)}getBreakpoint(i){return ce.find(u=>u.breakpoint===i)}isOpera(){return typeof window<"u"&&(!!window.opr&&!!window.opr.addons||!!window.opera||navigator.userAgent.includes("OPR/"))}isFirefox(){return typeof InstallTrigger<"u"}isSafari(){return/constructor/i.test(window.HTMLElement)||(i=>i.toString()==="[object SafariRemoteNotification]")(!window.safari||window.safari&&window.safari.pushNotification)}isIE(){return!!document.documentMode}isEdge(){return!this.isIE()&&!!window.StyleMedia}isEdg(){return navigator.userAgent.toLowerCase().includes("edg")}isElectron(i){return i.includes("electron")}isChrome(){return typeof window<"u"&&!!window.chrome&&!this.isOpera()&&!this.isEdge()&&!this.isEdg()&&!this.isFirefox()&&!this.isSafari()&&!this.isIE()}isIOsSafari(i){return i.includes("iphone")||i.includes("ipad")||i.includes("macintosh")&&"ontouchend"in document&&i.includes("safari")}isEdgiOs(i){return i.includes("edgios")}isHeadlessChrome(i){return i.includes("headlesschrome")}onResize(i){const u=i.target.innerWidth;this.screenWidth=u;const l=this.getBreakpointBySize(u);this.lastBreakpoint?.breakpoint!==l?.breakpoint&&(this.lastBreakpoint=l,this.resizeCallbacks.forEach(O=>O(l)))}}class Oe{copy(i){return navigator.clipboard.writeText(i)}}var fe=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{},pe={exports:{}},Ce=pe.exports,be;function Le(){return be||(be=1,function(b,i){(function(u,l){l()})(Ce,function(){function u(n,p){return typeof p>"u"?p={autoBom:!1}:typeof p!="object"&&(console.warn("Deprecated: Expected third argument to be a object"),p={autoBom:!p}),p.autoBom&&/^\s*(?:text\/\S*|application\/xml|\S*\/\S*\+xml)\s*;.*charset\s*=\s*utf-8/i.test(n.type)?new Blob(["\uFEFF",n],{type:n.type}):n}function l(n,p,P){var k=new XMLHttpRequest;k.open("GET",n),k.responseType="blob",k.onload=function(){ie(k.response,p,P)},k.onerror=function(){console.error("could not download file")},k.send()}function O(n){var p=new XMLHttpRequest;p.open("HEAD",n,!1);try{p.send()}catch{}return 200<=p.status&&299>=p.status}function C(n){try{n.dispatchEvent(new MouseEvent("click"))}catch{var p=document.createEvent("MouseEvents");p.initMouseEvent("click",!0,!0,window,0,0,0,80,20,!1,!1,!1,!1,0,null),n.dispatchEvent(p)}}var q=typeof window=="object"&&window.window===window?window:typeof self=="object"&&self.self===self?self:typeof fe=="object"&&fe.global===fe?fe:void 0,re=q.navigator&&/Macintosh/.test(navigator.userAgent)&&/AppleWebKit/.test(navigator.userAgent)&&!/Safari/.test(navigator.userAgent),ie=q.saveAs||(typeof window!="object"||window!==q?function(){}:"download"in HTMLAnchorElement.prototype&&!re?function(n,p,P){var k=q.URL||q.webkitURL,F=document.createElement("a");p=p||n.name||"download",F.download=p,F.rel="noopener",typeof n=="string"?(F.href=n,F.origin===location.origin?C(F):O(F.href)?l(n,p,P):C(F,F.target="_blank")):(F.href=k.createObjectURL(n),setTimeout(function(){k.revokeObjectURL(F.href)},4e4),setTimeout(function(){C(F)},0))}:"msSaveOrOpenBlob"in navigator?function(n,p,P){if(p=p||n.name||"download",typeof n!="string")navigator.msSaveOrOpenBlob(u(n,P),p);else if(O(n))l(n,p,P);else{var k=document.createElement("a");k.href=n,k.target="_blank",setTimeout(function(){C(k)})}}:function(n,p,P,k){if(k=k||open("","_blank"),k&&(k.document.title=k.document.body.innerText="downloading..."),typeof n=="string")return l(n,p,P);var F=n.type==="application/octet-stream",ne=/constructor/i.test(q.HTMLElement)||q.safari,ue=/CriOS\/[\d]+/.test(navigator.userAgent);if((ue||F&&ne||re)&&typeof FileReader<"u"){var Z=new FileReader;Z.onloadend=function(){var V=Z.result;V=ue?V:V.replace(/^data:[^;]*;/,"data:attachment/file;"),k?k.location.href=V:location=V,k=null},Z.readAsDataURL(n)}else{var se=q.URL||q.webkitURL,le=se.createObjectURL(n);k?k.location=le:location.href=le,k=null,setTimeout(function(){se.revokeObjectURL(le)},4e4)}});q.saveAs=ie.saveAs=ie,b.exports=ie})}(pe)),pe.exports}var Ae=Le(),ge={exports:{}};/* @license
2
+ Papa Parse
3
+ v5.5.3
4
+ https://github.com/mholt/PapaParse
5
+ License: MIT
6
+ */var Te=ge.exports,Ee;function Ie(){return Ee||(Ee=1,function(b,i){((u,l)=>{b.exports=l()})(Te,function u(){var l=typeof self<"u"?self:typeof window<"u"?window:l!==void 0?l:{},O,C=!l.document&&!!l.postMessage,q=l.IS_PAPA_WORKER||!1,re={},ie=0,n={};function p(e){this._handle=null,this._finished=!1,this._completed=!1,this._halted=!1,this._input=null,this._baseIndex=0,this._partialLine="",this._rowCount=0,this._start=0,this._nextChunk=null,this.isFirstChunk=!0,this._completeResults={data:[],errors:[],meta:{}},(function(t){var r=_e(t);r.chunkSize=parseInt(r.chunkSize),t.step||t.chunk||(r.chunkSize=null),this._handle=new ue(r),(this._handle.streamer=this)._config=r}).call(this,e),this.parseChunk=function(t,r){var a=parseInt(this._config.skipFirstNLines)||0;if(this.isFirstChunk&&0<a){let g=this._config.newline;g||(s=this._config.quoteChar||'"',g=this._handle.guessLineEndings(t,s)),t=[...t.split(g).slice(a)].join(g)}this.isFirstChunk&&S(this._config.beforeFirstChunk)&&(s=this._config.beforeFirstChunk(t))!==void 0&&(t=s),this.isFirstChunk=!1,this._halted=!1;var a=this._partialLine+t,s=(this._partialLine="",this._handle.parse(a,this._baseIndex,!this._finished));if(!this._handle.paused()&&!this._handle.aborted()){if(t=s.meta.cursor,a=(this._finished||(this._partialLine=a.substring(t-this._baseIndex),this._baseIndex=t),s&&s.data&&(this._rowCount+=s.data.length),this._finished||this._config.preview&&this._rowCount>=this._config.preview),q)l.postMessage({results:s,workerId:n.WORKER_ID,finished:a});else if(S(this._config.chunk)&&!r){if(this._config.chunk(s,this._handle),this._handle.paused()||this._handle.aborted())return void(this._halted=!0);this._completeResults=s=void 0}return this._config.step||this._config.chunk||(this._completeResults.data=this._completeResults.data.concat(s.data),this._completeResults.errors=this._completeResults.errors.concat(s.errors),this._completeResults.meta=s.meta),this._completed||!a||!S(this._config.complete)||s&&s.meta.aborted||(this._config.complete(this._completeResults,this._input),this._completed=!0),a||s&&s.meta.paused||this._nextChunk(),s}this._halted=!0},this._sendError=function(t){S(this._config.error)?this._config.error(t):q&&this._config.error&&l.postMessage({workerId:n.WORKER_ID,error:t,finished:!1})}}function P(e){var t;(e=e||{}).chunkSize||(e.chunkSize=n.RemoteChunkSize),p.call(this,e),this._nextChunk=C?function(){this._readChunk(),this._chunkLoaded()}:function(){this._readChunk()},this.stream=function(r){this._input=r,this._nextChunk()},this._readChunk=function(){if(this._finished)this._chunkLoaded();else{if(t=new XMLHttpRequest,this._config.withCredentials&&(t.withCredentials=this._config.withCredentials),C||(t.onload=ee(this._chunkLoaded,this),t.onerror=ee(this._chunkError,this)),t.open(this._config.downloadRequestBody?"POST":"GET",this._input,!C),this._config.downloadRequestHeaders){var r,a=this._config.downloadRequestHeaders;for(r in a)t.setRequestHeader(r,a[r])}var s;this._config.chunkSize&&(s=this._start+this._config.chunkSize-1,t.setRequestHeader("Range","bytes="+this._start+"-"+s));try{t.send(this._config.downloadRequestBody)}catch(g){this._chunkError(g.message)}C&&t.status===0&&this._chunkError()}},this._chunkLoaded=function(){t.readyState===4&&(t.status<200||400<=t.status?this._chunkError():(this._start+=this._config.chunkSize||t.responseText.length,this._finished=!this._config.chunkSize||this._start>=(r=>(r=r.getResponseHeader("Content-Range"))!==null?parseInt(r.substring(r.lastIndexOf("/")+1)):-1)(t),this.parseChunk(t.responseText)))},this._chunkError=function(r){r=t.statusText||r,this._sendError(new Error(r))}}function k(e){(e=e||{}).chunkSize||(e.chunkSize=n.LocalChunkSize),p.call(this,e);var t,r,a=typeof FileReader<"u";this.stream=function(s){this._input=s,r=s.slice||s.webkitSlice||s.mozSlice,a?((t=new FileReader).onload=ee(this._chunkLoaded,this),t.onerror=ee(this._chunkError,this)):t=new FileReaderSync,this._nextChunk()},this._nextChunk=function(){this._finished||this._config.preview&&!(this._rowCount<this._config.preview)||this._readChunk()},this._readChunk=function(){var s=this._input,g=(this._config.chunkSize&&(g=Math.min(this._start+this._config.chunkSize,this._input.size),s=r.call(s,this._start,g)),t.readAsText(s,this._config.encoding));a||this._chunkLoaded({target:{result:g}})},this._chunkLoaded=function(s){this._start+=this._config.chunkSize,this._finished=!this._config.chunkSize||this._start>=this._input.size,this.parseChunk(s.target.result)},this._chunkError=function(){this._sendError(t.error)}}function F(e){var t;p.call(this,e=e||{}),this.stream=function(r){return t=r,this._nextChunk()},this._nextChunk=function(){var r,a;if(!this._finished)return r=this._config.chunkSize,t=r?(a=t.substring(0,r),t.substring(r)):(a=t,""),this._finished=!t,this.parseChunk(a)}}function ne(e){p.call(this,e=e||{});var t=[],r=!0,a=!1;this.pause=function(){p.prototype.pause.apply(this,arguments),this._input.pause()},this.resume=function(){p.prototype.resume.apply(this,arguments),this._input.resume()},this.stream=function(s){this._input=s,this._input.on("data",this._streamData),this._input.on("end",this._streamEnd),this._input.on("error",this._streamError)},this._checkIsFinished=function(){a&&t.length===1&&(this._finished=!0)},this._nextChunk=function(){this._checkIsFinished(),t.length?this.parseChunk(t.shift()):r=!0},this._streamData=ee(function(s){try{t.push(typeof s=="string"?s:s.toString(this._config.encoding)),r&&(r=!1,this._checkIsFinished(),this.parseChunk(t.shift()))}catch(g){this._streamError(g)}},this),this._streamError=ee(function(s){this._streamCleanUp(),this._sendError(s)},this),this._streamEnd=ee(function(){this._streamCleanUp(),a=!0,this._streamData("")},this),this._streamCleanUp=ee(function(){this._input.removeListener("data",this._streamData),this._input.removeListener("end",this._streamEnd),this._input.removeListener("error",this._streamError)},this)}function ue(e){var t,r,a,s,g=Math.pow(2,53),j=-g,N=/^\s*-?(\d+\.?|\.\d+|\d+\.\d+)([eE][-+]?\d+)?\s*$/,K=/^((\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+([+-][0-2]\d:[0-5]\d|Z))|(\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d([+-][0-2]\d:[0-5]\d|Z))|(\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d([+-][0-2]\d:[0-5]\d|Z)))$/,_=this,L=0,h=0,W=!1,f=!1,m=[],o={data:[],errors:[],meta:{}};function D(v){return e.skipEmptyLines==="greedy"?v.join("").trim()==="":v.length===1&&v[0].length===0}function I(){if(o&&a&&($("Delimiter","UndetectableDelimiter","Unable to auto-detect delimiting character; defaulted to '"+n.DefaultDelimiter+"'"),a=!1),e.skipEmptyLines&&(o.data=o.data.filter(function(d){return!D(d)})),M()){let d=function(T,z){S(e.transformHeader)&&(T=e.transformHeader(T,z)),m.push(T)};if(o)if(Array.isArray(o.data[0])){for(var v=0;M()&&v<o.data.length;v++)o.data[v].forEach(d);o.data.splice(0,1)}else o.data.forEach(d)}function y(d,T){for(var z=e.header?{}:[],E=0;E<d.length;E++){var R=E,w=d[E],w=((J,c)=>(x=>(e.dynamicTypingFunction&&e.dynamicTyping[x]===void 0&&(e.dynamicTyping[x]=e.dynamicTypingFunction(x)),(e.dynamicTyping[x]||e.dynamicTyping)===!0))(J)?c==="true"||c==="TRUE"||c!=="false"&&c!=="FALSE"&&((x=>{if(N.test(x)&&(x=parseFloat(x),j<x&&x<g))return 1})(c)?parseFloat(c):K.test(c)?new Date(c):c===""?null:c):c)(R=e.header?E>=m.length?"__parsed_extra":m[E]:R,w=e.transform?e.transform(w,R):w);R==="__parsed_extra"?(z[R]=z[R]||[],z[R].push(w)):z[R]=w}return e.header&&(E>m.length?$("FieldMismatch","TooManyFields","Too many fields: expected "+m.length+" fields but parsed "+E,h+T):E<m.length&&$("FieldMismatch","TooFewFields","Too few fields: expected "+m.length+" fields but parsed "+E,h+T)),z}var A;o&&(e.header||e.dynamicTyping||e.transform)&&(A=1,!o.data.length||Array.isArray(o.data[0])?(o.data=o.data.map(y),A=o.data.length):o.data=y(o.data,0),e.header&&o.meta&&(o.meta.fields=m),h+=A)}function M(){return e.header&&m.length===0}function $(v,y,A,d){v={type:v,code:y,message:A},d!==void 0&&(v.row=d),o.errors.push(v)}S(e.step)&&(s=e.step,e.step=function(v){o=v,M()?I():(I(),o.data.length!==0&&(L+=v.data.length,e.preview&&L>e.preview?r.abort():(o.data=o.data[0],s(o,_))))}),this.parse=function(v,y,A){var d=e.quoteChar||'"',d=(e.newline||(e.newline=this.guessLineEndings(v,d)),a=!1,e.delimiter?S(e.delimiter)&&(e.delimiter=e.delimiter(v),o.meta.delimiter=e.delimiter):((d=((T,z,E,R,w)=>{var J,c,x,te;w=w||[","," ","|",";",n.RECORD_SEP,n.UNIT_SEP];for(var ae=0;ae<w.length;ae++){for(var Q,he=w[ae],U=0,G=0,B=0,H=(x=void 0,new se({comments:R,delimiter:he,newline:z,preview:10}).parse(T)),Y=0;Y<H.data.length;Y++)E&&D(H.data[Y])?B++:(Q=H.data[Y].length,G+=Q,x===void 0?x=Q:0<Q&&(U+=Math.abs(Q-x),x=Q));0<H.data.length&&(G/=H.data.length-B),(c===void 0||U<=c)&&(te===void 0||te<G)&&1.99<G&&(c=U,J=he,te=G)}return{successful:!!(e.delimiter=J),bestDelimiter:J}})(v,e.newline,e.skipEmptyLines,e.comments,e.delimitersToGuess)).successful?e.delimiter=d.bestDelimiter:(a=!0,e.delimiter=n.DefaultDelimiter),o.meta.delimiter=e.delimiter),_e(e));return e.preview&&e.header&&d.preview++,t=v,r=new se(d),o=r.parse(t,y,A),I(),W?{meta:{paused:!0}}:o||{meta:{paused:!1}}},this.paused=function(){return W},this.pause=function(){W=!0,r.abort(),t=S(e.chunk)?"":t.substring(r.getCharIndex())},this.resume=function(){_.streamer._halted?(W=!1,_.streamer.parseChunk(t,!0)):setTimeout(_.resume,3)},this.aborted=function(){return f},this.abort=function(){f=!0,r.abort(),o.meta.aborted=!0,S(e.complete)&&e.complete(o),t=""},this.guessLineEndings=function(T,d){T=T.substring(0,1048576);var d=new RegExp(Z(d)+"([^]*?)"+Z(d),"gm"),A=(T=T.replace(d,"")).split("\r"),d=T.split(`
7
+ `),T=1<d.length&&d[0].length<A[0].length;if(A.length===1||T)return`
8
+ `;for(var z=0,E=0;E<A.length;E++)A[E][0]===`
9
+ `&&z++;return z>=A.length/2?`\r
10
+ `:"\r"}}function Z(e){return e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function se(e){var t=(e=e||{}).delimiter,r=e.newline,a=e.comments,s=e.step,g=e.preview,j=e.fastMode,N=null,K=!1,_=e.quoteChar==null?'"':e.quoteChar,L=_;if(e.escapeChar!==void 0&&(L=e.escapeChar),(typeof t!="string"||-1<n.BAD_DELIMITERS.indexOf(t))&&(t=","),a===t)throw new Error("Comment character same as delimiter");a===!0?a="#":(typeof a!="string"||-1<n.BAD_DELIMITERS.indexOf(a))&&(a=!1),r!==`
11
+ `&&r!=="\r"&&r!==`\r
12
+ `&&(r=`
13
+ `);var h=0,W=!1;this.parse=function(f,m,o){if(typeof f!="string")throw new Error("Input must be a string");var D=f.length,I=t.length,M=r.length,$=a.length,v=S(s),y=[],A=[],d=[],T=h=0;if(!f)return U();if(j||j!==!1&&f.indexOf(_)===-1){for(var z=f.split(r),E=0;E<z.length;E++){if(d=z[E],h+=d.length,E!==z.length-1)h+=r.length;else if(o)return U();if(!a||d.substring(0,$)!==a){if(v){if(y=[],te(d.split(t)),G(),W)return U()}else te(d.split(t));if(g&&g<=E)return y=y.slice(0,g),U(!0)}}return U()}for(var R=f.indexOf(t,h),w=f.indexOf(r,h),J=new RegExp(Z(L)+Z(_),"g"),c=f.indexOf(_,h);;)if(f[h]===_)for(c=h,h++;;){if((c=f.indexOf(_,c+1))===-1)return o||A.push({type:"Quotes",code:"MissingQuotes",message:"Quoted field unterminated",row:y.length,index:h}),Q();if(c===D-1)return Q(f.substring(h,c).replace(J,_));if(_===L&&f[c+1]===L)c++;else if(_===L||c===0||f[c-1]!==L){R!==-1&&R<c+1&&(R=f.indexOf(t,c+1));var x=ae((w=w!==-1&&w<c+1?f.indexOf(r,c+1):w)===-1?R:Math.min(R,w));if(f.substr(c+1+x,I)===t){d.push(f.substring(h,c).replace(J,_)),f[h=c+1+x+I]!==_&&(c=f.indexOf(_,h)),R=f.indexOf(t,h),w=f.indexOf(r,h);break}if(x=ae(w),f.substring(c+1+x,c+1+x+M)===r){if(d.push(f.substring(h,c).replace(J,_)),he(c+1+x+M),R=f.indexOf(t,h),c=f.indexOf(_,h),v&&(G(),W))return U();if(g&&y.length>=g)return U(!0);break}A.push({type:"Quotes",code:"InvalidQuotes",message:"Trailing quote on quoted field is malformed",row:y.length,index:h}),c++}}else if(a&&d.length===0&&f.substring(h,h+$)===a){if(w===-1)return U();h=w+M,w=f.indexOf(r,h),R=f.indexOf(t,h)}else if(R!==-1&&(R<w||w===-1))d.push(f.substring(h,R)),h=R+I,R=f.indexOf(t,h);else{if(w===-1)break;if(d.push(f.substring(h,w)),he(w+M),v&&(G(),W))return U();if(g&&y.length>=g)return U(!0)}return Q();function te(B){y.push(B),T=h}function ae(B){var H=0;return H=B!==-1&&(B=f.substring(c+1,B))&&B.trim()===""?B.length:H}function Q(B){return o||(B===void 0&&(B=f.substring(h)),d.push(B),h=D,te(d),v&&G()),U()}function he(B){h=B,te(d),d=[],w=f.indexOf(r,h)}function U(B){if(e.header&&!m&&y.length&&!K){var H=y[0],Y=Object.create(null),me=new Set(H);let ye=!1;for(let oe=0;oe<H.length;oe++){let X=H[oe];if(Y[X=S(e.transformHeader)?e.transformHeader(X,oe):X]){let de,ke=Y[X];for(;de=X+"_"+ke,ke++,me.has(de););me.add(de),H[oe]=de,Y[X]++,ye=!0,(N=N===null?{}:N)[de]=X}else Y[X]=1,H[oe]=X;me.add(X)}ye&&console.warn("Duplicate headers found and renamed."),K=!0}return{data:y,errors:A,meta:{delimiter:t,linebreak:r,aborted:W,truncated:!!B,cursor:T+(m||0),renamedHeaders:N}}}function G(){s(U()),y=[],A=[]}},this.abort=function(){W=!0},this.getCharIndex=function(){return h}}function le(e){var t=e.data,r=re[t.workerId],a=!1;if(t.error)r.userError(t.error,t.file);else if(t.results&&t.results.data){var s={abort:function(){a=!0,V(t.workerId,{data:[],errors:[],meta:{aborted:!0}})},pause:we,resume:we};if(S(r.userStep)){for(var g=0;g<t.results.data.length&&(r.userStep({data:t.results.data[g],errors:t.results.errors,meta:t.results.meta},s),!a);g++);delete t.results}else S(r.userChunk)&&(r.userChunk(t.results,s,t.file),delete t.results)}t.finished&&!a&&V(t.workerId,t.results)}function V(e,t){var r=re[e];S(r.userComplete)&&r.userComplete(t),r.terminate(),delete re[e]}function we(){throw new Error("Not implemented.")}function _e(e){if(typeof e!="object"||e===null)return e;var t,r=Array.isArray(e)?[]:{};for(t in e)r[t]=_e(e[t]);return r}function ee(e,t){return function(){e.apply(t,arguments)}}function S(e){return typeof e=="function"}return n.parse=function(e,t){var r=(t=t||{}).dynamicTyping||!1;if(S(r)&&(t.dynamicTypingFunction=r,r={}),t.dynamicTyping=r,t.transform=!!S(t.transform)&&t.transform,!t.worker||!n.WORKERS_SUPPORTED)return r=null,n.NODE_STREAM_INPUT,typeof e=="string"?(e=(a=>a.charCodeAt(0)!==65279?a:a.slice(1))(e),r=new(t.download?P:F)(t)):e.readable===!0&&S(e.read)&&S(e.on)?r=new ne(t):(l.File&&e instanceof File||e instanceof Object)&&(r=new k(t)),r.stream(e);(r=(()=>{var a;return!!n.WORKERS_SUPPORTED&&(a=(()=>{var s=l.URL||l.webkitURL||null,g=u.toString();return n.BLOB_URL||(n.BLOB_URL=s.createObjectURL(new Blob(["var global = (function() { if (typeof self !== 'undefined') { return self; } if (typeof window !== 'undefined') { return window; } if (typeof global !== 'undefined') { return global; } return {}; })(); global.IS_PAPA_WORKER=true; ","(",g,")();"],{type:"text/javascript"})))})(),(a=new l.Worker(a)).onmessage=le,a.id=ie++,re[a.id]=a)})()).userStep=t.step,r.userChunk=t.chunk,r.userComplete=t.complete,r.userError=t.error,t.step=S(t.step),t.chunk=S(t.chunk),t.complete=S(t.complete),t.error=S(t.error),delete t.worker,r.postMessage({input:e,config:t,workerId:r.id})},n.unparse=function(e,t){var r=!1,a=!0,s=",",g=`\r
14
+ `,j='"',N=j+j,K=!1,_=null,L=!1,h=((()=>{if(typeof t=="object"){if(typeof t.delimiter!="string"||n.BAD_DELIMITERS.filter(function(m){return t.delimiter.indexOf(m)!==-1}).length||(s=t.delimiter),typeof t.quotes!="boolean"&&typeof t.quotes!="function"&&!Array.isArray(t.quotes)||(r=t.quotes),typeof t.skipEmptyLines!="boolean"&&typeof t.skipEmptyLines!="string"||(K=t.skipEmptyLines),typeof t.newline=="string"&&(g=t.newline),typeof t.quoteChar=="string"&&(j=t.quoteChar),typeof t.header=="boolean"&&(a=t.header),Array.isArray(t.columns)){if(t.columns.length===0)throw new Error("Option columns is empty");_=t.columns}t.escapeChar!==void 0&&(N=t.escapeChar+j),t.escapeFormulae instanceof RegExp?L=t.escapeFormulae:typeof t.escapeFormulae=="boolean"&&t.escapeFormulae&&(L=/^[=+\-@\t\r].*$/)}})(),new RegExp(Z(j),"g"));if(typeof e=="string"&&(e=JSON.parse(e)),Array.isArray(e)){if(!e.length||Array.isArray(e[0]))return W(null,e,K);if(typeof e[0]=="object")return W(_||Object.keys(e[0]),e,K)}else if(typeof e=="object")return typeof e.data=="string"&&(e.data=JSON.parse(e.data)),Array.isArray(e.data)&&(e.fields||(e.fields=e.meta&&e.meta.fields||_),e.fields||(e.fields=Array.isArray(e.data[0])?e.fields:typeof e.data[0]=="object"?Object.keys(e.data[0]):[]),Array.isArray(e.data[0])||typeof e.data[0]=="object"||(e.data=[e.data])),W(e.fields||[],e.data||[],K);throw new Error("Unable to serialize unrecognized input");function W(m,o,D){var I="",M=(typeof m=="string"&&(m=JSON.parse(m)),typeof o=="string"&&(o=JSON.parse(o)),Array.isArray(m)&&0<m.length),$=!Array.isArray(o[0]);if(M&&a){for(var v=0;v<m.length;v++)0<v&&(I+=s),I+=f(m[v],v);0<o.length&&(I+=g)}for(var y=0;y<o.length;y++){var A=(M?m:o[y]).length,d=!1,T=M?Object.keys(o[y]).length===0:o[y].length===0;if(D&&!M&&(d=D==="greedy"?o[y].join("").trim()==="":o[y].length===1&&o[y][0].length===0),D==="greedy"&&M){for(var z=[],E=0;E<A;E++){var R=$?m[E]:E;z.push(o[y][R])}d=z.join("").trim()===""}if(!d){for(var w=0;w<A;w++){0<w&&!T&&(I+=s);var J=M&&$?m[w]:w;I+=f(o[y][J],w)}y<o.length-1&&(!D||0<A&&!T)&&(I+=g)}}return I}function f(m,o){var D,I;return m==null?"":m.constructor===Date?JSON.stringify(m).slice(1,25):(I=!1,L&&typeof m=="string"&&L.test(m)&&(m="'"+m,I=!0),D=m.toString().replace(h,N),(I=I||r===!0||typeof r=="function"&&r(m,o)||Array.isArray(r)&&r[o]||((M,$)=>{for(var v=0;v<$.length;v++)if(-1<M.indexOf($[v]))return!0;return!1})(D,n.BAD_DELIMITERS)||-1<D.indexOf(s)||D.charAt(0)===" "||D.charAt(D.length-1)===" ")?j+D+j:D)}},n.RECORD_SEP="",n.UNIT_SEP="",n.BYTE_ORDER_MARK="\uFEFF",n.BAD_DELIMITERS=["\r",`
15
+ `,'"',n.BYTE_ORDER_MARK],n.WORKERS_SUPPORTED=!C&&!!l.Worker,n.NODE_STREAM_INPUT=1,n.LocalChunkSize=10485760,n.RemoteChunkSize=5242880,n.DefaultDelimiter=",",n.Parser=se,n.ParserHandle=ue,n.NetworkStreamer=P,n.FileStreamer=k,n.StringStreamer=F,n.ReadableStreamStreamer=ne,l.jQuery&&((O=l.jQuery).fn.parse=function(e){var t=e.config||{},r=[];return this.each(function(g){if(!(O(this).prop("tagName").toUpperCase()==="INPUT"&&O(this).attr("type").toLowerCase()==="file"&&l.FileReader)||!this.files||this.files.length===0)return!0;for(var j=0;j<this.files.length;j++)r.push({file:this.files[j],inputElem:this,instanceConfig:O.extend({},t)})}),a(),this;function a(){if(r.length===0)S(e.complete)&&e.complete();else{var g,j,N,K,_=r[0];if(S(e.before)){var L=e.before(_.file,_.inputElem);if(typeof L=="object"){if(L.action==="abort")return g="AbortError",j=_.file,N=_.inputElem,K=L.reason,void(S(e.error)&&e.error({name:g},j,N,K));if(L.action==="skip")return void s();typeof L.config=="object"&&(_.instanceConfig=O.extend(_.instanceConfig,L.config))}else if(L==="skip")return void s()}var h=_.instanceConfig.complete;_.instanceConfig.complete=function(W){S(h)&&h(W,_.file,_.inputElem),s()},n.parse(_.file,_.instanceConfig)}}function s(){r.splice(0,1),a()}}),q&&(l.onmessage=function(e){e=e.data,n.WORKER_ID===void 0&&e&&(n.WORKER_ID=e.workerId),typeof e.input=="string"?l.postMessage({workerId:n.WORKER_ID,results:n.parse(e.input,e.config),finished:!0}):(l.File&&e.input instanceof File||e.input instanceof Object)&&(e=n.parse(e.input,e.config))&&l.postMessage({workerId:n.WORKER_ID,results:e,finished:!0})}),(P.prototype=Object.create(p.prototype)).constructor=P,(k.prototype=Object.create(p.prototype)).constructor=k,(F.prototype=Object.create(F.prototype)).constructor=F,(ne.prototype=Object.create(p.prototype)).constructor=ne,n})}(ge)),ge.exports}var Se=Ie();class Fe{readAsText(i){const u=new FileReader;return new Promise((l,O)=>{u.onload=C=>{l(C)},u.onerror=C=>{O(C)},u.readAsText(i)})}readAsBinaryString(i){const u=new FileReader;return new Promise((l,O)=>{u.onload=C=>{l(C)},u.onerror=C=>{O(C)},u.readAsBinaryString(i)})}readAsDataUrl(i){const u=new FileReader;return new Promise((l,O)=>{u.onload=C=>{l(C)},u.onerror=C=>O(C),u.readAsDataURL(i)})}unparse(i,u){return Se.unparse(i,u)}parse(i){return new Promise((u,l)=>{Se.parse(i,{header:!0,complete:O=>u(O),error:O=>l(O)})})}getFileExtension(i){let u="-";return/[.]/.exec(i)&&(u=`.${/[^.]+$/.exec(i)?.[0]}`),u}save(i,u,l){const O=new Blob([i],{type:l});Ae.saveAs(O,u,{autoBom:!0})}}class je{set(i,u){localStorage.setItem(i,JSON.stringify(u))}get(i){let u=null;const l=localStorage.getItem(i);return l&&(u=JSON.parse(l)),u}remove(i){localStorage.removeItem(i)}removeAll(){localStorage.clear()}getKeysBy(i){return Object.keys(localStorage).filter(u=>u.startsWith(i))}}var ve=(b=>(b.log="log",b.info="info",b.warn="warn",b.debug="debug",b.error="error",b))(ve||{});class De{logType=ve;log(...i){this._doLog(this.logType.log,i.join(" "))}info(...i){this._doLog(this.logType.info,i.join(" "))}warn(...i){this._doLog(this.logType.warn,i.join(" "))}debug(...i){this._doLog(this.logType.debug,i.join(" "))}error(...i){this._doLog(this.logType.error,i.join(" "))}_doLog(i,...u){console[i].apply(console,u)}}class ze{constructor(i){this.localService=i}get(i){return this.localService.get(i)}set(i,u){this.localService.set(i,u)}remove(i){this.localService.remove(i)}}exports.BrowserService=xe;exports.BrowserType=Re;exports.ClipboardService=Oe;exports.FileService=Fe;exports.LocalService=je;exports.LogType=ve;exports.LoggerService=De;exports.ScreenBreakpoints=ce;exports.TokenService=ze;
package/index.d.ts ADDED
@@ -0,0 +1,3 @@
1
+ export * from './services';
2
+ export * from './types';
3
+ //# sourceMappingURL=index.d.ts.map
package/index.d.ts.map ADDED
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/lib/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,cAAc,SAAS,CAAC"}
package/index.es.d.ts ADDED
@@ -0,0 +1 @@
1
+ export {}
package/index.es.js ADDED
@@ -0,0 +1,714 @@
1
+ var Re = /* @__PURE__ */ ((b) => (b.opera = "opera", b.firefox = "firefox", b.safari = "safari", b.ie = "ie", b.edge = "edge", b.edg = "edg", b.electron = "electron", b.chrome = "chrome", b.iOsSafari = "iOsSafari", b.edgiOs = "edgiOs", b.headlessChrome = "headlessChrome", b))(Re || {});
2
+ const me = [
3
+ { breakpoint: "xs", screenWidth: 0 },
4
+ { breakpoint: "sm", screenWidth: 375 },
5
+ { breakpoint: "md", screenWidth: 768 },
6
+ { breakpoint: "lg", screenWidth: 992 },
7
+ { breakpoint: "xl", screenWidth: 1200 },
8
+ { breakpoint: "xxl", screenWidth: 1400 },
9
+ { breakpoint: "xxxl", screenWidth: 1600 }
10
+ ];
11
+ class Ie {
12
+ screenWidth = 0;
13
+ lastBreakpoint;
14
+ resizeListener;
15
+ resizeCallbacks = /* @__PURE__ */ new Set();
16
+ constructor() {
17
+ typeof window < "u" && (this.screenWidth = window.innerWidth, this.resizeListener = this.onResize.bind(this), window.addEventListener("resize", this.resizeListener), this.lastBreakpoint = this.getBreakpointBySize(this.screenWidth));
18
+ }
19
+ destroy() {
20
+ typeof window < "u" && window.removeEventListener("resize", this.resizeListener), this.resizeCallbacks.clear();
21
+ }
22
+ onBreakpointChange(i) {
23
+ this.resizeCallbacks.add(i);
24
+ }
25
+ offBreakpointChange(i) {
26
+ this.resizeCallbacks.delete(i);
27
+ }
28
+ getCurrentBrowser() {
29
+ const i = navigator.userAgent.toLowerCase();
30
+ if (this.isOpera()) return "opera";
31
+ if (this.isFirefox()) return "firefox";
32
+ if (this.isSafari()) return "safari";
33
+ if (this.isIE()) return "ie";
34
+ if (this.isEdge()) return "edge";
35
+ if (this.isEdg()) return "edg";
36
+ if (this.isElectron(i)) return "electron";
37
+ if (this.isChrome()) return "chrome";
38
+ if (this.isIOsSafari(i)) return "iOsSafari";
39
+ if (this.isEdgiOs(i)) return "edgiOs";
40
+ if (this.isHeadlessChrome(i)) return "headlessChrome";
41
+ throw new Error("Browser could not be detected: " + i);
42
+ }
43
+ getBreakpointBySize(i = this.screenWidth) {
44
+ let u = me[0];
45
+ for (const l of me)
46
+ l.screenWidth <= i && (u = l);
47
+ return u;
48
+ }
49
+ isScreenGreaterThan(i) {
50
+ const u = this.getBreakpoint(i);
51
+ return this.screenWidth > (u?.screenWidth ?? 0);
52
+ }
53
+ isScreenSmallerThan(i) {
54
+ const u = this.getBreakpoint(i);
55
+ return this.screenWidth < (u?.screenWidth ?? 0);
56
+ }
57
+ getBreakpoint(i) {
58
+ return me.find((u) => u.breakpoint === i);
59
+ }
60
+ // ==== Browser Detection (Private) ====
61
+ isOpera() {
62
+ return typeof window < "u" && (!!window.opr && !!window.opr.addons || !!window.opera || navigator.userAgent.includes("OPR/"));
63
+ }
64
+ isFirefox() {
65
+ return typeof InstallTrigger < "u";
66
+ }
67
+ isSafari() {
68
+ return /constructor/i.test(window.HTMLElement) || ((i) => i.toString() === "[object SafariRemoteNotification]")(
69
+ !window.safari || window.safari && window.safari.pushNotification
70
+ );
71
+ }
72
+ isIE() {
73
+ return !!document.documentMode;
74
+ }
75
+ isEdge() {
76
+ return !this.isIE() && !!window.StyleMedia;
77
+ }
78
+ isEdg() {
79
+ return navigator.userAgent.toLowerCase().includes("edg");
80
+ }
81
+ isElectron(i) {
82
+ return i.includes("electron");
83
+ }
84
+ isChrome() {
85
+ return typeof window < "u" && !!window.chrome && !this.isOpera() && !this.isEdge() && !this.isEdg() && !this.isFirefox() && !this.isSafari() && !this.isIE();
86
+ }
87
+ isIOsSafari(i) {
88
+ return i.includes("iphone") || i.includes("ipad") || i.includes("macintosh") && "ontouchend" in document && i.includes("safari");
89
+ }
90
+ isEdgiOs(i) {
91
+ return i.includes("edgios");
92
+ }
93
+ isHeadlessChrome(i) {
94
+ return i.includes("headlesschrome");
95
+ }
96
+ // ==== Resize Handling ====
97
+ onResize(i) {
98
+ const u = i.target.innerWidth;
99
+ this.screenWidth = u;
100
+ const l = this.getBreakpointBySize(u);
101
+ this.lastBreakpoint?.breakpoint !== l?.breakpoint && (this.lastBreakpoint = l, this.resizeCallbacks.forEach((O) => O(l)));
102
+ }
103
+ }
104
+ class Te {
105
+ copy(i) {
106
+ return navigator.clipboard.writeText(i);
107
+ }
108
+ }
109
+ var fe = typeof globalThis < "u" ? globalThis : typeof window < "u" ? window : typeof global < "u" ? global : typeof self < "u" ? self : {}, ce = { exports: {} }, xe = ce.exports, ke;
110
+ function Oe() {
111
+ return ke || (ke = 1, function(b, i) {
112
+ (function(u, l) {
113
+ l();
114
+ })(xe, function() {
115
+ function u(n, p) {
116
+ return typeof p > "u" ? p = { autoBom: !1 } : typeof p != "object" && (console.warn("Deprecated: Expected third argument to be a object"), p = { autoBom: !p }), p.autoBom && /^\s*(?:text\/\S*|application\/xml|\S*\/\S*\+xml)\s*;.*charset\s*=\s*utf-8/i.test(n.type) ? new Blob(["\uFEFF", n], { type: n.type }) : n;
117
+ }
118
+ function l(n, p, P) {
119
+ var k = new XMLHttpRequest();
120
+ k.open("GET", n), k.responseType = "blob", k.onload = function() {
121
+ ie(k.response, p, P);
122
+ }, k.onerror = function() {
123
+ console.error("could not download file");
124
+ }, k.send();
125
+ }
126
+ function O(n) {
127
+ var p = new XMLHttpRequest();
128
+ p.open("HEAD", n, !1);
129
+ try {
130
+ p.send();
131
+ } catch {
132
+ }
133
+ return 200 <= p.status && 299 >= p.status;
134
+ }
135
+ function C(n) {
136
+ try {
137
+ n.dispatchEvent(new MouseEvent("click"));
138
+ } catch {
139
+ var p = document.createEvent("MouseEvents");
140
+ p.initMouseEvent("click", !0, !0, window, 0, 0, 0, 80, 20, !1, !1, !1, !1, 0, null), n.dispatchEvent(p);
141
+ }
142
+ }
143
+ var q = typeof window == "object" && window.window === window ? window : typeof self == "object" && self.self === self ? self : typeof fe == "object" && fe.global === fe ? fe : void 0, re = q.navigator && /Macintosh/.test(navigator.userAgent) && /AppleWebKit/.test(navigator.userAgent) && !/Safari/.test(navigator.userAgent), ie = q.saveAs || (typeof window != "object" || window !== q ? function() {
144
+ } : "download" in HTMLAnchorElement.prototype && !re ? function(n, p, P) {
145
+ var k = q.URL || q.webkitURL, F = document.createElement("a");
146
+ p = p || n.name || "download", F.download = p, F.rel = "noopener", typeof n == "string" ? (F.href = n, F.origin === location.origin ? C(F) : O(F.href) ? l(n, p, P) : C(F, F.target = "_blank")) : (F.href = k.createObjectURL(n), setTimeout(function() {
147
+ k.revokeObjectURL(F.href);
148
+ }, 4e4), setTimeout(function() {
149
+ C(F);
150
+ }, 0));
151
+ } : "msSaveOrOpenBlob" in navigator ? function(n, p, P) {
152
+ if (p = p || n.name || "download", typeof n != "string") navigator.msSaveOrOpenBlob(u(n, P), p);
153
+ else if (O(n)) l(n, p, P);
154
+ else {
155
+ var k = document.createElement("a");
156
+ k.href = n, k.target = "_blank", setTimeout(function() {
157
+ C(k);
158
+ });
159
+ }
160
+ } : function(n, p, P, k) {
161
+ if (k = k || open("", "_blank"), k && (k.document.title = k.document.body.innerText = "downloading..."), typeof n == "string") return l(n, p, P);
162
+ var F = n.type === "application/octet-stream", ne = /constructor/i.test(q.HTMLElement) || q.safari, ue = /CriOS\/[\d]+/.test(navigator.userAgent);
163
+ if ((ue || F && ne || re) && typeof FileReader < "u") {
164
+ var Z = new FileReader();
165
+ Z.onloadend = function() {
166
+ var V = Z.result;
167
+ V = ue ? V : V.replace(/^data:[^;]*;/, "data:attachment/file;"), k ? k.location.href = V : location = V, k = null;
168
+ }, Z.readAsDataURL(n);
169
+ } else {
170
+ var se = q.URL || q.webkitURL, le = se.createObjectURL(n);
171
+ k ? k.location = le : location.href = le, k = null, setTimeout(function() {
172
+ se.revokeObjectURL(le);
173
+ }, 4e4);
174
+ }
175
+ });
176
+ q.saveAs = ie.saveAs = ie, b.exports = ie;
177
+ });
178
+ }(ce)), ce.exports;
179
+ }
180
+ var Ce = Oe(), pe = { exports: {} };
181
+ /* @license
182
+ Papa Parse
183
+ v5.5.3
184
+ https://github.com/mholt/PapaParse
185
+ License: MIT
186
+ */
187
+ var Ae = pe.exports, be;
188
+ function Le() {
189
+ return be || (be = 1, function(b, i) {
190
+ ((u, l) => {
191
+ b.exports = l();
192
+ })(Ae, function u() {
193
+ var l = typeof self < "u" ? self : typeof window < "u" ? window : l !== void 0 ? l : {}, O, C = !l.document && !!l.postMessage, q = l.IS_PAPA_WORKER || !1, re = {}, ie = 0, n = {};
194
+ function p(e) {
195
+ this._handle = null, this._finished = !1, this._completed = !1, this._halted = !1, this._input = null, this._baseIndex = 0, this._partialLine = "", this._rowCount = 0, this._start = 0, this._nextChunk = null, this.isFirstChunk = !0, this._completeResults = { data: [], errors: [], meta: {} }, (function(t) {
196
+ var r = ge(t);
197
+ r.chunkSize = parseInt(r.chunkSize), t.step || t.chunk || (r.chunkSize = null), this._handle = new ue(r), (this._handle.streamer = this)._config = r;
198
+ }).call(this, e), this.parseChunk = function(t, r) {
199
+ var a = parseInt(this._config.skipFirstNLines) || 0;
200
+ if (this.isFirstChunk && 0 < a) {
201
+ let g = this._config.newline;
202
+ g || (s = this._config.quoteChar || '"', g = this._handle.guessLineEndings(t, s)), t = [...t.split(g).slice(a)].join(g);
203
+ }
204
+ this.isFirstChunk && S(this._config.beforeFirstChunk) && (s = this._config.beforeFirstChunk(t)) !== void 0 && (t = s), this.isFirstChunk = !1, this._halted = !1;
205
+ var a = this._partialLine + t, s = (this._partialLine = "", this._handle.parse(a, this._baseIndex, !this._finished));
206
+ if (!this._handle.paused() && !this._handle.aborted()) {
207
+ if (t = s.meta.cursor, a = (this._finished || (this._partialLine = a.substring(t - this._baseIndex), this._baseIndex = t), s && s.data && (this._rowCount += s.data.length), this._finished || this._config.preview && this._rowCount >= this._config.preview), q) l.postMessage({ results: s, workerId: n.WORKER_ID, finished: a });
208
+ else if (S(this._config.chunk) && !r) {
209
+ if (this._config.chunk(s, this._handle), this._handle.paused() || this._handle.aborted()) return void (this._halted = !0);
210
+ this._completeResults = s = void 0;
211
+ }
212
+ return this._config.step || this._config.chunk || (this._completeResults.data = this._completeResults.data.concat(s.data), this._completeResults.errors = this._completeResults.errors.concat(s.errors), this._completeResults.meta = s.meta), this._completed || !a || !S(this._config.complete) || s && s.meta.aborted || (this._config.complete(this._completeResults, this._input), this._completed = !0), a || s && s.meta.paused || this._nextChunk(), s;
213
+ }
214
+ this._halted = !0;
215
+ }, this._sendError = function(t) {
216
+ S(this._config.error) ? this._config.error(t) : q && this._config.error && l.postMessage({ workerId: n.WORKER_ID, error: t, finished: !1 });
217
+ };
218
+ }
219
+ function P(e) {
220
+ var t;
221
+ (e = e || {}).chunkSize || (e.chunkSize = n.RemoteChunkSize), p.call(this, e), this._nextChunk = C ? function() {
222
+ this._readChunk(), this._chunkLoaded();
223
+ } : function() {
224
+ this._readChunk();
225
+ }, this.stream = function(r) {
226
+ this._input = r, this._nextChunk();
227
+ }, this._readChunk = function() {
228
+ if (this._finished) this._chunkLoaded();
229
+ else {
230
+ if (t = new XMLHttpRequest(), this._config.withCredentials && (t.withCredentials = this._config.withCredentials), C || (t.onload = ee(this._chunkLoaded, this), t.onerror = ee(this._chunkError, this)), t.open(this._config.downloadRequestBody ? "POST" : "GET", this._input, !C), this._config.downloadRequestHeaders) {
231
+ var r, a = this._config.downloadRequestHeaders;
232
+ for (r in a) t.setRequestHeader(r, a[r]);
233
+ }
234
+ var s;
235
+ this._config.chunkSize && (s = this._start + this._config.chunkSize - 1, t.setRequestHeader("Range", "bytes=" + this._start + "-" + s));
236
+ try {
237
+ t.send(this._config.downloadRequestBody);
238
+ } catch (g) {
239
+ this._chunkError(g.message);
240
+ }
241
+ C && t.status === 0 && this._chunkError();
242
+ }
243
+ }, this._chunkLoaded = function() {
244
+ t.readyState === 4 && (t.status < 200 || 400 <= t.status ? this._chunkError() : (this._start += this._config.chunkSize || t.responseText.length, this._finished = !this._config.chunkSize || this._start >= ((r) => (r = r.getResponseHeader("Content-Range")) !== null ? parseInt(r.substring(r.lastIndexOf("/") + 1)) : -1)(t), this.parseChunk(t.responseText)));
245
+ }, this._chunkError = function(r) {
246
+ r = t.statusText || r, this._sendError(new Error(r));
247
+ };
248
+ }
249
+ function k(e) {
250
+ (e = e || {}).chunkSize || (e.chunkSize = n.LocalChunkSize), p.call(this, e);
251
+ var t, r, a = typeof FileReader < "u";
252
+ this.stream = function(s) {
253
+ this._input = s, r = s.slice || s.webkitSlice || s.mozSlice, a ? ((t = new FileReader()).onload = ee(this._chunkLoaded, this), t.onerror = ee(this._chunkError, this)) : t = new FileReaderSync(), this._nextChunk();
254
+ }, this._nextChunk = function() {
255
+ this._finished || this._config.preview && !(this._rowCount < this._config.preview) || this._readChunk();
256
+ }, this._readChunk = function() {
257
+ var s = this._input, g = (this._config.chunkSize && (g = Math.min(this._start + this._config.chunkSize, this._input.size), s = r.call(s, this._start, g)), t.readAsText(s, this._config.encoding));
258
+ a || this._chunkLoaded({ target: { result: g } });
259
+ }, this._chunkLoaded = function(s) {
260
+ this._start += this._config.chunkSize, this._finished = !this._config.chunkSize || this._start >= this._input.size, this.parseChunk(s.target.result);
261
+ }, this._chunkError = function() {
262
+ this._sendError(t.error);
263
+ };
264
+ }
265
+ function F(e) {
266
+ var t;
267
+ p.call(this, e = e || {}), this.stream = function(r) {
268
+ return t = r, this._nextChunk();
269
+ }, this._nextChunk = function() {
270
+ var r, a;
271
+ if (!this._finished) return r = this._config.chunkSize, t = r ? (a = t.substring(0, r), t.substring(r)) : (a = t, ""), this._finished = !t, this.parseChunk(a);
272
+ };
273
+ }
274
+ function ne(e) {
275
+ p.call(this, e = e || {});
276
+ var t = [], r = !0, a = !1;
277
+ this.pause = function() {
278
+ p.prototype.pause.apply(this, arguments), this._input.pause();
279
+ }, this.resume = function() {
280
+ p.prototype.resume.apply(this, arguments), this._input.resume();
281
+ }, this.stream = function(s) {
282
+ this._input = s, this._input.on("data", this._streamData), this._input.on("end", this._streamEnd), this._input.on("error", this._streamError);
283
+ }, this._checkIsFinished = function() {
284
+ a && t.length === 1 && (this._finished = !0);
285
+ }, this._nextChunk = function() {
286
+ this._checkIsFinished(), t.length ? this.parseChunk(t.shift()) : r = !0;
287
+ }, this._streamData = ee(function(s) {
288
+ try {
289
+ t.push(typeof s == "string" ? s : s.toString(this._config.encoding)), r && (r = !1, this._checkIsFinished(), this.parseChunk(t.shift()));
290
+ } catch (g) {
291
+ this._streamError(g);
292
+ }
293
+ }, this), this._streamError = ee(function(s) {
294
+ this._streamCleanUp(), this._sendError(s);
295
+ }, this), this._streamEnd = ee(function() {
296
+ this._streamCleanUp(), a = !0, this._streamData("");
297
+ }, this), this._streamCleanUp = ee(function() {
298
+ this._input.removeListener("data", this._streamData), this._input.removeListener("end", this._streamEnd), this._input.removeListener("error", this._streamError);
299
+ }, this);
300
+ }
301
+ function ue(e) {
302
+ var t, r, a, s, g = Math.pow(2, 53), D = -g, N = /^\s*-?(\d+\.?|\.\d+|\d+\.\d+)([eE][-+]?\d+)?\s*$/, K = /^((\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+([+-][0-2]\d:[0-5]\d|Z))|(\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d([+-][0-2]\d:[0-5]\d|Z))|(\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d([+-][0-2]\d:[0-5]\d|Z)))$/, _ = this, A = 0, h = 0, W = !1, f = !1, m = [], o = { data: [], errors: [], meta: {} };
303
+ function j(w) {
304
+ return e.skipEmptyLines === "greedy" ? w.join("").trim() === "" : w.length === 1 && w[0].length === 0;
305
+ }
306
+ function T() {
307
+ if (o && a && ($("Delimiter", "UndetectableDelimiter", "Unable to auto-detect delimiting character; defaulted to '" + n.DefaultDelimiter + "'"), a = !1), e.skipEmptyLines && (o.data = o.data.filter(function(d) {
308
+ return !j(d);
309
+ })), B()) {
310
+ let d = function(I, z) {
311
+ S(e.transformHeader) && (I = e.transformHeader(I, z)), m.push(I);
312
+ };
313
+ if (o) if (Array.isArray(o.data[0])) {
314
+ for (var w = 0; B() && w < o.data.length; w++) o.data[w].forEach(d);
315
+ o.data.splice(0, 1);
316
+ } else o.data.forEach(d);
317
+ }
318
+ function y(d, I) {
319
+ for (var z = e.header ? {} : [], E = 0; E < d.length; E++) {
320
+ var R = E, v = d[E], v = ((J, c) => ((x) => (e.dynamicTypingFunction && e.dynamicTyping[x] === void 0 && (e.dynamicTyping[x] = e.dynamicTypingFunction(x)), (e.dynamicTyping[x] || e.dynamicTyping) === !0))(J) ? c === "true" || c === "TRUE" || c !== "false" && c !== "FALSE" && (((x) => {
321
+ if (N.test(x) && (x = parseFloat(x), D < x && x < g))
322
+ return 1;
323
+ })(c) ? parseFloat(c) : K.test(c) ? new Date(c) : c === "" ? null : c) : c)(R = e.header ? E >= m.length ? "__parsed_extra" : m[E] : R, v = e.transform ? e.transform(v, R) : v);
324
+ R === "__parsed_extra" ? (z[R] = z[R] || [], z[R].push(v)) : z[R] = v;
325
+ }
326
+ return e.header && (E > m.length ? $("FieldMismatch", "TooManyFields", "Too many fields: expected " + m.length + " fields but parsed " + E, h + I) : E < m.length && $("FieldMismatch", "TooFewFields", "Too few fields: expected " + m.length + " fields but parsed " + E, h + I)), z;
327
+ }
328
+ var L;
329
+ o && (e.header || e.dynamicTyping || e.transform) && (L = 1, !o.data.length || Array.isArray(o.data[0]) ? (o.data = o.data.map(y), L = o.data.length) : o.data = y(o.data, 0), e.header && o.meta && (o.meta.fields = m), h += L);
330
+ }
331
+ function B() {
332
+ return e.header && m.length === 0;
333
+ }
334
+ function $(w, y, L, d) {
335
+ w = { type: w, code: y, message: L }, d !== void 0 && (w.row = d), o.errors.push(w);
336
+ }
337
+ S(e.step) && (s = e.step, e.step = function(w) {
338
+ o = w, B() ? T() : (T(), o.data.length !== 0 && (A += w.data.length, e.preview && A > e.preview ? r.abort() : (o.data = o.data[0], s(o, _))));
339
+ }), this.parse = function(w, y, L) {
340
+ var d = e.quoteChar || '"', d = (e.newline || (e.newline = this.guessLineEndings(w, d)), a = !1, e.delimiter ? S(e.delimiter) && (e.delimiter = e.delimiter(w), o.meta.delimiter = e.delimiter) : ((d = ((I, z, E, R, v) => {
341
+ var J, c, x, te;
342
+ v = v || [",", " ", "|", ";", n.RECORD_SEP, n.UNIT_SEP];
343
+ for (var ae = 0; ae < v.length; ae++) {
344
+ for (var Q, he = v[ae], U = 0, G = 0, M = 0, H = (x = void 0, new se({ comments: R, delimiter: he, newline: z, preview: 10 }).parse(I)), Y = 0; Y < H.data.length; Y++) E && j(H.data[Y]) ? M++ : (Q = H.data[Y].length, G += Q, x === void 0 ? x = Q : 0 < Q && (U += Math.abs(Q - x), x = Q));
345
+ 0 < H.data.length && (G /= H.data.length - M), (c === void 0 || U <= c) && (te === void 0 || te < G) && 1.99 < G && (c = U, J = he, te = G);
346
+ }
347
+ return { successful: !!(e.delimiter = J), bestDelimiter: J };
348
+ })(w, e.newline, e.skipEmptyLines, e.comments, e.delimitersToGuess)).successful ? e.delimiter = d.bestDelimiter : (a = !0, e.delimiter = n.DefaultDelimiter), o.meta.delimiter = e.delimiter), ge(e));
349
+ return e.preview && e.header && d.preview++, t = w, r = new se(d), o = r.parse(t, y, L), T(), W ? { meta: { paused: !0 } } : o || { meta: { paused: !1 } };
350
+ }, this.paused = function() {
351
+ return W;
352
+ }, this.pause = function() {
353
+ W = !0, r.abort(), t = S(e.chunk) ? "" : t.substring(r.getCharIndex());
354
+ }, this.resume = function() {
355
+ _.streamer._halted ? (W = !1, _.streamer.parseChunk(t, !0)) : setTimeout(_.resume, 3);
356
+ }, this.aborted = function() {
357
+ return f;
358
+ }, this.abort = function() {
359
+ f = !0, r.abort(), o.meta.aborted = !0, S(e.complete) && e.complete(o), t = "";
360
+ }, this.guessLineEndings = function(I, d) {
361
+ I = I.substring(0, 1048576);
362
+ var d = new RegExp(Z(d) + "([^]*?)" + Z(d), "gm"), L = (I = I.replace(d, "")).split("\r"), d = I.split(`
363
+ `), I = 1 < d.length && d[0].length < L[0].length;
364
+ if (L.length === 1 || I) return `
365
+ `;
366
+ for (var z = 0, E = 0; E < L.length; E++) L[E][0] === `
367
+ ` && z++;
368
+ return z >= L.length / 2 ? `\r
369
+ ` : "\r";
370
+ };
371
+ }
372
+ function Z(e) {
373
+ return e.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
374
+ }
375
+ function se(e) {
376
+ var t = (e = e || {}).delimiter, r = e.newline, a = e.comments, s = e.step, g = e.preview, D = e.fastMode, N = null, K = !1, _ = e.quoteChar == null ? '"' : e.quoteChar, A = _;
377
+ if (e.escapeChar !== void 0 && (A = e.escapeChar), (typeof t != "string" || -1 < n.BAD_DELIMITERS.indexOf(t)) && (t = ","), a === t) throw new Error("Comment character same as delimiter");
378
+ a === !0 ? a = "#" : (typeof a != "string" || -1 < n.BAD_DELIMITERS.indexOf(a)) && (a = !1), r !== `
379
+ ` && r !== "\r" && r !== `\r
380
+ ` && (r = `
381
+ `);
382
+ var h = 0, W = !1;
383
+ this.parse = function(f, m, o) {
384
+ if (typeof f != "string") throw new Error("Input must be a string");
385
+ var j = f.length, T = t.length, B = r.length, $ = a.length, w = S(s), y = [], L = [], d = [], I = h = 0;
386
+ if (!f) return U();
387
+ if (D || D !== !1 && f.indexOf(_) === -1) {
388
+ for (var z = f.split(r), E = 0; E < z.length; E++) {
389
+ if (d = z[E], h += d.length, E !== z.length - 1) h += r.length;
390
+ else if (o) return U();
391
+ if (!a || d.substring(0, $) !== a) {
392
+ if (w) {
393
+ if (y = [], te(d.split(t)), G(), W) return U();
394
+ } else te(d.split(t));
395
+ if (g && g <= E) return y = y.slice(0, g), U(!0);
396
+ }
397
+ }
398
+ return U();
399
+ }
400
+ for (var R = f.indexOf(t, h), v = f.indexOf(r, h), J = new RegExp(Z(A) + Z(_), "g"), c = f.indexOf(_, h); ; ) if (f[h] === _) for (c = h, h++; ; ) {
401
+ if ((c = f.indexOf(_, c + 1)) === -1) return o || L.push({ type: "Quotes", code: "MissingQuotes", message: "Quoted field unterminated", row: y.length, index: h }), Q();
402
+ if (c === j - 1) return Q(f.substring(h, c).replace(J, _));
403
+ if (_ === A && f[c + 1] === A) c++;
404
+ else if (_ === A || c === 0 || f[c - 1] !== A) {
405
+ R !== -1 && R < c + 1 && (R = f.indexOf(t, c + 1));
406
+ var x = ae((v = v !== -1 && v < c + 1 ? f.indexOf(r, c + 1) : v) === -1 ? R : Math.min(R, v));
407
+ if (f.substr(c + 1 + x, T) === t) {
408
+ d.push(f.substring(h, c).replace(J, _)), f[h = c + 1 + x + T] !== _ && (c = f.indexOf(_, h)), R = f.indexOf(t, h), v = f.indexOf(r, h);
409
+ break;
410
+ }
411
+ if (x = ae(v), f.substring(c + 1 + x, c + 1 + x + B) === r) {
412
+ if (d.push(f.substring(h, c).replace(J, _)), he(c + 1 + x + B), R = f.indexOf(t, h), c = f.indexOf(_, h), w && (G(), W)) return U();
413
+ if (g && y.length >= g) return U(!0);
414
+ break;
415
+ }
416
+ L.push({ type: "Quotes", code: "InvalidQuotes", message: "Trailing quote on quoted field is malformed", row: y.length, index: h }), c++;
417
+ }
418
+ }
419
+ else if (a && d.length === 0 && f.substring(h, h + $) === a) {
420
+ if (v === -1) return U();
421
+ h = v + B, v = f.indexOf(r, h), R = f.indexOf(t, h);
422
+ } else if (R !== -1 && (R < v || v === -1)) d.push(f.substring(h, R)), h = R + T, R = f.indexOf(t, h);
423
+ else {
424
+ if (v === -1) break;
425
+ if (d.push(f.substring(h, v)), he(v + B), w && (G(), W)) return U();
426
+ if (g && y.length >= g) return U(!0);
427
+ }
428
+ return Q();
429
+ function te(M) {
430
+ y.push(M), I = h;
431
+ }
432
+ function ae(M) {
433
+ var H = 0;
434
+ return H = M !== -1 && (M = f.substring(c + 1, M)) && M.trim() === "" ? M.length : H;
435
+ }
436
+ function Q(M) {
437
+ return o || (M === void 0 && (M = f.substring(h)), d.push(M), h = j, te(d), w && G()), U();
438
+ }
439
+ function he(M) {
440
+ h = M, te(d), d = [], v = f.indexOf(r, h);
441
+ }
442
+ function U(M) {
443
+ if (e.header && !m && y.length && !K) {
444
+ var H = y[0], Y = /* @__PURE__ */ Object.create(null), _e = new Set(H);
445
+ let ve = !1;
446
+ for (let oe = 0; oe < H.length; oe++) {
447
+ let X = H[oe];
448
+ if (Y[X = S(e.transformHeader) ? e.transformHeader(X, oe) : X]) {
449
+ let de, ye = Y[X];
450
+ for (; de = X + "_" + ye, ye++, _e.has(de); ) ;
451
+ _e.add(de), H[oe] = de, Y[X]++, ve = !0, (N = N === null ? {} : N)[de] = X;
452
+ } else Y[X] = 1, H[oe] = X;
453
+ _e.add(X);
454
+ }
455
+ ve && console.warn("Duplicate headers found and renamed."), K = !0;
456
+ }
457
+ return { data: y, errors: L, meta: { delimiter: t, linebreak: r, aborted: W, truncated: !!M, cursor: I + (m || 0), renamedHeaders: N } };
458
+ }
459
+ function G() {
460
+ s(U()), y = [], L = [];
461
+ }
462
+ }, this.abort = function() {
463
+ W = !0;
464
+ }, this.getCharIndex = function() {
465
+ return h;
466
+ };
467
+ }
468
+ function le(e) {
469
+ var t = e.data, r = re[t.workerId], a = !1;
470
+ if (t.error) r.userError(t.error, t.file);
471
+ else if (t.results && t.results.data) {
472
+ var s = { abort: function() {
473
+ a = !0, V(t.workerId, { data: [], errors: [], meta: { aborted: !0 } });
474
+ }, pause: we, resume: we };
475
+ if (S(r.userStep)) {
476
+ for (var g = 0; g < t.results.data.length && (r.userStep({ data: t.results.data[g], errors: t.results.errors, meta: t.results.meta }, s), !a); g++) ;
477
+ delete t.results;
478
+ } else S(r.userChunk) && (r.userChunk(t.results, s, t.file), delete t.results);
479
+ }
480
+ t.finished && !a && V(t.workerId, t.results);
481
+ }
482
+ function V(e, t) {
483
+ var r = re[e];
484
+ S(r.userComplete) && r.userComplete(t), r.terminate(), delete re[e];
485
+ }
486
+ function we() {
487
+ throw new Error("Not implemented.");
488
+ }
489
+ function ge(e) {
490
+ if (typeof e != "object" || e === null) return e;
491
+ var t, r = Array.isArray(e) ? [] : {};
492
+ for (t in e) r[t] = ge(e[t]);
493
+ return r;
494
+ }
495
+ function ee(e, t) {
496
+ return function() {
497
+ e.apply(t, arguments);
498
+ };
499
+ }
500
+ function S(e) {
501
+ return typeof e == "function";
502
+ }
503
+ return n.parse = function(e, t) {
504
+ var r = (t = t || {}).dynamicTyping || !1;
505
+ if (S(r) && (t.dynamicTypingFunction = r, r = {}), t.dynamicTyping = r, t.transform = !!S(t.transform) && t.transform, !t.worker || !n.WORKERS_SUPPORTED) return r = null, n.NODE_STREAM_INPUT, typeof e == "string" ? (e = ((a) => a.charCodeAt(0) !== 65279 ? a : a.slice(1))(e), r = new (t.download ? P : F)(t)) : e.readable === !0 && S(e.read) && S(e.on) ? r = new ne(t) : (l.File && e instanceof File || e instanceof Object) && (r = new k(t)), r.stream(e);
506
+ (r = (() => {
507
+ var a;
508
+ return !!n.WORKERS_SUPPORTED && (a = (() => {
509
+ var s = l.URL || l.webkitURL || null, g = u.toString();
510
+ return n.BLOB_URL || (n.BLOB_URL = s.createObjectURL(new Blob(["var global = (function() { if (typeof self !== 'undefined') { return self; } if (typeof window !== 'undefined') { return window; } if (typeof global !== 'undefined') { return global; } return {}; })(); global.IS_PAPA_WORKER=true; ", "(", g, ")();"], { type: "text/javascript" })));
511
+ })(), (a = new l.Worker(a)).onmessage = le, a.id = ie++, re[a.id] = a);
512
+ })()).userStep = t.step, r.userChunk = t.chunk, r.userComplete = t.complete, r.userError = t.error, t.step = S(t.step), t.chunk = S(t.chunk), t.complete = S(t.complete), t.error = S(t.error), delete t.worker, r.postMessage({ input: e, config: t, workerId: r.id });
513
+ }, n.unparse = function(e, t) {
514
+ var r = !1, a = !0, s = ",", g = `\r
515
+ `, D = '"', N = D + D, K = !1, _ = null, A = !1, h = ((() => {
516
+ if (typeof t == "object") {
517
+ if (typeof t.delimiter != "string" || n.BAD_DELIMITERS.filter(function(m) {
518
+ return t.delimiter.indexOf(m) !== -1;
519
+ }).length || (s = t.delimiter), typeof t.quotes != "boolean" && typeof t.quotes != "function" && !Array.isArray(t.quotes) || (r = t.quotes), typeof t.skipEmptyLines != "boolean" && typeof t.skipEmptyLines != "string" || (K = t.skipEmptyLines), typeof t.newline == "string" && (g = t.newline), typeof t.quoteChar == "string" && (D = t.quoteChar), typeof t.header == "boolean" && (a = t.header), Array.isArray(t.columns)) {
520
+ if (t.columns.length === 0) throw new Error("Option columns is empty");
521
+ _ = t.columns;
522
+ }
523
+ t.escapeChar !== void 0 && (N = t.escapeChar + D), t.escapeFormulae instanceof RegExp ? A = t.escapeFormulae : typeof t.escapeFormulae == "boolean" && t.escapeFormulae && (A = /^[=+\-@\t\r].*$/);
524
+ }
525
+ })(), new RegExp(Z(D), "g"));
526
+ if (typeof e == "string" && (e = JSON.parse(e)), Array.isArray(e)) {
527
+ if (!e.length || Array.isArray(e[0])) return W(null, e, K);
528
+ if (typeof e[0] == "object") return W(_ || Object.keys(e[0]), e, K);
529
+ } else if (typeof e == "object") return typeof e.data == "string" && (e.data = JSON.parse(e.data)), Array.isArray(e.data) && (e.fields || (e.fields = e.meta && e.meta.fields || _), e.fields || (e.fields = Array.isArray(e.data[0]) ? e.fields : typeof e.data[0] == "object" ? Object.keys(e.data[0]) : []), Array.isArray(e.data[0]) || typeof e.data[0] == "object" || (e.data = [e.data])), W(e.fields || [], e.data || [], K);
530
+ throw new Error("Unable to serialize unrecognized input");
531
+ function W(m, o, j) {
532
+ var T = "", B = (typeof m == "string" && (m = JSON.parse(m)), typeof o == "string" && (o = JSON.parse(o)), Array.isArray(m) && 0 < m.length), $ = !Array.isArray(o[0]);
533
+ if (B && a) {
534
+ for (var w = 0; w < m.length; w++) 0 < w && (T += s), T += f(m[w], w);
535
+ 0 < o.length && (T += g);
536
+ }
537
+ for (var y = 0; y < o.length; y++) {
538
+ var L = (B ? m : o[y]).length, d = !1, I = B ? Object.keys(o[y]).length === 0 : o[y].length === 0;
539
+ if (j && !B && (d = j === "greedy" ? o[y].join("").trim() === "" : o[y].length === 1 && o[y][0].length === 0), j === "greedy" && B) {
540
+ for (var z = [], E = 0; E < L; E++) {
541
+ var R = $ ? m[E] : E;
542
+ z.push(o[y][R]);
543
+ }
544
+ d = z.join("").trim() === "";
545
+ }
546
+ if (!d) {
547
+ for (var v = 0; v < L; v++) {
548
+ 0 < v && !I && (T += s);
549
+ var J = B && $ ? m[v] : v;
550
+ T += f(o[y][J], v);
551
+ }
552
+ y < o.length - 1 && (!j || 0 < L && !I) && (T += g);
553
+ }
554
+ }
555
+ return T;
556
+ }
557
+ function f(m, o) {
558
+ var j, T;
559
+ return m == null ? "" : m.constructor === Date ? JSON.stringify(m).slice(1, 25) : (T = !1, A && typeof m == "string" && A.test(m) && (m = "'" + m, T = !0), j = m.toString().replace(h, N), (T = T || r === !0 || typeof r == "function" && r(m, o) || Array.isArray(r) && r[o] || ((B, $) => {
560
+ for (var w = 0; w < $.length; w++) if (-1 < B.indexOf($[w])) return !0;
561
+ return !1;
562
+ })(j, n.BAD_DELIMITERS) || -1 < j.indexOf(s) || j.charAt(0) === " " || j.charAt(j.length - 1) === " ") ? D + j + D : j);
563
+ }
564
+ }, n.RECORD_SEP = "", n.UNIT_SEP = "", n.BYTE_ORDER_MARK = "\uFEFF", n.BAD_DELIMITERS = ["\r", `
565
+ `, '"', n.BYTE_ORDER_MARK], n.WORKERS_SUPPORTED = !C && !!l.Worker, n.NODE_STREAM_INPUT = 1, n.LocalChunkSize = 10485760, n.RemoteChunkSize = 5242880, n.DefaultDelimiter = ",", n.Parser = se, n.ParserHandle = ue, n.NetworkStreamer = P, n.FileStreamer = k, n.StringStreamer = F, n.ReadableStreamStreamer = ne, l.jQuery && ((O = l.jQuery).fn.parse = function(e) {
566
+ var t = e.config || {}, r = [];
567
+ return this.each(function(g) {
568
+ if (!(O(this).prop("tagName").toUpperCase() === "INPUT" && O(this).attr("type").toLowerCase() === "file" && l.FileReader) || !this.files || this.files.length === 0) return !0;
569
+ for (var D = 0; D < this.files.length; D++) r.push({ file: this.files[D], inputElem: this, instanceConfig: O.extend({}, t) });
570
+ }), a(), this;
571
+ function a() {
572
+ if (r.length === 0) S(e.complete) && e.complete();
573
+ else {
574
+ var g, D, N, K, _ = r[0];
575
+ if (S(e.before)) {
576
+ var A = e.before(_.file, _.inputElem);
577
+ if (typeof A == "object") {
578
+ if (A.action === "abort") return g = "AbortError", D = _.file, N = _.inputElem, K = A.reason, void (S(e.error) && e.error({ name: g }, D, N, K));
579
+ if (A.action === "skip") return void s();
580
+ typeof A.config == "object" && (_.instanceConfig = O.extend(_.instanceConfig, A.config));
581
+ } else if (A === "skip") return void s();
582
+ }
583
+ var h = _.instanceConfig.complete;
584
+ _.instanceConfig.complete = function(W) {
585
+ S(h) && h(W, _.file, _.inputElem), s();
586
+ }, n.parse(_.file, _.instanceConfig);
587
+ }
588
+ }
589
+ function s() {
590
+ r.splice(0, 1), a();
591
+ }
592
+ }), q && (l.onmessage = function(e) {
593
+ e = e.data, n.WORKER_ID === void 0 && e && (n.WORKER_ID = e.workerId), typeof e.input == "string" ? l.postMessage({ workerId: n.WORKER_ID, results: n.parse(e.input, e.config), finished: !0 }) : (l.File && e.input instanceof File || e.input instanceof Object) && (e = n.parse(e.input, e.config)) && l.postMessage({ workerId: n.WORKER_ID, results: e, finished: !0 });
594
+ }), (P.prototype = Object.create(p.prototype)).constructor = P, (k.prototype = Object.create(p.prototype)).constructor = k, (F.prototype = Object.create(F.prototype)).constructor = F, (ne.prototype = Object.create(p.prototype)).constructor = ne, n;
595
+ });
596
+ }(pe)), pe.exports;
597
+ }
598
+ var Ee = Le();
599
+ class Fe {
600
+ readAsText(i) {
601
+ const u = new FileReader();
602
+ return new Promise((l, O) => {
603
+ u.onload = (C) => {
604
+ l(C);
605
+ }, u.onerror = (C) => {
606
+ O(C);
607
+ }, u.readAsText(i);
608
+ });
609
+ }
610
+ readAsBinaryString(i) {
611
+ const u = new FileReader();
612
+ return new Promise((l, O) => {
613
+ u.onload = (C) => {
614
+ l(C);
615
+ }, u.onerror = (C) => {
616
+ O(C);
617
+ }, u.readAsBinaryString(i);
618
+ });
619
+ }
620
+ readAsDataUrl(i) {
621
+ const u = new FileReader();
622
+ return new Promise((l, O) => {
623
+ u.onload = (C) => {
624
+ l(C);
625
+ }, u.onerror = (C) => O(C), u.readAsDataURL(i);
626
+ });
627
+ }
628
+ unparse(i, u) {
629
+ return Ee.unparse(i, u);
630
+ }
631
+ parse(i) {
632
+ return new Promise((u, l) => {
633
+ Ee.parse(i, {
634
+ header: !0,
635
+ complete: (O) => u(O),
636
+ error: (O) => l(O)
637
+ });
638
+ });
639
+ }
640
+ getFileExtension(i) {
641
+ let u = "-";
642
+ return /[.]/.exec(i) && (u = `.${/[^.]+$/.exec(i)?.[0]}`), u;
643
+ }
644
+ save(i, u, l) {
645
+ const O = new Blob([i], { type: l });
646
+ Ce.saveAs(O, u, { autoBom: !0 });
647
+ }
648
+ }
649
+ class De {
650
+ set(i, u) {
651
+ localStorage.setItem(i, JSON.stringify(u));
652
+ }
653
+ get(i) {
654
+ let u = null;
655
+ const l = localStorage.getItem(i);
656
+ return l && (u = JSON.parse(l)), u;
657
+ }
658
+ remove(i) {
659
+ localStorage.removeItem(i);
660
+ }
661
+ removeAll() {
662
+ localStorage.clear();
663
+ }
664
+ getKeysBy(i) {
665
+ return Object.keys(localStorage).filter((u) => u.startsWith(i));
666
+ }
667
+ }
668
+ var Se = /* @__PURE__ */ ((b) => (b.log = "log", b.info = "info", b.warn = "warn", b.debug = "debug", b.error = "error", b))(Se || {});
669
+ class je {
670
+ logType = Se;
671
+ log(...i) {
672
+ this._doLog(this.logType.log, i.join(" "));
673
+ }
674
+ info(...i) {
675
+ this._doLog(this.logType.info, i.join(" "));
676
+ }
677
+ warn(...i) {
678
+ this._doLog(this.logType.warn, i.join(" "));
679
+ }
680
+ debug(...i) {
681
+ this._doLog(this.logType.debug, i.join(" "));
682
+ }
683
+ error(...i) {
684
+ this._doLog(this.logType.error, i.join(" "));
685
+ }
686
+ _doLog(i, ...u) {
687
+ console[i].apply(console, u);
688
+ }
689
+ }
690
+ class ze {
691
+ constructor(i) {
692
+ this.localService = i;
693
+ }
694
+ get(i) {
695
+ return this.localService.get(i);
696
+ }
697
+ set(i, u) {
698
+ this.localService.set(i, u);
699
+ }
700
+ remove(i) {
701
+ this.localService.remove(i);
702
+ }
703
+ }
704
+ export {
705
+ Ie as BrowserService,
706
+ Re as BrowserType,
707
+ Te as ClipboardService,
708
+ Fe as FileService,
709
+ De as LocalService,
710
+ Se as LogType,
711
+ je as LoggerService,
712
+ me as ScreenBreakpoints,
713
+ ze as TokenService
714
+ };
package/index.umd.js ADDED
@@ -0,0 +1,15 @@
1
+ (function(q,ne){typeof exports=="object"&&typeof module<"u"?ne(exports):typeof define=="function"&&define.amd?define(["exports"],ne):(q=typeof globalThis<"u"?globalThis:q||self,ne(q.Utilities={}))})(this,function(q){"use strict";var ne=(b=>(b.opera="opera",b.firefox="firefox",b.safari="safari",b.ie="ie",b.edge="edge",b.edg="edg",b.electron="electron",b.chrome="chrome",b.iOsSafari="iOsSafari",b.edgiOs="edgiOs",b.headlessChrome="headlessChrome",b))(ne||{});const pe=[{breakpoint:"xs",screenWidth:0},{breakpoint:"sm",screenWidth:375},{breakpoint:"md",screenWidth:768},{breakpoint:"lg",screenWidth:992},{breakpoint:"xl",screenWidth:1200},{breakpoint:"xxl",screenWidth:1400},{breakpoint:"xxxl",screenWidth:1600}];class xe{screenWidth=0;lastBreakpoint;resizeListener;resizeCallbacks=new Set;constructor(){typeof window<"u"&&(this.screenWidth=window.innerWidth,this.resizeListener=this.onResize.bind(this),window.addEventListener("resize",this.resizeListener),this.lastBreakpoint=this.getBreakpointBySize(this.screenWidth))}destroy(){typeof window<"u"&&window.removeEventListener("resize",this.resizeListener),this.resizeCallbacks.clear()}onBreakpointChange(i){this.resizeCallbacks.add(i)}offBreakpointChange(i){this.resizeCallbacks.delete(i)}getCurrentBrowser(){const i=navigator.userAgent.toLowerCase();if(this.isOpera())return"opera";if(this.isFirefox())return"firefox";if(this.isSafari())return"safari";if(this.isIE())return"ie";if(this.isEdge())return"edge";if(this.isEdg())return"edg";if(this.isElectron(i))return"electron";if(this.isChrome())return"chrome";if(this.isIOsSafari(i))return"iOsSafari";if(this.isEdgiOs(i))return"edgiOs";if(this.isHeadlessChrome(i))return"headlessChrome";throw new Error("Browser could not be detected: "+i)}getBreakpointBySize(i=this.screenWidth){let u=pe[0];for(const l of pe)l.screenWidth<=i&&(u=l);return u}isScreenGreaterThan(i){const u=this.getBreakpoint(i);return this.screenWidth>(u?.screenWidth??0)}isScreenSmallerThan(i){const u=this.getBreakpoint(i);return this.screenWidth<(u?.screenWidth??0)}getBreakpoint(i){return pe.find(u=>u.breakpoint===i)}isOpera(){return typeof window<"u"&&(!!window.opr&&!!window.opr.addons||!!window.opera||navigator.userAgent.includes("OPR/"))}isFirefox(){return typeof InstallTrigger<"u"}isSafari(){return/constructor/i.test(window.HTMLElement)||(i=>i.toString()==="[object SafariRemoteNotification]")(!window.safari||window.safari&&window.safari.pushNotification)}isIE(){return!!document.documentMode}isEdge(){return!this.isIE()&&!!window.StyleMedia}isEdg(){return navigator.userAgent.toLowerCase().includes("edg")}isElectron(i){return i.includes("electron")}isChrome(){return typeof window<"u"&&!!window.chrome&&!this.isOpera()&&!this.isEdge()&&!this.isEdg()&&!this.isFirefox()&&!this.isSafari()&&!this.isIE()}isIOsSafari(i){return i.includes("iphone")||i.includes("ipad")||i.includes("macintosh")&&"ontouchend"in document&&i.includes("safari")}isEdgiOs(i){return i.includes("edgios")}isHeadlessChrome(i){return i.includes("headlesschrome")}onResize(i){const u=i.target.innerWidth;this.screenWidth=u;const l=this.getBreakpointBySize(u);this.lastBreakpoint?.breakpoint!==l?.breakpoint&&(this.lastBreakpoint=l,this.resizeCallbacks.forEach(x=>x(l)))}}class Ce{copy(i){return navigator.clipboard.writeText(i)}}var ge=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{},_e={exports:{}},Le=_e.exports,ke;function Ae(){return ke||(ke=1,function(b,i){(function(u,l){l()})(Le,function(){function u(n,p){return typeof p>"u"?p={autoBom:!1}:typeof p!="object"&&(console.warn("Deprecated: Expected third argument to be a object"),p={autoBom:!p}),p.autoBom&&/^\s*(?:text\/\S*|application\/xml|\S*\/\S*\+xml)\s*;.*charset\s*=\s*utf-8/i.test(n.type)?new Blob(["\uFEFF",n],{type:n.type}):n}function l(n,p,P){var k=new XMLHttpRequest;k.open("GET",n),k.responseType="blob",k.onload=function(){se(k.response,p,P)},k.onerror=function(){console.error("could not download file")},k.send()}function x(n){var p=new XMLHttpRequest;p.open("HEAD",n,!1);try{p.send()}catch{}return 200<=p.status&&299>=p.status}function C(n){try{n.dispatchEvent(new MouseEvent("click"))}catch{var p=document.createEvent("MouseEvents");p.initMouseEvent("click",!0,!0,window,0,0,0,80,20,!1,!1,!1,!1,0,null),n.dispatchEvent(p)}}var H=typeof window=="object"&&window.window===window?window:typeof self=="object"&&self.self===self?self:typeof ge=="object"&&ge.global===ge?ge:void 0,ie=H.navigator&&/Macintosh/.test(navigator.userAgent)&&/AppleWebKit/.test(navigator.userAgent)&&!/Safari/.test(navigator.userAgent),se=H.saveAs||(typeof window!="object"||window!==H?function(){}:"download"in HTMLAnchorElement.prototype&&!ie?function(n,p,P){var k=H.URL||H.webkitURL,F=document.createElement("a");p=p||n.name||"download",F.download=p,F.rel="noopener",typeof n=="string"?(F.href=n,F.origin===location.origin?C(F):x(F.href)?l(n,p,P):C(F,F.target="_blank")):(F.href=k.createObjectURL(n),setTimeout(function(){k.revokeObjectURL(F.href)},4e4),setTimeout(function(){C(F)},0))}:"msSaveOrOpenBlob"in navigator?function(n,p,P){if(p=p||n.name||"download",typeof n!="string")navigator.msSaveOrOpenBlob(u(n,P),p);else if(x(n))l(n,p,P);else{var k=document.createElement("a");k.href=n,k.target="_blank",setTimeout(function(){C(k)})}}:function(n,p,P,k){if(k=k||open("","_blank"),k&&(k.document.title=k.document.body.innerText="downloading..."),typeof n=="string")return l(n,p,P);var F=n.type==="application/octet-stream",ae=/constructor/i.test(H.HTMLElement)||H.safari,de=/CriOS\/[\d]+/.test(navigator.userAgent);if((de||F&&ae||ie)&&typeof FileReader<"u"){var Y=new FileReader;Y.onloadend=function(){var ee=Y.result;ee=de?ee:ee.replace(/^data:[^;]*;/,"data:attachment/file;"),k?k.location.href=ee:location=ee,k=null},Y.readAsDataURL(n)}else{var oe=H.URL||H.webkitURL,he=oe.createObjectURL(n);k?k.location=he:location.href=he,k=null,setTimeout(function(){oe.revokeObjectURL(he)},4e4)}});H.saveAs=se.saveAs=se,b.exports=se})}(_e)),_e.exports}var Te=Ae(),me={exports:{}};/* @license
2
+ Papa Parse
3
+ v5.5.3
4
+ https://github.com/mholt/PapaParse
5
+ License: MIT
6
+ */var Ie=me.exports,be;function Fe(){return be||(be=1,function(b,i){((u,l)=>{b.exports=l()})(Ie,function u(){var l=typeof self<"u"?self:typeof window<"u"?window:l!==void 0?l:{},x,C=!l.document&&!!l.postMessage,H=l.IS_PAPA_WORKER||!1,ie={},se=0,n={};function p(e){this._handle=null,this._finished=!1,this._completed=!1,this._halted=!1,this._input=null,this._baseIndex=0,this._partialLine="",this._rowCount=0,this._start=0,this._nextChunk=null,this.isFirstChunk=!0,this._completeResults={data:[],errors:[],meta:{}},(function(t){var r=we(t);r.chunkSize=parseInt(r.chunkSize),t.step||t.chunk||(r.chunkSize=null),this._handle=new de(r),(this._handle.streamer=this)._config=r}).call(this,e),this.parseChunk=function(t,r){var a=parseInt(this._config.skipFirstNLines)||0;if(this.isFirstChunk&&0<a){let g=this._config.newline;g||(s=this._config.quoteChar||'"',g=this._handle.guessLineEndings(t,s)),t=[...t.split(g).slice(a)].join(g)}this.isFirstChunk&&S(this._config.beforeFirstChunk)&&(s=this._config.beforeFirstChunk(t))!==void 0&&(t=s),this.isFirstChunk=!1,this._halted=!1;var a=this._partialLine+t,s=(this._partialLine="",this._handle.parse(a,this._baseIndex,!this._finished));if(!this._handle.paused()&&!this._handle.aborted()){if(t=s.meta.cursor,a=(this._finished||(this._partialLine=a.substring(t-this._baseIndex),this._baseIndex=t),s&&s.data&&(this._rowCount+=s.data.length),this._finished||this._config.preview&&this._rowCount>=this._config.preview),H)l.postMessage({results:s,workerId:n.WORKER_ID,finished:a});else if(S(this._config.chunk)&&!r){if(this._config.chunk(s,this._handle),this._handle.paused()||this._handle.aborted())return void(this._halted=!0);this._completeResults=s=void 0}return this._config.step||this._config.chunk||(this._completeResults.data=this._completeResults.data.concat(s.data),this._completeResults.errors=this._completeResults.errors.concat(s.errors),this._completeResults.meta=s.meta),this._completed||!a||!S(this._config.complete)||s&&s.meta.aborted||(this._config.complete(this._completeResults,this._input),this._completed=!0),a||s&&s.meta.paused||this._nextChunk(),s}this._halted=!0},this._sendError=function(t){S(this._config.error)?this._config.error(t):H&&this._config.error&&l.postMessage({workerId:n.WORKER_ID,error:t,finished:!1})}}function P(e){var t;(e=e||{}).chunkSize||(e.chunkSize=n.RemoteChunkSize),p.call(this,e),this._nextChunk=C?function(){this._readChunk(),this._chunkLoaded()}:function(){this._readChunk()},this.stream=function(r){this._input=r,this._nextChunk()},this._readChunk=function(){if(this._finished)this._chunkLoaded();else{if(t=new XMLHttpRequest,this._config.withCredentials&&(t.withCredentials=this._config.withCredentials),C||(t.onload=te(this._chunkLoaded,this),t.onerror=te(this._chunkError,this)),t.open(this._config.downloadRequestBody?"POST":"GET",this._input,!C),this._config.downloadRequestHeaders){var r,a=this._config.downloadRequestHeaders;for(r in a)t.setRequestHeader(r,a[r])}var s;this._config.chunkSize&&(s=this._start+this._config.chunkSize-1,t.setRequestHeader("Range","bytes="+this._start+"-"+s));try{t.send(this._config.downloadRequestBody)}catch(g){this._chunkError(g.message)}C&&t.status===0&&this._chunkError()}},this._chunkLoaded=function(){t.readyState===4&&(t.status<200||400<=t.status?this._chunkError():(this._start+=this._config.chunkSize||t.responseText.length,this._finished=!this._config.chunkSize||this._start>=(r=>(r=r.getResponseHeader("Content-Range"))!==null?parseInt(r.substring(r.lastIndexOf("/")+1)):-1)(t),this.parseChunk(t.responseText)))},this._chunkError=function(r){r=t.statusText||r,this._sendError(new Error(r))}}function k(e){(e=e||{}).chunkSize||(e.chunkSize=n.LocalChunkSize),p.call(this,e);var t,r,a=typeof FileReader<"u";this.stream=function(s){this._input=s,r=s.slice||s.webkitSlice||s.mozSlice,a?((t=new FileReader).onload=te(this._chunkLoaded,this),t.onerror=te(this._chunkError,this)):t=new FileReaderSync,this._nextChunk()},this._nextChunk=function(){this._finished||this._config.preview&&!(this._rowCount<this._config.preview)||this._readChunk()},this._readChunk=function(){var s=this._input,g=(this._config.chunkSize&&(g=Math.min(this._start+this._config.chunkSize,this._input.size),s=r.call(s,this._start,g)),t.readAsText(s,this._config.encoding));a||this._chunkLoaded({target:{result:g}})},this._chunkLoaded=function(s){this._start+=this._config.chunkSize,this._finished=!this._config.chunkSize||this._start>=this._input.size,this.parseChunk(s.target.result)},this._chunkError=function(){this._sendError(t.error)}}function F(e){var t;p.call(this,e=e||{}),this.stream=function(r){return t=r,this._nextChunk()},this._nextChunk=function(){var r,a;if(!this._finished)return r=this._config.chunkSize,t=r?(a=t.substring(0,r),t.substring(r)):(a=t,""),this._finished=!t,this.parseChunk(a)}}function ae(e){p.call(this,e=e||{});var t=[],r=!0,a=!1;this.pause=function(){p.prototype.pause.apply(this,arguments),this._input.pause()},this.resume=function(){p.prototype.resume.apply(this,arguments),this._input.resume()},this.stream=function(s){this._input=s,this._input.on("data",this._streamData),this._input.on("end",this._streamEnd),this._input.on("error",this._streamError)},this._checkIsFinished=function(){a&&t.length===1&&(this._finished=!0)},this._nextChunk=function(){this._checkIsFinished(),t.length?this.parseChunk(t.shift()):r=!0},this._streamData=te(function(s){try{t.push(typeof s=="string"?s:s.toString(this._config.encoding)),r&&(r=!1,this._checkIsFinished(),this.parseChunk(t.shift()))}catch(g){this._streamError(g)}},this),this._streamError=te(function(s){this._streamCleanUp(),this._sendError(s)},this),this._streamEnd=te(function(){this._streamCleanUp(),a=!0,this._streamData("")},this),this._streamCleanUp=te(function(){this._input.removeListener("data",this._streamData),this._input.removeListener("end",this._streamEnd),this._input.removeListener("error",this._streamError)},this)}function de(e){var t,r,a,s,g=Math.pow(2,53),j=-g,K=/^\s*-?(\d+\.?|\.\d+|\d+\.\d+)([eE][-+]?\d+)?\s*$/,$=/^((\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+([+-][0-2]\d:[0-5]\d|Z))|(\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d([+-][0-2]\d:[0-5]\d|Z))|(\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d([+-][0-2]\d:[0-5]\d|Z)))$/,_=this,L=0,d=0,W=!1,f=!1,m=[],o={data:[],errors:[],meta:{}};function D(v){return e.skipEmptyLines==="greedy"?v.join("").trim()==="":v.length===1&&v[0].length===0}function I(){if(o&&a&&(J("Delimiter","UndetectableDelimiter","Unable to auto-detect delimiting character; defaulted to '"+n.DefaultDelimiter+"'"),a=!1),e.skipEmptyLines&&(o.data=o.data.filter(function(h){return!D(h)})),M()){let h=function(T,z){S(e.transformHeader)&&(T=e.transformHeader(T,z)),m.push(T)};if(o)if(Array.isArray(o.data[0])){for(var v=0;M()&&v<o.data.length;v++)o.data[v].forEach(h);o.data.splice(0,1)}else o.data.forEach(h)}function y(h,T){for(var z=e.header?{}:[],E=0;E<h.length;E++){var R=E,w=h[E],w=((Q,c)=>(O=>(e.dynamicTypingFunction&&e.dynamicTyping[O]===void 0&&(e.dynamicTyping[O]=e.dynamicTypingFunction(O)),(e.dynamicTyping[O]||e.dynamicTyping)===!0))(Q)?c==="true"||c==="TRUE"||c!=="false"&&c!=="FALSE"&&((O=>{if(K.test(O)&&(O=parseFloat(O),j<O&&O<g))return 1})(c)?parseFloat(c):$.test(c)?new Date(c):c===""?null:c):c)(R=e.header?E>=m.length?"__parsed_extra":m[E]:R,w=e.transform?e.transform(w,R):w);R==="__parsed_extra"?(z[R]=z[R]||[],z[R].push(w)):z[R]=w}return e.header&&(E>m.length?J("FieldMismatch","TooManyFields","Too many fields: expected "+m.length+" fields but parsed "+E,d+T):E<m.length&&J("FieldMismatch","TooFewFields","Too few fields: expected "+m.length+" fields but parsed "+E,d+T)),z}var A;o&&(e.header||e.dynamicTyping||e.transform)&&(A=1,!o.data.length||Array.isArray(o.data[0])?(o.data=o.data.map(y),A=o.data.length):o.data=y(o.data,0),e.header&&o.meta&&(o.meta.fields=m),d+=A)}function M(){return e.header&&m.length===0}function J(v,y,A,h){v={type:v,code:y,message:A},h!==void 0&&(v.row=h),o.errors.push(v)}S(e.step)&&(s=e.step,e.step=function(v){o=v,M()?I():(I(),o.data.length!==0&&(L+=v.data.length,e.preview&&L>e.preview?r.abort():(o.data=o.data[0],s(o,_))))}),this.parse=function(v,y,A){var h=e.quoteChar||'"',h=(e.newline||(e.newline=this.guessLineEndings(v,h)),a=!1,e.delimiter?S(e.delimiter)&&(e.delimiter=e.delimiter(v),o.meta.delimiter=e.delimiter):((h=((T,z,E,R,w)=>{var Q,c,O,re;w=w||[","," ","|",";",n.RECORD_SEP,n.UNIT_SEP];for(var ue=0;ue<w.length;ue++){for(var G,fe=w[ue],U=0,X=0,B=0,N=(O=void 0,new oe({comments:R,delimiter:fe,newline:z,preview:10}).parse(T)),V=0;V<N.data.length;V++)E&&D(N.data[V])?B++:(G=N.data[V].length,X+=G,O===void 0?O=G:0<G&&(U+=Math.abs(G-O),O=G));0<N.data.length&&(X/=N.data.length-B),(c===void 0||U<=c)&&(re===void 0||re<X)&&1.99<X&&(c=U,Q=fe,re=X)}return{successful:!!(e.delimiter=Q),bestDelimiter:Q}})(v,e.newline,e.skipEmptyLines,e.comments,e.delimitersToGuess)).successful?e.delimiter=h.bestDelimiter:(a=!0,e.delimiter=n.DefaultDelimiter),o.meta.delimiter=e.delimiter),we(e));return e.preview&&e.header&&h.preview++,t=v,r=new oe(h),o=r.parse(t,y,A),I(),W?{meta:{paused:!0}}:o||{meta:{paused:!1}}},this.paused=function(){return W},this.pause=function(){W=!0,r.abort(),t=S(e.chunk)?"":t.substring(r.getCharIndex())},this.resume=function(){_.streamer._halted?(W=!1,_.streamer.parseChunk(t,!0)):setTimeout(_.resume,3)},this.aborted=function(){return f},this.abort=function(){f=!0,r.abort(),o.meta.aborted=!0,S(e.complete)&&e.complete(o),t=""},this.guessLineEndings=function(T,h){T=T.substring(0,1048576);var h=new RegExp(Y(h)+"([^]*?)"+Y(h),"gm"),A=(T=T.replace(h,"")).split("\r"),h=T.split(`
7
+ `),T=1<h.length&&h[0].length<A[0].length;if(A.length===1||T)return`
8
+ `;for(var z=0,E=0;E<A.length;E++)A[E][0]===`
9
+ `&&z++;return z>=A.length/2?`\r
10
+ `:"\r"}}function Y(e){return e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function oe(e){var t=(e=e||{}).delimiter,r=e.newline,a=e.comments,s=e.step,g=e.preview,j=e.fastMode,K=null,$=!1,_=e.quoteChar==null?'"':e.quoteChar,L=_;if(e.escapeChar!==void 0&&(L=e.escapeChar),(typeof t!="string"||-1<n.BAD_DELIMITERS.indexOf(t))&&(t=","),a===t)throw new Error("Comment character same as delimiter");a===!0?a="#":(typeof a!="string"||-1<n.BAD_DELIMITERS.indexOf(a))&&(a=!1),r!==`
11
+ `&&r!=="\r"&&r!==`\r
12
+ `&&(r=`
13
+ `);var d=0,W=!1;this.parse=function(f,m,o){if(typeof f!="string")throw new Error("Input must be a string");var D=f.length,I=t.length,M=r.length,J=a.length,v=S(s),y=[],A=[],h=[],T=d=0;if(!f)return U();if(j||j!==!1&&f.indexOf(_)===-1){for(var z=f.split(r),E=0;E<z.length;E++){if(h=z[E],d+=h.length,E!==z.length-1)d+=r.length;else if(o)return U();if(!a||h.substring(0,J)!==a){if(v){if(y=[],re(h.split(t)),X(),W)return U()}else re(h.split(t));if(g&&g<=E)return y=y.slice(0,g),U(!0)}}return U()}for(var R=f.indexOf(t,d),w=f.indexOf(r,d),Q=new RegExp(Y(L)+Y(_),"g"),c=f.indexOf(_,d);;)if(f[d]===_)for(c=d,d++;;){if((c=f.indexOf(_,c+1))===-1)return o||A.push({type:"Quotes",code:"MissingQuotes",message:"Quoted field unterminated",row:y.length,index:d}),G();if(c===D-1)return G(f.substring(d,c).replace(Q,_));if(_===L&&f[c+1]===L)c++;else if(_===L||c===0||f[c-1]!==L){R!==-1&&R<c+1&&(R=f.indexOf(t,c+1));var O=ue((w=w!==-1&&w<c+1?f.indexOf(r,c+1):w)===-1?R:Math.min(R,w));if(f.substr(c+1+O,I)===t){h.push(f.substring(d,c).replace(Q,_)),f[d=c+1+O+I]!==_&&(c=f.indexOf(_,d)),R=f.indexOf(t,d),w=f.indexOf(r,d);break}if(O=ue(w),f.substring(c+1+O,c+1+O+M)===r){if(h.push(f.substring(d,c).replace(Q,_)),fe(c+1+O+M),R=f.indexOf(t,d),c=f.indexOf(_,d),v&&(X(),W))return U();if(g&&y.length>=g)return U(!0);break}A.push({type:"Quotes",code:"InvalidQuotes",message:"Trailing quote on quoted field is malformed",row:y.length,index:d}),c++}}else if(a&&h.length===0&&f.substring(d,d+J)===a){if(w===-1)return U();d=w+M,w=f.indexOf(r,d),R=f.indexOf(t,d)}else if(R!==-1&&(R<w||w===-1))h.push(f.substring(d,R)),d=R+I,R=f.indexOf(t,d);else{if(w===-1)break;if(h.push(f.substring(d,w)),fe(w+M),v&&(X(),W))return U();if(g&&y.length>=g)return U(!0)}return G();function re(B){y.push(B),T=d}function ue(B){var N=0;return N=B!==-1&&(B=f.substring(c+1,B))&&B.trim()===""?B.length:N}function G(B){return o||(B===void 0&&(B=f.substring(d)),h.push(B),d=D,re(h),v&&X()),U()}function fe(B){d=B,re(h),h=[],w=f.indexOf(r,d)}function U(B){if(e.header&&!m&&y.length&&!$){var N=y[0],V=Object.create(null),ye=new Set(N);let Re=!1;for(let le=0;le<N.length;le++){let Z=N[le];if(V[Z=S(e.transformHeader)?e.transformHeader(Z,le):Z]){let ce,Oe=V[Z];for(;ce=Z+"_"+Oe,Oe++,ye.has(ce););ye.add(ce),N[le]=ce,V[Z]++,Re=!0,(K=K===null?{}:K)[ce]=Z}else V[Z]=1,N[le]=Z;ye.add(Z)}Re&&console.warn("Duplicate headers found and renamed."),$=!0}return{data:y,errors:A,meta:{delimiter:t,linebreak:r,aborted:W,truncated:!!B,cursor:T+(m||0),renamedHeaders:K}}}function X(){s(U()),y=[],A=[]}},this.abort=function(){W=!0},this.getCharIndex=function(){return d}}function he(e){var t=e.data,r=ie[t.workerId],a=!1;if(t.error)r.userError(t.error,t.file);else if(t.results&&t.results.data){var s={abort:function(){a=!0,ee(t.workerId,{data:[],errors:[],meta:{aborted:!0}})},pause:Se,resume:Se};if(S(r.userStep)){for(var g=0;g<t.results.data.length&&(r.userStep({data:t.results.data[g],errors:t.results.errors,meta:t.results.meta},s),!a);g++);delete t.results}else S(r.userChunk)&&(r.userChunk(t.results,s,t.file),delete t.results)}t.finished&&!a&&ee(t.workerId,t.results)}function ee(e,t){var r=ie[e];S(r.userComplete)&&r.userComplete(t),r.terminate(),delete ie[e]}function Se(){throw new Error("Not implemented.")}function we(e){if(typeof e!="object"||e===null)return e;var t,r=Array.isArray(e)?[]:{};for(t in e)r[t]=we(e[t]);return r}function te(e,t){return function(){e.apply(t,arguments)}}function S(e){return typeof e=="function"}return n.parse=function(e,t){var r=(t=t||{}).dynamicTyping||!1;if(S(r)&&(t.dynamicTypingFunction=r,r={}),t.dynamicTyping=r,t.transform=!!S(t.transform)&&t.transform,!t.worker||!n.WORKERS_SUPPORTED)return r=null,n.NODE_STREAM_INPUT,typeof e=="string"?(e=(a=>a.charCodeAt(0)!==65279?a:a.slice(1))(e),r=new(t.download?P:F)(t)):e.readable===!0&&S(e.read)&&S(e.on)?r=new ae(t):(l.File&&e instanceof File||e instanceof Object)&&(r=new k(t)),r.stream(e);(r=(()=>{var a;return!!n.WORKERS_SUPPORTED&&(a=(()=>{var s=l.URL||l.webkitURL||null,g=u.toString();return n.BLOB_URL||(n.BLOB_URL=s.createObjectURL(new Blob(["var global = (function() { if (typeof self !== 'undefined') { return self; } if (typeof window !== 'undefined') { return window; } if (typeof global !== 'undefined') { return global; } return {}; })(); global.IS_PAPA_WORKER=true; ","(",g,")();"],{type:"text/javascript"})))})(),(a=new l.Worker(a)).onmessage=he,a.id=se++,ie[a.id]=a)})()).userStep=t.step,r.userChunk=t.chunk,r.userComplete=t.complete,r.userError=t.error,t.step=S(t.step),t.chunk=S(t.chunk),t.complete=S(t.complete),t.error=S(t.error),delete t.worker,r.postMessage({input:e,config:t,workerId:r.id})},n.unparse=function(e,t){var r=!1,a=!0,s=",",g=`\r
14
+ `,j='"',K=j+j,$=!1,_=null,L=!1,d=((()=>{if(typeof t=="object"){if(typeof t.delimiter!="string"||n.BAD_DELIMITERS.filter(function(m){return t.delimiter.indexOf(m)!==-1}).length||(s=t.delimiter),typeof t.quotes!="boolean"&&typeof t.quotes!="function"&&!Array.isArray(t.quotes)||(r=t.quotes),typeof t.skipEmptyLines!="boolean"&&typeof t.skipEmptyLines!="string"||($=t.skipEmptyLines),typeof t.newline=="string"&&(g=t.newline),typeof t.quoteChar=="string"&&(j=t.quoteChar),typeof t.header=="boolean"&&(a=t.header),Array.isArray(t.columns)){if(t.columns.length===0)throw new Error("Option columns is empty");_=t.columns}t.escapeChar!==void 0&&(K=t.escapeChar+j),t.escapeFormulae instanceof RegExp?L=t.escapeFormulae:typeof t.escapeFormulae=="boolean"&&t.escapeFormulae&&(L=/^[=+\-@\t\r].*$/)}})(),new RegExp(Y(j),"g"));if(typeof e=="string"&&(e=JSON.parse(e)),Array.isArray(e)){if(!e.length||Array.isArray(e[0]))return W(null,e,$);if(typeof e[0]=="object")return W(_||Object.keys(e[0]),e,$)}else if(typeof e=="object")return typeof e.data=="string"&&(e.data=JSON.parse(e.data)),Array.isArray(e.data)&&(e.fields||(e.fields=e.meta&&e.meta.fields||_),e.fields||(e.fields=Array.isArray(e.data[0])?e.fields:typeof e.data[0]=="object"?Object.keys(e.data[0]):[]),Array.isArray(e.data[0])||typeof e.data[0]=="object"||(e.data=[e.data])),W(e.fields||[],e.data||[],$);throw new Error("Unable to serialize unrecognized input");function W(m,o,D){var I="",M=(typeof m=="string"&&(m=JSON.parse(m)),typeof o=="string"&&(o=JSON.parse(o)),Array.isArray(m)&&0<m.length),J=!Array.isArray(o[0]);if(M&&a){for(var v=0;v<m.length;v++)0<v&&(I+=s),I+=f(m[v],v);0<o.length&&(I+=g)}for(var y=0;y<o.length;y++){var A=(M?m:o[y]).length,h=!1,T=M?Object.keys(o[y]).length===0:o[y].length===0;if(D&&!M&&(h=D==="greedy"?o[y].join("").trim()==="":o[y].length===1&&o[y][0].length===0),D==="greedy"&&M){for(var z=[],E=0;E<A;E++){var R=J?m[E]:E;z.push(o[y][R])}h=z.join("").trim()===""}if(!h){for(var w=0;w<A;w++){0<w&&!T&&(I+=s);var Q=M&&J?m[w]:w;I+=f(o[y][Q],w)}y<o.length-1&&(!D||0<A&&!T)&&(I+=g)}}return I}function f(m,o){var D,I;return m==null?"":m.constructor===Date?JSON.stringify(m).slice(1,25):(I=!1,L&&typeof m=="string"&&L.test(m)&&(m="'"+m,I=!0),D=m.toString().replace(d,K),(I=I||r===!0||typeof r=="function"&&r(m,o)||Array.isArray(r)&&r[o]||((M,J)=>{for(var v=0;v<J.length;v++)if(-1<M.indexOf(J[v]))return!0;return!1})(D,n.BAD_DELIMITERS)||-1<D.indexOf(s)||D.charAt(0)===" "||D.charAt(D.length-1)===" ")?j+D+j:D)}},n.RECORD_SEP="",n.UNIT_SEP="",n.BYTE_ORDER_MARK="\uFEFF",n.BAD_DELIMITERS=["\r",`
15
+ `,'"',n.BYTE_ORDER_MARK],n.WORKERS_SUPPORTED=!C&&!!l.Worker,n.NODE_STREAM_INPUT=1,n.LocalChunkSize=10485760,n.RemoteChunkSize=5242880,n.DefaultDelimiter=",",n.Parser=oe,n.ParserHandle=de,n.NetworkStreamer=P,n.FileStreamer=k,n.StringStreamer=F,n.ReadableStreamStreamer=ae,l.jQuery&&((x=l.jQuery).fn.parse=function(e){var t=e.config||{},r=[];return this.each(function(g){if(!(x(this).prop("tagName").toUpperCase()==="INPUT"&&x(this).attr("type").toLowerCase()==="file"&&l.FileReader)||!this.files||this.files.length===0)return!0;for(var j=0;j<this.files.length;j++)r.push({file:this.files[j],inputElem:this,instanceConfig:x.extend({},t)})}),a(),this;function a(){if(r.length===0)S(e.complete)&&e.complete();else{var g,j,K,$,_=r[0];if(S(e.before)){var L=e.before(_.file,_.inputElem);if(typeof L=="object"){if(L.action==="abort")return g="AbortError",j=_.file,K=_.inputElem,$=L.reason,void(S(e.error)&&e.error({name:g},j,K,$));if(L.action==="skip")return void s();typeof L.config=="object"&&(_.instanceConfig=x.extend(_.instanceConfig,L.config))}else if(L==="skip")return void s()}var d=_.instanceConfig.complete;_.instanceConfig.complete=function(W){S(d)&&d(W,_.file,_.inputElem),s()},n.parse(_.file,_.instanceConfig)}}function s(){r.splice(0,1),a()}}),H&&(l.onmessage=function(e){e=e.data,n.WORKER_ID===void 0&&e&&(n.WORKER_ID=e.workerId),typeof e.input=="string"?l.postMessage({workerId:n.WORKER_ID,results:n.parse(e.input,e.config),finished:!0}):(l.File&&e.input instanceof File||e.input instanceof Object)&&(e=n.parse(e.input,e.config))&&l.postMessage({workerId:n.WORKER_ID,results:e,finished:!0})}),(P.prototype=Object.create(p.prototype)).constructor=P,(k.prototype=Object.create(p.prototype)).constructor=k,(F.prototype=Object.create(F.prototype)).constructor=F,(ae.prototype=Object.create(p.prototype)).constructor=ae,n})}(me)),me.exports}var Ee=Fe();class je{readAsText(i){const u=new FileReader;return new Promise((l,x)=>{u.onload=C=>{l(C)},u.onerror=C=>{x(C)},u.readAsText(i)})}readAsBinaryString(i){const u=new FileReader;return new Promise((l,x)=>{u.onload=C=>{l(C)},u.onerror=C=>{x(C)},u.readAsBinaryString(i)})}readAsDataUrl(i){const u=new FileReader;return new Promise((l,x)=>{u.onload=C=>{l(C)},u.onerror=C=>x(C),u.readAsDataURL(i)})}unparse(i,u){return Ee.unparse(i,u)}parse(i){return new Promise((u,l)=>{Ee.parse(i,{header:!0,complete:x=>u(x),error:x=>l(x)})})}getFileExtension(i){let u="-";return/[.]/.exec(i)&&(u=`.${/[^.]+$/.exec(i)?.[0]}`),u}save(i,u,l){const x=new Blob([i],{type:l});Te.saveAs(x,u,{autoBom:!0})}}class De{set(i,u){localStorage.setItem(i,JSON.stringify(u))}get(i){let u=null;const l=localStorage.getItem(i);return l&&(u=JSON.parse(l)),u}remove(i){localStorage.removeItem(i)}removeAll(){localStorage.clear()}getKeysBy(i){return Object.keys(localStorage).filter(u=>u.startsWith(i))}}var ve=(b=>(b.log="log",b.info="info",b.warn="warn",b.debug="debug",b.error="error",b))(ve||{});class ze{logType=ve;log(...i){this._doLog(this.logType.log,i.join(" "))}info(...i){this._doLog(this.logType.info,i.join(" "))}warn(...i){this._doLog(this.logType.warn,i.join(" "))}debug(...i){this._doLog(this.logType.debug,i.join(" "))}error(...i){this._doLog(this.logType.error,i.join(" "))}_doLog(i,...u){console[i].apply(console,u)}}class Be{constructor(i){this.localService=i}get(i){return this.localService.get(i)}set(i,u){this.localService.set(i,u)}remove(i){this.localService.remove(i)}}q.BrowserService=xe,q.BrowserType=ne,q.ClipboardService=Ce,q.FileService=je,q.LocalService=De,q.LogType=ve,q.LoggerService=ze,q.ScreenBreakpoints=pe,q.TokenService=Be,Object.defineProperty(q,Symbol.toStringTag,{value:"Module"})});
@@ -0,0 +1,2 @@
1
+ export * from './keyvalue.interface';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/lib/interfaces/index.ts"],"names":[],"mappings":"AAAA,cAAc,sBAAsB,CAAC"}
@@ -0,0 +1,5 @@
1
+ export interface IKeyValue<T> {
2
+ key: number | string;
3
+ value: T;
4
+ }
5
+ //# sourceMappingURL=keyvalue.interface.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"keyvalue.interface.d.ts","sourceRoot":"","sources":["../../../src/lib/interfaces/keyvalue.interface.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,SAAS,CAAC,CAAC;IAC3B,GAAG,EAAE,MAAM,GAAG,MAAM,CAAC;IACrB,KAAK,EAAE,CAAC,CAAC;CACT"}
package/package.json ADDED
@@ -0,0 +1,22 @@
1
+ {
2
+ "name": "@oardi/ts-utils",
3
+ "version": "0.0.6",
4
+ "description": "utility services, types",
5
+ "main": "index.cjs.js",
6
+ "module": "index.es.js",
7
+ "types": "index.d.ts",
8
+ "keywords": ["typescript", "library"],
9
+ "author": "Ardian Shala",
10
+ "license": "MIT",
11
+ "dependencies": {},
12
+ "devDependencies": {
13
+ "typescript": "^5.5.4"
14
+ },
15
+ "peerDependencies": {
16
+ "@types/papaparse": "^5.3.15",
17
+ "papaparse": "^5.5.2"
18
+ },
19
+ "publishConfig": {
20
+ "access": "public"
21
+ }
22
+ }
@@ -0,0 +1,49 @@
1
+ export type Size = 'xs' | 'sm' | 'md' | 'lg' | 'xl' | 'xxl' | 'xxxl';
2
+ export declare enum BrowserType {
3
+ opera = "opera",
4
+ firefox = "firefox",
5
+ safari = "safari",
6
+ ie = "ie",
7
+ edge = "edge",
8
+ edg = "edg",
9
+ electron = "electron",
10
+ chrome = "chrome",
11
+ iOsSafari = "iOsSafari",
12
+ edgiOs = "edgiOs",
13
+ headlessChrome = "headlessChrome"
14
+ }
15
+ export interface IScreenBreakpoint {
16
+ breakpoint: Size;
17
+ screenWidth: number;
18
+ }
19
+ export declare const ScreenBreakpoints: IScreenBreakpoint[];
20
+ type ResizeCallback = (breakpoint: IScreenBreakpoint) => void;
21
+ export declare class BrowserService {
22
+ private screenWidth;
23
+ private lastBreakpoint?;
24
+ private resizeListener;
25
+ private resizeCallbacks;
26
+ constructor();
27
+ destroy(): void;
28
+ onBreakpointChange(callback: ResizeCallback): void;
29
+ offBreakpointChange(callback: ResizeCallback): void;
30
+ getCurrentBrowser(): BrowserType;
31
+ getBreakpointBySize(size?: number): Optional<IScreenBreakpoint>;
32
+ isScreenGreaterThan(size: Size): boolean;
33
+ isScreenSmallerThan(size: Size): boolean;
34
+ getBreakpoint(size: Size): Optional<IScreenBreakpoint>;
35
+ private isOpera;
36
+ private isFirefox;
37
+ private isSafari;
38
+ private isIE;
39
+ private isEdge;
40
+ private isEdg;
41
+ private isElectron;
42
+ private isChrome;
43
+ private isIOsSafari;
44
+ private isEdgiOs;
45
+ private isHeadlessChrome;
46
+ private onResize;
47
+ }
48
+ export {};
49
+ //# sourceMappingURL=browser.service.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"browser.service.d.ts","sourceRoot":"","sources":["../../../src/lib/services/browser.service.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,KAAK,GAAG,MAAM,CAAC;AAErE,oBAAY,WAAW;IACtB,KAAK,UAAU;IACf,OAAO,YAAY;IACnB,MAAM,WAAW;IACjB,EAAE,OAAO;IACT,IAAI,SAAS;IACb,GAAG,QAAQ;IACX,QAAQ,aAAa;IACrB,MAAM,WAAW;IACjB,SAAS,cAAc;IACvB,MAAM,WAAW;IACjB,cAAc,mBAAmB;CACjC;AAMD,MAAM,WAAW,iBAAiB;IACjC,UAAU,EAAE,IAAI,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;CACpB;AAED,eAAO,MAAM,iBAAiB,EAAE,iBAAiB,EAQhD,CAAC;AAEF,KAAK,cAAc,GAAG,CAAC,UAAU,EAAE,iBAAiB,KAAK,IAAI,CAAC;AAE9D,qBAAa,cAAc;IAC1B,OAAO,CAAC,WAAW,CAAa;IAChC,OAAO,CAAC,cAAc,CAAC,CAAoB;IAC3C,OAAO,CAAC,cAAc,CAA4B;IAClD,OAAO,CAAC,eAAe,CAAkC;;IAWlD,OAAO,IAAI,IAAI;IAOf,kBAAkB,CAAC,QAAQ,EAAE,cAAc,GAAG,IAAI;IAIlD,mBAAmB,CAAC,QAAQ,EAAE,cAAc,GAAG,IAAI;IAInD,iBAAiB,IAAI,WAAW;IAkBhC,mBAAmB,CAAC,IAAI,GAAE,MAAyB,GAAG,QAAQ,CAAC,iBAAiB,CAAC;IAUjF,mBAAmB,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO;IAKxC,mBAAmB,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO;IAKxC,aAAa,CAAC,IAAI,EAAE,IAAI,GAAG,QAAQ,CAAC,iBAAiB,CAAC;IAM7D,OAAO,CAAC,OAAO;IAOf,OAAO,CAAC,SAAS;IAIjB,OAAO,CAAC,QAAQ;IAShB,OAAO,CAAC,IAAI;IAIZ,OAAO,CAAC,MAAM;IAId,OAAO,CAAC,KAAK;IAIb,OAAO,CAAC,UAAU;IAIlB,OAAO,CAAC,QAAQ;IAahB,OAAO,CAAC,WAAW;IAQnB,OAAO,CAAC,QAAQ;IAIhB,OAAO,CAAC,gBAAgB;IAMxB,OAAO,CAAC,QAAQ;CAUhB"}
@@ -0,0 +1,4 @@
1
+ export declare class ClipboardService {
2
+ copy(text: string): Promise<void>;
3
+ }
4
+ //# sourceMappingURL=clipboard.service.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"clipboard.service.d.ts","sourceRoot":"","sources":["../../../src/lib/services/clipboard.service.ts"],"names":[],"mappings":"AAAA,qBAAa,gBAAgB;IAC5B,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAGjC"}
@@ -0,0 +1,11 @@
1
+ import { ParseResult, UnparseConfig, UnparseObject } from 'papaparse';
2
+ export declare class FileService {
3
+ readAsText(file: File): Promise<ProgressEvent<FileReader>>;
4
+ readAsBinaryString(file: File): Promise<ProgressEvent<FileReader>>;
5
+ readAsDataUrl(file: File): Promise<ProgressEvent<FileReader>>;
6
+ unparse<T>(data: T[] | UnparseObject<T>, config?: UnparseConfig): string;
7
+ parse<T>(content: string | File): Promise<ParseResult<T>>;
8
+ getFileExtension(filename: string): string;
9
+ save(content: BlobPart, fileName: string, fileType: string): void;
10
+ }
11
+ //# sourceMappingURL=file.service.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"file.service.d.ts","sourceRoot":"","sources":["../../../src/lib/services/file.service.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAG3E,qBAAa,WAAW;IACvB,UAAU,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC;IAa1D,kBAAkB,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC;IAalE,aAAa,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC;IAW7D,OAAO,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,GAAG,aAAa,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,EAAE,aAAa,GAAG,MAAM;IAIxE,KAAK,CAAC,CAAC,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;IAUzD,gBAAgB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM;IAS1C,IAAI,CAAC,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI;CAIjE"}
@@ -0,0 +1,7 @@
1
+ export * from './browser.service';
2
+ export * from './clipboard.service';
3
+ export * from './file.service';
4
+ export * from './local.service';
5
+ export * from './logger.service';
6
+ export * from './token.service';
7
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/lib/services/index.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAC;AAClC,cAAc,qBAAqB,CAAC;AACpC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,iBAAiB,CAAC;AAChC,cAAc,kBAAkB,CAAC;AACjC,cAAc,iBAAiB,CAAC"}
@@ -0,0 +1,8 @@
1
+ export declare class LocalService {
2
+ set<T>(key: string, value: T): void;
3
+ get<T>(key: string): Nullable<T>;
4
+ remove(key: string): void;
5
+ removeAll(): void;
6
+ getKeysBy(key: string): string[];
7
+ }
8
+ //# sourceMappingURL=local.service.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"local.service.d.ts","sourceRoot":"","sources":["../../../src/lib/services/local.service.ts"],"names":[],"mappings":"AAAA,qBAAa,YAAY;IACxB,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,GAAG,IAAI;IAInC,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,GAAG,QAAQ,CAAC,CAAC,CAAC;IAShC,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;IAIzB,SAAS,IAAI,IAAI;IAIjB,SAAS,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,EAAE;CAGhC"}
@@ -0,0 +1,24 @@
1
+ export interface ILoggerService {
2
+ log(...args: unknown[]): void;
3
+ info(...args: unknown[]): void;
4
+ warn(...args: unknown[]): void;
5
+ debug(...args: unknown[]): void;
6
+ error(...args: unknown[]): void;
7
+ }
8
+ export declare enum LogType {
9
+ log = "log",
10
+ info = "info",
11
+ warn = "warn",
12
+ debug = "debug",
13
+ error = "error"
14
+ }
15
+ export declare class LoggerService implements ILoggerService {
16
+ logType: typeof LogType;
17
+ log(...args: unknown[]): void;
18
+ info(...args: unknown[]): void;
19
+ warn(...args: unknown[]): void;
20
+ debug(...args: unknown[]): void;
21
+ error(...args: unknown[]): void;
22
+ _doLog(logType: LogType, ...args: unknown[]): void;
23
+ }
24
+ //# sourceMappingURL=logger.service.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logger.service.d.ts","sourceRoot":"","sources":["../../../src/lib/services/logger.service.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,cAAc;IAC9B,GAAG,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC;IAC9B,IAAI,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC;IAC/B,IAAI,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC;IAC/B,KAAK,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC;IAChC,KAAK,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC;CAChC;AAED,oBAAY,OAAO;IAClB,GAAG,QAAQ;IACX,IAAI,SAAS;IACb,IAAI,SAAS;IACb,KAAK,UAAU;IACf,KAAK,UAAU;CACf;AAED,qBAAa,aAAc,YAAW,cAAc;IACnD,OAAO,EAAE,OAAO,OAAO,CAAW;IAElC,GAAG,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI;IAI7B,IAAI,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI;IAI9B,IAAI,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI;IAI9B,KAAK,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI;IAI/B,KAAK,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI;IAI/B,MAAM,CAAC,OAAO,EAAE,OAAO,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI;CAGlD"}
@@ -0,0 +1,9 @@
1
+ import { LocalService } from './local.service';
2
+ export declare class TokenService {
3
+ private localService;
4
+ constructor(localService: LocalService);
5
+ get(key: 'accesstoken' | 'refreshtoken'): string | null;
6
+ set(key: 'accesstoken' | 'refreshtoken', token: string): void;
7
+ remove(key: 'accesstoken' | 'refreshtoken'): void;
8
+ }
9
+ //# sourceMappingURL=token.service.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"token.service.d.ts","sourceRoot":"","sources":["../../../src/lib/services/token.service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAE/C,qBAAa,YAAY;IACZ,OAAO,CAAC,YAAY;gBAAZ,YAAY,EAAE,YAAY;IAE9C,GAAG,CAAC,GAAG,EAAE,aAAa,GAAG,cAAc,GAAG,MAAM,GAAG,IAAI;IAIvD,GAAG,CAAC,GAAG,EAAE,aAAa,GAAG,cAAc,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI;IAI7D,MAAM,CAAC,GAAG,EAAE,aAAa,GAAG,cAAc,GAAG,IAAI;CAGjD"}
@@ -0,0 +1,2 @@
1
+ export type Dictionary<T> = Record<string, T>;
2
+ //# sourceMappingURL=dictionary.type.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dictionary.type.d.ts","sourceRoot":"","sources":["../../../src/lib/types/dictionary.type.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,UAAU,CAAC,CAAC,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC"}
@@ -0,0 +1,8 @@
1
+ export * from './dictionary.type';
2
+ declare global {
3
+ export type UnknownObject = any;
4
+ export type Nullable<T> = T | null;
5
+ export type Optional<T> = T | undefined;
6
+ export const InstallTrigger: unknown;
7
+ }
8
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/lib/types/index.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAC;AAElC,OAAO,CAAC,MAAM,CAAC;IAEd,MAAM,MAAM,aAAa,GAAG,GAAG,CAAC;IAChC,MAAM,MAAM,QAAQ,CAAC,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;IACnC,MAAM,MAAM,QAAQ,CAAC,CAAC,IAAI,CAAC,GAAG,SAAS,CAAC;IACxC,MAAM,CAAC,MAAM,cAAc,EAAE,OAAO,CAAC;CACrC"}