csv-sort 7.2.3 → 7.2.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +40 -3
- package/README.md +3 -1
- package/dist/csv-sort.esm.js +2 -2
- package/dist/csv-sort.umd.js +11 -11
- package/package.json +3 -4
package/CHANGELOG.md
CHANGED
|
@@ -10,6 +10,12 @@ See [Conventional Commits](https://conventionalcommits.org) for commit guideline
|
|
|
10
10
|
- optimise package hot paths and JSON editing ([f3112bd](https://github.com/codsen/codsen/commit/f3112bd7fc0d7c9bc09312d3744c950691d72ca5))
|
|
11
11
|
- record lodash-es removal benchmarks ([0f69b6f](https://github.com/codsen/codsen/commit/0f69b6fdb8c3be04eaa02f82de107390b5263ce9))
|
|
12
12
|
|
|
13
|
+
## 7.2.1 (2026-08-19)
|
|
14
|
+
|
|
15
|
+
### Performance Improvements
|
|
16
|
+
|
|
17
|
+
- Recorded a 36.04% higher normalized benchmark score than v7.2.0 (1,365 → 1,857).
|
|
18
|
+
|
|
13
19
|
## 7.2.0 (2026-08-19)
|
|
14
20
|
|
|
15
21
|
### Bug Fixes
|
|
@@ -25,10 +31,11 @@ See [Conventional Commits](https://conventionalcommits.org) for commit guideline
|
|
|
25
31
|
- add codsen-glob and migrate glob consumers ([5595a2b](https://github.com/codsen/codsen/commit/5595a2b267eaa6cb60072d037aef00b7a28edd42))
|
|
26
32
|
- refresh the tooling and generate with the latest dependencies ([781f802](https://github.com/codsen/codsen/commit/781f802911066a82a4533b0e5a3fcbd742d0dd83))
|
|
27
33
|
|
|
28
|
-
|
|
34
|
+
## 7.1.3 (2026-01-15)
|
|
35
|
+
|
|
36
|
+
### Performance Improvements
|
|
29
37
|
|
|
30
|
-
-
|
|
31
|
-
- Revert "Merge pull request #127 from codsen/release/npm-32194020886-1" ([5f1e94d](https://github.com/codsen/codsen/commit/5f1e94deef910ce735266b16aeee08a76de7a862)), closes [#127](https://github.com/codsen/codsen/issues/127)
|
|
38
|
+
- Recorded a 47.04% higher normalized benchmark score than v7.0.30 (929 → 1,366).
|
|
32
39
|
|
|
33
40
|
## 7.0.0 (2022-12-01)
|
|
34
41
|
|
|
@@ -42,6 +49,36 @@ See [Conventional Commits](https://conventionalcommits.org) for commit guideline
|
|
|
42
49
|
|
|
43
50
|
- export types ([11b5fb9](https://github.com/codsen/codsen/commit/11b5fb936ce20e0a77c3a09806773e1cd7695c50))
|
|
44
51
|
|
|
52
|
+
## 6.0.18 (2022-05-04)
|
|
53
|
+
|
|
54
|
+
### Performance Improvements
|
|
55
|
+
|
|
56
|
+
- Recorded a 139.79% higher normalized benchmark score than v6.0.17 (583 → 1,398).
|
|
57
|
+
|
|
58
|
+
## 6.0.17 (2022-04-18)
|
|
59
|
+
|
|
60
|
+
### Performance Improvements
|
|
61
|
+
|
|
62
|
+
- Recorded a 10.21% higher normalized benchmark score than v6.0.16 (529 → 583).
|
|
63
|
+
|
|
64
|
+
## 6.0.15 (2022-04-11)
|
|
65
|
+
|
|
66
|
+
### Performance Improvements
|
|
67
|
+
|
|
68
|
+
- Recorded a 16.18% higher normalized benchmark score than v6.0.14 (655 → 761).
|
|
69
|
+
|
|
70
|
+
## 6.0.13 (2022-03-21)
|
|
71
|
+
|
|
72
|
+
### Performance Improvements
|
|
73
|
+
|
|
74
|
+
- Recorded a 5.59% higher normalized benchmark score than v6.0.12 (752 → 794).
|
|
75
|
+
|
|
76
|
+
## 6.0.12 (2022-01-22)
|
|
77
|
+
|
|
78
|
+
### Performance Improvements
|
|
79
|
+
|
|
80
|
+
- Recorded a 10.59% higher normalized benchmark score than v6.0.11 (680 → 752).
|
|
81
|
+
|
|
45
82
|
## 6.0.0 (2021-09-09)
|
|
46
83
|
|
|
47
84
|
### Features
|
package/README.md
CHANGED
|
@@ -21,6 +21,8 @@
|
|
|
21
21
|
<img src="https://img.shields.io/badge/licence-MIT-brightgreen.svg?style=flat-square" alt="MIT Licence">
|
|
22
22
|
</p>
|
|
23
23
|
|
|
24
|
+
**Powered by currency.js.** No other dependencies.
|
|
25
|
+
|
|
24
26
|
## Install
|
|
25
27
|
|
|
26
28
|
This package is [pure ESM](https://gist.github.com/sindresorhus/a39789f98801d908bbc7ff3ecc99d99c). If you're not ready yet, install an older version of this program, 5.1.0 (`npm i csv-sort@5.1.0`).
|
|
@@ -66,7 +68,7 @@ assert.deepEqual(
|
|
|
66
68
|
|
|
67
69
|
## Documentation
|
|
68
70
|
|
|
69
|
-
Please [visit codsen.com](https://codsen.com/os/csv-sort/) for a full description of the API.
|
|
71
|
+
Please [visit codsen.com](https://codsen.com/os/csv-sort/) for a full description of the API. For **Changelog**, see [raw md on GitHub](https://github.com/codsen/codsen/blob/main/packages/csv-sort/CHANGELOG.md) or [the website](https://codsen.com/os/csv-sort/changelog).
|
|
70
72
|
|
|
71
73
|
## Contributing
|
|
72
74
|
|
package/dist/csv-sort.esm.js
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* @name csv-sort
|
|
3
3
|
* @fileoverview Sort double-entry bookkeeping CSV from internet banking
|
|
4
|
-
* @version 7.2.
|
|
4
|
+
* @version 7.2.5
|
|
5
5
|
* @author Roy Revelt
|
|
6
6
|
* @license MIT
|
|
7
7
|
* {@link https://codsen.com/os/csv-sort/}
|
|
8
8
|
*/
|
|
9
9
|
|
|
10
|
-
import{formatDiagnosticValue as O,pullAll as x}from"codsen-utils";import{splitEasy as j}from"csv-split-easy";import w from"currency.js";var k="7.2.
|
|
10
|
+
import{formatDiagnosticValue as O,pullAll as x}from"codsen-utils";import{splitEasy as j}from"csv-split-easy";import w from"currency.js";var k="7.2.5";function E(a){return typeof a=="number"&&!Number.isNaN(a)?!0:(a=(a||"").toString().trim(),a?!Number.isNaN(+a):!1)}var A=["\u062F.\u0625","\u060B","L","\u058F","\u0192","Kz","$","\u0192","\u20BC","KM","\u09F3","\u043B\u0432",".\u062F.\u0628","FBu","$b","R$","\u0E3F","Nu.","P","p.","BZ$","FC","CHF","\xA5","\u20A1","\u20B1","K\u010D","Fdj","kr","RD$","\u062F\u062C","kr","Nfk","Br","\u039E","\u20AC","\u20BE","\u20B5","GH\u20B5","D","FG","Q","L","kn","G","Ft","Rp","\u20AA","\u20B9","\u0639.\u062F","\uFDFC","kr","J$","JD","\xA5","KSh","\u043B\u0432","\u17DB","CF","\u20A9","\u20A9","KD","\u043B\u0432","\u20AD","\u20A8","M","\u0141","Lt","Ls","LD","MAD","lei","Ar","\u0434\u0435\u043D","K","\u20AE","MOP$","UM","\u20A8","Rf","MK","RM","MT","\u20A6","C$","kr","\u20A8","\uFDFC","B/.","S/.","K","\u20B1","\u20A8","z\u0142","Gs","\uFDFC","\uFFE5","lei","\u0414\u0438\u043D.","\u20BD","R\u20A3","\uFDFC","\u20A8","\u062C.\u0633.","kr","\xA3","Le","S","Db","E","\u0E3F","SM","T","\u062F.\u062A","T$","\u20A4","\u20BA","TT$","NT$","TSh","\u20B4","USh","$U","\u043B\u0432","Bs","\u20AB","VT","WS$","FCFA","\u0243","CFA","\u20A3","\uFDFC","R","Z$"];function R(a){return E(a)||A.some(y=>E(a.replace(y,"").replace(/[,.]/g,"")))?"numeric":a.trim()?"text":"empty"}var _=k;function G(a){let y=null,C=null;if(typeof a!="string")throw new TypeError(`csv-sort/sort(): [THROW_ID_01] The input is of a wrong type! We accept either string of array of arrays. We got instead: ${typeof a}, equal to:
|
|
11
11
|
${O(a,4)}`);if(!a.trim())return{res:[[""]],msgContent:y,msgType:C};let n=j(a),s=[],g=!1,S=!0,T=[],o=null;for(let t=n.length-1;t>=0;t--)if(s.length){t===0&&(g=n[t].every(l=>{let i=R(l);return i==="text"||i==="empty"})),!g&&s.length!==n[t].length&&(S=!1);let e=null;for(let l=0,i=n[t].length;l<i;l++){let u=R(n[t][l].trim());if(e===null&&u==="empty"&&(e=l),e!==null&&u!=="empty"&&(e=null),u!==s[l]&&!g){let c=u;if(Array.isArray(s[l]))s[l].includes(c)||s[l].push(c);else if(s[l]!==c){let f=s[l];s[l]=[],s[l].push(f),s[l].push(c)}}}o!==null&&e!==null&&e>o&&(!g||g&&t!==0)&&(o=e)}else if(n[t].length!==1||n[t][0]!=="")for(let e=0,l=n[t].length;e<l;e++){let i=R(n[t][e].trim());s.push(i),o===null&&i==="empty"&&(o=e),o!==null&&i!=="empty"&&(o=null)}o||(o=s.length);let D=0;for(let t=0,e=s.length;t<e&&s[t]==="empty";t++)D=t;D!==0&&(n=n.map(t=>t.slice(D+1,o)),s=s.slice(D+1,o));let b=[],p;s.forEach((t,e)=>{t==="numeric"&&b.push(e)});let B=g?1:0;if(b.length===1)p=b[0];else{if(b.length===0)throw new Error('csv-sort/sort(): [THROW_ID_02] Your CSV file does not contain numeric-only columns and computer was not able to detect the "Balance" column!');{let t=Array.from(b),e=[];for(let l=0,i=t.length;l<i;l++){let u=t[l],c,f=!0,h,d=!0;for(let m=B,N=n.length;m<N&&(f&&(c==null?c=n[m][u]:c===n[m][u]?(e.push(u),f=!1):c=n[m][u]),d&&(h==null?h=n[m][u]:n[m][u]!==h&&(d=!1)),!!f);m++);d&&T.push(u)}if(t=x(t,e),t.length===1)p=t[0];else if(t.length===0)throw new Error(`csv-sort/sort(): [THROW_ID_03] The computer can't find the "Balance" column! It saw some numeric-only columns, but they all seem to have certain rows with the same values as rows right below/above them!`)}}if(!p)throw new Error("csv-sort/sort(): [THROW_ID_04] Sadly computer couldn't find its way in this CSV and had to stop working on it.");let V=x(Array.from(s.reduce((t,e,l)=>((typeof e=="string"&&e==="numeric"||Array.isArray(e)&&e.includes("numeric"))&&t.push(l),t),[])),[p,...T]),r=[];r.push(n[n.length-1].slice(0,o));let $=[],v=g?1:0;for(let t=n.length-2;t>=v;t--)for(let e=n.length-2;e>=v;e--)if(!$.includes(e)){let l=!1;for(let i=0,u=V.length;i<u;i++){let c=null;n[e][V[i]]!==""&&(c=w(n[e][V[i]]));let f=null;n[e][p]!==""&&(f=w(n[e][p]));let h=null;r[0][p]!==""&&(h=w(r[0][p]).format());let d=null;r[r.length-1][V[i]]!==""&&(d=w(r[r.length-1][V[i]]).format());let m=null;if(r[r.length-1][p]!==""&&(m=w(r[r.length-1][p])),c&&f.add(c).format()===h){r.unshift(n[e].slice(0,o)),$.push(e),l=!0;break}else if(c&&f.subtract(c).format()===h){r.unshift(n[e].slice(0,o)),$.push(e),l=!0;break}else if(d&&m.add(d).format()===f.format()){r.push(n[e].slice(0,o)),$.push(e),l=!0;break}else if(d&&m.subtract(d).format()===f.format()){r.push(n[e].slice(0,o)),$.push(e),l=!0;break}}if(l){l=!1;break}}return g&&(S&&n[0].length>s.length&&(n[0].length=s.length),r.unshift(n[0].slice(0,o))),n.length-(g?2:1)!==$.length&&(y="Not all rows were recognised!",C="alert"),{res:r,msgContent:y,msgType:C}}export{R as findType,E as isNumeric,G as sort,_ as version};
|
package/dist/csv-sort.umd.js
CHANGED
|
@@ -1,17 +1,17 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* @name csv-sort
|
|
3
3
|
* @fileoverview Sort double-entry bookkeeping CSV from internet banking
|
|
4
|
-
* @version 7.2.
|
|
4
|
+
* @version 7.2.5
|
|
5
5
|
* @author Roy Revelt
|
|
6
6
|
* @license MIT
|
|
7
7
|
* {@link https://codsen.com/os/csv-sort/}
|
|
8
8
|
*/
|
|
9
9
|
|
|
10
|
-
"use strict";var csvSort=(()=>{var ve=Object.create;var I=Object.defineProperty;var $e=Object.getOwnPropertyDescriptor;var we=Object.getOwnPropertyNames,X=Object.getOwnPropertySymbols,Ae=Object.getPrototypeOf,ee=Object.prototype.hasOwnProperty,Te=Object.prototype.propertyIsEnumerable;var q=(e,r,t)=>r in e?I(e,r,{enumerable:!0,configurable:!0,writable:!0,value:t}):e[r]=t,R=(e,r)=>{for(var t in r||(r={}))ee.call(r,t)&&q(e,t,r[t]);if(X)for(var t of X(r))Te.call(r,t)&&q(e,t,r[t]);return e};var Ce=(e,r)=>()=>{try{return r||e((r={exports:{}}).exports,r),r.exports}catch(t){throw r=0,t}},Se=(e,r)=>{for(var t in r)I(e,t,{get:r[t],enumerable:!0})},te=(e,r,t,n)=>{if(r&&typeof r=="object"||typeof r=="function")for(let o of we(r))!ee.call(e,o)&&o!==t&&I(e,o,{get:()=>r[o],enumerable:!(n=$e(r,o))||n.enumerable});return e};var Re=(e,r,t)=>(t=e!=null?ve(Ae(e)):{},te(r||!e||!e.__esModule?I(t,"default",{value:e,enumerable:!0}):t,e)),Oe=e=>te(I({},"__esModule",{value:!0}),e);var V=(e,r,t)=>q(e,typeof r!="symbol"?r+"":r,t);var me=Ce((Z,Y)=>{(function(e,r){typeof Z=="object"&&typeof Y<"u"?Y.exports=r():typeof define=="function"&&define.amd?define(r):(e=e||self,e.currency=r())})(Z,function(){function e(s,l){if(!(this instanceof e))return new e(s,l);l=Object.assign({},t,l);var a=Math.pow(10,l.precision);this.intValue=s=r(s,l),this.value=s/a,l.increment=l.increment||1/a,l.groups=l.useVedic?o:n,this.s=l,this.p=a}function r(s,l){var a=2<arguments.length&&arguments[2]!==void 0?arguments[2]:!0,i=l.decimal,_=l.errorOnInvalid,p=l.fromCents,c=Math.pow(10,l.precision),d=s instanceof e;if(d&&p)return s.intValue;if(typeof s=="number"||d)i=d?s.value:s;else if(typeof s=="string")_=new RegExp("[^-\\d"+i+"]","g"),i=new RegExp("\\"+i,"g"),i=(i=s.replace(/\((.*)\)/,"-$1").replace(_,"").replace(i,"."))||0;else{if(_)throw Error("Invalid Input");i=0}return p||(i=(i*c).toFixed(4)),a?Math.round(i):i}var t={symbol:"$",separator:",",decimal:".",errorOnInvalid:!1,precision:2,pattern:"!#",negativePattern:"-!#",format:function(s,l){var a=l.pattern,i=l.negativePattern,_=l.symbol,p=l.separator,c=l.decimal;l=l.groups;var d=(""+s).replace(/^-/,"").split("."),b=d[0];return d=d[1],(0<=s.value?a:i).replace("!",_).replace("#",b.replace(l,"$1"+p)+(d?c+d:""))},fromCents:!1},n=/(\d)(?=(\d{3})+\b)/g,o=/(\d)(?=(\d\d)+\d\b)/g;return e.prototype={add:function(s){var l=this.s,a=this.p;return e((this.intValue+r(s,l))/(l.fromCents?1:a),l)},subtract:function(s){var l=this.s,a=this.p;return e((this.intValue-r(s,l))/(l.fromCents?1:a),l)},multiply:function(s){var l=this.s;return e(this.intValue*s/(l.fromCents?1:Math.pow(10,l.precision)),l)},divide:function(s){var l=this.s;return e(this.intValue/r(s,l,!1),l)},distribute:function(s){var l=this.intValue,a=this.p,i=this.s,_=[],p=Math[0<=l?"floor":"ceil"](l/s),c=Math.abs(l-p*s);for(a=i.fromCents?1:a;s!==0;s--){var d=e(p/a,i);0<c--&&(d=d[0<=l?"add":"subtract"](1/a)),_.push(d)}return _},dollars:function(){return~~this.value},cents:function(){return~~(this.intValue%this.p)},format:function(s){var l=this.s;return typeof s=="function"?s(this,l):l.format(this,Object.assign({},l,s))},toString:function(){var s=this.s,l=s.increment;return(Math.round(this.intValue/this.p/l)*l).toFixed(s.precision)},toJSON:function(){return this.value}},e})});var Ge={};Se(Ge,{findType:()=>F,isNumeric:()=>U,sort:()=>Je,version:()=>Ke});function De(){let e=[],r=0,t=!1;return{append(n){return t?!1:r+n.length>1999?(e.push("\u2026"),r+=1,t=!0,!1):(e.push(n),r+=n.length,!0)},result(){return e.join("")},stopped(){return t}}}function xe(e){return"\\u".concat(e.toString(16).padStart(4,"0"))}function M(e,r){if(e.append('"')){for(let t=0;t<r.length&&!e.stopped();t+=1){let n=r.charCodeAt(t);n===34?e.append('\\"'):n===92?e.append("\\\\"):n===8?e.append("\\b"):n===9?e.append("\\t"):n===10?e.append("\\n"):n===12?e.append("\\f"):n===13?e.append("\\r"):n<32||n===8232||n===8233||n>=55296&&n<=57343?e.append(xe(n)):e.append(r[t])}e.append('"')}}function Ee(e){return e.get&&e.set?"[Getter/Setter]":e.get?"[Getter]":e.set?"[Setter]":"[Accessor]"}function ne(e,r){e.append("Symbol(");let t=String(r);t.length>8&&M(e,t.slice(7,-1)),e.append(")")}function re(e,r){typeof r=="symbol"?ne(e,r):M(e,String(r))}function h(e,r=0){let t=De(),n=r===4?4:0,o=new WeakSet,s=0;function l(u){n&&t.append(" ".repeat(u*n))}function a(u,y){u&&t.append(","),n&&(t.append("\n"),l(y+1))}function i(u,y,$){n&&y&&(t.append("\n"),l($)),t.append(u)}function _(u,y){Object.prototype.hasOwnProperty.call(u,"value")?b(u.value,y):t.append(Ee(u))}function p(u,y){let $;try{$=Reflect.getOwnPropertyDescriptor(u,"length")}catch(m){t.append("[Uninspectable]");return}let f=$==null?void 0:$.value;if(!Number.isSafeInteger(f)||f<0){t.append("[Uninspectable]");return}t.append("[");let g=!1;for(let m=0;m<f&&!t.stopped();m+=1){if(a(g,y),g=!0,s>=50){t.append("[MaxEntries]");break}s+=1;let v;try{v=Reflect.getOwnPropertyDescriptor(u,String(m))}catch(w){t.append("[Uninspectable]");continue}v!=null&&v.enumerable?_(v,y+1):t.append("[Empty]")}i("]",g,y)}function c(u,y){let $;try{$=Reflect.ownKeys(u)}catch(g){t.append("[Uninspectable]");return}t.append("{");let f=!1;for(let g of $){if(t.stopped())break;if(s>=50){a(f,y),f=!0,M(t,"\u2026"),t.append(n?": ":":"),t.append("[MaxEntries]");break}s+=1;let m;try{m=Reflect.getOwnPropertyDescriptor(u,g)}catch(v){a(f,y),f=!0,re(t,g),t.append(n?": ":":"),t.append("[Uninspectable]");continue}m!=null&&m.enumerable&&(a(f,y),f=!0,re(t,g),t.append(n?": ":":"),_(m,y+1))}i("}",f,y)}function d(u,y){if(o.has(u)){t.append("[Circular]");return}if(y>=5){t.append("[MaxDepth]");return}let $;try{$=Array.isArray(u)}catch(f){t.append("[Uninspectable]");return}o.add(u);try{$?p(u,y):c(u,y)}finally{o.delete(u)}}function b(u,y){u===null?t.append("null"):typeof u=="string"?M(t,u):typeof u=="number"?t.append(Object.is(u,-0)?"-0":String(u)):typeof u=="boolean"?t.append(u?"true":"false"):typeof u>"u"?t.append("undefined"):typeof u=="bigint"?t.append("".concat(u,"n")):typeof u=="symbol"?ne(t,u):typeof u=="function"?t.append("[Function]"):d(u,y)}try{return b(e,0),t.result()}catch(u){return"[Uninspectable]"}}var je=["_16_0_a_0_4_0_5_m_1_u_1_cp_4_b_e_4_7_0_1_0_3l_4_1_1_2_3_1_0_6_0_1_2_1_0_1_j_1_2a_1_3u_8_4l_1_11_2_0_","6_14_1z_q_4_3_19_16_z_1_1_2q_1_0_f_1_7_1_a_2_2_0_g_0_1_t_t_2g_b_0_o_w_9_1_4_0_5_l_4_0_9_0_3_0_n_o_7_","a_5_n_1_6_g_15_1m_1h_3_0_i_0_7_9_f_f_4_7_2_1_2_l_1_6_1_0_3_3_3_0_g_0_d_1_1_2_e_1_a_0_8_5_4_1_2_l_1_6","_1_1_1_1_1_1_v_3_1_0_j_2_g_8_1_2_1_l_1_6_1_1_1_4_3_0_i_0_f_1_n_0_b_7_2_1_2_l_1_6_1_1_1_4_3_0_u_1_1_2","_f_0_h_0_1_5_3_2_1_3_3_1_1_0_1_1_3_1_3_2_3_b_m_0_1g_7_1_2_1_m_1_f_3_0_q_2_1_1_2_1_u_0_4_7_1_2_1_m_1_","9_1_4_3_0_u_2_1_1_f_1_h_8_1_2_1_14_2_0_g_0_5_2_8_2_o_5_5_h_3_n_1_8_1_0_2_6_1m_1b_1_1_c_6_1m_1_1_0_1_","4_1_n_1_0_1_9_1_1_9_0_2_4_1_0_l_3_w_0_1r_7_1_z_r_4_37_16_k_0_g_5_4_3_3_0_3_1_7_2_4_c_c_0_h_11_1_0_5_","0_2_16_1_98_1_3_2_6_1_0_1_3_2_14_1_3_2_w_1_3_2_6_1_0_1_3_2_e_1_1k_1_3_2_1u_11_f_g_2d_2_5_3_h7_2_g_1_","p_5_22_6_7_7_h_d_i_e_h_e_c_1_2_f_1f_z_0_4_0_1v_2g_7_4_2_x_1_0_5_1x_a_u_1d_t_2_4_b_17_4_p_1i_m_9_1g_2","a_0_2l_1a_h_7_1i_t_d_1_a_17_q_z_15_2_a_z_2_a_5_16_2_2_15_3_1_5_1_1_3_0_5_5b_1s_7p_2_5_2_11_2_5_2_7_1","_0_1_0_1_0_1_u_2_1g_1_6_1_0_3_2_1_6_3_3_2_5_4_c_5_2_1_6_38_0_d_0_g_c_2t_0_4_0_2_9_1_0_3_4_6_0_1_0_1_","0_1_3_1_a_2_3_5_4_4_0_1g_1_22j_6c_6_3_3_1_c_11_1_0_5_0_2_1j_7_0_g_m_9_6_1_6_1_6_1_6_1_6_1_6_1_6_1_6_","28_0_d1_1_16_4_5_1_4_2d_6_2_1_2h_1_3_5_16_1_2l_h_v_1c_f_e8_533_1s_h3g_1v_19_2_7g_3_f_a_1_k_1a_g_u_2_","1x_1d_8_2_2u_2_29_k_g_1_2_1_3_1_m_t_1f_e_1d_1q_5_3_0_1_1_b_r_a_m_p_s_7_1a_s_0_g_4_1_9_a_4_1_14_n_2_1","_7_k_m_3_0_3_1d_1_0_3_1_2_4_2_0_1_0_o_2_2_a_7_2_c_5_2_5_2_5_9_6_1_6_1_16_1_d_6_36_t_8mb_c_m_4_1c_6is","_a5_2_2x_12_6_c_4_5_0_1_9_1_c_1_4_1_0_1_1_1_1_1_2z_x_a2_i_1r_2_1h_14_b_38_4_1_3q_10_p_6_p_b_2g_3_5_2","_5_2_5_2_2_z_b_1_p_1_i_1_1_1_e_2_d_y_3e_at_s_3_1c_1b_v_d_j_1_7_6_11_a_t_2_z_4_7_1c_4d_i_z_4_z_4_13_8","_1f_c_a_1_e_1_6_1_1_1_a_1_e_1_6_1_1_3_1f_c_8m_9_l_a_7_o_5_1_15_1_8_1x_5_2_0_1_17_1_1_3_0_2_m_a_m_9_u","_1t_i_1_1_a_l_a_p_6_p_12_1j_6_1_1s_0_f_3_1_2_1_s_16_s_3_s_z_7_1_r_r_1h_a_l_a_i_d_h_32_20_1j_1e_d_1e_","d_z_12_r_9_m_6y_15_6_1_g_5_1k_s_a_0_8_l_16_h_1a_k_r_m_c_1g_1l_1_2_0_d_18_w_o_q_z_t_0_2_0_8_y_3_0_c_1","b_e_3_l_0_1_0_z_h_1_o_j_1_1r_6_1_0_1_3_1_e_1_9_7_1a_12_7_2_1_2_l_1_6_1_1_1_4_3_0_i_0_c_4_u_9_1_0_2_0","_1_11_1_0_p_0_1_0_18_1g_i_3_k_2_u_1b_k_1_1_0_54_1a_15_3_10_1b_k_0_1n_16_d_0_1z_q_11_6_55_17_38_1r_v_","7_2_0_2_7_1_1_1_n_f_0_1_0_2m_7_2_12_g_0_1_0_s_0_a_13_7_0_l_0_b_19_j_0_i_20_5j_w_v_8_1_10_h_0_1d_t_34","_6_1_1_1_11_l_0_p_5_1_1_1_v_e_0_n_17_78_i_f_0_1_c_1_x_3g_0_27_pl_6e_5f_218_2o_f_tr_h_5_p_32y_5_g6_5a","1_t_1cy_fs_7_u_h_26_h_t_i_1b_g_3_v_k_5_i_c0_18_5v_1r_w_o_2_o_18_22_5_0_1u_c_1s_1_1_0_e_1_c_5p1_15_v_","2p_36_6pp_3_1_6_1_1_1_82_f_0_t_2_2_0_e_3_8_az_1s4_2y_5_c_3_8_7_9_4me_2c_1_1y_1_1_2_0_2_1_2_3_1_b_1_0","_1_6_1_1s_1_3_2_7_1_6_1_r_1_3_1_4_1_0_3_6_1_9f_2_o_1_o_1_u_1_o_1_u_1_o_1_u_1_o_1_u_1_o_1_7_1f8_u_6_5","_79_1p_42_18_a_6_g_0_8x_t_i_17_dg_r_6c_t_2_0_5r_u_1_2_1_1_1_6_2_4_9_1_68_6_1_3_1_1_1_e_1_5g_1n_1v_7_","0_xg_3_1_q_1_1_1_0_2_0_1_9_1_3_1_0_1_0_6_0_4_0_1_0_1_0_1_2_1_1_1_0_2_0_1_0_1_0_1_0_1_0_1_1_1_0_2_3_1","_6_1_3_1_3_1_0_1_9_1_g_5_2_1_4_1_g_3es_wyn_w_3dp_2_4gd_2_5rk_f_h9_1wi_f1_15u_3t6_5_6jt"].join(""),z=je.slice(1).split("_"),ke=[],se=127;for(let e=0;e<z.length;e+=2){let r=se+1+Number.parseInt(z[e],36),t=r+Number.parseInt(z[e+1],36);ke.push([r,t]),se=t}var Xe=new Set([..."\u060B$\u20BC\u17DB\xA5\u20A1\u20B1\xA3\u20AC\xA2\u20B9\uFDFC\u20AA\u20A9\u20AD\u20A8\u20AE\u20A6\u20BD\u20AB\u0E3F\u20A9\u20BA\u20B4","$U","$b","B/.","BZ$","Br","Bs","C$","CHF","Ft","Gs","J$","KM","K\u010D","L","MT","NT$","P","Q","R","R$","RD$","RM","Rp","S","S/.","TT$","Z$","kn","kr","lei","z\u0142","\u0192","\u0414\u0438\u043D.","\u0434\u0435\u043D","\u043B\u0432","\u062F.\u0625","Lek"]);var _e=Function.prototype.toString,Ie=_e.call(Object);var et=Map.prototype.entries,tt=Set.prototype.values;var ie,rt=(ie=Object.getOwnPropertyDescriptor(ArrayBuffer.prototype,"byteLength"))==null?void 0:ie.get,le,nt=(le=Object.getOwnPropertyDescriptor(RegExp.prototype,"flags"))==null?void 0:le.get,oe,st=(oe=Object.getOwnPropertyDescriptor(RegExp.prototype,"global"))==null?void 0:oe.get,ae,it=(ae=Object.getOwnPropertyDescriptor(RegExp.prototype,"source"))==null?void 0:ae.get,lt=RegExp.prototype.test;function E(e){var n;if(e==null||typeof e!="object")return!1;let r=Object.getPrototypeOf(e);if(r===null||r===Object.prototype)return!0;let t=Object.getOwnPropertyDescriptor(r,"constructor");return!t||!("value"in t)||typeof t.value!="function"?!1:((n=Object.getOwnPropertyDescriptor(t.value,"prototype"))==null?void 0:n.value)===r&&_e.call(t.value)===Ie}function O(e){return typeof e=="string"}function K(e){return Number.isFinite(e)}function W(e){return Number.isSafeInteger(e)&&e>=0}var ot=Date.prototype.getTime;function ue(e,r){if(!e||!r)return e;let t=!0;for(let a=r.length;a--;)if(r.charCodeAt(a)>127){t=!1;break}if(t){let a=0,i=e.length;if(r.length===1){let _=r.charCodeAt(0);for(;a<i&&e.charCodeAt(a)===_;)a++;for(;i>a&&e.charCodeAt(i-1)===_;)i--}else{for(;a<i&&r.includes(e[a]);)a++;for(;i>a&&r.includes(e[i-1]);)i--}return a===0&&i===e.length?e:e.slice(a,i)}let n=Array.from(e),o=new Set(r),s=0,l=n.length;for(;s<l&&o.has(n[s]);)s++;for(;l>s&&o.has(n[l-1]);)l--;return s===0&&l===n.length?e:n.slice(s,l).join("")}function J(e=[],r=[]){if(!e||!Array.isArray(e)||!e.length)return[];if(!r||!Array.isArray(r)||!r.length)return e.slice();if(e.length*r.length<400)return e.filter(n=>!r.includes(n));let t=new Set(r);return e.filter(n=>!t.has(n))}function B(e){return e!=null}var fe={strictlyTwoElementsInRangeArrays:!1,progressFn:null};function Ve(e,r){let t,n=0;for(;n<e.length;){let o=n+1;for(;o<e.length&&e[n][0]===e[o][0]&&e[n][1]===e[o][1];)o+=1;if(o-n>1){t||(t=new Map(r.map((a,i)=>[a,i])));let s=t,l=e.slice(n,o).sort((a,i)=>s.get(a)-s.get(i));e.splice(n,l.length,...l)}n=o}return e}function j(e,r){var a;if(!Array.isArray(e)||!e.length)return e;let t=r===void 0?!0:E(r);if(r!==void 0&&t&&(r==null?void 0:r.strictlyTwoElementsInRangeArrays)===!0)for(let i=0;i<e.length;i+=1){let _=e[i];if(!Array.isArray(_)||_.length!==2)throw new TypeError("ranges-sort/rSort(): [THROW_ID_01] The first argument should be an array and must consist of arrays which are natural number indexes representing TWO string index ranges. However, range at index ".concat(i," (").concat(h(_,4),") is ").concat(Array.isArray(_)?"an array with ".concat(_.length," elements"):"not an array","!"));if(!Number.isInteger(_[0])||_[0]<0||!Number.isInteger(_[1])||_[1]<0)throw new TypeError("ranges-sort/rSort(): [THROW_ID_02] The first argument should be an array and must consist of arrays which are natural number indexes representing string index ranges. However, range at index ".concat(i," (").concat(h(_,4),") does not consist of only natural numbers!"))}else for(let i=0;i<e.length;i+=1){let _=e[i];if(!Array.isArray(_)||!Number.isInteger(_[0])||_[0]<0||!Number.isInteger(_[1])||_[1]<0)throw new TypeError("ranges-sort/rSort(): [THROW_ID_02] The first argument should be an array and must consist of arrays which are natural number indexes representing string index ranges. However, range at index ".concat(i," (").concat(h(_,4),") does not consist of only natural numbers!"))}if(r!==void 0&&!t)throw new TypeError("ranges-sort/rSort(): [THROW_ID_03] The second argument must be a plain options object; received ".concat(h(r,4)," (type ").concat(typeof r,")!"));let n=fe.progressFn;if(r!==void 0){let i=r.strictlyTwoElementsInRangeArrays;if(i!==void 0&&typeof i!="boolean")throw new TypeError("ranges-sort/rSort(): [THROW_ID_04] opts.strictlyTwoElementsInRangeArrays must be a boolean; received ".concat(h(i,4)," (type ").concat(typeof i,")!"));if(n=(a=r.progressFn)!=null?a:fe.progressFn,n!==!1&&n!==null&&typeof n!="function")throw new TypeError("ranges-sort/rSort(): [THROW_ID_05] opts.progressFn must be a function, false, null, or undefined; received ".concat(h(n,4)," (type ").concat(typeof n,")!"))}let o,s;if(n){let i=e.length**2,_=0,p;s=c=>{c!==p&&(p=c,n(c))},o=Array.from(e).sort((c,d)=>(_+=1,s==null||s(Math.min(99,Math.floor(_*100/i))),c[0]===d[0]?c[1]<d[1]?-1:c[1]>d[1]?1:0:c[0]<d[0]?-1:1))}else o=Array.from(e).sort((i,_)=>i[0]===_[0]?i[1]<_[1]?-1:i[1]>_[1]?1:0:i[0]<_[0]?-1:1);let l=o.length>10?Ve(o,e):o;return s==null||s(100),l}var We={mergeType:1,progressFn:null,joinRangesThatTouchEdges:!0};function G(e,r){if(!Array.isArray(e)||!e.length)return null;if(r!==void 0&&!E(r))throw new TypeError("ranges-merge/rMerge(): [THROW_ID_01] the second input argument must be a plain object. It was given as:\n".concat(h(r,4)," (type ").concat(typeof r,")"));let t=R(R({},We),r);if(t.progressFn&&E(t.progressFn)&&!Object.keys(t.progressFn).length)t.progressFn=null;else if(t.progressFn&&typeof t.progressFn!="function")throw new TypeError('ranges-merge/rMerge(): [THROW_ID_02] opts.progressFn must be a function! It was given of a type: "'.concat(typeof t.progressFn,'", equal to ').concat(h(t.progressFn,4)));if(t.mergeType!==1&&t.mergeType!==2&&t.mergeType!=="1"&&t.mergeType!=="2")throw new TypeError('ranges-merge/rMerge(): [THROW_ID_03] opts.mergeType was customised to a wrong thing! It was given of a type: "'.concat(typeof t.mergeType,'", equal to ').concat(h(t.mergeType,4)));if(typeof t.joinRangesThatTouchEdges!="boolean")throw new TypeError('ranges-merge/rMerge(): [THROW_ID_04] opts.joinRangesThatTouchEdges was customised to a wrong thing! It was given of a type: "'.concat(typeof t.joinRangesThatTouchEdges,'", equal to ').concat(h(t.joinRangesThatTouchEdges,4)));let n=t.progressFn,o=t.joinRangesThatTouchEdges,s=[];for(let b of e)Array.isArray(b)&&(b[2]!==void 0||b[0]!==b[1])&&s.push([...b]);let l,a,i;n?l=j(s,{progressFn:b=>{i=Math.floor(b/5),i!==a&&(a=i,n(i))}}):l=j(s);let _=l.length-1,p=t.mergeType===2||t.mergeType==="2",c=l.length;for(let b=_;b>=0;b--){let u=l[b];for(n&&b<_&&(i=Math.floor((1-(b+1)/_)*78)+21,i!==a&&i>a&&(a=i,n(i)));c<l.length;){let y=l[c],$=y[0]===u[0];if(!$&&(o?y[0]>u[1]:y[0]>=u[1]))break;let f=y[1]>=u[1];f&&(u[1]=y[1]),y[2]===null?u[2]=null:y[2]!==void 0&&($||f)&&u[2]!==null&&(u[2]!=null?p&&$?u[2]=y[2]:u[2]+=y[2]:u[2]=y[2]),c+=1}c-=1,l[c]=u}let d=l.length-c;for(let b=0;b<d;b++)l[b]=l[c+b];return l.length=d,n&&a!==99&&n(99),l.length?l:null}function P(e){if(typeof e=="number")return Number.isInteger(e)&&e>=0;if(typeof e!="string"||!e.trim())return!1;let r=Number(e);return Number.isInteger(r)&&r>=0}function ce(e,r,t){let n=0,o=0;if(e===void 0&&r===void 0&&t===void 0)throw new Error("ranges-apply/rApply(): [THROW_ID_01] inputs missing!");if(typeof e!="string")throw new TypeError("ranges-apply/rApply(): [THROW_ID_02] first input argument must be a string! Currently it's: ".concat(typeof e,", equal to: ").concat(h(e,4)));if(r!=null&&!Array.isArray(r))throw new TypeError("ranges-apply/rApply(): [THROW_ID_03] second input argument must be an array (or null)! Currently it's: ".concat(typeof r,", equal to: ").concat(h(r,4)));if(t!=null&&t!==!1&&t!==0&&t!==""&&typeof t!="function")throw new TypeError("ranges-apply/rApply(): [THROW_ID_04] the third input argument must be a function, false, null, undefined, 0, or an empty string! Currently it's: ".concat(typeof t,", equal to: ").concat(h(t,4)));if(r==null||!r.length||r.every(p=>p==null))return t&&t(100),e;let s;Array.isArray(r)&&!Array.isArray(r[0])&&P(r[0])&&P(r[1])?s=[Array.from(r)]:s=Array.from(r);let l=s.length,a=0;s.forEach((p,c)=>{if(p){if(t&&(n=Math.floor(a/l*10),n!==o&&(o=n,t(n))),!Array.isArray(p))throw new TypeError("ranges-apply/rApply(): [THROW_ID_05] ranges array, second input arg., has ".concat(c,"th element not an array: ").concat(h(p,4),", which is ").concat(typeof p));if(!P(p[0]))throw new TypeError("ranges-apply/rApply(): [THROW_ID_06] ranges array, second input arg. has ".concat(c,"th element, array ").concat(h(p),". Its first element is not a non-negative integer or string index, but ").concat(typeof p[0],", equal to: ").concat(h(p[0],4),"."));if(typeof p[0]=="string"&&(s[c]=[...p],s[c][0]=Number(p[0])),!P(p[1]))throw new TypeError("ranges-apply/rApply(): [THROW_ID_07] ranges array, second input arg. has ".concat(c,"th element, array ").concat(h(p),". Its second element is not a non-negative integer or string index, but ").concat(typeof p[1],", equal to: ").concat(h(p[1],4),"."));if(typeof p[1]=="string"&&(s[c]===p&&(s[c]=[...p]),s[c][1]=Number(p[1])),s[c][0]>s[c][1])throw new RangeError("ranges-apply/rApply(): [THROW_ID_08] ranges array, second input arg. has ".concat(c,"th element, array ").concat(h(p),". Its first index (").concat(s[c][0],") must not be greater than its second index (").concat(s[c][1],")."));a+=1}});let i=t?G(s,{progressFn:p=>{n=10+Math.floor(p/10),n!==o&&(o=n,t(n))}}):G(s),_=(i==null?void 0:i.length)||0;if(i&&_>0){let p=e.slice(i[_-1][1]);e=i.reduce((c,d,b,u)=>{var f;t&&(n=20+Math.floor(b/_*80),n!==o&&(o=n,t(n)));let y=b===0?0:u[b-1][1],$=u[b][0];return"".concat(c).concat(e.slice(y,$)).concat((f=u[b][2])!=null?f:"")},""),e+=p}return t&&o!==100&&t(100),e}function H(e,r=1){let t="\xA0";function n(s){return s.length<2?s:Array.from(s).reverse().join("")}function o(s,l,a){let i=a?"\n":"\r",_=a?"\r":"\n";if(!s)return s;let p=0,c="";for(let d=0,b=s.length;d<b;d++)(s[d]===i||s[d]===_&&s[d-1]!==i)&&p++,"\r\n".includes(s[d])||s[d]===t?s[d]===t?c+=s[d]:s[d]===i?p<=l&&(c+=s[d],s[d+1]===_&&(c+=s[d+1],d++)):s[d]===_&&(s==null?void 0:s[d-1])!==i&&p<=l&&(c+=s[d]):!s[d+1]&&!p&&(c+=" ");return c}if(typeof e=="string"&&e.length){let s=e.trim();if(s.length===e.length)return e;let l=1;typeof r=="number"&&Number.isInteger(r)&&r>=0&&(l=r);let a="",i="";if(!s)a=e;else if(!e[0].trim()){for(let p=0,c=e.length;p<c;p++)if(e[p].trim()){a=e.slice(0,p);break}}let _=e[e.length-1];if(s&&(_.trim()===""||_===t)){for(let p=e.length;p--;)if(e[p].trim()){i=e.slice(p+1);break}}return"".concat(o(a,l,!1)).concat(s).concat(n(o(n(i),l,!0)))}return e}var Q={mergeType:1,progressFn:null,joinRangesThatTouchEdges:!0};function pe(e,r,t){return r===void 0||e===null?e:r===null?null:e===void 0||t?r:e+r}function Ne(e,r){var u,y,$;function t(f){return!!f&&typeof f=="object"&&!Array.isArray(f)}if(!Array.isArray(e)||!e.length)return null;if(r&&!t(r))throw new TypeError("ranges-push/rMerge(): [THROW_ID_07] the second input argument must be a plain object. It was given as:\n".concat(h(r,4)," (type ").concat(typeof r,")"));let n=(u=r==null?void 0:r.progressFn)!=null?u:Q.progressFn,o=(y=r==null?void 0:r.mergeType)!=null?y:Q.mergeType,s=($=r==null?void 0:r.joinRangesThatTouchEdges)!=null?$:Q.joinRangesThatTouchEdges;if(n&&t(n)&&!Object.keys(n).length)n=null;else if(n&&typeof n!="function")throw new TypeError('ranges-push/rMerge(): [THROW_ID_08] resolvedOpts.progressFn must be a function! It was given of a type: "'.concat(typeof n,'", equal to ').concat(h(n,4)));if(o!==1&&o!==2&&o!=="1"&&o!=="2")throw new TypeError('ranges-push/rMerge(): [THROW_ID_09] resolvedOpts.mergeType was customised to a wrong thing! It was given of a type: "'.concat(typeof o,'", equal to ').concat(h(o,4)));if(typeof s!="boolean")throw new TypeError('ranges-push/rMerge(): [THROW_ID_10] resolvedOpts.joinRangesThatTouchEdges was customised to a wrong thing! It was given of a type: "'.concat(typeof s,'", equal to ').concat(h(s,4)));let l=[];for(let f of e)Array.isArray(f)&&(f[2]!==void 0||f[0]!==f[1])&&l.push([...f]);let a,i,_;n?a=j(l,{progressFn:f=>{_=Math.floor(f/5),_!==i&&(i=_,n==null||n(_))}}):a=j(l);let p=a.length-1,c=+o==2,d=a.length;for(let f=p;f>=0;f--){let g=a[f];for(n&&f<p&&(_=Math.floor((1-(f+1)/p)*78)+21,_!==i&&_>i&&(i=_,n(_)));d<a.length;){let m=a[d],v=m[0]===g[0];if(!v&&(s?m[0]>g[1]:m[0]>=g[1]))break;let w=m[1]>=g[1];w&&(g[1]=m[1]),m[2]===null?g[2]=null:m[2]!==void 0&&(v||w)&&(g[2]=pe(g[2],m[2],c&&v)),d+=1}d-=1,a[d]=g}let b=a.length-d;for(let f=0;f<b;f++)a[f]=a[d+f];return a.length=b,a.length?a:null}var L=Object.freeze({limitToBeAddedWhitespace:!1,limitLinebreaksCount:1,mergeType:1});function D(e){if(W(e))return e;if(typeof e=="string"&&/^\d+$/.test(e)){let r=Number(e);return W(r)?r:null}return null}function he(e){if(!Array.isArray(e))return"a ranges batch must contain only range arrays; received ".concat(h(e,4));if(e.length>3)return"a range must contain at most three values; received ".concat(h(e,4));let[r,t,n]=e;if(r==null&&t==null)return;if(r!=null&&t==null)return"the first index is set (".concat(h(r),") but the second index is not (").concat(h(t),")");if(r==null&&t!=null)return"the second index is set (".concat(h(t),") but the first index is not (").concat(h(r),")");let o=D(r),s=D(t);if(o===null)return"the first index must be a natural number, zero, or a digit-only numeric string; received ".concat(h(r,4)," (type ").concat(typeof r,")");if(s===null)return"the second index must be a natural number, zero, or a digit-only numeric string; received ".concat(h(t,4)," (type ").concat(typeof t,")");if(B(n)&&!O(n)&&!K(n))return"the third value must be a string, number, null, or undefined; received ".concat(h(n,4)," (type ").concat(typeof n,")");if(o>s)return"the first index (".concat(o,") must not be greater than the second index (").concat(s,")")}function Fe(e){if(e.length>3)return{error:"expected at most three arguments but received ".concat(e.length),ranges:[]};if(e.length<=1&&Array.isArray(e[0])){let t=e[0];if(!t.length)return{ranges:[]};e=Array.isArray(t[0])?t:[t]}else e=[e];let r=[];for(let t of e){let n=he(t);if(n)return{error:n,ranges:[]};let[o,s,l]=t;if(o==null&&s==null)continue;let a=D(o),i=D(s);r.push(l!==void 0&&!(O(l)&&!l.length)?[a,i,l]:[a,i])}return{ranges:r}}function Me(e){return e[2]===void 0&&e[0]===e[1]}function Be(e){let r=-1;for(let t=0,n=e.length;t<n;t++){let o=e[t];if(Array.isArray(o)){if(o[0]<r)return!1;r=o[0]}}return!0}var ge=class{constructor(e){V(this,"ranges");V(this,"opts");V(this,"currentCache",null);if(e!=null&&!E(e))throw new TypeError("ranges-push/Ranges/constructor(): [THROW_ID_01] The options argument must be a plain object. It was given as ".concat(h(e,4)," (type ").concat(typeof e,")."));if(e===void 0){this.opts=L,this.ranges=[];return}let r=e,t=r.limitToBeAddedWhitespace===void 0?L.limitToBeAddedWhitespace:r.limitToBeAddedWhitespace,n=r.limitLinebreaksCount===void 0?L.limitLinebreaksCount:r.limitLinebreaksCount,o=r.mergeType===void 0?L.mergeType:r.mergeType,s=o==="1"?1:o==="2"?2:o,l;if(typeof t!="boolean"?l="opts.limitToBeAddedWhitespace must be a boolean; received ".concat(h(t,4)," (type ").concat(typeof t,")"):W(n)?s!==1&&s!==2&&(l='opts.mergeType must be 1, 2, "1", or "2"; received '.concat(h(o,4)," (type ").concat(typeof o,")")):l="opts.limitLinebreaksCount must be a natural number or zero; received ".concat(h(n,4)," (type ").concat(typeof n,")"),l)throw new TypeError("ranges-push/Ranges/constructor(): [THROW_ID_02] ".concat(l,"."));let a=Object.freeze({limitToBeAddedWhitespace:t,limitLinebreaksCount:n,mergeType:s});this.opts=a,this.ranges=[]}rangeListsMatch(e,r){if(!Array.isArray(e))return r===null;if(!Array.isArray(r)||e.length!==r[0])return!1;let t=1;for(let n=0,o=e.length;n<o;n++){let s=e[n];if(!Array.isArray(s)){if(r[t++]!==-1||s!==r[t++])return!1;continue}if(s.length!==r[t++])return!1;for(let l=0;l<s.length;l++)if(s[l]!==r[t++])return!1}return t===r.length}snapshotRanges(e){if(!Array.isArray(e))return null;let r=new Array(1+e.length*4);r[0]=e.length;let t=1;for(let n=0,o=e.length;n<o;n++){let s=e[n];if(Array.isArray(s)){r[t++]=s.length;for(let l=0;l<s.length;l++)r[t++]=s[l]}else r[t++]=-1,r[t++]=s}return r.length=t,r}currentStateMatchesSnapshot(){let e=this.currentCache;return e!==null&&this.rangeListsMatch(this.ranges,e.rangesSnapshot)&&this.rangeListsMatch(e.result,e.resultSnapshot)}recordCurrentSnapshot(e){let r=this.snapshotRanges(this.ranges);this.currentCache={rangesSnapshot:r,result:e,resultSnapshot:e===this.ranges?r:this.snapshotRanges(e)}}invalidateCurrentCache(){this.currentCache=null}addValidated(e,r,t){this.invalidateCurrentCache();let n=this.last();if(B(this.ranges)&&Array.isArray(n)&&e===n[1]){if(n[1]=r,t!==void 0&&!(O(t)&&!t.length)){let s=pe(n[2],t,this.opts.mergeType===2&&n[0]===e);this.opts.limitToBeAddedWhitespace&&typeof s=="string"&&(s=H(s,this.opts.limitLinebreaksCount)),O(s)&&!s.length||(n[2]=s)}return}this.ranges||(this.ranges=[]);let o=t!==void 0?[e,r,typeof t=="string"&&this.opts.limitToBeAddedWhitespace?H(t,this.opts.limitLinebreaksCount):t]:[e,r];this.ranges.push(o)}add(e,r,t){let n=arguments.length,o;if(n>3)o="expected at most three arguments but received ".concat(n);else if(n===1&&Array.isArray(e)){let s=Array.isArray(e[0])?e:[e];for(let l=0,a=s.length;l<a&&(o=he(s[l]),!o);l++);if(!o)for(let l=0,a=s.length;l<a;l++){let[i,_,p]=s[l];i==null&&_==null||this.addValidated(D(i),D(_),O(p)&&!p.length?void 0:p)}}else{if(e==null&&r==null)return;if(e!=null&&r==null)o="the first index is set (".concat(h(e),") but the second index is not (").concat(h(r),")");else if(e==null&&r!=null)o="the second index is set (".concat(h(r),") but the first index is not (").concat(h(e),")");else{let s=D(e),l=D(r);s===null?o="the first index must be a natural number, zero, or a digit-only numeric string; received ".concat(h(e,4)," (type ").concat(typeof e,")"):l===null?o="the second index must be a natural number, zero, or a digit-only numeric string; received ".concat(h(r,4)," (type ").concat(typeof r,")"):B(t)&&!O(t)&&!K(t)?o="the third value must be a string, number, null, or undefined; received ".concat(h(t,4)," (type ").concat(typeof t,")"):s>l?o="the first index (".concat(s,") must not be greater than the second index (").concat(l,")"):this.addValidated(s,l,O(t)&&!t.length?void 0:t)}}if(o)throw new TypeError("ranges-push/Ranges/add(): [THROW_ID_03] ".concat(o,"."))}push(e,r,t){this.add.apply(this,arguments)}current(){var e,r;if(this.currentStateMatchesSnapshot())return(r=(e=this.currentCache)==null?void 0:e.result)!=null?r:null;if(Array.isArray(this.ranges)&&this.ranges.length){this.ranges=Ne(this.ranges,this.opts.mergeType===1?void 0:{mergeType:2});let t=this.ranges;return t&&this.opts.limitToBeAddedWhitespace&&(t=t.map(n=>typeof n[2]=="string"?[n[0],n[1],H(n[2],this.opts.limitLinebreaksCount)]:n)),this.recordCurrentSnapshot(t),t}return this.recordCurrentSnapshot(null),null}firstCovers(e){if(!W(e))throw new TypeError("ranges-push/Ranges/firstCovers(): [THROW_ID_04] the input argument must be a natural number or zero! It was given as ".concat(h(e,4)," (type ").concat(typeof e,")"));if(!Array.isArray(this.ranges)||!this.ranges.length)return!1;let r=Be(this.ranges)?this.ranges:this.ranges.filter(n=>Array.isArray(n)).slice().sort((n,o)=>n[0]-o[0]||n[1]-o[1]),t=null;for(let n=0,o=r.length;n<o;n++){let s=r[n];if(!(!Array.isArray(s)||Me(s))){if(t===null){if(s[0]!==0)return!1;t=s[1]}else{if(s[0]>t)break;s[1]>t&&(t=s[1])}if(t>=e)return!0}}return t!==null&&t>=e}wipe(){this.ranges=[],this.invalidateCurrentCache()}replace(e){if(Array.isArray(e)&&e.length)if(Array.isArray(e[0])){let r=Fe([e]);if(r.error)throw new TypeError("ranges-push/Ranges/replace(): [THROW_ID_06] ".concat(r.error,"."));this.ranges=r.ranges,this.invalidateCurrentCache()}else throw new Error("ranges-push/Ranges/replace(): [THROW_ID_05] Single range was given but we expected array of arrays! The first element, ".concat(h(e[0],4)," should be an array."));else this.ranges=[],this.invalidateCurrentCache()}last(){return Array.isArray(this.ranges)&&this.ranges.length?this.ranges[this.ranges.length-1]:null}};var Pe={removeThousandSeparatorsFromNumbers:!0,padSingleDecimalPlaceNumbers:!0,forceUKStyle:!1};function N(e,r){let t=!0,n=[".",",","'"," "],o;if(typeof e!="string")throw new TypeError("string-remove-thousand-separators/remSep(): [THROW_ID_01] Input must be string! Currently it's: ".concat(typeof e,", equal to:\n").concat(h(e,4)));if(r&&typeof r!="object")throw new TypeError("string-remove-thousand-separators/remSep(): [THROW_ID_02] Options object must be a plain object! Currently it's: ".concat(typeof r,", equal to:\n").concat(h(r,4)));let s=R(R({},Pe),r),l=ue(e.trim(),'"');if(l==="")return l;if(+e>0&&+e<1)return e;let a=new ge;for(let i=0,_=l.length;i<_;i++){if(s.removeThousandSeparatorsFromNumbers&&l[i].trim()===""&&a.add(i,i+1),s.removeThousandSeparatorsFromNumbers&&l[i]==="'"&&(a.add(i,i+1),l[i+1]==="'")){t=!1;break}if(n.includes(l[i])){if(l[i+1]!==void 0&&/^\d$/.test(l[i+1]))if(l[i+2]!==void 0)if(/^\d$/.test(l[i+2]))if(l[i+3]!==void 0)if(/^\d$/.test(l[i+3])){if(l[i+4]!==void 0&&/^\d$/.test(l[i+4])){t=!1;break}else if(s.removeThousandSeparatorsFromNumbers&&a.add(i,i+1),!o)o=l[i];else if(l[i]!==o){t=!1;break}}else{t=!1;break}else s.removeThousandSeparatorsFromNumbers&&s.forceUKStyle&&l[i]===","&&a.add(i,i+1,".");else{t=!1;break}else s.forceUKStyle&&l[i]===","&&a.add(i,i+1,"."),s.padSingleDecimalPlaceNumbers&&a.add(i+2,i+2,"0")}else if(!/^\d$/.test(l[i])){t=!1;break}}return t&&a.current()?ce(l,a.current()):l}var He={delimiter:",",removeThousandSeparatorsFromNumbers:!0,padSingleDecimalPlaceNumbers:!0,forceUKStyle:!1};function Le(e){if(e===null||typeof e!="object")return!1;let r=Object.getPrototypeOf(e);return r===null||r===Object.prototype}function Ue(e,r){let t=0,n=e.length;for(;t<n&&e[t]!==r&&e[t].trim()==="";)t+=1;for(;n>t&&e[n-1]!==r&&e[n-1].trim()==="";)n-=1;return e.slice(t,n)}function de(e,r){let t=0,n=0,o=[],s=[],l=!1,a=!0;if(r&&!Le(r))throw new Error("csv-split-easy/splitEasy(): [THROW_ID_01] Options object must be a plain object! Currently it's of a type ".concat(typeof r," equal to:\n").concat(h(r,4)));let i=R(R({},He),r);if(typeof e!="string")throw new TypeError("csv-split-easy/splitEasy(): [THROW_ID_02] input must be string! Currently it's: ".concat(typeof e,", equal to: ").concat(h(e,4)));if(typeof i.delimiter!="string"||i.delimiter.length!==1||i.delimiter==='"'||i.delimiter==="\n"||i.delimiter==="\r")throw new TypeError('csv-split-easy/splitEasy(): [THROW_ID_03] The "delimiter" option must be a single character other than a double quote or a line break! Currently it\'s: '.concat(typeof i.delimiter,", equal to: ").concat(h(i.delimiter)));if(e==="")return[[""]];e=Ue(e,i.delimiter);for(let _=0,p=e.length;_<p;_++){if(a&&e[_]!=='"'&&e[_]!==i.delimiter&&e[_].trim()!==""&&(a=!1),e[_]==='"')if(l&&e[_+1]==='"')_+=1;else if(l){l=!1;let c=e.slice(t,_);c.trim()!==""&&(a=!1);let d=/""/.test(c)?c.replace(/""/g,'"'):N(c,{removeThousandSeparatorsFromNumbers:i.removeThousandSeparatorsFromNumbers,padSingleDecimalPlaceNumbers:i.padSingleDecimalPlaceNumbers,forceUKStyle:i.forceUKStyle});o.push(d)}else l=!0,t=_+1;else if(!l&&e[_]===i.delimiter){if(e[_-1]!=='"'&&!l){let c=e.slice(t,_);c.trim()!==""&&(a=!1),o.push(N(c,{removeThousandSeparatorsFromNumbers:i.removeThousandSeparatorsFromNumbers,padSingleDecimalPlaceNumbers:i.padSingleDecimalPlaceNumbers,forceUKStyle:i.forceUKStyle}))}t=_+1,n&&(n=0)}else if(e[_]==="\n"||e[_]==="\r"){if(!n){if(n=_,!l&&e[_-1]!=='"'){let c=e.slice(t,_);c.trim()!==""&&(a=!1),o.push(N(c,{removeThousandSeparatorsFromNumbers:i.removeThousandSeparatorsFromNumbers,padSingleDecimalPlaceNumbers:i.padSingleDecimalPlaceNumbers,forceUKStyle:i.forceUKStyle}))}a?o.length=0:s.push(o),a=!0,o=[]}t=_+1}else n&&(n=0,t=_);if(_+1===p){if(e[_]!=='"'){let c=e.slice(t,_+1);c.trim()&&(a=!1),o.push(N(c,{removeThousandSeparatorsFromNumbers:i.removeThousandSeparatorsFromNumbers,padSingleDecimalPlaceNumbers:i.padSingleDecimalPlaceNumbers,forceUKStyle:i.forceUKStyle}))}a?o=[]:s.push(o),a=!0}}return s.length===0?[[""]]:s}var k=Re(me(),1);var ye="7.2.3";function U(e){return typeof e=="number"&&!Number.isNaN(e)?!0:(e=(e||"").toString().trim(),e?!Number.isNaN(+e):!1)}var ze=["\u062F.\u0625","\u060B","L","\u058F","\u0192","Kz","$","\u0192","\u20BC","KM","\u09F3","\u043B\u0432",".\u062F.\u0628","FBu","$b","R$","\u0E3F","Nu.","P","p.","BZ$","FC","CHF","\xA5","\u20A1","\u20B1","K\u010D","Fdj","kr","RD$","\u062F\u062C","kr","Nfk","Br","\u039E","\u20AC","\u20BE","\u20B5","GH\u20B5","D","FG","Q","L","kn","G","Ft","Rp","\u20AA","\u20B9","\u0639.\u062F","\uFDFC","kr","J$","JD","\xA5","KSh","\u043B\u0432","\u17DB","CF","\u20A9","\u20A9","KD","\u043B\u0432","\u20AD","\u20A8","M","\u0141","Lt","Ls","LD","MAD","lei","Ar","\u0434\u0435\u043D","K","\u20AE","MOP$","UM","\u20A8","Rf","MK","RM","MT","\u20A6","C$","kr","\u20A8","\uFDFC","B/.","S/.","K","\u20B1","\u20A8","z\u0142","Gs","\uFDFC","\uFFE5","lei","\u0414\u0438\u043D.","\u20BD","R\u20A3","\uFDFC","\u20A8","\u062C.\u0633.","kr","\xA3","Le","S","Db","E","\u0E3F","SM","T","\u062F.\u062A","T$","\u20A4","\u20BA","TT$","NT$","TSh","\u20B4","USh","$U","\u043B\u0432","Bs","\u20AB","VT","WS$","FCFA","\u0243","CFA","\u20A3","\uFDFC","R","Z$"];function F(e){return U(e)||ze.some(r=>U(e.replace(r,"").replace(/[,.]/g,"")))?"numeric":e.trim()?"text":"empty"}var Ke=ye;function Je(e){let r=null,t=null;if(typeof e!="string")throw new TypeError("csv-sort/sort(): [THROW_ID_01] The input is of a wrong type! We accept either string of array of arrays. We got instead: ".concat(typeof e,", equal to:\n").concat(h(e,4)));if(!e.trim())return{res:[[""]],msgContent:r,msgType:t};let n=de(e),o=[],s=!1,l=!0,a=[],i=null;for(let f=n.length-1;f>=0;f--)if(o.length){f===0&&(s=n[f].every(m=>{let v=F(m);return v==="text"||v==="empty"})),!s&&o.length!==n[f].length&&(l=!1);let g=null;for(let m=0,v=n[f].length;m<v;m++){let w=F(n[f][m].trim());if(g===null&&w==="empty"&&(g=m),g!==null&&w!=="empty"&&(g=null),w!==o[m]&&!s){let A=w;if(Array.isArray(o[m]))o[m].includes(A)||o[m].push(A);else if(o[m]!==A){let T=o[m];o[m]=[],o[m].push(T),o[m].push(A)}}}i!==null&&g!==null&&g>i&&(!s||s&&f!==0)&&(i=g)}else if(n[f].length!==1||n[f][0]!=="")for(let g=0,m=n[f].length;g<m;g++){let v=F(n[f][g].trim());o.push(v),i===null&&v==="empty"&&(i=g),i!==null&&v!=="empty"&&(i=null)}i||(i=o.length);let _=0;for(let f=0,g=o.length;f<g&&o[f]==="empty";f++)_=f;_!==0&&(n=n.map(f=>f.slice(_+1,i)),o=o.slice(_+1,i));let p=[],c;o.forEach((f,g)=>{f==="numeric"&&p.push(g)});let d=s?1:0;if(p.length===1)c=p[0];else{if(p.length===0)throw new Error('csv-sort/sort(): [THROW_ID_02] Your CSV file does not contain numeric-only columns and computer was not able to detect the "Balance" column!');{let f=Array.from(p),g=[];for(let m=0,v=f.length;m<v;m++){let w=f[m],A,T=!0,x,S=!0;for(let C=d,be=n.length;C<be&&(T&&(A==null?A=n[C][w]:A===n[C][w]?(g.push(w),T=!1):A=n[C][w]),S&&(x==null?x=n[C][w]:n[C][w]!==x&&(S=!1)),!!T);C++);S&&a.push(w)}if(f=J(f,g),f.length===1)c=f[0];else if(f.length===0)throw new Error('csv-sort/sort(): [THROW_ID_03] The computer can\'t find the "Balance" column! It saw some numeric-only columns, but they all seem to have certain rows with the same values as rows right below/above them!')}}if(!c)throw new Error("csv-sort/sort(): [THROW_ID_04] Sadly computer couldn't find its way in this CSV and had to stop working on it.");let b=J(Array.from(o.reduce((f,g,m)=>((typeof g=="string"&&g==="numeric"||Array.isArray(g)&&g.includes("numeric"))&&f.push(m),f),[])),[c,...a]),u=[];u.push(n[n.length-1].slice(0,i));let y=[],$=s?1:0;for(let f=n.length-2;f>=$;f--)for(let g=n.length-2;g>=$;g--)if(!y.includes(g)){let m=!1;for(let v=0,w=b.length;v<w;v++){let A=null;n[g][b[v]]!==""&&(A=(0,k.default)(n[g][b[v]]));let T=null;n[g][c]!==""&&(T=(0,k.default)(n[g][c]));let x=null;u[0][c]!==""&&(x=(0,k.default)(u[0][c]).format());let S=null;u[u.length-1][b[v]]!==""&&(S=(0,k.default)(u[u.length-1][b[v]]).format());let C=null;if(u[u.length-1][c]!==""&&(C=(0,k.default)(u[u.length-1][c])),A&&T.add(A).format()===x){u.unshift(n[g].slice(0,i)),y.push(g),m=!0;break}else if(A&&T.subtract(A).format()===x){u.unshift(n[g].slice(0,i)),y.push(g),m=!0;break}else if(S&&C.add(S).format()===T.format()){u.push(n[g].slice(0,i)),y.push(g),m=!0;break}else if(S&&C.subtract(S).format()===T.format()){u.push(n[g].slice(0,i)),y.push(g),m=!0;break}}if(m){m=!1;break}}return s&&(l&&n[0].length>o.length&&(n[0].length=o.length),u.unshift(n[0].slice(0,i))),n.length-(s?2:1)!==y.length&&(r="Not all rows were recognised!",t="alert"),{res:u,msgContent:r,msgType:t}}return Oe(Ge);})();
|
|
10
|
+
"use strict";var csvSort=(()=>{var ve=Object.create;var I=Object.defineProperty;var $e=Object.getOwnPropertyDescriptor;var we=Object.getOwnPropertyNames,X=Object.getOwnPropertySymbols,Ae=Object.getPrototypeOf,ee=Object.prototype.hasOwnProperty,Te=Object.prototype.propertyIsEnumerable;var q=(e,r,t)=>r in e?I(e,r,{enumerable:!0,configurable:!0,writable:!0,value:t}):e[r]=t,R=(e,r)=>{for(var t in r||(r={}))ee.call(r,t)&&q(e,t,r[t]);if(X)for(var t of X(r))Te.call(r,t)&&q(e,t,r[t]);return e};var Ce=(e,r)=>()=>{try{return r||e((r={exports:{}}).exports,r),r.exports}catch(t){throw r=0,t}},Se=(e,r)=>{for(var t in r)I(e,t,{get:r[t],enumerable:!0})},te=(e,r,t,n)=>{if(r&&typeof r=="object"||typeof r=="function")for(let a of we(r))!ee.call(e,a)&&a!==t&&I(e,a,{get:()=>r[a],enumerable:!(n=$e(r,a))||n.enumerable});return e};var Re=(e,r,t)=>(t=e!=null?ve(Ae(e)):{},te(r||!e||!e.__esModule?I(t,"default",{value:e,enumerable:!0}):t,e)),De=e=>te(I({},"__esModule",{value:!0}),e);var V=(e,r,t)=>q(e,typeof r!="symbol"?r+"":r,t);var me=Ce((Z,Y)=>{(function(e,r){typeof Z=="object"&&typeof Y<"u"?Y.exports=r():typeof define=="function"&&define.amd?define(r):(e=e||self,e.currency=r())})(Z,function(){function e(s,i){if(!(this instanceof e))return new e(s,i);i=Object.assign({},t,i);var _=Math.pow(10,i.precision);this.intValue=s=r(s,i),this.value=s/_,i.increment=i.increment||1/_,i.groups=i.useVedic?a:n,this.s=i,this.p=_}function r(s,i){var _=2<arguments.length&&arguments[2]!==void 0?arguments[2]:!0,l=i.decimal,o=i.errorOnInvalid,f=i.fromCents,u=Math.pow(10,i.precision),d=s instanceof e;if(d&&f)return s.intValue;if(typeof s=="number"||d)l=d?s.value:s;else if(typeof s=="string")o=new RegExp("[^-\\d"+l+"]","g"),l=new RegExp("\\"+l,"g"),l=(l=s.replace(/\((.*)\)/,"-$1").replace(o,"").replace(l,"."))||0;else{if(o)throw Error("Invalid Input");l=0}return f||(l=(l*u).toFixed(4)),_?Math.round(l):l}var t={symbol:"$",separator:",",decimal:".",errorOnInvalid:!1,precision:2,pattern:"!#",negativePattern:"-!#",format:function(s,i){var _=i.pattern,l=i.negativePattern,o=i.symbol,f=i.separator,u=i.decimal;i=i.groups;var d=(""+s).replace(/^-/,"").split("."),b=d[0];return d=d[1],(0<=s.value?_:l).replace("!",o).replace("#",b.replace(i,"$1"+f)+(d?u+d:""))},fromCents:!1},n=/(\d)(?=(\d{3})+\b)/g,a=/(\d)(?=(\d\d)+\d\b)/g;return e.prototype={add:function(s){var i=this.s,_=this.p;return e((this.intValue+r(s,i))/(i.fromCents?1:_),i)},subtract:function(s){var i=this.s,_=this.p;return e((this.intValue-r(s,i))/(i.fromCents?1:_),i)},multiply:function(s){var i=this.s;return e(this.intValue*s/(i.fromCents?1:Math.pow(10,i.precision)),i)},divide:function(s){var i=this.s;return e(this.intValue/r(s,i,!1),i)},distribute:function(s){var i=this.intValue,_=this.p,l=this.s,o=[],f=Math[0<=i?"floor":"ceil"](i/s),u=Math.abs(i-f*s);for(_=l.fromCents?1:_;s!==0;s--){var d=e(f/_,l);0<u--&&(d=d[0<=i?"add":"subtract"](1/_)),o.push(d)}return o},dollars:function(){return~~this.value},cents:function(){return~~(this.intValue%this.p)},format:function(s){var i=this.s;return typeof s=="function"?s(this,i):i.format(this,Object.assign({},i,s))},toString:function(){var s=this.s,i=s.increment;return(Math.round(this.intValue/this.p/i)*i).toFixed(s.precision)},toJSON:function(){return this.value}},e})});var Je={};Se(Je,{findType:()=>M,isNumeric:()=>U,sort:()=>Ke,version:()=>ze});function Oe(){let e=[],r=0,t=!1;return{append(n){return t?!1:r+n.length>1999?(e.push("\u2026"),r+=1,t=!0,!1):(e.push(n),r+=n.length,!0)},result(){return e.join("")},stopped(){return t}}}function xe(e){return"\\u".concat(e.toString(16).padStart(4,"0"))}function F(e,r){if(e.append('"')){for(let t=0;t<r.length&&!e.stopped();t+=1){let n=r.charCodeAt(t);n===34?e.append('\\"'):n===92?e.append("\\\\"):n===8?e.append("\\b"):n===9?e.append("\\t"):n===10?e.append("\\n"):n===12?e.append("\\f"):n===13?e.append("\\r"):n<32||n===8232||n===8233||n>=55296&&n<=57343?e.append(xe(n)):e.append(r[t])}e.append('"')}}function Ee(e){return e.get&&e.set?"[Getter/Setter]":e.get?"[Getter]":e.set?"[Setter]":"[Accessor]"}function ne(e,r){e.append("Symbol(");let t=String(r);t.length>8&&F(e,t.slice(7,-1)),e.append(")")}function re(e,r){typeof r=="symbol"?ne(e,r):F(e,String(r))}function h(e,r=0){let t=Oe(),n=r===4?4:0,a=new WeakSet,s=0;function i(c){n&&t.append(" ".repeat(c*n))}function _(c,y){c&&t.append(","),n&&(t.append("\n"),i(y+1))}function l(c,y,$){n&&y&&(t.append("\n"),i($)),t.append(c)}function o(c,y){Object.prototype.hasOwnProperty.call(c,"value")?b(c.value,y):t.append(Ee(c))}function f(c,y){let $;try{$=Reflect.getOwnPropertyDescriptor(c,"length")}catch(m){t.append("[Uninspectable]");return}let p=$==null?void 0:$.value;if(!Number.isSafeInteger(p)||p<0){t.append("[Uninspectable]");return}t.append("[");let g=!1;for(let m=0;m<p&&!t.stopped();m+=1){if(_(g,y),g=!0,s>=50){t.append("[MaxEntries]");break}s+=1;let v;try{v=Reflect.getOwnPropertyDescriptor(c,String(m))}catch(w){t.append("[Uninspectable]");continue}v!=null&&v.enumerable?o(v,y+1):t.append("[Empty]")}l("]",g,y)}function u(c,y){let $;try{$=Reflect.ownKeys(c)}catch(g){t.append("[Uninspectable]");return}t.append("{");let p=!1;for(let g of $){if(t.stopped())break;if(s>=50){_(p,y),p=!0,F(t,"\u2026"),t.append(n?": ":":"),t.append("[MaxEntries]");break}s+=1;let m;try{m=Reflect.getOwnPropertyDescriptor(c,g)}catch(v){_(p,y),p=!0,re(t,g),t.append(n?": ":":"),t.append("[Uninspectable]");continue}m!=null&&m.enumerable&&(_(p,y),p=!0,re(t,g),t.append(n?": ":":"),o(m,y+1))}l("}",p,y)}function d(c,y){if(a.has(c)){t.append("[Circular]");return}if(y>=5){t.append("[MaxDepth]");return}let $;try{$=Array.isArray(c)}catch(p){t.append("[Uninspectable]");return}a.add(c);try{$?f(c,y):u(c,y)}finally{a.delete(c)}}function b(c,y){c===null?t.append("null"):typeof c=="string"?F(t,c):typeof c=="number"?t.append(Object.is(c,-0)?"-0":String(c)):typeof c=="boolean"?t.append(c?"true":"false"):typeof c>"u"?t.append("undefined"):typeof c=="bigint"?t.append("".concat(c,"n")):typeof c=="symbol"?ne(t,c):typeof c=="function"?t.append("[Function]"):d(c,y)}try{return b(e,0),t.result()}catch(c){return"[Uninspectable]"}}var ke=["_16_0_a_0_4_0_5_m_1_u_1_cp_4_b_e_4_7_0_1_0_3l_4_1_1_2_3_1_0_6_0_1_2_1_0_1_j_1_2a_1_3u_8_4l_1_11_2_0_","6_14_1z_q_4_3_19_16_z_1_1_2q_1_0_f_1_7_1_a_2_2_0_g_0_1_t_t_2g_b_0_o_w_9_1_4_0_5_l_4_0_9_0_3_0_n_o_7_","a_5_n_1_6_g_15_1m_1h_3_0_i_0_7_9_f_f_4_7_2_1_2_l_1_6_1_0_3_3_3_0_g_0_d_1_1_2_e_1_a_0_8_5_4_1_2_l_1_6","_1_1_1_1_1_1_v_3_1_0_j_2_g_8_1_2_1_l_1_6_1_1_1_4_3_0_i_0_f_1_n_0_b_7_2_1_2_l_1_6_1_1_1_4_3_0_u_1_1_2","_f_0_h_0_1_5_3_2_1_3_3_1_1_0_1_1_3_1_3_2_3_b_m_0_1g_7_1_2_1_m_1_f_3_0_q_2_1_1_2_1_u_0_4_7_1_2_1_m_1_","9_1_4_3_0_u_2_1_1_f_1_h_8_1_2_1_14_2_0_g_0_5_2_8_2_o_5_5_h_3_n_1_8_1_0_2_6_1m_1b_1_1_c_6_1m_1_1_0_1_","4_1_n_1_0_1_9_1_1_9_0_2_4_1_0_l_3_w_0_1r_7_1_z_r_4_37_16_k_0_g_5_4_3_3_0_3_1_7_2_4_c_c_0_h_11_1_0_5_","0_2_16_1_98_1_3_2_6_1_0_1_3_2_14_1_3_2_w_1_3_2_6_1_0_1_3_2_e_1_1k_1_3_2_1u_11_f_g_2d_2_5_3_h7_2_g_1_","p_5_22_6_7_7_h_d_i_e_h_e_c_1_2_f_1f_z_0_4_0_1v_2g_7_4_2_x_1_0_5_1x_a_u_1d_t_2_4_b_17_4_p_1i_m_9_1g_2","a_0_2l_1a_h_7_1i_t_d_1_a_17_q_z_15_2_a_z_2_a_5_16_2_2_15_3_1_5_1_1_3_0_5_5b_1s_7p_2_5_2_11_2_5_2_7_1","_0_1_0_1_0_1_u_2_1g_1_6_1_0_3_2_1_6_3_3_2_5_4_c_5_2_1_6_38_0_d_0_g_c_2t_0_4_0_2_9_1_0_3_4_6_0_1_0_1_","0_1_3_1_a_2_3_5_4_4_0_1g_1_22j_6c_6_3_3_1_c_11_1_0_5_0_2_1j_7_0_g_m_9_6_1_6_1_6_1_6_1_6_1_6_1_6_1_6_","28_0_d1_1_16_4_5_1_4_2d_6_2_1_2h_1_3_5_16_1_2l_h_v_1c_f_e8_533_1s_h3g_1v_19_2_7g_3_f_a_1_k_1a_g_u_2_","1x_1d_8_2_2u_2_29_k_g_1_2_1_3_1_m_t_1f_e_1d_1q_5_3_0_1_1_b_r_a_m_p_s_7_1a_s_0_g_4_1_9_a_4_1_14_n_2_1","_7_k_m_3_0_3_1d_1_0_3_1_2_4_2_0_1_0_o_2_2_a_7_2_c_5_2_5_2_5_9_6_1_6_1_16_1_d_6_36_t_8mb_c_m_4_1c_6is","_a5_2_2x_12_6_c_4_5_0_1_9_1_c_1_4_1_0_1_1_1_1_1_2z_x_a2_i_1r_2_1h_14_b_38_4_1_3q_10_p_6_p_b_2g_3_5_2","_5_2_5_2_2_z_b_1_p_1_i_1_1_1_e_2_d_y_3e_at_s_3_1c_1b_v_d_j_1_7_6_11_a_t_2_z_4_7_1c_4d_i_z_4_z_4_13_8","_1f_c_a_1_e_1_6_1_1_1_a_1_e_1_6_1_1_3_1f_c_8m_9_l_a_7_o_5_1_15_1_8_1x_5_2_0_1_17_1_1_3_0_2_m_a_m_9_u","_1t_i_1_1_a_l_a_p_6_p_12_1j_6_1_1s_0_f_3_1_2_1_s_16_s_3_s_z_7_1_r_r_1h_a_l_a_i_d_h_32_20_1j_1e_d_1e_","d_z_12_r_9_m_6y_15_6_1_g_5_1k_s_a_0_8_l_16_h_1a_k_r_m_c_1g_1l_1_2_0_d_18_w_o_q_z_t_0_2_0_8_y_3_0_c_1","b_e_3_l_0_1_0_z_h_1_o_j_1_1r_6_1_0_1_3_1_e_1_9_7_1a_12_7_2_1_2_l_1_6_1_1_1_4_3_0_i_0_c_4_u_9_1_0_2_0","_1_11_1_0_p_0_1_0_18_1g_i_3_k_2_u_1b_k_1_1_0_54_1a_15_3_10_1b_k_0_1n_16_d_0_1z_q_11_6_55_17_38_1r_v_","7_2_0_2_7_1_1_1_n_f_0_1_0_2m_7_2_12_g_0_1_0_s_0_a_13_7_0_l_0_b_19_j_0_i_20_5j_w_v_8_1_10_h_0_1d_t_34","_6_1_1_1_11_l_0_p_5_1_1_1_v_e_0_n_17_78_i_f_0_1_c_1_x_3g_0_27_pl_6e_5f_218_2o_f_tr_h_5_p_32y_5_g6_5a","1_t_1cy_fs_7_u_h_26_h_t_i_1b_g_3_v_k_5_i_c0_18_5v_1r_w_o_2_o_18_22_5_0_1u_c_1s_1_1_0_e_1_c_5p1_15_v_","2p_36_6pp_3_1_6_1_1_1_82_f_0_t_2_2_0_e_3_8_az_1s4_2y_5_c_3_8_7_9_4me_2c_1_1y_1_1_2_0_2_1_2_3_1_b_1_0","_1_6_1_1s_1_3_2_7_1_6_1_r_1_3_1_4_1_0_3_6_1_9f_2_o_1_o_1_u_1_o_1_u_1_o_1_u_1_o_1_u_1_o_1_7_1f8_u_6_5","_79_1p_42_18_a_6_g_0_8x_t_i_17_dg_r_6c_t_2_0_5r_u_1_2_1_1_1_6_2_4_9_1_68_6_1_3_1_1_1_e_1_5g_1n_1v_7_","0_xg_3_1_q_1_1_1_0_2_0_1_9_1_3_1_0_1_0_6_0_4_0_1_0_1_0_1_2_1_1_1_0_2_0_1_0_1_0_1_0_1_0_1_1_1_0_2_3_1","_6_1_3_1_3_1_0_1_9_1_g_5_2_1_4_1_g_3es_wyn_w_3dp_2_4gd_2_5rk_f_h9_1wi_f1_15u_3t6_5_6jt"].join(""),z=ke.slice(1).split("_"),je=[],se=127;for(let e=0;e<z.length;e+=2){let r=se+1+Number.parseInt(z[e],36),t=r+Number.parseInt(z[e+1],36);je.push([r,t]),se=t}var Ye=new Set([..."\u060B$\u20BC\u17DB\xA5\u20A1\u20B1\xA3\u20AC\xA2\u20B9\uFDFC\u20AA\u20A9\u20AD\u20A8\u20AE\u20A6\u20BD\u20AB\u0E3F\u20A9\u20BA\u20B4","$U","$b","B/.","BZ$","Br","Bs","C$","CHF","Ft","Gs","J$","KM","K\u010D","L","MT","NT$","P","Q","R","R$","RD$","RM","Rp","S","S/.","TT$","Z$","kn","kr","lei","z\u0142","\u0192","\u0414\u0438\u043D.","\u0434\u0435\u043D","\u043B\u0432","\u062F.\u0625","Lek"]);var _e=Function.prototype.toString,Ie=_e.call(Object);var Xe=Map.prototype.entries,et=Set.prototype.values;var ie,tt=(ie=Object.getOwnPropertyDescriptor(ArrayBuffer.prototype,"byteLength"))==null?void 0:ie.get,le,rt=(le=Object.getOwnPropertyDescriptor(RegExp.prototype,"flags"))==null?void 0:le.get,oe,nt=(oe=Object.getOwnPropertyDescriptor(RegExp.prototype,"global"))==null?void 0:oe.get,ae,st=(ae=Object.getOwnPropertyDescriptor(RegExp.prototype,"source"))==null?void 0:ae.get,it=RegExp.prototype.test;function D(e){var n;if(e==null||typeof e!="object")return!1;let r=Object.getPrototypeOf(e);if(r===null||r===Object.prototype)return!0;let t=Object.getOwnPropertyDescriptor(r,"constructor");return!t||!("value"in t)||typeof t.value!="function"?!1:((n=Object.getOwnPropertyDescriptor(t.value,"prototype"))==null?void 0:n.value)===r&&_e.call(t.value)===Ie}function O(e){return typeof e=="string"}function K(e){return Number.isFinite(e)}function W(e){return Number.isSafeInteger(e)&&e>=0}var lt=Date.prototype.getTime;function ue(e,r){if(!e||!r)return e;let t=!0;for(let _=r.length;_--;)if(r.charCodeAt(_)>127){t=!1;break}if(t){let _=0,l=e.length;if(r.length===1){let o=r.charCodeAt(0);for(;_<l&&e.charCodeAt(_)===o;)_++;for(;l>_&&e.charCodeAt(l-1)===o;)l--}else{for(;_<l&&r.includes(e[_]);)_++;for(;l>_&&r.includes(e[l-1]);)l--}return _===0&&l===e.length?e:e.slice(_,l)}let n=Array.from(e),a=new Set(r),s=0,i=n.length;for(;s<i&&a.has(n[s]);)s++;for(;i>s&&a.has(n[i-1]);)i--;return s===0&&i===n.length?e:n.slice(s,i).join("")}function J(e=[],r=[]){if(!e||!Array.isArray(e)||!e.length)return[];if(!r||!Array.isArray(r)||!r.length)return e.slice();if(e.length*r.length<400)return e.filter(n=>!r.includes(n));let t=new Set(r);return e.filter(n=>!t.has(n))}function B(e){return e!=null}var fe={strictlyTwoElementsInRangeArrays:!1,progressFn:null};function Ve(e,r){let t,n=0;for(;n<e.length;){let a=n+1;for(;a<e.length&&e[n][0]===e[a][0]&&e[n][1]===e[a][1];)a+=1;if(a-n>1){t||(t=new Map(r.map((_,l)=>[_,l])));let s=t,i=e.slice(n,a).sort((_,l)=>s.get(_)-s.get(l));e.splice(n,i.length,...i)}n=a}return e}function k(e,r){var _;if(!Array.isArray(e)||!e.length)return e;let t=r===void 0?!0:D(r);if(r!==void 0&&t&&(r==null?void 0:r.strictlyTwoElementsInRangeArrays)===!0)for(let l=0;l<e.length;l+=1){let o=e[l];if(!Array.isArray(o)||o.length!==2)throw new TypeError("ranges-sort/rSort(): [THROW_ID_01] The first argument should be an array and must consist of arrays which are natural number indexes representing TWO string index ranges. However, range at index ".concat(l," (").concat(h(o,4),") is ").concat(Array.isArray(o)?"an array with ".concat(o.length," elements"):"not an array","!"));if(!Number.isInteger(o[0])||o[0]<0||!Number.isInteger(o[1])||o[1]<0)throw new TypeError("ranges-sort/rSort(): [THROW_ID_02] The first argument should be an array and must consist of arrays which are natural number indexes representing string index ranges. However, range at index ".concat(l," (").concat(h(o,4),") does not consist of only natural numbers!"))}else for(let l=0;l<e.length;l+=1){let o=e[l];if(!Array.isArray(o)||!Number.isInteger(o[0])||o[0]<0||!Number.isInteger(o[1])||o[1]<0)throw new TypeError("ranges-sort/rSort(): [THROW_ID_02] The first argument should be an array and must consist of arrays which are natural number indexes representing string index ranges. However, range at index ".concat(l," (").concat(h(o,4),") does not consist of only natural numbers!"))}if(r!==void 0&&!t)throw new TypeError("ranges-sort/rSort(): [THROW_ID_03] The second argument must be a plain options object; received ".concat(h(r,4)," (type ").concat(typeof r,")!"));let n=fe.progressFn;if(r!==void 0){let l=r.strictlyTwoElementsInRangeArrays;if(l!==void 0&&typeof l!="boolean")throw new TypeError("ranges-sort/rSort(): [THROW_ID_04] opts.strictlyTwoElementsInRangeArrays must be a boolean; received ".concat(h(l,4)," (type ").concat(typeof l,")!"));if(n=(_=r.progressFn)!=null?_:fe.progressFn,n!==!1&&n!==null&&typeof n!="function")throw new TypeError("ranges-sort/rSort(): [THROW_ID_05] opts.progressFn must be a function, false, null, or undefined; received ".concat(h(n,4)," (type ").concat(typeof n,")!"))}let a,s;if(n){let l=e.length**2,o=0,f;s=u=>{u!==f&&(f=u,n(u))},a=Array.from(e).sort((u,d)=>(o+=1,s==null||s(Math.min(99,Math.floor(o*100/l))),u[0]===d[0]?u[1]<d[1]?-1:u[1]>d[1]?1:0:u[0]<d[0]?-1:1))}else a=Array.from(e).sort((l,o)=>l[0]===o[0]?l[1]<o[1]?-1:l[1]>o[1]?1:0:l[0]<o[0]?-1:1);let i=a.length>10?Ve(a,e):a;return s==null||s(100),i}var We={mergeType:1,progressFn:null,joinRangesThatTouchEdges:!0};function G(e,r){if(!Array.isArray(e)||!e.length)return null;if(r!==void 0&&!D(r))throw new TypeError("ranges-merge/rMerge(): [THROW_ID_01] the second input argument must be a plain object. It was given as:\n".concat(h(r,4)," (type ").concat(typeof r,")"));let t=R(R({},We),r);if(t.progressFn&&D(t.progressFn)&&!Object.keys(t.progressFn).length)t.progressFn=null;else if(t.progressFn&&typeof t.progressFn!="function")throw new TypeError('ranges-merge/rMerge(): [THROW_ID_02] opts.progressFn must be a function! It was given of a type: "'.concat(typeof t.progressFn,'", equal to ').concat(h(t.progressFn,4)));if(t.mergeType!==1&&t.mergeType!==2&&t.mergeType!=="1"&&t.mergeType!=="2")throw new TypeError('ranges-merge/rMerge(): [THROW_ID_03] opts.mergeType was customised to a wrong thing! It was given of a type: "'.concat(typeof t.mergeType,'", equal to ').concat(h(t.mergeType,4)));if(typeof t.joinRangesThatTouchEdges!="boolean")throw new TypeError('ranges-merge/rMerge(): [THROW_ID_04] opts.joinRangesThatTouchEdges was customised to a wrong thing! It was given of a type: "'.concat(typeof t.joinRangesThatTouchEdges,'", equal to ').concat(h(t.joinRangesThatTouchEdges,4)));let n=t.progressFn,a=t.joinRangesThatTouchEdges,s=[];for(let b of e)Array.isArray(b)&&(b[2]!==void 0||b[0]!==b[1])&&s.push([...b]);let i,_,l;n?i=k(s,{progressFn:b=>{l=Math.floor(b/5),l!==_&&(_=l,n(l))}}):i=k(s);let o=i.length-1,f=t.mergeType===2||t.mergeType==="2",u=i.length;for(let b=o;b>=0;b--){let c=i[b];for(n&&b<o&&(l=Math.floor((1-(b+1)/o)*78)+21,l!==_&&l>_&&(_=l,n(l)));u<i.length;){let y=i[u],$=y[0]===c[0];if(!$&&(a?y[0]>c[1]:y[0]>=c[1]))break;let p=y[1]>=c[1];p&&(c[1]=y[1]),y[2]===null?c[2]=null:y[2]!==void 0&&($||p)&&c[2]!==null&&(c[2]!=null?f&&$?c[2]=y[2]:c[2]+=y[2]:c[2]=y[2]),u+=1}u-=1,i[u]=c}let d=i.length-u;for(let b=0;b<d;b++)i[b]=i[u+b];return i.length=d,n&&_!==99&&n(99),i.length?i:null}function P(e){if(typeof e=="number")return Number.isInteger(e)&&e>=0;if(typeof e!="string"||!e.trim())return!1;let r=Number(e);return Number.isInteger(r)&&r>=0}function ce(e,r,t){let n=0,a=0;if(e===void 0&&r===void 0&&t===void 0)throw new Error("ranges-apply/rApply(): [THROW_ID_01] inputs missing!");if(typeof e!="string")throw new TypeError("ranges-apply/rApply(): [THROW_ID_02] first input argument must be a string! Currently it's: ".concat(typeof e,", equal to: ").concat(h(e,4)));if(r!=null&&!Array.isArray(r))throw new TypeError("ranges-apply/rApply(): [THROW_ID_03] second input argument must be an array (or null)! Currently it's: ".concat(typeof r,", equal to: ").concat(h(r,4)));if(t!=null&&t!==!1&&t!==0&&t!==""&&typeof t!="function")throw new TypeError("ranges-apply/rApply(): [THROW_ID_04] the third input argument must be a function, false, null, undefined, 0, or an empty string! Currently it's: ".concat(typeof t,", equal to: ").concat(h(t,4)));if(r==null||!r.length||r.every(f=>f==null))return t&&t(100),e;let s;Array.isArray(r)&&!Array.isArray(r[0])&&P(r[0])&&P(r[1])?s=[Array.from(r)]:s=Array.from(r);let i=s.length,_=0;s.forEach((f,u)=>{if(f){if(t&&(n=Math.floor(_/i*10),n!==a&&(a=n,t(n))),!Array.isArray(f))throw new TypeError("ranges-apply/rApply(): [THROW_ID_05] ranges array, second input arg., has ".concat(u,"th element not an array: ").concat(h(f,4),", which is ").concat(typeof f));if(!P(f[0]))throw new TypeError("ranges-apply/rApply(): [THROW_ID_06] ranges array, second input arg. has ".concat(u,"th element, array ").concat(h(f),". Its first element is not a non-negative integer or string index, but ").concat(typeof f[0],", equal to: ").concat(h(f[0],4),"."));if(typeof f[0]=="string"&&(s[u]=[...f],s[u][0]=Number(f[0])),!P(f[1]))throw new TypeError("ranges-apply/rApply(): [THROW_ID_07] ranges array, second input arg. has ".concat(u,"th element, array ").concat(h(f),". Its second element is not a non-negative integer or string index, but ").concat(typeof f[1],", equal to: ").concat(h(f[1],4),"."));if(typeof f[1]=="string"&&(s[u]===f&&(s[u]=[...f]),s[u][1]=Number(f[1])),s[u][0]>s[u][1])throw new RangeError("ranges-apply/rApply(): [THROW_ID_08] ranges array, second input arg. has ".concat(u,"th element, array ").concat(h(f),". Its first index (").concat(s[u][0],") must not be greater than its second index (").concat(s[u][1],")."));_+=1}});let l=t?G(s,{progressFn:f=>{n=10+Math.floor(f/10),n!==a&&(a=n,t(n))}}):G(s),o=(l==null?void 0:l.length)||0;if(l&&o>0){let f=e.slice(l[o-1][1]);e=l.reduce((u,d,b,c)=>{var p;t&&(n=20+Math.floor(b/o*80),n!==a&&(a=n,t(n)));let y=b===0?0:c[b-1][1],$=c[b][0];return"".concat(u).concat(e.slice(y,$)).concat((p=c[b][2])!=null?p:"")},""),e+=f}return t&&a!==100&&t(100),e}function H(e,r=1){let t="\xA0";function n(s){return s.length<2?s:Array.from(s).reverse().join("")}function a(s,i,_){let l=_?"\n":"\r",o=_?"\r":"\n";if(!s)return s;let f=0,u="";for(let d=0,b=s.length;d<b;d++)(s[d]===l||s[d]===o&&s[d-1]!==l)&&f++,"\r\n".includes(s[d])||s[d]===t?s[d]===t?u+=s[d]:s[d]===l?f<=i&&(u+=s[d],s[d+1]===o&&(u+=s[d+1],d++)):s[d]===o&&(s==null?void 0:s[d-1])!==l&&f<=i&&(u+=s[d]):!s[d+1]&&!f&&(u+=" ");return u}if(typeof e=="string"&&e.length){let s=e.trim();if(s.length===e.length)return e;let i=1;typeof r=="number"&&Number.isInteger(r)&&r>=0&&(i=r);let _="",l="";if(!s)_=e;else if(!e[0].trim()){for(let f=0,u=e.length;f<u;f++)if(e[f].trim()){_=e.slice(0,f);break}}let o=e[e.length-1];if(s&&(o.trim()===""||o===t)){for(let f=e.length;f--;)if(e[f].trim()){l=e.slice(f+1);break}}return"".concat(a(_,i,!1)).concat(s).concat(n(a(n(l),i,!0)))}return e}var Q={mergeType:1,progressFn:null,joinRangesThatTouchEdges:!0};function pe(e,r,t){return r===void 0||e===null?e:r===null?null:e===void 0||t?r:e+r}function Ne(e,r){var c,y,$;function t(p){return!!p&&typeof p=="object"&&!Array.isArray(p)}if(!Array.isArray(e)||!e.length)return null;if(r&&!t(r))throw new TypeError("ranges-push/rMerge(): [THROW_ID_07] the second input argument must be a plain object. It was given as:\n".concat(h(r,4)," (type ").concat(typeof r,")"));let n=(c=r==null?void 0:r.progressFn)!=null?c:Q.progressFn,a=(y=r==null?void 0:r.mergeType)!=null?y:Q.mergeType,s=($=r==null?void 0:r.joinRangesThatTouchEdges)!=null?$:Q.joinRangesThatTouchEdges;if(n&&t(n)&&!Object.keys(n).length)n=null;else if(n&&typeof n!="function")throw new TypeError('ranges-push/rMerge(): [THROW_ID_08] resolvedOpts.progressFn must be a function! It was given of a type: "'.concat(typeof n,'", equal to ').concat(h(n,4)));if(a!==1&&a!==2&&a!=="1"&&a!=="2")throw new TypeError('ranges-push/rMerge(): [THROW_ID_09] resolvedOpts.mergeType was customised to a wrong thing! It was given of a type: "'.concat(typeof a,'", equal to ').concat(h(a,4)));if(typeof s!="boolean")throw new TypeError('ranges-push/rMerge(): [THROW_ID_10] resolvedOpts.joinRangesThatTouchEdges was customised to a wrong thing! It was given of a type: "'.concat(typeof s,'", equal to ').concat(h(s,4)));let i=[];for(let p of e)Array.isArray(p)&&(p[2]!==void 0||p[0]!==p[1])&&i.push([...p]);let _,l,o;n?_=k(i,{progressFn:p=>{o=Math.floor(p/5),o!==l&&(l=o,n==null||n(o))}}):_=k(i);let f=_.length-1,u=+a==2,d=_.length;for(let p=f;p>=0;p--){let g=_[p];for(n&&p<f&&(o=Math.floor((1-(p+1)/f)*78)+21,o!==l&&o>l&&(l=o,n(o)));d<_.length;){let m=_[d],v=m[0]===g[0];if(!v&&(s?m[0]>g[1]:m[0]>=g[1]))break;let w=m[1]>=g[1];w&&(g[1]=m[1]),m[2]===null?g[2]=null:m[2]!==void 0&&(v||w)&&(g[2]=pe(g[2],m[2],u&&v)),d+=1}d-=1,_[d]=g}let b=_.length-d;for(let p=0;p<b;p++)_[p]=_[d+p];return _.length=b,_.length?_:null}var L=Object.freeze({limitToBeAddedWhitespace:!1,limitLinebreaksCount:1,mergeType:1});function x(e){if(W(e))return e;if(typeof e=="string"&&/^\d+$/.test(e)){let r=Number(e);return W(r)?r:null}return null}function he(e){if(!Array.isArray(e))return"a ranges batch must contain only range arrays; received ".concat(h(e,4));if(e.length>3)return"a range must contain at most three values; received ".concat(h(e,4));let[r,t,n]=e;if(r==null&&t==null)return;if(r!=null&&t==null)return"the first index is set (".concat(h(r),") but the second index is not (").concat(h(t),")");if(r==null&&t!=null)return"the second index is set (".concat(h(t),") but the first index is not (").concat(h(r),")");let a=x(r),s=x(t);if(a===null)return"the first index must be a natural number, zero, or a digit-only numeric string; received ".concat(h(r,4)," (type ").concat(typeof r,")");if(s===null)return"the second index must be a natural number, zero, or a digit-only numeric string; received ".concat(h(t,4)," (type ").concat(typeof t,")");if(B(n)&&!O(n)&&!K(n))return"the third value must be a string, number, null, or undefined; received ".concat(h(n,4)," (type ").concat(typeof n,")");if(a>s)return"the first index (".concat(a,") must not be greater than the second index (").concat(s,")")}function Me(e){if(e.length>3)return{error:"expected at most three arguments but received ".concat(e.length),ranges:[]};if(e.length<=1&&Array.isArray(e[0])){let t=e[0];if(!t.length)return{ranges:[]};e=Array.isArray(t[0])?t:[t]}else e=[e];let r=[];for(let t of e){let n=he(t);if(n)return{error:n,ranges:[]};let[a,s,i]=t;if(a==null&&s==null)continue;let _=x(a),l=x(s);r.push(i!==void 0&&!(O(i)&&!i.length)?[_,l,i]:[_,l])}return{ranges:r}}function Fe(e){return e[2]===void 0&&e[0]===e[1]}function Be(e){let r=-1;for(let t=0,n=e.length;t<n;t++){let a=e[t];if(Array.isArray(a)){if(a[0]<r)return!1;r=a[0]}}return!0}var ge=class{constructor(e){V(this,"ranges");V(this,"opts");V(this,"currentCache",null);if(e!=null&&!D(e))throw new TypeError("ranges-push/Ranges/constructor(): [THROW_ID_01] The options argument must be a plain object. It was given as ".concat(h(e,4)," (type ").concat(typeof e,")."));if(e===void 0){this.opts=L,this.ranges=[];return}let r=e,t=r.limitToBeAddedWhitespace===void 0?L.limitToBeAddedWhitespace:r.limitToBeAddedWhitespace,n=r.limitLinebreaksCount===void 0?L.limitLinebreaksCount:r.limitLinebreaksCount,a=r.mergeType===void 0?L.mergeType:r.mergeType,s=a==="1"?1:a==="2"?2:a,i;if(typeof t!="boolean"?i="opts.limitToBeAddedWhitespace must be a boolean; received ".concat(h(t,4)," (type ").concat(typeof t,")"):W(n)?s!==1&&s!==2&&(i='opts.mergeType must be 1, 2, "1", or "2"; received '.concat(h(a,4)," (type ").concat(typeof a,")")):i="opts.limitLinebreaksCount must be a natural number or zero; received ".concat(h(n,4)," (type ").concat(typeof n,")"),i)throw new TypeError("ranges-push/Ranges/constructor(): [THROW_ID_02] ".concat(i,"."));let _=Object.freeze({limitToBeAddedWhitespace:t,limitLinebreaksCount:n,mergeType:s});this.opts=_,this.ranges=[]}rangeListsMatch(e,r){if(!Array.isArray(e))return r===null;if(!Array.isArray(r)||e.length!==r[0])return!1;let t=1;for(let n=0,a=e.length;n<a;n++){let s=e[n];if(!Array.isArray(s)){if(r[t++]!==-1||s!==r[t++])return!1;continue}if(s.length!==r[t++])return!1;for(let i=0;i<s.length;i++)if(s[i]!==r[t++])return!1}return t===r.length}snapshotRanges(e){if(!Array.isArray(e))return null;let r=new Array(1+e.length*4);r[0]=e.length;let t=1;for(let n=0,a=e.length;n<a;n++){let s=e[n];if(Array.isArray(s)){r[t++]=s.length;for(let i=0;i<s.length;i++)r[t++]=s[i]}else r[t++]=-1,r[t++]=s}return r.length=t,r}currentStateMatchesSnapshot(){let e=this.currentCache;return e!==null&&this.rangeListsMatch(this.ranges,e.rangesSnapshot)&&this.rangeListsMatch(e.result,e.resultSnapshot)}recordCurrentSnapshot(e){let r=this.snapshotRanges(this.ranges);this.currentCache={rangesSnapshot:r,result:e,resultSnapshot:e===this.ranges?r:this.snapshotRanges(e)}}invalidateCurrentCache(){this.currentCache=null}addValidated(e,r,t){this.invalidateCurrentCache();let n=this.last();if(B(this.ranges)&&Array.isArray(n)&&e===n[1]){if(n[1]=r,t!==void 0&&!(O(t)&&!t.length)){let s=pe(n[2],t,this.opts.mergeType===2&&n[0]===e);this.opts.limitToBeAddedWhitespace&&typeof s=="string"&&(s=H(s,this.opts.limitLinebreaksCount)),O(s)&&!s.length||(n[2]=s)}return}this.ranges||(this.ranges=[]);let a=t!==void 0?[e,r,typeof t=="string"&&this.opts.limitToBeAddedWhitespace?H(t,this.opts.limitLinebreaksCount):t]:[e,r];this.ranges.push(a)}add(e,r,t){let n=arguments.length,a;if(n>3)a="expected at most three arguments but received ".concat(n);else if(n===1&&Array.isArray(e)){let s=Array.isArray(e[0])?e:[e];for(let i=0,_=s.length;i<_&&(a=he(s[i]),!a);i++);if(!a)for(let i=0,_=s.length;i<_;i++){let[l,o,f]=s[i];l==null&&o==null||this.addValidated(x(l),x(o),O(f)&&!f.length?void 0:f)}}else{if(e==null&&r==null)return;if(e!=null&&r==null)a="the first index is set (".concat(h(e),") but the second index is not (").concat(h(r),")");else if(e==null&&r!=null)a="the second index is set (".concat(h(r),") but the first index is not (").concat(h(e),")");else{let s=x(e),i=x(r);s===null?a="the first index must be a natural number, zero, or a digit-only numeric string; received ".concat(h(e,4)," (type ").concat(typeof e,")"):i===null?a="the second index must be a natural number, zero, or a digit-only numeric string; received ".concat(h(r,4)," (type ").concat(typeof r,")"):B(t)&&!O(t)&&!K(t)?a="the third value must be a string, number, null, or undefined; received ".concat(h(t,4)," (type ").concat(typeof t,")"):s>i?a="the first index (".concat(s,") must not be greater than the second index (").concat(i,")"):this.addValidated(s,i,O(t)&&!t.length?void 0:t)}}if(a)throw new TypeError("ranges-push/Ranges/add(): [THROW_ID_03] ".concat(a,"."))}push(e,r,t){this.add.apply(this,arguments)}current(){var e,r;if(this.currentStateMatchesSnapshot())return(r=(e=this.currentCache)==null?void 0:e.result)!=null?r:null;if(Array.isArray(this.ranges)&&this.ranges.length){this.ranges=Ne(this.ranges,this.opts.mergeType===1?void 0:{mergeType:2});let t=this.ranges;return t&&this.opts.limitToBeAddedWhitespace&&(t=t.map(n=>typeof n[2]=="string"?[n[0],n[1],H(n[2],this.opts.limitLinebreaksCount)]:n)),this.recordCurrentSnapshot(t),t}return this.recordCurrentSnapshot(null),null}firstCovers(e){if(!W(e))throw new TypeError("ranges-push/Ranges/firstCovers(): [THROW_ID_04] the input argument must be a natural number or zero! It was given as ".concat(h(e,4)," (type ").concat(typeof e,")"));if(!Array.isArray(this.ranges)||!this.ranges.length)return!1;let r=Be(this.ranges)?this.ranges:this.ranges.filter(n=>Array.isArray(n)).slice().sort((n,a)=>n[0]-a[0]||n[1]-a[1]),t=null;for(let n=0,a=r.length;n<a;n++){let s=r[n];if(!(!Array.isArray(s)||Fe(s))){if(t===null){if(s[0]!==0)return!1;t=s[1]}else{if(s[0]>t)break;s[1]>t&&(t=s[1])}if(t>=e)return!0}}return t!==null&&t>=e}wipe(){this.ranges=[],this.invalidateCurrentCache()}replace(e){if(Array.isArray(e)&&e.length)if(Array.isArray(e[0])){let r=Me([e]);if(r.error)throw new TypeError("ranges-push/Ranges/replace(): [THROW_ID_06] ".concat(r.error,"."));this.ranges=r.ranges,this.invalidateCurrentCache()}else throw new Error("ranges-push/Ranges/replace(): [THROW_ID_05] Single range was given but we expected array of arrays! The first element, ".concat(h(e[0],4)," should be an array."));else this.ranges=[],this.invalidateCurrentCache()}last(){return Array.isArray(this.ranges)&&this.ranges.length?this.ranges[this.ranges.length-1]:null}};var Pe={removeThousandSeparatorsFromNumbers:!0,padSingleDecimalPlaceNumbers:!0,forceUKStyle:!1};function N(e,r){let t=!0,n=[".",",","'"," "],a;if(typeof e!="string")throw new TypeError("string-remove-thousand-separators/remSep(): [THROW_ID_01] Input must be string! Currently it's: ".concat(typeof e,", equal to:\n").concat(h(e,4)));if(r&&typeof r!="object")throw new TypeError("string-remove-thousand-separators/remSep(): [THROW_ID_02] Options object must be a plain object! Currently it's: ".concat(typeof r,", equal to:\n").concat(h(r,4)));let s=R(R({},Pe),r),i=ue(e.trim(),'"');if(i==="")return i;let _=0;for(;i[_]==="0";)_+=1;if(i[_]==="."||i[_]===","){let o=_+1,f=!1;for(;o<i.length;o++){let u=i.charCodeAt(o);if(u<48||u>57)break;u>48&&(f=!0)}if(f&&o===i.length)return s.forceUKStyle&&i[_]===","&&(i="".concat(i.slice(0,_),".").concat(i.slice(_+1))),s.padSingleDecimalPlaceNumbers&&i.length===_+2&&(i+="0"),i}if(+e>0&&+e<1)return e;let l=new ge;for(let o=0,f=i.length;o<f;o++){if(s.removeThousandSeparatorsFromNumbers&&i[o].trim()===""&&l.add(o,o+1),s.removeThousandSeparatorsFromNumbers&&i[o]==="'"&&(l.add(o,o+1),i[o+1]==="'")){t=!1;break}if(n.includes(i[o])){if(i[o+1]!==void 0&&/^\d$/.test(i[o+1]))if(i[o+2]!==void 0)if(/^\d$/.test(i[o+2]))if(i[o+3]!==void 0)if(/^\d$/.test(i[o+3])){if(i[o+4]!==void 0&&/^\d$/.test(i[o+4])){t=!1;break}else if(s.removeThousandSeparatorsFromNumbers&&l.add(o,o+1),!a)a=i[o];else if(i[o]!==a){t=!1;break}}else{t=!1;break}else s.forceUKStyle&&i[o]===","&&l.add(o,o+1,".");else{t=!1;break}else s.forceUKStyle&&i[o]===","&&l.add(o,o+1,"."),s.padSingleDecimalPlaceNumbers&&l.add(o+2,o+2,"0")}else if(!/^\d$/.test(i[o])){t=!1;break}}return t&&l.current()?ce(i,l.current()):i}var He={delimiter:",",removeThousandSeparatorsFromNumbers:!0,padSingleDecimalPlaceNumbers:!0,forceUKStyle:!1};function Le(e,r){let t=0,n=e.length;for(;t<n&&e[t]!==r&&e[t].trim()==="";)t+=1;for(;n>t&&e[n-1]!==r&&e[n-1].trim()==="";)n-=1;return e.slice(t,n)}function de(e,r){let t=0,n=0,a=[],s=[],i=!1,_=!0;if(r&&!D(r))throw new Error("csv-split-easy/splitEasy(): [THROW_ID_01] Options object must be a plain object! Currently it's of a type ".concat(typeof r," equal to:\n").concat(h(r,4)));let l=R(R({},He),r);if(typeof e!="string")throw new TypeError("csv-split-easy/splitEasy(): [THROW_ID_02] input must be string! Currently it's: ".concat(typeof e,", equal to: ").concat(h(e,4)));if(typeof l.delimiter!="string"||l.delimiter.length!==1||l.delimiter==='"'||l.delimiter==="\n"||l.delimiter==="\r")throw new TypeError('csv-split-easy/splitEasy(): [THROW_ID_03] The "delimiter" option must be a single character other than a double quote or a line break! Currently it\'s: '.concat(typeof l.delimiter,", equal to: ").concat(h(l.delimiter)));if(e==="")return[[""]];e=Le(e,l.delimiter);for(let o=0,f=e.length;o<f;o++){if(n&&e[o]!=="\n"&&e[o]!=="\r"&&(n=0,t=o),_&&e[o]!=='"'&&e[o]!==l.delimiter&&e[o].trim()!==""&&(_=!1),e[o]==='"')if(i&&e[o+1]==='"')o+=1;else if(i){i=!1;let u=e.slice(t,o);u.trim()!==""&&(_=!1);let d=/""|[\r\n]/.test(u)?u.replace(/""/g,'"'):N(u,{removeThousandSeparatorsFromNumbers:l.removeThousandSeparatorsFromNumbers,padSingleDecimalPlaceNumbers:l.padSingleDecimalPlaceNumbers,forceUKStyle:l.forceUKStyle});a.push(d)}else i=!0,t=o+1;else if(!i&&e[o]===l.delimiter){if(e[o-1]!=='"'&&!i){let u=e.slice(t,o);u.trim()!==""&&(_=!1),a.push(N(u,{removeThousandSeparatorsFromNumbers:l.removeThousandSeparatorsFromNumbers,padSingleDecimalPlaceNumbers:l.padSingleDecimalPlaceNumbers,forceUKStyle:l.forceUKStyle}))}t=o+1}else if(!i&&(e[o]==="\n"||e[o]==="\r")){if(!n){if(n=o,!i&&e[o-1]!=='"'){let u=e.slice(t,o);u.trim()!==""&&(_=!1),a.push(N(u,{removeThousandSeparatorsFromNumbers:l.removeThousandSeparatorsFromNumbers,padSingleDecimalPlaceNumbers:l.padSingleDecimalPlaceNumbers,forceUKStyle:l.forceUKStyle}))}_?a.length=0:s.push(a),_=!0,a=[]}t=o+1}if(o+1===f){if(e[o]!=='"'){let u=e.slice(t,o+1);u.trim()&&(_=!1),a.push(N(u,{removeThousandSeparatorsFromNumbers:l.removeThousandSeparatorsFromNumbers,padSingleDecimalPlaceNumbers:l.padSingleDecimalPlaceNumbers,forceUKStyle:l.forceUKStyle}))}_?a=[]:s.push(a),_=!0}}return s.length===0?[[""]]:s}var j=Re(me(),1);var ye="7.2.5";function U(e){return typeof e=="number"&&!Number.isNaN(e)?!0:(e=(e||"").toString().trim(),e?!Number.isNaN(+e):!1)}var qe=["\u062F.\u0625","\u060B","L","\u058F","\u0192","Kz","$","\u0192","\u20BC","KM","\u09F3","\u043B\u0432",".\u062F.\u0628","FBu","$b","R$","\u0E3F","Nu.","P","p.","BZ$","FC","CHF","\xA5","\u20A1","\u20B1","K\u010D","Fdj","kr","RD$","\u062F\u062C","kr","Nfk","Br","\u039E","\u20AC","\u20BE","\u20B5","GH\u20B5","D","FG","Q","L","kn","G","Ft","Rp","\u20AA","\u20B9","\u0639.\u062F","\uFDFC","kr","J$","JD","\xA5","KSh","\u043B\u0432","\u17DB","CF","\u20A9","\u20A9","KD","\u043B\u0432","\u20AD","\u20A8","M","\u0141","Lt","Ls","LD","MAD","lei","Ar","\u0434\u0435\u043D","K","\u20AE","MOP$","UM","\u20A8","Rf","MK","RM","MT","\u20A6","C$","kr","\u20A8","\uFDFC","B/.","S/.","K","\u20B1","\u20A8","z\u0142","Gs","\uFDFC","\uFFE5","lei","\u0414\u0438\u043D.","\u20BD","R\u20A3","\uFDFC","\u20A8","\u062C.\u0633.","kr","\xA3","Le","S","Db","E","\u0E3F","SM","T","\u062F.\u062A","T$","\u20A4","\u20BA","TT$","NT$","TSh","\u20B4","USh","$U","\u043B\u0432","Bs","\u20AB","VT","WS$","FCFA","\u0243","CFA","\u20A3","\uFDFC","R","Z$"];function M(e){return U(e)||qe.some(r=>U(e.replace(r,"").replace(/[,.]/g,"")))?"numeric":e.trim()?"text":"empty"}var ze=ye;function Ke(e){let r=null,t=null;if(typeof e!="string")throw new TypeError("csv-sort/sort(): [THROW_ID_01] The input is of a wrong type! We accept either string of array of arrays. We got instead: ".concat(typeof e,", equal to:\n").concat(h(e,4)));if(!e.trim())return{res:[[""]],msgContent:r,msgType:t};let n=de(e),a=[],s=!1,i=!0,_=[],l=null;for(let p=n.length-1;p>=0;p--)if(a.length){p===0&&(s=n[p].every(m=>{let v=M(m);return v==="text"||v==="empty"})),!s&&a.length!==n[p].length&&(i=!1);let g=null;for(let m=0,v=n[p].length;m<v;m++){let w=M(n[p][m].trim());if(g===null&&w==="empty"&&(g=m),g!==null&&w!=="empty"&&(g=null),w!==a[m]&&!s){let A=w;if(Array.isArray(a[m]))a[m].includes(A)||a[m].push(A);else if(a[m]!==A){let T=a[m];a[m]=[],a[m].push(T),a[m].push(A)}}}l!==null&&g!==null&&g>l&&(!s||s&&p!==0)&&(l=g)}else if(n[p].length!==1||n[p][0]!=="")for(let g=0,m=n[p].length;g<m;g++){let v=M(n[p][g].trim());a.push(v),l===null&&v==="empty"&&(l=g),l!==null&&v!=="empty"&&(l=null)}l||(l=a.length);let o=0;for(let p=0,g=a.length;p<g&&a[p]==="empty";p++)o=p;o!==0&&(n=n.map(p=>p.slice(o+1,l)),a=a.slice(o+1,l));let f=[],u;a.forEach((p,g)=>{p==="numeric"&&f.push(g)});let d=s?1:0;if(f.length===1)u=f[0];else{if(f.length===0)throw new Error('csv-sort/sort(): [THROW_ID_02] Your CSV file does not contain numeric-only columns and computer was not able to detect the "Balance" column!');{let p=Array.from(f),g=[];for(let m=0,v=p.length;m<v;m++){let w=p[m],A,T=!0,E,S=!0;for(let C=d,be=n.length;C<be&&(T&&(A==null?A=n[C][w]:A===n[C][w]?(g.push(w),T=!1):A=n[C][w]),S&&(E==null?E=n[C][w]:n[C][w]!==E&&(S=!1)),!!T);C++);S&&_.push(w)}if(p=J(p,g),p.length===1)u=p[0];else if(p.length===0)throw new Error('csv-sort/sort(): [THROW_ID_03] The computer can\'t find the "Balance" column! It saw some numeric-only columns, but they all seem to have certain rows with the same values as rows right below/above them!')}}if(!u)throw new Error("csv-sort/sort(): [THROW_ID_04] Sadly computer couldn't find its way in this CSV and had to stop working on it.");let b=J(Array.from(a.reduce((p,g,m)=>((typeof g=="string"&&g==="numeric"||Array.isArray(g)&&g.includes("numeric"))&&p.push(m),p),[])),[u,..._]),c=[];c.push(n[n.length-1].slice(0,l));let y=[],$=s?1:0;for(let p=n.length-2;p>=$;p--)for(let g=n.length-2;g>=$;g--)if(!y.includes(g)){let m=!1;for(let v=0,w=b.length;v<w;v++){let A=null;n[g][b[v]]!==""&&(A=(0,j.default)(n[g][b[v]]));let T=null;n[g][u]!==""&&(T=(0,j.default)(n[g][u]));let E=null;c[0][u]!==""&&(E=(0,j.default)(c[0][u]).format());let S=null;c[c.length-1][b[v]]!==""&&(S=(0,j.default)(c[c.length-1][b[v]]).format());let C=null;if(c[c.length-1][u]!==""&&(C=(0,j.default)(c[c.length-1][u])),A&&T.add(A).format()===E){c.unshift(n[g].slice(0,l)),y.push(g),m=!0;break}else if(A&&T.subtract(A).format()===E){c.unshift(n[g].slice(0,l)),y.push(g),m=!0;break}else if(S&&C.add(S).format()===T.format()){c.push(n[g].slice(0,l)),y.push(g),m=!0;break}else if(S&&C.subtract(S).format()===T.format()){c.push(n[g].slice(0,l)),y.push(g),m=!0;break}}if(m){m=!1;break}}return s&&(i&&n[0].length>a.length&&(n[0].length=a.length),c.unshift(n[0].slice(0,l))),n.length-(s?2:1)!==y.length&&(r="Not all rows were recognised!",t="alert"),{res:c,msgContent:r,msgType:t}}return De(Je);})();
|
|
11
11
|
/**
|
|
12
12
|
* @name codsen-format-diagnostic-value
|
|
13
13
|
* @fileoverview Safely format untrusted JavaScript values for diagnostics
|
|
14
|
-
* @version 1.1.
|
|
14
|
+
* @version 1.1.1
|
|
15
15
|
* @author Roy Revelt
|
|
16
16
|
* @license MIT
|
|
17
17
|
* {@link https://codsen.com/os/codsen-format-diagnostic-value/}
|
|
@@ -19,7 +19,7 @@
|
|
|
19
19
|
/**
|
|
20
20
|
* @name codsen-utils
|
|
21
21
|
* @fileoverview Various utility functions
|
|
22
|
-
* @version 1.10.
|
|
22
|
+
* @version 1.10.2
|
|
23
23
|
* @author Roy Revelt
|
|
24
24
|
* @license MIT
|
|
25
25
|
* {@link https://codsen.com/os/codsen-utils/}
|
|
@@ -27,7 +27,7 @@
|
|
|
27
27
|
/**
|
|
28
28
|
* @name ranges-sort
|
|
29
29
|
* @fileoverview Sort string index ranges
|
|
30
|
-
* @version 6.2.
|
|
30
|
+
* @version 6.2.4
|
|
31
31
|
* @author Roy Revelt
|
|
32
32
|
* @license MIT
|
|
33
33
|
* {@link https://codsen.com/os/ranges-sort/}
|
|
@@ -35,7 +35,7 @@
|
|
|
35
35
|
/**
|
|
36
36
|
* @name ranges-merge
|
|
37
37
|
* @fileoverview Merge and sort string index ranges
|
|
38
|
-
* @version 9.2.
|
|
38
|
+
* @version 9.2.5
|
|
39
39
|
* @author Roy Revelt
|
|
40
40
|
* @license MIT
|
|
41
41
|
* {@link https://codsen.com/os/ranges-merge/}
|
|
@@ -43,7 +43,7 @@
|
|
|
43
43
|
/**
|
|
44
44
|
* @name ranges-apply
|
|
45
45
|
* @fileoverview Take an array of string index ranges, delete/replace the string according to them
|
|
46
|
-
* @version 7.2.
|
|
46
|
+
* @version 7.2.5
|
|
47
47
|
* @author Roy Revelt
|
|
48
48
|
* @license MIT
|
|
49
49
|
* {@link https://codsen.com/os/ranges-apply/}
|
|
@@ -51,7 +51,7 @@
|
|
|
51
51
|
/**
|
|
52
52
|
* @name string-collapse-leading-whitespace
|
|
53
53
|
* @fileoverview Collapse the leading and trailing whitespace of a string
|
|
54
|
-
* @version 7.3.
|
|
54
|
+
* @version 7.3.1
|
|
55
55
|
* @author Roy Revelt
|
|
56
56
|
* @license MIT
|
|
57
57
|
* {@link https://codsen.com/os/string-collapse-leading-whitespace/}
|
|
@@ -59,7 +59,7 @@
|
|
|
59
59
|
/**
|
|
60
60
|
* @name ranges-push
|
|
61
61
|
* @fileoverview Gather string index ranges
|
|
62
|
-
* @version 7.3.
|
|
62
|
+
* @version 7.3.2
|
|
63
63
|
* @author Roy Revelt
|
|
64
64
|
* @license MIT
|
|
65
65
|
* {@link https://codsen.com/os/ranges-push/}
|
|
@@ -67,7 +67,7 @@
|
|
|
67
67
|
/**
|
|
68
68
|
* @name string-remove-thousand-separators
|
|
69
69
|
* @fileoverview Detects and removes thousand separators (dot/comma/quote/space) from string-type digits
|
|
70
|
-
* @version 7.2.
|
|
70
|
+
* @version 7.2.5
|
|
71
71
|
* @author Roy Revelt
|
|
72
72
|
* @license MIT
|
|
73
73
|
* {@link https://codsen.com/os/string-remove-thousand-separators/}
|
|
@@ -75,7 +75,7 @@
|
|
|
75
75
|
/**
|
|
76
76
|
* @name csv-split-easy
|
|
77
77
|
* @fileoverview Splits the CSV string into array of arrays, each representing a row of columns
|
|
78
|
-
* @version 7.2.
|
|
78
|
+
* @version 7.2.5
|
|
79
79
|
* @author Roy Revelt
|
|
80
80
|
* @license MIT
|
|
81
81
|
* {@link https://codsen.com/os/csv-split-easy/}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "csv-sort",
|
|
3
|
-
"version": "7.2.
|
|
3
|
+
"version": "7.2.5",
|
|
4
4
|
"description": "Sort double-entry bookkeeping CSV from internet banking",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"accountancy",
|
|
@@ -68,14 +68,13 @@
|
|
|
68
68
|
"lect": {
|
|
69
69
|
"licence": {
|
|
70
70
|
"extras": [
|
|
71
|
-
"",
|
|
72
71
|
"List of [currency signs](https://github.com/bengourley/currency-symbol-map) - Copyright © 2017 Ben Gourley - see its [BSD-2-Clause disclaimer](https://opensource.org/licenses/BSD-2-Clause)"
|
|
73
72
|
]
|
|
74
73
|
}
|
|
75
74
|
},
|
|
76
75
|
"dependencies": {
|
|
77
|
-
"codsen-utils": "^1.10.
|
|
78
|
-
"csv-split-easy": "^7.2.
|
|
76
|
+
"codsen-utils": "^1.10.2",
|
|
77
|
+
"csv-split-easy": "^7.2.5",
|
|
79
78
|
"currency.js": "^2.0.4"
|
|
80
79
|
},
|
|
81
80
|
"engines": {
|