jsonstat-suite 3.3.0 → 3.4.0

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/iife.js CHANGED
@@ -1,2 +1,2 @@
1
- // jsonstat-suite v3.3.0 Copyright 2022 Xavier Badosa https://jsonstat.com
2
- var JSONstatUtils=function(e,t){"use strict";function n(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var r=n(t);function a(e,t){return null==e?null:("string"!=typeof e&&void 0!==e.length||(e=r.default(e)),0===e.length||"dataset"!==e.class&&"collection"!==e.class&&"bundle"!==e.class?null:"dataset"===e.class?e:e.Dataset(t))}function l(e){if(null===e||0===e.length||"dataset"!==e.class)return!1;for(var t=e.length,n=1;t--;)n*=e.Dimension(t).length;return n===e.n}function i(e,t,n){var r,a,l,i,o;return(t.label||n).capitalize()+(a=t,o="",(r=e)&&"metric"===r.role&&a.unit&&(l=a.unit.hasOwnProperty("label")?a.unit.label:"")+(i=a.unit.hasOwnProperty("symbol")?a.unit.symbol:"")!==""&&(o=" ("+(o=""===i?l:""===l?i:"start"===a.unit.position?i+l:l+" "+i)+")"),o)}function o(e,t,n){var r,a='<select name="'+t+'">',l=[];if(null!==n[1]){if(r=e.id,l=e.Dimension(),2===r.length)return(e.Dimension(n[0]).label||n[0]).capitalize()}else{var o=e.Dimension(t);if(r=o.id,l=o.Category(),1===r.length)return}return r.forEach((function(e,t){var r=e!==n[0]?"":'selected="selected" ';null!==n[1]&&e===n[1]||(a+="<option "+r+'value="'+e+'">'+i(o,l[t],e)+"</option>")})),a+="</select>"}function s(e,t){var n={};return Array.isArray(e[t])?(e[t].forEach((function(e,t){null!==e&&(n[String(t)]=e)})),n):e[t]}function u(e,t){if(void 0===e)return null;void 0===t&&(t={}),"boolean"!=typeof t.ovalue&&(t.ovalue=!1),"boolean"!=typeof t.ostatus&&(t.ostatus=!1),"boolean"!=typeof t.instance&&(t.instance=!1);var n=t.vlabel||"Value",a=t.slabel||"Status",l=t.type||"array",i=t.label||"",o=t.header||null,u=[],c=[],f=[],d=[],h={},v={},p=function(e,t){for(var n=1,r=0,a=0;a<E;a++)r+=(n*=a>0?t[E-a]:1)*e[E-a-1];return r},b=function(){var t=e[S][n];f[p(A,c)]=isNaN(t)?null:t};switch(l){case"array":e=function(e){for(var t=e[0],n=e.slice(1),r=[],a=0,l=n.length;a<l;a++){for(var i=0,o=t.length,s={};i<o;i++)s[t[i]]=n[a][i];r.push(s)}return r}(e);break;case"object":e=function(e){for(var t=e.cols.map((function(e){return e.id})),n=e.rows,r=[],a=0,l=n.length;a<l;a++){for(var i=0,o=t.length,s={};i<o;i++)s[t[i]]=n[a].c[i].v;r.push(s)}return r}(e)}var y,g=e.length;for(var m in t.hasOwnProperty("drop")&&Array.isArray(t.drop)&&t.drop.length&&e.forEach((function(e){t.drop.forEach((function(t){delete e[t]}))})),e[0])if(m!==n)if(m!==a){if(u.push(m),o)y=o.dimension[m],h[m]=y.category.index;else{h[m]=[];for(var w=0;w<g;w++){var O=e[w][m];-1===h[m].indexOf(O)&&h[m].push(O)}}c.push(h[m].length),v[m]={label:o?y.label:m,category:{index:h[m]}},o&&(v[m].category.label=y.category.label,y.category.unit&&(v[m].category.unit=y.category.unit))}else b=function(){var t=e[S][n],r=e[S][a];f[p(A,c)]=isNaN(t)?null:t,d[p(A,c)]=""===r?null:r};for(var E=u.length,S=0;S<g;S++){for(var A=[],x=0;x<E;x++){var P=u[x];A.push(h[P].indexOf(e[S][P]))}b()}var j={version:"2.0",class:"dataset",value:f,dimension:v,id:u,size:c};return i&&(j.label=i),d.length&&(j.status=d),o&&(o.label&&(j.label=o.label),o.source&&(j.source=o.source),o.updated&&(j.updated=o.updated),o.href&&(j.href=o.href),o.role&&(j.role=o.role)),t.ovalue&&(j.value=s(j,"value")),t.ostatus&&j.hasOwnProperty("status")&&(j.status=s(j,"status")),t.instance?r.default(j):j}function c(e,t){return null==e?"":-1!==e.indexOf(t)?'"'+e+'"':e}String.prototype.capitalize=function(){return this.charAt(0).toUpperCase()+this.slice(1)};return e.datalist=function(e,t){if(void 0===e)return null;void 0===t&&(t={});var n="",r="",i="",o=0,s=t.na||"n/a",u=t.dsid||0,c=t.vlabel||null,f=t.slabel||null,d=t.counter||!1,h=t.tblclass||"",v=t.numclass||"",p=t.valclass||"",b=t.status||!1,y=t.locale||"en-US",g=t.source||"Source",m=a(e,u),w=m.role&&m.role.metric?m.id.indexOf(m.role.metric[0]):null,O=m.Dimension({role:"metric"}),E={},S=Number.toLocaleString&&"none"!==y?function(e,t){return null===t?e.toLocaleString(y):e.toLocaleString(y,{minimumFractionDigits:t,maximumFractionDigits:t})}:function(e,t){return null===t?e:e.toFixed(t)},A=function(e,t){var a=null;e.forEach((function(e,l){var i=j===l?' class="'+v+" "+p+'"':"",o=s;t?(w===l&&(a=E[e]),null!==e&&(o=j===l?S(e,a):e),r+="<td"+i+">"+o+"</td>"):n+="<th"+i+">"+e+"</th>"}))},x=d?function(e,t){t?r+='<tr><td class="'+v+'">'+t+"</td>":n+='<th class="'+v+'">#</th>',A(e,t),r+="</tr>"}:function(e,t){r+="<tr>",A(e,t),r+="</tr>"};if(!l(m))return null;O&&O[0].Category().forEach((function(e){var t=e.unit&&e.unit.hasOwnProperty("decimals")?e.unit.decimals:null;E[e.label]=t}));var P=m.toTable({status:b,vlabel:c,slabel:f}),j=P[0].length-1;return P.forEach((function(e,t){x(e,t)})),m.source&&(o=m.length+1,d&&o++,b&&o++,"."!==(g+=": "+m.source).slice(-1)&&(g+="."),i='<tfoot><td colspan="'+o+'">'+g+"</td></tfoot>"),'<table class="'+h+'"><caption>'+(t.caption||m.label||"")+"</caption><thead><tr>"+n+"</tr></thead><tbody>"+r+"</tbody>"+i+"</table>"},e.fromCSV=function(e,t){if(void 0===e)return null;void 0===t&&(t={});var n,r,a,l=[],i=null,o=null,s=!1,c={time:[],geo:[],metric:[]},f="jsonstat"===e.substring(0,8),d=f?"value":t.vlabel,h=f?"status":t.slabel,v=f?e.substring(8,9):t.delimiter||",",p=";"===v?t.decimal||",":t.decimal||".",b=function(e,t){t=t||",";for(var n,r,a=new RegExp("(\\"+t+'|\\r?\\n|\\r|^)(?:"([^"]*(?:""[^"]*)*)"|([^"\\'+t+"\\r\\n]*))","gi"),l=[[]],i=null;i=a.exec(e);)(r=i[1]).length&&r!=t&&l.push([]),n=i[2]?i[2].replace(new RegExp('""',"g"),'"'):i[3],l[l.length-1].push(n);return l}(e.trim(),v);if(f){for(p=b[0][1],a=b[0][2],b.shift();"data"!==b[0][0];)l.push(b.shift());b.shift(),o={dimension:{}},l.forEach((function(e){var t,n,r,l,i,u,f,d;switch(e[0]){case"dimension":if(o.dimension[e[1]]={},(l=o.dimension[e[1]]).label=e[2],l.category={},(i=l.category).index=[],n={},r=2*e[3]+3,e.length>=r){for(t=4;t<r;t++)f=e[t],d=e[++t],Object.defineProperty(n,f,{value:d,writable:!0,configurable:!0,enumerable:!0}),i.label=n,i.index.push(f);"string"==typeof e[t]&&-1!==["time","geo","metric"].indexOf(e[t])&&(c[e[t]].push(e[1]),s=!0,"metric"===e[t]&&"string"==typeof e[++t]&&(i.unit={},i.index.forEach((function(n,r){var l=e[t+r].split(a);i.unit[n]={},u=i.unit[n],void 0!==l[0]&&""!==l[0]&&(u.decimals=1*l[0]),void 0!==l[1]&&""!==l[1]&&(u.label=l[1]),void 0!==l[2]&&""!==l[2]&&(u.symbol=l[2]),void 0!==l[1]&&-1!==["start","end"].indexOf(l[3])&&(u.position=l[3])}))))}break;case"label":case"source":case"updated":case"href":o[e[0]]=e[1]||null}})),s&&(c.time.length||delete c.time,c.geo.length||delete c.geo,c.metric.length||delete c.metric,o.role=c)}if(n=b.length,r=b[0].length,void 0!==d){for(;r--;)if(b[0][r]===d){i=r;break}if(null===i)return null}else i=r-1,d=b[0][i];if(","===p)for(r=1;r<n;r++)b[r][i]=Number(b[r][i].replace(",","."));else for(r=1;r<n;r++)b[r][i]=Number(b[r][i]);return u(b,{header:o,vlabel:d,slabel:h,type:"array",label:t.label||"",ovalue:t.ovalue||!1,ostatus:t.ostatus||!1,instance:t.instance||!1})},e.fromSDMX=function(e,t){if("object"!=typeof e)return null;if(e.hasOwnProperty("data")&&e.hasOwnProperty("meta")&&e.data.hasOwnProperty("dataSets")&&e.data.hasOwnProperty("structures")&&Array.isArray(e.data.structures)&&(e.dataSets=e.data.dataSets,e.structure=e.data.structures[0],e.header=e.meta),!e.hasOwnProperty("dataSets")||!Array.isArray(e.dataSets))return null;if(1!==e.dataSets.length)return null;e.dataSets[0].hasOwnProperty("observations")||function(e){var t=e.dataSets[0],n=t.series,r=e.structure,a=r.dimensions,l={};Object.keys(n).forEach((function(e){var t=n[e].observations;Object.keys(t).forEach((function(r){l[e+":"+r]=t[r].concat(n[e].attributes)}))})),t.observations=l,delete t.series,a.observation=a.series.concat(a.observation),delete a.series,r.attributes.observation=r.attributes.observation.concat(r.attributes.series),delete r.attributes.series}(e),void 0===t?t={ovalue:!1,ostatus:!1,instance:!1}:("boolean"!=typeof t.ovalue&&(t.ovalue=!1),"boolean"!=typeof t.ostatus&&(t.ostatus=!1),"boolean"!=typeof t.instance&&(t.instance=!1));var n=e.structure,a=e.dataSets[0].observations,l=n.attributes.observation,i=n.dimensions;if(!i.hasOwnProperty("observation"))return null;if(i.hasOwnProperty("series")&&Object.keys(i.series).length)return null;Array.prototype.reduce||Object.defineProperty(Array.prototype,"reduce",{value:function(e){if(null===this)throw new TypeError("Array.prototype.reduce called on null or undefined");if("function"!=typeof e)throw new TypeError(e+" is not a function");var t,n=Object(this),r=n.length>>>0,a=0;if(arguments.length>=2)t=arguments[1];else{for(;a<r&&!(a in n);)a++;if(a>=r)throw new TypeError("Reduce of empty array with no initial value");t=n[a++]}for(;a<r;)a in n&&(t=e(t,n[a],a,n)),a++;return t}}),Array.prototype.find||Object.defineProperty(Array.prototype,"find",{value:function(e){if(null==this)throw TypeError('"this" is null or not defined');var t=Object(this),n=t.length>>>0;if("function"!=typeof e)throw TypeError("predicate must be a function");for(var r=arguments[1],a=0;a<n;){var l=t[a];if(e.call(r,l,a,t))return l;a++}},configurable:!0,writable:!0}),Array.prototype.findIndex||Object.defineProperty(Array.prototype,"findIndex",{value:function(e){if(null==this)throw new TypeError('"this" is null or not defined');var t=Object(this),n=t.length>>>0;if("function"!=typeof e)throw new TypeError("predicate must be a function");for(var r=arguments[1],a=0;a<n;){var l=t[a];if(e.call(r,l,a,t))return a;a++}return-1},configurable:!0,writable:!0});var o=1,s=[],u=[],c={},f=[],d={time:[],geo:[]},h=function(){},v=function(e,t){for(var n=e.size,r=n.length-t.length;r--;)t.push(0);for(var a=0,l=n.length,i=0,o=1;a<l;a++)i+=(o*=a>0?n[l-a]:1)*t[l-a-1];return i},p=function(e){if(c[e.id]={label:e.name},e.hasOwnProperty("role"))switch(e.role){case"REF_AREA":d.geo.push(e.id);break;case"TIME_PERIOD":d.time.push(e.id)}Object.defineProperty(c[e.id],"category",{value:{index:[],label:{}},writable:!0,enumerable:!0}),s.push(e.id),u.push(e.values.length),o*=e.values.length;var t=c[e.id].category;e.values.forEach((function(e){t.index.push(e.id),Object.defineProperty(t.label,e.id,{value:e.name,writable:!0,enumerable:!0})}))},b=e.header.links?e.header.links.find((function(e){return"request"===e.rel})):null,y=l.findIndex((function(e){return"OBS_STATUS"===e.id}));-1!==y&&(l[y].values.length?f=l[y].values:y=-1),i.observation.forEach(p),i.hasOwnProperty("dataSet")&&i.dataSet.forEach(p);var g={version:"2.0",class:"dataset",updated:e.header.prepared||null,source:e.header.sender.name||null,label:n.name||null,id:s,size:u,dimension:c,value:t.ovalue?{}:new Array(o).fill(null)};for(var m in b&&(g.link={alternate:[{type:"application/vnd.sdmx.data+json",href:b.href}]}),d.geo.length+d.time.length>0&&(d.time.length||delete d.time,d.geo.length||delete d.geo,g.role=d),-1!==y&&(g.status=t.ostatus?{}:new Array(o).fill(null),g.extension={status:{label:{}}},f.forEach((function(e){g.extension.status.label[e.id]=e.name})),h=t.ostatus?function(){var e=a[m][y];null!==e&&(g.status[v(g,w)]=f[e].id)}:function(){var e=a[m][y];g.status[v(g,w)]=null===e?null:f[e].id}),y++,a){var w=m.split(":");t.ovalue&&null===a[m][0]||(g.value[v(g,w)]=a[m][0]),h()}return t.instance?r.default(g):g},e.fromTable=u,e.join=function(e,t){if(void 0===e||!Array.isArray(e))return null;var n=JSON.parse(JSON.stringify(e)),a=n[0];if(!a.hasOwnProperty("version")||!a.hasOwnProperty("class")||"dataset"!==a.class)return null;void 0===t&&(t={});var l=void 0===t.label?null:t.label,i=void 0===t.by?null:t.by,o=[];if(null===i){for(var s=1,c=n.length;s<c;s++)o=o.concat(n[s].value);return a.value=o,null!==l&&(a.label=l),a}var f,d,h,v=function(e,t,n){if(Array.isArray(e))e=e.concat(t);else for(var r in t)e[r]=0===t[r]?n:t[r];return e};n.forEach((function(e,t){var n=r.default(e).toTable({status:!0}),a=e.dimension[i].category;0===t?(o=[n[0]],f=a.index,d=a.label,h=a.unit):(f=function(e,t,n){if(Array.isArray(e))e=e.concat(t);else for(var r in t)e[r]=t[r]+n;return e}(f,a.index,Object.keys(f).length),d=v(d,a.label,t),h=v(h,a.unit,t)),o=o.concat(n.slice(1))}));var p=u(o);return a.value=p.value,a.size=p.size,a.status=p.status||null,a.label=l||"",a.href=null,a.dimension[i].category.index=f||null,a.dimension[i].category.label=d||null,a.dimension[i].category.unit=h||null,a},e.tbrowser=function(e,t,n){function r(e){void 0!==t?t.innerHTML=s[e]:window.alert(s[e])}if(void 0!==e)if(void 0!==t){void 0===n&&(n={});var s=void 0===n.i18n||void 0===n.i18n.msgs?{urierror:"tbrowser: A valid JSON-stat input must be specified.",selerror:"tbrowser: A valid selector must be specified.",jsonerror:"The request did not return a valid JSON-stat dataset.",dimerror:"Only one dimension was found in the dataset. At least two are required.",dataerror:"Selection returned no data!",source:"Source",filters:"Filters",constants:"Constants",rc:"Rows &amp; Columns",na:"n/a"}:n.i18n.msgs,u=void 0===n.i18n||void 0===n.i18n.locale?"en-US":n.i18n.locale,c=n.dsid||0,f=n.status||!1,d=n.tblclass||"",h=n.nonconst||!1,v=a(e,c);if(l(v)){if(h)var p=function(e){var t=0,n=e.size.slice(0),r=[];return n.forEach((function(n,a){var l=a-t,i=e.Dimension(l);1===n&&(delete e.__tree__.dimension[e.id[l]],e.size.splice(l,1),e.id.splice(l,1),e.length--,t++,r.push(i.label.capitalize()+": "+i.Category(0).label.capitalize()))})),r}(v);1!==v.length?function e(t,n,r,a){var l="",c="",d="",v="",b=r.rows,y=n.Dimension(b),g=y.id,m=r.cols,w=n.Dimension(m),O=w.id,E=n.role&&n.role.metric?n.role.metric[0]:null,S=null!==E?n.Dimension(E):null,A=function(e){return e.hasOwnProperty("unit")&&e.unit&&e.unit.hasOwnProperty("decimals")?e.unit.decimals:null},x=r.filter,P=JSON.parse(JSON.stringify(x)),j=[],D="",T="",N=n.source?s.source+": "+n.source:"",z=null!==n.label?'<span class="label">'+n.label.capitalize()+"</span>":"";for(var C in h&&p.length&&(z='<span class="label">'+p.join(". ")+"</span>"),""!==N&&"."!==N.slice(-1)&&(N+="."),d+="<caption>"+z+"<form>",x){var R=n.Dimension(C),_=R.label?R.label.capitalize():C.capitalize();R.length>1?D+="<p>"+o(n,C,[x[C],null])+" <strong>"+_+"</strong></p>":j.push({label:_,value:i(R,R.Category(0)),name:C,id:R.id[0]})}""!==D&&(D='<fieldset id="filters"><legend>'+s.filters+"</legend>"+D+"</fieldset>"),j.forEach((function(e){T+="<p>"+e.value+" <strong>"+e.label+'</strong></p><input type="hidden" name="'+e.name+'" value="'+e.id+'" />'})),""!==T&&(T='<fieldset id="constants"><legend>'+s.constants+"</legend>"+T+"</fieldset>"),d+=T+D+'<fieldset id="rowscols"><legend>'+s.rc+"</legend>"+o(n,"rows",[b,m])+" <a>&#x2194;</a> "+o(n,"cols",[m,b])+"</fieldset></form></caption>",v+="<tbody>";var k=Number.toLocaleString&&"none"!==u?function(e,t){return null===t?e.toLocaleString(u):e.toLocaleString(u,{minimumFractionDigits:t,maximumFractionDigits:t})}:function(e,t){return null===t?e:e.toFixed(t)};if(g.forEach((function(e){P[b]=e;var t=n.Data(P),r=function(e,t){var n,r=m!==E?null===S?null:A(S.Category(P[E])):A(w.Category(t));null!==e.value?(n=k(e.value,r),f&&null!==e.status&&(n+=" ("+e.status+")")):n=e.status||s.na,v+="<td>"+n+"</td>"};null!==t?(v+='<tr><th scope="row">'+i(y,y.Category(e))+"</th>",Array.isArray(t)?t.forEach((function(e,t){r(e,t)})):r(t,0),v+="</tr>"):v="ERROR"})),"ERROR"===v)return s.dataerror;v+="</tbody>",l+="<thead><tr><th></th>",O.forEach((function(e){l+='<th scope="col">'+i(w,w.Category(e))+"</th>"})),l+="</tr></thead>",""!==N&&(c='<tfoot><tr><td colspan="'+(O.length+1)+'">'+N+"</td></tr></tfoot>"),t.innerHTML='<table class="'+a+'">'+d+l+v+c+"</table>",[].slice.call(t.querySelectorAll("select")).forEach((function(r){r.addEventListener("change",(function(r){var l,i;e(t,n,function(e,t,n){var r={filter:{}};return n.forEach((function(e){"rows"===e.name||"cols"===e.name?r[e.name]=e.value:r.filter[e.name]=e.value})),"rowscols"===t&&e.id.forEach((function(t,n){t!==r.rows&&t!==r.cols?void 0===r.filter[t]&&(r.filter[t]=e.Dimension(n).id[0]):delete r.filter[t]})),r}(n,r.target.parentElement.getAttribute("id"),(l=t,i=[],[].slice.call(l.querySelectorAll("select, input")).forEach((function(e){i.push({name:e.name,value:e.value})})),i)),a)}),!1)})),t.querySelector("a").addEventListener("click",(function(){r.cols=b,r.rows=m,e(t,n,r,a)}),!1)}(t,v,function(e,t){var n,r,a={},l=[],i=e.id;if(t){var o="bigger"===t?function(e,t){return e.len<t.len?1:-1}:function(e,t){return e.len>t.len?1:-1};e.Dimension().forEach((function(e,t){l.push({id:i[t],len:e.length})})),l.sort(o),n=l[0].id,r=l[1].id}else n=i[0],r=i[1];return e.Dimension(n).length<e.Dimension(r).length&&(n=r+(r=n,"")),i.forEach((function(t){t!==n&&t!==r&&(a[t]=e.Dimension(t).id[0])})),{rows:n,cols:r,filter:a}}(v,n.preset),d):r("dimerror")}else r("jsonerror")}else r("selerror");else r("urierror")},e.toCSV=function(e,t){if(void 0===e)return null;void 0===t&&(t={});var n=!0===t.rich,r=t.content||"label",i=t.field||"label",o=n?"value":t.vlabel||"Value",s=n?"status":t.slabel||"Status",u=!0===t.status,f=t.na||"n/a",d=t.delimiter||",",h=t.separator||"|",v=";"===d?t.decimal||",":t.decimal||".",p=!0===t.array,b=a(e,t.dsid||0),y=p?[]:"",g=p?[]:"",m=p?function(e){y.push(e)}:function(e){y+=e+"\n"},w=p?function(e){g.push(e)}:function(e){g+=e+"\n"};if(!l(b))return null;n&&(u=null!==b.status);var O=b.toTable({vlabel:o,slabel:s,status:u,field:n?"id":i,content:n?"id":r,type:"array"}),E=O[0].indexOf("id"===i?"value":o),S=u?O[0].indexOf("id"===i?"status":s):-1;return O.forEach((function(e,t){e.forEach((function(n,r){t&&r===E?null===n?e[r]=c(f,d):"."!==v&&(e[r]=String(e[r]).replace(".",v)):e[r]=t&&r===S&&null===n?"":c(e[r],d)})),m(e.join(d))})),n&&(w("jsonstat"+d+v+d+h),["label","source","updated","href"].forEach((function(e){b[e]&&w(e+d+c(b[e],d))})),b.id.forEach((function(e,t){var n=[],r=b.Dimension(t),a=r.role,l=!1,i="";i+="dimension"+d+c(e,d)+d+c(r.label,d)+d+r.length,"metric"===a&&r.__tree__.category.unit&&(l=!0),r.id.forEach((function(e,t){var a=[],o=r.Category(t);i+=d+c(e,d)+d+c(o.label,d),l&&(a.push(o.unit.hasOwnProperty("decimals")?o.unit.decimals:""),a.push(o.unit.label||""),o.unit.symbol&&(a.push(o.unit.symbol),a.push(o.unit.position)),n.push(c(a.join(h),d)))})),null!==a&&"classification"!==a&&(i+=d+r.role,l&&(i+=d+n.join(d))),w(i)})),y=p?g.concat(["data"],y):g+"data\n"+y),y},e.version="3.3.0",Object.defineProperty(e,"__esModule",{value:!0}),e}({},JSONstat);
1
+ // jsonstat-suite v3.4.0 Copyright 2023 Xavier Badosa https://jsonstat.com
2
+ var JSONstatUtils=function(e,t){"use strict";function n(e,n){return null==e?null:("string"!=typeof e&&void 0!==e.length||(e=t(e)),0===e.length||"dataset"!==e.class&&"collection"!==e.class&&"bundle"!==e.class?null:"dataset"===e.class?e:e.Dataset(n))}function r(e){if(null===e||0===e.length||"dataset"!==e.class)return!1;for(var t=e.length,n=1;t--;)n*=e.Dimension(t).length;return n===e.n}function a(e,t,n){var r,a,l,i,o;return(t.label||n).capitalize()+(a=t,o="",(r=e)&&"metric"===r.role&&a.unit&&(l=a.unit.hasOwnProperty("label")?a.unit.label:"")+(i=a.unit.hasOwnProperty("symbol")?a.unit.symbol:"")!==""&&(o=" ("+(o=""===i?l:""===l?i:"start"===a.unit.position?i+l:l+" "+i)+")"),o)}function l(e,t,n){var r,l='<select name="'+t+'">',i=[];if(null!==n[1]){if(r=e.id,i=e.Dimension(),2===r.length)return(e.Dimension(n[0]).label||n[0]).capitalize()}else{var o=e.Dimension(t);if(r=o.id,i=o.Category(),1===r.length)return}return r.forEach((function(e,t){var r=e!==n[0]?"":'selected="selected" ';null!==n[1]&&e===n[1]||(l+="<option "+r+'value="'+e+'">'+a(o,i[t],e)+"</option>")})),l+="</select>"}function i(e,t){var n={};return Array.isArray(e[t])?(e[t].forEach((function(e,t){null!==e&&(n[String(t)]=e)})),n):e[t]}function o(e,n){if(void 0===e)return null;void 0===n&&(n={}),"boolean"!=typeof n.ovalue&&(n.ovalue=!1),"boolean"!=typeof n.ostatus&&(n.ostatus=!1),"boolean"!=typeof n.instance&&(n.instance=!1);var r=n.vlabel||"Value",a=n.slabel||"Status",l=n.type||"array",o=n.label||"",s=n.header||null,u=[],c=[],f=[],d=[],h={},v={},p=function(e,t){for(var n=1,r=0,a=0;a<E;a++)r+=(n*=a>0?t[E-a]:1)*e[E-a-1];return r},b=function(){var t=e[S][r];f[p(A,c)]=isNaN(t)?null:t};switch(l){case"array":e=function(e){for(var t=e[0],n=e.slice(1),r=[],a=0,l=n.length;a<l;a++){for(var i=0,o=t.length,s={};i<o;i++)s[t[i]]=n[a][i];r.push(s)}return r}(e);break;case"object":e=function(e){for(var t=e.cols.map((function(e){return e.id})),n=e.rows,r=[],a=0,l=n.length;a<l;a++){for(var i=0,o=t.length,s={};i<o;i++)s[t[i]]=n[a].c[i].v;r.push(s)}return r}(e)}var y,g=e.length;for(var m in n.hasOwnProperty("drop")&&Array.isArray(n.drop)&&n.drop.length&&e.forEach((function(e){n.drop.forEach((function(t){delete e[t]}))})),e[0])if(m!==r)if(m!==a){if(u.push(m),s)y=s.dimension[m],h[m]=y.category.index;else{h[m]=[];for(var w=0;w<g;w++){var O=e[w][m];-1===h[m].indexOf(O)&&h[m].push(O)}}c.push(h[m].length),v[m]={label:s?y.label:m,category:{index:h[m]}},s&&(v[m].category.label=y.category.label,y.category.unit&&(v[m].category.unit=y.category.unit))}else b=function(){var t=e[S][r],n=e[S][a];f[p(A,c)]=isNaN(t)?null:t,d[p(A,c)]=""===n?null:n};for(var E=u.length,S=0;S<g;S++){for(var A=[],x=0;x<E;x++){var P=u[x];A.push(h[P].indexOf(e[S][P]))}b()}var j={version:"2.0",class:"dataset",value:f,dimension:v,id:u,size:c};return o&&(j.label=o),d.length&&(j.status=d),s&&(s.label&&(j.label=s.label),s.source&&(j.source=s.source),s.updated&&(j.updated=s.updated),s.href&&(j.href=s.href),s.role&&(j.role=s.role)),n.ovalue&&(j.value=i(j,"value")),n.ostatus&&j.hasOwnProperty("status")&&(j.status=i(j,"status")),n.instance?t(j):j}function s(e,t){return null==e?"":-1!==e.indexOf(t)?'"'+e+'"':e}String.prototype.capitalize=function(){return this.charAt(0).toUpperCase()+this.slice(1)};return e.datalist=function(e,t){if(void 0===e)return null;void 0===t&&(t={});var a="",l="",i="",o=0,s=t.na||"n/a",u=t.dsid||0,c=t.vlabel||null,f=t.slabel||null,d=t.counter||!1,h=t.tblclass||"",v=t.numclass||"",p=t.valclass||"",b=t.status||!1,y=t.locale||"en-US",g=t.source||"Source",m=n(e,u),w=m.role&&m.role.metric?m.id.indexOf(m.role.metric[0]):null,O=m.Dimension({role:"metric"}),E={},S=Number.toLocaleString&&"none"!==y?function(e,t){return null===t?e.toLocaleString(y):e.toLocaleString(y,{minimumFractionDigits:t,maximumFractionDigits:t})}:function(e,t){return null===t?e:e.toFixed(t)},A=function(e,t){var n=null;e.forEach((function(e,r){var i=j===r?' class="'+v+" "+p+'"':"",o=s;t?(w===r&&(n=E[e]),null!==e&&(o=j===r?S(e,n):e),l+="<td"+i+">"+o+"</td>"):a+="<th"+i+">"+e+"</th>"}))},x=d?function(e,t){t?l+='<tr><td class="'+v+'">'+t+"</td>":a+='<th class="'+v+'">#</th>',A(e,t),l+="</tr>"}:function(e,t){l+="<tr>",A(e,t),l+="</tr>"};if(!r(m))return null;O&&O[0].Category().forEach((function(e){var t=e.unit&&e.unit.hasOwnProperty("decimals")?e.unit.decimals:null;E[e.label]=t}));var P=m.toTable({status:b,vlabel:c,slabel:f}),j=P[0].length-1;return P.forEach((function(e,t){x(e,t)})),m.source&&(o=m.length+1,d&&o++,b&&o++,"."!==(g+=": "+m.source).slice(-1)&&(g+="."),i='<tfoot><td colspan="'+o+'">'+g+"</td></tfoot>"),'<table class="'+h+'"><caption>'+(t.caption||m.label||"")+"</caption><thead><tr>"+a+"</tr></thead><tbody>"+l+"</tbody>"+i+"</table>"},e.fromCSV=function(e,t){if(void 0===e)return null;void 0===t&&(t={});var n,r,a,l=[],i=null,s=null,u=!1,c={time:[],geo:[],metric:[]},f="jsonstat"===e.substring(0,8),d=f?"value":t.vlabel,h=f?"status":t.slabel,v=f?e.substring(8,9):t.delimiter||",",p=";"===v?t.decimal||",":t.decimal||".",b=function(e,t){t=t||",";for(var n,r,a=new RegExp("(\\"+t+'|\\r?\\n|\\r|^)(?:"([^"]*(?:""[^"]*)*)"|([^"\\'+t+"\\r\\n]*))","gi"),l=[[]],i=null;i=a.exec(e);)(r=i[1]).length&&r!=t&&l.push([]),n=i[2]?i[2].replace(new RegExp('""',"g"),'"'):i[3],l[l.length-1].push(n);return l}(e.trim(),v);if(f){for(p=b[0][1],a=b[0][2],b.shift();"data"!==b[0][0];)l.push(b.shift());b.shift(),s={dimension:{}},l.forEach((function(e){var t,n,r,l,i,o,f,d;switch(e[0]){case"dimension":if(s.dimension[e[1]]={},(l=s.dimension[e[1]]).label=e[2],l.category={},(i=l.category).index=[],n={},r=2*e[3]+3,e.length>=r){for(t=4;t<r;t++)f=e[t],d=e[++t],Object.defineProperty(n,f,{value:d,writable:!0,configurable:!0,enumerable:!0}),i.label=n,i.index.push(f);"string"==typeof e[t]&&-1!==["time","geo","metric"].indexOf(e[t])&&(c[e[t]].push(e[1]),u=!0,"metric"===e[t]&&"string"==typeof e[++t]&&(i.unit={},i.index.forEach((function(n,r){var l=e[t+r].split(a);i.unit[n]={},o=i.unit[n],void 0!==l[0]&&""!==l[0]&&(o.decimals=1*l[0]),void 0!==l[1]&&""!==l[1]&&(o.label=l[1]),void 0!==l[2]&&""!==l[2]&&(o.symbol=l[2]),void 0!==l[1]&&-1!==["start","end"].indexOf(l[3])&&(o.position=l[3])}))))}break;case"label":case"source":case"updated":case"href":s[e[0]]=e[1]||null}})),u&&(c.time.length||delete c.time,c.geo.length||delete c.geo,c.metric.length||delete c.metric,s.role=c)}if(n=b.length,r=b[0].length,void 0!==d){for(;r--;)if(b[0][r]===d){i=r;break}if(null===i)return null}else i=r-1,d=b[0][i];if(","===p)for(r=1;r<n;r++)b[r][i]=Number(b[r][i].replace(",","."));else for(r=1;r<n;r++)b[r][i]=Number(b[r][i]);return o(b,{header:s,vlabel:d,slabel:h,type:"array",label:t.label||"",ovalue:t.ovalue||!1,ostatus:t.ostatus||!1,instance:t.instance||!1})},e.fromSDMX=function(e,n){if("object"!=typeof e)return null;if(e.hasOwnProperty("data")&&e.hasOwnProperty("meta")&&e.data.hasOwnProperty("dataSets")&&e.data.hasOwnProperty("structures")&&Array.isArray(e.data.structures)&&(e.dataSets=e.data.dataSets,e.structure=e.data.structures[0],e.header=e.meta),!e.hasOwnProperty("dataSets")||!Array.isArray(e.dataSets))return null;if(1!==e.dataSets.length)return null;e.dataSets[0].hasOwnProperty("observations")||function(e){var t=e.dataSets[0],n=t.series,r=e.structure,a=r.dimensions,l={};Object.keys(n).forEach((function(e){var t=n[e].observations;Object.keys(t).forEach((function(r){l[e+":"+r]=t[r].concat(n[e].attributes)}))})),t.observations=l,delete t.series,a.observation=a.series.concat(a.observation),delete a.series,r.attributes.observation=r.attributes.observation.concat(r.attributes.series),delete r.attributes.series}(e),void 0===n?n={ovalue:!1,ostatus:!1,instance:!1}:("boolean"!=typeof n.ovalue&&(n.ovalue=!1),"boolean"!=typeof n.ostatus&&(n.ostatus=!1),"boolean"!=typeof n.instance&&(n.instance=!1));var r=e.structure,a=e.dataSets[0].observations,l=r.attributes.observation,i=r.dimensions;if(!i.hasOwnProperty("observation"))return null;if(i.hasOwnProperty("series")&&Object.keys(i.series).length)return null;Array.prototype.reduce||Object.defineProperty(Array.prototype,"reduce",{value:function(e){if(null===this)throw new TypeError("Array.prototype.reduce called on null or undefined");if("function"!=typeof e)throw new TypeError(e+" is not a function");var t,n=Object(this),r=n.length>>>0,a=0;if(arguments.length>=2)t=arguments[1];else{for(;a<r&&!(a in n);)a++;if(a>=r)throw new TypeError("Reduce of empty array with no initial value");t=n[a++]}for(;a<r;)a in n&&(t=e(t,n[a],a,n)),a++;return t}}),Array.prototype.find||Object.defineProperty(Array.prototype,"find",{value:function(e){if(null==this)throw TypeError('"this" is null or not defined');var t=Object(this),n=t.length>>>0;if("function"!=typeof e)throw TypeError("predicate must be a function");for(var r=arguments[1],a=0;a<n;){var l=t[a];if(e.call(r,l,a,t))return l;a++}},configurable:!0,writable:!0}),Array.prototype.findIndex||Object.defineProperty(Array.prototype,"findIndex",{value:function(e){if(null==this)throw new TypeError('"this" is null or not defined');var t=Object(this),n=t.length>>>0;if("function"!=typeof e)throw new TypeError("predicate must be a function");for(var r=arguments[1],a=0;a<n;){var l=t[a];if(e.call(r,l,a,t))return a;a++}return-1},configurable:!0,writable:!0});var o=1,s=[],u=[],c={},f=[],d={time:[],geo:[]},h=function(){},v=function(e,t){for(var n=e.size,r=n.length-t.length;r--;)t.push(0);for(var a=0,l=n.length,i=0,o=1;a<l;a++)i+=(o*=a>0?n[l-a]:1)*t[l-a-1];return i},p=function(e){if(c[e.id]={label:e.name},e.hasOwnProperty("role"))switch(e.role){case"REF_AREA":d.geo.push(e.id);break;case"TIME_PERIOD":d.time.push(e.id)}Object.defineProperty(c[e.id],"category",{value:{index:[],label:{}},writable:!0,enumerable:!0}),s.push(e.id),u.push(e.values.length),o*=e.values.length;var t=c[e.id].category;e.values.forEach((function(e){t.index.push(e.id),Object.defineProperty(t.label,e.id,{value:e.name,writable:!0,enumerable:!0})}))},b=e.header.links?e.header.links.find((function(e){return"request"===e.rel})):null,y=l.findIndex((function(e){return"OBS_STATUS"===e.id}));-1!==y&&(l[y].values.length?f=l[y].values:y=-1),i.observation.forEach(p),i.hasOwnProperty("dataSet")&&i.dataSet.forEach(p);var g={version:"2.0",class:"dataset",updated:e.header.prepared||null,source:e.header.sender.name||null,label:r.name||null,id:s,size:u,dimension:c,value:n.ovalue?{}:new Array(o).fill(null)};for(var m in b&&(g.link={alternate:[{type:"application/vnd.sdmx.data+json",href:b.href}]}),d.geo.length+d.time.length>0&&(d.time.length||delete d.time,d.geo.length||delete d.geo,g.role=d),-1!==y&&(g.status=n.ostatus?{}:new Array(o).fill(null),g.extension={status:{label:{}}},f.forEach((function(e){g.extension.status.label[e.id]=e.name})),h=n.ostatus?function(){var e=a[m][y];null!==e&&(g.status[v(g,w)]=f[e].id)}:function(){var e=a[m][y];g.status[v(g,w)]=null===e?null:f[e].id}),y++,a){var w=m.split(":");n.ovalue&&null===a[m][0]||(g.value[v(g,w)]=a[m][0]),h()}return n.instance?t(g):g},e.fromTable=o,e.join=function(e,n){if(void 0===e||!Array.isArray(e))return null;var r=JSON.parse(JSON.stringify(e)),a=r[0];if(!a.hasOwnProperty("version")||!a.hasOwnProperty("class")||"dataset"!==a.class)return null;void 0===n&&(n={});var l=void 0===n.label?null:n.label,i=void 0===n.by?null:n.by,s=[];if(null===i){for(var u=1,c=r.length;u<c;u++)s=s.concat(r[u].value);return a.value=s,null!==l&&(a.label=l),a}var f,d,h,v=function(e,t,n){if(Array.isArray(e))e=e.concat(t);else for(var r in t)e[r]=0===t[r]?n:t[r];return e};r.forEach((function(e,n){var r=t(e).toTable({status:!0}),a=e.dimension[i].category;0===n?(s=[r[0]],f=a.index,d=a.label,h=a.unit):(f=function(e,t,n){if(Array.isArray(e))e=e.concat(t);else for(var r in t)e[r]=t[r]+n;return e}(f,a.index,Object.keys(f).length),d=v(d,a.label,n),h=v(h,a.unit,n)),s=s.concat(r.slice(1))}));var p=o(s);return a.value=p.value,a.size=p.size,a.status=p.status||null,a.label=l||"",a.href=null,a.dimension[i].category.index=f||null,a.dimension[i].category.label=d||null,a.dimension[i].category.unit=h||null,a},e.tbrowser=function(e,t,i){function o(e){void 0!==t?t.innerHTML=s[e]:window.alert(s[e])}if(void 0!==e)if(void 0!==t){void 0===i&&(i={});var s=void 0===i.i18n||void 0===i.i18n.msgs?{urierror:"tbrowser: A valid JSON-stat input must be specified.",selerror:"tbrowser: A valid selector must be specified.",jsonerror:"The request did not return a valid JSON-stat dataset.",dimerror:"Only one dimension was found in the dataset. At least two are required.",dataerror:"Selection returned no data!",source:"Source",filters:"Filters",constants:"Constants",rc:"Rows &amp; Columns",na:"n/a"}:i.i18n.msgs,u=void 0===i.i18n||void 0===i.i18n.locale?"en-US":i.i18n.locale,c=i.dsid||0,f=i.status||!1,d=i.tblclass||"",h=i.nonconst||!1,v=n(e,c);if(r(v)){if(h)var p=function(e){var t=0,n=e.size.slice(0),r=[];return n.forEach((function(n,a){var l=a-t,i=e.Dimension(l);1===n&&(delete e.__tree__.dimension[e.id[l]],e.size.splice(l,1),e.id.splice(l,1),e.length--,t++,r.push(i.label.capitalize()+": "+i.Category(0).label.capitalize()))})),r}(v);1!==v.length?function e(t,n,r,o){"function"==typeof i.callback&&i.callback(r);var c="",d="",v="",b="",y=r.rows,g=n.Dimension(y),m=g.id,w=r.cols,O=n.Dimension(w),E=O.id,S=n.role&&n.role.metric?n.role.metric[0]:null,A=null!==S?n.Dimension(S):null,x=function(e){return e.hasOwnProperty("unit")&&e.unit&&e.unit.hasOwnProperty("decimals")?e.unit.decimals:null},P=r.filters,j=JSON.parse(JSON.stringify(P)),D=[],T="",N="",z=n.source?s.source+": "+n.source:"",C=null!==n.label?'<span class="label">'+n.label.capitalize()+"</span>":"";for(var k in h&&p.length&&(C='<span class="label">'+p.join(". ")+"</span>"),""!==z&&"."!==z.slice(-1)&&(z+="."),v+="<caption>"+C+"<form>",P){var R=n.Dimension(k),_=R.label?R.label.capitalize():k.capitalize();R.length>1?T+="<p>"+l(n,k,[P[k],null])+" <strong>"+_+"</strong></p>":D.push({label:_,value:a(R,R.Category(0)),name:k,id:R.id[0]})}""!==T&&(T='<fieldset id="filters"><legend>'+s.filters+"</legend>"+T+"</fieldset>"),D.forEach((function(e){N+="<p>"+e.value+" <strong>"+e.label+'</strong></p><input type="hidden" name="'+e.name+'" value="'+e.id+'" />'})),""!==N&&(N='<fieldset id="constants"><legend>'+s.constants+"</legend>"+N+"</fieldset>"),v+=N+T+'<fieldset id="rowscols"><legend>'+s.rc+"</legend>"+l(n,"rows",[y,w])+" <a>&#x2194;</a> "+l(n,"cols",[w,y])+"</fieldset></form></caption>",b+="<tbody>";var L=Number.toLocaleString&&"none"!==u?function(e,t){return null===t?e.toLocaleString(u):e.toLocaleString(u,{minimumFractionDigits:t,maximumFractionDigits:t})}:function(e,t){return null===t?e:e.toFixed(t)};if(m.forEach((function(e){j[y]=e;var t=n.Data(j),r=function(e,t){var n,r=w!==S?null===A?null:x(A.Category(j[S])):x(O.Category(t));null!==e.value?(n=L(e.value,r),f&&null!==e.status&&(n+=" ("+e.status+")")):n=e.status||s.na,b+="<td>"+n+"</td>"};null!==t?(b+='<tr><th scope="row">'+a(g,g.Category(e))+"</th>",Array.isArray(t)?t.forEach((function(e,t){r(e,t)})):r(t,0),b+="</tr>"):b="ERROR"})),"ERROR"===b)return s.dataerror;b+="</tbody>",c+="<thead><tr><th></th>",E.forEach((function(e){c+='<th scope="col">'+a(O,O.Category(e))+"</th>"})),c+="</tr></thead>",""!==z&&(d='<tfoot><tr><td colspan="'+(E.length+1)+'">'+z+"</td></tr></tfoot>"),t.innerHTML='<table class="'+o+'">'+v+c+b+d+"</table>",[].slice.call(t.querySelectorAll("select")).forEach((function(r){r.addEventListener("change",(function(r){var a,l;e(t,n,function(e,t,n){var r={filters:{}};return n.forEach((function(e){"rows"===e.name||"cols"===e.name?r[e.name]=e.value:r.filters[e.name]=e.value})),"rowscols"===t&&e.id.forEach((function(t,n){t!==r.rows&&t!==r.cols?void 0===r.filters[t]&&(r.filters[t]=e.Dimension(n).id[0]):delete r.filters[t]})),r}(n,r.target.parentElement.getAttribute("id"),(a=t,l=[],[].slice.call(a.querySelectorAll("select, input")).forEach((function(e){l.push({name:e.name,value:e.value})})),l)),o)}),!1)})),t.querySelector("a").addEventListener("click",(function(){r.cols=y,r.rows=w,e(t,n,r,o)}),!1)}(t,v,function(e,t){if("object"==typeof t)return{rows:t.rows,cols:t.cols,filters:t.filters};var n,r,a={},l=[],i=e.id;if(t){var o="bigger"===t?function(e,t){return e.len<t.len?1:-1}:function(e,t){return e.len>t.len?1:-1};e.Dimension().forEach((function(e,t){l.push({id:i[t],len:e.length})})),l.sort(o),n=l[0].id,r=l[1].id}else n=i[0],r=i[1];return e.Dimension(n).length<e.Dimension(r).length&&(n=r+(r=n,"")),i.forEach((function(t){t!==n&&t!==r&&(a[t]=e.Dimension(t).id[0])})),{rows:n,cols:r,filters:a}}(v,i.preset),d):o("dimerror")}else o("jsonerror")}else o("selerror");else o("urierror")},e.toCSV=function(e,t){if(void 0===e)return null;void 0===t&&(t={});var a=!1,l=!0===t.rich,i=t.content||"label",o=t.field||"label",u=l?"value":t.vlabel||"Value",c=l?"status":t.slabel||"Status",f=!0===t.status,d=t.na||"n/a",h=t.delimiter||",",v=t.separator||"|",p=";"===h?t.decimal||",":t.decimal||".",b=!0===t.array,y=n(e,t.dsid||0),g=b?[]:"",m=b?[]:"",w=b?function(e){g.push(e)}:function(e){g+=e+"\n"},O=b?function(e){m.push(e)}:function(e){m+=e+"\n"};if(!r(y))return null;l?f=null!==y.status:"[id] label"===i&&(a=!0,i="id");var E=y.toTable({vlabel:u,slabel:c,status:f,field:l?"id":o,content:l||a?"id":i,type:"array"}),S=E[0].indexOf("id"===o?"value":u),A=f?E[0].indexOf("id"===o?"status":c):-1;return E.forEach((function(e,t){e.forEach((function(n,r){var l,i=y.Dimension(r);t&&r===S?null===n?e[r]=s(d,h):"."!==p&&(e[r]=String(e[r]).replace(".",p)):t&&r===A&&null===n?e[r]="":(a&&t&&(l=i.Category(e[r]).label,e[r]="["+e[r]+"] "+l),e[r]=s(e[r],h))})),w(e.join(h))})),l&&(O("jsonstat"+h+p+h+v),["label","source","updated","href"].forEach((function(e){y[e]&&O(e+h+s(y[e],h))})),y.id.forEach((function(e,t){var n=[],r=y.Dimension(t),a=r.role,l=!1,i="";i+="dimension"+h+s(e,h)+h+s(r.label,h)+h+r.length,"metric"===a&&r.__tree__.category.unit&&(l=!0),r.id.forEach((function(e,t){var a=[],o=r.Category(t);i+=h+s(e,h)+h+s(o.label,h),l&&(a.push(o.unit.hasOwnProperty("decimals")?o.unit.decimals:""),a.push(o.unit.label||""),o.unit.symbol&&(a.push(o.unit.symbol),a.push(o.unit.position)),n.push(s(a.join(v),h)))})),null!==a&&"classification"!==a&&(i+=h+r.role,l&&(i+=h+n.join(h))),O(i)})),g=b?m.concat(["data"],g):m+"data\n"+g),g},e.version="3.4.0",e}({},JSONstat);
package/import.mjs CHANGED
@@ -1,2 +1,2 @@
1
- // jsonstat-suite v3.3.0 Copyright 2022 Xavier Badosa https://jsonstat.com
2
- function e(r,i){var l,a,s,o,u=function(e,r,i){var l,a=[];if(i&&!n(i.name)&&(i=null),"string"==typeof e&&(e=[e]),Array.isArray(e)||t(e)){if(e.length===r)return i&&-1===e.findIndex((function(e){return null==e}))?i.from(e):e;if(1===e.length){for(l=0;l<r;l++)a.push(e[0]);return a}}for(l=0;l<r;l++){var s=void 0===e[l]?null:e[l];a.push(s)}return a};if(this.length=0,this.id=[],null!=r)switch(this.class=r.class||"bundle",this.class){case"bundle":var c=[],f=0;if(this.error=null,this.length=0,null===r||"object"!=typeof r)return void(this.class=null);if(r.hasOwnProperty("error"))return void(this.error=r.error);if("dataset"===r.class||"collection"===r.class||"dimension"===r.class)return new e(r);for(a in r)f++,c.push(a);this.__tree__=r,this.length=f,this.id=c;break;case"dataset":r.hasOwnProperty("__tree__")?this.__tree__=l=r.__tree__:this.__tree__=l=r,this.label=l.label||null,this.note=l.note||null,this.link=l.link||null,this.href=l.href||null,this.updated=l.updated||null,this.source=l.source||null,this.extension=l.extension||null;var h,d=0,v=l.size||l.dimension&&l.dimension.size;if(this.size=v,this.value=l.hasOwnProperty("value")&&null!==l.value&&0!==l.value.length?l.value:{},Array.isArray(this.value)||t(this.value))d=this.value.length;else{var p=1;for(h=v.length;h--;)p*=v[h];d=p}if(this.value=u(this.value,d,i),this.status=l.hasOwnProperty("status")?u(l.status,d):null,l.hasOwnProperty("dimension")){var y=l.dimension,b=l.role||!l.version&&y.role||null,g=l.id||y.id,m=v.length,_=function(e){b.hasOwnProperty(e)||(b[e]=null)};if(!Array.isArray(g)||!Array.isArray(v)||g.length!=m)return;if(this.length=m,this.id=g,b&&(_("time"),_("geo"),_("metric"),_("classification")),b&&null===b.classification){var w=[],O=["time","geo","metric"],x=function(e,t){for(var n=t.length;n--;)if(e===t[n])return!0;return!1};for(h=0;h<3;h++){var A=b[O[h]];null!==A&&(w=w.concat(A))}for(b.classification=[],h=0;h<m;h++)x(g[h],w)||b.classification.push(g[h]);0===b.classification.length&&(b.classification=null)}this.role=b,this.n=d;for(var E=0,S=this.length;E<S;E++)if(y[g[E]].category.hasOwnProperty("index")){if(Array.isArray(y[g[E]].category.index)){var D={},j=y[g[E]].category.index;for(s=j.length,o=0;o<s;o++)D[j[o]]=o;y[g[E]].category.index=D}}else{var P=0;for(a in y[g[E]].category.index={},y[g[E]].category.label)y[g[E]].category.index[a]=P++}}else this.length=0;break;case"dimension":if(!r.hasOwnProperty("__tree__"))return new e({version:"2.0",class:"dataset",dimension:{d:r},id:["d"],size:[function(e){var t=void 0===e.index?e.label:e.index;return Array.isArray(t)?t.length:Object.keys(t).length}(r.category)],value:[null]}).Dimension(0);var k=[],z=(l=r.__tree__).category;if(!l.hasOwnProperty("category"))return;if(!z.hasOwnProperty("label"))for(a in z.label={},z.index)z.label[a]=a;for(a in z.index)k[z.index[a]]=a;this.__tree__=l,this.label=l.label||null,this.note=l.note||null,this.link=l.link||null,this.href=l.href||null,this.id=k,this.length=k.length,this.role=r.role,this.hierarchy=z.hasOwnProperty("child"),this.extension=l.extension||null;break;case"category":var C=r.child;this.id=C,this.length=null===C?0:C.length,this.index=r.index,this.label=r.label,this.note=r.note||null,this.unit=r.unit,this.coordinates=r.coord;break;case"collection":if(this.length=0,this.label=r.label||null,this.note=r.note||null,this.link=r.link||null,this.href=r.href||null,this.updated=r.updated||null,this.source=r.source||null,this.extension=r.extension||null,null!==this.link&&r.link.item){var N=r.link.item;if(this.length=Array.isArray(N)?N.length:0,this.length)for(o=0;o<this.length;o++)this.id[o]=N[o].href}}}function t(e){return"[object ArrayBuffer]"===Object.prototype.toString.call(e.buffer)}function n(e){return-1!==["Int8Array","Uint8Array","Uint8ClampedArray","Int16Array","Uint16Array","Int32Array","Uint32Array","Float32Array","Float64Array","BigInt64Array","BigUint64Array"].indexOf(e)}function r(e){if(!e.ok)throw new Error(e.status+" "+e.statusText);return e.json()}function i(t,n,i){var l="object"==typeof n?n:null;return"function"!=typeof i&&(i=null),i||"function"!=typeof n||(i=n),"object"==typeof t?new e(t,i):"version"===t?"1.4.2":fetch?fetch(t,l).then(r).then((function(t){return new e(t,i)})):void 0}function l(e,t){return null==e?null:("string"!=typeof e&&void 0!==e.length||(e=i(e)),0===e.length||"dataset"!==e.class&&"collection"!==e.class&&"bundle"!==e.class?null:"dataset"===e.class?e:e.Dataset(t))}function a(e){if(null===e||0===e.length||"dataset"!==e.class)return!1;for(var t=e.length,n=1;t--;)n*=e.Dimension(t).length;return n===e.n}function s(e,t,n){var r,i,l,a,s;return(t.label||n).capitalize()+(i=t,s="",(r=e)&&"metric"===r.role&&i.unit&&(l=i.unit.hasOwnProperty("label")?i.unit.label:"")+(a=i.unit.hasOwnProperty("symbol")?i.unit.symbol:"")!==""&&(s=" ("+(s=""===a?l:""===l?a:"start"===i.unit.position?a+l:l+" "+a)+")"),s)}function o(e,t,n){var r,i='<select name="'+t+'">',l=[];if(null!==n[1]){if(r=e.id,l=e.Dimension(),2===r.length)return(e.Dimension(n[0]).label||n[0]).capitalize()}else{var a=e.Dimension(t);if(r=a.id,l=a.Category(),1===r.length)return}return r.forEach((function(e,t){var r=e!==n[0]?"":'selected="selected" ';null!==n[1]&&e===n[1]||(i+="<option "+r+'value="'+e+'">'+s(a,l[t],e)+"</option>")})),i+="</select>"}function u(e,t,n){function r(e){void 0!==t?t.innerHTML=i[e]:window.alert(i[e])}if(void 0!==e)if(void 0!==t){void 0===n&&(n={});var i=void 0===n.i18n||void 0===n.i18n.msgs?{urierror:"tbrowser: A valid JSON-stat input must be specified.",selerror:"tbrowser: A valid selector must be specified.",jsonerror:"The request did not return a valid JSON-stat dataset.",dimerror:"Only one dimension was found in the dataset. At least two are required.",dataerror:"Selection returned no data!",source:"Source",filters:"Filters",constants:"Constants",rc:"Rows &amp; Columns",na:"n/a"}:n.i18n.msgs,u=void 0===n.i18n||void 0===n.i18n.locale?"en-US":n.i18n.locale,c=n.dsid||0,f=n.status||!1,h=n.tblclass||"",d=n.nonconst||!1,v=l(e,c);if(a(v)){if(d)var p=function(e){var t=0,n=e.size.slice(0),r=[];return n.forEach((function(n,i){var l=i-t,a=e.Dimension(l);1===n&&(delete e.__tree__.dimension[e.id[l]],e.size.splice(l,1),e.id.splice(l,1),e.length--,t++,r.push(a.label.capitalize()+": "+a.Category(0).label.capitalize()))})),r}(v);1!==v.length?function e(t,n,r,l){var a="",c="",h="",v="",y=r.rows,b=n.Dimension(y),g=b.id,m=r.cols,_=n.Dimension(m),w=_.id,O=n.role&&n.role.metric?n.role.metric[0]:null,x=null!==O?n.Dimension(O):null,A=function(e){return e.hasOwnProperty("unit")&&e.unit&&e.unit.hasOwnProperty("decimals")?e.unit.decimals:null},E=r.filter,S=JSON.parse(JSON.stringify(E)),D=[],j="",P="",k=n.source?i.source+": "+n.source:"",z=null!==n.label?'<span class="label">'+n.label.capitalize()+"</span>":"";for(var C in d&&p.length&&(z='<span class="label">'+p.join(". ")+"</span>"),""!==k&&"."!==k.slice(-1)&&(k+="."),h+="<caption>"+z+"<form>",E){var N=n.Dimension(C),T=N.label?N.label.capitalize():C.capitalize();N.length>1?j+="<p>"+o(n,C,[E[C],null])+" <strong>"+T+"</strong></p>":D.push({label:T,value:s(N,N.Category(0)),name:C,id:N.id[0]})}""!==j&&(j='<fieldset id="filters"><legend>'+i.filters+"</legend>"+j+"</fieldset>"),D.forEach((function(e){P+="<p>"+e.value+" <strong>"+e.label+'</strong></p><input type="hidden" name="'+e.name+'" value="'+e.id+'" />'})),""!==P&&(P='<fieldset id="constants"><legend>'+i.constants+"</legend>"+P+"</fieldset>"),h+=P+j+'<fieldset id="rowscols"><legend>'+i.rc+"</legend>"+o(n,"rows",[y,m])+" <a>&#x2194;</a> "+o(n,"cols",[m,y])+"</fieldset></form></caption>",v+="<tbody>";var R=Number.toLocaleString&&"none"!==u?function(e,t){return null===t?e.toLocaleString(u):e.toLocaleString(u,{minimumFractionDigits:t,maximumFractionDigits:t})}:function(e,t){return null===t?e:e.toFixed(t)};if(g.forEach((function(e){S[y]=e;var t=n.Data(S),r=function(e,t){var n,r=m!==O?null===x?null:A(x.Category(S[O])):A(_.Category(t));null!==e.value?(n=R(e.value,r),f&&null!==e.status&&(n+=" ("+e.status+")")):n=e.status||i.na,v+="<td>"+n+"</td>"};null!==t?(v+='<tr><th scope="row">'+s(b,b.Category(e))+"</th>",Array.isArray(t)?t.forEach((function(e,t){r(e,t)})):r(t,0),v+="</tr>"):v="ERROR"})),"ERROR"===v)return i.dataerror;v+="</tbody>",a+="<thead><tr><th></th>",w.forEach((function(e){a+='<th scope="col">'+s(_,_.Category(e))+"</th>"})),a+="</tr></thead>",""!==k&&(c='<tfoot><tr><td colspan="'+(w.length+1)+'">'+k+"</td></tr></tfoot>"),t.innerHTML='<table class="'+l+'">'+h+a+v+c+"</table>",[].slice.call(t.querySelectorAll("select")).forEach((function(r){r.addEventListener("change",(function(r){var i,a;e(t,n,function(e,t,n){var r={filter:{}};return n.forEach((function(e){"rows"===e.name||"cols"===e.name?r[e.name]=e.value:r.filter[e.name]=e.value})),"rowscols"===t&&e.id.forEach((function(t,n){t!==r.rows&&t!==r.cols?void 0===r.filter[t]&&(r.filter[t]=e.Dimension(n).id[0]):delete r.filter[t]})),r}(n,r.target.parentElement.getAttribute("id"),(i=t,a=[],[].slice.call(i.querySelectorAll("select, input")).forEach((function(e){a.push({name:e.name,value:e.value})})),a)),l)}),!1)})),t.querySelector("a").addEventListener("click",(function(){r.cols=y,r.rows=m,e(t,n,r,l)}),!1)}(t,v,function(e,t){var n,r,i={},l=[],a=e.id;if(t){var s="bigger"===t?function(e,t){return e.len<t.len?1:-1}:function(e,t){return e.len>t.len?1:-1};e.Dimension().forEach((function(e,t){l.push({id:a[t],len:e.length})})),l.sort(s),n=l[0].id,r=l[1].id}else n=a[0],r=a[1];return e.Dimension(n).length<e.Dimension(r).length&&(n=r+(r=n,"")),a.forEach((function(t){t!==n&&t!==r&&(i[t]=e.Dimension(t).id[0])})),{rows:n,cols:r,filter:i}}(v,n.preset),h):r("dimerror")}else r("jsonerror")}else r("selerror");else r("urierror")}function c(e,t){if(void 0===e)return null;void 0===t&&(t={});var n="",r="",i="",s=0,o=t.na||"n/a",u=t.dsid||0,c=t.vlabel||null,f=t.slabel||null,h=t.counter||!1,d=t.tblclass||"",v=t.numclass||"",p=t.valclass||"",y=t.status||!1,b=t.locale||"en-US",g=t.source||"Source",m=l(e,u),_=m.role&&m.role.metric?m.id.indexOf(m.role.metric[0]):null,w=m.Dimension({role:"metric"}),O={},x=Number.toLocaleString&&"none"!==b?function(e,t){return null===t?e.toLocaleString(b):e.toLocaleString(b,{minimumFractionDigits:t,maximumFractionDigits:t})}:function(e,t){return null===t?e:e.toFixed(t)},A=function(e,t){var i=null;e.forEach((function(e,l){var a=D===l?' class="'+v+" "+p+'"':"",s=o;t?(_===l&&(i=O[e]),null!==e&&(s=D===l?x(e,i):e),r+="<td"+a+">"+s+"</td>"):n+="<th"+a+">"+e+"</th>"}))},E=h?function(e,t){t?r+='<tr><td class="'+v+'">'+t+"</td>":n+='<th class="'+v+'">#</th>',A(e,t),r+="</tr>"}:function(e,t){r+="<tr>",A(e,t),r+="</tr>"};if(!a(m))return null;w&&w[0].Category().forEach((function(e){var t=e.unit&&e.unit.hasOwnProperty("decimals")?e.unit.decimals:null;O[e.label]=t}));var S=m.toTable({status:y,vlabel:c,slabel:f}),D=S[0].length-1;return S.forEach((function(e,t){E(e,t)})),m.source&&(s=m.length+1,h&&s++,y&&s++,"."!==(g+=": "+m.source).slice(-1)&&(g+="."),i='<tfoot><td colspan="'+s+'">'+g+"</td></tfoot>"),'<table class="'+d+'"><caption>'+(t.caption||m.label||"")+"</caption><thead><tr>"+n+"</tr></thead><tbody>"+r+"</tbody>"+i+"</table>"}function f(e,t){var n={};return Array.isArray(e[t])?(e[t].forEach((function(e,t){null!==e&&(n[String(t)]=e)})),n):e[t]}function h(e,t){if(void 0===e)return null;void 0===t&&(t={}),"boolean"!=typeof t.ovalue&&(t.ovalue=!1),"boolean"!=typeof t.ostatus&&(t.ostatus=!1),"boolean"!=typeof t.instance&&(t.instance=!1);var n=t.vlabel||"Value",r=t.slabel||"Status",l=t.type||"array",a=t.label||"",s=t.header||null,o=[],u=[],c=[],h=[],d={},v={},p=function(e,t){for(var n=1,r=0,i=0;i<O;i++)r+=(n*=i>0?t[O-i]:1)*e[O-i-1];return r},y=function(){var t=e[x][n];c[p(A,u)]=isNaN(t)?null:t};switch(l){case"array":e=function(e){for(var t=e[0],n=e.slice(1),r=[],i=0,l=n.length;i<l;i++){for(var a=0,s=t.length,o={};a<s;a++)o[t[a]]=n[i][a];r.push(o)}return r}(e);break;case"object":e=function(e){for(var t=e.cols.map((function(e){return e.id})),n=e.rows,r=[],i=0,l=n.length;i<l;i++){for(var a=0,s=t.length,o={};a<s;a++)o[t[a]]=n[i].c[a].v;r.push(o)}return r}(e)}var b,g=e.length;for(var m in t.hasOwnProperty("drop")&&Array.isArray(t.drop)&&t.drop.length&&e.forEach((function(e){t.drop.forEach((function(t){delete e[t]}))})),e[0])if(m!==n)if(m!==r){if(o.push(m),s)b=s.dimension[m],d[m]=b.category.index;else{d[m]=[];for(var _=0;_<g;_++){var w=e[_][m];-1===d[m].indexOf(w)&&d[m].push(w)}}u.push(d[m].length),v[m]={label:s?b.label:m,category:{index:d[m]}},s&&(v[m].category.label=b.category.label,b.category.unit&&(v[m].category.unit=b.category.unit))}else y=function(){var t=e[x][n],i=e[x][r];c[p(A,u)]=isNaN(t)?null:t,h[p(A,u)]=""===i?null:i};for(var O=o.length,x=0;x<g;x++){for(var A=[],E=0;E<O;E++){var S=o[E];A.push(d[S].indexOf(e[x][S]))}y()}var D={version:"2.0",class:"dataset",value:c,dimension:v,id:o,size:u};return a&&(D.label=a),h.length&&(D.status=h),s&&(s.label&&(D.label=s.label),s.source&&(D.source=s.source),s.updated&&(D.updated=s.updated),s.href&&(D.href=s.href),s.role&&(D.role=s.role)),t.ovalue&&(D.value=f(D,"value")),t.ostatus&&D.hasOwnProperty("status")&&(D.status=f(D,"status")),t.instance?i(D):D}function d(e,t){if(void 0===e)return null;void 0===t&&(t={});var n,r,i,l=[],a=null,s=null,o=!1,u={time:[],geo:[],metric:[]},c="jsonstat"===e.substring(0,8),f=c?"value":t.vlabel,d=c?"status":t.slabel,v=c?e.substring(8,9):t.delimiter||",",p=";"===v?t.decimal||",":t.decimal||".",y=function(e,t){t=t||",";for(var n,r,i=new RegExp("(\\"+t+'|\\r?\\n|\\r|^)(?:"([^"]*(?:""[^"]*)*)"|([^"\\'+t+"\\r\\n]*))","gi"),l=[[]],a=null;a=i.exec(e);)(r=a[1]).length&&r!=t&&l.push([]),n=a[2]?a[2].replace(new RegExp('""',"g"),'"'):a[3],l[l.length-1].push(n);return l}(e.trim(),v);if(c){for(p=y[0][1],i=y[0][2],y.shift();"data"!==y[0][0];)l.push(y.shift());y.shift(),s={dimension:{}},l.forEach((function(e){var t,n,r,l,a,c,f,h;switch(e[0]){case"dimension":if(s.dimension[e[1]]={},(l=s.dimension[e[1]]).label=e[2],l.category={},(a=l.category).index=[],n={},r=2*e[3]+3,e.length>=r){for(t=4;t<r;t++)f=e[t],h=e[++t],Object.defineProperty(n,f,{value:h,writable:!0,configurable:!0,enumerable:!0}),a.label=n,a.index.push(f);"string"==typeof e[t]&&-1!==["time","geo","metric"].indexOf(e[t])&&(u[e[t]].push(e[1]),o=!0,"metric"===e[t]&&"string"==typeof e[++t]&&(a.unit={},a.index.forEach((function(n,r){var l=e[t+r].split(i);a.unit[n]={},c=a.unit[n],void 0!==l[0]&&""!==l[0]&&(c.decimals=1*l[0]),void 0!==l[1]&&""!==l[1]&&(c.label=l[1]),void 0!==l[2]&&""!==l[2]&&(c.symbol=l[2]),void 0!==l[1]&&-1!==["start","end"].indexOf(l[3])&&(c.position=l[3])}))))}break;case"label":case"source":case"updated":case"href":s[e[0]]=e[1]||null}})),o&&(u.time.length||delete u.time,u.geo.length||delete u.geo,u.metric.length||delete u.metric,s.role=u)}if(n=y.length,r=y[0].length,void 0!==f){for(;r--;)if(y[0][r]===f){a=r;break}if(null===a)return null}else a=r-1,f=y[0][a];if(","===p)for(r=1;r<n;r++)y[r][a]=Number(y[r][a].replace(",","."));else for(r=1;r<n;r++)y[r][a]=Number(y[r][a]);return h(y,{header:s,vlabel:f,slabel:d,type:"array",label:t.label||"",ovalue:t.ovalue||!1,ostatus:t.ostatus||!1,instance:t.instance||!1})}function v(e,t){if("object"!=typeof e)return null;if(e.hasOwnProperty("data")&&e.hasOwnProperty("meta")&&e.data.hasOwnProperty("dataSets")&&e.data.hasOwnProperty("structures")&&Array.isArray(e.data.structures)&&(e.dataSets=e.data.dataSets,e.structure=e.data.structures[0],e.header=e.meta),!e.hasOwnProperty("dataSets")||!Array.isArray(e.dataSets))return null;if(1!==e.dataSets.length)return null;e.dataSets[0].hasOwnProperty("observations")||function(e){var t=e.dataSets[0],n=t.series,r=e.structure,i=r.dimensions,l={};Object.keys(n).forEach((function(e){var t=n[e].observations;Object.keys(t).forEach((function(r){l[e+":"+r]=t[r].concat(n[e].attributes)}))})),t.observations=l,delete t.series,i.observation=i.series.concat(i.observation),delete i.series,r.attributes.observation=r.attributes.observation.concat(r.attributes.series),delete r.attributes.series}(e),void 0===t?t={ovalue:!1,ostatus:!1,instance:!1}:("boolean"!=typeof t.ovalue&&(t.ovalue=!1),"boolean"!=typeof t.ostatus&&(t.ostatus=!1),"boolean"!=typeof t.instance&&(t.instance=!1));var n=e.structure,r=e.dataSets[0].observations,l=n.attributes.observation,a=n.dimensions;if(!a.hasOwnProperty("observation"))return null;if(a.hasOwnProperty("series")&&Object.keys(a.series).length)return null;var s=1,o=[],u=[],c={},f=[],h={time:[],geo:[]},d=function(){},v=function(e,t){for(var n=e.size,r=n.length-t.length;r--;)t.push(0);for(var i=0,l=n.length,a=0,s=1;i<l;i++)a+=(s*=i>0?n[l-i]:1)*t[l-i-1];return a},p=function(e){if(c[e.id]={label:e.name},e.hasOwnProperty("role"))switch(e.role){case"REF_AREA":h.geo.push(e.id);break;case"TIME_PERIOD":h.time.push(e.id)}Object.defineProperty(c[e.id],"category",{value:{index:[],label:{}},writable:!0,enumerable:!0}),o.push(e.id),u.push(e.values.length),s*=e.values.length;var t=c[e.id].category;e.values.forEach((function(e){t.index.push(e.id),Object.defineProperty(t.label,e.id,{value:e.name,writable:!0,enumerable:!0})}))},y=e.header.links?e.header.links.find((function(e){return"request"===e.rel})):null,b=l.findIndex((function(e){return"OBS_STATUS"===e.id}));-1!==b&&(l[b].values.length?f=l[b].values:b=-1),a.observation.forEach(p),a.hasOwnProperty("dataSet")&&a.dataSet.forEach(p);var g={version:"2.0",class:"dataset",updated:e.header.prepared||null,source:e.header.sender.name||null,label:n.name||null,id:o,size:u,dimension:c,value:t.ovalue?{}:new Array(s).fill(null)};for(var m in y&&(g.link={alternate:[{type:"application/vnd.sdmx.data+json",href:y.href}]}),h.geo.length+h.time.length>0&&(h.time.length||delete h.time,h.geo.length||delete h.geo,g.role=h),-1!==b&&(g.status=t.ostatus?{}:new Array(s).fill(null),g.extension={status:{label:{}}},f.forEach((function(e){g.extension.status.label[e.id]=e.name})),d=t.ostatus?function(){var e=r[m][b];null!==e&&(g.status[v(g,_)]=f[e].id)}:function(){var e=r[m][b];g.status[v(g,_)]=null===e?null:f[e].id}),b++,r){var _=m.split(":");t.ovalue&&null===r[m][0]||(g.value[v(g,_)]=r[m][0]),d()}return t.instance?i(g):g}function p(e,t){if(void 0===e||!Array.isArray(e))return null;var n=JSON.parse(JSON.stringify(e)),r=n[0];if(!r.hasOwnProperty("version")||!r.hasOwnProperty("class")||"dataset"!==r.class)return null;void 0===t&&(t={});var l=void 0===t.label?null:t.label,a=void 0===t.by?null:t.by,s=[];if(null===a){for(var o=1,u=n.length;o<u;o++)s=s.concat(n[o].value);return r.value=s,null!==l&&(r.label=l),r}var c,f,d,v=function(e,t,n){if(Array.isArray(e))e=e.concat(t);else for(var r in t)e[r]=0===t[r]?n:t[r];return e};n.forEach((function(e,t){var n=i(e).toTable({status:!0}),r=e.dimension[a].category;0===t?(s=[n[0]],c=r.index,f=r.label,d=r.unit):(c=function(e,t,n){if(Array.isArray(e))e=e.concat(t);else for(var r in t)e[r]=t[r]+n;return e}(c,r.index,Object.keys(c).length),f=v(f,r.label,t),d=v(d,r.unit,t)),s=s.concat(n.slice(1))}));var p=h(s);return r.value=p.value,r.size=p.size,r.status=p.status||null,r.label=l||"",r.href=null,r.dimension[a].category.index=c||null,r.dimension[a].category.label=f||null,r.dimension[a].category.unit=d||null,r}function y(e,t){return null==e?"":-1!==e.indexOf(t)?'"'+e+'"':e}function b(e,t){if(void 0===e)return null;void 0===t&&(t={});var n=!0===t.rich,r=t.content||"label",i=t.field||"label",s=n?"value":t.vlabel||"Value",o=n?"status":t.slabel||"Status",u=!0===t.status,c=t.na||"n/a",f=t.delimiter||",",h=t.separator||"|",d=";"===f?t.decimal||",":t.decimal||".",v=!0===t.array,p=l(e,t.dsid||0),b=v?[]:"",g=v?[]:"",m=v?function(e){b.push(e)}:function(e){b+=e+"\n"},_=v?function(e){g.push(e)}:function(e){g+=e+"\n"};if(!a(p))return null;n&&(u=null!==p.status);var w=p.toTable({vlabel:s,slabel:o,status:u,field:n?"id":i,content:n?"id":r,type:"array"}),O=w[0].indexOf("id"===i?"value":s),x=u?w[0].indexOf("id"===i?"status":o):-1;return w.forEach((function(e,t){e.forEach((function(n,r){t&&r===O?null===n?e[r]=y(c,f):"."!==d&&(e[r]=String(e[r]).replace(".",d)):e[r]=t&&r===x&&null===n?"":y(e[r],f)})),m(e.join(f))})),n&&(_("jsonstat"+f+d+f+h),["label","source","updated","href"].forEach((function(e){p[e]&&_(e+f+y(p[e],f))})),p.id.forEach((function(e,t){var n=[],r=p.Dimension(t),i=r.role,l=!1,a="";a+="dimension"+f+y(e,f)+f+y(r.label,f)+f+r.length,"metric"===i&&r.__tree__.category.unit&&(l=!0),r.id.forEach((function(e,t){var i=[],s=r.Category(t);a+=f+y(e,f)+f+y(s.label,f),l&&(i.push(s.unit.hasOwnProperty("decimals")?s.unit.decimals:""),i.push(s.unit.label||""),s.unit.symbol&&(i.push(s.unit.symbol),i.push(s.unit.position)),n.push(y(i.join(h),f)))})),null!==i&&"classification"!==i&&(a+=f+r.role,l&&(a+=f+n.join(f))),_(a)})),b=v?g.concat(["data"],b):g+"data\n"+b),b}e.prototype.Item=function(e){if(null===this||"collection"!==this.class||!this.length)return null;if("number"==typeof e)return e>this.length||e<0?null:this.link.item[e];var t,n=[];if("object"==typeof e){if(!e.class&&!e.follow)return null;e.class&&(t="dataset"===e.class&&"boolean"==typeof e.embedded?!0===e.embedded?function(e,t,r){var i=e.link.item[t];r.class===i.class&&i.id&&i.size&&i.dimension&&n.push(i)}:function(e,t,r){var i=e.link.item[t];r.class!==i.class||i.id&&i.size&&i.dimension||n.push(i)}:function(e,t,r){r.class===e.link.item[t].class&&n.push(e.link.item[t])})}else t=function(e,t){n.push(e.link.item[t])};for(var r=0;r<this.length;r++)t(this,r,e);return n},e.prototype.Dataset=function(t){if(null===this)return null;if("dataset"===this.class)return void 0!==t?this:[this];var n,r=[],i=0;if("collection"===this.class){var l=this.Item({class:"dataset",embedded:!0});if(void 0===t){for(n=l.length;i<n;i++)r.push(new e(l[i]));return r}if("number"==typeof t&&t>=0&&t<l.length)return new e(l[t]);if("string"==typeof t)for(n=l.length;i<n;i++)if(l[i].href===t)return new e(l[i]);return null}if("bundle"!==this.class)return null;if(void 0===t){for(n=this.id.length;i<n;i++)r.push(this.Dataset(this.id[i]));return r}if("number"==typeof t){var a=this.id[t];return void 0!==a?this.Dataset(a):null}var s=this.__tree__[t];return void 0===s?null:new e({class:"dataset",__tree__:s})},e.prototype.Dimension=function(t,n){n="boolean"!=typeof n||n;var r,i=[],l=this.id.length,a=function(e,t){if(null!==e)for(var n in e)for(var r=null!==e[n]?e[n].length:0;r--;)if(e[n][r]===t)return n;return null};if(null===this||"dataset"!==this.class)return null;if(void 0===t){for(r=0;r<l;r++)i.push(this.Dimension(this.id[r]));return i}if("number"==typeof t){var s=this.id[t];return void 0!==s?this.Dimension(s,n):null}var o=this.role;if("object"==typeof t){if(t.hasOwnProperty("role")){for(r=0;r<l;r++){var u=this.id[r];a(o,u)===t.role&&i.push(this.Dimension(u,n))}return void 0===i[0]?null:i}return null}var c=this.__tree__.dimension;if(void 0===c)return null;var f=c[t];return void 0===f?null:n?new e({class:"dimension",__tree__:f,role:a(o,t)}):function(e,t){var n=[];for(var r in e)n[e[r]]=t[r];return n}(f.category.index,f.category.label)},e.prototype.Category=function(t){if(null===this||"dimension"!==this.class)return null;if(void 0===t){for(var n=[],r=0,i=this.id.length;r<i;r++)n.push(this.Category(this.id[r]));return n}if("number"==typeof t){var l=this.id[t];return void 0!==l?this.Category(l):null}var a=this.__tree__.category;if(void 0===a)return null;var s=a.index[t];if(void 0===s)return null;var o=a.unit&&a.unit[t]||null,u=a.coordinates&&a.coordinates[t]||null,c=a.child&&a.child[t]||null,f=a.note&&a.note[t]||null;return new e({class:"category",index:s,label:a.label[t],note:f,child:c,unit:o,coord:u})},e.prototype.Dice=function(n,r,i){var l,a,s,o,u=function(e,t){return e.hasOwnProperty(t)&&!!e[t]};if(null===this||"dataset"!==this.class)return null;if("object"!=typeof n)return this;"object"!=typeof r?("boolean"==typeof r&&!0===r&&(l=!0),"boolean"==typeof i&&!0===i||(i=!1)):(l=u(r,"clone"),i=u(r,"drop"),a=u(r,"stringify"),s=u(r,"ovalue"),o=u(r,"ostatus"));var c,f=this.value,h=l?new e(JSON.parse(JSON.stringify(this))):this,d=h.status,v=[],p=[],y=function(e,t){var n,r,i,l=(n=e,r=t,i={},Array.isArray(n[r])?(n[r].forEach((function(e,t){null!==e&&(i[String(t)]=e)})),i):n[r]);delete e[t],e[t]=l};Array.isArray(n)&&(n=function(e){var t={};return e.forEach((function(e){t[e[0]]=e[1]})),t}(n)),null===n&&(n={});var b=Object.keys(n);return b.length>0&&(b.forEach((function(e){var t=n[e];Array.isArray(t)||(n[e]=[t]),0===n[e].length&&delete n[e]})),i&&(n=function(e){var t={};return Object.keys(e).forEach((function(n){t[n]=h.Dimension(n).id.filter((function(t){return-1===e[n].indexOf(t)}))})),t}(n)),h.toTable({type:"arrobj",content:"id",status:!0}).forEach((function(e,t){var r=[];b.forEach((function(t){var i=n[t],l=[];i.forEach((function(n){l.push(e[t]===n)})),r.push(-1!==l.indexOf(!0))})),-1===r.indexOf(!1)&&(v.push(e.value),p.push(e.status))})),b.forEach((function(e){var t=h.Dimension(e).id,r=0,i={};h.size[h.id.indexOf(e)]=n[e].length,t.forEach((function(t){-1!==n[e].indexOf(t)&&(i[t]=r,r++)})),h.__tree__.dimension[e].category.index=i})),h.n=v.length,h.value=h.__tree__.value=t(f)?function(e,t){return t.from(e)}(v,f.constructor):v,h.status=h.__tree__.status=null!==d?p:null),a?((c=h.__tree__).hasOwnProperty("id")||(c.version="2.0",c.hasOwnProperty("class")||(c.class="dataset"),c.id=c.dimension.id,c.size=c.dimension.size,delete c.dimension.id,delete c.dimension.size,c.dimension.hasOwnProperty("role")&&(c.role=c.dimension.role,delete c.dimension.role)),c.hasOwnProperty("status")&&-1!==["null","{}","[]"].indexOf(JSON.stringify(c.status))&&delete c.status,c.hasOwnProperty("role")&&(delete c.role.classification,["geo","time","metric"].forEach((function(e){null===c.role[e]&&delete c.role[e]}))),s&&y(c,"value"),o&&c.hasOwnProperty("status")&&y(c,"status"),JSON.stringify(c)):h},e.prototype.Slice=function(e){if(null===this||"dataset"!==this.class)return null;if(void 0===e)return this;if(!Array.isArray(e)){var t,n=[];for(t in e)n.push([t,e[t]]);e=n}return this.Dice(e.map((function(e){return[e[0],[e[1]]]})))},e.prototype.Data=function(e,t){var n,r,i=[],l=function(e){for(var t in e)if(e.hasOwnProperty(t))return t};if(null===this||"dataset"!==this.class)return null;if(void 0===e){for(r=this.value.length,n=0;n<r;n++)i.push(this.Data(n));return i}if("boolean"!=typeof t&&(t=!0),"number"==typeof e){var a=this.value[e];return void 0===a?null:t?{value:a,status:this.status?this.status[e]:null}:a}var s="object",o=this.__tree__,u=o.size||o.dimension&&o.dimension.size,c=u.length;if(Array.isArray(e)){if(!Array.isArray(e[0])){if(this.length!==e.length)return null;var f=1,h=0,d=[],v=[];for(n=0;n<c;n++)if(void 0!==e[n]){if("number"!=typeof e[n]||e[n]>=u[n])return null;h+=(f*=n>0?u[c-n]:1)*e[c-n-1]}else d.push(n),v.push(u[n]);if(d.length>1)return null;if(1===d.length){for(var p=0,y=v[0];p<y;p++){var b=[];for(n=0;n<c;n++)n!==d[0]?b.push(e[n]):b.push(p);i.push(this.Data(b,t))}return i}return t?{value:this.value[h],status:this.status?this.status[h]:null}:this.value[h]}s="array"}var g=function(e,t,n){var r,i=[],a={},s=e.dimension,o=e.id||s.id,u=e.size||s&&s.size;if("array"===n){for(r=t.length;r--;)a[t[r][0]]=t[r][1];t=a}for(var c=0,f=o.length;c<f;c++){var h=o[c],d=t[h];i.push("string"==typeof d?d:1===u[c]?l(s[h].category.index):null)}return i}(o,e,s),m=[],_=o.dimension,w=o.id||_.id;for(n=0,r=g.length;n<r;n++)m.push(_[w[n]].category.index[g[n]]);return this.Data(m,t)},e.prototype.toTable=function(e,t){if(null===this||"dataset"!==this.class)return null;1==arguments.length&&"function"==typeof e&&(t=e,e=null),"arrobj"!==(e=e||{field:"label",content:"label",vlabel:"Value",slabel:"Status",type:"array",status:!1,unit:!1,by:null,prefix:"",drop:[],meta:!1,comma:!1,bylabel:!1}).type&&"objarr"!==e.type||void 0!==e.field||(e.field="id");var r,i,l,a,s,o,u,c,f,h="id"===e.field,d=function(e){return(h?"value":e)||"Value"},v=function(e){return(h?"status":e)||"Status"},p=this.__tree__,y=!0===e.status;if("function"==typeof t){r=this.toTable(e);var b=[],g="array"!==e.type?0:1;for(s=(U="object"!==e.type?r.slice(g):r.rows.slice(0)).length,i=0;i<s;i++){var m=t.call(this,U[i],i);void 0!==m&&b.push(m)}return"object"===e.type?{cols:r.cols,rows:b}:("array"===e.type&&b.unshift(r[0]),b)}if("arrobj"===e.type||"objarr"===e.type){var _=[],w=p.role&&p.role.metric,O=function(){},x={},A=this,E=A.id,S=e.by&&-1!==E.indexOf(e.by)?e.by:null,D=!0===e.meta,j=void 0!==e.drop&&Array.isArray(e.drop)?e.drop:[],P=!0===e.comma,k=!0===e.bylabel,z=A.value.constructor,C=function(t){var r,i={},l=d(e.vlabel);return"objarr"===e.type&&(r=null===S&&n(z.name)?function(e){i[e]=e===l?z.from(t,(function(t){return t[e]})):t.map((function(t){return t[e]}))}:function(e){i[e]=t.map((function(t){return t[e]}))},Object.keys(t[0]).forEach(r),t=i),D?(i={},E.forEach((function(e){var t=A.Dimension(e);i[e]={label:t.label,role:t.role,categories:{id:t.id,label:A.Dimension(e,!1)}}})),{meta:{label:A.label,source:A.source,updated:A.updated,id:E,status:y,unit:e.unit,by:S,bylabel:k,drop:null!==S&&j.length>0?j:null,prefix:null!==S?B||"":null,comma:P,dimensions:i},data:t}):t};S&&(e.field="id");var N=(r=this.toTable({field:e.field,vlabel:e.vlabel,slabel:e.slabel,content:e.content,status:y})).shift();if(null===S&&e.unit&&w){if("id"!==e.content)for(var T=w.length;T--;){var R=this.Dimension(w[T]);x[w[T]]={};for(var F=R.length;F--;)x[w[T]][R.Category(F).label]=R.id[F]}O=function(t,n){if(-1!==w.indexOf(t)){var r=p.dimension[t].category;r.unit?I.unit=r.unit["id"!==e.content?x[t][n]:n]:I.unit=null}},e.unit=!0}else e.unit=!1;for(s=r.length,i=0;i<s;i++){var I={};for(l=r[i].length;l--;)I[N[l]]=r[i][l],O(N[l],r[i][l]);_.push(I)}if(P&&_.forEach((function(e){null!==e.value&&(e.value=(""+e.value).replace(".",","))})),null!==S){var J,L={},U=[],q={},B=void 0!==e.prefix?e.prefix:"";j.forEach((function(e,t){(!A.Dimension(e)||A.Dimension(e).length>1)&&(j[t]="")}));var V=E.filter((function(e){return e!==S&&-1===j.indexOf(e)})),M=A.Dimension(S),H=function(e,t){var n=[];return t.forEach((function(t){n.push(e[t])})),n.join("\t")},G=function(e,t){var n={};return t.forEach((function(t){n[t]=e[t]})),n};for(var K in"id"!==e.content?k?J=function(e,t,n){e[t][B+n[S]]=n.value}:(M.Category().forEach((function(e,t){q[e.label]=M.id[t]})),J=function(e,t,n){e[t][B+q[n[S]]]=n.value}):J=function(e,t,n){e[t][B+n[S]]=n.value},_.forEach((function(e){var t=H(e,V);void 0===L[t]&&(L[t]=G(e,V)),J(L,t,e,S)})),L)U.push(L[K]);return y=!1,C(U)}return C(_)}if("object"===e.type){var Q="number"==typeof this.value[0]||null===this.value[0]?"number":"string";o=function(e,t){var n=h&&e||t||e;le.push({id:e,label:n,type:"string"})},u=function(e,t,n){var r=d(e),i=v(t);n&&le.push({id:"status",label:i,type:"string"}),le.push({id:"value",label:r,type:Q})},c=function(e){ge.push({v:e})},f=function(e){ge.push({v:e}),ae.push({c:ge})}}else o=function(e,t){var n=h&&e||t||e;le.push(n)},u=function(e,t,n){var r=d(e),i=v(t);n&&le.push(i),le.push(r),ie.push(le)},c=function(e){ge.push(e)},f=function(e){ge.push(e),ie.push(ge)};var W=p.dimension,X=p.id||W.id,Y=p.size||W.size,Z=X.length;if(Z!=Y.length)return!1;var $=[],ee=1,te=(T=1,[]),ne=[],re=[],ie=[],le=[],ae=[];for(i=0;i<Z;i++){var se=X[i],oe=W[se].label;o(se,oe),ee*=Y[i],T*=Y[i];var ue=[];for(l=0;l<Y[i];l++)for(var ce in W[X[i]].category.index)if(W[X[i]].category.index[ce]===l){var fe="id"!==e.content&&W[X[i]].category.label?W[X[i]].category.label[ce]:ce;ue.push(fe)}$.push(ue),te.push(T)}for(u(e.vlabel,e.slabel,y),s=$.length,i=0;i<s;i++){for(var he=[],de=0,ve=$[i].length;de<ve;de++)for(var pe=0;pe<ee/te[i];pe++)he.push($[i][de]);ne.push(he)}for(s=ne.length,i=0;i<s;i++){var ye=[],be=0;for(a=0;a<ee;a++)ye.push(ne[i][be]),++be===ne[i].length&&(be=0);re.push(ye)}for(a=0;a<ee;a++){var ge=[];s=ne.length;for(var me=0;me<s;me++)c(re[me][a]);y&&c(this.status?this.status[a]:null),f(this.value[a])}return"object"===e.type?{cols:le,rows:ae}:ie},e.prototype.node=function(){return this.__tree__},e.prototype.toString=function(){return this.class},String.prototype.capitalize=function(){return this.charAt(0).toUpperCase()+this.slice(1)};var g="3.3.0";export{c as datalist,d as fromCSV,v as fromSDMX,h as fromTable,p as join,u as tbrowser,b as toCSV,g as version};
1
+ // jsonstat-suite v3.4.0 Copyright 2023 Xavier Badosa https://jsonstat.com
2
+ function e(r,i){var l,a,s,o,u=function(e,r,i){var l,a=[];if(i&&!n(i.name)&&(i=null),"string"==typeof e&&(e=[e]),Array.isArray(e)||t(e)){if(e.length===r)return i&&-1===e.findIndex((function(e){return null==e}))?i.from(e):e;if(1===e.length){for(l=0;l<r;l++)a.push(e[0]);return a}}for(l=0;l<r;l++){var s=void 0===e[l]?null:e[l];a.push(s)}return a};if(this.length=0,this.id=[],null!=r)switch(this.class=r.class||"bundle",this.class){case"bundle":var c=[],f=0;if(this.error=null,this.length=0,null===r||"object"!=typeof r)return void(this.class=null);if(r.hasOwnProperty("error"))return void(this.error=r.error);if("dataset"===r.class||"collection"===r.class||"dimension"===r.class)return new e(r);for(a in r)f++,c.push(a);this.__tree__=r,this.length=f,this.id=c;break;case"dataset":r.hasOwnProperty("__tree__")?this.__tree__=l=r.__tree__:this.__tree__=l=r,this.label=l.label||null,this.note=l.note||null,this.link=l.link||null,this.href=l.href||null,this.updated=l.updated||null,this.source=l.source||null,this.extension=l.extension||null;var h,d=0,v=l.size||l.dimension&&l.dimension.size;if(this.size=v,this.value=l.hasOwnProperty("value")&&null!==l.value&&0!==l.value.length?l.value:{},Array.isArray(this.value)||t(this.value))d=this.value.length;else{var p=1;for(h=v.length;h--;)p*=v[h];d=p}if(this.value=u(this.value,d,i),this.status=l.hasOwnProperty("status")?u(l.status,d):null,l.hasOwnProperty("dimension")){var y=l.dimension,b=l.role||!l.version&&y.role||null,g=l.id||y.id,m=v.length,_=function(e){b.hasOwnProperty(e)||(b[e]=null)};if(!Array.isArray(g)||!Array.isArray(v)||g.length!=m)return;if(this.length=m,this.id=g,b&&(_("time"),_("geo"),_("metric"),_("classification")),b&&null===b.classification){var w=[],O=["time","geo","metric"],x=function(e,t){for(var n=t.length;n--;)if(e===t[n])return!0;return!1};for(h=0;h<3;h++){var A=b[O[h]];null!==A&&(w=w.concat(A))}for(b.classification=[],h=0;h<m;h++)x(g[h],w)||b.classification.push(g[h]);0===b.classification.length&&(b.classification=null)}this.role=b,this.n=d;for(var E=0,S=this.length;E<S;E++)if(y[g[E]].category.hasOwnProperty("index")){if(Array.isArray(y[g[E]].category.index)){var D={},j=y[g[E]].category.index;for(s=j.length,o=0;o<s;o++)D[j[o]]=o;y[g[E]].category.index=D}}else{var P=0;for(a in y[g[E]].category.index={},y[g[E]].category.label)y[g[E]].category.index[a]=P++}}else this.length=0;break;case"dimension":if(!r.hasOwnProperty("__tree__"))return new e({version:"2.0",class:"dataset",dimension:{d:r},id:["d"],size:[function(e){var t=void 0===e.index?e.label:e.index;return Array.isArray(t)?t.length:Object.keys(t).length}(r.category)],value:[null]}).Dimension(0);var k=[],z=(l=r.__tree__).category;if(!l.hasOwnProperty("category"))return;if(!z.hasOwnProperty("label"))for(a in z.label={},z.index)z.label[a]=a;for(a in z.index)k[z.index[a]]=a;this.__tree__=l,this.label=l.label||null,this.note=l.note||null,this.link=l.link||null,this.href=l.href||null,this.id=k,this.length=k.length,this.role=r.role,this.hierarchy=z.hasOwnProperty("child"),this.extension=l.extension||null;break;case"category":var C=r.child;this.id=C,this.length=null===C?0:C.length,this.index=r.index,this.label=r.label,this.note=r.note||null,this.unit=r.unit,this.coordinates=r.coord;break;case"collection":if(this.length=0,this.label=r.label||null,this.note=r.note||null,this.link=r.link||null,this.href=r.href||null,this.updated=r.updated||null,this.source=r.source||null,this.extension=r.extension||null,null!==this.link&&r.link.item){var N=r.link.item;if(this.length=Array.isArray(N)?N.length:0,this.length)for(o=0;o<this.length;o++)this.id[o]=N[o].href}}}function t(e){return"[object ArrayBuffer]"===Object.prototype.toString.call(e.buffer)}function n(e){return-1!==["Int8Array","Uint8Array","Uint8ClampedArray","Int16Array","Uint16Array","Int32Array","Uint32Array","Float32Array","Float64Array","BigInt64Array","BigUint64Array"].indexOf(e)}function r(e){if(!e.ok)throw new Error(e.status+" "+e.statusText);return e.json()}function i(t,n,i){var l="object"==typeof n?n:null;return"function"!=typeof i&&(i=null),i||"function"!=typeof n||(i=n),"object"==typeof t?new e(t,i):"version"===t?"1.4.2":fetch?fetch(t,l).then(r).then((function(t){return new e(t,i)})):void 0}function l(e,t){return null==e?null:("string"!=typeof e&&void 0!==e.length||(e=i(e)),0===e.length||"dataset"!==e.class&&"collection"!==e.class&&"bundle"!==e.class?null:"dataset"===e.class?e:e.Dataset(t))}function a(e){if(null===e||0===e.length||"dataset"!==e.class)return!1;for(var t=e.length,n=1;t--;)n*=e.Dimension(t).length;return n===e.n}function s(e,t,n){var r,i,l,a,s;return(t.label||n).capitalize()+(i=t,s="",(r=e)&&"metric"===r.role&&i.unit&&(l=i.unit.hasOwnProperty("label")?i.unit.label:"")+(a=i.unit.hasOwnProperty("symbol")?i.unit.symbol:"")!==""&&(s=" ("+(s=""===a?l:""===l?a:"start"===i.unit.position?a+l:l+" "+a)+")"),s)}function o(e,t,n){var r,i='<select name="'+t+'">',l=[];if(null!==n[1]){if(r=e.id,l=e.Dimension(),2===r.length)return(e.Dimension(n[0]).label||n[0]).capitalize()}else{var a=e.Dimension(t);if(r=a.id,l=a.Category(),1===r.length)return}return r.forEach((function(e,t){var r=e!==n[0]?"":'selected="selected" ';null!==n[1]&&e===n[1]||(i+="<option "+r+'value="'+e+'">'+s(a,l[t],e)+"</option>")})),i+="</select>"}function u(e,t,n){function r(e){void 0!==t?t.innerHTML=i[e]:window.alert(i[e])}if(void 0!==e)if(void 0!==t){void 0===n&&(n={});var i=void 0===n.i18n||void 0===n.i18n.msgs?{urierror:"tbrowser: A valid JSON-stat input must be specified.",selerror:"tbrowser: A valid selector must be specified.",jsonerror:"The request did not return a valid JSON-stat dataset.",dimerror:"Only one dimension was found in the dataset. At least two are required.",dataerror:"Selection returned no data!",source:"Source",filters:"Filters",constants:"Constants",rc:"Rows &amp; Columns",na:"n/a"}:n.i18n.msgs,u=void 0===n.i18n||void 0===n.i18n.locale?"en-US":n.i18n.locale,c=n.dsid||0,f=n.status||!1,h=n.tblclass||"",d=n.nonconst||!1,v=l(e,c);if(a(v)){if(d)var p=function(e){var t=0,n=e.size.slice(0),r=[];return n.forEach((function(n,i){var l=i-t,a=e.Dimension(l);1===n&&(delete e.__tree__.dimension[e.id[l]],e.size.splice(l,1),e.id.splice(l,1),e.length--,t++,r.push(a.label.capitalize()+": "+a.Category(0).label.capitalize()))})),r}(v);1!==v.length?function e(t,r,l,a){"function"==typeof n.callback&&n.callback(l);var c="",h="",v="",y="",b=l.rows,g=r.Dimension(b),m=g.id,_=l.cols,w=r.Dimension(_),O=w.id,x=r.role&&r.role.metric?r.role.metric[0]:null,A=null!==x?r.Dimension(x):null,E=function(e){return e.hasOwnProperty("unit")&&e.unit&&e.unit.hasOwnProperty("decimals")?e.unit.decimals:null},S=l.filters,D=JSON.parse(JSON.stringify(S)),j=[],P="",k="",z=r.source?i.source+": "+r.source:"",C=null!==r.label?'<span class="label">'+r.label.capitalize()+"</span>":"";for(var N in d&&p.length&&(C='<span class="label">'+p.join(". ")+"</span>"),""!==z&&"."!==z.slice(-1)&&(z+="."),v+="<caption>"+C+"<form>",S){var T=r.Dimension(N),R=T.label?T.label.capitalize():N.capitalize();T.length>1?P+="<p>"+o(r,N,[S[N],null])+" <strong>"+R+"</strong></p>":j.push({label:R,value:s(T,T.Category(0)),name:N,id:T.id[0]})}""!==P&&(P='<fieldset id="filters"><legend>'+i.filters+"</legend>"+P+"</fieldset>"),j.forEach((function(e){k+="<p>"+e.value+" <strong>"+e.label+'</strong></p><input type="hidden" name="'+e.name+'" value="'+e.id+'" />'})),""!==k&&(k='<fieldset id="constants"><legend>'+i.constants+"</legend>"+k+"</fieldset>"),v+=k+P+'<fieldset id="rowscols"><legend>'+i.rc+"</legend>"+o(r,"rows",[b,_])+" <a>&#x2194;</a> "+o(r,"cols",[_,b])+"</fieldset></form></caption>",y+="<tbody>";var F=Number.toLocaleString&&"none"!==u?function(e,t){return null===t?e.toLocaleString(u):e.toLocaleString(u,{minimumFractionDigits:t,maximumFractionDigits:t})}:function(e,t){return null===t?e:e.toFixed(t)};if(m.forEach((function(e){D[b]=e;var t=r.Data(D),n=function(e,t){var n,r=_!==x?null===A?null:E(A.Category(D[x])):E(w.Category(t));null!==e.value?(n=F(e.value,r),f&&null!==e.status&&(n+=" ("+e.status+")")):n=e.status||i.na,y+="<td>"+n+"</td>"};null!==t?(y+='<tr><th scope="row">'+s(g,g.Category(e))+"</th>",Array.isArray(t)?t.forEach((function(e,t){n(e,t)})):n(t,0),y+="</tr>"):y="ERROR"})),"ERROR"===y)return i.dataerror;y+="</tbody>",c+="<thead><tr><th></th>",O.forEach((function(e){c+='<th scope="col">'+s(w,w.Category(e))+"</th>"})),c+="</tr></thead>",""!==z&&(h='<tfoot><tr><td colspan="'+(O.length+1)+'">'+z+"</td></tr></tfoot>"),t.innerHTML='<table class="'+a+'">'+v+c+y+h+"</table>",[].slice.call(t.querySelectorAll("select")).forEach((function(n){n.addEventListener("change",(function(n){var i,l;e(t,r,function(e,t,n){var r={filters:{}};return n.forEach((function(e){"rows"===e.name||"cols"===e.name?r[e.name]=e.value:r.filters[e.name]=e.value})),"rowscols"===t&&e.id.forEach((function(t,n){t!==r.rows&&t!==r.cols?void 0===r.filters[t]&&(r.filters[t]=e.Dimension(n).id[0]):delete r.filters[t]})),r}(r,n.target.parentElement.getAttribute("id"),(i=t,l=[],[].slice.call(i.querySelectorAll("select, input")).forEach((function(e){l.push({name:e.name,value:e.value})})),l)),a)}),!1)})),t.querySelector("a").addEventListener("click",(function(){l.cols=b,l.rows=_,e(t,r,l,a)}),!1)}(t,v,function(e,t){if("object"==typeof t)return{rows:t.rows,cols:t.cols,filters:t.filters};var n,r,i={},l=[],a=e.id;if(t){var s="bigger"===t?function(e,t){return e.len<t.len?1:-1}:function(e,t){return e.len>t.len?1:-1};e.Dimension().forEach((function(e,t){l.push({id:a[t],len:e.length})})),l.sort(s),n=l[0].id,r=l[1].id}else n=a[0],r=a[1];return e.Dimension(n).length<e.Dimension(r).length&&(n=r+(r=n,"")),a.forEach((function(t){t!==n&&t!==r&&(i[t]=e.Dimension(t).id[0])})),{rows:n,cols:r,filters:i}}(v,n.preset),h):r("dimerror")}else r("jsonerror")}else r("selerror");else r("urierror")}function c(e,t){if(void 0===e)return null;void 0===t&&(t={});var n="",r="",i="",s=0,o=t.na||"n/a",u=t.dsid||0,c=t.vlabel||null,f=t.slabel||null,h=t.counter||!1,d=t.tblclass||"",v=t.numclass||"",p=t.valclass||"",y=t.status||!1,b=t.locale||"en-US",g=t.source||"Source",m=l(e,u),_=m.role&&m.role.metric?m.id.indexOf(m.role.metric[0]):null,w=m.Dimension({role:"metric"}),O={},x=Number.toLocaleString&&"none"!==b?function(e,t){return null===t?e.toLocaleString(b):e.toLocaleString(b,{minimumFractionDigits:t,maximumFractionDigits:t})}:function(e,t){return null===t?e:e.toFixed(t)},A=function(e,t){var i=null;e.forEach((function(e,l){var a=D===l?' class="'+v+" "+p+'"':"",s=o;t?(_===l&&(i=O[e]),null!==e&&(s=D===l?x(e,i):e),r+="<td"+a+">"+s+"</td>"):n+="<th"+a+">"+e+"</th>"}))},E=h?function(e,t){t?r+='<tr><td class="'+v+'">'+t+"</td>":n+='<th class="'+v+'">#</th>',A(e,t),r+="</tr>"}:function(e,t){r+="<tr>",A(e,t),r+="</tr>"};if(!a(m))return null;w&&w[0].Category().forEach((function(e){var t=e.unit&&e.unit.hasOwnProperty("decimals")?e.unit.decimals:null;O[e.label]=t}));var S=m.toTable({status:y,vlabel:c,slabel:f}),D=S[0].length-1;return S.forEach((function(e,t){E(e,t)})),m.source&&(s=m.length+1,h&&s++,y&&s++,"."!==(g+=": "+m.source).slice(-1)&&(g+="."),i='<tfoot><td colspan="'+s+'">'+g+"</td></tfoot>"),'<table class="'+d+'"><caption>'+(t.caption||m.label||"")+"</caption><thead><tr>"+n+"</tr></thead><tbody>"+r+"</tbody>"+i+"</table>"}function f(e,t){var n={};return Array.isArray(e[t])?(e[t].forEach((function(e,t){null!==e&&(n[String(t)]=e)})),n):e[t]}function h(e,t){if(void 0===e)return null;void 0===t&&(t={}),"boolean"!=typeof t.ovalue&&(t.ovalue=!1),"boolean"!=typeof t.ostatus&&(t.ostatus=!1),"boolean"!=typeof t.instance&&(t.instance=!1);var n=t.vlabel||"Value",r=t.slabel||"Status",l=t.type||"array",a=t.label||"",s=t.header||null,o=[],u=[],c=[],h=[],d={},v={},p=function(e,t){for(var n=1,r=0,i=0;i<O;i++)r+=(n*=i>0?t[O-i]:1)*e[O-i-1];return r},y=function(){var t=e[x][n];c[p(A,u)]=isNaN(t)?null:t};switch(l){case"array":e=function(e){for(var t=e[0],n=e.slice(1),r=[],i=0,l=n.length;i<l;i++){for(var a=0,s=t.length,o={};a<s;a++)o[t[a]]=n[i][a];r.push(o)}return r}(e);break;case"object":e=function(e){for(var t=e.cols.map((function(e){return e.id})),n=e.rows,r=[],i=0,l=n.length;i<l;i++){for(var a=0,s=t.length,o={};a<s;a++)o[t[a]]=n[i].c[a].v;r.push(o)}return r}(e)}var b,g=e.length;for(var m in t.hasOwnProperty("drop")&&Array.isArray(t.drop)&&t.drop.length&&e.forEach((function(e){t.drop.forEach((function(t){delete e[t]}))})),e[0])if(m!==n)if(m!==r){if(o.push(m),s)b=s.dimension[m],d[m]=b.category.index;else{d[m]=[];for(var _=0;_<g;_++){var w=e[_][m];-1===d[m].indexOf(w)&&d[m].push(w)}}u.push(d[m].length),v[m]={label:s?b.label:m,category:{index:d[m]}},s&&(v[m].category.label=b.category.label,b.category.unit&&(v[m].category.unit=b.category.unit))}else y=function(){var t=e[x][n],i=e[x][r];c[p(A,u)]=isNaN(t)?null:t,h[p(A,u)]=""===i?null:i};for(var O=o.length,x=0;x<g;x++){for(var A=[],E=0;E<O;E++){var S=o[E];A.push(d[S].indexOf(e[x][S]))}y()}var D={version:"2.0",class:"dataset",value:c,dimension:v,id:o,size:u};return a&&(D.label=a),h.length&&(D.status=h),s&&(s.label&&(D.label=s.label),s.source&&(D.source=s.source),s.updated&&(D.updated=s.updated),s.href&&(D.href=s.href),s.role&&(D.role=s.role)),t.ovalue&&(D.value=f(D,"value")),t.ostatus&&D.hasOwnProperty("status")&&(D.status=f(D,"status")),t.instance?i(D):D}function d(e,t){if(void 0===e)return null;void 0===t&&(t={});var n,r,i,l=[],a=null,s=null,o=!1,u={time:[],geo:[],metric:[]},c="jsonstat"===e.substring(0,8),f=c?"value":t.vlabel,d=c?"status":t.slabel,v=c?e.substring(8,9):t.delimiter||",",p=";"===v?t.decimal||",":t.decimal||".",y=function(e,t){t=t||",";for(var n,r,i=new RegExp("(\\"+t+'|\\r?\\n|\\r|^)(?:"([^"]*(?:""[^"]*)*)"|([^"\\'+t+"\\r\\n]*))","gi"),l=[[]],a=null;a=i.exec(e);)(r=a[1]).length&&r!=t&&l.push([]),n=a[2]?a[2].replace(new RegExp('""',"g"),'"'):a[3],l[l.length-1].push(n);return l}(e.trim(),v);if(c){for(p=y[0][1],i=y[0][2],y.shift();"data"!==y[0][0];)l.push(y.shift());y.shift(),s={dimension:{}},l.forEach((function(e){var t,n,r,l,a,c,f,h;switch(e[0]){case"dimension":if(s.dimension[e[1]]={},(l=s.dimension[e[1]]).label=e[2],l.category={},(a=l.category).index=[],n={},r=2*e[3]+3,e.length>=r){for(t=4;t<r;t++)f=e[t],h=e[++t],Object.defineProperty(n,f,{value:h,writable:!0,configurable:!0,enumerable:!0}),a.label=n,a.index.push(f);"string"==typeof e[t]&&-1!==["time","geo","metric"].indexOf(e[t])&&(u[e[t]].push(e[1]),o=!0,"metric"===e[t]&&"string"==typeof e[++t]&&(a.unit={},a.index.forEach((function(n,r){var l=e[t+r].split(i);a.unit[n]={},c=a.unit[n],void 0!==l[0]&&""!==l[0]&&(c.decimals=1*l[0]),void 0!==l[1]&&""!==l[1]&&(c.label=l[1]),void 0!==l[2]&&""!==l[2]&&(c.symbol=l[2]),void 0!==l[1]&&-1!==["start","end"].indexOf(l[3])&&(c.position=l[3])}))))}break;case"label":case"source":case"updated":case"href":s[e[0]]=e[1]||null}})),o&&(u.time.length||delete u.time,u.geo.length||delete u.geo,u.metric.length||delete u.metric,s.role=u)}if(n=y.length,r=y[0].length,void 0!==f){for(;r--;)if(y[0][r]===f){a=r;break}if(null===a)return null}else a=r-1,f=y[0][a];if(","===p)for(r=1;r<n;r++)y[r][a]=Number(y[r][a].replace(",","."));else for(r=1;r<n;r++)y[r][a]=Number(y[r][a]);return h(y,{header:s,vlabel:f,slabel:d,type:"array",label:t.label||"",ovalue:t.ovalue||!1,ostatus:t.ostatus||!1,instance:t.instance||!1})}function v(e,t){if("object"!=typeof e)return null;if(e.hasOwnProperty("data")&&e.hasOwnProperty("meta")&&e.data.hasOwnProperty("dataSets")&&e.data.hasOwnProperty("structures")&&Array.isArray(e.data.structures)&&(e.dataSets=e.data.dataSets,e.structure=e.data.structures[0],e.header=e.meta),!e.hasOwnProperty("dataSets")||!Array.isArray(e.dataSets))return null;if(1!==e.dataSets.length)return null;e.dataSets[0].hasOwnProperty("observations")||function(e){var t=e.dataSets[0],n=t.series,r=e.structure,i=r.dimensions,l={};Object.keys(n).forEach((function(e){var t=n[e].observations;Object.keys(t).forEach((function(r){l[e+":"+r]=t[r].concat(n[e].attributes)}))})),t.observations=l,delete t.series,i.observation=i.series.concat(i.observation),delete i.series,r.attributes.observation=r.attributes.observation.concat(r.attributes.series),delete r.attributes.series}(e),void 0===t?t={ovalue:!1,ostatus:!1,instance:!1}:("boolean"!=typeof t.ovalue&&(t.ovalue=!1),"boolean"!=typeof t.ostatus&&(t.ostatus=!1),"boolean"!=typeof t.instance&&(t.instance=!1));var n=e.structure,r=e.dataSets[0].observations,l=n.attributes.observation,a=n.dimensions;if(!a.hasOwnProperty("observation"))return null;if(a.hasOwnProperty("series")&&Object.keys(a.series).length)return null;var s=1,o=[],u=[],c={},f=[],h={time:[],geo:[]},d=function(){},v=function(e,t){for(var n=e.size,r=n.length-t.length;r--;)t.push(0);for(var i=0,l=n.length,a=0,s=1;i<l;i++)a+=(s*=i>0?n[l-i]:1)*t[l-i-1];return a},p=function(e){if(c[e.id]={label:e.name},e.hasOwnProperty("role"))switch(e.role){case"REF_AREA":h.geo.push(e.id);break;case"TIME_PERIOD":h.time.push(e.id)}Object.defineProperty(c[e.id],"category",{value:{index:[],label:{}},writable:!0,enumerable:!0}),o.push(e.id),u.push(e.values.length),s*=e.values.length;var t=c[e.id].category;e.values.forEach((function(e){t.index.push(e.id),Object.defineProperty(t.label,e.id,{value:e.name,writable:!0,enumerable:!0})}))},y=e.header.links?e.header.links.find((function(e){return"request"===e.rel})):null,b=l.findIndex((function(e){return"OBS_STATUS"===e.id}));-1!==b&&(l[b].values.length?f=l[b].values:b=-1),a.observation.forEach(p),a.hasOwnProperty("dataSet")&&a.dataSet.forEach(p);var g={version:"2.0",class:"dataset",updated:e.header.prepared||null,source:e.header.sender.name||null,label:n.name||null,id:o,size:u,dimension:c,value:t.ovalue?{}:new Array(s).fill(null)};for(var m in y&&(g.link={alternate:[{type:"application/vnd.sdmx.data+json",href:y.href}]}),h.geo.length+h.time.length>0&&(h.time.length||delete h.time,h.geo.length||delete h.geo,g.role=h),-1!==b&&(g.status=t.ostatus?{}:new Array(s).fill(null),g.extension={status:{label:{}}},f.forEach((function(e){g.extension.status.label[e.id]=e.name})),d=t.ostatus?function(){var e=r[m][b];null!==e&&(g.status[v(g,_)]=f[e].id)}:function(){var e=r[m][b];g.status[v(g,_)]=null===e?null:f[e].id}),b++,r){var _=m.split(":");t.ovalue&&null===r[m][0]||(g.value[v(g,_)]=r[m][0]),d()}return t.instance?i(g):g}function p(e,t){if(void 0===e||!Array.isArray(e))return null;var n=JSON.parse(JSON.stringify(e)),r=n[0];if(!r.hasOwnProperty("version")||!r.hasOwnProperty("class")||"dataset"!==r.class)return null;void 0===t&&(t={});var l=void 0===t.label?null:t.label,a=void 0===t.by?null:t.by,s=[];if(null===a){for(var o=1,u=n.length;o<u;o++)s=s.concat(n[o].value);return r.value=s,null!==l&&(r.label=l),r}var c,f,d,v=function(e,t,n){if(Array.isArray(e))e=e.concat(t);else for(var r in t)e[r]=0===t[r]?n:t[r];return e};n.forEach((function(e,t){var n=i(e).toTable({status:!0}),r=e.dimension[a].category;0===t?(s=[n[0]],c=r.index,f=r.label,d=r.unit):(c=function(e,t,n){if(Array.isArray(e))e=e.concat(t);else for(var r in t)e[r]=t[r]+n;return e}(c,r.index,Object.keys(c).length),f=v(f,r.label,t),d=v(d,r.unit,t)),s=s.concat(n.slice(1))}));var p=h(s);return r.value=p.value,r.size=p.size,r.status=p.status||null,r.label=l||"",r.href=null,r.dimension[a].category.index=c||null,r.dimension[a].category.label=f||null,r.dimension[a].category.unit=d||null,r}function y(e,t){return null==e?"":-1!==e.indexOf(t)?'"'+e+'"':e}function b(e,t){if(void 0===e)return null;void 0===t&&(t={});var n=!1,r=!0===t.rich,i=t.content||"label",s=t.field||"label",o=r?"value":t.vlabel||"Value",u=r?"status":t.slabel||"Status",c=!0===t.status,f=t.na||"n/a",h=t.delimiter||",",d=t.separator||"|",v=";"===h?t.decimal||",":t.decimal||".",p=!0===t.array,b=l(e,t.dsid||0),g=p?[]:"",m=p?[]:"",_=p?function(e){g.push(e)}:function(e){g+=e+"\n"},w=p?function(e){m.push(e)}:function(e){m+=e+"\n"};if(!a(b))return null;r?c=null!==b.status:"[id] label"===i&&(n=!0,i="id");var O=b.toTable({vlabel:o,slabel:u,status:c,field:r?"id":s,content:r||n?"id":i,type:"array"}),x=O[0].indexOf("id"===s?"value":o),A=c?O[0].indexOf("id"===s?"status":u):-1;return O.forEach((function(e,t){e.forEach((function(r,i){var l,a=b.Dimension(i);t&&i===x?null===r?e[i]=y(f,h):"."!==v&&(e[i]=String(e[i]).replace(".",v)):t&&i===A&&null===r?e[i]="":(n&&t&&(l=a.Category(e[i]).label,e[i]="["+e[i]+"] "+l),e[i]=y(e[i],h))})),_(e.join(h))})),r&&(w("jsonstat"+h+v+h+d),["label","source","updated","href"].forEach((function(e){b[e]&&w(e+h+y(b[e],h))})),b.id.forEach((function(e,t){var n=[],r=b.Dimension(t),i=r.role,l=!1,a="";a+="dimension"+h+y(e,h)+h+y(r.label,h)+h+r.length,"metric"===i&&r.__tree__.category.unit&&(l=!0),r.id.forEach((function(e,t){var i=[],s=r.Category(t);a+=h+y(e,h)+h+y(s.label,h),l&&(i.push(s.unit.hasOwnProperty("decimals")?s.unit.decimals:""),i.push(s.unit.label||""),s.unit.symbol&&(i.push(s.unit.symbol),i.push(s.unit.position)),n.push(y(i.join(d),h)))})),null!==i&&"classification"!==i&&(a+=h+r.role,l&&(a+=h+n.join(h))),w(a)})),g=p?m.concat(["data"],g):m+"data\n"+g),g}e.prototype.Item=function(e){if(null===this||"collection"!==this.class||!this.length)return null;if("number"==typeof e)return e>this.length||e<0?null:this.link.item[e];var t,n=[];if("object"==typeof e){if(!e.class&&!e.follow)return null;e.class&&(t="dataset"===e.class&&"boolean"==typeof e.embedded?!0===e.embedded?function(e,t,r){var i=e.link.item[t];r.class===i.class&&i.id&&i.size&&i.dimension&&n.push(i)}:function(e,t,r){var i=e.link.item[t];r.class!==i.class||i.id&&i.size&&i.dimension||n.push(i)}:function(e,t,r){r.class===e.link.item[t].class&&n.push(e.link.item[t])})}else t=function(e,t){n.push(e.link.item[t])};for(var r=0;r<this.length;r++)t(this,r,e);return n},e.prototype.Dataset=function(t){if(null===this)return null;if("dataset"===this.class)return void 0!==t?this:[this];var n,r=[],i=0;if("collection"===this.class){var l=this.Item({class:"dataset",embedded:!0});if(void 0===t){for(n=l.length;i<n;i++)r.push(new e(l[i]));return r}if("number"==typeof t&&t>=0&&t<l.length)return new e(l[t]);if("string"==typeof t)for(n=l.length;i<n;i++)if(l[i].href===t)return new e(l[i]);return null}if("bundle"!==this.class)return null;if(void 0===t){for(n=this.id.length;i<n;i++)r.push(this.Dataset(this.id[i]));return r}if("number"==typeof t){var a=this.id[t];return void 0!==a?this.Dataset(a):null}var s=this.__tree__[t];return void 0===s?null:new e({class:"dataset",__tree__:s})},e.prototype.Dimension=function(t,n){n="boolean"!=typeof n||n;var r,i=[],l=this.id.length,a=function(e,t){if(null!==e)for(var n in e)for(var r=null!==e[n]?e[n].length:0;r--;)if(e[n][r]===t)return n;return null};if(null===this||"dataset"!==this.class)return null;if(void 0===t){for(r=0;r<l;r++)i.push(this.Dimension(this.id[r]));return i}if("number"==typeof t){var s=this.id[t];return void 0!==s?this.Dimension(s,n):null}var o=this.role;if("object"==typeof t){if(t.hasOwnProperty("role")){for(r=0;r<l;r++){var u=this.id[r];a(o,u)===t.role&&i.push(this.Dimension(u,n))}return void 0===i[0]?null:i}return null}var c=this.__tree__.dimension;if(void 0===c)return null;var f=c[t];return void 0===f?null:n?new e({class:"dimension",__tree__:f,role:a(o,t)}):function(e,t){var n=[];for(var r in e)n[e[r]]=t[r];return n}(f.category.index,f.category.label)},e.prototype.Category=function(t){if(null===this||"dimension"!==this.class)return null;if(void 0===t){for(var n=[],r=0,i=this.id.length;r<i;r++)n.push(this.Category(this.id[r]));return n}if("number"==typeof t){var l=this.id[t];return void 0!==l?this.Category(l):null}var a=this.__tree__.category;if(void 0===a)return null;var s=a.index[t];if(void 0===s)return null;var o=a.unit&&a.unit[t]||null,u=a.coordinates&&a.coordinates[t]||null,c=a.child&&a.child[t]||null,f=a.note&&a.note[t]||null;return new e({class:"category",index:s,label:a.label[t],note:f,child:c,unit:o,coord:u})},e.prototype.Dice=function(n,r,i){var l,a,s,o,u=function(e,t){return e.hasOwnProperty(t)&&!!e[t]};if(null===this||"dataset"!==this.class)return null;if("object"!=typeof n)return this;"object"!=typeof r?("boolean"==typeof r&&!0===r&&(l=!0),"boolean"==typeof i&&!0===i||(i=!1)):(l=u(r,"clone"),i=u(r,"drop"),a=u(r,"stringify"),s=u(r,"ovalue"),o=u(r,"ostatus"));var c,f=this.value,h=l?new e(JSON.parse(JSON.stringify(this))):this,d=h.status,v=[],p=[],y=function(e,t){var n,r,i,l=(n=e,r=t,i={},Array.isArray(n[r])?(n[r].forEach((function(e,t){null!==e&&(i[String(t)]=e)})),i):n[r]);delete e[t],e[t]=l};Array.isArray(n)&&(n=function(e){var t={};return e.forEach((function(e){t[e[0]]=e[1]})),t}(n)),null===n&&(n={});var b=Object.keys(n);return b.length>0&&(b.forEach((function(e){var t=n[e];Array.isArray(t)||(n[e]=[t]),0===n[e].length&&delete n[e]})),i&&(n=function(e){var t={};return Object.keys(e).forEach((function(n){t[n]=h.Dimension(n).id.filter((function(t){return-1===e[n].indexOf(t)}))})),t}(n)),h.toTable({type:"arrobj",content:"id",status:!0}).forEach((function(e,t){var r=[];b.forEach((function(t){var i=n[t],l=[];i.forEach((function(n){l.push(e[t]===n)})),r.push(-1!==l.indexOf(!0))})),-1===r.indexOf(!1)&&(v.push(e.value),p.push(e.status))})),b.forEach((function(e){var t=h.Dimension(e).id,r=0,i={};h.size[h.id.indexOf(e)]=n[e].length,t.forEach((function(t){-1!==n[e].indexOf(t)&&(i[t]=r,r++)})),h.__tree__.dimension[e].category.index=i})),h.n=v.length,h.value=h.__tree__.value=t(f)?function(e,t){return t.from(e)}(v,f.constructor):v,h.status=h.__tree__.status=null!==d?p:null),a?((c=h.__tree__).hasOwnProperty("id")||(c.version="2.0",c.hasOwnProperty("class")||(c.class="dataset"),c.id=c.dimension.id,c.size=c.dimension.size,delete c.dimension.id,delete c.dimension.size,c.dimension.hasOwnProperty("role")&&(c.role=c.dimension.role,delete c.dimension.role)),c.hasOwnProperty("status")&&-1!==["null","{}","[]"].indexOf(JSON.stringify(c.status))&&delete c.status,c.hasOwnProperty("role")&&(delete c.role.classification,["geo","time","metric"].forEach((function(e){null===c.role[e]&&delete c.role[e]}))),s&&y(c,"value"),o&&c.hasOwnProperty("status")&&y(c,"status"),JSON.stringify(c)):h},e.prototype.Slice=function(e){if(null===this||"dataset"!==this.class)return null;if(void 0===e)return this;if(!Array.isArray(e)){var t,n=[];for(t in e)n.push([t,e[t]]);e=n}return this.Dice(e.map((function(e){return[e[0],[e[1]]]})))},e.prototype.Data=function(e,t){var n,r,i=[],l=function(e){for(var t in e)if(e.hasOwnProperty(t))return t};if(null===this||"dataset"!==this.class)return null;if(void 0===e){for(r=this.value.length,n=0;n<r;n++)i.push(this.Data(n));return i}if("boolean"!=typeof t&&(t=!0),"number"==typeof e){var a=this.value[e];return void 0===a?null:t?{value:a,status:this.status?this.status[e]:null}:a}var s="object",o=this.__tree__,u=o.size||o.dimension&&o.dimension.size,c=u.length;if(Array.isArray(e)){if(!Array.isArray(e[0])){if(this.length!==e.length)return null;var f=1,h=0,d=[],v=[];for(n=0;n<c;n++)if(void 0!==e[n]){if("number"!=typeof e[n]||e[n]>=u[n])return null;h+=(f*=n>0?u[c-n]:1)*e[c-n-1]}else d.push(n),v.push(u[n]);if(d.length>1)return null;if(1===d.length){for(var p=0,y=v[0];p<y;p++){var b=[];for(n=0;n<c;n++)n!==d[0]?b.push(e[n]):b.push(p);i.push(this.Data(b,t))}return i}return t?{value:this.value[h],status:this.status?this.status[h]:null}:this.value[h]}s="array"}var g=function(e,t,n){var r,i=[],a={},s=e.dimension,o=e.id||s.id,u=e.size||s&&s.size;if("array"===n){for(r=t.length;r--;)a[t[r][0]]=t[r][1];t=a}for(var c=0,f=o.length;c<f;c++){var h=o[c],d=t[h];i.push("string"==typeof d?d:1===u[c]?l(s[h].category.index):null)}return i}(o,e,s),m=[],_=o.dimension,w=o.id||_.id;for(n=0,r=g.length;n<r;n++)m.push(_[w[n]].category.index[g[n]]);return this.Data(m,t)},e.prototype.toTable=function(e,t){if(null===this||"dataset"!==this.class)return null;1==arguments.length&&"function"==typeof e&&(t=e,e=null),"arrobj"!==(e=e||{field:"label",content:"label",vlabel:"Value",slabel:"Status",type:"array",status:!1,unit:!1,by:null,prefix:"",drop:[],meta:!1,comma:!1,bylabel:!1}).type&&"objarr"!==e.type||void 0!==e.field||(e.field="id");var r,i,l,a,s,o,u,c,f,h="id"===e.field,d=function(e){return(h?"value":e)||"Value"},v=function(e){return(h?"status":e)||"Status"},p=this.__tree__,y=!0===e.status;if("function"==typeof t){r=this.toTable(e);var b=[],g="array"!==e.type?0:1;for(s=(U="object"!==e.type?r.slice(g):r.rows.slice(0)).length,i=0;i<s;i++){var m=t.call(this,U[i],i);void 0!==m&&b.push(m)}return"object"===e.type?{cols:r.cols,rows:b}:("array"===e.type&&b.unshift(r[0]),b)}if("arrobj"===e.type||"objarr"===e.type){var _=[],w=p.role&&p.role.metric,O=function(){},x={},A=this,E=A.id,S=e.by&&-1!==E.indexOf(e.by)?e.by:null,D=!0===e.meta,j=void 0!==e.drop&&Array.isArray(e.drop)?e.drop:[],P=!0===e.comma,k=!0===e.bylabel,z=A.value.constructor,C=function(t){var r,i={},l=d(e.vlabel);return"objarr"===e.type&&(r=null===S&&n(z.name)?function(e){i[e]=e===l?z.from(t,(function(t){return t[e]})):t.map((function(t){return t[e]}))}:function(e){i[e]=t.map((function(t){return t[e]}))},Object.keys(t[0]).forEach(r),t=i),D?(i={},E.forEach((function(e){var t=A.Dimension(e);i[e]={label:t.label,role:t.role,categories:{id:t.id,label:A.Dimension(e,!1)}}})),{meta:{label:A.label,source:A.source,updated:A.updated,id:E,status:y,unit:e.unit,by:S,bylabel:k,drop:null!==S&&j.length>0?j:null,prefix:null!==S?B||"":null,comma:P,dimensions:i},data:t}):t};S&&(e.field="id");var N=(r=this.toTable({field:e.field,vlabel:e.vlabel,slabel:e.slabel,content:e.content,status:y})).shift();if(null===S&&e.unit&&w){if("id"!==e.content)for(var T=w.length;T--;){var R=this.Dimension(w[T]);x[w[T]]={};for(var F=R.length;F--;)x[w[T]][R.Category(F).label]=R.id[F]}O=function(t,n){if(-1!==w.indexOf(t)){var r=p.dimension[t].category;r.unit?I.unit=r.unit["id"!==e.content?x[t][n]:n]:I.unit=null}},e.unit=!0}else e.unit=!1;for(s=r.length,i=0;i<s;i++){var I={};for(l=r[i].length;l--;)I[N[l]]=r[i][l],O(N[l],r[i][l]);_.push(I)}if(P&&_.forEach((function(e){null!==e.value&&(e.value=(""+e.value).replace(".",","))})),null!==S){var J,L={},U=[],q={},B=void 0!==e.prefix?e.prefix:"";j.forEach((function(e,t){(!A.Dimension(e)||A.Dimension(e).length>1)&&(j[t]="")}));var V=E.filter((function(e){return e!==S&&-1===j.indexOf(e)})),M=A.Dimension(S);for(var H in"id"!==e.content?k?J=function(e,t,n){e[t][B+n[S]]=n.value}:(M.Category().forEach((function(e,t){q[e.label]=M.id[t]})),J=function(e,t,n){e[t][B+q[n[S]]]=n.value}):J=function(e,t,n){e[t][B+n[S]]=n.value},_.forEach((function(e){var t=function(e,t){var n=[];return t.forEach((function(t){n.push(e[t])})),n.join("\t")}(e,V);void 0===L[t]&&(L[t]=function(e,t){var n={};return t.forEach((function(t){n[t]=e[t]})),n}(e,V)),J(L,t,e,S)})),L)U.push(L[H]);return y=!1,C(U)}return C(_)}if("object"===e.type){var G="number"==typeof this.value[0]||null===this.value[0]?"number":"string";o=function(e,t){var n=h&&e||t||e;re.push({id:e,label:n,type:"string"})},u=function(e,t,n){var r=d(e),i=v(t);n&&re.push({id:"status",label:i,type:"string"}),re.push({id:"value",label:r,type:G})},c=function(e){pe.push({v:e})},f=function(e){pe.push({v:e}),ie.push({c:pe})}}else o=function(e,t){var n=h&&e||t||e;re.push(n)},u=function(e,t,n){var r=d(e),i=v(t);n&&re.push(i),re.push(r),ne.push(re)},c=function(e){pe.push(e)},f=function(e){pe.push(e),ne.push(pe)};var K=p.dimension,Q=p.id||K.id,W=p.size||K.size,X=Q.length;if(X!=W.length)return!1;var Y=[],Z=1,$=(T=1,[]),ee=[],te=[],ne=[],re=[],ie=[];for(i=0;i<X;i++){var le=Q[i];o(le,K[le].label),Z*=W[i],T*=W[i];var ae=[];for(l=0;l<W[i];l++)for(var se in K[Q[i]].category.index)if(K[Q[i]].category.index[se]===l){var oe="id"!==e.content&&K[Q[i]].category.label?K[Q[i]].category.label[se]:se;ae.push(oe)}Y.push(ae),$.push(T)}for(u(e.vlabel,e.slabel,y),s=Y.length,i=0;i<s;i++){for(var ue=[],ce=0,fe=Y[i].length;ce<fe;ce++)for(var he=0;he<Z/$[i];he++)ue.push(Y[i][ce]);ee.push(ue)}for(s=ee.length,i=0;i<s;i++){var de=[],ve=0;for(a=0;a<Z;a++)de.push(ee[i][ve]),++ve===ee[i].length&&(ve=0);te.push(de)}for(a=0;a<Z;a++){var pe=[];s=ee.length;for(var ye=0;ye<s;ye++)c(te[ye][a]);y&&c(this.status?this.status[a]:null),f(this.value[a])}return"object"===e.type?{cols:re,rows:ie}:ne},e.prototype.node=function(){return this.__tree__},e.prototype.toString=function(){return this.class},String.prototype.capitalize=function(){return this.charAt(0).toUpperCase()+this.slice(1)};var g="3.4.0";export{c as datalist,d as fromCSV,v as fromSDMX,h as fromTable,p as join,u as tbrowser,b as toCSV,g as version};
package/main.cjs CHANGED
@@ -1,2 +1,2 @@
1
- // jsonstat-suite v3.3.0 Copyright 2022 Xavier Badosa https://jsonstat.com
2
- "use strict";function e(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}Object.defineProperty(exports,"__esModule",{value:!0});var t=e(require("jsonstat-toolkit"));function n(e,n){return null==e?null:("string"!=typeof e&&void 0!==e.length||(e=t.default(e)),0===e.length||"dataset"!==e.class&&"collection"!==e.class&&"bundle"!==e.class?null:"dataset"===e.class?e:e.Dataset(n))}function r(e){if(null===e||0===e.length||"dataset"!==e.class)return!1;for(var t=e.length,n=1;t--;)n*=e.Dimension(t).length;return n===e.n}function a(e,t,n){var r,a,l,i,o;return(t.label||n).capitalize()+(a=t,o="",(r=e)&&"metric"===r.role&&a.unit&&(l=a.unit.hasOwnProperty("label")?a.unit.label:"")+(i=a.unit.hasOwnProperty("symbol")?a.unit.symbol:"")!==""&&(o=" ("+(o=""===i?l:""===l?i:"start"===a.unit.position?i+l:l+" "+i)+")"),o)}function l(e,t,n){var r,l='<select name="'+t+'">',i=[];if(null!==n[1]){if(r=e.id,i=e.Dimension(),2===r.length)return(e.Dimension(n[0]).label||n[0]).capitalize()}else{var o=e.Dimension(t);if(r=o.id,i=o.Category(),1===r.length)return}return r.forEach((function(e,t){var r=e!==n[0]?"":'selected="selected" ';null!==n[1]&&e===n[1]||(l+="<option "+r+'value="'+e+'">'+a(o,i[t],e)+"</option>")})),l+="</select>"}function i(e,t){var n={};return Array.isArray(e[t])?(e[t].forEach((function(e,t){null!==e&&(n[String(t)]=e)})),n):e[t]}function o(e,n){if(void 0===e)return null;void 0===n&&(n={}),"boolean"!=typeof n.ovalue&&(n.ovalue=!1),"boolean"!=typeof n.ostatus&&(n.ostatus=!1),"boolean"!=typeof n.instance&&(n.instance=!1);var r=n.vlabel||"Value",a=n.slabel||"Status",l=n.type||"array",o=n.label||"",s=n.header||null,u=[],c=[],d=[],f=[],h={},v={},p=function(e,t){for(var n=1,r=0,a=0;a<E;a++)r+=(n*=a>0?t[E-a]:1)*e[E-a-1];return r},b=function(){var t=e[S][r];d[p(x,c)]=isNaN(t)?null:t};switch(l){case"array":e=function(e){for(var t=e[0],n=e.slice(1),r=[],a=0,l=n.length;a<l;a++){for(var i=0,o=t.length,s={};i<o;i++)s[t[i]]=n[a][i];r.push(s)}return r}(e);break;case"object":e=function(e){for(var t=e.cols.map((function(e){return e.id})),n=e.rows,r=[],a=0,l=n.length;a<l;a++){for(var i=0,o=t.length,s={};i<o;i++)s[t[i]]=n[a].c[i].v;r.push(s)}return r}(e)}var g,m=e.length;for(var y in n.hasOwnProperty("drop")&&Array.isArray(n.drop)&&n.drop.length&&e.forEach((function(e){n.drop.forEach((function(t){delete e[t]}))})),e[0])if(y!==r)if(y!==a){if(u.push(y),s)g=s.dimension[y],h[y]=g.category.index;else{h[y]=[];for(var w=0;w<m;w++){var O=e[w][y];-1===h[y].indexOf(O)&&h[y].push(O)}}c.push(h[y].length),v[y]={label:s?g.label:y,category:{index:h[y]}},s&&(v[y].category.label=g.category.label,g.category.unit&&(v[y].category.unit=g.category.unit))}else b=function(){var t=e[S][r],n=e[S][a];d[p(x,c)]=isNaN(t)?null:t,f[p(x,c)]=""===n?null:n};for(var E=u.length,S=0;S<m;S++){for(var x=[],A=0;A<E;A++){var P=u[A];x.push(h[P].indexOf(e[S][P]))}b()}var D={version:"2.0",class:"dataset",value:d,dimension:v,id:u,size:c};return o&&(D.label=o),f.length&&(D.status=f),s&&(s.label&&(D.label=s.label),s.source&&(D.source=s.source),s.updated&&(D.updated=s.updated),s.href&&(D.href=s.href),s.role&&(D.role=s.role)),n.ovalue&&(D.value=i(D,"value")),n.ostatus&&D.hasOwnProperty("status")&&(D.status=i(D,"status")),n.instance?t.default(D):D}function s(e,t){return null==e?"":-1!==e.indexOf(t)?'"'+e+'"':e}String.prototype.capitalize=function(){return this.charAt(0).toUpperCase()+this.slice(1)};exports.datalist=function(e,t){if(void 0===e)return null;void 0===t&&(t={});var a="",l="",i="",o=0,s=t.na||"n/a",u=t.dsid||0,c=t.vlabel||null,d=t.slabel||null,f=t.counter||!1,h=t.tblclass||"",v=t.numclass||"",p=t.valclass||"",b=t.status||!1,g=t.locale||"en-US",m=t.source||"Source",y=n(e,u),w=y.role&&y.role.metric?y.id.indexOf(y.role.metric[0]):null,O=y.Dimension({role:"metric"}),E={},S=Number.toLocaleString&&"none"!==g?function(e,t){return null===t?e.toLocaleString(g):e.toLocaleString(g,{minimumFractionDigits:t,maximumFractionDigits:t})}:function(e,t){return null===t?e:e.toFixed(t)},x=function(e,t){var n=null;e.forEach((function(e,r){var i=D===r?' class="'+v+" "+p+'"':"",o=s;t?(w===r&&(n=E[e]),null!==e&&(o=D===r?S(e,n):e),l+="<td"+i+">"+o+"</td>"):a+="<th"+i+">"+e+"</th>"}))},A=f?function(e,t){t?l+='<tr><td class="'+v+'">'+t+"</td>":a+='<th class="'+v+'">#</th>',x(e,t),l+="</tr>"}:function(e,t){l+="<tr>",x(e,t),l+="</tr>"};if(!r(y))return null;O&&O[0].Category().forEach((function(e){var t=e.unit&&e.unit.hasOwnProperty("decimals")?e.unit.decimals:null;E[e.label]=t}));var P=y.toTable({status:b,vlabel:c,slabel:d}),D=P[0].length-1;return P.forEach((function(e,t){A(e,t)})),y.source&&(o=y.length+1,f&&o++,b&&o++,"."!==(m+=": "+y.source).slice(-1)&&(m+="."),i='<tfoot><td colspan="'+o+'">'+m+"</td></tfoot>"),'<table class="'+h+'"><caption>'+(t.caption||y.label||"")+"</caption><thead><tr>"+a+"</tr></thead><tbody>"+l+"</tbody>"+i+"</table>"},exports.fromCSV=function(e,t){if(void 0===e)return null;void 0===t&&(t={});var n,r,a,l=[],i=null,s=null,u=!1,c={time:[],geo:[],metric:[]},d="jsonstat"===e.substring(0,8),f=d?"value":t.vlabel,h=d?"status":t.slabel,v=d?e.substring(8,9):t.delimiter||",",p=";"===v?t.decimal||",":t.decimal||".",b=function(e,t){t=t||",";for(var n,r,a=new RegExp("(\\"+t+'|\\r?\\n|\\r|^)(?:"([^"]*(?:""[^"]*)*)"|([^"\\'+t+"\\r\\n]*))","gi"),l=[[]],i=null;i=a.exec(e);)(r=i[1]).length&&r!=t&&l.push([]),n=i[2]?i[2].replace(new RegExp('""',"g"),'"'):i[3],l[l.length-1].push(n);return l}(e.trim(),v);if(d){for(p=b[0][1],a=b[0][2],b.shift();"data"!==b[0][0];)l.push(b.shift());b.shift(),s={dimension:{}},l.forEach((function(e){var t,n,r,l,i,o,d,f;switch(e[0]){case"dimension":if(s.dimension[e[1]]={},(l=s.dimension[e[1]]).label=e[2],l.category={},(i=l.category).index=[],n={},r=2*e[3]+3,e.length>=r){for(t=4;t<r;t++)d=e[t],f=e[++t],Object.defineProperty(n,d,{value:f,writable:!0,configurable:!0,enumerable:!0}),i.label=n,i.index.push(d);"string"==typeof e[t]&&-1!==["time","geo","metric"].indexOf(e[t])&&(c[e[t]].push(e[1]),u=!0,"metric"===e[t]&&"string"==typeof e[++t]&&(i.unit={},i.index.forEach((function(n,r){var l=e[t+r].split(a);i.unit[n]={},o=i.unit[n],void 0!==l[0]&&""!==l[0]&&(o.decimals=1*l[0]),void 0!==l[1]&&""!==l[1]&&(o.label=l[1]),void 0!==l[2]&&""!==l[2]&&(o.symbol=l[2]),void 0!==l[1]&&-1!==["start","end"].indexOf(l[3])&&(o.position=l[3])}))))}break;case"label":case"source":case"updated":case"href":s[e[0]]=e[1]||null}})),u&&(c.time.length||delete c.time,c.geo.length||delete c.geo,c.metric.length||delete c.metric,s.role=c)}if(n=b.length,r=b[0].length,void 0!==f){for(;r--;)if(b[0][r]===f){i=r;break}if(null===i)return null}else i=r-1,f=b[0][i];if(","===p)for(r=1;r<n;r++)b[r][i]=Number(b[r][i].replace(",","."));else for(r=1;r<n;r++)b[r][i]=Number(b[r][i]);return o(b,{header:s,vlabel:f,slabel:h,type:"array",label:t.label||"",ovalue:t.ovalue||!1,ostatus:t.ostatus||!1,instance:t.instance||!1})},exports.fromSDMX=function(e,n){if("object"!=typeof e)return null;if(e.hasOwnProperty("data")&&e.hasOwnProperty("meta")&&e.data.hasOwnProperty("dataSets")&&e.data.hasOwnProperty("structures")&&Array.isArray(e.data.structures)&&(e.dataSets=e.data.dataSets,e.structure=e.data.structures[0],e.header=e.meta),!e.hasOwnProperty("dataSets")||!Array.isArray(e.dataSets))return null;if(1!==e.dataSets.length)return null;e.dataSets[0].hasOwnProperty("observations")||function(e){var t=e.dataSets[0],n=t.series,r=e.structure,a=r.dimensions,l={};Object.keys(n).forEach((function(e){var t=n[e].observations;Object.keys(t).forEach((function(r){l[e+":"+r]=t[r].concat(n[e].attributes)}))})),t.observations=l,delete t.series,a.observation=a.series.concat(a.observation),delete a.series,r.attributes.observation=r.attributes.observation.concat(r.attributes.series),delete r.attributes.series}(e),void 0===n?n={ovalue:!1,ostatus:!1,instance:!1}:("boolean"!=typeof n.ovalue&&(n.ovalue=!1),"boolean"!=typeof n.ostatus&&(n.ostatus=!1),"boolean"!=typeof n.instance&&(n.instance=!1));var r=e.structure,a=e.dataSets[0].observations,l=r.attributes.observation,i=r.dimensions;if(!i.hasOwnProperty("observation"))return null;if(i.hasOwnProperty("series")&&Object.keys(i.series).length)return null;var o=1,s=[],u=[],c={},d=[],f={time:[],geo:[]},h=function(){},v=function(e,t){for(var n=e.size,r=n.length-t.length;r--;)t.push(0);for(var a=0,l=n.length,i=0,o=1;a<l;a++)i+=(o*=a>0?n[l-a]:1)*t[l-a-1];return i},p=function(e){if(c[e.id]={label:e.name},e.hasOwnProperty("role"))switch(e.role){case"REF_AREA":f.geo.push(e.id);break;case"TIME_PERIOD":f.time.push(e.id)}Object.defineProperty(c[e.id],"category",{value:{index:[],label:{}},writable:!0,enumerable:!0}),s.push(e.id),u.push(e.values.length),o*=e.values.length;var t=c[e.id].category;e.values.forEach((function(e){t.index.push(e.id),Object.defineProperty(t.label,e.id,{value:e.name,writable:!0,enumerable:!0})}))},b=e.header.links?e.header.links.find((function(e){return"request"===e.rel})):null,g=l.findIndex((function(e){return"OBS_STATUS"===e.id}));-1!==g&&(l[g].values.length?d=l[g].values:g=-1),i.observation.forEach(p),i.hasOwnProperty("dataSet")&&i.dataSet.forEach(p);var m={version:"2.0",class:"dataset",updated:e.header.prepared||null,source:e.header.sender.name||null,label:r.name||null,id:s,size:u,dimension:c,value:n.ovalue?{}:new Array(o).fill(null)};for(var y in b&&(m.link={alternate:[{type:"application/vnd.sdmx.data+json",href:b.href}]}),f.geo.length+f.time.length>0&&(f.time.length||delete f.time,f.geo.length||delete f.geo,m.role=f),-1!==g&&(m.status=n.ostatus?{}:new Array(o).fill(null),m.extension={status:{label:{}}},d.forEach((function(e){m.extension.status.label[e.id]=e.name})),h=n.ostatus?function(){var e=a[y][g];null!==e&&(m.status[v(m,w)]=d[e].id)}:function(){var e=a[y][g];m.status[v(m,w)]=null===e?null:d[e].id}),g++,a){var w=y.split(":");n.ovalue&&null===a[y][0]||(m.value[v(m,w)]=a[y][0]),h()}return n.instance?t.default(m):m},exports.fromTable=o,exports.join=function(e,n){if(void 0===e||!Array.isArray(e))return null;var r=JSON.parse(JSON.stringify(e)),a=r[0];if(!a.hasOwnProperty("version")||!a.hasOwnProperty("class")||"dataset"!==a.class)return null;void 0===n&&(n={});var l=void 0===n.label?null:n.label,i=void 0===n.by?null:n.by,s=[];if(null===i){for(var u=1,c=r.length;u<c;u++)s=s.concat(r[u].value);return a.value=s,null!==l&&(a.label=l),a}var d,f,h,v=function(e,t,n){if(Array.isArray(e))e=e.concat(t);else for(var r in t)e[r]=0===t[r]?n:t[r];return e};r.forEach((function(e,n){var r=t.default(e).toTable({status:!0}),a=e.dimension[i].category;0===n?(s=[r[0]],d=a.index,f=a.label,h=a.unit):(d=function(e,t,n){if(Array.isArray(e))e=e.concat(t);else for(var r in t)e[r]=t[r]+n;return e}(d,a.index,Object.keys(d).length),f=v(f,a.label,n),h=v(h,a.unit,n)),s=s.concat(r.slice(1))}));var p=o(s);return a.value=p.value,a.size=p.size,a.status=p.status||null,a.label=l||"",a.href=null,a.dimension[i].category.index=d||null,a.dimension[i].category.label=f||null,a.dimension[i].category.unit=h||null,a},exports.tbrowser=function(e,t,i){function o(e){void 0!==t?t.innerHTML=s[e]:window.alert(s[e])}if(void 0!==e)if(void 0!==t){void 0===i&&(i={});var s=void 0===i.i18n||void 0===i.i18n.msgs?{urierror:"tbrowser: A valid JSON-stat input must be specified.",selerror:"tbrowser: A valid selector must be specified.",jsonerror:"The request did not return a valid JSON-stat dataset.",dimerror:"Only one dimension was found in the dataset. At least two are required.",dataerror:"Selection returned no data!",source:"Source",filters:"Filters",constants:"Constants",rc:"Rows &amp; Columns",na:"n/a"}:i.i18n.msgs,u=void 0===i.i18n||void 0===i.i18n.locale?"en-US":i.i18n.locale,c=i.dsid||0,d=i.status||!1,f=i.tblclass||"",h=i.nonconst||!1,v=n(e,c);if(r(v)){if(h)var p=function(e){var t=0,n=e.size.slice(0),r=[];return n.forEach((function(n,a){var l=a-t,i=e.Dimension(l);1===n&&(delete e.__tree__.dimension[e.id[l]],e.size.splice(l,1),e.id.splice(l,1),e.length--,t++,r.push(i.label.capitalize()+": "+i.Category(0).label.capitalize()))})),r}(v);1!==v.length?function e(t,n,r,i){var o="",c="",f="",v="",b=r.rows,g=n.Dimension(b),m=g.id,y=r.cols,w=n.Dimension(y),O=w.id,E=n.role&&n.role.metric?n.role.metric[0]:null,S=null!==E?n.Dimension(E):null,x=function(e){return e.hasOwnProperty("unit")&&e.unit&&e.unit.hasOwnProperty("decimals")?e.unit.decimals:null},A=r.filter,P=JSON.parse(JSON.stringify(A)),D=[],j="",z="",C=n.source?s.source+": "+n.source:"",N=null!==n.label?'<span class="label">'+n.label.capitalize()+"</span>":"";for(var k in h&&p.length&&(N='<span class="label">'+p.join(". ")+"</span>"),""!==C&&"."!==C.slice(-1)&&(C+="."),f+="<caption>"+N+"<form>",A){var _=n.Dimension(k),R=_.label?_.label.capitalize():k.capitalize();_.length>1?j+="<p>"+l(n,k,[A[k],null])+" <strong>"+R+"</strong></p>":D.push({label:R,value:a(_,_.Category(0)),name:k,id:_.id[0]})}""!==j&&(j='<fieldset id="filters"><legend>'+s.filters+"</legend>"+j+"</fieldset>"),D.forEach((function(e){z+="<p>"+e.value+" <strong>"+e.label+'</strong></p><input type="hidden" name="'+e.name+'" value="'+e.id+'" />'})),""!==z&&(z='<fieldset id="constants"><legend>'+s.constants+"</legend>"+z+"</fieldset>"),f+=z+j+'<fieldset id="rowscols"><legend>'+s.rc+"</legend>"+l(n,"rows",[b,y])+" <a>&#x2194;</a> "+l(n,"cols",[y,b])+"</fieldset></form></caption>",v+="<tbody>";var L=Number.toLocaleString&&"none"!==u?function(e,t){return null===t?e.toLocaleString(u):e.toLocaleString(u,{minimumFractionDigits:t,maximumFractionDigits:t})}:function(e,t){return null===t?e:e.toFixed(t)};if(m.forEach((function(e){P[b]=e;var t=n.Data(P),r=function(e,t){var n,r=y!==E?null===S?null:x(S.Category(P[E])):x(w.Category(t));null!==e.value?(n=L(e.value,r),d&&null!==e.status&&(n+=" ("+e.status+")")):n=e.status||s.na,v+="<td>"+n+"</td>"};null!==t?(v+='<tr><th scope="row">'+a(g,g.Category(e))+"</th>",Array.isArray(t)?t.forEach((function(e,t){r(e,t)})):r(t,0),v+="</tr>"):v="ERROR"})),"ERROR"===v)return s.dataerror;v+="</tbody>",o+="<thead><tr><th></th>",O.forEach((function(e){o+='<th scope="col">'+a(w,w.Category(e))+"</th>"})),o+="</tr></thead>",""!==C&&(c='<tfoot><tr><td colspan="'+(O.length+1)+'">'+C+"</td></tr></tfoot>"),t.innerHTML='<table class="'+i+'">'+f+o+v+c+"</table>",[].slice.call(t.querySelectorAll("select")).forEach((function(r){r.addEventListener("change",(function(r){var a,l;e(t,n,function(e,t,n){var r={filter:{}};return n.forEach((function(e){"rows"===e.name||"cols"===e.name?r[e.name]=e.value:r.filter[e.name]=e.value})),"rowscols"===t&&e.id.forEach((function(t,n){t!==r.rows&&t!==r.cols?void 0===r.filter[t]&&(r.filter[t]=e.Dimension(n).id[0]):delete r.filter[t]})),r}(n,r.target.parentElement.getAttribute("id"),(a=t,l=[],[].slice.call(a.querySelectorAll("select, input")).forEach((function(e){l.push({name:e.name,value:e.value})})),l)),i)}),!1)})),t.querySelector("a").addEventListener("click",(function(){r.cols=b,r.rows=y,e(t,n,r,i)}),!1)}(t,v,function(e,t){var n,r,a={},l=[],i=e.id;if(t){var o="bigger"===t?function(e,t){return e.len<t.len?1:-1}:function(e,t){return e.len>t.len?1:-1};e.Dimension().forEach((function(e,t){l.push({id:i[t],len:e.length})})),l.sort(o),n=l[0].id,r=l[1].id}else n=i[0],r=i[1];return e.Dimension(n).length<e.Dimension(r).length&&(n=r+(r=n,"")),i.forEach((function(t){t!==n&&t!==r&&(a[t]=e.Dimension(t).id[0])})),{rows:n,cols:r,filter:a}}(v,i.preset),f):o("dimerror")}else o("jsonerror")}else o("selerror");else o("urierror")},exports.toCSV=function(e,t){if(void 0===e)return null;void 0===t&&(t={});var a=!0===t.rich,l=t.content||"label",i=t.field||"label",o=a?"value":t.vlabel||"Value",u=a?"status":t.slabel||"Status",c=!0===t.status,d=t.na||"n/a",f=t.delimiter||",",h=t.separator||"|",v=";"===f?t.decimal||",":t.decimal||".",p=!0===t.array,b=n(e,t.dsid||0),g=p?[]:"",m=p?[]:"",y=p?function(e){g.push(e)}:function(e){g+=e+"\n"},w=p?function(e){m.push(e)}:function(e){m+=e+"\n"};if(!r(b))return null;a&&(c=null!==b.status);var O=b.toTable({vlabel:o,slabel:u,status:c,field:a?"id":i,content:a?"id":l,type:"array"}),E=O[0].indexOf("id"===i?"value":o),S=c?O[0].indexOf("id"===i?"status":u):-1;return O.forEach((function(e,t){e.forEach((function(n,r){t&&r===E?null===n?e[r]=s(d,f):"."!==v&&(e[r]=String(e[r]).replace(".",v)):e[r]=t&&r===S&&null===n?"":s(e[r],f)})),y(e.join(f))})),a&&(w("jsonstat"+f+v+f+h),["label","source","updated","href"].forEach((function(e){b[e]&&w(e+f+s(b[e],f))})),b.id.forEach((function(e,t){var n=[],r=b.Dimension(t),a=r.role,l=!1,i="";i+="dimension"+f+s(e,f)+f+s(r.label,f)+f+r.length,"metric"===a&&r.__tree__.category.unit&&(l=!0),r.id.forEach((function(e,t){var a=[],o=r.Category(t);i+=f+s(e,f)+f+s(o.label,f),l&&(a.push(o.unit.hasOwnProperty("decimals")?o.unit.decimals:""),a.push(o.unit.label||""),o.unit.symbol&&(a.push(o.unit.symbol),a.push(o.unit.position)),n.push(s(a.join(h),f)))})),null!==a&&"classification"!==a&&(i+=f+r.role,l&&(i+=f+n.join(f))),w(i)})),g=p?m.concat(["data"],g):m+"data\n"+g),g},exports.version="3.3.0";
1
+ // jsonstat-suite v3.4.0 Copyright 2023 Xavier Badosa https://jsonstat.com
2
+ "use strict";var e=require("jsonstat-toolkit");function t(t,n){return null==t?null:("string"!=typeof t&&void 0!==t.length||(t=e(t)),0===t.length||"dataset"!==t.class&&"collection"!==t.class&&"bundle"!==t.class?null:"dataset"===t.class?t:t.Dataset(n))}function n(e){if(null===e||0===e.length||"dataset"!==e.class)return!1;for(var t=e.length,n=1;t--;)n*=e.Dimension(t).length;return n===e.n}function r(e,t,n){var r,a,l,i,o;return(t.label||n).capitalize()+(a=t,o="",(r=e)&&"metric"===r.role&&a.unit&&(l=a.unit.hasOwnProperty("label")?a.unit.label:"")+(i=a.unit.hasOwnProperty("symbol")?a.unit.symbol:"")!==""&&(o=" ("+(o=""===i?l:""===l?i:"start"===a.unit.position?i+l:l+" "+i)+")"),o)}function a(e,t,n){var a,l='<select name="'+t+'">',i=[];if(null!==n[1]){if(a=e.id,i=e.Dimension(),2===a.length)return(e.Dimension(n[0]).label||n[0]).capitalize()}else{var o=e.Dimension(t);if(a=o.id,i=o.Category(),1===a.length)return}return a.forEach((function(e,t){var a=e!==n[0]?"":'selected="selected" ';null!==n[1]&&e===n[1]||(l+="<option "+a+'value="'+e+'">'+r(o,i[t],e)+"</option>")})),l+="</select>"}function l(e,t){var n={};return Array.isArray(e[t])?(e[t].forEach((function(e,t){null!==e&&(n[String(t)]=e)})),n):e[t]}function i(t,n){if(void 0===t)return null;void 0===n&&(n={}),"boolean"!=typeof n.ovalue&&(n.ovalue=!1),"boolean"!=typeof n.ostatus&&(n.ostatus=!1),"boolean"!=typeof n.instance&&(n.instance=!1);var r=n.vlabel||"Value",a=n.slabel||"Status",i=n.type||"array",o=n.label||"",s=n.header||null,u=[],c=[],d=[],f=[],h={},v={},b=function(e,t){for(var n=1,r=0,a=0;a<E;a++)r+=(n*=a>0?t[E-a]:1)*e[E-a-1];return r},p=function(){var e=t[S][r];d[b(x,c)]=isNaN(e)?null:e};switch(i){case"array":t=function(e){for(var t=e[0],n=e.slice(1),r=[],a=0,l=n.length;a<l;a++){for(var i=0,o=t.length,s={};i<o;i++)s[t[i]]=n[a][i];r.push(s)}return r}(t);break;case"object":t=function(e){for(var t=e.cols.map((function(e){return e.id})),n=e.rows,r=[],a=0,l=n.length;a<l;a++){for(var i=0,o=t.length,s={};i<o;i++)s[t[i]]=n[a].c[i].v;r.push(s)}return r}(t)}var g,m=t.length;for(var y in n.hasOwnProperty("drop")&&Array.isArray(n.drop)&&n.drop.length&&t.forEach((function(e){n.drop.forEach((function(t){delete e[t]}))})),t[0])if(y!==r)if(y!==a){if(u.push(y),s)g=s.dimension[y],h[y]=g.category.index;else{h[y]=[];for(var w=0;w<m;w++){var O=t[w][y];-1===h[y].indexOf(O)&&h[y].push(O)}}c.push(h[y].length),v[y]={label:s?g.label:y,category:{index:h[y]}},s&&(v[y].category.label=g.category.label,g.category.unit&&(v[y].category.unit=g.category.unit))}else p=function(){var e=t[S][r],n=t[S][a];d[b(x,c)]=isNaN(e)?null:e,f[b(x,c)]=""===n?null:n};for(var E=u.length,S=0;S<m;S++){for(var x=[],A=0;A<E;A++){var D=u[A];x.push(h[D].indexOf(t[S][D]))}p()}var P={version:"2.0",class:"dataset",value:d,dimension:v,id:u,size:c};return o&&(P.label=o),f.length&&(P.status=f),s&&(s.label&&(P.label=s.label),s.source&&(P.source=s.source),s.updated&&(P.updated=s.updated),s.href&&(P.href=s.href),s.role&&(P.role=s.role)),n.ovalue&&(P.value=l(P,"value")),n.ostatus&&P.hasOwnProperty("status")&&(P.status=l(P,"status")),n.instance?e(P):P}function o(e,t){return null==e?"":-1!==e.indexOf(t)?'"'+e+'"':e}String.prototype.capitalize=function(){return this.charAt(0).toUpperCase()+this.slice(1)};exports.datalist=function(e,r){if(void 0===e)return null;void 0===r&&(r={});var a="",l="",i="",o=0,s=r.na||"n/a",u=r.dsid||0,c=r.vlabel||null,d=r.slabel||null,f=r.counter||!1,h=r.tblclass||"",v=r.numclass||"",b=r.valclass||"",p=r.status||!1,g=r.locale||"en-US",m=r.source||"Source",y=t(e,u),w=y.role&&y.role.metric?y.id.indexOf(y.role.metric[0]):null,O=y.Dimension({role:"metric"}),E={},S=Number.toLocaleString&&"none"!==g?function(e,t){return null===t?e.toLocaleString(g):e.toLocaleString(g,{minimumFractionDigits:t,maximumFractionDigits:t})}:function(e,t){return null===t?e:e.toFixed(t)},x=function(e,t){var n=null;e.forEach((function(e,r){var i=P===r?' class="'+v+" "+b+'"':"",o=s;t?(w===r&&(n=E[e]),null!==e&&(o=P===r?S(e,n):e),l+="<td"+i+">"+o+"</td>"):a+="<th"+i+">"+e+"</th>"}))},A=f?function(e,t){t?l+='<tr><td class="'+v+'">'+t+"</td>":a+='<th class="'+v+'">#</th>',x(e,t),l+="</tr>"}:function(e,t){l+="<tr>",x(e,t),l+="</tr>"};if(!n(y))return null;O&&O[0].Category().forEach((function(e){var t=e.unit&&e.unit.hasOwnProperty("decimals")?e.unit.decimals:null;E[e.label]=t}));var D=y.toTable({status:p,vlabel:c,slabel:d}),P=D[0].length-1;return D.forEach((function(e,t){A(e,t)})),y.source&&(o=y.length+1,f&&o++,p&&o++,"."!==(m+=": "+y.source).slice(-1)&&(m+="."),i='<tfoot><td colspan="'+o+'">'+m+"</td></tfoot>"),'<table class="'+h+'"><caption>'+(r.caption||y.label||"")+"</caption><thead><tr>"+a+"</tr></thead><tbody>"+l+"</tbody>"+i+"</table>"},exports.fromCSV=function(e,t){if(void 0===e)return null;void 0===t&&(t={});var n,r,a,l=[],o=null,s=null,u=!1,c={time:[],geo:[],metric:[]},d="jsonstat"===e.substring(0,8),f=d?"value":t.vlabel,h=d?"status":t.slabel,v=d?e.substring(8,9):t.delimiter||",",b=";"===v?t.decimal||",":t.decimal||".",p=function(e,t){t=t||",";for(var n,r,a=new RegExp("(\\"+t+'|\\r?\\n|\\r|^)(?:"([^"]*(?:""[^"]*)*)"|([^"\\'+t+"\\r\\n]*))","gi"),l=[[]],i=null;i=a.exec(e);)(r=i[1]).length&&r!=t&&l.push([]),n=i[2]?i[2].replace(new RegExp('""',"g"),'"'):i[3],l[l.length-1].push(n);return l}(e.trim(),v);if(d){for(b=p[0][1],a=p[0][2],p.shift();"data"!==p[0][0];)l.push(p.shift());p.shift(),s={dimension:{}},l.forEach((function(e){var t,n,r,l,i,o,d,f;switch(e[0]){case"dimension":if(s.dimension[e[1]]={},(l=s.dimension[e[1]]).label=e[2],l.category={},(i=l.category).index=[],n={},r=2*e[3]+3,e.length>=r){for(t=4;t<r;t++)d=e[t],f=e[++t],Object.defineProperty(n,d,{value:f,writable:!0,configurable:!0,enumerable:!0}),i.label=n,i.index.push(d);"string"==typeof e[t]&&-1!==["time","geo","metric"].indexOf(e[t])&&(c[e[t]].push(e[1]),u=!0,"metric"===e[t]&&"string"==typeof e[++t]&&(i.unit={},i.index.forEach((function(n,r){var l=e[t+r].split(a);i.unit[n]={},o=i.unit[n],void 0!==l[0]&&""!==l[0]&&(o.decimals=1*l[0]),void 0!==l[1]&&""!==l[1]&&(o.label=l[1]),void 0!==l[2]&&""!==l[2]&&(o.symbol=l[2]),void 0!==l[1]&&-1!==["start","end"].indexOf(l[3])&&(o.position=l[3])}))))}break;case"label":case"source":case"updated":case"href":s[e[0]]=e[1]||null}})),u&&(c.time.length||delete c.time,c.geo.length||delete c.geo,c.metric.length||delete c.metric,s.role=c)}if(n=p.length,r=p[0].length,void 0!==f){for(;r--;)if(p[0][r]===f){o=r;break}if(null===o)return null}else o=r-1,f=p[0][o];if(","===b)for(r=1;r<n;r++)p[r][o]=Number(p[r][o].replace(",","."));else for(r=1;r<n;r++)p[r][o]=Number(p[r][o]);return i(p,{header:s,vlabel:f,slabel:h,type:"array",label:t.label||"",ovalue:t.ovalue||!1,ostatus:t.ostatus||!1,instance:t.instance||!1})},exports.fromSDMX=function(t,n){if("object"!=typeof t)return null;if(t.hasOwnProperty("data")&&t.hasOwnProperty("meta")&&t.data.hasOwnProperty("dataSets")&&t.data.hasOwnProperty("structures")&&Array.isArray(t.data.structures)&&(t.dataSets=t.data.dataSets,t.structure=t.data.structures[0],t.header=t.meta),!t.hasOwnProperty("dataSets")||!Array.isArray(t.dataSets))return null;if(1!==t.dataSets.length)return null;t.dataSets[0].hasOwnProperty("observations")||function(e){var t=e.dataSets[0],n=t.series,r=e.structure,a=r.dimensions,l={};Object.keys(n).forEach((function(e){var t=n[e].observations;Object.keys(t).forEach((function(r){l[e+":"+r]=t[r].concat(n[e].attributes)}))})),t.observations=l,delete t.series,a.observation=a.series.concat(a.observation),delete a.series,r.attributes.observation=r.attributes.observation.concat(r.attributes.series),delete r.attributes.series}(t),void 0===n?n={ovalue:!1,ostatus:!1,instance:!1}:("boolean"!=typeof n.ovalue&&(n.ovalue=!1),"boolean"!=typeof n.ostatus&&(n.ostatus=!1),"boolean"!=typeof n.instance&&(n.instance=!1));var r=t.structure,a=t.dataSets[0].observations,l=r.attributes.observation,i=r.dimensions;if(!i.hasOwnProperty("observation"))return null;if(i.hasOwnProperty("series")&&Object.keys(i.series).length)return null;var o=1,s=[],u=[],c={},d=[],f={time:[],geo:[]},h=function(){},v=function(e,t){for(var n=e.size,r=n.length-t.length;r--;)t.push(0);for(var a=0,l=n.length,i=0,o=1;a<l;a++)i+=(o*=a>0?n[l-a]:1)*t[l-a-1];return i},b=function(e){if(c[e.id]={label:e.name},e.hasOwnProperty("role"))switch(e.role){case"REF_AREA":f.geo.push(e.id);break;case"TIME_PERIOD":f.time.push(e.id)}Object.defineProperty(c[e.id],"category",{value:{index:[],label:{}},writable:!0,enumerable:!0}),s.push(e.id),u.push(e.values.length),o*=e.values.length;var t=c[e.id].category;e.values.forEach((function(e){t.index.push(e.id),Object.defineProperty(t.label,e.id,{value:e.name,writable:!0,enumerable:!0})}))},p=t.header.links?t.header.links.find((function(e){return"request"===e.rel})):null,g=l.findIndex((function(e){return"OBS_STATUS"===e.id}));-1!==g&&(l[g].values.length?d=l[g].values:g=-1),i.observation.forEach(b),i.hasOwnProperty("dataSet")&&i.dataSet.forEach(b);var m={version:"2.0",class:"dataset",updated:t.header.prepared||null,source:t.header.sender.name||null,label:r.name||null,id:s,size:u,dimension:c,value:n.ovalue?{}:new Array(o).fill(null)};for(var y in p&&(m.link={alternate:[{type:"application/vnd.sdmx.data+json",href:p.href}]}),f.geo.length+f.time.length>0&&(f.time.length||delete f.time,f.geo.length||delete f.geo,m.role=f),-1!==g&&(m.status=n.ostatus?{}:new Array(o).fill(null),m.extension={status:{label:{}}},d.forEach((function(e){m.extension.status.label[e.id]=e.name})),h=n.ostatus?function(){var e=a[y][g];null!==e&&(m.status[v(m,w)]=d[e].id)}:function(){var e=a[y][g];m.status[v(m,w)]=null===e?null:d[e].id}),g++,a){var w=y.split(":");n.ovalue&&null===a[y][0]||(m.value[v(m,w)]=a[y][0]),h()}return n.instance?e(m):m},exports.fromTable=i,exports.join=function(t,n){if(void 0===t||!Array.isArray(t))return null;var r=JSON.parse(JSON.stringify(t)),a=r[0];if(!a.hasOwnProperty("version")||!a.hasOwnProperty("class")||"dataset"!==a.class)return null;void 0===n&&(n={});var l=void 0===n.label?null:n.label,o=void 0===n.by?null:n.by,s=[];if(null===o){for(var u=1,c=r.length;u<c;u++)s=s.concat(r[u].value);return a.value=s,null!==l&&(a.label=l),a}var d,f,h,v=function(e,t,n){if(Array.isArray(e))e=e.concat(t);else for(var r in t)e[r]=0===t[r]?n:t[r];return e};r.forEach((function(t,n){var r=e(t).toTable({status:!0}),a=t.dimension[o].category;0===n?(s=[r[0]],d=a.index,f=a.label,h=a.unit):(d=function(e,t,n){if(Array.isArray(e))e=e.concat(t);else for(var r in t)e[r]=t[r]+n;return e}(d,a.index,Object.keys(d).length),f=v(f,a.label,n),h=v(h,a.unit,n)),s=s.concat(r.slice(1))}));var b=i(s);return a.value=b.value,a.size=b.size,a.status=b.status||null,a.label=l||"",a.href=null,a.dimension[o].category.index=d||null,a.dimension[o].category.label=f||null,a.dimension[o].category.unit=h||null,a},exports.tbrowser=function(e,l,i){function o(e){void 0!==l?l.innerHTML=s[e]:window.alert(s[e])}if(void 0!==e)if(void 0!==l){void 0===i&&(i={});var s=void 0===i.i18n||void 0===i.i18n.msgs?{urierror:"tbrowser: A valid JSON-stat input must be specified.",selerror:"tbrowser: A valid selector must be specified.",jsonerror:"The request did not return a valid JSON-stat dataset.",dimerror:"Only one dimension was found in the dataset. At least two are required.",dataerror:"Selection returned no data!",source:"Source",filters:"Filters",constants:"Constants",rc:"Rows &amp; Columns",na:"n/a"}:i.i18n.msgs,u=void 0===i.i18n||void 0===i.i18n.locale?"en-US":i.i18n.locale,c=i.dsid||0,d=i.status||!1,f=i.tblclass||"",h=i.nonconst||!1,v=t(e,c);if(n(v)){if(h)var b=function(e){var t=0,n=e.size.slice(0),r=[];return n.forEach((function(n,a){var l=a-t,i=e.Dimension(l);1===n&&(delete e.__tree__.dimension[e.id[l]],e.size.splice(l,1),e.id.splice(l,1),e.length--,t++,r.push(i.label.capitalize()+": "+i.Category(0).label.capitalize()))})),r}(v);1!==v.length?function e(t,n,l,o){"function"==typeof i.callback&&i.callback(l);var c="",f="",v="",p="",g=l.rows,m=n.Dimension(g),y=m.id,w=l.cols,O=n.Dimension(w),E=O.id,S=n.role&&n.role.metric?n.role.metric[0]:null,x=null!==S?n.Dimension(S):null,A=function(e){return e.hasOwnProperty("unit")&&e.unit&&e.unit.hasOwnProperty("decimals")?e.unit.decimals:null},D=l.filters,P=JSON.parse(JSON.stringify(D)),j=[],k="",z="",C=n.source?s.source+": "+n.source:"",N=null!==n.label?'<span class="label">'+n.label.capitalize()+"</span>":"";for(var R in h&&b.length&&(N='<span class="label">'+b.join(". ")+"</span>"),""!==C&&"."!==C.slice(-1)&&(C+="."),v+="<caption>"+N+"<form>",D){var _=n.Dimension(R),L=_.label?_.label.capitalize():R.capitalize();_.length>1?k+="<p>"+a(n,R,[D[R],null])+" <strong>"+L+"</strong></p>":j.push({label:L,value:r(_,_.Category(0)),name:R,id:_.id[0]})}""!==k&&(k='<fieldset id="filters"><legend>'+s.filters+"</legend>"+k+"</fieldset>"),j.forEach((function(e){z+="<p>"+e.value+" <strong>"+e.label+'</strong></p><input type="hidden" name="'+e.name+'" value="'+e.id+'" />'})),""!==z&&(z='<fieldset id="constants"><legend>'+s.constants+"</legend>"+z+"</fieldset>"),v+=z+k+'<fieldset id="rowscols"><legend>'+s.rc+"</legend>"+a(n,"rows",[g,w])+" <a>&#x2194;</a> "+a(n,"cols",[w,g])+"</fieldset></form></caption>",p+="<tbody>";var T=Number.toLocaleString&&"none"!==u?function(e,t){return null===t?e.toLocaleString(u):e.toLocaleString(u,{minimumFractionDigits:t,maximumFractionDigits:t})}:function(e,t){return null===t?e:e.toFixed(t)};if(y.forEach((function(e){P[g]=e;var t=n.Data(P),a=function(e,t){var n,r=w!==S?null===x?null:A(x.Category(P[S])):A(O.Category(t));null!==e.value?(n=T(e.value,r),d&&null!==e.status&&(n+=" ("+e.status+")")):n=e.status||s.na,p+="<td>"+n+"</td>"};null!==t?(p+='<tr><th scope="row">'+r(m,m.Category(e))+"</th>",Array.isArray(t)?t.forEach((function(e,t){a(e,t)})):a(t,0),p+="</tr>"):p="ERROR"})),"ERROR"===p)return s.dataerror;p+="</tbody>",c+="<thead><tr><th></th>",E.forEach((function(e){c+='<th scope="col">'+r(O,O.Category(e))+"</th>"})),c+="</tr></thead>",""!==C&&(f='<tfoot><tr><td colspan="'+(E.length+1)+'">'+C+"</td></tr></tfoot>"),t.innerHTML='<table class="'+o+'">'+v+c+p+f+"</table>",[].slice.call(t.querySelectorAll("select")).forEach((function(r){r.addEventListener("change",(function(r){var a,l;e(t,n,function(e,t,n){var r={filters:{}};return n.forEach((function(e){"rows"===e.name||"cols"===e.name?r[e.name]=e.value:r.filters[e.name]=e.value})),"rowscols"===t&&e.id.forEach((function(t,n){t!==r.rows&&t!==r.cols?void 0===r.filters[t]&&(r.filters[t]=e.Dimension(n).id[0]):delete r.filters[t]})),r}(n,r.target.parentElement.getAttribute("id"),(a=t,l=[],[].slice.call(a.querySelectorAll("select, input")).forEach((function(e){l.push({name:e.name,value:e.value})})),l)),o)}),!1)})),t.querySelector("a").addEventListener("click",(function(){l.cols=g,l.rows=w,e(t,n,l,o)}),!1)}(l,v,function(e,t){if("object"==typeof t)return{rows:t.rows,cols:t.cols,filters:t.filters};var n,r,a={},l=[],i=e.id;if(t){var o="bigger"===t?function(e,t){return e.len<t.len?1:-1}:function(e,t){return e.len>t.len?1:-1};e.Dimension().forEach((function(e,t){l.push({id:i[t],len:e.length})})),l.sort(o),n=l[0].id,r=l[1].id}else n=i[0],r=i[1];return e.Dimension(n).length<e.Dimension(r).length&&(n=r+(r=n,"")),i.forEach((function(t){t!==n&&t!==r&&(a[t]=e.Dimension(t).id[0])})),{rows:n,cols:r,filters:a}}(v,i.preset),f):o("dimerror")}else o("jsonerror")}else o("selerror");else o("urierror")},exports.toCSV=function(e,r){if(void 0===e)return null;void 0===r&&(r={});var a=!1,l=!0===r.rich,i=r.content||"label",s=r.field||"label",u=l?"value":r.vlabel||"Value",c=l?"status":r.slabel||"Status",d=!0===r.status,f=r.na||"n/a",h=r.delimiter||",",v=r.separator||"|",b=";"===h?r.decimal||",":r.decimal||".",p=!0===r.array,g=t(e,r.dsid||0),m=p?[]:"",y=p?[]:"",w=p?function(e){m.push(e)}:function(e){m+=e+"\n"},O=p?function(e){y.push(e)}:function(e){y+=e+"\n"};if(!n(g))return null;l?d=null!==g.status:"[id] label"===i&&(a=!0,i="id");var E=g.toTable({vlabel:u,slabel:c,status:d,field:l?"id":s,content:l||a?"id":i,type:"array"}),S=E[0].indexOf("id"===s?"value":u),x=d?E[0].indexOf("id"===s?"status":c):-1;return E.forEach((function(e,t){e.forEach((function(n,r){var l,i=g.Dimension(r);t&&r===S?null===n?e[r]=o(f,h):"."!==b&&(e[r]=String(e[r]).replace(".",b)):t&&r===x&&null===n?e[r]="":(a&&t&&(l=i.Category(e[r]).label,e[r]="["+e[r]+"] "+l),e[r]=o(e[r],h))})),w(e.join(h))})),l&&(O("jsonstat"+h+b+h+v),["label","source","updated","href"].forEach((function(e){g[e]&&O(e+h+o(g[e],h))})),g.id.forEach((function(e,t){var n=[],r=g.Dimension(t),a=r.role,l=!1,i="";i+="dimension"+h+o(e,h)+h+o(r.label,h)+h+r.length,"metric"===a&&r.__tree__.category.unit&&(l=!0),r.id.forEach((function(e,t){var a=[],s=r.Category(t);i+=h+o(e,h)+h+o(s.label,h),l&&(a.push(s.unit.hasOwnProperty("decimals")?s.unit.decimals:""),a.push(s.unit.label||""),s.unit.symbol&&(a.push(s.unit.symbol),a.push(s.unit.position)),n.push(o(a.join(v),h)))})),null!==a&&"classification"!==a&&(i+=h+r.role,l&&(i+=h+n.join(h))),O(i)})),m=p?y.concat(["data"],m):y+"data\n"+m),m},exports.version="3.4.0";
package/module.mjs CHANGED
@@ -1,2 +1,2 @@
1
- // jsonstat-suite v3.3.0 Copyright 2022 Xavier Badosa https://jsonstat.com
2
- import e from"jsonstat-toolkit";function t(t,n){return null==t?null:("string"!=typeof t&&void 0!==t.length||(t=e(t)),0===t.length||"dataset"!==t.class&&"collection"!==t.class&&"bundle"!==t.class?null:"dataset"===t.class?t:t.Dataset(n))}function n(e){if(null===e||0===e.length||"dataset"!==e.class)return!1;for(var t=e.length,n=1;t--;)n*=e.Dimension(t).length;return n===e.n}function r(e,t,n){var r,a,l,i,o;return(t.label||n).capitalize()+(a=t,o="",(r=e)&&"metric"===r.role&&a.unit&&(l=a.unit.hasOwnProperty("label")?a.unit.label:"")+(i=a.unit.hasOwnProperty("symbol")?a.unit.symbol:"")!==""&&(o=" ("+(o=""===i?l:""===l?i:"start"===a.unit.position?i+l:l+" "+i)+")"),o)}function a(e,t,n){var a,l='<select name="'+t+'">',i=[];if(null!==n[1]){if(a=e.id,i=e.Dimension(),2===a.length)return(e.Dimension(n[0]).label||n[0]).capitalize()}else{var o=e.Dimension(t);if(a=o.id,i=o.Category(),1===a.length)return}return a.forEach((function(e,t){var a=e!==n[0]?"":'selected="selected" ';null!==n[1]&&e===n[1]||(l+="<option "+a+'value="'+e+'">'+r(o,i[t],e)+"</option>")})),l+="</select>"}function l(e,l,i){function o(e){void 0!==l?l.innerHTML=s[e]:window.alert(s[e])}if(void 0!==e)if(void 0!==l){void 0===i&&(i={});var s=void 0===i.i18n||void 0===i.i18n.msgs?{urierror:"tbrowser: A valid JSON-stat input must be specified.",selerror:"tbrowser: A valid selector must be specified.",jsonerror:"The request did not return a valid JSON-stat dataset.",dimerror:"Only one dimension was found in the dataset. At least two are required.",dataerror:"Selection returned no data!",source:"Source",filters:"Filters",constants:"Constants",rc:"Rows &amp; Columns",na:"n/a"}:i.i18n.msgs,u=void 0===i.i18n||void 0===i.i18n.locale?"en-US":i.i18n.locale,c=i.dsid||0,d=i.status||!1,f=i.tblclass||"",h=i.nonconst||!1,v=t(e,c);if(n(v)){if(h)var b=function(e){var t=0,n=e.size.slice(0),r=[];return n.forEach((function(n,a){var l=a-t,i=e.Dimension(l);1===n&&(delete e.__tree__.dimension[e.id[l]],e.size.splice(l,1),e.id.splice(l,1),e.length--,t++,r.push(i.label.capitalize()+": "+i.Category(0).label.capitalize()))})),r}(v);1!==v.length?function e(t,n,l,i){var o="",c="",f="",v="",p=l.rows,g=n.Dimension(p),m=g.id,y=l.cols,w=n.Dimension(y),O=w.id,E=n.role&&n.role.metric?n.role.metric[0]:null,S=null!==E?n.Dimension(E):null,x=function(e){return e.hasOwnProperty("unit")&&e.unit&&e.unit.hasOwnProperty("decimals")?e.unit.decimals:null},A=l.filter,P=JSON.parse(JSON.stringify(A)),D=[],j="",z="",N=n.source?s.source+": "+n.source:"",k=null!==n.label?'<span class="label">'+n.label.capitalize()+"</span>":"";for(var C in h&&b.length&&(k='<span class="label">'+b.join(". ")+"</span>"),""!==N&&"."!==N.slice(-1)&&(N+="."),f+="<caption>"+k+"<form>",A){var R=n.Dimension(C),_=R.label?R.label.capitalize():C.capitalize();R.length>1?j+="<p>"+a(n,C,[A[C],null])+" <strong>"+_+"</strong></p>":D.push({label:_,value:r(R,R.Category(0)),name:C,id:R.id[0]})}""!==j&&(j='<fieldset id="filters"><legend>'+s.filters+"</legend>"+j+"</fieldset>"),D.forEach((function(e){z+="<p>"+e.value+" <strong>"+e.label+'</strong></p><input type="hidden" name="'+e.name+'" value="'+e.id+'" />'})),""!==z&&(z='<fieldset id="constants"><legend>'+s.constants+"</legend>"+z+"</fieldset>"),f+=z+j+'<fieldset id="rowscols"><legend>'+s.rc+"</legend>"+a(n,"rows",[p,y])+" <a>&#x2194;</a> "+a(n,"cols",[y,p])+"</fieldset></form></caption>",v+="<tbody>";var L=Number.toLocaleString&&"none"!==u?function(e,t){return null===t?e.toLocaleString(u):e.toLocaleString(u,{minimumFractionDigits:t,maximumFractionDigits:t})}:function(e,t){return null===t?e:e.toFixed(t)};if(m.forEach((function(e){P[p]=e;var t=n.Data(P),a=function(e,t){var n,r=y!==E?null===S?null:x(S.Category(P[E])):x(w.Category(t));null!==e.value?(n=L(e.value,r),d&&null!==e.status&&(n+=" ("+e.status+")")):n=e.status||s.na,v+="<td>"+n+"</td>"};null!==t?(v+='<tr><th scope="row">'+r(g,g.Category(e))+"</th>",Array.isArray(t)?t.forEach((function(e,t){a(e,t)})):a(t,0),v+="</tr>"):v="ERROR"})),"ERROR"===v)return s.dataerror;v+="</tbody>",o+="<thead><tr><th></th>",O.forEach((function(e){o+='<th scope="col">'+r(w,w.Category(e))+"</th>"})),o+="</tr></thead>",""!==N&&(c='<tfoot><tr><td colspan="'+(O.length+1)+'">'+N+"</td></tr></tfoot>"),t.innerHTML='<table class="'+i+'">'+f+o+v+c+"</table>",[].slice.call(t.querySelectorAll("select")).forEach((function(r){r.addEventListener("change",(function(r){var a,l;e(t,n,function(e,t,n){var r={filter:{}};return n.forEach((function(e){"rows"===e.name||"cols"===e.name?r[e.name]=e.value:r.filter[e.name]=e.value})),"rowscols"===t&&e.id.forEach((function(t,n){t!==r.rows&&t!==r.cols?void 0===r.filter[t]&&(r.filter[t]=e.Dimension(n).id[0]):delete r.filter[t]})),r}(n,r.target.parentElement.getAttribute("id"),(a=t,l=[],[].slice.call(a.querySelectorAll("select, input")).forEach((function(e){l.push({name:e.name,value:e.value})})),l)),i)}),!1)})),t.querySelector("a").addEventListener("click",(function(){l.cols=p,l.rows=y,e(t,n,l,i)}),!1)}(l,v,function(e,t){var n,r,a={},l=[],i=e.id;if(t){var o="bigger"===t?function(e,t){return e.len<t.len?1:-1}:function(e,t){return e.len>t.len?1:-1};e.Dimension().forEach((function(e,t){l.push({id:i[t],len:e.length})})),l.sort(o),n=l[0].id,r=l[1].id}else n=i[0],r=i[1];return e.Dimension(n).length<e.Dimension(r).length&&(n=r+(r=n,"")),i.forEach((function(t){t!==n&&t!==r&&(a[t]=e.Dimension(t).id[0])})),{rows:n,cols:r,filter:a}}(v,i.preset),f):o("dimerror")}else o("jsonerror")}else o("selerror");else o("urierror")}function i(e,r){if(void 0===e)return null;void 0===r&&(r={});var a="",l="",i="",o=0,s=r.na||"n/a",u=r.dsid||0,c=r.vlabel||null,d=r.slabel||null,f=r.counter||!1,h=r.tblclass||"",v=r.numclass||"",b=r.valclass||"",p=r.status||!1,g=r.locale||"en-US",m=r.source||"Source",y=t(e,u),w=y.role&&y.role.metric?y.id.indexOf(y.role.metric[0]):null,O=y.Dimension({role:"metric"}),E={},S=Number.toLocaleString&&"none"!==g?function(e,t){return null===t?e.toLocaleString(g):e.toLocaleString(g,{minimumFractionDigits:t,maximumFractionDigits:t})}:function(e,t){return null===t?e:e.toFixed(t)},x=function(e,t){var n=null;e.forEach((function(e,r){var i=D===r?' class="'+v+" "+b+'"':"",o=s;t?(w===r&&(n=E[e]),null!==e&&(o=D===r?S(e,n):e),l+="<td"+i+">"+o+"</td>"):a+="<th"+i+">"+e+"</th>"}))},A=f?function(e,t){t?l+='<tr><td class="'+v+'">'+t+"</td>":a+='<th class="'+v+'">#</th>',x(e,t),l+="</tr>"}:function(e,t){l+="<tr>",x(e,t),l+="</tr>"};if(!n(y))return null;O&&O[0].Category().forEach((function(e){var t=e.unit&&e.unit.hasOwnProperty("decimals")?e.unit.decimals:null;E[e.label]=t}));var P=y.toTable({status:p,vlabel:c,slabel:d}),D=P[0].length-1;return P.forEach((function(e,t){A(e,t)})),y.source&&(o=y.length+1,f&&o++,p&&o++,"."!==(m+=": "+y.source).slice(-1)&&(m+="."),i='<tfoot><td colspan="'+o+'">'+m+"</td></tfoot>"),'<table class="'+h+'"><caption>'+(r.caption||y.label||"")+"</caption><thead><tr>"+a+"</tr></thead><tbody>"+l+"</tbody>"+i+"</table>"}function o(e,t){var n={};return Array.isArray(e[t])?(e[t].forEach((function(e,t){null!==e&&(n[String(t)]=e)})),n):e[t]}function s(t,n){if(void 0===t)return null;void 0===n&&(n={}),"boolean"!=typeof n.ovalue&&(n.ovalue=!1),"boolean"!=typeof n.ostatus&&(n.ostatus=!1),"boolean"!=typeof n.instance&&(n.instance=!1);var r=n.vlabel||"Value",a=n.slabel||"Status",l=n.type||"array",i=n.label||"",s=n.header||null,u=[],c=[],d=[],f=[],h={},v={},b=function(e,t){for(var n=1,r=0,a=0;a<E;a++)r+=(n*=a>0?t[E-a]:1)*e[E-a-1];return r},p=function(){var e=t[S][r];d[b(x,c)]=isNaN(e)?null:e};switch(l){case"array":t=function(e){for(var t=e[0],n=e.slice(1),r=[],a=0,l=n.length;a<l;a++){for(var i=0,o=t.length,s={};i<o;i++)s[t[i]]=n[a][i];r.push(s)}return r}(t);break;case"object":t=function(e){for(var t=e.cols.map((function(e){return e.id})),n=e.rows,r=[],a=0,l=n.length;a<l;a++){for(var i=0,o=t.length,s={};i<o;i++)s[t[i]]=n[a].c[i].v;r.push(s)}return r}(t)}var g,m=t.length;for(var y in n.hasOwnProperty("drop")&&Array.isArray(n.drop)&&n.drop.length&&t.forEach((function(e){n.drop.forEach((function(t){delete e[t]}))})),t[0])if(y!==r)if(y!==a){if(u.push(y),s)g=s.dimension[y],h[y]=g.category.index;else{h[y]=[];for(var w=0;w<m;w++){var O=t[w][y];-1===h[y].indexOf(O)&&h[y].push(O)}}c.push(h[y].length),v[y]={label:s?g.label:y,category:{index:h[y]}},s&&(v[y].category.label=g.category.label,g.category.unit&&(v[y].category.unit=g.category.unit))}else p=function(){var e=t[S][r],n=t[S][a];d[b(x,c)]=isNaN(e)?null:e,f[b(x,c)]=""===n?null:n};for(var E=u.length,S=0;S<m;S++){for(var x=[],A=0;A<E;A++){var P=u[A];x.push(h[P].indexOf(t[S][P]))}p()}var D={version:"2.0",class:"dataset",value:d,dimension:v,id:u,size:c};return i&&(D.label=i),f.length&&(D.status=f),s&&(s.label&&(D.label=s.label),s.source&&(D.source=s.source),s.updated&&(D.updated=s.updated),s.href&&(D.href=s.href),s.role&&(D.role=s.role)),n.ovalue&&(D.value=o(D,"value")),n.ostatus&&D.hasOwnProperty("status")&&(D.status=o(D,"status")),n.instance?e(D):D}function u(e,t){if(void 0===e)return null;void 0===t&&(t={});var n,r,a,l=[],i=null,o=null,u=!1,c={time:[],geo:[],metric:[]},d="jsonstat"===e.substring(0,8),f=d?"value":t.vlabel,h=d?"status":t.slabel,v=d?e.substring(8,9):t.delimiter||",",b=";"===v?t.decimal||",":t.decimal||".",p=function(e,t){t=t||",";for(var n,r,a=new RegExp("(\\"+t+'|\\r?\\n|\\r|^)(?:"([^"]*(?:""[^"]*)*)"|([^"\\'+t+"\\r\\n]*))","gi"),l=[[]],i=null;i=a.exec(e);)(r=i[1]).length&&r!=t&&l.push([]),n=i[2]?i[2].replace(new RegExp('""',"g"),'"'):i[3],l[l.length-1].push(n);return l}(e.trim(),v);if(d){for(b=p[0][1],a=p[0][2],p.shift();"data"!==p[0][0];)l.push(p.shift());p.shift(),o={dimension:{}},l.forEach((function(e){var t,n,r,l,i,s,d,f;switch(e[0]){case"dimension":if(o.dimension[e[1]]={},(l=o.dimension[e[1]]).label=e[2],l.category={},(i=l.category).index=[],n={},r=2*e[3]+3,e.length>=r){for(t=4;t<r;t++)d=e[t],f=e[++t],Object.defineProperty(n,d,{value:f,writable:!0,configurable:!0,enumerable:!0}),i.label=n,i.index.push(d);"string"==typeof e[t]&&-1!==["time","geo","metric"].indexOf(e[t])&&(c[e[t]].push(e[1]),u=!0,"metric"===e[t]&&"string"==typeof e[++t]&&(i.unit={},i.index.forEach((function(n,r){var l=e[t+r].split(a);i.unit[n]={},s=i.unit[n],void 0!==l[0]&&""!==l[0]&&(s.decimals=1*l[0]),void 0!==l[1]&&""!==l[1]&&(s.label=l[1]),void 0!==l[2]&&""!==l[2]&&(s.symbol=l[2]),void 0!==l[1]&&-1!==["start","end"].indexOf(l[3])&&(s.position=l[3])}))))}break;case"label":case"source":case"updated":case"href":o[e[0]]=e[1]||null}})),u&&(c.time.length||delete c.time,c.geo.length||delete c.geo,c.metric.length||delete c.metric,o.role=c)}if(n=p.length,r=p[0].length,void 0!==f){for(;r--;)if(p[0][r]===f){i=r;break}if(null===i)return null}else i=r-1,f=p[0][i];if(","===b)for(r=1;r<n;r++)p[r][i]=Number(p[r][i].replace(",","."));else for(r=1;r<n;r++)p[r][i]=Number(p[r][i]);return s(p,{header:o,vlabel:f,slabel:h,type:"array",label:t.label||"",ovalue:t.ovalue||!1,ostatus:t.ostatus||!1,instance:t.instance||!1})}function c(t,n){if("object"!=typeof t)return null;if(t.hasOwnProperty("data")&&t.hasOwnProperty("meta")&&t.data.hasOwnProperty("dataSets")&&t.data.hasOwnProperty("structures")&&Array.isArray(t.data.structures)&&(t.dataSets=t.data.dataSets,t.structure=t.data.structures[0],t.header=t.meta),!t.hasOwnProperty("dataSets")||!Array.isArray(t.dataSets))return null;if(1!==t.dataSets.length)return null;t.dataSets[0].hasOwnProperty("observations")||function(e){var t=e.dataSets[0],n=t.series,r=e.structure,a=r.dimensions,l={};Object.keys(n).forEach((function(e){var t=n[e].observations;Object.keys(t).forEach((function(r){l[e+":"+r]=t[r].concat(n[e].attributes)}))})),t.observations=l,delete t.series,a.observation=a.series.concat(a.observation),delete a.series,r.attributes.observation=r.attributes.observation.concat(r.attributes.series),delete r.attributes.series}(t),void 0===n?n={ovalue:!1,ostatus:!1,instance:!1}:("boolean"!=typeof n.ovalue&&(n.ovalue=!1),"boolean"!=typeof n.ostatus&&(n.ostatus=!1),"boolean"!=typeof n.instance&&(n.instance=!1));var r=t.structure,a=t.dataSets[0].observations,l=r.attributes.observation,i=r.dimensions;if(!i.hasOwnProperty("observation"))return null;if(i.hasOwnProperty("series")&&Object.keys(i.series).length)return null;var o=1,s=[],u=[],c={},d=[],f={time:[],geo:[]},h=function(){},v=function(e,t){for(var n=e.size,r=n.length-t.length;r--;)t.push(0);for(var a=0,l=n.length,i=0,o=1;a<l;a++)i+=(o*=a>0?n[l-a]:1)*t[l-a-1];return i},b=function(e){if(c[e.id]={label:e.name},e.hasOwnProperty("role"))switch(e.role){case"REF_AREA":f.geo.push(e.id);break;case"TIME_PERIOD":f.time.push(e.id)}Object.defineProperty(c[e.id],"category",{value:{index:[],label:{}},writable:!0,enumerable:!0}),s.push(e.id),u.push(e.values.length),o*=e.values.length;var t=c[e.id].category;e.values.forEach((function(e){t.index.push(e.id),Object.defineProperty(t.label,e.id,{value:e.name,writable:!0,enumerable:!0})}))},p=t.header.links?t.header.links.find((function(e){return"request"===e.rel})):null,g=l.findIndex((function(e){return"OBS_STATUS"===e.id}));-1!==g&&(l[g].values.length?d=l[g].values:g=-1),i.observation.forEach(b),i.hasOwnProperty("dataSet")&&i.dataSet.forEach(b);var m={version:"2.0",class:"dataset",updated:t.header.prepared||null,source:t.header.sender.name||null,label:r.name||null,id:s,size:u,dimension:c,value:n.ovalue?{}:new Array(o).fill(null)};for(var y in p&&(m.link={alternate:[{type:"application/vnd.sdmx.data+json",href:p.href}]}),f.geo.length+f.time.length>0&&(f.time.length||delete f.time,f.geo.length||delete f.geo,m.role=f),-1!==g&&(m.status=n.ostatus?{}:new Array(o).fill(null),m.extension={status:{label:{}}},d.forEach((function(e){m.extension.status.label[e.id]=e.name})),h=n.ostatus?function(){var e=a[y][g];null!==e&&(m.status[v(m,w)]=d[e].id)}:function(){var e=a[y][g];m.status[v(m,w)]=null===e?null:d[e].id}),g++,a){var w=y.split(":");n.ovalue&&null===a[y][0]||(m.value[v(m,w)]=a[y][0]),h()}return n.instance?e(m):m}function d(t,n){if(void 0===t||!Array.isArray(t))return null;var r=JSON.parse(JSON.stringify(t)),a=r[0];if(!a.hasOwnProperty("version")||!a.hasOwnProperty("class")||"dataset"!==a.class)return null;void 0===n&&(n={});var l=void 0===n.label?null:n.label,i=void 0===n.by?null:n.by,o=[];if(null===i){for(var u=1,c=r.length;u<c;u++)o=o.concat(r[u].value);return a.value=o,null!==l&&(a.label=l),a}var d,f,h,v=function(e,t,n){if(Array.isArray(e))e=e.concat(t);else for(var r in t)e[r]=0===t[r]?n:t[r];return e};r.forEach((function(t,n){var r=e(t).toTable({status:!0}),a=t.dimension[i].category;0===n?(o=[r[0]],d=a.index,f=a.label,h=a.unit):(d=function(e,t,n){if(Array.isArray(e))e=e.concat(t);else for(var r in t)e[r]=t[r]+n;return e}(d,a.index,Object.keys(d).length),f=v(f,a.label,n),h=v(h,a.unit,n)),o=o.concat(r.slice(1))}));var b=s(o);return a.value=b.value,a.size=b.size,a.status=b.status||null,a.label=l||"",a.href=null,a.dimension[i].category.index=d||null,a.dimension[i].category.label=f||null,a.dimension[i].category.unit=h||null,a}function f(e,t){return null==e?"":-1!==e.indexOf(t)?'"'+e+'"':e}function h(e,r){if(void 0===e)return null;void 0===r&&(r={});var a=!0===r.rich,l=r.content||"label",i=r.field||"label",o=a?"value":r.vlabel||"Value",s=a?"status":r.slabel||"Status",u=!0===r.status,c=r.na||"n/a",d=r.delimiter||",",h=r.separator||"|",v=";"===d?r.decimal||",":r.decimal||".",b=!0===r.array,p=t(e,r.dsid||0),g=b?[]:"",m=b?[]:"",y=b?function(e){g.push(e)}:function(e){g+=e+"\n"},w=b?function(e){m.push(e)}:function(e){m+=e+"\n"};if(!n(p))return null;a&&(u=null!==p.status);var O=p.toTable({vlabel:o,slabel:s,status:u,field:a?"id":i,content:a?"id":l,type:"array"}),E=O[0].indexOf("id"===i?"value":o),S=u?O[0].indexOf("id"===i?"status":s):-1;return O.forEach((function(e,t){e.forEach((function(n,r){t&&r===E?null===n?e[r]=f(c,d):"."!==v&&(e[r]=String(e[r]).replace(".",v)):e[r]=t&&r===S&&null===n?"":f(e[r],d)})),y(e.join(d))})),a&&(w("jsonstat"+d+v+d+h),["label","source","updated","href"].forEach((function(e){p[e]&&w(e+d+f(p[e],d))})),p.id.forEach((function(e,t){var n=[],r=p.Dimension(t),a=r.role,l=!1,i="";i+="dimension"+d+f(e,d)+d+f(r.label,d)+d+r.length,"metric"===a&&r.__tree__.category.unit&&(l=!0),r.id.forEach((function(e,t){var a=[],o=r.Category(t);i+=d+f(e,d)+d+f(o.label,d),l&&(a.push(o.unit.hasOwnProperty("decimals")?o.unit.decimals:""),a.push(o.unit.label||""),o.unit.symbol&&(a.push(o.unit.symbol),a.push(o.unit.position)),n.push(f(a.join(h),d)))})),null!==a&&"classification"!==a&&(i+=d+r.role,l&&(i+=d+n.join(d))),w(i)})),g=b?m.concat(["data"],g):m+"data\n"+g),g}String.prototype.capitalize=function(){return this.charAt(0).toUpperCase()+this.slice(1)};var v="3.3.0";export{i as datalist,u as fromCSV,c as fromSDMX,s as fromTable,d as join,l as tbrowser,h as toCSV,v as version};
1
+ // jsonstat-suite v3.4.0 Copyright 2023 Xavier Badosa https://jsonstat.com
2
+ import e from"jsonstat-toolkit";function t(t,n){return null==t?null:("string"!=typeof t&&void 0!==t.length||(t=e(t)),0===t.length||"dataset"!==t.class&&"collection"!==t.class&&"bundle"!==t.class?null:"dataset"===t.class?t:t.Dataset(n))}function n(e){if(null===e||0===e.length||"dataset"!==e.class)return!1;for(var t=e.length,n=1;t--;)n*=e.Dimension(t).length;return n===e.n}function r(e,t,n){var r,a,l,i,o;return(t.label||n).capitalize()+(a=t,o="",(r=e)&&"metric"===r.role&&a.unit&&(l=a.unit.hasOwnProperty("label")?a.unit.label:"")+(i=a.unit.hasOwnProperty("symbol")?a.unit.symbol:"")!==""&&(o=" ("+(o=""===i?l:""===l?i:"start"===a.unit.position?i+l:l+" "+i)+")"),o)}function a(e,t,n){var a,l='<select name="'+t+'">',i=[];if(null!==n[1]){if(a=e.id,i=e.Dimension(),2===a.length)return(e.Dimension(n[0]).label||n[0]).capitalize()}else{var o=e.Dimension(t);if(a=o.id,i=o.Category(),1===a.length)return}return a.forEach((function(e,t){var a=e!==n[0]?"":'selected="selected" ';null!==n[1]&&e===n[1]||(l+="<option "+a+'value="'+e+'">'+r(o,i[t],e)+"</option>")})),l+="</select>"}function l(e,l,i){function o(e){void 0!==l?l.innerHTML=s[e]:window.alert(s[e])}if(void 0!==e)if(void 0!==l){void 0===i&&(i={});var s=void 0===i.i18n||void 0===i.i18n.msgs?{urierror:"tbrowser: A valid JSON-stat input must be specified.",selerror:"tbrowser: A valid selector must be specified.",jsonerror:"The request did not return a valid JSON-stat dataset.",dimerror:"Only one dimension was found in the dataset. At least two are required.",dataerror:"Selection returned no data!",source:"Source",filters:"Filters",constants:"Constants",rc:"Rows &amp; Columns",na:"n/a"}:i.i18n.msgs,u=void 0===i.i18n||void 0===i.i18n.locale?"en-US":i.i18n.locale,c=i.dsid||0,d=i.status||!1,f=i.tblclass||"",h=i.nonconst||!1,v=t(e,c);if(n(v)){if(h)var b=function(e){var t=0,n=e.size.slice(0),r=[];return n.forEach((function(n,a){var l=a-t,i=e.Dimension(l);1===n&&(delete e.__tree__.dimension[e.id[l]],e.size.splice(l,1),e.id.splice(l,1),e.length--,t++,r.push(i.label.capitalize()+": "+i.Category(0).label.capitalize()))})),r}(v);1!==v.length?function e(t,n,l,o){"function"==typeof i.callback&&i.callback(l);var c="",f="",v="",p="",g=l.rows,m=n.Dimension(g),y=m.id,w=l.cols,O=n.Dimension(w),E=O.id,S=n.role&&n.role.metric?n.role.metric[0]:null,x=null!==S?n.Dimension(S):null,A=function(e){return e.hasOwnProperty("unit")&&e.unit&&e.unit.hasOwnProperty("decimals")?e.unit.decimals:null},D=l.filters,P=JSON.parse(JSON.stringify(D)),j=[],k="",z="",N=n.source?s.source+": "+n.source:"",C=null!==n.label?'<span class="label">'+n.label.capitalize()+"</span>":"";for(var R in h&&b.length&&(C='<span class="label">'+b.join(". ")+"</span>"),""!==N&&"."!==N.slice(-1)&&(N+="."),v+="<caption>"+C+"<form>",D){var _=n.Dimension(R),L=_.label?_.label.capitalize():R.capitalize();_.length>1?k+="<p>"+a(n,R,[D[R],null])+" <strong>"+L+"</strong></p>":j.push({label:L,value:r(_,_.Category(0)),name:R,id:_.id[0]})}""!==k&&(k='<fieldset id="filters"><legend>'+s.filters+"</legend>"+k+"</fieldset>"),j.forEach((function(e){z+="<p>"+e.value+" <strong>"+e.label+'</strong></p><input type="hidden" name="'+e.name+'" value="'+e.id+'" />'})),""!==z&&(z='<fieldset id="constants"><legend>'+s.constants+"</legend>"+z+"</fieldset>"),v+=z+k+'<fieldset id="rowscols"><legend>'+s.rc+"</legend>"+a(n,"rows",[g,w])+" <a>&#x2194;</a> "+a(n,"cols",[w,g])+"</fieldset></form></caption>",p+="<tbody>";var T=Number.toLocaleString&&"none"!==u?function(e,t){return null===t?e.toLocaleString(u):e.toLocaleString(u,{minimumFractionDigits:t,maximumFractionDigits:t})}:function(e,t){return null===t?e:e.toFixed(t)};if(y.forEach((function(e){P[g]=e;var t=n.Data(P),a=function(e,t){var n,r=w!==S?null===x?null:A(x.Category(P[S])):A(O.Category(t));null!==e.value?(n=T(e.value,r),d&&null!==e.status&&(n+=" ("+e.status+")")):n=e.status||s.na,p+="<td>"+n+"</td>"};null!==t?(p+='<tr><th scope="row">'+r(m,m.Category(e))+"</th>",Array.isArray(t)?t.forEach((function(e,t){a(e,t)})):a(t,0),p+="</tr>"):p="ERROR"})),"ERROR"===p)return s.dataerror;p+="</tbody>",c+="<thead><tr><th></th>",E.forEach((function(e){c+='<th scope="col">'+r(O,O.Category(e))+"</th>"})),c+="</tr></thead>",""!==N&&(f='<tfoot><tr><td colspan="'+(E.length+1)+'">'+N+"</td></tr></tfoot>"),t.innerHTML='<table class="'+o+'">'+v+c+p+f+"</table>",[].slice.call(t.querySelectorAll("select")).forEach((function(r){r.addEventListener("change",(function(r){var a,l;e(t,n,function(e,t,n){var r={filters:{}};return n.forEach((function(e){"rows"===e.name||"cols"===e.name?r[e.name]=e.value:r.filters[e.name]=e.value})),"rowscols"===t&&e.id.forEach((function(t,n){t!==r.rows&&t!==r.cols?void 0===r.filters[t]&&(r.filters[t]=e.Dimension(n).id[0]):delete r.filters[t]})),r}(n,r.target.parentElement.getAttribute("id"),(a=t,l=[],[].slice.call(a.querySelectorAll("select, input")).forEach((function(e){l.push({name:e.name,value:e.value})})),l)),o)}),!1)})),t.querySelector("a").addEventListener("click",(function(){l.cols=g,l.rows=w,e(t,n,l,o)}),!1)}(l,v,function(e,t){if("object"==typeof t)return{rows:t.rows,cols:t.cols,filters:t.filters};var n,r,a={},l=[],i=e.id;if(t){var o="bigger"===t?function(e,t){return e.len<t.len?1:-1}:function(e,t){return e.len>t.len?1:-1};e.Dimension().forEach((function(e,t){l.push({id:i[t],len:e.length})})),l.sort(o),n=l[0].id,r=l[1].id}else n=i[0],r=i[1];return e.Dimension(n).length<e.Dimension(r).length&&(n=r+(r=n,"")),i.forEach((function(t){t!==n&&t!==r&&(a[t]=e.Dimension(t).id[0])})),{rows:n,cols:r,filters:a}}(v,i.preset),f):o("dimerror")}else o("jsonerror")}else o("selerror");else o("urierror")}function i(e,r){if(void 0===e)return null;void 0===r&&(r={});var a="",l="",i="",o=0,s=r.na||"n/a",u=r.dsid||0,c=r.vlabel||null,d=r.slabel||null,f=r.counter||!1,h=r.tblclass||"",v=r.numclass||"",b=r.valclass||"",p=r.status||!1,g=r.locale||"en-US",m=r.source||"Source",y=t(e,u),w=y.role&&y.role.metric?y.id.indexOf(y.role.metric[0]):null,O=y.Dimension({role:"metric"}),E={},S=Number.toLocaleString&&"none"!==g?function(e,t){return null===t?e.toLocaleString(g):e.toLocaleString(g,{minimumFractionDigits:t,maximumFractionDigits:t})}:function(e,t){return null===t?e:e.toFixed(t)},x=function(e,t){var n=null;e.forEach((function(e,r){var i=P===r?' class="'+v+" "+b+'"':"",o=s;t?(w===r&&(n=E[e]),null!==e&&(o=P===r?S(e,n):e),l+="<td"+i+">"+o+"</td>"):a+="<th"+i+">"+e+"</th>"}))},A=f?function(e,t){t?l+='<tr><td class="'+v+'">'+t+"</td>":a+='<th class="'+v+'">#</th>',x(e,t),l+="</tr>"}:function(e,t){l+="<tr>",x(e,t),l+="</tr>"};if(!n(y))return null;O&&O[0].Category().forEach((function(e){var t=e.unit&&e.unit.hasOwnProperty("decimals")?e.unit.decimals:null;E[e.label]=t}));var D=y.toTable({status:p,vlabel:c,slabel:d}),P=D[0].length-1;return D.forEach((function(e,t){A(e,t)})),y.source&&(o=y.length+1,f&&o++,p&&o++,"."!==(m+=": "+y.source).slice(-1)&&(m+="."),i='<tfoot><td colspan="'+o+'">'+m+"</td></tfoot>"),'<table class="'+h+'"><caption>'+(r.caption||y.label||"")+"</caption><thead><tr>"+a+"</tr></thead><tbody>"+l+"</tbody>"+i+"</table>"}function o(e,t){var n={};return Array.isArray(e[t])?(e[t].forEach((function(e,t){null!==e&&(n[String(t)]=e)})),n):e[t]}function s(t,n){if(void 0===t)return null;void 0===n&&(n={}),"boolean"!=typeof n.ovalue&&(n.ovalue=!1),"boolean"!=typeof n.ostatus&&(n.ostatus=!1),"boolean"!=typeof n.instance&&(n.instance=!1);var r=n.vlabel||"Value",a=n.slabel||"Status",l=n.type||"array",i=n.label||"",s=n.header||null,u=[],c=[],d=[],f=[],h={},v={},b=function(e,t){for(var n=1,r=0,a=0;a<E;a++)r+=(n*=a>0?t[E-a]:1)*e[E-a-1];return r},p=function(){var e=t[S][r];d[b(x,c)]=isNaN(e)?null:e};switch(l){case"array":t=function(e){for(var t=e[0],n=e.slice(1),r=[],a=0,l=n.length;a<l;a++){for(var i=0,o=t.length,s={};i<o;i++)s[t[i]]=n[a][i];r.push(s)}return r}(t);break;case"object":t=function(e){for(var t=e.cols.map((function(e){return e.id})),n=e.rows,r=[],a=0,l=n.length;a<l;a++){for(var i=0,o=t.length,s={};i<o;i++)s[t[i]]=n[a].c[i].v;r.push(s)}return r}(t)}var g,m=t.length;for(var y in n.hasOwnProperty("drop")&&Array.isArray(n.drop)&&n.drop.length&&t.forEach((function(e){n.drop.forEach((function(t){delete e[t]}))})),t[0])if(y!==r)if(y!==a){if(u.push(y),s)g=s.dimension[y],h[y]=g.category.index;else{h[y]=[];for(var w=0;w<m;w++){var O=t[w][y];-1===h[y].indexOf(O)&&h[y].push(O)}}c.push(h[y].length),v[y]={label:s?g.label:y,category:{index:h[y]}},s&&(v[y].category.label=g.category.label,g.category.unit&&(v[y].category.unit=g.category.unit))}else p=function(){var e=t[S][r],n=t[S][a];d[b(x,c)]=isNaN(e)?null:e,f[b(x,c)]=""===n?null:n};for(var E=u.length,S=0;S<m;S++){for(var x=[],A=0;A<E;A++){var D=u[A];x.push(h[D].indexOf(t[S][D]))}p()}var P={version:"2.0",class:"dataset",value:d,dimension:v,id:u,size:c};return i&&(P.label=i),f.length&&(P.status=f),s&&(s.label&&(P.label=s.label),s.source&&(P.source=s.source),s.updated&&(P.updated=s.updated),s.href&&(P.href=s.href),s.role&&(P.role=s.role)),n.ovalue&&(P.value=o(P,"value")),n.ostatus&&P.hasOwnProperty("status")&&(P.status=o(P,"status")),n.instance?e(P):P}function u(e,t){if(void 0===e)return null;void 0===t&&(t={});var n,r,a,l=[],i=null,o=null,u=!1,c={time:[],geo:[],metric:[]},d="jsonstat"===e.substring(0,8),f=d?"value":t.vlabel,h=d?"status":t.slabel,v=d?e.substring(8,9):t.delimiter||",",b=";"===v?t.decimal||",":t.decimal||".",p=function(e,t){t=t||",";for(var n,r,a=new RegExp("(\\"+t+'|\\r?\\n|\\r|^)(?:"([^"]*(?:""[^"]*)*)"|([^"\\'+t+"\\r\\n]*))","gi"),l=[[]],i=null;i=a.exec(e);)(r=i[1]).length&&r!=t&&l.push([]),n=i[2]?i[2].replace(new RegExp('""',"g"),'"'):i[3],l[l.length-1].push(n);return l}(e.trim(),v);if(d){for(b=p[0][1],a=p[0][2],p.shift();"data"!==p[0][0];)l.push(p.shift());p.shift(),o={dimension:{}},l.forEach((function(e){var t,n,r,l,i,s,d,f;switch(e[0]){case"dimension":if(o.dimension[e[1]]={},(l=o.dimension[e[1]]).label=e[2],l.category={},(i=l.category).index=[],n={},r=2*e[3]+3,e.length>=r){for(t=4;t<r;t++)d=e[t],f=e[++t],Object.defineProperty(n,d,{value:f,writable:!0,configurable:!0,enumerable:!0}),i.label=n,i.index.push(d);"string"==typeof e[t]&&-1!==["time","geo","metric"].indexOf(e[t])&&(c[e[t]].push(e[1]),u=!0,"metric"===e[t]&&"string"==typeof e[++t]&&(i.unit={},i.index.forEach((function(n,r){var l=e[t+r].split(a);i.unit[n]={},s=i.unit[n],void 0!==l[0]&&""!==l[0]&&(s.decimals=1*l[0]),void 0!==l[1]&&""!==l[1]&&(s.label=l[1]),void 0!==l[2]&&""!==l[2]&&(s.symbol=l[2]),void 0!==l[1]&&-1!==["start","end"].indexOf(l[3])&&(s.position=l[3])}))))}break;case"label":case"source":case"updated":case"href":o[e[0]]=e[1]||null}})),u&&(c.time.length||delete c.time,c.geo.length||delete c.geo,c.metric.length||delete c.metric,o.role=c)}if(n=p.length,r=p[0].length,void 0!==f){for(;r--;)if(p[0][r]===f){i=r;break}if(null===i)return null}else i=r-1,f=p[0][i];if(","===b)for(r=1;r<n;r++)p[r][i]=Number(p[r][i].replace(",","."));else for(r=1;r<n;r++)p[r][i]=Number(p[r][i]);return s(p,{header:o,vlabel:f,slabel:h,type:"array",label:t.label||"",ovalue:t.ovalue||!1,ostatus:t.ostatus||!1,instance:t.instance||!1})}function c(t,n){if("object"!=typeof t)return null;if(t.hasOwnProperty("data")&&t.hasOwnProperty("meta")&&t.data.hasOwnProperty("dataSets")&&t.data.hasOwnProperty("structures")&&Array.isArray(t.data.structures)&&(t.dataSets=t.data.dataSets,t.structure=t.data.structures[0],t.header=t.meta),!t.hasOwnProperty("dataSets")||!Array.isArray(t.dataSets))return null;if(1!==t.dataSets.length)return null;t.dataSets[0].hasOwnProperty("observations")||function(e){var t=e.dataSets[0],n=t.series,r=e.structure,a=r.dimensions,l={};Object.keys(n).forEach((function(e){var t=n[e].observations;Object.keys(t).forEach((function(r){l[e+":"+r]=t[r].concat(n[e].attributes)}))})),t.observations=l,delete t.series,a.observation=a.series.concat(a.observation),delete a.series,r.attributes.observation=r.attributes.observation.concat(r.attributes.series),delete r.attributes.series}(t),void 0===n?n={ovalue:!1,ostatus:!1,instance:!1}:("boolean"!=typeof n.ovalue&&(n.ovalue=!1),"boolean"!=typeof n.ostatus&&(n.ostatus=!1),"boolean"!=typeof n.instance&&(n.instance=!1));var r=t.structure,a=t.dataSets[0].observations,l=r.attributes.observation,i=r.dimensions;if(!i.hasOwnProperty("observation"))return null;if(i.hasOwnProperty("series")&&Object.keys(i.series).length)return null;var o=1,s=[],u=[],c={},d=[],f={time:[],geo:[]},h=function(){},v=function(e,t){for(var n=e.size,r=n.length-t.length;r--;)t.push(0);for(var a=0,l=n.length,i=0,o=1;a<l;a++)i+=(o*=a>0?n[l-a]:1)*t[l-a-1];return i},b=function(e){if(c[e.id]={label:e.name},e.hasOwnProperty("role"))switch(e.role){case"REF_AREA":f.geo.push(e.id);break;case"TIME_PERIOD":f.time.push(e.id)}Object.defineProperty(c[e.id],"category",{value:{index:[],label:{}},writable:!0,enumerable:!0}),s.push(e.id),u.push(e.values.length),o*=e.values.length;var t=c[e.id].category;e.values.forEach((function(e){t.index.push(e.id),Object.defineProperty(t.label,e.id,{value:e.name,writable:!0,enumerable:!0})}))},p=t.header.links?t.header.links.find((function(e){return"request"===e.rel})):null,g=l.findIndex((function(e){return"OBS_STATUS"===e.id}));-1!==g&&(l[g].values.length?d=l[g].values:g=-1),i.observation.forEach(b),i.hasOwnProperty("dataSet")&&i.dataSet.forEach(b);var m={version:"2.0",class:"dataset",updated:t.header.prepared||null,source:t.header.sender.name||null,label:r.name||null,id:s,size:u,dimension:c,value:n.ovalue?{}:new Array(o).fill(null)};for(var y in p&&(m.link={alternate:[{type:"application/vnd.sdmx.data+json",href:p.href}]}),f.geo.length+f.time.length>0&&(f.time.length||delete f.time,f.geo.length||delete f.geo,m.role=f),-1!==g&&(m.status=n.ostatus?{}:new Array(o).fill(null),m.extension={status:{label:{}}},d.forEach((function(e){m.extension.status.label[e.id]=e.name})),h=n.ostatus?function(){var e=a[y][g];null!==e&&(m.status[v(m,w)]=d[e].id)}:function(){var e=a[y][g];m.status[v(m,w)]=null===e?null:d[e].id}),g++,a){var w=y.split(":");n.ovalue&&null===a[y][0]||(m.value[v(m,w)]=a[y][0]),h()}return n.instance?e(m):m}function d(t,n){if(void 0===t||!Array.isArray(t))return null;var r=JSON.parse(JSON.stringify(t)),a=r[0];if(!a.hasOwnProperty("version")||!a.hasOwnProperty("class")||"dataset"!==a.class)return null;void 0===n&&(n={});var l=void 0===n.label?null:n.label,i=void 0===n.by?null:n.by,o=[];if(null===i){for(var u=1,c=r.length;u<c;u++)o=o.concat(r[u].value);return a.value=o,null!==l&&(a.label=l),a}var d,f,h,v=function(e,t,n){if(Array.isArray(e))e=e.concat(t);else for(var r in t)e[r]=0===t[r]?n:t[r];return e};r.forEach((function(t,n){var r=e(t).toTable({status:!0}),a=t.dimension[i].category;0===n?(o=[r[0]],d=a.index,f=a.label,h=a.unit):(d=function(e,t,n){if(Array.isArray(e))e=e.concat(t);else for(var r in t)e[r]=t[r]+n;return e}(d,a.index,Object.keys(d).length),f=v(f,a.label,n),h=v(h,a.unit,n)),o=o.concat(r.slice(1))}));var b=s(o);return a.value=b.value,a.size=b.size,a.status=b.status||null,a.label=l||"",a.href=null,a.dimension[i].category.index=d||null,a.dimension[i].category.label=f||null,a.dimension[i].category.unit=h||null,a}function f(e,t){return null==e?"":-1!==e.indexOf(t)?'"'+e+'"':e}function h(e,r){if(void 0===e)return null;void 0===r&&(r={});var a=!1,l=!0===r.rich,i=r.content||"label",o=r.field||"label",s=l?"value":r.vlabel||"Value",u=l?"status":r.slabel||"Status",c=!0===r.status,d=r.na||"n/a",h=r.delimiter||",",v=r.separator||"|",b=";"===h?r.decimal||",":r.decimal||".",p=!0===r.array,g=t(e,r.dsid||0),m=p?[]:"",y=p?[]:"",w=p?function(e){m.push(e)}:function(e){m+=e+"\n"},O=p?function(e){y.push(e)}:function(e){y+=e+"\n"};if(!n(g))return null;l?c=null!==g.status:"[id] label"===i&&(a=!0,i="id");var E=g.toTable({vlabel:s,slabel:u,status:c,field:l?"id":o,content:l||a?"id":i,type:"array"}),S=E[0].indexOf("id"===o?"value":s),x=c?E[0].indexOf("id"===o?"status":u):-1;return E.forEach((function(e,t){e.forEach((function(n,r){var l,i=g.Dimension(r);t&&r===S?null===n?e[r]=f(d,h):"."!==b&&(e[r]=String(e[r]).replace(".",b)):t&&r===x&&null===n?e[r]="":(a&&t&&(l=i.Category(e[r]).label,e[r]="["+e[r]+"] "+l),e[r]=f(e[r],h))})),w(e.join(h))})),l&&(O("jsonstat"+h+b+h+v),["label","source","updated","href"].forEach((function(e){g[e]&&O(e+h+f(g[e],h))})),g.id.forEach((function(e,t){var n=[],r=g.Dimension(t),a=r.role,l=!1,i="";i+="dimension"+h+f(e,h)+h+f(r.label,h)+h+r.length,"metric"===a&&r.__tree__.category.unit&&(l=!0),r.id.forEach((function(e,t){var a=[],o=r.Category(t);i+=h+f(e,h)+h+f(o.label,h),l&&(a.push(o.unit.hasOwnProperty("decimals")?o.unit.decimals:""),a.push(o.unit.label||""),o.unit.symbol&&(a.push(o.unit.symbol),a.push(o.unit.position)),n.push(f(a.join(v),h)))})),null!==a&&"classification"!==a&&(i+=h+r.role,l&&(i+=h+n.join(h))),O(i)})),m=p?y.concat(["data"],m):y+"data\n"+m),m}String.prototype.capitalize=function(){return this.charAt(0).toUpperCase()+this.slice(1)};var v="3.4.0";export{i as datalist,u as fromCSV,c as fromSDMX,s as fromTable,d as join,l as tbrowser,h as toCSV,v as version};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "jsonstat-suite",
3
- "version": "3.3.0",
3
+ "version": "3.4.0",
4
4
  "description": "A library of high level functions built on top of the JSON-stat Javascript Toolkit (JJT)",
5
5
  "homepage": "https://jsonstat.com",
6
6
  "keywords": [
@@ -39,11 +39,11 @@
39
39
  "jsonstat-toolkit": "^1.4.2"
40
40
  },
41
41
  "devDependencies": {
42
- "@rollup/plugin-json": "^4.0.0",
43
- "@rollup/plugin-node-resolve": "^11.2.0",
44
- "@rollup/plugin-replace": "^2.2.1",
45
- "rollup": "^1.27.1",
46
- "rollup-plugin-terser": "^5.1.2"
42
+ "@rollup/plugin-json": "^6.0.0",
43
+ "@rollup/plugin-node-resolve": "^15.0.1",
44
+ "@rollup/plugin-replace": "^5.0.2",
45
+ "rollup": "^3.18.0",
46
+ "@rollup/plugin-terser": "^0.4.0"
47
47
  },
48
48
  "license": "Apache-2.0",
49
49
  "files": [
@@ -1,10 +1,11 @@
1
1
  import json from '@rollup/plugin-json';
2
2
  import replace from '@rollup/plugin-replace';
3
- import {terser} from "rollup-plugin-terser";
3
+ import terser from "@rollup/plugin-terser";
4
4
  import resolve from '@rollup/plugin-node-resolve';
5
- import * as pkg from "./package.json";
5
+ import { readFileSync } from "fs";
6
6
 
7
7
  const
8
+ pkg = JSON.parse(readFileSync(new URL("./package.json", import.meta.url), "utf8")),
8
9
  globals={ "jsonstat-toolkit": "JSONstat" },
9
10
  external=["jsonstat-toolkit"],
10
11
  preamble=`// ${pkg.name} v${pkg.version} Copyright ${(new Date).getFullYear()} ${pkg.author.name} ${pkg.homepage}`,