@kanunilabs/datagrid 1.3.0 → 1.3.2
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/dist/datagrid.umd.js +5 -5
- package/package.json +3 -3
package/dist/datagrid.umd.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
"use strict";var KanuniLabsDataGrid=(()=>{var co=Object.create;var gu=Object.defineProperty;var ho=Object.getOwnPropertyDescriptor;var po=Object.getOwnPropertyNames;var mo=Object.getPrototypeOf,go=Object.prototype.hasOwnProperty;var dr=(e=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(e,{get:(t,u)=>(typeof require<"u"?require:t)[u]}):e)(function(e){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+e+'" is not supported')});var fo=(e,t)=>{for(var u in t)gu(e,u,{get:t[u],enumerable:!0})},Xn=(e,t,u,r)=>{if(t&&typeof t=="object"||typeof t=="function")for(let n of po(t))!go.call(e,n)&&n!==u&&gu(e,n,{get:()=>t[n],enumerable:!(r=ho(t,n))||r.enumerable});return e};var cr=(e,t,u)=>(u=e!=null?co(mo(e)):{},Xn(t||!e||!e.__esModule?gu(u,"default",{value:e,enumerable:!0}):u,e)),Co=e=>Xn(gu({},"__esModule",{value:!0}),e);var k0={};fo(k0,{CHECKBOX_COLUMN_WIDTH:()=>Wt,DENSITY_ROW_HEIGHT:()=>Hr,DETAIL_COLUMN_WIDTH:()=>At,PRINT_MAX_ROWS:()=>Zr,ROW_DRAG_MIME:()=>Ut,ROW_NUMBER_COLUMN_WIDTH:()=>Et,THEME_ROW_HEIGHT:()=>Wr,buildHeaderMenu:()=>Ru,createGrid:()=>pa,isPackagedTheme:()=>Kr,measureBestFitWidth:()=>Nu,presetRowHeight:()=>ku});function wo(e){return e.kind==="group"}function at(e){return e.kind==="data"}function yo(e){return!Array.isArray(e)&&typeof e.load=="function"}function Ti(e){return typeof e=="string"||typeof e=="number"}var ei=new WeakMap;function Eo(e){if(typeof e.items=="function"||!Array.isArray(e.items))return null;let t=ei.get(e);if(t)return t;let u=new Map;for(let r of e.items)u.set(r.value,r.label);return ei.set(e,u),u}function wt(e,t){if(!e?.lookup)return null;let u=Eo(e.lookup);if(!u)return null;let r=u.get(t);return r===void 0?null:r}function Ie(e){let t=e?.band;return t==null?[]:typeof t=="string"?t===""?[]:[t]:t.filter(u=>typeof u=="string"&&u!=="")}function Pt(e){return e.join("\0")}function Ao(e,t){let u=e?.bandShow;if(u===void 0)return!1;let r=Ie(e);if(r.length===0)return!1;let n=!1;for(let i=0;i<r.length;i++)if(t.has(Pt(r.slice(0,i+1)))){n=!0;break}return u==="open"?n:!n}function Mi(e){let t=0;for(let u of e){let r=Ie(u.def).length;r>t&&(t=r)}return t}function Ii(e,t){if(t<=0)return[];let u=[];for(let r=0;r<t;r++){let n=[];for(let i of e){let a=Ie(i.def),l=r<a.length?a[r]:"",s=l==="",m=n[n.length-1];m!==void 0&&m.spacer===s&&m.label===l&&(s||bo(e,m.columnIds[0],i.state.id,r))?(m.columnIds.push(i.state.id),m.width+=i.state.width):n.push({label:l,columnIds:[i.state.id],width:i.state.width,level:r,spacer:s})}u.push(n)}return u}function bo(e,t,u,r){if(r===0)return!0;let n=e.find(s=>s.state.id===t),i=e.find(s=>s.state.id===u),a=Ie(n?.def),l=Ie(i?.def);for(let s=0;s<r;s++)if(a[s]!==l[s])return!1;return!0}var vo=/^\d{4}-\d{2}-\d{2}(?:[T ]\d{2}:\d{2}|$)/;function xo(e){return e==null||e===""?null:typeof e=="boolean"?"boolean":typeof e=="number"?Number.isFinite(e)?"number":null:e instanceof Date||typeof e=="string"&&vo.test(e)?"date":"string"}function Do(e){if(/^[A-Z0-9_]+$/.test(e))return e.replace(/_/g," ");let t=e.replace(/[_-]+/g," ").replace(/([a-z0-9])([A-Z])/g,"$1 $2").replace(/([A-Z]+)([A-Z][a-z])/g,"$1 $2").trim().split(/\s+/);if(t.length===0)return e;let u=t.map((r,n)=>r.toLowerCase()==="id"?"ID":n===0||/^[A-Z0-9]+$/.test(r)?r:r.toLowerCase());return u[0]=u[0].charAt(0).toUpperCase()+u[0].slice(1),u.join(" ")}function Li(e,t={}){let{sampleSize:u=50,exclude:r,include:n,humanizeHeaders:i=!0,defaults:a}=t;if(!e||e.length===0)return[];let l=new Set(r??[]),s=Math.min(e.length,Math.max(1,u)),m=new Map;for(let c=0;c<s;c++){let h=e[c];if(!(!h||typeof h!="object"))for(let[w,g]of Object.entries(h)){if(l.has(w))continue;m.get(w)==null&&m.set(w,xo(g))}}return(n?n.filter(c=>m.has(c)&&!l.has(c)):[...m.keys()]).map(c=>({...a,field:c,headerName:i?Do(c):c,...m.get(c)?{dataType:m.get(c)}:{}}))}var ot=(e,t)=>`${e}:${t}`;function Fo(e){if(typeof e=="number")return e;if(typeof e=="boolean")return e?1:0;if(e instanceof Date)return e.getTime();let t=Number(e);return Number.isNaN(t)?Number.NaN:t}function So(e,t){return t==="date"&&!(e instanceof Date)&&typeof e!="number"?Date.parse(String(e)):Fo(e)}function Mr(e,t,u,r=ot(e,t)){return{key:r,columnId:e,type:t,dataType:u,count:0,numericCount:0,sum:0,min:Number.POSITIVE_INFINITY,max:Number.NEGATIVE_INFINITY,distinct:t==="countDistinct"?new Set:null}}function Bo(e,t){if(e.count+=t.count,e.numericCount+=t.numericCount,e.sum+=t.sum,t.min<e.min&&(e.min=t.min),t.max>e.max&&(e.max=t.max),e.distinct&&t.distinct)for(let u of t.distinct)e.distinct.add(u)}function vu(e,t){let u=t==null;if(e.type==="count"){u||e.count++;return}if(e.distinct){u||e.distinct.add(String(t));return}if(u)return;let r=So(t,e.dataType);Number.isNaN(r)||(e.numericCount++,e.sum+=r,r<e.min&&(e.min=r),r>e.max&&(e.max=r))}function xu(e){switch(e.type){case"count":return e.count;case"countDistinct":return e.distinct?e.distinct.size:0;case"sum":return e.numericCount>0?e.sum:null;case"avg":return e.numericCount>0?e.sum/e.numericCount:null;case"min":return e.numericCount>0?e.min:null;case"max":return e.numericCount>0?e.max:null;default:return null}}function Pi(e,t,u,r,n,i){let a={};if(n.length===0)return a;let l=i?.effectiveValue,s=i?.effectiveRow,m=[];for(let c of n){let h=ot(c.columnId,c.type);if(c.type==="custom"){if(!c.calculate){a[h]=null;continue}let w=[];for(let g=t;g<u;g++){let y=e[g];if(!y||!at(y))continue;let F=r.getCellValue(y.data,c.columnId);w.push({row:s?s(y.key,y.data):y.data,value:l?l(y.key,c.columnId,F):F})}a[h]=c.calculate(w);continue}m.push(Mr(c.columnId,c.type,r.getDataType(c.columnId),h))}if(m.length>0){let c=m.length===1?m[0]:null;for(let h=t;h<u;h++){let w=e[h];if(!w||!at(w))continue;let g=w.data;if(c){let y=r.getCellValue(g,c.columnId);vu(c,l?l(w.key,c.columnId,y):y);continue}for(let y of m){let F=r.getCellValue(g,y.columnId);vu(y,l?l(w.key,y.columnId,F):F)}}for(let h of m)a[h.key]=xu(h)}return a}function ko(e,t,u,r){return Pi(e,0,e.length,t,u,r)}function Ro(e,t,u){let r=u?.effectiveValue,n=u?.effectiveRow,i=[],a=[],l=[];for(let s of t){if(s.type==="custom"){s.calculate?a.push({def:s,cells:[]}):l.push(ot(s.columnId,s.type));continue}i.push(Mr(s.columnId,s.type,e.getDataType(s.columnId)))}return{add(s,m,c){for(let h=m;h<c;h++){let w=s[h];if(!w||!at(w))continue;let g=w.data;for(let y of i){let F=e.getCellValue(g,y.columnId);vu(y,r?r(w.key,y.columnId,F):F)}for(let{def:y,cells:F}of a){let S=e.getCellValue(g,y.columnId);F.push({row:n?n(w.key,g):g,value:r?r(w.key,y.columnId,S):S})}}},finish(){let s={};for(let m of l)s[m]=null;for(let m of i)s[m.key]=xu(m);for(let{def:m,cells:c}of a)s[ot(m.columnId,m.type)]=m.calculate(c);return s}}}var ti=(e,t)=>`${e}::${t}`;function No(e,t,u){let r=u.columnIds,n=u.summaries,i=0,a=(m,c)=>{let h=t.getCellValue(e[m].data,c);return h==null?"":String(h)},l=(m,c,h,w)=>{let g=r[h],y=[],F=m;for(;F<c;){let S=t.getCellValue(e[F].data,g),T=S==null?"":String(S),N=F+1;for(;N<c&&a(N,g)===T;)N++;let V=w?`${w}|${ti(g,T)}`:ti(g,T),K={columnId:g,value:S,label:T,key:V,level:h,from:F,to:N,count:N-F,children:null};n&&n.length>0&&(K.aggregates=Pi(e,F,N,t,n)),i++,h+1<r.length&&(K.children=l(F,N,h+1,V)),y.push(K),F=N}return y},s=r.length===0?[]:l(0,e.length,0,"");return{levels:r,roots:s,totalGroupCount:i,nodes:e}}function To(e,t){let{collapsedKeys:u,collapsedByDefault:r=!1}=t,n=[],i=0,a=l=>{for(let s of l){let m=r?!u.has(s.key):u.has(s.key),c={kind:"group",key:s.key,columnId:s.columnId,value:s.value,label:s.label,count:s.count,level:s.level,expanded:!m};if(s.aggregates&&(c.aggregates=s.aggregates),n.push(c),i++,!m)if(s.children)a(s.children);else for(let h=s.from;h<s.to;h++)n.push(e.nodes[h])}};return a(e.roots),{nodes:n,groupCount:i}}function Mo(e){let t=[],u=r=>{for(let n of r)t.push(n.key),n.children&&u(n.children)};return u(e.roots),t}function hr(e,t){let u=t==null?[]:Array.isArray(t)?[...t]:[t];if(u.length===0)return[...e];let r=u.map(i=>({columnId:i,direction:e.find(a=>a.columnId===i)?.direction??"asc"})),n=e.filter(i=>!u.includes(i.columnId));return[...r,...n]}function Io(e,t){let u=new Map,r=new Map,n=new Set,i,a,l=!1;for(let m of e){if(m.add){for(let c of m.add){let h=t(c);u.set(h,c),r.delete(h)}l||(l=!0,i=m.addPosition,a=m.addBeforeKey)}if(m.update)for(let c of m.update){let h=t(c);if(u.has(h)){u.set(h,c);continue}n.has(h)||r.set(h,c)}if(m.remove)for(let c of m.remove){let h=Ti(c)?c:t(c);if(u.has(h)){u.delete(h),r.delete(h);continue}r.delete(h),n.add(h)}}let s={};return u.size>0&&(s.add=[...u.values()],i!==void 0&&(s.addPosition=i),a!==void 0&&(s.addBeforeKey=a)),r.size>0&&(s.update=[...r.values()]),n.size>0&&(s.remove=[...n]),s}function Lo(e){return!e.add?.length&&!e.update?.length&&!e.remove?.length}function Ir(e){return e.nodes!==void 0}var Gi="row",Lr="set",Vt="__default",Po=/[\u0130\u0131]/,Go=/[\u0130\u0131]/g;function te(e){return Po.test(e)?e.replace(Go,"i").toLowerCase():e.toLowerCase()}var Oo=[{token:"yyyy",kind:"year"},{token:"yy",kind:"year"},{token:"MM",kind:"month"},{token:"dd",kind:"day"}];function Vo(e){let t=[],u="",r=0;for(;r<e.length;){let n=Oo.find(i=>e.startsWith(i.token,r));if(!n){u+=e[r],r+=1;continue}u&&(t.push({kind:"literal",text:u}),u=""),t.push({kind:n.kind,length:n.token.length}),r+=n.token.length}return u&&t.push({kind:"literal",text:u}),t}function zo(e){if(e==null||e==="")return null;if(e instanceof Date)return Number.isNaN(e.getTime())?null:e;if(typeof e=="number"){let n=new Date(e);return Number.isNaN(n.getTime())?null:n}let t=String(e),u=/^(\d{4})-(\d{2})-(\d{2})$/.exec(t);if(u)return new Date(Number(u[1]),Number(u[2])-1,Number(u[3]));let r=new Date(t);return Number.isNaN(r.getTime())?null:r}var fu=new Map;function Ho(e){let t=fu.get(e);return t||(fu.size>=64&&fu.clear(),t=Vo(e),fu.set(e,t)),t}function Pr(e,t){let u=zo(e);if(!u)return"";let r=(n,i)=>String(n).padStart(i,"0");return Ho(t).map(n=>{if(n.kind==="literal")return n.text;if(n.kind==="day")return r(u.getDate(),n.length);if(n.kind==="month")return r(u.getMonth()+1,n.length);let i=u.getFullYear();return n.length>2?r(i,n.length):r(i%100,2)}).join("")}function Du(e,t,u){let r=wt(e,t);if(r!==null)return r;if(e?.valueFormatter&&u!==void 0){let n=e.valueFormatter(t,u);return n==null?"":String(n)}return t==null?"":String(t)}function Oi(e){return e?typeof e.valueFormatter=="function"||!!e.dateFormat&&e.dataType==="date":!1}function Vi(e,t,u){if(!e||wt(e,t)!==null)return null;let r;try{if(typeof e.valueFormatter=="function")r=e.valueFormatter(t,u);else if(e.dateFormat&&e.dataType==="date"&&t!=null)r=Pr(t,e.dateFormat);else return null}catch{return null}return typeof r=="number"?String(r):typeof r=="string"&&r!==""?r:null}var ui=-1,xr="\0display:";function Ko(e){return xr+e}function Gr(e){return e.startsWith(xr)?e.slice(xr.length):null}function zi(e,t,u){return Vi(e.getDef(t),e.getCellValue(u,t),u)}function Fu(e){return e==null||typeof e=="number"&&Number.isNaN(e)}function Hi(e){if(typeof e=="number")return e;if(typeof e=="boolean")return e?1:0;if(e instanceof Date)return e.getTime();let t=Number(e);return Number.isNaN(t)?Number.NaN:t}function Ki(e){if(e instanceof Date)return e.getTime();if(typeof e=="number")return e;let t=Date.parse(String(e));return Number.isNaN(t)?Number.NaN:t}function Wi(e,t,u,r=!1){let n=e.length,i=0,a=Gr(u),l=a===null?t.getDataType(u):"string",s=a!==null?w=>zi(t,a,w):r?w=>t.getSortValue(w,u):w=>t.getCellValue(w,u);if(l==="number"||l==="boolean"||l==="date"){let w=new Float64Array(n),g=l==="date"?Ki:Hi,y=[],F=new Map,S=new Int32Array(n),T=!0;return{total:n,get done(){return i},step(N){let V=Math.min(n,i+N);for(;i<V;i++){let K=s(e[i]);if(Fu(K)){w[i]=Number.NaN,S[i]=ui;continue}w[i]=g(K),typeof K!="number"&&(T=!1);let Z=String(K),W=F.get(Z);W===void 0&&(W=y.length,y.push(Z),F.set(Z,W)),S[i]=W}return i<n},finish(){return T?{kind:"numeric",values:w}:{kind:"numeric",values:w,searchCodes:S,searchDictionary:y}}}}let m=new Int32Array(n),c=[],h=new Map;return{total:n,get done(){return i},step(w){let g=Math.min(n,i+w);for(;i<g;i++){let y=s(e[i]);if(Fu(y)){m[i]=ui;continue}let F=String(y),S=h.get(F);S===void 0&&(S=c.length,c.push(F),h.set(F,S)),m[i]=S}return i<n},finish(){return{kind:"text",codes:m,dictionary:c}}}}function Wo(e,t,u,r=!1){let n=Wi(e,t,u,r);return n.step(n.total),n.finish()}var ri=new WeakMap;function Uo(e){let t=ri.get(e);if(t!==void 0)return t;let u=$o(e);return ri.set(e,u),u}function $o(e){let t=e.resolvedOptions();if(t.sensitivity!=="base"||t.numeric!==!0||t.ignorePunctuation||t.usage!=="sort"||t.collation!=="default")return!1;let u=[];for(let r=32;r<=126;r++)u.push(String.fromCharCode(r));u.sort(e.compare);for(let r=1;r<u.length;r++)if(e.compare(u[r-1],u[r])===0&&u[r-1].toLowerCase()!==u[r].toLowerCase())return!1;for(let r of u)if(e.compare(r,"")===0)return!1;return!(e.compare("01","1")!==0||e.compare("0","00")!==0||e.compare("a09z","a9z")!==0||e.compare("9","10")>=0)}function ni(e){for(let t=0;t<e.length;t++){let u=e.charCodeAt(t);if(u<32||u>126)return!1}return!0}function qo(e,t){let u=0,r=0,n=e.length,i=t.length;for(;u<n&&r<i;){let a=e.charCodeAt(u),l=t.charCodeAt(r),s=a>=48&&a<=57,m=l>=48&&l<=57;if(s!==m)return!0;if(s){for(;u<n&&e.charCodeAt(u)===48;)u++;for(;r<i&&t.charCodeAt(r)===48;)r++;let c=u,h=r;for(;u<n;){let g=e.charCodeAt(u);if(g<48||g>57)break;u++}for(;r<i;){let g=t.charCodeAt(r);if(g<48||g>57)break;r++}let w=u-c;if(w!==r-h)return!0;for(let g=0;g<w;g++)if(e.charCodeAt(c+g)!==t.charCodeAt(h+g))return!0}else{if(a>=65&&a<=90&&(a+=32),l>=65&&l<=90&&(l+=32),a!==l)return!0;u++,r++}}return u!==n||r!==i}function _o(e,t){let u=e.length,r=new Array(u);for(let m=0;m<u;m++)r[m]=m;r.sort((m,c)=>t.compare(e[m],e[c]));let n=new Int32Array(u);if(u===0)return n;let i=Uo(t)?new Uint8Array(u):null,a=r[0],l=i?ni(e[a])?1:2:0;i&&(i[a]=l);let s=0;n[a]=0;for(let m=1;m<u;m++){let c=r[m],h=e[a],w=e[c],g=0;i&&(g=i[c],g===0&&(g=ni(w)?1:2,i[c]=g)),(l===1&&g===1&&qo(h,w)||t.compare(h,w)!==0)&&s++,n[c]=s,a=c,l=g}return n}function re(e){return e==null}function Me(e){return e==null?"":String(e)}function We(e){if(e instanceof Date)return e.getTime();if(typeof e=="number")return e;if(typeof e=="boolean")return e?1:0;let t=Number(e);return Number.isNaN(t)?String(e).toLowerCase():t}function Ct(e,t){let u=We(e),r=We(t);if(typeof u=="number"&&typeof r=="number")return u-r;if(typeof u=="number"&&typeof r=="string"){let a=Date.parse(r);if(!Number.isNaN(a))return u-a}else if(typeof u=="string"&&typeof r=="number"){let a=Date.parse(u);if(!Number.isNaN(a))return a-r}let n=String(u),i=String(r);return n<i?-1:n>i?1:0}var ii=new WeakMap;function jo(e){let t=ii.get(e);if(!t){t=new Set;let u=Array.isArray(e.value)?e.value:[];for(let r of u){if(re(r))continue;let n=We(r);typeof n=="number"&&Number.isNaN(n)||t.add(n)}ii.set(e,t)}return t}function Ui(e,t){switch(t.operator){case"isnull":return re(e);case"isnotnull":return!re(e);case"=":return re(e)||re(t.value)?re(e)&&re(t.value):We(e)===We(t.value);case"<>":return re(e)||re(t.value)?!(re(e)&&re(t.value)):We(e)!==We(t.value);case">":return!re(e)&&Ct(e,t.value)>0;case">=":return!re(e)&&Ct(e,t.value)>=0;case"<":return!re(e)&&Ct(e,t.value)<0;case"<=":return!re(e)&&Ct(e,t.value)<=0;case"contains":return te(Me(e)).includes(te(Me(t.value)));case"notcontains":return!te(Me(e)).includes(te(Me(t.value)));case"startswith":return te(Me(e)).startsWith(te(Me(t.value)));case"endswith":return te(Me(e)).endsWith(te(Me(t.value)));case"in":{if(re(e))return!1;let u=We(e);return typeof u=="number"&&Number.isNaN(u)?!1:jo(t).has(u)}case"between":{if(!Array.isArray(t.value)||t.value.length<2||re(e))return!1;let[u,r]=t.value;return Ct(e,u)>=0&&Ct(e,r)<=0}default:return!0}}function Dr(e,t,u){if(Ir(t))return t.nodes.length===0?!0:t.logic==="or"?t.nodes.some(n=>Dr(e,n,u)):t.nodes.every(n=>Dr(e,n,u));let r=u.getCellValue(e,t.columnId);return Ui(r,t)}function zt(e){return te((e??"").trim())}function Fr(e,t,u){if(u==="")return null;let r=null;for(let n of t){let i=e.getDef(n)?.lookup?.items;if(!Array.isArray(i))continue;let a=null;for(let l of i)te(String(l.label)).includes(u)&&(a??=new Set).add(String(l.value));a&&(r??=new Map).set(n,a)}return r}function Sr(e){let t=e.getOrder().filter(r=>e.getState(r)?.visible),u=t.filter(r=>Oi(e.getDef(r))).map(Ko);return u.length===0?t:[...t,...u]}function ai(e){if(!e||e.size===0)return;let t={};for(let[u,r]of e)t[u]=[...r];return t}function Yo(e,t,u,r,n,i){let a=zt(n),l=!!r,s=a.length>0,m=typeof i=="function";if(!l&&!s&&!m)return e.slice();let c=s?u.getOrder().filter(N=>u.getState(N)?.visible):[],h=s?Fr(u,c,a):null,w=h!==null,g=w?c.map(N=>h.get(N)??null):[],y=s?c.map(N=>{let V=u.getDef(N);return Oi(V)?V:void 0}):[],F=y.some(N=>N!==void 0),S=new Uint32Array(e.length),T=0;for(let N=0;N<e.length;N++){let V=e[N],K=t[V];if(!(l&&!Dr(K,r,u))&&!(m&&!i(K))){if(s){let Z=!1;for(let W=0;W<c.length;W++){let J=u.getCellValue(K,c[W]);if(!re(J)){let fe=Me(J);if(te(fe).includes(a)){Z=!0;break}if(w){let Re=g[W];if(Re!==null&&Re.has(fe)){Z=!0;break}}}if(F){let fe=y[W];if(fe!==void 0){let Re=Vi(fe,J,K);if(Re!==null&&te(Re).includes(a)){Z=!0;break}}}}if(!Z)continue}S[T++]=V}}return T===S.length?S:S.slice(0,T)}var Zo=Ui;function Jo(e){return e==="in"||e==="isnull"}function $i(e){if(!Ir(e))return Jo(e.operator)?[e]:null;if(e.logic!=="or")return null;let t=[];for(let u of e.nodes){let r=$i(u);if(!r)return null;t.push(...r)}return t.length>0?t:null}function qi(e,t){if(!e)return null;let u=$i(e);if(!u)return null;let r=[];for(let n of t)u.some(i=>Zo(n.value,i))&&r.push(n.label);return r.length===t.length?null:r}function Qo(e){return e==null||e===""}function Xo(e,t,u){let r=[],n=-1,i,a,l=s=>{n>=0&&s-n>1&&r.push({start:n,end:s-1,length:s-n}),n=-1,a=void 0};for(let s=0;s<e.length;s++){let m=e[s];if(!m||m.kind!=="data"){l(s);continue}let c=m.data,h=t(c);if(Qo(h)){l(s);continue}n>=0&&a!==void 0&&(u?u({value:h,row:c},{value:i,row:a}):Object.is(h,i))||(l(s),n=s,i=h,a=c)}return l(e.length),r}function el(e,t){let u=0,r=e.length-1;for(;u<=r;){let n=u+r>>1,i=e[n];if(t<i.start)r=n-1;else if(t>i.end)u=n+1;else return i}return null}function _i(e,t,u,r=Number.POSITIVE_INFINITY){let n=el(e,t);if(!n)return null;let i=Math.max(n.start,u);if(t!==i)return{role:"covered"};let a=Math.min(n.end,r);return{role:"draw",span:n,drawStart:i,drawEnd:a,clippedAbove:n.start<i,clippedBelow:n.end>a}}function ji(e,t=globalThis){let u=new Map,r=!1,n=i=>{let a=u.get(i);a!==void 0&&(t.clearTimeout(a),u.delete(i))};return{schedule(i,a){if(!r){if(n(i),e<=0){a();return}u.set(i,t.setTimeout(()=>{u.delete(i),r||a()},e))}},cancel:n,cancelAll(){for(let i of u.values())t.clearTimeout(i);u.clear()},dispose(){r=!0;for(let i of u.values())t.clearTimeout(i);u.clear()},isPending(i){return u.has(i)},get pendingCount(){return u.size}}}var tl=30,oi="Other",ul=1e4;function Yi(e){return!e.series.some(t=>t.aggregate==="custom")}function rl(e){return e==null?"":String(e)}var Ue=864e5,nl=60,il=20,Cu=2e3,pr=["day","week","month","quarter","year"],li={day:Ue,week:7*Ue,month:30.44*Ue,quarter:91.31*Ue,year:365.25*Ue};function si(e,t){let u=new Date(e),r=u.getUTCFullYear(),n=u.getUTCMonth();switch(t){case"day":return Date.UTC(r,n,u.getUTCDate());case"week":{let i=Date.UTC(r,n,u.getUTCDate()),a=(new Date(i).getUTCDay()+6)%7;return i-a*Ue}case"month":return Date.UTC(r,n,1);case"quarter":return Date.UTC(r,Math.floor(n/3)*3,1);default:return Date.UTC(r,0,1)}}function di(e,t){let u=new Date(e),r=u.getUTCFullYear(),n=u.getUTCMonth();switch(t){case"day":return e+Ue;case"week":return e+7*Ue;case"month":return Date.UTC(r,n+1,1);case"quarter":return Date.UTC(r,n+3,1);default:return Date.UTC(r+1,0,1)}}var mr=e=>e<10?`0${e}`:String(e);function al(e,t){let u=new Date(e),r=u.getUTCFullYear();switch(t){case"year":return String(r);case"quarter":return`${r}-Q${Math.floor(u.getUTCMonth()/3)+1}`;case"month":return`${r}-${mr(u.getUTCMonth()+1)}`;default:return`${r}-${mr(u.getUTCMonth()+1)}-${mr(u.getUTCDate())}`}}function ol(e){if(!(e>0)||!Number.isFinite(e))return 1;let t=10**Math.floor(Math.log10(e)),u=e/t;return(u<=1?1:u<=2?2:u<=5?5:10)*t}function ll(e,t,u){let r=Number.isFinite(t)&&Number.isFinite(u)?Math.max(0,u-t):0;if(e.kind==="date"){let l=e.unit??"auto",s,m=!1;if(l==="auto")s=pr.find(c=>r/li[c]+1<=nl)??"year";else for(s=l;r/li[s]+1>Cu;){let c=pr[pr.indexOf(s)+1];if(!c)break;s=c,m=!0}return{info:{kind:"date",unit:s,adjusted:m},keyOf:c=>Number.isFinite(c)?si(c,s):Number.NaN,endOf:c=>di(c,s),labelOf:c=>al(c,s),keys:(c,h)=>{let w=[];if(!Number.isFinite(c)||!Number.isFinite(h))return w;for(let g=si(c,s);g<=h&&w.length<Cu;g=di(g,s))w.push(g);return w}}}let n=e.size&&e.size>0?e.size:ol(r/Math.max(1,e.bins??il));(!(n>0)||!Number.isFinite(n))&&(n=1);let i=!1;for(;r/n+1>Cu;)n*=2,i=!0;let a=n;return{info:{kind:"number",size:a,adjusted:i},keyOf:l=>Number.isFinite(l)?Math.floor(l/a)*a:Number.NaN,endOf:l=>l+a,labelOf:l=>{let s=m=>String(Number(m.toPrecision(12)));return`${s(l)} \u2013 ${s(l+a)}`},keys:(l,s)=>{let m=[];if(!Number.isFinite(l)||!Number.isFinite(s))return m;let c=Math.floor(l/a)*a;for(let h=c;h<=s&&m.length<Cu;h+=a)m.push(h);return m}}}function ci(e,t){if(e==null)return Number.NaN;if(e instanceof Date)return e.getTime();if(typeof e=="number")return e;if(t==="number")return Number(e);let u=Number(e);return Number.isNaN(u)?Date.parse(String(e)):u}function gr(e,t,u,r={}){let n=Math.max(1,u.maxCategories??tl),i=u.otherBucket!==!1,a=r.effectiveValue,l=u.series.map(O=>t.getDataType(O.columnId)),s=u.series.some(O=>O.aggregate==="custom"),m=new Map,c=null,h=0,w=0,g=!1,y=(O,z=Number.NaN)=>({label:O,accs:u.series.map((Q,j)=>Mr(Q.columnId,Q.aggregate,l[j],`${j}`)),seq:w++,start:z}),F=u.categoryBucket,S=null,T=Number.POSITIVE_INFINITY,N=Number.NEGATIVE_INFINITY;if(F){for(let O=0;O<e.length;O++){let z=e[O];if(!z||!at(z))continue;let Q=t.getCellValue(z.data,u.categoryColumnId),j=ci(a?a(z.key,u.categoryColumnId,Q):Q,F.kind);Number.isFinite(j)&&(j<T&&(T=j),j>N&&(N=j))}S=ll(F,T,N)}let V=s?new Map:null;for(let O=0;O<e.length;O++){let z=e[O];if(!z||!at(z))continue;h++;let Q=t.getCellValue(z.data,u.categoryColumnId),j=a?a(z.key,u.categoryColumnId,Q):Q,xe,qe,be=Number.NaN;S&&F?(be=S.keyOf(ci(j,F.kind)),xe=Number.isNaN(be)?"":be,qe=Number.isNaN(be)?"":S.labelOf(be)):xe=qe=rl(j);let Ce=m.get(xe);Ce||(m.size>=ul?(g=!0,c??=y(u.otherLabel??oi),Ce=c):(Ce=y(qe,be),m.set(xe,Ce)));for(let le=0;le<u.series.length;le++){let ne=u.series[le];if(ne.aggregate==="custom")continue;let ue=t.getCellValue(z.data,ne.columnId);vu(Ce.accs[le],a?a(z.key,ne.columnId,ue):ue)}if(V){let le=V.get(Ce.label);le||(le=u.series.map(()=>[]),V.set(Ce.label,le));for(let ne=0;ne<u.series.length;ne++){let ue=u.series[ne];if(ue.aggregate!=="custom")continue;let _e=t.getCellValue(z.data,ue.columnId);le[ne].push({row:r.effectiveRow?r.effectiveRow(z.key,z.data):z.data,value:a?a(z.key,ue.columnId,_e):_e})}}}let K=[...m.values()],Z=K.length+(c?1:0),W=O=>(u.series.length>0?xu(O.accs[0]):null)??Number.NEGATIVE_INFINITY,J,fe;if(S){J=S.keys(T,N).map(z=>m.get(z)??y(S.labelOf(z),z));let O=m.get("");O&&J.push(O),fe=null}else{let O=K;if(K.length>n){let z=[...K].sort((Q,j)=>W(j)-W(Q));if(O=z.slice(0,n),i){c??=y(u.otherLabel??oi);for(let Q of z.slice(n))for(let j=0;j<u.series.length;j++)Bo(c.accs[j],Q.accs[j])}}switch(u.categoryOrder??"value-desc"){case"category-asc":O=[...O].sort((z,Q)=>z.label.localeCompare(Q.label));break;case"first-seen":O=[...O].sort((z,Q)=>z.seq-Q.seq);break;default:O=[...O].sort((z,Q)=>W(Q)-W(z))}J=c?[...O,c]:O,fe=c?J.length-1:null}let Re=J.map(O=>O.label),bt=u.series.map((O,z)=>{let Q=new Float64Array(J.length);for(let j=0;j<J.length;j++){let xe;if(O.aggregate==="custom"){let qe=V?.get(J[j].label)?.[z]??[];xe=O.calculate?O.calculate(qe):null}else xe=xu(J[j].accs[z]);Q[j]=xe??Number.NaN}return{label:O.label??t.getDef(O.columnId)?.headerName??O.columnId,columnId:O.columnId,aggregate:O.aggregate,values:Q}});return{categories:Re,series:bt,truncated:S?!1:K.length>n||g,otherIndex:fe,rowCount:h,categoryCount:S?J.length:Z,rankingExact:!g,...sl(S,J)}}function sl(e,t){if(!e)return{};let u=new Float64Array(t.length),r=new Float64Array(t.length);for(let n=0;n<t.length;n++){let i=t[n].start;u[n]=i,r[n]=Number.isNaN(i)?Number.NaN:e.endOf(i)}return{bucket:e.info,bucketStarts:u,bucketEnds:r}}function dl(e){if(typeof e=="function")return e;let t=e;return u=>u[t]}function $e(e,t,u){return{kind:"data",key:t,sourceIndex:u,data:e}}var Zi=class{nodes=[];rows=null;invalidate(){this.nodes=[],this.rows=null}invalidateSourceIndex(e){e>=0&&e<this.nodes.length&&(this.nodes[e]=void 0)}rebase(e,t){if(this.rows===null||this.nodes.length!==e.length){this.rows=e,this.nodes=new Array(e.length);return}this.rows=e;for(let u of t)this.invalidateSourceIndex(u)}project(e,t,u){this.rows!==t&&(this.nodes=new Array(t.length),this.rows=t);let r=this.nodes,n=new Array(e.length);for(let i=0;i<e.length;i++){let a=e[i],l=r[a];if(l===void 0){let s=t[a];l=$e(s,u(s),a),r[a]=l}n[i]=l}return n}},cl="\0nil";function hl(e){return e.map(t=>t==null?cl:String(t)).join("")}function hi(){return{key:"",path:[],level:-1,label:"",value:null,count:0,expanded:!0,childCount:0,childCountKnown:!1,blocks:new Map}}function pl(e,t,u){return e.blocks.get(Math.floor(t/u))?.[t%u]}function Su(e,t,u){let r=u?.get(e);if(r!==void 0)return r;let n=e.childCountKnown?e.childCount:1;for(let i of e.blocks.values())for(let a of i)a&&Ot(a)&&a.expanded&&(n+=Su(a,t,u));return u?.set(e,n),n}function Ot(e){return e.kind!=="data"}function pi(e,t){let{blockSize:u,columnIds:r}=t,n=new Map,i=Su(e,u,n),a=t.range?Math.max(0,t.range.start):0,l=t.range?Math.min(i,t.range.end):i,s=new Array(i),m=[],c=new Set,h=0,w=g=>{if(!g.childCountKnown){h>=a&&h<l&&!c.has(`${g.key}@0`)&&(c.add(`${g.key}@0`),m.push({nodeKey:g.key,path:g.path,childIndex:0})),h++;return}for(let y=0;y<g.childCount;y++){if(h>=l)return;let F=pl(g,y,u);if(F===void 0){if(h>=a){let S=`${g.key}@${Math.floor(y/u)}`;c.has(S)||(c.add(S),m.push({nodeKey:g.key,path:g.path,childIndex:y}))}h++;continue}if(!Ot(F)){h>=a&&(s[h]=F),h++;continue}if(h>=a){let S={kind:"group",key:F.key,columnId:r[F.level]??"",value:F.value,label:F.label,count:F.count,level:F.level,expanded:F.expanded,...F.aggregates?{aggregates:F.aggregates}:{}};s[h]=S}if(h++,F.expanded){let S=Su(F,u,n);h+S<=a?h+=S:w(F)}}};return w(e),{nodes:s,pending:m}}var ml=class extends Error{constructor(){super("[datagrid] export cancelled"),this.name="ExportCancelled"}},gl=100,fl=100;function Cl(e,t){return JSON.stringify({sort:e.sort,filter:e.filter,searchText:e.searchText,group:t,summaries:e.summaries})}var mi=class{mode="remote";source;keyGetter;blockSize;maxBlocks;group;groupColumnIds;root=hi();expanded=new Set;onError;debugMode;blocks=new Map;inFlight=new Map;treeInFlight=new Map;currentKey="";generation=0;clock=0;distinctCache=new Map;distinctInFlight=new Map;summaries={};visibleCount=0;totalCount=0;countKnown=!1;disposed=!1;constructor(e,t){this.source=e,this.keyGetter=t.keyGetter,this.blockSize=Math.max(1,t.blockSize??gl),this.maxBlocks=Math.max(1,t.maxBlocks??fl),this.group=t.group,this.groupColumnIds=t.groupColumnIds??[],this.onError=t.onError,this.debugMode=t.debugMode??!1}getTotalCount(){return this.totalCount}invalidate(){this.blocks.clear(),this.inFlight.clear(),this.treeInFlight.clear(),this.resetTree(),this.distinctCache.clear(),this.countKnown=!1,this.generation++}dispose(){this.disposed=!0,this.blocks.clear(),this.inFlight.clear(),this.treeInFlight.clear(),this.distinctCache.clear(),this.distinctInFlight.clear(),this.resetTree()}setGrouping(e,t){this.group=e&&e.length>0?e:void 0,this.groupColumnIds=t,this.resetTree(),this.expanded.clear(),this.generation++}isGrouped(){return(this.group?.length??0)>0}toggleGroupPath(e){let t=this.findNode(e);return t?(t.expanded=!t.expanded,t.expanded?this.expanded.add(e):this.expanded.delete(e),!0):!1}setExpandedPaths(e){this.expanded=new Set(e),this.applyExpansion(this.root)}applyExpansion(e){for(let t of e.blocks.values())for(let u of t)u&&Ot(u)&&(u.expanded=this.expanded.has(u.key),this.applyExpansion(u))}findNode(e,t=this.root){if(t.key===e)return t;for(let u of t.blocks.values())for(let r of u)if(r&&Ot(r)){let n=this.findNode(e,r);if(n)return n}return null}resetTree(){this.root=hi()}async loadAllRows(e,t){if(this.isGrouped())throw new Error("[datagrid] cannot export a server-grouped grid: the rows live in a tree the server expands on demand. Clear the grouping and export the flat result, or produce the file on the server.");let u=[],r=Math.max(1,t.pageSize),n=Number.POSITIVE_INFINITY;for(;u.length<n;){if(t.isCancelled?.()||this.disposed)throw new ml;let i=await this.source.load({skip:u.length,take:r,sort:e.sort,filter:e.filter,searchText:e.searchText});if(n=i.totalCount,n>t.maxRows)throw new Error(`[datagrid] the export would cover ${n.toLocaleString("en-US")} rows, above the ${t.maxRows.toLocaleString("en-US")} limit. Raise \`remote.exportMaxRows\` if the machine can hold that much, narrow the filter, or build the file on the server.`);if(i.rows.length===0)break;for(let a of i.rows)u.push($e(a,this.keyGetter(a),u.length));t.onProgress?.(u.length,n)}return u}patchRows(e){if(e.length===0)return 0;let t=new Map;for(let i of e)t.set(this.keyGetter(i),i);let u=0,r=i=>{for(let a=0;a<i.length;a++){let l=i[a];if(!l)continue;let s=t.get(l.key);s!==void 0&&(i[a]=$e(s,l.key,l.sourceIndex),u++)}};for(let i of this.blocks.values())r(i.nodes);let n=i=>{for(let a of i.blocks.values())for(let l=0;l<a.length;l++){let s=a[l];if(!s)continue;if(Ot(s)){n(s);continue}let m=t.get(s.key);m!==void 0&&(a[l]=$e(m,s.key,s.sourceIndex),u++)}};return n(this.root),u}getSummaries(){return this.summaries}supportsDistinctValues(){return typeof this.source.loadDistinctValues=="function"}async loadDistinctValues(e,t){let u=this.source.loadDistinctValues;if(!u)return[];let r=`${e}@${t}`,n=this.distinctCache.get(r);if(n)return n;let i=this.distinctInFlight.get(r);if(i)return i;let a=this.generation,l=u.call(this.source,{columnId:e,limit:t}).then(s=>(!this.disposed&&a===this.generation&&this.distinctCache.set(r,s),s)).catch(s=>(this.onError?.(s),this.debugMode&&console.error("[datagrid] loadDistinctValues failed",s),[])).finally(()=>{this.distinctInFlight.delete(r)});return this.distinctInFlight.set(r,l),l}async getRows(e,t){let u=Cl(t,this.group);if(u!==this.currentKey&&(this.currentKey=u,this.blocks.clear(),this.inFlight.clear(),this.treeInFlight.clear(),this.resetTree(),this.countKnown=!1,this.summaries={},this.generation++),this.isGrouped())return this.getGroupedRows(t);this.countKnown||await this.fetchBlock(0,t);let r=t.range??{start:0,end:this.blockSize},n=Math.max(0,Math.floor(r.start/this.blockSize)),i=Math.max(n,Math.floor(Math.max(0,r.end-1)/this.blockSize)),a=[];for(let l=n;l<=i;l++)this.blocks.has(l)?this.blocks.get(l).touched=++this.clock:a.push(l);return a.length>0&&await Promise.all(a.map(l=>this.fetchBlock(l,t))),this.snapshot()}async getGroupedRows(e){let t=e.range,u=(this.group?.length??0)+2;for(let i=0;i<u;i++){if(!this.root.childCountKnown){await this.loadChildren(this.root,0,e);continue}let{pending:a}=pi(this.root,{blockSize:this.blockSize,columnIds:this.groupColumnIds,range:t});if(a.length===0)break;await Promise.all(a.map(l=>{let s=this.findNode(l.nodeKey);return s?this.loadChildren(s,l.childIndex,e):Promise.resolve()}))}let{nodes:r}=pi(this.root,{blockSize:this.blockSize,columnIds:this.groupColumnIds,range:t}),n=Su(this.root,this.blockSize);return this.visibleCount=n,{nodes:r,visibleCount:n,totalCount:this.totalCount}}loadChildren(e,t,u){let r=Math.floor(t/this.blockSize);if(e.blocks.has(r))return Promise.resolve();let n=`${e.key}@${r}`,i=this.treeInFlight.get(n);if(i)return i;let a=this.loadChildrenBlock(e,r,u).finally(()=>{this.treeInFlight.get(n)===a&&this.treeInFlight.delete(n)});return this.treeInFlight.set(n,a),a}async loadChildrenBlock(e,t,u){let r=this.generation,n=this.group?.length??0,i=e.path.length>=n,a={skip:t*this.blockSize,take:this.blockSize,sort:u.sort,filter:u.filter,searchText:u.searchText,group:this.group,groupKeys:[...e.path],...e.path.length===0?{summaries:u.summaries}:{}};try{let l=await this.source.load(a);if(this.disposed||r!==this.generation)return;l.summaries&&(this.summaries=l.summaries);let s=t*this.blockSize,m=i?l.rows.map((c,h)=>$e(c,this.keyGetter(c),s+h)):(l.groups??[]).map(c=>{let h=[...e.path,c.value],w=hl(h);return{key:w,path:h,level:e.level+1,label:c.label??(c.value==null?"":String(c.value)),value:c.value,count:c.count,...c.aggregates?{aggregates:c.aggregates}:{},expanded:this.expanded.has(w),childCount:0,childCountKnown:!1,blocks:new Map}});e.blocks.set(t,m),e.childCount=l.totalCount,e.childCountKnown=!0,e===this.root&&(this.totalCount=l.totalCount,this.countKnown=!0)}catch(l){this.debugMode&&console.error("[datagrid] remote group load failed",e.key,l),this.onError?.(l)}}snapshot(){let e=new Array(this.visibleCount);for(let[t,u]of this.blocks){let r=t*this.blockSize;for(let n=0;n<u.nodes.length;n++){let i=r+n;i<this.visibleCount&&(e[i]=u.nodes[n])}}return{nodes:e,visibleCount:this.visibleCount,totalCount:this.totalCount}}fetchBlock(e,t){if(this.disposed||this.blocks.has(e))return Promise.resolve();let u=this.inFlight.get(e);if(u)return u;let r=this.loadBlock(e,t).finally(()=>{this.inFlight.get(e)===r&&this.inFlight.delete(e)});return this.inFlight.set(e,r),r}async loadBlock(e,t){let u=this.generation,r={skip:e*this.blockSize,take:this.blockSize,sort:t.sort,filter:t.filter,searchText:t.searchText,group:this.group,summaries:t.summaries};try{let n=await this.source.load(r);if(this.disposed||u!==this.generation)return;n.summaries&&(this.summaries=n.summaries);let i=e*this.blockSize,a=n.rows.map((l,s)=>$e(l,this.keyGetter(l),i+s));this.blocks.set(e,{nodes:a,touched:++this.clock}),this.evict(),this.visibleCount=n.totalCount,this.totalCount=n.totalCount,this.countKnown=!0}catch(n){this.debugMode&&console.error("[datagrid] remote block load failed",e,n),this.onError?.(n)}}evict(){if(this.blocks.size<=this.maxBlocks)return;let e=[...this.blocks.entries()].sort((u,r)=>u[1].touched-r[1].touched),t=this.blocks.size-this.maxBlocks;for(let u=0;u<t;u++)this.blocks.delete(e[u][0])}};var wl=e=>`__detail__${String(e)}`;function yl(e,t){let{expandedKeys:u,expandedByDefault:r=!1}=t,n=Math.max(1,t.height);if(!r&&u.size===0)return e;let i=r?e.length:u.size,a=new Array(e.length+i),l=0;for(let s of e)a[l++]=s,!(s.kind!=="data"||!(r?!u.has(s.key):u.has(s.key)))&&(a[l++]={kind:"detail",key:wl(s.key),parentKey:s.key,data:s.data,height:n});return a.length=l,a}var gi=e=>e===null?"__editform__new":`__editform__${String(e)}`;function El(e,t){let{rowKey:u,atTop:r=!1}=t;if(u===null)return e;let n=Math.max(1,t.height),i=e.findIndex(s=>s.kind==="data"&&s.key===u);if(r)return[{kind:"editform",key:gi(u),parentKey:u,data:i<0?void 0:e[i].data,height:n},...e];if(i<0)return e;let a={kind:"editform",key:gi(u),parentKey:u,data:e[i].data,height:n},l=new Array(e.length+1);for(let s=0;s<=i;s++)l[s]=e[s];l[i+1]=a;for(let s=i+1;s<e.length;s++)l[s+1]=e[s];return l}var Al=class{base;overrides=new Map;idx=[];size=[];top=[];cum=[];dirty=!1;constructor(e=28){this.base=Math.max(1,e)}isUniform(){return this.overrides.size===0}getBase(){return this.base}setBase(e){let t=Math.max(1,e);return t===this.base?!1:(this.base=t,this.dirty=!0,!0)}setOverrides(e){let t=new Map;if(e)for(let[u,r]of e){if(!Number.isInteger(u)||u<0)continue;let n=Math.max(0,r);n!==this.base&&t.set(u,n)}if(t.size===this.overrides.size){let u=!0;for(let[r,n]of t)if(this.overrides.get(r)!==n){u=!1;break}if(u)return!1}return this.overrides=t,this.dirty=!0,!0}clearOverrides(){return this.setOverrides(null)}getOverrides(){return this.overrides}heightOf(e){return this.overrides.get(e)??this.base}offsetOf(e){let t=Math.max(0,e);if(this.overrides.size===0)return t*this.base;this.rebuild();let u=fi(this.idx,t);return t*this.base+(u===0?0:this.cum[u-1])}totalHeight(e){let t=Math.max(0,e);if(this.overrides.size===0)return t*this.base;this.rebuild();let u=fi(this.idx,t);return t*this.base+(u===0?0:this.cum[u-1])}indexAt(e){let t=Math.max(0,e);if(this.overrides.size===0)return Math.floor(t/this.base);this.rebuild();let u=bl(this.top,t);if(u<0)return Math.floor(t/this.base);let r=this.top[u]+this.size[u];return t<r?this.idx[u]:this.idx[u]+1+Math.floor((t-r)/this.base)}rebuild(){if(!this.dirty)return;this.dirty=!1;let e=this.overrides.size;if(this.idx=new Array(e),this.size=new Array(e),this.top=new Array(e),this.cum=new Array(e),e===0)return;let t=0;for(let r of this.overrides.keys())this.idx[t++]=r;this.idx.sort((r,n)=>r-n);let u=0;for(let r=0;r<e;r++){let n=this.idx[r],i=this.overrides.get(n);this.size[r]=i,this.top[r]=n*this.base+u,u+=i-this.base,this.cum[r]=u}}};function fi(e,t){let u=0,r=e.length;for(;u<r;){let n=u+r>>>1;e[n]<t?u=n+1:r=n}return u}function bl(e,t){let u=0,r=e.length-1,n=-1;for(;u<=r;){let i=u+r>>>1;e[i]<=t?(n=i,u=i+1):r=i-1}return n}var vl=class{handlers={};on(e,t){let u=this.handlers[e]??new Set;return u.add(t),this.handlers[e]=u,()=>this.off(e,t)}off(e,t){this.handlers[e]?.delete(t)}emit(e,t){let u=this.handlers[e];u&&u.forEach(r=>r(t))}clear(){this.handlers={}}};var fr=["tr","en","de","fr","es","it","pt","ru","ar","zh-CN","ja","ko"];function xl(e){if(!e)return;if(fr.includes(e))return e;let t=e.toLowerCase(),u=fr.find(n=>n.toLowerCase()===t);if(u)return u;if(t.startsWith("zh"))return"zh-CN";let r=t.split("-")[0];return fr.find(n=>n.toLowerCase()===r)}function Dl(e,t,u,r){let n=xl(u),i=n?e[n]:void 0;return!i&&!r?t:{...t,...i,...r}}var Ji={ok:"OK",cancel:"Cancel",apply:"Apply",close:"Close",clear:"Clear",save:"Save",search:"Search\u2026",selectAll:"Select all",showAll:"Show all",remove:"Remove",none:"None",toolbarSearch:"Search\u2026",exportMenu:"Export",exportCsv:"Export to CSV",exportExcel:"Export all data to Excel",exportExcelSelected:"Export selected rows to Excel",exportPdf:"Export to PDF",exporting:"Exporting\u2026",columns:"Columns",hiddenColumns:"Hidden columns",noHiddenColumns:"No hidden columns.",sortAsc:"Sort A \u2192 Z",sortDesc:"Sort Z \u2192 A",clearSort:"Clear sorting",groupByColumn:"Group by this column",ungroupColumn:"Remove from grouping",showGroupPanel:"Show group panel",hideGroupPanel:"Hide group panel",showFooter:"Show footer",hideFooter:"Hide footer",showGroupFooters:"Show group footers",hideGroupFooters:"Hide group footers",hideColumn:"Hide this column",fieldChooser:"Field chooser\u2026",bestFit:"Best fit",bestFitAll:"Best fit (all columns)",fixedPosition:"Set fixed position",pinLeft:"Left",pinRight:"Right",pinSticky:"Sticky",unpin:"Unfix",moveLeft:"Move to the left",moveRight:"Move to the right",filterPlaceholder:"Filter\u2026",filterColumnAria:"Filter {column}",filterSelectAll:"Select all",filterBlank:"(Blanks)",filterNoMatch:"No matching values",filterLoading:"Loading values\u2026",filterTruncated:"Showing the first values only \u2014 search to find the rest.",filterRemove:"Remove the filter",filterToggle:"Apply the filter",filterEditBuilder:"Edit the filter",filterNone:"No filter",filterActive:"Filter active",opEquals:"is",opNotEquals:"is not",opGreater:">",opGreaterOrEqual:"\u2265",opLess:"<",opLessOrEqual:"\u2264",opContains:"contains",opNotContains:"does not contain",opStartsWith:"starts with",opEndsWith:"ends with",opIsBlank:"is blank",opIsNotBlank:"is not blank",opIsOneOf:"is one of",opIsBetween:"is between",opValuesCount:"{n} values",filterAnd:"AND",filterOr:"OR",builderTitle:"Filter builder",builderCombine:"Combine conditions with",builderAddCondition:"Add condition",builderAddGroup:"Add group",builderRemoveGroup:"Remove group",builderRemoveCondition:"Remove condition",builderEmpty:"No conditions yet.",builderColumn:"Column",builderOperator:"Operator",builderValue:"Value",builderValueFrom:"From",builderValueTo:"To",builderValuePlaceholder:"Enter a value",groupPanelHint:"Drag a column here to group by it",groupAddLevel:"Add grouping level",groupAddLevelButton:"+ Add level\u2026",groupNoGrouping:"(no grouping)",groupLevelAria:"Grouping level {n}",groupRemoveAria:"Remove {column}",pagerFirst:"First page",pagerPrevious:"Previous page",pagerNext:"Next page",pagerLast:"Last page",pagerPage:"Page",pagerOf:"of",pagerRowsPerPage:"Rows per page",pagerAria:"Pagination",selectAllRows:"Select all rows",selectRowAria:"Select row {row}",summaryAria:"Summary",columnTotalsAria:"Column totals",rowActions:"Row actions",detailsAria:"Details",rowNumberAria:"Row number",noteEditorAria:"Cell note",notePlaceholder:"Write a note about this cell\u2026",addNote:"Add note\u2026",editNote:"Edit note\u2026",deleteNote:"Delete note",expandDetails:"Expand details",collapseDetails:"Collapse details",dragToReorder:"Drag to reorder",menuCopy:"Copy",menuCopyWithHeaders:"Copy with headers",menuCopyWithGroupHeaders:"Copy with group headers",menuCut:"Cut",menuPaste:"Paste",menuExport:"Export",menuChartRange:"Chart selected columns",statsSum:"Sum",statsCount:"Count",statsAvg:"Average",statsMin:"Min",statsMax:"Max",statsCells:"Cells",statsTooLarge:"Selection too large to total",statusRows:"Rows",statusFiltered:"Filtered",statusSelected:"Selected",summaryRows:"rows",announceRows:"{n} rows",announceSortedBy:"sorted by {columns}",announceSelected:"{n} selected",announceAscending:"ascending",announceDescending:"descending",sideFilters:"Filters",sideBarAria:"Tool panels",sideClearFilters:"Clear all filters",summarySum:"Sum",summaryAvg:"Avg",summaryMin:"Min",summaryMax:"Max",summaryCount:"Count",summaryDistinct:"Distinct",summaryCustom:"Custom",noTotal:"No total",busy:"Working\u2026",busyLoading:"Loading rows\u2026",busyEncoding:"Preparing data\u2026",busyFiltering:"Filtering rows\u2026",busySorting:"Sorting rows\u2026",busyComputing:"Filtering and sorting\u2026",busyGrouping:"Building groups\u2026",busyAggregating:"Calculating totals\u2026",busyProjecting:"Updating the view\u2026",busyExporting:"Building the file\u2026",noData:"No data",editNewRow:"New row",editSaveChanges:"Save changes",editDiscardChanges:"Discard changes",editRow:"Edit row",editRowMenu:"Edit row\u2026",editDeleteRow:"Delete row",editUndoDelete:"Undo delete",editActions:"Actions",editSaveRow:"Save row",editSaving:"Saving\u2026",editEditingRow:"Editing row {row}",editSaveCount:"Save {n} row(s)",editCannotSave:"Cannot save",editSaveFailed:"Could not save the changes.",editDeleteConfirm:"Delete this row?",editAddRowUndo:"Add row",editDeleteRowUndo:"Delete row",editCellUndo:"Edit {column}",editFillUndo:"Fill {count} cells",editPasteUndo:"Paste {count} cells",editCutUndo:"Cut {count} cells",editNoMatch:"No match",formEditTitle:"Edit row",formAddTitle:"New row",formShortcut:"{key}+Enter to save \xB7 Esc to cancel",validationRequired:"This field is required",validationNumber:"Must be a number",validationFormat:"Invalid format",validationEmail:"Invalid email address",validationInvalid:"Invalid value",dateCalendar:"Calendar",dateOpenCalendar:"Open calendar",datePreviousMonth:"Previous month",dateNextMonth:"Next month",monthJanuary:"January",monthFebruary:"February",monthMarch:"March",monthApril:"April",monthMay:"May",monthJune:"June",monthJuly:"July",monthAugust:"August",monthSeptember:"September",monthOctober:"October",monthNovember:"November",monthDecember:"December",weekStartsOn:"0",weekdaySu:"Su",weekdayMo:"Mo",weekdayTu:"Tu",weekdayWe:"We",weekdayTh:"Th",weekdayFr:"Fr",weekdaySa:"Sa",importTitle:"Import data",importStepSource:"1. Source",importStepMap:"2. Map columns",importFile:"CSV file",importPaste:"\u2026or paste rows",importSeparator:"Separator",importSeparatorAuto:"Detect automatically",importSeparatorComma:"Comma ,",importSeparatorSemicolon:"Semicolon ;",importSeparatorTab:"Tab",importSeparatorPipe:"Pipe |",importFileColumn:"File column",importDetected:"Detected",importGridColumn:"Grid column",importSample:"Sample",importSkip:"\u2014 skip \u2014",importPreview:"Preview",importNoSource:"Choose a file or paste some rows first.",importNoRows:"No data rows were found.",importAction:"Import",exportAborted:"Export aborted",exportSheetName:"Data",chart:"Chart",chartCategory:"Category",chartSeries:"Series",chartAddSeries:"Add series",chartRemoveSeries:"Remove",chartSource:"Data",chartSourceView:"Filtered rows",chartSourceSelection:"Selected rows",chartSourceAll:"All rows",chartClose:"Close chart",chartFullscreen:"Fullscreen",chartExitFullscreen:"Exit fullscreen",chartExportPng:"PNG",chartExportSvg:"SVG",chartExportFailed:"The chart could not be exported.",chartCrossFiltered:"The grid is filtered to {value}.",chartBlankCategory:"(blank)",chartTruncated:'Showing the top {n} categories; the rest are grouped as "Other".',chartOther:"Other",chartEmpty:"Nothing to chart yet.",chartNeedsRecharts:"Charts need the optional peer `recharts`. Install it to draw them.",chartOnlyOneSeries:"This chart type shows one series.",chartByColumn:"Chart by this column",chartGroupBy:"By",chartGroupNone:"Each value",chartGroupAuto:"Auto",chartGroupDay:"Day",chartGroupWeek:"Week",chartGroupMonth:"Month",chartGroupQuarter:"Quarter",chartGroupYear:"Year",chartGroupBins:"{n} bins",chartBucketAdjusted:"Too many intervals for one axis \u2014 grouped more coarsely.",chartWindowed:"Showing {shown} of {total}.",chartShowAll:"Show all",chartCanvasHint:"Chart. Scroll to zoom, drag to pan, arrow keys to move, 0 to show all.",chartAggSum:"Sum",chartAggAvg:"Average",chartAggMin:"Min",chartAggMax:"Max",chartAggCount:"Count",chartAggDistinct:"Distinct",chartTypeColumn:"Column",chartTypeBar:"Bar",chartTypeLine:"Line",chartTypeArea:"Area",chartTypePie:"Pie",chartTypeDonut:"Donut",licenseMissing:"Unlicensed",licenseExpired:"License expired",licenseReleaseNotCovered:"This version is not covered by the license",licenseDomainMismatch:"License not valid for this domain",licenseRevoked:"License revoked",licenseInvalidFormat:"Malformed license key",licenseInvalidSignature:"Invalid license signature",licenseEngineUnavailable:"Browser cannot verify the license (HTTPS required)"},Fl={ok:"Tamam",cancel:"\u0130ptal",apply:"Uygula",close:"Kapat",clear:"Temizle",save:"Kaydet",search:"Ara...",selectAll:"T\xFCm\xFCn\xFC Se\xE7",showAll:"T\xFCm\xFCn\xFC g\xF6ster",remove:"Kald\u0131r",none:"Yok",toolbarSearch:"Ara...",exportMenu:"D\u0131\u015Fa Aktar",exportCsv:"CSV'ye aktar",exportExcel:"T\xFCm veriyi Excel'e aktar",exportExcelSelected:"Se\xE7ili sat\u0131rlar\u0131 Excel'e aktar",exportPdf:"PDF'e aktar",exporting:"D\u0131\u015Fa aktar\u0131l\u0131yor\u2026",columns:"S\xFCtunlar",hiddenColumns:"Gizli s\xFCtunlar",noHiddenColumns:"Gizli s\xFCtun yok.",sortAsc:"A'dan Z'ye S\u0131rala",sortDesc:"Z'den A'ya S\u0131rala",clearSort:"S\u0131ralamay\u0131 Temizle",groupByColumn:"Bu s\xFCtuna g\xF6re grupla",ungroupColumn:"Gruplamadan \xE7\u0131kar",showGroupPanel:"Gruplama panelini g\xF6ster",hideGroupPanel:"Gruplama panelini gizle",showFooter:"Alt bilgiyi g\xF6ster",hideFooter:"Alt bilgiyi gizle",showGroupFooters:"Grup alt bilgilerini g\xF6ster",hideGroupFooters:"Grup alt bilgilerini gizle",hideColumn:"Bu s\xFCtunu gizle",fieldChooser:"Alan se\xE7ici\u2026",bestFit:"En uygun geni\u015Flik",bestFitAll:"En uygun geni\u015Flik (t\xFCm s\xFCtunlar)",fixedPosition:"Sabit konum ayarla",pinLeft:"Sol",pinRight:"Sa\u011F",pinSticky:"Yap\u0131\u015Fkan",unpin:"Sabitlemeyi kald\u0131r",moveLeft:"Sola ta\u015F\u0131",moveRight:"Sa\u011Fa ta\u015F\u0131",filterPlaceholder:"Filtrele\u2026",filterColumnAria:"{column} filtrele",filterSelectAll:"T\xFCm\xFCn\xFC se\xE7",filterBlank:"(Bo\u015Flar)",filterNoMatch:"E\u015Fle\u015Fen de\u011Fer yok",filterLoading:"De\u011Ferler y\xFCkleniyor\u2026",filterTruncated:"Yaln\u0131zca ilk de\u011Ferler g\xF6steriliyor \u2014 kalan\u0131n\u0131 bulmak i\xE7in aray\u0131n.",filterRemove:"Filtreyi kald\u0131r",filterToggle:"Filtreyi uygula",filterEditBuilder:"Filtreyi d\xFCzenle",filterNone:"Filtre yok",filterActive:"Filtre etkin",opEquals:"e\u015Fittir",opNotEquals:"e\u015Fit de\u011Fildir",opGreater:">",opGreaterOrEqual:"\u2265",opLess:"<",opLessOrEqual:"\u2264",opContains:"i\xE7erir",opNotContains:"i\xE7ermez",opStartsWith:"ile ba\u015Flar",opEndsWith:"ile biter",opIsBlank:"bo\u015Ftur",opIsNotBlank:"bo\u015F de\u011Fildir",opIsOneOf:"\u015Funlardan biridir",opIsBetween:"aras\u0131ndad\u0131r",opValuesCount:"{n} de\u011Fer",filterAnd:"VE",filterOr:"VEYA",builderTitle:"Filtre olu\u015Fturucu",builderCombine:"Ko\u015Fullar\u0131 \u015Fununla birle\u015Ftir",builderAddCondition:"Ko\u015Ful ekle",builderAddGroup:"Grup ekle",builderRemoveGroup:"Grubu kald\u0131r",builderRemoveCondition:"Ko\u015Fulu kald\u0131r",builderEmpty:"Hen\xFCz ko\u015Ful yok.",builderColumn:"S\xFCtun",builderOperator:"Operat\xF6r",builderValue:"De\u011Fer",builderValueFrom:"Ba\u015Flang\u0131\xE7",builderValueTo:"Biti\u015F",builderValuePlaceholder:"Bir de\u011Fer girin",groupPanelHint:"Gruplamak i\xE7in buraya bir s\xFCtun s\xFCr\xFCkleyin",groupAddLevel:"Gruplama d\xFCzeyi ekle",groupAddLevelButton:"+ D\xFCzey ekle\u2026",groupNoGrouping:"(gruplama yok)",groupLevelAria:"{n}. gruplama d\xFCzeyi",groupRemoveAria:"{column} kald\u0131r",pagerFirst:"\u0130lk sayfa",pagerPrevious:"\xD6nceki sayfa",pagerNext:"Sonraki sayfa",pagerLast:"Son sayfa",pagerPage:"Sayfa",pagerOf:"/",pagerRowsPerPage:"Sayfa ba\u015F\u0131na sat\u0131r",pagerAria:"Sayfalama",selectAllRows:"T\xFCm sat\u0131rlar\u0131 se\xE7",selectRowAria:"{row} numaral\u0131 sat\u0131r\u0131 se\xE7",summaryAria:"\xD6zet",columnTotalsAria:"S\xFCtun toplamlar\u0131",rowActions:"Sat\u0131r i\u015Flemleri",detailsAria:"Ayr\u0131nt\u0131lar",rowNumberAria:"Sat\u0131r numaras\u0131",noteEditorAria:"H\xFCcre notu",notePlaceholder:"Bu h\xFCcre hakk\u0131nda bir not yaz\u0131n\u2026",addNote:"Not ekle\u2026",editNote:"Notu d\xFCzenle\u2026",deleteNote:"Notu sil",expandDetails:"Ayr\u0131nt\u0131lar\u0131 geni\u015Flet",collapseDetails:"Ayr\u0131nt\u0131lar\u0131 daralt",dragToReorder:"S\u0131ralamak i\xE7in s\xFCr\xFCkleyin",menuCopy:"Kopyala",menuCopyWithHeaders:"Ba\u015Fl\u0131klarla kopyala",menuCopyWithGroupHeaders:"Grup ba\u015Fl\u0131klar\u0131yla kopyala",menuCut:"Kes",menuPaste:"Yap\u0131\u015Ft\u0131r",menuExport:"D\u0131\u015Fa aktar",menuChartRange:"Se\xE7ili s\xFCtunlar\u0131 grafi\u011Fe d\xF6k",statsSum:"Toplam",statsCount:"Say",statsAvg:"Ortalama",statsMin:"Min",statsMax:"Max",statsCells:"H\xFCcre",statsTooLarge:"Se\xE7im toplanamayacak kadar b\xFCy\xFCk",statusRows:"Sat\u0131r",statusFiltered:"Filtreli",statusSelected:"Se\xE7ili",summaryRows:"sat\u0131r",announceRows:"{n} sat\u0131r",announceSortedBy:"{columns} ile s\u0131ral\u0131",announceSelected:"{n} se\xE7ili",announceAscending:"artan",announceDescending:"azalan",sideFilters:"Filtreler",sideBarAria:"Ara\xE7 panelleri",sideClearFilters:"T\xFCm filtreleri temizle",summarySum:"Toplam",summaryAvg:"Ortalama",summaryMin:"Min",summaryMax:"Max",summaryCount:"Say",summaryDistinct:"Benzersiz",summaryCustom:"\xD6zel",noTotal:"Toplam yok",busy:"\xC7al\u0131\u015F\u0131yor\u2026",busyLoading:"Sat\u0131rlar y\xFCkleniyor\u2026",busyEncoding:"Veri haz\u0131rlan\u0131yor\u2026",busyFiltering:"Sat\u0131rlar filtreleniyor\u2026",busySorting:"Sat\u0131rlar s\u0131ralan\u0131yor\u2026",busyComputing:"Filtreleniyor ve s\u0131ralan\u0131yor\u2026",busyGrouping:"Gruplar olu\u015Fturuluyor\u2026",busyAggregating:"Toplamlar hesaplan\u0131yor\u2026",busyProjecting:"G\xF6r\xFCn\xFCm g\xFCncelleniyor\u2026",busyExporting:"Dosya olu\u015Fturuluyor\u2026",noData:"Veri Bulunamad\u0131",editNewRow:"Yeni sat\u0131r",editSaveChanges:"De\u011Fi\u015Fiklikleri kaydet",editDiscardChanges:"De\u011Fi\u015Fiklikleri iptal et",editRow:"Sat\u0131r\u0131 d\xFCzenle",editRowMenu:"Sat\u0131r\u0131 d\xFCzenle\u2026",editDeleteRow:"Sat\u0131r\u0131 sil",editUndoDelete:"Silmeyi geri al",editActions:"Aksiyonlar",editSaveRow:"Sat\u0131r\u0131 kaydet",editSaving:"Kaydediliyor\u2026",editEditingRow:"{row} numaral\u0131 sat\u0131r d\xFCzenleniyor",editSaveCount:"{n} sat\u0131r\u0131 kaydet",editCannotSave:"Kaydedilemiyor",editSaveFailed:"De\u011Fi\u015Fiklikler kaydedilemedi.",editDeleteConfirm:"Bu sat\u0131r silinsin mi?",editAddRowUndo:"Sat\u0131r ekle",editDeleteRowUndo:"Sat\u0131r sil",editCellUndo:"{column} d\xFCzenle",editFillUndo:"{count} h\xFCcre doldur",editPasteUndo:"{count} h\xFCcre yap\u0131\u015Ft\u0131r",editCutUndo:"{count} h\xFCcre kes",editNoMatch:"E\u015Fle\u015Fme yok",formEditTitle:"Sat\u0131r\u0131 d\xFCzenle",formAddTitle:"Yeni sat\u0131r",formShortcut:"Kaydetmek i\xE7in {key}+Enter \xB7 \u0130ptal i\xE7in Esc",validationRequired:"Bu alan zorunludur",validationNumber:"Say\u0131 olmal\u0131d\u0131r",validationFormat:"Ge\xE7ersiz bi\xE7im",validationEmail:"Ge\xE7ersiz e-posta adresi",validationInvalid:"Ge\xE7ersiz de\u011Fer",dateCalendar:"Takvim",dateOpenCalendar:"Takvimi a\xE7",datePreviousMonth:"\xD6nceki ay",dateNextMonth:"Sonraki ay",monthJanuary:"Ocak",monthFebruary:"\u015Eubat",monthMarch:"Mart",monthApril:"Nisan",monthMay:"May\u0131s",monthJune:"Haziran",monthJuly:"Temmuz",monthAugust:"A\u011Fustos",monthSeptember:"Eyl\xFCl",monthOctober:"Ekim",monthNovember:"Kas\u0131m",monthDecember:"Aral\u0131k",weekStartsOn:"1",weekdaySu:"Pz",weekdayMo:"Pt",weekdayTu:"Sa",weekdayWe:"\xC7a",weekdayTh:"Pe",weekdayFr:"Cu",weekdaySa:"Ct",importTitle:"Veri i\xE7e aktar",importStepSource:"1. Kaynak",importStepMap:"2. S\xFCtun e\u015Fleme",importFile:"CSV dosyas\u0131",importPaste:"\u2026veya sat\u0131rlar\u0131 yap\u0131\u015Ft\u0131r\u0131n",importSeparator:"Ay\u0131r\u0131c\u0131",importSeparatorAuto:"Otomatik alg\u0131la",importSeparatorComma:"Virg\xFCl ,",importSeparatorSemicolon:"Noktal\u0131 virg\xFCl ;",importSeparatorTab:"Sekme",importSeparatorPipe:"Dikey \xE7izgi |",importFileColumn:"Dosya s\xFCtunu",importDetected:"Alg\u0131lanan",importGridColumn:"Tablo s\xFCtunu",importSample:"\xD6rnek",importSkip:"\u2014 atla \u2014",importPreview:"\xD6nizleme",importNoSource:"\xD6nce bir dosya se\xE7in veya sat\u0131r yap\u0131\u015Ft\u0131r\u0131n.",importNoRows:"Veri sat\u0131r\u0131 bulunamad\u0131.",importAction:"\u0130\xE7e aktar",exportAborted:"D\u0131\u015Fa aktarma iptal edildi",exportSheetName:"Veri",chart:"Grafik",chartCategory:"Kategori",chartSeries:"Seri",chartAddSeries:"Seri ekle",chartRemoveSeries:"Kald\u0131r",chartSource:"Veri",chartSourceView:"Filtrelenmi\u015F sat\u0131rlar",chartSourceSelection:"Se\xE7ili sat\u0131rlar",chartSourceAll:"T\xFCm sat\u0131rlar",chartClose:"Grafi\u011Fi kapat",chartFullscreen:"Tam ekran",chartExitFullscreen:"Tam ekrandan \xE7\u0131k",chartExportPng:"PNG",chartExportSvg:"SVG",chartExportFailed:"Grafik d\u0131\u015Fa aktar\u0131lamad\u0131.",chartCrossFiltered:"Tablo {value} de\u011Ferine filtrelendi.",chartBlankCategory:"(bo\u015F)",chartTruncated:'En y\xFCksek {n} kategori g\xF6steriliyor; kalanlar "Di\u011Fer" alt\u0131nda topland\u0131.',chartOther:"Di\u011Fer",chartEmpty:"Hen\xFCz grafi\u011Fe d\xF6k\xFClecek bir \u015Fey yok.",chartNeedsRecharts:"Grafikler iste\u011Fe ba\u011Fl\u0131 `recharts` paketini gerektirir. \xC7izmek i\xE7in kurun.",chartOnlyOneSeries:"Bu grafik t\xFCr\xFC tek seri g\xF6sterir.",chartByColumn:"Bu s\xFCtuna g\xF6re grafik",chartGroupBy:"\u015Euna g\xF6re",chartGroupNone:"Her de\u011Fer",chartGroupAuto:"Otomatik",chartGroupDay:"G\xFCn",chartGroupWeek:"Hafta",chartGroupMonth:"Ay",chartGroupQuarter:"\xC7eyrek",chartGroupYear:"Y\u0131l",chartGroupBins:"{n} aral\u0131k",chartBucketAdjusted:"Bir eksen i\xE7in fazla aral\u0131k \u2014 daha kaba grupland\u0131.",chartWindowed:"{total} i\xE7inden {shown} g\xF6steriliyor.",chartShowAll:"T\xFCm\xFCn\xFC g\xF6ster",chartCanvasHint:"Grafik. Yak\u0131nla\u015Ft\u0131rmak i\xE7in kayd\u0131r\u0131n, kayd\u0131rmak i\xE7in s\xFCr\xFCkleyin, ok tu\u015Flar\u0131yla gezinin, t\xFCm\xFC i\xE7in 0.",chartAggSum:"Toplam",chartAggAvg:"Ortalama",chartAggMin:"Min",chartAggMax:"Max",chartAggCount:"Say",chartAggDistinct:"Benzersiz",chartTypeColumn:"S\xFCtun",chartTypeBar:"\xC7ubuk",chartTypeLine:"\xC7izgi",chartTypeArea:"Alan",chartTypePie:"Pasta",chartTypeDonut:"Halka",licenseMissing:"Lisanss\u0131z",licenseExpired:"Lisans\u0131n s\xFCresi dolmu\u015F",licenseReleaseNotCovered:"Bu s\xFCr\xFCm lisans kapsam\u0131nda de\u011Fil",licenseDomainMismatch:"Lisans bu alan ad\u0131 i\xE7in ge\xE7erli de\u011Fil",licenseRevoked:"Lisans iptal edilmi\u015F",licenseInvalidFormat:"Lisans anahtar\u0131 hatal\u0131",licenseInvalidSignature:"Lisans imzas\u0131 ge\xE7ersiz",licenseEngineUnavailable:"Taray\u0131c\u0131 lisans\u0131 do\u011Frulayam\u0131yor (HTTPS gerekli)"},Sl={ok:"OK",cancel:"Abbrechen",apply:"Anwenden",close:"Schlie\xDFen",clear:"L\xF6schen",save:"Speichern",search:"Suchen...",selectAll:"Alles ausw\xE4hlen",showAll:"Alle anzeigen",remove:"Entfernen",none:"Keine",toolbarSearch:"Suchen...",exportMenu:"Exportieren",exportCsv:"Als CSV exportieren",exportExcel:"Alle Daten nach Excel exportieren",exportExcelSelected:"Ausgew\xE4hlte Zeilen nach Excel exportieren",exportPdf:"Als PDF exportieren",exporting:"Wird exportiert\u2026",columns:"Spalten",hiddenColumns:"Ausgeblendete Spalten",noHiddenColumns:"Keine ausgeblendeten Spalten.",sortAsc:"Sortieren A \u2192 Z",sortDesc:"Sortieren Z \u2192 A",clearSort:"Sortierung l\xF6schen",groupByColumn:"Nach dieser Spalte gruppieren",ungroupColumn:"Aus Gruppierung entfernen",showGroupPanel:"Gruppierungsbereich anzeigen",hideGroupPanel:"Gruppierungsbereich ausblenden",showFooter:"Fu\xDFzeile anzeigen",hideFooter:"Fu\xDFzeile ausblenden",showGroupFooters:"Gruppenfu\xDFzeilen anzeigen",hideGroupFooters:"Gruppenfu\xDFzeilen ausblenden",hideColumn:"Diese Spalte ausblenden",fieldChooser:"Feldauswahl\u2026",bestFit:"Optimale Breite",bestFitAll:"Optimale Breite (alle Spalten)",fixedPosition:"Feste Position festlegen",pinLeft:"Links",pinRight:"Rechts",pinSticky:"Fixiert",unpin:"Fixierung aufheben",moveLeft:"Nach links verschieben",moveRight:"Nach rechts verschieben",filterPlaceholder:"Filtern\u2026",filterColumnAria:"{column} filtern",filterSelectAll:"Alles ausw\xE4hlen",filterBlank:"(Leer)",filterNoMatch:"Keine passenden Werte",filterLoading:"Werte werden geladen\u2026",filterTruncated:"Es werden nur die ersten Werte angezeigt \u2014 suchen Sie nach den \xFCbrigen.",filterRemove:"Filter entfernen",filterToggle:"Filter anwenden",filterEditBuilder:"Filter bearbeiten",filterNone:"Kein Filter",filterActive:"Filter aktiv",opEquals:"ist",opNotEquals:"ist nicht",opGreater:">",opGreaterOrEqual:"\u2265",opLess:"<",opLessOrEqual:"\u2264",opContains:"enth\xE4lt",opNotContains:"enth\xE4lt nicht",opStartsWith:"beginnt mit",opEndsWith:"endet mit",opIsBlank:"ist leer",opIsNotBlank:"ist nicht leer",opIsOneOf:"ist eines von",opIsBetween:"liegt zwischen",opValuesCount:"{n} Werte",filterAnd:"UND",filterOr:"ODER",builderTitle:"Filter-Editor",builderCombine:"Bedingungen verkn\xFCpfen mit",builderAddCondition:"Bedingung hinzuf\xFCgen",builderAddGroup:"Gruppe hinzuf\xFCgen",builderRemoveGroup:"Gruppe entfernen",builderRemoveCondition:"Bedingung entfernen",builderEmpty:"Noch keine Bedingungen.",builderColumn:"Spalte",builderOperator:"Operator",builderValue:"Wert",builderValueFrom:"Von",builderValueTo:"Bis",builderValuePlaceholder:"Wert eingeben",groupPanelHint:"Ziehen Sie eine Spalte hierher, um danach zu gruppieren",groupAddLevel:"Gruppierungsebene hinzuf\xFCgen",groupAddLevelButton:"+ Ebene hinzuf\xFCgen\u2026",groupNoGrouping:"(keine Gruppierung)",groupLevelAria:"Gruppierungsebene {n}",groupRemoveAria:"{column} entfernen",pagerFirst:"Erste Seite",pagerPrevious:"Vorherige Seite",pagerNext:"N\xE4chste Seite",pagerLast:"Letzte Seite",pagerPage:"Seite",pagerOf:"von",pagerRowsPerPage:"Zeilen pro Seite",pagerAria:"Seitennavigation",selectAllRows:"Alle Zeilen ausw\xE4hlen",selectRowAria:"Zeile {row} ausw\xE4hlen",summaryAria:"Zusammenfassung",columnTotalsAria:"Spaltensummen",rowActions:"Zeilenaktionen",detailsAria:"Details",rowNumberAria:"Zeilennummer",noteEditorAria:"Zellennotiz",notePlaceholder:"Notiz zu dieser Zelle schreiben\u2026",addNote:"Notiz hinzuf\xFCgen\u2026",editNote:"Notiz bearbeiten\u2026",deleteNote:"Notiz l\xF6schen",expandDetails:"Details erweitern",collapseDetails:"Details reduzieren",dragToReorder:"Zum Umsortieren ziehen",menuCopy:"Kopieren",menuCopyWithHeaders:"Mit Spaltenk\xF6pfen kopieren",menuCopyWithGroupHeaders:"Mit Gruppenk\xF6pfen kopieren",menuCut:"Ausschneiden",menuPaste:"Einf\xFCgen",menuExport:"Exportieren",menuChartRange:"Ausgew\xE4hlte Spalten als Diagramm",statsSum:"Summe",statsCount:"Anzahl",statsAvg:"Durchschnitt",statsMin:"Min",statsMax:"Max",statsCells:"Zellen",statsTooLarge:"Auswahl zu gro\xDF f\xFCr eine Summe",statusRows:"Zeilen",statusFiltered:"Gefiltert",statusSelected:"Ausgew\xE4hlt",summaryRows:"Zeilen",announceRows:"{n} Zeilen",announceSortedBy:"sortiert nach {columns}",announceSelected:"{n} ausgew\xE4hlt",announceAscending:"aufsteigend",announceDescending:"absteigend",sideFilters:"Filter",sideBarAria:"Werkzeugbereiche",sideClearFilters:"Alle Filter l\xF6schen",summarySum:"Summe",summaryAvg:"Durchschnitt",summaryMin:"Min",summaryMax:"Max",summaryCount:"Anzahl",summaryDistinct:"Eindeutig",summaryCustom:"Benutzerdefiniert",noTotal:"Keine Summe",busy:"Wird bearbeitet\u2026",busyLoading:"Zeilen werden geladen\u2026",busyEncoding:"Daten werden vorbereitet\u2026",busyFiltering:"Zeilen werden gefiltert\u2026",busySorting:"Zeilen werden sortiert\u2026",busyComputing:"Filtern und Sortieren\u2026",busyGrouping:"Gruppen werden erstellt\u2026",busyAggregating:"Summen werden berechnet\u2026",busyProjecting:"Ansicht wird aktualisiert\u2026",busyExporting:"Datei wird erstellt\u2026",noData:"Keine Daten gefunden",editNewRow:"Neue Zeile",editSaveChanges:"\xC4nderungen speichern",editDiscardChanges:"\xC4nderungen verwerfen",editRow:"Zeile bearbeiten",editRowMenu:"Zeile bearbeiten\u2026",editDeleteRow:"Zeile l\xF6schen",editUndoDelete:"L\xF6schen r\xFCckg\xE4ngig",editActions:"Aktionen",editSaveRow:"Zeile speichern",editSaving:"Wird gespeichert\u2026",editEditingRow:"Zeile {row} wird bearbeitet",editSaveCount:"{n} Zeile(n) speichern",editCannotSave:"Speichern nicht m\xF6glich",editSaveFailed:"Die \xC4nderungen konnten nicht gespeichert werden.",editDeleteConfirm:"Diese Zeile l\xF6schen?",editAddRowUndo:"Zeile hinzuf\xFCgen",editDeleteRowUndo:"Zeile l\xF6schen",editCellUndo:"{column} bearbeiten",editFillUndo:"{count} Zellen f\xFCllen",editPasteUndo:"{count} Zellen einf\xFCgen",editCutUndo:"{count} Zellen ausschneiden",editNoMatch:"Keine \xDCbereinstimmung",formEditTitle:"Zeile bearbeiten",formAddTitle:"Neue Zeile",formShortcut:"{key}+Enter zum Speichern \xB7 Esc zum Abbrechen",validationRequired:"Dieses Feld ist erforderlich",validationNumber:"Muss eine Zahl sein",validationFormat:"Ung\xFCltiges Format",validationEmail:"Ung\xFCltige E-Mail-Adresse",validationInvalid:"Ung\xFCltiger Wert",dateCalendar:"Kalender",dateOpenCalendar:"Kalender \xF6ffnen",datePreviousMonth:"Vorheriger Monat",dateNextMonth:"N\xE4chster Monat",monthJanuary:"Januar",monthFebruary:"Februar",monthMarch:"M\xE4rz",monthApril:"April",monthMay:"Mai",monthJune:"Juni",monthJuly:"Juli",monthAugust:"August",monthSeptember:"September",monthOctober:"Oktober",monthNovember:"November",monthDecember:"Dezember",weekStartsOn:"1",weekdaySu:"So",weekdayMo:"Mo",weekdayTu:"Di",weekdayWe:"Mi",weekdayTh:"Do",weekdayFr:"Fr",weekdaySa:"Sa",importTitle:"Daten importieren",importStepSource:"1. Quelle",importStepMap:"2. Spalten zuordnen",importFile:"CSV-Datei",importPaste:"\u2026oder Zeilen einf\xFCgen",importSeparator:"Trennzeichen",importSeparatorAuto:"Automatisch erkennen",importSeparatorComma:"Komma ,",importSeparatorSemicolon:"Semikolon ;",importSeparatorTab:"Tabulator",importSeparatorPipe:"Pipe |",importFileColumn:"Dateispalte",importDetected:"Erkannt",importGridColumn:"Tabellenspalte",importSample:"Beispiel",importSkip:"\u2014 \xFCberspringen \u2014",importPreview:"Vorschau",importNoSource:"W\xE4hlen Sie zuerst eine Datei oder f\xFCgen Sie Zeilen ein.",importNoRows:"Es wurden keine Datenzeilen gefunden.",importAction:"Importieren",exportAborted:"Export abgebrochen",exportSheetName:"Daten",chart:"Diagramm",chartCategory:"Kategorie",chartSeries:"Reihe",chartAddSeries:"Reihe hinzuf\xFCgen",chartRemoveSeries:"Entfernen",chartSource:"Daten",chartSourceView:"Gefilterte Zeilen",chartSourceSelection:"Ausgew\xE4hlte Zeilen",chartSourceAll:"Alle Zeilen",chartClose:"Diagramm schlie\xDFen",chartFullscreen:"Vollbild",chartExitFullscreen:"Vollbild beenden",chartExportPng:"PNG",chartExportSvg:"SVG",chartExportFailed:"Das Diagramm konnte nicht exportiert werden.",chartCrossFiltered:"Die Tabelle ist auf {value} gefiltert.",chartBlankCategory:"(leer)",chartTruncated:"Es werden die obersten {n} Kategorien angezeigt; die \xFCbrigen sind als \u201ESonstige\u201C zusammengefasst.",chartOther:"Sonstige",chartEmpty:"Noch nichts darzustellen.",chartNeedsRecharts:"Diagramme ben\xF6tigen das optionale Paket `recharts`. Installieren Sie es, um sie zu zeichnen.",chartOnlyOneSeries:"Dieser Diagrammtyp zeigt eine Reihe.",chartByColumn:"Diagramm nach dieser Spalte",chartGroupBy:"Nach",chartGroupNone:"Jeder Wert",chartGroupAuto:"Automatisch",chartGroupDay:"Tag",chartGroupWeek:"Woche",chartGroupMonth:"Monat",chartGroupQuarter:"Quartal",chartGroupYear:"Jahr",chartGroupBins:"{n} Klassen",chartBucketAdjusted:"Zu viele Intervalle f\xFCr eine Achse \u2014 gr\xF6ber gruppiert.",chartWindowed:"{shown} von {total} werden angezeigt.",chartShowAll:"Alle anzeigen",chartCanvasHint:"Diagramm. Scrollen zum Zoomen, Ziehen zum Verschieben, Pfeiltasten zum Bewegen, 0 f\xFCr alle.",chartAggSum:"Summe",chartAggAvg:"Durchschnitt",chartAggMin:"Min",chartAggMax:"Max",chartAggCount:"Anzahl",chartAggDistinct:"Eindeutig",chartTypeColumn:"S\xE4ule",chartTypeBar:"Balken",chartTypeLine:"Linie",chartTypeArea:"Fl\xE4che",chartTypePie:"Kreis",chartTypeDonut:"Ring",licenseMissing:"Nicht lizenziert",licenseExpired:"Lizenz abgelaufen",licenseReleaseNotCovered:"Diese Version ist nicht durch die Lizenz abgedeckt",licenseDomainMismatch:"Lizenz gilt nicht f\xFCr diese Domain",licenseRevoked:"Lizenz widerrufen",licenseInvalidFormat:"Lizenzschl\xFCssel fehlerhaft",licenseInvalidSignature:"Ung\xFCltige Lizenzsignatur",licenseEngineUnavailable:"Browser kann die Lizenz nicht pr\xFCfen (HTTPS erforderlich)"},Bl={ok:"OK",cancel:"Annuler",apply:"Appliquer",close:"Fermer",clear:"Effacer",save:"Enregistrer",search:"Rechercher...",selectAll:"Tout s\xE9lectionner",showAll:"Tout afficher",remove:"Supprimer",none:"Aucun",toolbarSearch:"Rechercher...",exportMenu:"Exporter",exportCsv:"Exporter en CSV",exportExcel:"Exporter toutes les donn\xE9es vers Excel",exportExcelSelected:"Exporter les lignes s\xE9lectionn\xE9es vers Excel",exportPdf:"Exporter en PDF",exporting:"Exportation\u2026",columns:"Colonnes",hiddenColumns:"Colonnes masqu\xE9es",noHiddenColumns:"Aucune colonne masqu\xE9e.",sortAsc:"Trier de A \xE0 Z",sortDesc:"Trier de Z \xE0 A",clearSort:"Effacer le tri",groupByColumn:"Grouper par cette colonne",ungroupColumn:"Retirer du groupement",showGroupPanel:"Afficher le panneau de groupement",hideGroupPanel:"Masquer le panneau de groupement",showFooter:"Afficher le pied de tableau",hideFooter:"Masquer le pied de tableau",showGroupFooters:"Afficher les pieds de groupe",hideGroupFooters:"Masquer les pieds de groupe",hideColumn:"Masquer cette colonne",fieldChooser:"S\xE9lecteur de champs\u2026",bestFit:"Ajuster la largeur",bestFitAll:"Ajuster la largeur (toutes les colonnes)",fixedPosition:"D\xE9finir une position fixe",pinLeft:"Gauche",pinRight:"Droite",pinSticky:"Fixe",unpin:"Lib\xE9rer",moveLeft:"D\xE9placer vers la gauche",moveRight:"D\xE9placer vers la droite",filterPlaceholder:"Filtrer\u2026",filterColumnAria:"Filtrer {column}",filterSelectAll:"Tout s\xE9lectionner",filterBlank:"(Vides)",filterNoMatch:"Aucune valeur correspondante",filterLoading:"Chargement des valeurs\u2026",filterTruncated:"Seules les premi\xE8res valeurs sont affich\xE9es \u2014 recherchez pour trouver les autres.",filterRemove:"Supprimer le filtre",filterToggle:"Appliquer le filtre",filterEditBuilder:"Modifier le filtre",filterNone:"Aucun filtre",filterActive:"Filtre actif",opEquals:"est",opNotEquals:"n'est pas",opGreater:">",opGreaterOrEqual:"\u2265",opLess:"<",opLessOrEqual:"\u2264",opContains:"contient",opNotContains:"ne contient pas",opStartsWith:"commence par",opEndsWith:"se termine par",opIsBlank:"est vide",opIsNotBlank:"n'est pas vide",opIsOneOf:"fait partie de",opIsBetween:"est entre",opValuesCount:"{n} valeurs",filterAnd:"ET",filterOr:"OU",builderTitle:"G\xE9n\xE9rateur de filtre",builderCombine:"Combiner les conditions avec",builderAddCondition:"Ajouter une condition",builderAddGroup:"Ajouter un groupe",builderRemoveGroup:"Supprimer le groupe",builderRemoveCondition:"Supprimer la condition",builderEmpty:"Aucune condition pour le moment.",builderColumn:"Colonne",builderOperator:"Op\xE9rateur",builderValue:"Valeur",builderValueFrom:"De",builderValueTo:"\xC0",builderValuePlaceholder:"Saisissez une valeur",groupPanelHint:"Faites glisser une colonne ici pour grouper",groupAddLevel:"Ajouter un niveau de groupement",groupAddLevelButton:"+ Ajouter un niveau\u2026",groupNoGrouping:"(aucun groupement)",groupLevelAria:"Niveau de groupement {n}",groupRemoveAria:"Supprimer {column}",pagerFirst:"Premi\xE8re page",pagerPrevious:"Page pr\xE9c\xE9dente",pagerNext:"Page suivante",pagerLast:"Derni\xE8re page",pagerPage:"Page",pagerOf:"sur",pagerRowsPerPage:"Lignes par page",pagerAria:"Pagination",selectAllRows:"S\xE9lectionner toutes les lignes",selectRowAria:"S\xE9lectionner la ligne {row}",summaryAria:"Synth\xE8se",columnTotalsAria:"Totaux des colonnes",rowActions:"Actions de ligne",detailsAria:"D\xE9tails",rowNumberAria:"Num\xE9ro de ligne",noteEditorAria:"Note de cellule",notePlaceholder:"\xC9crivez une note sur cette cellule\u2026",addNote:"Ajouter une note\u2026",editNote:"Modifier la note\u2026",deleteNote:"Supprimer la note",expandDetails:"D\xE9velopper les d\xE9tails",collapseDetails:"R\xE9duire les d\xE9tails",dragToReorder:"Faire glisser pour r\xE9ordonner",menuCopy:"Copier",menuCopyWithHeaders:"Copier avec les en-t\xEAtes",menuCopyWithGroupHeaders:"Copier avec les en-t\xEAtes de groupe",menuCut:"Couper",menuPaste:"Coller",menuExport:"Exporter",menuChartRange:"Graphique des colonnes s\xE9lectionn\xE9es",statsSum:"Somme",statsCount:"Nombre",statsAvg:"Moyenne",statsMin:"Min",statsMax:"Max",statsCells:"Cellules",statsTooLarge:"S\xE9lection trop grande pour \xEAtre totalis\xE9e",statusRows:"Lignes",statusFiltered:"Filtr\xE9es",statusSelected:"S\xE9lectionn\xE9es",summaryRows:"lignes",announceRows:"{n} lignes",announceSortedBy:"tri\xE9 par {columns}",announceSelected:"{n} s\xE9lectionn\xE9es",announceAscending:"croissant",announceDescending:"d\xE9croissant",sideFilters:"Filtres",sideBarAria:"Panneaux d'outils",sideClearFilters:"Effacer tous les filtres",summarySum:"Somme",summaryAvg:"Moyenne",summaryMin:"Min",summaryMax:"Max",summaryCount:"Nombre",summaryDistinct:"Distinct",summaryCustom:"Personnalis\xE9",noTotal:"Aucun total",busy:"En cours\u2026",busyLoading:"Chargement des lignes\u2026",busyEncoding:"Pr\xE9paration des donn\xE9es\u2026",busyFiltering:"Filtrage des lignes\u2026",busySorting:"Tri des lignes\u2026",busyComputing:"Filtrage et tri\u2026",busyGrouping:"Construction des groupes\u2026",busyAggregating:"Calcul des totaux\u2026",busyProjecting:"Mise \xE0 jour de la vue\u2026",busyExporting:"Cr\xE9ation du fichier\u2026",noData:"Aucune donn\xE9e trouv\xE9e",editNewRow:"Nouvelle ligne",editSaveChanges:"Enregistrer les modifications",editDiscardChanges:"Annuler les modifications",editRow:"Modifier la ligne",editRowMenu:"Modifier la ligne\u2026",editDeleteRow:"Supprimer la ligne",editUndoDelete:"Annuler la suppression",editActions:"Actions",editSaveRow:"Enregistrer la ligne",editSaving:"Enregistrement\u2026",editEditingRow:"Modification de la ligne {row}",editSaveCount:"Enregistrer {n} ligne(s)",editCannotSave:"Enregistrement impossible",editSaveFailed:"Les modifications n'ont pas pu \xEAtre enregistr\xE9es.",editDeleteConfirm:"Supprimer cette ligne ?",editAddRowUndo:"Ajouter une ligne",editDeleteRowUndo:"Supprimer la ligne",editCellUndo:"Modifier {column}",editFillUndo:"Remplir {count} cellules",editPasteUndo:"Coller {count} cellules",editCutUndo:"Couper {count} cellules",editNoMatch:"Aucune correspondance",formEditTitle:"Modifier la ligne",formAddTitle:"Nouvelle ligne",formShortcut:"{key}+Entr\xE9e pour enregistrer \xB7 \xC9chap pour annuler",validationRequired:"Ce champ est obligatoire",validationNumber:"Doit \xEAtre un nombre",validationFormat:"Format invalide",validationEmail:"Adresse e-mail invalide",validationInvalid:"Valeur invalide",dateCalendar:"Calendrier",dateOpenCalendar:"Ouvrir le calendrier",datePreviousMonth:"Mois pr\xE9c\xE9dent",dateNextMonth:"Mois suivant",monthJanuary:"Janvier",monthFebruary:"F\xE9vrier",monthMarch:"Mars",monthApril:"Avril",monthMay:"Mai",monthJune:"Juin",monthJuly:"Juillet",monthAugust:"Ao\xFBt",monthSeptember:"Septembre",monthOctober:"Octobre",monthNovember:"Novembre",monthDecember:"D\xE9cembre",weekStartsOn:"1",weekdaySu:"Di",weekdayMo:"Lu",weekdayTu:"Ma",weekdayWe:"Me",weekdayTh:"Je",weekdayFr:"Ve",weekdaySa:"Sa",importTitle:"Importer des donn\xE9es",importStepSource:"1. Source",importStepMap:"2. Associer les colonnes",importFile:"Fichier CSV",importPaste:"\u2026ou collez des lignes",importSeparator:"S\xE9parateur",importSeparatorAuto:"D\xE9tecter automatiquement",importSeparatorComma:"Virgule ,",importSeparatorSemicolon:"Point-virgule ;",importSeparatorTab:"Tabulation",importSeparatorPipe:"Barre verticale |",importFileColumn:"Colonne du fichier",importDetected:"D\xE9tect\xE9",importGridColumn:"Colonne du tableau",importSample:"Exemple",importSkip:"\u2014 ignorer \u2014",importPreview:"Aper\xE7u",importNoSource:"Choisissez d'abord un fichier ou collez des lignes.",importNoRows:"Aucune ligne de donn\xE9es trouv\xE9e.",importAction:"Importer",exportAborted:"Exportation interrompue",exportSheetName:"Donn\xE9es",chart:"Graphique",chartCategory:"Cat\xE9gorie",chartSeries:"S\xE9rie",chartAddSeries:"Ajouter une s\xE9rie",chartRemoveSeries:"Supprimer",chartSource:"Donn\xE9es",chartSourceView:"Lignes filtr\xE9es",chartSourceSelection:"Lignes s\xE9lectionn\xE9es",chartSourceAll:"Toutes les lignes",chartClose:"Fermer le graphique",chartFullscreen:"Plein \xE9cran",chartExitFullscreen:"Quitter le plein \xE9cran",chartExportPng:"PNG",chartExportSvg:"SVG",chartExportFailed:"Le graphique n'a pas pu \xEAtre export\xE9.",chartCrossFiltered:"Le tableau est filtr\xE9 sur {value}.",chartBlankCategory:"(vide)",chartTruncated:"Affichage des {n} premi\xE8res cat\xE9gories ; les autres sont regroup\xE9es sous \xAB Autres \xBB.",chartOther:"Autres",chartEmpty:"Rien \xE0 repr\xE9senter pour le moment.",chartNeedsRecharts:"Les graphiques n\xE9cessitent le paquet optionnel `recharts`. Installez-le pour les dessiner.",chartOnlyOneSeries:"Ce type de graphique affiche une seule s\xE9rie.",chartByColumn:"Graphique par cette colonne",chartGroupBy:"Par",chartGroupNone:"Chaque valeur",chartGroupAuto:"Automatique",chartGroupDay:"Jour",chartGroupWeek:"Semaine",chartGroupMonth:"Mois",chartGroupQuarter:"Trimestre",chartGroupYear:"Ann\xE9e",chartGroupBins:"{n} classes",chartBucketAdjusted:"Trop d\u2019intervalles pour un axe \u2014 regroupement plus large.",chartWindowed:"Affichage de {shown} sur {total}.",chartShowAll:"Tout afficher",chartCanvasHint:"Graphique. Faites d\xE9filer pour zoomer, glissez pour d\xE9placer, fl\xE8ches pour parcourir, 0 pour tout afficher.",chartAggSum:"Somme",chartAggAvg:"Moyenne",chartAggMin:"Min",chartAggMax:"Max",chartAggCount:"Nombre",chartAggDistinct:"Distinct",chartTypeColumn:"Colonnes",chartTypeBar:"Barres",chartTypeLine:"Courbe",chartTypeArea:"Aires",chartTypePie:"Secteurs",chartTypeDonut:"Anneau",licenseMissing:"Sans licence",licenseExpired:"Licence expir\xE9e",licenseReleaseNotCovered:"Cette version n\u2019est pas couverte par la licence",licenseDomainMismatch:"Licence non valide pour ce domaine",licenseRevoked:"Licence r\xE9voqu\xE9e",licenseInvalidFormat:"Cl\xE9 de licence mal form\xE9e",licenseInvalidSignature:"Signature de licence invalide",licenseEngineUnavailable:"Le navigateur ne peut pas v\xE9rifier la licence (HTTPS requis)"},kl={ok:"Aceptar",cancel:"Cancelar",apply:"Aplicar",close:"Cerrar",clear:"Borrar",save:"Guardar",search:"Buscar...",selectAll:"Seleccionar todo",showAll:"Mostrar todo",remove:"Quitar",none:"Ninguno",toolbarSearch:"Buscar...",exportMenu:"Exportar",exportCsv:"Exportar a CSV",exportExcel:"Exportar todos los datos a Excel",exportExcelSelected:"Exportar las filas seleccionadas a Excel",exportPdf:"Exportar a PDF",exporting:"Exportando\u2026",columns:"Columnas",hiddenColumns:"Columnas ocultas",noHiddenColumns:"No hay columnas ocultas.",sortAsc:"Ordenar de la A a la Z",sortDesc:"Ordenar de la Z a la A",clearSort:"Borrar ordenaci\xF3n",groupByColumn:"Agrupar por esta columna",ungroupColumn:"Quitar de la agrupaci\xF3n",showGroupPanel:"Mostrar panel de agrupaci\xF3n",hideGroupPanel:"Ocultar panel de agrupaci\xF3n",showFooter:"Mostrar pie de tabla",hideFooter:"Ocultar pie de tabla",showGroupFooters:"Mostrar pies de grupo",hideGroupFooters:"Ocultar pies de grupo",hideColumn:"Ocultar esta columna",fieldChooser:"Selector de campos\u2026",bestFit:"Ajustar ancho",bestFitAll:"Ajustar ancho (todas las columnas)",fixedPosition:"Establecer posici\xF3n fija",pinLeft:"Izquierda",pinRight:"Derecha",pinSticky:"Fija",unpin:"Liberar",moveLeft:"Mover a la izquierda",moveRight:"Mover a la derecha",filterPlaceholder:"Filtrar\u2026",filterColumnAria:"Filtrar {column}",filterSelectAll:"Seleccionar todo",filterBlank:"(En blanco)",filterNoMatch:"No hay valores coincidentes",filterLoading:"Cargando valores\u2026",filterTruncated:"Solo se muestran los primeros valores \u2014 busque para encontrar el resto.",filterRemove:"Quitar el filtro",filterToggle:"Aplicar el filtro",filterEditBuilder:"Editar el filtro",filterNone:"Sin filtro",filterActive:"Filtro activo",opEquals:"es",opNotEquals:"no es",opGreater:">",opGreaterOrEqual:"\u2265",opLess:"<",opLessOrEqual:"\u2264",opContains:"contiene",opNotContains:"no contiene",opStartsWith:"empieza por",opEndsWith:"termina en",opIsBlank:"est\xE1 en blanco",opIsNotBlank:"no est\xE1 en blanco",opIsOneOf:"es uno de",opIsBetween:"est\xE1 entre",opValuesCount:"{n} valores",filterAnd:"Y",filterOr:"O",builderTitle:"Generador de filtros",builderCombine:"Combinar condiciones con",builderAddCondition:"A\xF1adir condici\xF3n",builderAddGroup:"A\xF1adir grupo",builderRemoveGroup:"Quitar grupo",builderRemoveCondition:"Quitar condici\xF3n",builderEmpty:"Todav\xEDa no hay condiciones.",builderColumn:"Columna",builderOperator:"Operador",builderValue:"Valor",builderValueFrom:"Desde",builderValueTo:"Hasta",builderValuePlaceholder:"Introduzca un valor",groupPanelHint:"Arrastre una columna aqu\xED para agrupar por ella",groupAddLevel:"A\xF1adir nivel de agrupaci\xF3n",groupAddLevelButton:"+ A\xF1adir nivel\u2026",groupNoGrouping:"(sin agrupaci\xF3n)",groupLevelAria:"Nivel de agrupaci\xF3n {n}",groupRemoveAria:"Quitar {column}",pagerFirst:"Primera p\xE1gina",pagerPrevious:"P\xE1gina anterior",pagerNext:"P\xE1gina siguiente",pagerLast:"\xDAltima p\xE1gina",pagerPage:"P\xE1gina",pagerOf:"de",pagerRowsPerPage:"Filas por p\xE1gina",pagerAria:"Paginaci\xF3n",selectAllRows:"Seleccionar todas las filas",selectRowAria:"Seleccionar la fila {row}",summaryAria:"Resumen",columnTotalsAria:"Totales de columna",rowActions:"Acciones de fila",detailsAria:"Detalles",rowNumberAria:"N\xFAmero de fila",noteEditorAria:"Nota de celda",notePlaceholder:"Escriba una nota sobre esta celda\u2026",addNote:"A\xF1adir nota\u2026",editNote:"Editar nota\u2026",deleteNote:"Eliminar nota",expandDetails:"Expandir detalles",collapseDetails:"Contraer detalles",dragToReorder:"Arrastre para reordenar",menuCopy:"Copiar",menuCopyWithHeaders:"Copiar con encabezados",menuCopyWithGroupHeaders:"Copiar con encabezados de grupo",menuCut:"Cortar",menuPaste:"Pegar",menuExport:"Exportar",menuChartRange:"Graficar columnas seleccionadas",statsSum:"Suma",statsCount:"Recuento",statsAvg:"Promedio",statsMin:"M\xEDnimo",statsMax:"M\xE1ximo",statsCells:"Celdas",statsTooLarge:"Selecci\xF3n demasiado grande para sumarla",statusRows:"Filas",statusFiltered:"Filtradas",statusSelected:"Seleccionadas",summaryRows:"filas",announceRows:"{n} filas",announceSortedBy:"ordenado por {columns}",announceSelected:"{n} seleccionadas",announceAscending:"ascendente",announceDescending:"descendente",sideFilters:"Filtros",sideBarAria:"Paneles de herramientas",sideClearFilters:"Borrar todos los filtros",summarySum:"Suma",summaryAvg:"Promedio",summaryMin:"M\xEDnimo",summaryMax:"M\xE1ximo",summaryCount:"Recuento",summaryDistinct:"Distintos",summaryCustom:"Personalizado",noTotal:"Sin total",busy:"Trabajando\u2026",busyLoading:"Cargando filas\u2026",busyEncoding:"Preparando datos\u2026",busyFiltering:"Filtrando filas\u2026",busySorting:"Ordenando filas\u2026",busyComputing:"Filtrando y ordenando\u2026",busyGrouping:"Creando grupos\u2026",busyAggregating:"Calculando totales\u2026",busyProjecting:"Actualizando la vista\u2026",busyExporting:"Creando el archivo\u2026",noData:"No se encontraron datos",editNewRow:"Nueva fila",editSaveChanges:"Guardar cambios",editDiscardChanges:"Descartar cambios",editRow:"Editar fila",editRowMenu:"Editar fila\u2026",editDeleteRow:"Eliminar fila",editUndoDelete:"Deshacer eliminaci\xF3n",editActions:"Acciones",editSaveRow:"Guardar fila",editSaving:"Guardando\u2026",editEditingRow:"Editando la fila {row}",editSaveCount:"Guardar {n} fila(s)",editCannotSave:"No se puede guardar",editSaveFailed:"No se pudieron guardar los cambios.",editDeleteConfirm:"\xBFEliminar esta fila?",editAddRowUndo:"A\xF1adir fila",editDeleteRowUndo:"Eliminar fila",editCellUndo:"Editar {column}",editFillUndo:"Rellenar {count} celdas",editPasteUndo:"Pegar {count} celdas",editCutUndo:"Cortar {count} celdas",editNoMatch:"Sin coincidencias",formEditTitle:"Editar fila",formAddTitle:"Nueva fila",formShortcut:"{key}+Intro para guardar \xB7 Esc para cancelar",validationRequired:"Este campo es obligatorio",validationNumber:"Debe ser un n\xFAmero",validationFormat:"Formato no v\xE1lido",validationEmail:"Direcci\xF3n de correo no v\xE1lida",validationInvalid:"Valor no v\xE1lido",dateCalendar:"Calendario",dateOpenCalendar:"Abrir calendario",datePreviousMonth:"Mes anterior",dateNextMonth:"Mes siguiente",monthJanuary:"Enero",monthFebruary:"Febrero",monthMarch:"Marzo",monthApril:"Abril",monthMay:"Mayo",monthJune:"Junio",monthJuly:"Julio",monthAugust:"Agosto",monthSeptember:"Septiembre",monthOctober:"Octubre",monthNovember:"Noviembre",monthDecember:"Diciembre",weekStartsOn:"1",weekdaySu:"Do",weekdayMo:"Lu",weekdayTu:"Ma",weekdayWe:"Mi",weekdayTh:"Ju",weekdayFr:"Vi",weekdaySa:"S\xE1",importTitle:"Importar datos",importStepSource:"1. Origen",importStepMap:"2. Asignar columnas",importFile:"Archivo CSV",importPaste:"\u2026o pegue filas",importSeparator:"Separador",importSeparatorAuto:"Detectar autom\xE1ticamente",importSeparatorComma:"Coma ,",importSeparatorSemicolon:"Punto y coma ;",importSeparatorTab:"Tabulador",importSeparatorPipe:"Barra vertical |",importFileColumn:"Columna del archivo",importDetected:"Detectado",importGridColumn:"Columna de la tabla",importSample:"Muestra",importSkip:"\u2014 omitir \u2014",importPreview:"Vista previa",importNoSource:"Elija primero un archivo o pegue algunas filas.",importNoRows:"No se encontraron filas de datos.",importAction:"Importar",exportAborted:"Exportaci\xF3n cancelada",exportSheetName:"Datos",chart:"Gr\xE1fico",chartCategory:"Categor\xEDa",chartSeries:"Serie",chartAddSeries:"A\xF1adir serie",chartRemoveSeries:"Quitar",chartSource:"Datos",chartSourceView:"Filas filtradas",chartSourceSelection:"Filas seleccionadas",chartSourceAll:"Todas las filas",chartClose:"Cerrar el gr\xE1fico",chartFullscreen:"Pantalla completa",chartExitFullscreen:"Salir de pantalla completa",chartExportPng:"PNG",chartExportSvg:"SVG",chartExportFailed:"No se pudo exportar el gr\xE1fico.",chartCrossFiltered:"La tabla est\xE1 filtrada por {value}.",chartBlankCategory:"(en blanco)",chartTruncated:"Se muestran las {n} categor\xEDas principales; el resto se agrupa como \xABOtros\xBB.",chartOther:"Otros",chartEmpty:"Todav\xEDa no hay nada que representar.",chartNeedsRecharts:"Los gr\xE1ficos necesitan el paquete opcional `recharts`. Inst\xE1lelo para dibujarlos.",chartOnlyOneSeries:"Este tipo de gr\xE1fico muestra una serie.",chartByColumn:"Gr\xE1fico por esta columna",chartGroupBy:"Por",chartGroupNone:"Cada valor",chartGroupAuto:"Autom\xE1tico",chartGroupDay:"D\xEDa",chartGroupWeek:"Semana",chartGroupMonth:"Mes",chartGroupQuarter:"Trimestre",chartGroupYear:"A\xF1o",chartGroupBins:"{n} intervalos",chartBucketAdjusted:"Demasiados intervalos para un eje \u2014 se agrup\xF3 de forma m\xE1s amplia.",chartWindowed:"Mostrando {shown} de {total}.",chartShowAll:"Mostrar todo",chartCanvasHint:"Gr\xE1fico. Desplace para acercar, arrastre para mover, flechas para navegar, 0 para verlo todo.",chartAggSum:"Suma",chartAggAvg:"Promedio",chartAggMin:"M\xEDnimo",chartAggMax:"M\xE1ximo",chartAggCount:"Recuento",chartAggDistinct:"Distintos",chartTypeColumn:"Columnas",chartTypeBar:"Barras",chartTypeLine:"L\xEDneas",chartTypeArea:"\xC1reas",chartTypePie:"Circular",chartTypeDonut:"Anillo",licenseMissing:"Sin licencia",licenseExpired:"Licencia caducada",licenseReleaseNotCovered:"Esta versi\xF3n no est\xE1 cubierta por la licencia",licenseDomainMismatch:"Licencia no v\xE1lida para este dominio",licenseRevoked:"Licencia revocada",licenseInvalidFormat:"Clave de licencia mal formada",licenseInvalidSignature:"Firma de licencia no v\xE1lida",licenseEngineUnavailable:"El navegador no puede verificar la licencia (se requiere HTTPS)"},Rl={ok:"OK",cancel:"Annulla",apply:"Applica",close:"Chiudi",clear:"Cancella",save:"Salva",search:"Cerca...",selectAll:"Seleziona tutto",showAll:"Mostra tutto",remove:"Rimuovi",none:"Nessuno",toolbarSearch:"Cerca...",exportMenu:"Esporta",exportCsv:"Esporta in CSV",exportExcel:"Esporta tutti i dati in Excel",exportExcelSelected:"Esporta le righe selezionate in Excel",exportPdf:"Esporta in PDF",exporting:"Esportazione\u2026",columns:"Colonne",hiddenColumns:"Colonne nascoste",noHiddenColumns:"Nessuna colonna nascosta.",sortAsc:"Ordina dalla A alla Z",sortDesc:"Ordina dalla Z alla A",clearSort:"Cancella ordinamento",groupByColumn:"Raggruppa per questa colonna",ungroupColumn:"Rimuovi dal raggruppamento",showGroupPanel:"Mostra pannello di raggruppamento",hideGroupPanel:"Nascondi pannello di raggruppamento",showFooter:"Mostra pi\xE8 di tabella",hideFooter:"Nascondi pi\xE8 di tabella",showGroupFooters:"Mostra pi\xE8 di gruppo",hideGroupFooters:"Nascondi pi\xE8 di gruppo",hideColumn:"Nascondi questa colonna",fieldChooser:"Selettore campi\u2026",bestFit:"Adatta larghezza",bestFitAll:"Adatta larghezza (tutte le colonne)",fixedPosition:"Imposta posizione fissa",pinLeft:"Sinistra",pinRight:"Destra",pinSticky:"Fissa",unpin:"Sblocca",moveLeft:"Sposta a sinistra",moveRight:"Sposta a destra",filterPlaceholder:"Filtra\u2026",filterColumnAria:"Filtra {column}",filterSelectAll:"Seleziona tutto",filterBlank:"(Vuoti)",filterNoMatch:"Nessun valore corrispondente",filterLoading:"Caricamento valori\u2026",filterTruncated:"Vengono mostrati solo i primi valori \u2014 cerca per trovare gli altri.",filterRemove:"Rimuovi il filtro",filterToggle:"Applica il filtro",filterEditBuilder:"Modifica il filtro",filterNone:"Nessun filtro",filterActive:"Filtro attivo",opEquals:"\xE8",opNotEquals:"non \xE8",opGreater:">",opGreaterOrEqual:"\u2265",opLess:"<",opLessOrEqual:"\u2264",opContains:"contiene",opNotContains:"non contiene",opStartsWith:"inizia con",opEndsWith:"finisce con",opIsBlank:"\xE8 vuoto",opIsNotBlank:"non \xE8 vuoto",opIsOneOf:"\xE8 uno di",opIsBetween:"\xE8 compreso tra",opValuesCount:"{n} valori",filterAnd:"E",filterOr:"O",builderTitle:"Generatore di filtri",builderCombine:"Combina le condizioni con",builderAddCondition:"Aggiungi condizione",builderAddGroup:"Aggiungi gruppo",builderRemoveGroup:"Rimuovi gruppo",builderRemoveCondition:"Rimuovi condizione",builderEmpty:"Ancora nessuna condizione.",builderColumn:"Colonna",builderOperator:"Operatore",builderValue:"Valore",builderValueFrom:"Da",builderValueTo:"A",builderValuePlaceholder:"Inserisci un valore",groupPanelHint:"Trascina qui una colonna per raggrupparla",groupAddLevel:"Aggiungi livello di raggruppamento",groupAddLevelButton:"+ Aggiungi livello\u2026",groupNoGrouping:"(nessun raggruppamento)",groupLevelAria:"Livello di raggruppamento {n}",groupRemoveAria:"Rimuovi {column}",pagerFirst:"Prima pagina",pagerPrevious:"Pagina precedente",pagerNext:"Pagina successiva",pagerLast:"Ultima pagina",pagerPage:"Pagina",pagerOf:"di",pagerRowsPerPage:"Righe per pagina",pagerAria:"Paginazione",selectAllRows:"Seleziona tutte le righe",selectRowAria:"Seleziona la riga {row}",summaryAria:"Riepilogo",columnTotalsAria:"Totali di colonna",rowActions:"Azioni riga",detailsAria:"Dettagli",rowNumberAria:"Numero di riga",noteEditorAria:"Nota della cella",notePlaceholder:"Scrivi una nota su questa cella\u2026",addNote:"Aggiungi nota\u2026",editNote:"Modifica nota\u2026",deleteNote:"Elimina nota",expandDetails:"Espandi i dettagli",collapseDetails:"Comprimi i dettagli",dragToReorder:"Trascina per riordinare",menuCopy:"Copia",menuCopyWithHeaders:"Copia con intestazioni",menuCopyWithGroupHeaders:"Copia con intestazioni di gruppo",menuCut:"Taglia",menuPaste:"Incolla",menuExport:"Esporta",menuChartRange:"Grafico delle colonne selezionate",statsSum:"Somma",statsCount:"Conteggio",statsAvg:"Media",statsMin:"Min",statsMax:"Max",statsCells:"Celle",statsTooLarge:"Selezione troppo grande per essere totalizzata",statusRows:"Righe",statusFiltered:"Filtrate",statusSelected:"Selezionate",summaryRows:"righe",announceRows:"{n} righe",announceSortedBy:"ordinato per {columns}",announceSelected:"{n} selezionate",announceAscending:"crescente",announceDescending:"decrescente",sideFilters:"Filtri",sideBarAria:"Pannelli degli strumenti",sideClearFilters:"Cancella tutti i filtri",summarySum:"Somma",summaryAvg:"Media",summaryMin:"Min",summaryMax:"Max",summaryCount:"Conteggio",summaryDistinct:"Distinti",summaryCustom:"Personalizzato",noTotal:"Nessun totale",busy:"Elaborazione\u2026",busyLoading:"Caricamento righe\u2026",busyEncoding:"Preparazione dei dati\u2026",busyFiltering:"Filtraggio righe\u2026",busySorting:"Ordinamento righe\u2026",busyComputing:"Filtraggio e ordinamento\u2026",busyGrouping:"Creazione dei gruppi\u2026",busyAggregating:"Calcolo dei totali\u2026",busyProjecting:"Aggiornamento della vista\u2026",busyExporting:"Creazione del file\u2026",noData:"Nessun dato trovato",editNewRow:"Nuova riga",editSaveChanges:"Salva le modifiche",editDiscardChanges:"Annulla le modifiche",editRow:"Modifica riga",editRowMenu:"Modifica riga\u2026",editDeleteRow:"Elimina riga",editUndoDelete:"Annulla eliminazione",editActions:"Azioni",editSaveRow:"Salva riga",editSaving:"Salvataggio\u2026",editEditingRow:"Modifica della riga {row}",editSaveCount:"Salva {n} riga/righe",editCannotSave:"Impossibile salvare",editSaveFailed:"Non \xE8 stato possibile salvare le modifiche.",editDeleteConfirm:"Eliminare questa riga?",editAddRowUndo:"Aggiungi riga",editDeleteRowUndo:"Elimina riga",editCellUndo:"Modifica {column}",editFillUndo:"Riempi {count} celle",editPasteUndo:"Incolla {count} celle",editCutUndo:"Taglia {count} celle",editNoMatch:"Nessuna corrispondenza",formEditTitle:"Modifica riga",formAddTitle:"Nuova riga",formShortcut:"{key}+Invio per salvare \xB7 Esc per annullare",validationRequired:"Questo campo \xE8 obbligatorio",validationNumber:"Deve essere un numero",validationFormat:"Formato non valido",validationEmail:"Indirizzo e-mail non valido",validationInvalid:"Valore non valido",dateCalendar:"Calendario",dateOpenCalendar:"Apri il calendario",datePreviousMonth:"Mese precedente",dateNextMonth:"Mese successivo",monthJanuary:"Gennaio",monthFebruary:"Febbraio",monthMarch:"Marzo",monthApril:"Aprile",monthMay:"Maggio",monthJune:"Giugno",monthJuly:"Luglio",monthAugust:"Agosto",monthSeptember:"Settembre",monthOctober:"Ottobre",monthNovember:"Novembre",monthDecember:"Dicembre",weekStartsOn:"1",weekdaySu:"Do",weekdayMo:"Lu",weekdayTu:"Ma",weekdayWe:"Me",weekdayTh:"Gi",weekdayFr:"Ve",weekdaySa:"Sa",importTitle:"Importa dati",importStepSource:"1. Origine",importStepMap:"2. Associa colonne",importFile:"File CSV",importPaste:"\u2026oppure incolla delle righe",importSeparator:"Separatore",importSeparatorAuto:"Rileva automaticamente",importSeparatorComma:"Virgola ,",importSeparatorSemicolon:"Punto e virgola ;",importSeparatorTab:"Tabulazione",importSeparatorPipe:"Barra verticale |",importFileColumn:"Colonna del file",importDetected:"Rilevato",importGridColumn:"Colonna della tabella",importSample:"Esempio",importSkip:"\u2014 salta \u2014",importPreview:"Anteprima",importNoSource:"Scegli prima un file oppure incolla delle righe.",importNoRows:"Non \xE8 stata trovata alcuna riga di dati.",importAction:"Importa",exportAborted:"Esportazione interrotta",exportSheetName:"Dati",chart:"Grafico",chartCategory:"Categoria",chartSeries:"Serie",chartAddSeries:"Aggiungi serie",chartRemoveSeries:"Rimuovi",chartSource:"Dati",chartSourceView:"Righe filtrate",chartSourceSelection:"Righe selezionate",chartSourceAll:"Tutte le righe",chartClose:"Chiudi il grafico",chartFullscreen:"Schermo intero",chartExitFullscreen:"Esci da schermo intero",chartExportPng:"PNG",chartExportSvg:"SVG",chartExportFailed:"Non \xE8 stato possibile esportare il grafico.",chartCrossFiltered:"La tabella \xE8 filtrata su {value}.",chartBlankCategory:"(vuoto)",chartTruncated:"Vengono mostrate le prime {n} categorie; le altre sono raggruppate come \xABAltro\xBB.",chartOther:"Altro",chartEmpty:"Non c\u2019\xE8 ancora nulla da rappresentare.",chartNeedsRecharts:"I grafici richiedono il pacchetto opzionale `recharts`. Installalo per disegnarli.",chartOnlyOneSeries:"Questo tipo di grafico mostra una sola serie.",chartByColumn:"Grafico per questa colonna",chartGroupBy:"Per",chartGroupNone:"Ogni valore",chartGroupAuto:"Automatico",chartGroupDay:"Giorno",chartGroupWeek:"Settimana",chartGroupMonth:"Mese",chartGroupQuarter:"Trimestre",chartGroupYear:"Anno",chartGroupBins:"{n} intervalli",chartBucketAdjusted:"Troppi intervalli per un asse \u2014 raggruppati in modo pi\xF9 ampio.",chartWindowed:"Vengono mostrati {shown} di {total}.",chartShowAll:"Mostra tutto",chartCanvasHint:"Grafico. Scorri per ingrandire, trascina per spostare, frecce per navigare, 0 per mostrare tutto.",chartAggSum:"Somma",chartAggAvg:"Media",chartAggMin:"Min",chartAggMax:"Max",chartAggCount:"Conteggio",chartAggDistinct:"Distinti",chartTypeColumn:"Colonne",chartTypeBar:"Barre",chartTypeLine:"Linee",chartTypeArea:"Aree",chartTypePie:"Torta",chartTypeDonut:"Ciambella",licenseMissing:"Senza licenza",licenseExpired:"Licenza scaduta",licenseReleaseNotCovered:"Questa versione non \xE8 coperta dalla licenza",licenseDomainMismatch:"Licenza non valida per questo dominio",licenseRevoked:"Licenza revocata",licenseInvalidFormat:"Chiave di licenza malformata",licenseInvalidSignature:"Firma della licenza non valida",licenseEngineUnavailable:"Il browser non pu\xF2 verificare la licenza (HTTPS richiesto)"},Nl={ok:"OK",cancel:"Cancelar",apply:"Aplicar",close:"Fechar",clear:"Limpar",save:"Guardar",search:"Pesquisar...",selectAll:"Selecionar tudo",showAll:"Mostrar tudo",remove:"Remover",none:"Nenhum",toolbarSearch:"Pesquisar...",exportMenu:"Exportar",exportCsv:"Exportar para CSV",exportExcel:"Exportar todos os dados para Excel",exportExcelSelected:"Exportar as linhas selecionadas para Excel",exportPdf:"Exportar para PDF",exporting:"A exportar\u2026",columns:"Colunas",hiddenColumns:"Colunas ocultas",noHiddenColumns:"Nenhuma coluna oculta.",sortAsc:"Classificar de A a Z",sortDesc:"Classificar de Z a A",clearSort:"Limpar classifica\xE7\xE3o",groupByColumn:"Agrupar por esta coluna",ungroupColumn:"Remover do agrupamento",showGroupPanel:"Mostrar painel de agrupamento",hideGroupPanel:"Ocultar painel de agrupamento",showFooter:"Mostrar rodap\xE9",hideFooter:"Ocultar rodap\xE9",showGroupFooters:"Mostrar rodap\xE9s de grupo",hideGroupFooters:"Ocultar rodap\xE9s de grupo",hideColumn:"Ocultar esta coluna",fieldChooser:"Seletor de campos\u2026",bestFit:"Ajustar largura",bestFitAll:"Ajustar largura (todas as colunas)",fixedPosition:"Definir posi\xE7\xE3o fixa",pinLeft:"Esquerda",pinRight:"Direita",pinSticky:"Fixa",unpin:"Libertar",moveLeft:"Mover para a esquerda",moveRight:"Mover para a direita",filterPlaceholder:"Filtrar\u2026",filterColumnAria:"Filtrar {column}",filterSelectAll:"Selecionar tudo",filterBlank:"(Em branco)",filterNoMatch:"Nenhum valor correspondente",filterLoading:"A carregar valores\u2026",filterTruncated:"S\xE3o mostrados apenas os primeiros valores \u2014 pesquise para encontrar os restantes.",filterRemove:"Remover o filtro",filterToggle:"Aplicar o filtro",filterEditBuilder:"Editar o filtro",filterNone:"Sem filtro",filterActive:"Filtro ativo",opEquals:"\xE9",opNotEquals:"n\xE3o \xE9",opGreater:">",opGreaterOrEqual:"\u2265",opLess:"<",opLessOrEqual:"\u2264",opContains:"cont\xE9m",opNotContains:"n\xE3o cont\xE9m",opStartsWith:"come\xE7a por",opEndsWith:"termina em",opIsBlank:"est\xE1 em branco",opIsNotBlank:"n\xE3o est\xE1 em branco",opIsOneOf:"\xE9 um de",opIsBetween:"est\xE1 entre",opValuesCount:"{n} valores",filterAnd:"E",filterOr:"OU",builderTitle:"Construtor de filtros",builderCombine:"Combinar condi\xE7\xF5es com",builderAddCondition:"Adicionar condi\xE7\xE3o",builderAddGroup:"Adicionar grupo",builderRemoveGroup:"Remover grupo",builderRemoveCondition:"Remover condi\xE7\xE3o",builderEmpty:"Ainda n\xE3o h\xE1 condi\xE7\xF5es.",builderColumn:"Coluna",builderOperator:"Operador",builderValue:"Valor",builderValueFrom:"De",builderValueTo:"At\xE9",builderValuePlaceholder:"Introduza um valor",groupPanelHint:"Arraste uma coluna para aqui para agrupar por ela",groupAddLevel:"Adicionar n\xEDvel de agrupamento",groupAddLevelButton:"+ Adicionar n\xEDvel\u2026",groupNoGrouping:"(sem agrupamento)",groupLevelAria:"N\xEDvel de agrupamento {n}",groupRemoveAria:"Remover {column}",pagerFirst:"Primeira p\xE1gina",pagerPrevious:"P\xE1gina anterior",pagerNext:"P\xE1gina seguinte",pagerLast:"\xDAltima p\xE1gina",pagerPage:"P\xE1gina",pagerOf:"de",pagerRowsPerPage:"Linhas por p\xE1gina",pagerAria:"Pagina\xE7\xE3o",selectAllRows:"Selecionar todas as linhas",selectRowAria:"Selecionar a linha {row}",summaryAria:"Resumo",columnTotalsAria:"Totais das colunas",rowActions:"A\xE7\xF5es da linha",detailsAria:"Detalhes",rowNumberAria:"N\xFAmero da linha",noteEditorAria:"Nota da c\xE9lula",notePlaceholder:"Escreva uma nota sobre esta c\xE9lula\u2026",addNote:"Adicionar nota\u2026",editNote:"Editar nota\u2026",deleteNote:"Excluir nota",expandDetails:"Expandir detalhes",collapseDetails:"Recolher detalhes",dragToReorder:"Arraste para reordenar",menuCopy:"Copiar",menuCopyWithHeaders:"Copiar com cabe\xE7alhos",menuCopyWithGroupHeaders:"Copiar com cabe\xE7alhos de grupo",menuCut:"Recortar",menuPaste:"Colar",menuExport:"Exportar",menuChartRange:"Gr\xE1fico das colunas selecionadas",statsSum:"Soma",statsCount:"Contagem",statsAvg:"M\xE9dia",statsMin:"M\xEDn",statsMax:"M\xE1x",statsCells:"C\xE9lulas",statsTooLarge:"Sele\xE7\xE3o demasiado grande para totalizar",statusRows:"Linhas",statusFiltered:"Filtradas",statusSelected:"Selecionadas",summaryRows:"linhas",announceRows:"{n} linhas",announceSortedBy:"ordenado por {columns}",announceSelected:"{n} selecionadas",announceAscending:"crescente",announceDescending:"decrescente",sideFilters:"Filtros",sideBarAria:"Pain\xE9is de ferramentas",sideClearFilters:"Limpar todos os filtros",summarySum:"Soma",summaryAvg:"M\xE9dia",summaryMin:"M\xEDn",summaryMax:"M\xE1x",summaryCount:"Contagem",summaryDistinct:"Distintos",summaryCustom:"Personalizado",noTotal:"Sem total",busy:"A processar\u2026",busyLoading:"A carregar linhas\u2026",busyEncoding:"A preparar os dados\u2026",busyFiltering:"A filtrar linhas\u2026",busySorting:"A classificar linhas\u2026",busyComputing:"A filtrar e classificar\u2026",busyGrouping:"A criar grupos\u2026",busyAggregating:"A calcular totais\u2026",busyProjecting:"A atualizar a vista\u2026",busyExporting:"A criar o ficheiro\u2026",noData:"Nenhum dado encontrado",editNewRow:"Nova linha",editSaveChanges:"Guardar altera\xE7\xF5es",editDiscardChanges:"Descartar altera\xE7\xF5es",editRow:"Editar linha",editRowMenu:"Editar linha\u2026",editDeleteRow:"Eliminar linha",editUndoDelete:"Anular elimina\xE7\xE3o",editActions:"A\xE7\xF5es",editSaveRow:"Guardar linha",editSaving:"A guardar\u2026",editEditingRow:"A editar a linha {row}",editSaveCount:"Guardar {n} linha(s)",editCannotSave:"N\xE3o \xE9 poss\xEDvel guardar",editSaveFailed:"N\xE3o foi poss\xEDvel guardar as altera\xE7\xF5es.",editDeleteConfirm:"Eliminar esta linha?",editAddRowUndo:"Adicionar linha",editDeleteRowUndo:"Eliminar linha",editCellUndo:"Editar {column}",editFillUndo:"Preencher {count} c\xE9lulas",editPasteUndo:"Colar {count} c\xE9lulas",editCutUndo:"Recortar {count} c\xE9lulas",editNoMatch:"Sem correspond\xEAncia",formEditTitle:"Editar linha",formAddTitle:"Nova linha",formShortcut:"{key}+Enter para guardar \xB7 Esc para cancelar",validationRequired:"Este campo \xE9 obrigat\xF3rio",validationNumber:"Tem de ser um n\xFAmero",validationFormat:"Formato inv\xE1lido",validationEmail:"Endere\xE7o de e-mail inv\xE1lido",validationInvalid:"Valor inv\xE1lido",dateCalendar:"Calend\xE1rio",dateOpenCalendar:"Abrir calend\xE1rio",datePreviousMonth:"M\xEAs anterior",dateNextMonth:"M\xEAs seguinte",monthJanuary:"Janeiro",monthFebruary:"Fevereiro",monthMarch:"Mar\xE7o",monthApril:"Abril",monthMay:"Maio",monthJune:"Junho",monthJuly:"Julho",monthAugust:"Agosto",monthSeptember:"Setembro",monthOctober:"Outubro",monthNovember:"Novembro",monthDecember:"Dezembro",weekStartsOn:"1",weekdaySu:"Do",weekdayMo:"Se",weekdayTu:"Te",weekdayWe:"Qa",weekdayTh:"Qi",weekdayFr:"Sx",weekdaySa:"S\xE1",importTitle:"Importar dados",importStepSource:"1. Origem",importStepMap:"2. Mapear colunas",importFile:"Ficheiro CSV",importPaste:"\u2026ou cole linhas",importSeparator:"Separador",importSeparatorAuto:"Detetar automaticamente",importSeparatorComma:"V\xEDrgula ,",importSeparatorSemicolon:"Ponto e v\xEDrgula ;",importSeparatorTab:"Tabula\xE7\xE3o",importSeparatorPipe:"Barra vertical |",importFileColumn:"Coluna do ficheiro",importDetected:"Detetado",importGridColumn:"Coluna da tabela",importSample:"Amostra",importSkip:"\u2014 ignorar \u2014",importPreview:"Pr\xE9-visualiza\xE7\xE3o",importNoSource:"Escolha primeiro um ficheiro ou cole algumas linhas.",importNoRows:"N\xE3o foram encontradas linhas de dados.",importAction:"Importar",exportAborted:"Exporta\xE7\xE3o cancelada",exportSheetName:"Dados",chart:"Gr\xE1fico",chartCategory:"Categoria",chartSeries:"S\xE9rie",chartAddSeries:"Adicionar s\xE9rie",chartRemoveSeries:"Remover",chartSource:"Dados",chartSourceView:"Linhas filtradas",chartSourceSelection:"Linhas selecionadas",chartSourceAll:"Todas as linhas",chartClose:"Fechar o gr\xE1fico",chartFullscreen:"Ecr\xE3 inteiro",chartExitFullscreen:"Sair do ecr\xE3 inteiro",chartExportPng:"PNG",chartExportSvg:"SVG",chartExportFailed:"N\xE3o foi poss\xEDvel exportar o gr\xE1fico.",chartCrossFiltered:"A tabela est\xE1 filtrada por {value}.",chartBlankCategory:"(em branco)",chartTruncated:"A mostrar as {n} principais categorias; as restantes est\xE3o agrupadas como \xABOutros\xBB.",chartOther:"Outros",chartEmpty:"Ainda n\xE3o h\xE1 nada para representar.",chartNeedsRecharts:"Os gr\xE1ficos precisam do pacote opcional `recharts`. Instale-o para os desenhar.",chartOnlyOneSeries:"Este tipo de gr\xE1fico mostra uma s\xE9rie.",chartByColumn:"Gr\xE1fico por esta coluna",chartGroupBy:"Por",chartGroupNone:"Cada valor",chartGroupAuto:"Autom\xE1tico",chartGroupDay:"Dia",chartGroupWeek:"Semana",chartGroupMonth:"M\xEAs",chartGroupQuarter:"Trimestre",chartGroupYear:"Ano",chartGroupBins:"{n} intervalos",chartBucketAdjusted:"Demasiados intervalos para um eixo \u2014 agrupados de forma mais ampla.",chartWindowed:"A mostrar {shown} de {total}.",chartShowAll:"Mostrar tudo",chartCanvasHint:"Gr\xE1fico. Desloque para ampliar, arraste para mover, setas para navegar, 0 para mostrar tudo.",chartAggSum:"Soma",chartAggAvg:"M\xE9dia",chartAggMin:"M\xEDn",chartAggMax:"M\xE1x",chartAggCount:"Contagem",chartAggDistinct:"Distintos",chartTypeColumn:"Colunas",chartTypeBar:"Barras",chartTypeLine:"Linhas",chartTypeArea:"\xC1reas",chartTypePie:"Circular",chartTypeDonut:"Anel",licenseMissing:"Sem licen\xE7a",licenseExpired:"Licen\xE7a expirada",licenseReleaseNotCovered:"Esta vers\xE3o n\xE3o \xE9 coberta pela licen\xE7a",licenseDomainMismatch:"Licen\xE7a n\xE3o v\xE1lida para este dom\xEDnio",licenseRevoked:"Licen\xE7a revogada",licenseInvalidFormat:"Chave de licen\xE7a malformada",licenseInvalidSignature:"Assinatura da licen\xE7a inv\xE1lida",licenseEngineUnavailable:"O navegador n\xE3o consegue verificar a licen\xE7a (HTTPS necess\xE1rio)"},Tl={ok:"\u041E\u041A",cancel:"\u041E\u0442\u043C\u0435\u043D\u0430",apply:"\u041F\u0440\u0438\u043C\u0435\u043D\u0438\u0442\u044C",close:"\u0417\u0430\u043A\u0440\u044B\u0442\u044C",clear:"\u041E\u0447\u0438\u0441\u0442\u0438\u0442\u044C",save:"\u0421\u043E\u0445\u0440\u0430\u043D\u0438\u0442\u044C",search:"\u041F\u043E\u0438\u0441\u043A...",selectAll:"\u0412\u044B\u0431\u0440\u0430\u0442\u044C \u0432\u0441\u0435",showAll:"\u041F\u043E\u043A\u0430\u0437\u0430\u0442\u044C \u0432\u0441\u0435",remove:"\u0423\u0434\u0430\u043B\u0438\u0442\u044C",none:"\u041D\u0435\u0442",toolbarSearch:"\u041F\u043E\u0438\u0441\u043A...",exportMenu:"\u042D\u043A\u0441\u043F\u043E\u0440\u0442",exportCsv:"\u042D\u043A\u0441\u043F\u043E\u0440\u0442 \u0432 CSV",exportExcel:"\u042D\u043A\u0441\u043F\u043E\u0440\u0442\u0438\u0440\u043E\u0432\u0430\u0442\u044C \u0432\u0441\u0435 \u0434\u0430\u043D\u043D\u044B\u0435 \u0432 Excel",exportExcelSelected:"\u042D\u043A\u0441\u043F\u043E\u0440\u0442\u0438\u0440\u043E\u0432\u0430\u0442\u044C \u0432\u044B\u0431\u0440\u0430\u043D\u043D\u044B\u0435 \u0441\u0442\u0440\u043E\u043A\u0438 \u0432 Excel",exportPdf:"\u042D\u043A\u0441\u043F\u043E\u0440\u0442 \u0432 PDF",exporting:"\u042D\u043A\u0441\u043F\u043E\u0440\u0442\u2026",columns:"\u0421\u0442\u043E\u043B\u0431\u0446\u044B",hiddenColumns:"\u0421\u043A\u0440\u044B\u0442\u044B\u0435 \u0441\u0442\u043E\u043B\u0431\u0446\u044B",noHiddenColumns:"\u0421\u043A\u0440\u044B\u0442\u044B\u0445 \u0441\u0442\u043E\u043B\u0431\u0446\u043E\u0432 \u043D\u0435\u0442.",sortAsc:"\u0421\u043E\u0440\u0442\u0438\u0440\u043E\u0432\u0430\u0442\u044C \u043E\u0442 \u0410 \u0434\u043E \u042F",sortDesc:"\u0421\u043E\u0440\u0442\u0438\u0440\u043E\u0432\u0430\u0442\u044C \u043E\u0442 \u042F \u0434\u043E \u0410",clearSort:"\u041E\u0447\u0438\u0441\u0442\u0438\u0442\u044C \u0441\u043E\u0440\u0442\u0438\u0440\u043E\u0432\u043A\u0443",groupByColumn:"\u0413\u0440\u0443\u043F\u043F\u0438\u0440\u043E\u0432\u0430\u0442\u044C \u043F\u043E \u044D\u0442\u043E\u043C\u0443 \u0441\u0442\u043E\u043B\u0431\u0446\u0443",ungroupColumn:"\u0423\u0431\u0440\u0430\u0442\u044C \u0438\u0437 \u0433\u0440\u0443\u043F\u043F\u0438\u0440\u043E\u0432\u043A\u0438",showGroupPanel:"\u041F\u043E\u043A\u0430\u0437\u0430\u0442\u044C \u043F\u0430\u043D\u0435\u043B\u044C \u0433\u0440\u0443\u043F\u043F\u0438\u0440\u043E\u0432\u043A\u0438",hideGroupPanel:"\u0421\u043A\u0440\u044B\u0442\u044C \u043F\u0430\u043D\u0435\u043B\u044C \u0433\u0440\u0443\u043F\u043F\u0438\u0440\u043E\u0432\u043A\u0438",showFooter:"\u041F\u043E\u043A\u0430\u0437\u0430\u0442\u044C \u0438\u0442\u043E\u0433\u0438",hideFooter:"\u0421\u043A\u0440\u044B\u0442\u044C \u0438\u0442\u043E\u0433\u0438",showGroupFooters:"\u041F\u043E\u043A\u0430\u0437\u0430\u0442\u044C \u0438\u0442\u043E\u0433\u0438 \u043F\u043E \u0433\u0440\u0443\u043F\u043F\u0430\u043C",hideGroupFooters:"\u0421\u043A\u0440\u044B\u0442\u044C \u0438\u0442\u043E\u0433\u0438 \u043F\u043E \u0433\u0440\u0443\u043F\u043F\u0430\u043C",hideColumn:"\u0421\u043A\u0440\u044B\u0442\u044C \u044D\u0442\u043E\u0442 \u0441\u0442\u043E\u043B\u0431\u0435\u0446",fieldChooser:"\u0412\u044B\u0431\u043E\u0440 \u043F\u043E\u043B\u0435\u0439\u2026",bestFit:"\u041F\u043E\u0434\u043E\u0431\u0440\u0430\u0442\u044C \u0448\u0438\u0440\u0438\u043D\u0443",bestFitAll:"\u041F\u043E\u0434\u043E\u0431\u0440\u0430\u0442\u044C \u0448\u0438\u0440\u0438\u043D\u0443 (\u0432\u0441\u0435 \u0441\u0442\u043E\u043B\u0431\u0446\u044B)",fixedPosition:"\u0417\u0430\u0434\u0430\u0442\u044C \u0444\u0438\u043A\u0441\u0438\u0440\u043E\u0432\u0430\u043D\u043D\u0443\u044E \u043F\u043E\u0437\u0438\u0446\u0438\u044E",pinLeft:"\u0421\u043B\u0435\u0432\u0430",pinRight:"\u0421\u043F\u0440\u0430\u0432\u0430",pinSticky:"\u0417\u0430\u043A\u0440\u0435\u043F\u043B\u0451\u043D",unpin:"\u041E\u0442\u043A\u0440\u0435\u043F\u0438\u0442\u044C",moveLeft:"\u041F\u0435\u0440\u0435\u043C\u0435\u0441\u0442\u0438\u0442\u044C \u0432\u043B\u0435\u0432\u043E",moveRight:"\u041F\u0435\u0440\u0435\u043C\u0435\u0441\u0442\u0438\u0442\u044C \u0432\u043F\u0440\u0430\u0432\u043E",filterPlaceholder:"\u0424\u0438\u043B\u044C\u0442\u0440\u2026",filterColumnAria:"\u0424\u0438\u043B\u044C\u0442\u0440 \xAB{column}\xBB",filterSelectAll:"\u0412\u044B\u0431\u0440\u0430\u0442\u044C \u0432\u0441\u0435",filterBlank:"(\u041F\u0443\u0441\u0442\u043E)",filterNoMatch:"\u0421\u043E\u0432\u043F\u0430\u0434\u0435\u043D\u0438\u0439 \u043D\u0435\u0442",filterLoading:"\u0417\u0430\u0433\u0440\u0443\u0437\u043A\u0430 \u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0439\u2026",filterTruncated:"\u041F\u043E\u043A\u0430\u0437\u0430\u043D\u044B \u0442\u043E\u043B\u044C\u043A\u043E \u043F\u0435\u0440\u0432\u044B\u0435 \u0437\u043D\u0430\u0447\u0435\u043D\u0438\u044F \u2014 \u0432\u043E\u0441\u043F\u043E\u043B\u044C\u0437\u0443\u0439\u0442\u0435\u0441\u044C \u043F\u043E\u0438\u0441\u043A\u043E\u043C, \u0447\u0442\u043E\u0431\u044B \u043D\u0430\u0439\u0442\u0438 \u043E\u0441\u0442\u0430\u043B\u044C\u043D\u044B\u0435.",filterRemove:"\u0423\u0431\u0440\u0430\u0442\u044C \u0444\u0438\u043B\u044C\u0442\u0440",filterToggle:"\u041F\u0440\u0438\u043C\u0435\u043D\u0438\u0442\u044C \u0444\u0438\u043B\u044C\u0442\u0440",filterEditBuilder:"\u0418\u0437\u043C\u0435\u043D\u0438\u0442\u044C \u0444\u0438\u043B\u044C\u0442\u0440",filterNone:"\u0424\u0438\u043B\u044C\u0442\u0440\u0430 \u043D\u0435\u0442",filterActive:"\u0424\u0438\u043B\u044C\u0442\u0440 \u0430\u043A\u0442\u0438\u0432\u0435\u043D",opEquals:"\u0440\u0430\u0432\u043D\u043E",opNotEquals:"\u043D\u0435 \u0440\u0430\u0432\u043D\u043E",opGreater:">",opGreaterOrEqual:"\u2265",opLess:"<",opLessOrEqual:"\u2264",opContains:"\u0441\u043E\u0434\u0435\u0440\u0436\u0438\u0442",opNotContains:"\u043D\u0435 \u0441\u043E\u0434\u0435\u0440\u0436\u0438\u0442",opStartsWith:"\u043D\u0430\u0447\u0438\u043D\u0430\u0435\u0442\u0441\u044F \u0441",opEndsWith:"\u0437\u0430\u043A\u0430\u043D\u0447\u0438\u0432\u0430\u0435\u0442\u0441\u044F \u043D\u0430",opIsBlank:"\u043F\u0443\u0441\u0442\u043E",opIsNotBlank:"\u043D\u0435 \u043F\u0443\u0441\u0442\u043E",opIsOneOf:"\u043E\u0434\u043D\u043E \u0438\u0437",opIsBetween:"\u043C\u0435\u0436\u0434\u0443",opValuesCount:"\u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0439: {n}",filterAnd:"\u0418",filterOr:"\u0418\u041B\u0418",builderTitle:"\u041A\u043E\u043D\u0441\u0442\u0440\u0443\u043A\u0442\u043E\u0440 \u0444\u0438\u043B\u044C\u0442\u0440\u0430",builderCombine:"\u041E\u0431\u044A\u0435\u0434\u0438\u043D\u0438\u0442\u044C \u0443\u0441\u043B\u043E\u0432\u0438\u044F \u043E\u043F\u0435\u0440\u0430\u0442\u043E\u0440\u043E\u043C",builderAddCondition:"\u0414\u043E\u0431\u0430\u0432\u0438\u0442\u044C \u0443\u0441\u043B\u043E\u0432\u0438\u0435",builderAddGroup:"\u0414\u043E\u0431\u0430\u0432\u0438\u0442\u044C \u0433\u0440\u0443\u043F\u043F\u0443",builderRemoveGroup:"\u0423\u0434\u0430\u043B\u0438\u0442\u044C \u0433\u0440\u0443\u043F\u043F\u0443",builderRemoveCondition:"\u0423\u0434\u0430\u043B\u0438\u0442\u044C \u0443\u0441\u043B\u043E\u0432\u0438\u0435",builderEmpty:"\u0423\u0441\u043B\u043E\u0432\u0438\u0439 \u043F\u043E\u043A\u0430 \u043D\u0435\u0442.",builderColumn:"\u0421\u0442\u043E\u043B\u0431\u0435\u0446",builderOperator:"\u041E\u043F\u0435\u0440\u0430\u0442\u043E\u0440",builderValue:"\u0417\u043D\u0430\u0447\u0435\u043D\u0438\u0435",builderValueFrom:"\u041E\u0442",builderValueTo:"\u0414\u043E",builderValuePlaceholder:"\u0412\u0432\u0435\u0434\u0438\u0442\u0435 \u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0435",groupPanelHint:"\u041F\u0435\u0440\u0435\u0442\u0430\u0449\u0438\u0442\u0435 \u0441\u044E\u0434\u0430 \u0441\u0442\u043E\u043B\u0431\u0435\u0446, \u0447\u0442\u043E\u0431\u044B \u0441\u0433\u0440\u0443\u043F\u043F\u0438\u0440\u043E\u0432\u0430\u0442\u044C \u043F\u043E \u043D\u0435\u043C\u0443",groupAddLevel:"\u0414\u043E\u0431\u0430\u0432\u0438\u0442\u044C \u0443\u0440\u043E\u0432\u0435\u043D\u044C \u0433\u0440\u0443\u043F\u043F\u0438\u0440\u043E\u0432\u043A\u0438",groupAddLevelButton:"+ \u0414\u043E\u0431\u0430\u0432\u0438\u0442\u044C \u0443\u0440\u043E\u0432\u0435\u043D\u044C\u2026",groupNoGrouping:"(\u0431\u0435\u0437 \u0433\u0440\u0443\u043F\u043F\u0438\u0440\u043E\u0432\u043A\u0438)",groupLevelAria:"\u0423\u0440\u043E\u0432\u0435\u043D\u044C \u0433\u0440\u0443\u043F\u043F\u0438\u0440\u043E\u0432\u043A\u0438 {n}",groupRemoveAria:"\u0423\u0434\u0430\u043B\u0438\u0442\u044C {column}",pagerFirst:"\u041F\u0435\u0440\u0432\u0430\u044F \u0441\u0442\u0440\u0430\u043D\u0438\u0446\u0430",pagerPrevious:"\u041F\u0440\u0435\u0434\u044B\u0434\u0443\u0449\u0430\u044F \u0441\u0442\u0440\u0430\u043D\u0438\u0446\u0430",pagerNext:"\u0421\u043B\u0435\u0434\u0443\u044E\u0449\u0430\u044F \u0441\u0442\u0440\u0430\u043D\u0438\u0446\u0430",pagerLast:"\u041F\u043E\u0441\u043B\u0435\u0434\u043D\u044F\u044F \u0441\u0442\u0440\u0430\u043D\u0438\u0446\u0430",pagerPage:"\u0421\u0442\u0440\u0430\u043D\u0438\u0446\u0430",pagerOf:"\u0438\u0437",pagerRowsPerPage:"\u0421\u0442\u0440\u043E\u043A \u043D\u0430 \u0441\u0442\u0440\u0430\u043D\u0438\u0446\u0435",pagerAria:"\u041F\u043E\u0441\u0442\u0440\u0430\u043D\u0438\u0447\u043D\u0430\u044F \u043D\u0430\u0432\u0438\u0433\u0430\u0446\u0438\u044F",selectAllRows:"\u0412\u044B\u0431\u0440\u0430\u0442\u044C \u0432\u0441\u0435 \u0441\u0442\u0440\u043E\u043A\u0438",selectRowAria:"\u0412\u044B\u0431\u0440\u0430\u0442\u044C \u0441\u0442\u0440\u043E\u043A\u0443 {row}",summaryAria:"\u0421\u0432\u043E\u0434\u043A\u0430",columnTotalsAria:"\u0418\u0442\u043E\u0433\u0438 \u043F\u043E \u0441\u0442\u043E\u043B\u0431\u0446\u0430\u043C",rowActions:"\u0414\u0435\u0439\u0441\u0442\u0432\u0438\u044F \u0441\u043E \u0441\u0442\u0440\u043E\u043A\u043E\u0439",detailsAria:"\u041F\u043E\u0434\u0440\u043E\u0431\u043D\u043E\u0441\u0442\u0438",rowNumberAria:"\u041D\u043E\u043C\u0435\u0440 \u0441\u0442\u0440\u043E\u043A\u0438",noteEditorAria:"\u041F\u0440\u0438\u043C\u0435\u0447\u0430\u043D\u0438\u0435 \u043A \u044F\u0447\u0435\u0439\u043A\u0435",notePlaceholder:"\u041D\u0430\u043F\u0438\u0448\u0438\u0442\u0435 \u043F\u0440\u0438\u043C\u0435\u0447\u0430\u043D\u0438\u0435 \u043A \u044D\u0442\u043E\u0439 \u044F\u0447\u0435\u0439\u043A\u0435\u2026",addNote:"\u0414\u043E\u0431\u0430\u0432\u0438\u0442\u044C \u043F\u0440\u0438\u043C\u0435\u0447\u0430\u043D\u0438\u0435\u2026",editNote:"\u0418\u0437\u043C\u0435\u043D\u0438\u0442\u044C \u043F\u0440\u0438\u043C\u0435\u0447\u0430\u043D\u0438\u0435\u2026",deleteNote:"\u0423\u0434\u0430\u043B\u0438\u0442\u044C \u043F\u0440\u0438\u043C\u0435\u0447\u0430\u043D\u0438\u0435",expandDetails:"\u0420\u0430\u0437\u0432\u0435\u0440\u043D\u0443\u0442\u044C \u043F\u043E\u0434\u0440\u043E\u0431\u043D\u043E\u0441\u0442\u0438",collapseDetails:"\u0421\u0432\u0435\u0440\u043D\u0443\u0442\u044C \u043F\u043E\u0434\u0440\u043E\u0431\u043D\u043E\u0441\u0442\u0438",dragToReorder:"\u041F\u0435\u0440\u0435\u0442\u0430\u0449\u0438\u0442\u0435, \u0447\u0442\u043E\u0431\u044B \u0438\u0437\u043C\u0435\u043D\u0438\u0442\u044C \u043F\u043E\u0440\u044F\u0434\u043E\u043A",menuCopy:"\u041A\u043E\u043F\u0438\u0440\u043E\u0432\u0430\u0442\u044C",menuCopyWithHeaders:"\u041A\u043E\u043F\u0438\u0440\u043E\u0432\u0430\u0442\u044C \u0441 \u0437\u0430\u0433\u043E\u043B\u043E\u0432\u043A\u0430\u043C\u0438",menuCopyWithGroupHeaders:"\u041A\u043E\u043F\u0438\u0440\u043E\u0432\u0430\u0442\u044C \u0441 \u0437\u0430\u0433\u043E\u043B\u043E\u0432\u043A\u0430\u043C\u0438 \u0433\u0440\u0443\u043F\u043F",menuCut:"\u0412\u044B\u0440\u0435\u0437\u0430\u0442\u044C",menuPaste:"\u0412\u0441\u0442\u0430\u0432\u0438\u0442\u044C",menuExport:"\u042D\u043A\u0441\u043F\u043E\u0440\u0442",menuChartRange:"\u0414\u0438\u0430\u0433\u0440\u0430\u043C\u043C\u0430 \u043F\u043E \u0432\u044B\u0431\u0440\u0430\u043D\u043D\u044B\u043C \u0441\u0442\u043E\u043B\u0431\u0446\u0430\u043C",statsSum:"\u0421\u0443\u043C\u043C\u0430",statsCount:"\u041A\u043E\u043B\u0438\u0447\u0435\u0441\u0442\u0432\u043E",statsAvg:"\u0421\u0440\u0435\u0434\u043D\u0435\u0435",statsMin:"\u041C\u0438\u043D",statsMax:"\u041C\u0430\u043A\u0441",statsCells:"\u042F\u0447\u0435\u0439\u043A\u0438",statsTooLarge:"\u0412\u044B\u0434\u0435\u043B\u0435\u043D\u0438\u0435 \u0441\u043B\u0438\u0448\u043A\u043E\u043C \u0432\u0435\u043B\u0438\u043A\u043E \u0434\u043B\u044F \u043F\u043E\u0434\u0441\u0447\u0451\u0442\u0430",statusRows:"\u0421\u0442\u0440\u043E\u043A\u0438",statusFiltered:"\u041E\u0442\u0444\u0438\u043B\u044C\u0442\u0440\u043E\u0432\u0430\u043D\u043E",statusSelected:"\u0412\u044B\u0431\u0440\u0430\u043D\u043E",summaryRows:"\u0441\u0442\u0440\u043E\u043A",announceRows:"\u0421\u0442\u0440\u043E\u043A: {n}",announceSortedBy:"\u0441\u043E\u0440\u0442\u0438\u0440\u043E\u0432\u043A\u0430 \u043F\u043E {columns}",announceSelected:"\u0432\u044B\u0431\u0440\u0430\u043D\u043E: {n}",announceAscending:"\u043F\u043E \u0432\u043E\u0437\u0440\u0430\u0441\u0442\u0430\u043D\u0438\u044E",announceDescending:"\u043F\u043E \u0443\u0431\u044B\u0432\u0430\u043D\u0438\u044E",sideFilters:"\u0424\u0438\u043B\u044C\u0442\u0440\u044B",sideBarAria:"\u041F\u0430\u043D\u0435\u043B\u0438 \u0438\u043D\u0441\u0442\u0440\u0443\u043C\u0435\u043D\u0442\u043E\u0432",sideClearFilters:"\u041E\u0447\u0438\u0441\u0442\u0438\u0442\u044C \u0432\u0441\u0435 \u0444\u0438\u043B\u044C\u0442\u0440\u044B",summarySum:"\u0421\u0443\u043C\u043C\u0430",summaryAvg:"\u0421\u0440\u0435\u0434\u043D\u0435\u0435",summaryMin:"\u041C\u0438\u043D",summaryMax:"\u041C\u0430\u043A\u0441",summaryCount:"\u041A\u043E\u043B\u0438\u0447\u0435\u0441\u0442\u0432\u043E",summaryDistinct:"\u0423\u043D\u0438\u043A\u0430\u043B\u044C\u043D\u044B\u0435",summaryCustom:"\u041F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044C\u0441\u043A\u0438\u0439",noTotal:"\u041D\u0435\u0442 \u0438\u0442\u043E\u0433\u0430",busy:"\u0412\u044B\u043F\u043E\u043B\u043D\u044F\u0435\u0442\u0441\u044F\u2026",busyLoading:"\u0417\u0430\u0433\u0440\u0443\u0437\u043A\u0430 \u0441\u0442\u0440\u043E\u043A\u2026",busyEncoding:"\u041F\u043E\u0434\u0433\u043E\u0442\u043E\u0432\u043A\u0430 \u0434\u0430\u043D\u043D\u044B\u0445\u2026",busyFiltering:"\u0424\u0438\u043B\u044C\u0442\u0440\u0430\u0446\u0438\u044F \u0441\u0442\u0440\u043E\u043A\u2026",busySorting:"\u0421\u043E\u0440\u0442\u0438\u0440\u043E\u0432\u043A\u0430 \u0441\u0442\u0440\u043E\u043A\u2026",busyComputing:"\u0424\u0438\u043B\u044C\u0442\u0440\u0430\u0446\u0438\u044F \u0438 \u0441\u043E\u0440\u0442\u0438\u0440\u043E\u0432\u043A\u0430\u2026",busyGrouping:"\u041F\u043E\u0441\u0442\u0440\u043E\u0435\u043D\u0438\u0435 \u0433\u0440\u0443\u043F\u043F\u2026",busyAggregating:"\u0412\u044B\u0447\u0438\u0441\u043B\u0435\u043D\u0438\u0435 \u0438\u0442\u043E\u0433\u043E\u0432\u2026",busyProjecting:"\u041E\u0431\u043D\u043E\u0432\u043B\u0435\u043D\u0438\u0435 \u043F\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043B\u0435\u043D\u0438\u044F\u2026",busyExporting:"\u0421\u043E\u0437\u0434\u0430\u043D\u0438\u0435 \u0444\u0430\u0439\u043B\u0430\u2026",noData:"\u0414\u0430\u043D\u043D\u044B\u0435 \u043D\u0435 \u043D\u0430\u0439\u0434\u0435\u043D\u044B",editNewRow:"\u041D\u043E\u0432\u0430\u044F \u0441\u0442\u0440\u043E\u043A\u0430",editSaveChanges:"\u0421\u043E\u0445\u0440\u0430\u043D\u0438\u0442\u044C \u0438\u0437\u043C\u0435\u043D\u0435\u043D\u0438\u044F",editDiscardChanges:"\u041E\u0442\u043C\u0435\u043D\u0438\u0442\u044C \u0438\u0437\u043C\u0435\u043D\u0435\u043D\u0438\u044F",editRow:"\u0418\u0437\u043C\u0435\u043D\u0438\u0442\u044C \u0441\u0442\u0440\u043E\u043A\u0443",editRowMenu:"\u0418\u0437\u043C\u0435\u043D\u0438\u0442\u044C \u0441\u0442\u0440\u043E\u043A\u0443\u2026",editDeleteRow:"\u0423\u0434\u0430\u043B\u0438\u0442\u044C \u0441\u0442\u0440\u043E\u043A\u0443",editUndoDelete:"\u041E\u0442\u043C\u0435\u043D\u0438\u0442\u044C \u0443\u0434\u0430\u043B\u0435\u043D\u0438\u0435",editActions:"\u0414\u0435\u0439\u0441\u0442\u0432\u0438\u044F",editSaveRow:"\u0421\u043E\u0445\u0440\u0430\u043D\u0438\u0442\u044C \u0441\u0442\u0440\u043E\u043A\u0443",editSaving:"\u0421\u043E\u0445\u0440\u0430\u043D\u0435\u043D\u0438\u0435\u2026",editEditingRow:"\u0418\u0437\u043C\u0435\u043D\u0435\u043D\u0438\u0435 \u0441\u0442\u0440\u043E\u043A\u0438 {row}",editSaveCount:"\u0421\u043E\u0445\u0440\u0430\u043D\u0438\u0442\u044C \u0441\u0442\u0440\u043E\u043A: {n}",editCannotSave:"\u041D\u0435 \u0443\u0434\u0430\u0451\u0442\u0441\u044F \u0441\u043E\u0445\u0440\u0430\u043D\u0438\u0442\u044C",editSaveFailed:"\u041D\u0435 \u0443\u0434\u0430\u043B\u043E\u0441\u044C \u0441\u043E\u0445\u0440\u0430\u043D\u0438\u0442\u044C \u0438\u0437\u043C\u0435\u043D\u0435\u043D\u0438\u044F.",editDeleteConfirm:"\u0423\u0434\u0430\u043B\u0438\u0442\u044C \u044D\u0442\u0443 \u0441\u0442\u0440\u043E\u043A\u0443?",editAddRowUndo:"\u0414\u043E\u0431\u0430\u0432\u043B\u0435\u043D\u0438\u0435 \u0441\u0442\u0440\u043E\u043A\u0438",editDeleteRowUndo:"\u0423\u0434\u0430\u043B\u0435\u043D\u0438\u0435 \u0441\u0442\u0440\u043E\u043A\u0438",editCellUndo:"\u0418\u0437\u043C\u0435\u043D\u0438\u0442\u044C {column}",editFillUndo:"\u0417\u0430\u043F\u043E\u043B\u043D\u0438\u0442\u044C {count} \u044F\u0447\u0435\u0435\u043A",editPasteUndo:"\u0412\u0441\u0442\u0430\u0432\u0438\u0442\u044C {count} \u044F\u0447\u0435\u0435\u043A",editCutUndo:"\u0412\u044B\u0440\u0435\u0437\u0430\u0442\u044C {count} \u044F\u0447\u0435\u0435\u043A",editNoMatch:"\u0421\u043E\u0432\u043F\u0430\u0434\u0435\u043D\u0438\u0439 \u043D\u0435\u0442",formEditTitle:"\u0418\u0437\u043C\u0435\u043D\u0438\u0442\u044C \u0441\u0442\u0440\u043E\u043A\u0443",formAddTitle:"\u041D\u043E\u0432\u0430\u044F \u0441\u0442\u0440\u043E\u043A\u0430",formShortcut:"{key}+Enter \u2014 \u0441\u043E\u0445\u0440\u0430\u043D\u0438\u0442\u044C \xB7 Esc \u2014 \u043E\u0442\u043C\u0435\u043D\u0438\u0442\u044C",validationRequired:"\u042D\u0442\u043E \u043F\u043E\u043B\u0435 \u043E\u0431\u044F\u0437\u0430\u0442\u0435\u043B\u044C\u043D\u043E",validationNumber:"\u0414\u043E\u043B\u0436\u043D\u043E \u0431\u044B\u0442\u044C \u0447\u0438\u0441\u043B\u043E\u043C",validationFormat:"\u041D\u0435\u0432\u0435\u0440\u043D\u044B\u0439 \u0444\u043E\u0440\u043C\u0430\u0442",validationEmail:"\u041D\u0435\u0432\u0435\u0440\u043D\u044B\u0439 \u0430\u0434\u0440\u0435\u0441 \u044D\u043B\u0435\u043A\u0442\u0440\u043E\u043D\u043D\u043E\u0439 \u043F\u043E\u0447\u0442\u044B",validationInvalid:"\u041D\u0435\u0432\u0435\u0440\u043D\u043E\u0435 \u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0435",dateCalendar:"\u041A\u0430\u043B\u0435\u043D\u0434\u0430\u0440\u044C",dateOpenCalendar:"\u041E\u0442\u043A\u0440\u044B\u0442\u044C \u043A\u0430\u043B\u0435\u043D\u0434\u0430\u0440\u044C",datePreviousMonth:"\u041F\u0440\u0435\u0434\u044B\u0434\u0443\u0449\u0438\u0439 \u043C\u0435\u0441\u044F\u0446",dateNextMonth:"\u0421\u043B\u0435\u0434\u0443\u044E\u0449\u0438\u0439 \u043C\u0435\u0441\u044F\u0446",monthJanuary:"\u042F\u043D\u0432\u0430\u0440\u044C",monthFebruary:"\u0424\u0435\u0432\u0440\u0430\u043B\u044C",monthMarch:"\u041C\u0430\u0440\u0442",monthApril:"\u0410\u043F\u0440\u0435\u043B\u044C",monthMay:"\u041C\u0430\u0439",monthJune:"\u0418\u044E\u043D\u044C",monthJuly:"\u0418\u044E\u043B\u044C",monthAugust:"\u0410\u0432\u0433\u0443\u0441\u0442",monthSeptember:"\u0421\u0435\u043D\u0442\u044F\u0431\u0440\u044C",monthOctober:"\u041E\u043A\u0442\u044F\u0431\u0440\u044C",monthNovember:"\u041D\u043E\u044F\u0431\u0440\u044C",monthDecember:"\u0414\u0435\u043A\u0430\u0431\u0440\u044C",weekStartsOn:"1",weekdaySu:"\u0412\u0441",weekdayMo:"\u041F\u043D",weekdayTu:"\u0412\u0442",weekdayWe:"\u0421\u0440",weekdayTh:"\u0427\u0442",weekdayFr:"\u041F\u0442",weekdaySa:"\u0421\u0431",importTitle:"\u0418\u043C\u043F\u043E\u0440\u0442 \u0434\u0430\u043D\u043D\u044B\u0445",importStepSource:"1. \u0418\u0441\u0442\u043E\u0447\u043D\u0438\u043A",importStepMap:"2. \u0421\u043E\u043F\u043E\u0441\u0442\u0430\u0432\u043B\u0435\u043D\u0438\u0435 \u0441\u0442\u043E\u043B\u0431\u0446\u043E\u0432",importFile:"\u0424\u0430\u0439\u043B CSV",importPaste:"\u2026\u0438\u043B\u0438 \u0432\u0441\u0442\u0430\u0432\u044C\u0442\u0435 \u0441\u0442\u0440\u043E\u043A\u0438",importSeparator:"\u0420\u0430\u0437\u0434\u0435\u043B\u0438\u0442\u0435\u043B\u044C",importSeparatorAuto:"\u041E\u043F\u0440\u0435\u0434\u0435\u043B\u0438\u0442\u044C \u0430\u0432\u0442\u043E\u043C\u0430\u0442\u0438\u0447\u0435\u0441\u043A\u0438",importSeparatorComma:"\u0417\u0430\u043F\u044F\u0442\u0430\u044F ,",importSeparatorSemicolon:"\u0422\u043E\u0447\u043A\u0430 \u0441 \u0437\u0430\u043F\u044F\u0442\u043E\u0439 ;",importSeparatorTab:"\u0422\u0430\u0431\u0443\u043B\u044F\u0446\u0438\u044F",importSeparatorPipe:"\u0412\u0435\u0440\u0442\u0438\u043A\u0430\u043B\u044C\u043D\u0430\u044F \u0447\u0435\u0440\u0442\u0430 |",importFileColumn:"\u0421\u0442\u043E\u043B\u0431\u0435\u0446 \u0444\u0430\u0439\u043B\u0430",importDetected:"\u041E\u043F\u0440\u0435\u0434\u0435\u043B\u0435\u043D\u043E",importGridColumn:"\u0421\u0442\u043E\u043B\u0431\u0435\u0446 \u0442\u0430\u0431\u043B\u0438\u0446\u044B",importSample:"\u041F\u0440\u0438\u043C\u0435\u0440",importSkip:"\u2014 \u043F\u0440\u043E\u043F\u0443\u0441\u0442\u0438\u0442\u044C \u2014",importPreview:"\u041F\u0440\u0435\u0434\u043F\u0440\u043E\u0441\u043C\u043E\u0442\u0440",importNoSource:"\u0421\u043D\u0430\u0447\u0430\u043B\u0430 \u0432\u044B\u0431\u0435\u0440\u0438\u0442\u0435 \u0444\u0430\u0439\u043B \u0438\u043B\u0438 \u0432\u0441\u0442\u0430\u0432\u044C\u0442\u0435 \u0441\u0442\u0440\u043E\u043A\u0438.",importNoRows:"\u0421\u0442\u0440\u043E\u043A\u0438 \u0434\u0430\u043D\u043D\u044B\u0445 \u043D\u0435 \u043D\u0430\u0439\u0434\u0435\u043D\u044B.",importAction:"\u0418\u043C\u043F\u043E\u0440\u0442",exportAborted:"\u042D\u043A\u0441\u043F\u043E\u0440\u0442 \u043F\u0440\u0435\u0440\u0432\u0430\u043D",exportSheetName:"\u0414\u0430\u043D\u043D\u044B\u0435",chart:"\u0414\u0438\u0430\u0433\u0440\u0430\u043C\u043C\u0430",chartCategory:"\u041A\u0430\u0442\u0435\u0433\u043E\u0440\u0438\u044F",chartSeries:"\u0420\u044F\u0434",chartAddSeries:"\u0414\u043E\u0431\u0430\u0432\u0438\u0442\u044C \u0440\u044F\u0434",chartRemoveSeries:"\u0423\u0434\u0430\u043B\u0438\u0442\u044C",chartSource:"\u0414\u0430\u043D\u043D\u044B\u0435",chartSourceView:"\u041E\u0442\u0444\u0438\u043B\u044C\u0442\u0440\u043E\u0432\u0430\u043D\u043D\u044B\u0435 \u0441\u0442\u0440\u043E\u043A\u0438",chartSourceSelection:"\u0412\u044B\u0431\u0440\u0430\u043D\u043D\u044B\u0435 \u0441\u0442\u0440\u043E\u043A\u0438",chartSourceAll:"\u0412\u0441\u0435 \u0441\u0442\u0440\u043E\u043A\u0438",chartClose:"\u0417\u0430\u043A\u0440\u044B\u0442\u044C \u0434\u0438\u0430\u0433\u0440\u0430\u043C\u043C\u0443",chartFullscreen:"\u0412\u043E \u0432\u0435\u0441\u044C \u044D\u043A\u0440\u0430\u043D",chartExitFullscreen:"\u0412\u044B\u0439\u0442\u0438 \u0438\u0437 \u043F\u043E\u043B\u043D\u043E\u044D\u043A\u0440\u0430\u043D\u043D\u043E\u0433\u043E \u0440\u0435\u0436\u0438\u043C\u0430",chartExportPng:"PNG",chartExportSvg:"SVG",chartExportFailed:"\u041D\u0435 \u0443\u0434\u0430\u043B\u043E\u0441\u044C \u044D\u043A\u0441\u043F\u043E\u0440\u0442\u0438\u0440\u043E\u0432\u0430\u0442\u044C \u0434\u0438\u0430\u0433\u0440\u0430\u043C\u043C\u0443.",chartCrossFiltered:"\u0422\u0430\u0431\u043B\u0438\u0446\u0430 \u043E\u0442\u0444\u0438\u043B\u044C\u0442\u0440\u043E\u0432\u0430\u043D\u0430 \u043F\u043E \u0437\u043D\u0430\u0447\u0435\u043D\u0438\u044E {value}.",chartBlankCategory:"(\u043F\u0443\u0441\u0442\u043E)",chartTruncated:"\u041F\u043E\u043A\u0430\u0437\u0430\u043D\u044B {n} \u043E\u0441\u043D\u043E\u0432\u043D\u044B\u0445 \u043A\u0430\u0442\u0435\u0433\u043E\u0440\u0438\u0439; \u043E\u0441\u0442\u0430\u043B\u044C\u043D\u044B\u0435 \u043E\u0431\u044A\u0435\u0434\u0438\u043D\u0435\u043D\u044B \u043A\u0430\u043A \xAB\u041F\u0440\u043E\u0447\u0435\u0435\xBB.",chartOther:"\u041F\u0440\u043E\u0447\u0435\u0435",chartEmpty:"\u041F\u043E\u043A\u0430 \u043D\u0435\u0447\u0435\u0433\u043E \u043E\u0442\u043E\u0431\u0440\u0430\u0436\u0430\u0442\u044C.",chartNeedsRecharts:"\u0414\u043B\u044F \u0434\u0438\u0430\u0433\u0440\u0430\u043C\u043C \u043D\u0443\u0436\u0435\u043D \u043D\u0435\u043E\u0431\u044F\u0437\u0430\u0442\u0435\u043B\u044C\u043D\u044B\u0439 \u043F\u0430\u043A\u0435\u0442 `recharts`. \u0423\u0441\u0442\u0430\u043D\u043E\u0432\u0438\u0442\u0435 \u0435\u0433\u043E, \u0447\u0442\u043E\u0431\u044B \u0438\u0445 \u0440\u0438\u0441\u043E\u0432\u0430\u0442\u044C.",chartOnlyOneSeries:"\u042D\u0442\u043E\u0442 \u0442\u0438\u043F \u0434\u0438\u0430\u0433\u0440\u0430\u043C\u043C\u044B \u043F\u043E\u043A\u0430\u0437\u044B\u0432\u0430\u0435\u0442 \u043E\u0434\u0438\u043D \u0440\u044F\u0434.",chartByColumn:"\u0414\u0438\u0430\u0433\u0440\u0430\u043C\u043C\u0430 \u043F\u043E \u044D\u0442\u043E\u043C\u0443 \u0441\u0442\u043E\u043B\u0431\u0446\u0443",chartGroupBy:"\u041F\u043E",chartGroupNone:"\u041A\u0430\u0436\u0434\u043E\u0435 \u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0435",chartGroupAuto:"\u0410\u0432\u0442\u043E\u043C\u0430\u0442\u0438\u0447\u0435\u0441\u043A\u0438",chartGroupDay:"\u0414\u0435\u043D\u044C",chartGroupWeek:"\u041D\u0435\u0434\u0435\u043B\u044F",chartGroupMonth:"\u041C\u0435\u0441\u044F\u0446",chartGroupQuarter:"\u041A\u0432\u0430\u0440\u0442\u0430\u043B",chartGroupYear:"\u0413\u043E\u0434",chartGroupBins:"\u0438\u043D\u0442\u0435\u0440\u0432\u0430\u043B\u043E\u0432: {n}",chartBucketAdjusted:"\u0421\u043B\u0438\u0448\u043A\u043E\u043C \u043C\u043D\u043E\u0433\u043E \u0438\u043D\u0442\u0435\u0440\u0432\u0430\u043B\u043E\u0432 \u0434\u043B\u044F \u043E\u0434\u043D\u043E\u0439 \u043E\u0441\u0438 \u2014 \u0441\u0433\u0440\u0443\u043F\u043F\u0438\u0440\u043E\u0432\u0430\u043D\u043E \u043A\u0440\u0443\u043F\u043D\u0435\u0435.",chartWindowed:"\u041F\u043E\u043A\u0430\u0437\u0430\u043D\u043E {shown} \u0438\u0437 {total}.",chartShowAll:"\u041F\u043E\u043A\u0430\u0437\u0430\u0442\u044C \u0432\u0441\u0435",chartCanvasHint:"\u0414\u0438\u0430\u0433\u0440\u0430\u043C\u043C\u0430. \u041F\u0440\u043E\u043A\u0440\u0443\u0442\u043A\u0430 \u2014 \u043C\u0430\u0441\u0448\u0442\u0430\u0431, \u043F\u0435\u0440\u0435\u0442\u0430\u0441\u043A\u0438\u0432\u0430\u043D\u0438\u0435 \u2014 \u0441\u0434\u0432\u0438\u0433, \u0441\u0442\u0440\u0435\u043B\u043A\u0438 \u2014 \u043F\u0435\u0440\u0435\u043C\u0435\u0449\u0435\u043D\u0438\u0435, 0 \u2014 \u043F\u043E\u043A\u0430\u0437\u0430\u0442\u044C \u0432\u0441\u0435.",chartAggSum:"\u0421\u0443\u043C\u043C\u0430",chartAggAvg:"\u0421\u0440\u0435\u0434\u043D\u0435\u0435",chartAggMin:"\u041C\u0438\u043D",chartAggMax:"\u041C\u0430\u043A\u0441",chartAggCount:"\u041A\u043E\u043B\u0438\u0447\u0435\u0441\u0442\u0432\u043E",chartAggDistinct:"\u0423\u043D\u0438\u043A\u0430\u043B\u044C\u043D\u044B\u0435",chartTypeColumn:"\u0421\u0442\u043E\u043B\u0431\u0446\u044B",chartTypeBar:"\u041F\u043E\u043B\u043E\u0441\u044B",chartTypeLine:"\u041B\u0438\u043D\u0438\u044F",chartTypeArea:"\u041E\u0431\u043B\u0430\u0441\u0442\u044C",chartTypePie:"\u041A\u0440\u0443\u0433\u043E\u0432\u0430\u044F",chartTypeDonut:"\u041A\u043E\u043B\u044C\u0446\u0435\u0432\u0430\u044F",licenseMissing:"\u0411\u0435\u0437 \u043B\u0438\u0446\u0435\u043D\u0437\u0438\u0438",licenseExpired:"\u0421\u0440\u043E\u043A \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u044F \u043B\u0438\u0446\u0435\u043D\u0437\u0438\u0438 \u0438\u0441\u0442\u0451\u043A",licenseReleaseNotCovered:"\u042D\u0442\u0430 \u0432\u0435\u0440\u0441\u0438\u044F \u043D\u0435 \u043F\u043E\u043A\u0440\u044B\u0432\u0430\u0435\u0442\u0441\u044F \u043B\u0438\u0446\u0435\u043D\u0437\u0438\u0435\u0439",licenseDomainMismatch:"\u041B\u0438\u0446\u0435\u043D\u0437\u0438\u044F \u043D\u0435\u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0442\u0435\u043B\u044C\u043D\u0430 \u0434\u043B\u044F \u044D\u0442\u043E\u0433\u043E \u0434\u043E\u043C\u0435\u043D\u0430",licenseRevoked:"\u041B\u0438\u0446\u0435\u043D\u0437\u0438\u044F \u043E\u0442\u043E\u0437\u0432\u0430\u043D\u0430",licenseInvalidFormat:"\u041D\u0435\u0432\u0435\u0440\u043D\u044B\u0439 \u0444\u043E\u0440\u043C\u0430\u0442 \u043B\u0438\u0446\u0435\u043D\u0437\u0438\u043E\u043D\u043D\u043E\u0433\u043E \u043A\u043B\u044E\u0447\u0430",licenseInvalidSignature:"\u041D\u0435\u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0442\u0435\u043B\u044C\u043D\u0430\u044F \u043F\u043E\u0434\u043F\u0438\u0441\u044C \u043B\u0438\u0446\u0435\u043D\u0437\u0438\u0438",licenseEngineUnavailable:"\u0411\u0440\u0430\u0443\u0437\u0435\u0440 \u043D\u0435 \u043C\u043E\u0436\u0435\u0442 \u043F\u0440\u043E\u0432\u0435\u0440\u0438\u0442\u044C \u043B\u0438\u0446\u0435\u043D\u0437\u0438\u044E (\u0442\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044F HTTPS)"},Ml={ok:"\u0645\u0648\u0627\u0641\u0642",cancel:"\u0625\u0644\u063A\u0627\u0621",apply:"\u062A\u0637\u0628\u064A\u0642",close:"\u0625\u063A\u0644\u0627\u0642",clear:"\u0645\u0633\u062D",save:"\u062D\u0641\u0638",search:"\u0628\u062D\u062B...",selectAll:"\u062A\u062D\u062F\u064A\u062F \u0627\u0644\u0643\u0644",showAll:"\u0639\u0631\u0636 \u0627\u0644\u0643\u0644",remove:"\u0625\u0632\u0627\u0644\u0629",none:"\u0628\u0644\u0627",toolbarSearch:"\u0628\u062D\u062B...",exportMenu:"\u062A\u0635\u062F\u064A\u0631",exportCsv:"\u062A\u0635\u062F\u064A\u0631 \u0625\u0644\u0649 CSV",exportExcel:"\u062A\u0635\u062F\u064A\u0631 \u0643\u0644 \u0627\u0644\u0628\u064A\u0627\u0646\u0627\u062A \u0625\u0644\u0649 Excel",exportExcelSelected:"\u062A\u0635\u062F\u064A\u0631 \u0627\u0644\u0635\u0641\u0648\u0641 \u0627\u0644\u0645\u062D\u062F\u062F\u0629 \u0625\u0644\u0649 Excel",exportPdf:"\u062A\u0635\u062F\u064A\u0631 \u0625\u0644\u0649 PDF",exporting:"\u062C\u0627\u0631\u064A \u0627\u0644\u062A\u0635\u062F\u064A\u0631\u2026",columns:"\u0627\u0644\u0623\u0639\u0645\u062F\u0629",hiddenColumns:"\u0627\u0644\u0623\u0639\u0645\u062F\u0629 \u0627\u0644\u0645\u062E\u0641\u064A\u0629",noHiddenColumns:"\u0644\u0627 \u062A\u0648\u062C\u062F \u0623\u0639\u0645\u062F\u0629 \u0645\u062E\u0641\u064A\u0629.",sortAsc:"\u0627\u0644\u0641\u0631\u0632 \u0645\u0646 \u0623 \u0625\u0644\u0649 \u064A",sortDesc:"\u0627\u0644\u0641\u0631\u0632 \u0645\u0646 \u064A \u0625\u0644\u0649 \u0623",clearSort:"\u0645\u0633\u062D \u0627\u0644\u0641\u0631\u0632",groupByColumn:"\u062A\u062C\u0645\u064A\u0639 \u062D\u0633\u0628 \u0647\u0630\u0627 \u0627\u0644\u0639\u0645\u0648\u062F",ungroupColumn:"\u0625\u0632\u0627\u0644\u0629 \u0645\u0646 \u0627\u0644\u062A\u062C\u0645\u064A\u0639",showGroupPanel:"\u0639\u0631\u0636 \u0644\u0648\u062D\u0629 \u0627\u0644\u062A\u062C\u0645\u064A\u0639",hideGroupPanel:"\u0625\u062E\u0641\u0627\u0621 \u0644\u0648\u062D\u0629 \u0627\u0644\u062A\u062C\u0645\u064A\u0639",showFooter:"\u0639\u0631\u0636 \u0627\u0644\u062A\u0630\u064A\u064A\u0644",hideFooter:"\u0625\u062E\u0641\u0627\u0621 \u0627\u0644\u062A\u0630\u064A\u064A\u0644",showGroupFooters:"\u0639\u0631\u0636 \u062A\u0630\u064A\u064A\u0644\u0627\u062A \u0627\u0644\u0645\u062C\u0645\u0648\u0639\u0627\u062A",hideGroupFooters:"\u0625\u062E\u0641\u0627\u0621 \u062A\u0630\u064A\u064A\u0644\u0627\u062A \u0627\u0644\u0645\u062C\u0645\u0648\u0639\u0627\u062A",hideColumn:"\u0625\u062E\u0641\u0627\u0621 \u0647\u0630\u0627 \u0627\u0644\u0639\u0645\u0648\u062F",fieldChooser:"\u0645\u062D\u062F\u062F \u0627\u0644\u062D\u0642\u0648\u0644\u2026",bestFit:"\u0623\u0641\u0636\u0644 \u0639\u0631\u0636",bestFitAll:"\u0623\u0641\u0636\u0644 \u0639\u0631\u0636 (\u0643\u0644 \u0627\u0644\u0623\u0639\u0645\u062F\u0629)",fixedPosition:"\u062A\u0639\u064A\u064A\u0646 \u0645\u0648\u0636\u0639 \u062B\u0627\u0628\u062A",pinLeft:"\u064A\u0633\u0627\u0631",pinRight:"\u064A\u0645\u064A\u0646",pinSticky:"\u0645\u062B\u0628\u0651\u062A",unpin:"\u0625\u0644\u063A\u0627\u0621 \u0627\u0644\u062A\u062B\u0628\u064A\u062A",moveLeft:"\u0627\u0646\u062A\u0642\u0627\u0644 \u0644\u0644\u064A\u0633\u0627\u0631",moveRight:"\u0627\u0646\u062A\u0642\u0627\u0644 \u0644\u0644\u064A\u0645\u064A\u0646",filterPlaceholder:"\u062A\u0635\u0641\u064A\u0629\u2026",filterColumnAria:"\u062A\u0635\u0641\u064A\u0629 {column}",filterSelectAll:"\u062A\u062D\u062F\u064A\u062F \u0627\u0644\u0643\u0644",filterBlank:"(\u0641\u0627\u0631\u063A)",filterNoMatch:"\u0644\u0627 \u062A\u0648\u062C\u062F \u0642\u064A\u0645 \u0645\u0637\u0627\u0628\u0642\u0629",filterLoading:"\u062C\u0627\u0631\u064A \u062A\u062D\u0645\u064A\u0644 \u0627\u0644\u0642\u064A\u0645\u2026",filterTruncated:"\u062A\u064F\u0639\u0631\u0636 \u0627\u0644\u0642\u064A\u0645 \u0627\u0644\u0623\u0648\u0644\u0649 \u0641\u0642\u0637 \u2014 \u0627\u0633\u062A\u062E\u062F\u0645 \u0627\u0644\u0628\u062D\u062B \u0644\u0644\u0639\u062B\u0648\u0631 \u0639\u0644\u0649 \u0627\u0644\u0628\u0642\u064A\u0629.",filterRemove:"\u0625\u0632\u0627\u0644\u0629 \u0627\u0644\u062A\u0635\u0641\u064A\u0629",filterToggle:"\u062A\u0637\u0628\u064A\u0642 \u0627\u0644\u062A\u0635\u0641\u064A\u0629",filterEditBuilder:"\u062A\u0639\u062F\u064A\u0644 \u0627\u0644\u062A\u0635\u0641\u064A\u0629",filterNone:"\u0644\u0627 \u062A\u0648\u062C\u062F \u062A\u0635\u0641\u064A\u0629",filterActive:"\u0627\u0644\u062A\u0635\u0641\u064A\u0629 \u0645\u0641\u0639\u0651\u0644\u0629",opEquals:"\u064A\u0633\u0627\u0648\u064A",opNotEquals:"\u0644\u0627 \u064A\u0633\u0627\u0648\u064A",opGreater:">",opGreaterOrEqual:"\u2265",opLess:"<",opLessOrEqual:"\u2264",opContains:"\u064A\u062D\u062A\u0648\u064A \u0639\u0644\u0649",opNotContains:"\u0644\u0627 \u064A\u062D\u062A\u0648\u064A \u0639\u0644\u0649",opStartsWith:"\u064A\u0628\u062F\u0623 \u0628\u0640",opEndsWith:"\u064A\u0646\u062A\u0647\u064A \u0628\u0640",opIsBlank:"\u0641\u0627\u0631\u063A",opIsNotBlank:"\u063A\u064A\u0631 \u0641\u0627\u0631\u063A",opIsOneOf:"\u0648\u0627\u062D\u062F \u0645\u0646",opIsBetween:"\u0628\u064A\u0646",opValuesCount:"{n} \u0642\u064A\u0645\u0629",filterAnd:"\u0648",filterOr:"\u0623\u0648",builderTitle:"\u0645\u0646\u0634\u0626 \u0627\u0644\u062A\u0635\u0641\u064A\u0629",builderCombine:"\u062F\u0645\u062C \u0627\u0644\u0634\u0631\u0648\u0637 \u0628\u0627\u0633\u062A\u062E\u062F\u0627\u0645",builderAddCondition:"\u0625\u0636\u0627\u0641\u0629 \u0634\u0631\u0637",builderAddGroup:"\u0625\u0636\u0627\u0641\u0629 \u0645\u062C\u0645\u0648\u0639\u0629",builderRemoveGroup:"\u0625\u0632\u0627\u0644\u0629 \u0627\u0644\u0645\u062C\u0645\u0648\u0639\u0629",builderRemoveCondition:"\u0625\u0632\u0627\u0644\u0629 \u0627\u0644\u0634\u0631\u0637",builderEmpty:"\u0644\u0627 \u062A\u0648\u062C\u062F \u0634\u0631\u0648\u0637 \u0628\u0639\u062F.",builderColumn:"\u0627\u0644\u0639\u0645\u0648\u062F",builderOperator:"\u0627\u0644\u0645\u064F\u0639\u0627\u0645\u0644",builderValue:"\u0627\u0644\u0642\u064A\u0645\u0629",builderValueFrom:"\u0645\u0646",builderValueTo:"\u0625\u0644\u0649",builderValuePlaceholder:"\u0623\u062F\u062E\u0644 \u0642\u064A\u0645\u0629",groupPanelHint:"\u0627\u0633\u062D\u0628 \u0639\u0645\u0648\u062F\u064B\u0627 \u0625\u0644\u0649 \u0647\u0646\u0627 \u0644\u0644\u062A\u062C\u0645\u064A\u0639 \u062D\u0633\u0628\u0647",groupAddLevel:"\u0625\u0636\u0627\u0641\u0629 \u0645\u0633\u062A\u0648\u0649 \u062A\u062C\u0645\u064A\u0639",groupAddLevelButton:"+ \u0625\u0636\u0627\u0641\u0629 \u0645\u0633\u062A\u0648\u0649\u2026",groupNoGrouping:"(\u0628\u062F\u0648\u0646 \u062A\u062C\u0645\u064A\u0639)",groupLevelAria:"\u0645\u0633\u062A\u0648\u0649 \u0627\u0644\u062A\u062C\u0645\u064A\u0639 {n}",groupRemoveAria:"\u0625\u0632\u0627\u0644\u0629 {column}",pagerFirst:"\u0627\u0644\u0635\u0641\u062D\u0629 \u0627\u0644\u0623\u0648\u0644\u0649",pagerPrevious:"\u0627\u0644\u0635\u0641\u062D\u0629 \u0627\u0644\u0633\u0627\u0628\u0642\u0629",pagerNext:"\u0627\u0644\u0635\u0641\u062D\u0629 \u0627\u0644\u062A\u0627\u0644\u064A\u0629",pagerLast:"\u0627\u0644\u0635\u0641\u062D\u0629 \u0627\u0644\u0623\u062E\u064A\u0631\u0629",pagerPage:"\u0635\u0641\u062D\u0629",pagerOf:"\u0645\u0646",pagerRowsPerPage:"\u0635\u0641\u0648\u0641 \u0644\u0643\u0644 \u0635\u0641\u062D\u0629",pagerAria:"\u062A\u0631\u0642\u064A\u0645 \u0627\u0644\u0635\u0641\u062D\u0627\u062A",selectAllRows:"\u062A\u062D\u062F\u064A\u062F \u0643\u0644 \u0627\u0644\u0635\u0641\u0648\u0641",selectRowAria:"\u062A\u062D\u062F\u064A\u062F \u0627\u0644\u0635\u0641 {row}",summaryAria:"\u0645\u0644\u062E\u0635",columnTotalsAria:"\u0625\u062C\u0645\u0627\u0644\u064A\u0627\u062A \u0627\u0644\u0623\u0639\u0645\u062F\u0629",rowActions:"\u0625\u062C\u0631\u0627\u0621\u0627\u062A \u0627\u0644\u0635\u0641",detailsAria:"\u0627\u0644\u062A\u0641\u0627\u0635\u064A\u0644",rowNumberAria:"\u0631\u0642\u0645 \u0627\u0644\u0635\u0641",noteEditorAria:"\u0645\u0644\u0627\u062D\u0638\u0629 \u0627\u0644\u062E\u0644\u064A\u0629",notePlaceholder:"\u0627\u0643\u062A\u0628 \u0645\u0644\u0627\u062D\u0638\u0629 \u062D\u0648\u0644 \u0647\u0630\u0647 \u0627\u0644\u062E\u0644\u064A\u0629\u2026",addNote:"\u0625\u0636\u0627\u0641\u0629 \u0645\u0644\u0627\u062D\u0638\u0629\u2026",editNote:"\u062A\u0639\u062F\u064A\u0644 \u0627\u0644\u0645\u0644\u0627\u062D\u0638\u0629\u2026",deleteNote:"\u062D\u0630\u0641 \u0627\u0644\u0645\u0644\u0627\u062D\u0638\u0629",expandDetails:"\u062A\u0648\u0633\u064A\u0639 \u0627\u0644\u062A\u0641\u0627\u0635\u064A\u0644",collapseDetails:"\u0637\u064A \u0627\u0644\u062A\u0641\u0627\u0635\u064A\u0644",dragToReorder:"\u0627\u0633\u062D\u0628 \u0644\u0625\u0639\u0627\u062F\u0629 \u0627\u0644\u062A\u0631\u062A\u064A\u0628",menuCopy:"\u0646\u0633\u062E",menuCopyWithHeaders:"\u0646\u0633\u062E \u0645\u0639 \u0627\u0644\u0639\u0646\u0627\u0648\u064A\u0646",menuCopyWithGroupHeaders:"\u0646\u0633\u062E \u0645\u0639 \u0639\u0646\u0627\u0648\u064A\u0646 \u0627\u0644\u0645\u062C\u0645\u0648\u0639\u0627\u062A",menuCut:"\u0642\u0635",menuPaste:"\u0644\u0635\u0642",menuExport:"\u062A\u0635\u062F\u064A\u0631",menuChartRange:"\u0631\u0633\u0645 \u0628\u064A\u0627\u0646\u064A \u0644\u0644\u0623\u0639\u0645\u062F\u0629 \u0627\u0644\u0645\u062D\u062F\u062F\u0629",statsSum:"\u0645\u062C\u0645\u0648\u0639",statsCount:"\u0627\u0644\u0639\u062F\u062F",statsAvg:"\u0645\u062A\u0648\u0633\u0637",statsMin:"\u0627\u0644\u062D\u062F \u0627\u0644\u0623\u062F\u0646\u0649",statsMax:"\u0627\u0644\u062D\u062F \u0627\u0644\u0623\u0642\u0635\u0649",statsCells:"\u0627\u0644\u062E\u0644\u0627\u064A\u0627",statsTooLarge:"\u0627\u0644\u062A\u062D\u062F\u064A\u062F \u0623\u0643\u0628\u0631 \u0645\u0646 \u0623\u0646 \u064A\u064F\u062C\u0645\u0639",statusRows:"\u0627\u0644\u0635\u0641\u0648\u0641",statusFiltered:"\u0645\u0635\u0641\u0651\u0649",statusSelected:"\u0645\u062D\u062F\u062F",summaryRows:"\u0635\u0641\u0648\u0641",announceRows:"{n} \u0635\u0641\u0648\u0641",announceSortedBy:"\u0645\u0631\u062A\u0628\u0629 \u062D\u0633\u0628 {columns}",announceSelected:"{n} \u0645\u062D\u062F\u062F\u0629",announceAscending:"\u062A\u0635\u0627\u0639\u062F\u064A",announceDescending:"\u062A\u0646\u0627\u0632\u0644\u064A",sideFilters:"\u0639\u0648\u0627\u0645\u0644 \u0627\u0644\u062A\u0635\u0641\u064A\u0629",sideBarAria:"\u0644\u0648\u062D\u0627\u062A \u0627\u0644\u0623\u062F\u0648\u0627\u062A",sideClearFilters:"\u0645\u0633\u062D \u0643\u0644 \u0639\u0648\u0627\u0645\u0644 \u0627\u0644\u062A\u0635\u0641\u064A\u0629",summarySum:"\u0645\u062C\u0645\u0648\u0639",summaryAvg:"\u0645\u062A\u0648\u0633\u0637",summaryMin:"\u0627\u0644\u062D\u062F \u0627\u0644\u0623\u062F\u0646\u0649",summaryMax:"\u0627\u0644\u062D\u062F \u0627\u0644\u0623\u0642\u0635\u0649",summaryCount:"\u0627\u0644\u0639\u062F\u062F",summaryDistinct:"\u0627\u0644\u0642\u064A\u0645 \u0627\u0644\u0641\u0631\u064A\u062F\u0629",summaryCustom:"\u0645\u062E\u0635\u0635",noTotal:"\u0644\u0627 \u064A\u0648\u062C\u062F \u0625\u062C\u0645\u0627\u0644\u064A",busy:"\u062C\u0627\u0631\u064A \u0627\u0644\u0639\u0645\u0644\u2026",busyLoading:"\u062C\u0627\u0631\u064A \u062A\u062D\u0645\u064A\u0644 \u0627\u0644\u0635\u0641\u0648\u0641\u2026",busyEncoding:"\u062C\u0627\u0631\u064A \u062A\u062D\u0636\u064A\u0631 \u0627\u0644\u0628\u064A\u0627\u0646\u0627\u062A\u2026",busyFiltering:"\u062C\u0627\u0631\u064A \u062A\u0635\u0641\u064A\u0629 \u0627\u0644\u0635\u0641\u0648\u0641\u2026",busySorting:"\u062C\u0627\u0631\u064A \u0641\u0631\u0632 \u0627\u0644\u0635\u0641\u0648\u0641\u2026",busyComputing:"\u062C\u0627\u0631\u064A \u0627\u0644\u062A\u0635\u0641\u064A\u0629 \u0648\u0627\u0644\u0641\u0631\u0632\u2026",busyGrouping:"\u062C\u0627\u0631\u064A \u0625\u0646\u0634\u0627\u0621 \u0627\u0644\u0645\u062C\u0645\u0648\u0639\u0627\u062A\u2026",busyAggregating:"\u062C\u0627\u0631\u064A \u062D\u0633\u0627\u0628 \u0627\u0644\u0625\u062C\u0645\u0627\u0644\u064A\u0627\u062A\u2026",busyProjecting:"\u062C\u0627\u0631\u064A \u062A\u062D\u062F\u064A\u062B \u0627\u0644\u0639\u0631\u0636\u2026",busyExporting:"\u062C\u0627\u0631\u064A \u0625\u0646\u0634\u0627\u0621 \u0627\u0644\u0645\u0644\u0641\u2026",noData:"\u0644\u0645 \u064A\u062A\u0645 \u0627\u0644\u0639\u062B\u0648\u0631 \u0639\u0644\u0649 \u0628\u064A\u0627\u0646\u0627\u062A",editNewRow:"\u0635\u0641 \u062C\u062F\u064A\u062F",editSaveChanges:"\u062D\u0641\u0638 \u0627\u0644\u062A\u063A\u064A\u064A\u0631\u0627\u062A",editDiscardChanges:"\u062A\u062C\u0627\u0647\u0644 \u0627\u0644\u062A\u063A\u064A\u064A\u0631\u0627\u062A",editRow:"\u062A\u0639\u062F\u064A\u0644 \u0627\u0644\u0635\u0641",editRowMenu:"\u062A\u0639\u062F\u064A\u0644 \u0627\u0644\u0635\u0641\u2026",editDeleteRow:"\u062D\u0630\u0641 \u0627\u0644\u0635\u0641",editUndoDelete:"\u062A\u0631\u0627\u062C\u0639 \u0639\u0646 \u0627\u0644\u062D\u0630\u0641",editActions:"\u0627\u0644\u0625\u062C\u0631\u0627\u0621\u0627\u062A",editSaveRow:"\u062D\u0641\u0638 \u0627\u0644\u0635\u0641",editSaving:"\u062C\u0627\u0631\u064A \u0627\u0644\u062D\u0641\u0638\u2026",editEditingRow:"\u062C\u0627\u0631\u064A \u062A\u0639\u062F\u064A\u0644 \u0627\u0644\u0635\u0641 {row}",editSaveCount:"\u062D\u0641\u0638 {n} \u0635\u0641",editCannotSave:"\u062A\u0639\u0630\u0651\u0631 \u0627\u0644\u062D\u0641\u0638",editSaveFailed:"\u062A\u0639\u0630\u0651\u0631 \u062D\u0641\u0638 \u0627\u0644\u062A\u063A\u064A\u064A\u0631\u0627\u062A.",editDeleteConfirm:"\u0647\u0644 \u062A\u0631\u064A\u062F \u062D\u0630\u0641 \u0647\u0630\u0627 \u0627\u0644\u0635\u0641\u061F",editAddRowUndo:"\u0625\u0636\u0627\u0641\u0629 \u0635\u0641",editDeleteRowUndo:"\u062D\u0630\u0641 \u0635\u0641",editCellUndo:"\u062A\u062D\u0631\u064A\u0631 {column}",editFillUndo:"\u062A\u0639\u0628\u0626\u0629 {count} \u062E\u0644\u064A\u0629",editPasteUndo:"\u0644\u0635\u0642 {count} \u062E\u0644\u064A\u0629",editCutUndo:"\u0642\u0635 {count} \u062E\u0644\u064A\u0629",editNoMatch:"\u0644\u0627 \u062A\u0648\u062C\u062F \u0645\u0637\u0627\u0628\u0642\u0629",formEditTitle:"\u062A\u0639\u062F\u064A\u0644 \u0627\u0644\u0635\u0641",formAddTitle:"\u0635\u0641 \u062C\u062F\u064A\u062F",formShortcut:"{key}+Enter \u0644\u0644\u062D\u0641\u0638 \xB7 Esc \u0644\u0644\u0625\u0644\u063A\u0627\u0621",validationRequired:"\u0647\u0630\u0627 \u0627\u0644\u062D\u0642\u0644 \u0645\u0637\u0644\u0648\u0628",validationNumber:"\u064A\u062C\u0628 \u0623\u0646 \u064A\u0643\u0648\u0646 \u0631\u0642\u0645\u064B\u0627",validationFormat:"\u062A\u0646\u0633\u064A\u0642 \u063A\u064A\u0631 \u0635\u0627\u0644\u062D",validationEmail:"\u0639\u0646\u0648\u0627\u0646 \u0628\u0631\u064A\u062F \u0625\u0644\u0643\u062A\u0631\u0648\u0646\u064A \u063A\u064A\u0631 \u0635\u0627\u0644\u062D",validationInvalid:"\u0642\u064A\u0645\u0629 \u063A\u064A\u0631 \u0635\u0627\u0644\u062D\u0629",dateCalendar:"\u0627\u0644\u062A\u0642\u0648\u064A\u0645",dateOpenCalendar:"\u0641\u062A\u062D \u0627\u0644\u062A\u0642\u0648\u064A\u0645",datePreviousMonth:"\u0627\u0644\u0634\u0647\u0631 \u0627\u0644\u0633\u0627\u0628\u0642",dateNextMonth:"\u0627\u0644\u0634\u0647\u0631 \u0627\u0644\u062A\u0627\u0644\u064A",monthJanuary:"\u064A\u0646\u0627\u064A\u0631",monthFebruary:"\u0641\u0628\u0631\u0627\u064A\u0631",monthMarch:"\u0645\u0627\u0631\u0633",monthApril:"\u0623\u0628\u0631\u064A\u0644",monthMay:"\u0645\u0627\u064A\u0648",monthJune:"\u064A\u0648\u0646\u064A\u0648",monthJuly:"\u064A\u0648\u0644\u064A\u0648",monthAugust:"\u0623\u063A\u0633\u0637\u0633",monthSeptember:"\u0633\u0628\u062A\u0645\u0628\u0631",monthOctober:"\u0623\u0643\u062A\u0648\u0628\u0631",monthNovember:"\u0646\u0648\u0641\u0645\u0628\u0631",monthDecember:"\u062F\u064A\u0633\u0645\u0628\u0631",weekStartsOn:"6",weekdaySu:"\u0623\u062D\u062F",weekdayMo:"\u0625\u062B\u0646",weekdayTu:"\u062B\u0644\u0627",weekdayWe:"\u0623\u0631\u0628",weekdayTh:"\u062E\u0645\u064A",weekdayFr:"\u062C\u0645\u0639",weekdaySa:"\u0633\u0628\u062A",importTitle:"\u0627\u0633\u062A\u064A\u0631\u0627\u062F \u0627\u0644\u0628\u064A\u0627\u0646\u0627\u062A",importStepSource:"\u0661. \u0627\u0644\u0645\u0635\u062F\u0631",importStepMap:"\u0662. \u0645\u0637\u0627\u0628\u0642\u0629 \u0627\u0644\u0623\u0639\u0645\u062F\u0629",importFile:"\u0645\u0644\u0641 CSV",importPaste:"\u2026\u0623\u0648 \u0627\u0644\u0635\u0642 \u0627\u0644\u0635\u0641\u0648\u0641",importSeparator:"\u0627\u0644\u0641\u0627\u0635\u0644",importSeparatorAuto:"\u0643\u0634\u0641 \u062A\u0644\u0642\u0627\u0626\u064A",importSeparatorComma:"\u0641\u0627\u0635\u0644\u0629 ,",importSeparatorSemicolon:"\u0641\u0627\u0635\u0644\u0629 \u0645\u0646\u0642\u0648\u0637\u0629 ;",importSeparatorTab:"\u0645\u0633\u0627\u0641\u0629 \u062C\u062F\u0648\u0644\u0629",importSeparatorPipe:"\u0634\u0631\u0637\u0629 \u0639\u0645\u0648\u062F\u064A\u0629 |",importFileColumn:"\u0639\u0645\u0648\u062F \u0627\u0644\u0645\u0644\u0641",importDetected:"\u0627\u0644\u0645\u0643\u062A\u0634\u0641",importGridColumn:"\u0639\u0645\u0648\u062F \u0627\u0644\u062C\u062F\u0648\u0644",importSample:"\u0639\u064A\u0646\u0629",importSkip:"\u2014 \u062A\u062E\u0637\u064D \u2014",importPreview:"\u0645\u0639\u0627\u064A\u0646\u0629",importNoSource:"\u0627\u062E\u062A\u0631 \u0645\u0644\u0641\u064B\u0627 \u0623\u0648\u0644\u064B\u0627 \u0623\u0648 \u0627\u0644\u0635\u0642 \u0628\u0639\u0636 \u0627\u0644\u0635\u0641\u0648\u0641.",importNoRows:"\u0644\u0645 \u064A\u062A\u0645 \u0627\u0644\u0639\u062B\u0648\u0631 \u0639\u0644\u0649 \u0635\u0641\u0648\u0641 \u0628\u064A\u0627\u0646\u0627\u062A.",importAction:"\u0627\u0633\u062A\u064A\u0631\u0627\u062F",exportAborted:"\u062A\u0645 \u0625\u0644\u063A\u0627\u0621 \u0627\u0644\u062A\u0635\u062F\u064A\u0631",exportSheetName:"\u0627\u0644\u0628\u064A\u0627\u0646\u0627\u062A",chart:"\u0627\u0644\u0631\u0633\u0645 \u0627\u0644\u0628\u064A\u0627\u0646\u064A",chartCategory:"\u0627\u0644\u0641\u0626\u0629",chartSeries:"\u0627\u0644\u0633\u0644\u0633\u0644\u0629",chartAddSeries:"\u0625\u0636\u0627\u0641\u0629 \u0633\u0644\u0633\u0644\u0629",chartRemoveSeries:"\u0625\u0632\u0627\u0644\u0629",chartSource:"\u0627\u0644\u0628\u064A\u0627\u0646\u0627\u062A",chartSourceView:"\u0627\u0644\u0635\u0641\u0648\u0641 \u0627\u0644\u0645\u0635\u0641\u0651\u0627\u0629",chartSourceSelection:"\u0627\u0644\u0635\u0641\u0648\u0641 \u0627\u0644\u0645\u062D\u062F\u062F\u0629",chartSourceAll:"\u0643\u0644 \u0627\u0644\u0635\u0641\u0648\u0641",chartClose:"\u0625\u063A\u0644\u0627\u0642 \u0627\u0644\u0631\u0633\u0645 \u0627\u0644\u0628\u064A\u0627\u0646\u064A",chartFullscreen:"\u0645\u0644\u0621 \u0627\u0644\u0634\u0627\u0634\u0629",chartExitFullscreen:"\u0625\u0646\u0647\u0627\u0621 \u0645\u0644\u0621 \u0627\u0644\u0634\u0627\u0634\u0629",chartExportPng:"PNG",chartExportSvg:"SVG",chartExportFailed:"\u062A\u0639\u0630\u0651\u0631 \u062A\u0635\u062F\u064A\u0631 \u0627\u0644\u0631\u0633\u0645 \u0627\u0644\u0628\u064A\u0627\u0646\u064A.",chartCrossFiltered:"\u062A\u0645\u062A \u062A\u0635\u0641\u064A\u0629 \u0627\u0644\u062C\u062F\u0648\u0644 \u0625\u0644\u0649 {value}.",chartBlankCategory:"(\u0641\u0627\u0631\u063A)",chartTruncated:"\u064A\u062A\u0645 \u0639\u0631\u0636 \u0623\u0639\u0644\u0649 {n} \u0641\u0626\u0629\u061B \u0648\u0627\u0644\u0628\u0627\u0642\u064A \u0645\u062C\u0645\u0651\u0639 \u0636\u0645\u0646 \xAB\u0623\u062E\u0631\u0649\xBB.",chartOther:"\u0623\u062E\u0631\u0649",chartEmpty:"\u0644\u0627 \u064A\u0648\u062C\u062F \u0634\u064A\u0621 \u0644\u0639\u0631\u0636\u0647 \u0628\u0639\u062F.",chartNeedsRecharts:"\u062A\u062D\u062A\u0627\u062C \u0627\u0644\u0631\u0633\u0648\u0645 \u0627\u0644\u0628\u064A\u0627\u0646\u064A\u0629 \u0625\u0644\u0649 \u062D\u0632\u0645\u0629 `recharts` \u0627\u0644\u0627\u062E\u062A\u064A\u0627\u0631\u064A\u0629. \u062B\u0628\u0651\u062A\u0647\u0627 \u0644\u0631\u0633\u0645\u0647\u0627.",chartOnlyOneSeries:"\u0647\u0630\u0627 \u0627\u0644\u0646\u0648\u0639 \u0645\u0646 \u0627\u0644\u0631\u0633\u0648\u0645 \u064A\u0639\u0631\u0636 \u0633\u0644\u0633\u0644\u0629 \u0648\u0627\u062D\u062F\u0629.",chartByColumn:"\u0631\u0633\u0645 \u0628\u064A\u0627\u0646\u064A \u062D\u0633\u0628 \u0647\u0630\u0627 \u0627\u0644\u0639\u0645\u0648\u062F",chartGroupBy:"\u062D\u0633\u0628",chartGroupNone:"\u0643\u0644 \u0642\u064A\u0645\u0629",chartGroupAuto:"\u062A\u0644\u0642\u0627\u0626\u064A",chartGroupDay:"\u064A\u0648\u0645",chartGroupWeek:"\u0623\u0633\u0628\u0648\u0639",chartGroupMonth:"\u0634\u0647\u0631",chartGroupQuarter:"\u0631\u0628\u0639",chartGroupYear:"\u0633\u0646\u0629",chartGroupBins:"{n} \u0641\u0626\u0629",chartBucketAdjusted:"\u0639\u062F\u062F \u0627\u0644\u0641\u0648\u0627\u0635\u0644 \u0623\u0643\u0628\u0631 \u0645\u0646 \u0623\u0646 \u064A\u062A\u0633\u0639 \u0644\u0645\u062D\u0648\u0631 \u0648\u0627\u062D\u062F \u2014 \u062A\u0645 \u0627\u0644\u062A\u062C\u0645\u064A\u0639 \u0628\u0634\u0643\u0644 \u0623\u0648\u0633\u0639.",chartWindowed:"\u064A\u062A\u0645 \u0639\u0631\u0636 {shown} \u0645\u0646 {total}.",chartShowAll:"\u0639\u0631\u0636 \u0627\u0644\u0643\u0644",chartCanvasHint:"\u0631\u0633\u0645 \u0628\u064A\u0627\u0646\u064A. \u0645\u0631\u0651\u0631 \u0644\u0644\u062A\u0643\u0628\u064A\u0631\u060C \u0627\u0633\u062D\u0628 \u0644\u0644\u062A\u062D\u0631\u064A\u0643\u060C \u0627\u0633\u062A\u062E\u062F\u0645 \u0627\u0644\u0623\u0633\u0647\u0645 \u0644\u0644\u062A\u0646\u0642\u0644\u060C \u06480 \u0644\u0639\u0631\u0636 \u0627\u0644\u0643\u0644.",chartAggSum:"\u0645\u062C\u0645\u0648\u0639",chartAggAvg:"\u0645\u062A\u0648\u0633\u0637",chartAggMin:"\u0627\u0644\u062D\u062F \u0627\u0644\u0623\u062F\u0646\u0649",chartAggMax:"\u0627\u0644\u062D\u062F \u0627\u0644\u0623\u0642\u0635\u0649",chartAggCount:"\u0627\u0644\u0639\u062F\u062F",chartAggDistinct:"\u0627\u0644\u0642\u064A\u0645 \u0627\u0644\u0641\u0631\u064A\u062F\u0629",chartTypeColumn:"\u0623\u0639\u0645\u062F\u0629",chartTypeBar:"\u0623\u0634\u0631\u0637\u0629",chartTypeLine:"\u062E\u0637\u064A",chartTypeArea:"\u0645\u0633\u0627\u062D\u064A",chartTypePie:"\u062F\u0627\u0626\u0631\u064A",chartTypeDonut:"\u062D\u0644\u0642\u064A",licenseMissing:"\u063A\u064A\u0631 \u0645\u0631\u062E\u0651\u0635",licenseExpired:"\u0627\u0646\u062A\u0647\u062A \u0635\u0644\u0627\u062D\u064A\u0629 \u0627\u0644\u062A\u0631\u062E\u064A\u0635",licenseReleaseNotCovered:"\u0647\u0630\u0627 \u0627\u0644\u0625\u0635\u062F\u0627\u0631 \u063A\u064A\u0631 \u0645\u0634\u0645\u0648\u0644 \u0628\u0627\u0644\u062A\u0631\u062E\u064A\u0635",licenseDomainMismatch:"\u0627\u0644\u062A\u0631\u062E\u064A\u0635 \u063A\u064A\u0631 \u0635\u0627\u0644\u062D \u0644\u0647\u0630\u0627 \u0627\u0644\u0646\u0637\u0627\u0642",licenseRevoked:"\u062A\u0645 \u0625\u0644\u063A\u0627\u0621 \u0627\u0644\u062A\u0631\u062E\u064A\u0635",licenseInvalidFormat:"\u0635\u064A\u063A\u0629 \u0645\u0641\u062A\u0627\u062D \u0627\u0644\u062A\u0631\u062E\u064A\u0635 \u063A\u064A\u0631 \u0635\u062D\u064A\u062D\u0629",licenseInvalidSignature:"\u062A\u0648\u0642\u064A\u0639 \u0627\u0644\u062A\u0631\u062E\u064A\u0635 \u063A\u064A\u0631 \u0635\u0627\u0644\u062D",licenseEngineUnavailable:"\u0644\u0627 \u064A\u0633\u062A\u0637\u064A\u0639 \u0627\u0644\u0645\u062A\u0635\u0641\u062D \u0627\u0644\u062A\u062D\u0642\u0642 \u0645\u0646 \u0627\u0644\u062A\u0631\u062E\u064A\u0635 (\u064A\u0644\u0632\u0645 HTTPS)"},Il={ok:"\u786E\u5B9A",cancel:"\u53D6\u6D88",apply:"\u5E94\u7528",close:"\u5173\u95ED",clear:"\u6E05\u9664",save:"\u4FDD\u5B58",search:"\u641C\u7D22...",selectAll:"\u5168\u9009",showAll:"\u663E\u793A\u5168\u90E8",remove:"\u79FB\u9664",none:"\u65E0",toolbarSearch:"\u641C\u7D22...",exportMenu:"\u5BFC\u51FA",exportCsv:"\u5BFC\u51FA\u4E3A CSV",exportExcel:"\u5C06\u5168\u90E8\u6570\u636E\u5BFC\u51FA\u5230 Excel",exportExcelSelected:"\u5C06\u9009\u4E2D\u884C\u5BFC\u51FA\u5230 Excel",exportPdf:"\u5BFC\u51FA\u4E3A PDF",exporting:"\u6B63\u5728\u5BFC\u51FA\u2026",columns:"\u5217",hiddenColumns:"\u9690\u85CF\u7684\u5217",noHiddenColumns:"\u6CA1\u6709\u9690\u85CF\u7684\u5217\u3002",sortAsc:"\u6309 A \u5230 Z \u6392\u5E8F",sortDesc:"\u6309 Z \u5230 A \u6392\u5E8F",clearSort:"\u6E05\u9664\u6392\u5E8F",groupByColumn:"\u6309\u6B64\u5217\u5206\u7EC4",ungroupColumn:"\u4ECE\u5206\u7EC4\u4E2D\u79FB\u9664",showGroupPanel:"\u663E\u793A\u5206\u7EC4\u9762\u677F",hideGroupPanel:"\u9690\u85CF\u5206\u7EC4\u9762\u677F",showFooter:"\u663E\u793A\u6C47\u603B\u680F",hideFooter:"\u9690\u85CF\u6C47\u603B\u680F",showGroupFooters:"\u663E\u793A\u5206\u7EC4\u6C47\u603B",hideGroupFooters:"\u9690\u85CF\u5206\u7EC4\u6C47\u603B",hideColumn:"\u9690\u85CF\u6B64\u5217",fieldChooser:"\u5B57\u6BB5\u9009\u62E9\u5668\u2026",bestFit:"\u6700\u4F73\u5217\u5BBD",bestFitAll:"\u6700\u4F73\u5217\u5BBD\uFF08\u6240\u6709\u5217\uFF09",fixedPosition:"\u8BBE\u7F6E\u56FA\u5B9A\u4F4D\u7F6E",pinLeft:"\u5DE6\u4FA7",pinRight:"\u53F3\u4FA7",pinSticky:"\u5438\u9644",unpin:"\u53D6\u6D88\u56FA\u5B9A",moveLeft:"\u5DE6\u79FB",moveRight:"\u53F3\u79FB",filterPlaceholder:"\u7B5B\u9009\u2026",filterColumnAria:"\u7B5B\u9009{column}",filterSelectAll:"\u5168\u9009",filterBlank:"(\u7A7A\u767D)",filterNoMatch:"\u6CA1\u6709\u5339\u914D\u7684\u503C",filterLoading:"\u6B63\u5728\u52A0\u8F7D\u503C\u2026",filterTruncated:"\u4EC5\u663E\u793A\u524D\u82E5\u5E72\u4E2A\u503C\u2014\u2014\u8BF7\u641C\u7D22\u4EE5\u67E5\u627E\u5176\u4F59\u7684\u503C\u3002",filterRemove:"\u79FB\u9664\u7B5B\u9009",filterToggle:"\u5E94\u7528\u7B5B\u9009",filterEditBuilder:"\u7F16\u8F91\u7B5B\u9009",filterNone:"\u65E0\u7B5B\u9009",filterActive:"\u7B5B\u9009\u5DF2\u542F\u7528",opEquals:"\u7B49\u4E8E",opNotEquals:"\u4E0D\u7B49\u4E8E",opGreater:">",opGreaterOrEqual:"\u2265",opLess:"<",opLessOrEqual:"\u2264",opContains:"\u5305\u542B",opNotContains:"\u4E0D\u5305\u542B",opStartsWith:"\u5F00\u5934\u4E3A",opEndsWith:"\u7ED3\u5C3E\u4E3A",opIsBlank:"\u4E3A\u7A7A",opIsNotBlank:"\u4E0D\u4E3A\u7A7A",opIsOneOf:"\u5C5E\u4E8E",opIsBetween:"\u4ECB\u4E8E",opValuesCount:"{n} \u4E2A\u503C",filterAnd:"\u4E0E",filterOr:"\u6216",builderTitle:"\u7B5B\u9009\u751F\u6210\u5668",builderCombine:"\u6761\u4EF6\u7684\u7EC4\u5408\u65B9\u5F0F",builderAddCondition:"\u6DFB\u52A0\u6761\u4EF6",builderAddGroup:"\u6DFB\u52A0\u5206\u7EC4",builderRemoveGroup:"\u79FB\u9664\u5206\u7EC4",builderRemoveCondition:"\u79FB\u9664\u6761\u4EF6",builderEmpty:"\u5C1A\u65E0\u6761\u4EF6\u3002",builderColumn:"\u5217",builderOperator:"\u8FD0\u7B97\u7B26",builderValue:"\u503C",builderValueFrom:"\u4ECE",builderValueTo:"\u5230",builderValuePlaceholder:"\u8BF7\u8F93\u5165\u503C",groupPanelHint:"\u5C06\u5217\u62D6\u5230\u6B64\u5904\u5373\u53EF\u6309\u5176\u5206\u7EC4",groupAddLevel:"\u6DFB\u52A0\u5206\u7EC4\u5C42\u7EA7",groupAddLevelButton:"+ \u6DFB\u52A0\u5C42\u7EA7\u2026",groupNoGrouping:"\uFF08\u65E0\u5206\u7EC4\uFF09",groupLevelAria:"\u7B2C {n} \u7EA7\u5206\u7EC4",groupRemoveAria:"\u79FB\u9664{column}",pagerFirst:"\u9996\u9875",pagerPrevious:"\u4E0A\u4E00\u9875",pagerNext:"\u4E0B\u4E00\u9875",pagerLast:"\u672B\u9875",pagerPage:"\u7B2C",pagerOf:"/",pagerRowsPerPage:"\u6BCF\u9875\u884C\u6570",pagerAria:"\u5206\u9875",selectAllRows:"\u9009\u62E9\u6240\u6709\u884C",selectRowAria:"\u9009\u62E9\u7B2C {row} \u884C",summaryAria:"\u6C47\u603B",columnTotalsAria:"\u5217\u5408\u8BA1",rowActions:"\u884C\u64CD\u4F5C",detailsAria:"\u8BE6\u60C5",rowNumberAria:"\u884C\u53F7",noteEditorAria:"\u5355\u5143\u683C\u6279\u6CE8",notePlaceholder:"\u4E3A\u6B64\u5355\u5143\u683C\u5199\u6279\u6CE8\u2026",addNote:"\u6DFB\u52A0\u6279\u6CE8\u2026",editNote:"\u7F16\u8F91\u6279\u6CE8\u2026",deleteNote:"\u5220\u9664\u6279\u6CE8",expandDetails:"\u5C55\u5F00\u8BE6\u60C5",collapseDetails:"\u6298\u53E0\u8BE6\u60C5",dragToReorder:"\u62D6\u52A8\u4EE5\u91CD\u65B0\u6392\u5E8F",menuCopy:"\u590D\u5236",menuCopyWithHeaders:"\u590D\u5236\uFF08\u542B\u8868\u5934\uFF09",menuCopyWithGroupHeaders:"\u590D\u5236\uFF08\u542B\u5206\u7EC4\u8868\u5934\uFF09",menuCut:"\u526A\u5207",menuPaste:"\u7C98\u8D34",menuExport:"\u5BFC\u51FA",menuChartRange:"\u5C06\u6240\u9009\u5217\u751F\u6210\u56FE\u8868",statsSum:"\u6C42\u548C",statsCount:"\u8BA1\u6570",statsAvg:"\u5E73\u5747\u503C",statsMin:"\u6700\u5C0F\u503C",statsMax:"\u6700\u5927\u503C",statsCells:"\u5355\u5143\u683C",statsTooLarge:"\u6240\u9009\u533A\u57DF\u8FC7\u5927\uFF0C\u65E0\u6CD5\u6C47\u603B",statusRows:"\u884C\u6570",statusFiltered:"\u7B5B\u9009\u540E",statusSelected:"\u5DF2\u9009\u62E9",summaryRows:"\u884C",announceRows:"{n} \u884C",announceSortedBy:"\u6309 {columns} \u6392\u5E8F",announceSelected:"\u5DF2\u9009\u62E9 {n} \u9879",announceAscending:"\u5347\u5E8F",announceDescending:"\u964D\u5E8F",sideFilters:"\u7B5B\u9009\u5668",sideBarAria:"\u5DE5\u5177\u9762\u677F",sideClearFilters:"\u6E05\u9664\u6240\u6709\u7B5B\u9009",summarySum:"\u6C42\u548C",summaryAvg:"\u5E73\u5747\u503C",summaryMin:"\u6700\u5C0F\u503C",summaryMax:"\u6700\u5927\u503C",summaryCount:"\u8BA1\u6570",summaryDistinct:"\u53BB\u91CD\u8BA1\u6570",summaryCustom:"\u81EA\u5B9A\u4E49",noTotal:"\u65E0\u5408\u8BA1",busy:"\u5904\u7406\u4E2D\u2026",busyLoading:"\u6B63\u5728\u52A0\u8F7D\u884C\u2026",busyEncoding:"\u6B63\u5728\u51C6\u5907\u6570\u636E\u2026",busyFiltering:"\u6B63\u5728\u7B5B\u9009\u884C\u2026",busySorting:"\u6B63\u5728\u6392\u5E8F\u884C\u2026",busyComputing:"\u6B63\u5728\u7B5B\u9009\u548C\u6392\u5E8F\u2026",busyGrouping:"\u6B63\u5728\u6784\u5EFA\u5206\u7EC4\u2026",busyAggregating:"\u6B63\u5728\u8BA1\u7B97\u5408\u8BA1\u2026",busyProjecting:"\u6B63\u5728\u66F4\u65B0\u89C6\u56FE\u2026",busyExporting:"\u6B63\u5728\u751F\u6210\u6587\u4EF6\u2026",noData:"\u672A\u627E\u5230\u6570\u636E",editNewRow:"\u65B0\u5EFA\u884C",editSaveChanges:"\u4FDD\u5B58\u66F4\u6539",editDiscardChanges:"\u653E\u5F03\u66F4\u6539",editRow:"\u7F16\u8F91\u884C",editRowMenu:"\u7F16\u8F91\u884C\u2026",editDeleteRow:"\u5220\u9664\u884C",editUndoDelete:"\u64A4\u9500\u5220\u9664",editActions:"\u64CD\u4F5C",editSaveRow:"\u4FDD\u5B58\u6B64\u884C",editSaving:"\u6B63\u5728\u4FDD\u5B58\u2026",editEditingRow:"\u6B63\u5728\u7F16\u8F91\u7B2C {row} \u884C",editSaveCount:"\u4FDD\u5B58 {n} \u884C",editCannotSave:"\u65E0\u6CD5\u4FDD\u5B58",editSaveFailed:"\u672A\u80FD\u4FDD\u5B58\u66F4\u6539\u3002",editDeleteConfirm:"\u8981\u5220\u9664\u6B64\u884C\u5417\uFF1F",editAddRowUndo:"\u6DFB\u52A0\u884C",editDeleteRowUndo:"\u5220\u9664\u884C",editCellUndo:"\u7F16\u8F91 {column}",editFillUndo:"\u586B\u5145 {count} \u4E2A\u5355\u5143\u683C",editPasteUndo:"\u7C98\u8D34 {count} \u4E2A\u5355\u5143\u683C",editCutUndo:"\u526A\u5207 {count} \u4E2A\u5355\u5143\u683C",editNoMatch:"\u65E0\u5339\u914D\u9879",formEditTitle:"\u7F16\u8F91\u884C",formAddTitle:"\u65B0\u5EFA\u884C",formShortcut:"{key}+Enter \u4FDD\u5B58 \xB7 Esc \u53D6\u6D88",validationRequired:"\u6B64\u5B57\u6BB5\u4E3A\u5FC5\u586B\u9879",validationNumber:"\u5FC5\u987B\u4E3A\u6570\u5B57",validationFormat:"\u683C\u5F0F\u65E0\u6548",validationEmail:"\u7535\u5B50\u90AE\u4EF6\u5730\u5740\u65E0\u6548",validationInvalid:"\u503C\u65E0\u6548",dateCalendar:"\u65E5\u5386",dateOpenCalendar:"\u6253\u5F00\u65E5\u5386",datePreviousMonth:"\u4E0A\u4E2A\u6708",dateNextMonth:"\u4E0B\u4E2A\u6708",monthJanuary:"\u4E00\u6708",monthFebruary:"\u4E8C\u6708",monthMarch:"\u4E09\u6708",monthApril:"\u56DB\u6708",monthMay:"\u4E94\u6708",monthJune:"\u516D\u6708",monthJuly:"\u4E03\u6708",monthAugust:"\u516B\u6708",monthSeptember:"\u4E5D\u6708",monthOctober:"\u5341\u6708",monthNovember:"\u5341\u4E00\u6708",monthDecember:"\u5341\u4E8C\u6708",weekStartsOn:"1",weekdaySu:"\u65E5",weekdayMo:"\u4E00",weekdayTu:"\u4E8C",weekdayWe:"\u4E09",weekdayTh:"\u56DB",weekdayFr:"\u4E94",weekdaySa:"\u516D",importTitle:"\u5BFC\u5165\u6570\u636E",importStepSource:"1. \u6570\u636E\u6E90",importStepMap:"2. \u6620\u5C04\u5217",importFile:"CSV \u6587\u4EF6",importPaste:"\u2026\u6216\u7C98\u8D34\u884C",importSeparator:"\u5206\u9694\u7B26",importSeparatorAuto:"\u81EA\u52A8\u68C0\u6D4B",importSeparatorComma:"\u9017\u53F7 ,",importSeparatorSemicolon:"\u5206\u53F7 ;",importSeparatorTab:"\u5236\u8868\u7B26",importSeparatorPipe:"\u7AD6\u7EBF |",importFileColumn:"\u6587\u4EF6\u5217",importDetected:"\u68C0\u6D4B\u7ED3\u679C",importGridColumn:"\u8868\u683C\u5217",importSample:"\u793A\u4F8B",importSkip:"\u2014 \u8DF3\u8FC7 \u2014",importPreview:"\u9884\u89C8",importNoSource:"\u8BF7\u5148\u9009\u62E9\u6587\u4EF6\u6216\u7C98\u8D34\u4E00\u4E9B\u884C\u3002",importNoRows:"\u672A\u627E\u5230\u6570\u636E\u884C\u3002",importAction:"\u5BFC\u5165",exportAborted:"\u5BFC\u51FA\u5DF2\u4E2D\u6B62",exportSheetName:"\u6570\u636E",chart:"\u56FE\u8868",chartCategory:"\u7C7B\u522B",chartSeries:"\u7CFB\u5217",chartAddSeries:"\u6DFB\u52A0\u7CFB\u5217",chartRemoveSeries:"\u79FB\u9664",chartSource:"\u6570\u636E",chartSourceView:"\u7B5B\u9009\u540E\u7684\u884C",chartSourceSelection:"\u9009\u4E2D\u7684\u884C",chartSourceAll:"\u5168\u90E8\u884C",chartClose:"\u5173\u95ED\u56FE\u8868",chartFullscreen:"\u5168\u5C4F",chartExitFullscreen:"\u9000\u51FA\u5168\u5C4F",chartExportPng:"PNG",chartExportSvg:"SVG",chartExportFailed:"\u56FE\u8868\u5BFC\u51FA\u5931\u8D25\u3002",chartCrossFiltered:"\u8868\u683C\u5DF2\u7B5B\u9009\u4E3A {value}\u3002",chartBlankCategory:"(\u7A7A\u767D)",chartTruncated:"\u663E\u793A\u524D {n} \u4E2A\u7C7B\u522B\uFF1B\u5176\u4F59\u5F52\u5165\u201C\u5176\u4ED6\u201D\u3002",chartOther:"\u5176\u4ED6",chartEmpty:"\u6682\u65E0\u53EF\u7ED8\u5236\u7684\u5185\u5BB9\u3002",chartNeedsRecharts:"\u56FE\u8868\u9700\u8981\u53EF\u9009\u4F9D\u8D56 `recharts`\u3002\u8BF7\u5B89\u88C5\u540E\u518D\u7ED8\u5236\u3002",chartOnlyOneSeries:"\u6B64\u56FE\u8868\u7C7B\u578B\u4EC5\u663E\u793A\u4E00\u4E2A\u7CFB\u5217\u3002",chartByColumn:"\u6309\u6B64\u5217\u7ED8\u5236\u56FE\u8868",chartGroupBy:"\u6309",chartGroupNone:"\u6BCF\u4E2A\u503C",chartGroupAuto:"\u81EA\u52A8",chartGroupDay:"\u65E5",chartGroupWeek:"\u5468",chartGroupMonth:"\u6708",chartGroupQuarter:"\u5B63\u5EA6",chartGroupYear:"\u5E74",chartGroupBins:"{n} \u4E2A\u533A\u95F4",chartBucketAdjusted:"\u5355\u4E2A\u5750\u6807\u8F74\u4E0A\u7684\u533A\u95F4\u8FC7\u591A\u2014\u2014\u5DF2\u6309\u66F4\u7C97\u7684\u7C92\u5EA6\u5206\u7EC4\u3002",chartWindowed:"\u6B63\u5728\u663E\u793A {total} \u4E2A\u4E2D\u7684 {shown} \u4E2A\u3002",chartShowAll:"\u663E\u793A\u5168\u90E8",chartCanvasHint:"\u56FE\u8868\u3002\u6EDA\u52A8\u7F29\u653E\uFF0C\u62D6\u52A8\u5E73\u79FB\uFF0C\u65B9\u5411\u952E\u79FB\u52A8\uFF0C\u6309 0 \u663E\u793A\u5168\u90E8\u3002",chartAggSum:"\u6C42\u548C",chartAggAvg:"\u5E73\u5747\u503C",chartAggMin:"\u6700\u5C0F\u503C",chartAggMax:"\u6700\u5927\u503C",chartAggCount:"\u8BA1\u6570",chartAggDistinct:"\u53BB\u91CD\u8BA1\u6570",chartTypeColumn:"\u67F1\u5F62\u56FE",chartTypeBar:"\u6761\u5F62\u56FE",chartTypeLine:"\u6298\u7EBF\u56FE",chartTypeArea:"\u9762\u79EF\u56FE",chartTypePie:"\u997C\u56FE",chartTypeDonut:"\u73AF\u5F62\u56FE",licenseMissing:"\u672A\u6388\u6743",licenseExpired:"\u8BB8\u53EF\u8BC1\u5DF2\u8FC7\u671F",licenseReleaseNotCovered:"\u6B64\u7248\u672C\u4E0D\u5728\u8BB8\u53EF\u8BC1\u8986\u76D6\u8303\u56F4\u5185",licenseDomainMismatch:"\u8BB8\u53EF\u8BC1\u5BF9\u6B64\u57DF\u540D\u65E0\u6548",licenseRevoked:"\u8BB8\u53EF\u8BC1\u5DF2\u88AB\u540A\u9500",licenseInvalidFormat:"\u8BB8\u53EF\u8BC1\u5BC6\u94A5\u683C\u5F0F\u9519\u8BEF",licenseInvalidSignature:"\u8BB8\u53EF\u8BC1\u7B7E\u540D\u65E0\u6548",licenseEngineUnavailable:"\u6D4F\u89C8\u5668\u65E0\u6CD5\u9A8C\u8BC1\u8BB8\u53EF\u8BC1\uFF08\u9700\u8981 HTTPS\uFF09"},Ll={ok:"OK",cancel:"\u30AD\u30E3\u30F3\u30BB\u30EB",apply:"\u9069\u7528",close:"\u9589\u3058\u308B",clear:"\u30AF\u30EA\u30A2",save:"\u4FDD\u5B58",search:"\u691C\u7D22...",selectAll:"\u3059\u3079\u3066\u9078\u629E",showAll:"\u3059\u3079\u3066\u8868\u793A",remove:"\u524A\u9664",none:"\u306A\u3057",toolbarSearch:"\u691C\u7D22...",exportMenu:"\u30A8\u30AF\u30B9\u30DD\u30FC\u30C8",exportCsv:"CSV \u306B\u30A8\u30AF\u30B9\u30DD\u30FC\u30C8",exportExcel:"\u3059\u3079\u3066\u306E\u30C7\u30FC\u30BF\u3092 Excel \u306B\u30A8\u30AF\u30B9\u30DD\u30FC\u30C8",exportExcelSelected:"\u9078\u629E\u3057\u305F\u884C\u3092 Excel \u306B\u30A8\u30AF\u30B9\u30DD\u30FC\u30C8",exportPdf:"PDF \u306B\u30A8\u30AF\u30B9\u30DD\u30FC\u30C8",exporting:"\u30A8\u30AF\u30B9\u30DD\u30FC\u30C8\u4E2D\u2026",columns:"\u5217",hiddenColumns:"\u975E\u8868\u793A\u306E\u5217",noHiddenColumns:"\u975E\u8868\u793A\u306E\u5217\u306F\u3042\u308A\u307E\u305B\u3093\u3002",sortAsc:"\u6607\u9806\u3067\u4E26\u3079\u66FF\u3048",sortDesc:"\u964D\u9806\u3067\u4E26\u3079\u66FF\u3048",clearSort:"\u4E26\u3079\u66FF\u3048\u3092\u30AF\u30EA\u30A2",groupByColumn:"\u3053\u306E\u5217\u3067\u30B0\u30EB\u30FC\u30D7\u5316",ungroupColumn:"\u30B0\u30EB\u30FC\u30D7\u5316\u304B\u3089\u5916\u3059",showGroupPanel:"\u30B0\u30EB\u30FC\u30D7\u30D1\u30CD\u30EB\u3092\u8868\u793A",hideGroupPanel:"\u30B0\u30EB\u30FC\u30D7\u30D1\u30CD\u30EB\u3092\u975E\u8868\u793A",showFooter:"\u30D5\u30C3\u30BF\u30FC\u3092\u8868\u793A",hideFooter:"\u30D5\u30C3\u30BF\u30FC\u3092\u975E\u8868\u793A",showGroupFooters:"\u30B0\u30EB\u30FC\u30D7\u30D5\u30C3\u30BF\u30FC\u3092\u8868\u793A",hideGroupFooters:"\u30B0\u30EB\u30FC\u30D7\u30D5\u30C3\u30BF\u30FC\u3092\u975E\u8868\u793A",hideColumn:"\u3053\u306E\u5217\u3092\u975E\u8868\u793A",fieldChooser:"\u30D5\u30A3\u30FC\u30EB\u30C9\u9078\u629E\u2026",bestFit:"\u5E45\u3092\u81EA\u52D5\u8ABF\u6574",bestFitAll:"\u5E45\u3092\u81EA\u52D5\u8ABF\u6574\uFF08\u3059\u3079\u3066\u306E\u5217\uFF09",fixedPosition:"\u56FA\u5B9A\u4F4D\u7F6E\u3092\u8A2D\u5B9A",pinLeft:"\u5DE6",pinRight:"\u53F3",pinSticky:"\u56FA\u5B9A",unpin:"\u56FA\u5B9A\u3092\u89E3\u9664",moveLeft:"\u5DE6\u306B\u79FB\u52D5",moveRight:"\u53F3\u306B\u79FB\u52D5",filterPlaceholder:"\u30D5\u30A3\u30EB\u30BF\u30FC\u2026",filterColumnAria:"{column} \u3092\u30D5\u30A3\u30EB\u30BF\u30FC",filterSelectAll:"\u3059\u3079\u3066\u9078\u629E",filterBlank:"(\u7A7A\u767D)",filterNoMatch:"\u4E00\u81F4\u3059\u308B\u5024\u304C\u3042\u308A\u307E\u305B\u3093",filterLoading:"\u5024\u3092\u8AAD\u307F\u8FBC\u307F\u4E2D\u2026",filterTruncated:"\u5148\u982D\u306E\u5024\u306E\u307F\u8868\u793A\u3057\u3066\u3044\u307E\u3059\u3002\u6B8B\u308A\u306F\u691C\u7D22\u3057\u3066\u304F\u3060\u3055\u3044\u3002",filterRemove:"\u30D5\u30A3\u30EB\u30BF\u30FC\u3092\u89E3\u9664",filterToggle:"\u30D5\u30A3\u30EB\u30BF\u30FC\u3092\u9069\u7528",filterEditBuilder:"\u30D5\u30A3\u30EB\u30BF\u30FC\u3092\u7DE8\u96C6",filterNone:"\u30D5\u30A3\u30EB\u30BF\u30FC\u306A\u3057",filterActive:"\u30D5\u30A3\u30EB\u30BF\u30FC\u9069\u7528\u4E2D",opEquals:"\u304C\u6B21\u3068\u7B49\u3057\u3044",opNotEquals:"\u304C\u6B21\u3068\u7B49\u3057\u304F\u306A\u3044",opGreater:">",opGreaterOrEqual:"\u2265",opLess:"<",opLessOrEqual:"\u2264",opContains:"\u3092\u542B\u3080",opNotContains:"\u3092\u542B\u307E\u306A\u3044",opStartsWith:"\u3067\u59CB\u307E\u308B",opEndsWith:"\u3067\u7D42\u308F\u308B",opIsBlank:"\u304C\u7A7A\u767D",opIsNotBlank:"\u304C\u7A7A\u767D\u3067\u306A\u3044",opIsBetween:"\u304C\u6B21\u306E\u7BC4\u56F2\u5185",opIsOneOf:"\u304C\u6B21\u306E\u3044\u305A\u308C\u304B",opValuesCount:"{n} \u4EF6\u306E\u5024",filterAnd:"\u304B\u3064 (And)",filterOr:"\u307E\u305F\u306F (Or)",builderTitle:"\u30D5\u30A3\u30EB\u30BF\u30FC\u30D3\u30EB\u30C0\u30FC",builderCombine:"\u6761\u4EF6\u306E\u7D50\u5408\u65B9\u6CD5",builderAddCondition:"\u6761\u4EF6\u3092\u8FFD\u52A0",builderAddGroup:"\u30B0\u30EB\u30FC\u30D7\u3092\u8FFD\u52A0",builderRemoveGroup:"\u30B0\u30EB\u30FC\u30D7\u3092\u524A\u9664",builderRemoveCondition:"\u6761\u4EF6\u3092\u524A\u9664",builderEmpty:"\u307E\u3060\u6761\u4EF6\u304C\u3042\u308A\u307E\u305B\u3093\u3002",builderColumn:"\u5217",builderOperator:"\u6F14\u7B97\u5B50",builderValue:"\u5024",builderValueFrom:"\u958B\u59CB",builderValueTo:"\u7D42\u4E86",builderValuePlaceholder:"\u5024\u3092\u5165\u529B\u3057\u3066\u304F\u3060\u3055\u3044",groupPanelHint:"\u30B0\u30EB\u30FC\u30D7\u5316\u3059\u308B\u5217\u3092\u3053\u3053\u306B\u30C9\u30E9\u30C3\u30B0\u3057\u3066\u304F\u3060\u3055\u3044",groupAddLevel:"\u30B0\u30EB\u30FC\u30D7\u5316\u306E\u30EC\u30D9\u30EB\u3092\u8FFD\u52A0",groupAddLevelButton:"+ \u30EC\u30D9\u30EB\u3092\u8FFD\u52A0\u2026",groupNoGrouping:"\uFF08\u30B0\u30EB\u30FC\u30D7\u5316\u306A\u3057\uFF09",groupLevelAria:"\u30B0\u30EB\u30FC\u30D7\u5316\u30EC\u30D9\u30EB {n}",groupRemoveAria:"{column} \u3092\u524A\u9664",pagerFirst:"\u6700\u521D\u306E\u30DA\u30FC\u30B8",pagerPrevious:"\u524D\u306E\u30DA\u30FC\u30B8",pagerNext:"\u6B21\u306E\u30DA\u30FC\u30B8",pagerLast:"\u6700\u5F8C\u306E\u30DA\u30FC\u30B8",pagerPage:"\u30DA\u30FC\u30B8",pagerOf:"/",pagerRowsPerPage:"1 \u30DA\u30FC\u30B8\u3042\u305F\u308A\u306E\u884C\u6570",pagerAria:"\u30DA\u30FC\u30B8\u9001\u308A",selectAllRows:"\u3059\u3079\u3066\u306E\u884C\u3092\u9078\u629E",selectRowAria:"\u884C {row} \u3092\u9078\u629E",summaryAria:"\u96C6\u8A08",columnTotalsAria:"\u5217\u306E\u5408\u8A08",rowActions:"\u884C\u306E\u64CD\u4F5C",detailsAria:"\u8A73\u7D30",rowNumberAria:"\u884C\u756A\u53F7",noteEditorAria:"\u30BB\u30EB\u306E\u30E1\u30E2",notePlaceholder:"\u3053\u306E\u30BB\u30EB\u306B\u3064\u3044\u3066\u30E1\u30E2\u3092\u66F8\u304F\u2026",addNote:"\u30E1\u30E2\u3092\u8FFD\u52A0\u2026",editNote:"\u30E1\u30E2\u3092\u7DE8\u96C6\u2026",deleteNote:"\u30E1\u30E2\u3092\u524A\u9664",expandDetails:"\u8A73\u7D30\u3092\u5C55\u958B",collapseDetails:"\u8A73\u7D30\u3092\u6298\u308A\u305F\u305F\u3080",dragToReorder:"\u30C9\u30E9\u30C3\u30B0\u3057\u3066\u4E26\u3079\u66FF\u3048",menuCopy:"\u30B3\u30D4\u30FC",menuCopyWithHeaders:"\u898B\u51FA\u3057\u4ED8\u304D\u3067\u30B3\u30D4\u30FC",menuCopyWithGroupHeaders:"\u30B0\u30EB\u30FC\u30D7\u898B\u51FA\u3057\u4ED8\u304D\u3067\u30B3\u30D4\u30FC",menuCut:"\u5207\u308A\u53D6\u308A",menuPaste:"\u8CBC\u308A\u4ED8\u3051",menuExport:"\u30A8\u30AF\u30B9\u30DD\u30FC\u30C8",menuChartRange:"\u9078\u629E\u3057\u305F\u5217\u3092\u30B0\u30E9\u30D5\u5316",statsSum:"\u5408\u8A08",statsCount:"\u30AB\u30A6\u30F3\u30C8",statsAvg:"\u5E73\u5747",statsMin:"\u6700\u5C0F",statsMax:"\u6700\u5927",statsCells:"\u30BB\u30EB",statsTooLarge:"\u9078\u629E\u7BC4\u56F2\u304C\u5927\u304D\u3059\u304E\u3066\u96C6\u8A08\u3067\u304D\u307E\u305B\u3093",statusRows:"\u884C\u6570",statusFiltered:"\u30D5\u30A3\u30EB\u30BF\u30FC\u5F8C",statusSelected:"\u9078\u629E\u6E08\u307F",summaryRows:"\u884C",announceRows:"{n} \u884C",announceSortedBy:"{columns} \u3067\u4E26\u3079\u66FF\u3048",announceSelected:"{n} \u4EF6\u9078\u629E",announceAscending:"\u6607\u9806",announceDescending:"\u964D\u9806",sideFilters:"\u30D5\u30A3\u30EB\u30BF\u30FC",sideBarAria:"\u30C4\u30FC\u30EB\u30D1\u30CD\u30EB",sideClearFilters:"\u3059\u3079\u3066\u306E\u30D5\u30A3\u30EB\u30BF\u30FC\u3092\u30AF\u30EA\u30A2",summarySum:"\u5408\u8A08",summaryAvg:"\u5E73\u5747",summaryMin:"\u6700\u5C0F",summaryMax:"\u6700\u5927",summaryCount:"\u30AB\u30A6\u30F3\u30C8",summaryDistinct:"\u4E00\u610F\u306E\u6570",summaryCustom:"\u30AB\u30B9\u30BF\u30E0",noTotal:"\u5408\u8A08\u306A\u3057",busy:"\u51E6\u7406\u4E2D\u2026",busyLoading:"\u884C\u3092\u8AAD\u307F\u8FBC\u307F\u4E2D\u2026",busyEncoding:"\u30C7\u30FC\u30BF\u3092\u6E96\u5099\u4E2D\u2026",busyFiltering:"\u884C\u3092\u30D5\u30A3\u30EB\u30BF\u30FC\u4E2D\u2026",busySorting:"\u884C\u3092\u4E26\u3079\u66FF\u3048\u4E2D\u2026",busyComputing:"\u30D5\u30A3\u30EB\u30BF\u30FC\u3068\u4E26\u3079\u66FF\u3048\u3092\u5B9F\u884C\u4E2D\u2026",busyGrouping:"\u30B0\u30EB\u30FC\u30D7\u3092\u4F5C\u6210\u4E2D\u2026",busyAggregating:"\u5408\u8A08\u3092\u8A08\u7B97\u4E2D\u2026",busyProjecting:"\u30D3\u30E5\u30FC\u3092\u66F4\u65B0\u4E2D\u2026",busyExporting:"\u30D5\u30A1\u30A4\u30EB\u3092\u4F5C\u6210\u4E2D\u2026",noData:"\u30C7\u30FC\u30BF\u304C\u898B\u3064\u304B\u308A\u307E\u305B\u3093",editNewRow:"\u65B0\u3057\u3044\u884C",editSaveChanges:"\u5909\u66F4\u3092\u4FDD\u5B58",editDiscardChanges:"\u5909\u66F4\u3092\u7834\u68C4",editRow:"\u884C\u3092\u7DE8\u96C6",editRowMenu:"\u884C\u3092\u7DE8\u96C6\u2026",editDeleteRow:"\u884C\u3092\u524A\u9664",editUndoDelete:"\u524A\u9664\u3092\u5143\u306B\u623B\u3059",editActions:"\u30A2\u30AF\u30B7\u30E7\u30F3",editSaveRow:"\u884C\u3092\u4FDD\u5B58",editSaving:"\u4FDD\u5B58\u4E2D\u2026",editEditingRow:"\u884C {row} \u3092\u7DE8\u96C6\u4E2D",editSaveCount:"{n} \u884C\u3092\u4FDD\u5B58",editCannotSave:"\u4FDD\u5B58\u3067\u304D\u307E\u305B\u3093",editSaveFailed:"\u5909\u66F4\u3092\u4FDD\u5B58\u3067\u304D\u307E\u305B\u3093\u3067\u3057\u305F\u3002",editDeleteConfirm:"\u3053\u306E\u884C\u3092\u524A\u9664\u3057\u307E\u3059\u304B\uFF1F",editAddRowUndo:"\u884C\u306E\u8FFD\u52A0",editDeleteRowUndo:"\u884C\u306E\u524A\u9664",editCellUndo:"{column} \u3092\u7DE8\u96C6",editFillUndo:"{count} \u30BB\u30EB\u3092\u30D5\u30A3\u30EB",editPasteUndo:"{count} \u30BB\u30EB\u3092\u8CBC\u308A\u4ED8\u3051",editCutUndo:"{count} \u30BB\u30EB\u3092\u5207\u308A\u53D6\u308A",editNoMatch:"\u4E00\u81F4\u306A\u3057",formEditTitle:"\u884C\u3092\u7DE8\u96C6",formAddTitle:"\u65B0\u3057\u3044\u884C",formShortcut:"{key}+Enter \u3067\u4FDD\u5B58 \xB7 Esc \u3067\u30AD\u30E3\u30F3\u30BB\u30EB",validationRequired:"\u3053\u306E\u9805\u76EE\u306F\u5FC5\u9808\u3067\u3059",validationNumber:"\u6570\u5024\u3092\u5165\u529B\u3057\u3066\u304F\u3060\u3055\u3044",validationFormat:"\u5F62\u5F0F\u304C\u6B63\u3057\u304F\u3042\u308A\u307E\u305B\u3093",validationEmail:"\u30E1\u30FC\u30EB\u30A2\u30C9\u30EC\u30B9\u304C\u6B63\u3057\u304F\u3042\u308A\u307E\u305B\u3093",validationInvalid:"\u5024\u304C\u6B63\u3057\u304F\u3042\u308A\u307E\u305B\u3093",dateCalendar:"\u30AB\u30EC\u30F3\u30C0\u30FC",dateOpenCalendar:"\u30AB\u30EC\u30F3\u30C0\u30FC\u3092\u958B\u304F",datePreviousMonth:"\u524D\u306E\u6708",dateNextMonth:"\u6B21\u306E\u6708",monthJanuary:"1\u6708",monthFebruary:"2\u6708",monthMarch:"3\u6708",monthApril:"4\u6708",monthMay:"5\u6708",monthJune:"6\u6708",monthJuly:"7\u6708",monthAugust:"8\u6708",monthSeptember:"9\u6708",monthOctober:"10\u6708",monthNovember:"11\u6708",monthDecember:"12\u6708",weekStartsOn:"0",weekdaySu:"\u65E5",weekdayMo:"\u6708",weekdayTu:"\u706B",weekdayWe:"\u6C34",weekdayTh:"\u6728",weekdayFr:"\u91D1",weekdaySa:"\u571F",importTitle:"\u30C7\u30FC\u30BF\u306E\u30A4\u30F3\u30DD\u30FC\u30C8",importStepSource:"1. \u30BD\u30FC\u30B9",importStepMap:"2. \u5217\u306E\u5BFE\u5FDC\u4ED8\u3051",importFile:"CSV \u30D5\u30A1\u30A4\u30EB",importPaste:"\u2026\u307E\u305F\u306F\u884C\u3092\u8CBC\u308A\u4ED8\u3051",importSeparator:"\u533A\u5207\u308A\u6587\u5B57",importSeparatorAuto:"\u81EA\u52D5\u691C\u51FA",importSeparatorComma:"\u30AB\u30F3\u30DE ,",importSeparatorSemicolon:"\u30BB\u30DF\u30B3\u30ED\u30F3 ;",importSeparatorTab:"\u30BF\u30D6",importSeparatorPipe:"\u30D1\u30A4\u30D7 |",importFileColumn:"\u30D5\u30A1\u30A4\u30EB\u306E\u5217",importDetected:"\u691C\u51FA\u7D50\u679C",importGridColumn:"\u30B0\u30EA\u30C3\u30C9\u306E\u5217",importSample:"\u30B5\u30F3\u30D7\u30EB",importSkip:"\u2014 \u30B9\u30AD\u30C3\u30D7 \u2014",importPreview:"\u30D7\u30EC\u30D3\u30E5\u30FC",importNoSource:"\u307E\u305A\u30D5\u30A1\u30A4\u30EB\u3092\u9078\u3076\u304B\u3001\u884C\u3092\u8CBC\u308A\u4ED8\u3051\u3066\u304F\u3060\u3055\u3044\u3002",importNoRows:"\u30C7\u30FC\u30BF\u884C\u304C\u898B\u3064\u304B\u308A\u307E\u305B\u3093\u3067\u3057\u305F\u3002",importAction:"\u30A4\u30F3\u30DD\u30FC\u30C8",exportAborted:"\u30A8\u30AF\u30B9\u30DD\u30FC\u30C8\u3092\u4E2D\u6B62\u3057\u307E\u3057\u305F",exportSheetName:"\u30C7\u30FC\u30BF",chart:"\u30B0\u30E9\u30D5",chartCategory:"\u30AB\u30C6\u30B4\u30EA",chartSeries:"\u7CFB\u5217",chartAddSeries:"\u7CFB\u5217\u3092\u8FFD\u52A0",chartRemoveSeries:"\u524A\u9664",chartSource:"\u30C7\u30FC\u30BF",chartSourceView:"\u30D5\u30A3\u30EB\u30BF\u30FC\u5F8C\u306E\u884C",chartSourceSelection:"\u9078\u629E\u3057\u305F\u884C",chartSourceAll:"\u3059\u3079\u3066\u306E\u884C",chartClose:"\u30B0\u30E9\u30D5\u3092\u9589\u3058\u308B",chartFullscreen:"\u5168\u753B\u9762\u8868\u793A",chartExitFullscreen:"\u5168\u753B\u9762\u8868\u793A\u3092\u7D42\u4E86",chartExportPng:"PNG",chartExportSvg:"SVG",chartExportFailed:"\u30B0\u30E9\u30D5\u3092\u30A8\u30AF\u30B9\u30DD\u30FC\u30C8\u3067\u304D\u307E\u305B\u3093\u3067\u3057\u305F\u3002",chartCrossFiltered:"\u30B0\u30EA\u30C3\u30C9\u306F {value} \u3067\u7D5E\u308A\u8FBC\u307E\u308C\u3066\u3044\u307E\u3059\u3002",chartBlankCategory:"(\u7A7A\u767D)",chartTruncated:"\u4E0A\u4F4D {n} \u4EF6\u306E\u30AB\u30C6\u30B4\u30EA\u3092\u8868\u793A\u3057\u3066\u3044\u307E\u3059\u3002\u6B8B\u308A\u306F\u300C\u305D\u306E\u4ED6\u300D\u306B\u307E\u3068\u3081\u3089\u308C\u3066\u3044\u307E\u3059\u3002",chartOther:"\u305D\u306E\u4ED6",chartEmpty:"\u307E\u3060\u8868\u793A\u3067\u304D\u308B\u3082\u306E\u304C\u3042\u308A\u307E\u305B\u3093\u3002",chartNeedsRecharts:"\u30B0\u30E9\u30D5\u306B\u306F\u30AA\u30D7\u30B7\u30E7\u30F3\u306E\u30D1\u30C3\u30B1\u30FC\u30B8 `recharts` \u304C\u5FC5\u8981\u3067\u3059\u3002\u63CF\u753B\u3059\u308B\u306B\u306F\u30A4\u30F3\u30B9\u30C8\u30FC\u30EB\u3057\u3066\u304F\u3060\u3055\u3044\u3002",chartOnlyOneSeries:"\u3053\u306E\u30B0\u30E9\u30D5\u306E\u7A2E\u985E\u306F 1 \u7CFB\u5217\u306E\u307F\u8868\u793A\u3057\u307E\u3059\u3002",chartByColumn:"\u3053\u306E\u5217\u3067\u30B0\u30E9\u30D5\u3092\u4F5C\u6210",chartGroupBy:"\u5358\u4F4D",chartGroupNone:"\u5404\u5024",chartGroupAuto:"\u81EA\u52D5",chartGroupDay:"\u65E5",chartGroupWeek:"\u9031",chartGroupMonth:"\u6708",chartGroupQuarter:"\u56DB\u534A\u671F",chartGroupYear:"\u5E74",chartGroupBins:"{n} \u533A\u9593",chartBucketAdjusted:"1 \u3064\u306E\u8EF8\u306B\u306F\u533A\u9593\u304C\u591A\u3059\u304E\u308B\u305F\u3081\u3001\u7C97\u304F\u307E\u3068\u3081\u307E\u3057\u305F\u3002",chartWindowed:"{total} \u4EF6\u4E2D {shown} \u4EF6\u3092\u8868\u793A\u3057\u3066\u3044\u307E\u3059\u3002",chartShowAll:"\u3059\u3079\u3066\u8868\u793A",chartCanvasHint:"\u30B0\u30E9\u30D5\u3002\u30B9\u30AF\u30ED\u30FC\u30EB\u3067\u62E1\u5927\u7E2E\u5C0F\u3001\u30C9\u30E9\u30C3\u30B0\u3067\u79FB\u52D5\u3001\u77E2\u5370\u30AD\u30FC\u3067\u79FB\u52D5\u30010 \u3067\u5168\u4F53\u8868\u793A\u3002",chartAggSum:"\u5408\u8A08",chartAggAvg:"\u5E73\u5747",chartAggMin:"\u6700\u5C0F",chartAggMax:"\u6700\u5927",chartAggCount:"\u30AB\u30A6\u30F3\u30C8",chartAggDistinct:"\u4E00\u610F\u306E\u6570",chartTypeColumn:"\u7E26\u68D2",chartTypeBar:"\u6A2A\u68D2",chartTypeLine:"\u6298\u308C\u7DDA",chartTypeArea:"\u9762",chartTypePie:"\u5186",chartTypeDonut:"\u30C9\u30FC\u30CA\u30C4",licenseMissing:"\u30E9\u30A4\u30BB\u30F3\u30B9\u306A\u3057",licenseExpired:"\u30E9\u30A4\u30BB\u30F3\u30B9\u306E\u6709\u52B9\u671F\u9650\u304C\u5207\u308C\u3066\u3044\u307E\u3059",licenseReleaseNotCovered:"\u3053\u306E\u30D0\u30FC\u30B8\u30E7\u30F3\u306F\u30E9\u30A4\u30BB\u30F3\u30B9\u306E\u5BFE\u8C61\u5916\u3067\u3059",licenseDomainMismatch:"\u3053\u306E\u30C9\u30E1\u30A4\u30F3\u3067\u306F\u30E9\u30A4\u30BB\u30F3\u30B9\u304C\u7121\u52B9\u3067\u3059",licenseRevoked:"\u30E9\u30A4\u30BB\u30F3\u30B9\u306F\u53D6\u308A\u6D88\u3055\u308C\u307E\u3057\u305F",licenseInvalidFormat:"\u30E9\u30A4\u30BB\u30F3\u30B9\u30AD\u30FC\u306E\u5F62\u5F0F\u304C\u6B63\u3057\u304F\u3042\u308A\u307E\u305B\u3093",licenseInvalidSignature:"\u30E9\u30A4\u30BB\u30F3\u30B9\u306E\u7F72\u540D\u304C\u7121\u52B9\u3067\u3059",licenseEngineUnavailable:"\u30D6\u30E9\u30A6\u30B6\u30FC\u3067\u30E9\u30A4\u30BB\u30F3\u30B9\u3092\u691C\u8A3C\u3067\u304D\u307E\u305B\u3093\uFF08HTTPS \u304C\u5FC5\u8981\u3067\u3059\uFF09"},Pl={ok:"\uD655\uC778",cancel:"\uCDE8\uC18C",apply:"\uC801\uC6A9",close:"\uB2EB\uAE30",clear:"\uC9C0\uC6B0\uAE30",save:"\uC800\uC7A5",search:"\uAC80\uC0C9...",selectAll:"\uBAA8\uB450 \uC120\uD0DD",showAll:"\uBAA8\uB450 \uD45C\uC2DC",remove:"\uC81C\uAC70",none:"\uC5C6\uC74C",toolbarSearch:"\uAC80\uC0C9...",exportMenu:"\uB0B4\uBCF4\uB0B4\uAE30",exportCsv:"CSV\uB85C \uB0B4\uBCF4\uB0B4\uAE30",exportExcel:"\uBAA8\uB4E0 \uB370\uC774\uD130\uB97C Excel\uB85C \uB0B4\uBCF4\uB0B4\uAE30",exportExcelSelected:"\uC120\uD0DD\uD55C \uD589\uC744 Excel\uB85C \uB0B4\uBCF4\uB0B4\uAE30",exportPdf:"PDF\uB85C \uB0B4\uBCF4\uB0B4\uAE30",exporting:"\uB0B4\uBCF4\uB0B4\uB294 \uC911\u2026",columns:"\uC5F4",hiddenColumns:"\uC228\uACA8\uC9C4 \uC5F4",noHiddenColumns:"\uC228\uACA8\uC9C4 \uC5F4\uC774 \uC5C6\uC2B5\uB2C8\uB2E4.",sortAsc:"\uC624\uB984\uCC28\uC21C \uC815\uB82C",sortDesc:"\uB0B4\uB9BC\uCC28\uC21C \uC815\uB82C",clearSort:"\uC815\uB82C \uC9C0\uC6B0\uAE30",groupByColumn:"\uC774 \uC5F4\uB85C \uADF8\uB8F9\uD654",ungroupColumn:"\uADF8\uB8F9\uD654\uC5D0\uC11C \uC81C\uC678",showGroupPanel:"\uADF8\uB8F9 \uD328\uB110 \uD45C\uC2DC",hideGroupPanel:"\uADF8\uB8F9 \uD328\uB110 \uC228\uAE30\uAE30",showFooter:"\uBC14\uB2E5\uAE00 \uD45C\uC2DC",hideFooter:"\uBC14\uB2E5\uAE00 \uC228\uAE30\uAE30",showGroupFooters:"\uADF8\uB8F9 \uBC14\uB2E5\uAE00 \uD45C\uC2DC",hideGroupFooters:"\uADF8\uB8F9 \uBC14\uB2E5\uAE00 \uC228\uAE30\uAE30",hideColumn:"\uC774 \uC5F4 \uC228\uAE30\uAE30",fieldChooser:"\uD544\uB4DC \uC120\uD0DD\uAE30\u2026",bestFit:"\uB108\uBE44 \uC790\uB3D9 \uB9DE\uCDA4",bestFitAll:"\uB108\uBE44 \uC790\uB3D9 \uB9DE\uCDA4(\uBAA8\uB4E0 \uC5F4)",fixedPosition:"\uACE0\uC815 \uC704\uCE58 \uC124\uC815",pinLeft:"\uC67C\uCABD",pinRight:"\uC624\uB978\uCABD",pinSticky:"\uACE0\uC815",unpin:"\uACE0\uC815 \uD574\uC81C",moveLeft:"\uC67C\uCABD\uC73C\uB85C \uC774\uB3D9",moveRight:"\uC624\uB978\uCABD\uC73C\uB85C \uC774\uB3D9",filterPlaceholder:"\uD544\uD130\u2026",filterColumnAria:"{column} \uD544\uD130",filterSelectAll:"\uBAA8\uB450 \uC120\uD0DD",filterBlank:"(\uBE44\uC5B4 \uC788\uC74C)",filterNoMatch:"\uC77C\uCE58\uD558\uB294 \uAC12\uC774 \uC5C6\uC2B5\uB2C8\uB2E4",filterLoading:"\uAC12\uC744 \uBD88\uB7EC\uC624\uB294 \uC911\u2026",filterTruncated:"\uCC98\uC74C \uAC12\uB9CC \uD45C\uC2DC\uB429\uB2C8\uB2E4 \u2014 \uB098\uBA38\uC9C0\uB294 \uAC80\uC0C9\uD574 \uC8FC\uC138\uC694.",filterRemove:"\uD544\uD130 \uC81C\uAC70",filterToggle:"\uD544\uD130 \uC801\uC6A9",filterEditBuilder:"\uD544\uD130 \uD3B8\uC9D1",filterNone:"\uD544\uD130 \uC5C6\uC74C",filterActive:"\uD544\uD130 \uC801\uC6A9 \uC911",opEquals:"\uAC19\uC74C",opNotEquals:"\uAC19\uC9C0 \uC54A\uC74C",opGreater:">",opGreaterOrEqual:"\u2265",opLess:"<",opLessOrEqual:"\u2264",opContains:"\uD3EC\uD568",opNotContains:"\uD3EC\uD568\uD558\uC9C0 \uC54A\uC74C",opStartsWith:"(\uC73C)\uB85C \uC2DC\uC791",opEndsWith:"(\uC73C)\uB85C \uB05D\uB0A8",opIsBlank:"\uBE44\uC5B4 \uC788\uC74C",opIsNotBlank:"\uBE44\uC5B4 \uC788\uC9C0 \uC54A\uC74C",opIsOneOf:"\uB2E4\uC74C \uC911 \uD558\uB098",opIsBetween:"\uC0AC\uC774",opValuesCount:"\uAC12 {n}\uAC1C",filterAnd:"\uADF8\uB9AC\uACE0 (And)",filterOr:"\uB610\uB294 (Or)",builderTitle:"\uD544\uD130 \uC791\uC131\uAE30",builderCombine:"\uC870\uAC74 \uACB0\uD569 \uBC29\uC2DD",builderAddCondition:"\uC870\uAC74 \uCD94\uAC00",builderAddGroup:"\uADF8\uB8F9 \uCD94\uAC00",builderRemoveGroup:"\uADF8\uB8F9 \uC81C\uAC70",builderRemoveCondition:"\uC870\uAC74 \uC81C\uAC70",builderEmpty:"\uC544\uC9C1 \uC870\uAC74\uC774 \uC5C6\uC2B5\uB2C8\uB2E4.",builderColumn:"\uC5F4",builderOperator:"\uC5F0\uC0B0\uC790",builderValue:"\uAC12",builderValueFrom:"\uC2DC\uC791",builderValueTo:"\uB05D",builderValuePlaceholder:"\uAC12\uC744 \uC785\uB825\uD558\uC138\uC694",groupPanelHint:"\uADF8\uB8F9\uD654\uD560 \uC5F4\uC744 \uC5EC\uAE30\uB85C \uB04C\uC5B4 \uB193\uC73C\uC138\uC694",groupAddLevel:"\uADF8\uB8F9\uD654 \uC218\uC900 \uCD94\uAC00",groupAddLevelButton:"+ \uC218\uC900 \uCD94\uAC00\u2026",groupNoGrouping:"(\uADF8\uB8F9\uD654 \uC5C6\uC74C)",groupLevelAria:"\uADF8\uB8F9\uD654 \uC218\uC900 {n}",groupRemoveAria:"{column} \uC81C\uAC70",pagerFirst:"\uCCAB \uD398\uC774\uC9C0",pagerPrevious:"\uC774\uC804 \uD398\uC774\uC9C0",pagerNext:"\uB2E4\uC74C \uD398\uC774\uC9C0",pagerLast:"\uB9C8\uC9C0\uB9C9 \uD398\uC774\uC9C0",pagerPage:"\uD398\uC774\uC9C0",pagerOf:"/",pagerRowsPerPage:"\uD398\uC774\uC9C0\uB2F9 \uD589 \uC218",pagerAria:"\uD398\uC774\uC9C0 \uB9E4\uAE40",selectAllRows:"\uBAA8\uB4E0 \uD589 \uC120\uD0DD",selectRowAria:"{row}\uD589 \uC120\uD0DD",summaryAria:"\uC694\uC57D",columnTotalsAria:"\uC5F4 \uD569\uACC4",rowActions:"\uD589 \uC791\uC5C5",detailsAria:"\uC138\uBD80 \uC815\uBCF4",rowNumberAria:"\uD589 \uBC88\uD638",noteEditorAria:"\uC140 \uBA54\uBAA8",notePlaceholder:"\uC774 \uC140\uC5D0 \uB300\uD55C \uBA54\uBAA8 \uC791\uC131\u2026",addNote:"\uBA54\uBAA8 \uCD94\uAC00\u2026",editNote:"\uBA54\uBAA8 \uD3B8\uC9D1\u2026",deleteNote:"\uBA54\uBAA8 \uC0AD\uC81C",expandDetails:"\uC138\uBD80 \uC815\uBCF4 \uD655\uC7A5",collapseDetails:"\uC138\uBD80 \uC815\uBCF4 \uCD95\uC18C",dragToReorder:"\uB04C\uC5B4\uC11C \uC21C\uC11C \uBCC0\uACBD",menuCopy:"\uBCF5\uC0AC",menuCopyWithHeaders:"\uBA38\uB9AC\uAE00 \uD3EC\uD568 \uBCF5\uC0AC",menuCopyWithGroupHeaders:"\uADF8\uB8F9 \uBA38\uB9AC\uAE00 \uD3EC\uD568 \uBCF5\uC0AC",menuCut:"\uC798\uB77C\uB0B4\uAE30",menuPaste:"\uBD99\uC5EC\uB123\uAE30",menuExport:"\uB0B4\uBCF4\uB0B4\uAE30",menuChartRange:"\uC120\uD0DD\uD55C \uC5F4 \uCC28\uD2B8",statsSum:"\uD569\uACC4",statsCount:"\uAC1C\uC218",statsAvg:"\uD3C9\uADE0",statsMin:"\uCD5C\uC18C",statsMax:"\uCD5C\uB300",statsCells:"\uC140",statsTooLarge:"\uC120\uD0DD \uBC94\uC704\uAC00 \uB108\uBB34 \uCEE4\uC11C \uD569\uACC4\uB97C \uB0BC \uC218 \uC5C6\uC2B5\uB2C8\uB2E4",statusRows:"\uD589",statusFiltered:"\uD544\uD130\uB428",statusSelected:"\uC120\uD0DD\uB428",summaryRows:"\uD589",announceRows:"{n}\uAC1C \uD589",announceSortedBy:"{columns} \uAE30\uC900 \uC815\uB82C",announceSelected:"{n}\uAC1C \uC120\uD0DD\uB428",announceAscending:"\uC624\uB984\uCC28\uC21C",announceDescending:"\uB0B4\uB9BC\uCC28\uC21C",sideFilters:"\uD544\uD130",sideBarAria:"\uB3C4\uAD6C \uD328\uB110",sideClearFilters:"\uBAA8\uB4E0 \uD544\uD130 \uC9C0\uC6B0\uAE30",summarySum:"\uD569\uACC4",summaryAvg:"\uD3C9\uADE0",summaryMin:"\uCD5C\uC18C",summaryMax:"\uCD5C\uB300",summaryCount:"\uAC1C\uC218",summaryDistinct:"\uACE0\uC720 \uAC1C\uC218",summaryCustom:"\uC0AC\uC6A9\uC790 \uC9C0\uC815",noTotal:"\uD569\uACC4 \uC5C6\uC74C",busy:"\uCC98\uB9AC \uC911\u2026",busyLoading:"\uD589\uC744 \uBD88\uB7EC\uC624\uB294 \uC911\u2026",busyEncoding:"\uB370\uC774\uD130\uB97C \uC900\uBE44\uD558\uB294 \uC911\u2026",busyFiltering:"\uD589\uC744 \uD544\uD130\uB9C1\uD558\uB294 \uC911\u2026",busySorting:"\uD589\uC744 \uC815\uB82C\uD558\uB294 \uC911\u2026",busyComputing:"\uD544\uD130\uB9C1 \uBC0F \uC815\uB82C \uC911\u2026",busyGrouping:"\uADF8\uB8F9\uC744 \uB9CC\uB4DC\uB294 \uC911\u2026",busyAggregating:"\uD569\uACC4\uB97C \uACC4\uC0B0\uD558\uB294 \uC911\u2026",busyProjecting:"\uBCF4\uAE30\uB97C \uC5C5\uB370\uC774\uD2B8\uD558\uB294 \uC911\u2026",busyExporting:"\uD30C\uC77C\uC744 \uB9CC\uB4DC\uB294 \uC911\u2026",noData:"\uB370\uC774\uD130\uB97C \uCC3E\uC744 \uC218 \uC5C6\uC2B5\uB2C8\uB2E4",editNewRow:"\uC0C8 \uD589",editSaveChanges:"\uBCC0\uACBD \uB0B4\uC6A9 \uC800\uC7A5",editDiscardChanges:"\uBCC0\uACBD \uB0B4\uC6A9 \uCDE8\uC18C",editRow:"\uD589 \uD3B8\uC9D1",editRowMenu:"\uD589 \uD3B8\uC9D1\u2026",editDeleteRow:"\uD589 \uC0AD\uC81C",editUndoDelete:"\uC0AD\uC81C \uCDE8\uC18C",editActions:"\uC791\uC5C5",editSaveRow:"\uD589 \uC800\uC7A5",editSaving:"\uC800\uC7A5 \uC911\u2026",editEditingRow:"{row}\uD589 \uD3B8\uC9D1 \uC911",editSaveCount:"{n}\uAC1C \uD589 \uC800\uC7A5",editCannotSave:"\uC800\uC7A5\uD560 \uC218 \uC5C6\uC2B5\uB2C8\uB2E4",editSaveFailed:"\uBCC0\uACBD \uB0B4\uC6A9\uC744 \uC800\uC7A5\uD558\uC9C0 \uBABB\uD588\uC2B5\uB2C8\uB2E4.",editDeleteConfirm:"\uC774 \uD589\uC744 \uC0AD\uC81C\uD560\uAE4C\uC694?",editAddRowUndo:"\uD589 \uCD94\uAC00",editDeleteRowUndo:"\uD589 \uC0AD\uC81C",editCellUndo:"{column} \uD3B8\uC9D1",editFillUndo:"{count}\uAC1C \uC140 \uCC44\uC6B0\uAE30",editPasteUndo:"{count}\uAC1C \uC140 \uBD99\uC5EC\uB123\uAE30",editCutUndo:"{count}\uAC1C \uC140 \uC798\uB77C\uB0B4\uAE30",editNoMatch:"\uC77C\uCE58 \uD56D\uBAA9 \uC5C6\uC74C",formEditTitle:"\uD589 \uD3B8\uC9D1",formAddTitle:"\uC0C8 \uD589",formShortcut:"{key}+Enter\uB85C \uC800\uC7A5 \xB7 Esc\uB85C \uCDE8\uC18C",validationRequired:"\uD544\uC218 \uD56D\uBAA9\uC785\uB2C8\uB2E4",validationNumber:"\uC22B\uC790\uC5EC\uC57C \uD569\uB2C8\uB2E4",validationFormat:"\uD615\uC2DD\uC774 \uC62C\uBC14\uB974\uC9C0 \uC54A\uC2B5\uB2C8\uB2E4",validationEmail:"\uC774\uBA54\uC77C \uC8FC\uC18C\uAC00 \uC62C\uBC14\uB974\uC9C0 \uC54A\uC2B5\uB2C8\uB2E4",validationInvalid:"\uAC12\uC774 \uC62C\uBC14\uB974\uC9C0 \uC54A\uC2B5\uB2C8\uB2E4",dateCalendar:"\uB2EC\uB825",dateOpenCalendar:"\uB2EC\uB825 \uC5F4\uAE30",datePreviousMonth:"\uC774\uC804 \uB2EC",dateNextMonth:"\uB2E4\uC74C \uB2EC",monthJanuary:"1\uC6D4",monthFebruary:"2\uC6D4",monthMarch:"3\uC6D4",monthApril:"4\uC6D4",monthMay:"5\uC6D4",monthJune:"6\uC6D4",monthJuly:"7\uC6D4",monthAugust:"8\uC6D4",monthSeptember:"9\uC6D4",monthOctober:"10\uC6D4",monthNovember:"11\uC6D4",monthDecember:"12\uC6D4",weekStartsOn:"0",weekdaySu:"\uC77C",weekdayMo:"\uC6D4",weekdayTu:"\uD654",weekdayWe:"\uC218",weekdayTh:"\uBAA9",weekdayFr:"\uAE08",weekdaySa:"\uD1A0",importTitle:"\uB370\uC774\uD130 \uAC00\uC838\uC624\uAE30",importStepSource:"1. \uC6D0\uBCF8",importStepMap:"2. \uC5F4 \uB9E4\uD551",importFile:"CSV \uD30C\uC77C",importPaste:"\u2026\uB610\uB294 \uD589 \uBD99\uC5EC\uB123\uAE30",importSeparator:"\uAD6C\uBD84 \uAE30\uD638",importSeparatorAuto:"\uC790\uB3D9 \uAC10\uC9C0",importSeparatorComma:"\uC27C\uD45C ,",importSeparatorSemicolon:"\uC138\uBBF8\uCF5C\uB860 ;",importSeparatorTab:"\uD0ED",importSeparatorPipe:"\uD30C\uC774\uD504 |",importFileColumn:"\uD30C\uC77C \uC5F4",importDetected:"\uAC10\uC9C0\uB428",importGridColumn:"\uADF8\uB9AC\uB4DC \uC5F4",importSample:"\uC608\uC2DC",importSkip:"\u2014 \uAC74\uB108\uB6F0\uAE30 \u2014",importPreview:"\uBBF8\uB9AC \uBCF4\uAE30",importNoSource:"\uBA3C\uC800 \uD30C\uC77C\uC744 \uC120\uD0DD\uD558\uAC70\uB098 \uD589\uC744 \uBD99\uC5EC\uB123\uC73C\uC138\uC694.",importNoRows:"\uB370\uC774\uD130 \uD589\uC744 \uCC3E\uC744 \uC218 \uC5C6\uC2B5\uB2C8\uB2E4.",importAction:"\uAC00\uC838\uC624\uAE30",exportAborted:"\uB0B4\uBCF4\uB0B4\uAE30\uAC00 \uC911\uB2E8\uB418\uC5C8\uC2B5\uB2C8\uB2E4",exportSheetName:"\uB370\uC774\uD130",chart:"\uCC28\uD2B8",chartCategory:"\uBC94\uC8FC",chartSeries:"\uACC4\uC5F4",chartAddSeries:"\uACC4\uC5F4 \uCD94\uAC00",chartRemoveSeries:"\uC81C\uAC70",chartSource:"\uB370\uC774\uD130",chartSourceView:"\uD544\uD130\uB9C1\uB41C \uD589",chartSourceSelection:"\uC120\uD0DD\uD55C \uD589",chartSourceAll:"\uBAA8\uB4E0 \uD589",chartClose:"\uCC28\uD2B8 \uB2EB\uAE30",chartFullscreen:"\uC804\uCCB4 \uD654\uBA74",chartExitFullscreen:"\uC804\uCCB4 \uD654\uBA74 \uC885\uB8CC",chartExportPng:"PNG",chartExportSvg:"SVG",chartExportFailed:"\uCC28\uD2B8\uB97C \uB0B4\uBCF4\uB0B4\uC9C0 \uBABB\uD588\uC2B5\uB2C8\uB2E4.",chartCrossFiltered:"\uADF8\uB9AC\uB4DC\uAC00 {value}(\uC73C)\uB85C \uD544\uD130\uB9C1\uB418\uC5C8\uC2B5\uB2C8\uB2E4.",chartBlankCategory:"(\uBE44\uC5B4 \uC788\uC74C)",chartTruncated:"\uC0C1\uC704 {n}\uAC1C \uBC94\uC8FC\uB97C \uD45C\uC2DC\uD569\uB2C8\uB2E4. \uB098\uBA38\uC9C0\uB294 \u201C\uAE30\uD0C0\u201D\uB85C \uBB36\uC600\uC2B5\uB2C8\uB2E4.",chartOther:"\uAE30\uD0C0",chartEmpty:"\uC544\uC9C1 \uD45C\uC2DC\uD560 \uB0B4\uC6A9\uC774 \uC5C6\uC2B5\uB2C8\uB2E4.",chartNeedsRecharts:"\uCC28\uD2B8\uC5D0\uB294 \uC120\uD0DD \uD328\uD0A4\uC9C0 `recharts`\uAC00 \uD544\uC694\uD569\uB2C8\uB2E4. \uC124\uCE58\uD55C \uB4A4 \uC0AC\uC6A9\uD558\uC138\uC694.",chartOnlyOneSeries:"\uC774 \uCC28\uD2B8 \uC720\uD615\uC740 \uACC4\uC5F4 \uD558\uB098\uB9CC \uD45C\uC2DC\uD569\uB2C8\uB2E4.",chartByColumn:"\uC774 \uC5F4\uB85C \uCC28\uD2B8 \uB9CC\uB4E4\uAE30",chartGroupBy:"\uAE30\uC900",chartGroupNone:"\uAC01 \uAC12",chartGroupAuto:"\uC790\uB3D9",chartGroupDay:"\uC77C",chartGroupWeek:"\uC8FC",chartGroupMonth:"\uC6D4",chartGroupQuarter:"\uBD84\uAE30",chartGroupYear:"\uC5F0\uB3C4",chartGroupBins:"\uAD6C\uAC04 {n}\uAC1C",chartBucketAdjusted:"\uCD95 \uD558\uB098\uC5D0 \uD45C\uC2DC\uD558\uAE30\uC5D0 \uAD6C\uAC04\uC774 \uB108\uBB34 \uB9CE\uC544 \uB354 \uD06C\uAC8C \uBB36\uC5C8\uC2B5\uB2C8\uB2E4.",chartWindowed:"{total}\uAC1C \uC911 {shown}\uAC1C\uB97C \uD45C\uC2DC\uD558\uACE0 \uC788\uC2B5\uB2C8\uB2E4.",chartShowAll:"\uBAA8\uB450 \uD45C\uC2DC",chartCanvasHint:"\uCC28\uD2B8. \uC2A4\uD06C\uB864\uD558\uC5EC \uD655\uB300/\uCD95\uC18C, \uB04C\uC5B4\uC11C \uC774\uB3D9, \uD654\uC0B4\uD45C \uD0A4\uB85C \uC774\uB3D9, 0\uC744 \uB20C\uB7EC \uC804\uCCB4 \uBCF4\uAE30.",chartAggSum:"\uD569\uACC4",chartAggAvg:"\uD3C9\uADE0",chartAggMin:"\uCD5C\uC18C",chartAggMax:"\uCD5C\uB300",chartAggCount:"\uAC1C\uC218",chartAggDistinct:"\uACE0\uC720 \uAC1C\uC218",chartTypeColumn:"\uC138\uB85C \uB9C9\uB300",chartTypeBar:"\uAC00\uB85C \uB9C9\uB300",chartTypeLine:"\uC120",chartTypeArea:"\uC601\uC5ED",chartTypePie:"\uC6D0",chartTypeDonut:"\uB3C4\uB11B",licenseMissing:"\uB77C\uC774\uC120\uC2A4 \uC5C6\uC74C",licenseExpired:"\uB77C\uC774\uC120\uC2A4\uAC00 \uB9CC\uB8CC\uB418\uC5C8\uC2B5\uB2C8\uB2E4",licenseReleaseNotCovered:"\uC774 \uBC84\uC804\uC740 \uB77C\uC774\uC120\uC2A4 \uC801\uC6A9 \uB300\uC0C1\uC774 \uC544\uB2D9\uB2C8\uB2E4",licenseDomainMismatch:"\uC774 \uB3C4\uBA54\uC778\uC5D0\uC11C\uB294 \uB77C\uC774\uC120\uC2A4\uAC00 \uC720\uD6A8\uD558\uC9C0 \uC54A\uC2B5\uB2C8\uB2E4",licenseRevoked:"\uB77C\uC774\uC120\uC2A4\uAC00 \uCDE8\uC18C\uB418\uC5C8\uC2B5\uB2C8\uB2E4",licenseInvalidFormat:"\uB77C\uC774\uC120\uC2A4 \uD0A4 \uD615\uC2DD\uC774 \uC798\uBABB\uB418\uC5C8\uC2B5\uB2C8\uB2E4",licenseInvalidSignature:"\uB77C\uC774\uC120\uC2A4 \uC11C\uBA85\uC774 \uC720\uD6A8\uD558\uC9C0 \uC54A\uC2B5\uB2C8\uB2E4",licenseEngineUnavailable:"\uBE0C\uB77C\uC6B0\uC800\uC5D0\uC11C \uB77C\uC774\uC120\uC2A4\uB97C \uD655\uC778\uD560 \uC218 \uC5C6\uC2B5\uB2C8\uB2E4(HTTPS \uD544\uC694)"};function yt(e,t){let u=e;for(let[r,n]of Object.entries(t))u=u.replace(`{${r}}`,String(n));return u}var Gl={tr:Fl,en:Ji,de:Sl,fr:Bl,es:kl,it:Rl,pt:Nl,ru:Tl,ar:Ml,"zh-CN":Il,ja:Ll,ko:Pl};function Ht(e,t){return Dl(Gl,Ji,e,t)}function Ol(e,t,u,r){let n=u.getCellValue(e.data,t);return r?{text:n==null?"":String(n),value:n}:{text:Du(u.getDef(t),n,e.data),value:n}}function Vl({nodes:e,columns:t,options:u,isSelected:r,selectionCount:n=0,summaries:i}){let a=t.runtime(),l=(u.columnIds??a.map(g=>g.state.id)).map(g=>{let y=t.getDef(g),F=t.getState(g),S=y?.dataType==="number";return{id:g,header:y?.headerName??y?.field??g,width:Math.max(8,Math.round((F?.width??100)/7)),isNumeric:S,align:y?.align??(S?"right":"left"),numFmt:y?.excelFormat??zl(y?.dataType)}}),s=!!u.selectedOnly&&n>0&&!!r,m=u.includeGroups!==!1,c=!!u.raw,h=[];for(let g of e)if(g){if(wo(g)){if(!m||s)continue;let y=l.map((F,S)=>S===0?{text:`${g.label===""?"(Blanks)":g.label} (${g.count})`,value:g.label}:{text:"",value:null});h.push({kind:"group",cells:y,level:g.level});continue}at(g)&&(s&&!r(g.key)||h.push({kind:"data",cells:l.map(y=>Ol(g,y.id,t,c)),level:0}))}let w;return i&&i.defs.length>0&&(w=l.map(g=>{let y=i.defs.find(S=>S.columnId===g.id);if(!y)return null;let F=i.values[`${y.columnId}:${y.type}`]??null;return{text:y.valueFormatter?y.valueFormatter(F):F==null?"":String(F),value:F}})),{columns:l,rows:h,totals:w}}function zl(e){if(e==="number")return"#,##0.###";if(e==="date")return"yyyy-mm-dd"}var lt=class extends Error{constructor(){super("Export aborted"),this.name="ExportAbortedError"}},Hl="\uFEFF",Kl=new Set(["tr","de","fr","es","it","pt","ru","ar"]);function Wl(e){let t=(e??"en").split(/[-_]/)[0].toLowerCase();return Kl.has(t)?";":","}function Ci(e,t){return e.includes(t)||e.includes('"')||e.includes(`
|
|
1
|
+
"use strict";var KanuniLabsDataGrid=(()=>{var co=Object.create;var gu=Object.defineProperty;var ho=Object.getOwnPropertyDescriptor;var po=Object.getOwnPropertyNames;var mo=Object.getPrototypeOf,go=Object.prototype.hasOwnProperty;var dr=(e=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(e,{get:(t,u)=>(typeof require<"u"?require:t)[u]}):e)(function(e){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+e+'" is not supported')});var fo=(e,t)=>{for(var u in t)gu(e,u,{get:t[u],enumerable:!0})},Xn=(e,t,u,r)=>{if(t&&typeof t=="object"||typeof t=="function")for(let n of po(t))!go.call(e,n)&&n!==u&&gu(e,n,{get:()=>t[n],enumerable:!(r=ho(t,n))||r.enumerable});return e};var cr=(e,t,u)=>(u=e!=null?co(mo(e)):{},Xn(t||!e||!e.__esModule?gu(u,"default",{value:e,enumerable:!0}):u,e)),Co=e=>Xn(gu({},"__esModule",{value:!0}),e);var k0={};fo(k0,{CHECKBOX_COLUMN_WIDTH:()=>Wt,DENSITY_ROW_HEIGHT:()=>Hr,DETAIL_COLUMN_WIDTH:()=>At,PRINT_MAX_ROWS:()=>Zr,ROW_DRAG_MIME:()=>Ut,ROW_NUMBER_COLUMN_WIDTH:()=>Et,THEME_ROW_HEIGHT:()=>Wr,buildHeaderMenu:()=>Ru,createGrid:()=>pa,isPackagedTheme:()=>Kr,measureBestFitWidth:()=>Nu,presetRowHeight:()=>ku});function wo(e){return e.kind==="group"}function at(e){return e.kind==="data"}function yo(e){return!Array.isArray(e)&&typeof e.load=="function"}function Ti(e){return typeof e=="string"||typeof e=="number"}var ei=new WeakMap;function Eo(e){if(typeof e.items=="function"||!Array.isArray(e.items))return null;let t=ei.get(e);if(t)return t;let u=new Map;for(let r of e.items)u.set(r.value,r.label);return ei.set(e,u),u}function wt(e,t){if(!e?.lookup)return null;let u=Eo(e.lookup);if(!u)return null;let r=u.get(t);return r===void 0?null:r}function Le(e){let t=e?.band;return t==null?[]:typeof t=="string"?t===""?[]:[t]:t.filter(u=>typeof u=="string"&&u!=="")}function Pt(e){return e.join("\0")}function Ao(e,t){let u=e?.bandShow;if(u===void 0)return!1;let r=Le(e);if(r.length===0)return!1;let n=!1;for(let i=0;i<r.length;i++)if(t.has(Pt(r.slice(0,i+1)))){n=!0;break}return u==="open"?n:!n}function Mi(e){let t=0;for(let u of e){let r=Le(u.def).length;r>t&&(t=r)}return t}function Ii(e,t){if(t<=0)return[];let u=[];for(let r=0;r<t;r++){let n=[];for(let i of e){let a=Le(i.def),l=r<a.length?a[r]:"",s=l==="",c=n[n.length-1];c!==void 0&&c.spacer===s&&c.label===l&&(s||bo(e,c.columnIds[0],i.state.id,r))?(c.columnIds.push(i.state.id),c.width+=i.state.width):n.push({label:l,columnIds:[i.state.id],width:i.state.width,level:r,spacer:s})}u.push(n)}return u}function bo(e,t,u,r){if(r===0)return!0;let n=e.find(s=>s.state.id===t),i=e.find(s=>s.state.id===u),a=Le(n?.def),l=Le(i?.def);for(let s=0;s<r;s++)if(a[s]!==l[s])return!1;return!0}var vo=/^\d{4}-\d{2}-\d{2}(?:[T ]\d{2}:\d{2}|$)/;function xo(e){return e==null||e===""?null:typeof e=="boolean"?"boolean":typeof e=="number"?Number.isFinite(e)?"number":null:e instanceof Date||typeof e=="string"&&vo.test(e)?"date":"string"}function Do(e){if(/^[A-Z0-9_]+$/.test(e))return e.replace(/_/g," ");let t=e.replace(/[_-]+/g," ").replace(/([a-z0-9])([A-Z])/g,"$1 $2").replace(/([A-Z]+)([A-Z][a-z])/g,"$1 $2").trim().split(/\s+/);if(t.length===0)return e;let u=t.map((r,n)=>r.toLowerCase()==="id"?"ID":n===0||/^[A-Z0-9]+$/.test(r)?r:r.toLowerCase());return u[0]=u[0].charAt(0).toUpperCase()+u[0].slice(1),u.join(" ")}function Li(e,t={}){let{sampleSize:u=50,exclude:r,include:n,humanizeHeaders:i=!0,defaults:a}=t;if(!e||e.length===0)return[];let l=new Set(r??[]),s=Math.min(e.length,Math.max(1,u)),c=new Map;for(let m=0;m<s;m++){let p=e[m];if(!(!p||typeof p!="object"))for(let[C,g]of Object.entries(p)){if(l.has(C))continue;c.get(C)==null&&c.set(C,xo(g))}}return(n?n.filter(m=>c.has(m)&&!l.has(m)):[...c.keys()]).map(m=>({...a,field:m,headerName:i?Do(m):m,...c.get(m)?{dataType:c.get(m)}:{}}))}var ot=(e,t)=>`${e}:${t}`;function Fo(e){if(typeof e=="number")return e;if(typeof e=="boolean")return e?1:0;if(e instanceof Date)return e.getTime();let t=Number(e);return Number.isNaN(t)?Number.NaN:t}function So(e,t){return t==="date"&&!(e instanceof Date)&&typeof e!="number"?Date.parse(String(e)):Fo(e)}function Mr(e,t,u,r=ot(e,t)){return{key:r,columnId:e,type:t,dataType:u,count:0,numericCount:0,sum:0,min:Number.POSITIVE_INFINITY,max:Number.NEGATIVE_INFINITY,distinct:t==="countDistinct"?new Set:null}}function Bo(e,t){if(e.count+=t.count,e.numericCount+=t.numericCount,e.sum+=t.sum,t.min<e.min&&(e.min=t.min),t.max>e.max&&(e.max=t.max),e.distinct&&t.distinct)for(let u of t.distinct)e.distinct.add(u)}function vu(e,t){let u=t==null;if(e.type==="count"){u||e.count++;return}if(e.distinct){u||e.distinct.add(String(t));return}if(u)return;let r=So(t,e.dataType);Number.isNaN(r)||(e.numericCount++,e.sum+=r,r<e.min&&(e.min=r),r>e.max&&(e.max=r))}function xu(e){switch(e.type){case"count":return e.count;case"countDistinct":return e.distinct?e.distinct.size:0;case"sum":return e.numericCount>0?e.sum:null;case"avg":return e.numericCount>0?e.sum/e.numericCount:null;case"min":return e.numericCount>0?e.min:null;case"max":return e.numericCount>0?e.max:null;default:return null}}function Pi(e,t,u,r,n,i){let a={};if(n.length===0)return a;let l=i?.effectiveValue,s=i?.effectiveRow,c=[];for(let m of n){let p=ot(m.columnId,m.type);if(m.type==="custom"){if(!m.calculate){a[p]=null;continue}let C=[];for(let g=t;g<u;g++){let E=e[g];if(!E||!at(E))continue;let F=r.getCellValue(E.data,m.columnId);C.push({row:s?s(E.key,E.data):E.data,value:l?l(E.key,m.columnId,F):F})}a[p]=m.calculate(C);continue}c.push(Mr(m.columnId,m.type,r.getDataType(m.columnId),p))}if(c.length>0){let m=c.length===1?c[0]:null;for(let p=t;p<u;p++){let C=e[p];if(!C||!at(C))continue;let g=C.data;if(m){let E=r.getCellValue(g,m.columnId);vu(m,l?l(C.key,m.columnId,E):E);continue}for(let E of c){let F=r.getCellValue(g,E.columnId);vu(E,l?l(C.key,E.columnId,F):F)}}for(let p of c)a[p.key]=xu(p)}return a}function ko(e,t,u,r){return Pi(e,0,e.length,t,u,r)}function Ro(e,t,u){let r=u?.effectiveValue,n=u?.effectiveRow,i=[],a=[],l=[];for(let s of t){if(s.type==="custom"){s.calculate?a.push({def:s,cells:[]}):l.push(ot(s.columnId,s.type));continue}i.push(Mr(s.columnId,s.type,e.getDataType(s.columnId)))}return{add(s,c,m){for(let p=c;p<m;p++){let C=s[p];if(!C||!at(C))continue;let g=C.data;for(let E of i){let F=e.getCellValue(g,E.columnId);vu(E,r?r(C.key,E.columnId,F):F)}for(let{def:E,cells:F}of a){let S=e.getCellValue(g,E.columnId);F.push({row:n?n(C.key,g):g,value:r?r(C.key,E.columnId,S):S})}}},finish(){let s={};for(let c of l)s[c]=null;for(let c of i)s[c.key]=xu(c);for(let{def:c,cells:m}of a)s[ot(c.columnId,c.type)]=c.calculate(m);return s}}}var ti=(e,t)=>`${e}::${t}`;function No(e,t,u){let r=u.columnIds,n=u.summaries,i=0,a=(c,m)=>{let p=t.getCellValue(e[c].data,m);return p==null?"":String(p)},l=(c,m,p,C)=>{let g=r[p],E=[],F=c;for(;F<m;){let S=t.getCellValue(e[F].data,g),T=S==null?"":String(S),N=F+1;for(;N<m&&a(N,g)===T;)N++;let V=C?`${C}|${ti(g,T)}`:ti(g,T),K={columnId:g,value:S,label:T,key:V,level:p,from:F,to:N,count:N-F,children:null};n&&n.length>0&&(K.aggregates=Pi(e,F,N,t,n)),i++,p+1<r.length&&(K.children=l(F,N,p+1,V)),E.push(K),F=N}return E},s=r.length===0?[]:l(0,e.length,0,"");return{levels:r,roots:s,totalGroupCount:i,nodes:e}}function To(e,t){let{collapsedKeys:u,collapsedByDefault:r=!1}=t,n=[],i=0,a=l=>{for(let s of l){let c=r?!u.has(s.key):u.has(s.key),m={kind:"group",key:s.key,columnId:s.columnId,value:s.value,label:s.label,count:s.count,level:s.level,expanded:!c};if(s.aggregates&&(m.aggregates=s.aggregates),n.push(m),i++,!c)if(s.children)a(s.children);else for(let p=s.from;p<s.to;p++)n.push(e.nodes[p])}};return a(e.roots),{nodes:n,groupCount:i}}function Mo(e){let t=[],u=r=>{for(let n of r)t.push(n.key),n.children&&u(n.children)};return u(e.roots),t}function hr(e,t){let u=t==null?[]:Array.isArray(t)?[...t]:[t];if(u.length===0)return[...e];let r=u.map(i=>({columnId:i,direction:e.find(a=>a.columnId===i)?.direction??"asc"})),n=e.filter(i=>!u.includes(i.columnId));return[...r,...n]}function Io(e,t){let u=new Map,r=new Map,n=new Set,i,a,l=!1;for(let c of e){if(c.add){for(let m of c.add){let p=t(m);u.set(p,m),r.delete(p)}l||(l=!0,i=c.addPosition,a=c.addBeforeKey)}if(c.update)for(let m of c.update){let p=t(m);if(u.has(p)){u.set(p,m);continue}n.has(p)||r.set(p,m)}if(c.remove)for(let m of c.remove){let p=Ti(m)?m:t(m);if(u.has(p)){u.delete(p),r.delete(p);continue}r.delete(p),n.add(p)}}let s={};return u.size>0&&(s.add=[...u.values()],i!==void 0&&(s.addPosition=i),a!==void 0&&(s.addBeforeKey=a)),r.size>0&&(s.update=[...r.values()]),n.size>0&&(s.remove=[...n]),s}function Lo(e){return!e.add?.length&&!e.update?.length&&!e.remove?.length}function Ir(e){return e.nodes!==void 0}var Gi="row",Lr="set",Vt="__default",Po=/[\u0130\u0131]/,Go=/[\u0130\u0131]/g;function te(e){return Po.test(e)?e.replace(Go,"i").toLowerCase():e.toLowerCase()}var Oo=[{token:"yyyy",kind:"year"},{token:"yy",kind:"year"},{token:"MM",kind:"month"},{token:"dd",kind:"day"}];function Vo(e){let t=[],u="",r=0;for(;r<e.length;){let n=Oo.find(i=>e.startsWith(i.token,r));if(!n){u+=e[r],r+=1;continue}u&&(t.push({kind:"literal",text:u}),u=""),t.push({kind:n.kind,length:n.token.length}),r+=n.token.length}return u&&t.push({kind:"literal",text:u}),t}function zo(e){if(e==null||e==="")return null;if(e instanceof Date)return Number.isNaN(e.getTime())?null:e;if(typeof e=="number"){let n=new Date(e);return Number.isNaN(n.getTime())?null:n}let t=String(e),u=/^(\d{4})-(\d{2})-(\d{2})$/.exec(t);if(u)return new Date(Number(u[1]),Number(u[2])-1,Number(u[3]));let r=new Date(t);return Number.isNaN(r.getTime())?null:r}var fu=new Map;function Ho(e){let t=fu.get(e);return t||(fu.size>=64&&fu.clear(),t=Vo(e),fu.set(e,t)),t}function Pr(e,t){let u=zo(e);if(!u)return"";let r=(n,i)=>String(n).padStart(i,"0");return Ho(t).map(n=>{if(n.kind==="literal")return n.text;if(n.kind==="day")return r(u.getDate(),n.length);if(n.kind==="month")return r(u.getMonth()+1,n.length);let i=u.getFullYear();return n.length>2?r(i,n.length):r(i%100,2)}).join("")}function Du(e,t,u){let r=wt(e,t);if(r!==null)return r;if(e?.valueFormatter&&u!==void 0){let n=e.valueFormatter(t,u);return n==null?"":String(n)}return t==null?"":String(t)}function Oi(e){return e?typeof e.valueFormatter=="function"||!!e.dateFormat&&e.dataType==="date":!1}function Vi(e,t,u){if(!e||wt(e,t)!==null)return null;let r;try{if(typeof e.valueFormatter=="function")r=e.valueFormatter(t,u);else if(e.dateFormat&&e.dataType==="date"&&t!=null)r=Pr(t,e.dateFormat);else return null}catch{return null}return typeof r=="number"?String(r):typeof r=="string"&&r!==""?r:null}var ui=-1,xr="\0display:";function Ko(e){return xr+e}function Gr(e){return e.startsWith(xr)?e.slice(xr.length):null}function zi(e,t,u){return Vi(e.getDef(t),e.getCellValue(u,t),u)}function Fu(e){return e==null||typeof e=="number"&&Number.isNaN(e)}function Hi(e){if(typeof e=="number")return e;if(typeof e=="boolean")return e?1:0;if(e instanceof Date)return e.getTime();let t=Number(e);return Number.isNaN(t)?Number.NaN:t}function Ki(e){if(e instanceof Date)return e.getTime();if(typeof e=="number")return e;let t=Date.parse(String(e));return Number.isNaN(t)?Number.NaN:t}function Wi(e,t,u,r=!1){let n=e.length,i=0,a=Gr(u),l=a===null?t.getDataType(u):"string",s=a!==null?C=>zi(t,a,C):r?C=>t.getSortValue(C,u):C=>t.getCellValue(C,u);if(l==="number"||l==="boolean"||l==="date"){let C=new Float64Array(n),g=l==="date"?Ki:Hi,E=[],F=new Map,S=new Int32Array(n),T=!0;return{total:n,get done(){return i},step(N){let V=Math.min(n,i+N);for(;i<V;i++){let K=s(e[i]);if(Fu(K)){C[i]=Number.NaN,S[i]=ui;continue}C[i]=g(K),typeof K!="number"&&(T=!1);let Z=String(K),W=F.get(Z);W===void 0&&(W=E.length,E.push(Z),F.set(Z,W)),S[i]=W}return i<n},finish(){return T?{kind:"numeric",values:C}:{kind:"numeric",values:C,searchCodes:S,searchDictionary:E}}}}let c=new Int32Array(n),m=[],p=new Map;return{total:n,get done(){return i},step(C){let g=Math.min(n,i+C);for(;i<g;i++){let E=s(e[i]);if(Fu(E)){c[i]=ui;continue}let F=String(E),S=p.get(F);S===void 0&&(S=m.length,m.push(F),p.set(F,S)),c[i]=S}return i<n},finish(){return{kind:"text",codes:c,dictionary:m}}}}function Wo(e,t,u,r=!1){let n=Wi(e,t,u,r);return n.step(n.total),n.finish()}var ri=new WeakMap;function Uo(e){let t=ri.get(e);if(t!==void 0)return t;let u=$o(e);return ri.set(e,u),u}function $o(e){let t=e.resolvedOptions();if(t.sensitivity!=="base"||t.numeric!==!0||t.ignorePunctuation||t.usage!=="sort"||t.collation!=="default")return!1;let u=[];for(let r=32;r<=126;r++)u.push(String.fromCharCode(r));u.sort(e.compare);for(let r=1;r<u.length;r++)if(e.compare(u[r-1],u[r])===0&&u[r-1].toLowerCase()!==u[r].toLowerCase())return!1;for(let r of u)if(e.compare(r,"")===0)return!1;return!(e.compare("01","1")!==0||e.compare("0","00")!==0||e.compare("a09z","a9z")!==0||e.compare("9","10")>=0)}function ni(e){for(let t=0;t<e.length;t++){let u=e.charCodeAt(t);if(u<32||u>126)return!1}return!0}function qo(e,t){let u=0,r=0,n=e.length,i=t.length;for(;u<n&&r<i;){let a=e.charCodeAt(u),l=t.charCodeAt(r),s=a>=48&&a<=57,c=l>=48&&l<=57;if(s!==c)return!0;if(s){for(;u<n&&e.charCodeAt(u)===48;)u++;for(;r<i&&t.charCodeAt(r)===48;)r++;let m=u,p=r;for(;u<n;){let g=e.charCodeAt(u);if(g<48||g>57)break;u++}for(;r<i;){let g=t.charCodeAt(r);if(g<48||g>57)break;r++}let C=u-m;if(C!==r-p)return!0;for(let g=0;g<C;g++)if(e.charCodeAt(m+g)!==t.charCodeAt(p+g))return!0}else{if(a>=65&&a<=90&&(a+=32),l>=65&&l<=90&&(l+=32),a!==l)return!0;u++,r++}}return u!==n||r!==i}function _o(e,t){let u=e.length,r=new Array(u);for(let c=0;c<u;c++)r[c]=c;r.sort((c,m)=>t.compare(e[c],e[m]));let n=new Int32Array(u);if(u===0)return n;let i=Uo(t)?new Uint8Array(u):null,a=r[0],l=i?ni(e[a])?1:2:0;i&&(i[a]=l);let s=0;n[a]=0;for(let c=1;c<u;c++){let m=r[c],p=e[a],C=e[m],g=0;i&&(g=i[m],g===0&&(g=ni(C)?1:2,i[m]=g)),(l===1&&g===1&&qo(p,C)||t.compare(p,C)!==0)&&s++,n[m]=s,a=m,l=g}return n}function re(e){return e==null}function Ie(e){return e==null?"":String(e)}function We(e){if(e instanceof Date)return e.getTime();if(typeof e=="number")return e;if(typeof e=="boolean")return e?1:0;let t=Number(e);return Number.isNaN(t)?String(e).toLowerCase():t}function Ct(e,t){let u=We(e),r=We(t);if(typeof u=="number"&&typeof r=="number")return u-r;if(typeof u=="number"&&typeof r=="string"){let a=Date.parse(r);if(!Number.isNaN(a))return u-a}else if(typeof u=="string"&&typeof r=="number"){let a=Date.parse(u);if(!Number.isNaN(a))return a-r}let n=String(u),i=String(r);return n<i?-1:n>i?1:0}var ii=new WeakMap;function jo(e){let t=ii.get(e);if(!t){t=new Set;let u=Array.isArray(e.value)?e.value:[];for(let r of u){if(re(r))continue;let n=We(r);typeof n=="number"&&Number.isNaN(n)||t.add(n)}ii.set(e,t)}return t}function Ui(e,t){switch(t.operator){case"isnull":return re(e);case"isnotnull":return!re(e);case"=":return re(e)||re(t.value)?re(e)&&re(t.value):We(e)===We(t.value);case"<>":return re(e)||re(t.value)?!(re(e)&&re(t.value)):We(e)!==We(t.value);case">":return!re(e)&&Ct(e,t.value)>0;case">=":return!re(e)&&Ct(e,t.value)>=0;case"<":return!re(e)&&Ct(e,t.value)<0;case"<=":return!re(e)&&Ct(e,t.value)<=0;case"contains":return te(Ie(e)).includes(te(Ie(t.value)));case"notcontains":return!te(Ie(e)).includes(te(Ie(t.value)));case"startswith":return te(Ie(e)).startsWith(te(Ie(t.value)));case"endswith":return te(Ie(e)).endsWith(te(Ie(t.value)));case"in":{if(re(e))return!1;let u=We(e);return typeof u=="number"&&Number.isNaN(u)?!1:jo(t).has(u)}case"between":{if(!Array.isArray(t.value)||t.value.length<2||re(e))return!1;let[u,r]=t.value;return Ct(e,u)>=0&&Ct(e,r)<=0}default:return!0}}function Dr(e,t,u){if(Ir(t))return t.nodes.length===0?!0:t.logic==="or"?t.nodes.some(n=>Dr(e,n,u)):t.nodes.every(n=>Dr(e,n,u));let r=u.getCellValue(e,t.columnId);return Ui(r,t)}function zt(e){return te((e??"").trim())}function Fr(e,t,u){if(u==="")return null;let r=null;for(let n of t){let i=e.getDef(n)?.lookup?.items;if(!Array.isArray(i))continue;let a=null;for(let l of i)te(String(l.label)).includes(u)&&(a??=new Set).add(String(l.value));a&&(r??=new Map).set(n,a)}return r}function Sr(e){let t=e.getOrder().filter(r=>e.getState(r)?.visible),u=t.filter(r=>Oi(e.getDef(r))).map(Ko);return u.length===0?t:[...t,...u]}function ai(e){if(!e||e.size===0)return;let t={};for(let[u,r]of e)t[u]=[...r];return t}function Yo(e,t,u,r,n,i){let a=zt(n),l=!!r,s=a.length>0,c=typeof i=="function";if(!l&&!s&&!c)return e.slice();let m=s?u.getOrder().filter(N=>u.getState(N)?.visible):[],p=s?Fr(u,m,a):null,C=p!==null,g=C?m.map(N=>p.get(N)??null):[],E=s?m.map(N=>{let V=u.getDef(N);return Oi(V)?V:void 0}):[],F=E.some(N=>N!==void 0),S=new Uint32Array(e.length),T=0;for(let N=0;N<e.length;N++){let V=e[N],K=t[V];if(!(l&&!Dr(K,r,u))&&!(c&&!i(K))){if(s){let Z=!1;for(let W=0;W<m.length;W++){let J=u.getCellValue(K,m[W]);if(!re(J)){let fe=Ie(J);if(te(fe).includes(a)){Z=!0;break}if(C){let Ne=g[W];if(Ne!==null&&Ne.has(fe)){Z=!0;break}}}if(F){let fe=E[W];if(fe!==void 0){let Ne=Vi(fe,J,K);if(Ne!==null&&te(Ne).includes(a)){Z=!0;break}}}}if(!Z)continue}S[T++]=V}}return T===S.length?S:S.slice(0,T)}var Zo=Ui;function Jo(e){return e==="in"||e==="isnull"}function $i(e){if(!Ir(e))return Jo(e.operator)?[e]:null;if(e.logic!=="or")return null;let t=[];for(let u of e.nodes){let r=$i(u);if(!r)return null;t.push(...r)}return t.length>0?t:null}function qi(e,t){if(!e)return null;let u=$i(e);if(!u)return null;let r=[];for(let n of t)u.some(i=>Zo(n.value,i))&&r.push(n.label);return r.length===t.length?null:r}function Qo(e){return e==null||e===""}function Xo(e,t,u){let r=[],n=-1,i,a,l=s=>{n>=0&&s-n>1&&r.push({start:n,end:s-1,length:s-n}),n=-1,a=void 0};for(let s=0;s<e.length;s++){let c=e[s];if(!c||c.kind!=="data"){l(s);continue}let m=c.data,p=t(m);if(Qo(p)){l(s);continue}n>=0&&a!==void 0&&(u?u({value:p,row:m},{value:i,row:a}):Object.is(p,i))||(l(s),n=s,i=p,a=m)}return l(e.length),r}function el(e,t){let u=0,r=e.length-1;for(;u<=r;){let n=u+r>>1,i=e[n];if(t<i.start)r=n-1;else if(t>i.end)u=n+1;else return i}return null}function _i(e,t,u,r=Number.POSITIVE_INFINITY){let n=el(e,t);if(!n)return null;let i=Math.max(n.start,u);if(t!==i)return{role:"covered"};let a=Math.min(n.end,r);return{role:"draw",span:n,drawStart:i,drawEnd:a,clippedAbove:n.start<i,clippedBelow:n.end>a}}function ji(e,t=globalThis){let u=new Map,r=!1,n=i=>{let a=u.get(i);a!==void 0&&(t.clearTimeout(a),u.delete(i))};return{schedule(i,a){if(!r){if(n(i),e<=0){a();return}u.set(i,t.setTimeout(()=>{u.delete(i),r||a()},e))}},cancel:n,cancelAll(){for(let i of u.values())t.clearTimeout(i);u.clear()},dispose(){r=!0;for(let i of u.values())t.clearTimeout(i);u.clear()},isPending(i){return u.has(i)},get pendingCount(){return u.size}}}var tl=30,oi="Other",ul=1e4;function Yi(e){return!e.series.some(t=>t.aggregate==="custom")}function rl(e){return e==null?"":String(e)}var Ue=864e5,nl=60,il=20,Cu=2e3,pr=["day","week","month","quarter","year"],li={day:Ue,week:7*Ue,month:30.44*Ue,quarter:91.31*Ue,year:365.25*Ue};function si(e,t){let u=new Date(e),r=u.getUTCFullYear(),n=u.getUTCMonth();switch(t){case"day":return Date.UTC(r,n,u.getUTCDate());case"week":{let i=Date.UTC(r,n,u.getUTCDate()),a=(new Date(i).getUTCDay()+6)%7;return i-a*Ue}case"month":return Date.UTC(r,n,1);case"quarter":return Date.UTC(r,Math.floor(n/3)*3,1);default:return Date.UTC(r,0,1)}}function di(e,t){let u=new Date(e),r=u.getUTCFullYear(),n=u.getUTCMonth();switch(t){case"day":return e+Ue;case"week":return e+7*Ue;case"month":return Date.UTC(r,n+1,1);case"quarter":return Date.UTC(r,n+3,1);default:return Date.UTC(r+1,0,1)}}var mr=e=>e<10?`0${e}`:String(e);function al(e,t){let u=new Date(e),r=u.getUTCFullYear();switch(t){case"year":return String(r);case"quarter":return`${r}-Q${Math.floor(u.getUTCMonth()/3)+1}`;case"month":return`${r}-${mr(u.getUTCMonth()+1)}`;default:return`${r}-${mr(u.getUTCMonth()+1)}-${mr(u.getUTCDate())}`}}function ol(e){if(!(e>0)||!Number.isFinite(e))return 1;let t=10**Math.floor(Math.log10(e)),u=e/t;return(u<=1?1:u<=2?2:u<=5?5:10)*t}function ll(e,t,u){let r=Number.isFinite(t)&&Number.isFinite(u)?Math.max(0,u-t):0;if(e.kind==="date"){let l=e.unit??"auto",s,c=!1;if(l==="auto")s=pr.find(m=>r/li[m]+1<=nl)??"year";else for(s=l;r/li[s]+1>Cu;){let m=pr[pr.indexOf(s)+1];if(!m)break;s=m,c=!0}return{info:{kind:"date",unit:s,adjusted:c},keyOf:m=>Number.isFinite(m)?si(m,s):Number.NaN,endOf:m=>di(m,s),labelOf:m=>al(m,s),keys:(m,p)=>{let C=[];if(!Number.isFinite(m)||!Number.isFinite(p))return C;for(let g=si(m,s);g<=p&&C.length<Cu;g=di(g,s))C.push(g);return C}}}let n=e.size&&e.size>0?e.size:ol(r/Math.max(1,e.bins??il));(!(n>0)||!Number.isFinite(n))&&(n=1);let i=!1;for(;r/n+1>Cu;)n*=2,i=!0;let a=n;return{info:{kind:"number",size:a,adjusted:i},keyOf:l=>Number.isFinite(l)?Math.floor(l/a)*a:Number.NaN,endOf:l=>l+a,labelOf:l=>{let s=c=>String(Number(c.toPrecision(12)));return`${s(l)} \u2013 ${s(l+a)}`},keys:(l,s)=>{let c=[];if(!Number.isFinite(l)||!Number.isFinite(s))return c;let m=Math.floor(l/a)*a;for(let p=m;p<=s&&c.length<Cu;p+=a)c.push(p);return c}}}function ci(e,t){if(e==null)return Number.NaN;if(e instanceof Date)return e.getTime();if(typeof e=="number")return e;if(t==="number")return Number(e);let u=Number(e);return Number.isNaN(u)?Date.parse(String(e)):u}function gr(e,t,u,r={}){let n=Math.max(1,u.maxCategories??tl),i=u.otherBucket!==!1,a=r.effectiveValue,l=u.series.map(O=>t.getDataType(O.columnId)),s=u.series.some(O=>O.aggregate==="custom"),c=new Map,m=null,p=0,C=0,g=!1,E=(O,z=Number.NaN)=>({label:O,accs:u.series.map((Q,j)=>Mr(Q.columnId,Q.aggregate,l[j],`${j}`)),seq:C++,start:z}),F=u.categoryBucket,S=null,T=Number.POSITIVE_INFINITY,N=Number.NEGATIVE_INFINITY;if(F){for(let O=0;O<e.length;O++){let z=e[O];if(!z||!at(z))continue;let Q=t.getCellValue(z.data,u.categoryColumnId),j=ci(a?a(z.key,u.categoryColumnId,Q):Q,F.kind);Number.isFinite(j)&&(j<T&&(T=j),j>N&&(N=j))}S=ll(F,T,N)}let V=s?new Map:null;for(let O=0;O<e.length;O++){let z=e[O];if(!z||!at(z))continue;p++;let Q=t.getCellValue(z.data,u.categoryColumnId),j=a?a(z.key,u.categoryColumnId,Q):Q,xe,qe,be=Number.NaN;S&&F?(be=S.keyOf(ci(j,F.kind)),xe=Number.isNaN(be)?"":be,qe=Number.isNaN(be)?"":S.labelOf(be)):xe=qe=rl(j);let Ce=c.get(xe);Ce||(c.size>=ul?(g=!0,m??=E(u.otherLabel??oi),Ce=m):(Ce=E(qe,be),c.set(xe,Ce)));for(let le=0;le<u.series.length;le++){let ne=u.series[le];if(ne.aggregate==="custom")continue;let ue=t.getCellValue(z.data,ne.columnId);vu(Ce.accs[le],a?a(z.key,ne.columnId,ue):ue)}if(V){let le=V.get(Ce.label);le||(le=u.series.map(()=>[]),V.set(Ce.label,le));for(let ne=0;ne<u.series.length;ne++){let ue=u.series[ne];if(ue.aggregate!=="custom")continue;let _e=t.getCellValue(z.data,ue.columnId);le[ne].push({row:r.effectiveRow?r.effectiveRow(z.key,z.data):z.data,value:a?a(z.key,ue.columnId,_e):_e})}}}let K=[...c.values()],Z=K.length+(m?1:0),W=O=>(u.series.length>0?xu(O.accs[0]):null)??Number.NEGATIVE_INFINITY,J,fe;if(S){J=S.keys(T,N).map(z=>c.get(z)??E(S.labelOf(z),z));let O=c.get("");O&&J.push(O),fe=null}else{let O=K;if(K.length>n){let z=[...K].sort((Q,j)=>W(j)-W(Q));if(O=z.slice(0,n),i){m??=E(u.otherLabel??oi);for(let Q of z.slice(n))for(let j=0;j<u.series.length;j++)Bo(m.accs[j],Q.accs[j])}}switch(u.categoryOrder??"value-desc"){case"category-asc":O=[...O].sort((z,Q)=>z.label.localeCompare(Q.label));break;case"first-seen":O=[...O].sort((z,Q)=>z.seq-Q.seq);break;default:O=[...O].sort((z,Q)=>W(Q)-W(z))}J=m?[...O,m]:O,fe=m?J.length-1:null}let Ne=J.map(O=>O.label),bt=u.series.map((O,z)=>{let Q=new Float64Array(J.length);for(let j=0;j<J.length;j++){let xe;if(O.aggregate==="custom"){let qe=V?.get(J[j].label)?.[z]??[];xe=O.calculate?O.calculate(qe):null}else xe=xu(J[j].accs[z]);Q[j]=xe??Number.NaN}return{label:O.label??t.getDef(O.columnId)?.headerName??O.columnId,columnId:O.columnId,aggregate:O.aggregate,values:Q}});return{categories:Ne,series:bt,truncated:S?!1:K.length>n||g,otherIndex:fe,rowCount:p,categoryCount:S?J.length:Z,rankingExact:!g,...sl(S,J)}}function sl(e,t){if(!e)return{};let u=new Float64Array(t.length),r=new Float64Array(t.length);for(let n=0;n<t.length;n++){let i=t[n].start;u[n]=i,r[n]=Number.isNaN(i)?Number.NaN:e.endOf(i)}return{bucket:e.info,bucketStarts:u,bucketEnds:r}}function dl(e){if(typeof e=="function")return e;let t=e;return u=>u[t]}function $e(e,t,u){return{kind:"data",key:t,sourceIndex:u,data:e}}var Zi=class{nodes=[];rows=null;invalidate(){this.nodes=[],this.rows=null}invalidateSourceIndex(e){e>=0&&e<this.nodes.length&&(this.nodes[e]=void 0)}rebase(e,t){if(this.rows===null||this.nodes.length!==e.length){this.rows=e,this.nodes=new Array(e.length);return}this.rows=e;for(let u of t)this.invalidateSourceIndex(u)}project(e,t,u){this.rows!==t&&(this.nodes=new Array(t.length),this.rows=t);let r=this.nodes,n=new Array(e.length);for(let i=0;i<e.length;i++){let a=e[i],l=r[a];if(l===void 0){let s=t[a];l=$e(s,u(s),a),r[a]=l}n[i]=l}return n}},cl="\0nil";function hl(e){return e.map(t=>t==null?cl:String(t)).join("")}function hi(){return{key:"",path:[],level:-1,label:"",value:null,count:0,expanded:!0,childCount:0,childCountKnown:!1,blocks:new Map}}function pl(e,t,u){return e.blocks.get(Math.floor(t/u))?.[t%u]}function Su(e,t,u){let r=u?.get(e);if(r!==void 0)return r;let n=e.childCountKnown?e.childCount:1;for(let i of e.blocks.values())for(let a of i)a&&Ot(a)&&a.expanded&&(n+=Su(a,t,u));return u?.set(e,n),n}function Ot(e){return e.kind!=="data"}function pi(e,t){let{blockSize:u,columnIds:r}=t,n=new Map,i=Su(e,u,n),a=t.range?Math.max(0,t.range.start):0,l=t.range?Math.min(i,t.range.end):i,s=new Array(i),c=[],m=new Set,p=0,C=g=>{if(!g.childCountKnown){p>=a&&p<l&&!m.has(`${g.key}@0`)&&(m.add(`${g.key}@0`),c.push({nodeKey:g.key,path:g.path,childIndex:0})),p++;return}for(let E=0;E<g.childCount;E++){if(p>=l)return;let F=pl(g,E,u);if(F===void 0){if(p>=a){let S=`${g.key}@${Math.floor(E/u)}`;m.has(S)||(m.add(S),c.push({nodeKey:g.key,path:g.path,childIndex:E}))}p++;continue}if(!Ot(F)){p>=a&&(s[p]=F),p++;continue}if(p>=a){let S={kind:"group",key:F.key,columnId:r[F.level]??"",value:F.value,label:F.label,count:F.count,level:F.level,expanded:F.expanded,...F.aggregates?{aggregates:F.aggregates}:{}};s[p]=S}if(p++,F.expanded){let S=Su(F,u,n);p+S<=a?p+=S:C(F)}}};return C(e),{nodes:s,pending:c}}var ml=class extends Error{constructor(){super("[datagrid] export cancelled"),this.name="ExportCancelled"}},gl=100,fl=100;function Cl(e,t){return JSON.stringify({sort:e.sort,filter:e.filter,searchText:e.searchText,group:t,summaries:e.summaries})}var mi=class{mode="remote";source;keyGetter;blockSize;maxBlocks;group;groupColumnIds;root=hi();expanded=new Set;onError;debugMode;blocks=new Map;inFlight=new Map;treeInFlight=new Map;currentKey="";generation=0;clock=0;distinctCache=new Map;distinctInFlight=new Map;summaries={};visibleCount=0;totalCount=0;countKnown=!1;disposed=!1;constructor(e,t){this.source=e,this.keyGetter=t.keyGetter,this.blockSize=Math.max(1,t.blockSize??gl),this.maxBlocks=Math.max(1,t.maxBlocks??fl),this.group=t.group,this.groupColumnIds=t.groupColumnIds??[],this.onError=t.onError,this.debugMode=t.debugMode??!1}getTotalCount(){return this.totalCount}invalidate(){this.blocks.clear(),this.inFlight.clear(),this.treeInFlight.clear(),this.resetTree(),this.distinctCache.clear(),this.countKnown=!1,this.generation++}dispose(){this.disposed=!0,this.blocks.clear(),this.inFlight.clear(),this.treeInFlight.clear(),this.distinctCache.clear(),this.distinctInFlight.clear(),this.resetTree()}setGrouping(e,t){this.group=e&&e.length>0?e:void 0,this.groupColumnIds=t,this.resetTree(),this.expanded.clear(),this.generation++}isGrouped(){return(this.group?.length??0)>0}toggleGroupPath(e){let t=this.findNode(e);return t?(t.expanded=!t.expanded,t.expanded?this.expanded.add(e):this.expanded.delete(e),!0):!1}setExpandedPaths(e){this.expanded=new Set(e),this.applyExpansion(this.root)}applyExpansion(e){for(let t of e.blocks.values())for(let u of t)u&&Ot(u)&&(u.expanded=this.expanded.has(u.key),this.applyExpansion(u))}findNode(e,t=this.root){if(t.key===e)return t;for(let u of t.blocks.values())for(let r of u)if(r&&Ot(r)){let n=this.findNode(e,r);if(n)return n}return null}resetTree(){this.root=hi()}async loadAllRows(e,t){if(this.isGrouped())throw new Error("[datagrid] cannot export a server-grouped grid: the rows live in a tree the server expands on demand. Clear the grouping and export the flat result, or produce the file on the server.");let u=[],r=Math.max(1,t.pageSize),n=Number.POSITIVE_INFINITY;for(;u.length<n;){if(t.isCancelled?.()||this.disposed)throw new ml;let i=await this.source.load({skip:u.length,take:r,sort:e.sort,filter:e.filter,searchText:e.searchText});if(n=i.totalCount,n>t.maxRows)throw new Error(`[datagrid] the export would cover ${n.toLocaleString("en-US")} rows, above the ${t.maxRows.toLocaleString("en-US")} limit. Raise \`remote.exportMaxRows\` if the machine can hold that much, narrow the filter, or build the file on the server.`);if(i.rows.length===0)break;for(let a of i.rows)u.push($e(a,this.keyGetter(a),u.length));t.onProgress?.(u.length,n)}return u}patchRows(e){if(e.length===0)return 0;let t=new Map;for(let i of e)t.set(this.keyGetter(i),i);let u=0,r=i=>{for(let a=0;a<i.length;a++){let l=i[a];if(!l)continue;let s=t.get(l.key);s!==void 0&&(i[a]=$e(s,l.key,l.sourceIndex),u++)}};for(let i of this.blocks.values())r(i.nodes);let n=i=>{for(let a of i.blocks.values())for(let l=0;l<a.length;l++){let s=a[l];if(!s)continue;if(Ot(s)){n(s);continue}let c=t.get(s.key);c!==void 0&&(a[l]=$e(c,s.key,s.sourceIndex),u++)}};return n(this.root),u}getSummaries(){return this.summaries}supportsDistinctValues(){return typeof this.source.loadDistinctValues=="function"}async loadDistinctValues(e,t){let u=this.source.loadDistinctValues;if(!u)return[];let r=`${e}@${t}`,n=this.distinctCache.get(r);if(n)return n;let i=this.distinctInFlight.get(r);if(i)return i;let a=this.generation,l=u.call(this.source,{columnId:e,limit:t}).then(s=>(!this.disposed&&a===this.generation&&this.distinctCache.set(r,s),s)).catch(s=>(this.onError?.(s),this.debugMode&&console.error("[datagrid] loadDistinctValues failed",s),[])).finally(()=>{this.distinctInFlight.delete(r)});return this.distinctInFlight.set(r,l),l}async getRows(e,t){let u=Cl(t,this.group);if(u!==this.currentKey&&(this.currentKey=u,this.blocks.clear(),this.inFlight.clear(),this.treeInFlight.clear(),this.resetTree(),this.countKnown=!1,this.summaries={},this.generation++),this.isGrouped())return this.getGroupedRows(t);this.countKnown||await this.fetchBlock(0,t);let r=t.range??{start:0,end:this.blockSize},n=Math.max(0,Math.floor(r.start/this.blockSize)),i=Math.max(n,Math.floor(Math.max(0,r.end-1)/this.blockSize)),a=[];for(let l=n;l<=i;l++)this.blocks.has(l)?this.blocks.get(l).touched=++this.clock:a.push(l);return a.length>0&&await Promise.all(a.map(l=>this.fetchBlock(l,t))),this.snapshot()}async getGroupedRows(e){let t=e.range,u=(this.group?.length??0)+2;for(let i=0;i<u;i++){if(!this.root.childCountKnown){await this.loadChildren(this.root,0,e);continue}let{pending:a}=pi(this.root,{blockSize:this.blockSize,columnIds:this.groupColumnIds,range:t});if(a.length===0)break;await Promise.all(a.map(l=>{let s=this.findNode(l.nodeKey);return s?this.loadChildren(s,l.childIndex,e):Promise.resolve()}))}let{nodes:r}=pi(this.root,{blockSize:this.blockSize,columnIds:this.groupColumnIds,range:t}),n=Su(this.root,this.blockSize);return this.visibleCount=n,{nodes:r,visibleCount:n,totalCount:this.totalCount}}loadChildren(e,t,u){let r=Math.floor(t/this.blockSize);if(e.blocks.has(r))return Promise.resolve();let n=`${e.key}@${r}`,i=this.treeInFlight.get(n);if(i)return i;let a=this.loadChildrenBlock(e,r,u).finally(()=>{this.treeInFlight.get(n)===a&&this.treeInFlight.delete(n)});return this.treeInFlight.set(n,a),a}async loadChildrenBlock(e,t,u){let r=this.generation,n=this.group?.length??0,i=e.path.length>=n,a={skip:t*this.blockSize,take:this.blockSize,sort:u.sort,filter:u.filter,searchText:u.searchText,group:this.group,groupKeys:[...e.path],...e.path.length===0?{summaries:u.summaries}:{}};try{let l=await this.source.load(a);if(this.disposed||r!==this.generation)return;l.summaries&&(this.summaries=l.summaries);let s=t*this.blockSize,c=i?l.rows.map((m,p)=>$e(m,this.keyGetter(m),s+p)):(l.groups??[]).map(m=>{let p=[...e.path,m.value],C=hl(p);return{key:C,path:p,level:e.level+1,label:m.label??(m.value==null?"":String(m.value)),value:m.value,count:m.count,...m.aggregates?{aggregates:m.aggregates}:{},expanded:this.expanded.has(C),childCount:0,childCountKnown:!1,blocks:new Map}});e.blocks.set(t,c),e.childCount=l.totalCount,e.childCountKnown=!0,e===this.root&&(this.totalCount=l.totalCount,this.countKnown=!0)}catch(l){this.debugMode&&console.error("[datagrid] remote group load failed",e.key,l),this.onError?.(l)}}snapshot(){let e=new Array(this.visibleCount);for(let[t,u]of this.blocks){let r=t*this.blockSize;for(let n=0;n<u.nodes.length;n++){let i=r+n;i<this.visibleCount&&(e[i]=u.nodes[n])}}return{nodes:e,visibleCount:this.visibleCount,totalCount:this.totalCount}}fetchBlock(e,t){if(this.disposed||this.blocks.has(e))return Promise.resolve();let u=this.inFlight.get(e);if(u)return u;let r=this.loadBlock(e,t).finally(()=>{this.inFlight.get(e)===r&&this.inFlight.delete(e)});return this.inFlight.set(e,r),r}async loadBlock(e,t){let u=this.generation,r={skip:e*this.blockSize,take:this.blockSize,sort:t.sort,filter:t.filter,searchText:t.searchText,group:this.group,summaries:t.summaries};try{let n=await this.source.load(r);if(this.disposed||u!==this.generation)return;n.summaries&&(this.summaries=n.summaries);let i=e*this.blockSize,a=n.rows.map((l,s)=>$e(l,this.keyGetter(l),i+s));this.blocks.set(e,{nodes:a,touched:++this.clock}),this.evict(),this.visibleCount=n.totalCount,this.totalCount=n.totalCount,this.countKnown=!0}catch(n){this.debugMode&&console.error("[datagrid] remote block load failed",e,n),this.onError?.(n)}}evict(){if(this.blocks.size<=this.maxBlocks)return;let e=[...this.blocks.entries()].sort((u,r)=>u[1].touched-r[1].touched),t=this.blocks.size-this.maxBlocks;for(let u=0;u<t;u++)this.blocks.delete(e[u][0])}};var wl=e=>`__detail__${String(e)}`;function yl(e,t){let{expandedKeys:u,expandedByDefault:r=!1}=t,n=Math.max(1,t.height);if(!r&&u.size===0)return e;let i=r?e.length:u.size,a=new Array(e.length+i),l=0;for(let s of e)a[l++]=s,!(s.kind!=="data"||!(r?!u.has(s.key):u.has(s.key)))&&(a[l++]={kind:"detail",key:wl(s.key),parentKey:s.key,data:s.data,height:n});return a.length=l,a}var gi=e=>e===null?"__editform__new":`__editform__${String(e)}`;function El(e,t){let{rowKey:u,atTop:r=!1}=t;if(u===null)return e;let n=Math.max(1,t.height),i=e.findIndex(s=>s.kind==="data"&&s.key===u);if(r)return[{kind:"editform",key:gi(u),parentKey:u,data:i<0?void 0:e[i].data,height:n},...e];if(i<0)return e;let a={kind:"editform",key:gi(u),parentKey:u,data:e[i].data,height:n},l=new Array(e.length+1);for(let s=0;s<=i;s++)l[s]=e[s];l[i+1]=a;for(let s=i+1;s<e.length;s++)l[s+1]=e[s];return l}var Al=class{base;overrides=new Map;idx=[];size=[];top=[];cum=[];dirty=!1;constructor(e=28){this.base=Math.max(1,e)}isUniform(){return this.overrides.size===0}getBase(){return this.base}setBase(e){let t=Math.max(1,e);return t===this.base?!1:(this.base=t,this.dirty=!0,!0)}setOverrides(e){let t=new Map;if(e)for(let[u,r]of e){if(!Number.isInteger(u)||u<0)continue;let n=Math.max(0,r);n!==this.base&&t.set(u,n)}if(t.size===this.overrides.size){let u=!0;for(let[r,n]of t)if(this.overrides.get(r)!==n){u=!1;break}if(u)return!1}return this.overrides=t,this.dirty=!0,!0}clearOverrides(){return this.setOverrides(null)}getOverrides(){return this.overrides}heightOf(e){return this.overrides.get(e)??this.base}offsetOf(e){let t=Math.max(0,e);if(this.overrides.size===0)return t*this.base;this.rebuild();let u=fi(this.idx,t);return t*this.base+(u===0?0:this.cum[u-1])}totalHeight(e){let t=Math.max(0,e);if(this.overrides.size===0)return t*this.base;this.rebuild();let u=fi(this.idx,t);return t*this.base+(u===0?0:this.cum[u-1])}indexAt(e){let t=Math.max(0,e);if(this.overrides.size===0)return Math.floor(t/this.base);this.rebuild();let u=bl(this.top,t);if(u<0)return Math.floor(t/this.base);let r=this.top[u]+this.size[u];return t<r?this.idx[u]:this.idx[u]+1+Math.floor((t-r)/this.base)}rebuild(){if(!this.dirty)return;this.dirty=!1;let e=this.overrides.size;if(this.idx=new Array(e),this.size=new Array(e),this.top=new Array(e),this.cum=new Array(e),e===0)return;let t=0;for(let r of this.overrides.keys())this.idx[t++]=r;this.idx.sort((r,n)=>r-n);let u=0;for(let r=0;r<e;r++){let n=this.idx[r],i=this.overrides.get(n);this.size[r]=i,this.top[r]=n*this.base+u,u+=i-this.base,this.cum[r]=u}}};function fi(e,t){let u=0,r=e.length;for(;u<r;){let n=u+r>>>1;e[n]<t?u=n+1:r=n}return u}function bl(e,t){let u=0,r=e.length-1,n=-1;for(;u<=r;){let i=u+r>>>1;e[i]<=t?(n=i,u=i+1):r=i-1}return n}var vl=class{handlers={};on(e,t){let u=this.handlers[e]??new Set;return u.add(t),this.handlers[e]=u,()=>this.off(e,t)}off(e,t){this.handlers[e]?.delete(t)}emit(e,t){let u=this.handlers[e];u&&u.forEach(r=>r(t))}clear(){this.handlers={}}};var fr=["tr","en","de","fr","es","it","pt","ru","ar","zh-CN","ja","ko"];function xl(e){if(!e)return;if(fr.includes(e))return e;let t=e.toLowerCase(),u=fr.find(n=>n.toLowerCase()===t);if(u)return u;if(t.startsWith("zh"))return"zh-CN";let r=t.split("-")[0];return fr.find(n=>n.toLowerCase()===r)}function Dl(e,t,u,r){let n=xl(u),i=n?e[n]:void 0;return!i&&!r?t:{...t,...i,...r}}var Ji={ok:"OK",cancel:"Cancel",apply:"Apply",close:"Close",clear:"Clear",save:"Save",search:"Search\u2026",selectAll:"Select all",showAll:"Show all",remove:"Remove",none:"None",toolbarSearch:"Search\u2026",exportMenu:"Export",exportCsv:"Export to CSV",exportExcel:"Export all data to Excel",exportExcelSelected:"Export selected rows to Excel",exportPdf:"Export to PDF",exporting:"Exporting\u2026",columns:"Columns",hiddenColumns:"Hidden columns",noHiddenColumns:"No hidden columns.",sortAsc:"Sort A \u2192 Z",sortDesc:"Sort Z \u2192 A",clearSort:"Clear sorting",groupByColumn:"Group by this column",ungroupColumn:"Remove from grouping",showGroupPanel:"Show group panel",hideGroupPanel:"Hide group panel",showFooter:"Show footer",hideFooter:"Hide footer",showGroupFooters:"Show group footers",hideGroupFooters:"Hide group footers",hideColumn:"Hide this column",fieldChooser:"Field chooser\u2026",bestFit:"Best fit",bestFitAll:"Best fit (all columns)",fixedPosition:"Set fixed position",pinLeft:"Left",pinRight:"Right",pinSticky:"Sticky",unpin:"Unfix",moveLeft:"Move to the left",moveRight:"Move to the right",filterPlaceholder:"Filter\u2026",filterColumnAria:"Filter {column}",filterSelectAll:"Select all",filterBlank:"(Blanks)",filterNoMatch:"No matching values",filterLoading:"Loading values\u2026",filterTruncated:"Showing the first values only \u2014 search to find the rest.",filterRemove:"Remove the filter",filterToggle:"Apply the filter",filterEditBuilder:"Edit the filter",filterNone:"No filter",filterActive:"Filter active",opEquals:"is",opNotEquals:"is not",opGreater:">",opGreaterOrEqual:"\u2265",opLess:"<",opLessOrEqual:"\u2264",opContains:"contains",opNotContains:"does not contain",opStartsWith:"starts with",opEndsWith:"ends with",opIsBlank:"is blank",opIsNotBlank:"is not blank",opIsOneOf:"is one of",opIsBetween:"is between",opValuesCount:"{n} values",filterAnd:"AND",filterOr:"OR",builderTitle:"Filter builder",builderCombine:"Combine conditions with",builderAddCondition:"Add condition",builderAddGroup:"Add group",builderRemoveGroup:"Remove group",builderRemoveCondition:"Remove condition",builderEmpty:"No conditions yet.",builderColumn:"Column",builderOperator:"Operator",builderValue:"Value",builderValueFrom:"From",builderValueTo:"To",builderValuePlaceholder:"Enter a value",groupPanelHint:"Drag a column here to group by it",groupAddLevel:"Add grouping level",groupAddLevelButton:"+ Add level\u2026",groupNoGrouping:"(no grouping)",groupLevelAria:"Grouping level {n}",groupRemoveAria:"Remove {column}",pagerFirst:"First page",pagerPrevious:"Previous page",pagerNext:"Next page",pagerLast:"Last page",pagerPage:"Page",pagerOf:"of",pagerRowsPerPage:"Rows per page",pagerAria:"Pagination",selectAllRows:"Select all rows",selectRowAria:"Select row {row}",summaryAria:"Summary",columnTotalsAria:"Column totals",rowActions:"Row actions",detailsAria:"Details",rowNumberAria:"Row number",noteEditorAria:"Cell note",notePlaceholder:"Write a note about this cell\u2026",addNote:"Add note\u2026",editNote:"Edit note\u2026",deleteNote:"Delete note",expandDetails:"Expand details",collapseDetails:"Collapse details",dragToReorder:"Drag to reorder",menuCopy:"Copy",menuCopyWithHeaders:"Copy with headers",menuCopyWithGroupHeaders:"Copy with group headers",menuCut:"Cut",menuPaste:"Paste",menuExport:"Export",menuChartRange:"Chart selected columns",statsSum:"Sum",statsCount:"Count",statsAvg:"Average",statsMin:"Min",statsMax:"Max",statsCells:"Cells",statsTooLarge:"Selection too large to total",statusRows:"Rows",statusFiltered:"Filtered",statusSelected:"Selected",summaryRows:"rows",announceRows:"{n} rows",announceSortedBy:"sorted by {columns}",announceSelected:"{n} selected",announceAscending:"ascending",announceDescending:"descending",sideFilters:"Filters",sideBarAria:"Tool panels",sideClearFilters:"Clear all filters",summarySum:"Sum",summaryAvg:"Avg",summaryMin:"Min",summaryMax:"Max",summaryCount:"Count",summaryDistinct:"Distinct",summaryCustom:"Custom",noTotal:"No total",busy:"Working\u2026",busyLoading:"Loading rows\u2026",busyEncoding:"Preparing data\u2026",busyFiltering:"Filtering rows\u2026",busySorting:"Sorting rows\u2026",busyComputing:"Filtering and sorting\u2026",busyGrouping:"Building groups\u2026",busyAggregating:"Calculating totals\u2026",busyProjecting:"Updating the view\u2026",busyExporting:"Building the file\u2026",noData:"No data",editNewRow:"New row",editSaveChanges:"Save changes",editDiscardChanges:"Discard changes",editRow:"Edit row",editRowMenu:"Edit row\u2026",editDeleteRow:"Delete row",editUndoDelete:"Undo delete",editActions:"Actions",editSaveRow:"Save row",editSaving:"Saving\u2026",editEditingRow:"Editing row {row}",editSaveCount:"Save {n} row(s)",editCannotSave:"Cannot save",editSaveFailed:"Could not save the changes.",editDeleteConfirm:"Delete this row?",editAddRowUndo:"Add row",editDeleteRowUndo:"Delete row",editCellUndo:"Edit {column}",editFillUndo:"Fill {count} cells",editPasteUndo:"Paste {count} cells",editCutUndo:"Cut {count} cells",editNoMatch:"No match",formEditTitle:"Edit row",formAddTitle:"New row",formShortcut:"{key}+Enter to save \xB7 Esc to cancel",validationRequired:"This field is required",validationNumber:"Must be a number",validationFormat:"Invalid format",validationEmail:"Invalid email address",validationInvalid:"Invalid value",dateCalendar:"Calendar",dateOpenCalendar:"Open calendar",datePreviousMonth:"Previous month",dateNextMonth:"Next month",monthJanuary:"January",monthFebruary:"February",monthMarch:"March",monthApril:"April",monthMay:"May",monthJune:"June",monthJuly:"July",monthAugust:"August",monthSeptember:"September",monthOctober:"October",monthNovember:"November",monthDecember:"December",weekStartsOn:"0",weekdaySu:"Su",weekdayMo:"Mo",weekdayTu:"Tu",weekdayWe:"We",weekdayTh:"Th",weekdayFr:"Fr",weekdaySa:"Sa",importTitle:"Import data",importStepSource:"1. Source",importStepMap:"2. Map columns",importFile:"CSV file",importPaste:"\u2026or paste rows",importSeparator:"Separator",importSeparatorAuto:"Detect automatically",importSeparatorComma:"Comma ,",importSeparatorSemicolon:"Semicolon ;",importSeparatorTab:"Tab",importSeparatorPipe:"Pipe |",importFileColumn:"File column",importDetected:"Detected",importGridColumn:"Grid column",importSample:"Sample",importSkip:"\u2014 skip \u2014",importPreview:"Preview",importNoSource:"Choose a file or paste some rows first.",importNoRows:"No data rows were found.",importAction:"Import",exportAborted:"Export aborted",exportSheetName:"Data",chart:"Chart",chartCategory:"Category",chartSeries:"Series",chartAddSeries:"Add series",chartRemoveSeries:"Remove",chartSource:"Data",chartSourceView:"Filtered rows",chartSourceSelection:"Selected rows",chartSourceAll:"All rows",chartClose:"Close chart",chartFullscreen:"Fullscreen",chartExitFullscreen:"Exit fullscreen",chartExportPng:"PNG",chartExportSvg:"SVG",chartExportFailed:"The chart could not be exported.",chartCrossFiltered:"The grid is filtered to {value}.",chartBlankCategory:"(blank)",chartTruncated:'Showing the top {n} categories; the rest are grouped as "Other".',chartOther:"Other",chartEmpty:"Nothing to chart yet.",chartNeedsRecharts:"Charts need the optional peer `recharts`. Install it to draw them.",chartOnlyOneSeries:"This chart type shows one series.",chartByColumn:"Chart by this column",chartGroupBy:"By",chartGroupNone:"Each value",chartGroupAuto:"Auto",chartGroupDay:"Day",chartGroupWeek:"Week",chartGroupMonth:"Month",chartGroupQuarter:"Quarter",chartGroupYear:"Year",chartGroupBins:"{n} bins",chartBucketAdjusted:"Too many intervals for one axis \u2014 grouped more coarsely.",chartWindowed:"Showing {shown} of {total}.",chartShowAll:"Show all",chartCanvasHint:"Chart. Scroll to zoom, drag to pan, arrow keys to move, 0 to show all.",chartAggSum:"Sum",chartAggAvg:"Average",chartAggMin:"Min",chartAggMax:"Max",chartAggCount:"Count",chartAggDistinct:"Distinct",chartTypeColumn:"Column",chartTypeBar:"Bar",chartTypeLine:"Line",chartTypeArea:"Area",chartTypePie:"Pie",chartTypeDonut:"Donut",licenseMissing:"Unlicensed",licenseExpired:"License expired",licenseReleaseNotCovered:"This version is not covered by the license",licenseDomainMismatch:"License not valid for this domain",licenseRevoked:"License revoked",licenseInvalidFormat:"Malformed license key",licenseInvalidSignature:"Invalid license signature",licenseEngineUnavailable:"Browser cannot verify the license (HTTPS required)"},Fl={ok:"Tamam",cancel:"\u0130ptal",apply:"Uygula",close:"Kapat",clear:"Temizle",save:"Kaydet",search:"Ara...",selectAll:"T\xFCm\xFCn\xFC Se\xE7",showAll:"T\xFCm\xFCn\xFC g\xF6ster",remove:"Kald\u0131r",none:"Yok",toolbarSearch:"Ara...",exportMenu:"D\u0131\u015Fa Aktar",exportCsv:"CSV'ye aktar",exportExcel:"T\xFCm veriyi Excel'e aktar",exportExcelSelected:"Se\xE7ili sat\u0131rlar\u0131 Excel'e aktar",exportPdf:"PDF'e aktar",exporting:"D\u0131\u015Fa aktar\u0131l\u0131yor\u2026",columns:"S\xFCtunlar",hiddenColumns:"Gizli s\xFCtunlar",noHiddenColumns:"Gizli s\xFCtun yok.",sortAsc:"A'dan Z'ye S\u0131rala",sortDesc:"Z'den A'ya S\u0131rala",clearSort:"S\u0131ralamay\u0131 Temizle",groupByColumn:"Bu s\xFCtuna g\xF6re grupla",ungroupColumn:"Gruplamadan \xE7\u0131kar",showGroupPanel:"Gruplama panelini g\xF6ster",hideGroupPanel:"Gruplama panelini gizle",showFooter:"Alt bilgiyi g\xF6ster",hideFooter:"Alt bilgiyi gizle",showGroupFooters:"Grup alt bilgilerini g\xF6ster",hideGroupFooters:"Grup alt bilgilerini gizle",hideColumn:"Bu s\xFCtunu gizle",fieldChooser:"Alan se\xE7ici\u2026",bestFit:"En uygun geni\u015Flik",bestFitAll:"En uygun geni\u015Flik (t\xFCm s\xFCtunlar)",fixedPosition:"Sabit konum ayarla",pinLeft:"Sol",pinRight:"Sa\u011F",pinSticky:"Yap\u0131\u015Fkan",unpin:"Sabitlemeyi kald\u0131r",moveLeft:"Sola ta\u015F\u0131",moveRight:"Sa\u011Fa ta\u015F\u0131",filterPlaceholder:"Filtrele\u2026",filterColumnAria:"{column} filtrele",filterSelectAll:"T\xFCm\xFCn\xFC se\xE7",filterBlank:"(Bo\u015Flar)",filterNoMatch:"E\u015Fle\u015Fen de\u011Fer yok",filterLoading:"De\u011Ferler y\xFCkleniyor\u2026",filterTruncated:"Yaln\u0131zca ilk de\u011Ferler g\xF6steriliyor \u2014 kalan\u0131n\u0131 bulmak i\xE7in aray\u0131n.",filterRemove:"Filtreyi kald\u0131r",filterToggle:"Filtreyi uygula",filterEditBuilder:"Filtreyi d\xFCzenle",filterNone:"Filtre yok",filterActive:"Filtre etkin",opEquals:"e\u015Fittir",opNotEquals:"e\u015Fit de\u011Fildir",opGreater:">",opGreaterOrEqual:"\u2265",opLess:"<",opLessOrEqual:"\u2264",opContains:"i\xE7erir",opNotContains:"i\xE7ermez",opStartsWith:"ile ba\u015Flar",opEndsWith:"ile biter",opIsBlank:"bo\u015Ftur",opIsNotBlank:"bo\u015F de\u011Fildir",opIsOneOf:"\u015Funlardan biridir",opIsBetween:"aras\u0131ndad\u0131r",opValuesCount:"{n} de\u011Fer",filterAnd:"VE",filterOr:"VEYA",builderTitle:"Filtre olu\u015Fturucu",builderCombine:"Ko\u015Fullar\u0131 \u015Fununla birle\u015Ftir",builderAddCondition:"Ko\u015Ful ekle",builderAddGroup:"Grup ekle",builderRemoveGroup:"Grubu kald\u0131r",builderRemoveCondition:"Ko\u015Fulu kald\u0131r",builderEmpty:"Hen\xFCz ko\u015Ful yok.",builderColumn:"S\xFCtun",builderOperator:"Operat\xF6r",builderValue:"De\u011Fer",builderValueFrom:"Ba\u015Flang\u0131\xE7",builderValueTo:"Biti\u015F",builderValuePlaceholder:"Bir de\u011Fer girin",groupPanelHint:"Gruplamak i\xE7in buraya bir s\xFCtun s\xFCr\xFCkleyin",groupAddLevel:"Gruplama d\xFCzeyi ekle",groupAddLevelButton:"+ D\xFCzey ekle\u2026",groupNoGrouping:"(gruplama yok)",groupLevelAria:"{n}. gruplama d\xFCzeyi",groupRemoveAria:"{column} kald\u0131r",pagerFirst:"\u0130lk sayfa",pagerPrevious:"\xD6nceki sayfa",pagerNext:"Sonraki sayfa",pagerLast:"Son sayfa",pagerPage:"Sayfa",pagerOf:"/",pagerRowsPerPage:"Sayfa ba\u015F\u0131na sat\u0131r",pagerAria:"Sayfalama",selectAllRows:"T\xFCm sat\u0131rlar\u0131 se\xE7",selectRowAria:"{row} numaral\u0131 sat\u0131r\u0131 se\xE7",summaryAria:"\xD6zet",columnTotalsAria:"S\xFCtun toplamlar\u0131",rowActions:"Sat\u0131r i\u015Flemleri",detailsAria:"Ayr\u0131nt\u0131lar",rowNumberAria:"Sat\u0131r numaras\u0131",noteEditorAria:"H\xFCcre notu",notePlaceholder:"Bu h\xFCcre hakk\u0131nda bir not yaz\u0131n\u2026",addNote:"Not ekle\u2026",editNote:"Notu d\xFCzenle\u2026",deleteNote:"Notu sil",expandDetails:"Ayr\u0131nt\u0131lar\u0131 geni\u015Flet",collapseDetails:"Ayr\u0131nt\u0131lar\u0131 daralt",dragToReorder:"S\u0131ralamak i\xE7in s\xFCr\xFCkleyin",menuCopy:"Kopyala",menuCopyWithHeaders:"Ba\u015Fl\u0131klarla kopyala",menuCopyWithGroupHeaders:"Grup ba\u015Fl\u0131klar\u0131yla kopyala",menuCut:"Kes",menuPaste:"Yap\u0131\u015Ft\u0131r",menuExport:"D\u0131\u015Fa aktar",menuChartRange:"Se\xE7ili s\xFCtunlar\u0131 grafi\u011Fe d\xF6k",statsSum:"Toplam",statsCount:"Say",statsAvg:"Ortalama",statsMin:"Min",statsMax:"Max",statsCells:"H\xFCcre",statsTooLarge:"Se\xE7im toplanamayacak kadar b\xFCy\xFCk",statusRows:"Sat\u0131r",statusFiltered:"Filtreli",statusSelected:"Se\xE7ili",summaryRows:"sat\u0131r",announceRows:"{n} sat\u0131r",announceSortedBy:"{columns} ile s\u0131ral\u0131",announceSelected:"{n} se\xE7ili",announceAscending:"artan",announceDescending:"azalan",sideFilters:"Filtreler",sideBarAria:"Ara\xE7 panelleri",sideClearFilters:"T\xFCm filtreleri temizle",summarySum:"Toplam",summaryAvg:"Ortalama",summaryMin:"Min",summaryMax:"Max",summaryCount:"Say",summaryDistinct:"Benzersiz",summaryCustom:"\xD6zel",noTotal:"Toplam yok",busy:"\xC7al\u0131\u015F\u0131yor\u2026",busyLoading:"Sat\u0131rlar y\xFCkleniyor\u2026",busyEncoding:"Veri haz\u0131rlan\u0131yor\u2026",busyFiltering:"Sat\u0131rlar filtreleniyor\u2026",busySorting:"Sat\u0131rlar s\u0131ralan\u0131yor\u2026",busyComputing:"Filtreleniyor ve s\u0131ralan\u0131yor\u2026",busyGrouping:"Gruplar olu\u015Fturuluyor\u2026",busyAggregating:"Toplamlar hesaplan\u0131yor\u2026",busyProjecting:"G\xF6r\xFCn\xFCm g\xFCncelleniyor\u2026",busyExporting:"Dosya olu\u015Fturuluyor\u2026",noData:"Veri Bulunamad\u0131",editNewRow:"Yeni sat\u0131r",editSaveChanges:"De\u011Fi\u015Fiklikleri kaydet",editDiscardChanges:"De\u011Fi\u015Fiklikleri iptal et",editRow:"Sat\u0131r\u0131 d\xFCzenle",editRowMenu:"Sat\u0131r\u0131 d\xFCzenle\u2026",editDeleteRow:"Sat\u0131r\u0131 sil",editUndoDelete:"Silmeyi geri al",editActions:"Aksiyonlar",editSaveRow:"Sat\u0131r\u0131 kaydet",editSaving:"Kaydediliyor\u2026",editEditingRow:"{row} numaral\u0131 sat\u0131r d\xFCzenleniyor",editSaveCount:"{n} sat\u0131r\u0131 kaydet",editCannotSave:"Kaydedilemiyor",editSaveFailed:"De\u011Fi\u015Fiklikler kaydedilemedi.",editDeleteConfirm:"Bu sat\u0131r silinsin mi?",editAddRowUndo:"Sat\u0131r ekle",editDeleteRowUndo:"Sat\u0131r sil",editCellUndo:"{column} d\xFCzenle",editFillUndo:"{count} h\xFCcre doldur",editPasteUndo:"{count} h\xFCcre yap\u0131\u015Ft\u0131r",editCutUndo:"{count} h\xFCcre kes",editNoMatch:"E\u015Fle\u015Fme yok",formEditTitle:"Sat\u0131r\u0131 d\xFCzenle",formAddTitle:"Yeni sat\u0131r",formShortcut:"Kaydetmek i\xE7in {key}+Enter \xB7 \u0130ptal i\xE7in Esc",validationRequired:"Bu alan zorunludur",validationNumber:"Say\u0131 olmal\u0131d\u0131r",validationFormat:"Ge\xE7ersiz bi\xE7im",validationEmail:"Ge\xE7ersiz e-posta adresi",validationInvalid:"Ge\xE7ersiz de\u011Fer",dateCalendar:"Takvim",dateOpenCalendar:"Takvimi a\xE7",datePreviousMonth:"\xD6nceki ay",dateNextMonth:"Sonraki ay",monthJanuary:"Ocak",monthFebruary:"\u015Eubat",monthMarch:"Mart",monthApril:"Nisan",monthMay:"May\u0131s",monthJune:"Haziran",monthJuly:"Temmuz",monthAugust:"A\u011Fustos",monthSeptember:"Eyl\xFCl",monthOctober:"Ekim",monthNovember:"Kas\u0131m",monthDecember:"Aral\u0131k",weekStartsOn:"1",weekdaySu:"Pz",weekdayMo:"Pt",weekdayTu:"Sa",weekdayWe:"\xC7a",weekdayTh:"Pe",weekdayFr:"Cu",weekdaySa:"Ct",importTitle:"Veri i\xE7e aktar",importStepSource:"1. Kaynak",importStepMap:"2. S\xFCtun e\u015Fleme",importFile:"CSV dosyas\u0131",importPaste:"\u2026veya sat\u0131rlar\u0131 yap\u0131\u015Ft\u0131r\u0131n",importSeparator:"Ay\u0131r\u0131c\u0131",importSeparatorAuto:"Otomatik alg\u0131la",importSeparatorComma:"Virg\xFCl ,",importSeparatorSemicolon:"Noktal\u0131 virg\xFCl ;",importSeparatorTab:"Sekme",importSeparatorPipe:"Dikey \xE7izgi |",importFileColumn:"Dosya s\xFCtunu",importDetected:"Alg\u0131lanan",importGridColumn:"Tablo s\xFCtunu",importSample:"\xD6rnek",importSkip:"\u2014 atla \u2014",importPreview:"\xD6nizleme",importNoSource:"\xD6nce bir dosya se\xE7in veya sat\u0131r yap\u0131\u015Ft\u0131r\u0131n.",importNoRows:"Veri sat\u0131r\u0131 bulunamad\u0131.",importAction:"\u0130\xE7e aktar",exportAborted:"D\u0131\u015Fa aktarma iptal edildi",exportSheetName:"Veri",chart:"Grafik",chartCategory:"Kategori",chartSeries:"Seri",chartAddSeries:"Seri ekle",chartRemoveSeries:"Kald\u0131r",chartSource:"Veri",chartSourceView:"Filtrelenmi\u015F sat\u0131rlar",chartSourceSelection:"Se\xE7ili sat\u0131rlar",chartSourceAll:"T\xFCm sat\u0131rlar",chartClose:"Grafi\u011Fi kapat",chartFullscreen:"Tam ekran",chartExitFullscreen:"Tam ekrandan \xE7\u0131k",chartExportPng:"PNG",chartExportSvg:"SVG",chartExportFailed:"Grafik d\u0131\u015Fa aktar\u0131lamad\u0131.",chartCrossFiltered:"Tablo {value} de\u011Ferine filtrelendi.",chartBlankCategory:"(bo\u015F)",chartTruncated:'En y\xFCksek {n} kategori g\xF6steriliyor; kalanlar "Di\u011Fer" alt\u0131nda topland\u0131.',chartOther:"Di\u011Fer",chartEmpty:"Hen\xFCz grafi\u011Fe d\xF6k\xFClecek bir \u015Fey yok.",chartNeedsRecharts:"Grafikler iste\u011Fe ba\u011Fl\u0131 `recharts` paketini gerektirir. \xC7izmek i\xE7in kurun.",chartOnlyOneSeries:"Bu grafik t\xFCr\xFC tek seri g\xF6sterir.",chartByColumn:"Bu s\xFCtuna g\xF6re grafik",chartGroupBy:"\u015Euna g\xF6re",chartGroupNone:"Her de\u011Fer",chartGroupAuto:"Otomatik",chartGroupDay:"G\xFCn",chartGroupWeek:"Hafta",chartGroupMonth:"Ay",chartGroupQuarter:"\xC7eyrek",chartGroupYear:"Y\u0131l",chartGroupBins:"{n} aral\u0131k",chartBucketAdjusted:"Bir eksen i\xE7in fazla aral\u0131k \u2014 daha kaba grupland\u0131.",chartWindowed:"{total} i\xE7inden {shown} g\xF6steriliyor.",chartShowAll:"T\xFCm\xFCn\xFC g\xF6ster",chartCanvasHint:"Grafik. Yak\u0131nla\u015Ft\u0131rmak i\xE7in kayd\u0131r\u0131n, kayd\u0131rmak i\xE7in s\xFCr\xFCkleyin, ok tu\u015Flar\u0131yla gezinin, t\xFCm\xFC i\xE7in 0.",chartAggSum:"Toplam",chartAggAvg:"Ortalama",chartAggMin:"Min",chartAggMax:"Max",chartAggCount:"Say",chartAggDistinct:"Benzersiz",chartTypeColumn:"S\xFCtun",chartTypeBar:"\xC7ubuk",chartTypeLine:"\xC7izgi",chartTypeArea:"Alan",chartTypePie:"Pasta",chartTypeDonut:"Halka",licenseMissing:"Lisanss\u0131z",licenseExpired:"Lisans\u0131n s\xFCresi dolmu\u015F",licenseReleaseNotCovered:"Bu s\xFCr\xFCm lisans kapsam\u0131nda de\u011Fil",licenseDomainMismatch:"Lisans bu alan ad\u0131 i\xE7in ge\xE7erli de\u011Fil",licenseRevoked:"Lisans iptal edilmi\u015F",licenseInvalidFormat:"Lisans anahtar\u0131 hatal\u0131",licenseInvalidSignature:"Lisans imzas\u0131 ge\xE7ersiz",licenseEngineUnavailable:"Taray\u0131c\u0131 lisans\u0131 do\u011Frulayam\u0131yor (HTTPS gerekli)"},Sl={ok:"OK",cancel:"Abbrechen",apply:"Anwenden",close:"Schlie\xDFen",clear:"L\xF6schen",save:"Speichern",search:"Suchen...",selectAll:"Alles ausw\xE4hlen",showAll:"Alle anzeigen",remove:"Entfernen",none:"Keine",toolbarSearch:"Suchen...",exportMenu:"Exportieren",exportCsv:"Als CSV exportieren",exportExcel:"Alle Daten nach Excel exportieren",exportExcelSelected:"Ausgew\xE4hlte Zeilen nach Excel exportieren",exportPdf:"Als PDF exportieren",exporting:"Wird exportiert\u2026",columns:"Spalten",hiddenColumns:"Ausgeblendete Spalten",noHiddenColumns:"Keine ausgeblendeten Spalten.",sortAsc:"Sortieren A \u2192 Z",sortDesc:"Sortieren Z \u2192 A",clearSort:"Sortierung l\xF6schen",groupByColumn:"Nach dieser Spalte gruppieren",ungroupColumn:"Aus Gruppierung entfernen",showGroupPanel:"Gruppierungsbereich anzeigen",hideGroupPanel:"Gruppierungsbereich ausblenden",showFooter:"Fu\xDFzeile anzeigen",hideFooter:"Fu\xDFzeile ausblenden",showGroupFooters:"Gruppenfu\xDFzeilen anzeigen",hideGroupFooters:"Gruppenfu\xDFzeilen ausblenden",hideColumn:"Diese Spalte ausblenden",fieldChooser:"Feldauswahl\u2026",bestFit:"Optimale Breite",bestFitAll:"Optimale Breite (alle Spalten)",fixedPosition:"Feste Position festlegen",pinLeft:"Links",pinRight:"Rechts",pinSticky:"Fixiert",unpin:"Fixierung aufheben",moveLeft:"Nach links verschieben",moveRight:"Nach rechts verschieben",filterPlaceholder:"Filtern\u2026",filterColumnAria:"{column} filtern",filterSelectAll:"Alles ausw\xE4hlen",filterBlank:"(Leer)",filterNoMatch:"Keine passenden Werte",filterLoading:"Werte werden geladen\u2026",filterTruncated:"Es werden nur die ersten Werte angezeigt \u2014 suchen Sie nach den \xFCbrigen.",filterRemove:"Filter entfernen",filterToggle:"Filter anwenden",filterEditBuilder:"Filter bearbeiten",filterNone:"Kein Filter",filterActive:"Filter aktiv",opEquals:"ist",opNotEquals:"ist nicht",opGreater:">",opGreaterOrEqual:"\u2265",opLess:"<",opLessOrEqual:"\u2264",opContains:"enth\xE4lt",opNotContains:"enth\xE4lt nicht",opStartsWith:"beginnt mit",opEndsWith:"endet mit",opIsBlank:"ist leer",opIsNotBlank:"ist nicht leer",opIsOneOf:"ist eines von",opIsBetween:"liegt zwischen",opValuesCount:"{n} Werte",filterAnd:"UND",filterOr:"ODER",builderTitle:"Filter-Editor",builderCombine:"Bedingungen verkn\xFCpfen mit",builderAddCondition:"Bedingung hinzuf\xFCgen",builderAddGroup:"Gruppe hinzuf\xFCgen",builderRemoveGroup:"Gruppe entfernen",builderRemoveCondition:"Bedingung entfernen",builderEmpty:"Noch keine Bedingungen.",builderColumn:"Spalte",builderOperator:"Operator",builderValue:"Wert",builderValueFrom:"Von",builderValueTo:"Bis",builderValuePlaceholder:"Wert eingeben",groupPanelHint:"Ziehen Sie eine Spalte hierher, um danach zu gruppieren",groupAddLevel:"Gruppierungsebene hinzuf\xFCgen",groupAddLevelButton:"+ Ebene hinzuf\xFCgen\u2026",groupNoGrouping:"(keine Gruppierung)",groupLevelAria:"Gruppierungsebene {n}",groupRemoveAria:"{column} entfernen",pagerFirst:"Erste Seite",pagerPrevious:"Vorherige Seite",pagerNext:"N\xE4chste Seite",pagerLast:"Letzte Seite",pagerPage:"Seite",pagerOf:"von",pagerRowsPerPage:"Zeilen pro Seite",pagerAria:"Seitennavigation",selectAllRows:"Alle Zeilen ausw\xE4hlen",selectRowAria:"Zeile {row} ausw\xE4hlen",summaryAria:"Zusammenfassung",columnTotalsAria:"Spaltensummen",rowActions:"Zeilenaktionen",detailsAria:"Details",rowNumberAria:"Zeilennummer",noteEditorAria:"Zellennotiz",notePlaceholder:"Notiz zu dieser Zelle schreiben\u2026",addNote:"Notiz hinzuf\xFCgen\u2026",editNote:"Notiz bearbeiten\u2026",deleteNote:"Notiz l\xF6schen",expandDetails:"Details erweitern",collapseDetails:"Details reduzieren",dragToReorder:"Zum Umsortieren ziehen",menuCopy:"Kopieren",menuCopyWithHeaders:"Mit Spaltenk\xF6pfen kopieren",menuCopyWithGroupHeaders:"Mit Gruppenk\xF6pfen kopieren",menuCut:"Ausschneiden",menuPaste:"Einf\xFCgen",menuExport:"Exportieren",menuChartRange:"Ausgew\xE4hlte Spalten als Diagramm",statsSum:"Summe",statsCount:"Anzahl",statsAvg:"Durchschnitt",statsMin:"Min",statsMax:"Max",statsCells:"Zellen",statsTooLarge:"Auswahl zu gro\xDF f\xFCr eine Summe",statusRows:"Zeilen",statusFiltered:"Gefiltert",statusSelected:"Ausgew\xE4hlt",summaryRows:"Zeilen",announceRows:"{n} Zeilen",announceSortedBy:"sortiert nach {columns}",announceSelected:"{n} ausgew\xE4hlt",announceAscending:"aufsteigend",announceDescending:"absteigend",sideFilters:"Filter",sideBarAria:"Werkzeugbereiche",sideClearFilters:"Alle Filter l\xF6schen",summarySum:"Summe",summaryAvg:"Durchschnitt",summaryMin:"Min",summaryMax:"Max",summaryCount:"Anzahl",summaryDistinct:"Eindeutig",summaryCustom:"Benutzerdefiniert",noTotal:"Keine Summe",busy:"Wird bearbeitet\u2026",busyLoading:"Zeilen werden geladen\u2026",busyEncoding:"Daten werden vorbereitet\u2026",busyFiltering:"Zeilen werden gefiltert\u2026",busySorting:"Zeilen werden sortiert\u2026",busyComputing:"Filtern und Sortieren\u2026",busyGrouping:"Gruppen werden erstellt\u2026",busyAggregating:"Summen werden berechnet\u2026",busyProjecting:"Ansicht wird aktualisiert\u2026",busyExporting:"Datei wird erstellt\u2026",noData:"Keine Daten gefunden",editNewRow:"Neue Zeile",editSaveChanges:"\xC4nderungen speichern",editDiscardChanges:"\xC4nderungen verwerfen",editRow:"Zeile bearbeiten",editRowMenu:"Zeile bearbeiten\u2026",editDeleteRow:"Zeile l\xF6schen",editUndoDelete:"L\xF6schen r\xFCckg\xE4ngig",editActions:"Aktionen",editSaveRow:"Zeile speichern",editSaving:"Wird gespeichert\u2026",editEditingRow:"Zeile {row} wird bearbeitet",editSaveCount:"{n} Zeile(n) speichern",editCannotSave:"Speichern nicht m\xF6glich",editSaveFailed:"Die \xC4nderungen konnten nicht gespeichert werden.",editDeleteConfirm:"Diese Zeile l\xF6schen?",editAddRowUndo:"Zeile hinzuf\xFCgen",editDeleteRowUndo:"Zeile l\xF6schen",editCellUndo:"{column} bearbeiten",editFillUndo:"{count} Zellen f\xFCllen",editPasteUndo:"{count} Zellen einf\xFCgen",editCutUndo:"{count} Zellen ausschneiden",editNoMatch:"Keine \xDCbereinstimmung",formEditTitle:"Zeile bearbeiten",formAddTitle:"Neue Zeile",formShortcut:"{key}+Enter zum Speichern \xB7 Esc zum Abbrechen",validationRequired:"Dieses Feld ist erforderlich",validationNumber:"Muss eine Zahl sein",validationFormat:"Ung\xFCltiges Format",validationEmail:"Ung\xFCltige E-Mail-Adresse",validationInvalid:"Ung\xFCltiger Wert",dateCalendar:"Kalender",dateOpenCalendar:"Kalender \xF6ffnen",datePreviousMonth:"Vorheriger Monat",dateNextMonth:"N\xE4chster Monat",monthJanuary:"Januar",monthFebruary:"Februar",monthMarch:"M\xE4rz",monthApril:"April",monthMay:"Mai",monthJune:"Juni",monthJuly:"Juli",monthAugust:"August",monthSeptember:"September",monthOctober:"Oktober",monthNovember:"November",monthDecember:"Dezember",weekStartsOn:"1",weekdaySu:"So",weekdayMo:"Mo",weekdayTu:"Di",weekdayWe:"Mi",weekdayTh:"Do",weekdayFr:"Fr",weekdaySa:"Sa",importTitle:"Daten importieren",importStepSource:"1. Quelle",importStepMap:"2. Spalten zuordnen",importFile:"CSV-Datei",importPaste:"\u2026oder Zeilen einf\xFCgen",importSeparator:"Trennzeichen",importSeparatorAuto:"Automatisch erkennen",importSeparatorComma:"Komma ,",importSeparatorSemicolon:"Semikolon ;",importSeparatorTab:"Tabulator",importSeparatorPipe:"Pipe |",importFileColumn:"Dateispalte",importDetected:"Erkannt",importGridColumn:"Tabellenspalte",importSample:"Beispiel",importSkip:"\u2014 \xFCberspringen \u2014",importPreview:"Vorschau",importNoSource:"W\xE4hlen Sie zuerst eine Datei oder f\xFCgen Sie Zeilen ein.",importNoRows:"Es wurden keine Datenzeilen gefunden.",importAction:"Importieren",exportAborted:"Export abgebrochen",exportSheetName:"Daten",chart:"Diagramm",chartCategory:"Kategorie",chartSeries:"Reihe",chartAddSeries:"Reihe hinzuf\xFCgen",chartRemoveSeries:"Entfernen",chartSource:"Daten",chartSourceView:"Gefilterte Zeilen",chartSourceSelection:"Ausgew\xE4hlte Zeilen",chartSourceAll:"Alle Zeilen",chartClose:"Diagramm schlie\xDFen",chartFullscreen:"Vollbild",chartExitFullscreen:"Vollbild beenden",chartExportPng:"PNG",chartExportSvg:"SVG",chartExportFailed:"Das Diagramm konnte nicht exportiert werden.",chartCrossFiltered:"Die Tabelle ist auf {value} gefiltert.",chartBlankCategory:"(leer)",chartTruncated:"Es werden die obersten {n} Kategorien angezeigt; die \xFCbrigen sind als \u201ESonstige\u201C zusammengefasst.",chartOther:"Sonstige",chartEmpty:"Noch nichts darzustellen.",chartNeedsRecharts:"Diagramme ben\xF6tigen das optionale Paket `recharts`. Installieren Sie es, um sie zu zeichnen.",chartOnlyOneSeries:"Dieser Diagrammtyp zeigt eine Reihe.",chartByColumn:"Diagramm nach dieser Spalte",chartGroupBy:"Nach",chartGroupNone:"Jeder Wert",chartGroupAuto:"Automatisch",chartGroupDay:"Tag",chartGroupWeek:"Woche",chartGroupMonth:"Monat",chartGroupQuarter:"Quartal",chartGroupYear:"Jahr",chartGroupBins:"{n} Klassen",chartBucketAdjusted:"Zu viele Intervalle f\xFCr eine Achse \u2014 gr\xF6ber gruppiert.",chartWindowed:"{shown} von {total} werden angezeigt.",chartShowAll:"Alle anzeigen",chartCanvasHint:"Diagramm. Scrollen zum Zoomen, Ziehen zum Verschieben, Pfeiltasten zum Bewegen, 0 f\xFCr alle.",chartAggSum:"Summe",chartAggAvg:"Durchschnitt",chartAggMin:"Min",chartAggMax:"Max",chartAggCount:"Anzahl",chartAggDistinct:"Eindeutig",chartTypeColumn:"S\xE4ule",chartTypeBar:"Balken",chartTypeLine:"Linie",chartTypeArea:"Fl\xE4che",chartTypePie:"Kreis",chartTypeDonut:"Ring",licenseMissing:"Nicht lizenziert",licenseExpired:"Lizenz abgelaufen",licenseReleaseNotCovered:"Diese Version ist nicht durch die Lizenz abgedeckt",licenseDomainMismatch:"Lizenz gilt nicht f\xFCr diese Domain",licenseRevoked:"Lizenz widerrufen",licenseInvalidFormat:"Lizenzschl\xFCssel fehlerhaft",licenseInvalidSignature:"Ung\xFCltige Lizenzsignatur",licenseEngineUnavailable:"Browser kann die Lizenz nicht pr\xFCfen (HTTPS erforderlich)"},Bl={ok:"OK",cancel:"Annuler",apply:"Appliquer",close:"Fermer",clear:"Effacer",save:"Enregistrer",search:"Rechercher...",selectAll:"Tout s\xE9lectionner",showAll:"Tout afficher",remove:"Supprimer",none:"Aucun",toolbarSearch:"Rechercher...",exportMenu:"Exporter",exportCsv:"Exporter en CSV",exportExcel:"Exporter toutes les donn\xE9es vers Excel",exportExcelSelected:"Exporter les lignes s\xE9lectionn\xE9es vers Excel",exportPdf:"Exporter en PDF",exporting:"Exportation\u2026",columns:"Colonnes",hiddenColumns:"Colonnes masqu\xE9es",noHiddenColumns:"Aucune colonne masqu\xE9e.",sortAsc:"Trier de A \xE0 Z",sortDesc:"Trier de Z \xE0 A",clearSort:"Effacer le tri",groupByColumn:"Grouper par cette colonne",ungroupColumn:"Retirer du groupement",showGroupPanel:"Afficher le panneau de groupement",hideGroupPanel:"Masquer le panneau de groupement",showFooter:"Afficher le pied de tableau",hideFooter:"Masquer le pied de tableau",showGroupFooters:"Afficher les pieds de groupe",hideGroupFooters:"Masquer les pieds de groupe",hideColumn:"Masquer cette colonne",fieldChooser:"S\xE9lecteur de champs\u2026",bestFit:"Ajuster la largeur",bestFitAll:"Ajuster la largeur (toutes les colonnes)",fixedPosition:"D\xE9finir une position fixe",pinLeft:"Gauche",pinRight:"Droite",pinSticky:"Fixe",unpin:"Lib\xE9rer",moveLeft:"D\xE9placer vers la gauche",moveRight:"D\xE9placer vers la droite",filterPlaceholder:"Filtrer\u2026",filterColumnAria:"Filtrer {column}",filterSelectAll:"Tout s\xE9lectionner",filterBlank:"(Vides)",filterNoMatch:"Aucune valeur correspondante",filterLoading:"Chargement des valeurs\u2026",filterTruncated:"Seules les premi\xE8res valeurs sont affich\xE9es \u2014 recherchez pour trouver les autres.",filterRemove:"Supprimer le filtre",filterToggle:"Appliquer le filtre",filterEditBuilder:"Modifier le filtre",filterNone:"Aucun filtre",filterActive:"Filtre actif",opEquals:"est",opNotEquals:"n'est pas",opGreater:">",opGreaterOrEqual:"\u2265",opLess:"<",opLessOrEqual:"\u2264",opContains:"contient",opNotContains:"ne contient pas",opStartsWith:"commence par",opEndsWith:"se termine par",opIsBlank:"est vide",opIsNotBlank:"n'est pas vide",opIsOneOf:"fait partie de",opIsBetween:"est entre",opValuesCount:"{n} valeurs",filterAnd:"ET",filterOr:"OU",builderTitle:"G\xE9n\xE9rateur de filtre",builderCombine:"Combiner les conditions avec",builderAddCondition:"Ajouter une condition",builderAddGroup:"Ajouter un groupe",builderRemoveGroup:"Supprimer le groupe",builderRemoveCondition:"Supprimer la condition",builderEmpty:"Aucune condition pour le moment.",builderColumn:"Colonne",builderOperator:"Op\xE9rateur",builderValue:"Valeur",builderValueFrom:"De",builderValueTo:"\xC0",builderValuePlaceholder:"Saisissez une valeur",groupPanelHint:"Faites glisser une colonne ici pour grouper",groupAddLevel:"Ajouter un niveau de groupement",groupAddLevelButton:"+ Ajouter un niveau\u2026",groupNoGrouping:"(aucun groupement)",groupLevelAria:"Niveau de groupement {n}",groupRemoveAria:"Supprimer {column}",pagerFirst:"Premi\xE8re page",pagerPrevious:"Page pr\xE9c\xE9dente",pagerNext:"Page suivante",pagerLast:"Derni\xE8re page",pagerPage:"Page",pagerOf:"sur",pagerRowsPerPage:"Lignes par page",pagerAria:"Pagination",selectAllRows:"S\xE9lectionner toutes les lignes",selectRowAria:"S\xE9lectionner la ligne {row}",summaryAria:"Synth\xE8se",columnTotalsAria:"Totaux des colonnes",rowActions:"Actions de ligne",detailsAria:"D\xE9tails",rowNumberAria:"Num\xE9ro de ligne",noteEditorAria:"Note de cellule",notePlaceholder:"\xC9crivez une note sur cette cellule\u2026",addNote:"Ajouter une note\u2026",editNote:"Modifier la note\u2026",deleteNote:"Supprimer la note",expandDetails:"D\xE9velopper les d\xE9tails",collapseDetails:"R\xE9duire les d\xE9tails",dragToReorder:"Faire glisser pour r\xE9ordonner",menuCopy:"Copier",menuCopyWithHeaders:"Copier avec les en-t\xEAtes",menuCopyWithGroupHeaders:"Copier avec les en-t\xEAtes de groupe",menuCut:"Couper",menuPaste:"Coller",menuExport:"Exporter",menuChartRange:"Graphique des colonnes s\xE9lectionn\xE9es",statsSum:"Somme",statsCount:"Nombre",statsAvg:"Moyenne",statsMin:"Min",statsMax:"Max",statsCells:"Cellules",statsTooLarge:"S\xE9lection trop grande pour \xEAtre totalis\xE9e",statusRows:"Lignes",statusFiltered:"Filtr\xE9es",statusSelected:"S\xE9lectionn\xE9es",summaryRows:"lignes",announceRows:"{n} lignes",announceSortedBy:"tri\xE9 par {columns}",announceSelected:"{n} s\xE9lectionn\xE9es",announceAscending:"croissant",announceDescending:"d\xE9croissant",sideFilters:"Filtres",sideBarAria:"Panneaux d'outils",sideClearFilters:"Effacer tous les filtres",summarySum:"Somme",summaryAvg:"Moyenne",summaryMin:"Min",summaryMax:"Max",summaryCount:"Nombre",summaryDistinct:"Distinct",summaryCustom:"Personnalis\xE9",noTotal:"Aucun total",busy:"En cours\u2026",busyLoading:"Chargement des lignes\u2026",busyEncoding:"Pr\xE9paration des donn\xE9es\u2026",busyFiltering:"Filtrage des lignes\u2026",busySorting:"Tri des lignes\u2026",busyComputing:"Filtrage et tri\u2026",busyGrouping:"Construction des groupes\u2026",busyAggregating:"Calcul des totaux\u2026",busyProjecting:"Mise \xE0 jour de la vue\u2026",busyExporting:"Cr\xE9ation du fichier\u2026",noData:"Aucune donn\xE9e trouv\xE9e",editNewRow:"Nouvelle ligne",editSaveChanges:"Enregistrer les modifications",editDiscardChanges:"Annuler les modifications",editRow:"Modifier la ligne",editRowMenu:"Modifier la ligne\u2026",editDeleteRow:"Supprimer la ligne",editUndoDelete:"Annuler la suppression",editActions:"Actions",editSaveRow:"Enregistrer la ligne",editSaving:"Enregistrement\u2026",editEditingRow:"Modification de la ligne {row}",editSaveCount:"Enregistrer {n} ligne(s)",editCannotSave:"Enregistrement impossible",editSaveFailed:"Les modifications n'ont pas pu \xEAtre enregistr\xE9es.",editDeleteConfirm:"Supprimer cette ligne ?",editAddRowUndo:"Ajouter une ligne",editDeleteRowUndo:"Supprimer la ligne",editCellUndo:"Modifier {column}",editFillUndo:"Remplir {count} cellules",editPasteUndo:"Coller {count} cellules",editCutUndo:"Couper {count} cellules",editNoMatch:"Aucune correspondance",formEditTitle:"Modifier la ligne",formAddTitle:"Nouvelle ligne",formShortcut:"{key}+Entr\xE9e pour enregistrer \xB7 \xC9chap pour annuler",validationRequired:"Ce champ est obligatoire",validationNumber:"Doit \xEAtre un nombre",validationFormat:"Format invalide",validationEmail:"Adresse e-mail invalide",validationInvalid:"Valeur invalide",dateCalendar:"Calendrier",dateOpenCalendar:"Ouvrir le calendrier",datePreviousMonth:"Mois pr\xE9c\xE9dent",dateNextMonth:"Mois suivant",monthJanuary:"Janvier",monthFebruary:"F\xE9vrier",monthMarch:"Mars",monthApril:"Avril",monthMay:"Mai",monthJune:"Juin",monthJuly:"Juillet",monthAugust:"Ao\xFBt",monthSeptember:"Septembre",monthOctober:"Octobre",monthNovember:"Novembre",monthDecember:"D\xE9cembre",weekStartsOn:"1",weekdaySu:"Di",weekdayMo:"Lu",weekdayTu:"Ma",weekdayWe:"Me",weekdayTh:"Je",weekdayFr:"Ve",weekdaySa:"Sa",importTitle:"Importer des donn\xE9es",importStepSource:"1. Source",importStepMap:"2. Associer les colonnes",importFile:"Fichier CSV",importPaste:"\u2026ou collez des lignes",importSeparator:"S\xE9parateur",importSeparatorAuto:"D\xE9tecter automatiquement",importSeparatorComma:"Virgule ,",importSeparatorSemicolon:"Point-virgule ;",importSeparatorTab:"Tabulation",importSeparatorPipe:"Barre verticale |",importFileColumn:"Colonne du fichier",importDetected:"D\xE9tect\xE9",importGridColumn:"Colonne du tableau",importSample:"Exemple",importSkip:"\u2014 ignorer \u2014",importPreview:"Aper\xE7u",importNoSource:"Choisissez d'abord un fichier ou collez des lignes.",importNoRows:"Aucune ligne de donn\xE9es trouv\xE9e.",importAction:"Importer",exportAborted:"Exportation interrompue",exportSheetName:"Donn\xE9es",chart:"Graphique",chartCategory:"Cat\xE9gorie",chartSeries:"S\xE9rie",chartAddSeries:"Ajouter une s\xE9rie",chartRemoveSeries:"Supprimer",chartSource:"Donn\xE9es",chartSourceView:"Lignes filtr\xE9es",chartSourceSelection:"Lignes s\xE9lectionn\xE9es",chartSourceAll:"Toutes les lignes",chartClose:"Fermer le graphique",chartFullscreen:"Plein \xE9cran",chartExitFullscreen:"Quitter le plein \xE9cran",chartExportPng:"PNG",chartExportSvg:"SVG",chartExportFailed:"Le graphique n'a pas pu \xEAtre export\xE9.",chartCrossFiltered:"Le tableau est filtr\xE9 sur {value}.",chartBlankCategory:"(vide)",chartTruncated:"Affichage des {n} premi\xE8res cat\xE9gories ; les autres sont regroup\xE9es sous \xAB Autres \xBB.",chartOther:"Autres",chartEmpty:"Rien \xE0 repr\xE9senter pour le moment.",chartNeedsRecharts:"Les graphiques n\xE9cessitent le paquet optionnel `recharts`. Installez-le pour les dessiner.",chartOnlyOneSeries:"Ce type de graphique affiche une seule s\xE9rie.",chartByColumn:"Graphique par cette colonne",chartGroupBy:"Par",chartGroupNone:"Chaque valeur",chartGroupAuto:"Automatique",chartGroupDay:"Jour",chartGroupWeek:"Semaine",chartGroupMonth:"Mois",chartGroupQuarter:"Trimestre",chartGroupYear:"Ann\xE9e",chartGroupBins:"{n} classes",chartBucketAdjusted:"Trop d\u2019intervalles pour un axe \u2014 regroupement plus large.",chartWindowed:"Affichage de {shown} sur {total}.",chartShowAll:"Tout afficher",chartCanvasHint:"Graphique. Faites d\xE9filer pour zoomer, glissez pour d\xE9placer, fl\xE8ches pour parcourir, 0 pour tout afficher.",chartAggSum:"Somme",chartAggAvg:"Moyenne",chartAggMin:"Min",chartAggMax:"Max",chartAggCount:"Nombre",chartAggDistinct:"Distinct",chartTypeColumn:"Colonnes",chartTypeBar:"Barres",chartTypeLine:"Courbe",chartTypeArea:"Aires",chartTypePie:"Secteurs",chartTypeDonut:"Anneau",licenseMissing:"Sans licence",licenseExpired:"Licence expir\xE9e",licenseReleaseNotCovered:"Cette version n\u2019est pas couverte par la licence",licenseDomainMismatch:"Licence non valide pour ce domaine",licenseRevoked:"Licence r\xE9voqu\xE9e",licenseInvalidFormat:"Cl\xE9 de licence mal form\xE9e",licenseInvalidSignature:"Signature de licence invalide",licenseEngineUnavailable:"Le navigateur ne peut pas v\xE9rifier la licence (HTTPS requis)"},kl={ok:"Aceptar",cancel:"Cancelar",apply:"Aplicar",close:"Cerrar",clear:"Borrar",save:"Guardar",search:"Buscar...",selectAll:"Seleccionar todo",showAll:"Mostrar todo",remove:"Quitar",none:"Ninguno",toolbarSearch:"Buscar...",exportMenu:"Exportar",exportCsv:"Exportar a CSV",exportExcel:"Exportar todos los datos a Excel",exportExcelSelected:"Exportar las filas seleccionadas a Excel",exportPdf:"Exportar a PDF",exporting:"Exportando\u2026",columns:"Columnas",hiddenColumns:"Columnas ocultas",noHiddenColumns:"No hay columnas ocultas.",sortAsc:"Ordenar de la A a la Z",sortDesc:"Ordenar de la Z a la A",clearSort:"Borrar ordenaci\xF3n",groupByColumn:"Agrupar por esta columna",ungroupColumn:"Quitar de la agrupaci\xF3n",showGroupPanel:"Mostrar panel de agrupaci\xF3n",hideGroupPanel:"Ocultar panel de agrupaci\xF3n",showFooter:"Mostrar pie de tabla",hideFooter:"Ocultar pie de tabla",showGroupFooters:"Mostrar pies de grupo",hideGroupFooters:"Ocultar pies de grupo",hideColumn:"Ocultar esta columna",fieldChooser:"Selector de campos\u2026",bestFit:"Ajustar ancho",bestFitAll:"Ajustar ancho (todas las columnas)",fixedPosition:"Establecer posici\xF3n fija",pinLeft:"Izquierda",pinRight:"Derecha",pinSticky:"Fija",unpin:"Liberar",moveLeft:"Mover a la izquierda",moveRight:"Mover a la derecha",filterPlaceholder:"Filtrar\u2026",filterColumnAria:"Filtrar {column}",filterSelectAll:"Seleccionar todo",filterBlank:"(En blanco)",filterNoMatch:"No hay valores coincidentes",filterLoading:"Cargando valores\u2026",filterTruncated:"Solo se muestran los primeros valores \u2014 busque para encontrar el resto.",filterRemove:"Quitar el filtro",filterToggle:"Aplicar el filtro",filterEditBuilder:"Editar el filtro",filterNone:"Sin filtro",filterActive:"Filtro activo",opEquals:"es",opNotEquals:"no es",opGreater:">",opGreaterOrEqual:"\u2265",opLess:"<",opLessOrEqual:"\u2264",opContains:"contiene",opNotContains:"no contiene",opStartsWith:"empieza por",opEndsWith:"termina en",opIsBlank:"est\xE1 en blanco",opIsNotBlank:"no est\xE1 en blanco",opIsOneOf:"es uno de",opIsBetween:"est\xE1 entre",opValuesCount:"{n} valores",filterAnd:"Y",filterOr:"O",builderTitle:"Generador de filtros",builderCombine:"Combinar condiciones con",builderAddCondition:"A\xF1adir condici\xF3n",builderAddGroup:"A\xF1adir grupo",builderRemoveGroup:"Quitar grupo",builderRemoveCondition:"Quitar condici\xF3n",builderEmpty:"Todav\xEDa no hay condiciones.",builderColumn:"Columna",builderOperator:"Operador",builderValue:"Valor",builderValueFrom:"Desde",builderValueTo:"Hasta",builderValuePlaceholder:"Introduzca un valor",groupPanelHint:"Arrastre una columna aqu\xED para agrupar por ella",groupAddLevel:"A\xF1adir nivel de agrupaci\xF3n",groupAddLevelButton:"+ A\xF1adir nivel\u2026",groupNoGrouping:"(sin agrupaci\xF3n)",groupLevelAria:"Nivel de agrupaci\xF3n {n}",groupRemoveAria:"Quitar {column}",pagerFirst:"Primera p\xE1gina",pagerPrevious:"P\xE1gina anterior",pagerNext:"P\xE1gina siguiente",pagerLast:"\xDAltima p\xE1gina",pagerPage:"P\xE1gina",pagerOf:"de",pagerRowsPerPage:"Filas por p\xE1gina",pagerAria:"Paginaci\xF3n",selectAllRows:"Seleccionar todas las filas",selectRowAria:"Seleccionar la fila {row}",summaryAria:"Resumen",columnTotalsAria:"Totales de columna",rowActions:"Acciones de fila",detailsAria:"Detalles",rowNumberAria:"N\xFAmero de fila",noteEditorAria:"Nota de celda",notePlaceholder:"Escriba una nota sobre esta celda\u2026",addNote:"A\xF1adir nota\u2026",editNote:"Editar nota\u2026",deleteNote:"Eliminar nota",expandDetails:"Expandir detalles",collapseDetails:"Contraer detalles",dragToReorder:"Arrastre para reordenar",menuCopy:"Copiar",menuCopyWithHeaders:"Copiar con encabezados",menuCopyWithGroupHeaders:"Copiar con encabezados de grupo",menuCut:"Cortar",menuPaste:"Pegar",menuExport:"Exportar",menuChartRange:"Graficar columnas seleccionadas",statsSum:"Suma",statsCount:"Recuento",statsAvg:"Promedio",statsMin:"M\xEDnimo",statsMax:"M\xE1ximo",statsCells:"Celdas",statsTooLarge:"Selecci\xF3n demasiado grande para sumarla",statusRows:"Filas",statusFiltered:"Filtradas",statusSelected:"Seleccionadas",summaryRows:"filas",announceRows:"{n} filas",announceSortedBy:"ordenado por {columns}",announceSelected:"{n} seleccionadas",announceAscending:"ascendente",announceDescending:"descendente",sideFilters:"Filtros",sideBarAria:"Paneles de herramientas",sideClearFilters:"Borrar todos los filtros",summarySum:"Suma",summaryAvg:"Promedio",summaryMin:"M\xEDnimo",summaryMax:"M\xE1ximo",summaryCount:"Recuento",summaryDistinct:"Distintos",summaryCustom:"Personalizado",noTotal:"Sin total",busy:"Trabajando\u2026",busyLoading:"Cargando filas\u2026",busyEncoding:"Preparando datos\u2026",busyFiltering:"Filtrando filas\u2026",busySorting:"Ordenando filas\u2026",busyComputing:"Filtrando y ordenando\u2026",busyGrouping:"Creando grupos\u2026",busyAggregating:"Calculando totales\u2026",busyProjecting:"Actualizando la vista\u2026",busyExporting:"Creando el archivo\u2026",noData:"No se encontraron datos",editNewRow:"Nueva fila",editSaveChanges:"Guardar cambios",editDiscardChanges:"Descartar cambios",editRow:"Editar fila",editRowMenu:"Editar fila\u2026",editDeleteRow:"Eliminar fila",editUndoDelete:"Deshacer eliminaci\xF3n",editActions:"Acciones",editSaveRow:"Guardar fila",editSaving:"Guardando\u2026",editEditingRow:"Editando la fila {row}",editSaveCount:"Guardar {n} fila(s)",editCannotSave:"No se puede guardar",editSaveFailed:"No se pudieron guardar los cambios.",editDeleteConfirm:"\xBFEliminar esta fila?",editAddRowUndo:"A\xF1adir fila",editDeleteRowUndo:"Eliminar fila",editCellUndo:"Editar {column}",editFillUndo:"Rellenar {count} celdas",editPasteUndo:"Pegar {count} celdas",editCutUndo:"Cortar {count} celdas",editNoMatch:"Sin coincidencias",formEditTitle:"Editar fila",formAddTitle:"Nueva fila",formShortcut:"{key}+Intro para guardar \xB7 Esc para cancelar",validationRequired:"Este campo es obligatorio",validationNumber:"Debe ser un n\xFAmero",validationFormat:"Formato no v\xE1lido",validationEmail:"Direcci\xF3n de correo no v\xE1lida",validationInvalid:"Valor no v\xE1lido",dateCalendar:"Calendario",dateOpenCalendar:"Abrir calendario",datePreviousMonth:"Mes anterior",dateNextMonth:"Mes siguiente",monthJanuary:"Enero",monthFebruary:"Febrero",monthMarch:"Marzo",monthApril:"Abril",monthMay:"Mayo",monthJune:"Junio",monthJuly:"Julio",monthAugust:"Agosto",monthSeptember:"Septiembre",monthOctober:"Octubre",monthNovember:"Noviembre",monthDecember:"Diciembre",weekStartsOn:"1",weekdaySu:"Do",weekdayMo:"Lu",weekdayTu:"Ma",weekdayWe:"Mi",weekdayTh:"Ju",weekdayFr:"Vi",weekdaySa:"S\xE1",importTitle:"Importar datos",importStepSource:"1. Origen",importStepMap:"2. Asignar columnas",importFile:"Archivo CSV",importPaste:"\u2026o pegue filas",importSeparator:"Separador",importSeparatorAuto:"Detectar autom\xE1ticamente",importSeparatorComma:"Coma ,",importSeparatorSemicolon:"Punto y coma ;",importSeparatorTab:"Tabulador",importSeparatorPipe:"Barra vertical |",importFileColumn:"Columna del archivo",importDetected:"Detectado",importGridColumn:"Columna de la tabla",importSample:"Muestra",importSkip:"\u2014 omitir \u2014",importPreview:"Vista previa",importNoSource:"Elija primero un archivo o pegue algunas filas.",importNoRows:"No se encontraron filas de datos.",importAction:"Importar",exportAborted:"Exportaci\xF3n cancelada",exportSheetName:"Datos",chart:"Gr\xE1fico",chartCategory:"Categor\xEDa",chartSeries:"Serie",chartAddSeries:"A\xF1adir serie",chartRemoveSeries:"Quitar",chartSource:"Datos",chartSourceView:"Filas filtradas",chartSourceSelection:"Filas seleccionadas",chartSourceAll:"Todas las filas",chartClose:"Cerrar el gr\xE1fico",chartFullscreen:"Pantalla completa",chartExitFullscreen:"Salir de pantalla completa",chartExportPng:"PNG",chartExportSvg:"SVG",chartExportFailed:"No se pudo exportar el gr\xE1fico.",chartCrossFiltered:"La tabla est\xE1 filtrada por {value}.",chartBlankCategory:"(en blanco)",chartTruncated:"Se muestran las {n} categor\xEDas principales; el resto se agrupa como \xABOtros\xBB.",chartOther:"Otros",chartEmpty:"Todav\xEDa no hay nada que representar.",chartNeedsRecharts:"Los gr\xE1ficos necesitan el paquete opcional `recharts`. Inst\xE1lelo para dibujarlos.",chartOnlyOneSeries:"Este tipo de gr\xE1fico muestra una serie.",chartByColumn:"Gr\xE1fico por esta columna",chartGroupBy:"Por",chartGroupNone:"Cada valor",chartGroupAuto:"Autom\xE1tico",chartGroupDay:"D\xEDa",chartGroupWeek:"Semana",chartGroupMonth:"Mes",chartGroupQuarter:"Trimestre",chartGroupYear:"A\xF1o",chartGroupBins:"{n} intervalos",chartBucketAdjusted:"Demasiados intervalos para un eje \u2014 se agrup\xF3 de forma m\xE1s amplia.",chartWindowed:"Mostrando {shown} de {total}.",chartShowAll:"Mostrar todo",chartCanvasHint:"Gr\xE1fico. Desplace para acercar, arrastre para mover, flechas para navegar, 0 para verlo todo.",chartAggSum:"Suma",chartAggAvg:"Promedio",chartAggMin:"M\xEDnimo",chartAggMax:"M\xE1ximo",chartAggCount:"Recuento",chartAggDistinct:"Distintos",chartTypeColumn:"Columnas",chartTypeBar:"Barras",chartTypeLine:"L\xEDneas",chartTypeArea:"\xC1reas",chartTypePie:"Circular",chartTypeDonut:"Anillo",licenseMissing:"Sin licencia",licenseExpired:"Licencia caducada",licenseReleaseNotCovered:"Esta versi\xF3n no est\xE1 cubierta por la licencia",licenseDomainMismatch:"Licencia no v\xE1lida para este dominio",licenseRevoked:"Licencia revocada",licenseInvalidFormat:"Clave de licencia mal formada",licenseInvalidSignature:"Firma de licencia no v\xE1lida",licenseEngineUnavailable:"El navegador no puede verificar la licencia (se requiere HTTPS)"},Rl={ok:"OK",cancel:"Annulla",apply:"Applica",close:"Chiudi",clear:"Cancella",save:"Salva",search:"Cerca...",selectAll:"Seleziona tutto",showAll:"Mostra tutto",remove:"Rimuovi",none:"Nessuno",toolbarSearch:"Cerca...",exportMenu:"Esporta",exportCsv:"Esporta in CSV",exportExcel:"Esporta tutti i dati in Excel",exportExcelSelected:"Esporta le righe selezionate in Excel",exportPdf:"Esporta in PDF",exporting:"Esportazione\u2026",columns:"Colonne",hiddenColumns:"Colonne nascoste",noHiddenColumns:"Nessuna colonna nascosta.",sortAsc:"Ordina dalla A alla Z",sortDesc:"Ordina dalla Z alla A",clearSort:"Cancella ordinamento",groupByColumn:"Raggruppa per questa colonna",ungroupColumn:"Rimuovi dal raggruppamento",showGroupPanel:"Mostra pannello di raggruppamento",hideGroupPanel:"Nascondi pannello di raggruppamento",showFooter:"Mostra pi\xE8 di tabella",hideFooter:"Nascondi pi\xE8 di tabella",showGroupFooters:"Mostra pi\xE8 di gruppo",hideGroupFooters:"Nascondi pi\xE8 di gruppo",hideColumn:"Nascondi questa colonna",fieldChooser:"Selettore campi\u2026",bestFit:"Adatta larghezza",bestFitAll:"Adatta larghezza (tutte le colonne)",fixedPosition:"Imposta posizione fissa",pinLeft:"Sinistra",pinRight:"Destra",pinSticky:"Fissa",unpin:"Sblocca",moveLeft:"Sposta a sinistra",moveRight:"Sposta a destra",filterPlaceholder:"Filtra\u2026",filterColumnAria:"Filtra {column}",filterSelectAll:"Seleziona tutto",filterBlank:"(Vuoti)",filterNoMatch:"Nessun valore corrispondente",filterLoading:"Caricamento valori\u2026",filterTruncated:"Vengono mostrati solo i primi valori \u2014 cerca per trovare gli altri.",filterRemove:"Rimuovi il filtro",filterToggle:"Applica il filtro",filterEditBuilder:"Modifica il filtro",filterNone:"Nessun filtro",filterActive:"Filtro attivo",opEquals:"\xE8",opNotEquals:"non \xE8",opGreater:">",opGreaterOrEqual:"\u2265",opLess:"<",opLessOrEqual:"\u2264",opContains:"contiene",opNotContains:"non contiene",opStartsWith:"inizia con",opEndsWith:"finisce con",opIsBlank:"\xE8 vuoto",opIsNotBlank:"non \xE8 vuoto",opIsOneOf:"\xE8 uno di",opIsBetween:"\xE8 compreso tra",opValuesCount:"{n} valori",filterAnd:"E",filterOr:"O",builderTitle:"Generatore di filtri",builderCombine:"Combina le condizioni con",builderAddCondition:"Aggiungi condizione",builderAddGroup:"Aggiungi gruppo",builderRemoveGroup:"Rimuovi gruppo",builderRemoveCondition:"Rimuovi condizione",builderEmpty:"Ancora nessuna condizione.",builderColumn:"Colonna",builderOperator:"Operatore",builderValue:"Valore",builderValueFrom:"Da",builderValueTo:"A",builderValuePlaceholder:"Inserisci un valore",groupPanelHint:"Trascina qui una colonna per raggrupparla",groupAddLevel:"Aggiungi livello di raggruppamento",groupAddLevelButton:"+ Aggiungi livello\u2026",groupNoGrouping:"(nessun raggruppamento)",groupLevelAria:"Livello di raggruppamento {n}",groupRemoveAria:"Rimuovi {column}",pagerFirst:"Prima pagina",pagerPrevious:"Pagina precedente",pagerNext:"Pagina successiva",pagerLast:"Ultima pagina",pagerPage:"Pagina",pagerOf:"di",pagerRowsPerPage:"Righe per pagina",pagerAria:"Paginazione",selectAllRows:"Seleziona tutte le righe",selectRowAria:"Seleziona la riga {row}",summaryAria:"Riepilogo",columnTotalsAria:"Totali di colonna",rowActions:"Azioni riga",detailsAria:"Dettagli",rowNumberAria:"Numero di riga",noteEditorAria:"Nota della cella",notePlaceholder:"Scrivi una nota su questa cella\u2026",addNote:"Aggiungi nota\u2026",editNote:"Modifica nota\u2026",deleteNote:"Elimina nota",expandDetails:"Espandi i dettagli",collapseDetails:"Comprimi i dettagli",dragToReorder:"Trascina per riordinare",menuCopy:"Copia",menuCopyWithHeaders:"Copia con intestazioni",menuCopyWithGroupHeaders:"Copia con intestazioni di gruppo",menuCut:"Taglia",menuPaste:"Incolla",menuExport:"Esporta",menuChartRange:"Grafico delle colonne selezionate",statsSum:"Somma",statsCount:"Conteggio",statsAvg:"Media",statsMin:"Min",statsMax:"Max",statsCells:"Celle",statsTooLarge:"Selezione troppo grande per essere totalizzata",statusRows:"Righe",statusFiltered:"Filtrate",statusSelected:"Selezionate",summaryRows:"righe",announceRows:"{n} righe",announceSortedBy:"ordinato per {columns}",announceSelected:"{n} selezionate",announceAscending:"crescente",announceDescending:"decrescente",sideFilters:"Filtri",sideBarAria:"Pannelli degli strumenti",sideClearFilters:"Cancella tutti i filtri",summarySum:"Somma",summaryAvg:"Media",summaryMin:"Min",summaryMax:"Max",summaryCount:"Conteggio",summaryDistinct:"Distinti",summaryCustom:"Personalizzato",noTotal:"Nessun totale",busy:"Elaborazione\u2026",busyLoading:"Caricamento righe\u2026",busyEncoding:"Preparazione dei dati\u2026",busyFiltering:"Filtraggio righe\u2026",busySorting:"Ordinamento righe\u2026",busyComputing:"Filtraggio e ordinamento\u2026",busyGrouping:"Creazione dei gruppi\u2026",busyAggregating:"Calcolo dei totali\u2026",busyProjecting:"Aggiornamento della vista\u2026",busyExporting:"Creazione del file\u2026",noData:"Nessun dato trovato",editNewRow:"Nuova riga",editSaveChanges:"Salva le modifiche",editDiscardChanges:"Annulla le modifiche",editRow:"Modifica riga",editRowMenu:"Modifica riga\u2026",editDeleteRow:"Elimina riga",editUndoDelete:"Annulla eliminazione",editActions:"Azioni",editSaveRow:"Salva riga",editSaving:"Salvataggio\u2026",editEditingRow:"Modifica della riga {row}",editSaveCount:"Salva {n} riga/righe",editCannotSave:"Impossibile salvare",editSaveFailed:"Non \xE8 stato possibile salvare le modifiche.",editDeleteConfirm:"Eliminare questa riga?",editAddRowUndo:"Aggiungi riga",editDeleteRowUndo:"Elimina riga",editCellUndo:"Modifica {column}",editFillUndo:"Riempi {count} celle",editPasteUndo:"Incolla {count} celle",editCutUndo:"Taglia {count} celle",editNoMatch:"Nessuna corrispondenza",formEditTitle:"Modifica riga",formAddTitle:"Nuova riga",formShortcut:"{key}+Invio per salvare \xB7 Esc per annullare",validationRequired:"Questo campo \xE8 obbligatorio",validationNumber:"Deve essere un numero",validationFormat:"Formato non valido",validationEmail:"Indirizzo e-mail non valido",validationInvalid:"Valore non valido",dateCalendar:"Calendario",dateOpenCalendar:"Apri il calendario",datePreviousMonth:"Mese precedente",dateNextMonth:"Mese successivo",monthJanuary:"Gennaio",monthFebruary:"Febbraio",monthMarch:"Marzo",monthApril:"Aprile",monthMay:"Maggio",monthJune:"Giugno",monthJuly:"Luglio",monthAugust:"Agosto",monthSeptember:"Settembre",monthOctober:"Ottobre",monthNovember:"Novembre",monthDecember:"Dicembre",weekStartsOn:"1",weekdaySu:"Do",weekdayMo:"Lu",weekdayTu:"Ma",weekdayWe:"Me",weekdayTh:"Gi",weekdayFr:"Ve",weekdaySa:"Sa",importTitle:"Importa dati",importStepSource:"1. Origine",importStepMap:"2. Associa colonne",importFile:"File CSV",importPaste:"\u2026oppure incolla delle righe",importSeparator:"Separatore",importSeparatorAuto:"Rileva automaticamente",importSeparatorComma:"Virgola ,",importSeparatorSemicolon:"Punto e virgola ;",importSeparatorTab:"Tabulazione",importSeparatorPipe:"Barra verticale |",importFileColumn:"Colonna del file",importDetected:"Rilevato",importGridColumn:"Colonna della tabella",importSample:"Esempio",importSkip:"\u2014 salta \u2014",importPreview:"Anteprima",importNoSource:"Scegli prima un file oppure incolla delle righe.",importNoRows:"Non \xE8 stata trovata alcuna riga di dati.",importAction:"Importa",exportAborted:"Esportazione interrotta",exportSheetName:"Dati",chart:"Grafico",chartCategory:"Categoria",chartSeries:"Serie",chartAddSeries:"Aggiungi serie",chartRemoveSeries:"Rimuovi",chartSource:"Dati",chartSourceView:"Righe filtrate",chartSourceSelection:"Righe selezionate",chartSourceAll:"Tutte le righe",chartClose:"Chiudi il grafico",chartFullscreen:"Schermo intero",chartExitFullscreen:"Esci da schermo intero",chartExportPng:"PNG",chartExportSvg:"SVG",chartExportFailed:"Non \xE8 stato possibile esportare il grafico.",chartCrossFiltered:"La tabella \xE8 filtrata su {value}.",chartBlankCategory:"(vuoto)",chartTruncated:"Vengono mostrate le prime {n} categorie; le altre sono raggruppate come \xABAltro\xBB.",chartOther:"Altro",chartEmpty:"Non c\u2019\xE8 ancora nulla da rappresentare.",chartNeedsRecharts:"I grafici richiedono il pacchetto opzionale `recharts`. Installalo per disegnarli.",chartOnlyOneSeries:"Questo tipo di grafico mostra una sola serie.",chartByColumn:"Grafico per questa colonna",chartGroupBy:"Per",chartGroupNone:"Ogni valore",chartGroupAuto:"Automatico",chartGroupDay:"Giorno",chartGroupWeek:"Settimana",chartGroupMonth:"Mese",chartGroupQuarter:"Trimestre",chartGroupYear:"Anno",chartGroupBins:"{n} intervalli",chartBucketAdjusted:"Troppi intervalli per un asse \u2014 raggruppati in modo pi\xF9 ampio.",chartWindowed:"Vengono mostrati {shown} di {total}.",chartShowAll:"Mostra tutto",chartCanvasHint:"Grafico. Scorri per ingrandire, trascina per spostare, frecce per navigare, 0 per mostrare tutto.",chartAggSum:"Somma",chartAggAvg:"Media",chartAggMin:"Min",chartAggMax:"Max",chartAggCount:"Conteggio",chartAggDistinct:"Distinti",chartTypeColumn:"Colonne",chartTypeBar:"Barre",chartTypeLine:"Linee",chartTypeArea:"Aree",chartTypePie:"Torta",chartTypeDonut:"Ciambella",licenseMissing:"Senza licenza",licenseExpired:"Licenza scaduta",licenseReleaseNotCovered:"Questa versione non \xE8 coperta dalla licenza",licenseDomainMismatch:"Licenza non valida per questo dominio",licenseRevoked:"Licenza revocata",licenseInvalidFormat:"Chiave di licenza malformata",licenseInvalidSignature:"Firma della licenza non valida",licenseEngineUnavailable:"Il browser non pu\xF2 verificare la licenza (HTTPS richiesto)"},Nl={ok:"OK",cancel:"Cancelar",apply:"Aplicar",close:"Fechar",clear:"Limpar",save:"Guardar",search:"Pesquisar...",selectAll:"Selecionar tudo",showAll:"Mostrar tudo",remove:"Remover",none:"Nenhum",toolbarSearch:"Pesquisar...",exportMenu:"Exportar",exportCsv:"Exportar para CSV",exportExcel:"Exportar todos os dados para Excel",exportExcelSelected:"Exportar as linhas selecionadas para Excel",exportPdf:"Exportar para PDF",exporting:"A exportar\u2026",columns:"Colunas",hiddenColumns:"Colunas ocultas",noHiddenColumns:"Nenhuma coluna oculta.",sortAsc:"Classificar de A a Z",sortDesc:"Classificar de Z a A",clearSort:"Limpar classifica\xE7\xE3o",groupByColumn:"Agrupar por esta coluna",ungroupColumn:"Remover do agrupamento",showGroupPanel:"Mostrar painel de agrupamento",hideGroupPanel:"Ocultar painel de agrupamento",showFooter:"Mostrar rodap\xE9",hideFooter:"Ocultar rodap\xE9",showGroupFooters:"Mostrar rodap\xE9s de grupo",hideGroupFooters:"Ocultar rodap\xE9s de grupo",hideColumn:"Ocultar esta coluna",fieldChooser:"Seletor de campos\u2026",bestFit:"Ajustar largura",bestFitAll:"Ajustar largura (todas as colunas)",fixedPosition:"Definir posi\xE7\xE3o fixa",pinLeft:"Esquerda",pinRight:"Direita",pinSticky:"Fixa",unpin:"Libertar",moveLeft:"Mover para a esquerda",moveRight:"Mover para a direita",filterPlaceholder:"Filtrar\u2026",filterColumnAria:"Filtrar {column}",filterSelectAll:"Selecionar tudo",filterBlank:"(Em branco)",filterNoMatch:"Nenhum valor correspondente",filterLoading:"A carregar valores\u2026",filterTruncated:"S\xE3o mostrados apenas os primeiros valores \u2014 pesquise para encontrar os restantes.",filterRemove:"Remover o filtro",filterToggle:"Aplicar o filtro",filterEditBuilder:"Editar o filtro",filterNone:"Sem filtro",filterActive:"Filtro ativo",opEquals:"\xE9",opNotEquals:"n\xE3o \xE9",opGreater:">",opGreaterOrEqual:"\u2265",opLess:"<",opLessOrEqual:"\u2264",opContains:"cont\xE9m",opNotContains:"n\xE3o cont\xE9m",opStartsWith:"come\xE7a por",opEndsWith:"termina em",opIsBlank:"est\xE1 em branco",opIsNotBlank:"n\xE3o est\xE1 em branco",opIsOneOf:"\xE9 um de",opIsBetween:"est\xE1 entre",opValuesCount:"{n} valores",filterAnd:"E",filterOr:"OU",builderTitle:"Construtor de filtros",builderCombine:"Combinar condi\xE7\xF5es com",builderAddCondition:"Adicionar condi\xE7\xE3o",builderAddGroup:"Adicionar grupo",builderRemoveGroup:"Remover grupo",builderRemoveCondition:"Remover condi\xE7\xE3o",builderEmpty:"Ainda n\xE3o h\xE1 condi\xE7\xF5es.",builderColumn:"Coluna",builderOperator:"Operador",builderValue:"Valor",builderValueFrom:"De",builderValueTo:"At\xE9",builderValuePlaceholder:"Introduza um valor",groupPanelHint:"Arraste uma coluna para aqui para agrupar por ela",groupAddLevel:"Adicionar n\xEDvel de agrupamento",groupAddLevelButton:"+ Adicionar n\xEDvel\u2026",groupNoGrouping:"(sem agrupamento)",groupLevelAria:"N\xEDvel de agrupamento {n}",groupRemoveAria:"Remover {column}",pagerFirst:"Primeira p\xE1gina",pagerPrevious:"P\xE1gina anterior",pagerNext:"P\xE1gina seguinte",pagerLast:"\xDAltima p\xE1gina",pagerPage:"P\xE1gina",pagerOf:"de",pagerRowsPerPage:"Linhas por p\xE1gina",pagerAria:"Pagina\xE7\xE3o",selectAllRows:"Selecionar todas as linhas",selectRowAria:"Selecionar a linha {row}",summaryAria:"Resumo",columnTotalsAria:"Totais das colunas",rowActions:"A\xE7\xF5es da linha",detailsAria:"Detalhes",rowNumberAria:"N\xFAmero da linha",noteEditorAria:"Nota da c\xE9lula",notePlaceholder:"Escreva uma nota sobre esta c\xE9lula\u2026",addNote:"Adicionar nota\u2026",editNote:"Editar nota\u2026",deleteNote:"Excluir nota",expandDetails:"Expandir detalhes",collapseDetails:"Recolher detalhes",dragToReorder:"Arraste para reordenar",menuCopy:"Copiar",menuCopyWithHeaders:"Copiar com cabe\xE7alhos",menuCopyWithGroupHeaders:"Copiar com cabe\xE7alhos de grupo",menuCut:"Recortar",menuPaste:"Colar",menuExport:"Exportar",menuChartRange:"Gr\xE1fico das colunas selecionadas",statsSum:"Soma",statsCount:"Contagem",statsAvg:"M\xE9dia",statsMin:"M\xEDn",statsMax:"M\xE1x",statsCells:"C\xE9lulas",statsTooLarge:"Sele\xE7\xE3o demasiado grande para totalizar",statusRows:"Linhas",statusFiltered:"Filtradas",statusSelected:"Selecionadas",summaryRows:"linhas",announceRows:"{n} linhas",announceSortedBy:"ordenado por {columns}",announceSelected:"{n} selecionadas",announceAscending:"crescente",announceDescending:"decrescente",sideFilters:"Filtros",sideBarAria:"Pain\xE9is de ferramentas",sideClearFilters:"Limpar todos os filtros",summarySum:"Soma",summaryAvg:"M\xE9dia",summaryMin:"M\xEDn",summaryMax:"M\xE1x",summaryCount:"Contagem",summaryDistinct:"Distintos",summaryCustom:"Personalizado",noTotal:"Sem total",busy:"A processar\u2026",busyLoading:"A carregar linhas\u2026",busyEncoding:"A preparar os dados\u2026",busyFiltering:"A filtrar linhas\u2026",busySorting:"A classificar linhas\u2026",busyComputing:"A filtrar e classificar\u2026",busyGrouping:"A criar grupos\u2026",busyAggregating:"A calcular totais\u2026",busyProjecting:"A atualizar a vista\u2026",busyExporting:"A criar o ficheiro\u2026",noData:"Nenhum dado encontrado",editNewRow:"Nova linha",editSaveChanges:"Guardar altera\xE7\xF5es",editDiscardChanges:"Descartar altera\xE7\xF5es",editRow:"Editar linha",editRowMenu:"Editar linha\u2026",editDeleteRow:"Eliminar linha",editUndoDelete:"Anular elimina\xE7\xE3o",editActions:"A\xE7\xF5es",editSaveRow:"Guardar linha",editSaving:"A guardar\u2026",editEditingRow:"A editar a linha {row}",editSaveCount:"Guardar {n} linha(s)",editCannotSave:"N\xE3o \xE9 poss\xEDvel guardar",editSaveFailed:"N\xE3o foi poss\xEDvel guardar as altera\xE7\xF5es.",editDeleteConfirm:"Eliminar esta linha?",editAddRowUndo:"Adicionar linha",editDeleteRowUndo:"Eliminar linha",editCellUndo:"Editar {column}",editFillUndo:"Preencher {count} c\xE9lulas",editPasteUndo:"Colar {count} c\xE9lulas",editCutUndo:"Recortar {count} c\xE9lulas",editNoMatch:"Sem correspond\xEAncia",formEditTitle:"Editar linha",formAddTitle:"Nova linha",formShortcut:"{key}+Enter para guardar \xB7 Esc para cancelar",validationRequired:"Este campo \xE9 obrigat\xF3rio",validationNumber:"Tem de ser um n\xFAmero",validationFormat:"Formato inv\xE1lido",validationEmail:"Endere\xE7o de e-mail inv\xE1lido",validationInvalid:"Valor inv\xE1lido",dateCalendar:"Calend\xE1rio",dateOpenCalendar:"Abrir calend\xE1rio",datePreviousMonth:"M\xEAs anterior",dateNextMonth:"M\xEAs seguinte",monthJanuary:"Janeiro",monthFebruary:"Fevereiro",monthMarch:"Mar\xE7o",monthApril:"Abril",monthMay:"Maio",monthJune:"Junho",monthJuly:"Julho",monthAugust:"Agosto",monthSeptember:"Setembro",monthOctober:"Outubro",monthNovember:"Novembro",monthDecember:"Dezembro",weekStartsOn:"1",weekdaySu:"Do",weekdayMo:"Se",weekdayTu:"Te",weekdayWe:"Qa",weekdayTh:"Qi",weekdayFr:"Sx",weekdaySa:"S\xE1",importTitle:"Importar dados",importStepSource:"1. Origem",importStepMap:"2. Mapear colunas",importFile:"Ficheiro CSV",importPaste:"\u2026ou cole linhas",importSeparator:"Separador",importSeparatorAuto:"Detetar automaticamente",importSeparatorComma:"V\xEDrgula ,",importSeparatorSemicolon:"Ponto e v\xEDrgula ;",importSeparatorTab:"Tabula\xE7\xE3o",importSeparatorPipe:"Barra vertical |",importFileColumn:"Coluna do ficheiro",importDetected:"Detetado",importGridColumn:"Coluna da tabela",importSample:"Amostra",importSkip:"\u2014 ignorar \u2014",importPreview:"Pr\xE9-visualiza\xE7\xE3o",importNoSource:"Escolha primeiro um ficheiro ou cole algumas linhas.",importNoRows:"N\xE3o foram encontradas linhas de dados.",importAction:"Importar",exportAborted:"Exporta\xE7\xE3o cancelada",exportSheetName:"Dados",chart:"Gr\xE1fico",chartCategory:"Categoria",chartSeries:"S\xE9rie",chartAddSeries:"Adicionar s\xE9rie",chartRemoveSeries:"Remover",chartSource:"Dados",chartSourceView:"Linhas filtradas",chartSourceSelection:"Linhas selecionadas",chartSourceAll:"Todas as linhas",chartClose:"Fechar o gr\xE1fico",chartFullscreen:"Ecr\xE3 inteiro",chartExitFullscreen:"Sair do ecr\xE3 inteiro",chartExportPng:"PNG",chartExportSvg:"SVG",chartExportFailed:"N\xE3o foi poss\xEDvel exportar o gr\xE1fico.",chartCrossFiltered:"A tabela est\xE1 filtrada por {value}.",chartBlankCategory:"(em branco)",chartTruncated:"A mostrar as {n} principais categorias; as restantes est\xE3o agrupadas como \xABOutros\xBB.",chartOther:"Outros",chartEmpty:"Ainda n\xE3o h\xE1 nada para representar.",chartNeedsRecharts:"Os gr\xE1ficos precisam do pacote opcional `recharts`. Instale-o para os desenhar.",chartOnlyOneSeries:"Este tipo de gr\xE1fico mostra uma s\xE9rie.",chartByColumn:"Gr\xE1fico por esta coluna",chartGroupBy:"Por",chartGroupNone:"Cada valor",chartGroupAuto:"Autom\xE1tico",chartGroupDay:"Dia",chartGroupWeek:"Semana",chartGroupMonth:"M\xEAs",chartGroupQuarter:"Trimestre",chartGroupYear:"Ano",chartGroupBins:"{n} intervalos",chartBucketAdjusted:"Demasiados intervalos para um eixo \u2014 agrupados de forma mais ampla.",chartWindowed:"A mostrar {shown} de {total}.",chartShowAll:"Mostrar tudo",chartCanvasHint:"Gr\xE1fico. Desloque para ampliar, arraste para mover, setas para navegar, 0 para mostrar tudo.",chartAggSum:"Soma",chartAggAvg:"M\xE9dia",chartAggMin:"M\xEDn",chartAggMax:"M\xE1x",chartAggCount:"Contagem",chartAggDistinct:"Distintos",chartTypeColumn:"Colunas",chartTypeBar:"Barras",chartTypeLine:"Linhas",chartTypeArea:"\xC1reas",chartTypePie:"Circular",chartTypeDonut:"Anel",licenseMissing:"Sem licen\xE7a",licenseExpired:"Licen\xE7a expirada",licenseReleaseNotCovered:"Esta vers\xE3o n\xE3o \xE9 coberta pela licen\xE7a",licenseDomainMismatch:"Licen\xE7a n\xE3o v\xE1lida para este dom\xEDnio",licenseRevoked:"Licen\xE7a revogada",licenseInvalidFormat:"Chave de licen\xE7a malformada",licenseInvalidSignature:"Assinatura da licen\xE7a inv\xE1lida",licenseEngineUnavailable:"O navegador n\xE3o consegue verificar a licen\xE7a (HTTPS necess\xE1rio)"},Tl={ok:"\u041E\u041A",cancel:"\u041E\u0442\u043C\u0435\u043D\u0430",apply:"\u041F\u0440\u0438\u043C\u0435\u043D\u0438\u0442\u044C",close:"\u0417\u0430\u043A\u0440\u044B\u0442\u044C",clear:"\u041E\u0447\u0438\u0441\u0442\u0438\u0442\u044C",save:"\u0421\u043E\u0445\u0440\u0430\u043D\u0438\u0442\u044C",search:"\u041F\u043E\u0438\u0441\u043A...",selectAll:"\u0412\u044B\u0431\u0440\u0430\u0442\u044C \u0432\u0441\u0435",showAll:"\u041F\u043E\u043A\u0430\u0437\u0430\u0442\u044C \u0432\u0441\u0435",remove:"\u0423\u0434\u0430\u043B\u0438\u0442\u044C",none:"\u041D\u0435\u0442",toolbarSearch:"\u041F\u043E\u0438\u0441\u043A...",exportMenu:"\u042D\u043A\u0441\u043F\u043E\u0440\u0442",exportCsv:"\u042D\u043A\u0441\u043F\u043E\u0440\u0442 \u0432 CSV",exportExcel:"\u042D\u043A\u0441\u043F\u043E\u0440\u0442\u0438\u0440\u043E\u0432\u0430\u0442\u044C \u0432\u0441\u0435 \u0434\u0430\u043D\u043D\u044B\u0435 \u0432 Excel",exportExcelSelected:"\u042D\u043A\u0441\u043F\u043E\u0440\u0442\u0438\u0440\u043E\u0432\u0430\u0442\u044C \u0432\u044B\u0431\u0440\u0430\u043D\u043D\u044B\u0435 \u0441\u0442\u0440\u043E\u043A\u0438 \u0432 Excel",exportPdf:"\u042D\u043A\u0441\u043F\u043E\u0440\u0442 \u0432 PDF",exporting:"\u042D\u043A\u0441\u043F\u043E\u0440\u0442\u2026",columns:"\u0421\u0442\u043E\u043B\u0431\u0446\u044B",hiddenColumns:"\u0421\u043A\u0440\u044B\u0442\u044B\u0435 \u0441\u0442\u043E\u043B\u0431\u0446\u044B",noHiddenColumns:"\u0421\u043A\u0440\u044B\u0442\u044B\u0445 \u0441\u0442\u043E\u043B\u0431\u0446\u043E\u0432 \u043D\u0435\u0442.",sortAsc:"\u0421\u043E\u0440\u0442\u0438\u0440\u043E\u0432\u0430\u0442\u044C \u043E\u0442 \u0410 \u0434\u043E \u042F",sortDesc:"\u0421\u043E\u0440\u0442\u0438\u0440\u043E\u0432\u0430\u0442\u044C \u043E\u0442 \u042F \u0434\u043E \u0410",clearSort:"\u041E\u0447\u0438\u0441\u0442\u0438\u0442\u044C \u0441\u043E\u0440\u0442\u0438\u0440\u043E\u0432\u043A\u0443",groupByColumn:"\u0413\u0440\u0443\u043F\u043F\u0438\u0440\u043E\u0432\u0430\u0442\u044C \u043F\u043E \u044D\u0442\u043E\u043C\u0443 \u0441\u0442\u043E\u043B\u0431\u0446\u0443",ungroupColumn:"\u0423\u0431\u0440\u0430\u0442\u044C \u0438\u0437 \u0433\u0440\u0443\u043F\u043F\u0438\u0440\u043E\u0432\u043A\u0438",showGroupPanel:"\u041F\u043E\u043A\u0430\u0437\u0430\u0442\u044C \u043F\u0430\u043D\u0435\u043B\u044C \u0433\u0440\u0443\u043F\u043F\u0438\u0440\u043E\u0432\u043A\u0438",hideGroupPanel:"\u0421\u043A\u0440\u044B\u0442\u044C \u043F\u0430\u043D\u0435\u043B\u044C \u0433\u0440\u0443\u043F\u043F\u0438\u0440\u043E\u0432\u043A\u0438",showFooter:"\u041F\u043E\u043A\u0430\u0437\u0430\u0442\u044C \u0438\u0442\u043E\u0433\u0438",hideFooter:"\u0421\u043A\u0440\u044B\u0442\u044C \u0438\u0442\u043E\u0433\u0438",showGroupFooters:"\u041F\u043E\u043A\u0430\u0437\u0430\u0442\u044C \u0438\u0442\u043E\u0433\u0438 \u043F\u043E \u0433\u0440\u0443\u043F\u043F\u0430\u043C",hideGroupFooters:"\u0421\u043A\u0440\u044B\u0442\u044C \u0438\u0442\u043E\u0433\u0438 \u043F\u043E \u0433\u0440\u0443\u043F\u043F\u0430\u043C",hideColumn:"\u0421\u043A\u0440\u044B\u0442\u044C \u044D\u0442\u043E\u0442 \u0441\u0442\u043E\u043B\u0431\u0435\u0446",fieldChooser:"\u0412\u044B\u0431\u043E\u0440 \u043F\u043E\u043B\u0435\u0439\u2026",bestFit:"\u041F\u043E\u0434\u043E\u0431\u0440\u0430\u0442\u044C \u0448\u0438\u0440\u0438\u043D\u0443",bestFitAll:"\u041F\u043E\u0434\u043E\u0431\u0440\u0430\u0442\u044C \u0448\u0438\u0440\u0438\u043D\u0443 (\u0432\u0441\u0435 \u0441\u0442\u043E\u043B\u0431\u0446\u044B)",fixedPosition:"\u0417\u0430\u0434\u0430\u0442\u044C \u0444\u0438\u043A\u0441\u0438\u0440\u043E\u0432\u0430\u043D\u043D\u0443\u044E \u043F\u043E\u0437\u0438\u0446\u0438\u044E",pinLeft:"\u0421\u043B\u0435\u0432\u0430",pinRight:"\u0421\u043F\u0440\u0430\u0432\u0430",pinSticky:"\u0417\u0430\u043A\u0440\u0435\u043F\u043B\u0451\u043D",unpin:"\u041E\u0442\u043A\u0440\u0435\u043F\u0438\u0442\u044C",moveLeft:"\u041F\u0435\u0440\u0435\u043C\u0435\u0441\u0442\u0438\u0442\u044C \u0432\u043B\u0435\u0432\u043E",moveRight:"\u041F\u0435\u0440\u0435\u043C\u0435\u0441\u0442\u0438\u0442\u044C \u0432\u043F\u0440\u0430\u0432\u043E",filterPlaceholder:"\u0424\u0438\u043B\u044C\u0442\u0440\u2026",filterColumnAria:"\u0424\u0438\u043B\u044C\u0442\u0440 \xAB{column}\xBB",filterSelectAll:"\u0412\u044B\u0431\u0440\u0430\u0442\u044C \u0432\u0441\u0435",filterBlank:"(\u041F\u0443\u0441\u0442\u043E)",filterNoMatch:"\u0421\u043E\u0432\u043F\u0430\u0434\u0435\u043D\u0438\u0439 \u043D\u0435\u0442",filterLoading:"\u0417\u0430\u0433\u0440\u0443\u0437\u043A\u0430 \u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0439\u2026",filterTruncated:"\u041F\u043E\u043A\u0430\u0437\u0430\u043D\u044B \u0442\u043E\u043B\u044C\u043A\u043E \u043F\u0435\u0440\u0432\u044B\u0435 \u0437\u043D\u0430\u0447\u0435\u043D\u0438\u044F \u2014 \u0432\u043E\u0441\u043F\u043E\u043B\u044C\u0437\u0443\u0439\u0442\u0435\u0441\u044C \u043F\u043E\u0438\u0441\u043A\u043E\u043C, \u0447\u0442\u043E\u0431\u044B \u043D\u0430\u0439\u0442\u0438 \u043E\u0441\u0442\u0430\u043B\u044C\u043D\u044B\u0435.",filterRemove:"\u0423\u0431\u0440\u0430\u0442\u044C \u0444\u0438\u043B\u044C\u0442\u0440",filterToggle:"\u041F\u0440\u0438\u043C\u0435\u043D\u0438\u0442\u044C \u0444\u0438\u043B\u044C\u0442\u0440",filterEditBuilder:"\u0418\u0437\u043C\u0435\u043D\u0438\u0442\u044C \u0444\u0438\u043B\u044C\u0442\u0440",filterNone:"\u0424\u0438\u043B\u044C\u0442\u0440\u0430 \u043D\u0435\u0442",filterActive:"\u0424\u0438\u043B\u044C\u0442\u0440 \u0430\u043A\u0442\u0438\u0432\u0435\u043D",opEquals:"\u0440\u0430\u0432\u043D\u043E",opNotEquals:"\u043D\u0435 \u0440\u0430\u0432\u043D\u043E",opGreater:">",opGreaterOrEqual:"\u2265",opLess:"<",opLessOrEqual:"\u2264",opContains:"\u0441\u043E\u0434\u0435\u0440\u0436\u0438\u0442",opNotContains:"\u043D\u0435 \u0441\u043E\u0434\u0435\u0440\u0436\u0438\u0442",opStartsWith:"\u043D\u0430\u0447\u0438\u043D\u0430\u0435\u0442\u0441\u044F \u0441",opEndsWith:"\u0437\u0430\u043A\u0430\u043D\u0447\u0438\u0432\u0430\u0435\u0442\u0441\u044F \u043D\u0430",opIsBlank:"\u043F\u0443\u0441\u0442\u043E",opIsNotBlank:"\u043D\u0435 \u043F\u0443\u0441\u0442\u043E",opIsOneOf:"\u043E\u0434\u043D\u043E \u0438\u0437",opIsBetween:"\u043C\u0435\u0436\u0434\u0443",opValuesCount:"\u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0439: {n}",filterAnd:"\u0418",filterOr:"\u0418\u041B\u0418",builderTitle:"\u041A\u043E\u043D\u0441\u0442\u0440\u0443\u043A\u0442\u043E\u0440 \u0444\u0438\u043B\u044C\u0442\u0440\u0430",builderCombine:"\u041E\u0431\u044A\u0435\u0434\u0438\u043D\u0438\u0442\u044C \u0443\u0441\u043B\u043E\u0432\u0438\u044F \u043E\u043F\u0435\u0440\u0430\u0442\u043E\u0440\u043E\u043C",builderAddCondition:"\u0414\u043E\u0431\u0430\u0432\u0438\u0442\u044C \u0443\u0441\u043B\u043E\u0432\u0438\u0435",builderAddGroup:"\u0414\u043E\u0431\u0430\u0432\u0438\u0442\u044C \u0433\u0440\u0443\u043F\u043F\u0443",builderRemoveGroup:"\u0423\u0434\u0430\u043B\u0438\u0442\u044C \u0433\u0440\u0443\u043F\u043F\u0443",builderRemoveCondition:"\u0423\u0434\u0430\u043B\u0438\u0442\u044C \u0443\u0441\u043B\u043E\u0432\u0438\u0435",builderEmpty:"\u0423\u0441\u043B\u043E\u0432\u0438\u0439 \u043F\u043E\u043A\u0430 \u043D\u0435\u0442.",builderColumn:"\u0421\u0442\u043E\u043B\u0431\u0435\u0446",builderOperator:"\u041E\u043F\u0435\u0440\u0430\u0442\u043E\u0440",builderValue:"\u0417\u043D\u0430\u0447\u0435\u043D\u0438\u0435",builderValueFrom:"\u041E\u0442",builderValueTo:"\u0414\u043E",builderValuePlaceholder:"\u0412\u0432\u0435\u0434\u0438\u0442\u0435 \u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0435",groupPanelHint:"\u041F\u0435\u0440\u0435\u0442\u0430\u0449\u0438\u0442\u0435 \u0441\u044E\u0434\u0430 \u0441\u0442\u043E\u043B\u0431\u0435\u0446, \u0447\u0442\u043E\u0431\u044B \u0441\u0433\u0440\u0443\u043F\u043F\u0438\u0440\u043E\u0432\u0430\u0442\u044C \u043F\u043E \u043D\u0435\u043C\u0443",groupAddLevel:"\u0414\u043E\u0431\u0430\u0432\u0438\u0442\u044C \u0443\u0440\u043E\u0432\u0435\u043D\u044C \u0433\u0440\u0443\u043F\u043F\u0438\u0440\u043E\u0432\u043A\u0438",groupAddLevelButton:"+ \u0414\u043E\u0431\u0430\u0432\u0438\u0442\u044C \u0443\u0440\u043E\u0432\u0435\u043D\u044C\u2026",groupNoGrouping:"(\u0431\u0435\u0437 \u0433\u0440\u0443\u043F\u043F\u0438\u0440\u043E\u0432\u043A\u0438)",groupLevelAria:"\u0423\u0440\u043E\u0432\u0435\u043D\u044C \u0433\u0440\u0443\u043F\u043F\u0438\u0440\u043E\u0432\u043A\u0438 {n}",groupRemoveAria:"\u0423\u0434\u0430\u043B\u0438\u0442\u044C {column}",pagerFirst:"\u041F\u0435\u0440\u0432\u0430\u044F \u0441\u0442\u0440\u0430\u043D\u0438\u0446\u0430",pagerPrevious:"\u041F\u0440\u0435\u0434\u044B\u0434\u0443\u0449\u0430\u044F \u0441\u0442\u0440\u0430\u043D\u0438\u0446\u0430",pagerNext:"\u0421\u043B\u0435\u0434\u0443\u044E\u0449\u0430\u044F \u0441\u0442\u0440\u0430\u043D\u0438\u0446\u0430",pagerLast:"\u041F\u043E\u0441\u043B\u0435\u0434\u043D\u044F\u044F \u0441\u0442\u0440\u0430\u043D\u0438\u0446\u0430",pagerPage:"\u0421\u0442\u0440\u0430\u043D\u0438\u0446\u0430",pagerOf:"\u0438\u0437",pagerRowsPerPage:"\u0421\u0442\u0440\u043E\u043A \u043D\u0430 \u0441\u0442\u0440\u0430\u043D\u0438\u0446\u0435",pagerAria:"\u041F\u043E\u0441\u0442\u0440\u0430\u043D\u0438\u0447\u043D\u0430\u044F \u043D\u0430\u0432\u0438\u0433\u0430\u0446\u0438\u044F",selectAllRows:"\u0412\u044B\u0431\u0440\u0430\u0442\u044C \u0432\u0441\u0435 \u0441\u0442\u0440\u043E\u043A\u0438",selectRowAria:"\u0412\u044B\u0431\u0440\u0430\u0442\u044C \u0441\u0442\u0440\u043E\u043A\u0443 {row}",summaryAria:"\u0421\u0432\u043E\u0434\u043A\u0430",columnTotalsAria:"\u0418\u0442\u043E\u0433\u0438 \u043F\u043E \u0441\u0442\u043E\u043B\u0431\u0446\u0430\u043C",rowActions:"\u0414\u0435\u0439\u0441\u0442\u0432\u0438\u044F \u0441\u043E \u0441\u0442\u0440\u043E\u043A\u043E\u0439",detailsAria:"\u041F\u043E\u0434\u0440\u043E\u0431\u043D\u043E\u0441\u0442\u0438",rowNumberAria:"\u041D\u043E\u043C\u0435\u0440 \u0441\u0442\u0440\u043E\u043A\u0438",noteEditorAria:"\u041F\u0440\u0438\u043C\u0435\u0447\u0430\u043D\u0438\u0435 \u043A \u044F\u0447\u0435\u0439\u043A\u0435",notePlaceholder:"\u041D\u0430\u043F\u0438\u0448\u0438\u0442\u0435 \u043F\u0440\u0438\u043C\u0435\u0447\u0430\u043D\u0438\u0435 \u043A \u044D\u0442\u043E\u0439 \u044F\u0447\u0435\u0439\u043A\u0435\u2026",addNote:"\u0414\u043E\u0431\u0430\u0432\u0438\u0442\u044C \u043F\u0440\u0438\u043C\u0435\u0447\u0430\u043D\u0438\u0435\u2026",editNote:"\u0418\u0437\u043C\u0435\u043D\u0438\u0442\u044C \u043F\u0440\u0438\u043C\u0435\u0447\u0430\u043D\u0438\u0435\u2026",deleteNote:"\u0423\u0434\u0430\u043B\u0438\u0442\u044C \u043F\u0440\u0438\u043C\u0435\u0447\u0430\u043D\u0438\u0435",expandDetails:"\u0420\u0430\u0437\u0432\u0435\u0440\u043D\u0443\u0442\u044C \u043F\u043E\u0434\u0440\u043E\u0431\u043D\u043E\u0441\u0442\u0438",collapseDetails:"\u0421\u0432\u0435\u0440\u043D\u0443\u0442\u044C \u043F\u043E\u0434\u0440\u043E\u0431\u043D\u043E\u0441\u0442\u0438",dragToReorder:"\u041F\u0435\u0440\u0435\u0442\u0430\u0449\u0438\u0442\u0435, \u0447\u0442\u043E\u0431\u044B \u0438\u0437\u043C\u0435\u043D\u0438\u0442\u044C \u043F\u043E\u0440\u044F\u0434\u043E\u043A",menuCopy:"\u041A\u043E\u043F\u0438\u0440\u043E\u0432\u0430\u0442\u044C",menuCopyWithHeaders:"\u041A\u043E\u043F\u0438\u0440\u043E\u0432\u0430\u0442\u044C \u0441 \u0437\u0430\u0433\u043E\u043B\u043E\u0432\u043A\u0430\u043C\u0438",menuCopyWithGroupHeaders:"\u041A\u043E\u043F\u0438\u0440\u043E\u0432\u0430\u0442\u044C \u0441 \u0437\u0430\u0433\u043E\u043B\u043E\u0432\u043A\u0430\u043C\u0438 \u0433\u0440\u0443\u043F\u043F",menuCut:"\u0412\u044B\u0440\u0435\u0437\u0430\u0442\u044C",menuPaste:"\u0412\u0441\u0442\u0430\u0432\u0438\u0442\u044C",menuExport:"\u042D\u043A\u0441\u043F\u043E\u0440\u0442",menuChartRange:"\u0414\u0438\u0430\u0433\u0440\u0430\u043C\u043C\u0430 \u043F\u043E \u0432\u044B\u0431\u0440\u0430\u043D\u043D\u044B\u043C \u0441\u0442\u043E\u043B\u0431\u0446\u0430\u043C",statsSum:"\u0421\u0443\u043C\u043C\u0430",statsCount:"\u041A\u043E\u043B\u0438\u0447\u0435\u0441\u0442\u0432\u043E",statsAvg:"\u0421\u0440\u0435\u0434\u043D\u0435\u0435",statsMin:"\u041C\u0438\u043D",statsMax:"\u041C\u0430\u043A\u0441",statsCells:"\u042F\u0447\u0435\u0439\u043A\u0438",statsTooLarge:"\u0412\u044B\u0434\u0435\u043B\u0435\u043D\u0438\u0435 \u0441\u043B\u0438\u0448\u043A\u043E\u043C \u0432\u0435\u043B\u0438\u043A\u043E \u0434\u043B\u044F \u043F\u043E\u0434\u0441\u0447\u0451\u0442\u0430",statusRows:"\u0421\u0442\u0440\u043E\u043A\u0438",statusFiltered:"\u041E\u0442\u0444\u0438\u043B\u044C\u0442\u0440\u043E\u0432\u0430\u043D\u043E",statusSelected:"\u0412\u044B\u0431\u0440\u0430\u043D\u043E",summaryRows:"\u0441\u0442\u0440\u043E\u043A",announceRows:"\u0421\u0442\u0440\u043E\u043A: {n}",announceSortedBy:"\u0441\u043E\u0440\u0442\u0438\u0440\u043E\u0432\u043A\u0430 \u043F\u043E {columns}",announceSelected:"\u0432\u044B\u0431\u0440\u0430\u043D\u043E: {n}",announceAscending:"\u043F\u043E \u0432\u043E\u0437\u0440\u0430\u0441\u0442\u0430\u043D\u0438\u044E",announceDescending:"\u043F\u043E \u0443\u0431\u044B\u0432\u0430\u043D\u0438\u044E",sideFilters:"\u0424\u0438\u043B\u044C\u0442\u0440\u044B",sideBarAria:"\u041F\u0430\u043D\u0435\u043B\u0438 \u0438\u043D\u0441\u0442\u0440\u0443\u043C\u0435\u043D\u0442\u043E\u0432",sideClearFilters:"\u041E\u0447\u0438\u0441\u0442\u0438\u0442\u044C \u0432\u0441\u0435 \u0444\u0438\u043B\u044C\u0442\u0440\u044B",summarySum:"\u0421\u0443\u043C\u043C\u0430",summaryAvg:"\u0421\u0440\u0435\u0434\u043D\u0435\u0435",summaryMin:"\u041C\u0438\u043D",summaryMax:"\u041C\u0430\u043A\u0441",summaryCount:"\u041A\u043E\u043B\u0438\u0447\u0435\u0441\u0442\u0432\u043E",summaryDistinct:"\u0423\u043D\u0438\u043A\u0430\u043B\u044C\u043D\u044B\u0435",summaryCustom:"\u041F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044C\u0441\u043A\u0438\u0439",noTotal:"\u041D\u0435\u0442 \u0438\u0442\u043E\u0433\u0430",busy:"\u0412\u044B\u043F\u043E\u043B\u043D\u044F\u0435\u0442\u0441\u044F\u2026",busyLoading:"\u0417\u0430\u0433\u0440\u0443\u0437\u043A\u0430 \u0441\u0442\u0440\u043E\u043A\u2026",busyEncoding:"\u041F\u043E\u0434\u0433\u043E\u0442\u043E\u0432\u043A\u0430 \u0434\u0430\u043D\u043D\u044B\u0445\u2026",busyFiltering:"\u0424\u0438\u043B\u044C\u0442\u0440\u0430\u0446\u0438\u044F \u0441\u0442\u0440\u043E\u043A\u2026",busySorting:"\u0421\u043E\u0440\u0442\u0438\u0440\u043E\u0432\u043A\u0430 \u0441\u0442\u0440\u043E\u043A\u2026",busyComputing:"\u0424\u0438\u043B\u044C\u0442\u0440\u0430\u0446\u0438\u044F \u0438 \u0441\u043E\u0440\u0442\u0438\u0440\u043E\u0432\u043A\u0430\u2026",busyGrouping:"\u041F\u043E\u0441\u0442\u0440\u043E\u0435\u043D\u0438\u0435 \u0433\u0440\u0443\u043F\u043F\u2026",busyAggregating:"\u0412\u044B\u0447\u0438\u0441\u043B\u0435\u043D\u0438\u0435 \u0438\u0442\u043E\u0433\u043E\u0432\u2026",busyProjecting:"\u041E\u0431\u043D\u043E\u0432\u043B\u0435\u043D\u0438\u0435 \u043F\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043B\u0435\u043D\u0438\u044F\u2026",busyExporting:"\u0421\u043E\u0437\u0434\u0430\u043D\u0438\u0435 \u0444\u0430\u0439\u043B\u0430\u2026",noData:"\u0414\u0430\u043D\u043D\u044B\u0435 \u043D\u0435 \u043D\u0430\u0439\u0434\u0435\u043D\u044B",editNewRow:"\u041D\u043E\u0432\u0430\u044F \u0441\u0442\u0440\u043E\u043A\u0430",editSaveChanges:"\u0421\u043E\u0445\u0440\u0430\u043D\u0438\u0442\u044C \u0438\u0437\u043C\u0435\u043D\u0435\u043D\u0438\u044F",editDiscardChanges:"\u041E\u0442\u043C\u0435\u043D\u0438\u0442\u044C \u0438\u0437\u043C\u0435\u043D\u0435\u043D\u0438\u044F",editRow:"\u0418\u0437\u043C\u0435\u043D\u0438\u0442\u044C \u0441\u0442\u0440\u043E\u043A\u0443",editRowMenu:"\u0418\u0437\u043C\u0435\u043D\u0438\u0442\u044C \u0441\u0442\u0440\u043E\u043A\u0443\u2026",editDeleteRow:"\u0423\u0434\u0430\u043B\u0438\u0442\u044C \u0441\u0442\u0440\u043E\u043A\u0443",editUndoDelete:"\u041E\u0442\u043C\u0435\u043D\u0438\u0442\u044C \u0443\u0434\u0430\u043B\u0435\u043D\u0438\u0435",editActions:"\u0414\u0435\u0439\u0441\u0442\u0432\u0438\u044F",editSaveRow:"\u0421\u043E\u0445\u0440\u0430\u043D\u0438\u0442\u044C \u0441\u0442\u0440\u043E\u043A\u0443",editSaving:"\u0421\u043E\u0445\u0440\u0430\u043D\u0435\u043D\u0438\u0435\u2026",editEditingRow:"\u0418\u0437\u043C\u0435\u043D\u0435\u043D\u0438\u0435 \u0441\u0442\u0440\u043E\u043A\u0438 {row}",editSaveCount:"\u0421\u043E\u0445\u0440\u0430\u043D\u0438\u0442\u044C \u0441\u0442\u0440\u043E\u043A: {n}",editCannotSave:"\u041D\u0435 \u0443\u0434\u0430\u0451\u0442\u0441\u044F \u0441\u043E\u0445\u0440\u0430\u043D\u0438\u0442\u044C",editSaveFailed:"\u041D\u0435 \u0443\u0434\u0430\u043B\u043E\u0441\u044C \u0441\u043E\u0445\u0440\u0430\u043D\u0438\u0442\u044C \u0438\u0437\u043C\u0435\u043D\u0435\u043D\u0438\u044F.",editDeleteConfirm:"\u0423\u0434\u0430\u043B\u0438\u0442\u044C \u044D\u0442\u0443 \u0441\u0442\u0440\u043E\u043A\u0443?",editAddRowUndo:"\u0414\u043E\u0431\u0430\u0432\u043B\u0435\u043D\u0438\u0435 \u0441\u0442\u0440\u043E\u043A\u0438",editDeleteRowUndo:"\u0423\u0434\u0430\u043B\u0435\u043D\u0438\u0435 \u0441\u0442\u0440\u043E\u043A\u0438",editCellUndo:"\u0418\u0437\u043C\u0435\u043D\u0438\u0442\u044C {column}",editFillUndo:"\u0417\u0430\u043F\u043E\u043B\u043D\u0438\u0442\u044C {count} \u044F\u0447\u0435\u0435\u043A",editPasteUndo:"\u0412\u0441\u0442\u0430\u0432\u0438\u0442\u044C {count} \u044F\u0447\u0435\u0435\u043A",editCutUndo:"\u0412\u044B\u0440\u0435\u0437\u0430\u0442\u044C {count} \u044F\u0447\u0435\u0435\u043A",editNoMatch:"\u0421\u043E\u0432\u043F\u0430\u0434\u0435\u043D\u0438\u0439 \u043D\u0435\u0442",formEditTitle:"\u0418\u0437\u043C\u0435\u043D\u0438\u0442\u044C \u0441\u0442\u0440\u043E\u043A\u0443",formAddTitle:"\u041D\u043E\u0432\u0430\u044F \u0441\u0442\u0440\u043E\u043A\u0430",formShortcut:"{key}+Enter \u2014 \u0441\u043E\u0445\u0440\u0430\u043D\u0438\u0442\u044C \xB7 Esc \u2014 \u043E\u0442\u043C\u0435\u043D\u0438\u0442\u044C",validationRequired:"\u042D\u0442\u043E \u043F\u043E\u043B\u0435 \u043E\u0431\u044F\u0437\u0430\u0442\u0435\u043B\u044C\u043D\u043E",validationNumber:"\u0414\u043E\u043B\u0436\u043D\u043E \u0431\u044B\u0442\u044C \u0447\u0438\u0441\u043B\u043E\u043C",validationFormat:"\u041D\u0435\u0432\u0435\u0440\u043D\u044B\u0439 \u0444\u043E\u0440\u043C\u0430\u0442",validationEmail:"\u041D\u0435\u0432\u0435\u0440\u043D\u044B\u0439 \u0430\u0434\u0440\u0435\u0441 \u044D\u043B\u0435\u043A\u0442\u0440\u043E\u043D\u043D\u043E\u0439 \u043F\u043E\u0447\u0442\u044B",validationInvalid:"\u041D\u0435\u0432\u0435\u0440\u043D\u043E\u0435 \u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0435",dateCalendar:"\u041A\u0430\u043B\u0435\u043D\u0434\u0430\u0440\u044C",dateOpenCalendar:"\u041E\u0442\u043A\u0440\u044B\u0442\u044C \u043A\u0430\u043B\u0435\u043D\u0434\u0430\u0440\u044C",datePreviousMonth:"\u041F\u0440\u0435\u0434\u044B\u0434\u0443\u0449\u0438\u0439 \u043C\u0435\u0441\u044F\u0446",dateNextMonth:"\u0421\u043B\u0435\u0434\u0443\u044E\u0449\u0438\u0439 \u043C\u0435\u0441\u044F\u0446",monthJanuary:"\u042F\u043D\u0432\u0430\u0440\u044C",monthFebruary:"\u0424\u0435\u0432\u0440\u0430\u043B\u044C",monthMarch:"\u041C\u0430\u0440\u0442",monthApril:"\u0410\u043F\u0440\u0435\u043B\u044C",monthMay:"\u041C\u0430\u0439",monthJune:"\u0418\u044E\u043D\u044C",monthJuly:"\u0418\u044E\u043B\u044C",monthAugust:"\u0410\u0432\u0433\u0443\u0441\u0442",monthSeptember:"\u0421\u0435\u043D\u0442\u044F\u0431\u0440\u044C",monthOctober:"\u041E\u043A\u0442\u044F\u0431\u0440\u044C",monthNovember:"\u041D\u043E\u044F\u0431\u0440\u044C",monthDecember:"\u0414\u0435\u043A\u0430\u0431\u0440\u044C",weekStartsOn:"1",weekdaySu:"\u0412\u0441",weekdayMo:"\u041F\u043D",weekdayTu:"\u0412\u0442",weekdayWe:"\u0421\u0440",weekdayTh:"\u0427\u0442",weekdayFr:"\u041F\u0442",weekdaySa:"\u0421\u0431",importTitle:"\u0418\u043C\u043F\u043E\u0440\u0442 \u0434\u0430\u043D\u043D\u044B\u0445",importStepSource:"1. \u0418\u0441\u0442\u043E\u0447\u043D\u0438\u043A",importStepMap:"2. \u0421\u043E\u043F\u043E\u0441\u0442\u0430\u0432\u043B\u0435\u043D\u0438\u0435 \u0441\u0442\u043E\u043B\u0431\u0446\u043E\u0432",importFile:"\u0424\u0430\u0439\u043B CSV",importPaste:"\u2026\u0438\u043B\u0438 \u0432\u0441\u0442\u0430\u0432\u044C\u0442\u0435 \u0441\u0442\u0440\u043E\u043A\u0438",importSeparator:"\u0420\u0430\u0437\u0434\u0435\u043B\u0438\u0442\u0435\u043B\u044C",importSeparatorAuto:"\u041E\u043F\u0440\u0435\u0434\u0435\u043B\u0438\u0442\u044C \u0430\u0432\u0442\u043E\u043C\u0430\u0442\u0438\u0447\u0435\u0441\u043A\u0438",importSeparatorComma:"\u0417\u0430\u043F\u044F\u0442\u0430\u044F ,",importSeparatorSemicolon:"\u0422\u043E\u0447\u043A\u0430 \u0441 \u0437\u0430\u043F\u044F\u0442\u043E\u0439 ;",importSeparatorTab:"\u0422\u0430\u0431\u0443\u043B\u044F\u0446\u0438\u044F",importSeparatorPipe:"\u0412\u0435\u0440\u0442\u0438\u043A\u0430\u043B\u044C\u043D\u0430\u044F \u0447\u0435\u0440\u0442\u0430 |",importFileColumn:"\u0421\u0442\u043E\u043B\u0431\u0435\u0446 \u0444\u0430\u0439\u043B\u0430",importDetected:"\u041E\u043F\u0440\u0435\u0434\u0435\u043B\u0435\u043D\u043E",importGridColumn:"\u0421\u0442\u043E\u043B\u0431\u0435\u0446 \u0442\u0430\u0431\u043B\u0438\u0446\u044B",importSample:"\u041F\u0440\u0438\u043C\u0435\u0440",importSkip:"\u2014 \u043F\u0440\u043E\u043F\u0443\u0441\u0442\u0438\u0442\u044C \u2014",importPreview:"\u041F\u0440\u0435\u0434\u043F\u0440\u043E\u0441\u043C\u043E\u0442\u0440",importNoSource:"\u0421\u043D\u0430\u0447\u0430\u043B\u0430 \u0432\u044B\u0431\u0435\u0440\u0438\u0442\u0435 \u0444\u0430\u0439\u043B \u0438\u043B\u0438 \u0432\u0441\u0442\u0430\u0432\u044C\u0442\u0435 \u0441\u0442\u0440\u043E\u043A\u0438.",importNoRows:"\u0421\u0442\u0440\u043E\u043A\u0438 \u0434\u0430\u043D\u043D\u044B\u0445 \u043D\u0435 \u043D\u0430\u0439\u0434\u0435\u043D\u044B.",importAction:"\u0418\u043C\u043F\u043E\u0440\u0442",exportAborted:"\u042D\u043A\u0441\u043F\u043E\u0440\u0442 \u043F\u0440\u0435\u0440\u0432\u0430\u043D",exportSheetName:"\u0414\u0430\u043D\u043D\u044B\u0435",chart:"\u0414\u0438\u0430\u0433\u0440\u0430\u043C\u043C\u0430",chartCategory:"\u041A\u0430\u0442\u0435\u0433\u043E\u0440\u0438\u044F",chartSeries:"\u0420\u044F\u0434",chartAddSeries:"\u0414\u043E\u0431\u0430\u0432\u0438\u0442\u044C \u0440\u044F\u0434",chartRemoveSeries:"\u0423\u0434\u0430\u043B\u0438\u0442\u044C",chartSource:"\u0414\u0430\u043D\u043D\u044B\u0435",chartSourceView:"\u041E\u0442\u0444\u0438\u043B\u044C\u0442\u0440\u043E\u0432\u0430\u043D\u043D\u044B\u0435 \u0441\u0442\u0440\u043E\u043A\u0438",chartSourceSelection:"\u0412\u044B\u0431\u0440\u0430\u043D\u043D\u044B\u0435 \u0441\u0442\u0440\u043E\u043A\u0438",chartSourceAll:"\u0412\u0441\u0435 \u0441\u0442\u0440\u043E\u043A\u0438",chartClose:"\u0417\u0430\u043A\u0440\u044B\u0442\u044C \u0434\u0438\u0430\u0433\u0440\u0430\u043C\u043C\u0443",chartFullscreen:"\u0412\u043E \u0432\u0435\u0441\u044C \u044D\u043A\u0440\u0430\u043D",chartExitFullscreen:"\u0412\u044B\u0439\u0442\u0438 \u0438\u0437 \u043F\u043E\u043B\u043D\u043E\u044D\u043A\u0440\u0430\u043D\u043D\u043E\u0433\u043E \u0440\u0435\u0436\u0438\u043C\u0430",chartExportPng:"PNG",chartExportSvg:"SVG",chartExportFailed:"\u041D\u0435 \u0443\u0434\u0430\u043B\u043E\u0441\u044C \u044D\u043A\u0441\u043F\u043E\u0440\u0442\u0438\u0440\u043E\u0432\u0430\u0442\u044C \u0434\u0438\u0430\u0433\u0440\u0430\u043C\u043C\u0443.",chartCrossFiltered:"\u0422\u0430\u0431\u043B\u0438\u0446\u0430 \u043E\u0442\u0444\u0438\u043B\u044C\u0442\u0440\u043E\u0432\u0430\u043D\u0430 \u043F\u043E \u0437\u043D\u0430\u0447\u0435\u043D\u0438\u044E {value}.",chartBlankCategory:"(\u043F\u0443\u0441\u0442\u043E)",chartTruncated:"\u041F\u043E\u043A\u0430\u0437\u0430\u043D\u044B {n} \u043E\u0441\u043D\u043E\u0432\u043D\u044B\u0445 \u043A\u0430\u0442\u0435\u0433\u043E\u0440\u0438\u0439; \u043E\u0441\u0442\u0430\u043B\u044C\u043D\u044B\u0435 \u043E\u0431\u044A\u0435\u0434\u0438\u043D\u0435\u043D\u044B \u043A\u0430\u043A \xAB\u041F\u0440\u043E\u0447\u0435\u0435\xBB.",chartOther:"\u041F\u0440\u043E\u0447\u0435\u0435",chartEmpty:"\u041F\u043E\u043A\u0430 \u043D\u0435\u0447\u0435\u0433\u043E \u043E\u0442\u043E\u0431\u0440\u0430\u0436\u0430\u0442\u044C.",chartNeedsRecharts:"\u0414\u043B\u044F \u0434\u0438\u0430\u0433\u0440\u0430\u043C\u043C \u043D\u0443\u0436\u0435\u043D \u043D\u0435\u043E\u0431\u044F\u0437\u0430\u0442\u0435\u043B\u044C\u043D\u044B\u0439 \u043F\u0430\u043A\u0435\u0442 `recharts`. \u0423\u0441\u0442\u0430\u043D\u043E\u0432\u0438\u0442\u0435 \u0435\u0433\u043E, \u0447\u0442\u043E\u0431\u044B \u0438\u0445 \u0440\u0438\u0441\u043E\u0432\u0430\u0442\u044C.",chartOnlyOneSeries:"\u042D\u0442\u043E\u0442 \u0442\u0438\u043F \u0434\u0438\u0430\u0433\u0440\u0430\u043C\u043C\u044B \u043F\u043E\u043A\u0430\u0437\u044B\u0432\u0430\u0435\u0442 \u043E\u0434\u0438\u043D \u0440\u044F\u0434.",chartByColumn:"\u0414\u0438\u0430\u0433\u0440\u0430\u043C\u043C\u0430 \u043F\u043E \u044D\u0442\u043E\u043C\u0443 \u0441\u0442\u043E\u043B\u0431\u0446\u0443",chartGroupBy:"\u041F\u043E",chartGroupNone:"\u041A\u0430\u0436\u0434\u043E\u0435 \u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0435",chartGroupAuto:"\u0410\u0432\u0442\u043E\u043C\u0430\u0442\u0438\u0447\u0435\u0441\u043A\u0438",chartGroupDay:"\u0414\u0435\u043D\u044C",chartGroupWeek:"\u041D\u0435\u0434\u0435\u043B\u044F",chartGroupMonth:"\u041C\u0435\u0441\u044F\u0446",chartGroupQuarter:"\u041A\u0432\u0430\u0440\u0442\u0430\u043B",chartGroupYear:"\u0413\u043E\u0434",chartGroupBins:"\u0438\u043D\u0442\u0435\u0440\u0432\u0430\u043B\u043E\u0432: {n}",chartBucketAdjusted:"\u0421\u043B\u0438\u0448\u043A\u043E\u043C \u043C\u043D\u043E\u0433\u043E \u0438\u043D\u0442\u0435\u0440\u0432\u0430\u043B\u043E\u0432 \u0434\u043B\u044F \u043E\u0434\u043D\u043E\u0439 \u043E\u0441\u0438 \u2014 \u0441\u0433\u0440\u0443\u043F\u043F\u0438\u0440\u043E\u0432\u0430\u043D\u043E \u043A\u0440\u0443\u043F\u043D\u0435\u0435.",chartWindowed:"\u041F\u043E\u043A\u0430\u0437\u0430\u043D\u043E {shown} \u0438\u0437 {total}.",chartShowAll:"\u041F\u043E\u043A\u0430\u0437\u0430\u0442\u044C \u0432\u0441\u0435",chartCanvasHint:"\u0414\u0438\u0430\u0433\u0440\u0430\u043C\u043C\u0430. \u041F\u0440\u043E\u043A\u0440\u0443\u0442\u043A\u0430 \u2014 \u043C\u0430\u0441\u0448\u0442\u0430\u0431, \u043F\u0435\u0440\u0435\u0442\u0430\u0441\u043A\u0438\u0432\u0430\u043D\u0438\u0435 \u2014 \u0441\u0434\u0432\u0438\u0433, \u0441\u0442\u0440\u0435\u043B\u043A\u0438 \u2014 \u043F\u0435\u0440\u0435\u043C\u0435\u0449\u0435\u043D\u0438\u0435, 0 \u2014 \u043F\u043E\u043A\u0430\u0437\u0430\u0442\u044C \u0432\u0441\u0435.",chartAggSum:"\u0421\u0443\u043C\u043C\u0430",chartAggAvg:"\u0421\u0440\u0435\u0434\u043D\u0435\u0435",chartAggMin:"\u041C\u0438\u043D",chartAggMax:"\u041C\u0430\u043A\u0441",chartAggCount:"\u041A\u043E\u043B\u0438\u0447\u0435\u0441\u0442\u0432\u043E",chartAggDistinct:"\u0423\u043D\u0438\u043A\u0430\u043B\u044C\u043D\u044B\u0435",chartTypeColumn:"\u0421\u0442\u043E\u043B\u0431\u0446\u044B",chartTypeBar:"\u041F\u043E\u043B\u043E\u0441\u044B",chartTypeLine:"\u041B\u0438\u043D\u0438\u044F",chartTypeArea:"\u041E\u0431\u043B\u0430\u0441\u0442\u044C",chartTypePie:"\u041A\u0440\u0443\u0433\u043E\u0432\u0430\u044F",chartTypeDonut:"\u041A\u043E\u043B\u044C\u0446\u0435\u0432\u0430\u044F",licenseMissing:"\u0411\u0435\u0437 \u043B\u0438\u0446\u0435\u043D\u0437\u0438\u0438",licenseExpired:"\u0421\u0440\u043E\u043A \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u044F \u043B\u0438\u0446\u0435\u043D\u0437\u0438\u0438 \u0438\u0441\u0442\u0451\u043A",licenseReleaseNotCovered:"\u042D\u0442\u0430 \u0432\u0435\u0440\u0441\u0438\u044F \u043D\u0435 \u043F\u043E\u043A\u0440\u044B\u0432\u0430\u0435\u0442\u0441\u044F \u043B\u0438\u0446\u0435\u043D\u0437\u0438\u0435\u0439",licenseDomainMismatch:"\u041B\u0438\u0446\u0435\u043D\u0437\u0438\u044F \u043D\u0435\u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0442\u0435\u043B\u044C\u043D\u0430 \u0434\u043B\u044F \u044D\u0442\u043E\u0433\u043E \u0434\u043E\u043C\u0435\u043D\u0430",licenseRevoked:"\u041B\u0438\u0446\u0435\u043D\u0437\u0438\u044F \u043E\u0442\u043E\u0437\u0432\u0430\u043D\u0430",licenseInvalidFormat:"\u041D\u0435\u0432\u0435\u0440\u043D\u044B\u0439 \u0444\u043E\u0440\u043C\u0430\u0442 \u043B\u0438\u0446\u0435\u043D\u0437\u0438\u043E\u043D\u043D\u043E\u0433\u043E \u043A\u043B\u044E\u0447\u0430",licenseInvalidSignature:"\u041D\u0435\u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0442\u0435\u043B\u044C\u043D\u0430\u044F \u043F\u043E\u0434\u043F\u0438\u0441\u044C \u043B\u0438\u0446\u0435\u043D\u0437\u0438\u0438",licenseEngineUnavailable:"\u0411\u0440\u0430\u0443\u0437\u0435\u0440 \u043D\u0435 \u043C\u043E\u0436\u0435\u0442 \u043F\u0440\u043E\u0432\u0435\u0440\u0438\u0442\u044C \u043B\u0438\u0446\u0435\u043D\u0437\u0438\u044E (\u0442\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044F HTTPS)"},Ml={ok:"\u0645\u0648\u0627\u0641\u0642",cancel:"\u0625\u0644\u063A\u0627\u0621",apply:"\u062A\u0637\u0628\u064A\u0642",close:"\u0625\u063A\u0644\u0627\u0642",clear:"\u0645\u0633\u062D",save:"\u062D\u0641\u0638",search:"\u0628\u062D\u062B...",selectAll:"\u062A\u062D\u062F\u064A\u062F \u0627\u0644\u0643\u0644",showAll:"\u0639\u0631\u0636 \u0627\u0644\u0643\u0644",remove:"\u0625\u0632\u0627\u0644\u0629",none:"\u0628\u0644\u0627",toolbarSearch:"\u0628\u062D\u062B...",exportMenu:"\u062A\u0635\u062F\u064A\u0631",exportCsv:"\u062A\u0635\u062F\u064A\u0631 \u0625\u0644\u0649 CSV",exportExcel:"\u062A\u0635\u062F\u064A\u0631 \u0643\u0644 \u0627\u0644\u0628\u064A\u0627\u0646\u0627\u062A \u0625\u0644\u0649 Excel",exportExcelSelected:"\u062A\u0635\u062F\u064A\u0631 \u0627\u0644\u0635\u0641\u0648\u0641 \u0627\u0644\u0645\u062D\u062F\u062F\u0629 \u0625\u0644\u0649 Excel",exportPdf:"\u062A\u0635\u062F\u064A\u0631 \u0625\u0644\u0649 PDF",exporting:"\u062C\u0627\u0631\u064A \u0627\u0644\u062A\u0635\u062F\u064A\u0631\u2026",columns:"\u0627\u0644\u0623\u0639\u0645\u062F\u0629",hiddenColumns:"\u0627\u0644\u0623\u0639\u0645\u062F\u0629 \u0627\u0644\u0645\u062E\u0641\u064A\u0629",noHiddenColumns:"\u0644\u0627 \u062A\u0648\u062C\u062F \u0623\u0639\u0645\u062F\u0629 \u0645\u062E\u0641\u064A\u0629.",sortAsc:"\u0627\u0644\u0641\u0631\u0632 \u0645\u0646 \u0623 \u0625\u0644\u0649 \u064A",sortDesc:"\u0627\u0644\u0641\u0631\u0632 \u0645\u0646 \u064A \u0625\u0644\u0649 \u0623",clearSort:"\u0645\u0633\u062D \u0627\u0644\u0641\u0631\u0632",groupByColumn:"\u062A\u062C\u0645\u064A\u0639 \u062D\u0633\u0628 \u0647\u0630\u0627 \u0627\u0644\u0639\u0645\u0648\u062F",ungroupColumn:"\u0625\u0632\u0627\u0644\u0629 \u0645\u0646 \u0627\u0644\u062A\u062C\u0645\u064A\u0639",showGroupPanel:"\u0639\u0631\u0636 \u0644\u0648\u062D\u0629 \u0627\u0644\u062A\u062C\u0645\u064A\u0639",hideGroupPanel:"\u0625\u062E\u0641\u0627\u0621 \u0644\u0648\u062D\u0629 \u0627\u0644\u062A\u062C\u0645\u064A\u0639",showFooter:"\u0639\u0631\u0636 \u0627\u0644\u062A\u0630\u064A\u064A\u0644",hideFooter:"\u0625\u062E\u0641\u0627\u0621 \u0627\u0644\u062A\u0630\u064A\u064A\u0644",showGroupFooters:"\u0639\u0631\u0636 \u062A\u0630\u064A\u064A\u0644\u0627\u062A \u0627\u0644\u0645\u062C\u0645\u0648\u0639\u0627\u062A",hideGroupFooters:"\u0625\u062E\u0641\u0627\u0621 \u062A\u0630\u064A\u064A\u0644\u0627\u062A \u0627\u0644\u0645\u062C\u0645\u0648\u0639\u0627\u062A",hideColumn:"\u0625\u062E\u0641\u0627\u0621 \u0647\u0630\u0627 \u0627\u0644\u0639\u0645\u0648\u062F",fieldChooser:"\u0645\u062D\u062F\u062F \u0627\u0644\u062D\u0642\u0648\u0644\u2026",bestFit:"\u0623\u0641\u0636\u0644 \u0639\u0631\u0636",bestFitAll:"\u0623\u0641\u0636\u0644 \u0639\u0631\u0636 (\u0643\u0644 \u0627\u0644\u0623\u0639\u0645\u062F\u0629)",fixedPosition:"\u062A\u0639\u064A\u064A\u0646 \u0645\u0648\u0636\u0639 \u062B\u0627\u0628\u062A",pinLeft:"\u064A\u0633\u0627\u0631",pinRight:"\u064A\u0645\u064A\u0646",pinSticky:"\u0645\u062B\u0628\u0651\u062A",unpin:"\u0625\u0644\u063A\u0627\u0621 \u0627\u0644\u062A\u062B\u0628\u064A\u062A",moveLeft:"\u0627\u0646\u062A\u0642\u0627\u0644 \u0644\u0644\u064A\u0633\u0627\u0631",moveRight:"\u0627\u0646\u062A\u0642\u0627\u0644 \u0644\u0644\u064A\u0645\u064A\u0646",filterPlaceholder:"\u062A\u0635\u0641\u064A\u0629\u2026",filterColumnAria:"\u062A\u0635\u0641\u064A\u0629 {column}",filterSelectAll:"\u062A\u062D\u062F\u064A\u062F \u0627\u0644\u0643\u0644",filterBlank:"(\u0641\u0627\u0631\u063A)",filterNoMatch:"\u0644\u0627 \u062A\u0648\u062C\u062F \u0642\u064A\u0645 \u0645\u0637\u0627\u0628\u0642\u0629",filterLoading:"\u062C\u0627\u0631\u064A \u062A\u062D\u0645\u064A\u0644 \u0627\u0644\u0642\u064A\u0645\u2026",filterTruncated:"\u062A\u064F\u0639\u0631\u0636 \u0627\u0644\u0642\u064A\u0645 \u0627\u0644\u0623\u0648\u0644\u0649 \u0641\u0642\u0637 \u2014 \u0627\u0633\u062A\u062E\u062F\u0645 \u0627\u0644\u0628\u062D\u062B \u0644\u0644\u0639\u062B\u0648\u0631 \u0639\u0644\u0649 \u0627\u0644\u0628\u0642\u064A\u0629.",filterRemove:"\u0625\u0632\u0627\u0644\u0629 \u0627\u0644\u062A\u0635\u0641\u064A\u0629",filterToggle:"\u062A\u0637\u0628\u064A\u0642 \u0627\u0644\u062A\u0635\u0641\u064A\u0629",filterEditBuilder:"\u062A\u0639\u062F\u064A\u0644 \u0627\u0644\u062A\u0635\u0641\u064A\u0629",filterNone:"\u0644\u0627 \u062A\u0648\u062C\u062F \u062A\u0635\u0641\u064A\u0629",filterActive:"\u0627\u0644\u062A\u0635\u0641\u064A\u0629 \u0645\u0641\u0639\u0651\u0644\u0629",opEquals:"\u064A\u0633\u0627\u0648\u064A",opNotEquals:"\u0644\u0627 \u064A\u0633\u0627\u0648\u064A",opGreater:">",opGreaterOrEqual:"\u2265",opLess:"<",opLessOrEqual:"\u2264",opContains:"\u064A\u062D\u062A\u0648\u064A \u0639\u0644\u0649",opNotContains:"\u0644\u0627 \u064A\u062D\u062A\u0648\u064A \u0639\u0644\u0649",opStartsWith:"\u064A\u0628\u062F\u0623 \u0628\u0640",opEndsWith:"\u064A\u0646\u062A\u0647\u064A \u0628\u0640",opIsBlank:"\u0641\u0627\u0631\u063A",opIsNotBlank:"\u063A\u064A\u0631 \u0641\u0627\u0631\u063A",opIsOneOf:"\u0648\u0627\u062D\u062F \u0645\u0646",opIsBetween:"\u0628\u064A\u0646",opValuesCount:"{n} \u0642\u064A\u0645\u0629",filterAnd:"\u0648",filterOr:"\u0623\u0648",builderTitle:"\u0645\u0646\u0634\u0626 \u0627\u0644\u062A\u0635\u0641\u064A\u0629",builderCombine:"\u062F\u0645\u062C \u0627\u0644\u0634\u0631\u0648\u0637 \u0628\u0627\u0633\u062A\u062E\u062F\u0627\u0645",builderAddCondition:"\u0625\u0636\u0627\u0641\u0629 \u0634\u0631\u0637",builderAddGroup:"\u0625\u0636\u0627\u0641\u0629 \u0645\u062C\u0645\u0648\u0639\u0629",builderRemoveGroup:"\u0625\u0632\u0627\u0644\u0629 \u0627\u0644\u0645\u062C\u0645\u0648\u0639\u0629",builderRemoveCondition:"\u0625\u0632\u0627\u0644\u0629 \u0627\u0644\u0634\u0631\u0637",builderEmpty:"\u0644\u0627 \u062A\u0648\u062C\u062F \u0634\u0631\u0648\u0637 \u0628\u0639\u062F.",builderColumn:"\u0627\u0644\u0639\u0645\u0648\u062F",builderOperator:"\u0627\u0644\u0645\u064F\u0639\u0627\u0645\u0644",builderValue:"\u0627\u0644\u0642\u064A\u0645\u0629",builderValueFrom:"\u0645\u0646",builderValueTo:"\u0625\u0644\u0649",builderValuePlaceholder:"\u0623\u062F\u062E\u0644 \u0642\u064A\u0645\u0629",groupPanelHint:"\u0627\u0633\u062D\u0628 \u0639\u0645\u0648\u062F\u064B\u0627 \u0625\u0644\u0649 \u0647\u0646\u0627 \u0644\u0644\u062A\u062C\u0645\u064A\u0639 \u062D\u0633\u0628\u0647",groupAddLevel:"\u0625\u0636\u0627\u0641\u0629 \u0645\u0633\u062A\u0648\u0649 \u062A\u062C\u0645\u064A\u0639",groupAddLevelButton:"+ \u0625\u0636\u0627\u0641\u0629 \u0645\u0633\u062A\u0648\u0649\u2026",groupNoGrouping:"(\u0628\u062F\u0648\u0646 \u062A\u062C\u0645\u064A\u0639)",groupLevelAria:"\u0645\u0633\u062A\u0648\u0649 \u0627\u0644\u062A\u062C\u0645\u064A\u0639 {n}",groupRemoveAria:"\u0625\u0632\u0627\u0644\u0629 {column}",pagerFirst:"\u0627\u0644\u0635\u0641\u062D\u0629 \u0627\u0644\u0623\u0648\u0644\u0649",pagerPrevious:"\u0627\u0644\u0635\u0641\u062D\u0629 \u0627\u0644\u0633\u0627\u0628\u0642\u0629",pagerNext:"\u0627\u0644\u0635\u0641\u062D\u0629 \u0627\u0644\u062A\u0627\u0644\u064A\u0629",pagerLast:"\u0627\u0644\u0635\u0641\u062D\u0629 \u0627\u0644\u0623\u062E\u064A\u0631\u0629",pagerPage:"\u0635\u0641\u062D\u0629",pagerOf:"\u0645\u0646",pagerRowsPerPage:"\u0635\u0641\u0648\u0641 \u0644\u0643\u0644 \u0635\u0641\u062D\u0629",pagerAria:"\u062A\u0631\u0642\u064A\u0645 \u0627\u0644\u0635\u0641\u062D\u0627\u062A",selectAllRows:"\u062A\u062D\u062F\u064A\u062F \u0643\u0644 \u0627\u0644\u0635\u0641\u0648\u0641",selectRowAria:"\u062A\u062D\u062F\u064A\u062F \u0627\u0644\u0635\u0641 {row}",summaryAria:"\u0645\u0644\u062E\u0635",columnTotalsAria:"\u0625\u062C\u0645\u0627\u0644\u064A\u0627\u062A \u0627\u0644\u0623\u0639\u0645\u062F\u0629",rowActions:"\u0625\u062C\u0631\u0627\u0621\u0627\u062A \u0627\u0644\u0635\u0641",detailsAria:"\u0627\u0644\u062A\u0641\u0627\u0635\u064A\u0644",rowNumberAria:"\u0631\u0642\u0645 \u0627\u0644\u0635\u0641",noteEditorAria:"\u0645\u0644\u0627\u062D\u0638\u0629 \u0627\u0644\u062E\u0644\u064A\u0629",notePlaceholder:"\u0627\u0643\u062A\u0628 \u0645\u0644\u0627\u062D\u0638\u0629 \u062D\u0648\u0644 \u0647\u0630\u0647 \u0627\u0644\u062E\u0644\u064A\u0629\u2026",addNote:"\u0625\u0636\u0627\u0641\u0629 \u0645\u0644\u0627\u062D\u0638\u0629\u2026",editNote:"\u062A\u0639\u062F\u064A\u0644 \u0627\u0644\u0645\u0644\u0627\u062D\u0638\u0629\u2026",deleteNote:"\u062D\u0630\u0641 \u0627\u0644\u0645\u0644\u0627\u062D\u0638\u0629",expandDetails:"\u062A\u0648\u0633\u064A\u0639 \u0627\u0644\u062A\u0641\u0627\u0635\u064A\u0644",collapseDetails:"\u0637\u064A \u0627\u0644\u062A\u0641\u0627\u0635\u064A\u0644",dragToReorder:"\u0627\u0633\u062D\u0628 \u0644\u0625\u0639\u0627\u062F\u0629 \u0627\u0644\u062A\u0631\u062A\u064A\u0628",menuCopy:"\u0646\u0633\u062E",menuCopyWithHeaders:"\u0646\u0633\u062E \u0645\u0639 \u0627\u0644\u0639\u0646\u0627\u0648\u064A\u0646",menuCopyWithGroupHeaders:"\u0646\u0633\u062E \u0645\u0639 \u0639\u0646\u0627\u0648\u064A\u0646 \u0627\u0644\u0645\u062C\u0645\u0648\u0639\u0627\u062A",menuCut:"\u0642\u0635",menuPaste:"\u0644\u0635\u0642",menuExport:"\u062A\u0635\u062F\u064A\u0631",menuChartRange:"\u0631\u0633\u0645 \u0628\u064A\u0627\u0646\u064A \u0644\u0644\u0623\u0639\u0645\u062F\u0629 \u0627\u0644\u0645\u062D\u062F\u062F\u0629",statsSum:"\u0645\u062C\u0645\u0648\u0639",statsCount:"\u0627\u0644\u0639\u062F\u062F",statsAvg:"\u0645\u062A\u0648\u0633\u0637",statsMin:"\u0627\u0644\u062D\u062F \u0627\u0644\u0623\u062F\u0646\u0649",statsMax:"\u0627\u0644\u062D\u062F \u0627\u0644\u0623\u0642\u0635\u0649",statsCells:"\u0627\u0644\u062E\u0644\u0627\u064A\u0627",statsTooLarge:"\u0627\u0644\u062A\u062D\u062F\u064A\u062F \u0623\u0643\u0628\u0631 \u0645\u0646 \u0623\u0646 \u064A\u064F\u062C\u0645\u0639",statusRows:"\u0627\u0644\u0635\u0641\u0648\u0641",statusFiltered:"\u0645\u0635\u0641\u0651\u0649",statusSelected:"\u0645\u062D\u062F\u062F",summaryRows:"\u0635\u0641\u0648\u0641",announceRows:"{n} \u0635\u0641\u0648\u0641",announceSortedBy:"\u0645\u0631\u062A\u0628\u0629 \u062D\u0633\u0628 {columns}",announceSelected:"{n} \u0645\u062D\u062F\u062F\u0629",announceAscending:"\u062A\u0635\u0627\u0639\u062F\u064A",announceDescending:"\u062A\u0646\u0627\u0632\u0644\u064A",sideFilters:"\u0639\u0648\u0627\u0645\u0644 \u0627\u0644\u062A\u0635\u0641\u064A\u0629",sideBarAria:"\u0644\u0648\u062D\u0627\u062A \u0627\u0644\u0623\u062F\u0648\u0627\u062A",sideClearFilters:"\u0645\u0633\u062D \u0643\u0644 \u0639\u0648\u0627\u0645\u0644 \u0627\u0644\u062A\u0635\u0641\u064A\u0629",summarySum:"\u0645\u062C\u0645\u0648\u0639",summaryAvg:"\u0645\u062A\u0648\u0633\u0637",summaryMin:"\u0627\u0644\u062D\u062F \u0627\u0644\u0623\u062F\u0646\u0649",summaryMax:"\u0627\u0644\u062D\u062F \u0627\u0644\u0623\u0642\u0635\u0649",summaryCount:"\u0627\u0644\u0639\u062F\u062F",summaryDistinct:"\u0627\u0644\u0642\u064A\u0645 \u0627\u0644\u0641\u0631\u064A\u062F\u0629",summaryCustom:"\u0645\u062E\u0635\u0635",noTotal:"\u0644\u0627 \u064A\u0648\u062C\u062F \u0625\u062C\u0645\u0627\u0644\u064A",busy:"\u062C\u0627\u0631\u064A \u0627\u0644\u0639\u0645\u0644\u2026",busyLoading:"\u062C\u0627\u0631\u064A \u062A\u062D\u0645\u064A\u0644 \u0627\u0644\u0635\u0641\u0648\u0641\u2026",busyEncoding:"\u062C\u0627\u0631\u064A \u062A\u062D\u0636\u064A\u0631 \u0627\u0644\u0628\u064A\u0627\u0646\u0627\u062A\u2026",busyFiltering:"\u062C\u0627\u0631\u064A \u062A\u0635\u0641\u064A\u0629 \u0627\u0644\u0635\u0641\u0648\u0641\u2026",busySorting:"\u062C\u0627\u0631\u064A \u0641\u0631\u0632 \u0627\u0644\u0635\u0641\u0648\u0641\u2026",busyComputing:"\u062C\u0627\u0631\u064A \u0627\u0644\u062A\u0635\u0641\u064A\u0629 \u0648\u0627\u0644\u0641\u0631\u0632\u2026",busyGrouping:"\u062C\u0627\u0631\u064A \u0625\u0646\u0634\u0627\u0621 \u0627\u0644\u0645\u062C\u0645\u0648\u0639\u0627\u062A\u2026",busyAggregating:"\u062C\u0627\u0631\u064A \u062D\u0633\u0627\u0628 \u0627\u0644\u0625\u062C\u0645\u0627\u0644\u064A\u0627\u062A\u2026",busyProjecting:"\u062C\u0627\u0631\u064A \u062A\u062D\u062F\u064A\u062B \u0627\u0644\u0639\u0631\u0636\u2026",busyExporting:"\u062C\u0627\u0631\u064A \u0625\u0646\u0634\u0627\u0621 \u0627\u0644\u0645\u0644\u0641\u2026",noData:"\u0644\u0645 \u064A\u062A\u0645 \u0627\u0644\u0639\u062B\u0648\u0631 \u0639\u0644\u0649 \u0628\u064A\u0627\u0646\u0627\u062A",editNewRow:"\u0635\u0641 \u062C\u062F\u064A\u062F",editSaveChanges:"\u062D\u0641\u0638 \u0627\u0644\u062A\u063A\u064A\u064A\u0631\u0627\u062A",editDiscardChanges:"\u062A\u062C\u0627\u0647\u0644 \u0627\u0644\u062A\u063A\u064A\u064A\u0631\u0627\u062A",editRow:"\u062A\u0639\u062F\u064A\u0644 \u0627\u0644\u0635\u0641",editRowMenu:"\u062A\u0639\u062F\u064A\u0644 \u0627\u0644\u0635\u0641\u2026",editDeleteRow:"\u062D\u0630\u0641 \u0627\u0644\u0635\u0641",editUndoDelete:"\u062A\u0631\u0627\u062C\u0639 \u0639\u0646 \u0627\u0644\u062D\u0630\u0641",editActions:"\u0627\u0644\u0625\u062C\u0631\u0627\u0621\u0627\u062A",editSaveRow:"\u062D\u0641\u0638 \u0627\u0644\u0635\u0641",editSaving:"\u062C\u0627\u0631\u064A \u0627\u0644\u062D\u0641\u0638\u2026",editEditingRow:"\u062C\u0627\u0631\u064A \u062A\u0639\u062F\u064A\u0644 \u0627\u0644\u0635\u0641 {row}",editSaveCount:"\u062D\u0641\u0638 {n} \u0635\u0641",editCannotSave:"\u062A\u0639\u0630\u0651\u0631 \u0627\u0644\u062D\u0641\u0638",editSaveFailed:"\u062A\u0639\u0630\u0651\u0631 \u062D\u0641\u0638 \u0627\u0644\u062A\u063A\u064A\u064A\u0631\u0627\u062A.",editDeleteConfirm:"\u0647\u0644 \u062A\u0631\u064A\u062F \u062D\u0630\u0641 \u0647\u0630\u0627 \u0627\u0644\u0635\u0641\u061F",editAddRowUndo:"\u0625\u0636\u0627\u0641\u0629 \u0635\u0641",editDeleteRowUndo:"\u062D\u0630\u0641 \u0635\u0641",editCellUndo:"\u062A\u062D\u0631\u064A\u0631 {column}",editFillUndo:"\u062A\u0639\u0628\u0626\u0629 {count} \u062E\u0644\u064A\u0629",editPasteUndo:"\u0644\u0635\u0642 {count} \u062E\u0644\u064A\u0629",editCutUndo:"\u0642\u0635 {count} \u062E\u0644\u064A\u0629",editNoMatch:"\u0644\u0627 \u062A\u0648\u062C\u062F \u0645\u0637\u0627\u0628\u0642\u0629",formEditTitle:"\u062A\u0639\u062F\u064A\u0644 \u0627\u0644\u0635\u0641",formAddTitle:"\u0635\u0641 \u062C\u062F\u064A\u062F",formShortcut:"{key}+Enter \u0644\u0644\u062D\u0641\u0638 \xB7 Esc \u0644\u0644\u0625\u0644\u063A\u0627\u0621",validationRequired:"\u0647\u0630\u0627 \u0627\u0644\u062D\u0642\u0644 \u0645\u0637\u0644\u0648\u0628",validationNumber:"\u064A\u062C\u0628 \u0623\u0646 \u064A\u0643\u0648\u0646 \u0631\u0642\u0645\u064B\u0627",validationFormat:"\u062A\u0646\u0633\u064A\u0642 \u063A\u064A\u0631 \u0635\u0627\u0644\u062D",validationEmail:"\u0639\u0646\u0648\u0627\u0646 \u0628\u0631\u064A\u062F \u0625\u0644\u0643\u062A\u0631\u0648\u0646\u064A \u063A\u064A\u0631 \u0635\u0627\u0644\u062D",validationInvalid:"\u0642\u064A\u0645\u0629 \u063A\u064A\u0631 \u0635\u0627\u0644\u062D\u0629",dateCalendar:"\u0627\u0644\u062A\u0642\u0648\u064A\u0645",dateOpenCalendar:"\u0641\u062A\u062D \u0627\u0644\u062A\u0642\u0648\u064A\u0645",datePreviousMonth:"\u0627\u0644\u0634\u0647\u0631 \u0627\u0644\u0633\u0627\u0628\u0642",dateNextMonth:"\u0627\u0644\u0634\u0647\u0631 \u0627\u0644\u062A\u0627\u0644\u064A",monthJanuary:"\u064A\u0646\u0627\u064A\u0631",monthFebruary:"\u0641\u0628\u0631\u0627\u064A\u0631",monthMarch:"\u0645\u0627\u0631\u0633",monthApril:"\u0623\u0628\u0631\u064A\u0644",monthMay:"\u0645\u0627\u064A\u0648",monthJune:"\u064A\u0648\u0646\u064A\u0648",monthJuly:"\u064A\u0648\u0644\u064A\u0648",monthAugust:"\u0623\u063A\u0633\u0637\u0633",monthSeptember:"\u0633\u0628\u062A\u0645\u0628\u0631",monthOctober:"\u0623\u0643\u062A\u0648\u0628\u0631",monthNovember:"\u0646\u0648\u0641\u0645\u0628\u0631",monthDecember:"\u062F\u064A\u0633\u0645\u0628\u0631",weekStartsOn:"6",weekdaySu:"\u0623\u062D\u062F",weekdayMo:"\u0625\u062B\u0646",weekdayTu:"\u062B\u0644\u0627",weekdayWe:"\u0623\u0631\u0628",weekdayTh:"\u062E\u0645\u064A",weekdayFr:"\u062C\u0645\u0639",weekdaySa:"\u0633\u0628\u062A",importTitle:"\u0627\u0633\u062A\u064A\u0631\u0627\u062F \u0627\u0644\u0628\u064A\u0627\u0646\u0627\u062A",importStepSource:"\u0661. \u0627\u0644\u0645\u0635\u062F\u0631",importStepMap:"\u0662. \u0645\u0637\u0627\u0628\u0642\u0629 \u0627\u0644\u0623\u0639\u0645\u062F\u0629",importFile:"\u0645\u0644\u0641 CSV",importPaste:"\u2026\u0623\u0648 \u0627\u0644\u0635\u0642 \u0627\u0644\u0635\u0641\u0648\u0641",importSeparator:"\u0627\u0644\u0641\u0627\u0635\u0644",importSeparatorAuto:"\u0643\u0634\u0641 \u062A\u0644\u0642\u0627\u0626\u064A",importSeparatorComma:"\u0641\u0627\u0635\u0644\u0629 ,",importSeparatorSemicolon:"\u0641\u0627\u0635\u0644\u0629 \u0645\u0646\u0642\u0648\u0637\u0629 ;",importSeparatorTab:"\u0645\u0633\u0627\u0641\u0629 \u062C\u062F\u0648\u0644\u0629",importSeparatorPipe:"\u0634\u0631\u0637\u0629 \u0639\u0645\u0648\u062F\u064A\u0629 |",importFileColumn:"\u0639\u0645\u0648\u062F \u0627\u0644\u0645\u0644\u0641",importDetected:"\u0627\u0644\u0645\u0643\u062A\u0634\u0641",importGridColumn:"\u0639\u0645\u0648\u062F \u0627\u0644\u062C\u062F\u0648\u0644",importSample:"\u0639\u064A\u0646\u0629",importSkip:"\u2014 \u062A\u062E\u0637\u064D \u2014",importPreview:"\u0645\u0639\u0627\u064A\u0646\u0629",importNoSource:"\u0627\u062E\u062A\u0631 \u0645\u0644\u0641\u064B\u0627 \u0623\u0648\u0644\u064B\u0627 \u0623\u0648 \u0627\u0644\u0635\u0642 \u0628\u0639\u0636 \u0627\u0644\u0635\u0641\u0648\u0641.",importNoRows:"\u0644\u0645 \u064A\u062A\u0645 \u0627\u0644\u0639\u062B\u0648\u0631 \u0639\u0644\u0649 \u0635\u0641\u0648\u0641 \u0628\u064A\u0627\u0646\u0627\u062A.",importAction:"\u0627\u0633\u062A\u064A\u0631\u0627\u062F",exportAborted:"\u062A\u0645 \u0625\u0644\u063A\u0627\u0621 \u0627\u0644\u062A\u0635\u062F\u064A\u0631",exportSheetName:"\u0627\u0644\u0628\u064A\u0627\u0646\u0627\u062A",chart:"\u0627\u0644\u0631\u0633\u0645 \u0627\u0644\u0628\u064A\u0627\u0646\u064A",chartCategory:"\u0627\u0644\u0641\u0626\u0629",chartSeries:"\u0627\u0644\u0633\u0644\u0633\u0644\u0629",chartAddSeries:"\u0625\u0636\u0627\u0641\u0629 \u0633\u0644\u0633\u0644\u0629",chartRemoveSeries:"\u0625\u0632\u0627\u0644\u0629",chartSource:"\u0627\u0644\u0628\u064A\u0627\u0646\u0627\u062A",chartSourceView:"\u0627\u0644\u0635\u0641\u0648\u0641 \u0627\u0644\u0645\u0635\u0641\u0651\u0627\u0629",chartSourceSelection:"\u0627\u0644\u0635\u0641\u0648\u0641 \u0627\u0644\u0645\u062D\u062F\u062F\u0629",chartSourceAll:"\u0643\u0644 \u0627\u0644\u0635\u0641\u0648\u0641",chartClose:"\u0625\u063A\u0644\u0627\u0642 \u0627\u0644\u0631\u0633\u0645 \u0627\u0644\u0628\u064A\u0627\u0646\u064A",chartFullscreen:"\u0645\u0644\u0621 \u0627\u0644\u0634\u0627\u0634\u0629",chartExitFullscreen:"\u0625\u0646\u0647\u0627\u0621 \u0645\u0644\u0621 \u0627\u0644\u0634\u0627\u0634\u0629",chartExportPng:"PNG",chartExportSvg:"SVG",chartExportFailed:"\u062A\u0639\u0630\u0651\u0631 \u062A\u0635\u062F\u064A\u0631 \u0627\u0644\u0631\u0633\u0645 \u0627\u0644\u0628\u064A\u0627\u0646\u064A.",chartCrossFiltered:"\u062A\u0645\u062A \u062A\u0635\u0641\u064A\u0629 \u0627\u0644\u062C\u062F\u0648\u0644 \u0625\u0644\u0649 {value}.",chartBlankCategory:"(\u0641\u0627\u0631\u063A)",chartTruncated:"\u064A\u062A\u0645 \u0639\u0631\u0636 \u0623\u0639\u0644\u0649 {n} \u0641\u0626\u0629\u061B \u0648\u0627\u0644\u0628\u0627\u0642\u064A \u0645\u062C\u0645\u0651\u0639 \u0636\u0645\u0646 \xAB\u0623\u062E\u0631\u0649\xBB.",chartOther:"\u0623\u062E\u0631\u0649",chartEmpty:"\u0644\u0627 \u064A\u0648\u062C\u062F \u0634\u064A\u0621 \u0644\u0639\u0631\u0636\u0647 \u0628\u0639\u062F.",chartNeedsRecharts:"\u062A\u062D\u062A\u0627\u062C \u0627\u0644\u0631\u0633\u0648\u0645 \u0627\u0644\u0628\u064A\u0627\u0646\u064A\u0629 \u0625\u0644\u0649 \u062D\u0632\u0645\u0629 `recharts` \u0627\u0644\u0627\u062E\u062A\u064A\u0627\u0631\u064A\u0629. \u062B\u0628\u0651\u062A\u0647\u0627 \u0644\u0631\u0633\u0645\u0647\u0627.",chartOnlyOneSeries:"\u0647\u0630\u0627 \u0627\u0644\u0646\u0648\u0639 \u0645\u0646 \u0627\u0644\u0631\u0633\u0648\u0645 \u064A\u0639\u0631\u0636 \u0633\u0644\u0633\u0644\u0629 \u0648\u0627\u062D\u062F\u0629.",chartByColumn:"\u0631\u0633\u0645 \u0628\u064A\u0627\u0646\u064A \u062D\u0633\u0628 \u0647\u0630\u0627 \u0627\u0644\u0639\u0645\u0648\u062F",chartGroupBy:"\u062D\u0633\u0628",chartGroupNone:"\u0643\u0644 \u0642\u064A\u0645\u0629",chartGroupAuto:"\u062A\u0644\u0642\u0627\u0626\u064A",chartGroupDay:"\u064A\u0648\u0645",chartGroupWeek:"\u0623\u0633\u0628\u0648\u0639",chartGroupMonth:"\u0634\u0647\u0631",chartGroupQuarter:"\u0631\u0628\u0639",chartGroupYear:"\u0633\u0646\u0629",chartGroupBins:"{n} \u0641\u0626\u0629",chartBucketAdjusted:"\u0639\u062F\u062F \u0627\u0644\u0641\u0648\u0627\u0635\u0644 \u0623\u0643\u0628\u0631 \u0645\u0646 \u0623\u0646 \u064A\u062A\u0633\u0639 \u0644\u0645\u062D\u0648\u0631 \u0648\u0627\u062D\u062F \u2014 \u062A\u0645 \u0627\u0644\u062A\u062C\u0645\u064A\u0639 \u0628\u0634\u0643\u0644 \u0623\u0648\u0633\u0639.",chartWindowed:"\u064A\u062A\u0645 \u0639\u0631\u0636 {shown} \u0645\u0646 {total}.",chartShowAll:"\u0639\u0631\u0636 \u0627\u0644\u0643\u0644",chartCanvasHint:"\u0631\u0633\u0645 \u0628\u064A\u0627\u0646\u064A. \u0645\u0631\u0651\u0631 \u0644\u0644\u062A\u0643\u0628\u064A\u0631\u060C \u0627\u0633\u062D\u0628 \u0644\u0644\u062A\u062D\u0631\u064A\u0643\u060C \u0627\u0633\u062A\u062E\u062F\u0645 \u0627\u0644\u0623\u0633\u0647\u0645 \u0644\u0644\u062A\u0646\u0642\u0644\u060C \u06480 \u0644\u0639\u0631\u0636 \u0627\u0644\u0643\u0644.",chartAggSum:"\u0645\u062C\u0645\u0648\u0639",chartAggAvg:"\u0645\u062A\u0648\u0633\u0637",chartAggMin:"\u0627\u0644\u062D\u062F \u0627\u0644\u0623\u062F\u0646\u0649",chartAggMax:"\u0627\u0644\u062D\u062F \u0627\u0644\u0623\u0642\u0635\u0649",chartAggCount:"\u0627\u0644\u0639\u062F\u062F",chartAggDistinct:"\u0627\u0644\u0642\u064A\u0645 \u0627\u0644\u0641\u0631\u064A\u062F\u0629",chartTypeColumn:"\u0623\u0639\u0645\u062F\u0629",chartTypeBar:"\u0623\u0634\u0631\u0637\u0629",chartTypeLine:"\u062E\u0637\u064A",chartTypeArea:"\u0645\u0633\u0627\u062D\u064A",chartTypePie:"\u062F\u0627\u0626\u0631\u064A",chartTypeDonut:"\u062D\u0644\u0642\u064A",licenseMissing:"\u063A\u064A\u0631 \u0645\u0631\u062E\u0651\u0635",licenseExpired:"\u0627\u0646\u062A\u0647\u062A \u0635\u0644\u0627\u062D\u064A\u0629 \u0627\u0644\u062A\u0631\u062E\u064A\u0635",licenseReleaseNotCovered:"\u0647\u0630\u0627 \u0627\u0644\u0625\u0635\u062F\u0627\u0631 \u063A\u064A\u0631 \u0645\u0634\u0645\u0648\u0644 \u0628\u0627\u0644\u062A\u0631\u062E\u064A\u0635",licenseDomainMismatch:"\u0627\u0644\u062A\u0631\u062E\u064A\u0635 \u063A\u064A\u0631 \u0635\u0627\u0644\u062D \u0644\u0647\u0630\u0627 \u0627\u0644\u0646\u0637\u0627\u0642",licenseRevoked:"\u062A\u0645 \u0625\u0644\u063A\u0627\u0621 \u0627\u0644\u062A\u0631\u062E\u064A\u0635",licenseInvalidFormat:"\u0635\u064A\u063A\u0629 \u0645\u0641\u062A\u0627\u062D \u0627\u0644\u062A\u0631\u062E\u064A\u0635 \u063A\u064A\u0631 \u0635\u062D\u064A\u062D\u0629",licenseInvalidSignature:"\u062A\u0648\u0642\u064A\u0639 \u0627\u0644\u062A\u0631\u062E\u064A\u0635 \u063A\u064A\u0631 \u0635\u0627\u0644\u062D",licenseEngineUnavailable:"\u0644\u0627 \u064A\u0633\u062A\u0637\u064A\u0639 \u0627\u0644\u0645\u062A\u0635\u0641\u062D \u0627\u0644\u062A\u062D\u0642\u0642 \u0645\u0646 \u0627\u0644\u062A\u0631\u062E\u064A\u0635 (\u064A\u0644\u0632\u0645 HTTPS)"},Il={ok:"\u786E\u5B9A",cancel:"\u53D6\u6D88",apply:"\u5E94\u7528",close:"\u5173\u95ED",clear:"\u6E05\u9664",save:"\u4FDD\u5B58",search:"\u641C\u7D22...",selectAll:"\u5168\u9009",showAll:"\u663E\u793A\u5168\u90E8",remove:"\u79FB\u9664",none:"\u65E0",toolbarSearch:"\u641C\u7D22...",exportMenu:"\u5BFC\u51FA",exportCsv:"\u5BFC\u51FA\u4E3A CSV",exportExcel:"\u5C06\u5168\u90E8\u6570\u636E\u5BFC\u51FA\u5230 Excel",exportExcelSelected:"\u5C06\u9009\u4E2D\u884C\u5BFC\u51FA\u5230 Excel",exportPdf:"\u5BFC\u51FA\u4E3A PDF",exporting:"\u6B63\u5728\u5BFC\u51FA\u2026",columns:"\u5217",hiddenColumns:"\u9690\u85CF\u7684\u5217",noHiddenColumns:"\u6CA1\u6709\u9690\u85CF\u7684\u5217\u3002",sortAsc:"\u6309 A \u5230 Z \u6392\u5E8F",sortDesc:"\u6309 Z \u5230 A \u6392\u5E8F",clearSort:"\u6E05\u9664\u6392\u5E8F",groupByColumn:"\u6309\u6B64\u5217\u5206\u7EC4",ungroupColumn:"\u4ECE\u5206\u7EC4\u4E2D\u79FB\u9664",showGroupPanel:"\u663E\u793A\u5206\u7EC4\u9762\u677F",hideGroupPanel:"\u9690\u85CF\u5206\u7EC4\u9762\u677F",showFooter:"\u663E\u793A\u6C47\u603B\u680F",hideFooter:"\u9690\u85CF\u6C47\u603B\u680F",showGroupFooters:"\u663E\u793A\u5206\u7EC4\u6C47\u603B",hideGroupFooters:"\u9690\u85CF\u5206\u7EC4\u6C47\u603B",hideColumn:"\u9690\u85CF\u6B64\u5217",fieldChooser:"\u5B57\u6BB5\u9009\u62E9\u5668\u2026",bestFit:"\u6700\u4F73\u5217\u5BBD",bestFitAll:"\u6700\u4F73\u5217\u5BBD\uFF08\u6240\u6709\u5217\uFF09",fixedPosition:"\u8BBE\u7F6E\u56FA\u5B9A\u4F4D\u7F6E",pinLeft:"\u5DE6\u4FA7",pinRight:"\u53F3\u4FA7",pinSticky:"\u5438\u9644",unpin:"\u53D6\u6D88\u56FA\u5B9A",moveLeft:"\u5DE6\u79FB",moveRight:"\u53F3\u79FB",filterPlaceholder:"\u7B5B\u9009\u2026",filterColumnAria:"\u7B5B\u9009{column}",filterSelectAll:"\u5168\u9009",filterBlank:"(\u7A7A\u767D)",filterNoMatch:"\u6CA1\u6709\u5339\u914D\u7684\u503C",filterLoading:"\u6B63\u5728\u52A0\u8F7D\u503C\u2026",filterTruncated:"\u4EC5\u663E\u793A\u524D\u82E5\u5E72\u4E2A\u503C\u2014\u2014\u8BF7\u641C\u7D22\u4EE5\u67E5\u627E\u5176\u4F59\u7684\u503C\u3002",filterRemove:"\u79FB\u9664\u7B5B\u9009",filterToggle:"\u5E94\u7528\u7B5B\u9009",filterEditBuilder:"\u7F16\u8F91\u7B5B\u9009",filterNone:"\u65E0\u7B5B\u9009",filterActive:"\u7B5B\u9009\u5DF2\u542F\u7528",opEquals:"\u7B49\u4E8E",opNotEquals:"\u4E0D\u7B49\u4E8E",opGreater:">",opGreaterOrEqual:"\u2265",opLess:"<",opLessOrEqual:"\u2264",opContains:"\u5305\u542B",opNotContains:"\u4E0D\u5305\u542B",opStartsWith:"\u5F00\u5934\u4E3A",opEndsWith:"\u7ED3\u5C3E\u4E3A",opIsBlank:"\u4E3A\u7A7A",opIsNotBlank:"\u4E0D\u4E3A\u7A7A",opIsOneOf:"\u5C5E\u4E8E",opIsBetween:"\u4ECB\u4E8E",opValuesCount:"{n} \u4E2A\u503C",filterAnd:"\u4E0E",filterOr:"\u6216",builderTitle:"\u7B5B\u9009\u751F\u6210\u5668",builderCombine:"\u6761\u4EF6\u7684\u7EC4\u5408\u65B9\u5F0F",builderAddCondition:"\u6DFB\u52A0\u6761\u4EF6",builderAddGroup:"\u6DFB\u52A0\u5206\u7EC4",builderRemoveGroup:"\u79FB\u9664\u5206\u7EC4",builderRemoveCondition:"\u79FB\u9664\u6761\u4EF6",builderEmpty:"\u5C1A\u65E0\u6761\u4EF6\u3002",builderColumn:"\u5217",builderOperator:"\u8FD0\u7B97\u7B26",builderValue:"\u503C",builderValueFrom:"\u4ECE",builderValueTo:"\u5230",builderValuePlaceholder:"\u8BF7\u8F93\u5165\u503C",groupPanelHint:"\u5C06\u5217\u62D6\u5230\u6B64\u5904\u5373\u53EF\u6309\u5176\u5206\u7EC4",groupAddLevel:"\u6DFB\u52A0\u5206\u7EC4\u5C42\u7EA7",groupAddLevelButton:"+ \u6DFB\u52A0\u5C42\u7EA7\u2026",groupNoGrouping:"\uFF08\u65E0\u5206\u7EC4\uFF09",groupLevelAria:"\u7B2C {n} \u7EA7\u5206\u7EC4",groupRemoveAria:"\u79FB\u9664{column}",pagerFirst:"\u9996\u9875",pagerPrevious:"\u4E0A\u4E00\u9875",pagerNext:"\u4E0B\u4E00\u9875",pagerLast:"\u672B\u9875",pagerPage:"\u7B2C",pagerOf:"/",pagerRowsPerPage:"\u6BCF\u9875\u884C\u6570",pagerAria:"\u5206\u9875",selectAllRows:"\u9009\u62E9\u6240\u6709\u884C",selectRowAria:"\u9009\u62E9\u7B2C {row} \u884C",summaryAria:"\u6C47\u603B",columnTotalsAria:"\u5217\u5408\u8BA1",rowActions:"\u884C\u64CD\u4F5C",detailsAria:"\u8BE6\u60C5",rowNumberAria:"\u884C\u53F7",noteEditorAria:"\u5355\u5143\u683C\u6279\u6CE8",notePlaceholder:"\u4E3A\u6B64\u5355\u5143\u683C\u5199\u6279\u6CE8\u2026",addNote:"\u6DFB\u52A0\u6279\u6CE8\u2026",editNote:"\u7F16\u8F91\u6279\u6CE8\u2026",deleteNote:"\u5220\u9664\u6279\u6CE8",expandDetails:"\u5C55\u5F00\u8BE6\u60C5",collapseDetails:"\u6298\u53E0\u8BE6\u60C5",dragToReorder:"\u62D6\u52A8\u4EE5\u91CD\u65B0\u6392\u5E8F",menuCopy:"\u590D\u5236",menuCopyWithHeaders:"\u590D\u5236\uFF08\u542B\u8868\u5934\uFF09",menuCopyWithGroupHeaders:"\u590D\u5236\uFF08\u542B\u5206\u7EC4\u8868\u5934\uFF09",menuCut:"\u526A\u5207",menuPaste:"\u7C98\u8D34",menuExport:"\u5BFC\u51FA",menuChartRange:"\u5C06\u6240\u9009\u5217\u751F\u6210\u56FE\u8868",statsSum:"\u6C42\u548C",statsCount:"\u8BA1\u6570",statsAvg:"\u5E73\u5747\u503C",statsMin:"\u6700\u5C0F\u503C",statsMax:"\u6700\u5927\u503C",statsCells:"\u5355\u5143\u683C",statsTooLarge:"\u6240\u9009\u533A\u57DF\u8FC7\u5927\uFF0C\u65E0\u6CD5\u6C47\u603B",statusRows:"\u884C\u6570",statusFiltered:"\u7B5B\u9009\u540E",statusSelected:"\u5DF2\u9009\u62E9",summaryRows:"\u884C",announceRows:"{n} \u884C",announceSortedBy:"\u6309 {columns} \u6392\u5E8F",announceSelected:"\u5DF2\u9009\u62E9 {n} \u9879",announceAscending:"\u5347\u5E8F",announceDescending:"\u964D\u5E8F",sideFilters:"\u7B5B\u9009\u5668",sideBarAria:"\u5DE5\u5177\u9762\u677F",sideClearFilters:"\u6E05\u9664\u6240\u6709\u7B5B\u9009",summarySum:"\u6C42\u548C",summaryAvg:"\u5E73\u5747\u503C",summaryMin:"\u6700\u5C0F\u503C",summaryMax:"\u6700\u5927\u503C",summaryCount:"\u8BA1\u6570",summaryDistinct:"\u53BB\u91CD\u8BA1\u6570",summaryCustom:"\u81EA\u5B9A\u4E49",noTotal:"\u65E0\u5408\u8BA1",busy:"\u5904\u7406\u4E2D\u2026",busyLoading:"\u6B63\u5728\u52A0\u8F7D\u884C\u2026",busyEncoding:"\u6B63\u5728\u51C6\u5907\u6570\u636E\u2026",busyFiltering:"\u6B63\u5728\u7B5B\u9009\u884C\u2026",busySorting:"\u6B63\u5728\u6392\u5E8F\u884C\u2026",busyComputing:"\u6B63\u5728\u7B5B\u9009\u548C\u6392\u5E8F\u2026",busyGrouping:"\u6B63\u5728\u6784\u5EFA\u5206\u7EC4\u2026",busyAggregating:"\u6B63\u5728\u8BA1\u7B97\u5408\u8BA1\u2026",busyProjecting:"\u6B63\u5728\u66F4\u65B0\u89C6\u56FE\u2026",busyExporting:"\u6B63\u5728\u751F\u6210\u6587\u4EF6\u2026",noData:"\u672A\u627E\u5230\u6570\u636E",editNewRow:"\u65B0\u5EFA\u884C",editSaveChanges:"\u4FDD\u5B58\u66F4\u6539",editDiscardChanges:"\u653E\u5F03\u66F4\u6539",editRow:"\u7F16\u8F91\u884C",editRowMenu:"\u7F16\u8F91\u884C\u2026",editDeleteRow:"\u5220\u9664\u884C",editUndoDelete:"\u64A4\u9500\u5220\u9664",editActions:"\u64CD\u4F5C",editSaveRow:"\u4FDD\u5B58\u6B64\u884C",editSaving:"\u6B63\u5728\u4FDD\u5B58\u2026",editEditingRow:"\u6B63\u5728\u7F16\u8F91\u7B2C {row} \u884C",editSaveCount:"\u4FDD\u5B58 {n} \u884C",editCannotSave:"\u65E0\u6CD5\u4FDD\u5B58",editSaveFailed:"\u672A\u80FD\u4FDD\u5B58\u66F4\u6539\u3002",editDeleteConfirm:"\u8981\u5220\u9664\u6B64\u884C\u5417\uFF1F",editAddRowUndo:"\u6DFB\u52A0\u884C",editDeleteRowUndo:"\u5220\u9664\u884C",editCellUndo:"\u7F16\u8F91 {column}",editFillUndo:"\u586B\u5145 {count} \u4E2A\u5355\u5143\u683C",editPasteUndo:"\u7C98\u8D34 {count} \u4E2A\u5355\u5143\u683C",editCutUndo:"\u526A\u5207 {count} \u4E2A\u5355\u5143\u683C",editNoMatch:"\u65E0\u5339\u914D\u9879",formEditTitle:"\u7F16\u8F91\u884C",formAddTitle:"\u65B0\u5EFA\u884C",formShortcut:"{key}+Enter \u4FDD\u5B58 \xB7 Esc \u53D6\u6D88",validationRequired:"\u6B64\u5B57\u6BB5\u4E3A\u5FC5\u586B\u9879",validationNumber:"\u5FC5\u987B\u4E3A\u6570\u5B57",validationFormat:"\u683C\u5F0F\u65E0\u6548",validationEmail:"\u7535\u5B50\u90AE\u4EF6\u5730\u5740\u65E0\u6548",validationInvalid:"\u503C\u65E0\u6548",dateCalendar:"\u65E5\u5386",dateOpenCalendar:"\u6253\u5F00\u65E5\u5386",datePreviousMonth:"\u4E0A\u4E2A\u6708",dateNextMonth:"\u4E0B\u4E2A\u6708",monthJanuary:"\u4E00\u6708",monthFebruary:"\u4E8C\u6708",monthMarch:"\u4E09\u6708",monthApril:"\u56DB\u6708",monthMay:"\u4E94\u6708",monthJune:"\u516D\u6708",monthJuly:"\u4E03\u6708",monthAugust:"\u516B\u6708",monthSeptember:"\u4E5D\u6708",monthOctober:"\u5341\u6708",monthNovember:"\u5341\u4E00\u6708",monthDecember:"\u5341\u4E8C\u6708",weekStartsOn:"1",weekdaySu:"\u65E5",weekdayMo:"\u4E00",weekdayTu:"\u4E8C",weekdayWe:"\u4E09",weekdayTh:"\u56DB",weekdayFr:"\u4E94",weekdaySa:"\u516D",importTitle:"\u5BFC\u5165\u6570\u636E",importStepSource:"1. \u6570\u636E\u6E90",importStepMap:"2. \u6620\u5C04\u5217",importFile:"CSV \u6587\u4EF6",importPaste:"\u2026\u6216\u7C98\u8D34\u884C",importSeparator:"\u5206\u9694\u7B26",importSeparatorAuto:"\u81EA\u52A8\u68C0\u6D4B",importSeparatorComma:"\u9017\u53F7 ,",importSeparatorSemicolon:"\u5206\u53F7 ;",importSeparatorTab:"\u5236\u8868\u7B26",importSeparatorPipe:"\u7AD6\u7EBF |",importFileColumn:"\u6587\u4EF6\u5217",importDetected:"\u68C0\u6D4B\u7ED3\u679C",importGridColumn:"\u8868\u683C\u5217",importSample:"\u793A\u4F8B",importSkip:"\u2014 \u8DF3\u8FC7 \u2014",importPreview:"\u9884\u89C8",importNoSource:"\u8BF7\u5148\u9009\u62E9\u6587\u4EF6\u6216\u7C98\u8D34\u4E00\u4E9B\u884C\u3002",importNoRows:"\u672A\u627E\u5230\u6570\u636E\u884C\u3002",importAction:"\u5BFC\u5165",exportAborted:"\u5BFC\u51FA\u5DF2\u4E2D\u6B62",exportSheetName:"\u6570\u636E",chart:"\u56FE\u8868",chartCategory:"\u7C7B\u522B",chartSeries:"\u7CFB\u5217",chartAddSeries:"\u6DFB\u52A0\u7CFB\u5217",chartRemoveSeries:"\u79FB\u9664",chartSource:"\u6570\u636E",chartSourceView:"\u7B5B\u9009\u540E\u7684\u884C",chartSourceSelection:"\u9009\u4E2D\u7684\u884C",chartSourceAll:"\u5168\u90E8\u884C",chartClose:"\u5173\u95ED\u56FE\u8868",chartFullscreen:"\u5168\u5C4F",chartExitFullscreen:"\u9000\u51FA\u5168\u5C4F",chartExportPng:"PNG",chartExportSvg:"SVG",chartExportFailed:"\u56FE\u8868\u5BFC\u51FA\u5931\u8D25\u3002",chartCrossFiltered:"\u8868\u683C\u5DF2\u7B5B\u9009\u4E3A {value}\u3002",chartBlankCategory:"(\u7A7A\u767D)",chartTruncated:"\u663E\u793A\u524D {n} \u4E2A\u7C7B\u522B\uFF1B\u5176\u4F59\u5F52\u5165\u201C\u5176\u4ED6\u201D\u3002",chartOther:"\u5176\u4ED6",chartEmpty:"\u6682\u65E0\u53EF\u7ED8\u5236\u7684\u5185\u5BB9\u3002",chartNeedsRecharts:"\u56FE\u8868\u9700\u8981\u53EF\u9009\u4F9D\u8D56 `recharts`\u3002\u8BF7\u5B89\u88C5\u540E\u518D\u7ED8\u5236\u3002",chartOnlyOneSeries:"\u6B64\u56FE\u8868\u7C7B\u578B\u4EC5\u663E\u793A\u4E00\u4E2A\u7CFB\u5217\u3002",chartByColumn:"\u6309\u6B64\u5217\u7ED8\u5236\u56FE\u8868",chartGroupBy:"\u6309",chartGroupNone:"\u6BCF\u4E2A\u503C",chartGroupAuto:"\u81EA\u52A8",chartGroupDay:"\u65E5",chartGroupWeek:"\u5468",chartGroupMonth:"\u6708",chartGroupQuarter:"\u5B63\u5EA6",chartGroupYear:"\u5E74",chartGroupBins:"{n} \u4E2A\u533A\u95F4",chartBucketAdjusted:"\u5355\u4E2A\u5750\u6807\u8F74\u4E0A\u7684\u533A\u95F4\u8FC7\u591A\u2014\u2014\u5DF2\u6309\u66F4\u7C97\u7684\u7C92\u5EA6\u5206\u7EC4\u3002",chartWindowed:"\u6B63\u5728\u663E\u793A {total} \u4E2A\u4E2D\u7684 {shown} \u4E2A\u3002",chartShowAll:"\u663E\u793A\u5168\u90E8",chartCanvasHint:"\u56FE\u8868\u3002\u6EDA\u52A8\u7F29\u653E\uFF0C\u62D6\u52A8\u5E73\u79FB\uFF0C\u65B9\u5411\u952E\u79FB\u52A8\uFF0C\u6309 0 \u663E\u793A\u5168\u90E8\u3002",chartAggSum:"\u6C42\u548C",chartAggAvg:"\u5E73\u5747\u503C",chartAggMin:"\u6700\u5C0F\u503C",chartAggMax:"\u6700\u5927\u503C",chartAggCount:"\u8BA1\u6570",chartAggDistinct:"\u53BB\u91CD\u8BA1\u6570",chartTypeColumn:"\u67F1\u5F62\u56FE",chartTypeBar:"\u6761\u5F62\u56FE",chartTypeLine:"\u6298\u7EBF\u56FE",chartTypeArea:"\u9762\u79EF\u56FE",chartTypePie:"\u997C\u56FE",chartTypeDonut:"\u73AF\u5F62\u56FE",licenseMissing:"\u672A\u6388\u6743",licenseExpired:"\u8BB8\u53EF\u8BC1\u5DF2\u8FC7\u671F",licenseReleaseNotCovered:"\u6B64\u7248\u672C\u4E0D\u5728\u8BB8\u53EF\u8BC1\u8986\u76D6\u8303\u56F4\u5185",licenseDomainMismatch:"\u8BB8\u53EF\u8BC1\u5BF9\u6B64\u57DF\u540D\u65E0\u6548",licenseRevoked:"\u8BB8\u53EF\u8BC1\u5DF2\u88AB\u540A\u9500",licenseInvalidFormat:"\u8BB8\u53EF\u8BC1\u5BC6\u94A5\u683C\u5F0F\u9519\u8BEF",licenseInvalidSignature:"\u8BB8\u53EF\u8BC1\u7B7E\u540D\u65E0\u6548",licenseEngineUnavailable:"\u6D4F\u89C8\u5668\u65E0\u6CD5\u9A8C\u8BC1\u8BB8\u53EF\u8BC1\uFF08\u9700\u8981 HTTPS\uFF09"},Ll={ok:"OK",cancel:"\u30AD\u30E3\u30F3\u30BB\u30EB",apply:"\u9069\u7528",close:"\u9589\u3058\u308B",clear:"\u30AF\u30EA\u30A2",save:"\u4FDD\u5B58",search:"\u691C\u7D22...",selectAll:"\u3059\u3079\u3066\u9078\u629E",showAll:"\u3059\u3079\u3066\u8868\u793A",remove:"\u524A\u9664",none:"\u306A\u3057",toolbarSearch:"\u691C\u7D22...",exportMenu:"\u30A8\u30AF\u30B9\u30DD\u30FC\u30C8",exportCsv:"CSV \u306B\u30A8\u30AF\u30B9\u30DD\u30FC\u30C8",exportExcel:"\u3059\u3079\u3066\u306E\u30C7\u30FC\u30BF\u3092 Excel \u306B\u30A8\u30AF\u30B9\u30DD\u30FC\u30C8",exportExcelSelected:"\u9078\u629E\u3057\u305F\u884C\u3092 Excel \u306B\u30A8\u30AF\u30B9\u30DD\u30FC\u30C8",exportPdf:"PDF \u306B\u30A8\u30AF\u30B9\u30DD\u30FC\u30C8",exporting:"\u30A8\u30AF\u30B9\u30DD\u30FC\u30C8\u4E2D\u2026",columns:"\u5217",hiddenColumns:"\u975E\u8868\u793A\u306E\u5217",noHiddenColumns:"\u975E\u8868\u793A\u306E\u5217\u306F\u3042\u308A\u307E\u305B\u3093\u3002",sortAsc:"\u6607\u9806\u3067\u4E26\u3079\u66FF\u3048",sortDesc:"\u964D\u9806\u3067\u4E26\u3079\u66FF\u3048",clearSort:"\u4E26\u3079\u66FF\u3048\u3092\u30AF\u30EA\u30A2",groupByColumn:"\u3053\u306E\u5217\u3067\u30B0\u30EB\u30FC\u30D7\u5316",ungroupColumn:"\u30B0\u30EB\u30FC\u30D7\u5316\u304B\u3089\u5916\u3059",showGroupPanel:"\u30B0\u30EB\u30FC\u30D7\u30D1\u30CD\u30EB\u3092\u8868\u793A",hideGroupPanel:"\u30B0\u30EB\u30FC\u30D7\u30D1\u30CD\u30EB\u3092\u975E\u8868\u793A",showFooter:"\u30D5\u30C3\u30BF\u30FC\u3092\u8868\u793A",hideFooter:"\u30D5\u30C3\u30BF\u30FC\u3092\u975E\u8868\u793A",showGroupFooters:"\u30B0\u30EB\u30FC\u30D7\u30D5\u30C3\u30BF\u30FC\u3092\u8868\u793A",hideGroupFooters:"\u30B0\u30EB\u30FC\u30D7\u30D5\u30C3\u30BF\u30FC\u3092\u975E\u8868\u793A",hideColumn:"\u3053\u306E\u5217\u3092\u975E\u8868\u793A",fieldChooser:"\u30D5\u30A3\u30FC\u30EB\u30C9\u9078\u629E\u2026",bestFit:"\u5E45\u3092\u81EA\u52D5\u8ABF\u6574",bestFitAll:"\u5E45\u3092\u81EA\u52D5\u8ABF\u6574\uFF08\u3059\u3079\u3066\u306E\u5217\uFF09",fixedPosition:"\u56FA\u5B9A\u4F4D\u7F6E\u3092\u8A2D\u5B9A",pinLeft:"\u5DE6",pinRight:"\u53F3",pinSticky:"\u56FA\u5B9A",unpin:"\u56FA\u5B9A\u3092\u89E3\u9664",moveLeft:"\u5DE6\u306B\u79FB\u52D5",moveRight:"\u53F3\u306B\u79FB\u52D5",filterPlaceholder:"\u30D5\u30A3\u30EB\u30BF\u30FC\u2026",filterColumnAria:"{column} \u3092\u30D5\u30A3\u30EB\u30BF\u30FC",filterSelectAll:"\u3059\u3079\u3066\u9078\u629E",filterBlank:"(\u7A7A\u767D)",filterNoMatch:"\u4E00\u81F4\u3059\u308B\u5024\u304C\u3042\u308A\u307E\u305B\u3093",filterLoading:"\u5024\u3092\u8AAD\u307F\u8FBC\u307F\u4E2D\u2026",filterTruncated:"\u5148\u982D\u306E\u5024\u306E\u307F\u8868\u793A\u3057\u3066\u3044\u307E\u3059\u3002\u6B8B\u308A\u306F\u691C\u7D22\u3057\u3066\u304F\u3060\u3055\u3044\u3002",filterRemove:"\u30D5\u30A3\u30EB\u30BF\u30FC\u3092\u89E3\u9664",filterToggle:"\u30D5\u30A3\u30EB\u30BF\u30FC\u3092\u9069\u7528",filterEditBuilder:"\u30D5\u30A3\u30EB\u30BF\u30FC\u3092\u7DE8\u96C6",filterNone:"\u30D5\u30A3\u30EB\u30BF\u30FC\u306A\u3057",filterActive:"\u30D5\u30A3\u30EB\u30BF\u30FC\u9069\u7528\u4E2D",opEquals:"\u304C\u6B21\u3068\u7B49\u3057\u3044",opNotEquals:"\u304C\u6B21\u3068\u7B49\u3057\u304F\u306A\u3044",opGreater:">",opGreaterOrEqual:"\u2265",opLess:"<",opLessOrEqual:"\u2264",opContains:"\u3092\u542B\u3080",opNotContains:"\u3092\u542B\u307E\u306A\u3044",opStartsWith:"\u3067\u59CB\u307E\u308B",opEndsWith:"\u3067\u7D42\u308F\u308B",opIsBlank:"\u304C\u7A7A\u767D",opIsNotBlank:"\u304C\u7A7A\u767D\u3067\u306A\u3044",opIsBetween:"\u304C\u6B21\u306E\u7BC4\u56F2\u5185",opIsOneOf:"\u304C\u6B21\u306E\u3044\u305A\u308C\u304B",opValuesCount:"{n} \u4EF6\u306E\u5024",filterAnd:"\u304B\u3064 (And)",filterOr:"\u307E\u305F\u306F (Or)",builderTitle:"\u30D5\u30A3\u30EB\u30BF\u30FC\u30D3\u30EB\u30C0\u30FC",builderCombine:"\u6761\u4EF6\u306E\u7D50\u5408\u65B9\u6CD5",builderAddCondition:"\u6761\u4EF6\u3092\u8FFD\u52A0",builderAddGroup:"\u30B0\u30EB\u30FC\u30D7\u3092\u8FFD\u52A0",builderRemoveGroup:"\u30B0\u30EB\u30FC\u30D7\u3092\u524A\u9664",builderRemoveCondition:"\u6761\u4EF6\u3092\u524A\u9664",builderEmpty:"\u307E\u3060\u6761\u4EF6\u304C\u3042\u308A\u307E\u305B\u3093\u3002",builderColumn:"\u5217",builderOperator:"\u6F14\u7B97\u5B50",builderValue:"\u5024",builderValueFrom:"\u958B\u59CB",builderValueTo:"\u7D42\u4E86",builderValuePlaceholder:"\u5024\u3092\u5165\u529B\u3057\u3066\u304F\u3060\u3055\u3044",groupPanelHint:"\u30B0\u30EB\u30FC\u30D7\u5316\u3059\u308B\u5217\u3092\u3053\u3053\u306B\u30C9\u30E9\u30C3\u30B0\u3057\u3066\u304F\u3060\u3055\u3044",groupAddLevel:"\u30B0\u30EB\u30FC\u30D7\u5316\u306E\u30EC\u30D9\u30EB\u3092\u8FFD\u52A0",groupAddLevelButton:"+ \u30EC\u30D9\u30EB\u3092\u8FFD\u52A0\u2026",groupNoGrouping:"\uFF08\u30B0\u30EB\u30FC\u30D7\u5316\u306A\u3057\uFF09",groupLevelAria:"\u30B0\u30EB\u30FC\u30D7\u5316\u30EC\u30D9\u30EB {n}",groupRemoveAria:"{column} \u3092\u524A\u9664",pagerFirst:"\u6700\u521D\u306E\u30DA\u30FC\u30B8",pagerPrevious:"\u524D\u306E\u30DA\u30FC\u30B8",pagerNext:"\u6B21\u306E\u30DA\u30FC\u30B8",pagerLast:"\u6700\u5F8C\u306E\u30DA\u30FC\u30B8",pagerPage:"\u30DA\u30FC\u30B8",pagerOf:"/",pagerRowsPerPage:"1 \u30DA\u30FC\u30B8\u3042\u305F\u308A\u306E\u884C\u6570",pagerAria:"\u30DA\u30FC\u30B8\u9001\u308A",selectAllRows:"\u3059\u3079\u3066\u306E\u884C\u3092\u9078\u629E",selectRowAria:"\u884C {row} \u3092\u9078\u629E",summaryAria:"\u96C6\u8A08",columnTotalsAria:"\u5217\u306E\u5408\u8A08",rowActions:"\u884C\u306E\u64CD\u4F5C",detailsAria:"\u8A73\u7D30",rowNumberAria:"\u884C\u756A\u53F7",noteEditorAria:"\u30BB\u30EB\u306E\u30E1\u30E2",notePlaceholder:"\u3053\u306E\u30BB\u30EB\u306B\u3064\u3044\u3066\u30E1\u30E2\u3092\u66F8\u304F\u2026",addNote:"\u30E1\u30E2\u3092\u8FFD\u52A0\u2026",editNote:"\u30E1\u30E2\u3092\u7DE8\u96C6\u2026",deleteNote:"\u30E1\u30E2\u3092\u524A\u9664",expandDetails:"\u8A73\u7D30\u3092\u5C55\u958B",collapseDetails:"\u8A73\u7D30\u3092\u6298\u308A\u305F\u305F\u3080",dragToReorder:"\u30C9\u30E9\u30C3\u30B0\u3057\u3066\u4E26\u3079\u66FF\u3048",menuCopy:"\u30B3\u30D4\u30FC",menuCopyWithHeaders:"\u898B\u51FA\u3057\u4ED8\u304D\u3067\u30B3\u30D4\u30FC",menuCopyWithGroupHeaders:"\u30B0\u30EB\u30FC\u30D7\u898B\u51FA\u3057\u4ED8\u304D\u3067\u30B3\u30D4\u30FC",menuCut:"\u5207\u308A\u53D6\u308A",menuPaste:"\u8CBC\u308A\u4ED8\u3051",menuExport:"\u30A8\u30AF\u30B9\u30DD\u30FC\u30C8",menuChartRange:"\u9078\u629E\u3057\u305F\u5217\u3092\u30B0\u30E9\u30D5\u5316",statsSum:"\u5408\u8A08",statsCount:"\u30AB\u30A6\u30F3\u30C8",statsAvg:"\u5E73\u5747",statsMin:"\u6700\u5C0F",statsMax:"\u6700\u5927",statsCells:"\u30BB\u30EB",statsTooLarge:"\u9078\u629E\u7BC4\u56F2\u304C\u5927\u304D\u3059\u304E\u3066\u96C6\u8A08\u3067\u304D\u307E\u305B\u3093",statusRows:"\u884C\u6570",statusFiltered:"\u30D5\u30A3\u30EB\u30BF\u30FC\u5F8C",statusSelected:"\u9078\u629E\u6E08\u307F",summaryRows:"\u884C",announceRows:"{n} \u884C",announceSortedBy:"{columns} \u3067\u4E26\u3079\u66FF\u3048",announceSelected:"{n} \u4EF6\u9078\u629E",announceAscending:"\u6607\u9806",announceDescending:"\u964D\u9806",sideFilters:"\u30D5\u30A3\u30EB\u30BF\u30FC",sideBarAria:"\u30C4\u30FC\u30EB\u30D1\u30CD\u30EB",sideClearFilters:"\u3059\u3079\u3066\u306E\u30D5\u30A3\u30EB\u30BF\u30FC\u3092\u30AF\u30EA\u30A2",summarySum:"\u5408\u8A08",summaryAvg:"\u5E73\u5747",summaryMin:"\u6700\u5C0F",summaryMax:"\u6700\u5927",summaryCount:"\u30AB\u30A6\u30F3\u30C8",summaryDistinct:"\u4E00\u610F\u306E\u6570",summaryCustom:"\u30AB\u30B9\u30BF\u30E0",noTotal:"\u5408\u8A08\u306A\u3057",busy:"\u51E6\u7406\u4E2D\u2026",busyLoading:"\u884C\u3092\u8AAD\u307F\u8FBC\u307F\u4E2D\u2026",busyEncoding:"\u30C7\u30FC\u30BF\u3092\u6E96\u5099\u4E2D\u2026",busyFiltering:"\u884C\u3092\u30D5\u30A3\u30EB\u30BF\u30FC\u4E2D\u2026",busySorting:"\u884C\u3092\u4E26\u3079\u66FF\u3048\u4E2D\u2026",busyComputing:"\u30D5\u30A3\u30EB\u30BF\u30FC\u3068\u4E26\u3079\u66FF\u3048\u3092\u5B9F\u884C\u4E2D\u2026",busyGrouping:"\u30B0\u30EB\u30FC\u30D7\u3092\u4F5C\u6210\u4E2D\u2026",busyAggregating:"\u5408\u8A08\u3092\u8A08\u7B97\u4E2D\u2026",busyProjecting:"\u30D3\u30E5\u30FC\u3092\u66F4\u65B0\u4E2D\u2026",busyExporting:"\u30D5\u30A1\u30A4\u30EB\u3092\u4F5C\u6210\u4E2D\u2026",noData:"\u30C7\u30FC\u30BF\u304C\u898B\u3064\u304B\u308A\u307E\u305B\u3093",editNewRow:"\u65B0\u3057\u3044\u884C",editSaveChanges:"\u5909\u66F4\u3092\u4FDD\u5B58",editDiscardChanges:"\u5909\u66F4\u3092\u7834\u68C4",editRow:"\u884C\u3092\u7DE8\u96C6",editRowMenu:"\u884C\u3092\u7DE8\u96C6\u2026",editDeleteRow:"\u884C\u3092\u524A\u9664",editUndoDelete:"\u524A\u9664\u3092\u5143\u306B\u623B\u3059",editActions:"\u30A2\u30AF\u30B7\u30E7\u30F3",editSaveRow:"\u884C\u3092\u4FDD\u5B58",editSaving:"\u4FDD\u5B58\u4E2D\u2026",editEditingRow:"\u884C {row} \u3092\u7DE8\u96C6\u4E2D",editSaveCount:"{n} \u884C\u3092\u4FDD\u5B58",editCannotSave:"\u4FDD\u5B58\u3067\u304D\u307E\u305B\u3093",editSaveFailed:"\u5909\u66F4\u3092\u4FDD\u5B58\u3067\u304D\u307E\u305B\u3093\u3067\u3057\u305F\u3002",editDeleteConfirm:"\u3053\u306E\u884C\u3092\u524A\u9664\u3057\u307E\u3059\u304B\uFF1F",editAddRowUndo:"\u884C\u306E\u8FFD\u52A0",editDeleteRowUndo:"\u884C\u306E\u524A\u9664",editCellUndo:"{column} \u3092\u7DE8\u96C6",editFillUndo:"{count} \u30BB\u30EB\u3092\u30D5\u30A3\u30EB",editPasteUndo:"{count} \u30BB\u30EB\u3092\u8CBC\u308A\u4ED8\u3051",editCutUndo:"{count} \u30BB\u30EB\u3092\u5207\u308A\u53D6\u308A",editNoMatch:"\u4E00\u81F4\u306A\u3057",formEditTitle:"\u884C\u3092\u7DE8\u96C6",formAddTitle:"\u65B0\u3057\u3044\u884C",formShortcut:"{key}+Enter \u3067\u4FDD\u5B58 \xB7 Esc \u3067\u30AD\u30E3\u30F3\u30BB\u30EB",validationRequired:"\u3053\u306E\u9805\u76EE\u306F\u5FC5\u9808\u3067\u3059",validationNumber:"\u6570\u5024\u3092\u5165\u529B\u3057\u3066\u304F\u3060\u3055\u3044",validationFormat:"\u5F62\u5F0F\u304C\u6B63\u3057\u304F\u3042\u308A\u307E\u305B\u3093",validationEmail:"\u30E1\u30FC\u30EB\u30A2\u30C9\u30EC\u30B9\u304C\u6B63\u3057\u304F\u3042\u308A\u307E\u305B\u3093",validationInvalid:"\u5024\u304C\u6B63\u3057\u304F\u3042\u308A\u307E\u305B\u3093",dateCalendar:"\u30AB\u30EC\u30F3\u30C0\u30FC",dateOpenCalendar:"\u30AB\u30EC\u30F3\u30C0\u30FC\u3092\u958B\u304F",datePreviousMonth:"\u524D\u306E\u6708",dateNextMonth:"\u6B21\u306E\u6708",monthJanuary:"1\u6708",monthFebruary:"2\u6708",monthMarch:"3\u6708",monthApril:"4\u6708",monthMay:"5\u6708",monthJune:"6\u6708",monthJuly:"7\u6708",monthAugust:"8\u6708",monthSeptember:"9\u6708",monthOctober:"10\u6708",monthNovember:"11\u6708",monthDecember:"12\u6708",weekStartsOn:"0",weekdaySu:"\u65E5",weekdayMo:"\u6708",weekdayTu:"\u706B",weekdayWe:"\u6C34",weekdayTh:"\u6728",weekdayFr:"\u91D1",weekdaySa:"\u571F",importTitle:"\u30C7\u30FC\u30BF\u306E\u30A4\u30F3\u30DD\u30FC\u30C8",importStepSource:"1. \u30BD\u30FC\u30B9",importStepMap:"2. \u5217\u306E\u5BFE\u5FDC\u4ED8\u3051",importFile:"CSV \u30D5\u30A1\u30A4\u30EB",importPaste:"\u2026\u307E\u305F\u306F\u884C\u3092\u8CBC\u308A\u4ED8\u3051",importSeparator:"\u533A\u5207\u308A\u6587\u5B57",importSeparatorAuto:"\u81EA\u52D5\u691C\u51FA",importSeparatorComma:"\u30AB\u30F3\u30DE ,",importSeparatorSemicolon:"\u30BB\u30DF\u30B3\u30ED\u30F3 ;",importSeparatorTab:"\u30BF\u30D6",importSeparatorPipe:"\u30D1\u30A4\u30D7 |",importFileColumn:"\u30D5\u30A1\u30A4\u30EB\u306E\u5217",importDetected:"\u691C\u51FA\u7D50\u679C",importGridColumn:"\u30B0\u30EA\u30C3\u30C9\u306E\u5217",importSample:"\u30B5\u30F3\u30D7\u30EB",importSkip:"\u2014 \u30B9\u30AD\u30C3\u30D7 \u2014",importPreview:"\u30D7\u30EC\u30D3\u30E5\u30FC",importNoSource:"\u307E\u305A\u30D5\u30A1\u30A4\u30EB\u3092\u9078\u3076\u304B\u3001\u884C\u3092\u8CBC\u308A\u4ED8\u3051\u3066\u304F\u3060\u3055\u3044\u3002",importNoRows:"\u30C7\u30FC\u30BF\u884C\u304C\u898B\u3064\u304B\u308A\u307E\u305B\u3093\u3067\u3057\u305F\u3002",importAction:"\u30A4\u30F3\u30DD\u30FC\u30C8",exportAborted:"\u30A8\u30AF\u30B9\u30DD\u30FC\u30C8\u3092\u4E2D\u6B62\u3057\u307E\u3057\u305F",exportSheetName:"\u30C7\u30FC\u30BF",chart:"\u30B0\u30E9\u30D5",chartCategory:"\u30AB\u30C6\u30B4\u30EA",chartSeries:"\u7CFB\u5217",chartAddSeries:"\u7CFB\u5217\u3092\u8FFD\u52A0",chartRemoveSeries:"\u524A\u9664",chartSource:"\u30C7\u30FC\u30BF",chartSourceView:"\u30D5\u30A3\u30EB\u30BF\u30FC\u5F8C\u306E\u884C",chartSourceSelection:"\u9078\u629E\u3057\u305F\u884C",chartSourceAll:"\u3059\u3079\u3066\u306E\u884C",chartClose:"\u30B0\u30E9\u30D5\u3092\u9589\u3058\u308B",chartFullscreen:"\u5168\u753B\u9762\u8868\u793A",chartExitFullscreen:"\u5168\u753B\u9762\u8868\u793A\u3092\u7D42\u4E86",chartExportPng:"PNG",chartExportSvg:"SVG",chartExportFailed:"\u30B0\u30E9\u30D5\u3092\u30A8\u30AF\u30B9\u30DD\u30FC\u30C8\u3067\u304D\u307E\u305B\u3093\u3067\u3057\u305F\u3002",chartCrossFiltered:"\u30B0\u30EA\u30C3\u30C9\u306F {value} \u3067\u7D5E\u308A\u8FBC\u307E\u308C\u3066\u3044\u307E\u3059\u3002",chartBlankCategory:"(\u7A7A\u767D)",chartTruncated:"\u4E0A\u4F4D {n} \u4EF6\u306E\u30AB\u30C6\u30B4\u30EA\u3092\u8868\u793A\u3057\u3066\u3044\u307E\u3059\u3002\u6B8B\u308A\u306F\u300C\u305D\u306E\u4ED6\u300D\u306B\u307E\u3068\u3081\u3089\u308C\u3066\u3044\u307E\u3059\u3002",chartOther:"\u305D\u306E\u4ED6",chartEmpty:"\u307E\u3060\u8868\u793A\u3067\u304D\u308B\u3082\u306E\u304C\u3042\u308A\u307E\u305B\u3093\u3002",chartNeedsRecharts:"\u30B0\u30E9\u30D5\u306B\u306F\u30AA\u30D7\u30B7\u30E7\u30F3\u306E\u30D1\u30C3\u30B1\u30FC\u30B8 `recharts` \u304C\u5FC5\u8981\u3067\u3059\u3002\u63CF\u753B\u3059\u308B\u306B\u306F\u30A4\u30F3\u30B9\u30C8\u30FC\u30EB\u3057\u3066\u304F\u3060\u3055\u3044\u3002",chartOnlyOneSeries:"\u3053\u306E\u30B0\u30E9\u30D5\u306E\u7A2E\u985E\u306F 1 \u7CFB\u5217\u306E\u307F\u8868\u793A\u3057\u307E\u3059\u3002",chartByColumn:"\u3053\u306E\u5217\u3067\u30B0\u30E9\u30D5\u3092\u4F5C\u6210",chartGroupBy:"\u5358\u4F4D",chartGroupNone:"\u5404\u5024",chartGroupAuto:"\u81EA\u52D5",chartGroupDay:"\u65E5",chartGroupWeek:"\u9031",chartGroupMonth:"\u6708",chartGroupQuarter:"\u56DB\u534A\u671F",chartGroupYear:"\u5E74",chartGroupBins:"{n} \u533A\u9593",chartBucketAdjusted:"1 \u3064\u306E\u8EF8\u306B\u306F\u533A\u9593\u304C\u591A\u3059\u304E\u308B\u305F\u3081\u3001\u7C97\u304F\u307E\u3068\u3081\u307E\u3057\u305F\u3002",chartWindowed:"{total} \u4EF6\u4E2D {shown} \u4EF6\u3092\u8868\u793A\u3057\u3066\u3044\u307E\u3059\u3002",chartShowAll:"\u3059\u3079\u3066\u8868\u793A",chartCanvasHint:"\u30B0\u30E9\u30D5\u3002\u30B9\u30AF\u30ED\u30FC\u30EB\u3067\u62E1\u5927\u7E2E\u5C0F\u3001\u30C9\u30E9\u30C3\u30B0\u3067\u79FB\u52D5\u3001\u77E2\u5370\u30AD\u30FC\u3067\u79FB\u52D5\u30010 \u3067\u5168\u4F53\u8868\u793A\u3002",chartAggSum:"\u5408\u8A08",chartAggAvg:"\u5E73\u5747",chartAggMin:"\u6700\u5C0F",chartAggMax:"\u6700\u5927",chartAggCount:"\u30AB\u30A6\u30F3\u30C8",chartAggDistinct:"\u4E00\u610F\u306E\u6570",chartTypeColumn:"\u7E26\u68D2",chartTypeBar:"\u6A2A\u68D2",chartTypeLine:"\u6298\u308C\u7DDA",chartTypeArea:"\u9762",chartTypePie:"\u5186",chartTypeDonut:"\u30C9\u30FC\u30CA\u30C4",licenseMissing:"\u30E9\u30A4\u30BB\u30F3\u30B9\u306A\u3057",licenseExpired:"\u30E9\u30A4\u30BB\u30F3\u30B9\u306E\u6709\u52B9\u671F\u9650\u304C\u5207\u308C\u3066\u3044\u307E\u3059",licenseReleaseNotCovered:"\u3053\u306E\u30D0\u30FC\u30B8\u30E7\u30F3\u306F\u30E9\u30A4\u30BB\u30F3\u30B9\u306E\u5BFE\u8C61\u5916\u3067\u3059",licenseDomainMismatch:"\u3053\u306E\u30C9\u30E1\u30A4\u30F3\u3067\u306F\u30E9\u30A4\u30BB\u30F3\u30B9\u304C\u7121\u52B9\u3067\u3059",licenseRevoked:"\u30E9\u30A4\u30BB\u30F3\u30B9\u306F\u53D6\u308A\u6D88\u3055\u308C\u307E\u3057\u305F",licenseInvalidFormat:"\u30E9\u30A4\u30BB\u30F3\u30B9\u30AD\u30FC\u306E\u5F62\u5F0F\u304C\u6B63\u3057\u304F\u3042\u308A\u307E\u305B\u3093",licenseInvalidSignature:"\u30E9\u30A4\u30BB\u30F3\u30B9\u306E\u7F72\u540D\u304C\u7121\u52B9\u3067\u3059",licenseEngineUnavailable:"\u30D6\u30E9\u30A6\u30B6\u30FC\u3067\u30E9\u30A4\u30BB\u30F3\u30B9\u3092\u691C\u8A3C\u3067\u304D\u307E\u305B\u3093\uFF08HTTPS \u304C\u5FC5\u8981\u3067\u3059\uFF09"},Pl={ok:"\uD655\uC778",cancel:"\uCDE8\uC18C",apply:"\uC801\uC6A9",close:"\uB2EB\uAE30",clear:"\uC9C0\uC6B0\uAE30",save:"\uC800\uC7A5",search:"\uAC80\uC0C9...",selectAll:"\uBAA8\uB450 \uC120\uD0DD",showAll:"\uBAA8\uB450 \uD45C\uC2DC",remove:"\uC81C\uAC70",none:"\uC5C6\uC74C",toolbarSearch:"\uAC80\uC0C9...",exportMenu:"\uB0B4\uBCF4\uB0B4\uAE30",exportCsv:"CSV\uB85C \uB0B4\uBCF4\uB0B4\uAE30",exportExcel:"\uBAA8\uB4E0 \uB370\uC774\uD130\uB97C Excel\uB85C \uB0B4\uBCF4\uB0B4\uAE30",exportExcelSelected:"\uC120\uD0DD\uD55C \uD589\uC744 Excel\uB85C \uB0B4\uBCF4\uB0B4\uAE30",exportPdf:"PDF\uB85C \uB0B4\uBCF4\uB0B4\uAE30",exporting:"\uB0B4\uBCF4\uB0B4\uB294 \uC911\u2026",columns:"\uC5F4",hiddenColumns:"\uC228\uACA8\uC9C4 \uC5F4",noHiddenColumns:"\uC228\uACA8\uC9C4 \uC5F4\uC774 \uC5C6\uC2B5\uB2C8\uB2E4.",sortAsc:"\uC624\uB984\uCC28\uC21C \uC815\uB82C",sortDesc:"\uB0B4\uB9BC\uCC28\uC21C \uC815\uB82C",clearSort:"\uC815\uB82C \uC9C0\uC6B0\uAE30",groupByColumn:"\uC774 \uC5F4\uB85C \uADF8\uB8F9\uD654",ungroupColumn:"\uADF8\uB8F9\uD654\uC5D0\uC11C \uC81C\uC678",showGroupPanel:"\uADF8\uB8F9 \uD328\uB110 \uD45C\uC2DC",hideGroupPanel:"\uADF8\uB8F9 \uD328\uB110 \uC228\uAE30\uAE30",showFooter:"\uBC14\uB2E5\uAE00 \uD45C\uC2DC",hideFooter:"\uBC14\uB2E5\uAE00 \uC228\uAE30\uAE30",showGroupFooters:"\uADF8\uB8F9 \uBC14\uB2E5\uAE00 \uD45C\uC2DC",hideGroupFooters:"\uADF8\uB8F9 \uBC14\uB2E5\uAE00 \uC228\uAE30\uAE30",hideColumn:"\uC774 \uC5F4 \uC228\uAE30\uAE30",fieldChooser:"\uD544\uB4DC \uC120\uD0DD\uAE30\u2026",bestFit:"\uB108\uBE44 \uC790\uB3D9 \uB9DE\uCDA4",bestFitAll:"\uB108\uBE44 \uC790\uB3D9 \uB9DE\uCDA4(\uBAA8\uB4E0 \uC5F4)",fixedPosition:"\uACE0\uC815 \uC704\uCE58 \uC124\uC815",pinLeft:"\uC67C\uCABD",pinRight:"\uC624\uB978\uCABD",pinSticky:"\uACE0\uC815",unpin:"\uACE0\uC815 \uD574\uC81C",moveLeft:"\uC67C\uCABD\uC73C\uB85C \uC774\uB3D9",moveRight:"\uC624\uB978\uCABD\uC73C\uB85C \uC774\uB3D9",filterPlaceholder:"\uD544\uD130\u2026",filterColumnAria:"{column} \uD544\uD130",filterSelectAll:"\uBAA8\uB450 \uC120\uD0DD",filterBlank:"(\uBE44\uC5B4 \uC788\uC74C)",filterNoMatch:"\uC77C\uCE58\uD558\uB294 \uAC12\uC774 \uC5C6\uC2B5\uB2C8\uB2E4",filterLoading:"\uAC12\uC744 \uBD88\uB7EC\uC624\uB294 \uC911\u2026",filterTruncated:"\uCC98\uC74C \uAC12\uB9CC \uD45C\uC2DC\uB429\uB2C8\uB2E4 \u2014 \uB098\uBA38\uC9C0\uB294 \uAC80\uC0C9\uD574 \uC8FC\uC138\uC694.",filterRemove:"\uD544\uD130 \uC81C\uAC70",filterToggle:"\uD544\uD130 \uC801\uC6A9",filterEditBuilder:"\uD544\uD130 \uD3B8\uC9D1",filterNone:"\uD544\uD130 \uC5C6\uC74C",filterActive:"\uD544\uD130 \uC801\uC6A9 \uC911",opEquals:"\uAC19\uC74C",opNotEquals:"\uAC19\uC9C0 \uC54A\uC74C",opGreater:">",opGreaterOrEqual:"\u2265",opLess:"<",opLessOrEqual:"\u2264",opContains:"\uD3EC\uD568",opNotContains:"\uD3EC\uD568\uD558\uC9C0 \uC54A\uC74C",opStartsWith:"(\uC73C)\uB85C \uC2DC\uC791",opEndsWith:"(\uC73C)\uB85C \uB05D\uB0A8",opIsBlank:"\uBE44\uC5B4 \uC788\uC74C",opIsNotBlank:"\uBE44\uC5B4 \uC788\uC9C0 \uC54A\uC74C",opIsOneOf:"\uB2E4\uC74C \uC911 \uD558\uB098",opIsBetween:"\uC0AC\uC774",opValuesCount:"\uAC12 {n}\uAC1C",filterAnd:"\uADF8\uB9AC\uACE0 (And)",filterOr:"\uB610\uB294 (Or)",builderTitle:"\uD544\uD130 \uC791\uC131\uAE30",builderCombine:"\uC870\uAC74 \uACB0\uD569 \uBC29\uC2DD",builderAddCondition:"\uC870\uAC74 \uCD94\uAC00",builderAddGroup:"\uADF8\uB8F9 \uCD94\uAC00",builderRemoveGroup:"\uADF8\uB8F9 \uC81C\uAC70",builderRemoveCondition:"\uC870\uAC74 \uC81C\uAC70",builderEmpty:"\uC544\uC9C1 \uC870\uAC74\uC774 \uC5C6\uC2B5\uB2C8\uB2E4.",builderColumn:"\uC5F4",builderOperator:"\uC5F0\uC0B0\uC790",builderValue:"\uAC12",builderValueFrom:"\uC2DC\uC791",builderValueTo:"\uB05D",builderValuePlaceholder:"\uAC12\uC744 \uC785\uB825\uD558\uC138\uC694",groupPanelHint:"\uADF8\uB8F9\uD654\uD560 \uC5F4\uC744 \uC5EC\uAE30\uB85C \uB04C\uC5B4 \uB193\uC73C\uC138\uC694",groupAddLevel:"\uADF8\uB8F9\uD654 \uC218\uC900 \uCD94\uAC00",groupAddLevelButton:"+ \uC218\uC900 \uCD94\uAC00\u2026",groupNoGrouping:"(\uADF8\uB8F9\uD654 \uC5C6\uC74C)",groupLevelAria:"\uADF8\uB8F9\uD654 \uC218\uC900 {n}",groupRemoveAria:"{column} \uC81C\uAC70",pagerFirst:"\uCCAB \uD398\uC774\uC9C0",pagerPrevious:"\uC774\uC804 \uD398\uC774\uC9C0",pagerNext:"\uB2E4\uC74C \uD398\uC774\uC9C0",pagerLast:"\uB9C8\uC9C0\uB9C9 \uD398\uC774\uC9C0",pagerPage:"\uD398\uC774\uC9C0",pagerOf:"/",pagerRowsPerPage:"\uD398\uC774\uC9C0\uB2F9 \uD589 \uC218",pagerAria:"\uD398\uC774\uC9C0 \uB9E4\uAE40",selectAllRows:"\uBAA8\uB4E0 \uD589 \uC120\uD0DD",selectRowAria:"{row}\uD589 \uC120\uD0DD",summaryAria:"\uC694\uC57D",columnTotalsAria:"\uC5F4 \uD569\uACC4",rowActions:"\uD589 \uC791\uC5C5",detailsAria:"\uC138\uBD80 \uC815\uBCF4",rowNumberAria:"\uD589 \uBC88\uD638",noteEditorAria:"\uC140 \uBA54\uBAA8",notePlaceholder:"\uC774 \uC140\uC5D0 \uB300\uD55C \uBA54\uBAA8 \uC791\uC131\u2026",addNote:"\uBA54\uBAA8 \uCD94\uAC00\u2026",editNote:"\uBA54\uBAA8 \uD3B8\uC9D1\u2026",deleteNote:"\uBA54\uBAA8 \uC0AD\uC81C",expandDetails:"\uC138\uBD80 \uC815\uBCF4 \uD655\uC7A5",collapseDetails:"\uC138\uBD80 \uC815\uBCF4 \uCD95\uC18C",dragToReorder:"\uB04C\uC5B4\uC11C \uC21C\uC11C \uBCC0\uACBD",menuCopy:"\uBCF5\uC0AC",menuCopyWithHeaders:"\uBA38\uB9AC\uAE00 \uD3EC\uD568 \uBCF5\uC0AC",menuCopyWithGroupHeaders:"\uADF8\uB8F9 \uBA38\uB9AC\uAE00 \uD3EC\uD568 \uBCF5\uC0AC",menuCut:"\uC798\uB77C\uB0B4\uAE30",menuPaste:"\uBD99\uC5EC\uB123\uAE30",menuExport:"\uB0B4\uBCF4\uB0B4\uAE30",menuChartRange:"\uC120\uD0DD\uD55C \uC5F4 \uCC28\uD2B8",statsSum:"\uD569\uACC4",statsCount:"\uAC1C\uC218",statsAvg:"\uD3C9\uADE0",statsMin:"\uCD5C\uC18C",statsMax:"\uCD5C\uB300",statsCells:"\uC140",statsTooLarge:"\uC120\uD0DD \uBC94\uC704\uAC00 \uB108\uBB34 \uCEE4\uC11C \uD569\uACC4\uB97C \uB0BC \uC218 \uC5C6\uC2B5\uB2C8\uB2E4",statusRows:"\uD589",statusFiltered:"\uD544\uD130\uB428",statusSelected:"\uC120\uD0DD\uB428",summaryRows:"\uD589",announceRows:"{n}\uAC1C \uD589",announceSortedBy:"{columns} \uAE30\uC900 \uC815\uB82C",announceSelected:"{n}\uAC1C \uC120\uD0DD\uB428",announceAscending:"\uC624\uB984\uCC28\uC21C",announceDescending:"\uB0B4\uB9BC\uCC28\uC21C",sideFilters:"\uD544\uD130",sideBarAria:"\uB3C4\uAD6C \uD328\uB110",sideClearFilters:"\uBAA8\uB4E0 \uD544\uD130 \uC9C0\uC6B0\uAE30",summarySum:"\uD569\uACC4",summaryAvg:"\uD3C9\uADE0",summaryMin:"\uCD5C\uC18C",summaryMax:"\uCD5C\uB300",summaryCount:"\uAC1C\uC218",summaryDistinct:"\uACE0\uC720 \uAC1C\uC218",summaryCustom:"\uC0AC\uC6A9\uC790 \uC9C0\uC815",noTotal:"\uD569\uACC4 \uC5C6\uC74C",busy:"\uCC98\uB9AC \uC911\u2026",busyLoading:"\uD589\uC744 \uBD88\uB7EC\uC624\uB294 \uC911\u2026",busyEncoding:"\uB370\uC774\uD130\uB97C \uC900\uBE44\uD558\uB294 \uC911\u2026",busyFiltering:"\uD589\uC744 \uD544\uD130\uB9C1\uD558\uB294 \uC911\u2026",busySorting:"\uD589\uC744 \uC815\uB82C\uD558\uB294 \uC911\u2026",busyComputing:"\uD544\uD130\uB9C1 \uBC0F \uC815\uB82C \uC911\u2026",busyGrouping:"\uADF8\uB8F9\uC744 \uB9CC\uB4DC\uB294 \uC911\u2026",busyAggregating:"\uD569\uACC4\uB97C \uACC4\uC0B0\uD558\uB294 \uC911\u2026",busyProjecting:"\uBCF4\uAE30\uB97C \uC5C5\uB370\uC774\uD2B8\uD558\uB294 \uC911\u2026",busyExporting:"\uD30C\uC77C\uC744 \uB9CC\uB4DC\uB294 \uC911\u2026",noData:"\uB370\uC774\uD130\uB97C \uCC3E\uC744 \uC218 \uC5C6\uC2B5\uB2C8\uB2E4",editNewRow:"\uC0C8 \uD589",editSaveChanges:"\uBCC0\uACBD \uB0B4\uC6A9 \uC800\uC7A5",editDiscardChanges:"\uBCC0\uACBD \uB0B4\uC6A9 \uCDE8\uC18C",editRow:"\uD589 \uD3B8\uC9D1",editRowMenu:"\uD589 \uD3B8\uC9D1\u2026",editDeleteRow:"\uD589 \uC0AD\uC81C",editUndoDelete:"\uC0AD\uC81C \uCDE8\uC18C",editActions:"\uC791\uC5C5",editSaveRow:"\uD589 \uC800\uC7A5",editSaving:"\uC800\uC7A5 \uC911\u2026",editEditingRow:"{row}\uD589 \uD3B8\uC9D1 \uC911",editSaveCount:"{n}\uAC1C \uD589 \uC800\uC7A5",editCannotSave:"\uC800\uC7A5\uD560 \uC218 \uC5C6\uC2B5\uB2C8\uB2E4",editSaveFailed:"\uBCC0\uACBD \uB0B4\uC6A9\uC744 \uC800\uC7A5\uD558\uC9C0 \uBABB\uD588\uC2B5\uB2C8\uB2E4.",editDeleteConfirm:"\uC774 \uD589\uC744 \uC0AD\uC81C\uD560\uAE4C\uC694?",editAddRowUndo:"\uD589 \uCD94\uAC00",editDeleteRowUndo:"\uD589 \uC0AD\uC81C",editCellUndo:"{column} \uD3B8\uC9D1",editFillUndo:"{count}\uAC1C \uC140 \uCC44\uC6B0\uAE30",editPasteUndo:"{count}\uAC1C \uC140 \uBD99\uC5EC\uB123\uAE30",editCutUndo:"{count}\uAC1C \uC140 \uC798\uB77C\uB0B4\uAE30",editNoMatch:"\uC77C\uCE58 \uD56D\uBAA9 \uC5C6\uC74C",formEditTitle:"\uD589 \uD3B8\uC9D1",formAddTitle:"\uC0C8 \uD589",formShortcut:"{key}+Enter\uB85C \uC800\uC7A5 \xB7 Esc\uB85C \uCDE8\uC18C",validationRequired:"\uD544\uC218 \uD56D\uBAA9\uC785\uB2C8\uB2E4",validationNumber:"\uC22B\uC790\uC5EC\uC57C \uD569\uB2C8\uB2E4",validationFormat:"\uD615\uC2DD\uC774 \uC62C\uBC14\uB974\uC9C0 \uC54A\uC2B5\uB2C8\uB2E4",validationEmail:"\uC774\uBA54\uC77C \uC8FC\uC18C\uAC00 \uC62C\uBC14\uB974\uC9C0 \uC54A\uC2B5\uB2C8\uB2E4",validationInvalid:"\uAC12\uC774 \uC62C\uBC14\uB974\uC9C0 \uC54A\uC2B5\uB2C8\uB2E4",dateCalendar:"\uB2EC\uB825",dateOpenCalendar:"\uB2EC\uB825 \uC5F4\uAE30",datePreviousMonth:"\uC774\uC804 \uB2EC",dateNextMonth:"\uB2E4\uC74C \uB2EC",monthJanuary:"1\uC6D4",monthFebruary:"2\uC6D4",monthMarch:"3\uC6D4",monthApril:"4\uC6D4",monthMay:"5\uC6D4",monthJune:"6\uC6D4",monthJuly:"7\uC6D4",monthAugust:"8\uC6D4",monthSeptember:"9\uC6D4",monthOctober:"10\uC6D4",monthNovember:"11\uC6D4",monthDecember:"12\uC6D4",weekStartsOn:"0",weekdaySu:"\uC77C",weekdayMo:"\uC6D4",weekdayTu:"\uD654",weekdayWe:"\uC218",weekdayTh:"\uBAA9",weekdayFr:"\uAE08",weekdaySa:"\uD1A0",importTitle:"\uB370\uC774\uD130 \uAC00\uC838\uC624\uAE30",importStepSource:"1. \uC6D0\uBCF8",importStepMap:"2. \uC5F4 \uB9E4\uD551",importFile:"CSV \uD30C\uC77C",importPaste:"\u2026\uB610\uB294 \uD589 \uBD99\uC5EC\uB123\uAE30",importSeparator:"\uAD6C\uBD84 \uAE30\uD638",importSeparatorAuto:"\uC790\uB3D9 \uAC10\uC9C0",importSeparatorComma:"\uC27C\uD45C ,",importSeparatorSemicolon:"\uC138\uBBF8\uCF5C\uB860 ;",importSeparatorTab:"\uD0ED",importSeparatorPipe:"\uD30C\uC774\uD504 |",importFileColumn:"\uD30C\uC77C \uC5F4",importDetected:"\uAC10\uC9C0\uB428",importGridColumn:"\uADF8\uB9AC\uB4DC \uC5F4",importSample:"\uC608\uC2DC",importSkip:"\u2014 \uAC74\uB108\uB6F0\uAE30 \u2014",importPreview:"\uBBF8\uB9AC \uBCF4\uAE30",importNoSource:"\uBA3C\uC800 \uD30C\uC77C\uC744 \uC120\uD0DD\uD558\uAC70\uB098 \uD589\uC744 \uBD99\uC5EC\uB123\uC73C\uC138\uC694.",importNoRows:"\uB370\uC774\uD130 \uD589\uC744 \uCC3E\uC744 \uC218 \uC5C6\uC2B5\uB2C8\uB2E4.",importAction:"\uAC00\uC838\uC624\uAE30",exportAborted:"\uB0B4\uBCF4\uB0B4\uAE30\uAC00 \uC911\uB2E8\uB418\uC5C8\uC2B5\uB2C8\uB2E4",exportSheetName:"\uB370\uC774\uD130",chart:"\uCC28\uD2B8",chartCategory:"\uBC94\uC8FC",chartSeries:"\uACC4\uC5F4",chartAddSeries:"\uACC4\uC5F4 \uCD94\uAC00",chartRemoveSeries:"\uC81C\uAC70",chartSource:"\uB370\uC774\uD130",chartSourceView:"\uD544\uD130\uB9C1\uB41C \uD589",chartSourceSelection:"\uC120\uD0DD\uD55C \uD589",chartSourceAll:"\uBAA8\uB4E0 \uD589",chartClose:"\uCC28\uD2B8 \uB2EB\uAE30",chartFullscreen:"\uC804\uCCB4 \uD654\uBA74",chartExitFullscreen:"\uC804\uCCB4 \uD654\uBA74 \uC885\uB8CC",chartExportPng:"PNG",chartExportSvg:"SVG",chartExportFailed:"\uCC28\uD2B8\uB97C \uB0B4\uBCF4\uB0B4\uC9C0 \uBABB\uD588\uC2B5\uB2C8\uB2E4.",chartCrossFiltered:"\uADF8\uB9AC\uB4DC\uAC00 {value}(\uC73C)\uB85C \uD544\uD130\uB9C1\uB418\uC5C8\uC2B5\uB2C8\uB2E4.",chartBlankCategory:"(\uBE44\uC5B4 \uC788\uC74C)",chartTruncated:"\uC0C1\uC704 {n}\uAC1C \uBC94\uC8FC\uB97C \uD45C\uC2DC\uD569\uB2C8\uB2E4. \uB098\uBA38\uC9C0\uB294 \u201C\uAE30\uD0C0\u201D\uB85C \uBB36\uC600\uC2B5\uB2C8\uB2E4.",chartOther:"\uAE30\uD0C0",chartEmpty:"\uC544\uC9C1 \uD45C\uC2DC\uD560 \uB0B4\uC6A9\uC774 \uC5C6\uC2B5\uB2C8\uB2E4.",chartNeedsRecharts:"\uCC28\uD2B8\uC5D0\uB294 \uC120\uD0DD \uD328\uD0A4\uC9C0 `recharts`\uAC00 \uD544\uC694\uD569\uB2C8\uB2E4. \uC124\uCE58\uD55C \uB4A4 \uC0AC\uC6A9\uD558\uC138\uC694.",chartOnlyOneSeries:"\uC774 \uCC28\uD2B8 \uC720\uD615\uC740 \uACC4\uC5F4 \uD558\uB098\uB9CC \uD45C\uC2DC\uD569\uB2C8\uB2E4.",chartByColumn:"\uC774 \uC5F4\uB85C \uCC28\uD2B8 \uB9CC\uB4E4\uAE30",chartGroupBy:"\uAE30\uC900",chartGroupNone:"\uAC01 \uAC12",chartGroupAuto:"\uC790\uB3D9",chartGroupDay:"\uC77C",chartGroupWeek:"\uC8FC",chartGroupMonth:"\uC6D4",chartGroupQuarter:"\uBD84\uAE30",chartGroupYear:"\uC5F0\uB3C4",chartGroupBins:"\uAD6C\uAC04 {n}\uAC1C",chartBucketAdjusted:"\uCD95 \uD558\uB098\uC5D0 \uD45C\uC2DC\uD558\uAE30\uC5D0 \uAD6C\uAC04\uC774 \uB108\uBB34 \uB9CE\uC544 \uB354 \uD06C\uAC8C \uBB36\uC5C8\uC2B5\uB2C8\uB2E4.",chartWindowed:"{total}\uAC1C \uC911 {shown}\uAC1C\uB97C \uD45C\uC2DC\uD558\uACE0 \uC788\uC2B5\uB2C8\uB2E4.",chartShowAll:"\uBAA8\uB450 \uD45C\uC2DC",chartCanvasHint:"\uCC28\uD2B8. \uC2A4\uD06C\uB864\uD558\uC5EC \uD655\uB300/\uCD95\uC18C, \uB04C\uC5B4\uC11C \uC774\uB3D9, \uD654\uC0B4\uD45C \uD0A4\uB85C \uC774\uB3D9, 0\uC744 \uB20C\uB7EC \uC804\uCCB4 \uBCF4\uAE30.",chartAggSum:"\uD569\uACC4",chartAggAvg:"\uD3C9\uADE0",chartAggMin:"\uCD5C\uC18C",chartAggMax:"\uCD5C\uB300",chartAggCount:"\uAC1C\uC218",chartAggDistinct:"\uACE0\uC720 \uAC1C\uC218",chartTypeColumn:"\uC138\uB85C \uB9C9\uB300",chartTypeBar:"\uAC00\uB85C \uB9C9\uB300",chartTypeLine:"\uC120",chartTypeArea:"\uC601\uC5ED",chartTypePie:"\uC6D0",chartTypeDonut:"\uB3C4\uB11B",licenseMissing:"\uB77C\uC774\uC120\uC2A4 \uC5C6\uC74C",licenseExpired:"\uB77C\uC774\uC120\uC2A4\uAC00 \uB9CC\uB8CC\uB418\uC5C8\uC2B5\uB2C8\uB2E4",licenseReleaseNotCovered:"\uC774 \uBC84\uC804\uC740 \uB77C\uC774\uC120\uC2A4 \uC801\uC6A9 \uB300\uC0C1\uC774 \uC544\uB2D9\uB2C8\uB2E4",licenseDomainMismatch:"\uC774 \uB3C4\uBA54\uC778\uC5D0\uC11C\uB294 \uB77C\uC774\uC120\uC2A4\uAC00 \uC720\uD6A8\uD558\uC9C0 \uC54A\uC2B5\uB2C8\uB2E4",licenseRevoked:"\uB77C\uC774\uC120\uC2A4\uAC00 \uCDE8\uC18C\uB418\uC5C8\uC2B5\uB2C8\uB2E4",licenseInvalidFormat:"\uB77C\uC774\uC120\uC2A4 \uD0A4 \uD615\uC2DD\uC774 \uC798\uBABB\uB418\uC5C8\uC2B5\uB2C8\uB2E4",licenseInvalidSignature:"\uB77C\uC774\uC120\uC2A4 \uC11C\uBA85\uC774 \uC720\uD6A8\uD558\uC9C0 \uC54A\uC2B5\uB2C8\uB2E4",licenseEngineUnavailable:"\uBE0C\uB77C\uC6B0\uC800\uC5D0\uC11C \uB77C\uC774\uC120\uC2A4\uB97C \uD655\uC778\uD560 \uC218 \uC5C6\uC2B5\uB2C8\uB2E4(HTTPS \uD544\uC694)"};function yt(e,t){let u=e;for(let[r,n]of Object.entries(t))u=u.replace(`{${r}}`,String(n));return u}var Gl={tr:Fl,en:Ji,de:Sl,fr:Bl,es:kl,it:Rl,pt:Nl,ru:Tl,ar:Ml,"zh-CN":Il,ja:Ll,ko:Pl};function Ht(e,t){return Dl(Gl,Ji,e,t)}function Ol(e,t,u,r){let n=u.getCellValue(e.data,t);return r?{text:n==null?"":String(n),value:n}:{text:Du(u.getDef(t),n,e.data),value:n}}function Vl({nodes:e,columns:t,options:u,isSelected:r,selectionCount:n=0,summaries:i}){let a=t.runtime(),l=(u.columnIds??a.map(g=>g.state.id)).map(g=>{let E=t.getDef(g),F=t.getState(g),S=E?.dataType==="number";return{id:g,header:E?.headerName??E?.field??g,width:Math.max(8,Math.round((F?.width??100)/7)),isNumeric:S,align:E?.align??(S?"right":"left"),numFmt:E?.excelFormat??zl(E?.dataType)}}),s=!!u.selectedOnly&&n>0&&!!r,c=u.includeGroups!==!1,m=!!u.raw,p=[];for(let g of e)if(g){if(wo(g)){if(!c||s)continue;let E=l.map((F,S)=>S===0?{text:`${g.label===""?"(Blanks)":g.label} (${g.count})`,value:g.label}:{text:"",value:null});p.push({kind:"group",cells:E,level:g.level});continue}at(g)&&(s&&!r(g.key)||p.push({kind:"data",cells:l.map(E=>Ol(g,E.id,t,m)),level:0}))}let C;return i&&i.defs.length>0&&(C=l.map(g=>{let E=i.defs.find(S=>S.columnId===g.id);if(!E)return null;let F=i.values[`${E.columnId}:${E.type}`]??null;return{text:E.valueFormatter?E.valueFormatter(F):F==null?"":String(F),value:F}})),{columns:l,rows:p,totals:C}}function zl(e){if(e==="number")return"#,##0.###";if(e==="date")return"yyyy-mm-dd"}var lt=class extends Error{constructor(){super("Export aborted"),this.name="ExportAbortedError"}},Hl="\uFEFF",Kl=new Set(["tr","de","fr","es","it","pt","ru","ar"]);function Wl(e){let t=(e??"en").split(/[-_]/)[0].toLowerCase();return Kl.has(t)?";":","}function Ci(e,t){return e.includes(t)||e.includes('"')||e.includes(`
|
|
2
2
|
`)||e.includes("\r")||e!==e.trim()?`"${e.replace(/"/g,'""')}"`:e}async function Ul(e,t={}){let u=t.delimiter??",",r=t.newline??`\r
|
|
3
|
-
`,n=[];t.includeHeaders!==!1&&n.push(e.columns.map(l=>Ci(l.header,u)).join(u));let i=e.rows.length;for(let l=0;l<i;l++){if(t.signal?.aborted)throw new lt;let s=e.rows[l];n.push(s.cells.map(m=>Ci(m.text,u)).join(u)),(l+1)%5e3===0&&(t.onProgress?.((l+1)/i),await new Promise(m=>setTimeout(m,0)))}t.onProgress?.(1);let a=n.join(r);return t.bom===!1?a:Hl+a}async function $l(e,t={}){let u=await Ul(e,t);return new Blob([u],{type:"text/csv;charset=utf-8;"})}var ql="application/vnd.openxmlformats-officedocument.spreadsheetml.sheet",wi="FFF1F5F9",_l="FFFAFAFA",yi="FFE2E8F0";async function jl(){let e;try{e=await import("exceljs")}catch{throw new Error('[datagrid] Excel export needs the "exceljs" package. Install it with: npm i exceljs')}let t=e,u=t.Workbook?t:t.default;if(!u?.Workbook)throw new Error('[datagrid] Excel export needs the "exceljs" package, and what loaded exposes no Workbook \u2014 it is either not installed (npm i exceljs) or a version this writer does not understand.');return u}function Qi(e,t,u){e.columns=t.columns.map(r=>({key:r.id,width:r.width,style:u?{alignment:{horizontal:r.align},...r.numFmt?{numFmt:r.numFmt}:{}}:void 0}))}function Yl(e){let t=e,u="";for(;t>0;){let r=(t-1)%26;u=String.fromCharCode(65+r)+u,t=Math.floor((t-1)/26)}return u||"A"}function Xi(e,t){if(t&&(t.value!==void 0&&(e.value=t.value),t.font&&(e.font={...e.font,...t.font,...t.font.color?{color:{argb:t.font.color}}:{}}),t.fill&&(e.fill={type:"pattern",pattern:"solid",fgColor:{argb:t.fill}}),t.numFmt&&(e.numFmt=t.numFmt),t.alignment&&(e.alignment={...e.alignment,...t.alignment}),t.border)){let u={style:"thin",color:{argb:t.border}};e.border={top:u,left:u,bottom:u,right:u}}}function Gt(e,t,u,r,n){let i=t.customizeCell;i&&e.eachCell((a,l)=>{let s=r?.columns[l-1],m=i({kind:u,columnId:s?.id??null,value:a.value,text:a.value==null?"":String(a.value),rowNumber:e.number,colNumber:l,rowIndex:n});Xi(a,m)})}function Bu(e,t,u,r){if(t?.length)for(let n of t){let i=e.addRow(n.cells);n.height&&(i.height=n.height),n.style&&i.eachCell(a=>Xi(a,n.style)),n.merge&&u>1&&e.mergeCells(`A${i.number}:${Yl(u)}${i.number}`),Gt(i,r,"band",null,-1)}}async function Ei(e,t,u,r,n){let i=null;if(r&&t.columns.length>0){let h=e.addRow(t.columns.map(w=>w.header));h.font={bold:!0},h.fill={type:"pattern",pattern:"solid",fgColor:{argb:wi}},n&&(h.alignment={horizontal:"left",vertical:"middle"},h.border={bottom:{style:"thin",color:{argb:yi}}}),Gt(h,u,"header",t,-1),i=h.number}let a=t.rows.length,l=i===null?0:i+1,s=i??0,m=0,c=-1;for(let h=0;h<a;h++){if(u.signal?.aborted)throw new lt;let w=t.rows[h],g=w.cells.map(F=>u.raw||typeof F.value=="number"||F.value instanceof Date?F.value:F.text),y=e.addRow(g);h===0&&(l=y.number),s=y.number,w.kind==="group"?(c=w.level,y.font={bold:!0},y.getCell(1).alignment={indent:w.level,horizontal:"left"},n&&(y.fill={type:"pattern",pattern:"solid",fgColor:{argb:wi}},y.outlineLevel=w.level),m=0,Gt(y,u,"group",t,h)):(n&&(c>=0&&(y.outlineLevel=c+1),m%2===1&&(y.fill={type:"pattern",pattern:"solid",fgColor:{argb:_l}})),m++,Gt(y,u,"data",t,h)),(h+1)%5e3===0&&(u.onProgress?.((h+1)/a),await new Promise(F=>setTimeout(F,0)))}if(n&&u.totalsRow!==!1&&t.totals){let h=e.addRow(t.totals.map(w=>w==null?"":typeof w.value=="number"?w.value:w.text));h.font={bold:!0},h.border={top:{style:"double",color:{argb:yi}}},Gt(h,u,"totals",t,-1),s=h.number}return{headerRow:i,firstDataRow:l,lastRow:s}}function Zl(e,t,u){if(u?.length)for(let r of u){let n=e.addImage({...typeof r.data=="string"?{base64:r.data}:{buffer:r.data},extension:r.extension}),i=r.position??{col:0,row:0,width:160,height:48};t.addImage(n,{tl:{col:i.col,row:i.row},ext:{width:i.width,height:i.height}})}}async function Jl(e,t={}){let u=await jl(),r=t.styled===!0,n=t.includeHeaders!==!1,i=new u.Workbook,a=h=>i.addWorksheet(h),l=a(t.sheetName??"Data");r&&(l.properties.outlineProperties={summaryBelow:!1,summaryRight:!1}),Qi(l,e,r),Zl(i,l,t.images),Bu(l,t.headerBlock,e.columns.length,t);let s=await Ei(l,e,t,n,r);t.onProgress?.(1),t.autoFilter!==!1&&s.headerRow!==null&&e.columns.length>0&&(l.autoFilter={from:{row:s.headerRow,column:1},to:{row:s.headerRow,column:e.columns.length}}),t.freezeHeader!==!1&&s.headerRow!==null&&(l.views=[{state:"frozen",ySplit:s.headerRow}]);let m=l;for(let h of t.additionalGrids??[])m=Ql(a,m,h,t,r),await Ei(m,h.model,t,h.includeHeaders!==!1,r);Bu(l,t.footerBlock,e.columns.length,t);let c=await i.xlsx.writeBuffer();return new Blob([c],{type:ql})}function Ql(e,t,u,r,n){if(u.sheetName){let a=e(u.sheetName);return Qi(a,u.model,n),u.title&&Bu(a,[{cells:[u.title],merge:!0,style:{font:{bold:!0,size:13}}}],u.model.columns.length,r),a}let i=u.gap??2;for(let a=0;a<i;a++)t.addRow([]);return u.title&&Bu(t,[{cells:[u.title],merge:!0,style:{font:{bold:!0,size:13}}}],u.model.columns.length,r),t}var Xl="application/pdf",Cr=[241,245,249],es=[250,250,250],ke=[30,41,59];async function ts(){let e=new Error('[datagrid] PDF export needs "jspdf" and "jspdf-autotable". Install them with: npm i jspdf jspdf-autotable'),t;try{let[u,r]=await Promise.all([import("jspdf"),import("jspdf-autotable")]);t={jsPDF:u.jsPDF??u.default,autoTable:r.default??r}}catch{throw e}if(typeof t.jsPDF!="function"||typeof t.autoTable!="function")throw e;return t}var Or="helvetica",us=/[^\u0000-\u00ff\u0152\u0153\u0160\u0161\u0178\u017d\u017e\u0192\u02c6\u02dc\u2013\u2014\u2018\u2019\u201a\u201c\u201d\u201e\u2020\u2021\u2022\u2026\u2030\u2039\u203a\u20ac\u2122]/u;function rs(e,t){let u=function*(){for(let r of t.headerBlock??[])yield r.text;for(let r of t.footerBlock??[])yield r.text;for(let r of[{model:e,title:void 0},...t.additionalGrids??[]]){r.title&&(yield r.title);for(let n of r.model.columns)yield n.header;for(let n of r.model.rows)for(let i of n.cells)yield i.text;for(let n of r.model.totals??[])n&&(yield n.text)}};for(let r of u()){let n=us.exec(r);if(n)return n[0]}return null}function ns(e,t,u){let r,n;if(typeof e=="string")r=atob(e.slice(0,8)),n=e;else{let i=e instanceof Uint8Array?e:new Uint8Array(e),a=[];for(let l=0;l<i.length;l+=32768)a.push(String.fromCharCode.apply(null,i.subarray(l,l+32768)));n=a.join(""),r=n.slice(0,4)}if(!r.startsWith("\0\0\0")){let i=r.startsWith("OTTO")?" (it is OpenType-CFF, .otf)":r.startsWith("wOF")?" (it is WOFF)":"";throw new Error(`[datagrid] PDF export: font "${t}" (${u}) is not a TrueType .ttf file${i}. jsPDF embeds TrueType only.`)}return n}function is(e,t){let u=[["normal",t.normal],["bold",t.bold??t.normal],["italic",t.italic??t.normal],["bolditalic",t.boldItalic??t.bold??t.italic??t.normal]];for(let[r,n]of u){let i=`${t.family}-${r}.ttf`;e.addFileToVFS(i,ns(n,t.family,r)),e.addFont(i,t.family,r)}return t.family}function Br(e,t,u,r,n){if(!t?.length)return u;let i=e.internal.pageSize.getWidth(),a=u;for(let l of t){let s=l.fontSize??10;e.setFontSize(s),e.setFont(n,l.fontStyle??"normal");let m=l.color??ke;e.setTextColor(m[0],m[1],m[2]);let c=l.align??"left",h=c==="center"?i/2:c==="right"?i-r:r;a+=s*.353,e.text(l.text,h,a,{align:c}),a+=l.spacing??2}return e.setTextColor(ke[0],ke[1],ke[2]),a}function as(e,t){t&&(t.text!==void 0&&(e.text=[t.text]),t.fillColor&&(e.styles.fillColor=t.fillColor),t.textColor&&(e.styles.textColor=t.textColor),t.fontStyle&&(e.styles.fontStyle=t.fontStyle),t.fontSize&&(e.styles.fontSize=t.fontSize),t.halign&&(e.styles.halign=t.halign))}function Vr(e,t,u,r,n,i,a){let l=r.styled!==!1,s=r.margin??14,m=a?.from??0,c=a?.to??u.rows.length,h=u.rows.slice(m,c).map(g=>g.cells.map(y=>y.text)),w=l&&r.totalsRow!==!1&&u.totals&&(!a||a.withTotals)?[u.totals.map(g=>g?.text??"")]:void 0;return t(e,{startY:n,margin:{left:s,right:s},head:i&&u.columns.length>0?[u.columns.map(g=>g.header)]:void 0,body:h,foot:w,theme:l?"grid":"plain",showHead:r.repeatHeaders===!1?"firstPage":"everyPage",showFoot:w?"lastPage":"never",styles:{...r.font?{font:r.font.family}:{},fontSize:8,cellPadding:2,textColor:ke},headStyles:{fillColor:Cr,textColor:ke,fontStyle:"bold"},footStyles:{fillColor:Cr,textColor:ke,fontStyle:"bold"},alternateRowStyles:l?{fillColor:es}:void 0,columnStyles:l?Object.fromEntries(u.columns.map((g,y)=>[y,{halign:g.align}])):void 0,didParseCell:g=>{let y,F=-1;g.section==="head"?y="header":g.section==="foot"?y="totals":(F=m+g.row.index,y=u.rows[F]?.kind==="group"?"group":"data"),y==="group"&&(g.cell.styles.fontStyle="bold",g.cell.styles.fillColor=Cr,g.column.index===0&&(g.cell.styles.cellPadding={top:2,right:2,bottom:2,left:2+(u.rows[F]?.level??0)*4}));let S=r.customizeCell;if(!S)return;let T=u.columns[g.column.index],N=F>=0?u.rows[F]?.cells[g.column.index]:void 0;as(g.cell,S({kind:y,columnId:T?.id??null,text:Array.isArray(g.cell.text)?g.cell.text.join(" "):String(g.cell.text),value:N?.value,rowIndex:F,columnIndex:g.column.index}))}}),e.lastAutoTable?.finalY??n}function os(e,t){t?.length&&t.forEach((u,r)=>{try{e.addImage(u.data,u.format,u.x,u.y,u.width,u.height)}catch(n){let i=n instanceof Error?n.message:String(n);throw new Error(`[datagrid] PDF export could not decode images[${r}] (format: ${u.format}). The data is not a valid ${u.format} \u2014 check that it is a complete file, base64-encoded, and that \`format\` matches it. Underlying error: ${i}`)}})}function ls(e,t){let u=t.pageNumbers;if(!u)return;let r=t.margin??14,n=e.getNumberOfPages(),i=e.internal.pageSize.getWidth(),a=e.internal.pageSize.getHeight();for(let l=1;l<=n;l++){e.setPage(l),e.setFontSize(8),e.setFont(t.font?.family??Or,"normal"),e.setTextColor(148,163,184);let s=typeof u=="function"?u(l,n):`${l} / ${n}`;e.text(s,i-r,a-8,{align:"right"})}e.setTextColor(ke[0],ke[1],ke[2])}var ss=400,ds=1e3;async function cs(e,t,u,r,n,i,a){let l=u.rows.length,s=Math.max(1,r.sliceRows||ds),m=n,c=0;for(;c<l;){if(r.signal?.aborted)throw new lt;let h=Math.min(l,c+s);c>0&&e.addPage(),m=Vr(e,t,u,r,c===0?n:a,i,{from:c,to:h,withTotals:h>=l}),c=h,r.onProgress?.(c/l),c<l&&await new Promise(w=>setTimeout(w,0))}return m}async function hs(e,t={}){if(t.signal?.aborted)throw new lt;let{jsPDF:u,autoTable:r}=await ts(),n=t.margin??14,i=new u({orientation:t.orientation??"landscape",unit:"mm",format:t.pageSize??"a4"}),a=t.font?is(i,t.font):Or;if(!t.font){let m=rs(e,t);if(m!==null){let c=m.codePointAt(0).toString(16).toUpperCase().padStart(4,"0");console.warn(`[datagrid] PDF export: "${m}" (U+${c}) cannot be drawn by the built-in PDF font and will come out as the wrong character. Pass \`font\` (a TrueType .ttf covering your language) in the PDF export options \u2014 see PdfExportOptions.font.`)}}os(i,t.images);let l=n;l=Br(i,t.headerBlock,l,n,a),l=t.sliceRows!==0&&e.rows.length>ss?await cs(i,r,e,t,l+2,t.includeHeaders!==!1,n):Vr(i,r,e,t,l+2,t.includeHeaders!==!1);for(let m of t.additionalGrids??[]){if(t.signal?.aborted)throw new lt;l=ps(i,r,m,t,l,n)}if(t.onProgress?.(1),t.footerBlock?.length){let m=t.footerBlock.reduce((c,h)=>c+(h.fontSize??10)*.353+(h.spacing??2),4);l+m>i.internal.pageSize.getHeight()-n&&(i.addPage(),l=n),Br(i,t.footerBlock,l+4,n,a)}ls(i,t);let s=i.output("arraybuffer");return new Blob([s],{type:Xl})}function ps(e,t,u,r,n,i){let a=n;return u.pageBreak?(e.addPage(),a=i):a+=8,u.title&&(a=Br(e,[{text:u.title,fontSize:12,fontStyle:"bold"}],a,i,r.font?.family??Or)),Vr(e,t,u.model,r,a+2,u.includeHeaders!==!1)}function ea(e,t){if(typeof document>"u")throw new Error("[datagrid] downloadBlob requires a browser document.");let u=URL.createObjectURL(e),r=document.createElement("a");r.href=u,r.download=t,r.style.display="none",document.body.appendChild(r),r.click(),r.remove(),setTimeout(()=>URL.revokeObjectURL(u),0)}function zr(e){return{"=":e.opEquals,"<>":e.opNotEquals,">":e.opGreater,">=":e.opGreaterOrEqual,"<":e.opLess,"<=":e.opLessOrEqual,contains:e.opContains,notcontains:e.opNotContains,startswith:e.opStartsWith,endswith:e.opEndsWith,isnull:e.opIsBlank,isnotnull:e.opIsNotBlank,in:e.opIsOneOf,between:e.opIsBetween,and:e.filterAnd.toLocaleLowerCase(),or:e.filterOr.toLocaleLowerCase(),blank:e.chartBlankCategory,listSeparator:", ",ofN:e.opValuesCount}}var ms=zr(Ht("en"));function ta(e,t,u={}){if(!e)return null;let r={...ms,...u.labels},n=u.maxListValues??3,i=m=>{let c=t.getDef(m);return c?.headerName??c?.field??m},a=(m,c)=>{if(c==null||c==="")return r.blank;let h=wt(t.getDef(m),c);return h!==null?h:c instanceof Date?c.toLocaleDateString():String(c)},l=(m,c)=>{if(Ir(m)){let g=m.nodes.map(F=>l(F,c+1)).filter(Boolean);if(g.length===0)return"";let y=g.join(` ${r[m.logic]} `);return c>0&&g.length>1?`(${y})`:y}let h=i(m.columnId),w=r[m.operator];switch(m.operator){case"isnull":case"isnotnull":return`${h} ${w}`;case"in":{let g=Array.isArray(m.value)?m.value:[m.value];return g.length>n?`${h} ${w} ${r.ofN.replace("{n}",String(g.length))}`:`${h} ${w} ${g.map(y=>a(m.columnId,y)).join(r.listSeparator)}`}case"between":{let[g,y]=Array.isArray(m.value)?m.value:[void 0,void 0];return`${h} ${w} ${a(m.columnId,g)} \u2013 ${a(m.columnId,y)}`}default:return`${h} ${w} ${a(m.columnId,m.value)}`}},s=l(e,0);return s===""?null:s}function gs(e,t,u,r,n){let i=e,a=i.findIndex(c=>n(c)===t);if(a<0)return{rows:i,moved:!1,fromIndex:-1,toIndex:-1};let l;if(u===null)l=i.length;else{let c=i.findIndex(h=>n(h)===u);if(c<0)return{rows:i,moved:!1,fromIndex:a,toIndex:-1};if(c===a)return{rows:i,moved:!1,fromIndex:a,toIndex:a};l=r==="before"?c:c+1}if(l>a&&(l-=1),l===a)return{rows:i,moved:!1,fromIndex:a,toIndex:a};let s=i.slice(),[m]=s.splice(a,1);return s.splice(l,0,m),{rows:s,moved:!0,fromIndex:a,toIndex:l}}var fs=["columnStateChanged","sortChanged","filterChanged","groupChanged"];function Ai(e){try{return globalThis[e]??null}catch{return null}}function ua(e,t){if(!t.enabled)return()=>{};let u=t.storageKey??`kanuni-datagrid-${e.gridId}`,r=t.type??"localStorage",n=t.saveDelay??500,i=!1,a=h=>{if(!(i||!h))try{e.applyViewState(h)}catch{}};if(r==="custom"){let h=null;try{h=t.customLoad?.()??null}catch{h=null}h&&typeof h.then=="function"?h.then(a,()=>{}):a(h)}else{let h=Ai(r);if(h){let w=null,g=!0;try{w=h.getItem(u)}catch{g=!1}if(g&&w)try{a(JSON.parse(w))}catch{try{h.removeItem(u)}catch{}}}}let l,s=()=>{let h=e.getViewState();if(r==="custom"){try{Promise.resolve(t.customSave?.(h)).catch(()=>{})}catch{}return}let w=Ai(r);if(w)try{w.setItem(u,JSON.stringify(h))}catch{}},m=()=>{l!==void 0&&clearTimeout(l),l=setTimeout(s,n)},c=fs.map(h=>e.events.on(h,m));return()=>{i=!0,c.forEach(h=>h()),l!==void 0&&(clearTimeout(l),l=void 0,s())}}var bi=150,wu=40;function Cs(e,t){return e.id?e.id:e.field?e.field:`col_${t}`}function It(e,t,u){let r=Math.max(e,t);return u!=null&&(r=Math.min(r,u)),r}var ws=class{defs=[];defsById=new Map;states=new Map;orderIds=[];version=0;collapsedBands=new Set;options;constructor(e,t={}){this.options=t,this.setColumns(e)}getVersion(){return this.version}setColumns(e){let t=this.defsById,u=this.states,r=new Set;this.defs=e.map((n,i)=>{let a={...this.options.defaultColumnDef,...n},l=Cs(a,i);if(r.has(l)){let s=`[datagrid] duplicate column id "${l}" \u2014 set an explicit \`id\` on one of the columns.`;this.options.debugMode?console.error(s):console.warn(s)}return r.add(l),a.id=l,a}),this.states=new Map,this.defsById=new Map,this.orderIds=[],this.defs.forEach((n,i)=>{let a=n.id;this.defsById.has(a)||this.defsById.set(a,n);let l=n.minWidth??wu,s=t.get(a),m=u.get(a),c=h=>m!==void 0&&s!==void 0&&s[h]===n[h];this.states.set(a,{id:a,width:c("width")?It(m.width,l,n.maxWidth):It(n.width??bi,l,n.maxWidth),pinned:c("pin")?m.pinned:n.pin??null,visible:c("visible")?m.visible:n.visible!==!1,order:m!==void 0?m.order:i}),this.orderIds.push(a)}),this.orderIds.sort((n,i)=>(this.states.get(n)?.order??0)-(this.states.get(i)?.order??0)),this.version++}resetColumnStates(){this.orderIds=this.defs.map(e=>e.id),this.defs.forEach((e,t)=>{let u=this.states.get(e.id);if(!u)return;let r=e.minWidth??wu;u.width=It(e.width??bi,r,e.maxWidth),u.pinned=e.pin??null,u.visible=e.visible!==!1,u.order=t}),this.version++}getDef(e){return this.defsById.get(e)}getState(e){return this.states.get(e)}getOrder(){return[...this.orderIds]}getColumnStates(){return this.orderIds.map(e=>({...this.states.get(e)}))}runtime(){let e={left:[],center:[],right:[]};for(let t of this.orderIds){let u=this.states.get(t),r=this.getDef(t);if(!u||!r||!u.visible||Ao(r,this.collapsedBands))continue;let n=u.pinned??"center";e[n==="left"?"left":n==="right"?"right":"center"].push({def:r,state:u})}return[...e.left,...e.center,...e.right]}isBandCollapsed(e){return this.collapsedBands.has(Pt(e))}setBandCollapsed(e,t){if(e.length===0)return!1;let u=Pt(e);return this.collapsedBands.has(u)===t?!1:(t?this.collapsedBands.add(u):this.collapsedBands.delete(u),this.version++,!0)}getCollapsedBands(){return[...this.collapsedBands]}setCollapsedBands(e){this.collapsedBands=new Set(e),this.version++}isBandCollapsible(e){if(e.length===0)return!1;let t=Pt(e),u=!1,r=!1;for(let n of this.orderIds){let i=this.getDef(n),a=this.states.get(n);if(!i||!a?.visible)continue;let l=Ie(i);l.length<e.length||Pt(l.slice(0,e.length))===t&&(i.bandShow==="open"?u=!0:r=!0)}return u&&r}setWidth(e,t){let u=this.states.get(e),r=this.getDef(e);!u||!r||(u.width=It(t,r.minWidth??wu,r.maxWidth),this.version++)}setPinned(e,t){let u=this.states.get(e);u&&(u.pinned=t,this.version++)}setVisible(e,t){let u=this.states.get(e);u&&(u.visible=t,this.version++)}moveColumn(e,t){let u=this.orderIds.indexOf(e);if(u===-1)return;this.orderIds.splice(u,1);let r=t?this.orderIds.indexOf(t):this.orderIds.length;this.orderIds.splice(r===-1?this.orderIds.length:r,0,e),this.orderIds.forEach((n,i)=>{let a=this.states.get(n);a&&(a.order=i)}),this.version++}applyColumnStates(e){let t=e.filter(n=>this.states.has(n.id)).slice().sort((n,i)=>n.order-i.order);for(let n of t){let i=this.getDef(n.id),a=this.states.get(n.id);!i||!a||(a.width=It(n.width,i.minWidth??wu,i.maxWidth),a.pinned=n.pinned,a.visible=n.visible)}let u=t.map(n=>n.id),r=this.orderIds.filter(n=>!u.includes(n));this.orderIds=[...u,...r],this.orderIds.forEach((n,i)=>{let a=this.states.get(n);a&&(a.order=i)}),this.version++}getCellValue(e,t){let u=this.getDef(t);if(u){if(u.valueGetter)return u.valueGetter(e);if(u.field)return e[u.field]}}getSortValue(e,t){let u=this.defsById.get(t);if(u){if(u.calculateSortValue)return u.calculateSortValue(e);if(u.valueGetter)return u.valueGetter(e);if(u.field)return e[u.field]}}getDataType(e){return this.getDef(e)?.dataType??"string"}};function ys(e,t,u){let r=e.length,n=new Uint32Array(r),i=new Uint32Array(r),a=0,l=0;for(let S=0;S<r;S++){let T=e[S];Number.isNaN(t[T])?i[l++]=T:n[a++]=T}let s=new Uint32Array(a),m=new Uint32Array(a),c=new Float64Array(1),h=new Uint32Array(c.buffer);for(let S=0;S<a;S++){let T=t[n[S]];c[0]=T===0?0:T;let N=h[0],V=h[1];V&2147483648?(N=~N>>>0,V=~V>>>0):V=(V^2147483648)>>>0,u&&(N=~N>>>0,V=~V>>>0),s[S]=N,m[S]=V}let w=new Uint32Array(a);for(let S=0;S<a;S++)w[S]=S;let g=new Uint32Array(a),y=new Uint32Array(256);for(let S=0;S<8;S++){let T=S>=4,N=(S&3)*8,V=T?m:s;y.fill(0);for(let W=0;W<a;W++)y[V[w[W]]>>>N&255]++;if(y[V[w[0]]>>>N&255]===a)continue;let K=0;for(let W=0;W<256;W++){let J=y[W];y[W]=K,K+=J}for(let W=0;W<a;W++){let J=w[W];g[y[V[J]>>>N&255]++]=J}let Z=w;w=g,g=Z}let F=new Uint32Array(r);for(let S=0;S<a;S++)F[S]=n[w[S]];for(let S=0;S<l;S++)F[a+S]=i[S];return F}var vi=new Map;function Es(e){let t=vi.get(e);return t||(t=new Intl.Collator(e,{numeric:!0,sensitivity:"base"}),vi.set(e,t)),t}function xi(e){return e==null||typeof e=="number"&&Number.isNaN(e)}function As(e){if(typeof e=="number")return e;if(typeof e=="boolean")return e?1:0;if(e instanceof Date)return e.getTime();let t=Number(e);return Number.isNaN(t)?Number.NEGATIVE_INFINITY:t}function bs(e){if(e instanceof Date)return e.getTime();if(typeof e=="number")return e;let t=Date.parse(String(e));return Number.isNaN(t)?Number.NEGATIVE_INFINITY:t}function vs(e,t){for(let u of t)if(e.getDef(u.columnId)?.comparator)return!0;return!1}function xs(e,t,u,r){let n=e.length,i=r.columnId,a=r.direction==="desc"?-1:1,l=u.getDataType(i),s=u.getDef(i)?.comparator;if(s){let h=new Array(n),w=new Array(n);for(let g=0;g<n;g++){let y=t[e[g]];h[g]=u.getSortValue(y,i),w[g]=y}return{dir:a,numeric:null,strings:null,values:h,valueRows:w,comparator:s}}if(l==="string"||l==="lookup"){let h=new Array(n);for(let w=0;w<n;w++){let g=u.getSortValue(t[e[w]],i);h[w]=xi(g)?null:String(g)}return{dir:a,numeric:null,strings:h,values:null,valueRows:null,comparator:null}}let m=new Float64Array(n),c=l==="date"?bs:As;for(let h=0;h<n;h++){let w=u.getSortValue(t[e[h]],i);m[h]=xi(w)?Number.NaN:c(w)}return{dir:a,numeric:m,strings:null,values:null,valueRows:null,comparator:null}}function Ds(e,t){let u=e.length,r=[],n=new Map,i=new Int32Array(u);for(let s=0;s<u;s++){let m=e[s];if(m===null){i[s]=-1;continue}let c=n.get(m);c===void 0&&(c=r.length,r.push(m),n.set(m,c)),i[s]=c}let a=_o(r,t),l=new Float64Array(u);for(let s=0;s<u;s++)l[s]=i[s]===-1?Number.NaN:a[i[s]];return l}function Fs(e,t,u,r,n={}){if(r.length===0)return e.slice();let i=Es(n.locale??"en"),a=r.map(h=>xs(e,t,u,h)),l=a.length,s=new Array(e.length),m=!0;for(let h=0;h<e.length;h++)s[h]=h,h>0&&e[h]<e[h-1]&&(m=!1);if(!a.some(h=>h.comparator!==null)&&m&&e.length>=5e4){let h=a.map(y=>y.numeric?y.numeric:Ds(y.strings,i)),w=Uint32Array.from(s);for(let y=l-1;y>=0;y--)w=ys(w,h[y],a[y].dir===-1);let g=new Uint32Array(e.length);for(let y=0;y<w.length;y++)g[y]=e[w[y]];return g}s.sort((h,w)=>{for(let g=0;g<l;g++){let y=a[g];if(y.comparator){let F=y.values,S=y.valueRows,T=y.comparator(F[h],F[w],S[h],S[w],y.dir===-1);if(T!==0)return T*y.dir}else if(y.numeric){let F=y.numeric[h],S=y.numeric[w],T=Number.isNaN(F),N=Number.isNaN(S);if(T||N){if(T&&N)continue;return T?1:-1}if(F!==S)return(F<S?-1:1)*y.dir}else{let F=y.strings[h],S=y.strings[w];if(F===null||S===null){if(F===null&&S===null)continue;return F===null?1:-1}let T=i.compare(F,S);if(T!==0)return T*y.dir}}return e[h]-e[w]});let c=new Uint32Array(e.length);for(let h=0;h<s.length;h++)c[h]=e[s[h]];return c}var Ss=class{mode="client";rows;keyGetter;locale;nodeCache;constructor(e,t){this.rows=e,this.keyGetter=t.keyGetter,this.locale=t.locale??"en",this.nodeCache=t.nodeCache??new Zi}getTotalCount(){return this.rows.length}setData(e){this.rows=e,this.nodeCache.invalidate()}patchData(e,t,u){this.rows=e,this.nodeCache.rebase(e,t)}getSourceRows(){return this.rows}compute(e,t){let u=this.rows.length,r=new Uint32Array(u);for(let a=0;a<u;a++)r[a]=a;let n=Yo(r,this.rows,e,t.filter,t.searchText,t.externalFilter),i=Fs(n,this.rows,e,t.sort,{locale:this.locale});return{nodes:this.nodeCache.project(i,this.rows,this.keyGetter),visibleCount:i.length,totalCount:u}}async getRows(e,t){return this.compute(e,t)}},ra='var De=/[\\u0130\\u0131]/,Fe=/[\\u0130\\u0131]/g;function G(e){return De.test(e)?e.replace(Fe,"i").toLowerCase():e.toLowerCase()}var M=-1;var ue=new WeakMap;function Re(e){let t=ue.get(e);if(t!==void 0)return t;let n=Me(e);return ue.set(e,n),n}function Me(e){let t=e.resolvedOptions();if(t.sensitivity!=="base"||t.numeric!==true||t.ignorePunctuation||t.usage!=="sort"||t.collation!=="default")return false;let n=[];for(let r=32;r<=126;r++)n.push(String.fromCharCode(r));n.sort(e.compare);for(let r=1;r<n.length;r++)if(e.compare(n[r-1],n[r])===0&&n[r-1].toLowerCase()!==n[r].toLowerCase())return false;for(let r of n)if(e.compare(r,"")===0)return false;return !(e.compare("01","1")!==0||e.compare("0","00")!==0||e.compare("a09z","a9z")!==0||e.compare("9","10")>=0)}function le(e){for(let t=0;t<e.length;t++){let n=e.charCodeAt(t);if(n<32||n>126)return false}return true}function Ue(e,t){let n=0,r=0,o=e.length,l=t.length;for(;n<o&&r<l;){let s=e.charCodeAt(n),f=t.charCodeAt(r),a=s>=48&&s<=57,d=f>=48&&f<=57;if(a!==d)return true;if(a){for(;n<o&&e.charCodeAt(n)===48;)n++;for(;r<l&&t.charCodeAt(r)===48;)r++;let b=n,g=r;for(;n<o;){let k=e.charCodeAt(n);if(k<48||k>57)break;n++;}for(;r<l;){let k=t.charCodeAt(r);if(k<48||k>57)break;r++;}let N=n-b;if(N!==r-g)return true;for(let k=0;k<N;k++)if(e.charCodeAt(b+k)!==t.charCodeAt(g+k))return true}else {if(s>=65&&s<=90&&(s+=32),f>=65&&f<=90&&(f+=32),s!==f)return true;n++,r++;}}return n!==o||r!==l}function ce(e,t){let n=e.length,r=new Array(n);for(let b=0;b<n;b++)r[b]=b;r.sort((b,g)=>t.compare(e[b],e[g]));let o=new Int32Array(n);if(n===0)return o;let s=Re(t)?new Uint8Array(n):null,f=r[0],a=s?le(e[f])?1:2:0;s&&(s[f]=a);let d=0;o[f]=0;for(let b=1;b<n;b++){let g=r[b],N=e[f],k=e[g],m=0;s&&(m=s[g],m===0&&(m=le(k)?1:2,s[g]=m)),(a===1&&m===1&&Ue(N,k)||t.compare(N,k)!==0)&&d++,o[g]=d,f=g,a=m;}return o}function de(e,t,n){let r=e.length,o=new Uint32Array(r),l=new Uint32Array(r),s=0,f=0;for(let i=0;i<r;i++){let C=e[i];Number.isNaN(t[C])?l[f++]=C:o[s++]=C;}let a=new Uint32Array(s),d=new Uint32Array(s),b=new Float64Array(1),g=new Uint32Array(b.buffer);for(let i=0;i<s;i++){let C=t[o[i]];b[0]=C===0?0:C;let h=g[0],p=g[1];p&2147483648?(h=~h>>>0,p=~p>>>0):p=(p^2147483648)>>>0,n&&(h=~h>>>0,p=~p>>>0),a[i]=h,d[i]=p;}let N=new Uint32Array(s);for(let i=0;i<s;i++)N[i]=i;let k=new Uint32Array(s),m=new Uint32Array(256);for(let i=0;i<8;i++){let C=i>=4,h=(i&3)*8,p=C?d:a;m.fill(0);for(let T=0;T<s;T++)m[p[N[T]]>>>h&255]++;if(m[p[N[0]]>>>h&255]===s)continue;let w=0;for(let T=0;T<256;T++){let E=m[T];m[T]=w,w+=E;}for(let T=0;T<s;T++){let E=N[T];k[m[p[E]>>>h&255]++]=E;}let F=N;N=k,k=F;}let I=new Uint32Array(r);for(let i=0;i<s;i++)I[i]=o[N[i]];for(let i=0;i<f;i++)I[s+i]=l[i];return I}function fe(e){return e.nodes!==void 0}var me=new Map;function ve(e){let t=me.get(e);return t||(t=new Intl.Collator(e,{numeric:true,sensitivity:"base"}),me.set(e,t)),t}var ge=new WeakMap;function Oe(e,t,n){let r=ge.get(e);r||(r=new Map,ge.set(e,r));let o=r.get(n);return (!o||o.length!==t.length)&&(o=ce(t,ve(n)),r.set(n,o)),o}var be=new WeakMap;function he(e,t){let n=be.get(e);if(!n)n=t.map(G),be.set(e,n);else for(let r=n.length;r<t.length;r++)n.push(G(t[r]));return n}function U(e){if(e instanceof Date)return e.getTime();if(typeof e=="number")return e;if(typeof e=="boolean")return e?1:0;if(e==null)return Number.NaN;let t=Number(e);if(!Number.isNaN(t))return t;let n=Date.parse(String(e));return Number.isNaN(n)?Number.NaN:n}function _e(e,t){let n=e.dictionary,r=new Uint8Array(n.length),o=false,l=t.operator;if(l==="isnull")return {mask:r,nilPasses:true};if(l==="isnotnull")return r.fill(1),{mask:r,nilPasses:false};let s=he(e,n),f=t.value==null?"":G(String(t.value));switch(l){case "=":case "<>":{let a=t.value===null||t.value===void 0;for(let d=0;d<n.length;d++){let b=a?false:Le(n[d],t.value);r[d]=(l==="="?b:!b)?1:0;}o=l==="="?a:!a;break}case "contains":for(let a=0;a<n.length;a++)r[a]=s[a].includes(f)?1:0;break;case "notcontains":for(let a=0;a<n.length;a++)r[a]=s[a].includes(f)?0:1;o=true,f===""&&(o=false);break;case "startswith":for(let a=0;a<n.length;a++)r[a]=s[a].startsWith(f)?1:0;break;case "endswith":for(let a=0;a<n.length;a++)r[a]=s[a].endsWith(f)?1:0;break;case "in":{let a=Ve(t.value);for(let d=0;d<n.length;d++)r[d]=a.has($(n[d]))?1:0;break}case ">":case ">=":case "<":case "<=":{for(let a=0;a<n.length;a++){let d=X(n[a],t.value);r[a]=l===">"&&d>0||l===">="&&d>=0||l==="<"&&d<0||l==="<="&&d<=0?1:0;}break}case "between":{if(!Array.isArray(t.value)||t.value.length<2)break;let[a,d]=t.value;for(let b=0;b<n.length;b++)r[b]=X(n[b],a)>=0&&X(n[b],d)<=0?1:0;break}default:r.fill(1),o=true;}return {mask:r,nilPasses:o}}function $(e){if(e instanceof Date)return e.getTime();if(typeof e=="number")return e;if(typeof e=="boolean")return e?1:0;let t=Number(e);return Number.isNaN(t)?String(e).toLowerCase():t}function Le(e,t){return $(e)===$(t)}function Ve(e){let t=new Set,n=Array.isArray(e)?e:[];for(let r of n){if(r==null)continue;let o=$(r);typeof o=="number"&&Number.isNaN(o)||t.add(o);}return t}function qe(e){let t=new Set,n=Array.isArray(e)?e:[];for(let r of n){let o=U(r);Number.isNaN(o)||t.add(o);}return t}var j=new WeakMap;function Ge(e){let t=j.get(e);return t||(t=qe(e.value),j.set(e,t)),t}function X(e,t){let n=U(e),r=U(t);if(!Number.isNaN(n)&&!Number.isNaN(r))return n-r;let o=String(e).toLowerCase(),l=String(t).toLowerCase();return o<l?-1:o>l?1:0}function Pe(e,t){if(t.operator==="in")return !Number.isNaN(e)&&Ge(t).has(e);let n=Number.isNaN(e);switch(t.operator){case "isnull":return n;case "isnotnull":return !n;case "=":return !n&&e===U(t.value);case "<>":return n||e!==U(t.value);case ">":return !n&&e>U(t.value);case ">=":return !n&&e>=U(t.value);case "<":return !n&&e<U(t.value);case "<=":return !n&&e<=U(t.value);case "between":return n||!Array.isArray(t.value)||t.value.length<2?false:e>=U(t.value[0])&&e<=U(t.value[1]);case "contains":case "notcontains":case "startswith":case "endswith":{let r=n?"":String(e),o=t.value==null?"":G(String(t.value)),l=r.toLowerCase();return t.operator==="contains"?l.includes(o):t.operator==="notcontains"?!l.includes(o):t.operator==="startswith"?l.startsWith(o):l.endsWith(o)}default:return true}}function Q(e,t,n){if(fe(e))return e.nodes.length===0?true:e.logic==="or"?e.nodes.some(f=>Q(f,t,n)):e.nodes.every(f=>Q(f,t,n));let r=t.columns[e.columnId];if(!r)return true;if(r.kind==="numeric")return Pe(r.values[n],e);let o=J.get(e),l=o??_e(r,e);o||J.set(e,l);let s=r.codes[n];return s===M?l.nilPasses:l.mask[s]===1}var J=new WeakMap,Ke=65535;function Z(e,t){J=new WeakMap,j=new WeakMap;let{rowCount:n}=e,r=t.locale??"en",o=G(t.searchText.trim()),l=!!t.filter,s=o.length>0,f=[];if(s){let m=/^[0-9.+\\-einftya]*$/.test(o),I=(C,h,p)=>{let w=he(h,C),F=new Uint8Array(C.length),T=false;for(let E=0;E<w.length;E++)(w[E].includes(o)||p!==void 0&&p.has(C[E]))&&(F[E]=1,T=true);return T?F:null},i=new Map;if(t.searchLabelHits)for(let[C,h]of Object.entries(t.searchLabelHits))i.set(C,new Set(h));for(let C of t.searchColumns){let h=e.columns[C];if(!h)continue;let p=i.get(C);if(h.kind==="text"){let w=I(h.dictionary,h,p);w&&f.push({codes:h.codes,mask:w,values:null,numberHits:null,scanText:true});}else if(h.searchDictionary&&h.searchCodes){let w=I(h.searchDictionary,h,p);w&&f.push({codes:h.searchCodes,mask:w,values:null,numberHits:null,scanText:true});}else {let w=null;if(p)for(let F of p){let T=Number(F);Number.isNaN(T)||(w??=new Set).add(T);}(m||w)&&f.push({codes:null,mask:null,values:h.values,numberHits:w,scanText:m});}}}let a=t.onProgress,d=t.isCancelled,b={order:new Uint32Array(0),cancelled:true},g;if(!l&&!s){g=new Uint32Array(n);for(let m=0;m<n;m++)g[m]=m;}else {let m=new Uint32Array(n),I=0;for(let i=0;i<n;i++){if((i&Ke)===0){if(d?.())return b;a?.("filtering",n===0?1:i/n);}if(!(l&&!Q(t.filter,e,i))){if(s){let C=false;for(let h of f)if(h.codes&&h.mask){let p=h.codes[i];if(p!==M&&h.mask[p]===1){C=true;break}}else if(h.values){let p=h.values[i];if(!Number.isNaN(p)){if(h.numberHits!==null&&h.numberHits.has(p)){C=true;break}if(h.scanText&&String(p).toLowerCase().includes(o)){C=true;break}}}if(!C)continue}m[I++]=i;}}g=m.subarray(0,I),a?.("filtering",1);}if(t.sort.length===0)return {order:g.slice()};if(d?.())return b;let N=[];for(let m of t.sort){let I=e.columns[m.columnId];if(!I)continue;let i=m.direction==="desc"?-1:1;I.kind==="numeric"?N.push({dir:i,numeric:I.values,codes:null,ranks:null}):N.push({dir:i,numeric:null,codes:I.codes,ranks:Oe(I,I.dictionary,r)});}if(N.length===0)return {order:g.slice()};if(g.length>=5e4){let m=[];for(let i of N){if(i.numeric){m.push(i.numeric);continue}let C=i.codes,h=i.ranks,p=new Float64Array(n);for(let w=0;w<n;w++){let F=C[w];p[w]=F===M?Number.NaN:h[F];}m.push(p);}let I=g;for(let i=N.length-1;i>=0;i--){if(d?.())return b;a?.("sorting",(N.length-1-i)/N.length),I=de(I,m[i],N[i].dir===-1);}return a?.("sorting",1),{order:I===g?g.slice():I}}a?.("sorting",null);let k=Array.from(g);return k.sort((m,I)=>{for(let i of N)if(i.numeric){let C=i.numeric[m],h=i.numeric[I],p=Number.isNaN(C),w=Number.isNaN(h);if(p||w){if(p&&w)continue;return p?1:-1}if(C!==h)return (C<h?-1:1)*i.dir}else {let C=i.codes[m],h=i.codes[I];if(C===M||h===M){if(C===M&&h===M)continue;return C===M?1:-1}let p=i.ranks[C],w=i.ranks[h];if(p!==w)return (p<w?-1:1)*i.dir}return m-I}),{order:Uint32Array.from(k)}}var We=30,ye="Other",ze=1e4;var _=864e5,He=60,$e=20,Y=2e3,ee=["day","week","month","quarter","year"],Ce={day:_,week:7*_,month:30.44*_,quarter:91.31*_,year:365.25*_};function pe(e,t){let n=new Date(e),r=n.getUTCFullYear(),o=n.getUTCMonth();switch(t){case "day":return Date.UTC(r,o,n.getUTCDate());case "week":{let l=Date.UTC(r,o,n.getUTCDate()),s=(new Date(l).getUTCDay()+6)%7;return l-s*_}case "month":return Date.UTC(r,o,1);case "quarter":return Date.UTC(r,Math.floor(o/3)*3,1);default:return Date.UTC(r,0,1)}}function Ne(e,t){let n=new Date(e),r=n.getUTCFullYear(),o=n.getUTCMonth();switch(t){case "day":return e+_;case "week":return e+7*_;case "month":return Date.UTC(r,o+1,1);case "quarter":return Date.UTC(r,o+3,1);default:return Date.UTC(r+1,0,1)}}var te=e=>e<10?`0${e}`:String(e);function Ye(e,t){let n=new Date(e),r=n.getUTCFullYear();switch(t){case "year":return String(r);case "quarter":return `${r}-Q${Math.floor(n.getUTCMonth()/3)+1}`;case "month":return `${r}-${te(n.getUTCMonth()+1)}`;default:return `${r}-${te(n.getUTCMonth()+1)}-${te(n.getUTCDate())}`}}function Xe(e){if(!(e>0)||!Number.isFinite(e))return 1;let n=10**Math.floor(Math.log10(e)),r=e/n;return (r<=1?1:r<=2?2:r<=5?5:10)*n}function je(e,t,n){let r=Number.isFinite(t)&&Number.isFinite(n)?Math.max(0,n-t):0;if(e.kind==="date"){let a=e.unit??"auto",d,b=false;if(a==="auto")d=ee.find(g=>r/Ce[g]+1<=He)??"year";else for(d=a;r/Ce[d]+1>Y;){let g=ee[ee.indexOf(d)+1];if(!g)break;d=g,b=true;}return {info:{kind:"date",unit:d,adjusted:b},keyOf:g=>Number.isFinite(g)?pe(g,d):Number.NaN,endOf:g=>Ne(g,d),labelOf:g=>Ye(g,d),keys:(g,N)=>{let k=[];if(!Number.isFinite(g)||!Number.isFinite(N))return k;for(let m=pe(g,d);m<=N&&k.length<Y;m=Ne(m,d))k.push(m);return k}}}let o=e.size&&e.size>0?e.size:Xe(r/Math.max(1,e.bins??$e));(!(o>0)||!Number.isFinite(o))&&(o=1);let l=false;for(;r/o+1>Y;)o*=2,l=true;let s=o;return {info:{kind:"number",size:s,adjusted:l},keyOf:a=>Number.isFinite(a)?Math.floor(a/s)*s:Number.NaN,endOf:a=>a+s,labelOf:a=>{let d=b=>String(Number(b.toPrecision(12)));return `${d(a)} \\u2013 ${d(a+s)}`},keys:(a,d)=>{let b=[];if(!Number.isFinite(a)||!Number.isFinite(d))return b;let g=Math.floor(a/s)*s;for(let N=g;N<=d&&b.length<Y;N+=s)b.push(N);return b}}}function Qe(e,t){if(e==null)return Number.NaN;if(e instanceof Date)return e.getTime();if(typeof e=="number")return e;if(t==="number")return Number(e);let n=Number(e);return Number.isNaN(n)?Date.parse(String(e)):n}function Je(e,t){if(!e)return {};let n=new Float64Array(t.length),r=new Float64Array(t.length);for(let o=0;o<t.length;o++){let l=t[o].start;n[o]=l,r[o]=Number.isNaN(l)?Number.NaN:e.endOf(l);}return {bucket:e.info,bucketStarts:n,bucketEnds:r}}var z=-1;function ke(e,t,n,r){let o=Math.max(1,n.maxCategories??We),l=n.otherBucket!==false,s=n.series.length,f=e[n.categoryColumnId],a=n.series.map(u=>e[u.columnId]),d=n.series.map(u=>u.aggregate==="countDistinct"),b=new Map,g=null,N=0,k=false,m=(u,c=Number.NaN)=>({label:u,sum:new Float64Array(s),numericCount:new Float64Array(s),count:new Float64Array(s),min:new Float64Array(s).fill(Number.POSITIVE_INFINITY),max:new Float64Array(s).fill(Number.NEGATIVE_INFINITY),distinct:d.map(y=>y?new Set:null),seq:N++,start:c}),I=(u,c)=>{if(!f)return Number.NaN;if(f.kind==="numeric")return f.values[u];let y=f.codes[u];return y===z?Number.NaN:Qe(f.dictionary[y],c)},i=n.categoryBucket,C=null,h=Number.POSITIVE_INFINITY,p=Number.NEGATIVE_INFINITY;if(i){for(let u=0;u<t.length;u++){let c=I(t[u],i.kind);Number.isFinite(c)&&(c<h&&(h=c),c>p&&(p=c));}C=je(i,h,p);}let w=0,F=1,T=2,E=new Uint8Array(s),re=new Array(s).fill(null),oe=new Array(s).fill(null),ae=new Array(s).fill(null);for(let u=0;u<s;u++){let c=n.series[u].aggregate;E[u]=c==="count"?w:d[u]?F:T;let y=a[u];if(!y)continue;if(y.kind==="numeric"){re[u]=y.values;continue}oe[u]=y.codes;let x=y.dictionary,R=new Float64Array(x.length);for(let S=0;S<x.length;S++){let A=x[S],W=A===""?Number.NaN:Number(A);R[S]=Number.isFinite(W)?W:Number.NaN;}ae[u]=R;}for(let u=0;u<t.length;u++){let c=t[u],y,x,R=Number.NaN;if(C&&i)R=C.keyOf(I(c,i.kind)),y=Number.isNaN(R)?"":R,x=Number.isNaN(R)?"":C.labelOf(R);else if(!f)y=x="";else if(f.kind==="text"){let A=f.codes[c];y=x=A===z?"":f.dictionary[A];}else {let A=f.values[c];y=x=Number.isNaN(A)?"":String(A);}let S=b.get(y);S||(b.size>=ze?(k=true,g??=m(n.otherLabel??ye),S=g):(S=m(x,R),b.set(y,S)));for(let A=0;A<s;A++){let W=E[A],L=re[A],V=oe[A];if(W===w){(L!==null?!Number.isNaN(L[c]):V!==null&&V[c]!==z)&&S.count[A]++;continue}if(W===F){let q=S.distinct[A];if(q)if(V!==null){let ie=V[c];ie!==z&&q.add(ie);}else L!==null&&!Number.isNaN(L[c])&&q.add(L[c]);continue}let O;if(L!==null)O=L[c];else if(V!==null){let q=V[c];O=q===z?Number.NaN:ae[A][q];}else O=Number.NaN;Number.isNaN(O)||(S.numericCount[A]++,S.sum[A]+=O,O<S.min[A]&&(S.min[A]=O),O>S.max[A]&&(S.max[A]=O));}}let Se=(u,c)=>{for(let y=0;y<s;y++){u.sum[y]+=c.sum[y],u.numericCount[y]+=c.numericCount[y],u.count[y]+=c.count[y],c.min[y]<u.min[y]&&(u.min[y]=c.min[y]),c.max[y]>u.max[y]&&(u.max[y]=c.max[y]);let x=u.distinct[y],R=c.distinct[y];if(x&&R)for(let S of R)x.add(S);}},se=(u,c)=>{switch(n.series[c].aggregate){case "count":return u.count[c];case "countDistinct":return u.distinct[c]?.size??0;case "sum":return u.numericCount[c]>0?u.sum[c]:Number.NaN;case "avg":return u.numericCount[c]>0?u.sum[c]/u.numericCount[c]:Number.NaN;case "min":return u.numericCount[c]>0?u.min[c]:Number.NaN;case "max":return u.numericCount[c]>0?u.max[c]:Number.NaN;default:return Number.NaN}},K=[...b.values()],Ee=K.length+(g?1:0),H=u=>{if(s===0)return Number.NEGATIVE_INFINITY;let c=se(u,0);return Number.isNaN(c)?Number.NEGATIVE_INFINITY:c},v;if(C){v=C.keys(h,p).map(c=>b.get(c)??m(C.labelOf(c),c));let u=b.get("");u&&v.push(u);}else {let u=K;if(K.length>o){let c=[...K].sort((y,x)=>H(x)-H(y));if(u=c.slice(0,o),l){g??=m(n.otherLabel??ye);for(let y of c.slice(o))Se(g,y);}}switch(n.categoryOrder??"value-desc"){case "category-asc":u=[...u].sort((c,y)=>c.label.localeCompare(y.label));break;case "first-seen":u=[...u].sort((c,y)=>c.seq-y.seq);break;default:u=[...u].sort((c,y)=>H(y)-H(c));}v=g?[...u,g]:u;}return {categories:v.map(u=>u.label),series:n.series.map((u,c)=>{let y=new Float64Array(v.length);for(let x=0;x<v.length;x++)y[x]=se(v[x],c);return {label:u.label??r.series[c]??u.columnId,columnId:u.columnId,aggregate:u.aggregate,values:y}}),truncated:C?false:K.length>o||k,otherIndex:C?null:g?v.length-1:null,rowCount:t.length,categoryCount:C?v.length:Ee,rankingExact:!k,...Je(C,v)}}function we(){let e=new WeakMap;return {get(t){let n=e.get(t);if(n===void 0){n=new Map;let r=t.kind==="text"?t.dictionary:t.searchDictionary??[];for(let o=0;o<r.length;o++)n.set(r[o],o);e.set(t,n);}return n}}}function Ie(e,t,n){let r=n.get(e);return r===void 0&&(r=t.length,t.push(e),n.set(e,r)),r}function Ae(e,t,n){for(let r of t){let o=e[r.columnId];if(!o)continue;let{indices:l}=r;if(o.kind==="numeric"){let s=r.numbers??[];for(let f=0;f<l.length;f++)o.values[l[f]]=s[f];if(o.searchCodes&&o.searchDictionary&&r.labels){let f=n.get(o);for(let a=0;a<l.length;a++){let d=r.labels[a];o.searchCodes[l[a]]=d===null?M:Ie(d,o.searchDictionary,f);}}}else {let s=r.labels??[],f=n.get(o);for(let a=0;a<l.length;a++){let d=s[a];o.codes[l[a]]=d===null?M:Ie(d,o.dictionary,f);}}}}var Te=self,P=new Map;function B(e,t){Te.postMessage(e,t??[]);}function xe(e,t){for(let n of e)if(n.kind==="numeric"){let r={kind:"numeric",values:new Float64Array(n.buffer)};n.searchBuffer&&n.searchDictionary&&(r.searchCodes=new Int32Array(n.searchBuffer),r.searchDictionary=n.searchDictionary),t[n.columnId]=r;}else t[n.columnId]={kind:"text",codes:new Int32Array(n.buffer),dictionary:n.dictionary??[]};}function Ze(e){let t={};xe(e.columns,t),P.set(e.gridId,{dataVersion:e.dataVersion,table:{rowCount:e.rowCount,columns:t}}),B({action:"ready",gridId:e.gridId,dataVersion:e.dataVersion});}function et(e){let t=P.get(e.gridId);!t||t.dataVersion!==e.dataVersion||(xe(e.columns,t.table.columns),B({action:"ready",gridId:e.gridId,dataVersion:e.dataVersion}));}var D=new Set,ne=(e,t)=>`${e}:${t}`;function tt(e){let t=P.get(e.gridId);if(!t||t.dataVersion!==e.dataVersion)return;let n=ne(e.gridId,e.requestId),r=`${e.gridId}:*`,o=()=>D.has(n)||D.has(r);if(o()){D.delete(n),B({action:"cancelled",gridId:e.gridId,requestId:e.requestId});return}try{let{order:l,cancelled:s}=Z(t.table,{sort:e.sort,filter:e.filter,searchText:e.searchText,searchColumns:e.searchColumns,searchLabelHits:e.searchLabelHits,locale:e.locale,onProgress:(f,a)=>B({action:"progress",gridId:e.gridId,dataVersion:e.dataVersion,requestId:e.requestId,phase:f,fraction:a}),isCancelled:o});if(s){D.delete(n),B({action:"cancelled",gridId:e.gridId,requestId:e.requestId});return}B({action:"result",gridId:e.gridId,dataVersion:e.dataVersion,requestId:e.requestId,order:l.buffer,visibleCount:l.length},[l.buffer]),D.delete(n);}catch(l){B({action:"error",gridId:e.gridId,requestId:e.requestId,message:l instanceof Error?l.message:String(l)});}}function nt(e){let t=P.get(e.gridId);if(!t||t.dataVersion!==e.dataVersion)return;let n=ne(e.gridId,e.requestId),r=`${e.gridId}:*`,o=()=>D.has(n)||D.has(r);if(o()){D.delete(n),B({action:"cancelled",gridId:e.gridId,requestId:e.requestId});return}try{let{order:l,cancelled:s}=Z(t.table,{sort:[],filter:e.filter,searchText:e.searchText,searchColumns:e.searchColumns,searchLabelHits:e.searchLabelHits,locale:e.locale,isCancelled:o});if(s){D.delete(n),B({action:"cancelled",gridId:e.gridId,requestId:e.requestId});return}let f={categoryColumnId:e.categoryColumnId,series:e.series,maxCategories:e.maxCategories,otherBucket:e.otherBucket,categoryOrder:e.categoryOrder,categoryBucket:e.categoryBucket,otherLabel:e.otherLabel},a=ke(t.table.columns,l,f,{series:e.series.map(m=>m.label??m.columnId)}),d=a.categories.length,b=new Float64Array(a.series.length*d);for(let m=0;m<a.series.length;m++)b.set(a.series[m].values,m*d);let g=a.bucketStarts,N=a.bucketEnds,k=[b.buffer];g&&N&&k.push(g.buffer,N.buffer),B({action:"aggregated",gridId:e.gridId,dataVersion:e.dataVersion,requestId:e.requestId,categories:a.categories,values:b.buffer,seriesLabels:a.series.map(m=>m.label),truncated:a.truncated,otherIndex:a.otherIndex,rowCount:a.rowCount,categoryCount:a.categoryCount,rankingExact:a.rankingExact,bucket:a.bucket,bucketStarts:g?.buffer,bucketEnds:N?.buffer},k),D.delete(n);}catch(l){B({action:"error",gridId:e.gridId,requestId:e.requestId,message:l instanceof Error?l.message:String(l)});}}var rt=we();function ot(e){let t=P.get(e.gridId);!t||t.dataVersion!==e.fromVersion||(Ae(t.table.columns,e.patches,rt),t.dataVersion=e.toVersion);}Te.onmessage=e=>{let t=e.data;switch(t.action){case "init":Ze(t);break;case "addColumns":et(t);break;case "patchRows":ot(t);break;case "compute":tt(t);break;case "aggregate":nt(t);break;case "cancel":D.add(t.requestId===void 0?`${t.gridId}:*`:ne(t.gridId,t.requestId));break;case "dispose":P.delete(t.gridId);for(let n of D)n.startsWith(`${t.gridId}:`)&&D.delete(n);break}};',yu=null;function Bs(){return ra.length>0}function ks(){if(yu)return yu;if(!Bs())throw new Error("[datagrid] this build carries no embedded worker (the build step that inlines it did not run). Pass `worker={{ url }}` to point at a copy of datagrid.worker.js instead.");if(typeof Blob>"u"||typeof URL?.createObjectURL!="function")throw new Error("[datagrid] Blob URLs are unavailable, so the embedded worker cannot start.");return yu=URL.createObjectURL(new Blob([ra],{type:"text/javascript"})),yu}var Rs=2e4,Di=!1;function Ns(e,t){typeof process<"u"&&process.env&&!t||Di&&!t||(Di=!0,console.warn(`[datagrid] the Web Worker could not be started, so filtering and sorting are running on the main thread. The grid still works \u2014 it is just slower on large data.
|
|
3
|
+
`,n=[];t.includeHeaders!==!1&&n.push(e.columns.map(l=>Ci(l.header,u)).join(u));let i=e.rows.length;for(let l=0;l<i;l++){if(t.signal?.aborted)throw new lt;let s=e.rows[l];n.push(s.cells.map(c=>Ci(c.text,u)).join(u)),(l+1)%5e3===0&&(t.onProgress?.((l+1)/i),await new Promise(c=>setTimeout(c,0)))}t.onProgress?.(1);let a=n.join(r);return t.bom===!1?a:Hl+a}async function $l(e,t={}){let u=await Ul(e,t);return new Blob([u],{type:"text/csv;charset=utf-8;"})}var ql="application/vnd.openxmlformats-officedocument.spreadsheetml.sheet",wi="FFF1F5F9",_l="FFFAFAFA",yi="FFE2E8F0";async function jl(){let e;try{e=await import("exceljs")}catch{throw new Error('[datagrid] Excel export needs the "exceljs" package. Install it with: npm i exceljs')}let t=e,u=t.Workbook?t:t.default;if(!u?.Workbook)throw new Error('[datagrid] Excel export needs the "exceljs" package, and what loaded exposes no Workbook \u2014 it is either not installed (npm i exceljs) or a version this writer does not understand.');return u}function Qi(e,t,u){e.columns=t.columns.map(r=>({key:r.id,width:r.width,style:u?{alignment:{horizontal:r.align},...r.numFmt?{numFmt:r.numFmt}:{}}:void 0}))}function Yl(e){let t=e,u="";for(;t>0;){let r=(t-1)%26;u=String.fromCharCode(65+r)+u,t=Math.floor((t-1)/26)}return u||"A"}function Xi(e,t){if(t&&(t.value!==void 0&&(e.value=t.value),t.font&&(e.font={...e.font,...t.font,...t.font.color?{color:{argb:t.font.color}}:{}}),t.fill&&(e.fill={type:"pattern",pattern:"solid",fgColor:{argb:t.fill}}),t.numFmt&&(e.numFmt=t.numFmt),t.alignment&&(e.alignment={...e.alignment,...t.alignment}),t.border)){let u={style:"thin",color:{argb:t.border}};e.border={top:u,left:u,bottom:u,right:u}}}function Gt(e,t,u,r,n){let i=t.customizeCell;i&&e.eachCell((a,l)=>{let s=r?.columns[l-1],c=i({kind:u,columnId:s?.id??null,value:a.value,text:a.value==null?"":String(a.value),rowNumber:e.number,colNumber:l,rowIndex:n});Xi(a,c)})}function Bu(e,t,u,r){if(t?.length)for(let n of t){let i=e.addRow(n.cells);n.height&&(i.height=n.height),n.style&&i.eachCell(a=>Xi(a,n.style)),n.merge&&u>1&&e.mergeCells(`A${i.number}:${Yl(u)}${i.number}`),Gt(i,r,"band",null,-1)}}async function Ei(e,t,u,r,n){let i=null;if(r&&t.columns.length>0){let p=e.addRow(t.columns.map(C=>C.header));p.font={bold:!0},p.fill={type:"pattern",pattern:"solid",fgColor:{argb:wi}},n&&(p.alignment={horizontal:"left",vertical:"middle"},p.border={bottom:{style:"thin",color:{argb:yi}}}),Gt(p,u,"header",t,-1),i=p.number}let a=t.rows.length,l=i===null?0:i+1,s=i??0,c=0,m=-1;for(let p=0;p<a;p++){if(u.signal?.aborted)throw new lt;let C=t.rows[p],g=C.cells.map(F=>u.raw||typeof F.value=="number"||F.value instanceof Date?F.value:F.text),E=e.addRow(g);p===0&&(l=E.number),s=E.number,C.kind==="group"?(m=C.level,E.font={bold:!0},E.getCell(1).alignment={indent:C.level,horizontal:"left"},n&&(E.fill={type:"pattern",pattern:"solid",fgColor:{argb:wi}},E.outlineLevel=C.level),c=0,Gt(E,u,"group",t,p)):(n&&(m>=0&&(E.outlineLevel=m+1),c%2===1&&(E.fill={type:"pattern",pattern:"solid",fgColor:{argb:_l}})),c++,Gt(E,u,"data",t,p)),(p+1)%5e3===0&&(u.onProgress?.((p+1)/a),await new Promise(F=>setTimeout(F,0)))}if(n&&u.totalsRow!==!1&&t.totals){let p=e.addRow(t.totals.map(C=>C==null?"":typeof C.value=="number"?C.value:C.text));p.font={bold:!0},p.border={top:{style:"double",color:{argb:yi}}},Gt(p,u,"totals",t,-1),s=p.number}return{headerRow:i,firstDataRow:l,lastRow:s}}function Zl(e,t,u){if(u?.length)for(let r of u){let n=e.addImage({...typeof r.data=="string"?{base64:r.data}:{buffer:r.data},extension:r.extension}),i=r.position??{col:0,row:0,width:160,height:48};t.addImage(n,{tl:{col:i.col,row:i.row},ext:{width:i.width,height:i.height}})}}async function Jl(e,t={}){let u=await jl(),r=t.styled===!0,n=t.includeHeaders!==!1,i=new u.Workbook,a=p=>i.addWorksheet(p),l=a(t.sheetName??"Data");r&&(l.properties.outlineProperties={summaryBelow:!1,summaryRight:!1}),Qi(l,e,r),Zl(i,l,t.images),Bu(l,t.headerBlock,e.columns.length,t);let s=await Ei(l,e,t,n,r);t.onProgress?.(1),t.autoFilter!==!1&&s.headerRow!==null&&e.columns.length>0&&(l.autoFilter={from:{row:s.headerRow,column:1},to:{row:s.headerRow,column:e.columns.length}}),t.freezeHeader!==!1&&s.headerRow!==null&&(l.views=[{state:"frozen",ySplit:s.headerRow}]);let c=l;for(let p of t.additionalGrids??[])c=Ql(a,c,p,t,r),await Ei(c,p.model,t,p.includeHeaders!==!1,r);Bu(l,t.footerBlock,e.columns.length,t);let m=await i.xlsx.writeBuffer();return new Blob([m],{type:ql})}function Ql(e,t,u,r,n){if(u.sheetName){let a=e(u.sheetName);return Qi(a,u.model,n),u.title&&Bu(a,[{cells:[u.title],merge:!0,style:{font:{bold:!0,size:13}}}],u.model.columns.length,r),a}let i=u.gap??2;for(let a=0;a<i;a++)t.addRow([]);return u.title&&Bu(t,[{cells:[u.title],merge:!0,style:{font:{bold:!0,size:13}}}],u.model.columns.length,r),t}var Xl="application/pdf",Cr=[241,245,249],es=[250,250,250],Re=[30,41,59];async function ts(){let e=new Error('[datagrid] PDF export needs "jspdf" and "jspdf-autotable". Install them with: npm i jspdf jspdf-autotable'),t;try{let[u,r]=await Promise.all([import("jspdf"),import("jspdf-autotable")]);t={jsPDF:u.jsPDF??u.default,autoTable:r.default??r}}catch{throw e}if(typeof t.jsPDF!="function"||typeof t.autoTable!="function")throw e;return t}var Or="helvetica",us=/[^\u0000-\u00ff\u0152\u0153\u0160\u0161\u0178\u017d\u017e\u0192\u02c6\u02dc\u2013\u2014\u2018\u2019\u201a\u201c\u201d\u201e\u2020\u2021\u2022\u2026\u2030\u2039\u203a\u20ac\u2122]/u;function rs(e,t){let u=function*(){for(let r of t.headerBlock??[])yield r.text;for(let r of t.footerBlock??[])yield r.text;for(let r of[{model:e,title:void 0},...t.additionalGrids??[]]){r.title&&(yield r.title);for(let n of r.model.columns)yield n.header;for(let n of r.model.rows)for(let i of n.cells)yield i.text;for(let n of r.model.totals??[])n&&(yield n.text)}};for(let r of u()){let n=us.exec(r);if(n)return n[0]}return null}function ns(e,t,u){let r,n;if(typeof e=="string")r=atob(e.slice(0,8)),n=e;else{let i=e instanceof Uint8Array?e:new Uint8Array(e),a=[];for(let l=0;l<i.length;l+=32768)a.push(String.fromCharCode.apply(null,i.subarray(l,l+32768)));n=a.join(""),r=n.slice(0,4)}if(!r.startsWith("\0\0\0")){let i=r.startsWith("OTTO")?" (it is OpenType-CFF, .otf)":r.startsWith("wOF")?" (it is WOFF)":"";throw new Error(`[datagrid] PDF export: font "${t}" (${u}) is not a TrueType .ttf file${i}. jsPDF embeds TrueType only.`)}return n}function is(e,t){let u=[["normal",t.normal],["bold",t.bold??t.normal],["italic",t.italic??t.normal],["bolditalic",t.boldItalic??t.bold??t.italic??t.normal]];for(let[r,n]of u){let i=`${t.family}-${r}.ttf`;e.addFileToVFS(i,ns(n,t.family,r)),e.addFont(i,t.family,r)}return t.family}function Br(e,t,u,r,n){if(!t?.length)return u;let i=e.internal.pageSize.getWidth(),a=u;for(let l of t){let s=l.fontSize??10;e.setFontSize(s),e.setFont(n,l.fontStyle??"normal");let c=l.color??Re;e.setTextColor(c[0],c[1],c[2]);let m=l.align??"left",p=m==="center"?i/2:m==="right"?i-r:r;a+=s*.353,e.text(l.text,p,a,{align:m}),a+=l.spacing??2}return e.setTextColor(Re[0],Re[1],Re[2]),a}function as(e,t){t&&(t.text!==void 0&&(e.text=[t.text]),t.fillColor&&(e.styles.fillColor=t.fillColor),t.textColor&&(e.styles.textColor=t.textColor),t.fontStyle&&(e.styles.fontStyle=t.fontStyle),t.fontSize&&(e.styles.fontSize=t.fontSize),t.halign&&(e.styles.halign=t.halign))}function Vr(e,t,u,r,n,i,a){let l=r.styled!==!1,s=r.margin??14,c=a?.from??0,m=a?.to??u.rows.length,p=u.rows.slice(c,m).map(g=>g.cells.map(E=>E.text)),C=l&&r.totalsRow!==!1&&u.totals&&(!a||a.withTotals)?[u.totals.map(g=>g?.text??"")]:void 0;return t(e,{startY:n,margin:{left:s,right:s},head:i&&u.columns.length>0?[u.columns.map(g=>g.header)]:void 0,body:p,foot:C,theme:l?"grid":"plain",showHead:r.repeatHeaders===!1?"firstPage":"everyPage",showFoot:C?"lastPage":"never",styles:{...r.font?{font:r.font.family}:{},fontSize:8,cellPadding:2,textColor:Re},headStyles:{fillColor:Cr,textColor:Re,fontStyle:"bold"},footStyles:{fillColor:Cr,textColor:Re,fontStyle:"bold"},alternateRowStyles:l?{fillColor:es}:void 0,columnStyles:l?Object.fromEntries(u.columns.map((g,E)=>[E,{halign:g.align}])):void 0,didParseCell:g=>{let E,F=-1;g.section==="head"?E="header":g.section==="foot"?E="totals":(F=c+g.row.index,E=u.rows[F]?.kind==="group"?"group":"data"),E==="group"&&(g.cell.styles.fontStyle="bold",g.cell.styles.fillColor=Cr,g.column.index===0&&(g.cell.styles.cellPadding={top:2,right:2,bottom:2,left:2+(u.rows[F]?.level??0)*4}));let S=r.customizeCell;if(!S)return;let T=u.columns[g.column.index],N=F>=0?u.rows[F]?.cells[g.column.index]:void 0;as(g.cell,S({kind:E,columnId:T?.id??null,text:Array.isArray(g.cell.text)?g.cell.text.join(" "):String(g.cell.text),value:N?.value,rowIndex:F,columnIndex:g.column.index}))}}),e.lastAutoTable?.finalY??n}function os(e,t){t?.length&&t.forEach((u,r)=>{try{e.addImage(u.data,u.format,u.x,u.y,u.width,u.height)}catch(n){let i=n instanceof Error?n.message:String(n);throw new Error(`[datagrid] PDF export could not decode images[${r}] (format: ${u.format}). The data is not a valid ${u.format} \u2014 check that it is a complete file, base64-encoded, and that \`format\` matches it. Underlying error: ${i}`)}})}function ls(e,t){let u=t.pageNumbers;if(!u)return;let r=t.margin??14,n=e.getNumberOfPages(),i=e.internal.pageSize.getWidth(),a=e.internal.pageSize.getHeight();for(let l=1;l<=n;l++){e.setPage(l),e.setFontSize(8),e.setFont(t.font?.family??Or,"normal"),e.setTextColor(148,163,184);let s=typeof u=="function"?u(l,n):`${l} / ${n}`;e.text(s,i-r,a-8,{align:"right"})}e.setTextColor(Re[0],Re[1],Re[2])}var ss=400,ds=1e3;async function cs(e,t,u,r,n,i,a){let l=u.rows.length,s=Math.max(1,r.sliceRows||ds),c=n,m=0;for(;m<l;){if(r.signal?.aborted)throw new lt;let p=Math.min(l,m+s);m>0&&e.addPage(),c=Vr(e,t,u,r,m===0?n:a,i,{from:m,to:p,withTotals:p>=l}),m=p,r.onProgress?.(m/l),m<l&&await new Promise(C=>setTimeout(C,0))}return c}async function hs(e,t={}){if(t.signal?.aborted)throw new lt;let{jsPDF:u,autoTable:r}=await ts(),n=t.margin??14,i=new u({orientation:t.orientation??"landscape",unit:"mm",format:t.pageSize??"a4"}),a=t.font?is(i,t.font):Or;if(!t.font){let c=rs(e,t);if(c!==null){let m=c.codePointAt(0).toString(16).toUpperCase().padStart(4,"0");console.warn(`[datagrid] PDF export: "${c}" (U+${m}) cannot be drawn by the built-in PDF font and will come out as the wrong character. Pass \`font\` (a TrueType .ttf covering your language) in the PDF export options \u2014 see PdfExportOptions.font.`)}}os(i,t.images);let l=n;l=Br(i,t.headerBlock,l,n,a),l=t.sliceRows!==0&&e.rows.length>ss?await cs(i,r,e,t,l+2,t.includeHeaders!==!1,n):Vr(i,r,e,t,l+2,t.includeHeaders!==!1);for(let c of t.additionalGrids??[]){if(t.signal?.aborted)throw new lt;l=ps(i,r,c,t,l,n)}if(t.onProgress?.(1),t.footerBlock?.length){let c=t.footerBlock.reduce((m,p)=>m+(p.fontSize??10)*.353+(p.spacing??2),4);l+c>i.internal.pageSize.getHeight()-n&&(i.addPage(),l=n),Br(i,t.footerBlock,l+4,n,a)}ls(i,t);let s=i.output("arraybuffer");return new Blob([s],{type:Xl})}function ps(e,t,u,r,n,i){let a=n;return u.pageBreak?(e.addPage(),a=i):a+=8,u.title&&(a=Br(e,[{text:u.title,fontSize:12,fontStyle:"bold"}],a,i,r.font?.family??Or)),Vr(e,t,u.model,r,a+2,u.includeHeaders!==!1)}function ea(e,t){if(typeof document>"u")throw new Error("[datagrid] downloadBlob requires a browser document.");let u=URL.createObjectURL(e),r=document.createElement("a");r.href=u,r.download=t,r.style.display="none",document.body.appendChild(r),r.click(),r.remove(),setTimeout(()=>URL.revokeObjectURL(u),0)}function zr(e){return{"=":e.opEquals,"<>":e.opNotEquals,">":e.opGreater,">=":e.opGreaterOrEqual,"<":e.opLess,"<=":e.opLessOrEqual,contains:e.opContains,notcontains:e.opNotContains,startswith:e.opStartsWith,endswith:e.opEndsWith,isnull:e.opIsBlank,isnotnull:e.opIsNotBlank,in:e.opIsOneOf,between:e.opIsBetween,and:e.filterAnd.toLocaleLowerCase(),or:e.filterOr.toLocaleLowerCase(),blank:e.chartBlankCategory,listSeparator:", ",ofN:e.opValuesCount}}var ms=zr(Ht("en"));function ta(e,t,u={}){if(!e)return null;let r={...ms,...u.labels},n=u.maxListValues??3,i=c=>{let m=t.getDef(c);return m?.headerName??m?.field??c},a=(c,m)=>{if(m==null||m==="")return r.blank;let p=wt(t.getDef(c),m);return p!==null?p:m instanceof Date?m.toLocaleDateString():String(m)},l=(c,m)=>{if(Ir(c)){let g=c.nodes.map(F=>l(F,m+1)).filter(Boolean);if(g.length===0)return"";let E=g.join(` ${r[c.logic]} `);return m>0&&g.length>1?`(${E})`:E}let p=i(c.columnId),C=r[c.operator];switch(c.operator){case"isnull":case"isnotnull":return`${p} ${C}`;case"in":{let g=Array.isArray(c.value)?c.value:[c.value];return g.length>n?`${p} ${C} ${r.ofN.replace("{n}",String(g.length))}`:`${p} ${C} ${g.map(E=>a(c.columnId,E)).join(r.listSeparator)}`}case"between":{let[g,E]=Array.isArray(c.value)?c.value:[void 0,void 0];return`${p} ${C} ${a(c.columnId,g)} \u2013 ${a(c.columnId,E)}`}default:return`${p} ${C} ${a(c.columnId,c.value)}`}},s=l(e,0);return s===""?null:s}function gs(e,t,u,r,n){let i=e,a=i.findIndex(m=>n(m)===t);if(a<0)return{rows:i,moved:!1,fromIndex:-1,toIndex:-1};let l;if(u===null)l=i.length;else{let m=i.findIndex(p=>n(p)===u);if(m<0)return{rows:i,moved:!1,fromIndex:a,toIndex:-1};if(m===a)return{rows:i,moved:!1,fromIndex:a,toIndex:a};l=r==="before"?m:m+1}if(l>a&&(l-=1),l===a)return{rows:i,moved:!1,fromIndex:a,toIndex:a};let s=i.slice(),[c]=s.splice(a,1);return s.splice(l,0,c),{rows:s,moved:!0,fromIndex:a,toIndex:l}}var fs=["columnStateChanged","sortChanged","filterChanged","groupChanged"];function Ai(e){try{return globalThis[e]??null}catch{return null}}function ua(e,t){if(!t.enabled)return()=>{};let u=t.storageKey??`kanuni-datagrid-${e.gridId}`,r=t.type??"localStorage",n=t.saveDelay??500,i=!1,a=p=>{if(!(i||!p))try{e.applyViewState(p)}catch{}};if(r==="custom"){let p=null;try{p=t.customLoad?.()??null}catch{p=null}p&&typeof p.then=="function"?p.then(a,()=>{}):a(p)}else{let p=Ai(r);if(p){let C=null,g=!0;try{C=p.getItem(u)}catch{g=!1}if(g&&C)try{a(JSON.parse(C))}catch{try{p.removeItem(u)}catch{}}}}let l,s=()=>{let p=e.getViewState();if(r==="custom"){try{Promise.resolve(t.customSave?.(p)).catch(()=>{})}catch{}return}let C=Ai(r);if(C)try{C.setItem(u,JSON.stringify(p))}catch{}},c=()=>{l!==void 0&&clearTimeout(l),l=setTimeout(s,n)},m=fs.map(p=>e.events.on(p,c));return()=>{i=!0,m.forEach(p=>p()),l!==void 0&&(clearTimeout(l),l=void 0,s())}}var bi=150,wu=40;function Cs(e,t){return e.id?e.id:e.field?e.field:`col_${t}`}function It(e,t,u){let r=Math.max(e,t);return u!=null&&(r=Math.min(r,u)),r}var ws=class{defs=[];defsById=new Map;states=new Map;orderIds=[];version=0;collapsedBands=new Set;options;constructor(e,t={}){this.options=t,this.setColumns(e)}getVersion(){return this.version}setColumns(e){let t=this.defsById,u=this.states,r=new Set;this.defs=e.map((n,i)=>{let a={...this.options.defaultColumnDef,...n},l=Cs(a,i);if(r.has(l)){let s=`[datagrid] duplicate column id "${l}" \u2014 set an explicit \`id\` on one of the columns.`;this.options.debugMode?console.error(s):console.warn(s)}return r.add(l),a.id=l,a}),this.states=new Map,this.defsById=new Map,this.orderIds=[],this.defs.forEach((n,i)=>{let a=n.id;this.defsById.has(a)||this.defsById.set(a,n);let l=n.minWidth??wu,s=t.get(a),c=u.get(a),m=p=>c!==void 0&&s!==void 0&&s[p]===n[p];this.states.set(a,{id:a,width:m("width")?It(c.width,l,n.maxWidth):It(n.width??bi,l,n.maxWidth),pinned:m("pin")?c.pinned:n.pin??null,visible:m("visible")?c.visible:n.visible!==!1,order:c!==void 0?c.order:i}),this.orderIds.push(a)}),this.orderIds.sort((n,i)=>(this.states.get(n)?.order??0)-(this.states.get(i)?.order??0)),this.version++}resetColumnStates(){this.orderIds=this.defs.map(e=>e.id),this.defs.forEach((e,t)=>{let u=this.states.get(e.id);if(!u)return;let r=e.minWidth??wu;u.width=It(e.width??bi,r,e.maxWidth),u.pinned=e.pin??null,u.visible=e.visible!==!1,u.order=t}),this.version++}getDef(e){return this.defsById.get(e)}getState(e){return this.states.get(e)}getOrder(){return[...this.orderIds]}getColumnStates(){return this.orderIds.map(e=>({...this.states.get(e)}))}runtime(){let e={left:[],center:[],right:[]};for(let t of this.orderIds){let u=this.states.get(t),r=this.getDef(t);if(!u||!r||!u.visible||Ao(r,this.collapsedBands))continue;let n=u.pinned??"center";e[n==="left"?"left":n==="right"?"right":"center"].push({def:r,state:u})}return[...e.left,...e.center,...e.right]}isBandCollapsed(e){return this.collapsedBands.has(Pt(e))}setBandCollapsed(e,t){if(e.length===0)return!1;let u=Pt(e);return this.collapsedBands.has(u)===t?!1:(t?this.collapsedBands.add(u):this.collapsedBands.delete(u),this.version++,!0)}getCollapsedBands(){return[...this.collapsedBands]}setCollapsedBands(e){this.collapsedBands=new Set(e),this.version++}isBandCollapsible(e){if(e.length===0)return!1;let t=Pt(e),u=!1,r=!1;for(let n of this.orderIds){let i=this.getDef(n),a=this.states.get(n);if(!i||!a?.visible)continue;let l=Le(i);l.length<e.length||Pt(l.slice(0,e.length))===t&&(i.bandShow==="open"?u=!0:r=!0)}return u&&r}setWidth(e,t){let u=this.states.get(e),r=this.getDef(e);!u||!r||(u.width=It(t,r.minWidth??wu,r.maxWidth),this.version++)}setPinned(e,t){let u=this.states.get(e);u&&(u.pinned=t,this.version++)}setVisible(e,t){let u=this.states.get(e);u&&(u.visible=t,this.version++)}moveColumn(e,t){let u=this.orderIds.indexOf(e);if(u===-1)return;this.orderIds.splice(u,1);let r=t?this.orderIds.indexOf(t):this.orderIds.length;this.orderIds.splice(r===-1?this.orderIds.length:r,0,e),this.orderIds.forEach((n,i)=>{let a=this.states.get(n);a&&(a.order=i)}),this.version++}applyColumnStates(e){let t=e.filter(n=>this.states.has(n.id)).slice().sort((n,i)=>n.order-i.order);for(let n of t){let i=this.getDef(n.id),a=this.states.get(n.id);!i||!a||(a.width=It(n.width,i.minWidth??wu,i.maxWidth),a.pinned=n.pinned,a.visible=n.visible)}let u=t.map(n=>n.id),r=this.orderIds.filter(n=>!u.includes(n));this.orderIds=[...u,...r],this.orderIds.forEach((n,i)=>{let a=this.states.get(n);a&&(a.order=i)}),this.version++}getCellValue(e,t){let u=this.getDef(t);if(u){if(u.valueGetter)return u.valueGetter(e);if(u.field)return e[u.field]}}getSortValue(e,t){let u=this.defsById.get(t);if(u){if(u.calculateSortValue)return u.calculateSortValue(e);if(u.valueGetter)return u.valueGetter(e);if(u.field)return e[u.field]}}getDataType(e){return this.getDef(e)?.dataType??"string"}};function ys(e,t,u){let r=e.length,n=new Uint32Array(r),i=new Uint32Array(r),a=0,l=0;for(let S=0;S<r;S++){let T=e[S];Number.isNaN(t[T])?i[l++]=T:n[a++]=T}let s=new Uint32Array(a),c=new Uint32Array(a),m=new Float64Array(1),p=new Uint32Array(m.buffer);for(let S=0;S<a;S++){let T=t[n[S]];m[0]=T===0?0:T;let N=p[0],V=p[1];V&2147483648?(N=~N>>>0,V=~V>>>0):V=(V^2147483648)>>>0,u&&(N=~N>>>0,V=~V>>>0),s[S]=N,c[S]=V}let C=new Uint32Array(a);for(let S=0;S<a;S++)C[S]=S;let g=new Uint32Array(a),E=new Uint32Array(256);for(let S=0;S<8;S++){let T=S>=4,N=(S&3)*8,V=T?c:s;E.fill(0);for(let W=0;W<a;W++)E[V[C[W]]>>>N&255]++;if(E[V[C[0]]>>>N&255]===a)continue;let K=0;for(let W=0;W<256;W++){let J=E[W];E[W]=K,K+=J}for(let W=0;W<a;W++){let J=C[W];g[E[V[J]>>>N&255]++]=J}let Z=C;C=g,g=Z}let F=new Uint32Array(r);for(let S=0;S<a;S++)F[S]=n[C[S]];for(let S=0;S<l;S++)F[a+S]=i[S];return F}var vi=new Map;function Es(e){let t=vi.get(e);return t||(t=new Intl.Collator(e,{numeric:!0,sensitivity:"base"}),vi.set(e,t)),t}function xi(e){return e==null||typeof e=="number"&&Number.isNaN(e)}function As(e){if(typeof e=="number")return e;if(typeof e=="boolean")return e?1:0;if(e instanceof Date)return e.getTime();let t=Number(e);return Number.isNaN(t)?Number.NEGATIVE_INFINITY:t}function bs(e){if(e instanceof Date)return e.getTime();if(typeof e=="number")return e;let t=Date.parse(String(e));return Number.isNaN(t)?Number.NEGATIVE_INFINITY:t}function vs(e,t){for(let u of t)if(e.getDef(u.columnId)?.comparator)return!0;return!1}function xs(e,t,u,r){let n=e.length,i=r.columnId,a=r.direction==="desc"?-1:1,l=u.getDataType(i),s=u.getDef(i)?.comparator;if(s){let p=new Array(n),C=new Array(n);for(let g=0;g<n;g++){let E=t[e[g]];p[g]=u.getSortValue(E,i),C[g]=E}return{dir:a,numeric:null,strings:null,values:p,valueRows:C,comparator:s}}if(l==="string"||l==="lookup"){let p=new Array(n);for(let C=0;C<n;C++){let g=u.getSortValue(t[e[C]],i);p[C]=xi(g)?null:String(g)}return{dir:a,numeric:null,strings:p,values:null,valueRows:null,comparator:null}}let c=new Float64Array(n),m=l==="date"?bs:As;for(let p=0;p<n;p++){let C=u.getSortValue(t[e[p]],i);c[p]=xi(C)?Number.NaN:m(C)}return{dir:a,numeric:c,strings:null,values:null,valueRows:null,comparator:null}}function Ds(e,t){let u=e.length,r=[],n=new Map,i=new Int32Array(u);for(let s=0;s<u;s++){let c=e[s];if(c===null){i[s]=-1;continue}let m=n.get(c);m===void 0&&(m=r.length,r.push(c),n.set(c,m)),i[s]=m}let a=_o(r,t),l=new Float64Array(u);for(let s=0;s<u;s++)l[s]=i[s]===-1?Number.NaN:a[i[s]];return l}function Fs(e,t,u,r,n={}){if(r.length===0)return e.slice();let i=Es(n.locale??"en"),a=r.map(p=>xs(e,t,u,p)),l=a.length,s=new Array(e.length),c=!0;for(let p=0;p<e.length;p++)s[p]=p,p>0&&e[p]<e[p-1]&&(c=!1);if(!a.some(p=>p.comparator!==null)&&c&&e.length>=5e4){let p=a.map(E=>E.numeric?E.numeric:Ds(E.strings,i)),C=Uint32Array.from(s);for(let E=l-1;E>=0;E--)C=ys(C,p[E],a[E].dir===-1);let g=new Uint32Array(e.length);for(let E=0;E<C.length;E++)g[E]=e[C[E]];return g}s.sort((p,C)=>{for(let g=0;g<l;g++){let E=a[g];if(E.comparator){let F=E.values,S=E.valueRows,T=E.comparator(F[p],F[C],S[p],S[C],E.dir===-1);if(T!==0)return T*E.dir}else if(E.numeric){let F=E.numeric[p],S=E.numeric[C],T=Number.isNaN(F),N=Number.isNaN(S);if(T||N){if(T&&N)continue;return T?1:-1}if(F!==S)return(F<S?-1:1)*E.dir}else{let F=E.strings[p],S=E.strings[C];if(F===null||S===null){if(F===null&&S===null)continue;return F===null?1:-1}let T=i.compare(F,S);if(T!==0)return T*E.dir}}return e[p]-e[C]});let m=new Uint32Array(e.length);for(let p=0;p<s.length;p++)m[p]=e[s[p]];return m}var Ss=class{mode="client";rows;keyGetter;locale;nodeCache;constructor(e,t){this.rows=e,this.keyGetter=t.keyGetter,this.locale=t.locale??"en",this.nodeCache=t.nodeCache??new Zi}getTotalCount(){return this.rows.length}setData(e){this.rows=e,this.nodeCache.invalidate()}patchData(e,t,u){this.rows=e,this.nodeCache.rebase(e,t)}getSourceRows(){return this.rows}compute(e,t){let u=this.rows.length,r=new Uint32Array(u);for(let a=0;a<u;a++)r[a]=a;let n=Yo(r,this.rows,e,t.filter,t.searchText,t.externalFilter),i=Fs(n,this.rows,e,t.sort,{locale:this.locale});return{nodes:this.nodeCache.project(i,this.rows,this.keyGetter),visibleCount:i.length,totalCount:u}}async getRows(e,t){return this.compute(e,t)}},ra='var Ue=/[\\u0130\\u0131]/,ve=/[\\u0130\\u0131]/g;function G(e){return Ue.test(e)?e.replace(ve,"i").toLowerCase():e.toLowerCase()}var M=-1;var ce=new WeakMap;function Be(e){let t=ce.get(e);if(t!==void 0)return t;let n=Oe(e);return ce.set(e,n),n}function Oe(e){let t=e.resolvedOptions();if(t.sensitivity!=="base"||t.numeric!==true||t.ignorePunctuation||t.usage!=="sort"||t.collation!=="default")return false;let n=[];for(let r=32;r<=126;r++)n.push(String.fromCharCode(r));n.sort(e.compare);for(let r=1;r<n.length;r++)if(e.compare(n[r-1],n[r])===0&&n[r-1].toLowerCase()!==n[r].toLowerCase())return false;for(let r of n)if(e.compare(r,"")===0)return false;return !(e.compare("01","1")!==0||e.compare("0","00")!==0||e.compare("a09z","a9z")!==0||e.compare("9","10")>=0)}function de(e){for(let t=0;t<e.length;t++){let n=e.charCodeAt(t);if(n<32||n>126)return false}return true}function _e(e,t){let n=0,r=0,o=e.length,f=t.length;for(;n<o&&r<f;){let s=e.charCodeAt(n),l=t.charCodeAt(r),a=s>=48&&s<=57,d=l>=48&&l<=57;if(a!==d)return true;if(a){for(;n<o&&e.charCodeAt(n)===48;)n++;for(;r<f&&t.charCodeAt(r)===48;)r++;let g=n,m=r;for(;n<o;){let N=e.charCodeAt(n);if(N<48||N>57)break;n++;}for(;r<f;){let N=t.charCodeAt(r);if(N<48||N>57)break;r++;}let k=n-g;if(k!==r-m)return true;for(let N=0;N<k;N++)if(e.charCodeAt(g+N)!==t.charCodeAt(m+N))return true}else {if(s>=65&&s<=90&&(s+=32),l>=65&&l<=90&&(l+=32),s!==l)return true;n++,r++;}}return n!==o||r!==f}function fe(e,t){let n=e.length,r=new Array(n);for(let g=0;g<n;g++)r[g]=g;r.sort((g,m)=>t.compare(e[g],e[m]));let o=new Int32Array(n);if(n===0)return o;let s=Be(t)?new Uint8Array(n):null,l=r[0],a=s?de(e[l])?1:2:0;s&&(s[l]=a);let d=0;o[l]=0;for(let g=1;g<n;g++){let m=r[g],k=e[l],N=e[m],y=0;s&&(y=s[m],y===0&&(y=de(N)?1:2,s[m]=y)),(a===1&&y===1&&_e(k,N)||t.compare(k,N)!==0)&&d++,o[m]=d,l=m,a=y;}return o}function me(e,t,n){let r=e.length,o=new Uint32Array(r),f=new Uint32Array(r),s=0,l=0;for(let i=0;i<r;i++){let C=e[i];Number.isNaN(t[C])?f[l++]=C:o[s++]=C;}let a=new Uint32Array(s),d=new Uint32Array(s),g=new Float64Array(1),m=new Uint32Array(g.buffer);for(let i=0;i<s;i++){let C=t[o[i]];g[0]=C===0?0:C;let b=m[0],p=m[1];p&2147483648?(b=~b>>>0,p=~p>>>0):p=(p^2147483648)>>>0,n&&(b=~b>>>0,p=~p>>>0),a[i]=b,d[i]=p;}let k=new Uint32Array(s);for(let i=0;i<s;i++)k[i]=i;let N=new Uint32Array(s),y=new Uint32Array(256);for(let i=0;i<8;i++){let C=i>=4,b=(i&3)*8,p=C?d:a;y.fill(0);for(let T=0;T<s;T++)y[p[k[T]]>>>b&255]++;if(y[p[k[0]]>>>b&255]===s)continue;let w=0;for(let T=0;T<256;T++){let E=y[T];y[T]=w,w+=E;}for(let T=0;T<s;T++){let E=k[T];N[y[p[E]>>>b&255]++]=E;}let D=k;k=N,N=D;}let I=new Uint32Array(r);for(let i=0;i<s;i++)I[i]=o[k[i]];for(let i=0;i<l;i++)I[s+i]=f[i];return I}function ge(e){return e.nodes!==void 0}var be=new Map;function Ve(e){let t=be.get(e);return t||(t=new Intl.Collator(e,{numeric:true,sensitivity:"base"}),be.set(e,t)),t}var he=new WeakMap;function qe(e,t,n){let r=he.get(e);r||(r=new Map,he.set(e,r));let o=r.get(n);return (!o||o.length!==t.length)&&(o=fe(t,Ve(n)),r.set(n,o)),o}var ye=new WeakMap;function Ce(e,t){let n=ye.get(e);if(!n)n=t.map(G),ye.set(e,n);else for(let r=n.length;r<t.length;r++)n.push(G(t[r]));return n}function R(e){if(e instanceof Date)return e.getTime();if(typeof e=="number")return e;if(typeof e=="boolean")return e?1:0;if(e==null)return Number.NaN;let t=Number(e);if(!Number.isNaN(t))return t;let n=Date.parse(String(e));return Number.isNaN(n)?Number.NaN:n}function Ge(e,t){let n=e.dictionary,r=new Uint8Array(n.length),o=false,f=t.operator;if(f==="isnull")return {mask:r,nilPasses:true};if(f==="isnotnull")return r.fill(1),{mask:r,nilPasses:false};let s=Ce(e,n),l=t.value==null?"":G(String(t.value));switch(f){case "=":case "<>":{let a=t.value===null||t.value===void 0;for(let d=0;d<n.length;d++){let g=a?false:Pe(n[d],t.value);r[d]=(f==="="?g:!g)?1:0;}o=f==="="?a:!a;break}case "contains":for(let a=0;a<n.length;a++)r[a]=s[a].includes(l)?1:0;break;case "notcontains":for(let a=0;a<n.length;a++)r[a]=s[a].includes(l)?0:1;o=true,l===""&&(o=false);break;case "startswith":for(let a=0;a<n.length;a++)r[a]=s[a].startsWith(l)?1:0;break;case "endswith":for(let a=0;a<n.length;a++)r[a]=s[a].endsWith(l)?1:0;break;case "in":{let a=Ke(t.value);for(let d=0;d<n.length;d++)r[d]=a.has(Y(n[d]))?1:0;break}case ">":case ">=":case "<":case "<=":{for(let a=0;a<n.length;a++){let d=Q(n[a],t.value);r[a]=f===">"&&d>0||f===">="&&d>=0||f==="<"&&d<0||f==="<="&&d<=0?1:0;}break}case "between":{if(!Array.isArray(t.value)||t.value.length<2)break;let[a,d]=t.value;for(let g=0;g<n.length;g++)r[g]=Q(n[g],a)>=0&&Q(n[g],d)<=0?1:0;break}default:r.fill(1),o=true;}return {mask:r,nilPasses:o}}function Y(e){if(e instanceof Date)return e.getTime();if(typeof e=="number")return e;if(typeof e=="boolean")return e?1:0;let t=Number(e);return Number.isNaN(t)?String(e).toLowerCase():t}function Pe(e,t){return Y(e)===Y(t)}function Ke(e){let t=new Set,n=Array.isArray(e)?e:[];for(let r of n){if(r==null)continue;let o=Y(r);typeof o=="number"&&Number.isNaN(o)||t.add(o);}return t}function We(e){let t=new Set,n=Array.isArray(e)?e:[];for(let r of n){let o=R(r);Number.isNaN(o)||t.add(o);}return t}var J=new WeakMap;function ze(e){let t=J.get(e);return t||(t=We(e.value),J.set(e,t)),t}function Q(e,t){let n=R(e),r=R(t);if(!Number.isNaN(n)&&!Number.isNaN(r))return n-r;let o=String(e).toLowerCase(),f=String(t).toLowerCase();return o<f?-1:o>f?1:0}function He(e,t){if(t.operator==="in")return !Number.isNaN(e)&&ze(t).has(e);let n=Number.isNaN(e);switch(t.operator){case "isnull":return n;case "isnotnull":return !n;case "=":return !n&&e===R(t.value);case "<>":return n||e!==R(t.value);case ">":return !n&&e>R(t.value);case ">=":return !n&&e>=R(t.value);case "<":return !n&&e<R(t.value);case "<=":return !n&&e<=R(t.value);case "between":return n||!Array.isArray(t.value)||t.value.length<2?false:e>=R(t.value[0])&&e<=R(t.value[1]);case "contains":case "notcontains":case "startswith":case "endswith":{let r=n?"":String(e),o=t.value==null?"":G(String(t.value)),f=r.toLowerCase();return t.operator==="contains"?f.includes(o):t.operator==="notcontains"?!f.includes(o):t.operator==="startswith"?f.startsWith(o):f.endsWith(o)}default:return true}}function Z(e,t,n){if(ge(e))return e.nodes.length===0?true:e.logic==="or"?e.nodes.some(l=>Z(l,t,n)):e.nodes.every(l=>Z(l,t,n));let r=t.columns[e.columnId];if(!r)return true;if(r.kind==="numeric")return He(r.values[n],e);let o=ee.get(e),f=o??Ge(r,e);o||ee.set(e,f);let s=r.codes[n];return s===M?f.nilPasses:f.mask[s]===1}var ee=new WeakMap,Ye=65535;function te(e,t){ee=new WeakMap,J=new WeakMap;let{rowCount:n}=e,r=t.locale??"en",o=G(t.searchText.trim()),f=!!t.filter,s=o.length>0,l=[];if(s){let y=/^[0-9.+\\-einftya]*$/.test(o),I=(C,b,p)=>{let w=Ce(b,C),D=new Uint8Array(C.length),T=false;for(let E=0;E<w.length;E++)(w[E].includes(o)||p!==void 0&&p.has(C[E]))&&(D[E]=1,T=true);return T?D:null},i=new Map;if(t.searchLabelHits)for(let[C,b]of Object.entries(t.searchLabelHits))i.set(C,new Set(b));for(let C of t.searchColumns){let b=e.columns[C];if(!b)continue;let p=i.get(C);if(b.kind==="text"){let w=I(b.dictionary,b,p);w&&l.push({codes:b.codes,mask:w,values:null,numberHits:null,scanText:true});}else if(b.searchDictionary&&b.searchCodes){let w=I(b.searchDictionary,b,p);w&&l.push({codes:b.searchCodes,mask:w,values:null,numberHits:null,scanText:true});}else {let w=null;if(p)for(let D of p){let T=Number(D);Number.isNaN(T)||(w??=new Set).add(T);}(y||w)&&l.push({codes:null,mask:null,values:b.values,numberHits:w,scanText:y});}}}let a=t.onProgress,d=t.isCancelled,g={order:new Uint32Array(0),cancelled:true},m;if(!f&&!s){m=new Uint32Array(n);for(let y=0;y<n;y++)m[y]=y;}else {let y=new Uint32Array(n),I=0;for(let i=0;i<n;i++){if((i&Ye)===0){if(d?.())return g;a?.("filtering",n===0?1:i/n);}if(!(f&&!Z(t.filter,e,i))){if(s){let C=false;for(let b of l)if(b.codes&&b.mask){let p=b.codes[i];if(p!==M&&b.mask[p]===1){C=true;break}}else if(b.values){let p=b.values[i];if(!Number.isNaN(p)){if(b.numberHits!==null&&b.numberHits.has(p)){C=true;break}if(b.scanText&&String(p).toLowerCase().includes(o)){C=true;break}}}if(!C)continue}y[I++]=i;}}m=y.subarray(0,I),a?.("filtering",1);}if(t.sort.length===0)return {order:m.slice()};if(d?.())return g;let k=[];for(let y of t.sort){let I=e.columns[y.columnId];if(!I)continue;let i=y.direction==="desc"?-1:1;I.kind==="numeric"?k.push({dir:i,numeric:I.values,codes:null,ranks:null}):k.push({dir:i,numeric:null,codes:I.codes,ranks:qe(I,I.dictionary,r)});}if(k.length===0)return {order:m.slice()};if(m.length>=5e4){let y=[];for(let i of k){if(i.numeric){y.push(i.numeric);continue}let C=i.codes,b=i.ranks,p=new Float64Array(n);for(let w=0;w<n;w++){let D=C[w];p[w]=D===M?Number.NaN:b[D];}y.push(p);}let I=m;for(let i=k.length-1;i>=0;i--){if(d?.())return g;a?.("sorting",(k.length-1-i)/k.length),I=me(I,y[i],k[i].dir===-1);}return a?.("sorting",1),{order:I===m?m.slice():I}}a?.("sorting",null);let N=Array.from(m);return N.sort((y,I)=>{for(let i of k)if(i.numeric){let C=i.numeric[y],b=i.numeric[I],p=Number.isNaN(C),w=Number.isNaN(b);if(p||w){if(p&&w)continue;return p?1:-1}if(C!==b)return (C<b?-1:1)*i.dir}else {let C=i.codes[y],b=i.codes[I];if(C===M||b===M){if(C===M&&b===M)continue;return C===M?1:-1}let p=i.ranks[C],w=i.ranks[b];if(p!==w)return (p<w?-1:1)*i.dir}return y-I}),{order:Uint32Array.from(N)}}var $e=30,pe="Other",Xe=1e4;var _=864e5,je=60,Qe=20,$=2e3,ne=["day","week","month","quarter","year"],Ne={day:_,week:7*_,month:30.44*_,quarter:91.31*_,year:365.25*_};function ke(e,t){let n=new Date(e),r=n.getUTCFullYear(),o=n.getUTCMonth();switch(t){case "day":return Date.UTC(r,o,n.getUTCDate());case "week":{let f=Date.UTC(r,o,n.getUTCDate()),s=(new Date(f).getUTCDay()+6)%7;return f-s*_}case "month":return Date.UTC(r,o,1);case "quarter":return Date.UTC(r,Math.floor(o/3)*3,1);default:return Date.UTC(r,0,1)}}function Ie(e,t){let n=new Date(e),r=n.getUTCFullYear(),o=n.getUTCMonth();switch(t){case "day":return e+_;case "week":return e+7*_;case "month":return Date.UTC(r,o+1,1);case "quarter":return Date.UTC(r,o+3,1);default:return Date.UTC(r+1,0,1)}}var re=e=>e<10?`0${e}`:String(e);function Je(e,t){let n=new Date(e),r=n.getUTCFullYear();switch(t){case "year":return String(r);case "quarter":return `${r}-Q${Math.floor(n.getUTCMonth()/3)+1}`;case "month":return `${r}-${re(n.getUTCMonth()+1)}`;default:return `${r}-${re(n.getUTCMonth()+1)}-${re(n.getUTCDate())}`}}function Ze(e){if(!(e>0)||!Number.isFinite(e))return 1;let n=10**Math.floor(Math.log10(e)),r=e/n;return (r<=1?1:r<=2?2:r<=5?5:10)*n}function et(e,t,n){let r=Number.isFinite(t)&&Number.isFinite(n)?Math.max(0,n-t):0;if(e.kind==="date"){let a=e.unit??"auto",d,g=false;if(a==="auto")d=ne.find(m=>r/Ne[m]+1<=je)??"year";else for(d=a;r/Ne[d]+1>$;){let m=ne[ne.indexOf(d)+1];if(!m)break;d=m,g=true;}return {info:{kind:"date",unit:d,adjusted:g},keyOf:m=>Number.isFinite(m)?ke(m,d):Number.NaN,endOf:m=>Ie(m,d),labelOf:m=>Je(m,d),keys:(m,k)=>{let N=[];if(!Number.isFinite(m)||!Number.isFinite(k))return N;for(let y=ke(m,d);y<=k&&N.length<$;y=Ie(y,d))N.push(y);return N}}}let o=e.size&&e.size>0?e.size:Ze(r/Math.max(1,e.bins??Qe));(!(o>0)||!Number.isFinite(o))&&(o=1);let f=false;for(;r/o+1>$;)o*=2,f=true;let s=o;return {info:{kind:"number",size:s,adjusted:f},keyOf:a=>Number.isFinite(a)?Math.floor(a/s)*s:Number.NaN,endOf:a=>a+s,labelOf:a=>{let d=g=>String(Number(g.toPrecision(12)));return `${d(a)} \\u2013 ${d(a+s)}`},keys:(a,d)=>{let g=[];if(!Number.isFinite(a)||!Number.isFinite(d))return g;let m=Math.floor(a/s)*s;for(let k=m;k<=d&&g.length<$;k+=s)g.push(k);return g}}}function tt(e,t){if(e==null)return Number.NaN;if(e instanceof Date)return e.getTime();if(typeof e=="number")return e;if(t==="number")return Number(e);let n=Number(e);return Number.isNaN(n)?Date.parse(String(e)):n}function nt(e,t){if(!e)return {};let n=new Float64Array(t.length),r=new Float64Array(t.length);for(let o=0;o<t.length;o++){let f=t[o].start;n[o]=f,r[o]=Number.isNaN(f)?Number.NaN:e.endOf(f);}return {bucket:e.info,bucketStarts:n,bucketEnds:r}}var z=-1;function we(e,t,n,r){let o=Math.max(1,n.maxCategories??$e),f=n.otherBucket!==false,s=n.series.length,l=e[n.categoryColumnId],a=n.series.map(u=>e[u.columnId]),d=n.series.map(u=>u.aggregate==="countDistinct"),g=new Map,m=null,k=0,N=false,y=(u,c=Number.NaN)=>({label:u,sum:new Float64Array(s),numericCount:new Float64Array(s),count:new Float64Array(s),min:new Float64Array(s).fill(Number.POSITIVE_INFINITY),max:new Float64Array(s).fill(Number.NEGATIVE_INFINITY),distinct:d.map(h=>h?new Set:null),seq:k++,start:c}),I=(u,c)=>{if(!l)return Number.NaN;if(l.kind==="numeric")return l.values[u];let h=l.codes[u];return h===z?Number.NaN:tt(l.dictionary[h],c)},i=n.categoryBucket,C=null,b=Number.POSITIVE_INFINITY,p=Number.NEGATIVE_INFINITY;if(i){for(let u=0;u<t.length;u++){let c=I(t[u],i.kind);Number.isFinite(c)&&(c<b&&(b=c),c>p&&(p=c));}C=et(i,b,p);}let w=0,D=1,T=2,E=new Uint8Array(s),ae=new Array(s).fill(null),se=new Array(s).fill(null),ie=new Array(s).fill(null);for(let u=0;u<s;u++){let c=n.series[u].aggregate;E[u]=c==="count"?w:d[u]?D:T;let h=a[u];if(!h)continue;if(h.kind==="numeric"){ae[u]=h.values;continue}se[u]=h.codes;let x=h.dictionary,F=new Float64Array(x.length);for(let S=0;S<x.length;S++){let A=x[S],W=A===""?Number.NaN:Number(A);F[S]=Number.isFinite(W)?W:Number.NaN;}ie[u]=F;}for(let u=0;u<t.length;u++){let c=t[u],h,x,F=Number.NaN;if(C&&i)F=C.keyOf(I(c,i.kind)),h=Number.isNaN(F)?"":F,x=Number.isNaN(F)?"":C.labelOf(F);else if(!l)h=x="";else if(l.kind==="text"){let A=l.codes[c];h=x=A===z?"":l.dictionary[A];}else {let A=l.values[c];h=x=Number.isNaN(A)?"":String(A);}let S=g.get(h);S||(g.size>=Xe?(N=true,m??=y(n.otherLabel??pe),S=m):(S=y(x,F),g.set(h,S)));for(let A=0;A<s;A++){let W=E[A],L=ae[A],V=se[A];if(W===w){(L!==null?!Number.isNaN(L[c]):V!==null&&V[c]!==z)&&S.count[A]++;continue}if(W===D){let q=S.distinct[A];if(q)if(V!==null){let le=V[c];le!==z&&q.add(le);}else L!==null&&!Number.isNaN(L[c])&&q.add(L[c]);continue}let O;if(L!==null)O=L[c];else if(V!==null){let q=V[c];O=q===z?Number.NaN:ie[A][q];}else O=Number.NaN;Number.isNaN(O)||(S.numericCount[A]++,S.sum[A]+=O,O<S.min[A]&&(S.min[A]=O),O>S.max[A]&&(S.max[A]=O));}}let Me=(u,c)=>{for(let h=0;h<s;h++){u.sum[h]+=c.sum[h],u.numericCount[h]+=c.numericCount[h],u.count[h]+=c.count[h],c.min[h]<u.min[h]&&(u.min[h]=c.min[h]),c.max[h]>u.max[h]&&(u.max[h]=c.max[h]);let x=u.distinct[h],F=c.distinct[h];if(x&&F)for(let S of F)x.add(S);}},ue=(u,c)=>{switch(n.series[c].aggregate){case "count":return u.count[c];case "countDistinct":return u.distinct[c]?.size??0;case "sum":return u.numericCount[c]>0?u.sum[c]:Number.NaN;case "avg":return u.numericCount[c]>0?u.sum[c]/u.numericCount[c]:Number.NaN;case "min":return u.numericCount[c]>0?u.min[c]:Number.NaN;case "max":return u.numericCount[c]>0?u.max[c]:Number.NaN;default:return Number.NaN}},K=[...g.values()],Re=K.length+(m?1:0),H=u=>{if(s===0)return Number.NEGATIVE_INFINITY;let c=ue(u,0);return Number.isNaN(c)?Number.NEGATIVE_INFINITY:c},v;if(C){v=C.keys(b,p).map(c=>g.get(c)??y(C.labelOf(c),c));let u=g.get("");u&&v.push(u);}else {let u=K;if(K.length>o){let c=[...K].sort((h,x)=>H(x)-H(h));if(u=c.slice(0,o),f){m??=y(n.otherLabel??pe);for(let h of c.slice(o))Me(m,h);}}switch(n.categoryOrder??"value-desc"){case "category-asc":u=[...u].sort((c,h)=>c.label.localeCompare(h.label));break;case "first-seen":u=[...u].sort((c,h)=>c.seq-h.seq);break;default:u=[...u].sort((c,h)=>H(h)-H(c));}v=m?[...u,m]:u;}return {categories:v.map(u=>u.label),series:n.series.map((u,c)=>{let h=new Float64Array(v.length);for(let x=0;x<v.length;x++)h[x]=ue(v[x],c);return {label:u.label??r.series[c]??u.columnId,columnId:u.columnId,aggregate:u.aggregate,values:h}}),truncated:C?false:K.length>o||N,otherIndex:C?null:m?v.length-1:null,rowCount:t.length,categoryCount:C?v.length:Re,rankingExact:!N,...nt(C,v)}}function Te(){let e=new WeakMap;return {get(t){let n=e.get(t);if(n===void 0){n=new Map;let r=t.kind==="text"?t.dictionary:t.searchDictionary??[];for(let o=0;o<r.length;o++)n.set(r[o],o);e.set(t,n);}return n}}}function Ae(e,t,n){let r=n.get(e);return r===void 0&&(r=t.length,t.push(e),n.set(e,r)),r}function xe(e,t,n){for(let r of t){let o=e[r.columnId];if(!o)continue;let{indices:f}=r;if(o.kind==="numeric"){let s=r.numbers??[];for(let l=0;l<f.length;l++)o.values[f[l]]=s[l];if(o.searchCodes&&o.searchDictionary&&r.labels){let l=n.get(o);for(let a=0;a<f.length;a++){let d=r.labels[a];o.searchCodes[f[a]]=d===null?M:Ae(d,o.searchDictionary,l);}}}else {let s=r.labels??[],l=n.get(o);for(let a=0;a<f.length;a++){let d=s[a];o.codes[f[a]]=d===null?M:Ae(d,o.dictionary,l);}}}}var Se=self,P=new Map;function U(e,t){Se.postMessage(e,t??[]);}function Ee(e,t){for(let n of e)if(n.kind==="numeric"){let r={kind:"numeric",values:new Float64Array(n.buffer)};n.searchBuffer&&n.searchDictionary&&(r.searchCodes=new Int32Array(n.searchBuffer),r.searchDictionary=n.searchDictionary),t[n.columnId]=r;}else t[n.columnId]={kind:"text",codes:new Int32Array(n.buffer),dictionary:n.dictionary??[]};}function rt(e){let t={};Ee(e.columns,t),P.set(e.gridId,{dataVersion:e.dataVersion,table:{rowCount:e.rowCount,columns:t}}),U({action:"ready",gridId:e.gridId,dataVersion:e.dataVersion});}function ot(e){let t=P.get(e.gridId);!t||t.dataVersion!==e.dataVersion||(Ee(e.columns,t.table.columns),U({action:"ready",gridId:e.gridId,dataVersion:e.dataVersion}));}var B=new Set,j=(e,t)=>`${e}:${t}`,X=new Map,oe=new Map;function De(e,t){t>(X.get(e)??0)&&X.set(e,t);}function Fe(e,t){let n=j(e,t);return ()=>B.has(n)||t<=(oe.get(e)??0)}function at(e){De(e.gridId,e.requestId);let t=P.get(e.gridId);if(!t||t.dataVersion!==e.dataVersion)return;let n=j(e.gridId,e.requestId),r=Fe(e.gridId,e.requestId);if(r()){B.delete(n),U({action:"cancelled",gridId:e.gridId,requestId:e.requestId});return}try{let{order:o,cancelled:f}=te(t.table,{sort:e.sort,filter:e.filter,searchText:e.searchText,searchColumns:e.searchColumns,searchLabelHits:e.searchLabelHits,locale:e.locale,onProgress:(s,l)=>U({action:"progress",gridId:e.gridId,dataVersion:e.dataVersion,requestId:e.requestId,phase:s,fraction:l}),isCancelled:r});if(f){B.delete(n),U({action:"cancelled",gridId:e.gridId,requestId:e.requestId});return}U({action:"result",gridId:e.gridId,dataVersion:e.dataVersion,requestId:e.requestId,order:o.buffer,visibleCount:o.length},[o.buffer]),B.delete(n);}catch(o){U({action:"error",gridId:e.gridId,requestId:e.requestId,message:o instanceof Error?o.message:String(o)});}}function st(e){De(e.gridId,e.requestId);let t=P.get(e.gridId);if(!t||t.dataVersion!==e.dataVersion)return;let n=j(e.gridId,e.requestId),r=Fe(e.gridId,e.requestId);if(r()){B.delete(n),U({action:"cancelled",gridId:e.gridId,requestId:e.requestId});return}try{let{order:o,cancelled:f}=te(t.table,{sort:[],filter:e.filter,searchText:e.searchText,searchColumns:e.searchColumns,searchLabelHits:e.searchLabelHits,locale:e.locale,isCancelled:r});if(f){B.delete(n),U({action:"cancelled",gridId:e.gridId,requestId:e.requestId});return}let s={categoryColumnId:e.categoryColumnId,series:e.series,maxCategories:e.maxCategories,otherBucket:e.otherBucket,categoryOrder:e.categoryOrder,categoryBucket:e.categoryBucket,otherLabel:e.otherLabel},l=we(t.table.columns,o,s,{series:e.series.map(N=>N.label??N.columnId)}),a=l.categories.length,d=new Float64Array(l.series.length*a);for(let N=0;N<l.series.length;N++)d.set(l.series[N].values,N*a);let g=l.bucketStarts,m=l.bucketEnds,k=[d.buffer];g&&m&&k.push(g.buffer,m.buffer),U({action:"aggregated",gridId:e.gridId,dataVersion:e.dataVersion,requestId:e.requestId,categories:l.categories,values:d.buffer,seriesLabels:l.series.map(N=>N.label),truncated:l.truncated,otherIndex:l.otherIndex,rowCount:l.rowCount,categoryCount:l.categoryCount,rankingExact:l.rankingExact,bucket:l.bucket,bucketStarts:g?.buffer,bucketEnds:m?.buffer},k),B.delete(n);}catch(o){U({action:"error",gridId:e.gridId,requestId:e.requestId,message:o instanceof Error?o.message:String(o)});}}var it=Te();function ut(e){let t=P.get(e.gridId);!t||t.dataVersion!==e.fromVersion||(xe(t.table.columns,e.patches,it),t.dataVersion=e.toVersion);}Se.onmessage=e=>{let t=e.data;switch(t.action){case "init":rt(t);break;case "addColumns":ot(t);break;case "patchRows":ut(t);break;case "compute":at(t);break;case "aggregate":st(t);break;case "cancel":t.requestId===void 0?oe.set(t.gridId,X.get(t.gridId)??0):B.add(j(t.gridId,t.requestId));break;case "dispose":P.delete(t.gridId),X.delete(t.gridId),oe.delete(t.gridId);for(let n of B)n.startsWith(`${t.gridId}:`)&&B.delete(n);break}};',yu=null;function Bs(){return ra.length>0}function ks(){if(yu)return yu;if(!Bs())throw new Error("[datagrid] this build carries no embedded worker (the build step that inlines it did not run). Pass `worker={{ url }}` to point at a copy of datagrid.worker.js instead.");if(typeof Blob>"u"||typeof URL?.createObjectURL!="function")throw new Error("[datagrid] Blob URLs are unavailable, so the embedded worker cannot start.");return yu=URL.createObjectURL(new Blob([ra],{type:"text/javascript"})),yu}var Rs=2e4,Di=!1;function Ns(e,t){typeof process<"u"&&process.env&&!t||Di&&!t||(Di=!0,console.warn(`[datagrid] the Web Worker could not be started, so filtering and sorting are running on the main thread. The grid still works \u2014 it is just slower on large data.
|
|
4
4
|
The worker ships inside the package and starts from a Blob URL, so this is almost always a Content-Security-Policy. Either allow it:
|
|
5
5
|
Content-Security-Policy: worker-src 'self' blob:
|
|
6
6
|
or serve the worker as a file and point at it:
|
|
@@ -8,6 +8,6 @@ or serve the worker as a file and point at it:
|
|
|
8
8
|
<DataGrid worker={{ url: workerUrl }} />
|
|
9
9
|
Next.js: copy datagrid.worker.js from node_modules/@kanunilabs/datagrid-core/dist/ into public/, then <DataGrid worker={{ url: '/datagrid.worker.js' }} />
|
|
10
10
|
Silence this by turning the worker off on purpose: <DataGrid worker={{ enabled: false }} />
|
|
11
|
-
Cause:`,e))}var Ts=1e5,Ms=12,Is=2e3,Ls=500,Fi=2e5;function Si(){return new Promise(e=>{if(typeof MessageChannel>"u"){setTimeout(e,0);return}let t=new MessageChannel;t.port1.onmessage=()=>{t.port1.close(),e()},t.port2.postMessage(void 0)})}var Ke=class extends Error{constructor(e){super(`[datagrid] ${e}`),this.name="WorkerRequestAbandoned"}},bu=class extends Error{constructor(){super("[datagrid] compute cancelled"),this.name="WorkerRequestCancelled"}};function Ps(){return typeof Worker<"u"}function na(e,t){if(e){if("nodes"in e){for(let u of e.nodes)na(u,t);return}t.add(e.columnId)}}function kr(e,t){let u=new Set;for(let r of t.sort)u.add(r.columnId);if(na(t.filter,u),(t.searchText??"").trim().length>0)for(let r of Sr(e))u.add(r);return[...u].filter(r=>e.getState(Gr(r)??r)!==void 0)}var Eu=class{mode="client";rows;options;fallback;threshold;worker=null;workerBroken=!1;dataVersion=0;encodeToken=0;initializedVersion=-1;encodedColumns=new Set;lastTimings={encodeMs:0,workerMs:0,projectMs:0};getLastTimings(){return this.lastTimings}encodedMeta=new Map;requestCounter=0;pending=new Map;pendingAggregate=new Map;nodeCache=new Zi;constructor(e,t){this.rows=e,this.options=t,this.threshold=t.threshold??Rs,this.fallback=new Ss(e,{keyGetter:t.keyGetter,locale:t.locale,nodeCache:this.nodeCache})}getTotalCount(){return this.rows.length}setData(e){this.rows=e,this.fallback.setData(e),this.encodedMeta.clear(),this.nodeCache.invalidate(),this.dataVersion++,this.settlePending("data replaced while a worker request was in flight")}patchData(e,t,u){this.rows=e,this.fallback.patchData(e,t,u);let r=this.dataVersion;this.dataVersion++,this.tryPatchWorker(r,t,u),this.settlePending("data replaced while a worker request was in flight")}tryPatchWorker(e,t,u){if(!this.worker||this.workerBroken||!u||this.initializedVersion!==e)return;if(t.length===0){this.postPatch(e,[]);return}let r=[];for(let n of this.encodedColumns){let i=this.encodedMeta.get(n);if(!i)return;if(i.displaySource!==null){let s=i.displaySource,m=[],c=[];for(let h of t)c.push(zi(u,s,this.rows[h])),m.push(h);r.push({columnId:n,kind:"text",indices:m,labels:c});continue}let a=i.usesSortValue?s=>u.getSortValue(s,n):s=>u.getCellValue(s,n),l=[];if(i.kind==="numeric"){let s=i.dataType==="date"?Ki:Hi,m=[],c=i.hasSearch?[]:void 0;for(let h of t){let w=a(this.rows[h]);if(Fu(w))m.push(Number.NaN),c?.push(null);else{if(!i.hasSearch&&typeof w!="number")return;m.push(s(w)),c?.push(String(w))}l.push(h)}r.push({columnId:n,kind:"numeric",indices:l,numbers:m,labels:c})}else{let s=[];for(let m of t){let c=a(this.rows[m]);s.push(Fu(c)?null:String(c)),l.push(m)}r.push({columnId:n,kind:"text",indices:l,labels:s})}}this.postPatch(e,r)}postPatch(e,t){let u={action:"patchRows",gridId:this.options.gridId,fromVersion:e,toVersion:this.dataVersion,patches:t};this.worker.postMessage(u),this.initializedVersion=this.dataVersion}getSourceRows(){return this.rows}usesWorker(){return this.options.enabled!==!1&&!this.workerBroken&&Ps()&&this.rows.length>=this.threshold}async getRows(e,t){if(!this.usesWorker()||vs(e,t.sort)||typeof t.externalFilter=="function")return this.fallback.compute(e,t);try{let u=performance.now(),r=await this.computeOnWorker(e,t);return this.lastTimings.workerMs=Math.round(performance.now()-u)-this.lastTimings.encodeMs,this.buildResult(r)}catch(u){if(u instanceof Ke||u instanceof bu)throw u;return this.workerBroken=!0,this.teardownWorker(),Ns(u,this.options.debugMode===!0),this.fallback.compute(e,t)}}buildResult(e){let t=performance.now(),u=this.nodeCache.project(e,this.rows,this.options.keyGetter);return this.lastTimings.projectMs=Math.round(performance.now()-t),{nodes:u,visibleCount:e.length,totalCount:this.rows.length}}ensureWorker(){if(this.worker)return this.worker;let e=this.options.workerUrl,t=e?new Worker(e,{type:"module"}):new Worker(ks());return t.onmessage=u=>this.onMessage(u.data),t.onerror=u=>{let r=new Error(`datagrid worker error: ${u.message??"unknown"}`);this.pending.forEach(n=>n.reject(r)),this.pending.clear(),this.pendingAggregate.forEach(n=>n.reject(r)),this.pendingAggregate.clear()},this.worker=t,t}onMessage(e){if(e.action==="result"){if(e.dataVersion!==this.dataVersion)return;let t=this.pending.get(e.requestId);if(!t)return;this.pending.delete(e.requestId),t.resolve(new Uint32Array(e.order))}else if(e.action==="aggregated"){if(e.dataVersion!==this.dataVersion)return;let t=this.pendingAggregate.get(e.requestId);if(!t)return;this.pendingAggregate.delete(e.requestId),t.resolve(e)}else if(e.action==="error"){let t=this.pending.get(e.requestId)??this.pendingAggregate.get(e.requestId);if(!t)return;this.pending.delete(e.requestId),this.pendingAggregate.delete(e.requestId),t.reject(new Error(e.message))}else if(e.action==="progress"){if(e.dataVersion!==this.dataVersion||!this.pending.has(e.requestId))return;this.options.onPhaseProgress?.(e.phase,e.fraction)}else if(e.action==="cancelled"){let t=this.pending.get(e.requestId);if(!t)return;this.pending.delete(e.requestId),t.reject(new bu)}}cancel(){if(this.encodeToken++,!this.worker||this.pending.size===0)return;let e={action:"cancel",gridId:this.options.gridId};this.worker.postMessage(e)}async encodeOne(e,t,u,r,n,i){if(!r)return Wo(this.rows,e,t,u);let a=Wi(this.rows,e,t,u),l=Is;for(;;){let s=performance.now(),m=a.step(l),c=performance.now()-s;if(!m)break;let h=c>0?Math.round(l*Ms/c):Fi;if(l=Math.min(Fi,Math.max(Ls,h)),await Si(),this.encodeToken!==i)throw new Ke("encode cancelled");n?.(a.done/a.total)}return a.finish()}toWire(e,t,u,r,n){let i=Gr(t);if(this.encodedMeta.set(t,{kind:r.kind,hasSearch:r.kind==="numeric"&&!!r.searchCodes,usesSortValue:u,dataType:i===null?e.getDataType(t):"string",displaySource:i}),r.kind==="numeric"){let l={columnId:t,kind:"numeric",buffer:r.values.buffer};return n.push(l.buffer),r.searchCodes&&r.searchDictionary&&(l.searchBuffer=r.searchCodes.buffer,l.searchDictionary=r.searchDictionary,n.push(l.searchBuffer)),l}let a={columnId:t,kind:"text",buffer:r.codes.buffer,dictionary:r.dictionary};return n.push(a.buffer),a}async sendColumns(e,t,u,r,n=!1){let i=this.dataVersion,a=[],l=[],s=this.rows.length>=Ts&&u.length>0,m=this.encodeToken;for(let h=0;h<u.length;h++){if(s){if(await Si(),this.encodeToken!==m)throw new Ke("encode cancelled");n||this.options.onEncodeProgress?.(h/u.length)}let w=t.getDef(u[h])?.calculateSortValue!=null,g=await this.encodeOne(t,u[h],w,s,n?void 0:y=>this.options.onEncodeProgress?.((h+y)/u.length),m);a.push(this.toWire(t,u[h],w,g,l))}s&&!n&&this.options.onEncodeProgress?.(1);let c=r?{action:"init",gridId:this.options.gridId,dataVersion:i,rowCount:this.rows.length,columns:a}:{action:"addColumns",gridId:this.options.gridId,dataVersion:i,columns:a};if(e.postMessage(c,l),r)this.initializedVersion=i,this.encodedColumns=new Set(u);else for(let h of u)this.encodedColumns.add(h)}async computeOnWorker(e,t){let u=this.ensureWorker(),r=kr(e,t),n=this.initializedVersion!==this.dataVersion,i=n?r:r.filter(c=>!this.encodedColumns.has(c));if(this.lastTimings={encodeMs:0,workerMs:0,projectMs:0},n||i.length>0){let c=performance.now();if(await this.sendColumns(u,e,i,n),this.lastTimings.encodeMs=Math.round(performance.now()-c),this.initializedVersion!==this.dataVersion)throw new Ke("data replaced while columns were being encoded")}let a=++this.requestCounter,l=Sr(e),s=new Promise((c,h)=>{this.pending.set(a,{resolve:c,reject:h})}),m={action:"compute",gridId:this.options.gridId,dataVersion:this.dataVersion,requestId:a,sort:t.sort,filter:t.filter,searchText:t.searchText,searchColumns:l,searchLabelHits:ai(Fr(e,l,zt(t.searchText))),locale:this.options.locale??"en"};return u.postMessage(m),s}async aggregate(e,t,u){if(!this.usesWorker()||!Yi(u))return null;try{let r=this.ensureWorker(),n=new Set(kr(e,t));n.add(u.categoryColumnId);for(let g of u.series)n.add(g.columnId);if(this.initializedVersion!==this.dataVersion)return null;let i=[...n].filter(g=>!this.encodedColumns.has(g));if(i.length>0&&(await this.sendColumns(r,e,i,!1,!0),this.initializedVersion!==this.dataVersion))throw new Ke("data replaced while columns were being encoded");let a=++this.requestCounter,l=Sr(e),s=new Promise((g,y)=>{this.pendingAggregate.set(a,{resolve:g,reject:y})}),m={action:"aggregate",gridId:this.options.gridId,dataVersion:this.dataVersion,requestId:a,filter:t.filter,searchText:t.searchText,searchColumns:l,searchLabelHits:ai(Fr(e,l,zt(t.searchText))),locale:this.options.locale??"en",categoryColumnId:u.categoryColumnId,series:u.series.map(g=>({columnId:g.columnId,aggregate:g.aggregate,label:g.label??e.getDef(g.columnId)?.headerName??g.columnId})),maxCategories:u.maxCategories,otherBucket:u.otherBucket,categoryOrder:u.categoryOrder,categoryBucket:u.categoryBucket,otherLabel:u.otherLabel};r.postMessage(m);let c=await s,h=c.categories.length,w=new Float64Array(c.values);return{categories:c.categories,series:u.series.map((g,y)=>({label:c.seriesLabels[y]??g.columnId,columnId:g.columnId,aggregate:g.aggregate,values:w.subarray(y*h,(y+1)*h)})),truncated:c.truncated,otherIndex:c.otherIndex,rowCount:c.rowCount,categoryCount:c.categoryCount,rankingExact:c.rankingExact,bucket:c.bucket,bucketStarts:c.bucketStarts?new Float64Array(c.bucketStarts):void 0,bucketEnds:c.bucketEnds?new Float64Array(c.bucketEnds):void 0}}catch(r){return r instanceof Ke||r instanceof bu||this.options.debugMode&&console.error("[datagrid] worker chart aggregation failed, using main thread:",r),null}}teardownWorker(){if(this.worker){try{let e={action:"dispose",gridId:this.options.gridId};this.worker.postMessage(e)}catch{}this.worker.terminate(),this.worker=null,this.initializedVersion=-1,this.encodedColumns.clear()}}dispose(){this.settlePending("grid disposed while a worker request was in flight"),this.teardownWorker(),this.rows=[]}settlePending(e){if(this.pending.size===0&&this.pendingAggregate.size===0)return;let t=new Ke(e);this.pending.forEach(u=>u.reject(t)),this.pending.clear(),this.pendingAggregate.forEach(u=>u.reject(t)),this.pendingAggregate.clear()}};var Gs=class{mode;selected=new Set;allMatching=!1;anchor=null;constructor(e="none"){this.mode=e}getMode(){return this.mode}setMode(e){if(e===this.mode)return!1;if(this.mode=e,e==="none")this.clear();else if(e==="single"&&this.allMatching)this.clear();else if(e==="single"&&this.selected.size>1){let t=this.selected.values().next().value;this.selected=new Set([t])}return!0}isSelected(e){return this.allMatching?!this.selected.has(e):this.selected.has(e)}getSelectedKeys(){return[...this.selected]}getSelectionDescriptor(){return{allMatching:this.allMatching,keys:[...this.selected]}}isAllMatching(){return this.allMatching}getSelectedCount(e){return this.allMatching?e===void 0?0:Math.max(0,e-this.selected.size):this.selected.size}selectAllMatching(){return this.mode!=="multiple"||this.allMatching&&this.selected.size===0?!1:(this.allMatching=!0,this.selected=new Set,!0)}getAnchor(){return this.anchor}select(e){return this.mode==="none"||!this.allMatching&&this.selected.size===1&&this.selected.has(e)?!1:(this.allMatching=!1,this.selected=new Set([e]),this.anchor=e,!0)}toggle(e){return this.mode==="none"?!1:this.isSelected(e)?(this.allMatching?this.selected.add(e):this.selected.delete(e),!0):(this.allMatching?this.selected.delete(e):this.mode==="single"?this.selected=new Set([e]):this.selected.add(e),this.anchor=e,!0)}selectRange(e,t,u=!1){if(this.mode!=="multiple")return this.select(e);let r=this.anchor??e,n=t.indexOf(r),i=t.indexOf(e);if(n===-1||i===-1)return this.select(e);let a=Math.min(n,i),l=Math.max(n,i),s=u&&!this.allMatching?new Set(this.selected):new Set;for(let m=a;m<=l;m++)s.add(t[m]);return!this.allMatching&&wr(s,this.selected)?!1:(this.allMatching=!1,this.selected=s,!0)}selectAll(e){if(this.mode!=="multiple")return!1;let t=new Set(e);return!this.allMatching&&wr(t,this.selected)?!1:(this.allMatching=!1,this.selected=t,this.anchor=e[0]??null,!0)}clear(){return!this.allMatching&&this.selected.size===0?!1:(this.allMatching=!1,this.selected=new Set,!0)}setSelectedKeys(e){if(this.mode==="none")return!1;let t=new Set(this.mode==="single"?e.slice(0,1):e);return!this.allMatching&&wr(t,this.selected)?!1:(this.allMatching=!1,this.selected=t,this.anchor=t.size>0?[...t][t.size-1]:null,!0)}handleRowClick(e,t,u){if(this.mode==="none")return!1;let r=!!(t.ctrlKey||t.metaKey);return t.shiftKey&&this.mode==="multiple"?this.selectRange(e,u,r):r?this.toggle(e):this.select(e)}retainKeys(e){let t=!1;for(let u of this.selected)e.has(u)||(this.selected.delete(u),t=!0);return this.anchor!==null&&!e.has(this.anchor)&&(this.anchor=null),t}};function wr(e,t){if(e.size!==t.size)return!1;for(let u of e)if(!t.has(u))return!1;return!0}function Os(e){return{count:e.length,keyAt:t=>e[t],indexOf:t=>e.indexOf(t)}}function it(e,t,u){return e<t?t:e>u?u:e}function yr(e){return e.rows??Os(e.rowKeys??[])}var Vs=class{position=null;get(){return this.position}isFocused(e,t){return this.position?.rowKey===e&&this.position?.columnId===t}set(e){return e?.rowKey===this.position?.rowKey&&e?.columnId===this.position?.columnId?!1:(this.position=e,!0)}clear(){return this.set(null)}getIndices(e){if(!this.position)return null;let t=yr(e).indexOf(this.position.rowKey),u=e.columnIds.indexOf(this.position.columnId);return t===-1||u===-1?null:{rowIndex:t,columnIndex:u}}move(e,t){let{columnIds:u}=t,r=yr(t);if(r.count===0||u.length===0)return!1;let n=Math.max(1,t.pageSize??10),i=this.getIndices(t);if(!i){let w=r.keyAt(0);return w===void 0?!1:this.set({rowKey:w,columnId:u[0]})}let a=r.count-1,l=u.length-1,{rowIndex:s,columnIndex:m}=i,c=s;switch(e){case"up":s=it(s-1,0,a);break;case"down":s=it(s+1,0,a);break;case"left":m=it(m-1,0,l);break;case"right":m=it(m+1,0,l);break;case"pageUp":s=it(s-n,0,a);break;case"pageDown":s=it(s+n,0,a);break;case"rowStart":m=0;break;case"rowEnd":m=l;break;case"gridStart":s=0,m=0;break;case"gridEnd":s=a,m=l;break}if(t.isFocusable){let w=s>c?1:s<c?-1:0;s=this.skipUnfocusable(r,s,w,t.isFocusable,c)}let h=r.keyAt(s);return h===void 0?!1:this.set({rowKey:h,columnId:u[m]})}skipUnfocusable(e,t,u,r,n){if(r(e.keyAt(t),t))return t;let i=u===0?-1:u;for(let a=t+i;a>=0&&a<e.count;a+=i)if(r(e.keyAt(a),a))return a;for(let a=t-i;a>=0&&a<e.count;a-=i)if(r(e.keyAt(a),a))return a;return n}reconcile(e,t){if(!this.position)return!1;let{columnIds:u}=e,r=yr(e);if(r.count===0||u.length===0)return this.clear();let n=r.indexOf(this.position.rowKey)!==-1,i=u.includes(this.position.columnId)?this.position.columnId:u[0];if(n)return this.set({rowKey:this.position.rowKey,columnId:i});let a=it(t??0,0,r.count-1),l=r.keyAt(a);return l===void 0?this.clear():this.set({rowKey:l,columnId:i})}},ge=(e,t=!0)=>({type:e,preventDefault:t});function ia(e){let t=!!(e.ctrlKey||e.metaKey),u=!!e.shiftKey;switch(e.key){case"ArrowUp":return ge(u?"extendSelectionUp":"up");case"ArrowDown":return ge(u?"extendSelectionDown":"down");case"ArrowLeft":return ge("left");case"ArrowRight":return ge("right");case"PageUp":return ge("pageUp");case"PageDown":return ge("pageDown");case"Home":return ge(t?"gridStart":"rowStart");case"End":return ge(t?"gridEnd":"rowEnd");case" ":case"Spacebar":return ge("toggleSelection");case"Enter":return ge("activate");case"Escape":return ge("clearSelection");case"a":case"A":return t?ge("selectAll"):null;case"c":case"C":return t?ge("copy",!1):null;default:return null}}function zs(e){return e==="up"||e==="down"||e==="left"||e==="right"||e==="pageUp"||e==="pageDown"||e==="rowStart"||e==="rowEnd"||e==="gridStart"||e==="gridEnd"}var Hs="__dg_";function Ks(e){return e.startsWith(Hs)}function Ws(e){return e.filter(t=>!Ks(t))}function Rr(e){return e.replace(/[\t\r\n]+/g," ")}function Us(e,t,u){let r=u.getCellValue(e.data,t);return Rr(Du(u.getDef(t),r,e.data))}function $s(e,t,u={}){let r=u.columnIds??Ws(t.runtime().map(i=>i.state.id));if(r.length===0)return"";let n=[];if(u.includeGroupHeaders){let i=r.map(l=>Ie(t.getDef(l))),a=i.reduce((l,s)=>Math.max(l,s.length),0);for(let l=0;l<a;l++){let s=null;n.push(i.map(m=>{let c=m[l]??"",h=c===""?null:m.slice(0,l+1).join("\0"),w=h!==null&&h===s;return s=h,w?"":Rr(c)}).join(" "))}}(u.includeHeaders||u.includeGroupHeaders)&&n.push(r.map(i=>Rr(t.getDef(i)?.headerName??t.getDef(i)?.field??i)).join(" "));for(let i of e)at(i)&&n.push(r.map(a=>Us(i,a,t)).join(" "));return n.join(`
|
|
12
|
-
`)}var qs=5,_s=35e5,js=16e6,Ys=4,Zs=3;function Bi(e){let t=[],u=[],r=[];for(let g of e)g.state.pinned==="left"?t.push(g):g.state.pinned==="right"?r.push(g):u.push(g);let n=[],i=0;for(let g of t)n.push(i),i+=g.state.width;let a=[0],l=0;for(let g of u)l+=g.state.width,a.push(l);let s=new Array(u.length).fill(null),m=[],c=i;for(let g=0;g<u.length;g++)u[g].state.pinned==="sticky"&&(s[g]=c,c+=u[g].state.width,m.push(g));let h=new Array(r.length),w=0;for(let g=r.length-1;g>=0;g--)h[g]=w,w+=r[g].state.width;return{left:t,center:u,right:r,leftWidth:i,centerWidth:l,rightWidth:w,totalWidth:i+l+w,centerOffsets:a,leftOffsets:n,rightOffsets:h,centerStickyOffsets:s,stickyIndices:m}}var Js={left:[],center:[],right:[],leftWidth:0,centerWidth:0,rightWidth:0,totalWidth:0,centerOffsets:[0],leftOffsets:[],rightOffsets:[],centerStickyOffsets:[],stickyIndices:[]};function ki(e,t,u){let r=0,n=u-1,i=0;for(;r<=n;){let a=r+n>>1;e[a]<=t?(i=a,r=a+1):n=a-1}return i}function Er(e,t,u){return e<t?t:e>u?u:e}var Qs=class{rowCount=0;heights;overscanY;overscanX;viewportWidth=0;viewportHeight=0;scrollTop=0;scrollLeft=0;maxScrollOffset=_s;leadWidth=0;headerOffset=0;footerOffset=0;maxCanvasHeight=js;layout=Js;window;constructor(e={}){this.heights=new Al(e.rowHeight??28),this.overscanY=Math.max(0,e.overscanY??qs),this.overscanX=Math.max(0,e.overscanX??Zs),this.window=this.compute()}setRowCount(e){let t=Math.max(0,e|0);return t===this.rowCount?!1:(this.rowCount=t,this.commit())}setRowHeight(e){return this.heights.setBase(e)?this.commit():!1}setRowHeights(e){return this.heights.setOverrides(e)?this.commit():!1}getRowHeightAt(e){return this.heights.heightOf(e)}getRowOffset(e){return this.heights.offsetOf(e)}hasUniformRows(){return this.heights.isUniform()}setMaxScrollOffset(e){if(!Number.isFinite(e)||e<=0)return!1;let t=Math.floor(e);return t===this.maxScrollOffset?!1:(this.maxScrollOffset=t,this.commit())}setLeadWidth(e){return this.leadWidth=Math.max(0,e),!1}setChromeOffsets(e,t){let u=Number.isFinite(e)&&e>0?Math.round(e):0,r=Number.isFinite(t)&&t>0?Math.round(t):0;return this.headerOffset=u,this.footerOffset=r,!1}setMaxCanvasHeight(e){if(!Number.isFinite(e)||e<=0)return!1;let t=Math.floor(e);return t===this.maxCanvasHeight?!1:(this.maxCanvasHeight=t,this.commit())}setViewportSize(e,t){let u=Math.max(0,e),r=Math.max(0,t);return u===this.viewportWidth&&r===this.viewportHeight?!1:(this.viewportWidth=u,this.viewportHeight=r,this.commit())}setScroll(e,t){let u=Math.max(0,e),r=Math.max(0,t);return u===this.scrollTop&&r===this.scrollLeft?!1:(this.scrollTop=u,this.scrollLeft=r,this.commit())}setColumnLayout(e){return this.layout=e,this.commit()}getWindow(){return this.window}getColumnLayout(){return this.layout}getRowHeight(){return this.heights.getBase()}getScroll(){return{scrollTop:this.scrollTop,scrollLeft:this.scrollLeft}}getVisibleCenterColumns(){return this.layout.center.slice(this.window.columns.start,this.window.columns.end)}ensureVisible(e,t){let u={};if(e>=0&&e<this.rowCount){let s=this.heights.offsetOf(e),m=s+this.heights.heightOf(e),c=this.virtualTop();s<c?u.scrollTop=this.physicalTop(s,Math.floor):m>c+this.viewportHeight&&(u.scrollTop=this.physicalTop(m-this.viewportHeight,Math.ceil)+this.headerOffset+this.footerOffset)}let{center:r,centerOffsets:n,leftWidth:i,rightWidth:a,stickyIndices:l}=this.layout;if(t!=null&&t>=0&&t<r.length){let s=Math.max(0,this.viewportWidth-this.leadWidth-i-a),m=0;for(let w of l)w<t&&(m+=r[w].state.width);let c=n[t],h=n[t+1];l.includes(t)&&c<this.scrollLeft||(c<this.scrollLeft+m?u.scrollLeft=Math.max(0,c-m):h>this.scrollLeft+s&&(u.scrollLeft=h-s))}return u.scrollTop===void 0&&u.scrollLeft===void 0?null:u}commit(){let e=this.compute(),t=this.window,u=e.rows.start!==t.rows.start||e.rows.end!==t.rows.end||e.rows.offsetY!==t.rows.offsetY||e.rows.totalHeight!==t.rows.totalHeight||e.rows.contentHeight!==t.rows.contentHeight||e.columns.start!==t.columns.start||e.columns.end!==t.columns.end||e.columns.offsetX!==t.columns.offsetX;return u&&(this.window=e),u}compute(){return{rows:this.computeRowWindow(),columns:this.computeColumnWindow()}}scrollGeometry(){let e=this.heights.totalHeight(this.rowCount),t=Math.min(e,this.maxCanvasHeight,this.maxScrollOffset+this.viewportHeight);return{canvas:t,physicalRange:t-this.viewportHeight,virtualRange:e-this.viewportHeight}}virtualTop(){let{physicalRange:e,virtualRange:t}=this.scrollGeometry();return e<=0||t<=e?this.scrollTop:this.scrollTop>=e-Ys?t+this.footerOffset:this.scrollTop*t/e}physicalTop(e,t=Math.round){let{physicalRange:u,virtualRange:r}=this.scrollGeometry();return u<=0||r<=u?e:Er(t(e*u/r),0,u)}computeRowWindow(){let e=this.heights.totalHeight(this.rowCount),{canvas:t}=this.scrollGeometry(),u=t<e;if(this.rowCount===0||this.viewportHeight===0)return{start:0,end:0,offsetY:0,totalHeight:t,contentHeight:e,compressed:u};let r=this.virtualTop(),n=this.rowCount-1,i=Er(this.heights.indexAt(r),0,n),a=Er(this.heights.indexAt(r+this.viewportHeight-1),0,n),l=Math.max(0,i-this.overscanY),s=Math.min(this.rowCount,a+1+this.overscanY),m=this.heights.offsetOf(l)-(r-this.scrollTop);if(u){let c=m+this.heights.offsetOf(s)-this.heights.offsetOf(l);c>t&&(m-=c-t)}return{start:l,end:s,offsetY:m,totalHeight:t,contentHeight:e,compressed:u}}computeColumnWindow(){let{center:e,centerOffsets:t,leftWidth:u,rightWidth:r}=this.layout,n=e.length;if(n===0||this.viewportWidth===0)return{start:0,end:n===0?0:n,offsetX:0};let i=Math.max(0,this.viewportWidth-u-r);if(i===0)return{start:0,end:0,offsetX:0};let a=this.scrollLeft,l=this.scrollLeft+i,s=ki(t,a,n),m=ki(t,l-1,n),c=Math.max(0,s-this.overscanX),h=Math.min(n,m+1+this.overscanX);return{start:c,end:h,offsetX:t[c]}}};function Xs(e){let{getParentKey:t,parentField:u}=e;if(t)return n=>t(n)??null;let r=u??"parentId";return n=>n[r]??null}function e0(e,t,u){let r=new Map,n=new Map,i=new Map;for(let s=0;s<e.length;s++)i.set(t(e[s]),s);for(let s=0;s<e.length;s++){let m=t(e[s]),c=u(e[s]);c!==null&&(c===m||!i.has(c))&&(c=null),n.set(m,c);let h=r.get(c);h?h.push(m):r.set(c,[m])}let a=new Set;for(let s of n.keys()){if(a.has(s))continue;let m=new Set,c=s;for(;c!==null&&!a.has(c);){if(m.has(c)){let h=n.get(c)??null;n.set(c,null);let w=r.get(h);if(w){let y=w.indexOf(c);y>=0&&w.splice(y,1)}let g=r.get(null);g?g.push(c):r.set(null,[c]);break}m.add(c),c=n.get(c)??null}for(let h of m)a.add(h)}let l=r.get(null);return l&&l.sort((s,m)=>(i.get(s)??0)-(i.get(m)??0)),{childrenOf:r,parentOf:n,sourceIndexOf:i}}function t0(e,t){let{index:u,sourceRows:r,isExpanded:n}=t,i=new Map,a=new Map;for(let g=0;g<e.length;g++)i.set(e[g].key,e[g]),a.set(e[g].key,g);let l=e.length!==u.sourceIndexOf.size,s=new Set(i.keys());if(l)for(let g of i.keys()){let y=u.parentOf.get(g)??null;for(;y!==null&&!s.has(y);)s.add(y),y=u.parentOf.get(y)??null}let m=g=>{let y=g.filter(F=>s.has(F));return y.sort((F,S)=>{let T=a.get(F),N=a.get(S);return T!==void 0&&N!==void 0?T-N:T!==void 0?-1:N!==void 0?1:(u.sourceIndexOf.get(F)??0)-(u.sourceIndexOf.get(S)??0)}),y},c=[],h=[],w=m(u.childrenOf.get(null)??[]);for(let g=w.length-1;g>=0;g--)h.push({key:w[g],depth:0});for(;h.length>0;){let{key:g,depth:y}=h.pop(),F=m(u.childrenOf.get(g)??[]),S=F.length>0,T=S&&(l||n(g)),N=i.get(g),V=u.sourceIndexOf.get(g)??-1,K={depth:y,hasChildren:S,expanded:T,ancestorOnly:N===void 0};if(c.push(N?{...N,tree:K}:{kind:"data",key:g,sourceIndex:V,data:r[V],tree:K}),T)for(let Z=F.length-1;Z>=0;Z--)h.push({key:F[Z],depth:y+1})}return{nodes:c}}var Nr=(()=>{if(typeof MessageChannel>"u")return u=>{setTimeout(u,0)};let e=new MessageChannel,t=[];return e.port1.onmessage=()=>{let u=t.shift();u&&u()},e.port1.unref?.(),e.port2.unref?.(),u=>{t.push(u),e.port2.postMessage(null)}})();function Lt(){return new Promise(e=>Nr(e))}var Au=1e5,Ar=32768,Ri=65536;async function u0(e){let{rows:t,getValue:u,collator:r,shouldAbort:n,onProgress:i}=e,a=()=>n?n():!1,l=new Map;for(let y=0;y<t.length;y+=Au){if(a())return null;let F=Math.min(t.length,y+Au);for(let S=y;S<F;S++){let T=u(t[S]),N=T==null?"":String(T);l.has(N)||l.set(N,T)}i?.(F/t.length*.2),F<t.length&&await Lt()}let s=[...l.keys()],m=[];for(let y=0;y<s.length;y+=Ar){if(a())return null;m.push(s.slice(y,y+Ar).sort(r.compare)),i?.(.2+Math.min(s.length,y+Ar)/Math.max(1,s.length)*.2),await Lt()}m.length===0&&(m=[[]]);let c=Math.max(1,Math.ceil(Math.log2(Math.max(2,m.length)))),h=0;for(;m.length>1;){let y=[];for(let F=0;F<m.length;F+=2){if(F+1===m.length){y.push(m[F]);continue}let S=m[F],T=m[F+1],N=new Array(S.length+T.length),V=0,K=0,Z=0,W=Ri;for(;V<S.length&&K<T.length;)if(r.compare(S[V],T[K])<=0?N[Z++]=S[V++]:N[Z++]=T[K++],--W===0){if(a())return null;await Lt(),W=Ri}for(;V<S.length;)N[Z++]=S[V++];for(;K<T.length;)N[Z++]=T[K++];if(y.push(N),a())return null;await Lt()}m=y,h++,i?.(.4+Math.min(1,h/c)*.5)}let w=m[0],g=new Array(w.length);for(let y=0;y<w.length;y+=Au){if(a())return null;let F=Math.min(w.length,y+Au);for(let S=y;S<F;S++){let T=w[S];g[S]={label:T,value:l.get(T)}}F<w.length&&await Lt()}return i?.(1),g}function r0(e){let t={};for(let[u,r]of Object.entries(e)){let n=Object.values(r);n.length!==0&&(t[u]=n.length===1?n[0]:{logic:"and",nodes:n})}return t}var n0=class{state={sort:[],filter:null,columnFilters:{},columnFilterParts:{},filterEnabled:!0,searchText:"",groupBy:[],collapsedGroups:[],expandedDetails:[],page:0,pageSize:50};listeners=new Set;version=0;multiSort;collapsedCache=null;expandedCache=null;constructor(e={}){this.multiSort=e.multiSort??!1}getState(){return this.state}getVersion(){return this.version}subscribe(e){return this.listeners.add(e),()=>this.listeners.delete(e)}commit(e,t="data",u){e.collapsedGroups!==this.state.collapsedGroups&&(this.collapsedCache=u?.collapsed??null),e.expandedDetails!==this.state.expandedDetails&&(this.expandedCache=u?.expanded??null),this.state=e,this.version++,this.listeners.forEach(r=>r(this.state,t))}collapsedSet(){return this.collapsedCache||(this.collapsedCache=new Set(this.state.collapsedGroups)),this.collapsedCache}expandedSet(){return this.expandedCache||(this.expandedCache=new Set(this.state.expandedDetails)),this.expandedCache}commitCollapsed(e){this.commit({...this.state,collapsedGroups:[...e]},"view",{collapsed:e})}commitExpanded(e){this.commit({...this.state,expandedDetails:[...e]},"view",{expanded:e})}toggleSort(e,t=!1){let u=this.state.sort,r=u.find(a=>a.columnId===e),n=r?r.direction==="asc"?"desc":null:"asc",i;this.multiSort&&t?(i=u.filter(a=>a.columnId!==e),n&&i.push({columnId:e,direction:n})):i=n?[{columnId:e,direction:n}]:[],this.commit({...this.state,sort:i})}setSort(e){let t=this.multiSort?e.slice():e.slice(0,1);this.commit({...this.state,sort:t})}clearSort(){this.state.sort.length!==0&&this.commit({...this.state,sort:[]})}setFilter(e){this.commit({...this.state,filter:e})}setFilterEnabled(e){e!==this.state.filterEnabled&&this.commit({...this.state,filterEnabled:e})}setColumnFilter(e,t,u){let r={...this.state.columnFilterParts};if(u===void 0)t?r[e]={[Vt]:t}:delete r[e];else{let n={...r[e]??{}};delete n[Vt],t?n[u]=t:delete n[u],Object.keys(n).length>0?r[e]=n:delete r[e]}this.commit({...this.state,columnFilterParts:r,columnFilters:r0(r)})}getColumnFilter(e,t){return t!==void 0?this.state.columnFilterParts[e]?.[t]??null:this.state.columnFilters[e]??null}clearColumnFilters(){Object.keys(this.state.columnFilters).length!==0&&this.commit({...this.state,columnFilters:{},columnFilterParts:{}})}effectiveFilter(){let e=[];this.state.filter&&e.push(this.state.filter);for(let t of Object.values(this.state.columnFilters))e.push(t);return e.length===0?null:e.length===1?e[0]:{logic:"and",nodes:e}}setSearchText(e){e!==this.state.searchText&&this.commit({...this.state,searchText:e})}setGroupBy(e){let t=e==null?[]:typeof e=="string"?[e]:[...e],u=this.state.groupBy;return t.length===u.length&&t.every((r,n)=>r===u[n])?!1:(this.commit({...this.state,groupBy:t,collapsedGroups:[]}),!0)}isGroupCollapsed(e){return this.collapsedSet().has(e)}toggleGroup(e){let t=this.collapsedSet(),u=new Set(t);u.delete(e)||u.add(e),this.commitCollapsed(u)}setCollapsedGroups(e){this.commitCollapsed(new Set(e))}isDetailExpanded(e){return this.expandedSet().has(e)}toggleDetail(e){let t=new Set(this.expandedSet());t.delete(e)||t.add(e),this.commitExpanded(t)}setExpandedDetails(e){this.commitExpanded(new Set(e))}setPage(e){let t=Math.max(0,Math.floor(e));t!==this.state.page&&this.commit({...this.state,page:t},"page")}setPageSize(e){let t=Math.max(1,Math.floor(e));t!==this.state.pageSize&&this.commit({...this.state,pageSize:t,page:0},"page")}clampPage(e){let t=Math.max(0,e-1);return this.state.page<=t?this.state.page:(this.state={...this.state,page:t},this.version++,t)}resetPage(){this.state.page!==0&&this.commit({...this.state,page:0},"page")}applyState(e){this.commit({...e})}reset(){this.commit({sort:[],filter:null,columnFilters:{},columnFilterParts:{},filterEnabled:!0,searchText:"",groupBy:[],collapsedGroups:[],expandedDetails:[],page:0,pageSize:this.state.pageSize})}};function br(e,t){return e.toLowerCase().endsWith(`.${t}`)?e:`${e}.${t}`}var i0=[];function aa(e,t){if(!e)return null;if("nodes"in e){let u=e.nodes.map(r=>aa(r,t)).filter(r=>r!==null);return u.length===0?null:{logic:e.logic,nodes:u}}return t(e.columnId)?e:null}var Tr="__dg_pending_row_",a0=e=>`${Tr}${e}`;function o0(e){if(typeof e!="string"||!e.startsWith(Tr))return null;let t=Number(e.slice(Tr.length));return Number.isInteger(t)&&t>=0?t:null}function l0(e){return e==null?[]:typeof e=="string"?[e]:[...e]}var s0="\0",Ni="",vr=1e3,d0=150,c0=60,oa=class{gridId;events=new vl;columns;store;rowModel;debugMode;locale;text;virtual;selection;focus=new Vs;keyGetter;rowKeyField;summaryDefs;pendingReaders;historyDelegate;editingDelegate;summaryValues={};treeData;treeParent=null;treeIndex=null;treeIndexEpoch=-1;treeToggled=new Set;treeExpandedByDefault;warnedTreeGrouping=!1;lastPagination=null;firstDataRenderedSent=!1;cellRevision=0;collapsedByDefault;groupSummaries;showGroupedColumns;masterDetail;editForm=null;getRowHeightFn;measuredRowHeights=new Map;lastResult={nodes:[],visibleCount:0,totalCount:0};spanCache=new Map;spanCacheResult=null;viewNodes=[];allViewNodes=[];paginationEnabled;infiniteScroll;infinitePageSize;infiniteLimit;exportDefaults={csv:{},excel:{},pdf:{}};exportPageSize;exportMaxRows;exportToken=0;computeToken=0;lastComputeTimings={};summaryPassSeq=0;remoteFetchQueued=!1;viewportWidth=0;viewportHeight=0;leadWidth=0;externalFilter=null;asyncQueue=[];asyncCallbacks=[];asyncTimer=null;asyncTransactionWait;lastScrollTop=-1;lastScrollLeft=-1;scrollEndTimer=null;overlayOverride=null;lastFocusedRowKey=null;deferredSelection;rowIndexCache=null;dataNodeCache=null;dataKeyCache=null;nodeByKey=null;groupTree=null;groupTreeSignature=null;dataEpoch=0;distinctCache=new Map;distinctFullInflight=new Map;distinctTruncated=new Set;distinctEpoch=-1;localeCollator=null;summaryBasis=null;busy={busy:!1,progress:null,phase:null,cancellable:!1};exportAbort=null;busyDepth=0;unsubscribeStore;disposed=!1;constructor(e){this.gridId=e.gridId,this.asyncTransactionWait=e.asyncTransactionWait??50,this.debugMode=e.debugMode??!1,this.locale=e.locale??"en",this.text=Ht(e.locale,e.messages),this.columns=new ws(e.columns,{defaultColumnDef:e.defaultColumnDef,debugMode:this.debugMode}),this.store=new n0({multiSort:e.sorting?.multi??!1});let t=dl(e.rowKey);if(this.keyGetter=t,this.rowKeyField=typeof e.rowKey=="string"?e.rowKey:null,yo(e.dataSource)?this.rowModel=new mi(e.dataSource,{keyGetter:t,blockSize:e.remote?.blockSize,maxBlocks:e.remote?.maxBlocks,onError:u=>this.events.emit("dataError",{error:u}),debugMode:this.debugMode}):this.rowModel=new Eu(e.dataSource,{gridId:e.gridId,keyGetter:t,locale:e.locale,enabled:e.worker?.enabled,threshold:e.worker?.threshold,workerUrl:e.worker?.url,debugMode:this.debugMode,onEncodeProgress:u=>u>=1?this.setBusy("computing",null):this.setBusy("encoding",Math.round(u*100)),onPhaseProgress:(u,r)=>this.setBusy(u,r===null?null:Math.round(r*100))}),this.exportPageSize=Math.max(1,e.remote?.exportPageSize??1e3),this.exportMaxRows=Math.max(1,e.remote?.exportMaxRows??1e5),this.selection=new Gs(e.selection?.mode??"none"),this.deferredSelection=e.selection?.deferred??!1,this.summaryDefs=e.summaries??[],this.treeData=e.tree??null,this.treeData&&(this.treeParent=Xs(this.treeData)),this.treeExpandedByDefault=this.treeData?.defaultExpanded??!1,this.collapsedByDefault=e.grouping?.collapsedByDefault??!1,this.groupSummaries=e.grouping?.groupSummaries??!1,this.showGroupedColumns=e.grouping?.showGroupedColumns??!1,e.grouping?.groupBy){this.store.setGroupBy(e.grouping.groupBy);let u=this.store.getState().groupBy;this.remote()?.setGrouping(u.map(r=>({columnId:r})),u)}this.paginationEnabled=e.pagination?e.pagination.enabled!==!1:!1,this.infiniteScroll=e.scrolling?.mode==="infinite",this.infinitePageSize=Math.max(1,e.scrolling?.pageSize??100),this.infiniteLimit=this.infinitePageSize,e.pagination?.pageSize&&this.store.setPageSize(e.pagination.pageSize),this.virtual=new Qs({rowHeight:e.rowHeight,overscanY:e.virtualization?.overscanY,overscanX:e.virtualization?.overscanX}),this.virtual.setColumnLayout(Bi(this.layoutRuntime())),this.getRowHeightFn=e.getRowHeight,this.masterDetail=e.masterDetail?{height:Math.max(1,e.masterDetail.height??160),expandedByDefault:e.masterDetail.expandedByDefault??!1}:null,this.unsubscribeStore=this.store.subscribe((u,r)=>{this.events.emit("stateUpdated",{scope:r,state:this.getViewState()}),r==="page"&&this.emitPaginationChanged(!1),r==="view"||r==="page"&&this.rowModel.mode==="client"?this.reproject():this.recompute()}),this.recompute()}getRows(){return this.viewNodes}getDataRows(){return this.dataNodes()}getDataRowNode(e){if(!this.nodeByKey){let t=new Map,u=this.dataNodes();for(let r=0;r<u.length;r++)t.has(u[r].key)||t.set(u[r].key,u[r]);this.nodeByKey=t}return this.nodeByKey.get(e)}getRowByKey(e){return this.getDataRowNode(e)?.data}forEachNode(e){let t=this.rowModel.getSourceRows?.();if(!t){this.forEachNodeAfterFilterAndSort(e);return}for(let u=0;u<t.length;u++)e($e(t[u],this.keyGetter(t[u]),u),u)}forEachNodeAfterFilterAndSort(e){let t=this.dataNodes();for(let u=0;u<t.length;u++)e(t[u],u)}forEachDisplayedNode(e){let t=this.viewNodes;for(let u=0;u<t.length;u++)e(t[u],u)}dataNodes(){if(this.dataNodeCache)return this.dataNodeCache;let e=[];for(let t of this.lastResult.nodes)t&&t.kind==="data"&&e.push(t);return this.dataNodeCache=e,e}invalidateResultCaches(){this.dataNodeCache=null,this.dataKeyCache=null,this.nodeByKey=null,this.groupTree=null,this.groupTreeSignature=null}ensureGroupTree(e){let t=this.groupSummaries&&this.summaryDefs.length>0,u=`${e.join(s0)}#${t?this.summaryDefs.map(r=>`${r.columnId}:${r.type}`).join(","):""}`;return this.groupTree&&this.groupTreeSignature===u?this.groupTree:(this.setBusy("grouping",null),this.groupTree=No(this.dataNodes(),this.columns,{columnIds:e,summaries:t?this.summaryDefs:void 0}),this.groupTreeSignature=u,this.groupTree)}getVisibleCount(){return this.lastResult.visibleCount}getTotalCount(){return this.rowModel.getTotalCount()}getColumnModel(){return this.columns}getColumnStates(){return this.columns.getColumnStates()}getSort(){return this.store.getState().sort}getFilter(){return this.store.getState().filter}getSearchText(){return this.store.getState().searchText}getVirtualWindow(){return this.virtual.getWindow()}getColumnLayout(){return this.virtual.getColumnLayout()}getVisualColumnIds(){let e=this.getColumnLayout(),t=[];for(let u of e.left)t.push(u.state.id);for(let u of e.center)t.push(u.state.id);for(let u of e.right)t.push(u.state.id);return t}getColumnIdAt(e){if(e<0)return null;let t=this.getColumnLayout();if(e<t.left.length)return t.left[e].state.id;let u=e-t.left.length;return u<t.center.length?t.center[u].state.id:t.right[u-t.center.length]?.state.id??null}getVisualColumnCount(){let e=this.getColumnLayout();return e.left.length+e.center.length+e.right.length}getRowHeight(){return this.virtual.getRowHeight()}isUsingWorker(){return this.rowModel instanceof Eu&&this.rowModel.usesWorker()}getVisibleCenterColumns(){return this.virtual.getVisibleCenterColumns()}setViewportSize(e,t){let u=this.viewportWidth,r=this.viewportHeight,n=e!==u||t!==r;this.viewportWidth=e,this.viewportHeight=t;let i=this.emitIfWindowChanged(this.virtual.setViewportSize(e,t));return n&&this.events.emit("gridSizeChanged",{width:e,height:t,previousWidth:u,previousHeight:r}),i}setMaxScrollOffset(e){return this.emitIfWindowChanged(this.virtual.setMaxScrollOffset(e))}setChromeOffsets(e,t){this.virtual.setChromeOffsets(e,t)}setLeadWidth(e){this.leadWidth=e,this.virtual.setLeadWidth(e)}setMaxCanvasHeight(e){return this.emitIfWindowChanged(this.virtual.setMaxCanvasHeight(e))}setScroll(e,t){let u=this.emitIfWindowChanged(this.virtual.setScroll(e,t));return u&&this.rowModel.mode==="remote"&&this.scheduleRemoteFetch(),this.publishScroll(e,t),u}publishScroll(e,t){if(e===this.lastScrollTop&&t===this.lastScrollLeft)return;this.lastScrollTop=e,this.lastScrollLeft=t;let u=this.virtual.getWindow(),r={scrollTop:e,scrollLeft:t,firstRow:u.rows.start,lastRow:u.rows.end};this.events.emit("bodyScroll",r),this.scrollEndTimer!==null&&clearTimeout(this.scrollEndTimer),this.scrollEndTimer=setTimeout(()=>{this.scrollEndTimer=null,!this.disposed&&this.events.emit("bodyScrollEnd",r)},d0)}showLoadingOverlay(){this.setOverlayOverride("loading")}showNoRowsOverlay(){this.setOverlayOverride("noRows")}hideOverlay(){this.setOverlayOverride(null)}getOverlay(){return this.overlayOverride==="none"?null:this.overlayOverride!==null?this.overlayOverride:this.busy.busy?"loading":this.getVisibleCount()===0?"noRows":null}setOverlayOverride(e){this.overlayOverride!==e&&(this.overlayOverride=e,this.events.emit("overlayChanged",{overlay:this.getOverlay(),manual:e!==null}))}notifyRowDrag(e,t){let u=e==="enter"?"rowDragEnter":e==="move"?"rowDragMove":"rowDragLeave";this.events.emit(u,{rowKey:t.rowKey,row:this.getRowByKey(t.rowKey),overKey:t.overKey??null,position:t.position??null,fromGridId:t.fromGridId??this.gridId})}notifyRowDragEnd(e){this.events.emit("rowDragEnd",{rowKey:e.rowKey,row:this.getRowByKey(e.rowKey),overKey:e.overKey??null,position:e.position??null,fromGridId:e.fromGridId??this.gridId,dropped:e.dropped})}scheduleRemoteFetch(){this.remoteFetchQueued||this.disposed||(this.remoteFetchQueued=!0,queueMicrotask(()=>{this.remoteFetchQueued=!1,this.disposed||this.recompute(!0)}))}setRowHeight(e){let t=this.virtual.setRowHeight(e);t&&this.measuredRowHeights.size>0&&(this.measuredRowHeights=new Map,this.rebuildRowHeights()),t?this.emitIfWindowChanged(!0):this.events.emit("viewportChanged",{window:this.virtual.getWindow()})}ensureVisible(e,t){return this.virtual.ensureVisible(e,t)}scrollToRow(e){let t=this.rowAxis().indexOf(e);if(t<0)return;let u=this.ensureVisible(t);u&&this.events.emit("scrollRequested",u)}revealRow(e,t=3){if(this.disposed)return;let u=()=>{if(!this.editForm?.atTop||String(this.editForm.rowKey)!==String(e))return!1;let i=this.ensureVisible(0);return i&&this.events.emit("scrollRequested",i),!0};if(u())return;if(this.rowAxis().indexOf(e)>=0){this.scrollToRow(e);return}let r=t,n=this.events.on("contentReady",()=>{if(this.disposed||this.rowAxis().indexOf(e)>=0){if(n(),this.disposed||u())return;this.scrollToRow(e);return}--r<=0&&n()})}scrollToCell(e,t){let u=this.rowAxis().indexOf(e);if(u<0)return;let r=this.getColumnLayout().center.findIndex(i=>i.state.id===t),n=this.ensureVisible(u,r===-1?void 0:r);n&&this.events.emit("scrollRequested",n)}getSelectionMode(){return this.selection.getMode()}setSelectionMode(e){this.selection.setMode(e)&&this.emitSelectionChanged()}isRowSelected(e){return this.selection.isSelected(e)}getSelectedKeys(){return this.selection.isAllMatching()?this.dataNodes().filter(e=>this.selection.isSelected(e.key)).map(e=>e.key):this.selection.getSelectedKeys()}getSelectionDescriptor(){return this.selection.getSelectionDescriptor()}getSelectedCount(){return this.selection.getSelectedCount(this.lastResult.visibleCount)}isAllMatchingSelected(){return this.selection.isAllMatching()}getSelectedRows(){return this.dataNodes().filter(e=>this.selection.isSelected(e.key)).map(e=>e.data)}getFocusedNode(){let e=this.focus.get();if(!e)return;let t=this.rowAxis().indexOf(e.rowKey);return t>=0?this.viewNodes[t]:void 0}getFocusedRowKey(){return this.focus.get()?.rowKey??null}getFocusedRowIndex(){let e=this.getFocusedRowKey();return e===null?-1:this.rowAxis().indexOf(e)}focusRow(e){let t=this.focus.get()?.columnId??this.layoutRuntime()[0]?.state.id;t&&this.focus.set({rowKey:e,columnId:t})&&(this.emitFocusChanged(),this.scrollToRow(e))}selectRow(e){this.selection.select(e)&&this.emitSelectionChanged()}toggleRow(e){this.selection.toggle(e)&&this.emitSelectionChanged()}setSelectedKeys(e){this.selection.setSelectedKeys(e)&&this.emitSelectionChanged()}selectAll(){(this.deferredSelection?this.selection.selectAllMatching():this.selection.selectAll(this.dataKeys()))&&this.emitSelectionChanged()}clearSelection(){this.selection.clear()&&this.emitSelectionChanged()}handleRowClick(e,t={}){this.selection.handleRowClick(e,t,this.dataKeys())&&this.emitSelectionChanged()}notifyCell(e,t,u,r){let n=t.kind==="data"?t.data:void 0;this.events.emit(e,{rowKey:t.key,rowIndex:u,columnId:r,value:n===void 0?void 0:this.columns.getCellValue(n,r),row:n,node:t})}notifyCellValueChanged(e){this.events.emit("cellValueChanged",{...e,row:this.getRowByKey(e.rowKey)})}notifyEditingStarted(e){this.events.emit("cellEditingStarted",e)}notifyEditingStopped(e){this.events.emit("cellEditingStopped",e)}notifyRowEditingStarted(e){this.events.emit("rowEditingStarted",{...e,row:this.getRowByKey(e.rowKey)})}notifyRowEditingStopped(e){this.events.emit("rowEditingStopped",{...e,row:this.getRowByKey(e.rowKey)})}notifyHistoryStarted(e,t){this.events.emit(e==="undo"?"undoStarted":"redoStarted",{label:t})}notifyHistoryEnded(e,t){this.events.emit(e==="undo"?"undoEnded":"redoEnded",t)}setHistoryDelegate(e){this.historyDelegate=e??void 0}undo(){return this.historyDelegate?.undo()??!1}redo(){return this.historyDelegate?.redo()??!1}canUndo(){return this.historyDelegate?.canUndo()??!1}canRedo(){return this.historyDelegate?.canRedo()??!1}getHistoryDepth(){return this.historyDelegate?.depth()??{undo:0,redo:0}}setEditingDelegate(e){this.editingDelegate=e??void 0}startEditingCell(e,t){return this.editingDelegate?.startEditingCell(e,t)??!1}stopEditing(e){return this.editingDelegate?.stopEditing(e?.cancel??!1)??Promise.resolve(!1)}getEditingCells(){return this.editingDelegate?.getEditingCells()??[]}isEditing(){return this.getEditingCells().length>0}notifyRow(e,t,u){this.events.emit(e,{rowKey:t.key,rowIndex:u,row:t.kind==="data"?t.data:void 0,node:t})}getFocus(){return this.focus.get()}isCellFocused(e,t){return this.focus.isFocused(e,t)}focusCell(e,t){this.focus.set({rowKey:e,columnId:t})&&this.emitFocusChanged()}clearFocus(){this.focus.clear()&&this.emitFocusChanged()}moveFocus(e){let t=this.focus.move(e,this.focusContext());return t&&this.emitFocusChanged(),t}getFocusIndices(){return this.focus.getIndices(this.focusContext())}executeCommand(e){let{type:t}=e;if(zs(t))return this.moveFocus(t);switch(t){case"toggleSelection":{let u=this.getFocusedNode();return u?(u.kind==="group"?this.toggleGroup(String(u.key)):u.kind==="data"&&this.toggleRow(u.key),!0):!1}case"extendSelectionUp":case"extendSelectionDown":{let u=this.moveFocus(t==="extendSelectionUp"?"up":"down"),r=this.focus.get();return r&&this.selection.getMode()==="multiple"&&this.selection.selectRange(r.rowKey,this.dataKeys(),!1)&&this.emitSelectionChanged(),u}case"selectAll":return this.selectAll(),!0;case"clearSelection":return this.clearSelection(),!0;case"activate":return!1;case"copy":return!1;default:return!1}}getClipboardText(e={}){let t=this.lastResult.nodes.filter(u=>this.selection.isSelected(u.key));if(t.length===0){let u=this.focus.get();if(!u)return"";t=this.lastResult.nodes.filter(r=>r.key===u.rowKey)}return t.length===0?"":$s(t,this.columns,e)}notifyClipboardGesture(e,t,u){let r=`${e}Start`,n=`${e}End`;this.events.emit(r,{cellCount:t});let i=!1;try{return i=u(),i}finally{this.events.emit(n,{cellCount:t,performed:i})}}dataKeys(){if(this.dataKeyCache)return this.dataKeyCache;let e=this.dataNodes(),t=new Array(e.length);for(let u=0;u<e.length;u++)t[u]=e[u].key;return this.dataKeyCache=t,t}rowAxis(){let e=this.viewNodes;return{count:e.length,keyAt:t=>e[t]?.key??(t>=0&&t<e.length?a0(t):void 0),indexOf:t=>{let u=o0(t);if(u!==null&&u<e.length&&!e[u])return u;if(!this.rowIndexCache){let r=new Map;for(let n=0;n<e.length;n++){let i=e[n];i&&!r.has(i.key)&&r.set(i.key,n)}this.rowIndexCache=r}return this.rowIndexCache.get(t)??-1}}}focusContext(){return{isFocusable:this.masterDetail!==null||this.editForm!==null?(e,t)=>{let u=this.viewNodes[t]?.kind;return u==="data"||u==="group"}:void 0,rows:this.rowAxis(),columnIds:this.columns.runtime().map(e=>e.state.id),pageSize:Math.max(1,this.virtual.getWindow().rows.end-this.virtual.getWindow().rows.start-2)}}emitSelectionChanged(){this.events.emit("selectionChanged",{selectedKeys:this.selection.getSelectedKeys(),selectedCount:this.selection.getSelectedCount()})}emitFocusChanged(){let e=this.focus.get();this.events.emit("focusChanged",{focus:e});let t=e?.rowKey??null;if(t!==this.lastFocusedRowKey){let u=this.lastFocusedRowKey;this.lastFocusedRowKey=t,this.events.emit("focusedRowChanged",{rowKey:t,previousRowKey:u,row:t===null?void 0:this.getFocusedRow()})}}getFocusedRow(){let e=this.getFocusedNode();return e&&e.kind==="data"?e.data:void 0}toggleSort(e,t=!1){this.assertColumn(e)&&(this.store.toggleSort(e,t),this.emitSortChanged())}setSort(e){this.store.setSort(e),this.emitSortChanged()}clearSort(){this.store.clearSort(),this.emitSortChanged()}setFilter(e){this.store.setFilter(e),this.store.resetPage(),this.resetReveal(),this.emitFilterChanged()}setColumnFilter(e,t,u){this.assertColumn(e)&&(this.store.setColumnFilter(e,t,u),this.store.resetPage(),this.resetReveal(),this.emitFilterChanged())}getColumnFilter(e,t){return this.store.getColumnFilter(e,t)}clearColumnFilters(){this.store.clearColumnFilters(),this.emitFilterChanged()}getEffectiveFilter(){return this.store.effectiveFilter()}isFilterEnabled(){return this.store.getState().filterEnabled}runningFilter(){return this.isFilterEnabled()?this.store.effectiveFilter():null}setExternalFilter(e){this.externalFilter=e,this.events.emit("filterChanged",{filter:this.runningFilter(),searchText:this.store.getState().searchText}),this.recompute()}isExternalFilterPresent(){return this.externalFilter!==null}refreshExternalFilter(){this.externalFilter!==null&&this.recompute()}setFilterEnabled(e){this.isFilterEnabled()!==e&&(this.store.setFilterEnabled(e),this.resetReveal(),this.emitFilterChanged())}getDistinctValues(e,t=vr){return this.getDistinctValueSet(e,t).entries}getDistinctValueSet(e,t=vr){this.distinctEpoch!==this.dataEpoch&&(this.distinctCache.clear(),this.distinctTruncated.clear(),this.distinctEpoch=this.dataEpoch);let u=`${e} ${t}`,r=this.distinctCache.get(u);if(r)return{entries:r,truncated:this.distinctTruncated.has(u)};let n=this.rowModel.getSourceRows?.()??[],i=this.columns.getDef(e),a=new Map,l=!1;for(let m of n){let c=this.columns.getCellValue(m,e),h=c==null?"":String(c),w=c==null?"":Du(i,c,m);if(!a.has(h)&&(a.set(h,{value:c,label:w}),a.size>t)){a.delete(h),l=!0;break}}let s=[...a.values()].sort((m,c)=>this.collator().compare(m.label,c.label));return this.distinctCache.set(u,s),l?this.distinctTruncated.add(u):this.distinctTruncated.delete(u),{entries:s,truncated:l}}searchDistinctValues(e,t,u=vr){let r=te(t.trim());if(!r)return this.getDistinctValueSet(e,u);let n=this.rowModel.getSourceRows?.()??[],i=this.columns.getDef(e),a=new Map,l=!1;for(let s of n){let m=this.columns.getCellValue(s,e),c=m==null?"":String(m),h=m==null?"":Du(i,m,s);if(!(!te(h).includes(r)||a.has(c))&&(a.set(c,{value:m,label:h}),a.size>u)){a.delete(c),l=!0;break}}return{entries:[...a.values()].sort((s,m)=>this.collator().compare(s.label,m.label)),truncated:l}}async getDistinctValueSetAsync(e,t){if(this.remote())return{entries:await this.getDistinctValuesAsync(e),truncated:!1};this.distinctEpoch!==this.dataEpoch&&(this.distinctCache.clear(),this.distinctTruncated.clear(),this.distinctEpoch=this.dataEpoch);let u=`${e} full`,r=this.distinctCache.get(u);if(r)return{entries:r,truncated:!1};let n=this.distinctFullInflight.get(e);if(!n){let i=this.dataEpoch;n=u0({rows:this.rowModel.getSourceRows?.()??[],getValue:a=>this.columns.getCellValue(a,e),collator:this.collator(),shouldAbort:()=>this.disposed,onProgress:t}).then(a=>(this.distinctFullInflight.delete(e),a===null?[]:(i===this.dataEpoch&&this.distinctEpoch===i&&(this.distinctCache.set(u,a),this.distinctTruncated.delete(u)),a))),this.distinctFullInflight.set(e,n)}return{entries:await n,truncated:!1}}canListDistinctValues(){let e=this.remote();return e===null||e.supportsDistinctValues()}async getDistinctValuesAsync(e,t=1e3){let u=this.remote();return u?u.supportsDistinctValues()?(await u.loadDistinctValues(e,t)).map(r=>({value:r.value,label:r.label??(r.value==null?"":String(r.value))})).sort((r,n)=>this.collator().compare(r.label,n.label)):[]:this.getDistinctValues(e,t)}collator(){return this.localeCollator||(this.localeCollator=new Intl.Collator(this.locale,{numeric:!0,sensitivity:"base"})),this.localeCollator}bumpDataEpoch(){this.dataEpoch++}setSearchText(e){this.store.setSearchText(e),this.store.resetPage(),this.resetReveal(),this.emitFilterChanged()}emitFilterChanged(){this.events.emit("filterChanged",{filter:this.store.effectiveFilter(),searchText:this.store.getState().searchText})}setColumnWidth(e,t,u=!0){let r=this.columns.getState(e)?.width;this.columns.setWidth(e,t);let n=this.columns.getState(e);n&&r!==void 0&&(n.width!==r||u)&&this.events.emit("columnResized",{columnId:e,width:n.width,previousWidth:r,finished:u}),this.emitColumnStateChanged()}sizeColumnsToFit(e={}){let t=(e.width??this.viewportWidth)-this.leadWidth;if(!Number.isFinite(t)||t<=0)return;let u=new Set(e.skip??[]),r=this.columns.getOrder().filter(c=>this.columns.getState(c)?.visible&&!u.has(c));if(r.length===0)return;let n=0;for(let c of this.columns.getOrder())!this.columns.getState(c)?.visible||!u.has(c)||(n+=this.columns.getState(c)?.width??0);let i=t-n;if(i<=0)return;let a=new Set(r),l=new Map;for(let c of r)l.set(c,this.columns.getState(c)?.width??0);for(let c=0;c<=r.length&&a.size>0;c++){let h=0;for(let y of a)h+=l.get(y)??0;if(h<=0)break;let w=i/h,g=!1;for(let y of[...a]){let F=(l.get(y)??0)*w,S=this.columns.getDef(y),T=S?.minWidth??c0,N=S?.maxWidth??Number.POSITIVE_INFINITY;if(F<T||F>N){let V=Math.min(Math.max(F,T),N);l.set(y,V),a.delete(y),i-=V,g=!0}else l.set(y,F)}if(!g)break}let s=0;for(let c of r)s+=l.get(c)??0;let m=0;r.forEach((c,h)=>{let w=h===r.length-1?Math.round(s)-m:Math.round(l.get(c)??0);m+=w,this.columns.setWidth(c,w)}),this.emitColumnStateChanged()}setBandCollapsed(e,t){let u=typeof e=="string"?[e]:e;this.columns.setBandCollapsed(u,t)&&(this.events.emit("columnGroupOpened",{band:[...u],open:!t}),this.emitColumnStateChanged())}toggleBand(e){let t=typeof e=="string"?[e]:e;this.setBandCollapsed(t,!this.columns.isBandCollapsed(t))}isBandCollapsed(e){return this.columns.isBandCollapsed(typeof e=="string"?[e]:e)}isBandCollapsible(e){return this.columns.isBandCollapsible(typeof e=="string"?[e]:e)}setColumnPinned(e,t){let u=this.columns.getState(e)?.pinned;this.columns.setPinned(e,t);let r=this.columns.getState(e);r&&u!==void 0&&r.pinned!==u&&this.events.emit("columnPinned",{columnId:e,pinned:r.pinned,previous:u}),this.emitColumnStateChanged()}setColumnVisible(e,t){let u=this.columns.getState(e)?.visible;this.columns.setVisible(e,t);let r=this.columns.getState(e);r&&u!==void 0&&r.visible!==u&&this.events.emit("columnVisible",{columnId:e,visible:r.visible}),this.emitColumnStateChanged(),this.recompute()}moveColumn(e,t){let u=this.columns.getOrder().indexOf(e);this.columns.moveColumn(e,t);let r=this.columns.getOrder().indexOf(e);u!==-1&&r!==u&&this.events.emit("columnMoved",{columnId:e,fromIndex:u,toIndex:r}),this.emitColumnStateChanged()}applyColumnStates(e){this.columns.applyColumnStates(e),this.emitColumnStateChanged(),this.recompute()}resetColumnState(){this.columns.resetColumnStates(),this.emitColumnStateChanged(),this.recompute()}setColumns(e){this.columns.setColumns(e),this.bumpDataEpoch(),this.emitColumnStateChanged(),this.recompute()}getGroupLevels(){return this.store.getState().groupBy}getGroupSummaries(){return this.groupSummaries}setGroupSummaries(e){this.groupSummaries!==e&&(this.groupSummaries=e,this.groupTree=null,this.groupTreeSignature=null,this.reproject())}getGroupBy(){return this.store.getState().groupBy[0]??null}groupBy(e){let t=e==null?[]:typeof e=="string"?[e]:[...e];for(let r of t)if(!this.assertColumn(r))return;let u=this.store.getState().groupBy;t.length===u.length&&t.every((r,n)=>r===u[n])||(this.remote()?.setGrouping(t.map(r=>({columnId:r})),t),this.store.setGroupBy(t),this.emitColumnStateChanged(),this.resetReveal(),this.events.emit("groupChanged",{groupBy:t[0]??null,levels:t}))}remote(){return this.rowModel instanceof mi?this.rowModel:null}clearGrouping(){this.groupBy(null)}isGroupCollapsed(e){return this.store.isGroupCollapsed(e)}toggleGroup(e){let t=this.remote();if(t?.isGrouped()){t.toggleGroupPath(e)&&this.recompute();return}this.store.toggleGroup(e)}expandAllGroups(){this.remote()?.isGrouped()||this.store.setCollapsedGroups([])}collapseAllGroups(){let e=this.remote();if(e?.isGrouped()){e.setExpandedPaths([]),this.recompute();return}let t=this.store.getState().groupBy;t.length!==0&&this.store.setCollapsedGroups(Mo(this.ensureGroupTree(t)))}setEditFormRow(e,t={}){let u=e===null?null:{rowKey:e,height:Math.max(1,t.height??260),atTop:t.atTop??!1},r=this.editForm;if(!(r?.rowKey===u?.rowKey&&r?.height===u?.height&&r?.atTop===u?.atTop)&&(this.editForm=u,this.reproject(),u?.atTop)){let n=this.ensureVisible(0);n&&this.events.emit("scrollRequested",n)}}getEditFormRow(){return this.editForm?.rowKey??null}getEditFormHeight(){return this.editForm?.height??0}isDebugMode(){return this.debugMode}hasMasterDetail(){return this.masterDetail!==null}getDetailHeight(){return this.masterDetail?.height??0}isDetailExpanded(e){let t=this.store.isDetailExpanded(e);return this.masterDetail?.expandedByDefault?!t:t}toggleDetail(e){this.masterDetail&&this.store.toggleDetail(e)}collapseAllDetails(){this.masterDetail&&(this.masterDetail.expandedByDefault?this.store.setExpandedDetails(this.dataKeys()):this.store.setExpandedDetails([]))}getDataRowCount(){return this.lastResult.visibleCount}getSummaries(){return this.summaryValues}getSummaryDefs(){return this.summaryDefs}setSummaryDefs(e){this.summaryDefs=e,this.groupTree=null,this.groupTreeSignature=null,this.summaryBasis=null,this.recompute()}getColumnSummary(e){return this.summaryDefs.find(t=>t.columnId===e)??null}setColumnSummary(e,t){let u=this.summaryDefs.filter(r=>r.columnId!==e);if(this.summaryDefs=t===null?u:[...u,{columnId:e,type:t}],this.groupSummaries&&this.store.getState().groupBy.length>0){this.recompute();return}if(this.remote()){this.recompute();return}this.recomputeSummaries(),this.emitColumnStateChanged()}setPendingValueReader(e){this.pendingReaders=e??void 0,this.recomputeSummaries(),this.emitColumnStateChanged()}refreshSummaries(){this.summaryDefs.length!==0&&(this.recomputeSummaries(),this.events.emit("contentReady",{rows:this.lastResult.nodes,totalCount:this.lastResult.totalCount,visibleCount:this.lastResult.visibleCount}))}currentSummaryBasis(e,t){let u=t?this.columns.runtime().map(r=>r.state.id).join(","):"";return[this.dataEpoch,t,u,JSON.stringify(e)].join(Ni)}async computeChartData(e,t={}){let u=t.source??e.source??"view",r=!!this.pendingReaders&&(this.pendingReaders.hasPending?.()??!0),n=r?this.pendingReaders:void 0;if(u==="selection"){let a=this.getSelectedKeys();if(a.length>0){let l=[];for(let s of a){let m=this.getDataRowNode(s);m&&l.push(m)}return gr(l,this.columns,e,n)}}let i=this.rowModel instanceof Eu?this.rowModel:null;if(i?.usesWorker()&&Yi(e)&&!r){let{searchText:a}=this.store.getState(),l=await i.aggregate(this.columns,{sort:[],filter:u==="all"?null:this.runningFilter(),searchText:u==="all"?"":a},e);if(l)return l}if(u==="all"){let a=this.rowModel.getSourceRows?.()??[],l=new Array(a.length);for(let s=0;s<a.length;s++)l[s]=$e(a[s],this.keyGetter(a[s]),s);return gr(l,this.columns,e,n)}return gr(this.dataNodes(),this.columns,e,n)}chartBasis(e="view"){if(e==="all")return String(this.dataEpoch);let{searchText:t}=this.store.getState();return[this.currentSummaryBasis(this.runningFilter(),t),this.lastResult.visibleCount].join(Ni)}runSummaryPass(e,t,u,r,n){let i=++this.summaryPassSeq;if(e.length<=1e5){this.busyDepth>0&&this.setBusy("aggregating",null);let h=ko(e,this.columns,t,this.pendingReaders);this.summaryValues=u?{...this.summaryValues,...h}:h,r!==null&&(this.summaryBasis=r);return}let a=Ro(this.columns,t,this.pendingReaders),l=1e5,s=e.length,m=0,c=()=>{if(this.disposed||i!==this.summaryPassSeq||n!==this.computeToken)return;let h=Math.min(s,m+l);if(a.add(e,m,h),m=h,m<s){this.setBusy("aggregating",m/s),Nr(c);return}let w=a.finish();this.summaryValues=u?{...this.summaryValues,...w}:w,r!==null&&(this.summaryBasis=r),this.busyDepth===0&&this.setBusy(null,null),this.events.emit("summariesChanged",{values:this.summaryValues})};Nr(c)}recomputeSummaries(){this.summaryBasis=null;let e=this.remote();if(e){this.summaryValues=this.summaryDefs.length>0?e.getSummaries():{};return}this.summaryDefs.length>0&&this.rowModel.mode==="client"?this.runSummaryPass(this.lastResult.nodes,this.summaryDefs,!1,null,this.computeToken):this.summaryValues={}}isInfiniteScroll(){return this.infiniteScroll}getRevealedCount(){return this.infiniteScroll?this.viewNodes.length:this.allViewNodes.length}hasMoreRows(){return this.infiniteScroll&&this.viewNodes.length<this.allViewNodes.length}revealMore(){if(!this.infiniteScroll||!this.hasMoreRows())return!1;this.infiniteLimit=Math.min(this.allViewNodes.length,this.infiniteLimit+this.infinitePageSize),this.viewNodes=this.allViewNodes.slice(0,this.infiniteLimit),this.rowIndexCache=null;let e=this.virtual.setRowCount(this.viewNodes.length);return this.events.emit("contentReady",{rows:this.lastResult.nodes,totalCount:this.lastResult.totalCount,visibleCount:this.lastResult.visibleCount}),e&&!this.disposed&&this.events.emit("viewportChanged",{window:this.virtual.getWindow()}),!0}resetReveal(){this.infiniteScroll&&(this.infiniteLimit=this.infinitePageSize)}isPaginated(){return this.paginationEnabled}setPaginationEnabled(e){e!==this.paginationEnabled&&(this.paginationEnabled=e,this.store.resetPage(),this.recompute())}getPage(){return this.store.getState().page}getPageSize(){return this.store.getState().pageSize}getPageCount(){return this.paginationEnabled?Math.max(1,Math.ceil(this.allViewNodes.length/this.store.getState().pageSize)):1}setPage(e){this.store.setPage(Math.min(Math.max(0,e),this.getPageCount()-1))}setPageSize(e){this.store.setPageSize(e)}nextPage(){this.setPage(this.getPage()+1)}previousPage(){this.setPage(this.getPage()-1)}emitPaginationChanged(e){if(!this.paginationEnabled)return;let t=this.store.getState(),u=this.getPageCount();this.lastPagination&&this.lastPagination.page===t.page&&this.lastPagination.pageSize===t.pageSize&&this.lastPagination.pageCount===u||(this.lastPagination={page:t.page,pageSize:t.pageSize,pageCount:u},this.events.emit("paginationChanged",{page:t.page,pageSize:t.pageSize,pageCount:u,fromResultChange:e}))}buildExportModel(e={}){return this.buildExportModelFrom(this.allViewNodes,e)}buildExportModelFrom(e,t={}){return Vl({nodes:e,columns:this.columns,options:{columnIds:this.layoutRuntime().map(u=>u.state.id),...t},isSelected:u=>this.selection.isSelected(u),selectionCount:this.selection.getSelectedCount(),summaries:this.summaryDefs.length>0?{defs:this.summaryDefs,values:this.summaryValues}:void 0})}async exportRows(){let e=this.remote();if(!e)return this.allViewNodes;let t=++this.exportToken,{sort:u,searchText:r,groupBy:n}=this.store.getState(),i=await e.loadAllRows({sort:hr(u,n),filter:this.runningFilter(),searchText:r},{maxRows:this.exportMaxRows,pageSize:this.exportPageSize,isCancelled:()=>t!==this.exportToken||this.disposed,onProgress:(a,l)=>this.setBusy("exporting",l>0?Math.round(a/l*100):null)});return this.setBusy("exporting",null),i}setExportDefaults(e,t){if(typeof e!="string"){this.exportDefaults.excel={...e};return}this.exportDefaults[e]={...t??{}}}setEnterpriseEdition(e){this.enterpriseEdition=e}isEnterpriseEdition(){return this.enterpriseEdition}enterpriseEdition=!1;requireEnterprise(e){if(!this.enterpriseEdition)throw new Error(`[datagrid] ${e} is an Enterprise feature. Import EnterpriseDataGrid from @kanunilabs/datagrid-react-enterprise (CSV export is available in Community).`)}async withExportSignal(e,t){if(e.signal)return this.withBusy("exporting",()=>t(e));let u=new AbortController;this.exportAbort=u;try{return await this.withBusy("exporting",()=>t({...e,signal:u.signal}))}finally{this.exportAbort===u&&(this.exportAbort=null)}}async exportToCsv(e={}){let t={delimiter:Wl(this.locale),...this.exportDefaults.csv,...e};return this.withExportSignal(t,async u=>{let r=this.buildExportModelFrom(await this.exportRows(),u);return{blob:await $l(r,u),fileName:br(u.fileName??this.gridId,"csv"),rowCount:r.rows.length}})}async exportToExcel(e={}){this.requireEnterprise("Excel export");let t={sheetName:this.text.exportSheetName,...this.exportDefaults.excel,...e};return this.withExportSignal(t,async u=>{let r=this.buildExportModelFrom(await this.exportRows(),u);return{blob:await Jl(r,{...u,onProgress:n=>{u.onProgress?.(n),n>=1&&this.setBusy("exporting",null,!1)}}),fileName:br(u.fileName??this.gridId,"xlsx"),rowCount:r.rows.length}})}async exportToPdf(e={}){this.requireEnterprise("PDF export");let t={...this.exportDefaults.pdf,...e};return this.withExportSignal(t,async u=>{let r=this.buildExportModelFrom(await this.exportRows(),u);return this.setBusy("exporting",null,!1),{blob:await hs(r,u),fileName:br(u.fileName??this.gridId,"pdf"),rowCount:r.rows.length}})}getViewState(){let e=this.store.getState();return{version:1,columns:this.columns.getColumnStates(),sort:e.sort,filter:e.filter,columnFilters:e.columnFilters,columnFilterParts:e.columnFilterParts,filterEnabled:e.filterEnabled,searchText:e.searchText,groupBy:e.groupBy,collapsedGroups:e.collapsedGroups,page:e.page,pageSize:e.pageSize}}applyViewState(e){if(e.version!==1){this.debugMode&&console.error("[datagrid] unsupported view state version",e.version);return}this.columns.applyColumnStates(e.columns??[]);let t=new Set(this.columns.getOrder()),u=[],r=i=>t.has(i)?!0:(u.push(i),!1),n=l0(e.groupBy).filter(r);this.remote()?.setGrouping(n.map(i=>({columnId:i})),n),this.store.applyState({sort:(e.sort??[]).filter(i=>r(i.columnId)),filter:aa(e.filter??null,r),columnFilters:Object.fromEntries(Object.entries(e.columnFilters??{}).filter(([i])=>r(i))),columnFilterParts:Object.fromEntries(Object.entries(e.columnFilterParts??Object.fromEntries(Object.entries(e.columnFilters??{}).map(([i,a])=>[i,{[Vt]:a}]))).filter(([i])=>r(i))),filterEnabled:e.filterEnabled??!0,searchText:e.searchText??"",groupBy:n,collapsedGroups:e.collapsedGroups??[],expandedDetails:[],page:e.page??0,pageSize:e.pageSize??this.store.getState().pageSize}),u.length>0&&this.debugMode&&console.warn(`[datagrid] saved view referenced unknown column(s): ${[...new Set(u)].join(", ")} \u2014 dropped.`),this.emitColumnStateChanged(),this.emitFilterChanged(),this.recompute()}setData(e){this.rowModel.setData?.(e),this.bumpDataEpoch();let t=this.keyGetter,u=new Set(e.map(r=>t(r)));this.selection.retainKeys(u)&&this.emitSelectionChanged(),this.events.emit("dataUpdated",{totalCount:e.length}),this.recompute()}moveRow(e,t,u="before"){if(this.rowModel.mode==="remote")return this.debugMode&&console.warn("[datagrid] moveRow is a local operation \u2014 the server owns the order of a remote grid. Persist the move from rowDrag.onReorder and let the grid re-query."),!1;if(this.getSort().length>0)return this.debugMode&&console.warn("[datagrid] moveRow ignored: a sort is active, so the sort decides the row order and the move would be invisible. Clear the sort, or keep an order field and update it from rowDrag.onReorder."),!1;let r=this.rowModel.getSourceRows?.()??[],n=gs(r,e,t,u,this.keyGetter);return n.moved?(this.rowModel.setData?.(n.rows),this.bumpDataEpoch(),this.events.emit("rowsChanged",{added:0,updated:0,removed:0}),this.events.emit("dataUpdated",{totalCount:n.rows.length}),this.recompute(),!0):!1}applyTransaction(e){let t=this.remote();if(t){let h=e.update??[];if(!((e.add?.length??0)>0||(e.remove?.length??0)>0)&&h.length>0&&this.remoteUpdateKeepsPlacement(h)){let w=t.patchRows(h);this.invalidateResultCaches(),this.events.emit("rowsChanged",{added:0,updated:w,removed:0}),this.events.emit("dataUpdated",{totalCount:t.getTotalCount()}),this.recompute(!0);return}t.invalidate(),this.recompute(!0),this.events.emit("rowsChanged",{added:0,updated:0,removed:0});return}let u=this.rowModel.getSourceRows?.()??[],r=this.keyGetter,n=new Set;if(e.update)for(let h of e.update)n.add(r(h));let i=new Map;if(n.size>0)for(let h=0;h<u.length;h++){let w=r(u[h]);n.has(w)&&i.set(w,h)}let a=u.slice(),l=0,s=0,m=[];if(e.update)for(let h of e.update){let w=i.get(r(h));w!==void 0&&(a[w]=h,m.push(w),l++)}if(e.remove&&e.remove.length>0){let h=new Set(e.remove.map(g=>Ti(g)?g:r(g))),w=a.filter(g=>!h.has(r(g)));s=a.length-w.length,a=w}let c=e.add?.length??0;if(c>0){let h=e.addBeforeKey===void 0?-1:a.findIndex(g=>r(g)===e.addBeforeKey),w=e.add;h>=0?a=a.slice(0,h).concat(w,a.slice(h)):e.addPosition==="first"?a=w.concat(a):a=a.concat(w)}if(!(s>0||c>0)&&this.rowModel.patchData?this.rowModel.patchData(a,m,this.columns):this.rowModel.setData?.(a),this.bumpDataEpoch(),s>0){let h=new Set(a.map(w=>r(w)));this.selection.retainKeys(h)&&this.emitSelectionChanged()}this.events.emit("rowsChanged",{added:c,updated:l,removed:s}),this.events.emit("dataUpdated",{totalCount:a.length}),this.recompute(!0)}applyTransactionAsync(e,t){this.disposed||(this.asyncQueue.push(e),t&&this.asyncCallbacks.push(t),this.asyncTimer===null&&(this.asyncTimer=setTimeout(()=>{this.asyncTimer=null,this.flushAsyncTransactions()},this.asyncTransactionWait)))}flushAsyncTransactions(){if(this.asyncTimer!==null&&(clearTimeout(this.asyncTimer),this.asyncTimer=null),this.asyncQueue.length===0)return;let e=this.asyncQueue,t=this.asyncCallbacks;this.asyncQueue=[],this.asyncCallbacks=[];let u=Io(e,this.keyGetter);Lo(u)||this.applyTransaction(u),this.events.emit("asyncTransactionsFlushed",{count:e.length});for(let r of t)r()}getPendingAsyncTransactionCount(){return this.asyncQueue.length}remoteUpdateKeepsPlacement(e){let{sort:t,searchText:u,groupBy:r}=this.store.getState(),n=kr(this.columns,{sort:hr(t,r),filter:this.runningFilter(),searchText:u});if(n.length===0)return!0;for(let i of e){let a=this.getRowByKey(this.keyGetter(i));if(!a)return!1;for(let l of n){let s=this.columns.getCellValue(a,l),m=this.columns.getCellValue(i,l);if(!Object.is(s,m))return!1}}return!0}getRowKeyField(){return this.rowKeyField}getRowKey(e){return this.keyGetter(e)}invalidate(){this.rowModel.invalidate?.(),this.bumpDataEpoch(),this.recompute()}isRemote(){return this.rowModel.mode==="remote"}refresh(){return this.recompute()}flashCells(e={}){this.events.emit("cellsFlashed",{rowKeys:[...e.rowKeys??[]],columnIds:[...e.columnIds??[]],duration:e.duration??700})}refreshCells(){this.cellRevision++,this.events.emit("cellsRefreshed",{revision:this.cellRevision})}isDisposed(){return this.disposed}dispose(){this.disposed||(this.events.emit("gridPreDestroyed",{state:this.getViewState()}),this.disposed=!0,this.unsubscribeStore(),this.scrollEndTimer!==null&&(clearTimeout(this.scrollEndTimer),this.scrollEndTimer=null),this.asyncTimer!==null&&(clearTimeout(this.asyncTimer),this.asyncTimer=null),this.asyncQueue=[],this.asyncCallbacks=[],this.rowModel.dispose?.(),this.events.clear(),this.lastResult={nodes:[],visibleCount:0,totalCount:0},this.viewNodes=[],this.allViewNodes=[],this.summaryValues={},this.rowIndexCache=null,this.invalidateResultCaches())}serverSummaryRequests(){if(this.summaryDefs.length===0)return;let e=[];for(let t of this.summaryDefs)t.type!=="custom"&&e.push({columnId:t.columnId,type:t.type});return e.length>0?e:void 0}neededRange(){if(this.paginationEnabled){let{page:u,pageSize:r}=this.store.getState(),n=u*r;return{start:n,end:n+r}}let e=this.virtual.getWindow().rows,t=Math.max(1,e.end-e.start);return{start:Math.max(0,e.start-t),end:e.end+t}}getBusy(){return this.busy}foregroundDepth=0;setBusy(e,t,u=!0){let r=e!==null,n=r&&u,i=r&&this.foregroundDepth===0;this.busy.busy===r&&this.busy.phase===e&&this.busy.progress===t&&this.busy.cancellable===n&&this.busy.background===i||(this.busy={busy:r,phase:e,progress:t,cancellable:n,background:i},this.events.emit("busyChanged",this.busy))}async withBusy(e,t,u=!1){this.busyDepth++,u||this.foregroundDepth++,this.setBusy(e,null);try{return await t()}finally{this.busyDepth--,u||this.foregroundDepth--,this.busyDepth===0&&this.setBusy(null,null)}}cancel(){this.disposed||(this.computeToken++,this.exportToken++,this.exportAbort?.abort(),this.exportAbort=null,this.rowModel instanceof Eu&&this.rowModel.cancel())}async recompute(e=!1){if(!this.disposed)return this.withBusy("computing",()=>this.recomputeInner(),e)}async recomputeInner(){let e=++this.computeToken,{sort:t,searchText:u,groupBy:r}=this.store.getState(),n=this.runningFilter(),i=hr(t,r),a,l=performance.now();try{a=await this.rowModel.getRows(this.columns,{sort:i,filter:n,searchText:u,externalFilter:this.externalFilter,range:this.neededRange(),summaries:this.serverSummaryRequests()})}catch(y){!(y instanceof Ke)&&!(y instanceof bu)&&(this.events.emit("dataError",{error:y}),this.debugMode&&console.error("[datagrid] row model failed",y));return}if(e!==this.computeToken||this.disposed)return;let s=Math.round(performance.now()-l),m=performance.now(),c=this.remote();if(c)this.summaryValues=this.summaryDefs.length>0?c.getSummaries():{},this.summaryBasis=null;else if(this.summaryDefs.length>0){let y=this.currentSummaryBasis(n,u),F=this.summaryBasis===y,S=F?this.summaryDefs.filter(T=>T.type==="custom"&&T.dependsOnOrder!==!1):this.summaryDefs;S.length>0?this.runSummaryPass(a.nodes,S,F,y,e):this.summaryBasis=y}else this.summaryValues={},this.summaryBasis=null;let h=Math.round(performance.now()-m);this.lastResult=a,this.invalidateResultCaches();let w=performance.now();this.projectView();let g=this.rowModel.getLastTimings?.();this.lastComputeTimings={modelMs:s,summaryMs:h,projectViewMs:Math.round(performance.now()-w),...g}}getComputeTimings(){return this.lastComputeTimings}projectView(){if(this.disposed)return;let e=this.store.getState(),t=e.groupBy,u=this.focus.getIndices(this.focusContext())?.rowIndex,r=this.treeView();r&&t.length>0&&!this.warnedTreeGrouping&&(this.warnedTreeGrouping=!0,this.debugMode&&console.warn("[datagrid] `tree` and grouping are mutually exclusive \u2014 grouping is ignored."));let n=r??(t.length>0&&this.rowModel.mode==="client"?To(this.ensureGroupTree(t),{collapsedKeys:this.store.collapsedSet(),collapsedByDefault:this.collapsedByDefault}).nodes:this.lastResult.nodes),i=this.masterDetail?yl(n,{expandedKeys:this.store.expandedSet(),expandedByDefault:this.masterDetail.expandedByDefault,height:this.masterDetail.height}):n,a=this.editForm?El(i,{rowKey:this.editForm.rowKey,height:this.editForm.height,atTop:this.editForm.atTop}):i;if(this.allViewNodes=a,this.infiniteScroll)this.infiniteLimit=Math.min(this.infiniteLimit,Math.max(this.infinitePageSize,a.length)),this.viewNodes=a.slice(0,this.infiniteLimit);else if(this.paginationEnabled){let{pageSize:s}=e,m=this.store.clampPage(Math.ceil(a.length/s))*s;this.viewNodes=a.slice(m,m+s)}else this.viewNodes=a;this.rowIndexCache=null,this.rebuildRowHeights();let l=this.virtual.setRowCount(this.viewNodes.length);this.focus.reconcile(this.focusContext(),u)&&this.emitFocusChanged(),this.events.emit("contentReady",{rows:this.lastResult.nodes,totalCount:this.lastResult.totalCount,visibleCount:this.lastResult.visibleCount}),this.emitPaginationChanged(!0),!this.firstDataRenderedSent&&this.viewNodes.length>0&&(this.firstDataRenderedSent=!0,this.events.emit("firstDataRendered",{rowCount:this.viewNodes.length})),this.emitIfWindowChanged(l)}treeView(){if(!this.treeData||!this.treeParent||this.rowModel.mode!=="client")return null;let e=this.rowModel.getSourceRows?.();return e?((!this.treeIndex||this.treeIndexEpoch!==this.dataEpoch)&&(this.treeIndex=e0(e,this.keyGetter,this.treeParent),this.treeIndexEpoch=this.dataEpoch),t0(this.dataNodes(),{index:this.treeIndex,sourceRows:e,isExpanded:t=>this.isTreeRowExpanded(t)}).nodes):null}isTreeRowExpanded(e){return this.treeExpandedByDefault!==this.treeToggled.has(e)}expandTreeRow(e){this.setTreeRowExpanded(e,!0)}collapseTreeRow(e){this.setTreeRowExpanded(e,!1)}toggleTreeRow(e){this.setTreeRowExpanded(e,!this.isTreeRowExpanded(e))}setTreeRowExpanded(e,t){this.treeData&&this.isTreeRowExpanded(e)!==t&&(t===this.treeExpandedByDefault?this.treeToggled.delete(e):this.treeToggled.add(e),this.reproject())}expandAllTreeRows(){this.treeData&&(this.treeExpandedByDefault=!0,this.treeToggled.clear(),this.reproject())}collapseAllTreeRows(){this.treeData&&(this.treeExpandedByDefault=!1,this.treeToggled.clear(),this.reproject())}reproject(){if(!this.disposed){this.busyDepth++,this.setBusy("projecting",null);try{this.projectView()}finally{this.busyDepth--,this.busyDepth===0&&this.setBusy(null,null)}}}emitSortChanged(){this.resetReveal(),this.events.emit("sortChanged",{sort:this.store.getState().sort})}layoutRuntime(){let e=this.columns.runtime();if(this.showGroupedColumns)return e;let t=this.store.getState().groupBy;return t.length===0?e:e.filter(u=>!t.includes(u.state.id))}rebuildRowHeights(){let e=this.measuredRowHeights,t=this.masterDetail!==null||this.editForm!==null;if(!this.getRowHeightFn&&!t&&e.size===0)return this.virtual.setRowHeights(null);let u=this.virtual.getRowHeight(),r=this.viewNodes,n=new Map;for(let i=0;i<r.length;i++){let a=r[i],l;a.kind==="detail"||a.kind==="editform"?l=a.height:l=e.get(a.key)??this.getRowHeightFn?.(a,i),l!==void 0&&l!==u&&n.set(i,Math.max(1,l))}return this.virtual.setRowHeights(n)}setMeasuredRowHeights(e){let t=e.size!==this.measuredRowHeights.size;if(!t){for(let[r,n]of e)if(this.measuredRowHeights.get(r)!==n){t=!0;break}}if(!t)return!1;this.measuredRowHeights=new Map(e);let u=this.rebuildRowHeights();return this.emitIfWindowChanged(u),u}getMeasuredRowHeights(){return this.measuredRowHeights}clearMeasuredRowHeights(){if(this.measuredRowHeights.size===0)return!1;this.measuredRowHeights=new Map;let e=this.rebuildRowHeights();return this.emitIfWindowChanged(e),e}getRowHeightAt(e){return this.virtual.getRowHeightAt(e)}getRowOffset(e){return this.virtual.getRowOffset(e)}getCellSpans(e){let t=this.columns.getDef(e)?.spanRows;if(!t)return i0;this.spanCacheResult!==this.lastResult&&(this.spanCache.clear(),this.spanCacheResult=this.lastResult);let u=this.spanCache.get(e);if(u)return u;let r=Xo(this.lastResult.nodes,n=>this.columns.getCellValue(n,e),typeof t=="function"?t:void 0);return this.spanCache.set(e,r),r}hasCellSpans(){return this.columns.runtime().some(e=>e.def.spanRows)}emitColumnStateChanged(){let e=this.virtual.setColumnLayout(Bi(this.layoutRuntime()));this.events.emit("columnStateChanged",{columns:this.columns.getColumnStates()}),this.emitIfWindowChanged(e)}emitIfWindowChanged(e){return e&&!this.disposed&&(this.events.emit("viewportChanged",{window:this.virtual.getWindow()}),this.maybeRevealMore()),e}maybeRevealMore(){if(!this.infiniteScroll||this.disposed)return;let e=this.virtual.getWindow().rows,t=Math.max(1,e.end-e.start);e.end+t<this.infiniteLimit||this.revealMore()}assertColumn(e){let t=!!this.columns.getState(e);return!t&&this.debugMode&&console.error(`[datagrid] unknown column id "${e}".`),t}},Hr={compact:24,normal:28,comfortable:36},h0=["quartz","balham","material","alpine","kanuni","kanuni-midnight"];function Kr(e){return e!==void 0&&h0.includes(e)}var Wr={quartz:{compact:26,normal:36,comfortable:44},balham:{compact:20,normal:25,comfortable:32},material:{compact:32,normal:40,comfortable:52},alpine:{compact:26,normal:34,comfortable:42},kanuni:{compact:24,normal:32,comfortable:40},"kanuni-midnight":{compact:24,normal:32,comfortable:40}};function ku(e,t,u){return Kr(e)?Wr[e][t??"normal"]:t?Hr[t]:u}function Ur(e){return{sum:e.summarySum,avg:e.summaryAvg,min:e.summaryMin,max:e.summaryMax,count:e.summaryCount,countDistinct:e.summaryDistinct,custom:e.summaryCustom}}var p0=Ur(Ht("en"));function $r(e,t=p0){return e.label??t[e.type]}var m0=new Set(["sum","avg","min","max"]);function qr(e,t,u){if(e.valueFormatter)return e.valueFormatter(t??null);if(t==null)return"\u2014";if(!m0.has(e.type))return t.toLocaleString();if(u?.dataType==="date"){let r=new Date(t);return u.valueFormatter?u.valueFormatter(r,{}):r.toLocaleDateString()}return u?.valueFormatter?u.valueFormatter(t,{}):String(Math.round(t*100)/100)}function la(e){switch(e){case"number":return["sum","avg","min","max","count","countDistinct"];case"date":return["min","max","count","countDistinct"];default:return["count","countDistinct"]}}var g0=[">=","<=","<>",">","<","="];function sa(e,t,u){let r=t.trim();if(r==="")return null;for(let n of g0)if(r.startsWith(n)){let i=r.slice(n.length).trim();if(i==="")return null;let a=u==="number"?Number(i):Number.NaN;return{columnId:e,operator:n,value:Number.isNaN(a)?i:a}}if(u==="number"){let n=Number(r);return Number.isNaN(n)?{columnId:e,operator:"contains",value:r}:{columnId:e,operator:"=",value:n}}if(u==="boolean"){let n=r.toLowerCase();return n==="true"||n==="false"?{columnId:e,operator:"=",value:n==="true"}:{columnId:e,operator:"contains",value:r}}return u==="date"?{columnId:e,operator:"contains",value:r}:{columnId:e,operator:"contains",value:r}}function da(e,t){if(e.scrollHeight<1e6)return null;let u=e.scrollTop;e.scrollTop=1e8;let r=e.scrollTop;if(e.scrollTop=u,r<=0)return null;let n=t.getVirtualWindow().rows.totalHeight-e.clientHeight;return r>=n-4?null:(t.setMaxScrollOffset(r),r)}function Ru(e,t){let{controller:u,maxGroupLevels:r,t:n}=t,i=e.columnId,a=u.getColumnModel().getDef(i),l=u.getSort(),s=l.find(N=>N.columnId===i),m=u.getGroupLevels(),c=m.includes(i),h=a?.sortable!==!1,w=u.getColumnStates().find(N=>N.id===i)?.pinned??null,g=a?.groupable!==!1,y=[{id:"sort-asc",label:n.sortAsc,disabled:!h||s?.direction==="asc",onSelect:()=>u.setSort([{columnId:i,direction:"asc"}])},{id:"sort-desc",label:n.sortDesc,disabled:!h||s?.direction==="desc",onSelect:()=>u.setSort([{columnId:i,direction:"desc"}])},{id:"sort-clear",label:n.clearSort,disabled:!s,onSelect:()=>u.setSort(l.filter(N=>N.columnId!==i))},{id:"sep-1",separator:!0},{id:"group",label:c?n.ungroupColumn:n.groupByColumn,disabled:!g,onSelect:()=>{c?u.groupBy(m.filter(N=>N!==i)):u.groupBy([...m,i].slice(-r))}},{id:"group-panel",label:t.groupPanelVisible?n.hideGroupPanel:n.showGroupPanel,onSelect:t.onToggleGroupPanel},{id:"footer",label:t.footerVisible?n.hideFooter:n.showFooter,onSelect:t.onToggleFooter},{id:"sep-2",separator:!0},{id:"hide-column",label:n.hideColumn,disabled:u.getColumnStates().filter(N=>N.visible).length<=1,onSelect:()=>u.setColumnVisible(i,!1)},{id:"field-chooser",label:n.fieldChooser,onSelect:t.onOpenFieldChooser},{id:"sep-3",separator:!0},{id:"best-fit",label:n.bestFit,disabled:a?.resizable===!1,onSelect:()=>t.onBestFit(i)},{id:"best-fit-all",label:n.bestFitAll,onSelect:t.onBestFitAll}],F=u.getColumnStates().filter(N=>N.visible&&N.pinned===w).map(N=>N.id),S=F.indexOf(i),T=a?.reorderable!==!1&&S>=0;return y.push({id:"sep-4",separator:!0},{id:"move-left",label:n.moveLeft,disabled:!T||S<=0,onSelect:()=>u.moveColumn(i,F[S-1])},{id:"move-right",label:n.moveRight,disabled:!T||S<0||S>=F.length-1,onSelect:()=>u.moveColumn(i,F[S+2])},{id:"fixed-position",label:n.fixedPosition,items:[{id:"pin-left",label:n.pinLeft,disabled:w==="left",onSelect:()=>u.setColumnPinned(i,"left")},{id:"pin-right",label:n.pinRight,disabled:w==="right",onSelect:()=>u.setColumnPinned(i,"right")},{id:"pin-sticky",label:n.pinSticky,disabled:w==="sticky",onSelect:()=>u.setColumnPinned(i,"sticky")}]},{id:"unpin",label:n.unpin,disabled:w===null,onSelect:()=>u.setColumnPinned(i,null)}),y}async function _r(e,t){try{let u=t==="csv"?await e.exportToCsv():t==="excel"?await e.exportToExcel():t==="excel-selected"?await e.exportToExcel({selectedOnly:!0}):await e.exportToPdf();return ea(u.blob,u.fileName),{completed:!0}}catch(u){return u instanceof lt?{completed:!1}:{completed:!1,error:u instanceof Error?u.message:String(u)}}}var ca=null;function f0(){return typeof document>"u"?null:(ca??=document.createElement("canvas"),ca.getContext("2d"))}function ha(e){let t=getComputedStyle(e);return`${t.fontStyle} ${t.fontWeight} ${t.fontSize} ${t.fontFamily}`}function C0(e){for(let t=e.firstElementChild;t;t=t.nextElementSibling)if(t.tagName!=="MARK")return!0;return!1}function w0(e){let t=e.map(r=>[r.style.width,r.style.minWidth,r.style.maxWidth]);for(let r of e)r.style.width="max-content",r.style.minWidth="0",r.style.maxWidth="none";let u=0;for(let r of e){let n=Math.ceil(r.getBoundingClientRect().width);n>u&&(u=n)}return e.forEach((r,n)=>{[r.style.width,r.style.minWidth,r.style.maxWidth]=t[n]}),u}function Nu(e,t){let u=f0();if(!u)return null;let r=typeof CSS<"u"&&CSS.escape?CSS.escape(t):t.replace(/"/g,'\\"'),n=e.querySelector(`.kanuni-datagrid-header-cell[data-column-id="${r}"]`),i=e.querySelectorAll(`.kanuni-datagrid-cell[data-column-id="${r}"]`);if(!n&&i.length===0)return null;let a=0;if(n){let l=n.querySelector(".kanuni-datagrid-header-label")??n;u.font=ha(l),a=u.measureText(l.textContent??"").width+44}if(i.length>0){u.font=ha(i[0]);let l=[];for(let s=0;s<i.length;s++){if(C0(i[s])){l.push(i[s]);continue}let m=i[s].textContent??"";if(m==="")continue;let c=u.measureText(m).width+20;c>a&&(a=c)}l.length>0&&(a=Math.max(a,w0(l)))}return a===0?null:Math.round(Math.min(640,Math.max(48,a)))}var Et=60,Wt=36,At=28,Ut="application/x-kanuni-row",Kt=new Map,jr=new Set,Zr=5e3,st=0,y0=["columnStateChanged","sortChanged"],E0=["columnStateChanged"],A0=["contentReady","viewportChanged","filterChanged","selectionChanged","focusChanged","summariesChanged","cellsRefreshed"],k=(e,t="div")=>{let u=document.createElement(t);return u.className=e,u},$t="http://www.w3.org/2000/svg";function b0(e,t){let u=n=>{t&&console.warn(`[datagrid] ${n} is an Enterprise feature \u2014 use createEnterpriseGrid from @kanunilabs/datagrid-enterprise to use it.`)},r={...e};if(r.dataSource!=null&&!Array.isArray(r.dataSource))throw new Error("[datagrid] a server-side DataSource is an Enterprise feature. Pass an array to createGrid, or use createEnterpriseGrid from @kanunilabs/datagrid-enterprise.");if(r.columns?.some(n=>n.spanRows)&&(u("cell span/merge (spanRows) is"),r={...r,columns:r.columns.map(n=>n.spanRows?{...n,spanRows:void 0}:n)}),r.tree&&(u("tree data is"),delete r.tree),r.masterDetail&&(u("master-detail is"),delete r.masterDetail),r.grouping){let{groupBy:n,groupSummaries:i}=r.grouping,a=n==null?[]:typeof n=="string"?[n]:n;(a.length>1||i)&&(u("multi-level grouping and group summaries are"),r={...r,grouping:{...r.grouping,groupBy:a.slice(0,1),groupSummaries:!1}})}return r}var v0={columnResize:"use `resizable`",columnReorder:"use `reorderable`",groupPanel:"use `grouping: { panel: true }`",autoColumns:"",loadingOverlay:"",onReady:"the controller is returned directly \u2014 use `grid.controller`",className:"style the host element you pass in",style:"style the host element you pass in",toolbarItemsBefore:"",renderRow:"",announcements:"",filterPanelLabels:"",filterIconMode:"",autoSizeStrategy:"",footerMenu:"",showRowCount:"",onOpenFilterBuilder:"",renderOverlay:"",cellMenu:""},Tu=new Set;function x0(e){for(let t of Object.keys(e)){let u=v0[t];u===void 0||u===""||Tu.has(t)||(Tu.add(t),console.warn(`[datagrid] \`${t}\` is a React-only option \u2014 ${u}.`))}}function D0(){let e=document.createElementNS("http://www.w3.org/2000/svg","svg");e.setAttribute("width","14"),e.setAttribute("height","14"),e.setAttribute("viewBox","0 0 16 16"),e.setAttribute("aria-hidden","true"),e.setAttribute("focusable","false");let t=document.createElementNS("http://www.w3.org/2000/svg","path");return t.setAttribute("d","M8 1v8m0 0L5 6m3 3 3-3M2 11v2a2 2 0 0 0 2 2h8a2 2 0 0 0 2-2v-2"),t.setAttribute("fill","none"),t.setAttribute("stroke","currentColor"),t.setAttribute("stroke-width","1.5"),t.setAttribute("stroke-linecap","round"),t.setAttribute("stroke-linejoin","round"),e.appendChild(t),e}function F0(){let e=document.createElementNS($t,"svg");e.setAttribute("width","11"),e.setAttribute("height","11"),e.setAttribute("viewBox","0 0 16 16"),e.setAttribute("aria-hidden","true"),e.setAttribute("focusable","false");let t=document.createElementNS($t,"path");return t.setAttribute("d","M1.5 2.5h13L9.5 8.6v4.3l-3 1.6V8.6L1.5 2.5Z"),t.setAttribute("fill","currentColor"),t.setAttribute("stroke","currentColor"),t.setAttribute("stroke-width","0.6"),t.setAttribute("stroke-linejoin","round"),e.appendChild(t),e}function S0(e){let t=document.createElementNS($t,"svg");t.setAttribute("width","14"),t.setAttribute("height","14"),t.setAttribute("viewBox","0 0 16 16"),t.setAttribute("aria-hidden","true"),t.setAttribute("focusable","false");let u=document.createElementNS($t,"rect");u.setAttribute("x","2"),u.setAttribute("y","2"),u.setAttribute("width","12"),u.setAttribute("height","12"),u.setAttribute("rx","2"),u.setAttribute("fill","none"),u.setAttribute("stroke","currentColor"),u.setAttribute("stroke-width","1.3"),t.appendChild(u);let r=n=>{let i=document.createElementNS($t,"path");i.setAttribute("d",n),i.setAttribute("fill","none"),i.setAttribute("stroke","currentColor"),i.setAttribute("stroke-width","1.3"),i.setAttribute("stroke-linecap","round"),t.appendChild(i)};return r("M5 8h6"),e&&r("M8 5v6"),t}function B0(e,t){let u=e??(t==="number"?"right":"left");return u==="right"?"kanuni-datagrid-cell kanuni-datagrid-cell--number":u==="center"?"kanuni-datagrid-cell kanuni-datagrid-cell--center":"kanuni-datagrid-cell"}function Yr(e){let t="kanuni-datagrid-root";return e.dark&&(t+=" kanuni-datagrid-dark"),e.theme&&(t+=` kanuni-datagrid-theme-${e.theme}`),e.palette&&(t+=` kanuni-datagrid-palette-${e.palette}`),e.density&&(t+=` kanuni-datagrid-density-${e.density}`),t}function pa(e,t){let{theme:u,palette:r,density:n,dark:i,striped:a=!0,rowNumbers:l=!1,locale:s="en",footer:m=!1,footerMenu:c=!0,footerPosition:h="bottom",notes:w,pinnedTopRows:g=[],pinnedBottomRows:y=[],resizable:F=!0,reorderable:S=!0,filterRow:T=!1,headerFilter:N=!1,filterIconMode:V="hover",filterPanel:K=!1,onOpenFilterBuilder:Z,focusedRow:W=!1,focusedRowKey:J,onFocusedRowChanged:fe,onRowClick:Re,onRowActivate:bt,autoSizeStrategy:O="none",renderRow:z,announcements:Q=!0,filterPanelLabels:j,showRowCount:xe=!1,toolbarColumnChooser:qe=!1,cellMenu:be=!0,rowMenu:Ce,headerMenu:le,rowDrag:ne,alignedGrids:ue,printLayout:_e,renderCellContent:Mu,getCellClassName:Iu,onCellPointerDown:Jr,onCellPointerEnter:qt,onCellDoubleClick:Qr,renderDetail:Xr,renderEditForm:ma,enterpriseEdition:Le=!1,stateStoring:en,tooltip:je=!0,renderOverlay:Lu,filterDebounce:ga,toolbar:tn=!1,highlightSearch:fa=!0,sortable:Ca=!0,toolbarItemsAfter:wa,toolbarItemsBefore:ya,toolbarExcel:Ea=!1,toolbarPdf:Aa=!1,searchDebounce:ba=200,...va}=t;x0(t),xe&&!Tu.has("showRowCount:deprecated")&&(Tu.add("showRowCount:deprecated"),console.warn("[datagrid] `showRowCount` was retired on 2026-08-15 and does nothing in either renderer. The row count lives in the status bar (Enterprise) or the pager."));let M=Ht(s),{emptyText:xa=M.noData,loadingText:Da=M.busy,loadingOverlay:Pu=!0,...we}=va,un=typeof Pu=="number"?Pu:300,Gu=Ur(M);if((!we.columns||we.columns.length===0)&&t.autoColumns!==!1){let o=Array.isArray(we.dataSource)?we.dataSource:[];we.columns=Li(o,typeof t.autoColumns=="object"?t.autoColumns:{})}we.rowHeight===void 0&&(we.rowHeight=ku(u,n,28));let Fa=Le?we:b0(we,!!t.debugMode),Ye=Le?w:void 0;!Le&&w&&t.debugMode&&console.warn("[datagrid] cell notes are an Enterprise feature \u2014 use createEnterpriseGrid from @kanunilabs/datagrid-enterprise to show them.");let A=new oa(Fa);A.setEnterpriseEdition(Le),J!=null&&A.focusRow(J);let $=k(Yr(t));$.style.height="100%",$.setAttribute("role","grid"),$.setAttribute("data-grid-id",t.gridId),u&&$.setAttribute("data-theme",u),$.style.setProperty("--dg-row-height",`${A.getRowHeight()}px`);let U=k("kanuni-datagrid-scroller"),se=k("kanuni-datagrid-canvas"),ve=k("kanuni-datagrid-header");ve.setAttribute("role","row");let de=k("kanuni-datagrid-rows");de.style.position="relative";let X=k("kanuni-datagrid-viewport");de.appendChild(X);let vt=k("kanuni-datagrid-pinned-rows kanuni-datagrid-pinned-rows--top"),rn=k("kanuni-datagrid-pinned-rows kanuni-datagrid-pinned-rows--bottom"),Ne=m,Ze=h==="top",ae=k(`kanuni-datagrid-footer-row kanuni-datagrid-footer-row--${Ze?"top":"bottom"}`);if(ae.setAttribute("role","row"),ae.setAttribute("aria-label",M.columnTotalsAria),c){let o=d=>{let p=d.target?.closest(".kanuni-datagrid-footer-cell")?.getAttribute("data-column-id");p&&(d.preventDefault(),Ja(p,{left:d.clientX,top:d.clientY}))};ae.addEventListener("click",o),ae.addEventListener("contextmenu",o)}let _t=k("kanuni-datagrid-bands-host");_t.style.display="contents";let dt=k("kanuni-datagrid-filter-row");dt.setAttribute("role","row"),se.append(_t,ve),T&&se.append(dt);let Ou=T?2:1;ae.style.setProperty("--dg-pinned-gap",String(Ze?Ou:0)),vt.style.setProperty("--dg-pinned-gap",String(Ou+(Ne&&Ze?1:0))),Ne&&Ze&&se.append(ae),g.length>0&&se.append(vt),se.append(de),y.length>0&&se.append(rn),Ne&&!Ze&&se.append(ae),U.appendChild(se);let Je=k("kanuni-datagrid-toolbar"),ct=k("kanuni-datagrid-pager");ct.setAttribute("role","navigation"),ct.setAttribute("aria-label","Pagination");let Qe=k("kanuni-datagrid-filter-panel"),Xe=!!we.grouping?.panel,ce=k("kanuni-datagrid-group-panel");tn&&$.appendChild(Je),Xe&&$.appendChild(ce),$.appendChild(U),K&&$.appendChild(Qe);let nn=we.pagination;nn&&nn.enabled!==!1&&$.appendChild(ct);let xt=k("kanuni-datagrid-loading-overlay"),an=k("kanuni-datagrid-loading-card"),on=k("kanuni-datagrid-loading-spinner","span");on.setAttribute("aria-hidden","true");let ln=k("kanuni-datagrid-loading-label","span");ln.textContent=Da,an.append(on,ln),xt.appendChild(an),xt.style.display="none";let Dt=k("kanuni-datagrid-sr-only","div");Dt.setAttribute("role","status"),Dt.setAttribute("aria-live","polite"),Dt.setAttribute("aria-atomic","true");let jt=k("kanuni-datagrid-empty");jt.textContent=xa,jt.style.display="none",$.append(xt,jt),Q&&$.appendChild(Dt),e.appendChild($);let Vu=we.selection,Yt=(Vu?.mode??"none")!=="none"&&(Vu?.checkboxColumn??!1),Sa=(Vu?.rowClick??(Yt?"toggle":"replace"))==="toggle",Zt=A.hasMasterDetail()&&!!Xr,zu=l?Et:0,sn=zu+(Zt?At:0),De=(l?Et:0)+(Zt?At:0)+(Yt?Wt:0);A.setLeadWidth(De);let Jt=!!ne?.enabled,Ft=ne?.group??null,dn=ne?.allowReordering??!0,cn=ne?.allowDropInsert??Ft!==null,Te=null,Qt=null,Xt=!1,et=null,Pe=null;function ht(o){et=o;for(let d of X.querySelectorAll(".kanuni-datagrid-row")){let f=d.getAttribute("data-row-key"),p=o!==null&&f===String(o.key);d.classList.toggle("kanuni-datagrid-row--drop-before",p&&o.side==="before"),d.classList.toggle("kanuni-datagrid-row--drop-after",p&&o.side==="after")}}let hn=(o,d)=>{let f=d.getBoundingClientRect();return o.clientY<f.top+f.height/2?"before":"after"},pn=o=>o.dataTransfer?.types.includes(Ut)?Te!==null?dn:cn&&Ft!==null:!1;function mn(o,d,f){let p=null;try{let E=o.dataTransfer?.getData(Ut);p=E?JSON.parse(E):null}catch{p=null}if(p){if(p.gridId===A.gridId){if(!dn)return;if(ne?.onReorder){ne.onReorder({dragKey:p.rowKey,targetKey:d,position:f,row:A.getRowByKey(p.rowKey)});return}A.moveRow(p.rowKey,d,f);return}!cn||Ft===null||p.group!==Ft||ne?.onAdd?.({row:p.row,rowKey:p.rowKey,otherGridId:p.gridId,targetKey:d,position:f})}}let Ba=o=>{let d=Oe(o);if(!d||d.node.kind!=="data"||!o.dataTransfer)return;Te=d.node.key,Qt=d.node.key,Xt=!1;let f={gridId:A.gridId,group:Ft,rowKey:d.node.key,row:d.node.data};o.dataTransfer.setData(Ut,JSON.stringify(f)),o.dataTransfer.setData("text/plain",String(d.node.key)),o.dataTransfer.effectAllowed="move",A.notifyRowDrag("enter",{rowKey:d.node.key})},ka=o=>{if(!pn(o))return;o.preventDefault(),o.dataTransfer&&(o.dataTransfer.dropEffect="move");let d=Oe(o);if(!d||d.node.kind!=="data")return;if(Te===d.node.key){Pe=null,ht(null);return}let f=o.target.closest(".kanuni-datagrid-row"),p=hn(o,f),E=et?.key!==d.node.key||et.side!==p;Pe={key:d.node.key,side:p},ht({key:d.node.key,side:p}),E&&Te!==null&&A.notifyRowDrag("move",{rowKey:Te,overKey:d.node.key,position:p})},Ra=o=>{if(!pn(o)){ht(null);return}o.preventDefault();let d=Oe(o);if(Xt=!0,d&&d.node.kind==="data"){let f=o.target.closest(".kanuni-datagrid-row"),p=hn(o,f);Pe={key:d.node.key,side:p},mn(o,d.node.key,p)}else Pe=null,mn(o,null,"after");Te=null,ht(null)},Na=()=>{Qt!==null&&A.notifyRowDragEnd({rowKey:Qt,dropped:Xt,overKey:Pe?.key??null,position:Pe?.side??null}),Xt=!1,Qt=null,Te=null,Pe=null,ht(null)},Ta=o=>{let d=o.relatedTarget;d&&de.contains(d)||Te!==null&&(Pe=null,ht(null),A.notifyRowDrag("leave",{rowKey:Te}))},St=_e===void 0||_e===!1?null:(()=>{let o=_e===!0?{}:_e;return{always:o.always??!1,maxRows:o.maxRows??Zr}})(),Bt=!1;function Hu(o){Bt!==o&&(Bt=o,$.classList.toggle("kanuni-datagrid-print",o),o?(st++,document.documentElement.classList.add("kanuni-datagrid-printing")):(st--,st<=0&&(st=0,document.documentElement.classList.remove("kanuni-datagrid-printing"))),qu())}let gn=null;if(St&&!St.always){let o=()=>{let f=A.getRows().length;if(f>St.maxRows){A.isDebugMode()&&console.warn(`[datagrid] print layout skipped: ${f} rows exceeds maxRows (${St.maxRows}). Printing the visible rows instead \u2014 use exportPdf() for the whole result.`);return}Hu(!0)},d=()=>Hu(!1);window.addEventListener("beforeprint",o),window.addEventListener("afterprint",d),gn=()=>{window.removeEventListener("beforeprint",o),window.removeEventListener("afterprint",d)}}let tt=0,Fe=[],he=0,Ku=0;function Wu(){let o=A.getColumnLayout(),d=A.getVirtualWindow().columns,f=[],p=(b,v,x,B)=>{let C=b.def;f.push({def:C,id:b.state.id,width:b.state.width,pinned:v,inset:x,className:B0(C.align,C.dataType)+(v?" kanuni-datagrid-cell--pinned":"")+(C.autoHeight?" kanuni-datagrid-cell--wrap":""),visualIndex:B})};o.left.forEach((b,v)=>p(b,"left",o.leftOffsets[v]+De,v));for(let b=d.start;b<d.end&&b<o.center.length;b++)p(o.center[b],null,0,o.left.length+b);o.right.forEach((b,v)=>p(b,"right",o.rightOffsets[v],o.left.length+o.center.length+v)),Fe=f,he=d.offsetX;let E=(o.centerOffsets[Math.min(d.end,o.center.length)]??0)-(o.centerOffsets[Math.min(d.start,o.center.length)]??0);Ku=Math.max(0,o.centerWidth-d.offsetX-E),se.style.minWidth=`${o.totalWidth+De}px`}let eu=26;function Ma(){let o=A.getColumnLayout(),d=A.getVirtualWindow().columns,f=[...o.left,...o.center.slice(d.start,Math.min(d.end,o.center.length)),...o.right],p=Mi(f);if(_t.textContent="",ve.style.top=`${p*eu}px`,$.style.setProperty("--dg-band-offset",`${p*eu}px`),p===0)return;Ii(f,p).forEach((b,v)=>{let x=k("kanuni-datagrid-band-row");if(x.style.top=`${v*eu}px`,x.style.height=`${eu}px`,De>0){let B=k("kanuni-datagrid-band-cell kanuni-datagrid-band-cell--spacer kanuni-datagrid-band-cell--pinned");B.style.width=`${De}px`,B.style.flex="none",B.style.insetInlineStart="0px",x.appendChild(B)}if(he>0){let B=k("kanuni-datagrid-spacer");B.style.width=`${he}px`,B.style.flex="none",x.appendChild(B)}for(let B of b){let C=k(`kanuni-datagrid-band-cell${B.spacer?" kanuni-datagrid-band-cell--spacer":""}`);if(C.style.width=`${B.width}px`,C.style.flex="none",!B.spacer){if(B.columnIds.length>0){let R=Ie(A.getColumnModel().getDef(B.columnIds[0])).slice(0,v+1);if(R.length===v+1&&A.isBandCollapsible(R)){let I=A.isBandCollapsed(R),P=document.createElement("button");P.type="button",P.className="kanuni-datagrid-band-toggle",P.setAttribute("aria-expanded",String(!I));let L=I?M.expandDetails??"Expand":M.collapseDetails??"Collapse";P.setAttribute("aria-label",L),P.title=L,P.appendChild(S0(I)),P.addEventListener("click",H=>{H.stopPropagation(),A.toggleBand(R)}),C.appendChild(P)}}let D=k("kanuni-datagrid-band-label","span");D.textContent=B.label,C.appendChild(D)}x.appendChild(C)}_t.appendChild(x)})}let kt=null,tu=null;function uu(o,d){tu&&tu!==o&&tu.classList.remove("kanuni-datagrid-header-cell--drop-before","kanuni-datagrid-header-cell--drop-after"),tu=o,o&&(o.classList.toggle("kanuni-datagrid-header-cell--drop-before",d==="before"),o.classList.toggle("kanuni-datagrid-header-cell--drop-after",d==="after"))}function fn(){if(!kt)return;let o=A.getSelectedCount(),d=A.getVisibleCount(),f=d>0&&o>=d;kt.checked=f,kt.indeterminate=!f&&o>0}function Uu(){Ma();let o=A.getSort(),d=new Map(o.map((p,E)=>[p.columnId,{direction:p.direction,order:E}]));if(ve.textContent="",kt=null,l){let p=k("kanuni-datagrid-header-cell kanuni-datagrid-header-cell--pinned kanuni-datagrid-rownum-cell");p.setAttribute("role","columnheader"),p.style.width=`${Et}px`,p.style.flex="none",p.style.insetInlineStart="0px",ve.appendChild(p)}if(Zt){let p=k("kanuni-datagrid-header-cell kanuni-datagrid-header-cell--pinned kanuni-datagrid-detail-toggle-cell");p.setAttribute("role","columnheader"),p.setAttribute("aria-label",M.detailsAria),p.style.width=`${At}px`,p.style.flex="none",p.style.insetInlineStart=`${zu}px`,ve.appendChild(p)}if(Yt){let p=k("kanuni-datagrid-header-cell kanuni-datagrid-header-cell--pinned kanuni-datagrid-select-cell");p.setAttribute("role","columnheader"),p.style.width=`${Wt}px`,p.style.flex="none",p.style.insetInlineStart=`${sn}px`;let E=document.createElement("input");E.type="checkbox",E.setAttribute("aria-label",M.selectAllRows),E.addEventListener("change",()=>{A.getSelectedCount()>0?A.clearSelection():A.selectAll()}),p.appendChild(E),ve.appendChild(p),kt=E,fn()}let f=!1;for(let p of Fe){if(!p.pinned&&!f){if(he>0){let C=document.createElement("div");C.style.flex=`0 0 ${he}px`,ve.appendChild(C)}f=!0}let E=Ca&&p.def.sortable!==!1,b=d.get(p.id),v=k(`kanuni-datagrid-header-cell${E?" kanuni-datagrid-header-cell--sortable":""}${p.pinned?" kanuni-datagrid-header-cell--pinned":""}`);v.setAttribute("role","columnheader"),v.setAttribute("data-column-id",p.id),v.setAttribute("aria-sort",b?b.direction==="asc"?"ascending":"descending":"none");let x=p.def.headerTooltip;x&&(v.title=x),v.style.width=`${p.width}px`,v.style.flex="none",p.pinned==="left"&&(v.style.insetInlineStart=`${p.inset}px`),p.pinned==="right"&&(v.style.insetInlineEnd=`${p.inset}px`);let B=k("kanuni-datagrid-header-label","span");if(p.def.renderHeader){let C=p.def.renderHeader({column:p.def});typeof C=="string"?B.textContent=C:B.appendChild(C)}else B.textContent=p.def.headerName??p.id;if(v.appendChild(B),b){let C=k("kanuni-datagrid-sort-indicator","span");if(C.setAttribute("aria-hidden","true"),C.textContent=b.direction==="asc"?"\u25B2":"\u25BC",v.appendChild(C),o.length>1){let D=k("kanuni-datagrid-sort-order","span");D.setAttribute("aria-hidden","true"),D.textContent=String(b.order+1),v.appendChild(D)}}if(E){let C=p.id;v.addEventListener("click",D=>{A.toggleSort(C,D.shiftKey)})}if(le!==!1){let C=p.id;v.addEventListener("contextmenu",D=>{D.preventDefault(),Za(C,{left:D.clientX,top:D.clientY})})}if(N&&p.def.filterable!==!1){let C=document.createElement("button");C.type="button";let D=A.getColumnFilter(p.id)!==null;C.className=`kanuni-datagrid-filter-button${D?" kanuni-datagrid-filter-button--active":""}${V==="always"?" kanuni-datagrid-filter-button--pinned":""}`,C.setAttribute("aria-haspopup","dialog"),C.setAttribute("aria-label",`${p.def.headerName??p.id} filter`),C.appendChild(F0()),C.addEventListener("click",R=>{R.stopPropagation(),Ka(p.id,C)}),v.appendChild(C)}if(S&&p.def.reorderable!==!1&&(v.draggable=!0,v.addEventListener("dragstart",C=>{C.dataTransfer?.setData("text/x-kanuni-column",p.id),C.dataTransfer&&(C.dataTransfer.effectAllowed="move")}),v.addEventListener("dragover",C=>{if(!C.dataTransfer?.types.includes("text/x-kanuni-column"))return;C.preventDefault();let D=v.getBoundingClientRect(),R=C.clientX<D.left+D.width/2;uu(v,R?"before":"after")}),v.addEventListener("dragleave",C=>{let D=C.relatedTarget;(!D||!v.contains(D))&&uu(null,"before")}),v.addEventListener("drop",C=>{uu(null,"before");let D=C.dataTransfer?.getData("text/x-kanuni-column");if(!D||D===p.id)return;C.preventDefault();let R=v.getBoundingClientRect();if(C.clientX<R.left+R.width/2)A.moveColumn(D,p.id);else{let P=Fe.findIndex(L=>L.id===p.id);A.moveColumn(D,Fe[P+1]?.id)}}),v.addEventListener("dragend",()=>uu(null,"before"))),F&&p.def.resizable!==!1){let C=k("kanuni-datagrid-resize-handle","span");C.setAttribute("data-resize-handle",p.id),C.setAttribute("role","presentation"),C.addEventListener("click",D=>D.stopPropagation()),C.addEventListener("dblclick",D=>{D.stopPropagation(),Xa(p.id)}),C.addEventListener("pointerdown",D=>{D.preventDefault(),D.stopPropagation();let R=D.clientX,I=p.width,P=getComputedStyle(v).direction==="rtl"?-1:1;v.draggable=!1;let L=I,H=!1,Y=me=>{H=!0,L=I+(me.clientX-R)*P,A.setColumnWidth(p.id,L,!1)},ie=()=>{window.removeEventListener("pointermove",Y),window.removeEventListener("pointerup",ie),window.removeEventListener("pointercancel",ie),H&&A.setColumnWidth(p.id,L,!0),v.draggable=S&&p.def.reorderable!==!1};window.addEventListener("pointermove",Y),window.addEventListener("pointerup",ie),window.addEventListener("pointercancel",ie)}),v.appendChild(C)}ve.appendChild(v)}}let Cn=null,ru=null;function Ia(o){if(o===Cn)return;Cn=o;let d=[];for(let f=0;f<o.length;f++)o[f].kind!=="data"&&d.push(f);ru=d.length>0?d:null}function La(o){if(!ru)return o+1;let d=0,f=ru.length;for(;d<f;){let p=d+f>>1;ru[p]<=o?d=p+1:f=p}return o+1-d}let Rt=[];function wn(o="data"){let d=k("kanuni-datagrid-row");if(d.setAttribute("role","row"),o==="panel"){let C=document.createElement("div");return C.setAttribute("role","gridcell"),C.setAttribute("aria-colindex","1"),d.appendChild(C),{kind:o,root:d,cells:[],rowNumberCell:null,selectInput:null,detailToggle:null,leadingSpacer:null,trailingSpacer:null,panelCell:C,epoch:tt}}if(o==="group"){let C=k("kanuni-datagrid-group-cell");C.setAttribute("role","gridcell"),C.setAttribute("aria-colindex","1");let D=k("kanuni-datagrid-group-twisty","span");D.setAttribute("aria-hidden","true");let R=k("kanuni-datagrid-group-caption","span"),I=k("kanuni-datagrid-group-label","span"),P=k("kanuni-datagrid-group-count","span"),L=k("kanuni-datagrid-group-aggregates","span");return C.append(D,R,I,P,L),d.appendChild(C),d.addEventListener("click",()=>{let H=d.getAttribute("data-group-key");H!==null&&A.toggleGroup(H)}),{kind:o,root:d,cells:[],rowNumberCell:null,selectInput:null,detailToggle:null,leadingSpacer:null,trailingSpacer:null,group:{cell:C,twisty:D,caption:R,label:I,count:P,aggregates:L},epoch:tt}}if(Jt){let C=k("kanuni-datagrid-row-grip","span");C.setAttribute("aria-hidden","true"),C.title=M.dragToReorder??"Drag to reorder",C.innerHTML='<svg width="10" height="14" viewBox="0 0 10 14" focusable="false"><g fill="currentColor"><circle cx="3" cy="3" r="1.2"/><circle cx="7" cy="3" r="1.2"/><circle cx="3" cy="7" r="1.2"/><circle cx="7" cy="7" r="1.2"/><circle cx="3" cy="11" r="1.2"/><circle cx="7" cy="11" r="1.2"/></g></svg>',C.addEventListener("mouseenter",()=>{d.draggable=!0}),C.addEventListener("mouseleave",()=>{d.draggable=!1}),d.appendChild(C)}if(z)return{kind:o,root:d,cells:[],rowNumberCell:null,selectInput:null,detailToggle:null,leadingSpacer:null,trailingSpacer:null,epoch:tt};let f=null;l&&(f=k("kanuni-datagrid-cell kanuni-datagrid-cell--number kanuni-datagrid-cell--pinned kanuni-datagrid-rownum-cell"),f.setAttribute("role","gridcell"),f.style.width=`${Et}px`,f.style.flex="none",f.style.insetInlineStart="0px",d.appendChild(f));let p=null;if(Zt){let C=k("kanuni-datagrid-cell kanuni-datagrid-cell--center kanuni-datagrid-cell--pinned kanuni-datagrid-detail-toggle-cell");C.setAttribute("role","gridcell"),C.style.width=`${At}px`,C.style.flex="none",C.style.insetInlineStart=`${zu}px`;let D=document.createElement("button");D.type="button",D.className="kanuni-datagrid-detail-toggle",D.tabIndex=-1,D.addEventListener("click",R=>{R.stopPropagation();let I=d.getAttribute("data-row-key");if(I===null)return;let P=A.getRows().find(L=>String(L.key)===I);P&&P.kind==="data"&&A.toggleDetail(P.key)}),D.addEventListener("mousedown",R=>R.stopPropagation()),C.appendChild(D),d.appendChild(C),p=D}let E=null;if(Yt){let C=k("kanuni-datagrid-cell kanuni-datagrid-cell--center kanuni-datagrid-cell--pinned kanuni-datagrid-select-cell");C.setAttribute("role","gridcell"),C.style.width=`${Wt}px`,C.style.flex="none",C.style.insetInlineStart=`${sn}px`;let D=document.createElement("input");D.type="checkbox",D.tabIndex=-1;let R=()=>{let I=d.getAttribute("data-row-key");if(I===null)return;let P=A.getRows().find(L=>String(L.key)===I);P&&A.toggleRow(P.key)};C.addEventListener("mousedown",I=>I.stopPropagation()),C.addEventListener("click",I=>{I.target.tagName!=="INPUT"&&(I.stopPropagation(),R())}),D.addEventListener("change",R),D.addEventListener("click",I=>I.stopPropagation()),D.addEventListener("mousedown",I=>I.stopPropagation()),C.appendChild(D),d.appendChild(C),E=D}let b=[],v=null,x=!1;for(let C of Fe){!C.pinned&&!x&&(v=document.createElement("div"),v.style.flex=`0 0 ${he}px`,d.appendChild(v),x=!0);let D=k(C.className);D.setAttribute("role","gridcell"),D.setAttribute("data-column-id",C.id),D.style.width=`${C.width}px`,D.style.flex="none",C.pinned==="left"&&(D.style.insetInlineStart=`${C.inset}px`),C.pinned==="right"&&(D.style.insetInlineEnd=`${C.inset}px`),d.appendChild(D),b.push({el:D,slot:C})}let B=document.createElement("div");return B.style.flex=`0 0 ${Ku}px`,d.appendChild(B),{kind:o,root:d,cells:b,rowNumberCell:f,selectInput:E,detailToggle:p,leadingSpacer:v,trailingSpacer:B,epoch:tt}}let pt="";function nu(o,d){if(pt===""||d===""){o.textContent=d;return}let f=te(d),p=f.indexOf(pt);if(p===-1){o.textContent=d;return}let E=[],b=0;for(;p!==-1;){p>b&&E.push(document.createTextNode(d.slice(b,p)));let v=document.createElement("mark");v.className="kanuni-datagrid-highlight",v.textContent=d.slice(p,p+pt.length),E.push(v),b=p+pt.length,p=f.indexOf(pt,b)}b<d.length&&E.push(document.createTextNode(d.slice(b))),o.replaceChildren(...E)}function Pa(o,d,f){let p=A.getColumnModel().getCellValue(f.data,d.id),E=d.def;if(E.renderCell){let v=E.renderCell({value:p,row:f.data,node:f,column:E});typeof v=="string"?o.textContent=v:o.replaceChildren(v);return}let b=wt(E,p);if(b!==null){nu(o,b);return}if(E.valueFormatter){let v=E.valueFormatter(p,f.data);nu(o,typeof v=="string"?v:String(v??""));return}if(E.dateFormat&&E.dataType==="date"){nu(o,Pr(p,E.dateFormat));return}nu(o,p==null?"":String(p))}function yn(o,d,f){let p=o.root;if(p.setAttribute("aria-rowindex",String(f+2)),p.setAttribute("data-row-key",String(d.key)),d.kind==="detail"||d.kind==="editform"){let C=o.panelCell,D=d.kind==="detail";p.className=`kanuni-datagrid-row ${D?"kanuni-datagrid-detail-row":"kanuni-datagrid-editform-row"}`,p.style.height=`${d.height}px`,D?(p.setAttribute("data-detail-for",String(d.parentKey)),p.removeAttribute("data-editform-for")):(p.setAttribute("data-editform-for",d.parentKey===null?"":String(d.parentKey)),p.removeAttribute("data-detail-for")),C.className=D?"kanuni-datagrid-detail-cell":"kanuni-datagrid-editform-cell";let R=`${d.kind}:${String(d.key)}`;if(p.getAttribute("data-panel-for")!==R){p.setAttribute("data-panel-for",R);let I=D?Xr?.(d.data):d.parentKey===null?void 0:ma?.(d.parentKey,d.data);C.textContent="",typeof I=="string"?C.textContent=I:I&&C.appendChild(I)}return}if(p.removeAttribute("data-panel-for"),p.removeAttribute("data-detail-for"),p.removeAttribute("data-editform-for"),d.kind==="filler"){p.style.display="none";return}p.style.display="",p.style.height=En?"":`${A.getRowHeight()}px`,p.classList.toggle("kanuni-datagrid-row--odd",a&&f%2===1),p.classList.toggle("kanuni-datagrid-row--selected",A.isRowSelected(d.key));let E=A.getFocus();if(p.classList.toggle("kanuni-datagrid-row--focused",W&&E!==null&&E.rowKey===d.key),o.leadingSpacer&&(o.leadingSpacer.style.flex=`0 0 ${he}px`),o.trailingSpacer&&(o.trailingSpacer.style.flex=`0 0 ${Ku}px`),Jt){let C=et!==null&&String(et.key)===String(d.key);p.classList.toggle("kanuni-datagrid-row--drop-before",C&&et.side==="before"),p.classList.toggle("kanuni-datagrid-row--drop-after",C&&et.side==="after")}if(o.rowNumberCell&&(o.rowNumberCell.textContent=String(La(f))),o.selectInput&&(o.selectInput.checked=A.isRowSelected(d.key),o.selectInput.setAttribute("aria-label",M.selectRowAria.replace("{row}",String(d.key)))),o.detailToggle&&d.kind==="data"){let C=A.isDetailExpanded(d.key);o.detailToggle.textContent=C?"\u25BE":"\u25B8",o.detailToggle.setAttribute("aria-expanded",String(C)),o.detailToggle.setAttribute("aria-label",C?M.collapseDetails:M.expandDetails)}if(d.kind==="group"&&o.group){let C=d;p.className=`kanuni-datagrid-row kanuni-datagrid-group-row kanuni-datagrid-group-row--level-${C.level}`,p.setAttribute("aria-expanded",String(C.expanded)),p.setAttribute("aria-level",String(C.level+1)),p.setAttribute("data-group-key",String(C.key)),p.setAttribute("data-group-level",String(C.level)),o.group.cell.style.paddingLeft=C.level>0?`${8+C.level*18}px`:"",o.group.twisty.textContent=C.expanded?"\u25BE":"\u25B8";let D=A.getColumnModel().getDef(C.columnId),R=D?.headerName??C.columnId;o.group.caption.textContent=`${R}:`,o.group.label.textContent=wt(D,C.value)??(C.label===""?M.filterBlank:C.label),o.group.count.textContent=`(${C.count})`,o.group.aggregates.textContent="";let I=C.aggregates??null;if(I)for(let P of A.getSummaryDefs()){let L=k("kanuni-datagrid-group-aggregate","span"),H=k("kanuni-datagrid-group-aggregate-label","span"),Y=A.getColumnModel().getDef(P.columnId);H.textContent=`${$r(P,Gu)} ${Y?.headerName??P.columnId}:`,L.append(H,` ${qr(P,I[ot(P.columnId,P.type)],Y)}`),o.group.aggregates.appendChild(L)}return}if(d.kind!=="data"){for(let{el:C}of o.cells)C.textContent="";return}if(p.className=p.className.includes("group-row")?"kanuni-datagrid-row":p.className,z){let C=Jt?1:0,D=z({row:d.data,node:d,rowIndex:f,selected:A.isRowSelected(d.key),focused:W&&E!==null&&E.rowKey===d.key});if(D instanceof Node&&p.childNodes.length===C+1&&p.childNodes[C]===D)return;for(;p.childNodes.length>C;)p.removeChild(p.lastChild);typeof D=="string"?p.appendChild(document.createTextNode(D)):D&&p.appendChild(D);return}let b=E!==null&&E.rowKey===d.key?E.columnId:null,v=d.tree,x=v?(()=>{let C=A.getColumnLayout();return(C.left[0]??C.center[0]??C.right[0])?.state.id??null})():null,B=A.hasCellSpans();for(let{el:C,slot:D}of o.cells){let R=Mu||Iu?{node:d,columnId:D.id,rowIndex:f,columnIndex:D.visualIndex,value:A.getColumnModel().getCellValue(d.data,D.id)}:null,I=R&&Mu?Mu(R):void 0,P=!1;if(I!==void 0?I instanceof Node&&C.childNodes.length===1&&C.firstChild===I?P=!0:typeof I=="string"?C.textContent=I:C.replaceChildren(I):(Pa(C,D,d),v&&D.id===x&&Va(C,d,v)),B&&!P){let q=Oa(f,D.id);C.classList.toggle("kanuni-datagrid-cell--span",q?.kind==="draw"),C.classList.toggle("kanuni-datagrid-cell--span-covered",q?.kind==="covered");let ze=I!==void 0;if(q?.kind==="covered"&&b!==D.id&&!ze)C.replaceChildren();else if(q?.kind==="draw"){let oe=k("kanuni-datagrid-span-box");oe.style.height=`${q.height}px`,oe.append(...Array.from(C.childNodes)),C.appendChild(oe)}}else B||C.classList.remove("kanuni-datagrid-cell--span","kanuni-datagrid-cell--span-covered");if(Ye){let q=!!$u(d.key,D.id,d.data);C.classList.toggle("kanuni-datagrid-cell--noted",q)}C.id=`${t.gridId}-cell-${String(d.key)}-${D.id}`,C.classList.toggle("kanuni-datagrid-cell--focused",b===D.id);let L=C.getAttribute("data-slot-classes");if(L)for(let q of L.split(" "))C.classList.remove(q);let H=R&&Iu?Iu(R):void 0,Y=D.def.cellClassName,me=[typeof Y=="function"?Y({value:A.getColumnModel().getCellValue(d.data,D.id),row:d.data,node:d,column:D.def}):Y,H].filter(Boolean).join(" ")||void 0;if(me){for(let q of me.split(" "))C.classList.add(q);C.setAttribute("data-slot-classes",me)}else L&&C.removeAttribute("data-slot-classes")}}let En=t.columns.some(o=>o.autoHeight);function Ga(){if(!En)return;let o=A.getVirtualWindow(),d=A.getRows(),f=new Map(A.getMeasuredRowHeights()),p=!1;for(let E=o.rows.start;E<o.rows.end&&E<d.length;E++){let b=d[E];if(!b||b.kind!=="data")continue;let v=E-o.rows.start,x=Rt[v]?.root;if(!x)continue;let B=x.getBoundingClientRect().height;B>0&&f.get(b.key)!==B&&(f.set(b.key,B),p=!0)}p&&A.setMeasuredRowHeights(f)}let iu={start:0,end:0};function Oa(o,d){let f=A.getCellSpans(d);if(f.length===0)return null;let p=_i(f,o,iu.start,iu.end);if(!p)return null;if(p.role==="covered")return{kind:"covered"};let E=A.getRowOffset(p.drawStart);return{kind:"draw",height:A.getRowOffset(p.drawEnd)+A.getRowHeightAt(p.drawEnd)-E}}function Va(o,d,f){let p=k(`kanuni-datagrid-tree-cell${f.ancestorOnly?" kanuni-datagrid-tree-cell--ancestor":""}`,"span");if(p.style.paddingInlineStart=`${f.depth*16}px`,f.hasChildren){let E=document.createElement("button");E.type="button",E.className="kanuni-datagrid-tree-toggle",E.setAttribute("data-tree-toggle",""),E.setAttribute("aria-expanded",String(f.expanded)),E.setAttribute("aria-label",f.expanded?M.collapseDetails:M.expandDetails),E.textContent=f.expanded?"\u25BE":"\u25B8",E.addEventListener("mousedown",b=>b.stopPropagation()),E.addEventListener("click",b=>{b.stopPropagation(),A.toggleTreeRow(d.key)}),p.appendChild(E)}else p.appendChild(k("kanuni-datagrid-tree-toggle kanuni-datagrid-tree-toggle--leaf","span"));p.append(...Array.from(o.childNodes)),o.appendChild(p)}let $u=(o,d,f)=>Ye?Ye.get({rowKey:o,columnId:d,row:f})??null:null,An=null,Ge=Lu?k("kanuni-datagrid-overlay"):null;Ge&&(Ge.style.position="absolute",Ge.style.inset="0",Ge.style.pointerEvents="none",de.appendChild(Ge));function za(){if(!Lu||!Ge)return;let o=Lu();o!==An&&(An=o,o?Ge.replaceChildren(o):Ge.replaceChildren())}function qu(){za();let o=A.getVirtualWindow(),d=A.getRows(),f=Bt?{...o,rows:{...o.rows,start:0,end:d.length,offsetY:0,totalHeight:0}}:o;Ia(d),de.style.height=`${f.rows.totalHeight}px`,X.style.transform=`translateY(${f.rows.offsetY}px)`,pt=fa?zt(A.getSearchText()):"";let p=Math.max(0,Math.min(f.rows.end,d.length)-f.rows.start);for(iu.start=f.rows.start,iu.end=Math.min(f.rows.end,d.length)-1;Rt.length>p;)Rt.pop().root.remove();for(let E=0;E<p;E++){let b=f.rows.start+E,v=d[b],x=v.kind==="data"?"data":v.kind==="group"?"group":v.kind==="detail"||v.kind==="editform"?"panel":"stub",B=Rt[E];if(!B||B.epoch!==tt||B.kind!==x){let C=wn(x);B?X.replaceChild(C.root,B.root):X.appendChild(C.root),Rt[E]=C,B=C}yn(B,v,b)}Ga()}let bn=ji(ga??(A.isRemote()?200:0));function _u(){if(!T)return;if(dt.textContent="",De>0){let d=k("kanuni-datagrid-filter-cell kanuni-datagrid-filter-cell--pinned");d.style.width=`${De}px`,d.style.flex="none",d.style.insetInlineStart="0px",dt.appendChild(d)}let o=!1;for(let d of Fe){if(!d.pinned&&!o){if(he>0){let p=k("kanuni-datagrid-spacer");p.style.width=`${he}px`,p.style.flex="none",dt.appendChild(p)}o=!0}let f=k(`kanuni-datagrid-filter-cell${d.pinned?" kanuni-datagrid-filter-cell--pinned":""}`);if(f.style.width=`${d.width}px`,f.style.flex="none",d.pinned==="left"&&(f.style.insetInlineStart=`${d.inset}px`),d.pinned==="right"&&(f.style.insetInlineEnd=`${d.inset}px`),d.def.filterable!==!1){let p=document.createElement("input");p.className="kanuni-datagrid-filter-input",p.setAttribute("aria-label",`${d.def.headerName??d.id} filter`);let E=()=>A.setColumnFilter(d.id,sa(d.id,p.value,d.def.dataType),Gi);p.addEventListener("input",()=>bn.schedule(d.id,E));let b=()=>{bn.cancel(d.id),E()};p.addEventListener("keydown",v=>{v.key==="Enter"&&b()}),p.addEventListener("blur",b),f.appendChild(p)}dt.appendChild(f)}}let ju=()=>{};function Ha(){if(!tn)return;let o=document.createElement("input");o.type="search",o.className="kanuni-datagrid-toolbar-search",o.placeholder=M.toolbarSearch,o.setAttribute("aria-label",M.toolbarSearch);let d=null;o.addEventListener("input",()=>{d&&clearTimeout(d),d=setTimeout(()=>A.setSearchText(o.value),ba)});let f=k("kanuni-datagrid-toolbar-spacer"),p=null;if(qe){let C=document.createElement("button");C.type="button",C.textContent=M.toolbarColumns??"Columns",C.setAttribute("aria-haspopup","dialog"),C.addEventListener("click",()=>{let D=C.getBoundingClientRect();kn({left:D.left,top:D.bottom+2})}),p=C}let E=Le&&Ea,b=Le&&Aa,v=document.createElement("button");v.type="button",v.className="kanuni-datagrid-toolbar-icon-button",v.setAttribute("aria-haspopup","menu"),v.setAttribute("aria-label",M.exportMenu),v.setAttribute("data-testid","dg-export-menu"),v.title=M.exportMenu,v.appendChild(D0());let x=null;v.addEventListener("click",()=>{if(x)return;let C=v.getBoundingClientRect();ut({left:C.right-190,top:C.bottom+2},D=>{D.setAttribute("role","menu"),D.setAttribute("aria-label",M.exportMenu);let R=[{kind:"csv",label:M.exportCsv,testId:"dg-export-csv",on:!0},{kind:"excel",label:M.exportExcel,testId:"dg-export-excel",on:E},{kind:"excel-selected",label:M.exportExcelSelected,testId:"dg-export-excel-selected",on:E},{kind:"pdf",label:M.exportPdf,testId:"dg-export-pdf",on:b}];for(let I of R){if(!I.on)continue;let P=document.createElement("button");P.type="button",P.className="kanuni-datagrid-menu-item",P.setAttribute("role","menuitem"),P.setAttribute("data-testid",I.testId),P.textContent=I.label,I.kind==="excel-selected"&&A.getSelectedCount()===0&&(P.disabled=!0),P.addEventListener("click",()=>{x=I.kind,v.disabled=!0,pe(),_r(A,I.kind).then(L=>{x=null,v.disabled=!1,L.error&&ju(L.error)})}),D.appendChild(P)}},"kanuni-datagrid-filter-popup kanuni-datagrid-export-menu")});for(let C of ya??[])Je.append(C);Je.append(o,f),p&&Je.append(p),Je.append(v);for(let C of wa??[])Je.append(C);let B=k("kanuni-datagrid-toolbar-error","span");B.setAttribute("role","alert"),B.style.display="none",Je.append(B),ju=C=>{B.textContent=C,B.style.display=""}}function vn(){if(!ct.isConnected)return;let o=A.getPage(),d=A.getPageCount();ct.textContent="";let f=(x,B,C,D)=>{let R=document.createElement("button");return R.type="button",R.textContent=x,R.setAttribute("aria-label",B),R.disabled=C,R.addEventListener("click",D),R},p=k("kanuni-datagrid-pager-buttons"),E=o<=0,b=o>=d-1;p.append(f("\xAB",M.pagerFirst??"First",E,()=>A.setPage(0)),f("\u2039",M.pagerPrevious??"Previous",E,()=>A.setPage(o-1)));let v=k("kanuni-datagrid-pager-current","span");v.textContent=`${o+1} / ${d}`,p.append(v,f("\u203A",M.pagerNext??"Next",b,()=>A.setPage(o+1)),f("\xBB",M.pagerLast??"Last",b,()=>A.setPage(d-1))),ct.appendChild(p)}function Yu(){if(!Ne)return;let o=A.getColumnLayout(),d=A.getSummaries(),f=new Map(A.getSummaryDefs().map(E=>[E.columnId,E]));if(ae.textContent="",ae.style.width=`${o.totalWidth+De}px`,De>0){let E=k("kanuni-datagrid-footer-cell kanuni-datagrid-footer-cell--pinned");E.style.width=`${De}px`,E.style.insetInlineStart="0px",ae.appendChild(E)}let p=!1;for(let E of Fe){if(!E.pinned&&!p){if(he>0){let B=k("kanuni-datagrid-spacer");B.style.width=`${he}px`,ae.appendChild(B)}p=!0}let b=f.get(E.id),v=E.def.dataType==="number",x=k(`kanuni-datagrid-footer-cell${E.pinned?" kanuni-datagrid-footer-cell--pinned":""}${v?" kanuni-datagrid-footer-cell--number":""}${b?" kanuni-datagrid-footer-cell--active":""}`);if(x.setAttribute("role","gridcell"),x.setAttribute("data-column-id",E.id),x.setAttribute("data-summary-type",b?.type??""),x.style.width=`${E.width}px`,E.pinned==="left"&&(x.style.insetInlineStart=`${E.inset}px`),E.pinned==="right"&&(x.style.insetInlineEnd=`${E.inset}px`),b){x.title=`${$r(b,Gu)} \u2014 ${E.def.headerName??E.id}`;let B=k("kanuni-datagrid-footer-value","span");B.textContent=qr(b,d[ot(b.columnId,b.type)],E.def),x.appendChild(B)}else{let B=k("kanuni-datagrid-footer-hint","span");B.textContent=c?"\xB7":"",x.appendChild(B)}ae.appendChild(x)}}function Zu(){let o=(d,f,p)=>{d.textContent="",f.forEach((E,b)=>{let v=wn("data");yn(v,{kind:"data",key:`__pinned-${p}-${b}`,sourceIndex:-1,data:E},b),v.root.classList.remove("kanuni-datagrid-row--odd"),v.root.removeAttribute("aria-rowindex"),v.rowNumberCell&&(v.rowNumberCell.textContent=""),d.appendChild(v.root)})};g.length>0&&o(vt,g,"top"),y.length>0&&o(rn,y,"bottom")}let mt=null,Ju=null;function pe(){Ju?.(),Ju=null,mt?.remove(),mt=null}function xn(o,d){let p=o.getBoundingClientRect();p.width===0&&p.height===0||(o.style.left=`${Math.max(8,Math.min(d.left,window.innerWidth-p.width-8))}px`,o.style.top=`${Math.max(8,Math.min(d.top,window.innerHeight-p.height-8))}px`)}function ut(o,d,f="kanuni-datagrid-filter-popup"){pe(),mt=k(`${Yr(t)} kanuni-datagrid-portal`);let p=k(f);p.style.position="fixed",p.style.left=`${o.left}px`,p.style.top=`${o.top}px`,p.style.zIndex="1000",d(p),mt.appendChild(p),document.body.appendChild(mt),xn(p,o);let E=mt,b=x=>{E.contains(x.target)||pe()},v=x=>{x.key==="Escape"&&pe()};document.addEventListener("pointerdown",b,!0),document.addEventListener("keydown",v,!0),Ju=()=>{document.removeEventListener("pointerdown",b,!0),document.removeEventListener("keydown",v,!0)}}let rt=25,Dn=8,Fn=new Map,Sn=0;function Ka(o,d){let f=d.getBoundingClientRect(),p=++Sn;ut({left:f.left,top:f.bottom+2},E=>{let b=[],v=!0,x=new Set,B=!1,C=0,D="",R=[],I=null,P="",L=[],H=document.createElement("input");H.type="search",H.className="kanuni-datagrid-filter-search",H.placeholder=M.search,H.setAttribute("data-testid","dg-filter-search");let Y=k("kanuni-datagrid-filter-actions"),ie=document.createElement("button");ie.type="button",ie.textContent=M.filterSelectAll,ie.addEventListener("click",()=>{B=!0,x=new Set(b.map(G=>G.label)),Se()});let me=document.createElement("button");me.type="button",me.textContent=M.clear,me.addEventListener("click",()=>{B=!0,x=new Set,Se()}),Y.append(ie,me);let q=k("kanuni-datagrid-filter-list");q.setAttribute("role","listbox"),q.setAttribute("aria-multiselectable","true");let ze=document.createElement("div");ze.style.position="relative";let oe=document.createElement("div");ze.appendChild(oe),q.appendChild(ze);let pu=()=>{let G=te(D.trim());if(!G){R=b;return}I||(I=b.map(_=>te(_.label))),R=P!==""&&G.includes(P)?L.filter(_=>te(_.label).includes(G)):b.filter((_,ee)=>I[ee].includes(G)),P=G,L=R},Se=()=>{if(q.setAttribute("aria-busy",String(v)),q.setAttribute("aria-setsize",String(R.length)),v){ze.style.height="",oe.textContent="";let Ae=k("kanuni-datagrid-filter-empty");Ae.textContent=M.filterLoading,oe.appendChild(Ae);return}if(R.length===0){ze.style.height="",oe.style.transform="",oe.textContent="";let Ae=k("kanuni-datagrid-filter-empty");Ae.textContent=M.filterNoMatch,oe.appendChild(Ae);return}let G=q.clientHeight||240,_=Math.max(0,Math.floor(q.scrollTop/rt)-Dn),ee=Math.ceil(G/rt)+Dn*2,Ee=Math.min(_,Math.max(0,R.length-1)),so=Math.min(R.length,Ee+ee);ze.style.height=`${R.length*rt}px`,oe.style.transform=`translateY(${Ee*rt}px)`,oe.textContent="";for(let Ae=Ee;Ae<so;Ae++){let ft=R[Ae],Be=k("kanuni-datagrid-filter-item");Be.setAttribute("role","option"),Be.setAttribute("aria-selected",String(x.has(ft.label))),Be.tabIndex=0,Be.setAttribute("data-value",ft.label),Be.setAttribute("data-index",String(Ae)),Ae===C&&Be.classList.add("kanuni-datagrid-filter-item--active");let Mt=document.createElement("input");Mt.type="checkbox",Mt.readOnly=!0,Mt.checked=x.has(ft.label),Mt.tabIndex=-1;let Qn=document.createElement("span");Qn.textContent=ft.label===""?M.filterBlank:ft.label,Be.append(Mt,Qn),Be.addEventListener("click",()=>Yn(ft.label)),Be.addEventListener("focus",()=>{C=Ae}),oe.appendChild(Be)}},Yn=G=>{B=!0,x.has(G)?x.delete(G):x.add(G);for(let _ of oe.querySelectorAll(".kanuni-datagrid-filter-item")){if(_.getAttribute("data-value")!==G)continue;_.setAttribute("aria-selected",String(x.has(G)));let ee=_.querySelector("input");ee&&(ee.checked=x.has(G))}};q.addEventListener("scroll",()=>{Fn.set(o,q.scrollTop),Se()}),H.addEventListener("input",()=>{D=H.value,C=0,pu(),Se()});let sr=G=>{if(R.length===0)return;C=Math.max(0,Math.min(R.length-1,G));let _=C*rt,ee=q.clientHeight||240;_<q.scrollTop?q.scrollTop=_:_+rt>q.scrollTop+ee&&(q.scrollTop=_+rt-ee),Se(),E.querySelector(`.kanuni-datagrid-filter-item[data-index="${C}"]`)?.focus()},Zn=()=>{if(v)return;let G;if(x.size===b.length)G=null;else{let _=x.has(""),ee=b.filter(Ee=>Ee.label!==""&&x.has(Ee.label));ee.length===0?G=_?{columnId:o,operator:"isnull"}:null:_?G={logic:"or",nodes:[{columnId:o,operator:"in",value:ee.map(Ee=>Ee.value)},{columnId:o,operator:"isnull"}]}:G={columnId:o,operator:"in",value:ee.map(Ee=>Ee.value)}}A.setColumnFilter(o,G,Lr),pe()};E.tabIndex=-1,E.addEventListener("keydown",G=>{let _=G.target===H;if(G.key==="Backspace"&&!_){G.preventDefault(),H.focus(),D=D.slice(0,-1),H.value=D,C=0,pu(),Se();return}if(G.key==="ArrowDown"){G.preventDefault(),sr(_?0:C+1);return}if(G.key==="ArrowUp"){G.preventDefault(),sr(_?R.length-1:C-1);return}if(!_&&(G.key==="Home"||G.key==="End")){G.preventDefault(),sr(G.key==="Home"?0:R.length-1);return}if(G.key===" "&&!_){G.preventDefault();let ee=R[C];ee&&Yn(ee.label);return}if(G.key==="Enter"){G.preventDefault(),Zn();return}!_&&G.key.length===1&&G.key!==" "&&!G.ctrlKey&&!G.metaKey&&!G.altKey&&(G.preventDefault(),H.focus(),D+=G.key,H.value=D,C=0,pu(),Se())});let Jn=k("kanuni-datagrid-filter-footer"),mu=document.createElement("button");mu.type="button",mu.textContent=M.cancel,mu.addEventListener("click",()=>pe());let He=document.createElement("button");He.type="button",He.className="kanuni-datagrid-filter-primary",He.setAttribute("data-testid","dg-filter-apply"),He.textContent=M.apply,He.disabled=!0,He.addEventListener("click",Zn),Jn.append(mu,He),E.append(H,Y,q,Jn),Se(),queueMicrotask(()=>{H.isConnected&&H.focus()}),A.getDistinctValueSetAsync(o).then(G=>{if(Sn!==p||!E.isConnected)return;b=G.entries,I=null,P="",v=!1,He.disabled=!1;let _=qi(A.getColumnFilter(o,Lr)??A.getColumnFilter(o,Vt),b);_?(B=!0,x=new Set(_)):B||(x=new Set(b.map(Ee=>Ee.label))),pu();let ee=Fn.get(o);Se(),ee&&(q.scrollTop=ee,Se())})})}function au(o={}){let d=A.getClipboardText(o);A.notifyClipboardGesture("copy",d?d.split(`
|
|
13
|
-
`).length:0,()=>!d||!navigator.clipboard?.writeText?!1:(navigator.clipboard.writeText(d).catch(()=>{}),!0))}function Wa(o){if(be===!1)return[];let d=be===!0?{}:be,f=[],p=b=>{o&&f.length===0&&f.push({separator:!0,id:"__dg-sep"}),f.push(b)};d.copy!==!1&&p({id:"__dg-copy",label:M.menuCopy,shortcut:`${$a}C`,onSelect:()=>au()}),d.copyWithHeaders!==!1&&p({id:"__dg-copy-headers",label:M.menuCopyWithHeaders,onSelect:()=>au({includeHeaders:!0})}),d.copyWithGroupHeaders!==!1&&Ua()&&p({id:"__dg-copy-group-headers",label:M.menuCopyWithGroupHeaders,onSelect:()=>au({includeGroupHeaders:!0})});let E=d.export===!1?[]:Array.isArray(d.export)?d.export:["csv","excel","excel-selected","pdf"];if(E.length>0){let b=A.getSelectedCount()===0,v={csv:M.exportCsv,excel:M.exportExcel,"excel-selected":M.exportExcelSelected,pdf:M.exportPdf};p({id:"__dg-export",label:M.menuExport,items:E.map(x=>({id:`__dg-export-${x}`,label:v[x],disabled:x==="excel-selected"&&b,onSelect:()=>{_r(A,x).then(B=>{B.error&&ju(B.error)})}}))})}return f}function Ua(){let o=A.getColumnModel();return A.getVisualColumnIds().some(d=>{let f=o.getDef(d)?.band;return typeof f=="string"?f!=="":Array.isArray(f)&&f.length>0})}function R0(o,d,f){let p=k("kanuni-datagrid-menu-row"),E=document.createElement("button");E.type="button",E.className="kanuni-datagrid-menu-item";let b=k("kanuni-datagrid-menu-label","span");if(b.textContent=o,E.appendChild(b),d){let v=k("kanuni-datagrid-menu-shortcut","span");v.textContent=d,E.appendChild(v)}return E.addEventListener("click",()=>{f(),pe()}),p.appendChild(E),p}let $a=/Mac|iPhone|iPad|iPod/.test(navigator.platform??"")?"\u2318":"Ctrl+";function Qu(o,d,f){let p=null,E=()=>{p?.remove(),p=null};d.forEach((b,v)=>{if(b.separator){let R=k("kanuni-datagrid-menu-separator");R.setAttribute("role","separator"),o.appendChild(R);return}let x=k("kanuni-datagrid-menu-row"),B=document.createElement("button");if(B.type="button",B.className="kanuni-datagrid-menu-item",B.setAttribute("role","menuitem"),B.setAttribute("data-item-index",String(v)),b.disabled&&(B.disabled=!0),b.icon!==void 0){let R=k("kanuni-datagrid-menu-icon","span");typeof b.icon=="string"?R.textContent=b.icon:R.appendChild(b.icon),B.appendChild(R)}let C=k("kanuni-datagrid-menu-label","span");if(C.textContent=b.label??"",B.appendChild(C),b.shortcut){let R=k("kanuni-datagrid-menu-shortcut","span");R.textContent=b.shortcut,B.appendChild(R)}let D=b.items??[];if(D.length>0){let R=k("kanuni-datagrid-menu-caret","span");R.textContent="\u203A",B.appendChild(R),B.setAttribute("aria-haspopup","menu"),B.setAttribute("aria-expanded","false");let I=()=>{E();let P=k("kanuni-datagrid-context-menu kanuni-datagrid-submenu");P.setAttribute("role","menu");let L=B.getBoundingClientRect();P.style.left=`${L.right}px`,P.style.top=`${Math.max(0,L.top-4)}px`;for(let H of D){if(H.separator){let me=k("kanuni-datagrid-menu-separator");me.setAttribute("role","separator"),P.appendChild(me);continue}let Y=document.createElement("button");Y.type="button",Y.className="kanuni-datagrid-menu-item",Y.setAttribute("role","menuitem"),H.disabled&&(Y.disabled=!0);let ie=k("kanuni-datagrid-menu-label","span");ie.textContent=H.label??"",Y.appendChild(ie),Y.addEventListener("click",()=>{H.onSelect?.(f),pe()}),P.appendChild(Y)}o.parentElement?.appendChild(P),xn(P,{left:L.right,top:Math.max(0,L.top-4)}),p=P,B.setAttribute("aria-expanded","true")};B.addEventListener("mouseenter",I),B.addEventListener("click",I)}else B.addEventListener("mouseenter",E),B.addEventListener("click",()=>{b.onSelect?.(f),pe()});x.appendChild(B),o.appendChild(x)})}let Bn=o=>{let f=o.target.closest(".kanuni-datagrid-row");if(!f||f.classList.contains("kanuni-datagrid-group-row"))return;let p=Oe(o);if(p?.columnId&&A.notifyCell("cellContextMenu",p.node,p.rowIndex,p.columnId),!Ce&&!be||!p||p.node.kind!=="data")return;o.preventDefault(),A.isRowSelected(p.node.key)||A.handleRowClick(p.node.key,{}),p.columnId&&A.focusCell(p.node.key,p.columnId);let E={row:p.node.data,node:p.node,rowIndex:p.rowIndex,columnId:p.columnId,selectedKeys:A.getSelectedKeys()},b=(typeof Ce=="function"?Ce(E):Ce)??[],v=[...b,...qa(E,b.length>0)],x=Wa(v.length>0);v.length===0&&x.length===0||ut({left:o.clientX,top:o.clientY},B=>{B.setAttribute("role","menu"),Qu(B,[...v,...x],E)},"kanuni-datagrid-context-menu")};function qa(o,d){if(!Ye?.onChange||Ye.menu===!1)return[];let f=o.columnId;if(!f)return[];let p=o.node.key,E=$u(p,f,o.row),b=[];return d&&b.push({separator:!0,id:"__note-sep"}),b.push({id:"__note-edit",label:E?M.editNote:M.addNote,onSelect:()=>_a(p,f,o.row,E??"")}),E&&b.push({id:"__note-delete",label:M.deleteNote,onSelect:()=>Ye.onChange?.({rowKey:p,columnId:f,row:o.row,text:null})}),b}function _a(o,d,f,p){let b=($.querySelector(`[data-row-key="${CSS.escape(String(o))}"] [data-column-id="${CSS.escape(d)}"]`)??$).getBoundingClientRect();queueMicrotask(()=>{ut({left:b.left,top:b.bottom+2},v=>{v.setAttribute("aria-label",M.noteEditorAria);let x=document.createElement("textarea");x.className="kanuni-datagrid-note-input",x.rows=4,x.value=p,x.setAttribute("aria-label",M.noteEditorAria),x.placeholder=M.notePlaceholder,x.setAttribute("data-testid","dg-note-input");let B=()=>{let I=x.value.trim();pe(),Ye?.onChange?.({rowKey:o,columnId:d,row:f,text:I===""?null:I})};x.addEventListener("keydown",I=>{I.key==="Enter"&&(I.ctrlKey||I.metaKey)&&(I.preventDefault(),B()),I.key==="Escape"&&(I.preventDefault(),pe())});let C=k("kanuni-datagrid-note-actions"),D=document.createElement("button");D.type="button",D.className="kanuni-datagrid-note-cancel",D.textContent=M.cancel,D.addEventListener("click",()=>pe());let R=document.createElement("button");R.type="button",R.className="kanuni-datagrid-note-save",R.setAttribute("data-testid","dg-note-save"),R.textContent=M.save,R.addEventListener("click",B),C.append(D,R),v.append(x,C),queueMicrotask(()=>{x.focus(),x.select()})},"kanuni-datagrid-filter-popup kanuni-datagrid-note-editor")})}function ja(o){Xe!==o&&(Xe=o,o?($.insertBefore(ce,U),tr()):ce.remove())}function Ya(o){if(Ne!==o){if(Ne=o,o){if(Ze){let d=g.length>0?vt:de;se.insertBefore(ae,d)}else se.append(ae);Yu()}else ae.remove();vt.style.setProperty("--dg-pinned-gap",String(Ou+(Ne&&Ze?1:0)))}}function Xu(o){let d=Nu($,o);d!==null&&A.setColumnWidth(o,d)}function Za(o,d){let f=A.getColumnModel().getDef(o),p={columnId:o,headerName:f?.headerName??o},E=Ru(p,{controller:A,t:M,groupPanelVisible:Xe,footerVisible:Ne,onToggleGroupPanel:()=>ja(!Xe),onToggleFooter:()=>Ya(!Ne),onOpenFieldChooser:()=>kn(d),onBestFit:Xu,onBestFitAll:()=>{for(let v of A.getColumnStates())v.visible&&Xu(v.id)},maxGroupLevels:Le?Number.POSITIVE_INFINITY:1}),b=typeof le=="function"?le(p,E):E;b.length!==0&&ut(d,v=>{v.setAttribute("role","menu"),Qu(v,b,p)},"kanuni-datagrid-context-menu")}function Ja(o,d){let f=A.getColumnModel().getDef(o),p=A.getColumnSummary(o),E={columnId:o,headerName:f?.headerName??f?.field??o},b=[{id:"none",label:M.noTotal,disabled:p===null,onSelect:()=>A.setColumnSummary(o,null)},{id:"sep",separator:!0},...la(f?.dataType).map(v=>({id:v,label:Gu[v],disabled:p?.type===v,onSelect:()=>A.setColumnSummary(o,v)}))];ut(d,v=>{v.setAttribute("role","menu"),Qu(v,b,E)},"kanuni-datagrid-context-menu")}function kn(o){ut(o,d=>{let f=k("kanuni-datagrid-filter-list");for(let p of A.getColumnStates()){let E=document.createElement("label");E.className="kanuni-datagrid-filter-item";let b=document.createElement("input");b.type="checkbox",b.checked=p.visible,b.addEventListener("change",()=>{A.setColumnVisible(p.id,b.checked)});let v=document.createElement("span"),x=A.getColumnModel().getDef(p.id);v.textContent=x?.headerName??p.id,E.append(b,v),f.appendChild(E)}d.appendChild(f)},"kanuni-datagrid-filter-popup kanuni-datagrid-column-chooser")}let nt=null,er=null,ou=o=>{ce.classList.toggle("kanuni-datagrid-group-panel--over",o)};function Rn(o,d,f){let p=A.getGroupLevels();if(o===d)return;let E=p.filter(x=>x!==o),b=E.indexOf(d);if(b<0)return;let v=f==="before"?b:b+1;er=o,A.groupBy([...E.slice(0,v),o,...E.slice(v)])}function Nn(o,d){let f=A.getGroupLevels(),p=f.indexOf(o),E=p+d;p<0||E<0||E>=f.length||Rn(o,f[E],d===-1?"before":"after")}function Tn(o,d){if(!o)return;let f=A.getGroupLevels();if(f.includes(o))return;let p=Le?Number.POSITIVE_INFINITY:1;if(f.length>=p){A.groupBy([...f.slice(0,p-1),o]);return}let E=d??f.length;A.groupBy([...f.slice(0,E),o,...f.slice(E)])}function tr(){if(!Xe)return;ce.textContent="";let o=A.getGroupLevels();if(o.length===0){let B=k("kanuni-datagrid-group-panel-hint","span");B.textContent=M.groupPanelHint??"Drag a column header here to group by it",ce.appendChild(B);return}let d=B=>A.getColumnModel().getDef(B)?.headerName??B,f=k("kanuni-datagrid-group-levels"),p=(B,C)=>B<C.top+C.height/2?"before":"after",E=(B,C)=>{for(let D of ce.querySelectorAll(".kanuni-datagrid-group-level"))D.classList.remove("kanuni-datagrid-group-level--drop-before","kanuni-datagrid-group-level--drop-after");B&&C&&B.classList.add(`kanuni-datagrid-group-level--drop-${C}`)};o.forEach((B,C)=>{let D=k("kanuni-datagrid-group-level");D.style.setProperty("--dg-group-level",String(C)),D.setAttribute("data-group-level",String(C));let R=k("kanuni-datagrid-group-chip");if(R.setAttribute("role","button"),R.tabIndex=0,o.length>1&&(R.draggable=!0),R.setAttribute("aria-label",`${yt(M.groupLevelAria,{n:C+1})}: ${d(B)}`),R.addEventListener("dragstart",L=>{nt=B,L.dataTransfer&&(L.dataTransfer.effectAllowed="move",L.dataTransfer.setData("text/x-kanuni-column",B))}),R.addEventListener("dragend",()=>{nt=null,E(null,null)}),R.addEventListener("keydown",L=>{let H=L.ctrlKey||L.metaKey;H&&(L.key==="ArrowUp"||L.key==="ArrowLeft")?(L.preventDefault(),Nn(B,-1)):H&&(L.key==="ArrowDown"||L.key==="ArrowRight")?(L.preventDefault(),Nn(B,1)):(L.key==="Delete"||L.key==="Backspace")&&(L.preventDefault(),A.groupBy(o.filter(Y=>Y!==B)))}),D.addEventListener("dragover",L=>{!nt&&!(L.dataTransfer?.types.includes("text/x-kanuni-column")??!1)||(L.preventDefault(),L.stopPropagation(),E(D,p(L.clientY,D.getBoundingClientRect())))}),D.addEventListener("drop",L=>{L.preventDefault(),L.stopPropagation();let H=p(L.clientY,D.getBoundingClientRect());E(null,null),ou(!1);let Y=nt;if(nt=null,Y){Rn(Y,B,H);return}let ie=L.dataTransfer?.getData("text/x-kanuni-column");ie&&Tn(ie,H==="before"?C:C+1)}),o.length>1){let L=k("kanuni-datagrid-group-chip-level","span");L.textContent=String(C+1),R.appendChild(L)}let I=document.createElement("span");I.textContent=d(B);let P=document.createElement("button");P.type="button",P.setAttribute("aria-label",yt(M.groupRemoveAria,{column:d(B)})),P.textContent="\xD7",P.addEventListener("click",()=>{A.groupBy(o.filter(L=>L!==B))}),P.draggable=!1,R.append(I,P),D.appendChild(R),f.appendChild(D),er===B&&(er=null,queueMicrotask(()=>R.focus()))}),ce.appendChild(f);let b=k("kanuni-datagrid-group-panel-actions"),v=document.createElement("button");v.type="button",v.textContent="Expand all",v.addEventListener("click",()=>A.expandAllGroups());let x=document.createElement("button");x.type="button",x.textContent="Collapse all",x.addEventListener("click",()=>A.collapseAllGroups()),b.append(v,x),ce.appendChild(b)}if(Xe){let o=d=>d.dataTransfer?.types.includes("text/x-kanuni-column")??!1;ce.addEventListener("dragover",d=>{o(d)&&(d.preventDefault(),ou(!0))}),ce.addEventListener("dragleave",d=>{let f=d.relatedTarget;f&&ce.contains(f)||ou(!1)}),ce.addEventListener("drop",d=>{ou(!1);let f=d.dataTransfer?.getData("text/x-kanuni-column");if(f){if(d.preventDefault(),nt){nt=null;return}Tn(f)}})}let Mn="";function In(){if(!Q)return;let o=[yt(M.announceRows,{n:A.getVisibleCount()})],d=A.getSort();if(d.length>0){let E=d.map(b=>{let v=A.getColumnModel().getDef(b.columnId),x=v?.headerName??v?.field??b.columnId,B=b.direction==="desc"?M.announceDescending:M.announceAscending;return`${x} ${B}`}).join(", ");o.push(yt(M.announceSortedBy,{columns:E}))}let f=A.getSelectedCount();f>0&&o.push(yt(M.announceSelected,{n:f}));let p=o.join(", ");p!==Mn&&(Mn=p,Dt.textContent=p)}function Ln(){if(!K)return;Qe.textContent="";let o=ta(A.getEffectiveFilter(),A.getColumnModel(),{...j,labels:{...zr(M),...j?.labels}});if(!o&&K!=="always"){Qe.style.display="none";return}Qe.style.display="";let d=A.isFilterEnabled();Qe.className=`kanuni-datagrid-filter-panel${d?"":" kanuni-datagrid-filter-panel--suspended"}`;let f=document.createElement("button");f.type="button",f.className="kanuni-datagrid-filter-panel-clear",f.title=M.filterRemove,f.setAttribute("aria-label",M.filterRemove),f.setAttribute("data-testid","dg-filter-panel-clear"),f.disabled=o===null,f.textContent="\xD7",f.addEventListener("click",()=>{A.setFilter(null),A.clearColumnFilters(),A.setFilterEnabled(!0)});let p=document.createElement("input");p.type="checkbox",p.className="kanuni-datagrid-filter-panel-toggle",p.checked=d,p.disabled=o===null,p.title=M.filterToggle,p.setAttribute("aria-label",M.filterToggle),p.setAttribute("data-testid","dg-filter-panel-toggle"),p.addEventListener("change",()=>A.setFilterEnabled(p.checked));let E=k("kanuni-datagrid-filter-panel-text","span");if(E.setAttribute("data-testid","dg-filter-panel-text"),E.textContent=o??M.filterNone,o&&(E.title=o),Qe.append(f,p,E),Z){let b=document.createElement("button");b.type="button",b.className="kanuni-datagrid-filter-panel-builder",b.title=M.filterEditBuilder,b.setAttribute("aria-label",M.filterEditBuilder),b.setAttribute("data-testid","dg-filter-panel-builder"),b.textContent="\u25BE",b.addEventListener("click",Z),Qe.appendChild(b)}}let ur=new Set,Qa=A.events.on("cellsFlashed",({rowKeys:o,columnIds:d,duration:f})=>{let p=o.length?o.map(x=>`[data-row-key="${CSS.escape(String(x))}"]`).join(","):".kanuni-datagrid-row",E=d.length?d.map(x=>`[data-column-id="${CSS.escape(x)}"]`).join(","):"[data-column-id]",b=[];X.querySelectorAll(p).forEach(x=>{x.querySelectorAll(E).forEach(B=>b.push(B))});for(let x of b)x.classList.remove("kanuni-datagrid-cell--flash");$.offsetWidth;for(let x of b)x.classList.add("kanuni-datagrid-cell--flash");let v=setTimeout(()=>{for(let x of b)x.classList.remove("kanuni-datagrid-cell--flash");ur.delete(v)},f);ur.add(v)});function Oe(o){let d=o.target,f=d.closest(".kanuni-datagrid-row");if(!f||!X.contains(f))return null;let p=f.getAttribute("data-row-key");if(p===null)return null;let E=A.getRows(),b=E.findIndex(x=>String(x.key)===p);if(b===-1)return null;let v=d.closest(".kanuni-datagrid-cell")?.getAttribute("data-column-id")??null;return{node:E[b],rowIndex:b,columnId:v}}let Pn=o=>{let d=Oe(o);d&&(Re?.(d.node),A.notifyRow("rowClicked",d.node,d.rowIndex),d.columnId&&A.notifyCell("cellClicked",d.node,d.rowIndex,d.columnId))},Gn=o=>{let d=Oe(o);if(d){if(Qr){let f=lr(d);f&&Qr(f)}bt?.(d.node),A.notifyRow("rowDoubleClicked",d.node,d.rowIndex),d.columnId&&A.notifyCell("cellDoubleClicked",d.node,d.rowIndex,d.columnId)}};X.addEventListener("click",Pn),X.addEventListener("dblclick",Gn);function Xa(o){let d=0,f=ve.querySelector(`[data-column-id="${CSS.escape(o)}"]`);f&&(d=f.scrollWidth),X.querySelectorAll(`[data-column-id="${CSS.escape(o)}"]`).forEach(p=>{p.scrollWidth>d&&(d=p.scrollWidth)}),d>0&&A.setColumnWidth(o,d+12,!0)}function eo(){if(N)for(let o of ve.querySelectorAll(".kanuni-datagrid-filter-button")){let d=o.parentElement?.getAttribute("data-column-id");d&&o.classList.toggle("kanuni-datagrid-filter-button--active",A.getColumnFilter(d)!==null)}}let rr=!1,On=!1,gt=null;function lu(){gt!==null&&(clearTimeout(gt),gt=null)}function su(o){xt.style.display=o?"":"none"}function du(){let o=A.getOverlay();if(jt.style.display=o==="noRows"?"":"none",Pu===!1){lu(),su(!1);return}if(!(o==="loading"&&(rr||!On))){lu(),su(!1);return}if(rr||un<=0){lu(),su(!0);return}gt!==null||xt.style.display===""||(gt=setTimeout(()=>{gt=null,ye||su(!0)},un))}let Vn=!1,nr=!1,ir=!1,ar=!1,ye=!1;function to(){if(nr=!1,!ye){if(ir)ir=!1,ar&&(ar=!1,tt++),Wu(),Uu(),_u(),Zu();else{let o=he;Wu(),he!==o&&(tt++,Uu(),_u(),Zu())}qu(),fn(),Yu(),vn(),eo(),tr(),Ln(),In(),du()}}function or(o){ye||(o&&(ir=!0),!nr&&(nr=!0,queueMicrotask(to)))}let uo=[...fe?[A.events.on("focusedRowChanged",o=>fe({rowKey:o.rowKey,row:o.row}))]:[],...y0.map(o=>A.events.on(o,()=>or(!0))),...E0.map(o=>A.events.on(o,()=>{ar=!0})),...A0.map(o=>A.events.on(o,()=>or(!1))),A.events.on("overlayChanged",o=>{rr=o.manual===!0&&o.overlay==="loading",ye||du()}),A.events.on("busyChanged",o=>{On=o.background===!0,ye||du()}),A.events.on("paginationChanged",()=>{ye||or(!1)}),A.events.on("scrollRequested",o=>{if(ye)return;o.scrollTop!==void 0&&(U.scrollTop=o.scrollTop),o.scrollLeft!==void 0&&(U.scrollLeft=o.scrollLeft),A.setScroll(U.scrollTop,Math.abs(U.scrollLeft));let d=o.scrollTop;d===void 0||Math.abs(U.scrollTop-d)<=1||setTimeout(()=>{ye||Math.abs(U.scrollTop-d)<=1||(U.scrollTop=d,A.setScroll(U.scrollTop,Math.abs(U.scrollLeft)))},0)}),...O==="fitGrid"?[A.events.on("gridSizeChanged",()=>A.sizeColumnsToFit())]:[],...O==="fitCells"?[A.events.on("firstDataRendered",()=>{ye||Vn||(Vn=!0,queueMicrotask(()=>{if(!ye)for(let o of A.getColumnStates())o.visible&&Xu(o.id)}))})]:[]];O==="fitGrid"&&A.sizeColumnsToFit();function lr(o){if(!o.columnId||o.node.kind!=="data")return null;let d=Fe.find(f=>f.id===o.columnId);return d?{node:o.node,columnId:o.columnId,rowIndex:o.rowIndex,columnIndex:d.visualIndex,value:A.getColumnModel().getCellValue(o.node.data,d.id)}:null}let zn=o=>{let d=o.target;if(Jr){let x=Oe(o),B=x?lr(x):null;B&&Jr(B,o)}let f=d.closest(".kanuni-datagrid-row");if(!f||f.classList.contains("kanuni-datagrid-group-row"))return;let p=f.getAttribute("data-row-key");if(p===null)return;let E=A.getRows().find(x=>String(x.key)===p);if(!E||E.kind!=="data")return;A.handleRowClick(E.key,{ctrlKey:o.ctrlKey||Sa&&!o.shiftKey,metaKey:o.metaKey,shiftKey:o.shiftKey});let b=d.closest(".kanuni-datagrid-cell"),v=b?Fe.find(x=>b.id.endsWith(`-${x.id}`))?.id:void 0;v&&A.focusCell(E.key,v)},Hn=o=>{if(!qt)return;let f=o.target.closest(".kanuni-datagrid-cell");if(!f||!X.contains(f)||o.relatedTarget?.closest?.(".kanuni-datagrid-cell")===f)return;let E=Oe(o),b=E?lr(E):null;b&&qt(b,o)};X.addEventListener("mousedown",zn),X.addEventListener("contextmenu",Bn),qt&&X.addEventListener("mouseover",Hn),Jt&&(de.addEventListener("dragstart",Ba),de.addEventListener("dragover",ka),de.addEventListener("drop",Ra),de.addEventListener("dragend",Na),de.addEventListener("dragleave",Ta)),$.tabIndex=0;let Kn=o=>{let d=o.target;if(d.tagName==="INPUT"||d.tagName==="TEXTAREA"||d.isContentEditable)return;let f=ia({key:o.key,ctrlKey:o.ctrlKey,metaKey:o.metaKey,shiftKey:o.shiftKey,altKey:o.altKey});if(!f)return;if(f.type==="copy"){au();return}if(f.type==="activate"){if(bt){let b=A.getFocus(),v=b?A.getRows().find(x=>x.key===b.rowKey):void 0;v&&bt(v)}f.preventDefault&&o.preventDefault();return}A.executeCommand(f),f.preventDefault&&o.preventDefault();let p=A.getFocusIndices();if(p){let v=A.getColumnLayout().center.findIndex(B=>B.state.id===A.getFocus()?.columnId),x=A.ensureVisible(p.rowIndex,v===-1?void 0:v);x&&(x.scrollTop!==void 0&&(U.scrollTop=x.scrollTop),x.scrollLeft!==void 0&&(U.scrollLeft=x.scrollLeft),A.setScroll(U.scrollTop,Math.abs(U.scrollLeft)))}let E=A.getFocus();$.setAttribute("aria-activedescendant",E?`${t.gridId}-cell-${String(E.rowKey)}-${E.columnId}`:"")};$.addEventListener("keydown",Kn);let ro=en?ua(A,en):null,no=typeof je=="object"?je.delay??400:400,io=je!==!1&&!(typeof je=="object"&&je.enabled===!1),ao=typeof je=="object"?je.showOnTruncation!==!1:!0,Nt=null,cu=null;function Tt(){cu&&clearTimeout(cu),cu=null,Nt?.remove(),Nt=null}let oo=o=>o.scrollWidth>o.clientWidth+1||o.scrollHeight>o.clientHeight+1;function lo(o){let f=o.closest(".kanuni-datagrid-row")?.getAttribute("data-row-key"),p=Fe.find(x=>o.id.endsWith(`-${x.id}`));if(!f||!p)return null;let E=A.getRows().find(x=>String(x.key)===f);if(!E||E.kind!=="data")return null;let b=p.def,v=$u(E.key,p.id,E.data);if(v)return v;if(typeof b.tooltip=="function")return b.tooltip({value:A.getColumnModel().getCellValue(E.data,p.id),row:E.data,node:E,column:b})??null;if(typeof b.tooltip=="string")return b.tooltip;if(b.tooltipField){let x=E.data[b.tooltipField];return x==null?null:String(x)}return ao&&oo(o)?o.textContent??null:null}let Wn=o=>{if(!io)return;Tt();let d=o.target.closest(".kanuni-datagrid-cell");!d||!X.contains(d)||(cu=setTimeout(()=>{let f=lo(d);if(!f)return;let p=d.getBoundingClientRect();Nt=k(`${Yr(t)} kanuni-datagrid-portal`);let E=k("kanuni-datagrid-tooltip");E.setAttribute("role","tooltip"),E.textContent=f,E.style.position="fixed",E.style.left=`${p.left}px`,E.style.top=`${p.bottom+4}px`,E.style.zIndex="1001",Nt.appendChild(E),document.body.appendChild(Nt)},no))},Un=()=>Tt();$.addEventListener("pointerover",Wn),$.addEventListener("pointerout",Un),U.addEventListener("scroll",Tt,{passive:!0});let $n=()=>{if(A.setScroll(U.scrollTop,Math.abs(U.scrollLeft)),Ve)for(let o of qn())o.scroller.scrollLeft!==U.scrollLeft&&(o.scroller.scrollLeft=U.scrollLeft)};U.addEventListener("scroll",$n,{passive:!0});let Ve=null,qn=()=>{if(!ue||!Ve)return[];let o=Kt.get(ue);return o?[...o].filter(d=>d!==Ve):[]},_n=null;if(ue){Ve={controller:A,scroller:U};let o=Kt.get(ue)??new Set;o.add(Ve),Kt.set(ue,o),_n=A.events.on("columnStateChanged",()=>{if(jr.has(ue))return;let d=qn();if(d.length===0)return;let f=A.getColumnStates();jr.add(ue);try{for(let p of d)p.controller.applyColumnStates(f)}finally{jr.delete(ue)}})}let jn=()=>{A.setViewportSize(U.clientWidth,U.clientHeight),U.style.setProperty("--dg-viewport-width",`${U.clientWidth}px`);let o=de.getBoundingClientRect(),d=se.getBoundingClientRect();A.setChromeOffsets(o.top-d.top,d.bottom-o.bottom),da(U,A)};jn();let hu=null;return typeof ResizeObserver<"u"&&(hu=new ResizeObserver(jn),hu.observe(U),hu.observe(se)),Wu(),Uu(),_u(),Ha(),Zu(),qu(),Yu(),vn(),tr(),Ln(),In(),du(),St?.always&&Hu(!0),{controller:A,element:$,setData:o=>A.setData(o),setColumns:o=>A.setColumns(o),destroy:()=>{if(!ye){if(ye=!0,uo.forEach(o=>o()),hu?.disconnect(),gn?.(),Bt&&(Bt=!1,st--,st<=0&&(st=0,document.documentElement.classList.remove("kanuni-datagrid-printing"))),_n?.(),ue&&Ve){let o=Kt.get(ue);o?.delete(Ve),o&&o.size===0&&Kt.delete(ue),Ve=null}U.removeEventListener("scroll",$n),X.removeEventListener("mousedown",zn),X.removeEventListener("contextmenu",Bn),qt&&X.removeEventListener("mouseover",Hn),X.removeEventListener("click",Pn),X.removeEventListener("dblclick",Gn),Qa(),lu();for(let o of ur)clearTimeout(o);$.removeEventListener("keydown",Kn),$.removeEventListener("pointerover",Wn),$.removeEventListener("pointerout",Un),U.removeEventListener("scroll",Tt),Tt(),ro?.(),pe(),A.dispose(),$.remove()}}}}return Co(k0);})();
|
|
11
|
+
Cause:`,e))}var Ts=1e5,Ms=12,Is=2e3,Ls=500,Fi=2e5;function Si(){return new Promise(e=>{if(typeof MessageChannel>"u"){setTimeout(e,0);return}let t=new MessageChannel;t.port1.onmessage=()=>{t.port1.close(),e()},t.port2.postMessage(void 0)})}var ke=class extends Error{constructor(e){super(`[datagrid] ${e}`),this.name="WorkerRequestAbandoned"}},bu=class extends Error{constructor(){super("[datagrid] compute cancelled"),this.name="WorkerRequestCancelled"}};function Ps(){return typeof Worker<"u"}function na(e,t){if(e){if("nodes"in e){for(let u of e.nodes)na(u,t);return}t.add(e.columnId)}}function kr(e,t){let u=new Set;for(let r of t.sort)u.add(r.columnId);if(na(t.filter,u),(t.searchText??"").trim().length>0)for(let r of Sr(e))u.add(r);return[...u].filter(r=>e.getState(Gr(r)??r)!==void 0)}var Eu=class{mode="client";rows;options;fallback;threshold;worker=null;workerBroken=!1;dataVersion=0;encodeToken=0;encodeQueue=Promise.resolve();initializedVersion=-1;encodedColumns=new Set;lastTimings={encodeMs:0,workerMs:0,projectMs:0};getLastTimings(){return this.lastTimings}encodedMeta=new Map;requestCounter=0;pending=new Map;pendingAggregate=new Map;nodeCache=new Zi;constructor(e,t){this.rows=e,this.options=t,this.threshold=t.threshold??Rs,this.fallback=new Ss(e,{keyGetter:t.keyGetter,locale:t.locale,nodeCache:this.nodeCache})}getTotalCount(){return this.rows.length}setData(e){this.rows=e,this.fallback.setData(e),this.encodedMeta.clear(),this.nodeCache.invalidate(),this.dataVersion++,this.settlePending("data replaced while a worker request was in flight")}patchData(e,t,u){this.rows=e,this.fallback.patchData(e,t,u);let r=this.dataVersion;this.dataVersion++,this.tryPatchWorker(r,t,u),this.settlePending("data replaced while a worker request was in flight")}tryPatchWorker(e,t,u){if(!this.worker||this.workerBroken||!u||this.initializedVersion!==e)return;if(t.length===0){this.postPatch(e,[]);return}let r=[];for(let n of this.encodedColumns){let i=this.encodedMeta.get(n);if(!i)return;if(i.displaySource!==null){let s=i.displaySource,c=[],m=[];for(let p of t)m.push(zi(u,s,this.rows[p])),c.push(p);r.push({columnId:n,kind:"text",indices:c,labels:m});continue}let a=i.usesSortValue?s=>u.getSortValue(s,n):s=>u.getCellValue(s,n),l=[];if(i.kind==="numeric"){let s=i.dataType==="date"?Ki:Hi,c=[],m=i.hasSearch?[]:void 0;for(let p of t){let C=a(this.rows[p]);if(Fu(C))c.push(Number.NaN),m?.push(null);else{if(!i.hasSearch&&typeof C!="number")return;c.push(s(C)),m?.push(String(C))}l.push(p)}r.push({columnId:n,kind:"numeric",indices:l,numbers:c,labels:m})}else{let s=[];for(let c of t){let m=a(this.rows[c]);s.push(Fu(m)?null:String(m)),l.push(c)}r.push({columnId:n,kind:"text",indices:l,labels:s})}}this.postPatch(e,r)}postPatch(e,t){let u={action:"patchRows",gridId:this.options.gridId,fromVersion:e,toVersion:this.dataVersion,patches:t};this.worker.postMessage(u),this.initializedVersion=this.dataVersion}getSourceRows(){return this.rows}usesWorker(){return this.options.enabled!==!1&&!this.workerBroken&&Ps()&&this.rows.length>=this.threshold}async getRows(e,t){if(!this.usesWorker()||vs(e,t.sort)||typeof t.externalFilter=="function")return this.fallback.compute(e,t);try{let u=performance.now(),r=await this.computeOnWorker(e,t);return this.lastTimings.workerMs=Math.round(performance.now()-u)-this.lastTimings.encodeMs,this.buildResult(r)}catch(u){if(u instanceof ke||u instanceof bu)throw u;return this.workerBroken=!0,this.teardownWorker(),Ns(u,this.options.debugMode===!0),this.fallback.compute(e,t)}}buildResult(e){let t=performance.now(),u=this.nodeCache.project(e,this.rows,this.options.keyGetter);return this.lastTimings.projectMs=Math.round(performance.now()-t),{nodes:u,visibleCount:e.length,totalCount:this.rows.length}}ensureWorker(){if(this.worker)return this.worker;let e=this.options.workerUrl,t=e?new Worker(e,{type:"module"}):new Worker(ks());return t.onmessage=u=>this.onMessage(u.data),t.onerror=u=>{let r=new Error(`datagrid worker error: ${u.message??"unknown"}`);this.pending.forEach(n=>n.reject(r)),this.pending.clear(),this.pendingAggregate.forEach(n=>n.reject(r)),this.pendingAggregate.clear()},this.worker=t,t}onMessage(e){if(e.action==="result"){if(e.dataVersion!==this.dataVersion)return;let t=this.pending.get(e.requestId);if(!t)return;this.pending.delete(e.requestId),t.resolve(new Uint32Array(e.order))}else if(e.action==="aggregated"){if(e.dataVersion!==this.dataVersion)return;let t=this.pendingAggregate.get(e.requestId);if(!t)return;this.pendingAggregate.delete(e.requestId),t.resolve(e)}else if(e.action==="error"){let t=this.pending.get(e.requestId)??this.pendingAggregate.get(e.requestId);if(!t)return;this.pending.delete(e.requestId),this.pendingAggregate.delete(e.requestId),t.reject(new Error(e.message))}else if(e.action==="progress"){if(e.dataVersion!==this.dataVersion||!this.pending.has(e.requestId))return;this.options.onPhaseProgress?.(e.phase,e.fraction)}else if(e.action==="cancelled"){let t=this.pending.get(e.requestId);if(!t)return;this.pending.delete(e.requestId),t.reject(new bu)}}cancel(){if(this.encodeToken++,!this.worker||this.pending.size===0)return;let e={action:"cancel",gridId:this.options.gridId};this.worker.postMessage(e)}async encodeOne(e,t,u,r,n,i){if(!r)return Wo(this.rows,e,t,u);let a=Wi(this.rows,e,t,u),l=Is;for(;;){let s=performance.now(),c=a.step(l),m=performance.now()-s;if(!c)break;let p=m>0?Math.round(l*Ms/m):Fi;if(l=Math.min(Fi,Math.max(Ls,p)),await Si(),this.encodeToken!==i)throw new ke("encode cancelled");n?.(a.done/a.total)}return a.finish()}toWire(e,t,u,r,n){let i=Gr(t);if(this.encodedMeta.set(t,{kind:r.kind,hasSearch:r.kind==="numeric"&&!!r.searchCodes,usesSortValue:u,dataType:i===null?e.getDataType(t):"string",displaySource:i}),r.kind==="numeric"){let l={columnId:t,kind:"numeric",buffer:r.values.buffer};return n.push(l.buffer),r.searchCodes&&r.searchDictionary&&(l.searchBuffer=r.searchCodes.buffer,l.searchDictionary=r.searchDictionary,n.push(l.searchBuffer)),l}let a={columnId:t,kind:"text",buffer:r.codes.buffer,dictionary:r.dictionary};return n.push(a.buffer),a}enqueueEncode(e,t){let u=this.encodeQueue.then(()=>{if(this.encodeToken!==e)throw new ke("encode cancelled");return t(e)});return this.encodeQueue=u.catch(()=>{}),u}async sendColumns(e,t,u,r,n=!1,i=this.encodeToken){let a=this.dataVersion,l=[],s=[],c=this.rows.length>=Ts&&u.length>0;for(let p=0;p<u.length;p++){if(c){if(await Si(),this.encodeToken!==i)throw new ke("encode cancelled");n||this.options.onEncodeProgress?.(p/u.length)}let C=t.getDef(u[p])?.calculateSortValue!=null,g=await this.encodeOne(t,u[p],C,c,n?void 0:E=>this.options.onEncodeProgress?.((p+E)/u.length),i);l.push(this.toWire(t,u[p],C,g,s))}c&&!n&&this.options.onEncodeProgress?.(1);let m=r?{action:"init",gridId:this.options.gridId,dataVersion:a,rowCount:this.rows.length,columns:l}:{action:"addColumns",gridId:this.options.gridId,dataVersion:a,columns:l};if(e.postMessage(m,s),r)this.initializedVersion=a,this.encodedColumns=new Set(u);else for(let p of u)this.encodedColumns.add(p)}async computeOnWorker(e,t){let u=this.ensureWorker();this.lastTimings={encodeMs:0,workerMs:0,projectMs:0},await this.enqueueEncode(this.encodeToken,async l=>{let s=kr(e,t),c=this.initializedVersion!==this.dataVersion,m=c?s:s.filter(C=>!this.encodedColumns.has(C));if(!c&&m.length===0)return;let p=performance.now();if(await this.sendColumns(u,e,m,c,!1,l),this.lastTimings.encodeMs=Math.round(performance.now()-p),this.initializedVersion!==this.dataVersion)throw new ke("data replaced while columns were being encoded")});let r=++this.requestCounter,n=Sr(e),i=new Promise((l,s)=>{this.pending.set(r,{resolve:l,reject:s})}),a={action:"compute",gridId:this.options.gridId,dataVersion:this.dataVersion,requestId:r,sort:t.sort,filter:t.filter,searchText:t.searchText,searchColumns:n,searchLabelHits:ai(Fr(e,n,zt(t.searchText))),locale:this.options.locale??"en"};return u.postMessage(a),i}async aggregate(e,t,u){if(!this.usesWorker()||!Yi(u))return null;try{let r=this.ensureWorker(),n=new Set(kr(e,t));n.add(u.categoryColumnId);for(let C of u.series)n.add(C.columnId);if(this.initializedVersion!==this.dataVersion)return null;await this.enqueueEncode(this.encodeToken,async C=>{if(this.initializedVersion!==this.dataVersion)throw new ke("data replaced while the chart waited to encode");let g=[...n].filter(E=>!this.encodedColumns.has(E));if(g.length!==0&&(await this.sendColumns(r,e,g,!1,!0,C),this.initializedVersion!==this.dataVersion))throw new ke("data replaced while columns were being encoded")});let i=++this.requestCounter,a=Sr(e),l=new Promise((C,g)=>{this.pendingAggregate.set(i,{resolve:C,reject:g})}),s={action:"aggregate",gridId:this.options.gridId,dataVersion:this.dataVersion,requestId:i,filter:t.filter,searchText:t.searchText,searchColumns:a,searchLabelHits:ai(Fr(e,a,zt(t.searchText))),locale:this.options.locale??"en",categoryColumnId:u.categoryColumnId,series:u.series.map(C=>({columnId:C.columnId,aggregate:C.aggregate,label:C.label??e.getDef(C.columnId)?.headerName??C.columnId})),maxCategories:u.maxCategories,otherBucket:u.otherBucket,categoryOrder:u.categoryOrder,categoryBucket:u.categoryBucket,otherLabel:u.otherLabel};r.postMessage(s);let c=await l,m=c.categories.length,p=new Float64Array(c.values);return{categories:c.categories,series:u.series.map((C,g)=>({label:c.seriesLabels[g]??C.columnId,columnId:C.columnId,aggregate:C.aggregate,values:p.subarray(g*m,(g+1)*m)})),truncated:c.truncated,otherIndex:c.otherIndex,rowCount:c.rowCount,categoryCount:c.categoryCount,rankingExact:c.rankingExact,bucket:c.bucket,bucketStarts:c.bucketStarts?new Float64Array(c.bucketStarts):void 0,bucketEnds:c.bucketEnds?new Float64Array(c.bucketEnds):void 0}}catch(r){return r instanceof ke||r instanceof bu||this.options.debugMode&&console.error("[datagrid] worker chart aggregation failed, using main thread:",r),null}}teardownWorker(){if(this.worker){try{let e={action:"dispose",gridId:this.options.gridId};this.worker.postMessage(e)}catch{}this.worker.terminate(),this.worker=null,this.initializedVersion=-1,this.encodedColumns.clear()}}dispose(){this.settlePending("grid disposed while a worker request was in flight"),this.teardownWorker(),this.rows=[]}settlePending(e){if(this.pending.size===0&&this.pendingAggregate.size===0)return;let t=new ke(e);this.pending.forEach(u=>u.reject(t)),this.pending.clear(),this.pendingAggregate.forEach(u=>u.reject(t)),this.pendingAggregate.clear()}};var Gs=class{mode;selected=new Set;allMatching=!1;anchor=null;constructor(e="none"){this.mode=e}getMode(){return this.mode}setMode(e){if(e===this.mode)return!1;if(this.mode=e,e==="none")this.clear();else if(e==="single"&&this.allMatching)this.clear();else if(e==="single"&&this.selected.size>1){let t=this.selected.values().next().value;this.selected=new Set([t])}return!0}isSelected(e){return this.allMatching?!this.selected.has(e):this.selected.has(e)}getSelectedKeys(){return[...this.selected]}getSelectionDescriptor(){return{allMatching:this.allMatching,keys:[...this.selected]}}isAllMatching(){return this.allMatching}getSelectedCount(e){return this.allMatching?e===void 0?0:Math.max(0,e-this.selected.size):this.selected.size}selectAllMatching(){return this.mode!=="multiple"||this.allMatching&&this.selected.size===0?!1:(this.allMatching=!0,this.selected=new Set,!0)}getAnchor(){return this.anchor}select(e){return this.mode==="none"||!this.allMatching&&this.selected.size===1&&this.selected.has(e)?!1:(this.allMatching=!1,this.selected=new Set([e]),this.anchor=e,!0)}toggle(e){return this.mode==="none"?!1:this.isSelected(e)?(this.allMatching?this.selected.add(e):this.selected.delete(e),!0):(this.allMatching?this.selected.delete(e):this.mode==="single"?this.selected=new Set([e]):this.selected.add(e),this.anchor=e,!0)}selectRange(e,t,u=!1){if(this.mode!=="multiple")return this.select(e);let r=this.anchor??e,n=t.indexOf(r),i=t.indexOf(e);if(n===-1||i===-1)return this.select(e);let a=Math.min(n,i),l=Math.max(n,i),s=u&&!this.allMatching?new Set(this.selected):new Set;for(let c=a;c<=l;c++)s.add(t[c]);return!this.allMatching&&wr(s,this.selected)?!1:(this.allMatching=!1,this.selected=s,!0)}selectAll(e){if(this.mode!=="multiple")return!1;let t=new Set(e);return!this.allMatching&&wr(t,this.selected)?!1:(this.allMatching=!1,this.selected=t,this.anchor=e[0]??null,!0)}clear(){return!this.allMatching&&this.selected.size===0?!1:(this.allMatching=!1,this.selected=new Set,!0)}setSelectedKeys(e){if(this.mode==="none")return!1;let t=new Set(this.mode==="single"?e.slice(0,1):e);return!this.allMatching&&wr(t,this.selected)?!1:(this.allMatching=!1,this.selected=t,this.anchor=t.size>0?[...t][t.size-1]:null,!0)}handleRowClick(e,t,u){if(this.mode==="none")return!1;let r=!!(t.ctrlKey||t.metaKey);return t.shiftKey&&this.mode==="multiple"?this.selectRange(e,u,r):r?this.toggle(e):this.select(e)}retainKeys(e){let t=!1;for(let u of this.selected)e.has(u)||(this.selected.delete(u),t=!0);return this.anchor!==null&&!e.has(this.anchor)&&(this.anchor=null),t}};function wr(e,t){if(e.size!==t.size)return!1;for(let u of e)if(!t.has(u))return!1;return!0}function Os(e){return{count:e.length,keyAt:t=>e[t],indexOf:t=>e.indexOf(t)}}function it(e,t,u){return e<t?t:e>u?u:e}function yr(e){return e.rows??Os(e.rowKeys??[])}var Vs=class{position=null;get(){return this.position}isFocused(e,t){return this.position?.rowKey===e&&this.position?.columnId===t}set(e){return e?.rowKey===this.position?.rowKey&&e?.columnId===this.position?.columnId?!1:(this.position=e,!0)}clear(){return this.set(null)}getIndices(e){if(!this.position)return null;let t=yr(e).indexOf(this.position.rowKey),u=e.columnIds.indexOf(this.position.columnId);return t===-1||u===-1?null:{rowIndex:t,columnIndex:u}}move(e,t){let{columnIds:u}=t,r=yr(t);if(r.count===0||u.length===0)return!1;let n=Math.max(1,t.pageSize??10),i=this.getIndices(t);if(!i){let C=r.keyAt(0);return C===void 0?!1:this.set({rowKey:C,columnId:u[0]})}let a=r.count-1,l=u.length-1,{rowIndex:s,columnIndex:c}=i,m=s;switch(e){case"up":s=it(s-1,0,a);break;case"down":s=it(s+1,0,a);break;case"left":c=it(c-1,0,l);break;case"right":c=it(c+1,0,l);break;case"pageUp":s=it(s-n,0,a);break;case"pageDown":s=it(s+n,0,a);break;case"rowStart":c=0;break;case"rowEnd":c=l;break;case"gridStart":s=0,c=0;break;case"gridEnd":s=a,c=l;break}if(t.isFocusable){let C=s>m?1:s<m?-1:0;s=this.skipUnfocusable(r,s,C,t.isFocusable,m)}let p=r.keyAt(s);return p===void 0?!1:this.set({rowKey:p,columnId:u[c]})}skipUnfocusable(e,t,u,r,n){if(r(e.keyAt(t),t))return t;let i=u===0?-1:u;for(let a=t+i;a>=0&&a<e.count;a+=i)if(r(e.keyAt(a),a))return a;for(let a=t-i;a>=0&&a<e.count;a-=i)if(r(e.keyAt(a),a))return a;return n}reconcile(e,t){if(!this.position)return!1;let{columnIds:u}=e,r=yr(e);if(r.count===0||u.length===0)return this.clear();let n=r.indexOf(this.position.rowKey)!==-1,i=u.includes(this.position.columnId)?this.position.columnId:u[0];if(n)return this.set({rowKey:this.position.rowKey,columnId:i});let a=it(t??0,0,r.count-1),l=r.keyAt(a);return l===void 0?this.clear():this.set({rowKey:l,columnId:i})}},ge=(e,t=!0)=>({type:e,preventDefault:t});function ia(e){let t=!!(e.ctrlKey||e.metaKey),u=!!e.shiftKey;switch(e.key){case"ArrowUp":return ge(u?"extendSelectionUp":"up");case"ArrowDown":return ge(u?"extendSelectionDown":"down");case"ArrowLeft":return ge("left");case"ArrowRight":return ge("right");case"PageUp":return ge("pageUp");case"PageDown":return ge("pageDown");case"Home":return ge(t?"gridStart":"rowStart");case"End":return ge(t?"gridEnd":"rowEnd");case" ":case"Spacebar":return ge("toggleSelection");case"Enter":return ge("activate");case"Escape":return ge("clearSelection");case"a":case"A":return t?ge("selectAll"):null;case"c":case"C":return t?ge("copy",!1):null;default:return null}}function zs(e){return e==="up"||e==="down"||e==="left"||e==="right"||e==="pageUp"||e==="pageDown"||e==="rowStart"||e==="rowEnd"||e==="gridStart"||e==="gridEnd"}var Hs="__dg_";function Ks(e){return e.startsWith(Hs)}function Ws(e){return e.filter(t=>!Ks(t))}function Rr(e){return e.replace(/[\t\r\n]+/g," ")}function Us(e,t,u){let r=u.getCellValue(e.data,t);return Rr(Du(u.getDef(t),r,e.data))}function $s(e,t,u={}){let r=u.columnIds??Ws(t.runtime().map(i=>i.state.id));if(r.length===0)return"";let n=[];if(u.includeGroupHeaders){let i=r.map(l=>Le(t.getDef(l))),a=i.reduce((l,s)=>Math.max(l,s.length),0);for(let l=0;l<a;l++){let s=null;n.push(i.map(c=>{let m=c[l]??"",p=m===""?null:c.slice(0,l+1).join("\0"),C=p!==null&&p===s;return s=p,C?"":Rr(m)}).join(" "))}}(u.includeHeaders||u.includeGroupHeaders)&&n.push(r.map(i=>Rr(t.getDef(i)?.headerName??t.getDef(i)?.field??i)).join(" "));for(let i of e)at(i)&&n.push(r.map(a=>Us(i,a,t)).join(" "));return n.join(`
|
|
12
|
+
`)}var qs=5,_s=35e5,js=16e6,Ys=4,Zs=3;function Bi(e){let t=[],u=[],r=[];for(let g of e)g.state.pinned==="left"?t.push(g):g.state.pinned==="right"?r.push(g):u.push(g);let n=[],i=0;for(let g of t)n.push(i),i+=g.state.width;let a=[0],l=0;for(let g of u)l+=g.state.width,a.push(l);let s=new Array(u.length).fill(null),c=[],m=i;for(let g=0;g<u.length;g++)u[g].state.pinned==="sticky"&&(s[g]=m,m+=u[g].state.width,c.push(g));let p=new Array(r.length),C=0;for(let g=r.length-1;g>=0;g--)p[g]=C,C+=r[g].state.width;return{left:t,center:u,right:r,leftWidth:i,centerWidth:l,rightWidth:C,totalWidth:i+l+C,centerOffsets:a,leftOffsets:n,rightOffsets:p,centerStickyOffsets:s,stickyIndices:c}}var Js={left:[],center:[],right:[],leftWidth:0,centerWidth:0,rightWidth:0,totalWidth:0,centerOffsets:[0],leftOffsets:[],rightOffsets:[],centerStickyOffsets:[],stickyIndices:[]};function ki(e,t,u){let r=0,n=u-1,i=0;for(;r<=n;){let a=r+n>>1;e[a]<=t?(i=a,r=a+1):n=a-1}return i}function Er(e,t,u){return e<t?t:e>u?u:e}var Qs=class{rowCount=0;heights;overscanY;overscanX;viewportWidth=0;viewportHeight=0;scrollTop=0;scrollLeft=0;maxScrollOffset=_s;leadWidth=0;headerOffset=0;footerOffset=0;maxCanvasHeight=js;layout=Js;window;constructor(e={}){this.heights=new Al(e.rowHeight??28),this.overscanY=Math.max(0,e.overscanY??qs),this.overscanX=Math.max(0,e.overscanX??Zs),this.window=this.compute()}setRowCount(e){let t=Math.max(0,e|0);return t===this.rowCount?!1:(this.rowCount=t,this.commit())}setRowHeight(e){return this.heights.setBase(e)?this.commit():!1}setRowHeights(e){return this.heights.setOverrides(e)?this.commit():!1}getRowHeightAt(e){return this.heights.heightOf(e)}getRowOffset(e){return this.heights.offsetOf(e)}hasUniformRows(){return this.heights.isUniform()}setMaxScrollOffset(e){if(!Number.isFinite(e)||e<=0)return!1;let t=Math.floor(e);return t===this.maxScrollOffset?!1:(this.maxScrollOffset=t,this.commit())}setLeadWidth(e){return this.leadWidth=Math.max(0,e),!1}setChromeOffsets(e,t){let u=Number.isFinite(e)&&e>0?Math.round(e):0,r=Number.isFinite(t)&&t>0?Math.round(t):0;return this.headerOffset=u,this.footerOffset=r,!1}setMaxCanvasHeight(e){if(!Number.isFinite(e)||e<=0)return!1;let t=Math.floor(e);return t===this.maxCanvasHeight?!1:(this.maxCanvasHeight=t,this.commit())}setViewportSize(e,t){let u=Math.max(0,e),r=Math.max(0,t);return u===this.viewportWidth&&r===this.viewportHeight?!1:(this.viewportWidth=u,this.viewportHeight=r,this.commit())}setScroll(e,t){let u=Math.max(0,e),r=Math.max(0,t);return u===this.scrollTop&&r===this.scrollLeft?!1:(this.scrollTop=u,this.scrollLeft=r,this.commit())}setColumnLayout(e){return this.layout=e,this.commit()}getWindow(){return this.window}getColumnLayout(){return this.layout}getRowHeight(){return this.heights.getBase()}getScroll(){return{scrollTop:this.scrollTop,scrollLeft:this.scrollLeft}}getVisibleCenterColumns(){return this.layout.center.slice(this.window.columns.start,this.window.columns.end)}ensureVisible(e,t){let u={};if(e>=0&&e<this.rowCount){let s=this.heights.offsetOf(e),c=s+this.heights.heightOf(e),m=this.virtualTop();s<m?u.scrollTop=this.physicalTop(s,Math.floor):c>m+this.viewportHeight&&(u.scrollTop=this.physicalTop(c-this.viewportHeight,Math.ceil)+this.headerOffset+this.footerOffset)}let{center:r,centerOffsets:n,leftWidth:i,rightWidth:a,stickyIndices:l}=this.layout;if(t!=null&&t>=0&&t<r.length){let s=Math.max(0,this.viewportWidth-this.leadWidth-i-a),c=0;for(let C of l)C<t&&(c+=r[C].state.width);let m=n[t],p=n[t+1];l.includes(t)&&m<this.scrollLeft||(m<this.scrollLeft+c?u.scrollLeft=Math.max(0,m-c):p>this.scrollLeft+s&&(u.scrollLeft=p-s))}return u.scrollTop===void 0&&u.scrollLeft===void 0?null:u}commit(){let e=this.compute(),t=this.window,u=e.rows.start!==t.rows.start||e.rows.end!==t.rows.end||e.rows.offsetY!==t.rows.offsetY||e.rows.totalHeight!==t.rows.totalHeight||e.rows.contentHeight!==t.rows.contentHeight||e.columns.start!==t.columns.start||e.columns.end!==t.columns.end||e.columns.offsetX!==t.columns.offsetX;return u&&(this.window=e),u}compute(){return{rows:this.computeRowWindow(),columns:this.computeColumnWindow()}}scrollGeometry(){let e=this.heights.totalHeight(this.rowCount),t=Math.min(e,this.maxCanvasHeight,this.maxScrollOffset+this.viewportHeight);return{canvas:t,physicalRange:t-this.viewportHeight,virtualRange:e-this.viewportHeight}}virtualTop(){let{physicalRange:e,virtualRange:t}=this.scrollGeometry();return e<=0||t<=e?this.scrollTop:this.scrollTop>=e-Ys?t+this.footerOffset:this.scrollTop*t/e}physicalTop(e,t=Math.round){let{physicalRange:u,virtualRange:r}=this.scrollGeometry();return u<=0||r<=u?e:Er(t(e*u/r),0,u)}computeRowWindow(){let e=this.heights.totalHeight(this.rowCount),{canvas:t}=this.scrollGeometry(),u=t<e;if(this.rowCount===0||this.viewportHeight===0)return{start:0,end:0,offsetY:0,totalHeight:t,contentHeight:e,compressed:u};let r=this.virtualTop(),n=this.rowCount-1,i=Er(this.heights.indexAt(r),0,n),a=Er(this.heights.indexAt(r+this.viewportHeight-1),0,n),l=Math.max(0,i-this.overscanY),s=Math.min(this.rowCount,a+1+this.overscanY),c=this.heights.offsetOf(l)-(r-this.scrollTop);if(u){let m=c+this.heights.offsetOf(s)-this.heights.offsetOf(l);m>t&&(c-=m-t)}return{start:l,end:s,offsetY:c,totalHeight:t,contentHeight:e,compressed:u}}computeColumnWindow(){let{center:e,centerOffsets:t,leftWidth:u,rightWidth:r}=this.layout,n=e.length;if(n===0||this.viewportWidth===0)return{start:0,end:n===0?0:n,offsetX:0};let i=Math.max(0,this.viewportWidth-u-r);if(i===0)return{start:0,end:0,offsetX:0};let a=this.scrollLeft,l=this.scrollLeft+i,s=ki(t,a,n),c=ki(t,l-1,n),m=Math.max(0,s-this.overscanX),p=Math.min(n,c+1+this.overscanX);return{start:m,end:p,offsetX:t[m]}}};function Xs(e){let{getParentKey:t,parentField:u}=e;if(t)return n=>t(n)??null;let r=u??"parentId";return n=>n[r]??null}function e0(e,t,u){let r=new Map,n=new Map,i=new Map;for(let s=0;s<e.length;s++)i.set(t(e[s]),s);for(let s=0;s<e.length;s++){let c=t(e[s]),m=u(e[s]);m!==null&&(m===c||!i.has(m))&&(m=null),n.set(c,m);let p=r.get(m);p?p.push(c):r.set(m,[c])}let a=new Set;for(let s of n.keys()){if(a.has(s))continue;let c=new Set,m=s;for(;m!==null&&!a.has(m);){if(c.has(m)){let p=n.get(m)??null;n.set(m,null);let C=r.get(p);if(C){let E=C.indexOf(m);E>=0&&C.splice(E,1)}let g=r.get(null);g?g.push(m):r.set(null,[m]);break}c.add(m),m=n.get(m)??null}for(let p of c)a.add(p)}let l=r.get(null);return l&&l.sort((s,c)=>(i.get(s)??0)-(i.get(c)??0)),{childrenOf:r,parentOf:n,sourceIndexOf:i}}function t0(e,t){let{index:u,sourceRows:r,isExpanded:n}=t,i=new Map,a=new Map;for(let g=0;g<e.length;g++)i.set(e[g].key,e[g]),a.set(e[g].key,g);let l=e.length!==u.sourceIndexOf.size,s=new Set(i.keys());if(l)for(let g of i.keys()){let E=u.parentOf.get(g)??null;for(;E!==null&&!s.has(E);)s.add(E),E=u.parentOf.get(E)??null}let c=g=>{let E=g.filter(F=>s.has(F));return E.sort((F,S)=>{let T=a.get(F),N=a.get(S);return T!==void 0&&N!==void 0?T-N:T!==void 0?-1:N!==void 0?1:(u.sourceIndexOf.get(F)??0)-(u.sourceIndexOf.get(S)??0)}),E},m=[],p=[],C=c(u.childrenOf.get(null)??[]);for(let g=C.length-1;g>=0;g--)p.push({key:C[g],depth:0});for(;p.length>0;){let{key:g,depth:E}=p.pop(),F=c(u.childrenOf.get(g)??[]),S=F.length>0,T=S&&(l||n(g)),N=i.get(g),V=u.sourceIndexOf.get(g)??-1,K={depth:E,hasChildren:S,expanded:T,ancestorOnly:N===void 0};if(m.push(N?{...N,tree:K}:{kind:"data",key:g,sourceIndex:V,data:r[V],tree:K}),T)for(let Z=F.length-1;Z>=0;Z--)p.push({key:F[Z],depth:E+1})}return{nodes:m}}var Nr=(()=>{if(typeof MessageChannel>"u")return u=>{setTimeout(u,0)};let e=new MessageChannel,t=[];return e.port1.onmessage=()=>{let u=t.shift();u&&u()},e.port1.unref?.(),e.port2.unref?.(),u=>{t.push(u),e.port2.postMessage(null)}})();function Lt(){return new Promise(e=>Nr(e))}var Au=1e5,Ar=32768,Ri=65536;async function u0(e){let{rows:t,getValue:u,collator:r,shouldAbort:n,onProgress:i}=e,a=()=>n?n():!1,l=new Map;for(let E=0;E<t.length;E+=Au){if(a())return null;let F=Math.min(t.length,E+Au);for(let S=E;S<F;S++){let T=u(t[S]),N=T==null?"":String(T);l.has(N)||l.set(N,T)}i?.(F/t.length*.2),F<t.length&&await Lt()}let s=[...l.keys()],c=[];for(let E=0;E<s.length;E+=Ar){if(a())return null;c.push(s.slice(E,E+Ar).sort(r.compare)),i?.(.2+Math.min(s.length,E+Ar)/Math.max(1,s.length)*.2),await Lt()}c.length===0&&(c=[[]]);let m=Math.max(1,Math.ceil(Math.log2(Math.max(2,c.length)))),p=0;for(;c.length>1;){let E=[];for(let F=0;F<c.length;F+=2){if(F+1===c.length){E.push(c[F]);continue}let S=c[F],T=c[F+1],N=new Array(S.length+T.length),V=0,K=0,Z=0,W=Ri;for(;V<S.length&&K<T.length;)if(r.compare(S[V],T[K])<=0?N[Z++]=S[V++]:N[Z++]=T[K++],--W===0){if(a())return null;await Lt(),W=Ri}for(;V<S.length;)N[Z++]=S[V++];for(;K<T.length;)N[Z++]=T[K++];if(E.push(N),a())return null;await Lt()}c=E,p++,i?.(.4+Math.min(1,p/m)*.5)}let C=c[0],g=new Array(C.length);for(let E=0;E<C.length;E+=Au){if(a())return null;let F=Math.min(C.length,E+Au);for(let S=E;S<F;S++){let T=C[S];g[S]={label:T,value:l.get(T)}}F<C.length&&await Lt()}return i?.(1),g}function r0(e){let t={};for(let[u,r]of Object.entries(e)){let n=Object.values(r);n.length!==0&&(t[u]=n.length===1?n[0]:{logic:"and",nodes:n})}return t}var n0=class{state={sort:[],filter:null,columnFilters:{},columnFilterParts:{},filterEnabled:!0,searchText:"",groupBy:[],collapsedGroups:[],expandedDetails:[],page:0,pageSize:50};listeners=new Set;version=0;multiSort;collapsedCache=null;expandedCache=null;constructor(e={}){this.multiSort=e.multiSort??!1}getState(){return this.state}getVersion(){return this.version}subscribe(e){return this.listeners.add(e),()=>this.listeners.delete(e)}commit(e,t="data",u){e.collapsedGroups!==this.state.collapsedGroups&&(this.collapsedCache=u?.collapsed??null),e.expandedDetails!==this.state.expandedDetails&&(this.expandedCache=u?.expanded??null),this.state=e,this.version++,this.listeners.forEach(r=>r(this.state,t))}collapsedSet(){return this.collapsedCache||(this.collapsedCache=new Set(this.state.collapsedGroups)),this.collapsedCache}expandedSet(){return this.expandedCache||(this.expandedCache=new Set(this.state.expandedDetails)),this.expandedCache}commitCollapsed(e){this.commit({...this.state,collapsedGroups:[...e]},"view",{collapsed:e})}commitExpanded(e){this.commit({...this.state,expandedDetails:[...e]},"view",{expanded:e})}toggleSort(e,t=!1){let u=this.state.sort,r=u.find(a=>a.columnId===e),n=r?r.direction==="asc"?"desc":null:"asc",i;this.multiSort&&t?(i=u.filter(a=>a.columnId!==e),n&&i.push({columnId:e,direction:n})):i=n?[{columnId:e,direction:n}]:[],this.commit({...this.state,sort:i})}setSort(e){let t=this.multiSort?e.slice():e.slice(0,1);this.commit({...this.state,sort:t})}clearSort(){this.state.sort.length!==0&&this.commit({...this.state,sort:[]})}setFilter(e){this.commit({...this.state,filter:e})}setFilterEnabled(e){e!==this.state.filterEnabled&&this.commit({...this.state,filterEnabled:e})}setColumnFilter(e,t,u){let r={...this.state.columnFilterParts};if(u===void 0)t?r[e]={[Vt]:t}:delete r[e];else{let n={...r[e]??{}};delete n[Vt],t?n[u]=t:delete n[u],Object.keys(n).length>0?r[e]=n:delete r[e]}this.commit({...this.state,columnFilterParts:r,columnFilters:r0(r)})}getColumnFilter(e,t){return t!==void 0?this.state.columnFilterParts[e]?.[t]??null:this.state.columnFilters[e]??null}clearColumnFilters(){Object.keys(this.state.columnFilters).length!==0&&this.commit({...this.state,columnFilters:{},columnFilterParts:{}})}effectiveFilter(){let e=[];this.state.filter&&e.push(this.state.filter);for(let t of Object.values(this.state.columnFilters))e.push(t);return e.length===0?null:e.length===1?e[0]:{logic:"and",nodes:e}}setSearchText(e){e!==this.state.searchText&&this.commit({...this.state,searchText:e})}setGroupBy(e){let t=e==null?[]:typeof e=="string"?[e]:[...e],u=this.state.groupBy;return t.length===u.length&&t.every((r,n)=>r===u[n])?!1:(this.commit({...this.state,groupBy:t,collapsedGroups:[]}),!0)}isGroupCollapsed(e){return this.collapsedSet().has(e)}toggleGroup(e){let t=this.collapsedSet(),u=new Set(t);u.delete(e)||u.add(e),this.commitCollapsed(u)}setCollapsedGroups(e){this.commitCollapsed(new Set(e))}isDetailExpanded(e){return this.expandedSet().has(e)}toggleDetail(e){let t=new Set(this.expandedSet());t.delete(e)||t.add(e),this.commitExpanded(t)}setExpandedDetails(e){this.commitExpanded(new Set(e))}setPage(e){let t=Math.max(0,Math.floor(e));t!==this.state.page&&this.commit({...this.state,page:t},"page")}setPageSize(e){let t=Math.max(1,Math.floor(e));t!==this.state.pageSize&&this.commit({...this.state,pageSize:t,page:0},"page")}clampPage(e){let t=Math.max(0,e-1);return this.state.page<=t?this.state.page:(this.state={...this.state,page:t},this.version++,t)}resetPage(){this.state.page!==0&&this.commit({...this.state,page:0},"page")}applyState(e){this.commit({...e})}reset(){this.commit({sort:[],filter:null,columnFilters:{},columnFilterParts:{},filterEnabled:!0,searchText:"",groupBy:[],collapsedGroups:[],expandedDetails:[],page:0,pageSize:this.state.pageSize})}};function br(e,t){return e.toLowerCase().endsWith(`.${t}`)?e:`${e}.${t}`}var i0=[];function aa(e,t){if(!e)return null;if("nodes"in e){let u=e.nodes.map(r=>aa(r,t)).filter(r=>r!==null);return u.length===0?null:{logic:e.logic,nodes:u}}return t(e.columnId)?e:null}var Tr="__dg_pending_row_",a0=e=>`${Tr}${e}`;function o0(e){if(typeof e!="string"||!e.startsWith(Tr))return null;let t=Number(e.slice(Tr.length));return Number.isInteger(t)&&t>=0?t:null}function l0(e){return e==null?[]:typeof e=="string"?[e]:[...e]}var s0="\0",Ni="",vr=1e3,d0=150,c0=60,oa=class{gridId;events=new vl;columns;store;rowModel;debugMode;locale;text;virtual;selection;focus=new Vs;keyGetter;rowKeyField;summaryDefs;pendingReaders;historyDelegate;editingDelegate;summaryValues={};treeData;treeParent=null;treeIndex=null;treeIndexEpoch=-1;treeToggled=new Set;treeExpandedByDefault;warnedTreeGrouping=!1;lastPagination=null;firstDataRenderedSent=!1;cellRevision=0;collapsedByDefault;groupSummaries;showGroupedColumns;masterDetail;editForm=null;getRowHeightFn;measuredRowHeights=new Map;lastResult={nodes:[],visibleCount:0,totalCount:0};spanCache=new Map;spanCacheResult=null;viewNodes=[];allViewNodes=[];paginationEnabled;infiniteScroll;infinitePageSize;infiniteLimit;exportDefaults={csv:{},excel:{},pdf:{}};exportPageSize;exportMaxRows;exportToken=0;computeToken=0;lastComputeTimings={};summaryPassSeq=0;remoteFetchQueued=!1;viewportWidth=0;viewportHeight=0;leadWidth=0;externalFilter=null;asyncQueue=[];asyncCallbacks=[];asyncTimer=null;asyncTransactionWait;lastScrollTop=-1;lastScrollLeft=-1;scrollEndTimer=null;overlayOverride=null;lastFocusedRowKey=null;deferredSelection;rowIndexCache=null;dataNodeCache=null;dataKeyCache=null;nodeByKey=null;groupTree=null;groupTreeSignature=null;dataEpoch=0;distinctCache=new Map;distinctFullInflight=new Map;distinctTruncated=new Set;distinctEpoch=-1;localeCollator=null;summaryBasis=null;busy={busy:!1,progress:null,phase:null,cancellable:!1};exportAbort=null;busyDepth=0;unsubscribeStore;disposed=!1;constructor(e){this.gridId=e.gridId,this.asyncTransactionWait=e.asyncTransactionWait??50,this.debugMode=e.debugMode??!1,this.locale=e.locale??"en",this.text=Ht(e.locale,e.messages),this.columns=new ws(e.columns,{defaultColumnDef:e.defaultColumnDef,debugMode:this.debugMode}),this.store=new n0({multiSort:e.sorting?.multi??!1});let t=dl(e.rowKey);if(this.keyGetter=t,this.rowKeyField=typeof e.rowKey=="string"?e.rowKey:null,yo(e.dataSource)?this.rowModel=new mi(e.dataSource,{keyGetter:t,blockSize:e.remote?.blockSize,maxBlocks:e.remote?.maxBlocks,onError:u=>this.events.emit("dataError",{error:u}),debugMode:this.debugMode}):this.rowModel=new Eu(e.dataSource,{gridId:e.gridId,keyGetter:t,locale:e.locale,enabled:e.worker?.enabled,threshold:e.worker?.threshold,workerUrl:e.worker?.url,debugMode:this.debugMode,onEncodeProgress:u=>u>=1?this.setBusy("computing",null):this.setBusy("encoding",Math.round(u*100)),onPhaseProgress:(u,r)=>this.setBusy(u,r===null?null:Math.round(r*100))}),this.exportPageSize=Math.max(1,e.remote?.exportPageSize??1e3),this.exportMaxRows=Math.max(1,e.remote?.exportMaxRows??1e5),this.selection=new Gs(e.selection?.mode??"none"),this.deferredSelection=e.selection?.deferred??!1,this.summaryDefs=e.summaries??[],this.treeData=e.tree??null,this.treeData&&(this.treeParent=Xs(this.treeData)),this.treeExpandedByDefault=this.treeData?.defaultExpanded??!1,this.collapsedByDefault=e.grouping?.collapsedByDefault??!1,this.groupSummaries=e.grouping?.groupSummaries??!1,this.showGroupedColumns=e.grouping?.showGroupedColumns??!1,e.grouping?.groupBy){this.store.setGroupBy(e.grouping.groupBy);let u=this.store.getState().groupBy;this.remote()?.setGrouping(u.map(r=>({columnId:r})),u)}this.paginationEnabled=e.pagination?e.pagination.enabled!==!1:!1,this.infiniteScroll=e.scrolling?.mode==="infinite",this.infinitePageSize=Math.max(1,e.scrolling?.pageSize??100),this.infiniteLimit=this.infinitePageSize,e.pagination?.pageSize&&this.store.setPageSize(e.pagination.pageSize),this.virtual=new Qs({rowHeight:e.rowHeight,overscanY:e.virtualization?.overscanY,overscanX:e.virtualization?.overscanX}),this.virtual.setColumnLayout(Bi(this.layoutRuntime())),this.getRowHeightFn=e.getRowHeight,this.masterDetail=e.masterDetail?{height:Math.max(1,e.masterDetail.height??160),expandedByDefault:e.masterDetail.expandedByDefault??!1}:null,this.unsubscribeStore=this.store.subscribe((u,r)=>{this.events.emit("stateUpdated",{scope:r,state:this.getViewState()}),r==="page"&&this.emitPaginationChanged(!1),r==="view"||r==="page"&&this.rowModel.mode==="client"?this.reproject():this.recompute()}),this.recompute()}getRows(){return this.viewNodes}getDataRows(){return this.dataNodes()}getDataRowNode(e){if(!this.nodeByKey){let t=new Map,u=this.dataNodes();for(let r=0;r<u.length;r++)t.has(u[r].key)||t.set(u[r].key,u[r]);this.nodeByKey=t}return this.nodeByKey.get(e)}getRowByKey(e){return this.getDataRowNode(e)?.data}forEachNode(e){let t=this.rowModel.getSourceRows?.();if(!t){this.forEachNodeAfterFilterAndSort(e);return}for(let u=0;u<t.length;u++)e($e(t[u],this.keyGetter(t[u]),u),u)}forEachNodeAfterFilterAndSort(e){let t=this.dataNodes();for(let u=0;u<t.length;u++)e(t[u],u)}forEachDisplayedNode(e){let t=this.viewNodes;for(let u=0;u<t.length;u++)e(t[u],u)}dataNodes(){if(this.dataNodeCache)return this.dataNodeCache;let e=[];for(let t of this.lastResult.nodes)t&&t.kind==="data"&&e.push(t);return this.dataNodeCache=e,e}invalidateResultCaches(){this.dataNodeCache=null,this.dataKeyCache=null,this.nodeByKey=null,this.groupTree=null,this.groupTreeSignature=null}ensureGroupTree(e){let t=this.groupSummaries&&this.summaryDefs.length>0,u=`${e.join(s0)}#${t?this.summaryDefs.map(r=>`${r.columnId}:${r.type}`).join(","):""}`;return this.groupTree&&this.groupTreeSignature===u?this.groupTree:(this.setBusy("grouping",null),this.groupTree=No(this.dataNodes(),this.columns,{columnIds:e,summaries:t?this.summaryDefs:void 0}),this.groupTreeSignature=u,this.groupTree)}getVisibleCount(){return this.lastResult.visibleCount}getTotalCount(){return this.rowModel.getTotalCount()}getColumnModel(){return this.columns}getColumnStates(){return this.columns.getColumnStates()}getSort(){return this.store.getState().sort}getFilter(){return this.store.getState().filter}getSearchText(){return this.store.getState().searchText}getVirtualWindow(){return this.virtual.getWindow()}getColumnLayout(){return this.virtual.getColumnLayout()}getVisualColumnIds(){let e=this.getColumnLayout(),t=[];for(let u of e.left)t.push(u.state.id);for(let u of e.center)t.push(u.state.id);for(let u of e.right)t.push(u.state.id);return t}getColumnIdAt(e){if(e<0)return null;let t=this.getColumnLayout();if(e<t.left.length)return t.left[e].state.id;let u=e-t.left.length;return u<t.center.length?t.center[u].state.id:t.right[u-t.center.length]?.state.id??null}getVisualColumnCount(){let e=this.getColumnLayout();return e.left.length+e.center.length+e.right.length}getRowHeight(){return this.virtual.getRowHeight()}isUsingWorker(){return this.rowModel instanceof Eu&&this.rowModel.usesWorker()}getVisibleCenterColumns(){return this.virtual.getVisibleCenterColumns()}setViewportSize(e,t){let u=this.viewportWidth,r=this.viewportHeight,n=e!==u||t!==r;this.viewportWidth=e,this.viewportHeight=t;let i=this.emitIfWindowChanged(this.virtual.setViewportSize(e,t));return n&&this.events.emit("gridSizeChanged",{width:e,height:t,previousWidth:u,previousHeight:r}),i}setMaxScrollOffset(e){return this.emitIfWindowChanged(this.virtual.setMaxScrollOffset(e))}setChromeOffsets(e,t){this.virtual.setChromeOffsets(e,t)}setLeadWidth(e){this.leadWidth=e,this.virtual.setLeadWidth(e)}setMaxCanvasHeight(e){return this.emitIfWindowChanged(this.virtual.setMaxCanvasHeight(e))}setScroll(e,t){let u=this.emitIfWindowChanged(this.virtual.setScroll(e,t));return u&&this.rowModel.mode==="remote"&&this.scheduleRemoteFetch(),this.publishScroll(e,t),u}publishScroll(e,t){if(e===this.lastScrollTop&&t===this.lastScrollLeft)return;this.lastScrollTop=e,this.lastScrollLeft=t;let u=this.virtual.getWindow(),r={scrollTop:e,scrollLeft:t,firstRow:u.rows.start,lastRow:u.rows.end};this.events.emit("bodyScroll",r),this.scrollEndTimer!==null&&clearTimeout(this.scrollEndTimer),this.scrollEndTimer=setTimeout(()=>{this.scrollEndTimer=null,!this.disposed&&this.events.emit("bodyScrollEnd",r)},d0)}showLoadingOverlay(){this.setOverlayOverride("loading")}showNoRowsOverlay(){this.setOverlayOverride("noRows")}hideOverlay(){this.setOverlayOverride(null)}getOverlay(){return this.overlayOverride==="none"?null:this.overlayOverride!==null?this.overlayOverride:this.busy.busy?"loading":this.getVisibleCount()===0?"noRows":null}setOverlayOverride(e){this.overlayOverride!==e&&(this.overlayOverride=e,this.events.emit("overlayChanged",{overlay:this.getOverlay(),manual:e!==null}))}notifyRowDrag(e,t){let u=e==="enter"?"rowDragEnter":e==="move"?"rowDragMove":"rowDragLeave";this.events.emit(u,{rowKey:t.rowKey,row:this.getRowByKey(t.rowKey),overKey:t.overKey??null,position:t.position??null,fromGridId:t.fromGridId??this.gridId})}notifyRowDragEnd(e){this.events.emit("rowDragEnd",{rowKey:e.rowKey,row:this.getRowByKey(e.rowKey),overKey:e.overKey??null,position:e.position??null,fromGridId:e.fromGridId??this.gridId,dropped:e.dropped})}scheduleRemoteFetch(){this.remoteFetchQueued||this.disposed||(this.remoteFetchQueued=!0,queueMicrotask(()=>{this.remoteFetchQueued=!1,this.disposed||this.recompute(!0)}))}setRowHeight(e){let t=this.virtual.setRowHeight(e);t&&this.measuredRowHeights.size>0&&(this.measuredRowHeights=new Map,this.rebuildRowHeights()),t?this.emitIfWindowChanged(!0):this.events.emit("viewportChanged",{window:this.virtual.getWindow()})}ensureVisible(e,t){return this.virtual.ensureVisible(e,t)}scrollToRow(e){let t=this.rowAxis().indexOf(e);if(t<0)return;let u=this.ensureVisible(t);u&&this.events.emit("scrollRequested",u)}revealRow(e,t=3){if(this.disposed)return;let u=()=>{if(!this.editForm?.atTop||String(this.editForm.rowKey)!==String(e))return!1;let i=this.ensureVisible(0);return i&&this.events.emit("scrollRequested",i),!0};if(u())return;if(this.rowAxis().indexOf(e)>=0){this.scrollToRow(e);return}let r=t,n=this.events.on("contentReady",()=>{if(this.disposed||this.rowAxis().indexOf(e)>=0){if(n(),this.disposed||u())return;this.scrollToRow(e);return}--r<=0&&n()})}scrollToCell(e,t){let u=this.rowAxis().indexOf(e);if(u<0)return;let r=this.getColumnLayout().center.findIndex(i=>i.state.id===t),n=this.ensureVisible(u,r===-1?void 0:r);n&&this.events.emit("scrollRequested",n)}getSelectionMode(){return this.selection.getMode()}setSelectionMode(e){this.selection.setMode(e)&&this.emitSelectionChanged()}isRowSelected(e){return this.selection.isSelected(e)}getSelectedKeys(){return this.selection.isAllMatching()?this.dataNodes().filter(e=>this.selection.isSelected(e.key)).map(e=>e.key):this.selection.getSelectedKeys()}getSelectionDescriptor(){return this.selection.getSelectionDescriptor()}getSelectedCount(){return this.selection.getSelectedCount(this.lastResult.visibleCount)}isAllMatchingSelected(){return this.selection.isAllMatching()}getSelectedRows(){return this.dataNodes().filter(e=>this.selection.isSelected(e.key)).map(e=>e.data)}getFocusedNode(){let e=this.focus.get();if(!e)return;let t=this.rowAxis().indexOf(e.rowKey);return t>=0?this.viewNodes[t]:void 0}getFocusedRowKey(){return this.focus.get()?.rowKey??null}getFocusedRowIndex(){let e=this.getFocusedRowKey();return e===null?-1:this.rowAxis().indexOf(e)}focusRow(e){let t=this.focus.get()?.columnId??this.layoutRuntime()[0]?.state.id;t&&this.focus.set({rowKey:e,columnId:t})&&(this.emitFocusChanged(),this.scrollToRow(e))}selectRow(e){this.selection.select(e)&&this.emitSelectionChanged()}toggleRow(e){this.selection.toggle(e)&&this.emitSelectionChanged()}setSelectedKeys(e){this.selection.setSelectedKeys(e)&&this.emitSelectionChanged()}selectAll(){(this.deferredSelection?this.selection.selectAllMatching():this.selection.selectAll(this.dataKeys()))&&this.emitSelectionChanged()}clearSelection(){this.selection.clear()&&this.emitSelectionChanged()}handleRowClick(e,t={}){this.selection.handleRowClick(e,t,this.dataKeys())&&this.emitSelectionChanged()}notifyCell(e,t,u,r){let n=t.kind==="data"?t.data:void 0;this.events.emit(e,{rowKey:t.key,rowIndex:u,columnId:r,value:n===void 0?void 0:this.columns.getCellValue(n,r),row:n,node:t})}notifyCellValueChanged(e){this.events.emit("cellValueChanged",{...e,row:this.getRowByKey(e.rowKey)})}notifyEditingStarted(e){this.events.emit("cellEditingStarted",e)}notifyEditingStopped(e){this.events.emit("cellEditingStopped",e)}notifyRowEditingStarted(e){this.events.emit("rowEditingStarted",{...e,row:this.getRowByKey(e.rowKey)})}notifyRowEditingStopped(e){this.events.emit("rowEditingStopped",{...e,row:this.getRowByKey(e.rowKey)})}notifyHistoryStarted(e,t){this.events.emit(e==="undo"?"undoStarted":"redoStarted",{label:t})}notifyHistoryEnded(e,t){this.events.emit(e==="undo"?"undoEnded":"redoEnded",t)}setHistoryDelegate(e){this.historyDelegate=e??void 0}undo(){return this.historyDelegate?.undo()??!1}redo(){return this.historyDelegate?.redo()??!1}canUndo(){return this.historyDelegate?.canUndo()??!1}canRedo(){return this.historyDelegate?.canRedo()??!1}getHistoryDepth(){return this.historyDelegate?.depth()??{undo:0,redo:0}}setEditingDelegate(e){this.editingDelegate=e??void 0}startEditingCell(e,t){return this.editingDelegate?.startEditingCell(e,t)??!1}stopEditing(e){return this.editingDelegate?.stopEditing(e?.cancel??!1)??Promise.resolve(!1)}getEditingCells(){return this.editingDelegate?.getEditingCells()??[]}isEditing(){return this.getEditingCells().length>0}notifyRow(e,t,u){this.events.emit(e,{rowKey:t.key,rowIndex:u,row:t.kind==="data"?t.data:void 0,node:t})}getFocus(){return this.focus.get()}isCellFocused(e,t){return this.focus.isFocused(e,t)}focusCell(e,t){this.focus.set({rowKey:e,columnId:t})&&this.emitFocusChanged()}clearFocus(){this.focus.clear()&&this.emitFocusChanged()}moveFocus(e){let t=this.focus.move(e,this.focusContext());return t&&this.emitFocusChanged(),t}getFocusIndices(){return this.focus.getIndices(this.focusContext())}executeCommand(e){let{type:t}=e;if(zs(t))return this.moveFocus(t);switch(t){case"toggleSelection":{let u=this.getFocusedNode();return u?(u.kind==="group"?this.toggleGroup(String(u.key)):u.kind==="data"&&this.toggleRow(u.key),!0):!1}case"extendSelectionUp":case"extendSelectionDown":{let u=this.moveFocus(t==="extendSelectionUp"?"up":"down"),r=this.focus.get();return r&&this.selection.getMode()==="multiple"&&this.selection.selectRange(r.rowKey,this.dataKeys(),!1)&&this.emitSelectionChanged(),u}case"selectAll":return this.selectAll(),!0;case"clearSelection":return this.clearSelection(),!0;case"activate":return!1;case"copy":return!1;default:return!1}}getClipboardText(e={}){let t=this.lastResult.nodes.filter(u=>this.selection.isSelected(u.key));if(t.length===0){let u=this.focus.get();if(!u)return"";t=this.lastResult.nodes.filter(r=>r.key===u.rowKey)}return t.length===0?"":$s(t,this.columns,e)}notifyClipboardGesture(e,t,u){let r=`${e}Start`,n=`${e}End`;this.events.emit(r,{cellCount:t});let i=!1;try{return i=u(),i}finally{this.events.emit(n,{cellCount:t,performed:i})}}dataKeys(){if(this.dataKeyCache)return this.dataKeyCache;let e=this.dataNodes(),t=new Array(e.length);for(let u=0;u<e.length;u++)t[u]=e[u].key;return this.dataKeyCache=t,t}rowAxis(){let e=this.viewNodes;return{count:e.length,keyAt:t=>e[t]?.key??(t>=0&&t<e.length?a0(t):void 0),indexOf:t=>{let u=o0(t);if(u!==null&&u<e.length&&!e[u])return u;if(!this.rowIndexCache){let r=new Map;for(let n=0;n<e.length;n++){let i=e[n];i&&!r.has(i.key)&&r.set(i.key,n)}this.rowIndexCache=r}return this.rowIndexCache.get(t)??-1}}}focusContext(){return{isFocusable:this.masterDetail!==null||this.editForm!==null?(e,t)=>{let u=this.viewNodes[t]?.kind;return u==="data"||u==="group"}:void 0,rows:this.rowAxis(),columnIds:this.columns.runtime().map(e=>e.state.id),pageSize:Math.max(1,this.virtual.getWindow().rows.end-this.virtual.getWindow().rows.start-2)}}emitSelectionChanged(){this.events.emit("selectionChanged",{selectedKeys:this.selection.getSelectedKeys(),selectedCount:this.selection.getSelectedCount()})}emitFocusChanged(){let e=this.focus.get();this.events.emit("focusChanged",{focus:e});let t=e?.rowKey??null;if(t!==this.lastFocusedRowKey){let u=this.lastFocusedRowKey;this.lastFocusedRowKey=t,this.events.emit("focusedRowChanged",{rowKey:t,previousRowKey:u,row:t===null?void 0:this.getFocusedRow()})}}getFocusedRow(){let e=this.getFocusedNode();return e&&e.kind==="data"?e.data:void 0}toggleSort(e,t=!1){this.assertColumn(e)&&(this.store.toggleSort(e,t),this.emitSortChanged())}setSort(e){this.store.setSort(e),this.emitSortChanged()}clearSort(){this.store.clearSort(),this.emitSortChanged()}setFilter(e){this.store.setFilter(e),this.store.resetPage(),this.resetReveal(),this.emitFilterChanged()}setColumnFilter(e,t,u){this.assertColumn(e)&&(this.store.setColumnFilter(e,t,u),this.store.resetPage(),this.resetReveal(),this.emitFilterChanged())}getColumnFilter(e,t){return this.store.getColumnFilter(e,t)}clearColumnFilters(){this.store.clearColumnFilters(),this.emitFilterChanged()}getEffectiveFilter(){return this.store.effectiveFilter()}isFilterEnabled(){return this.store.getState().filterEnabled}runningFilter(){return this.isFilterEnabled()?this.store.effectiveFilter():null}setExternalFilter(e){this.externalFilter=e,this.events.emit("filterChanged",{filter:this.runningFilter(),searchText:this.store.getState().searchText}),this.recompute()}isExternalFilterPresent(){return this.externalFilter!==null}refreshExternalFilter(){this.externalFilter!==null&&this.recompute()}setFilterEnabled(e){this.isFilterEnabled()!==e&&(this.store.setFilterEnabled(e),this.resetReveal(),this.emitFilterChanged())}getDistinctValues(e,t=vr){return this.getDistinctValueSet(e,t).entries}getDistinctValueSet(e,t=vr){this.distinctEpoch!==this.dataEpoch&&(this.distinctCache.clear(),this.distinctTruncated.clear(),this.distinctEpoch=this.dataEpoch);let u=`${e} ${t}`,r=this.distinctCache.get(u);if(r)return{entries:r,truncated:this.distinctTruncated.has(u)};let n=this.rowModel.getSourceRows?.()??[],i=this.columns.getDef(e),a=new Map,l=!1;for(let c of n){let m=this.columns.getCellValue(c,e),p=m==null?"":String(m),C=m==null?"":Du(i,m,c);if(!a.has(p)&&(a.set(p,{value:m,label:C}),a.size>t)){a.delete(p),l=!0;break}}let s=[...a.values()].sort((c,m)=>this.collator().compare(c.label,m.label));return this.distinctCache.set(u,s),l?this.distinctTruncated.add(u):this.distinctTruncated.delete(u),{entries:s,truncated:l}}searchDistinctValues(e,t,u=vr){let r=te(t.trim());if(!r)return this.getDistinctValueSet(e,u);let n=this.rowModel.getSourceRows?.()??[],i=this.columns.getDef(e),a=new Map,l=!1;for(let s of n){let c=this.columns.getCellValue(s,e),m=c==null?"":String(c),p=c==null?"":Du(i,c,s);if(!(!te(p).includes(r)||a.has(m))&&(a.set(m,{value:c,label:p}),a.size>u)){a.delete(m),l=!0;break}}return{entries:[...a.values()].sort((s,c)=>this.collator().compare(s.label,c.label)),truncated:l}}async getDistinctValueSetAsync(e,t){if(this.remote())return{entries:await this.getDistinctValuesAsync(e),truncated:!1};this.distinctEpoch!==this.dataEpoch&&(this.distinctCache.clear(),this.distinctTruncated.clear(),this.distinctEpoch=this.dataEpoch);let u=`${e} full`,r=this.distinctCache.get(u);if(r)return{entries:r,truncated:!1};let n=this.distinctFullInflight.get(e);if(!n){let i=this.dataEpoch;n=u0({rows:this.rowModel.getSourceRows?.()??[],getValue:a=>this.columns.getCellValue(a,e),collator:this.collator(),shouldAbort:()=>this.disposed,onProgress:t}).then(a=>(this.distinctFullInflight.delete(e),a===null?[]:(i===this.dataEpoch&&this.distinctEpoch===i&&(this.distinctCache.set(u,a),this.distinctTruncated.delete(u)),a))),this.distinctFullInflight.set(e,n)}return{entries:await n,truncated:!1}}canListDistinctValues(){let e=this.remote();return e===null||e.supportsDistinctValues()}async getDistinctValuesAsync(e,t=1e3){let u=this.remote();return u?u.supportsDistinctValues()?(await u.loadDistinctValues(e,t)).map(r=>({value:r.value,label:r.label??(r.value==null?"":String(r.value))})).sort((r,n)=>this.collator().compare(r.label,n.label)):[]:this.getDistinctValues(e,t)}collator(){return this.localeCollator||(this.localeCollator=new Intl.Collator(this.locale,{numeric:!0,sensitivity:"base"})),this.localeCollator}bumpDataEpoch(){this.dataEpoch++}setSearchText(e){this.store.setSearchText(e),this.store.resetPage(),this.resetReveal(),this.emitFilterChanged()}emitFilterChanged(){this.events.emit("filterChanged",{filter:this.store.effectiveFilter(),searchText:this.store.getState().searchText})}setColumnWidth(e,t,u=!0){let r=this.columns.getState(e)?.width;this.columns.setWidth(e,t);let n=this.columns.getState(e);n&&r!==void 0&&(n.width!==r||u)&&this.events.emit("columnResized",{columnId:e,width:n.width,previousWidth:r,finished:u}),this.emitColumnStateChanged()}sizeColumnsToFit(e={}){let t=(e.width??this.viewportWidth)-this.leadWidth;if(!Number.isFinite(t)||t<=0)return;let u=new Set(e.skip??[]),r=this.columns.getOrder().filter(m=>this.columns.getState(m)?.visible&&!u.has(m));if(r.length===0)return;let n=0;for(let m of this.columns.getOrder())!this.columns.getState(m)?.visible||!u.has(m)||(n+=this.columns.getState(m)?.width??0);let i=t-n;if(i<=0)return;let a=new Set(r),l=new Map;for(let m of r)l.set(m,this.columns.getState(m)?.width??0);for(let m=0;m<=r.length&&a.size>0;m++){let p=0;for(let E of a)p+=l.get(E)??0;if(p<=0)break;let C=i/p,g=!1;for(let E of[...a]){let F=(l.get(E)??0)*C,S=this.columns.getDef(E),T=S?.minWidth??c0,N=S?.maxWidth??Number.POSITIVE_INFINITY;if(F<T||F>N){let V=Math.min(Math.max(F,T),N);l.set(E,V),a.delete(E),i-=V,g=!0}else l.set(E,F)}if(!g)break}let s=0;for(let m of r)s+=l.get(m)??0;let c=0;r.forEach((m,p)=>{let C=p===r.length-1?Math.round(s)-c:Math.round(l.get(m)??0);c+=C,this.columns.setWidth(m,C)}),this.emitColumnStateChanged()}setBandCollapsed(e,t){let u=typeof e=="string"?[e]:e;this.columns.setBandCollapsed(u,t)&&(this.events.emit("columnGroupOpened",{band:[...u],open:!t}),this.emitColumnStateChanged())}toggleBand(e){let t=typeof e=="string"?[e]:e;this.setBandCollapsed(t,!this.columns.isBandCollapsed(t))}isBandCollapsed(e){return this.columns.isBandCollapsed(typeof e=="string"?[e]:e)}isBandCollapsible(e){return this.columns.isBandCollapsible(typeof e=="string"?[e]:e)}setColumnPinned(e,t){let u=this.columns.getState(e)?.pinned;this.columns.setPinned(e,t);let r=this.columns.getState(e);r&&u!==void 0&&r.pinned!==u&&this.events.emit("columnPinned",{columnId:e,pinned:r.pinned,previous:u}),this.emitColumnStateChanged()}setColumnVisible(e,t){let u=this.columns.getState(e)?.visible;this.columns.setVisible(e,t);let r=this.columns.getState(e);r&&u!==void 0&&r.visible!==u&&this.events.emit("columnVisible",{columnId:e,visible:r.visible}),this.emitColumnStateChanged(),this.recompute()}moveColumn(e,t){let u=this.columns.getOrder().indexOf(e);this.columns.moveColumn(e,t);let r=this.columns.getOrder().indexOf(e);u!==-1&&r!==u&&this.events.emit("columnMoved",{columnId:e,fromIndex:u,toIndex:r}),this.emitColumnStateChanged()}applyColumnStates(e){this.columns.applyColumnStates(e),this.emitColumnStateChanged(),this.recompute()}resetColumnState(){this.columns.resetColumnStates(),this.emitColumnStateChanged(),this.recompute()}setColumns(e){this.columns.setColumns(e),this.bumpDataEpoch(),this.emitColumnStateChanged(),this.recompute()}getGroupLevels(){return this.store.getState().groupBy}getGroupSummaries(){return this.groupSummaries}setGroupSummaries(e){this.groupSummaries!==e&&(this.groupSummaries=e,this.groupTree=null,this.groupTreeSignature=null,this.reproject())}getGroupBy(){return this.store.getState().groupBy[0]??null}groupBy(e){let t=e==null?[]:typeof e=="string"?[e]:[...e];for(let r of t)if(!this.assertColumn(r))return;let u=this.store.getState().groupBy;t.length===u.length&&t.every((r,n)=>r===u[n])||(this.remote()?.setGrouping(t.map(r=>({columnId:r})),t),this.store.setGroupBy(t),this.emitColumnStateChanged(),this.resetReveal(),this.events.emit("groupChanged",{groupBy:t[0]??null,levels:t}))}remote(){return this.rowModel instanceof mi?this.rowModel:null}clearGrouping(){this.groupBy(null)}isGroupCollapsed(e){return this.store.isGroupCollapsed(e)}toggleGroup(e){let t=this.remote();if(t?.isGrouped()){t.toggleGroupPath(e)&&this.recompute();return}this.store.toggleGroup(e)}expandAllGroups(){this.remote()?.isGrouped()||this.store.setCollapsedGroups([])}collapseAllGroups(){let e=this.remote();if(e?.isGrouped()){e.setExpandedPaths([]),this.recompute();return}let t=this.store.getState().groupBy;t.length!==0&&this.store.setCollapsedGroups(Mo(this.ensureGroupTree(t)))}setEditFormRow(e,t={}){let u=e===null?null:{rowKey:e,height:Math.max(1,t.height??260),atTop:t.atTop??!1},r=this.editForm;if(!(r?.rowKey===u?.rowKey&&r?.height===u?.height&&r?.atTop===u?.atTop)&&(this.editForm=u,this.reproject(),u?.atTop)){let n=this.ensureVisible(0);n&&this.events.emit("scrollRequested",n)}}getEditFormRow(){return this.editForm?.rowKey??null}getEditFormHeight(){return this.editForm?.height??0}isDebugMode(){return this.debugMode}hasMasterDetail(){return this.masterDetail!==null}getDetailHeight(){return this.masterDetail?.height??0}isDetailExpanded(e){let t=this.store.isDetailExpanded(e);return this.masterDetail?.expandedByDefault?!t:t}toggleDetail(e){this.masterDetail&&this.store.toggleDetail(e)}collapseAllDetails(){this.masterDetail&&(this.masterDetail.expandedByDefault?this.store.setExpandedDetails(this.dataKeys()):this.store.setExpandedDetails([]))}getDataRowCount(){return this.lastResult.visibleCount}getSummaries(){return this.summaryValues}getSummaryDefs(){return this.summaryDefs}setSummaryDefs(e){this.summaryDefs=e,this.groupTree=null,this.groupTreeSignature=null,this.summaryBasis=null,this.recompute()}getColumnSummary(e){return this.summaryDefs.find(t=>t.columnId===e)??null}setColumnSummary(e,t){let u=this.summaryDefs.filter(r=>r.columnId!==e);if(this.summaryDefs=t===null?u:[...u,{columnId:e,type:t}],this.groupSummaries&&this.store.getState().groupBy.length>0){this.recompute();return}if(this.remote()){this.recompute();return}this.recomputeSummaries(),this.emitColumnStateChanged()}setPendingValueReader(e){this.pendingReaders=e??void 0,this.recomputeSummaries(),this.emitColumnStateChanged()}refreshSummaries(){this.summaryDefs.length!==0&&(this.recomputeSummaries(),this.events.emit("contentReady",{rows:this.lastResult.nodes,totalCount:this.lastResult.totalCount,visibleCount:this.lastResult.visibleCount}))}currentSummaryBasis(e,t){let u=t?this.columns.runtime().map(r=>r.state.id).join(","):"";return[this.dataEpoch,t,u,JSON.stringify(e)].join(Ni)}async computeChartData(e,t={}){let u=t.source??e.source??"view",r=!!this.pendingReaders&&(this.pendingReaders.hasPending?.()??!0),n=r?this.pendingReaders:void 0;if(u==="selection"){let a=this.getSelectedKeys();if(a.length>0){let l=[];for(let s of a){let c=this.getDataRowNode(s);c&&l.push(c)}return gr(l,this.columns,e,n)}}let i=this.rowModel instanceof Eu?this.rowModel:null;if(i?.usesWorker()&&Yi(e)&&!r){let{searchText:a}=this.store.getState(),l=await i.aggregate(this.columns,{sort:[],filter:u==="all"?null:this.runningFilter(),searchText:u==="all"?"":a},e);if(l)return l}if(u==="all"){let a=this.rowModel.getSourceRows?.()??[],l=new Array(a.length);for(let s=0;s<a.length;s++)l[s]=$e(a[s],this.keyGetter(a[s]),s);return gr(l,this.columns,e,n)}return gr(this.dataNodes(),this.columns,e,n)}chartBasis(e="view"){if(e==="all")return String(this.dataEpoch);let{searchText:t}=this.store.getState();return[this.currentSummaryBasis(this.runningFilter(),t),this.lastResult.visibleCount].join(Ni)}runSummaryPass(e,t,u,r,n){let i=++this.summaryPassSeq;if(e.length<=1e5){this.busyDepth>0&&this.setBusy("aggregating",null);let p=ko(e,this.columns,t,this.pendingReaders);this.summaryValues=u?{...this.summaryValues,...p}:p,r!==null&&(this.summaryBasis=r);return}let a=Ro(this.columns,t,this.pendingReaders),l=1e5,s=e.length,c=0,m=()=>{if(this.disposed||i!==this.summaryPassSeq||n!==this.computeToken)return;let p=Math.min(s,c+l);if(a.add(e,c,p),c=p,c<s){this.setBusy("aggregating",c/s),Nr(m);return}let C=a.finish();this.summaryValues=u?{...this.summaryValues,...C}:C,r!==null&&(this.summaryBasis=r),this.busyDepth===0&&this.setBusy(null,null),this.events.emit("summariesChanged",{values:this.summaryValues})};Nr(m)}recomputeSummaries(){this.summaryBasis=null;let e=this.remote();if(e){this.summaryValues=this.summaryDefs.length>0?e.getSummaries():{};return}this.summaryDefs.length>0&&this.rowModel.mode==="client"?this.runSummaryPass(this.lastResult.nodes,this.summaryDefs,!1,null,this.computeToken):this.summaryValues={}}isInfiniteScroll(){return this.infiniteScroll}getRevealedCount(){return this.infiniteScroll?this.viewNodes.length:this.allViewNodes.length}hasMoreRows(){return this.infiniteScroll&&this.viewNodes.length<this.allViewNodes.length}revealMore(){if(!this.infiniteScroll||!this.hasMoreRows())return!1;this.infiniteLimit=Math.min(this.allViewNodes.length,this.infiniteLimit+this.infinitePageSize),this.viewNodes=this.allViewNodes.slice(0,this.infiniteLimit),this.rowIndexCache=null;let e=this.virtual.setRowCount(this.viewNodes.length);return this.events.emit("contentReady",{rows:this.lastResult.nodes,totalCount:this.lastResult.totalCount,visibleCount:this.lastResult.visibleCount}),e&&!this.disposed&&this.events.emit("viewportChanged",{window:this.virtual.getWindow()}),!0}resetReveal(){this.infiniteScroll&&(this.infiniteLimit=this.infinitePageSize)}isPaginated(){return this.paginationEnabled}setPaginationEnabled(e){e!==this.paginationEnabled&&(this.paginationEnabled=e,this.store.resetPage(),this.recompute())}getPage(){return this.store.getState().page}getPageSize(){return this.store.getState().pageSize}getPageCount(){return this.paginationEnabled?Math.max(1,Math.ceil(this.allViewNodes.length/this.store.getState().pageSize)):1}setPage(e){this.store.setPage(Math.min(Math.max(0,e),this.getPageCount()-1))}setPageSize(e){this.store.setPageSize(e)}nextPage(){this.setPage(this.getPage()+1)}previousPage(){this.setPage(this.getPage()-1)}emitPaginationChanged(e){if(!this.paginationEnabled)return;let t=this.store.getState(),u=this.getPageCount();this.lastPagination&&this.lastPagination.page===t.page&&this.lastPagination.pageSize===t.pageSize&&this.lastPagination.pageCount===u||(this.lastPagination={page:t.page,pageSize:t.pageSize,pageCount:u},this.events.emit("paginationChanged",{page:t.page,pageSize:t.pageSize,pageCount:u,fromResultChange:e}))}buildExportModel(e={}){return this.buildExportModelFrom(this.allViewNodes,e)}buildExportModelFrom(e,t={}){return Vl({nodes:e,columns:this.columns,options:{columnIds:this.layoutRuntime().map(u=>u.state.id),...t},isSelected:u=>this.selection.isSelected(u),selectionCount:this.selection.getSelectedCount(),summaries:this.summaryDefs.length>0?{defs:this.summaryDefs,values:this.summaryValues}:void 0})}async exportRows(){let e=this.remote();if(!e)return this.allViewNodes;let t=++this.exportToken,{sort:u,searchText:r,groupBy:n}=this.store.getState(),i=await e.loadAllRows({sort:hr(u,n),filter:this.runningFilter(),searchText:r},{maxRows:this.exportMaxRows,pageSize:this.exportPageSize,isCancelled:()=>t!==this.exportToken||this.disposed,onProgress:(a,l)=>this.setBusy("exporting",l>0?Math.round(a/l*100):null)});return this.setBusy("exporting",null),i}setExportDefaults(e,t){if(typeof e!="string"){this.exportDefaults.excel={...e};return}this.exportDefaults[e]={...t??{}}}setEnterpriseEdition(e){this.enterpriseEdition=e}isEnterpriseEdition(){return this.enterpriseEdition}enterpriseEdition=!1;requireEnterprise(e){if(!this.enterpriseEdition)throw new Error(`[datagrid] ${e} is an Enterprise feature. Import EnterpriseDataGrid from @kanunilabs/datagrid-react-enterprise (CSV export is available in Community).`)}async withExportSignal(e,t){if(e.signal)return this.withBusy("exporting",()=>t(e));let u=new AbortController;this.exportAbort=u;try{return await this.withBusy("exporting",()=>t({...e,signal:u.signal}))}finally{this.exportAbort===u&&(this.exportAbort=null)}}async exportToCsv(e={}){let t={delimiter:Wl(this.locale),...this.exportDefaults.csv,...e};return this.withExportSignal(t,async u=>{let r=this.buildExportModelFrom(await this.exportRows(),u);return{blob:await $l(r,u),fileName:br(u.fileName??this.gridId,"csv"),rowCount:r.rows.length}})}async exportToExcel(e={}){this.requireEnterprise("Excel export");let t={sheetName:this.text.exportSheetName,...this.exportDefaults.excel,...e};return this.withExportSignal(t,async u=>{let r=this.buildExportModelFrom(await this.exportRows(),u);return{blob:await Jl(r,{...u,onProgress:n=>{u.onProgress?.(n),n>=1&&this.setBusy("exporting",null,!1)}}),fileName:br(u.fileName??this.gridId,"xlsx"),rowCount:r.rows.length}})}async exportToPdf(e={}){this.requireEnterprise("PDF export");let t={...this.exportDefaults.pdf,...e};return this.withExportSignal(t,async u=>{let r=this.buildExportModelFrom(await this.exportRows(),u);return this.setBusy("exporting",null,!1),{blob:await hs(r,u),fileName:br(u.fileName??this.gridId,"pdf"),rowCount:r.rows.length}})}getViewState(){let e=this.store.getState();return{version:1,columns:this.columns.getColumnStates(),sort:e.sort,filter:e.filter,columnFilters:e.columnFilters,columnFilterParts:e.columnFilterParts,filterEnabled:e.filterEnabled,searchText:e.searchText,groupBy:e.groupBy,collapsedGroups:e.collapsedGroups,page:e.page,pageSize:e.pageSize}}applyViewState(e){if(e.version!==1){this.debugMode&&console.error("[datagrid] unsupported view state version",e.version);return}this.columns.applyColumnStates(e.columns??[]);let t=new Set(this.columns.getOrder()),u=[],r=i=>t.has(i)?!0:(u.push(i),!1),n=l0(e.groupBy).filter(r);this.remote()?.setGrouping(n.map(i=>({columnId:i})),n),this.store.applyState({sort:(e.sort??[]).filter(i=>r(i.columnId)),filter:aa(e.filter??null,r),columnFilters:Object.fromEntries(Object.entries(e.columnFilters??{}).filter(([i])=>r(i))),columnFilterParts:Object.fromEntries(Object.entries(e.columnFilterParts??Object.fromEntries(Object.entries(e.columnFilters??{}).map(([i,a])=>[i,{[Vt]:a}]))).filter(([i])=>r(i))),filterEnabled:e.filterEnabled??!0,searchText:e.searchText??"",groupBy:n,collapsedGroups:e.collapsedGroups??[],expandedDetails:[],page:e.page??0,pageSize:e.pageSize??this.store.getState().pageSize}),u.length>0&&this.debugMode&&console.warn(`[datagrid] saved view referenced unknown column(s): ${[...new Set(u)].join(", ")} \u2014 dropped.`),this.emitColumnStateChanged(),this.emitFilterChanged(),this.recompute()}setData(e){this.rowModel.setData?.(e),this.bumpDataEpoch();let t=this.keyGetter,u=new Set(e.map(r=>t(r)));this.selection.retainKeys(u)&&this.emitSelectionChanged(),this.events.emit("dataUpdated",{totalCount:e.length}),this.recompute()}moveRow(e,t,u="before"){if(this.rowModel.mode==="remote")return this.debugMode&&console.warn("[datagrid] moveRow is a local operation \u2014 the server owns the order of a remote grid. Persist the move from rowDrag.onReorder and let the grid re-query."),!1;if(this.getSort().length>0)return this.debugMode&&console.warn("[datagrid] moveRow ignored: a sort is active, so the sort decides the row order and the move would be invisible. Clear the sort, or keep an order field and update it from rowDrag.onReorder."),!1;let r=this.rowModel.getSourceRows?.()??[],n=gs(r,e,t,u,this.keyGetter);return n.moved?(this.rowModel.setData?.(n.rows),this.bumpDataEpoch(),this.events.emit("rowsChanged",{added:0,updated:0,removed:0}),this.events.emit("dataUpdated",{totalCount:n.rows.length}),this.recompute(),!0):!1}applyTransaction(e){let t=this.remote();if(t){let p=e.update??[];if(!((e.add?.length??0)>0||(e.remove?.length??0)>0)&&p.length>0&&this.remoteUpdateKeepsPlacement(p)){let C=t.patchRows(p);this.invalidateResultCaches(),this.events.emit("rowsChanged",{added:0,updated:C,removed:0}),this.events.emit("dataUpdated",{totalCount:t.getTotalCount()}),this.recompute(!0);return}t.invalidate(),this.recompute(!0),this.events.emit("rowsChanged",{added:0,updated:0,removed:0});return}let u=this.rowModel.getSourceRows?.()??[],r=this.keyGetter,n=new Set;if(e.update)for(let p of e.update)n.add(r(p));let i=new Map;if(n.size>0)for(let p=0;p<u.length;p++){let C=r(u[p]);n.has(C)&&i.set(C,p)}let a=u.slice(),l=0,s=0,c=[];if(e.update)for(let p of e.update){let C=i.get(r(p));C!==void 0&&(a[C]=p,c.push(C),l++)}if(e.remove&&e.remove.length>0){let p=new Set(e.remove.map(g=>Ti(g)?g:r(g))),C=a.filter(g=>!p.has(r(g)));s=a.length-C.length,a=C}let m=e.add?.length??0;if(m>0){let p=e.addBeforeKey===void 0?-1:a.findIndex(g=>r(g)===e.addBeforeKey),C=e.add;p>=0?a=a.slice(0,p).concat(C,a.slice(p)):e.addPosition==="first"?a=C.concat(a):a=a.concat(C)}if(!(s>0||m>0)&&this.rowModel.patchData?this.rowModel.patchData(a,c,this.columns):this.rowModel.setData?.(a),this.bumpDataEpoch(),s>0){let p=new Set(a.map(C=>r(C)));this.selection.retainKeys(p)&&this.emitSelectionChanged()}this.events.emit("rowsChanged",{added:m,updated:l,removed:s}),this.events.emit("dataUpdated",{totalCount:a.length}),this.recompute(!0)}applyTransactionAsync(e,t){this.disposed||(this.asyncQueue.push(e),t&&this.asyncCallbacks.push(t),this.asyncTimer===null&&(this.asyncTimer=setTimeout(()=>{this.asyncTimer=null,this.flushAsyncTransactions()},this.asyncTransactionWait)))}flushAsyncTransactions(){if(this.asyncTimer!==null&&(clearTimeout(this.asyncTimer),this.asyncTimer=null),this.asyncQueue.length===0)return;let e=this.asyncQueue,t=this.asyncCallbacks;this.asyncQueue=[],this.asyncCallbacks=[];let u=Io(e,this.keyGetter);Lo(u)||this.applyTransaction(u),this.events.emit("asyncTransactionsFlushed",{count:e.length});for(let r of t)r()}getPendingAsyncTransactionCount(){return this.asyncQueue.length}remoteUpdateKeepsPlacement(e){let{sort:t,searchText:u,groupBy:r}=this.store.getState(),n=kr(this.columns,{sort:hr(t,r),filter:this.runningFilter(),searchText:u});if(n.length===0)return!0;for(let i of e){let a=this.getRowByKey(this.keyGetter(i));if(!a)return!1;for(let l of n){let s=this.columns.getCellValue(a,l),c=this.columns.getCellValue(i,l);if(!Object.is(s,c))return!1}}return!0}getRowKeyField(){return this.rowKeyField}getRowKey(e){return this.keyGetter(e)}invalidate(){this.rowModel.invalidate?.(),this.bumpDataEpoch(),this.recompute()}isRemote(){return this.rowModel.mode==="remote"}refresh(){return this.recompute()}flashCells(e={}){this.events.emit("cellsFlashed",{rowKeys:[...e.rowKeys??[]],columnIds:[...e.columnIds??[]],duration:e.duration??700})}refreshCells(){this.cellRevision++,this.events.emit("cellsRefreshed",{revision:this.cellRevision})}isDisposed(){return this.disposed}dispose(){this.disposed||(this.events.emit("gridPreDestroyed",{state:this.getViewState()}),this.disposed=!0,this.unsubscribeStore(),this.scrollEndTimer!==null&&(clearTimeout(this.scrollEndTimer),this.scrollEndTimer=null),this.asyncTimer!==null&&(clearTimeout(this.asyncTimer),this.asyncTimer=null),this.asyncQueue=[],this.asyncCallbacks=[],this.rowModel.dispose?.(),this.events.clear(),this.lastResult={nodes:[],visibleCount:0,totalCount:0},this.viewNodes=[],this.allViewNodes=[],this.summaryValues={},this.rowIndexCache=null,this.invalidateResultCaches())}serverSummaryRequests(){if(this.summaryDefs.length===0)return;let e=[];for(let t of this.summaryDefs)t.type!=="custom"&&e.push({columnId:t.columnId,type:t.type});return e.length>0?e:void 0}neededRange(){if(this.paginationEnabled){let{page:u,pageSize:r}=this.store.getState(),n=u*r;return{start:n,end:n+r}}let e=this.virtual.getWindow().rows,t=Math.max(1,e.end-e.start);return{start:Math.max(0,e.start-t),end:e.end+t}}getBusy(){return this.busy}foregroundDepth=0;setBusy(e,t,u=!0){let r=e!==null,n=r&&u,i=r&&this.foregroundDepth===0;this.busy.busy===r&&this.busy.phase===e&&this.busy.progress===t&&this.busy.cancellable===n&&this.busy.background===i||(this.busy={busy:r,phase:e,progress:t,cancellable:n,background:i},this.events.emit("busyChanged",this.busy))}async withBusy(e,t,u=!1){this.busyDepth++,u||this.foregroundDepth++,this.setBusy(e,null);try{return await t()}finally{this.busyDepth--,u||this.foregroundDepth--,this.busyDepth===0&&this.setBusy(null,null)}}cancel(){this.disposed||(this.computeToken++,this.exportToken++,this.exportAbort?.abort(),this.exportAbort=null,this.rowModel instanceof Eu&&this.rowModel.cancel())}async recompute(e=!1){if(!this.disposed)return this.withBusy("computing",()=>this.recomputeInner(),e)}async recomputeInner(){let e=++this.computeToken,{sort:t,searchText:u,groupBy:r}=this.store.getState(),n=this.runningFilter(),i=hr(t,r),a,l=performance.now();try{a=await this.rowModel.getRows(this.columns,{sort:i,filter:n,searchText:u,externalFilter:this.externalFilter,range:this.neededRange(),summaries:this.serverSummaryRequests()})}catch(E){!(E instanceof ke)&&!(E instanceof bu)&&(this.events.emit("dataError",{error:E}),this.debugMode&&console.error("[datagrid] row model failed",E));return}if(e!==this.computeToken||this.disposed)return;let s=Math.round(performance.now()-l),c=performance.now(),m=this.remote();if(m)this.summaryValues=this.summaryDefs.length>0?m.getSummaries():{},this.summaryBasis=null;else if(this.summaryDefs.length>0){let E=this.currentSummaryBasis(n,u),F=this.summaryBasis===E,S=F?this.summaryDefs.filter(T=>T.type==="custom"&&T.dependsOnOrder!==!1):this.summaryDefs;S.length>0?this.runSummaryPass(a.nodes,S,F,E,e):this.summaryBasis=E}else this.summaryValues={},this.summaryBasis=null;let p=Math.round(performance.now()-c);this.lastResult=a,this.invalidateResultCaches();let C=performance.now();this.projectView();let g=this.rowModel.getLastTimings?.();this.lastComputeTimings={modelMs:s,summaryMs:p,projectViewMs:Math.round(performance.now()-C),...g}}getComputeTimings(){return this.lastComputeTimings}projectView(){if(this.disposed)return;let e=this.store.getState(),t=e.groupBy,u=this.focus.getIndices(this.focusContext())?.rowIndex,r=this.treeView();r&&t.length>0&&!this.warnedTreeGrouping&&(this.warnedTreeGrouping=!0,this.debugMode&&console.warn("[datagrid] `tree` and grouping are mutually exclusive \u2014 grouping is ignored."));let n=r??(t.length>0&&this.rowModel.mode==="client"?To(this.ensureGroupTree(t),{collapsedKeys:this.store.collapsedSet(),collapsedByDefault:this.collapsedByDefault}).nodes:this.lastResult.nodes),i=this.masterDetail?yl(n,{expandedKeys:this.store.expandedSet(),expandedByDefault:this.masterDetail.expandedByDefault,height:this.masterDetail.height}):n,a=this.editForm?El(i,{rowKey:this.editForm.rowKey,height:this.editForm.height,atTop:this.editForm.atTop}):i;if(this.allViewNodes=a,this.infiniteScroll)this.infiniteLimit=Math.min(this.infiniteLimit,Math.max(this.infinitePageSize,a.length)),this.viewNodes=a.slice(0,this.infiniteLimit);else if(this.paginationEnabled){let{pageSize:s}=e,c=this.store.clampPage(Math.ceil(a.length/s))*s;this.viewNodes=a.slice(c,c+s)}else this.viewNodes=a;this.rowIndexCache=null,this.rebuildRowHeights();let l=this.virtual.setRowCount(this.viewNodes.length);this.focus.reconcile(this.focusContext(),u)&&this.emitFocusChanged(),this.events.emit("contentReady",{rows:this.lastResult.nodes,totalCount:this.lastResult.totalCount,visibleCount:this.lastResult.visibleCount}),this.emitPaginationChanged(!0),!this.firstDataRenderedSent&&this.viewNodes.length>0&&(this.firstDataRenderedSent=!0,this.events.emit("firstDataRendered",{rowCount:this.viewNodes.length})),this.emitIfWindowChanged(l)}treeView(){if(!this.treeData||!this.treeParent||this.rowModel.mode!=="client")return null;let e=this.rowModel.getSourceRows?.();return e?((!this.treeIndex||this.treeIndexEpoch!==this.dataEpoch)&&(this.treeIndex=e0(e,this.keyGetter,this.treeParent),this.treeIndexEpoch=this.dataEpoch),t0(this.dataNodes(),{index:this.treeIndex,sourceRows:e,isExpanded:t=>this.isTreeRowExpanded(t)}).nodes):null}isTreeRowExpanded(e){return this.treeExpandedByDefault!==this.treeToggled.has(e)}expandTreeRow(e){this.setTreeRowExpanded(e,!0)}collapseTreeRow(e){this.setTreeRowExpanded(e,!1)}toggleTreeRow(e){this.setTreeRowExpanded(e,!this.isTreeRowExpanded(e))}setTreeRowExpanded(e,t){this.treeData&&this.isTreeRowExpanded(e)!==t&&(t===this.treeExpandedByDefault?this.treeToggled.delete(e):this.treeToggled.add(e),this.reproject())}expandAllTreeRows(){this.treeData&&(this.treeExpandedByDefault=!0,this.treeToggled.clear(),this.reproject())}collapseAllTreeRows(){this.treeData&&(this.treeExpandedByDefault=!1,this.treeToggled.clear(),this.reproject())}reproject(){if(!this.disposed){this.busyDepth++,this.setBusy("projecting",null);try{this.projectView()}finally{this.busyDepth--,this.busyDepth===0&&this.setBusy(null,null)}}}emitSortChanged(){this.resetReveal(),this.events.emit("sortChanged",{sort:this.store.getState().sort})}layoutRuntime(){let e=this.columns.runtime();if(this.showGroupedColumns)return e;let t=this.store.getState().groupBy;return t.length===0?e:e.filter(u=>!t.includes(u.state.id))}rebuildRowHeights(){let e=this.measuredRowHeights,t=this.masterDetail!==null||this.editForm!==null;if(!this.getRowHeightFn&&!t&&e.size===0)return this.virtual.setRowHeights(null);let u=this.virtual.getRowHeight(),r=this.viewNodes,n=new Map;for(let i=0;i<r.length;i++){let a=r[i],l;a.kind==="detail"||a.kind==="editform"?l=a.height:l=e.get(a.key)??this.getRowHeightFn?.(a,i),l!==void 0&&l!==u&&n.set(i,Math.max(1,l))}return this.virtual.setRowHeights(n)}setMeasuredRowHeights(e){let t=e.size!==this.measuredRowHeights.size;if(!t){for(let[r,n]of e)if(this.measuredRowHeights.get(r)!==n){t=!0;break}}if(!t)return!1;this.measuredRowHeights=new Map(e);let u=this.rebuildRowHeights();return this.emitIfWindowChanged(u),u}getMeasuredRowHeights(){return this.measuredRowHeights}clearMeasuredRowHeights(){if(this.measuredRowHeights.size===0)return!1;this.measuredRowHeights=new Map;let e=this.rebuildRowHeights();return this.emitIfWindowChanged(e),e}getRowHeightAt(e){return this.virtual.getRowHeightAt(e)}getRowOffset(e){return this.virtual.getRowOffset(e)}getCellSpans(e){let t=this.columns.getDef(e)?.spanRows;if(!t)return i0;this.spanCacheResult!==this.lastResult&&(this.spanCache.clear(),this.spanCacheResult=this.lastResult);let u=this.spanCache.get(e);if(u)return u;let r=Xo(this.lastResult.nodes,n=>this.columns.getCellValue(n,e),typeof t=="function"?t:void 0);return this.spanCache.set(e,r),r}hasCellSpans(){return this.columns.runtime().some(e=>e.def.spanRows)}emitColumnStateChanged(){let e=this.virtual.setColumnLayout(Bi(this.layoutRuntime()));this.events.emit("columnStateChanged",{columns:this.columns.getColumnStates()}),this.emitIfWindowChanged(e)}emitIfWindowChanged(e){return e&&!this.disposed&&(this.events.emit("viewportChanged",{window:this.virtual.getWindow()}),this.maybeRevealMore()),e}maybeRevealMore(){if(!this.infiniteScroll||this.disposed)return;let e=this.virtual.getWindow().rows,t=Math.max(1,e.end-e.start);e.end+t<this.infiniteLimit||this.revealMore()}assertColumn(e){let t=!!this.columns.getState(e);return!t&&this.debugMode&&console.error(`[datagrid] unknown column id "${e}".`),t}},Hr={compact:24,normal:28,comfortable:36},h0=["quartz","balham","material","alpine","kanuni","kanuni-midnight"];function Kr(e){return e!==void 0&&h0.includes(e)}var Wr={quartz:{compact:26,normal:36,comfortable:44},balham:{compact:20,normal:25,comfortable:32},material:{compact:32,normal:40,comfortable:52},alpine:{compact:26,normal:34,comfortable:42},kanuni:{compact:24,normal:32,comfortable:40},"kanuni-midnight":{compact:24,normal:32,comfortable:40}};function ku(e,t,u){return Kr(e)?Wr[e][t??"normal"]:t?Hr[t]:u}function Ur(e){return{sum:e.summarySum,avg:e.summaryAvg,min:e.summaryMin,max:e.summaryMax,count:e.summaryCount,countDistinct:e.summaryDistinct,custom:e.summaryCustom}}var p0=Ur(Ht("en"));function $r(e,t=p0){return e.label??t[e.type]}var m0=new Set(["sum","avg","min","max"]);function qr(e,t,u){if(e.valueFormatter)return e.valueFormatter(t??null);if(t==null)return"\u2014";if(!m0.has(e.type))return t.toLocaleString();if(u?.dataType==="date"){let r=new Date(t);return u.valueFormatter?u.valueFormatter(r,{}):r.toLocaleDateString()}return u?.valueFormatter?u.valueFormatter(t,{}):String(Math.round(t*100)/100)}function la(e){switch(e){case"number":return["sum","avg","min","max","count","countDistinct"];case"date":return["min","max","count","countDistinct"];default:return["count","countDistinct"]}}var g0=[">=","<=","<>",">","<","="];function sa(e,t,u){let r=t.trim();if(r==="")return null;for(let n of g0)if(r.startsWith(n)){let i=r.slice(n.length).trim();if(i==="")return null;let a=u==="number"?Number(i):Number.NaN;return{columnId:e,operator:n,value:Number.isNaN(a)?i:a}}if(u==="number"){let n=Number(r);return Number.isNaN(n)?{columnId:e,operator:"contains",value:r}:{columnId:e,operator:"=",value:n}}if(u==="boolean"){let n=r.toLowerCase();return n==="true"||n==="false"?{columnId:e,operator:"=",value:n==="true"}:{columnId:e,operator:"contains",value:r}}return u==="date"?{columnId:e,operator:"contains",value:r}:{columnId:e,operator:"contains",value:r}}function da(e,t){if(e.scrollHeight<1e6)return null;let u=e.scrollTop;e.scrollTop=1e8;let r=e.scrollTop;if(e.scrollTop=u,r<=0)return null;let n=t.getVirtualWindow().rows.totalHeight-e.clientHeight;return r>=n-4?null:(t.setMaxScrollOffset(r),r)}function Ru(e,t){let{controller:u,maxGroupLevels:r,t:n}=t,i=e.columnId,a=u.getColumnModel().getDef(i),l=u.getSort(),s=l.find(N=>N.columnId===i),c=u.getGroupLevels(),m=c.includes(i),p=a?.sortable!==!1,C=u.getColumnStates().find(N=>N.id===i)?.pinned??null,g=a?.groupable!==!1,E=[{id:"sort-asc",label:n.sortAsc,disabled:!p||s?.direction==="asc",onSelect:()=>u.setSort([{columnId:i,direction:"asc"}])},{id:"sort-desc",label:n.sortDesc,disabled:!p||s?.direction==="desc",onSelect:()=>u.setSort([{columnId:i,direction:"desc"}])},{id:"sort-clear",label:n.clearSort,disabled:!s,onSelect:()=>u.setSort(l.filter(N=>N.columnId!==i))},{id:"sep-1",separator:!0},{id:"group",label:m?n.ungroupColumn:n.groupByColumn,disabled:!g,onSelect:()=>{m?u.groupBy(c.filter(N=>N!==i)):u.groupBy([...c,i].slice(-r))}},{id:"group-panel",label:t.groupPanelVisible?n.hideGroupPanel:n.showGroupPanel,onSelect:t.onToggleGroupPanel},{id:"footer",label:t.footerVisible?n.hideFooter:n.showFooter,onSelect:t.onToggleFooter},{id:"sep-2",separator:!0},{id:"hide-column",label:n.hideColumn,disabled:u.getColumnStates().filter(N=>N.visible).length<=1,onSelect:()=>u.setColumnVisible(i,!1)},{id:"field-chooser",label:n.fieldChooser,onSelect:t.onOpenFieldChooser},{id:"sep-3",separator:!0},{id:"best-fit",label:n.bestFit,disabled:a?.resizable===!1,onSelect:()=>t.onBestFit(i)},{id:"best-fit-all",label:n.bestFitAll,onSelect:t.onBestFitAll}],F=u.getColumnStates().filter(N=>N.visible&&N.pinned===C).map(N=>N.id),S=F.indexOf(i),T=a?.reorderable!==!1&&S>=0;return E.push({id:"sep-4",separator:!0},{id:"move-left",label:n.moveLeft,disabled:!T||S<=0,onSelect:()=>u.moveColumn(i,F[S-1])},{id:"move-right",label:n.moveRight,disabled:!T||S<0||S>=F.length-1,onSelect:()=>u.moveColumn(i,F[S+2])},{id:"fixed-position",label:n.fixedPosition,items:[{id:"pin-left",label:n.pinLeft,disabled:C==="left",onSelect:()=>u.setColumnPinned(i,"left")},{id:"pin-right",label:n.pinRight,disabled:C==="right",onSelect:()=>u.setColumnPinned(i,"right")},{id:"pin-sticky",label:n.pinSticky,disabled:C==="sticky",onSelect:()=>u.setColumnPinned(i,"sticky")}]},{id:"unpin",label:n.unpin,disabled:C===null,onSelect:()=>u.setColumnPinned(i,null)}),E}async function _r(e,t){try{let u=t==="csv"?await e.exportToCsv():t==="excel"?await e.exportToExcel():t==="excel-selected"?await e.exportToExcel({selectedOnly:!0}):await e.exportToPdf();return ea(u.blob,u.fileName),{completed:!0}}catch(u){return u instanceof lt?{completed:!1}:{completed:!1,error:u instanceof Error?u.message:String(u)}}}var ca=null;function f0(){return typeof document>"u"?null:(ca??=document.createElement("canvas"),ca.getContext("2d"))}function ha(e){let t=getComputedStyle(e);return`${t.fontStyle} ${t.fontWeight} ${t.fontSize} ${t.fontFamily}`}function C0(e){for(let t=e.firstElementChild;t;t=t.nextElementSibling)if(t.tagName!=="MARK")return!0;return!1}function w0(e){let t=e.map(r=>[r.style.width,r.style.minWidth,r.style.maxWidth]);for(let r of e)r.style.width="max-content",r.style.minWidth="0",r.style.maxWidth="none";let u=0;for(let r of e){let n=Math.ceil(r.getBoundingClientRect().width);n>u&&(u=n)}return e.forEach((r,n)=>{[r.style.width,r.style.minWidth,r.style.maxWidth]=t[n]}),u}function Nu(e,t){let u=f0();if(!u)return null;let r=typeof CSS<"u"&&CSS.escape?CSS.escape(t):t.replace(/"/g,'\\"'),n=e.querySelector(`.kanuni-datagrid-header-cell[data-column-id="${r}"]`),i=e.querySelectorAll(`.kanuni-datagrid-cell[data-column-id="${r}"]`);if(!n&&i.length===0)return null;let a=0;if(n){let l=n.querySelector(".kanuni-datagrid-header-label")??n;u.font=ha(l),a=u.measureText(l.textContent??"").width+44}if(i.length>0){u.font=ha(i[0]);let l=[];for(let s=0;s<i.length;s++){if(C0(i[s])){l.push(i[s]);continue}let c=i[s].textContent??"";if(c==="")continue;let m=u.measureText(c).width+20;m>a&&(a=m)}l.length>0&&(a=Math.max(a,w0(l)))}return a===0?null:Math.round(Math.min(640,Math.max(48,a)))}var Et=60,Wt=36,At=28,Ut="application/x-kanuni-row",Kt=new Map,jr=new Set,Zr=5e3,st=0,y0=["columnStateChanged","sortChanged"],E0=["columnStateChanged"],A0=["contentReady","viewportChanged","filterChanged","selectionChanged","focusChanged","summariesChanged","cellsRefreshed"],k=(e,t="div")=>{let u=document.createElement(t);return u.className=e,u},$t="http://www.w3.org/2000/svg";function b0(e,t){let u=n=>{t&&console.warn(`[datagrid] ${n} is an Enterprise feature \u2014 use createEnterpriseGrid from @kanunilabs/datagrid-enterprise to use it.`)},r={...e};if(r.dataSource!=null&&!Array.isArray(r.dataSource))throw new Error("[datagrid] a server-side DataSource is an Enterprise feature. Pass an array to createGrid, or use createEnterpriseGrid from @kanunilabs/datagrid-enterprise.");if(r.columns?.some(n=>n.spanRows)&&(u("cell span/merge (spanRows) is"),r={...r,columns:r.columns.map(n=>n.spanRows?{...n,spanRows:void 0}:n)}),r.tree&&(u("tree data is"),delete r.tree),r.masterDetail&&(u("master-detail is"),delete r.masterDetail),r.grouping){let{groupBy:n,groupSummaries:i}=r.grouping,a=n==null?[]:typeof n=="string"?[n]:n;(a.length>1||i)&&(u("multi-level grouping and group summaries are"),r={...r,grouping:{...r.grouping,groupBy:a.slice(0,1),groupSummaries:!1}})}return r}var v0={columnResize:"use `resizable`",columnReorder:"use `reorderable`",groupPanel:"use `grouping: { panel: true }`",autoColumns:"",loadingOverlay:"",onReady:"the controller is returned directly \u2014 use `grid.controller`",className:"style the host element you pass in",style:"style the host element you pass in",toolbarItemsBefore:"",renderRow:"",announcements:"",filterPanelLabels:"",filterIconMode:"",autoSizeStrategy:"",footerMenu:"",showRowCount:"",onOpenFilterBuilder:"",renderOverlay:"",cellMenu:""},Tu=new Set;function x0(e){for(let t of Object.keys(e)){let u=v0[t];u===void 0||u===""||Tu.has(t)||(Tu.add(t),console.warn(`[datagrid] \`${t}\` is a React-only option \u2014 ${u}.`))}}function D0(){let e=document.createElementNS("http://www.w3.org/2000/svg","svg");e.setAttribute("width","14"),e.setAttribute("height","14"),e.setAttribute("viewBox","0 0 16 16"),e.setAttribute("aria-hidden","true"),e.setAttribute("focusable","false");let t=document.createElementNS("http://www.w3.org/2000/svg","path");return t.setAttribute("d","M8 1v8m0 0L5 6m3 3 3-3M2 11v2a2 2 0 0 0 2 2h8a2 2 0 0 0 2-2v-2"),t.setAttribute("fill","none"),t.setAttribute("stroke","currentColor"),t.setAttribute("stroke-width","1.5"),t.setAttribute("stroke-linecap","round"),t.setAttribute("stroke-linejoin","round"),e.appendChild(t),e}function F0(){let e=document.createElementNS($t,"svg");e.setAttribute("width","11"),e.setAttribute("height","11"),e.setAttribute("viewBox","0 0 16 16"),e.setAttribute("aria-hidden","true"),e.setAttribute("focusable","false");let t=document.createElementNS($t,"path");return t.setAttribute("d","M1.5 2.5h13L9.5 8.6v4.3l-3 1.6V8.6L1.5 2.5Z"),t.setAttribute("fill","currentColor"),t.setAttribute("stroke","currentColor"),t.setAttribute("stroke-width","0.6"),t.setAttribute("stroke-linejoin","round"),e.appendChild(t),e}function S0(e){let t=document.createElementNS($t,"svg");t.setAttribute("width","14"),t.setAttribute("height","14"),t.setAttribute("viewBox","0 0 16 16"),t.setAttribute("aria-hidden","true"),t.setAttribute("focusable","false");let u=document.createElementNS($t,"rect");u.setAttribute("x","2"),u.setAttribute("y","2"),u.setAttribute("width","12"),u.setAttribute("height","12"),u.setAttribute("rx","2"),u.setAttribute("fill","none"),u.setAttribute("stroke","currentColor"),u.setAttribute("stroke-width","1.3"),t.appendChild(u);let r=n=>{let i=document.createElementNS($t,"path");i.setAttribute("d",n),i.setAttribute("fill","none"),i.setAttribute("stroke","currentColor"),i.setAttribute("stroke-width","1.3"),i.setAttribute("stroke-linecap","round"),t.appendChild(i)};return r("M5 8h6"),e&&r("M8 5v6"),t}function B0(e,t){let u=e??(t==="number"?"right":"left");return u==="right"?"kanuni-datagrid-cell kanuni-datagrid-cell--number":u==="center"?"kanuni-datagrid-cell kanuni-datagrid-cell--center":"kanuni-datagrid-cell"}function Yr(e){let t="kanuni-datagrid-root";return e.dark&&(t+=" kanuni-datagrid-dark"),e.theme&&(t+=` kanuni-datagrid-theme-${e.theme}`),e.palette&&(t+=` kanuni-datagrid-palette-${e.palette}`),e.density&&(t+=` kanuni-datagrid-density-${e.density}`),t}function pa(e,t){let{theme:u,palette:r,density:n,dark:i,striped:a=!0,rowNumbers:l=!1,locale:s="en",footer:c=!1,footerMenu:m=!0,footerPosition:p="bottom",notes:C,pinnedTopRows:g=[],pinnedBottomRows:E=[],resizable:F=!0,reorderable:S=!0,filterRow:T=!1,headerFilter:N=!1,filterIconMode:V="hover",filterPanel:K=!1,onOpenFilterBuilder:Z,focusedRow:W=!1,focusedRowKey:J,onFocusedRowChanged:fe,onRowClick:Ne,onRowActivate:bt,autoSizeStrategy:O="none",renderRow:z,announcements:Q=!0,filterPanelLabels:j,showRowCount:xe=!1,toolbarColumnChooser:qe=!1,cellMenu:be=!0,rowMenu:Ce,headerMenu:le,rowDrag:ne,alignedGrids:ue,printLayout:_e,renderCellContent:Mu,getCellClassName:Iu,onCellPointerDown:Jr,onCellPointerEnter:qt,onCellDoubleClick:Qr,renderDetail:Xr,renderEditForm:ma,enterpriseEdition:Pe=!1,stateStoring:en,tooltip:je=!0,renderOverlay:Lu,filterDebounce:ga,toolbar:tn=!1,highlightSearch:fa=!0,sortable:Ca=!0,toolbarItemsAfter:wa,toolbarItemsBefore:ya,toolbarExcel:Ea=!1,toolbarPdf:Aa=!1,searchDebounce:ba=200,...va}=t;x0(t),xe&&!Tu.has("showRowCount:deprecated")&&(Tu.add("showRowCount:deprecated"),console.warn("[datagrid] `showRowCount` was retired on 2026-08-15 and does nothing in either renderer. The row count lives in the status bar (Enterprise) or the pager."));let M=Ht(s),{emptyText:xa=M.noData,loadingText:Da=M.busy,loadingOverlay:Pu=!0,...we}=va,un=typeof Pu=="number"?Pu:300,Gu=Ur(M);if((!we.columns||we.columns.length===0)&&t.autoColumns!==!1){let o=Array.isArray(we.dataSource)?we.dataSource:[];we.columns=Li(o,typeof t.autoColumns=="object"?t.autoColumns:{})}we.rowHeight===void 0&&(we.rowHeight=ku(u,n,28));let Fa=Pe?we:b0(we,!!t.debugMode),Ye=Pe?C:void 0;!Pe&&C&&t.debugMode&&console.warn("[datagrid] cell notes are an Enterprise feature \u2014 use createEnterpriseGrid from @kanunilabs/datagrid-enterprise to show them.");let A=new oa(Fa);A.setEnterpriseEdition(Pe),J!=null&&A.focusRow(J);let $=k(Yr(t));$.style.height="100%",$.setAttribute("role","grid"),$.setAttribute("data-grid-id",t.gridId),u&&$.setAttribute("data-theme",u),$.style.setProperty("--dg-row-height",`${A.getRowHeight()}px`);let U=k("kanuni-datagrid-scroller"),se=k("kanuni-datagrid-canvas"),ve=k("kanuni-datagrid-header");ve.setAttribute("role","row");let de=k("kanuni-datagrid-rows");de.style.position="relative";let X=k("kanuni-datagrid-viewport");de.appendChild(X);let vt=k("kanuni-datagrid-pinned-rows kanuni-datagrid-pinned-rows--top"),rn=k("kanuni-datagrid-pinned-rows kanuni-datagrid-pinned-rows--bottom"),Te=c,Ze=p==="top",ae=k(`kanuni-datagrid-footer-row kanuni-datagrid-footer-row--${Ze?"top":"bottom"}`);if(ae.setAttribute("role","row"),ae.setAttribute("aria-label",M.columnTotalsAria),m){let o=d=>{let h=d.target?.closest(".kanuni-datagrid-footer-cell")?.getAttribute("data-column-id");h&&(d.preventDefault(),Ja(h,{left:d.clientX,top:d.clientY}))};ae.addEventListener("click",o),ae.addEventListener("contextmenu",o)}let _t=k("kanuni-datagrid-bands-host");_t.style.display="contents";let dt=k("kanuni-datagrid-filter-row");dt.setAttribute("role","row"),se.append(_t,ve),T&&se.append(dt);let Ou=T?2:1;ae.style.setProperty("--dg-pinned-gap",String(Ze?Ou:0)),vt.style.setProperty("--dg-pinned-gap",String(Ou+(Te&&Ze?1:0))),Te&&Ze&&se.append(ae),g.length>0&&se.append(vt),se.append(de),E.length>0&&se.append(rn),Te&&!Ze&&se.append(ae),U.appendChild(se);let Je=k("kanuni-datagrid-toolbar"),ct=k("kanuni-datagrid-pager");ct.setAttribute("role","navigation"),ct.setAttribute("aria-label","Pagination");let Qe=k("kanuni-datagrid-filter-panel"),Xe=!!we.grouping?.panel,ce=k("kanuni-datagrid-group-panel");tn&&$.appendChild(Je),Xe&&$.appendChild(ce),$.appendChild(U),K&&$.appendChild(Qe);let nn=we.pagination;nn&&nn.enabled!==!1&&$.appendChild(ct);let xt=k("kanuni-datagrid-loading-overlay"),an=k("kanuni-datagrid-loading-card"),on=k("kanuni-datagrid-loading-spinner","span");on.setAttribute("aria-hidden","true");let ln=k("kanuni-datagrid-loading-label","span");ln.textContent=Da,an.append(on,ln),xt.appendChild(an),xt.style.display="none";let Dt=k("kanuni-datagrid-sr-only","div");Dt.setAttribute("role","status"),Dt.setAttribute("aria-live","polite"),Dt.setAttribute("aria-atomic","true");let jt=k("kanuni-datagrid-empty");jt.textContent=xa,jt.style.display="none",$.append(xt,jt),Q&&$.appendChild(Dt),e.appendChild($);let Vu=we.selection,Yt=(Vu?.mode??"none")!=="none"&&(Vu?.checkboxColumn??!1),Sa=(Vu?.rowClick??(Yt?"toggle":"replace"))==="toggle",Zt=A.hasMasterDetail()&&!!Xr,zu=l?Et:0,sn=zu+(Zt?At:0),De=(l?Et:0)+(Zt?At:0)+(Yt?Wt:0);A.setLeadWidth(De);let Jt=!!ne?.enabled,Ft=ne?.group??null,dn=ne?.allowReordering??!0,cn=ne?.allowDropInsert??Ft!==null,Me=null,Qt=null,Xt=!1,et=null,Ge=null;function ht(o){et=o;for(let d of X.querySelectorAll(".kanuni-datagrid-row")){let f=d.getAttribute("data-row-key"),h=o!==null&&f===String(o.key);d.classList.toggle("kanuni-datagrid-row--drop-before",h&&o.side==="before"),d.classList.toggle("kanuni-datagrid-row--drop-after",h&&o.side==="after")}}let hn=(o,d)=>{let f=d.getBoundingClientRect();return o.clientY<f.top+f.height/2?"before":"after"},pn=o=>o.dataTransfer?.types.includes(Ut)?Me!==null?dn:cn&&Ft!==null:!1;function mn(o,d,f){let h=null;try{let y=o.dataTransfer?.getData(Ut);h=y?JSON.parse(y):null}catch{h=null}if(h){if(h.gridId===A.gridId){if(!dn)return;if(ne?.onReorder){ne.onReorder({dragKey:h.rowKey,targetKey:d,position:f,row:A.getRowByKey(h.rowKey)});return}A.moveRow(h.rowKey,d,f);return}!cn||Ft===null||h.group!==Ft||ne?.onAdd?.({row:h.row,rowKey:h.rowKey,otherGridId:h.gridId,targetKey:d,position:f})}}let Ba=o=>{let d=Ve(o);if(!d||d.node.kind!=="data"||!o.dataTransfer)return;Me=d.node.key,Qt=d.node.key,Xt=!1;let f={gridId:A.gridId,group:Ft,rowKey:d.node.key,row:d.node.data};o.dataTransfer.setData(Ut,JSON.stringify(f)),o.dataTransfer.setData("text/plain",String(d.node.key)),o.dataTransfer.effectAllowed="move",A.notifyRowDrag("enter",{rowKey:d.node.key})},ka=o=>{if(!pn(o))return;o.preventDefault(),o.dataTransfer&&(o.dataTransfer.dropEffect="move");let d=Ve(o);if(!d||d.node.kind!=="data")return;if(Me===d.node.key){Ge=null,ht(null);return}let f=o.target.closest(".kanuni-datagrid-row"),h=hn(o,f),y=et?.key!==d.node.key||et.side!==h;Ge={key:d.node.key,side:h},ht({key:d.node.key,side:h}),y&&Me!==null&&A.notifyRowDrag("move",{rowKey:Me,overKey:d.node.key,position:h})},Ra=o=>{if(!pn(o)){ht(null);return}o.preventDefault();let d=Ve(o);if(Xt=!0,d&&d.node.kind==="data"){let f=o.target.closest(".kanuni-datagrid-row"),h=hn(o,f);Ge={key:d.node.key,side:h},mn(o,d.node.key,h)}else Ge=null,mn(o,null,"after");Me=null,ht(null)},Na=()=>{Qt!==null&&A.notifyRowDragEnd({rowKey:Qt,dropped:Xt,overKey:Ge?.key??null,position:Ge?.side??null}),Xt=!1,Qt=null,Me=null,Ge=null,ht(null)},Ta=o=>{let d=o.relatedTarget;d&&de.contains(d)||Me!==null&&(Ge=null,ht(null),A.notifyRowDrag("leave",{rowKey:Me}))},St=_e===void 0||_e===!1?null:(()=>{let o=_e===!0?{}:_e;return{always:o.always??!1,maxRows:o.maxRows??Zr}})(),Bt=!1;function Hu(o){Bt!==o&&(Bt=o,$.classList.toggle("kanuni-datagrid-print",o),o?(st++,document.documentElement.classList.add("kanuni-datagrid-printing")):(st--,st<=0&&(st=0,document.documentElement.classList.remove("kanuni-datagrid-printing"))),qu())}let gn=null;if(St&&!St.always){let o=()=>{let f=A.getRows().length;if(f>St.maxRows){A.isDebugMode()&&console.warn(`[datagrid] print layout skipped: ${f} rows exceeds maxRows (${St.maxRows}). Printing the visible rows instead \u2014 use exportPdf() for the whole result.`);return}Hu(!0)},d=()=>Hu(!1);window.addEventListener("beforeprint",o),window.addEventListener("afterprint",d),gn=()=>{window.removeEventListener("beforeprint",o),window.removeEventListener("afterprint",d)}}let tt=0,Fe=[],he=0,Ku=0;function Wu(){let o=A.getColumnLayout(),d=A.getVirtualWindow().columns,f=[],h=(b,v,x,B)=>{let w=b.def;f.push({def:w,id:b.state.id,width:b.state.width,pinned:v,inset:x,className:B0(w.align,w.dataType)+(v?" kanuni-datagrid-cell--pinned":"")+(w.autoHeight?" kanuni-datagrid-cell--wrap":""),visualIndex:B})};o.left.forEach((b,v)=>h(b,"left",o.leftOffsets[v]+De,v));for(let b=d.start;b<d.end&&b<o.center.length;b++)h(o.center[b],null,0,o.left.length+b);o.right.forEach((b,v)=>h(b,"right",o.rightOffsets[v],o.left.length+o.center.length+v)),Fe=f,he=d.offsetX;let y=(o.centerOffsets[Math.min(d.end,o.center.length)]??0)-(o.centerOffsets[Math.min(d.start,o.center.length)]??0);Ku=Math.max(0,o.centerWidth-d.offsetX-y),se.style.minWidth=`${o.totalWidth+De}px`}let eu=26;function Ma(){let o=A.getColumnLayout(),d=A.getVirtualWindow().columns,f=[...o.left,...o.center.slice(d.start,Math.min(d.end,o.center.length)),...o.right],h=Mi(f);if(_t.textContent="",ve.style.top=`${h*eu}px`,$.style.setProperty("--dg-band-offset",`${h*eu}px`),h===0)return;Ii(f,h).forEach((b,v)=>{let x=k("kanuni-datagrid-band-row");if(x.style.top=`${v*eu}px`,x.style.height=`${eu}px`,De>0){let B=k("kanuni-datagrid-band-cell kanuni-datagrid-band-cell--spacer kanuni-datagrid-band-cell--pinned");B.style.width=`${De}px`,B.style.flex="none",B.style.insetInlineStart="0px",x.appendChild(B)}if(he>0){let B=k("kanuni-datagrid-spacer");B.style.width=`${he}px`,B.style.flex="none",x.appendChild(B)}for(let B of b){let w=k(`kanuni-datagrid-band-cell${B.spacer?" kanuni-datagrid-band-cell--spacer":""}`);if(w.style.width=`${B.width}px`,w.style.flex="none",!B.spacer){if(B.columnIds.length>0){let R=Le(A.getColumnModel().getDef(B.columnIds[0])).slice(0,v+1);if(R.length===v+1&&A.isBandCollapsible(R)){let I=A.isBandCollapsed(R),P=document.createElement("button");P.type="button",P.className="kanuni-datagrid-band-toggle",P.setAttribute("aria-expanded",String(!I));let L=I?M.expandDetails??"Expand":M.collapseDetails??"Collapse";P.setAttribute("aria-label",L),P.title=L,P.appendChild(S0(I)),P.addEventListener("click",H=>{H.stopPropagation(),A.toggleBand(R)}),w.appendChild(P)}}let D=k("kanuni-datagrid-band-label","span");D.textContent=B.label,w.appendChild(D)}x.appendChild(w)}_t.appendChild(x)})}let kt=null,tu=null;function uu(o,d){tu&&tu!==o&&tu.classList.remove("kanuni-datagrid-header-cell--drop-before","kanuni-datagrid-header-cell--drop-after"),tu=o,o&&(o.classList.toggle("kanuni-datagrid-header-cell--drop-before",d==="before"),o.classList.toggle("kanuni-datagrid-header-cell--drop-after",d==="after"))}function fn(){if(!kt)return;let o=A.getSelectedCount(),d=A.getVisibleCount(),f=d>0&&o>=d;kt.checked=f,kt.indeterminate=!f&&o>0}function Uu(){Ma();let o=A.getSort(),d=new Map(o.map((h,y)=>[h.columnId,{direction:h.direction,order:y}]));if(ve.textContent="",kt=null,l){let h=k("kanuni-datagrid-header-cell kanuni-datagrid-header-cell--pinned kanuni-datagrid-rownum-cell");h.setAttribute("role","columnheader"),h.style.width=`${Et}px`,h.style.flex="none",h.style.insetInlineStart="0px",ve.appendChild(h)}if(Zt){let h=k("kanuni-datagrid-header-cell kanuni-datagrid-header-cell--pinned kanuni-datagrid-detail-toggle-cell");h.setAttribute("role","columnheader"),h.setAttribute("aria-label",M.detailsAria),h.style.width=`${At}px`,h.style.flex="none",h.style.insetInlineStart=`${zu}px`,ve.appendChild(h)}if(Yt){let h=k("kanuni-datagrid-header-cell kanuni-datagrid-header-cell--pinned kanuni-datagrid-select-cell");h.setAttribute("role","columnheader"),h.style.width=`${Wt}px`,h.style.flex="none",h.style.insetInlineStart=`${sn}px`;let y=document.createElement("input");y.type="checkbox",y.setAttribute("aria-label",M.selectAllRows),y.addEventListener("change",()=>{A.getSelectedCount()>0?A.clearSelection():A.selectAll()}),h.appendChild(y),ve.appendChild(h),kt=y,fn()}let f=!1;for(let h of Fe){if(!h.pinned&&!f){if(he>0){let w=document.createElement("div");w.style.flex=`0 0 ${he}px`,ve.appendChild(w)}f=!0}let y=Ca&&h.def.sortable!==!1,b=d.get(h.id),v=k(`kanuni-datagrid-header-cell${y?" kanuni-datagrid-header-cell--sortable":""}${h.pinned?" kanuni-datagrid-header-cell--pinned":""}`);v.setAttribute("role","columnheader"),v.setAttribute("data-column-id",h.id),v.setAttribute("aria-sort",b?b.direction==="asc"?"ascending":"descending":"none");let x=h.def.headerTooltip;x&&(v.title=x),v.style.width=`${h.width}px`,v.style.flex="none",h.pinned==="left"&&(v.style.insetInlineStart=`${h.inset}px`),h.pinned==="right"&&(v.style.insetInlineEnd=`${h.inset}px`);let B=k("kanuni-datagrid-header-label","span");if(h.def.renderHeader){let w=h.def.renderHeader({column:h.def});typeof w=="string"?B.textContent=w:B.appendChild(w)}else B.textContent=h.def.headerName??h.id;if(v.appendChild(B),b){let w=k("kanuni-datagrid-sort-indicator","span");if(w.setAttribute("aria-hidden","true"),w.textContent=b.direction==="asc"?"\u25B2":"\u25BC",v.appendChild(w),o.length>1){let D=k("kanuni-datagrid-sort-order","span");D.setAttribute("aria-hidden","true"),D.textContent=String(b.order+1),v.appendChild(D)}}if(y){let w=h.id;v.addEventListener("click",D=>{A.toggleSort(w,D.shiftKey)})}if(le!==!1){let w=h.id;v.addEventListener("contextmenu",D=>{D.preventDefault(),Za(w,{left:D.clientX,top:D.clientY})})}if(N&&h.def.filterable!==!1){let w=document.createElement("button");w.type="button";let D=A.getColumnFilter(h.id)!==null;w.className=`kanuni-datagrid-filter-button${D?" kanuni-datagrid-filter-button--active":""}${V==="always"?" kanuni-datagrid-filter-button--pinned":""}`,w.setAttribute("aria-haspopup","dialog"),w.setAttribute("aria-label",`${h.def.headerName??h.id} filter`),w.appendChild(F0()),w.addEventListener("click",R=>{R.stopPropagation(),Ka(h.id,w)}),v.appendChild(w)}if(S&&h.def.reorderable!==!1&&(v.draggable=!0,v.addEventListener("dragstart",w=>{w.dataTransfer?.setData("text/x-kanuni-column",h.id),w.dataTransfer&&(w.dataTransfer.effectAllowed="move")}),v.addEventListener("dragover",w=>{if(!w.dataTransfer?.types.includes("text/x-kanuni-column"))return;w.preventDefault();let D=v.getBoundingClientRect(),R=w.clientX<D.left+D.width/2;uu(v,R?"before":"after")}),v.addEventListener("dragleave",w=>{let D=w.relatedTarget;(!D||!v.contains(D))&&uu(null,"before")}),v.addEventListener("drop",w=>{uu(null,"before");let D=w.dataTransfer?.getData("text/x-kanuni-column");if(!D||D===h.id)return;w.preventDefault();let R=v.getBoundingClientRect();if(w.clientX<R.left+R.width/2)A.moveColumn(D,h.id);else{let P=Fe.findIndex(L=>L.id===h.id);A.moveColumn(D,Fe[P+1]?.id)}}),v.addEventListener("dragend",()=>uu(null,"before"))),F&&h.def.resizable!==!1){let w=k("kanuni-datagrid-resize-handle","span");w.setAttribute("data-resize-handle",h.id),w.setAttribute("role","presentation"),w.addEventListener("click",D=>D.stopPropagation()),w.addEventListener("dblclick",D=>{D.stopPropagation(),Xa(h.id)}),w.addEventListener("pointerdown",D=>{D.preventDefault(),D.stopPropagation();let R=D.clientX,I=h.width,P=getComputedStyle(v).direction==="rtl"?-1:1;v.draggable=!1;let L=I,H=!1,Y=me=>{H=!0,L=I+(me.clientX-R)*P,A.setColumnWidth(h.id,L,!1)},ie=()=>{window.removeEventListener("pointermove",Y),window.removeEventListener("pointerup",ie),window.removeEventListener("pointercancel",ie),H&&A.setColumnWidth(h.id,L,!0),v.draggable=S&&h.def.reorderable!==!1};window.addEventListener("pointermove",Y),window.addEventListener("pointerup",ie),window.addEventListener("pointercancel",ie)}),v.appendChild(w)}ve.appendChild(v)}}let Cn=null,ru=null;function Ia(o){if(o===Cn)return;Cn=o;let d=[];for(let f=0;f<o.length;f++)o[f].kind!=="data"&&d.push(f);ru=d.length>0?d:null}function La(o){if(!ru)return o+1;let d=0,f=ru.length;for(;d<f;){let h=d+f>>1;ru[h]<=o?d=h+1:f=h}return o+1-d}let Rt=[];function wn(o="data"){let d=k("kanuni-datagrid-row");if(d.setAttribute("role","row"),o==="panel"){let w=document.createElement("div");return w.setAttribute("role","gridcell"),w.setAttribute("aria-colindex","1"),d.appendChild(w),{kind:o,root:d,cells:[],rowNumberCell:null,selectInput:null,detailToggle:null,leadingSpacer:null,trailingSpacer:null,panelCell:w,epoch:tt}}if(o==="group"){let w=k("kanuni-datagrid-group-cell");w.setAttribute("role","gridcell"),w.setAttribute("aria-colindex","1");let D=k("kanuni-datagrid-group-twisty","span");D.setAttribute("aria-hidden","true");let R=k("kanuni-datagrid-group-caption","span"),I=k("kanuni-datagrid-group-label","span"),P=k("kanuni-datagrid-group-count","span"),L=k("kanuni-datagrid-group-aggregates","span");return w.append(D,R,I,P,L),d.appendChild(w),d.addEventListener("click",()=>{let H=d.getAttribute("data-group-key");H!==null&&A.toggleGroup(H)}),{kind:o,root:d,cells:[],rowNumberCell:null,selectInput:null,detailToggle:null,leadingSpacer:null,trailingSpacer:null,group:{cell:w,twisty:D,caption:R,label:I,count:P,aggregates:L},epoch:tt}}if(Jt){let w=k("kanuni-datagrid-row-grip","span");w.setAttribute("aria-hidden","true"),w.title=M.dragToReorder??"Drag to reorder",w.innerHTML='<svg width="10" height="14" viewBox="0 0 10 14" focusable="false"><g fill="currentColor"><circle cx="3" cy="3" r="1.2"/><circle cx="7" cy="3" r="1.2"/><circle cx="3" cy="7" r="1.2"/><circle cx="7" cy="7" r="1.2"/><circle cx="3" cy="11" r="1.2"/><circle cx="7" cy="11" r="1.2"/></g></svg>',w.addEventListener("mouseenter",()=>{d.draggable=!0}),w.addEventListener("mouseleave",()=>{d.draggable=!1}),d.appendChild(w)}if(z)return{kind:o,root:d,cells:[],rowNumberCell:null,selectInput:null,detailToggle:null,leadingSpacer:null,trailingSpacer:null,epoch:tt};let f=null;l&&(f=k("kanuni-datagrid-cell kanuni-datagrid-cell--number kanuni-datagrid-cell--pinned kanuni-datagrid-rownum-cell"),f.setAttribute("role","gridcell"),f.style.width=`${Et}px`,f.style.flex="none",f.style.insetInlineStart="0px",d.appendChild(f));let h=null;if(Zt){let w=k("kanuni-datagrid-cell kanuni-datagrid-cell--center kanuni-datagrid-cell--pinned kanuni-datagrid-detail-toggle-cell");w.setAttribute("role","gridcell"),w.style.width=`${At}px`,w.style.flex="none",w.style.insetInlineStart=`${zu}px`;let D=document.createElement("button");D.type="button",D.className="kanuni-datagrid-detail-toggle",D.tabIndex=-1,D.addEventListener("click",R=>{R.stopPropagation();let I=d.getAttribute("data-row-key");if(I===null)return;let P=A.getRows().find(L=>String(L.key)===I);P&&P.kind==="data"&&A.toggleDetail(P.key)}),D.addEventListener("mousedown",R=>R.stopPropagation()),w.appendChild(D),d.appendChild(w),h=D}let y=null;if(Yt){let w=k("kanuni-datagrid-cell kanuni-datagrid-cell--center kanuni-datagrid-cell--pinned kanuni-datagrid-select-cell");w.setAttribute("role","gridcell"),w.style.width=`${Wt}px`,w.style.flex="none",w.style.insetInlineStart=`${sn}px`;let D=document.createElement("input");D.type="checkbox",D.tabIndex=-1;let R=()=>{let I=d.getAttribute("data-row-key");if(I===null)return;let P=A.getRows().find(L=>String(L.key)===I);P&&A.toggleRow(P.key)};w.addEventListener("mousedown",I=>I.stopPropagation()),w.addEventListener("click",I=>{I.target.tagName!=="INPUT"&&(I.stopPropagation(),R())}),D.addEventListener("change",R),D.addEventListener("click",I=>I.stopPropagation()),D.addEventListener("mousedown",I=>I.stopPropagation()),w.appendChild(D),d.appendChild(w),y=D}let b=[],v=null,x=!1;for(let w of Fe){!w.pinned&&!x&&(v=document.createElement("div"),v.style.flex=`0 0 ${he}px`,d.appendChild(v),x=!0);let D=k(w.className);D.setAttribute("role","gridcell"),D.setAttribute("data-column-id",w.id),D.style.width=`${w.width}px`,D.style.flex="none",w.pinned==="left"&&(D.style.insetInlineStart=`${w.inset}px`),w.pinned==="right"&&(D.style.insetInlineEnd=`${w.inset}px`),d.appendChild(D),b.push({el:D,slot:w})}let B=document.createElement("div");return B.style.flex=`0 0 ${Ku}px`,d.appendChild(B),{kind:o,root:d,cells:b,rowNumberCell:f,selectInput:y,detailToggle:h,leadingSpacer:v,trailingSpacer:B,epoch:tt}}let pt="";function nu(o,d){if(pt===""||d===""){o.textContent=d;return}let f=te(d),h=f.indexOf(pt);if(h===-1){o.textContent=d;return}let y=[],b=0;for(;h!==-1;){h>b&&y.push(document.createTextNode(d.slice(b,h)));let v=document.createElement("mark");v.className="kanuni-datagrid-highlight",v.textContent=d.slice(h,h+pt.length),y.push(v),b=h+pt.length,h=f.indexOf(pt,b)}b<d.length&&y.push(document.createTextNode(d.slice(b))),o.replaceChildren(...y)}function Pa(o,d,f){let h=A.getColumnModel().getCellValue(f.data,d.id),y=d.def;if(y.renderCell){let v=y.renderCell({value:h,row:f.data,node:f,column:y});typeof v=="string"?o.textContent=v:o.replaceChildren(v);return}let b=wt(y,h);if(b!==null){nu(o,b);return}if(y.valueFormatter){let v=y.valueFormatter(h,f.data);nu(o,typeof v=="string"?v:String(v??""));return}if(y.dateFormat&&y.dataType==="date"){nu(o,Pr(h,y.dateFormat));return}nu(o,h==null?"":String(h))}function yn(o,d,f){let h=o.root;if(h.setAttribute("aria-rowindex",String(f+2)),h.setAttribute("data-row-key",String(d.key)),d.kind==="detail"||d.kind==="editform"){let w=o.panelCell,D=d.kind==="detail";h.className=`kanuni-datagrid-row ${D?"kanuni-datagrid-detail-row":"kanuni-datagrid-editform-row"}`,h.style.height=`${d.height}px`,D?(h.setAttribute("data-detail-for",String(d.parentKey)),h.removeAttribute("data-editform-for")):(h.setAttribute("data-editform-for",d.parentKey===null?"":String(d.parentKey)),h.removeAttribute("data-detail-for")),w.className=D?"kanuni-datagrid-detail-cell":"kanuni-datagrid-editform-cell";let R=`${d.kind}:${String(d.key)}`;if(h.getAttribute("data-panel-for")!==R){h.setAttribute("data-panel-for",R);let I=D?Xr?.(d.data):d.parentKey===null?void 0:ma?.(d.parentKey,d.data);w.textContent="",typeof I=="string"?w.textContent=I:I&&w.appendChild(I)}return}if(h.removeAttribute("data-panel-for"),h.removeAttribute("data-detail-for"),h.removeAttribute("data-editform-for"),d.kind==="filler"){h.style.display="none";return}h.style.display="",h.style.height=En?"":`${A.getRowHeight()}px`,h.classList.toggle("kanuni-datagrid-row--odd",a&&f%2===1),h.classList.toggle("kanuni-datagrid-row--selected",A.isRowSelected(d.key));let y=A.getFocus();if(h.classList.toggle("kanuni-datagrid-row--focused",W&&y!==null&&y.rowKey===d.key),o.leadingSpacer&&(o.leadingSpacer.style.flex=`0 0 ${he}px`),o.trailingSpacer&&(o.trailingSpacer.style.flex=`0 0 ${Ku}px`),Jt){let w=et!==null&&String(et.key)===String(d.key);h.classList.toggle("kanuni-datagrid-row--drop-before",w&&et.side==="before"),h.classList.toggle("kanuni-datagrid-row--drop-after",w&&et.side==="after")}if(o.rowNumberCell&&(o.rowNumberCell.textContent=String(La(f))),o.selectInput&&(o.selectInput.checked=A.isRowSelected(d.key),o.selectInput.setAttribute("aria-label",M.selectRowAria.replace("{row}",String(d.key)))),o.detailToggle&&d.kind==="data"){let w=A.isDetailExpanded(d.key);o.detailToggle.textContent=w?"\u25BE":"\u25B8",o.detailToggle.setAttribute("aria-expanded",String(w)),o.detailToggle.setAttribute("aria-label",w?M.collapseDetails:M.expandDetails)}if(d.kind==="group"&&o.group){let w=d;h.className=`kanuni-datagrid-row kanuni-datagrid-group-row kanuni-datagrid-group-row--level-${w.level}`,h.setAttribute("aria-expanded",String(w.expanded)),h.setAttribute("aria-level",String(w.level+1)),h.setAttribute("data-group-key",String(w.key)),h.setAttribute("data-group-level",String(w.level)),o.group.cell.style.paddingLeft=w.level>0?`${8+w.level*18}px`:"",o.group.twisty.textContent=w.expanded?"\u25BE":"\u25B8";let D=A.getColumnModel().getDef(w.columnId),R=D?.headerName??w.columnId;o.group.caption.textContent=`${R}:`,o.group.label.textContent=wt(D,w.value)??(w.label===""?M.filterBlank:w.label),o.group.count.textContent=`(${w.count})`,o.group.aggregates.textContent="";let I=w.aggregates??null;if(I)for(let P of A.getSummaryDefs()){let L=k("kanuni-datagrid-group-aggregate","span"),H=k("kanuni-datagrid-group-aggregate-label","span"),Y=A.getColumnModel().getDef(P.columnId);H.textContent=`${$r(P,Gu)} ${Y?.headerName??P.columnId}:`,L.append(H,` ${qr(P,I[ot(P.columnId,P.type)],Y)}`),o.group.aggregates.appendChild(L)}return}if(d.kind!=="data"){for(let{el:w}of o.cells)w.textContent="";return}if(h.className=h.className.includes("group-row")?"kanuni-datagrid-row":h.className,z){let w=Jt?1:0,D=z({row:d.data,node:d,rowIndex:f,selected:A.isRowSelected(d.key),focused:W&&y!==null&&y.rowKey===d.key});if(D instanceof Node&&h.childNodes.length===w+1&&h.childNodes[w]===D)return;for(;h.childNodes.length>w;)h.removeChild(h.lastChild);typeof D=="string"?h.appendChild(document.createTextNode(D)):D&&h.appendChild(D);return}let b=y!==null&&y.rowKey===d.key?y.columnId:null,v=d.tree,x=v?(()=>{let w=A.getColumnLayout();return(w.left[0]??w.center[0]??w.right[0])?.state.id??null})():null,B=A.hasCellSpans();for(let{el:w,slot:D}of o.cells){let R=Mu||Iu?{node:d,columnId:D.id,rowIndex:f,columnIndex:D.visualIndex,value:A.getColumnModel().getCellValue(d.data,D.id)}:null,I=R&&Mu?Mu(R):void 0,P=!1;if(I!==void 0?I instanceof Node&&w.childNodes.length===1&&w.firstChild===I?P=!0:typeof I=="string"?w.textContent=I:w.replaceChildren(I):(Pa(w,D,d),v&&D.id===x&&Va(w,d,v)),B&&!P){let q=Oa(f,D.id);w.classList.toggle("kanuni-datagrid-cell--span",q?.kind==="draw"),w.classList.toggle("kanuni-datagrid-cell--span-covered",q?.kind==="covered");let He=I!==void 0;if(q?.kind==="covered"&&b!==D.id&&!He)w.replaceChildren();else if(q?.kind==="draw"){let oe=k("kanuni-datagrid-span-box");oe.style.height=`${q.height}px`,oe.append(...Array.from(w.childNodes)),w.appendChild(oe)}}else B||w.classList.remove("kanuni-datagrid-cell--span","kanuni-datagrid-cell--span-covered");if(Ye){let q=!!$u(d.key,D.id,d.data);w.classList.toggle("kanuni-datagrid-cell--noted",q)}w.id=`${t.gridId}-cell-${String(d.key)}-${D.id}`,w.classList.toggle("kanuni-datagrid-cell--focused",b===D.id);let L=w.getAttribute("data-slot-classes");if(L)for(let q of L.split(" "))w.classList.remove(q);let H=R&&Iu?Iu(R):void 0,Y=D.def.cellClassName,me=[typeof Y=="function"?Y({value:A.getColumnModel().getCellValue(d.data,D.id),row:d.data,node:d,column:D.def}):Y,H].filter(Boolean).join(" ")||void 0;if(me){for(let q of me.split(" "))w.classList.add(q);w.setAttribute("data-slot-classes",me)}else L&&w.removeAttribute("data-slot-classes")}}let En=t.columns.some(o=>o.autoHeight);function Ga(){if(!En)return;let o=A.getVirtualWindow(),d=A.getRows(),f=new Map(A.getMeasuredRowHeights()),h=!1;for(let y=o.rows.start;y<o.rows.end&&y<d.length;y++){let b=d[y];if(!b||b.kind!=="data")continue;let v=y-o.rows.start,x=Rt[v]?.root;if(!x)continue;let B=x.getBoundingClientRect().height;B>0&&f.get(b.key)!==B&&(f.set(b.key,B),h=!0)}h&&A.setMeasuredRowHeights(f)}let iu={start:0,end:0};function Oa(o,d){let f=A.getCellSpans(d);if(f.length===0)return null;let h=_i(f,o,iu.start,iu.end);if(!h)return null;if(h.role==="covered")return{kind:"covered"};let y=A.getRowOffset(h.drawStart);return{kind:"draw",height:A.getRowOffset(h.drawEnd)+A.getRowHeightAt(h.drawEnd)-y}}function Va(o,d,f){let h=k(`kanuni-datagrid-tree-cell${f.ancestorOnly?" kanuni-datagrid-tree-cell--ancestor":""}`,"span");if(h.style.paddingInlineStart=`${f.depth*16}px`,f.hasChildren){let y=document.createElement("button");y.type="button",y.className="kanuni-datagrid-tree-toggle",y.setAttribute("data-tree-toggle",""),y.setAttribute("aria-expanded",String(f.expanded)),y.setAttribute("aria-label",f.expanded?M.collapseDetails:M.expandDetails),y.textContent=f.expanded?"\u25BE":"\u25B8",y.addEventListener("mousedown",b=>b.stopPropagation()),y.addEventListener("click",b=>{b.stopPropagation(),A.toggleTreeRow(d.key)}),h.appendChild(y)}else h.appendChild(k("kanuni-datagrid-tree-toggle kanuni-datagrid-tree-toggle--leaf","span"));h.append(...Array.from(o.childNodes)),o.appendChild(h)}let $u=(o,d,f)=>Ye?Ye.get({rowKey:o,columnId:d,row:f})??null:null,An=null,Oe=Lu?k("kanuni-datagrid-overlay"):null;Oe&&(Oe.style.position="absolute",Oe.style.inset="0",Oe.style.pointerEvents="none",de.appendChild(Oe));function za(){if(!Lu||!Oe)return;let o=Lu();o!==An&&(An=o,o?Oe.replaceChildren(o):Oe.replaceChildren())}function qu(){za();let o=A.getVirtualWindow(),d=A.getRows(),f=Bt?{...o,rows:{...o.rows,start:0,end:d.length,offsetY:0,totalHeight:0}}:o;Ia(d),de.style.height=`${f.rows.totalHeight}px`,X.style.transform=`translateY(${f.rows.offsetY}px)`,pt=fa?zt(A.getSearchText()):"";let h=Math.max(0,Math.min(f.rows.end,d.length)-f.rows.start);for(iu.start=f.rows.start,iu.end=Math.min(f.rows.end,d.length)-1;Rt.length>h;)Rt.pop().root.remove();for(let y=0;y<h;y++){let b=f.rows.start+y,v=d[b],x=v.kind==="data"?"data":v.kind==="group"?"group":v.kind==="detail"||v.kind==="editform"?"panel":"stub",B=Rt[y];if(!B||B.epoch!==tt||B.kind!==x){let w=wn(x);B?X.replaceChild(w.root,B.root):X.appendChild(w.root),Rt[y]=w,B=w}yn(B,v,b)}Ga()}let bn=ji(ga??(A.isRemote()?200:0));function _u(){if(!T)return;if(dt.textContent="",De>0){let d=k("kanuni-datagrid-filter-cell kanuni-datagrid-filter-cell--pinned");d.style.width=`${De}px`,d.style.flex="none",d.style.insetInlineStart="0px",dt.appendChild(d)}let o=!1;for(let d of Fe){if(!d.pinned&&!o){if(he>0){let h=k("kanuni-datagrid-spacer");h.style.width=`${he}px`,h.style.flex="none",dt.appendChild(h)}o=!0}let f=k(`kanuni-datagrid-filter-cell${d.pinned?" kanuni-datagrid-filter-cell--pinned":""}`);if(f.style.width=`${d.width}px`,f.style.flex="none",d.pinned==="left"&&(f.style.insetInlineStart=`${d.inset}px`),d.pinned==="right"&&(f.style.insetInlineEnd=`${d.inset}px`),d.def.filterable!==!1){let h=document.createElement("input");h.className="kanuni-datagrid-filter-input",h.setAttribute("aria-label",`${d.def.headerName??d.id} filter`);let y=()=>A.setColumnFilter(d.id,sa(d.id,h.value,d.def.dataType),Gi);h.addEventListener("input",()=>bn.schedule(d.id,y));let b=()=>{bn.cancel(d.id),y()};h.addEventListener("keydown",v=>{v.key==="Enter"&&b()}),h.addEventListener("blur",b),f.appendChild(h)}dt.appendChild(f)}}let ju=()=>{};function Ha(){if(!tn)return;let o=document.createElement("input");o.type="search",o.className="kanuni-datagrid-toolbar-search",o.placeholder=M.toolbarSearch,o.setAttribute("aria-label",M.toolbarSearch);let d=null;o.addEventListener("input",()=>{d&&clearTimeout(d),d=setTimeout(()=>A.setSearchText(o.value),ba)});let f=k("kanuni-datagrid-toolbar-spacer"),h=null;if(qe){let w=document.createElement("button");w.type="button",w.textContent=M.toolbarColumns??"Columns",w.setAttribute("aria-haspopup","dialog"),w.addEventListener("click",()=>{let D=w.getBoundingClientRect();kn({left:D.left,top:D.bottom+2})}),h=w}let y=Pe&&Ea,b=Pe&&Aa,v=document.createElement("button");v.type="button",v.className="kanuni-datagrid-toolbar-icon-button",v.setAttribute("aria-haspopup","menu"),v.setAttribute("aria-label",M.exportMenu),v.setAttribute("data-testid","dg-export-menu"),v.title=M.exportMenu,v.appendChild(D0());let x=null;v.addEventListener("click",()=>{if(x)return;let w=v.getBoundingClientRect();ut({left:w.right-190,top:w.bottom+2},D=>{D.setAttribute("role","menu"),D.setAttribute("aria-label",M.exportMenu);let R=[{kind:"csv",label:M.exportCsv,testId:"dg-export-csv",on:!0},{kind:"excel",label:M.exportExcel,testId:"dg-export-excel",on:y},{kind:"excel-selected",label:M.exportExcelSelected,testId:"dg-export-excel-selected",on:y},{kind:"pdf",label:M.exportPdf,testId:"dg-export-pdf",on:b}];for(let I of R){if(!I.on)continue;let P=document.createElement("button");P.type="button",P.className="kanuni-datagrid-menu-item",P.setAttribute("role","menuitem"),P.setAttribute("data-testid",I.testId),P.textContent=I.label,I.kind==="excel-selected"&&A.getSelectedCount()===0&&(P.disabled=!0),P.addEventListener("click",()=>{x=I.kind,v.disabled=!0,pe(),_r(A,I.kind).then(L=>{x=null,v.disabled=!1,L.error&&ju(L.error)})}),D.appendChild(P)}},"kanuni-datagrid-filter-popup kanuni-datagrid-export-menu")});for(let w of ya??[])Je.append(w);Je.append(o,f),h&&Je.append(h),Je.append(v);for(let w of wa??[])Je.append(w);let B=k("kanuni-datagrid-toolbar-error","span");B.setAttribute("role","alert"),B.style.display="none",Je.append(B),ju=w=>{B.textContent=w,B.style.display=""}}function vn(){if(!ct.isConnected)return;let o=A.getPage(),d=A.getPageCount();ct.textContent="";let f=(x,B,w,D)=>{let R=document.createElement("button");return R.type="button",R.textContent=x,R.setAttribute("aria-label",B),R.disabled=w,R.addEventListener("click",D),R},h=k("kanuni-datagrid-pager-buttons"),y=o<=0,b=o>=d-1;h.append(f("\xAB",M.pagerFirst??"First",y,()=>A.setPage(0)),f("\u2039",M.pagerPrevious??"Previous",y,()=>A.setPage(o-1)));let v=k("kanuni-datagrid-pager-current","span");v.textContent=`${o+1} / ${d}`,h.append(v,f("\u203A",M.pagerNext??"Next",b,()=>A.setPage(o+1)),f("\xBB",M.pagerLast??"Last",b,()=>A.setPage(d-1))),ct.appendChild(h)}function Yu(){if(!Te)return;let o=A.getColumnLayout(),d=A.getSummaries(),f=new Map(A.getSummaryDefs().map(y=>[y.columnId,y]));if(ae.textContent="",ae.style.width=`${o.totalWidth+De}px`,De>0){let y=k("kanuni-datagrid-footer-cell kanuni-datagrid-footer-cell--pinned");y.style.width=`${De}px`,y.style.insetInlineStart="0px",ae.appendChild(y)}let h=!1;for(let y of Fe){if(!y.pinned&&!h){if(he>0){let B=k("kanuni-datagrid-spacer");B.style.width=`${he}px`,ae.appendChild(B)}h=!0}let b=f.get(y.id),v=y.def.dataType==="number",x=k(`kanuni-datagrid-footer-cell${y.pinned?" kanuni-datagrid-footer-cell--pinned":""}${v?" kanuni-datagrid-footer-cell--number":""}${b?" kanuni-datagrid-footer-cell--active":""}`);if(x.setAttribute("role","gridcell"),x.setAttribute("data-column-id",y.id),x.setAttribute("data-summary-type",b?.type??""),x.style.width=`${y.width}px`,y.pinned==="left"&&(x.style.insetInlineStart=`${y.inset}px`),y.pinned==="right"&&(x.style.insetInlineEnd=`${y.inset}px`),b){x.title=`${$r(b,Gu)} \u2014 ${y.def.headerName??y.id}`;let B=k("kanuni-datagrid-footer-value","span");B.textContent=qr(b,d[ot(b.columnId,b.type)],y.def),x.appendChild(B)}else{let B=k("kanuni-datagrid-footer-hint","span");B.textContent=m?"\xB7":"",x.appendChild(B)}ae.appendChild(x)}}function Zu(){let o=(d,f,h)=>{d.textContent="",f.forEach((y,b)=>{let v=wn("data");yn(v,{kind:"data",key:`__pinned-${h}-${b}`,sourceIndex:-1,data:y},b),v.root.classList.remove("kanuni-datagrid-row--odd"),v.root.removeAttribute("aria-rowindex"),v.rowNumberCell&&(v.rowNumberCell.textContent=""),d.appendChild(v.root)})};g.length>0&&o(vt,g,"top"),E.length>0&&o(rn,E,"bottom")}let mt=null,Ju=null;function pe(){Ju?.(),Ju=null,mt?.remove(),mt=null}function xn(o,d){let h=o.getBoundingClientRect();h.width===0&&h.height===0||(o.style.left=`${Math.max(8,Math.min(d.left,window.innerWidth-h.width-8))}px`,o.style.top=`${Math.max(8,Math.min(d.top,window.innerHeight-h.height-8))}px`)}function ut(o,d,f="kanuni-datagrid-filter-popup"){pe(),mt=k(`${Yr(t)} kanuni-datagrid-portal`);let h=k(f);h.style.position="fixed",h.style.left=`${o.left}px`,h.style.top=`${o.top}px`,h.style.zIndex="1000",d(h),mt.appendChild(h),document.body.appendChild(mt),xn(h,o);let y=mt,b=x=>{y.contains(x.target)||pe()},v=x=>{x.key==="Escape"&&pe()};document.addEventListener("pointerdown",b,!0),document.addEventListener("keydown",v,!0),Ju=()=>{document.removeEventListener("pointerdown",b,!0),document.removeEventListener("keydown",v,!0)}}let rt=25,Dn=8,Fn=new Map,Sn=0;function Ka(o,d){let f=d.getBoundingClientRect(),h=++Sn;ut({left:f.left,top:f.bottom+2},y=>{let b=[],v=!0,x=new Set,B=!1,w=0,D="",R=[],I=null,P="",L=[],H=document.createElement("input");H.type="search",H.className="kanuni-datagrid-filter-search",H.placeholder=M.search,H.setAttribute("data-testid","dg-filter-search");let Y=k("kanuni-datagrid-filter-actions"),ie=document.createElement("button");ie.type="button",ie.textContent=M.filterSelectAll,ie.addEventListener("click",()=>{B=!0,x=new Set(b.map(G=>G.label)),Se()});let me=document.createElement("button");me.type="button",me.textContent=M.clear,me.addEventListener("click",()=>{B=!0,x=new Set,Se()}),Y.append(ie,me);let q=k("kanuni-datagrid-filter-list");q.setAttribute("role","listbox"),q.setAttribute("aria-multiselectable","true");let He=document.createElement("div");He.style.position="relative";let oe=document.createElement("div");He.appendChild(oe),q.appendChild(He);let pu=()=>{let G=te(D.trim());if(!G){R=b;return}I||(I=b.map(_=>te(_.label))),R=P!==""&&G.includes(P)?L.filter(_=>te(_.label).includes(G)):b.filter((_,ee)=>I[ee].includes(G)),P=G,L=R},Se=()=>{if(q.setAttribute("aria-busy",String(v)),q.setAttribute("aria-setsize",String(R.length)),v){He.style.height="",oe.textContent="";let Ae=k("kanuni-datagrid-filter-empty");Ae.textContent=M.filterLoading,oe.appendChild(Ae);return}if(R.length===0){He.style.height="",oe.style.transform="",oe.textContent="";let Ae=k("kanuni-datagrid-filter-empty");Ae.textContent=M.filterNoMatch,oe.appendChild(Ae);return}let G=q.clientHeight||240,_=Math.max(0,Math.floor(q.scrollTop/rt)-Dn),ee=Math.ceil(G/rt)+Dn*2,Ee=Math.min(_,Math.max(0,R.length-1)),so=Math.min(R.length,Ee+ee);He.style.height=`${R.length*rt}px`,oe.style.transform=`translateY(${Ee*rt}px)`,oe.textContent="";for(let Ae=Ee;Ae<so;Ae++){let ft=R[Ae],Be=k("kanuni-datagrid-filter-item");Be.setAttribute("role","option"),Be.setAttribute("aria-selected",String(x.has(ft.label))),Be.tabIndex=0,Be.setAttribute("data-value",ft.label),Be.setAttribute("data-index",String(Ae)),Ae===w&&Be.classList.add("kanuni-datagrid-filter-item--active");let Mt=document.createElement("input");Mt.type="checkbox",Mt.readOnly=!0,Mt.checked=x.has(ft.label),Mt.tabIndex=-1;let Qn=document.createElement("span");Qn.textContent=ft.label===""?M.filterBlank:ft.label,Be.append(Mt,Qn),Be.addEventListener("click",()=>Yn(ft.label)),Be.addEventListener("focus",()=>{w=Ae}),oe.appendChild(Be)}},Yn=G=>{B=!0,x.has(G)?x.delete(G):x.add(G);for(let _ of oe.querySelectorAll(".kanuni-datagrid-filter-item")){if(_.getAttribute("data-value")!==G)continue;_.setAttribute("aria-selected",String(x.has(G)));let ee=_.querySelector("input");ee&&(ee.checked=x.has(G))}};q.addEventListener("scroll",()=>{Fn.set(o,q.scrollTop),Se()}),H.addEventListener("input",()=>{D=H.value,w=0,pu(),Se()});let sr=G=>{if(R.length===0)return;w=Math.max(0,Math.min(R.length-1,G));let _=w*rt,ee=q.clientHeight||240;_<q.scrollTop?q.scrollTop=_:_+rt>q.scrollTop+ee&&(q.scrollTop=_+rt-ee),Se(),y.querySelector(`.kanuni-datagrid-filter-item[data-index="${w}"]`)?.focus()},Zn=()=>{if(v)return;let G;if(x.size===b.length)G=null;else{let _=x.has(""),ee=b.filter(Ee=>Ee.label!==""&&x.has(Ee.label));ee.length===0?G=_?{columnId:o,operator:"isnull"}:null:_?G={logic:"or",nodes:[{columnId:o,operator:"in",value:ee.map(Ee=>Ee.value)},{columnId:o,operator:"isnull"}]}:G={columnId:o,operator:"in",value:ee.map(Ee=>Ee.value)}}A.setColumnFilter(o,G,Lr),pe()};y.tabIndex=-1,y.addEventListener("keydown",G=>{let _=G.target===H;if(G.key==="Backspace"&&!_){G.preventDefault(),H.focus(),D=D.slice(0,-1),H.value=D,w=0,pu(),Se();return}if(G.key==="ArrowDown"){G.preventDefault(),sr(_?0:w+1);return}if(G.key==="ArrowUp"){G.preventDefault(),sr(_?R.length-1:w-1);return}if(!_&&(G.key==="Home"||G.key==="End")){G.preventDefault(),sr(G.key==="Home"?0:R.length-1);return}if(G.key===" "&&!_){G.preventDefault();let ee=R[w];ee&&Yn(ee.label);return}if(G.key==="Enter"){G.preventDefault(),Zn();return}!_&&G.key.length===1&&G.key!==" "&&!G.ctrlKey&&!G.metaKey&&!G.altKey&&(G.preventDefault(),H.focus(),D+=G.key,H.value=D,w=0,pu(),Se())});let Jn=k("kanuni-datagrid-filter-footer"),mu=document.createElement("button");mu.type="button",mu.textContent=M.cancel,mu.addEventListener("click",()=>pe());let Ke=document.createElement("button");Ke.type="button",Ke.className="kanuni-datagrid-filter-primary",Ke.setAttribute("data-testid","dg-filter-apply"),Ke.textContent=M.apply,Ke.disabled=!0,Ke.addEventListener("click",Zn),Jn.append(mu,Ke),y.append(H,Y,q,Jn),Se(),queueMicrotask(()=>{H.isConnected&&H.focus()}),A.getDistinctValueSetAsync(o).then(G=>{if(Sn!==h||!y.isConnected)return;b=G.entries,I=null,P="",v=!1,Ke.disabled=!1;let _=qi(A.getColumnFilter(o,Lr)??A.getColumnFilter(o,Vt),b);_?(B=!0,x=new Set(_)):B||(x=new Set(b.map(Ee=>Ee.label))),pu();let ee=Fn.get(o);Se(),ee&&(q.scrollTop=ee,Se())})})}function au(o={}){let d=A.getClipboardText(o);A.notifyClipboardGesture("copy",d?d.split(`
|
|
13
|
+
`).length:0,()=>!d||!navigator.clipboard?.writeText?!1:(navigator.clipboard.writeText(d).catch(()=>{}),!0))}function Wa(o){if(be===!1)return[];let d=be===!0?{}:be,f=[],h=b=>{o&&f.length===0&&f.push({separator:!0,id:"__dg-sep"}),f.push(b)};d.copy!==!1&&h({id:"__dg-copy",label:M.menuCopy,shortcut:`${$a}C`,onSelect:()=>au()}),d.copyWithHeaders!==!1&&h({id:"__dg-copy-headers",label:M.menuCopyWithHeaders,onSelect:()=>au({includeHeaders:!0})}),d.copyWithGroupHeaders!==!1&&Ua()&&h({id:"__dg-copy-group-headers",label:M.menuCopyWithGroupHeaders,onSelect:()=>au({includeGroupHeaders:!0})});let y=d.export===!1?[]:Array.isArray(d.export)?d.export:["csv","excel","excel-selected","pdf"];if(y.length>0){let b=A.getSelectedCount()===0,v={csv:M.exportCsv,excel:M.exportExcel,"excel-selected":M.exportExcelSelected,pdf:M.exportPdf};h({id:"__dg-export",label:M.menuExport,items:y.map(x=>({id:`__dg-export-${x}`,label:v[x],disabled:x==="excel-selected"&&b,onSelect:()=>{_r(A,x).then(B=>{B.error&&ju(B.error)})}}))})}return f}function Ua(){let o=A.getColumnModel();return A.getVisualColumnIds().some(d=>{let f=o.getDef(d)?.band;return typeof f=="string"?f!=="":Array.isArray(f)&&f.length>0})}function R0(o,d,f){let h=k("kanuni-datagrid-menu-row"),y=document.createElement("button");y.type="button",y.className="kanuni-datagrid-menu-item";let b=k("kanuni-datagrid-menu-label","span");if(b.textContent=o,y.appendChild(b),d){let v=k("kanuni-datagrid-menu-shortcut","span");v.textContent=d,y.appendChild(v)}return y.addEventListener("click",()=>{f(),pe()}),h.appendChild(y),h}let $a=/Mac|iPhone|iPad|iPod/.test(navigator.platform??"")?"\u2318":"Ctrl+";function Qu(o,d,f){let h=null,y=()=>{h?.remove(),h=null};d.forEach((b,v)=>{if(b.separator){let R=k("kanuni-datagrid-menu-separator");R.setAttribute("role","separator"),o.appendChild(R);return}let x=k("kanuni-datagrid-menu-row"),B=document.createElement("button");if(B.type="button",B.className="kanuni-datagrid-menu-item",B.setAttribute("role","menuitem"),B.setAttribute("data-item-index",String(v)),b.disabled&&(B.disabled=!0),b.icon!==void 0){let R=k("kanuni-datagrid-menu-icon","span");typeof b.icon=="string"?R.textContent=b.icon:R.appendChild(b.icon),B.appendChild(R)}let w=k("kanuni-datagrid-menu-label","span");if(w.textContent=b.label??"",B.appendChild(w),b.shortcut){let R=k("kanuni-datagrid-menu-shortcut","span");R.textContent=b.shortcut,B.appendChild(R)}let D=b.items??[];if(D.length>0){let R=k("kanuni-datagrid-menu-caret","span");R.textContent="\u203A",B.appendChild(R),B.setAttribute("aria-haspopup","menu"),B.setAttribute("aria-expanded","false");let I=()=>{y();let P=k("kanuni-datagrid-context-menu kanuni-datagrid-submenu");P.setAttribute("role","menu");let L=B.getBoundingClientRect();P.style.left=`${L.right}px`,P.style.top=`${Math.max(0,L.top-4)}px`;for(let H of D){if(H.separator){let me=k("kanuni-datagrid-menu-separator");me.setAttribute("role","separator"),P.appendChild(me);continue}let Y=document.createElement("button");Y.type="button",Y.className="kanuni-datagrid-menu-item",Y.setAttribute("role","menuitem"),H.disabled&&(Y.disabled=!0);let ie=k("kanuni-datagrid-menu-label","span");ie.textContent=H.label??"",Y.appendChild(ie),Y.addEventListener("click",()=>{H.onSelect?.(f),pe()}),P.appendChild(Y)}o.parentElement?.appendChild(P),xn(P,{left:L.right,top:Math.max(0,L.top-4)}),h=P,B.setAttribute("aria-expanded","true")};B.addEventListener("mouseenter",I),B.addEventListener("click",I)}else B.addEventListener("mouseenter",y),B.addEventListener("click",()=>{b.onSelect?.(f),pe()});x.appendChild(B),o.appendChild(x)})}let Bn=o=>{let f=o.target.closest(".kanuni-datagrid-row");if(!f||f.classList.contains("kanuni-datagrid-group-row"))return;let h=Ve(o);if(h?.columnId&&A.notifyCell("cellContextMenu",h.node,h.rowIndex,h.columnId),!Ce&&!be||!h||h.node.kind!=="data")return;o.preventDefault(),A.isRowSelected(h.node.key)||A.handleRowClick(h.node.key,{}),h.columnId&&A.focusCell(h.node.key,h.columnId);let y={row:h.node.data,node:h.node,rowIndex:h.rowIndex,columnId:h.columnId,selectedKeys:A.getSelectedKeys()},b=(typeof Ce=="function"?Ce(y):Ce)??[],v=[...b,...qa(y,b.length>0)],x=Wa(v.length>0);v.length===0&&x.length===0||ut({left:o.clientX,top:o.clientY},B=>{B.setAttribute("role","menu"),Qu(B,[...v,...x],y)},"kanuni-datagrid-context-menu")};function qa(o,d){if(!Ye?.onChange||Ye.menu===!1)return[];let f=o.columnId;if(!f)return[];let h=o.node.key,y=$u(h,f,o.row),b=[];return d&&b.push({separator:!0,id:"__note-sep"}),b.push({id:"__note-edit",label:y?M.editNote:M.addNote,onSelect:()=>_a(h,f,o.row,y??"")}),y&&b.push({id:"__note-delete",label:M.deleteNote,onSelect:()=>Ye.onChange?.({rowKey:h,columnId:f,row:o.row,text:null})}),b}function _a(o,d,f,h){let b=($.querySelector(`[data-row-key="${CSS.escape(String(o))}"] [data-column-id="${CSS.escape(d)}"]`)??$).getBoundingClientRect();queueMicrotask(()=>{ut({left:b.left,top:b.bottom+2},v=>{v.setAttribute("aria-label",M.noteEditorAria);let x=document.createElement("textarea");x.className="kanuni-datagrid-note-input",x.rows=4,x.value=h,x.setAttribute("aria-label",M.noteEditorAria),x.placeholder=M.notePlaceholder,x.setAttribute("data-testid","dg-note-input");let B=()=>{let I=x.value.trim();pe(),Ye?.onChange?.({rowKey:o,columnId:d,row:f,text:I===""?null:I})};x.addEventListener("keydown",I=>{I.key==="Enter"&&(I.ctrlKey||I.metaKey)&&(I.preventDefault(),B()),I.key==="Escape"&&(I.preventDefault(),pe())});let w=k("kanuni-datagrid-note-actions"),D=document.createElement("button");D.type="button",D.className="kanuni-datagrid-note-cancel",D.textContent=M.cancel,D.addEventListener("click",()=>pe());let R=document.createElement("button");R.type="button",R.className="kanuni-datagrid-note-save",R.setAttribute("data-testid","dg-note-save"),R.textContent=M.save,R.addEventListener("click",B),w.append(D,R),v.append(x,w),queueMicrotask(()=>{x.focus(),x.select()})},"kanuni-datagrid-filter-popup kanuni-datagrid-note-editor")})}function ja(o){Xe!==o&&(Xe=o,o?($.insertBefore(ce,U),tr()):ce.remove())}function Ya(o){if(Te!==o){if(Te=o,o){if(Ze){let d=g.length>0?vt:de;se.insertBefore(ae,d)}else se.append(ae);Yu()}else ae.remove();vt.style.setProperty("--dg-pinned-gap",String(Ou+(Te&&Ze?1:0)))}}function Xu(o){let d=Nu($,o);d!==null&&A.setColumnWidth(o,d)}function Za(o,d){let f=A.getColumnModel().getDef(o),h={columnId:o,headerName:f?.headerName??o},y=Ru(h,{controller:A,t:M,groupPanelVisible:Xe,footerVisible:Te,onToggleGroupPanel:()=>ja(!Xe),onToggleFooter:()=>Ya(!Te),onOpenFieldChooser:()=>kn(d),onBestFit:Xu,onBestFitAll:()=>{for(let v of A.getColumnStates())v.visible&&Xu(v.id)},maxGroupLevels:Pe?Number.POSITIVE_INFINITY:1}),b=typeof le=="function"?le(h,y):y;b.length!==0&&ut(d,v=>{v.setAttribute("role","menu"),Qu(v,b,h)},"kanuni-datagrid-context-menu")}function Ja(o,d){let f=A.getColumnModel().getDef(o),h=A.getColumnSummary(o),y={columnId:o,headerName:f?.headerName??f?.field??o},b=[{id:"none",label:M.noTotal,disabled:h===null,onSelect:()=>A.setColumnSummary(o,null)},{id:"sep",separator:!0},...la(f?.dataType).map(v=>({id:v,label:Gu[v],disabled:h?.type===v,onSelect:()=>A.setColumnSummary(o,v)}))];ut(d,v=>{v.setAttribute("role","menu"),Qu(v,b,y)},"kanuni-datagrid-context-menu")}function kn(o){ut(o,d=>{let f=k("kanuni-datagrid-filter-list");for(let h of A.getColumnStates()){let y=document.createElement("label");y.className="kanuni-datagrid-filter-item";let b=document.createElement("input");b.type="checkbox",b.checked=h.visible,b.addEventListener("change",()=>{A.setColumnVisible(h.id,b.checked)});let v=document.createElement("span"),x=A.getColumnModel().getDef(h.id);v.textContent=x?.headerName??h.id,y.append(b,v),f.appendChild(y)}d.appendChild(f)},"kanuni-datagrid-filter-popup kanuni-datagrid-column-chooser")}let nt=null,er=null,ou=o=>{ce.classList.toggle("kanuni-datagrid-group-panel--over",o)};function Rn(o,d,f){let h=A.getGroupLevels();if(o===d)return;let y=h.filter(x=>x!==o),b=y.indexOf(d);if(b<0)return;let v=f==="before"?b:b+1;er=o,A.groupBy([...y.slice(0,v),o,...y.slice(v)])}function Nn(o,d){let f=A.getGroupLevels(),h=f.indexOf(o),y=h+d;h<0||y<0||y>=f.length||Rn(o,f[y],d===-1?"before":"after")}function Tn(o,d){if(!o)return;let f=A.getGroupLevels();if(f.includes(o))return;let h=Pe?Number.POSITIVE_INFINITY:1;if(f.length>=h){A.groupBy([...f.slice(0,h-1),o]);return}let y=d??f.length;A.groupBy([...f.slice(0,y),o,...f.slice(y)])}function tr(){if(!Xe)return;ce.textContent="";let o=A.getGroupLevels();if(o.length===0){let B=k("kanuni-datagrid-group-panel-hint","span");B.textContent=M.groupPanelHint??"Drag a column header here to group by it",ce.appendChild(B);return}let d=B=>A.getColumnModel().getDef(B)?.headerName??B,f=k("kanuni-datagrid-group-levels"),h=(B,w)=>B<w.top+w.height/2?"before":"after",y=(B,w)=>{for(let D of ce.querySelectorAll(".kanuni-datagrid-group-level"))D.classList.remove("kanuni-datagrid-group-level--drop-before","kanuni-datagrid-group-level--drop-after");B&&w&&B.classList.add(`kanuni-datagrid-group-level--drop-${w}`)};o.forEach((B,w)=>{let D=k("kanuni-datagrid-group-level");D.style.setProperty("--dg-group-level",String(w)),D.setAttribute("data-group-level",String(w));let R=k("kanuni-datagrid-group-chip");if(R.setAttribute("role","button"),R.tabIndex=0,o.length>1&&(R.draggable=!0),R.setAttribute("aria-label",`${yt(M.groupLevelAria,{n:w+1})}: ${d(B)}`),R.addEventListener("dragstart",L=>{nt=B,L.dataTransfer&&(L.dataTransfer.effectAllowed="move",L.dataTransfer.setData("text/x-kanuni-column",B))}),R.addEventListener("dragend",()=>{nt=null,y(null,null)}),R.addEventListener("keydown",L=>{let H=L.ctrlKey||L.metaKey;H&&(L.key==="ArrowUp"||L.key==="ArrowLeft")?(L.preventDefault(),Nn(B,-1)):H&&(L.key==="ArrowDown"||L.key==="ArrowRight")?(L.preventDefault(),Nn(B,1)):(L.key==="Delete"||L.key==="Backspace")&&(L.preventDefault(),A.groupBy(o.filter(Y=>Y!==B)))}),D.addEventListener("dragover",L=>{!nt&&!(L.dataTransfer?.types.includes("text/x-kanuni-column")??!1)||(L.preventDefault(),L.stopPropagation(),y(D,h(L.clientY,D.getBoundingClientRect())))}),D.addEventListener("drop",L=>{L.preventDefault(),L.stopPropagation();let H=h(L.clientY,D.getBoundingClientRect());y(null,null),ou(!1);let Y=nt;if(nt=null,Y){Rn(Y,B,H);return}let ie=L.dataTransfer?.getData("text/x-kanuni-column");ie&&Tn(ie,H==="before"?w:w+1)}),o.length>1){let L=k("kanuni-datagrid-group-chip-level","span");L.textContent=String(w+1),R.appendChild(L)}let I=document.createElement("span");I.textContent=d(B);let P=document.createElement("button");P.type="button",P.setAttribute("aria-label",yt(M.groupRemoveAria,{column:d(B)})),P.textContent="\xD7",P.addEventListener("click",()=>{A.groupBy(o.filter(L=>L!==B))}),P.draggable=!1,R.append(I,P),D.appendChild(R),f.appendChild(D),er===B&&(er=null,queueMicrotask(()=>R.focus()))}),ce.appendChild(f);let b=k("kanuni-datagrid-group-panel-actions"),v=document.createElement("button");v.type="button",v.textContent="Expand all",v.addEventListener("click",()=>A.expandAllGroups());let x=document.createElement("button");x.type="button",x.textContent="Collapse all",x.addEventListener("click",()=>A.collapseAllGroups()),b.append(v,x),ce.appendChild(b)}if(Xe){let o=d=>d.dataTransfer?.types.includes("text/x-kanuni-column")??!1;ce.addEventListener("dragover",d=>{o(d)&&(d.preventDefault(),ou(!0))}),ce.addEventListener("dragleave",d=>{let f=d.relatedTarget;f&&ce.contains(f)||ou(!1)}),ce.addEventListener("drop",d=>{ou(!1);let f=d.dataTransfer?.getData("text/x-kanuni-column");if(f){if(d.preventDefault(),nt){nt=null;return}Tn(f)}})}let Mn="";function In(){if(!Q)return;let o=[yt(M.announceRows,{n:A.getVisibleCount()})],d=A.getSort();if(d.length>0){let y=d.map(b=>{let v=A.getColumnModel().getDef(b.columnId),x=v?.headerName??v?.field??b.columnId,B=b.direction==="desc"?M.announceDescending:M.announceAscending;return`${x} ${B}`}).join(", ");o.push(yt(M.announceSortedBy,{columns:y}))}let f=A.getSelectedCount();f>0&&o.push(yt(M.announceSelected,{n:f}));let h=o.join(", ");h!==Mn&&(Mn=h,Dt.textContent=h)}function Ln(){if(!K)return;Qe.textContent="";let o=ta(A.getEffectiveFilter(),A.getColumnModel(),{...j,labels:{...zr(M),...j?.labels}});if(!o&&K!=="always"){Qe.style.display="none";return}Qe.style.display="";let d=A.isFilterEnabled();Qe.className=`kanuni-datagrid-filter-panel${d?"":" kanuni-datagrid-filter-panel--suspended"}`;let f=document.createElement("button");f.type="button",f.className="kanuni-datagrid-filter-panel-clear",f.title=M.filterRemove,f.setAttribute("aria-label",M.filterRemove),f.setAttribute("data-testid","dg-filter-panel-clear"),f.disabled=o===null,f.textContent="\xD7",f.addEventListener("click",()=>{A.setFilter(null),A.clearColumnFilters(),A.setFilterEnabled(!0)});let h=document.createElement("input");h.type="checkbox",h.className="kanuni-datagrid-filter-panel-toggle",h.checked=d,h.disabled=o===null,h.title=M.filterToggle,h.setAttribute("aria-label",M.filterToggle),h.setAttribute("data-testid","dg-filter-panel-toggle"),h.addEventListener("change",()=>A.setFilterEnabled(h.checked));let y=k("kanuni-datagrid-filter-panel-text","span");if(y.setAttribute("data-testid","dg-filter-panel-text"),y.textContent=o??M.filterNone,o&&(y.title=o),Qe.append(f,h,y),Z){let b=document.createElement("button");b.type="button",b.className="kanuni-datagrid-filter-panel-builder",b.title=M.filterEditBuilder,b.setAttribute("aria-label",M.filterEditBuilder),b.setAttribute("data-testid","dg-filter-panel-builder"),b.textContent="\u25BE",b.addEventListener("click",Z),Qe.appendChild(b)}}let ur=new Set,Qa=A.events.on("cellsFlashed",({rowKeys:o,columnIds:d,duration:f})=>{let h=o.length?o.map(x=>`[data-row-key="${CSS.escape(String(x))}"]`).join(","):".kanuni-datagrid-row",y=d.length?d.map(x=>`[data-column-id="${CSS.escape(x)}"]`).join(","):"[data-column-id]",b=[];X.querySelectorAll(h).forEach(x=>{x.querySelectorAll(y).forEach(B=>b.push(B))});for(let x of b)x.classList.remove("kanuni-datagrid-cell--flash");$.offsetWidth;for(let x of b)x.classList.add("kanuni-datagrid-cell--flash");let v=setTimeout(()=>{for(let x of b)x.classList.remove("kanuni-datagrid-cell--flash");ur.delete(v)},f);ur.add(v)});function Ve(o){let d=o.target,f=d.closest(".kanuni-datagrid-row");if(!f||!X.contains(f))return null;let h=f.getAttribute("data-row-key");if(h===null)return null;let y=A.getRows(),b=y.findIndex(x=>String(x.key)===h);if(b===-1)return null;let v=d.closest(".kanuni-datagrid-cell")?.getAttribute("data-column-id")??null;return{node:y[b],rowIndex:b,columnId:v}}let Pn=o=>{let d=Ve(o);d&&(Ne?.(d.node),A.notifyRow("rowClicked",d.node,d.rowIndex),d.columnId&&A.notifyCell("cellClicked",d.node,d.rowIndex,d.columnId))},Gn=o=>{let d=Ve(o);if(d){if(Qr){let f=lr(d);f&&Qr(f)}bt?.(d.node),A.notifyRow("rowDoubleClicked",d.node,d.rowIndex),d.columnId&&A.notifyCell("cellDoubleClicked",d.node,d.rowIndex,d.columnId)}};X.addEventListener("click",Pn),X.addEventListener("dblclick",Gn);function Xa(o){let d=0,f=ve.querySelector(`[data-column-id="${CSS.escape(o)}"]`);f&&(d=f.scrollWidth),X.querySelectorAll(`[data-column-id="${CSS.escape(o)}"]`).forEach(h=>{h.scrollWidth>d&&(d=h.scrollWidth)}),d>0&&A.setColumnWidth(o,d+12,!0)}function eo(){if(N)for(let o of ve.querySelectorAll(".kanuni-datagrid-filter-button")){let d=o.parentElement?.getAttribute("data-column-id");d&&o.classList.toggle("kanuni-datagrid-filter-button--active",A.getColumnFilter(d)!==null)}}let rr=!1,On=!1,gt=null;function lu(){gt!==null&&(clearTimeout(gt),gt=null)}function su(o){xt.style.display=o?"":"none"}function du(){let o=A.getOverlay();if(jt.style.display=o==="noRows"?"":"none",Pu===!1){lu(),su(!1);return}if(!(o==="loading"&&(rr||!On))){lu(),su(!1);return}if(rr||un<=0){lu(),su(!0);return}gt!==null||xt.style.display===""||(gt=setTimeout(()=>{gt=null,ye||su(!0)},un))}let Vn=!1,nr=!1,ir=!1,ar=!1,ye=!1;function to(){if(nr=!1,!ye){if(ir)ir=!1,ar&&(ar=!1,tt++),Wu(),Uu(),_u(),Zu();else{let o=he;Wu(),he!==o&&(tt++,Uu(),_u(),Zu())}qu(),fn(),Yu(),vn(),eo(),tr(),Ln(),In(),du()}}function or(o){ye||(o&&(ir=!0),!nr&&(nr=!0,queueMicrotask(to)))}let uo=[...fe?[A.events.on("focusedRowChanged",o=>fe({rowKey:o.rowKey,row:o.row}))]:[],...y0.map(o=>A.events.on(o,()=>or(!0))),...E0.map(o=>A.events.on(o,()=>{ar=!0})),...A0.map(o=>A.events.on(o,()=>or(!1))),A.events.on("overlayChanged",o=>{rr=o.manual===!0&&o.overlay==="loading",ye||du()}),A.events.on("busyChanged",o=>{On=o.background===!0,ye||du()}),A.events.on("paginationChanged",()=>{ye||or(!1)}),A.events.on("scrollRequested",o=>{if(ye)return;o.scrollTop!==void 0&&(U.scrollTop=o.scrollTop),o.scrollLeft!==void 0&&(U.scrollLeft=o.scrollLeft),A.setScroll(U.scrollTop,Math.abs(U.scrollLeft));let d=o.scrollTop;d===void 0||Math.abs(U.scrollTop-d)<=1||setTimeout(()=>{ye||Math.abs(U.scrollTop-d)<=1||(U.scrollTop=d,A.setScroll(U.scrollTop,Math.abs(U.scrollLeft)))},0)}),...O==="fitGrid"?[A.events.on("gridSizeChanged",()=>A.sizeColumnsToFit())]:[],...O==="fitCells"?[A.events.on("firstDataRendered",()=>{ye||Vn||(Vn=!0,queueMicrotask(()=>{if(!ye)for(let o of A.getColumnStates())o.visible&&Xu(o.id)}))})]:[]];O==="fitGrid"&&A.sizeColumnsToFit();function lr(o){if(!o.columnId||o.node.kind!=="data")return null;let d=Fe.find(f=>f.id===o.columnId);return d?{node:o.node,columnId:o.columnId,rowIndex:o.rowIndex,columnIndex:d.visualIndex,value:A.getColumnModel().getCellValue(o.node.data,d.id)}:null}let zn=o=>{let d=o.target;if(Jr){let x=Ve(o),B=x?lr(x):null;B&&Jr(B,o)}let f=d.closest(".kanuni-datagrid-row");if(!f||f.classList.contains("kanuni-datagrid-group-row"))return;let h=f.getAttribute("data-row-key");if(h===null)return;let y=A.getRows().find(x=>String(x.key)===h);if(!y||y.kind!=="data")return;A.handleRowClick(y.key,{ctrlKey:o.ctrlKey||Sa&&!o.shiftKey,metaKey:o.metaKey,shiftKey:o.shiftKey});let b=d.closest(".kanuni-datagrid-cell"),v=b?Fe.find(x=>b.id.endsWith(`-${x.id}`))?.id:void 0;v&&A.focusCell(y.key,v)},Hn=o=>{if(!qt)return;let f=o.target.closest(".kanuni-datagrid-cell");if(!f||!X.contains(f)||o.relatedTarget?.closest?.(".kanuni-datagrid-cell")===f)return;let y=Ve(o),b=y?lr(y):null;b&&qt(b,o)};X.addEventListener("mousedown",zn),X.addEventListener("contextmenu",Bn),qt&&X.addEventListener("mouseover",Hn),Jt&&(de.addEventListener("dragstart",Ba),de.addEventListener("dragover",ka),de.addEventListener("drop",Ra),de.addEventListener("dragend",Na),de.addEventListener("dragleave",Ta)),$.tabIndex=0;let Kn=o=>{let d=o.target;if(d.tagName==="INPUT"||d.tagName==="TEXTAREA"||d.isContentEditable)return;let f=ia({key:o.key,ctrlKey:o.ctrlKey,metaKey:o.metaKey,shiftKey:o.shiftKey,altKey:o.altKey});if(!f)return;if(f.type==="copy"){au();return}if(f.type==="activate"){if(bt){let b=A.getFocus(),v=b?A.getRows().find(x=>x.key===b.rowKey):void 0;v&&bt(v)}f.preventDefault&&o.preventDefault();return}A.executeCommand(f),f.preventDefault&&o.preventDefault();let h=A.getFocusIndices();if(h){let v=A.getColumnLayout().center.findIndex(B=>B.state.id===A.getFocus()?.columnId),x=A.ensureVisible(h.rowIndex,v===-1?void 0:v);x&&(x.scrollTop!==void 0&&(U.scrollTop=x.scrollTop),x.scrollLeft!==void 0&&(U.scrollLeft=x.scrollLeft),A.setScroll(U.scrollTop,Math.abs(U.scrollLeft)))}let y=A.getFocus();$.setAttribute("aria-activedescendant",y?`${t.gridId}-cell-${String(y.rowKey)}-${y.columnId}`:"")};$.addEventListener("keydown",Kn);let ro=en?ua(A,en):null,no=typeof je=="object"?je.delay??400:400,io=je!==!1&&!(typeof je=="object"&&je.enabled===!1),ao=typeof je=="object"?je.showOnTruncation!==!1:!0,Nt=null,cu=null;function Tt(){cu&&clearTimeout(cu),cu=null,Nt?.remove(),Nt=null}let oo=o=>o.scrollWidth>o.clientWidth+1||o.scrollHeight>o.clientHeight+1;function lo(o){let f=o.closest(".kanuni-datagrid-row")?.getAttribute("data-row-key"),h=Fe.find(x=>o.id.endsWith(`-${x.id}`));if(!f||!h)return null;let y=A.getRows().find(x=>String(x.key)===f);if(!y||y.kind!=="data")return null;let b=h.def,v=$u(y.key,h.id,y.data);if(v)return v;if(typeof b.tooltip=="function")return b.tooltip({value:A.getColumnModel().getCellValue(y.data,h.id),row:y.data,node:y,column:b})??null;if(typeof b.tooltip=="string")return b.tooltip;if(b.tooltipField){let x=y.data[b.tooltipField];return x==null?null:String(x)}return ao&&oo(o)?o.textContent??null:null}let Wn=o=>{if(!io)return;Tt();let d=o.target.closest(".kanuni-datagrid-cell");!d||!X.contains(d)||(cu=setTimeout(()=>{let f=lo(d);if(!f)return;let h=d.getBoundingClientRect();Nt=k(`${Yr(t)} kanuni-datagrid-portal`);let y=k("kanuni-datagrid-tooltip");y.setAttribute("role","tooltip"),y.textContent=f,y.style.position="fixed",y.style.left=`${h.left}px`,y.style.top=`${h.bottom+4}px`,y.style.zIndex="1001",Nt.appendChild(y),document.body.appendChild(Nt)},no))},Un=()=>Tt();$.addEventListener("pointerover",Wn),$.addEventListener("pointerout",Un),U.addEventListener("scroll",Tt,{passive:!0});let $n=()=>{if(A.setScroll(U.scrollTop,Math.abs(U.scrollLeft)),ze)for(let o of qn())o.scroller.scrollLeft!==U.scrollLeft&&(o.scroller.scrollLeft=U.scrollLeft)};U.addEventListener("scroll",$n,{passive:!0});let ze=null,qn=()=>{if(!ue||!ze)return[];let o=Kt.get(ue);return o?[...o].filter(d=>d!==ze):[]},_n=null;if(ue){ze={controller:A,scroller:U};let o=Kt.get(ue)??new Set;o.add(ze),Kt.set(ue,o),_n=A.events.on("columnStateChanged",()=>{if(jr.has(ue))return;let d=qn();if(d.length===0)return;let f=A.getColumnStates();jr.add(ue);try{for(let h of d)h.controller.applyColumnStates(f)}finally{jr.delete(ue)}})}let jn=()=>{A.setViewportSize(U.clientWidth,U.clientHeight),U.style.setProperty("--dg-viewport-width",`${U.clientWidth}px`);let o=de.getBoundingClientRect(),d=se.getBoundingClientRect();A.setChromeOffsets(o.top-d.top,d.bottom-o.bottom),da(U,A)};jn();let hu=null;return typeof ResizeObserver<"u"&&(hu=new ResizeObserver(jn),hu.observe(U),hu.observe(se)),Wu(),Uu(),_u(),Ha(),Zu(),qu(),Yu(),vn(),tr(),Ln(),In(),du(),St?.always&&Hu(!0),{controller:A,element:$,setData:o=>A.setData(o),setColumns:o=>A.setColumns(o),destroy:()=>{if(!ye){if(ye=!0,uo.forEach(o=>o()),hu?.disconnect(),gn?.(),Bt&&(Bt=!1,st--,st<=0&&(st=0,document.documentElement.classList.remove("kanuni-datagrid-printing"))),_n?.(),ue&&ze){let o=Kt.get(ue);o?.delete(ze),o&&o.size===0&&Kt.delete(ue),ze=null}U.removeEventListener("scroll",$n),X.removeEventListener("mousedown",zn),X.removeEventListener("contextmenu",Bn),qt&&X.removeEventListener("mouseover",Hn),X.removeEventListener("click",Pn),X.removeEventListener("dblclick",Gn),Qa(),lu();for(let o of ur)clearTimeout(o);$.removeEventListener("keydown",Kn),$.removeEventListener("pointerover",Wn),$.removeEventListener("pointerout",Un),U.removeEventListener("scroll",Tt),Tt(),ro?.(),pe(),A.dispose(),$.remove()}}}}return Co(k0);})();
|