@kanunilabs/datagrid 1.1.1 → 1.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,6 +1,6 @@
1
- "use strict";var KanuniLabsDataGrid=(()=>{var Ua=Object.create;var su=Object.defineProperty;var $a=Object.getOwnPropertyDescriptor;var qa=Object.getOwnPropertyNames;var _a=Object.getPrototypeOf,ja=Object.prototype.hasOwnProperty;var rr=(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 Ya=(e,t)=>{for(var u in t)su(e,u,{get:t[u],enumerable:!0})},Hn=(e,t,u,r)=>{if(t&&typeof t=="object"||typeof t=="function")for(let n of qa(t))!ja.call(e,n)&&n!==u&&su(e,n,{get:()=>t[n],enumerable:!(r=$a(t,n))||r.enumerable});return e};var nr=(e,t,u)=>(u=e!=null?Ua(_a(e)):{},Hn(t||!e||!e.__esModule?su(u,"default",{value:e,enumerable:!0}):u,e)),Za=e=>Hn(su({},"__esModule",{value:!0}),e);var Zs={};Ya(Zs,{CHECKBOX_COLUMN_WIDTH:()=>Ot,DENSITY_ROW_HEIGHT:()=>Rr,DETAIL_COLUMN_WIDTH:()=>ft,PRINT_MAX_ROWS:()=>Gr,ROW_DRAG_MIME:()=>Vt,ROW_NUMBER_COLUMN_WIDTH:()=>gt,THEME_ROW_HEIGHT:()=>Nr,buildHeaderMenu:()=>vu,createGrid:()=>Xi,measureBestFitWidth:()=>xu,presetRowHeight:()=>bu});function Ja(e){return e.kind==="group"}function et(e){return e.kind==="data"}function Qa(e){return!Array.isArray(e)&&typeof e.load=="function"}function yi(e){return typeof e=="string"||typeof e=="number"}var zn=new WeakMap;function Xa(e){if(typeof e.items=="function"||!Array.isArray(e.items))return null;let t=zn.get(e);if(t)return t;let u=new Map;for(let r of e.items)u.set(r.value,r.label);return zn.set(e,u),u}function Lt(e,t){if(!e?.lookup)return null;let u=Xa(e.lookup);if(!u)return null;let r=u.get(t);return r===void 0?null:r}function Ne(e){let t=e?.band;return t==null?[]:typeof t=="string"?t===""?[]:[t]:t.filter(u=>typeof u=="string"&&u!=="")}function Nt(e){return e.join("\0")}function eo(e,t){let u=e?.bandShow;if(u===void 0)return!1;let r=Ne(e);if(r.length===0)return!1;let n=!1;for(let i=0;i<r.length;i++)if(t.has(Nt(r.slice(0,i+1)))){n=!0;break}return u==="open"?n:!n}function Ei(e){let t=0;for(let u of e){let r=Ne(u.def).length;r>t&&(t=r)}return t}function Ai(e,t){if(t<=0)return[];let u=[];for(let r=0;r<t;r++){let n=[];for(let i of e){let a=Ne(i.def),s=r<a.length?a[r]:"",l=s==="",m=n[n.length-1];m!==void 0&&m.spacer===l&&m.label===s&&(l||to(e,m.columnIds[0],i.state.id,r))?(m.columnIds.push(i.state.id),m.width+=i.state.width):n.push({label:s,columnIds:[i.state.id],width:i.state.width,level:r,spacer:l})}u.push(n)}return u}function to(e,t,u,r){if(r===0)return!0;let n=e.find(l=>l.state.id===t),i=e.find(l=>l.state.id===u),a=Ne(n?.def),s=Ne(i?.def);for(let l=0;l<r;l++)if(a[l]!==s[l])return!1;return!0}var uo=/^\d{4}-\d{2}-\d{2}(?:[T ]\d{2}:\d{2}|$)/;function ro(e){return e==null||e===""?null:typeof e=="boolean"?"boolean":typeof e=="number"?Number.isFinite(e)?"number":null:e instanceof Date||typeof e=="string"&&uo.test(e)?"date":"string"}function no(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 bi(e,t={}){let{sampleSize:u=50,exclude:r,include:n,humanizeHeaders:i=!0,defaults:a}=t;if(!e||e.length===0)return[];let s=new Set(r??[]),l=Math.min(e.length,Math.max(1,u)),m=new Map;for(let c=0;c<l;c++){let h=e[c];if(!(!h||typeof h!="object"))for(let[E,g]of Object.entries(h)){if(s.has(E))continue;m.get(E)==null&&m.set(E,ro(g))}}return(n?n.filter(c=>m.has(c)&&!s.has(c)):[...m.keys()]).map(c=>({...a,field:c,headerName:i?no(c):c,...m.get(c)?{dataType:m.get(c)}:{}}))}var tt=(e,t)=>`${e}:${t}`;function io(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 ao(e,t){return t==="date"&&!(e instanceof Date)&&typeof e!="number"?Date.parse(String(e)):io(e)}function Dr(e,t,u,r=tt(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 oo(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 fu(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=ao(t,e.dataType);Number.isNaN(r)||(e.numericCount++,e.sum+=r,r<e.min&&(e.min=r),r>e.max&&(e.max=r))}function Cu(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 vi(e,t,u,r,n,i){let a={};if(n.length===0)return a;let s=i?.effectiveValue,l=i?.effectiveRow,m=[];for(let c of n){let h=tt(c.columnId,c.type);if(c.type==="custom"){if(!c.calculate){a[h]=null;continue}let E=[];for(let g=t;g<u;g++){let C=e[g];if(!C||!et(C))continue;let D=r.getCellValue(C.data,c.columnId);E.push({row:l?l(C.key,C.data):C.data,value:s?s(C.key,c.columnId,D):D})}a[h]=c.calculate(E);continue}m.push(Dr(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 E=e[h];if(!E||!et(E))continue;let g=E.data;if(c){let C=r.getCellValue(g,c.columnId);fu(c,s?s(E.key,c.columnId,C):C);continue}for(let C of m){let D=r.getCellValue(g,C.columnId);fu(C,s?s(E.key,C.columnId,D):D)}}for(let h of m)a[h.key]=Cu(h)}return a}function lo(e,t,u,r){return vi(e,0,e.length,t,u,r)}function so(e,t,u){let r=u?.effectiveValue,n=u?.effectiveRow,i=[],a=[],s=[];for(let l of t){if(l.type==="custom"){l.calculate?a.push({def:l,cells:[]}):s.push(tt(l.columnId,l.type));continue}i.push(Dr(l.columnId,l.type,e.getDataType(l.columnId)))}return{add(l,m,c){for(let h=m;h<c;h++){let E=l[h];if(!E||!et(E))continue;let g=E.data;for(let C of i){let D=e.getCellValue(g,C.columnId);fu(C,r?r(E.key,C.columnId,D):D)}for(let{def:C,cells:D}of a){let S=e.getCellValue(g,C.columnId);D.push({row:n?n(E.key,g):g,value:r?r(E.key,C.columnId,S):S})}}},finish(){let l={};for(let m of s)l[m]=null;for(let m of i)l[m.key]=Cu(m);for(let{def:m,cells:c}of a)l[tt(m.columnId,m.type)]=m.calculate(c);return l}}}var Wn=(e,t)=>`${e}::${t}`;function co(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)},s=(m,c,h,E)=>{let g=r[h],C=[],D=m;for(;D<c;){let S=t.getCellValue(e[D].data,g),T=S==null?"":String(S),N=D+1;for(;N<c&&a(N,g)===T;)N++;let O=E?`${E}|${Wn(g,T)}`:Wn(g,T),W={columnId:g,value:S,label:T,key:O,level:h,from:D,to:N,count:N-D,children:null};n&&n.length>0&&(W.aggregates=vi(e,D,N,t,n)),i++,h+1<r.length&&(W.children=s(D,N,h+1,O)),C.push(W),D=N}return C},l=r.length===0?[]:s(0,e.length,0,"");return{levels:r,roots:l,totalGroupCount:i,nodes:e}}function ho(e,t){let{collapsedKeys:u,collapsedByDefault:r=!1}=t,n=[],i=0,a=s=>{for(let l of s){let m=r?!u.has(l.key):u.has(l.key),c={kind:"group",key:l.key,columnId:l.columnId,value:l.value,label:l.label,count:l.count,level:l.level,expanded:!m};if(l.aggregates&&(c.aggregates=l.aggregates),n.push(c),i++,!m)if(l.children)a(l.children);else for(let h=l.from;h<l.to;h++)n.push(e.nodes[h])}};return a(e.roots),{nodes:n,groupCount:i}}function po(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 ir(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 mo(e,t){let u=new Map,r=new Map,n=new Set,i,a,s=!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)}s||(s=!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=yi(c)?c:t(c);if(u.has(h)){u.delete(h),r.delete(h);continue}r.delete(h),n.add(h)}}let l={};return u.size>0&&(l.add=[...u.values()],i!==void 0&&(l.addPosition=i),a!==void 0&&(l.addBeforeKey=a)),r.size>0&&(l.update=[...r.values()]),n.size>0&&(l.remove=[...n]),l}function go(e){return!e.add?.length&&!e.update?.length&&!e.remove?.length}function Fr(e){return e.nodes!==void 0}var xi="row",Sr="set",It="__default";function te(e){return e==null}function Re(e){return e==null?"":String(e)}function Oe(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 pt(e,t){let u=Oe(e),r=Oe(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 Un=new WeakMap;function fo(e){let t=Un.get(e);if(!t){t=new Set;let u=Array.isArray(e.value)?e.value:[];for(let r of u){if(te(r))continue;let n=Oe(r);typeof n=="number"&&Number.isNaN(n)||t.add(n)}Un.set(e,t)}return t}function Di(e,t){switch(t.operator){case"isnull":return te(e);case"isnotnull":return!te(e);case"=":return te(e)||te(t.value)?te(e)&&te(t.value):Oe(e)===Oe(t.value);case"<>":return te(e)||te(t.value)?!(te(e)&&te(t.value)):Oe(e)!==Oe(t.value);case">":return!te(e)&&pt(e,t.value)>0;case">=":return!te(e)&&pt(e,t.value)>=0;case"<":return!te(e)&&pt(e,t.value)<0;case"<=":return!te(e)&&pt(e,t.value)<=0;case"contains":return Re(e).toLowerCase().includes(Re(t.value).toLowerCase());case"notcontains":return!Re(e).toLowerCase().includes(Re(t.value).toLowerCase());case"startswith":return Re(e).toLowerCase().startsWith(Re(t.value).toLowerCase());case"endswith":return Re(e).toLowerCase().endsWith(Re(t.value).toLowerCase());case"in":{if(te(e))return!1;let u=Oe(e);return typeof u=="number"&&Number.isNaN(u)?!1:fo(t).has(u)}case"between":{if(!Array.isArray(t.value)||t.value.length<2||te(e))return!1;let[u,r]=t.value;return pt(e,u)>=0&&pt(e,r)<=0}default:return!0}}function Cr(e,t,u){if(Fr(t))return t.nodes.length===0?!0:t.logic==="or"?t.nodes.some(n=>Cr(e,n,u)):t.nodes.every(n=>Cr(e,n,u));let r=u.getCellValue(e,t.columnId);return Di(r,t)}function wr(e){return(e??"").trim().toLowerCase()}function yr(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 s of i)String(s.label).toLowerCase().includes(u)&&(a??=new Set).add(String(s.value));a&&(r??=new Map).set(n,a)}return r}function $n(e){if(!e||e.size===0)return;let t={};for(let[u,r]of e)t[u]=[...r];return t}function Co(e,t,u,r,n,i){let a=wr(n),s=!!r,l=a.length>0,m=typeof i=="function";if(!s&&!l&&!m)return e.slice();let c=l?u.getOrder().filter(S=>u.getState(S)?.visible):[],h=l?yr(u,c,a):null,E=h!==null,g=E?c.map(S=>h.get(S)??null):[],C=new Uint32Array(e.length),D=0;for(let S=0;S<e.length;S++){let T=e[S],N=t[T];if(!(s&&!Cr(N,r,u))&&!(m&&!i(N))){if(l){let O=!1;for(let W=0;W<c.length;W++){let Z=u.getCellValue(N,c[W]);if(te(Z))continue;let j=Re(Z);if(j.toLowerCase().includes(a)){O=!0;break}if(E){let J=g[W];if(J!==null&&J.has(j)){O=!0;break}}}if(!O)continue}C[D++]=T}}return D===C.length?C:C.slice(0,D)}var wo=Di;function yo(e){return e==="in"||e==="isnull"}function Fi(e){if(!Fr(e))return yo(e.operator)?[e]:null;if(e.logic!=="or")return null;let t=[];for(let u of e.nodes){let r=Fi(u);if(!r)return null;t.push(...r)}return t.length>0?t:null}function Si(e,t){if(!e)return null;let u=Fi(e);if(!u)return null;let r=[];for(let n of t)u.some(i=>wo(n.value,i))&&r.push(n.label);return r.length===t.length?null:r}function Eo(e){return e==null||e===""}function Ao(e,t,u){let r=[],n=-1,i,a,s=l=>{n>=0&&l-n>1&&r.push({start:n,end:l-1,length:l-n}),n=-1,a=void 0};for(let l=0;l<e.length;l++){let m=e[l];if(!m||m.kind!=="data"){s(l);continue}let c=m.data,h=t(c);if(Eo(h)){s(l);continue}n>=0&&a!==void 0&&(u?u({value:h,row:c},{value:i,row:a}):Object.is(h,i))||(s(l),n=l,i=h,a=c)}return s(e.length),r}function bo(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 Bi(e,t,u,r=Number.POSITIVE_INFINITY){let n=bo(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 ki(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 vo=30,qn="Other",xo=1e4;function Ri(e){return!e.series.some(t=>t.aggregate==="custom")}function Do(e){return e==null?"":String(e)}var Ve=864e5,Fo=60,So=20,du=2e3,ar=["day","week","month","quarter","year"],_n={day:Ve,week:7*Ve,month:30.44*Ve,quarter:91.31*Ve,year:365.25*Ve};function jn(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*Ve}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 Yn(e,t){let u=new Date(e),r=u.getUTCFullYear(),n=u.getUTCMonth();switch(t){case"day":return e+Ve;case"week":return e+7*Ve;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 or=e=>e<10?`0${e}`:String(e);function Bo(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}-${or(u.getUTCMonth()+1)}`;default:return`${r}-${or(u.getUTCMonth()+1)}-${or(u.getUTCDate())}`}}function ko(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 Ro(e,t,u){let r=Number.isFinite(t)&&Number.isFinite(u)?Math.max(0,u-t):0;if(e.kind==="date"){let s=e.unit??"auto",l,m=!1;if(s==="auto")l=ar.find(c=>r/_n[c]+1<=Fo)??"year";else for(l=s;r/_n[l]+1>du;){let c=ar[ar.indexOf(l)+1];if(!c)break;l=c,m=!0}return{info:{kind:"date",unit:l,adjusted:m},keyOf:c=>Number.isFinite(c)?jn(c,l):Number.NaN,endOf:c=>Yn(c,l),labelOf:c=>Bo(c,l),keys:(c,h)=>{let E=[];if(!Number.isFinite(c)||!Number.isFinite(h))return E;for(let g=jn(c,l);g<=h&&E.length<du;g=Yn(g,l))E.push(g);return E}}}let n=e.size&&e.size>0?e.size:ko(r/Math.max(1,e.bins??So));(!(n>0)||!Number.isFinite(n))&&(n=1);let i=!1;for(;r/n+1>du;)n*=2,i=!0;let a=n;return{info:{kind:"number",size:a,adjusted:i},keyOf:s=>Number.isFinite(s)?Math.floor(s/a)*a:Number.NaN,endOf:s=>s+a,labelOf:s=>{let l=m=>String(Number(m.toPrecision(12)));return`${l(s)} \u2013 ${l(s+a)}`},keys:(s,l)=>{let m=[];if(!Number.isFinite(s)||!Number.isFinite(l))return m;let c=Math.floor(s/a)*a;for(let h=c;h<=l&&m.length<du;h+=a)m.push(h);return m}}}function Zn(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 lr(e,t,u,r={}){let n=Math.max(1,u.maxCategories??vo),i=u.otherBucket!==!1,a=r.effectiveValue,s=u.series.map(V=>t.getDataType(V.columnId)),l=u.series.some(V=>V.aggregate==="custom"),m=new Map,c=null,h=0,E=0,g=!1,C=(V,H=Number.NaN)=>({label:V,accs:u.series.map((Y,_)=>Dr(Y.columnId,Y.aggregate,s[_],`${_}`)),seq:E++,start:H}),D=u.categoryBucket,S=null,T=Number.POSITIVE_INFINITY,N=Number.NEGATIVE_INFINITY;if(D){for(let V=0;V<e.length;V++){let H=e[V];if(!H||!et(H))continue;let Y=t.getCellValue(H.data,u.categoryColumnId),_=Zn(a?a(H.key,u.categoryColumnId,Y):Y,D.kind);Number.isFinite(_)&&(_<T&&(T=_),_>N&&(N=_))}S=Ro(D,T,N)}let O=l?new Map:null;for(let V=0;V<e.length;V++){let H=e[V];if(!H||!et(H))continue;h++;let Y=t.getCellValue(H.data,u.categoryColumnId),_=a?a(H.key,u.categoryColumnId,Y):Y,Ee,He,Ae=Number.NaN;S&&D?(Ae=S.keyOf(Zn(_,D.kind)),Ee=Number.isNaN(Ae)?"":Ae,He=Number.isNaN(Ae)?"":S.labelOf(Ae)):Ee=He=Do(_);let he=m.get(Ee);he||(m.size>=xo?(g=!0,c??=C(u.otherLabel??qn),he=c):(he=C(He,Ae),m.set(Ee,he)));for(let ae=0;ae<u.series.length;ae++){let ue=u.series[ae];if(ue.aggregate==="custom")continue;let ee=t.getCellValue(H.data,ue.columnId);fu(he.accs[ae],a?a(H.key,ue.columnId,ee):ee)}if(O){let ae=O.get(he.label);ae||(ae=u.series.map(()=>[]),O.set(he.label,ae));for(let ue=0;ue<u.series.length;ue++){let ee=u.series[ue];if(ee.aggregate!=="custom")continue;let ze=t.getCellValue(H.data,ee.columnId);ae[ue].push({row:r.effectiveRow?r.effectiveRow(H.key,H.data):H.data,value:a?a(H.key,ee.columnId,ze):ze})}}}let W=[...m.values()],Z=W.length+(c?1:0),j=V=>(u.series.length>0?Cu(V.accs[0]):null)??Number.NEGATIVE_INFINITY,J,nt;if(S){J=S.keys(T,N).map(H=>m.get(H)??C(S.labelOf(H),H));let V=m.get("");V&&J.push(V),nt=null}else{let V=W;if(W.length>n){let H=[...W].sort((Y,_)=>j(_)-j(Y));if(V=H.slice(0,n),i){c??=C(u.otherLabel??qn);for(let Y of H.slice(n))for(let _=0;_<u.series.length;_++)oo(c.accs[_],Y.accs[_])}}switch(u.categoryOrder??"value-desc"){case"category-asc":V=[...V].sort((H,Y)=>H.label.localeCompare(Y.label));break;case"first-seen":V=[...V].sort((H,Y)=>H.seq-Y.seq);break;default:V=[...V].sort((H,Y)=>j(Y)-j(H))}J=c?[...V,c]:V,nt=c?J.length-1:null}let Fu=J.map(V=>V.label),Ct=u.series.map((V,H)=>{let Y=new Float64Array(J.length);for(let _=0;_<J.length;_++){let Ee;if(V.aggregate==="custom"){let He=O?.get(J[_].label)?.[H]??[];Ee=V.calculate?V.calculate(He):null}else Ee=Cu(J[_].accs[H]);Y[_]=Ee??Number.NaN}return{label:V.label??t.getDef(V.columnId)?.headerName??V.columnId,columnId:V.columnId,aggregate:V.aggregate,values:Y}});return{categories:Fu,series:Ct,truncated:S?!1:W.length>n||g,otherIndex:nt,rowCount:h,categoryCount:S?J.length:Z,rankingExact:!g,...No(S,J)}}function No(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 To(e){if(typeof e=="function")return e;let t=e;return u=>u[t]}function Ke(e,t,u){return{kind:"data",key:t,sourceIndex:u,data:e}}var Ni=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],s=r[a];if(s===void 0){let l=t[a];s=Ke(l,u(l),a),r[a]=s}n[i]=s}return n}},Mo="\0nil";function Io(e){return e.map(t=>t==null?Mo:String(t)).join("")}function Jn(){return{key:"",path:[],level:-1,label:"",value:null,count:0,expanded:!0,childCount:0,childCountKnown:!1,blocks:new Map}}function Lo(e,t,u){return e.blocks.get(Math.floor(t/u))?.[t%u]}function wu(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&&Mt(a)&&a.expanded&&(n+=wu(a,t,u));return u?.set(e,n),n}function Mt(e){return e.kind!=="data"}function Qn(e,t){let{blockSize:u,columnIds:r}=t,n=new Map,i=wu(e,u,n),a=t.range?Math.max(0,t.range.start):0,s=t.range?Math.min(i,t.range.end):i,l=new Array(i),m=[],c=new Set,h=0,E=g=>{if(!g.childCountKnown){h>=a&&h<s&&!c.has(`${g.key}@0`)&&(c.add(`${g.key}@0`),m.push({nodeKey:g.key,path:g.path,childIndex:0})),h++;return}for(let C=0;C<g.childCount;C++){if(h>=s)return;let D=Lo(g,C,u);if(D===void 0){if(h>=a){let S=`${g.key}@${Math.floor(C/u)}`;c.has(S)||(c.add(S),m.push({nodeKey:g.key,path:g.path,childIndex:C}))}h++;continue}if(!Mt(D)){h>=a&&(l[h]=D),h++;continue}if(h>=a){let S={kind:"group",key:D.key,columnId:r[D.level]??"",value:D.value,label:D.label,count:D.count,level:D.level,expanded:D.expanded,...D.aggregates?{aggregates:D.aggregates}:{}};l[h]=S}if(h++,D.expanded){let S=wu(D,u,n);h+S<=a?h+=S:E(D)}}};return E(e),{nodes:l,pending:m}}var Po=class extends Error{constructor(){super("[datagrid] export cancelled"),this.name="ExportCancelled"}},Go=100,Oo=100;function Vo(e,t){return JSON.stringify({sort:e.sort,filter:e.filter,searchText:e.searchText,group:t,summaries:e.summaries})}var Xn=class{mode="remote";source;keyGetter;blockSize;maxBlocks;group;groupColumnIds;root=Jn();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??Go),this.maxBlocks=Math.max(1,t.maxBlocks??Oo),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&&Mt(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&&Mt(r)){let n=this.findNode(e,r);if(n)return n}return null}resetTree(){this.root=Jn()}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 Po;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(Ke(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 s=i[a];if(!s)continue;let l=t.get(s.key);l!==void 0&&(i[a]=Ke(l,s.key,s.sourceIndex),u++)}};for(let i of this.blocks.values())r(i.nodes);let n=i=>{for(let a of i.blocks.values())for(let s=0;s<a.length;s++){let l=a[s];if(!l)continue;if(Mt(l)){n(l);continue}let m=t.get(l.key);m!==void 0&&(a[s]=Ke(m,l.key,l.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,s=u.call(this.source,{columnId:e,limit:t}).then(l=>(!this.disposed&&a===this.generation&&this.distinctCache.set(r,l),l)).catch(l=>(this.onError?.(l),this.debugMode&&console.error("[datagrid] loadDistinctValues failed",l),[])).finally(()=>{this.distinctInFlight.delete(r)});return this.distinctInFlight.set(r,s),s}async getRows(e,t){let u=Vo(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 s=n;s<=i;s++)this.blocks.has(s)?this.blocks.get(s).touched=++this.clock:a.push(s);return a.length>0&&await Promise.all(a.map(s=>this.fetchBlock(s,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}=Qn(this.root,{blockSize:this.blockSize,columnIds:this.groupColumnIds,range:t});if(a.length===0)break;await Promise.all(a.map(s=>{let l=this.findNode(s.nodeKey);return l?this.loadChildren(l,s.childIndex,e):Promise.resolve()}))}let{nodes:r}=Qn(this.root,{blockSize:this.blockSize,columnIds:this.groupColumnIds,range:t}),n=wu(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 s=await this.source.load(a);if(this.disposed||r!==this.generation)return;s.summaries&&(this.summaries=s.summaries);let l=t*this.blockSize,m=i?s.rows.map((c,h)=>Ke(c,this.keyGetter(c),l+h)):(s.groups??[]).map(c=>{let h=[...e.path,c.value],E=Io(h);return{key:E,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(E),childCount:0,childCountKnown:!1,blocks:new Map}});e.blocks.set(t,m),e.childCount=s.totalCount,e.childCountKnown=!0,e===this.root&&(this.totalCount=s.totalCount,this.countKnown=!0)}catch(s){this.debugMode&&console.error("[datagrid] remote group load failed",e.key,s),this.onError?.(s)}}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((s,l)=>Ke(s,this.keyGetter(s),i+l));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 Ko=e=>`__detail__${String(e)}`;function Ho(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),s=0;for(let l of e)a[s++]=l,!(l.kind!=="data"||!(r?!u.has(l.key):u.has(l.key)))&&(a[s++]={kind:"detail",key:Ko(l.key),parentKey:l.key,data:l.data,height:n});return a.length=s,a}var ei=e=>e===null?"__editform__new":`__editform__${String(e)}`;function zo(e,t){let{rowKey:u,atTop:r=!1}=t;if(u===null)return e;let n=Math.max(1,t.height),i=e.findIndex(l=>l.kind==="data"&&l.key===u);if(r)return[{kind:"editform",key:ei(u),parentKey:u,data:i<0?void 0:e[i].data,height:n},...e];if(i<0)return e;let a={kind:"editform",key:ei(u),parentKey:u,data:e[i].data,height:n},s=new Array(e.length+1);for(let l=0;l<=i;l++)s[l]=e[l];s[i+1]=a;for(let l=i+1;l<e.length;l++)s[l+1]=e[l];return s}var Wo=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=ti(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=ti(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=Uo(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 ti(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 Uo(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 $o=[{token:"yyyy",kind:"year"},{token:"yy",kind:"year"},{token:"MM",kind:"month"},{token:"dd",kind:"day"}];function qo(e){let t=[],u="",r=0;for(;r<e.length;){let n=$o.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 _o(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}function Ti(e,t){let u=_o(e);if(!u)return"";let r=(n,i)=>String(n).padStart(i,"0");return qo(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("")}var jo=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 sr=["tr","en","de","fr","es","it","pt","ru","ar","zh-CN","ja","ko"];function Yo(e){if(!e)return;if(sr.includes(e))return e;let t=e.toLowerCase(),u=sr.find(n=>n.toLowerCase()===t);if(u)return u;if(t.startsWith("zh"))return"zh-CN";let r=t.split("-")[0];return sr.find(n=>n.toLowerCase()===r)}function Zo(e,t,u,r){let n=Yo(u),i=n?e[n]:void 0;return!i&&!r?t:{...t,...i,...r}}var Mi={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"},Jo={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"},Qo={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"},Xo={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"},el={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"},tl={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"},ul={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"},rl={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"},nl={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"},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"},al={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"},ol={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"};function mt(e,t){let u=e;for(let[r,n]of Object.entries(t))u=u.replace(`{${r}}`,String(n));return u}var ll={tr:Jo,en:Mi,de:Qo,fr:Xo,es:el,it:tl,pt:ul,ru:rl,ar:nl,"zh-CN":il,ja:al,ko:ol};function Pt(e,t){return Zo(ll,Mi,e,t)}function yu(e,t,u){let r=Lt(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 sl(e,t,u,r){let n=u.getCellValue(e.data,t);return r?{text:n==null?"":String(n),value:n}:{text:yu(u.getDef(t),n,e.data),value:n}}function dl({nodes:e,columns:t,options:u,isSelected:r,selectionCount:n=0,summaries:i}){let a=t.runtime(),s=(u.columnIds??a.map(g=>g.state.id)).map(g=>{let C=t.getDef(g),D=t.getState(g),S=C?.dataType==="number";return{id:g,header:C?.headerName??C?.field??g,width:Math.max(8,Math.round((D?.width??100)/7)),isNumeric:S,align:C?.align??(S?"right":"left"),numFmt:C?.excelFormat??cl(C?.dataType)}}),l=!!u.selectedOnly&&n>0&&!!r,m=u.includeGroups!==!1,c=!!u.raw,h=[];for(let g of e)if(g){if(Ja(g)){if(!m||l)continue;let C=s.map((D,S)=>S===0?{text:`${g.label===""?"(Blanks)":g.label} (${g.count})`,value:g.label}:{text:"",value:null});h.push({kind:"group",cells:C,level:g.level});continue}et(g)&&(l&&!r(g.key)||h.push({kind:"data",cells:s.map(C=>sl(g,C.id,t,c)),level:0}))}let E;return i&&i.defs.length>0&&(E=s.map(g=>{let C=i.defs.find(S=>S.columnId===g.id);if(!C)return null;let D=i.values[`${C.columnId}:${C.type}`]??null;return{text:C.valueFormatter?C.valueFormatter(D):D==null?"":String(D),value:D}})),{columns:s,rows:h,totals:E}}function cl(e){if(e==="number")return"#,##0.###";if(e==="date")return"yyyy-mm-dd"}var ut=class extends Error{constructor(){super("Export aborted"),this.name="ExportAbortedError"}},hl="\uFEFF";function ui(e,t){return e.includes(t)||e.includes('"')||e.includes(`
2
- `)||e.includes("\r")||e!==e.trim()?`"${e.replace(/"/g,'""')}"`:e}async function pl(e,t={}){let u=t.delimiter??",",r=t.newline??`\r
3
- `,n=[];t.includeHeaders!==!1&&n.push(e.columns.map(s=>ui(s.header,u)).join(u));let i=e.rows.length;for(let s=0;s<i;s++){if(t.signal?.aborted)throw new ut;let l=e.rows[s];n.push(l.cells.map(m=>ui(m.text,u)).join(u)),(s+1)%5e3===0&&(t.onProgress?.((s+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 ml(e,t={}){let u=await pl(e,t);return new Blob([u],{type:"text/csv;charset=utf-8;"})}var gl="application/vnd.openxmlformats-officedocument.spreadsheetml.sheet",ri="FFF1F5F9",fl="FFFAFAFA",ni="FFE2E8F0";async function Cl(){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] the "exceljs" package loaded but exposes no Workbook \u2014 the installed version is not one this writer understands.');return u}function Ii(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 wl(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 Li(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 Tt(e,t,u,r,n){let i=t.customizeCell;i&&e.eachCell((a,s)=>{let l=r?.columns[s-1],m=i({kind:u,columnId:l?.id??null,value:a.value,text:a.value==null?"":String(a.value),rowNumber:e.number,colNumber:s,rowIndex:n});Li(a,m)})}function Eu(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=>Li(a,n.style)),n.merge&&u>1&&e.mergeCells(`A${i.number}:${wl(u)}${i.number}`),Tt(i,r,"band",null,-1)}}async function ii(e,t,u,r,n){let i=null;if(r&&t.columns.length>0){let h=e.addRow(t.columns.map(E=>E.header));h.font={bold:!0},h.fill={type:"pattern",pattern:"solid",fgColor:{argb:ri}},n&&(h.alignment={horizontal:"left",vertical:"middle"},h.border={bottom:{style:"thin",color:{argb:ni}}}),Tt(h,u,"header",t,-1),i=h.number}let a=t.rows.length,s=i===null?0:i+1,l=i??0,m=0,c=-1;for(let h=0;h<a;h++){if(u.signal?.aborted)throw new ut;let E=t.rows[h],g=E.cells.map(D=>u.raw||typeof D.value=="number"||D.value instanceof Date?D.value:D.text),C=e.addRow(g);h===0&&(s=C.number),l=C.number,E.kind==="group"?(c=E.level,C.font={bold:!0},C.getCell(1).alignment={indent:E.level,horizontal:"left"},n&&(C.fill={type:"pattern",pattern:"solid",fgColor:{argb:ri}},C.outlineLevel=E.level),m=0,Tt(C,u,"group",t,h)):(n&&(c>=0&&(C.outlineLevel=c+1),m%2===1&&(C.fill={type:"pattern",pattern:"solid",fgColor:{argb:fl}})),m++,Tt(C,u,"data",t,h)),(h+1)%5e3===0&&(u.onProgress?.((h+1)/a),await new Promise(D=>setTimeout(D,0)))}if(n&&u.totalsRow!==!1&&t.totals){let h=e.addRow(t.totals.map(E=>E==null?"":typeof E.value=="number"?E.value:E.text));h.font={bold:!0},h.border={top:{style:"double",color:{argb:ni}}},Tt(h,u,"totals",t,-1),l=h.number}return{headerRow:i,firstDataRow:s,lastRow:l}}function yl(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 El(e,t={}){let u=await Cl(),r=t.styled===!0,n=t.includeHeaders!==!1,i=new u.Workbook,a=h=>i.addWorksheet(h),s=a(t.sheetName??"Data");r&&(s.properties.outlineProperties={summaryBelow:!1,summaryRight:!1}),Ii(s,e,r),yl(i,s,t.images),Eu(s,t.headerBlock,e.columns.length,t);let l=await ii(s,e,t,n,r);t.onProgress?.(1),t.autoFilter!==!1&&l.headerRow!==null&&e.columns.length>0&&(s.autoFilter={from:{row:l.headerRow,column:1},to:{row:l.headerRow,column:e.columns.length}}),t.freezeHeader!==!1&&l.headerRow!==null&&(s.views=[{state:"frozen",ySplit:l.headerRow}]);let m=s;for(let h of t.additionalGrids??[])m=Al(a,m,h,t,r),await ii(m,h.model,t,h.includeHeaders!==!1,r);Eu(s,t.footerBlock,e.columns.length,t);let c=await i.xlsx.writeBuffer();return new Blob([c],{type:gl})}function Al(e,t,u,r,n){if(u.sheetName){let a=e(u.sheetName);return Ii(a,u.model,n),u.title&&Eu(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&&Eu(t,[{cells:[u.title],merge:!0,style:{font:{bold:!0,size:13}}}],u.model.columns.length,r),t}var bl="application/pdf",dr=[241,245,249],vl=[250,250,250],Se=[30,41,59];async function xl(){try{let[e,t]=await Promise.all([import("jspdf"),import("jspdf-autotable")]);return{jsPDF:e.jsPDF??e.default,autoTable:t.default??t}}catch{throw new Error('[datagrid] PDF export needs "jspdf" and "jspdf-autotable". Install them with: npm i jspdf jspdf-autotable')}}function Er(e,t,u,r){if(!t?.length)return u;let n=e.internal.pageSize.getWidth(),i=u;for(let a of t){let s=a.fontSize??10;e.setFontSize(s),e.setFont("helvetica",a.fontStyle??"normal");let l=a.color??Se;e.setTextColor(l[0],l[1],l[2]);let m=a.align??"left",c=m==="center"?n/2:m==="right"?n-r:r;i+=s*.353,e.text(a.text,c,i,{align:m}),i+=a.spacing??2}return e.setTextColor(Se[0],Se[1],Se[2]),i}function Dl(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 Br(e,t,u,r,n,i,a){let s=r.styled!==!1,l=r.margin??14,m=a?.from??0,c=a?.to??u.rows.length,h=u.rows.slice(m,c).map(g=>g.cells.map(C=>C.text)),E=s&&r.totalsRow!==!1&&u.totals&&(!a||a.withTotals)?[u.totals.map(g=>g?.text??"")]:void 0;return t(e,{startY:n,margin:{left:l,right:l},head:i&&u.columns.length>0?[u.columns.map(g=>g.header)]:void 0,body:h,foot:E,theme:s?"grid":"plain",showHead:r.repeatHeaders===!1?"firstPage":"everyPage",showFoot:E?"lastPage":"never",styles:{fontSize:8,cellPadding:2,textColor:Se},headStyles:{fillColor:dr,textColor:Se,fontStyle:"bold"},footStyles:{fillColor:dr,textColor:Se,fontStyle:"bold"},alternateRowStyles:s?{fillColor:vl}:void 0,columnStyles:s?Object.fromEntries(u.columns.map((g,C)=>[C,{halign:g.align}])):void 0,didParseCell:g=>{let C,D=-1;g.section==="head"?C="header":g.section==="foot"?C="totals":(D=m+g.row.index,C=u.rows[D]?.kind==="group"?"group":"data"),C==="group"&&(g.cell.styles.fontStyle="bold",g.cell.styles.fillColor=dr,g.column.index===0&&(g.cell.styles.cellPadding={top:2,right:2,bottom:2,left:2+(u.rows[D]?.level??0)*4}));let S=r.customizeCell;if(!S)return;let T=u.columns[g.column.index],N=D>=0?u.rows[D]?.cells[g.column.index]:void 0;Dl(g.cell,S({kind:C,columnId:T?.id??null,text:Array.isArray(g.cell.text)?g.cell.text.join(" "):String(g.cell.text),value:N?.value,rowIndex:D,columnIndex:g.column.index}))}}),e.lastAutoTable?.finalY??n}function Fl(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 Sl(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 s=1;s<=n;s++){e.setPage(s),e.setFontSize(8),e.setFont("helvetica","normal"),e.setTextColor(148,163,184);let l=typeof u=="function"?u(s,n):`${s} / ${n}`;e.text(l,i-r,a-8,{align:"right"})}e.setTextColor(Se[0],Se[1],Se[2])}var Bl=400,kl=1e3;async function Rl(e,t,u,r,n,i,a){let s=u.rows.length,l=Math.max(1,r.sliceRows||kl),m=n,c=0;for(;c<s;){if(r.signal?.aborted)throw new ut;let h=Math.min(s,c+l);c>0&&e.addPage(),m=Br(e,t,u,r,c===0?n:a,i,{from:c,to:h,withTotals:h>=s}),c=h,r.onProgress?.(c/s),c<s&&await new Promise(E=>setTimeout(E,0))}return m}async function Nl(e,t={}){if(t.signal?.aborted)throw new ut;let{jsPDF:u,autoTable:r}=await xl(),n=t.margin??14,i=new u({orientation:t.orientation??"landscape",unit:"mm",format:t.pageSize??"a4"});Fl(i,t.images);let a=n;a=Er(i,t.headerBlock,a,n),a=t.sliceRows!==0&&e.rows.length>Bl?await Rl(i,r,e,t,a+2,t.includeHeaders!==!1,n):Br(i,r,e,t,a+2,t.includeHeaders!==!1);for(let l of t.additionalGrids??[]){if(t.signal?.aborted)throw new ut;a=Tl(i,r,l,t,a,n)}if(t.onProgress?.(1),t.footerBlock?.length){let l=t.footerBlock.reduce((m,c)=>m+(c.fontSize??10)*.353+(c.spacing??2),4);a+l>i.internal.pageSize.getHeight()-n&&(i.addPage(),a=n),Er(i,t.footerBlock,a+4,n)}Sl(i,t);let s=i.output("arraybuffer");return new Blob([s],{type:bl})}function Tl(e,t,u,r,n,i){let a=n;return u.pageBreak?(e.addPage(),a=i):a+=8,u.title&&(a=Er(e,[{text:u.title,fontSize:12,fontStyle:"bold"}],a,i)),Br(e,t,u.model,r,a+2,u.includeHeaders!==!1)}function Pi(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 kr(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 Ml=kr(Pt("en"));function Gi(e,t,u={}){if(!e)return null;let r={...Ml,...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=Lt(t.getDef(m),c);return h!==null?h:c instanceof Date?c.toLocaleDateString():String(c)},s=(m,c)=>{if(Fr(m)){let g=m.nodes.map(D=>s(D,c+1)).filter(Boolean);if(g.length===0)return"";let C=g.join(` ${r[m.logic]} `);return c>0&&g.length>1?`(${C})`:C}let h=i(m.columnId),E=r[m.operator];switch(m.operator){case"isnull":case"isnotnull":return`${h} ${E}`;case"in":{let g=Array.isArray(m.value)?m.value:[m.value];return g.length>n?`${h} ${E} ${r.ofN.replace("{n}",String(g.length))}`:`${h} ${E} ${g.map(C=>a(m.columnId,C)).join(r.listSeparator)}`}case"between":{let[g,C]=Array.isArray(m.value)?m.value:[void 0,void 0];return`${h} ${E} ${a(m.columnId,g)} \u2013 ${a(m.columnId,C)}`}default:return`${h} ${E} ${a(m.columnId,m.value)}`}},l=s(e,0);return l===""?null:l}function Il(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 s;if(u===null)s=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};s=r==="before"?c:c+1}if(s>a&&(s-=1),s===a)return{rows:i,moved:!1,fromIndex:a,toIndex:a};let l=i.slice(),[m]=l.splice(a,1);return l.splice(s,0,m),{rows:l,moved:!0,fromIndex:a,toIndex:s}}var Ll=["columnStateChanged","sortChanged","filterChanged","groupChanged"];function ai(e){try{return globalThis[e]??null}catch{return null}}function Oi(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 E=null,g=!0;try{E=h.getItem(u)}catch{g=!1}if(g&&E)try{a(JSON.parse(E))}catch{try{h.removeItem(u)}catch{}}}}let s,l=()=>{let h=e.getViewState();if(r==="custom"){try{Promise.resolve(t.customSave?.(h)).catch(()=>{})}catch{}return}let E=ai(r);if(E)try{E.setItem(u,JSON.stringify(h))}catch{}},m=()=>{s!==void 0&&clearTimeout(s),s=setTimeout(l,n)},c=Ll.map(h=>e.events.on(h,m));return()=>{i=!0,c.forEach(h=>h()),s!==void 0&&(clearTimeout(s),s=void 0,l())}}var oi=150,cu=40;function Pl(e,t){return e.id?e.id:e.field?e.field:`col_${t}`}function kt(e,t,u){let r=Math.max(e,t);return u!=null&&(r=Math.min(r,u)),r}var Gl=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},s=Pl(a,i);if(r.has(s)){let l=`[datagrid] duplicate column id "${s}" \u2014 set an explicit \`id\` on one of the columns.`;this.options.debugMode?console.error(l):console.warn(l)}return r.add(s),a.id=s,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 s=n.minWidth??cu,l=t.get(a),m=u.get(a),c=h=>m!==void 0&&l!==void 0&&l[h]===n[h];this.states.set(a,{id:a,width:c("width")?kt(m.width,s,n.maxWidth):kt(n.width??oi,s,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??cu;u.width=kt(e.width??oi,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||eo(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(Nt(e))}setBandCollapsed(e,t){if(e.length===0)return!1;let u=Nt(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=Nt(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 s=Ne(i);s.length<e.length||Nt(s.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=kt(t,r.minWidth??cu,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=kt(n.width,i.minWidth??cu,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 Au(e){return e==null||typeof e=="number"&&Number.isNaN(e)}function Vi(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 Hi(e,t,u,r=!1){let n=e.length,i=t.getDataType(u),a=r?h=>t.getSortValue(h,u):h=>t.getCellValue(h,u),s=0;if(i==="number"||i==="boolean"||i==="date"){let h=new Float64Array(n),E=i==="date"?Ki:Vi,g=[],C=new Map,D=new Int32Array(n),S=!0;return{total:n,get done(){return s},step(T){let N=Math.min(n,s+T);for(;s<N;s++){let O=a(e[s]);if(Au(O)){h[s]=Number.NaN,D[s]=-1;continue}h[s]=E(O),typeof O!="number"&&(S=!1);let W=String(O),Z=C.get(W);Z===void 0&&(Z=g.length,g.push(W),C.set(W,Z)),D[s]=Z}return s<n},finish(){return S?{kind:"numeric",values:h}:{kind:"numeric",values:h,searchCodes:D,searchDictionary:g}}}}let l=new Int32Array(n),m=[],c=new Map;return{total:n,get done(){return s},step(h){let E=Math.min(n,s+h);for(;s<E;s++){let g=a(e[s]);if(Au(g)){l[s]=-1;continue}let C=String(g),D=c.get(C);D===void 0&&(D=m.length,m.push(C),c.set(C,D)),l[s]=D}return s<n},finish(){return{kind:"text",codes:l,dictionary:m}}}}function Ol(e,t,u,r=!1){let n=Hi(e,t,u,r);return n.step(n.total),n.finish()}var li=new WeakMap;function Vl(e){let t=li.get(e);if(t!==void 0)return t;let u=Kl(e);return li.set(e,u),u}function Kl(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 si(e){for(let t=0;t<e.length;t++){let u=e.charCodeAt(t);if(u<32||u>126)return!1}return!0}function Hl(e,t){let u=0,r=0,n=e.length,i=t.length;for(;u<n&&r<i;){let a=e.charCodeAt(u),s=t.charCodeAt(r),l=a>=48&&a<=57,m=s>=48&&s<=57;if(l!==m)return!0;if(l){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 E=u-c;if(E!==r-h)return!0;for(let g=0;g<E;g++)if(e.charCodeAt(c+g)!==t.charCodeAt(h+g))return!0}else{if(a>=65&&a<=90&&(a+=32),s>=65&&s<=90&&(s+=32),a!==s)return!0;u++,r++}}return u!==n||r!==i}function zl(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=Vl(t)?new Uint8Array(u):null,a=r[0],s=i?si(e[a])?1:2:0;i&&(i[a]=s);let l=0;n[a]=0;for(let m=1;m<u;m++){let c=r[m],h=e[a],E=e[c],g=0;i&&(g=i[c],g===0&&(g=si(E)?1:2,i[c]=g)),(s===1&&g===1&&Hl(h,E)||t.compare(h,E)!==0)&&l++,n[c]=l,a=c,s=g}return n}function Wl(e,t,u){let r=e.length,n=new Uint32Array(r),i=new Uint32Array(r),a=0,s=0;for(let S=0;S<r;S++){let T=e[S];Number.isNaN(t[T])?i[s++]=T:n[a++]=T}let l=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],O=h[1];O&2147483648?(N=~N>>>0,O=~O>>>0):O=(O^2147483648)>>>0,u&&(N=~N>>>0,O=~O>>>0),l[S]=N,m[S]=O}let E=new Uint32Array(a);for(let S=0;S<a;S++)E[S]=S;let g=new Uint32Array(a),C=new Uint32Array(256);for(let S=0;S<8;S++){let T=S>=4,N=(S&3)*8,O=T?m:l;C.fill(0);for(let j=0;j<a;j++)C[O[E[j]]>>>N&255]++;if(C[O[E[0]]>>>N&255]===a)continue;let W=0;for(let j=0;j<256;j++){let J=C[j];C[j]=W,W+=J}for(let j=0;j<a;j++){let J=E[j];g[C[O[J]>>>N&255]++]=J}let Z=E;E=g,g=Z}let D=new Uint32Array(r);for(let S=0;S<a;S++)D[S]=n[E[S]];for(let S=0;S<s;S++)D[a+S]=i[S];return D}var di=new Map;function Ul(e){let t=di.get(e);return t||(t=new Intl.Collator(e,{numeric:!0,sensitivity:"base"}),di.set(e,t)),t}function ci(e){return e==null||typeof e=="number"&&Number.isNaN(e)}function $l(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 ql(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 _l(e,t){for(let u of t)if(e.getDef(u.columnId)?.comparator)return!0;return!1}function jl(e,t,u,r){let n=e.length,i=r.columnId,a=r.direction==="desc"?-1:1,s=u.getDataType(i),l=u.getDef(i)?.comparator;if(l){let h=new Array(n),E=new Array(n);for(let g=0;g<n;g++){let C=t[e[g]];h[g]=u.getSortValue(C,i),E[g]=C}return{dir:a,numeric:null,strings:null,values:h,valueRows:E,comparator:l}}if(s==="string"||s==="lookup"){let h=new Array(n);for(let E=0;E<n;E++){let g=u.getSortValue(t[e[E]],i);h[E]=ci(g)?null:String(g)}return{dir:a,numeric:null,strings:h,values:null,valueRows:null,comparator:null}}let m=new Float64Array(n),c=s==="date"?ql:$l;for(let h=0;h<n;h++){let E=u.getSortValue(t[e[h]],i);m[h]=ci(E)?Number.NaN:c(E)}return{dir:a,numeric:m,strings:null,values:null,valueRows:null,comparator:null}}function Yl(e,t){let u=e.length,r=[],n=new Map,i=new Int32Array(u);for(let l=0;l<u;l++){let m=e[l];if(m===null){i[l]=-1;continue}let c=n.get(m);c===void 0&&(c=r.length,r.push(m),n.set(m,c)),i[l]=c}let a=zl(r,t),s=new Float64Array(u);for(let l=0;l<u;l++)s[l]=i[l]===-1?Number.NaN:a[i[l]];return s}function Zl(e,t,u,r,n={}){if(r.length===0)return e.slice();let i=Ul(n.locale??"en"),a=r.map(h=>jl(e,t,u,h)),s=a.length,l=new Array(e.length),m=!0;for(let h=0;h<e.length;h++)l[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(C=>C.numeric?C.numeric:Yl(C.strings,i)),E=Uint32Array.from(l);for(let C=s-1;C>=0;C--)E=Wl(E,h[C],a[C].dir===-1);let g=new Uint32Array(e.length);for(let C=0;C<E.length;C++)g[C]=e[E[C]];return g}l.sort((h,E)=>{for(let g=0;g<s;g++){let C=a[g];if(C.comparator){let D=C.values,S=C.valueRows,T=C.comparator(D[h],D[E],S[h],S[E],C.dir===-1);if(T!==0)return T*C.dir}else if(C.numeric){let D=C.numeric[h],S=C.numeric[E],T=Number.isNaN(D),N=Number.isNaN(S);if(T||N){if(T&&N)continue;return T?1:-1}if(D!==S)return(D<S?-1:1)*C.dir}else{let D=C.strings[h],S=C.strings[E];if(D===null||S===null){if(D===null&&S===null)continue;return D===null?1:-1}let T=i.compare(D,S);if(T!==0)return T*C.dir}}return e[h]-e[E]});let c=new Uint32Array(e.length);for(let h=0;h<l.length;h++)c[h]=e[l[h]];return c}var Jl=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 Ni}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=Co(r,this.rows,e,t.filter,t.searchText,t.externalFilter),i=Zl(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)}},zi='var ie=new WeakMap;function Se(e){let t=ie.get(e);if(t!==void 0)return t;let n=Fe(e);return ie.set(e,n),n}function Fe(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 ue(e){for(let t=0;t<e.length;t++){let n=e.charCodeAt(t);if(n<32||n>126)return false}return true}function De(e,t){let n=0,r=0,o=e.length,c=t.length;for(;n<o&&r<c;){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<c&&t.charCodeAt(r)===48;)r++;let g=n,b=r;for(;n<o;){let k=e.charCodeAt(n);if(k<48||k>57)break;n++;}for(;r<c;){let k=t.charCodeAt(r);if(k<48||k>57)break;r++;}let p=n-g;if(p!==r-b)return true;for(let k=0;k<p;k++)if(e.charCodeAt(g+k)!==t.charCodeAt(b+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!==c}function ce(e,t){let n=e.length,r=new Array(n);for(let g=0;g<n;g++)r[g]=g;r.sort((g,b)=>t.compare(e[g],e[b]));let o=new Int32Array(n);if(n===0)return o;let s=Se(t)?new Uint8Array(n):null,f=r[0],a=s?ue(e[f])?1:2:0;s&&(s[f]=a);let d=0;o[f]=0;for(let g=1;g<n;g++){let b=r[g],p=e[f],k=e[b],m=0;s&&(m=s[b],m===0&&(m=ue(k)?1:2,s[b]=m)),(a===1&&m===1&&De(p,k)||t.compare(p,k)!==0)&&d++,o[b]=d,f=b,a=m;}return o}function le(e,t,n){let r=e.length,o=new Uint32Array(r),c=new Uint32Array(r),s=0,f=0;for(let i=0;i<r;i++){let C=e[i];Number.isNaN(t[C])?c[f++]=C:o[s++]=C;}let a=new Uint32Array(s),d=new Uint32Array(s),g=new Float64Array(1),b=new Uint32Array(g.buffer);for(let i=0;i<s;i++){let C=t[o[i]];g[0]=C===0?0:C;let h=b[0],N=b[1];N&2147483648?(h=~h>>>0,N=~N>>>0):N=(N^2147483648)>>>0,n&&(h=~h>>>0,N=~N>>>0),a[i]=h,d[i]=N;}let p=new Uint32Array(s);for(let i=0;i<s;i++)p[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,N=C?d:a;m.fill(0);for(let x=0;x<s;x++)m[N[p[x]]>>>h&255]++;if(m[N[p[0]]>>>h&255]===s)continue;let w=0;for(let x=0;x<256;x++){let S=m[x];m[x]=w,w+=S;}for(let x=0;x<s;x++){let S=p[x];k[m[N[S]>>>h&255]++]=S;}let D=p;p=k,k=D;}let I=new Uint32Array(r);for(let i=0;i<s;i++)I[i]=o[p[i]];for(let i=0;i<f;i++)I[s+i]=c[i];return I}function de(e){return e.nodes!==void 0}var fe=new Map;function Re(e){let t=fe.get(e);return t||(t=new Intl.Collator(e,{numeric:true,sensitivity:"base"}),fe.set(e,t)),t}var me=new WeakMap;function Ue(e,t,n){let r=me.get(e);r||(r=new Map,me.set(e,r));let o=r.get(n);return o||(o=ce(t,Re(n)),r.set(n,o)),o}var be=new WeakMap;function ge(e,t){let n=be.get(e);return n||(n=t.map(r=>r.toLowerCase()),be.set(e,n)),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 Be(e,t){let n=e.dictionary,r=new Uint8Array(n.length),o=false,c=t.operator;if(c==="isnull")return {mask:r,nilPasses:true};if(c==="isnotnull")return r.fill(1),{mask:r,nilPasses:false};let s=ge(e,n),f=t.value==null?"":String(t.value).toLowerCase();switch(c){case "=":case "<>":{let a=t.value===null||t.value===void 0;for(let d=0;d<n.length;d++){let g=a?false:ve(n[d],t.value);r[d]=(c==="="?g:!g)?1:0;}o=c==="="?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=Oe(t.value);for(let d=0;d<n.length;d++)r[d]=a.has(H(n[d]))?1:0;break}case ">":case ">=":case "<":case "<=":{for(let a=0;a<n.length;a++){let d=Y(n[a],t.value);r[a]=c===">"&&d>0||c===">="&&d>=0||c==="<"&&d<0||c==="<="&&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]=Y(n[g],a)>=0&&Y(n[g],d)<=0?1:0;break}default:r.fill(1),o=true;}return {mask:r,nilPasses:o}}function H(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 ve(e,t){return H(e)===H(t)}function Oe(e){let t=new Set,n=Array.isArray(e)?e:[];for(let r of n){if(r==null)continue;let o=H(r);typeof o=="number"&&Number.isNaN(o)||t.add(o);}return t}function Le(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 _e(e){let t=j.get(e);return t||(t=Le(e.value),j.set(e,t)),t}function Y(e,t){let n=R(e),r=R(t);if(!Number.isNaN(n)&&!Number.isNaN(r))return n-r;let o=String(e).toLowerCase(),c=String(t).toLowerCase();return o<c?-1:o>c?1:0}function Ve(e,t){if(t.operator==="in")return !Number.isNaN(e)&&_e(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?"":String(t.value).toLowerCase(),c=r.toLowerCase();return t.operator==="contains"?c.includes(o):t.operator==="notcontains"?!c.includes(o):t.operator==="startswith"?c.startsWith(o):c.endsWith(o)}default:return true}}function X(e,t,n){if(de(e))return e.nodes.length===0?true:e.logic==="or"?e.nodes.some(f=>X(f,t,n)):e.nodes.every(f=>X(f,t,n));let r=t.columns[e.columnId];if(!r)return true;if(r.kind==="numeric")return Ve(r.values[n],e);let o=Q.get(e),c=o??Be(r,e);o||Q.set(e,c);let s=r.codes[n];return s===-1?c.nilPasses:c.mask[s]===1}var Q=new WeakMap,qe=65535;function J(e,t){Q=new WeakMap,j=new WeakMap;let{rowCount:n}=e,r=t.locale??"en",o=t.searchText.trim().toLowerCase(),c=!!t.filter,s=o.length>0,f=[];if(s){let m=/^[0-9.+\\-einftya]*$/.test(o),I=(C,h,N)=>{let w=ge(h,C),D=new Uint8Array(C.length),x=false;for(let S=0;S<w.length;S++)(w[S].includes(o)||N!==void 0&&N.has(C[S]))&&(D[S]=1,x=true);return x?D: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 N=i.get(C);if(h.kind==="text"){let w=I(h.dictionary,h,N);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,N);w&&f.push({codes:h.searchCodes,mask:w,values:null,numberHits:null,scanText:true});}else {let w=null;if(N)for(let D of N){let x=Number(D);Number.isNaN(x)||(w??=new Set).add(x);}(m||w)&&f.push({codes:null,mask:null,values:h.values,numberHits:w,scanText:m});}}}let a=t.onProgress,d=t.isCancelled,g={order:new Uint32Array(0),cancelled:true},b;if(!c&&!s){b=new Uint32Array(n);for(let m=0;m<n;m++)b[m]=m;}else {let m=new Uint32Array(n),I=0;for(let i=0;i<n;i++){if((i&qe)===0){if(d?.())return g;a?.("filtering",n===0?1:i/n);}if(!(c&&!X(t.filter,e,i))){if(s){let C=false;for(let h of f)if(h.codes&&h.mask){let N=h.codes[i];if(N!==-1&&h.mask[N]===1){C=true;break}}else if(h.values){let N=h.values[i];if(!Number.isNaN(N)){if(h.numberHits!==null&&h.numberHits.has(N)){C=true;break}if(h.scanText&&String(N).toLowerCase().includes(o)){C=true;break}}}if(!C)continue}m[I++]=i;}}b=m.subarray(0,I),a?.("filtering",1);}if(t.sort.length===0)return {order:b.slice()};if(d?.())return g;let p=[];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"?p.push({dir:i,numeric:I.values,codes:null,ranks:null}):p.push({dir:i,numeric:null,codes:I.codes,ranks:Ue(I,I.dictionary,r)});}if(p.length===0)return {order:b.slice()};if(b.length>=5e4){let m=[];for(let i of p){if(i.numeric){m.push(i.numeric);continue}let C=i.codes,h=i.ranks,N=new Float64Array(n);for(let w=0;w<n;w++){let D=C[w];N[w]=D===-1?Number.NaN:h[D];}m.push(N);}let I=b;for(let i=p.length-1;i>=0;i--){if(d?.())return g;a?.("sorting",(p.length-1-i)/p.length),I=le(I,m[i],p[i].dir===-1);}return a?.("sorting",1),{order:I===b?b.slice():I}}a?.("sorting",null);let k=Array.from(b);return k.sort((m,I)=>{for(let i of p)if(i.numeric){let C=i.numeric[m],h=i.numeric[I],N=Number.isNaN(C),w=Number.isNaN(h);if(N||w){if(N&&w)continue;return N?1:-1}if(C!==h)return (C<h?-1:1)*i.dir}else {let C=i.codes[m],h=i.codes[I];if(C===-1||h===-1){if(C===-1&&h===-1)continue;return C===-1?1:-1}let N=i.ranks[C],w=i.ranks[h];if(N!==w)return (N<w?-1:1)*i.dir}return m-I}),{order:Uint32Array.from(k)}}var Ge=30,he="Other",Pe=1e4;var L=864e5,Ke=60,ze=20,$=2e3,Z=["day","week","month","quarter","year"],ye={day:L,week:7*L,month:30.44*L,quarter:91.31*L,year:365.25*L};function Ce(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 c=Date.UTC(r,o,n.getUTCDate()),s=(new Date(c).getUTCDay()+6)%7;return c-s*L}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+L;case "week":return e+7*L;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 ee=e=>e<10?`0${e}`:String(e);function We(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}-${ee(n.getUTCMonth()+1)}`;default:return `${r}-${ee(n.getUTCMonth()+1)}-${ee(n.getUTCDate())}`}}function He(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 $e(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=Z.find(b=>r/ye[b]+1<=Ke)??"year";else for(d=a;r/ye[d]+1>$;){let b=Z[Z.indexOf(d)+1];if(!b)break;d=b,g=true;}return {info:{kind:"date",unit:d,adjusted:g},keyOf:b=>Number.isFinite(b)?Ce(b,d):Number.NaN,endOf:b=>Ne(b,d),labelOf:b=>We(b,d),keys:(b,p)=>{let k=[];if(!Number.isFinite(b)||!Number.isFinite(p))return k;for(let m=Ce(b,d);m<=p&&k.length<$;m=Ne(m,d))k.push(m);return k}}}let o=e.size&&e.size>0?e.size:He(r/Math.max(1,e.bins??ze));(!(o>0)||!Number.isFinite(o))&&(o=1);let c=false;for(;r/o+1>$;)o*=2,c=true;let s=o;return {info:{kind:"number",size:s,adjusted:c},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 b=Math.floor(a/s)*s;for(let p=b;p<=d&&g.length<$;p+=s)g.push(p);return g}}}function Ye(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 c=t[o].start;n[o]=c,r[o]=Number.isNaN(c)?Number.NaN:e.endOf(c);}return {bucket:e.info,bucketStarts:n,bucketEnds:r}}var z=-1;function pe(e,t,n,r){let o=Math.max(1,n.maxCategories??Ge),c=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"),g=new Map,b=null,p=0,k=false,m=(u,l=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:p++,start:l}),I=(u,l)=>{if(!f)return Number.NaN;if(f.kind==="numeric")return f.values[u];let y=f.codes[u];return y===z?Number.NaN:Ye(f.dictionary[y],l)},i=n.categoryBucket,C=null,h=Number.POSITIVE_INFINITY,N=Number.NEGATIVE_INFINITY;if(i){for(let u=0;u<t.length;u++){let l=I(t[u],i.kind);Number.isFinite(l)&&(l<h&&(h=l),l>N&&(N=l));}C=$e(i,h,N);}let w=0,D=1,x=2,S=new Uint8Array(s),ne=new Array(s).fill(null),re=new Array(s).fill(null),oe=new Array(s).fill(null);for(let u=0;u<s;u++){let l=n.series[u].aggregate;S[u]=l==="count"?w:d[u]?D:x;let y=a[u];if(!y)continue;if(y.kind==="numeric"){ne[u]=y.values;continue}re[u]=y.codes;let T=y.dictionary,M=new Float64Array(T.length);for(let E=0;E<T.length;E++){let A=T[E],K=A===""?Number.NaN:Number(A);M[E]=Number.isFinite(K)?K:Number.NaN;}oe[u]=M;}for(let u=0;u<t.length;u++){let l=t[u],y,T,M=Number.NaN;if(C&&i)M=C.keyOf(I(l,i.kind)),y=Number.isNaN(M)?"":M,T=Number.isNaN(M)?"":C.labelOf(M);else if(!f)y=T="";else if(f.kind==="text"){let A=f.codes[l];y=T=A===z?"":f.dictionary[A];}else {let A=f.values[l];y=T=Number.isNaN(A)?"":String(A);}let E=g.get(y);E||(g.size>=Pe?(k=true,b??=m(n.otherLabel??he),E=b):(E=m(T,M),g.set(y,E)));for(let A=0;A<s;A++){let K=S[A],_=ne[A],V=re[A];if(K===w){(_!==null?!Number.isNaN(_[l]):V!==null&&V[l]!==z)&&E.count[A]++;continue}if(K===D){let q=E.distinct[A];if(q)if(V!==null){let se=V[l];se!==z&&q.add(se);}else _!==null&&!Number.isNaN(_[l])&&q.add(_[l]);continue}let O;if(_!==null)O=_[l];else if(V!==null){let q=V[l];O=q===z?Number.NaN:oe[A][q];}else O=Number.NaN;Number.isNaN(O)||(E.numericCount[A]++,E.sum[A]+=O,O<E.min[A]&&(E.min[A]=O),O>E.max[A]&&(E.max[A]=O));}}let Te=(u,l)=>{for(let y=0;y<s;y++){u.sum[y]+=l.sum[y],u.numericCount[y]+=l.numericCount[y],u.count[y]+=l.count[y],l.min[y]<u.min[y]&&(u.min[y]=l.min[y]),l.max[y]>u.max[y]&&(u.max[y]=l.max[y]);let T=u.distinct[y],M=l.distinct[y];if(T&&M)for(let E of M)T.add(E);}},ae=(u,l)=>{switch(n.series[l].aggregate){case "count":return u.count[l];case "countDistinct":return u.distinct[l]?.size??0;case "sum":return u.numericCount[l]>0?u.sum[l]:Number.NaN;case "avg":return u.numericCount[l]>0?u.sum[l]/u.numericCount[l]:Number.NaN;case "min":return u.numericCount[l]>0?u.min[l]:Number.NaN;case "max":return u.numericCount[l]>0?u.max[l]:Number.NaN;default:return Number.NaN}},P=[...g.values()],Ee=P.length+(b?1:0),W=u=>{if(s===0)return Number.NEGATIVE_INFINITY;let l=ae(u,0);return Number.isNaN(l)?Number.NEGATIVE_INFINITY:l},B;if(C){B=C.keys(h,N).map(l=>g.get(l)??m(C.labelOf(l),l));let u=g.get("");u&&B.push(u);}else {let u=P;if(P.length>o){let l=[...P].sort((y,T)=>W(T)-W(y));if(u=l.slice(0,o),c){b??=m(n.otherLabel??he);for(let y of l.slice(o))Te(b,y);}}switch(n.categoryOrder??"value-desc"){case "category-asc":u=[...u].sort((l,y)=>l.label.localeCompare(y.label));break;case "first-seen":u=[...u].sort((l,y)=>l.seq-y.seq);break;default:u=[...u].sort((l,y)=>W(y)-W(l));}B=b?[...u,b]:u;}return {categories:B.map(u=>u.label),series:n.series.map((u,l)=>{let y=new Float64Array(B.length);for(let T=0;T<B.length;T++)y[T]=ae(B[T],l);return {label:u.label??r.series[l]??u.columnId,columnId:u.columnId,aggregate:u.aggregate,values:y}}),truncated:C?false:P.length>o||k,otherIndex:C?null:b?B.length-1:null,rowCount:t.length,categoryCount:C?B.length:Ee,rankingExact:!k,...je(C,B)}}function Ie(){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 ke(e,t,n){let r=n.get(e);return r===void 0&&(r=t.length,t.push(e),n.set(e,r)),r}function we(e,t,n){for(let r of t){let o=e[r.columnId];if(!o)continue;let{indices:c}=r;if(o.kind==="numeric"){let s=r.numbers??[];for(let f=0;f<c.length;f++)o.values[c[f]]=s[f];if(o.searchCodes&&o.searchDictionary&&r.labels){let f=n.get(o);for(let a=0;a<c.length;a++){let d=r.labels[a];o.searchCodes[c[a]]=d===null?-1:ke(d,o.searchDictionary,f);}}}else {let s=r.labels??[],f=n.get(o);for(let a=0;a<c.length;a++){let d=s[a];o.codes[c[a]]=d===null?-1:ke(d,o.dictionary,f);}}}}var Ae=self,G=new Map;function U(e,t){Ae.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 Xe(e){let t={};xe(e.columns,t),G.set(e.gridId,{dataVersion:e.dataVersion,table:{rowCount:e.rowCount,columns:t}}),U({action:"ready",gridId:e.gridId,dataVersion:e.dataVersion});}function Qe(e){let t=G.get(e.gridId);!t||t.dataVersion!==e.dataVersion||(xe(e.columns,t.table.columns),U({action:"ready",gridId:e.gridId,dataVersion:e.dataVersion}));}var F=new Set,te=(e,t)=>`${e}:${t}`;function Je(e){let t=G.get(e.gridId);if(!t||t.dataVersion!==e.dataVersion)return;let n=te(e.gridId,e.requestId),r=`${e.gridId}:*`,o=()=>F.has(n)||F.has(r);if(o()){F.delete(n),U({action:"cancelled",gridId:e.gridId,requestId:e.requestId});return}try{let{order:c,cancelled:s}=J(t.table,{sort:e.sort,filter:e.filter,searchText:e.searchText,searchColumns:e.searchColumns,searchLabelHits:e.searchLabelHits,locale:e.locale,onProgress:(f,a)=>U({action:"progress",gridId:e.gridId,dataVersion:e.dataVersion,requestId:e.requestId,phase:f,fraction:a}),isCancelled:o});if(s){F.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:c.buffer,visibleCount:c.length},[c.buffer]),F.delete(n);}catch(c){U({action:"error",gridId:e.gridId,requestId:e.requestId,message:c instanceof Error?c.message:String(c)});}}function Ze(e){let t=G.get(e.gridId);if(!t||t.dataVersion!==e.dataVersion)return;let n=te(e.gridId,e.requestId),r=`${e.gridId}:*`,o=()=>F.has(n)||F.has(r);if(o()){F.delete(n),U({action:"cancelled",gridId:e.gridId,requestId:e.requestId});return}try{let{order:c,cancelled:s}=J(t.table,{sort:[],filter:e.filter,searchText:e.searchText,searchColumns:e.searchColumns,searchLabelHits:e.searchLabelHits,locale:e.locale,isCancelled:o});if(s){F.delete(n),U({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=pe(t.table.columns,c,f,{series:e.series.map(m=>m.label??m.columnId)}),d=a.categories.length,g=new Float64Array(a.series.length*d);for(let m=0;m<a.series.length;m++)g.set(a.series[m].values,m*d);let b=a.bucketStarts,p=a.bucketEnds,k=[g.buffer];b&&p&&k.push(b.buffer,p.buffer),U({action:"aggregated",gridId:e.gridId,dataVersion:e.dataVersion,requestId:e.requestId,categories:a.categories,values:g.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:b?.buffer,bucketEnds:p?.buffer},k),F.delete(n);}catch(c){U({action:"error",gridId:e.gridId,requestId:e.requestId,message:c instanceof Error?c.message:String(c)});}}var et=Ie();function tt(e){let t=G.get(e.gridId);!t||t.dataVersion!==e.fromVersion||(we(t.table.columns,e.patches,et),t.dataVersion=e.toVersion);}Ae.onmessage=e=>{let t=e.data;switch(t.action){case "init":Xe(t);break;case "addColumns":Qe(t);break;case "patchRows":tt(t);break;case "compute":Je(t);break;case "aggregate":Ze(t);break;case "cancel":F.add(t.requestId===void 0?`${t.gridId}:*`:te(t.gridId,t.requestId));break;case "dispose":G.delete(t.gridId);for(let n of F)n.startsWith(`${t.gridId}:`)&&F.delete(n);break}};',hu=null;function Ql(){return zi.length>0}function Xl(){if(hu)return hu;if(!Ql())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 hu=URL.createObjectURL(new Blob([zi],{type:"text/javascript"})),hu}var es=2e4,hi=!1;function ts(e,t){typeof process<"u"&&process.env&&!t||hi&&!t||(hi=!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.
1
+ "use strict";var KanuniLabsDataGrid=(()=>{var Ja=Object.create;var hu=Object.defineProperty;var Qa=Object.getOwnPropertyDescriptor;var Xa=Object.getOwnPropertyNames;var eo=Object.getPrototypeOf,to=Object.prototype.hasOwnProperty;var ar=(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 uo=(e,t)=>{for(var u in t)hu(e,u,{get:t[u],enumerable:!0})},Un=(e,t,u,r)=>{if(t&&typeof t=="object"||typeof t=="function")for(let n of Xa(t))!to.call(e,n)&&n!==u&&hu(e,n,{get:()=>t[n],enumerable:!(r=Qa(t,n))||r.enumerable});return e};var or=(e,t,u)=>(u=e!=null?Ja(eo(e)):{},Un(t||!e||!e.__esModule?hu(u,"default",{value:e,enumerable:!0}):u,e)),ro=e=>Un(hu({},"__esModule",{value:!0}),e);var r0={};uo(r0,{CHECKBOX_COLUMN_WIDTH:()=>Ht,DENSITY_ROW_HEIGHT:()=>Mr,DETAIL_COLUMN_WIDTH:()=>wt,PRINT_MAX_ROWS:()=>Kr,ROW_DRAG_MIME:()=>Kt,ROW_NUMBER_COLUMN_WIDTH:()=>Ct,THEME_ROW_HEIGHT:()=>Ir,buildHeaderMenu:()=>Fu,createGrid:()=>ta,measureBestFitWidth:()=>Su,presetRowHeight:()=>Du});function no(e){return e.kind==="group"}function rt(e){return e.kind==="data"}function io(e){return!Array.isArray(e)&&typeof e.load=="function"}function bi(e){return typeof e=="string"||typeof e=="number"}var $n=new WeakMap;function ao(e){if(typeof e.items=="function"||!Array.isArray(e.items))return null;let t=$n.get(e);if(t)return t;let u=new Map;for(let r of e.items)u.set(r.value,r.label);return $n.set(e,u),u}function Gt(e,t){if(!e?.lookup)return null;let u=ao(e.lookup);if(!u)return null;let r=u.get(t);return r===void 0?null:r}function Ne(e){let t=e?.band;return t==null?[]:typeof t=="string"?t===""?[]:[t]:t.filter(u=>typeof u=="string"&&u!=="")}function Mt(e){return e.join("\0")}function oo(e,t){let u=e?.bandShow;if(u===void 0)return!1;let r=Ne(e);if(r.length===0)return!1;let n=!1;for(let i=0;i<r.length;i++)if(t.has(Mt(r.slice(0,i+1)))){n=!0;break}return u==="open"?n:!n}function vi(e){let t=0;for(let u of e){let r=Ne(u.def).length;r>t&&(t=r)}return t}function xi(e,t){if(t<=0)return[];let u=[];for(let r=0;r<t;r++){let n=[];for(let i of e){let a=Ne(i.def),s=r<a.length?a[r]:"",l=s==="",m=n[n.length-1];m!==void 0&&m.spacer===l&&m.label===s&&(l||lo(e,m.columnIds[0],i.state.id,r))?(m.columnIds.push(i.state.id),m.width+=i.state.width):n.push({label:s,columnIds:[i.state.id],width:i.state.width,level:r,spacer:l})}u.push(n)}return u}function lo(e,t,u,r){if(r===0)return!0;let n=e.find(l=>l.state.id===t),i=e.find(l=>l.state.id===u),a=Ne(n?.def),s=Ne(i?.def);for(let l=0;l<r;l++)if(a[l]!==s[l])return!1;return!0}var so=/^\d{4}-\d{2}-\d{2}(?:[T ]\d{2}:\d{2}|$)/;function co(e){return e==null||e===""?null:typeof e=="boolean"?"boolean":typeof e=="number"?Number.isFinite(e)?"number":null:e instanceof Date||typeof e=="string"&&so.test(e)?"date":"string"}function ho(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 Di(e,t={}){let{sampleSize:u=50,exclude:r,include:n,humanizeHeaders:i=!0,defaults:a}=t;if(!e||e.length===0)return[];let s=new Set(r??[]),l=Math.min(e.length,Math.max(1,u)),m=new Map;for(let c=0;c<l;c++){let h=e[c];if(!(!h||typeof h!="object"))for(let[E,g]of Object.entries(h)){if(s.has(E))continue;m.get(E)==null&&m.set(E,co(g))}}return(n?n.filter(c=>m.has(c)&&!s.has(c)):[...m.keys()]).map(c=>({...a,field:c,headerName:i?ho(c):c,...m.get(c)?{dataType:m.get(c)}:{}}))}var nt=(e,t)=>`${e}:${t}`;function po(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 mo(e,t){return t==="date"&&!(e instanceof Date)&&typeof e!="number"?Date.parse(String(e)):po(e)}function Br(e,t,u,r=nt(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 go(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 yu(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=mo(t,e.dataType);Number.isNaN(r)||(e.numericCount++,e.sum+=r,r<e.min&&(e.min=r),r>e.max&&(e.max=r))}function Eu(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 Fi(e,t,u,r,n,i){let a={};if(n.length===0)return a;let s=i?.effectiveValue,l=i?.effectiveRow,m=[];for(let c of n){let h=nt(c.columnId,c.type);if(c.type==="custom"){if(!c.calculate){a[h]=null;continue}let E=[];for(let g=t;g<u;g++){let w=e[g];if(!w||!rt(w))continue;let x=r.getCellValue(w.data,c.columnId);E.push({row:l?l(w.key,w.data):w.data,value:s?s(w.key,c.columnId,x):x})}a[h]=c.calculate(E);continue}m.push(Br(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 E=e[h];if(!E||!rt(E))continue;let g=E.data;if(c){let w=r.getCellValue(g,c.columnId);yu(c,s?s(E.key,c.columnId,w):w);continue}for(let w of m){let x=r.getCellValue(g,w.columnId);yu(w,s?s(E.key,w.columnId,x):x)}}for(let h of m)a[h.key]=Eu(h)}return a}function fo(e,t,u,r){return Fi(e,0,e.length,t,u,r)}function Co(e,t,u){let r=u?.effectiveValue,n=u?.effectiveRow,i=[],a=[],s=[];for(let l of t){if(l.type==="custom"){l.calculate?a.push({def:l,cells:[]}):s.push(nt(l.columnId,l.type));continue}i.push(Br(l.columnId,l.type,e.getDataType(l.columnId)))}return{add(l,m,c){for(let h=m;h<c;h++){let E=l[h];if(!E||!rt(E))continue;let g=E.data;for(let w of i){let x=e.getCellValue(g,w.columnId);yu(w,r?r(E.key,w.columnId,x):x)}for(let{def:w,cells:x}of a){let S=e.getCellValue(g,w.columnId);x.push({row:n?n(E.key,g):g,value:r?r(E.key,w.columnId,S):S})}}},finish(){let l={};for(let m of s)l[m]=null;for(let m of i)l[m.key]=Eu(m);for(let{def:m,cells:c}of a)l[nt(m.columnId,m.type)]=m.calculate(c);return l}}}var qn=(e,t)=>`${e}::${t}`;function wo(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)},s=(m,c,h,E)=>{let g=r[h],w=[],x=m;for(;x<c;){let S=t.getCellValue(e[x].data,g),M=S==null?"":String(S),N=x+1;for(;N<c&&a(N,g)===M;)N++;let O=E?`${E}|${qn(g,M)}`:qn(g,M),z={columnId:g,value:S,label:M,key:O,level:h,from:x,to:N,count:N-x,children:null};n&&n.length>0&&(z.aggregates=Fi(e,x,N,t,n)),i++,h+1<r.length&&(z.children=s(x,N,h+1,O)),w.push(z),x=N}return w},l=r.length===0?[]:s(0,e.length,0,"");return{levels:r,roots:l,totalGroupCount:i,nodes:e}}function yo(e,t){let{collapsedKeys:u,collapsedByDefault:r=!1}=t,n=[],i=0,a=s=>{for(let l of s){let m=r?!u.has(l.key):u.has(l.key),c={kind:"group",key:l.key,columnId:l.columnId,value:l.value,label:l.label,count:l.count,level:l.level,expanded:!m};if(l.aggregates&&(c.aggregates=l.aggregates),n.push(c),i++,!m)if(l.children)a(l.children);else for(let h=l.from;h<l.to;h++)n.push(e.nodes[h])}};return a(e.roots),{nodes:n,groupCount:i}}function Eo(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 lr(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 Ao(e,t){let u=new Map,r=new Map,n=new Set,i,a,s=!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)}s||(s=!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=bi(c)?c:t(c);if(u.has(h)){u.delete(h),r.delete(h);continue}r.delete(h),n.add(h)}}let l={};return u.size>0&&(l.add=[...u.values()],i!==void 0&&(l.addPosition=i),a!==void 0&&(l.addBeforeKey=a)),r.size>0&&(l.update=[...r.values()]),n.size>0&&(l.remove=[...n]),l}function bo(e){return!e.add?.length&&!e.update?.length&&!e.remove?.length}function kr(e){return e.nodes!==void 0}var Si="row",Rr="set",Pt="__default";function ue(e){return e==null}function Re(e){return e==null?"":String(e)}function He(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 gt(e,t){let u=He(e),r=He(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 _n=new WeakMap;function vo(e){let t=_n.get(e);if(!t){t=new Set;let u=Array.isArray(e.value)?e.value:[];for(let r of u){if(ue(r))continue;let n=He(r);typeof n=="number"&&Number.isNaN(n)||t.add(n)}_n.set(e,t)}return t}function Bi(e,t){switch(t.operator){case"isnull":return ue(e);case"isnotnull":return!ue(e);case"=":return ue(e)||ue(t.value)?ue(e)&&ue(t.value):He(e)===He(t.value);case"<>":return ue(e)||ue(t.value)?!(ue(e)&&ue(t.value)):He(e)!==He(t.value);case">":return!ue(e)&&gt(e,t.value)>0;case">=":return!ue(e)&&gt(e,t.value)>=0;case"<":return!ue(e)&&gt(e,t.value)<0;case"<=":return!ue(e)&&gt(e,t.value)<=0;case"contains":return Re(e).toLowerCase().includes(Re(t.value).toLowerCase());case"notcontains":return!Re(e).toLowerCase().includes(Re(t.value).toLowerCase());case"startswith":return Re(e).toLowerCase().startsWith(Re(t.value).toLowerCase());case"endswith":return Re(e).toLowerCase().endsWith(Re(t.value).toLowerCase());case"in":{if(ue(e))return!1;let u=He(e);return typeof u=="number"&&Number.isNaN(u)?!1:vo(t).has(u)}case"between":{if(!Array.isArray(t.value)||t.value.length<2||ue(e))return!1;let[u,r]=t.value;return gt(e,u)>=0&&gt(e,r)<=0}default:return!0}}function Er(e,t,u){if(kr(t))return t.nodes.length===0?!0:t.logic==="or"?t.nodes.some(n=>Er(e,n,u)):t.nodes.every(n=>Er(e,n,u));let r=u.getCellValue(e,t.columnId);return Bi(r,t)}function Ar(e){return(e??"").trim().toLowerCase()}function br(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 s of i)String(s.label).toLowerCase().includes(u)&&(a??=new Set).add(String(s.value));a&&(r??=new Map).set(n,a)}return r}function jn(e){if(!e||e.size===0)return;let t={};for(let[u,r]of e)t[u]=[...r];return t}function xo(e,t,u,r,n,i){let a=Ar(n),s=!!r,l=a.length>0,m=typeof i=="function";if(!s&&!l&&!m)return e.slice();let c=l?u.getOrder().filter(S=>u.getState(S)?.visible):[],h=l?br(u,c,a):null,E=h!==null,g=E?c.map(S=>h.get(S)??null):[],w=new Uint32Array(e.length),x=0;for(let S=0;S<e.length;S++){let M=e[S],N=t[M];if(!(s&&!Er(N,r,u))&&!(m&&!i(N))){if(l){let O=!1;for(let z=0;z<c.length;z++){let J=u.getCellValue(N,c[z]);if(ue(J))continue;let j=Re(J);if(j.toLowerCase().includes(a)){O=!0;break}if(E){let Q=g[z];if(Q!==null&&Q.has(j)){O=!0;break}}}if(!O)continue}w[x++]=M}}return x===w.length?w:w.slice(0,x)}var Do=Bi;function Fo(e){return e==="in"||e==="isnull"}function ki(e){if(!kr(e))return Fo(e.operator)?[e]:null;if(e.logic!=="or")return null;let t=[];for(let u of e.nodes){let r=ki(u);if(!r)return null;t.push(...r)}return t.length>0?t:null}function Ri(e,t){if(!e)return null;let u=ki(e);if(!u)return null;let r=[];for(let n of t)u.some(i=>Do(n.value,i))&&r.push(n.label);return r.length===t.length?null:r}function So(e){return e==null||e===""}function Bo(e,t,u){let r=[],n=-1,i,a,s=l=>{n>=0&&l-n>1&&r.push({start:n,end:l-1,length:l-n}),n=-1,a=void 0};for(let l=0;l<e.length;l++){let m=e[l];if(!m||m.kind!=="data"){s(l);continue}let c=m.data,h=t(c);if(So(h)){s(l);continue}n>=0&&a!==void 0&&(u?u({value:h,row:c},{value:i,row:a}):Object.is(h,i))||(s(l),n=l,i=h,a=c)}return s(e.length),r}function ko(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 Ni(e,t,u,r=Number.POSITIVE_INFINITY){let n=ko(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 Ti(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 Ro=30,Yn="Other",No=1e4;function Mi(e){return!e.series.some(t=>t.aggregate==="custom")}function To(e){return e==null?"":String(e)}var Ke=864e5,Mo=60,Io=20,pu=2e3,sr=["day","week","month","quarter","year"],Zn={day:Ke,week:7*Ke,month:30.44*Ke,quarter:91.31*Ke,year:365.25*Ke};function Jn(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*Ke}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 Qn(e,t){let u=new Date(e),r=u.getUTCFullYear(),n=u.getUTCMonth();switch(t){case"day":return e+Ke;case"week":return e+7*Ke;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 dr=e=>e<10?`0${e}`:String(e);function Lo(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}-${dr(u.getUTCMonth()+1)}`;default:return`${r}-${dr(u.getUTCMonth()+1)}-${dr(u.getUTCDate())}`}}function Po(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 Go(e,t,u){let r=Number.isFinite(t)&&Number.isFinite(u)?Math.max(0,u-t):0;if(e.kind==="date"){let s=e.unit??"auto",l,m=!1;if(s==="auto")l=sr.find(c=>r/Zn[c]+1<=Mo)??"year";else for(l=s;r/Zn[l]+1>pu;){let c=sr[sr.indexOf(l)+1];if(!c)break;l=c,m=!0}return{info:{kind:"date",unit:l,adjusted:m},keyOf:c=>Number.isFinite(c)?Jn(c,l):Number.NaN,endOf:c=>Qn(c,l),labelOf:c=>Lo(c,l),keys:(c,h)=>{let E=[];if(!Number.isFinite(c)||!Number.isFinite(h))return E;for(let g=Jn(c,l);g<=h&&E.length<pu;g=Qn(g,l))E.push(g);return E}}}let n=e.size&&e.size>0?e.size:Po(r/Math.max(1,e.bins??Io));(!(n>0)||!Number.isFinite(n))&&(n=1);let i=!1;for(;r/n+1>pu;)n*=2,i=!0;let a=n;return{info:{kind:"number",size:a,adjusted:i},keyOf:s=>Number.isFinite(s)?Math.floor(s/a)*a:Number.NaN,endOf:s=>s+a,labelOf:s=>{let l=m=>String(Number(m.toPrecision(12)));return`${l(s)} \u2013 ${l(s+a)}`},keys:(s,l)=>{let m=[];if(!Number.isFinite(s)||!Number.isFinite(l))return m;let c=Math.floor(s/a)*a;for(let h=c;h<=l&&m.length<pu;h+=a)m.push(h);return m}}}function Xn(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 cr(e,t,u,r={}){let n=Math.max(1,u.maxCategories??Ro),i=u.otherBucket!==!1,a=r.effectiveValue,s=u.series.map(V=>t.getDataType(V.columnId)),l=u.series.some(V=>V.aggregate==="custom"),m=new Map,c=null,h=0,E=0,g=!1,w=(V,H=Number.NaN)=>({label:V,accs:u.series.map((Z,_)=>Br(Z.columnId,Z.aggregate,s[_],`${_}`)),seq:E++,start:H}),x=u.categoryBucket,S=null,M=Number.POSITIVE_INFINITY,N=Number.NEGATIVE_INFINITY;if(x){for(let V=0;V<e.length;V++){let H=e[V];if(!H||!rt(H))continue;let Z=t.getCellValue(H.data,u.categoryColumnId),_=Xn(a?a(H.key,u.categoryColumnId,Z):Z,x.kind);Number.isFinite(_)&&(_<M&&(M=_),_>N&&(N=_))}S=Go(x,M,N)}let O=l?new Map:null;for(let V=0;V<e.length;V++){let H=e[V];if(!H||!rt(H))continue;h++;let Z=t.getCellValue(H.data,u.categoryColumnId),_=a?a(H.key,u.categoryColumnId,Z):Z,be,We,Ee=Number.NaN;S&&x?(Ee=S.keyOf(Xn(_,x.kind)),be=Number.isNaN(Ee)?"":Ee,We=Number.isNaN(Ee)?"":S.labelOf(Ee)):be=We=To(_);let ge=m.get(be);ge||(m.size>=No?(g=!0,c??=w(u.otherLabel??Yn),ge=c):(ge=w(We,Ee),m.set(be,ge)));for(let oe=0;oe<u.series.length;oe++){let re=u.series[oe];if(re.aggregate==="custom")continue;let te=t.getCellValue(H.data,re.columnId);yu(ge.accs[oe],a?a(H.key,re.columnId,te):te)}if(O){let oe=O.get(ge.label);oe||(oe=u.series.map(()=>[]),O.set(ge.label,oe));for(let re=0;re<u.series.length;re++){let te=u.series[re];if(te.aggregate!=="custom")continue;let Ue=t.getCellValue(H.data,te.columnId);oe[re].push({row:r.effectiveRow?r.effectiveRow(H.key,H.data):H.data,value:a?a(H.key,te.columnId,Ue):Ue})}}}let z=[...m.values()],J=z.length+(c?1:0),j=V=>(u.series.length>0?Eu(V.accs[0]):null)??Number.NEGATIVE_INFINITY,Q,ot;if(S){Q=S.keys(M,N).map(H=>m.get(H)??w(S.labelOf(H),H));let V=m.get("");V&&Q.push(V),ot=null}else{let V=z;if(z.length>n){let H=[...z].sort((Z,_)=>j(_)-j(Z));if(V=H.slice(0,n),i){c??=w(u.otherLabel??Yn);for(let Z of H.slice(n))for(let _=0;_<u.series.length;_++)go(c.accs[_],Z.accs[_])}}switch(u.categoryOrder??"value-desc"){case"category-asc":V=[...V].sort((H,Z)=>H.label.localeCompare(Z.label));break;case"first-seen":V=[...V].sort((H,Z)=>H.seq-Z.seq);break;default:V=[...V].sort((H,Z)=>j(Z)-j(H))}Q=c?[...V,c]:V,ot=c?Q.length-1:null}let ku=Q.map(V=>V.label),yt=u.series.map((V,H)=>{let Z=new Float64Array(Q.length);for(let _=0;_<Q.length;_++){let be;if(V.aggregate==="custom"){let We=O?.get(Q[_].label)?.[H]??[];be=V.calculate?V.calculate(We):null}else be=Eu(Q[_].accs[H]);Z[_]=be??Number.NaN}return{label:V.label??t.getDef(V.columnId)?.headerName??V.columnId,columnId:V.columnId,aggregate:V.aggregate,values:Z}});return{categories:ku,series:yt,truncated:S?!1:z.length>n||g,otherIndex:ot,rowCount:h,categoryCount:S?Q.length:J,rankingExact:!g,...Oo(S,Q)}}function Oo(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 Vo(e){if(typeof e=="function")return e;let t=e;return u=>u[t]}function ze(e,t,u){return{kind:"data",key:t,sourceIndex:u,data:e}}var Ii=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],s=r[a];if(s===void 0){let l=t[a];s=ze(l,u(l),a),r[a]=s}n[i]=s}return n}},Ho="\0nil";function Ko(e){return e.map(t=>t==null?Ho:String(t)).join("")}function ei(){return{key:"",path:[],level:-1,label:"",value:null,count:0,expanded:!0,childCount:0,childCountKnown:!1,blocks:new Map}}function zo(e,t,u){return e.blocks.get(Math.floor(t/u))?.[t%u]}function Au(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&&Lt(a)&&a.expanded&&(n+=Au(a,t,u));return u?.set(e,n),n}function Lt(e){return e.kind!=="data"}function ti(e,t){let{blockSize:u,columnIds:r}=t,n=new Map,i=Au(e,u,n),a=t.range?Math.max(0,t.range.start):0,s=t.range?Math.min(i,t.range.end):i,l=new Array(i),m=[],c=new Set,h=0,E=g=>{if(!g.childCountKnown){h>=a&&h<s&&!c.has(`${g.key}@0`)&&(c.add(`${g.key}@0`),m.push({nodeKey:g.key,path:g.path,childIndex:0})),h++;return}for(let w=0;w<g.childCount;w++){if(h>=s)return;let x=zo(g,w,u);if(x===void 0){if(h>=a){let S=`${g.key}@${Math.floor(w/u)}`;c.has(S)||(c.add(S),m.push({nodeKey:g.key,path:g.path,childIndex:w}))}h++;continue}if(!Lt(x)){h>=a&&(l[h]=x),h++;continue}if(h>=a){let S={kind:"group",key:x.key,columnId:r[x.level]??"",value:x.value,label:x.label,count:x.count,level:x.level,expanded:x.expanded,...x.aggregates?{aggregates:x.aggregates}:{}};l[h]=S}if(h++,x.expanded){let S=Au(x,u,n);h+S<=a?h+=S:E(x)}}};return E(e),{nodes:l,pending:m}}var Wo=class extends Error{constructor(){super("[datagrid] export cancelled"),this.name="ExportCancelled"}},Uo=100,$o=100;function qo(e,t){return JSON.stringify({sort:e.sort,filter:e.filter,searchText:e.searchText,group:t,summaries:e.summaries})}var ui=class{mode="remote";source;keyGetter;blockSize;maxBlocks;group;groupColumnIds;root=ei();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??Uo),this.maxBlocks=Math.max(1,t.maxBlocks??$o),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&&Lt(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&&Lt(r)){let n=this.findNode(e,r);if(n)return n}return null}resetTree(){this.root=ei()}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 Wo;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(ze(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 s=i[a];if(!s)continue;let l=t.get(s.key);l!==void 0&&(i[a]=ze(l,s.key,s.sourceIndex),u++)}};for(let i of this.blocks.values())r(i.nodes);let n=i=>{for(let a of i.blocks.values())for(let s=0;s<a.length;s++){let l=a[s];if(!l)continue;if(Lt(l)){n(l);continue}let m=t.get(l.key);m!==void 0&&(a[s]=ze(m,l.key,l.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,s=u.call(this.source,{columnId:e,limit:t}).then(l=>(!this.disposed&&a===this.generation&&this.distinctCache.set(r,l),l)).catch(l=>(this.onError?.(l),this.debugMode&&console.error("[datagrid] loadDistinctValues failed",l),[])).finally(()=>{this.distinctInFlight.delete(r)});return this.distinctInFlight.set(r,s),s}async getRows(e,t){let u=qo(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 s=n;s<=i;s++)this.blocks.has(s)?this.blocks.get(s).touched=++this.clock:a.push(s);return a.length>0&&await Promise.all(a.map(s=>this.fetchBlock(s,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}=ti(this.root,{blockSize:this.blockSize,columnIds:this.groupColumnIds,range:t});if(a.length===0)break;await Promise.all(a.map(s=>{let l=this.findNode(s.nodeKey);return l?this.loadChildren(l,s.childIndex,e):Promise.resolve()}))}let{nodes:r}=ti(this.root,{blockSize:this.blockSize,columnIds:this.groupColumnIds,range:t}),n=Au(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 s=await this.source.load(a);if(this.disposed||r!==this.generation)return;s.summaries&&(this.summaries=s.summaries);let l=t*this.blockSize,m=i?s.rows.map((c,h)=>ze(c,this.keyGetter(c),l+h)):(s.groups??[]).map(c=>{let h=[...e.path,c.value],E=Ko(h);return{key:E,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(E),childCount:0,childCountKnown:!1,blocks:new Map}});e.blocks.set(t,m),e.childCount=s.totalCount,e.childCountKnown=!0,e===this.root&&(this.totalCount=s.totalCount,this.countKnown=!0)}catch(s){this.debugMode&&console.error("[datagrid] remote group load failed",e.key,s),this.onError?.(s)}}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((s,l)=>ze(s,this.keyGetter(s),i+l));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 _o=e=>`__detail__${String(e)}`;function jo(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),s=0;for(let l of e)a[s++]=l,!(l.kind!=="data"||!(r?!u.has(l.key):u.has(l.key)))&&(a[s++]={kind:"detail",key:_o(l.key),parentKey:l.key,data:l.data,height:n});return a.length=s,a}var ri=e=>e===null?"__editform__new":`__editform__${String(e)}`;function Yo(e,t){let{rowKey:u,atTop:r=!1}=t;if(u===null)return e;let n=Math.max(1,t.height),i=e.findIndex(l=>l.kind==="data"&&l.key===u);if(r)return[{kind:"editform",key:ri(u),parentKey:u,data:i<0?void 0:e[i].data,height:n},...e];if(i<0)return e;let a={kind:"editform",key:ri(u),parentKey:u,data:e[i].data,height:n},s=new Array(e.length+1);for(let l=0;l<=i;l++)s[l]=e[l];s[i+1]=a;for(let l=i+1;l<e.length;l++)s[l+1]=e[l];return s}var Zo=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=ni(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=ni(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=Jo(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 ni(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 Jo(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 Qo=[{token:"yyyy",kind:"year"},{token:"yy",kind:"year"},{token:"MM",kind:"month"},{token:"dd",kind:"day"}];function Xo(e){let t=[],u="",r=0;for(;r<e.length;){let n=Qo.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 el(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}function Li(e,t){let u=el(e);if(!u)return"";let r=(n,i)=>String(n).padStart(i,"0");return Xo(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("")}var tl=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 hr=["tr","en","de","fr","es","it","pt","ru","ar","zh-CN","ja","ko"];function ul(e){if(!e)return;if(hr.includes(e))return e;let t=e.toLowerCase(),u=hr.find(n=>n.toLowerCase()===t);if(u)return u;if(t.startsWith("zh"))return"zh-CN";let r=t.split("-")[0];return hr.find(n=>n.toLowerCase()===r)}function rl(e,t,u,r){let n=ul(u),i=n?e[n]:void 0;return!i&&!r?t:{...t,...i,...r}}var Pi={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"},nl={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"},il={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"},al={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"},ol={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"},ll={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"},sl={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"},dl={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"},cl={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"},hl={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"},pl={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"},ml={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"};function ft(e,t){let u=e;for(let[r,n]of Object.entries(t))u=u.replace(`{${r}}`,String(n));return u}var gl={tr:nl,en:Pi,de:il,fr:al,es:ol,it:ll,pt:sl,ru:dl,ar:cl,"zh-CN":hl,ja:pl,ko:ml};function Ot(e,t){return rl(gl,Pi,e,t)}function bu(e,t,u){let r=Gt(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 fl(e,t,u,r){let n=u.getCellValue(e.data,t);return r?{text:n==null?"":String(n),value:n}:{text:bu(u.getDef(t),n,e.data),value:n}}function Cl({nodes:e,columns:t,options:u,isSelected:r,selectionCount:n=0,summaries:i}){let a=t.runtime(),s=(u.columnIds??a.map(g=>g.state.id)).map(g=>{let w=t.getDef(g),x=t.getState(g),S=w?.dataType==="number";return{id:g,header:w?.headerName??w?.field??g,width:Math.max(8,Math.round((x?.width??100)/7)),isNumeric:S,align:w?.align??(S?"right":"left"),numFmt:w?.excelFormat??wl(w?.dataType)}}),l=!!u.selectedOnly&&n>0&&!!r,m=u.includeGroups!==!1,c=!!u.raw,h=[];for(let g of e)if(g){if(no(g)){if(!m||l)continue;let w=s.map((x,S)=>S===0?{text:`${g.label===""?"(Blanks)":g.label} (${g.count})`,value:g.label}:{text:"",value:null});h.push({kind:"group",cells:w,level:g.level});continue}rt(g)&&(l&&!r(g.key)||h.push({kind:"data",cells:s.map(w=>fl(g,w.id,t,c)),level:0}))}let E;return i&&i.defs.length>0&&(E=s.map(g=>{let w=i.defs.find(S=>S.columnId===g.id);if(!w)return null;let x=i.values[`${w.columnId}:${w.type}`]??null;return{text:w.valueFormatter?w.valueFormatter(x):x==null?"":String(x),value:x}})),{columns:s,rows:h,totals:E}}function wl(e){if(e==="number")return"#,##0.###";if(e==="date")return"yyyy-mm-dd"}var it=class extends Error{constructor(){super("Export aborted"),this.name="ExportAbortedError"}},yl="\uFEFF";function ii(e,t){return e.includes(t)||e.includes('"')||e.includes(`
2
+ `)||e.includes("\r")||e!==e.trim()?`"${e.replace(/"/g,'""')}"`:e}async function El(e,t={}){let u=t.delimiter??",",r=t.newline??`\r
3
+ `,n=[];t.includeHeaders!==!1&&n.push(e.columns.map(s=>ii(s.header,u)).join(u));let i=e.rows.length;for(let s=0;s<i;s++){if(t.signal?.aborted)throw new it;let l=e.rows[s];n.push(l.cells.map(m=>ii(m.text,u)).join(u)),(s+1)%5e3===0&&(t.onProgress?.((s+1)/i),await new Promise(m=>setTimeout(m,0)))}t.onProgress?.(1);let a=n.join(r);return t.bom===!1?a:yl+a}async function Al(e,t={}){let u=await El(e,t);return new Blob([u],{type:"text/csv;charset=utf-8;"})}var bl="application/vnd.openxmlformats-officedocument.spreadsheetml.sheet",ai="FFF1F5F9",vl="FFFAFAFA",oi="FFE2E8F0";async function xl(){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] the "exceljs" package loaded but exposes no Workbook \u2014 the installed version is not one this writer understands.');return u}function Gi(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 Dl(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 Oi(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 It(e,t,u,r,n){let i=t.customizeCell;i&&e.eachCell((a,s)=>{let l=r?.columns[s-1],m=i({kind:u,columnId:l?.id??null,value:a.value,text:a.value==null?"":String(a.value),rowNumber:e.number,colNumber:s,rowIndex:n});Oi(a,m)})}function vu(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=>Oi(a,n.style)),n.merge&&u>1&&e.mergeCells(`A${i.number}:${Dl(u)}${i.number}`),It(i,r,"band",null,-1)}}async function li(e,t,u,r,n){let i=null;if(r&&t.columns.length>0){let h=e.addRow(t.columns.map(E=>E.header));h.font={bold:!0},h.fill={type:"pattern",pattern:"solid",fgColor:{argb:ai}},n&&(h.alignment={horizontal:"left",vertical:"middle"},h.border={bottom:{style:"thin",color:{argb:oi}}}),It(h,u,"header",t,-1),i=h.number}let a=t.rows.length,s=i===null?0:i+1,l=i??0,m=0,c=-1;for(let h=0;h<a;h++){if(u.signal?.aborted)throw new it;let E=t.rows[h],g=E.cells.map(x=>u.raw||typeof x.value=="number"||x.value instanceof Date?x.value:x.text),w=e.addRow(g);h===0&&(s=w.number),l=w.number,E.kind==="group"?(c=E.level,w.font={bold:!0},w.getCell(1).alignment={indent:E.level,horizontal:"left"},n&&(w.fill={type:"pattern",pattern:"solid",fgColor:{argb:ai}},w.outlineLevel=E.level),m=0,It(w,u,"group",t,h)):(n&&(c>=0&&(w.outlineLevel=c+1),m%2===1&&(w.fill={type:"pattern",pattern:"solid",fgColor:{argb:vl}})),m++,It(w,u,"data",t,h)),(h+1)%5e3===0&&(u.onProgress?.((h+1)/a),await new Promise(x=>setTimeout(x,0)))}if(n&&u.totalsRow!==!1&&t.totals){let h=e.addRow(t.totals.map(E=>E==null?"":typeof E.value=="number"?E.value:E.text));h.font={bold:!0},h.border={top:{style:"double",color:{argb:oi}}},It(h,u,"totals",t,-1),l=h.number}return{headerRow:i,firstDataRow:s,lastRow:l}}function Fl(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 Sl(e,t={}){let u=await xl(),r=t.styled===!0,n=t.includeHeaders!==!1,i=new u.Workbook,a=h=>i.addWorksheet(h),s=a(t.sheetName??"Data");r&&(s.properties.outlineProperties={summaryBelow:!1,summaryRight:!1}),Gi(s,e,r),Fl(i,s,t.images),vu(s,t.headerBlock,e.columns.length,t);let l=await li(s,e,t,n,r);t.onProgress?.(1),t.autoFilter!==!1&&l.headerRow!==null&&e.columns.length>0&&(s.autoFilter={from:{row:l.headerRow,column:1},to:{row:l.headerRow,column:e.columns.length}}),t.freezeHeader!==!1&&l.headerRow!==null&&(s.views=[{state:"frozen",ySplit:l.headerRow}]);let m=s;for(let h of t.additionalGrids??[])m=Bl(a,m,h,t,r),await li(m,h.model,t,h.includeHeaders!==!1,r);vu(s,t.footerBlock,e.columns.length,t);let c=await i.xlsx.writeBuffer();return new Blob([c],{type:bl})}function Bl(e,t,u,r,n){if(u.sheetName){let a=e(u.sheetName);return Gi(a,u.model,n),u.title&&vu(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&&vu(t,[{cells:[u.title],merge:!0,style:{font:{bold:!0,size:13}}}],u.model.columns.length,r),t}var kl="application/pdf",pr=[241,245,249],Rl=[250,250,250],Se=[30,41,59];async function Nl(){try{let[e,t]=await Promise.all([import("jspdf"),import("jspdf-autotable")]);return{jsPDF:e.jsPDF??e.default,autoTable:t.default??t}}catch{throw new Error('[datagrid] PDF export needs "jspdf" and "jspdf-autotable". Install them with: npm i jspdf jspdf-autotable')}}function vr(e,t,u,r){if(!t?.length)return u;let n=e.internal.pageSize.getWidth(),i=u;for(let a of t){let s=a.fontSize??10;e.setFontSize(s),e.setFont("helvetica",a.fontStyle??"normal");let l=a.color??Se;e.setTextColor(l[0],l[1],l[2]);let m=a.align??"left",c=m==="center"?n/2:m==="right"?n-r:r;i+=s*.353,e.text(a.text,c,i,{align:m}),i+=a.spacing??2}return e.setTextColor(Se[0],Se[1],Se[2]),i}function Tl(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 Nr(e,t,u,r,n,i,a){let s=r.styled!==!1,l=r.margin??14,m=a?.from??0,c=a?.to??u.rows.length,h=u.rows.slice(m,c).map(g=>g.cells.map(w=>w.text)),E=s&&r.totalsRow!==!1&&u.totals&&(!a||a.withTotals)?[u.totals.map(g=>g?.text??"")]:void 0;return t(e,{startY:n,margin:{left:l,right:l},head:i&&u.columns.length>0?[u.columns.map(g=>g.header)]:void 0,body:h,foot:E,theme:s?"grid":"plain",showHead:r.repeatHeaders===!1?"firstPage":"everyPage",showFoot:E?"lastPage":"never",styles:{fontSize:8,cellPadding:2,textColor:Se},headStyles:{fillColor:pr,textColor:Se,fontStyle:"bold"},footStyles:{fillColor:pr,textColor:Se,fontStyle:"bold"},alternateRowStyles:s?{fillColor:Rl}:void 0,columnStyles:s?Object.fromEntries(u.columns.map((g,w)=>[w,{halign:g.align}])):void 0,didParseCell:g=>{let w,x=-1;g.section==="head"?w="header":g.section==="foot"?w="totals":(x=m+g.row.index,w=u.rows[x]?.kind==="group"?"group":"data"),w==="group"&&(g.cell.styles.fontStyle="bold",g.cell.styles.fillColor=pr,g.column.index===0&&(g.cell.styles.cellPadding={top:2,right:2,bottom:2,left:2+(u.rows[x]?.level??0)*4}));let S=r.customizeCell;if(!S)return;let M=u.columns[g.column.index],N=x>=0?u.rows[x]?.cells[g.column.index]:void 0;Tl(g.cell,S({kind:w,columnId:M?.id??null,text:Array.isArray(g.cell.text)?g.cell.text.join(" "):String(g.cell.text),value:N?.value,rowIndex:x,columnIndex:g.column.index}))}}),e.lastAutoTable?.finalY??n}function Ml(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 Il(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 s=1;s<=n;s++){e.setPage(s),e.setFontSize(8),e.setFont("helvetica","normal"),e.setTextColor(148,163,184);let l=typeof u=="function"?u(s,n):`${s} / ${n}`;e.text(l,i-r,a-8,{align:"right"})}e.setTextColor(Se[0],Se[1],Se[2])}var Ll=400,Pl=1e3;async function Gl(e,t,u,r,n,i,a){let s=u.rows.length,l=Math.max(1,r.sliceRows||Pl),m=n,c=0;for(;c<s;){if(r.signal?.aborted)throw new it;let h=Math.min(s,c+l);c>0&&e.addPage(),m=Nr(e,t,u,r,c===0?n:a,i,{from:c,to:h,withTotals:h>=s}),c=h,r.onProgress?.(c/s),c<s&&await new Promise(E=>setTimeout(E,0))}return m}async function Ol(e,t={}){if(t.signal?.aborted)throw new it;let{jsPDF:u,autoTable:r}=await Nl(),n=t.margin??14,i=new u({orientation:t.orientation??"landscape",unit:"mm",format:t.pageSize??"a4"});Ml(i,t.images);let a=n;a=vr(i,t.headerBlock,a,n),a=t.sliceRows!==0&&e.rows.length>Ll?await Gl(i,r,e,t,a+2,t.includeHeaders!==!1,n):Nr(i,r,e,t,a+2,t.includeHeaders!==!1);for(let l of t.additionalGrids??[]){if(t.signal?.aborted)throw new it;a=Vl(i,r,l,t,a,n)}if(t.onProgress?.(1),t.footerBlock?.length){let l=t.footerBlock.reduce((m,c)=>m+(c.fontSize??10)*.353+(c.spacing??2),4);a+l>i.internal.pageSize.getHeight()-n&&(i.addPage(),a=n),vr(i,t.footerBlock,a+4,n)}Il(i,t);let s=i.output("arraybuffer");return new Blob([s],{type:kl})}function Vl(e,t,u,r,n,i){let a=n;return u.pageBreak?(e.addPage(),a=i):a+=8,u.title&&(a=vr(e,[{text:u.title,fontSize:12,fontStyle:"bold"}],a,i)),Nr(e,t,u.model,r,a+2,u.includeHeaders!==!1)}function Vi(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 Tr(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 Hl=Tr(Ot("en"));function Hi(e,t,u={}){if(!e)return null;let r={...Hl,...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=Gt(t.getDef(m),c);return h!==null?h:c instanceof Date?c.toLocaleDateString():String(c)},s=(m,c)=>{if(kr(m)){let g=m.nodes.map(x=>s(x,c+1)).filter(Boolean);if(g.length===0)return"";let w=g.join(` ${r[m.logic]} `);return c>0&&g.length>1?`(${w})`:w}let h=i(m.columnId),E=r[m.operator];switch(m.operator){case"isnull":case"isnotnull":return`${h} ${E}`;case"in":{let g=Array.isArray(m.value)?m.value:[m.value];return g.length>n?`${h} ${E} ${r.ofN.replace("{n}",String(g.length))}`:`${h} ${E} ${g.map(w=>a(m.columnId,w)).join(r.listSeparator)}`}case"between":{let[g,w]=Array.isArray(m.value)?m.value:[void 0,void 0];return`${h} ${E} ${a(m.columnId,g)} \u2013 ${a(m.columnId,w)}`}default:return`${h} ${E} ${a(m.columnId,m.value)}`}},l=s(e,0);return l===""?null:l}function Kl(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 s;if(u===null)s=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};s=r==="before"?c:c+1}if(s>a&&(s-=1),s===a)return{rows:i,moved:!1,fromIndex:a,toIndex:a};let l=i.slice(),[m]=l.splice(a,1);return l.splice(s,0,m),{rows:l,moved:!0,fromIndex:a,toIndex:s}}var zl=["columnStateChanged","sortChanged","filterChanged","groupChanged"];function si(e){try{return globalThis[e]??null}catch{return null}}function Ki(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=si(r);if(h){let E=null,g=!0;try{E=h.getItem(u)}catch{g=!1}if(g&&E)try{a(JSON.parse(E))}catch{try{h.removeItem(u)}catch{}}}}let s,l=()=>{let h=e.getViewState();if(r==="custom"){try{Promise.resolve(t.customSave?.(h)).catch(()=>{})}catch{}return}let E=si(r);if(E)try{E.setItem(u,JSON.stringify(h))}catch{}},m=()=>{s!==void 0&&clearTimeout(s),s=setTimeout(l,n)},c=zl.map(h=>e.events.on(h,m));return()=>{i=!0,c.forEach(h=>h()),s!==void 0&&(clearTimeout(s),s=void 0,l())}}var di=150,mu=40;function Wl(e,t){return e.id?e.id:e.field?e.field:`col_${t}`}function Nt(e,t,u){let r=Math.max(e,t);return u!=null&&(r=Math.min(r,u)),r}var Ul=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},s=Wl(a,i);if(r.has(s)){let l=`[datagrid] duplicate column id "${s}" \u2014 set an explicit \`id\` on one of the columns.`;this.options.debugMode?console.error(l):console.warn(l)}return r.add(s),a.id=s,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 s=n.minWidth??mu,l=t.get(a),m=u.get(a),c=h=>m!==void 0&&l!==void 0&&l[h]===n[h];this.states.set(a,{id:a,width:c("width")?Nt(m.width,s,n.maxWidth):Nt(n.width??di,s,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??mu;u.width=Nt(e.width??di,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||oo(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(Mt(e))}setBandCollapsed(e,t){if(e.length===0)return!1;let u=Mt(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=Mt(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 s=Ne(i);s.length<e.length||Mt(s.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=Nt(t,r.minWidth??mu,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=Nt(n.width,i.minWidth??mu,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 xu(e){return e==null||typeof e=="number"&&Number.isNaN(e)}function zi(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 Wi(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 Ui(e,t,u,r=!1){let n=e.length,i=t.getDataType(u),a=r?h=>t.getSortValue(h,u):h=>t.getCellValue(h,u),s=0;if(i==="number"||i==="boolean"||i==="date"){let h=new Float64Array(n),E=i==="date"?Wi:zi,g=[],w=new Map,x=new Int32Array(n),S=!0;return{total:n,get done(){return s},step(M){let N=Math.min(n,s+M);for(;s<N;s++){let O=a(e[s]);if(xu(O)){h[s]=Number.NaN,x[s]=-1;continue}h[s]=E(O),typeof O!="number"&&(S=!1);let z=String(O),J=w.get(z);J===void 0&&(J=g.length,g.push(z),w.set(z,J)),x[s]=J}return s<n},finish(){return S?{kind:"numeric",values:h}:{kind:"numeric",values:h,searchCodes:x,searchDictionary:g}}}}let l=new Int32Array(n),m=[],c=new Map;return{total:n,get done(){return s},step(h){let E=Math.min(n,s+h);for(;s<E;s++){let g=a(e[s]);if(xu(g)){l[s]=-1;continue}let w=String(g),x=c.get(w);x===void 0&&(x=m.length,m.push(w),c.set(w,x)),l[s]=x}return s<n},finish(){return{kind:"text",codes:l,dictionary:m}}}}function $l(e,t,u,r=!1){let n=Ui(e,t,u,r);return n.step(n.total),n.finish()}var ci=new WeakMap;function ql(e){let t=ci.get(e);if(t!==void 0)return t;let u=_l(e);return ci.set(e,u),u}function _l(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 hi(e){for(let t=0;t<e.length;t++){let u=e.charCodeAt(t);if(u<32||u>126)return!1}return!0}function jl(e,t){let u=0,r=0,n=e.length,i=t.length;for(;u<n&&r<i;){let a=e.charCodeAt(u),s=t.charCodeAt(r),l=a>=48&&a<=57,m=s>=48&&s<=57;if(l!==m)return!0;if(l){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 E=u-c;if(E!==r-h)return!0;for(let g=0;g<E;g++)if(e.charCodeAt(c+g)!==t.charCodeAt(h+g))return!0}else{if(a>=65&&a<=90&&(a+=32),s>=65&&s<=90&&(s+=32),a!==s)return!0;u++,r++}}return u!==n||r!==i}function Yl(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=ql(t)?new Uint8Array(u):null,a=r[0],s=i?hi(e[a])?1:2:0;i&&(i[a]=s);let l=0;n[a]=0;for(let m=1;m<u;m++){let c=r[m],h=e[a],E=e[c],g=0;i&&(g=i[c],g===0&&(g=hi(E)?1:2,i[c]=g)),(s===1&&g===1&&jl(h,E)||t.compare(h,E)!==0)&&l++,n[c]=l,a=c,s=g}return n}function Zl(e,t,u){let r=e.length,n=new Uint32Array(r),i=new Uint32Array(r),a=0,s=0;for(let S=0;S<r;S++){let M=e[S];Number.isNaN(t[M])?i[s++]=M:n[a++]=M}let l=new Uint32Array(a),m=new Uint32Array(a),c=new Float64Array(1),h=new Uint32Array(c.buffer);for(let S=0;S<a;S++){let M=t[n[S]];c[0]=M===0?0:M;let N=h[0],O=h[1];O&2147483648?(N=~N>>>0,O=~O>>>0):O=(O^2147483648)>>>0,u&&(N=~N>>>0,O=~O>>>0),l[S]=N,m[S]=O}let E=new Uint32Array(a);for(let S=0;S<a;S++)E[S]=S;let g=new Uint32Array(a),w=new Uint32Array(256);for(let S=0;S<8;S++){let M=S>=4,N=(S&3)*8,O=M?m:l;w.fill(0);for(let j=0;j<a;j++)w[O[E[j]]>>>N&255]++;if(w[O[E[0]]>>>N&255]===a)continue;let z=0;for(let j=0;j<256;j++){let Q=w[j];w[j]=z,z+=Q}for(let j=0;j<a;j++){let Q=E[j];g[w[O[Q]>>>N&255]++]=Q}let J=E;E=g,g=J}let x=new Uint32Array(r);for(let S=0;S<a;S++)x[S]=n[E[S]];for(let S=0;S<s;S++)x[a+S]=i[S];return x}var pi=new Map;function Jl(e){let t=pi.get(e);return t||(t=new Intl.Collator(e,{numeric:!0,sensitivity:"base"}),pi.set(e,t)),t}function mi(e){return e==null||typeof e=="number"&&Number.isNaN(e)}function Ql(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 Xl(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 es(e,t){for(let u of t)if(e.getDef(u.columnId)?.comparator)return!0;return!1}function ts(e,t,u,r){let n=e.length,i=r.columnId,a=r.direction==="desc"?-1:1,s=u.getDataType(i),l=u.getDef(i)?.comparator;if(l){let h=new Array(n),E=new Array(n);for(let g=0;g<n;g++){let w=t[e[g]];h[g]=u.getSortValue(w,i),E[g]=w}return{dir:a,numeric:null,strings:null,values:h,valueRows:E,comparator:l}}if(s==="string"||s==="lookup"){let h=new Array(n);for(let E=0;E<n;E++){let g=u.getSortValue(t[e[E]],i);h[E]=mi(g)?null:String(g)}return{dir:a,numeric:null,strings:h,values:null,valueRows:null,comparator:null}}let m=new Float64Array(n),c=s==="date"?Xl:Ql;for(let h=0;h<n;h++){let E=u.getSortValue(t[e[h]],i);m[h]=mi(E)?Number.NaN:c(E)}return{dir:a,numeric:m,strings:null,values:null,valueRows:null,comparator:null}}function us(e,t){let u=e.length,r=[],n=new Map,i=new Int32Array(u);for(let l=0;l<u;l++){let m=e[l];if(m===null){i[l]=-1;continue}let c=n.get(m);c===void 0&&(c=r.length,r.push(m),n.set(m,c)),i[l]=c}let a=Yl(r,t),s=new Float64Array(u);for(let l=0;l<u;l++)s[l]=i[l]===-1?Number.NaN:a[i[l]];return s}function rs(e,t,u,r,n={}){if(r.length===0)return e.slice();let i=Jl(n.locale??"en"),a=r.map(h=>ts(e,t,u,h)),s=a.length,l=new Array(e.length),m=!0;for(let h=0;h<e.length;h++)l[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(w=>w.numeric?w.numeric:us(w.strings,i)),E=Uint32Array.from(l);for(let w=s-1;w>=0;w--)E=Zl(E,h[w],a[w].dir===-1);let g=new Uint32Array(e.length);for(let w=0;w<E.length;w++)g[w]=e[E[w]];return g}l.sort((h,E)=>{for(let g=0;g<s;g++){let w=a[g];if(w.comparator){let x=w.values,S=w.valueRows,M=w.comparator(x[h],x[E],S[h],S[E],w.dir===-1);if(M!==0)return M*w.dir}else if(w.numeric){let x=w.numeric[h],S=w.numeric[E],M=Number.isNaN(x),N=Number.isNaN(S);if(M||N){if(M&&N)continue;return M?1:-1}if(x!==S)return(x<S?-1:1)*w.dir}else{let x=w.strings[h],S=w.strings[E];if(x===null||S===null){if(x===null&&S===null)continue;return x===null?1:-1}let M=i.compare(x,S);if(M!==0)return M*w.dir}}return e[h]-e[E]});let c=new Uint32Array(e.length);for(let h=0;h<l.length;h++)c[h]=e[l[h]];return c}var ns=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 Ii}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=xo(r,this.rows,e,t.filter,t.searchText,t.externalFilter),i=rs(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)}},$i='var ie=new WeakMap;function Se(e){let t=ie.get(e);if(t!==void 0)return t;let n=Fe(e);return ie.set(e,n),n}function Fe(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 ue(e){for(let t=0;t<e.length;t++){let n=e.charCodeAt(t);if(n<32||n>126)return false}return true}function De(e,t){let n=0,r=0,o=e.length,c=t.length;for(;n<o&&r<c;){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<c&&t.charCodeAt(r)===48;)r++;let g=n,b=r;for(;n<o;){let k=e.charCodeAt(n);if(k<48||k>57)break;n++;}for(;r<c;){let k=t.charCodeAt(r);if(k<48||k>57)break;r++;}let p=n-g;if(p!==r-b)return true;for(let k=0;k<p;k++)if(e.charCodeAt(g+k)!==t.charCodeAt(b+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!==c}function ce(e,t){let n=e.length,r=new Array(n);for(let g=0;g<n;g++)r[g]=g;r.sort((g,b)=>t.compare(e[g],e[b]));let o=new Int32Array(n);if(n===0)return o;let s=Se(t)?new Uint8Array(n):null,f=r[0],a=s?ue(e[f])?1:2:0;s&&(s[f]=a);let d=0;o[f]=0;for(let g=1;g<n;g++){let b=r[g],p=e[f],k=e[b],m=0;s&&(m=s[b],m===0&&(m=ue(k)?1:2,s[b]=m)),(a===1&&m===1&&De(p,k)||t.compare(p,k)!==0)&&d++,o[b]=d,f=b,a=m;}return o}function le(e,t,n){let r=e.length,o=new Uint32Array(r),c=new Uint32Array(r),s=0,f=0;for(let i=0;i<r;i++){let C=e[i];Number.isNaN(t[C])?c[f++]=C:o[s++]=C;}let a=new Uint32Array(s),d=new Uint32Array(s),g=new Float64Array(1),b=new Uint32Array(g.buffer);for(let i=0;i<s;i++){let C=t[o[i]];g[0]=C===0?0:C;let h=b[0],N=b[1];N&2147483648?(h=~h>>>0,N=~N>>>0):N=(N^2147483648)>>>0,n&&(h=~h>>>0,N=~N>>>0),a[i]=h,d[i]=N;}let p=new Uint32Array(s);for(let i=0;i<s;i++)p[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,N=C?d:a;m.fill(0);for(let x=0;x<s;x++)m[N[p[x]]>>>h&255]++;if(m[N[p[0]]>>>h&255]===s)continue;let w=0;for(let x=0;x<256;x++){let S=m[x];m[x]=w,w+=S;}for(let x=0;x<s;x++){let S=p[x];k[m[N[S]>>>h&255]++]=S;}let D=p;p=k,k=D;}let I=new Uint32Array(r);for(let i=0;i<s;i++)I[i]=o[p[i]];for(let i=0;i<f;i++)I[s+i]=c[i];return I}function de(e){return e.nodes!==void 0}var fe=new Map;function Re(e){let t=fe.get(e);return t||(t=new Intl.Collator(e,{numeric:true,sensitivity:"base"}),fe.set(e,t)),t}var me=new WeakMap;function Ue(e,t,n){let r=me.get(e);r||(r=new Map,me.set(e,r));let o=r.get(n);return o||(o=ce(t,Re(n)),r.set(n,o)),o}var be=new WeakMap;function ge(e,t){let n=be.get(e);return n||(n=t.map(r=>r.toLowerCase()),be.set(e,n)),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 Be(e,t){let n=e.dictionary,r=new Uint8Array(n.length),o=false,c=t.operator;if(c==="isnull")return {mask:r,nilPasses:true};if(c==="isnotnull")return r.fill(1),{mask:r,nilPasses:false};let s=ge(e,n),f=t.value==null?"":String(t.value).toLowerCase();switch(c){case "=":case "<>":{let a=t.value===null||t.value===void 0;for(let d=0;d<n.length;d++){let g=a?false:ve(n[d],t.value);r[d]=(c==="="?g:!g)?1:0;}o=c==="="?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=Oe(t.value);for(let d=0;d<n.length;d++)r[d]=a.has(H(n[d]))?1:0;break}case ">":case ">=":case "<":case "<=":{for(let a=0;a<n.length;a++){let d=Y(n[a],t.value);r[a]=c===">"&&d>0||c===">="&&d>=0||c==="<"&&d<0||c==="<="&&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]=Y(n[g],a)>=0&&Y(n[g],d)<=0?1:0;break}default:r.fill(1),o=true;}return {mask:r,nilPasses:o}}function H(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 ve(e,t){return H(e)===H(t)}function Oe(e){let t=new Set,n=Array.isArray(e)?e:[];for(let r of n){if(r==null)continue;let o=H(r);typeof o=="number"&&Number.isNaN(o)||t.add(o);}return t}function Le(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 _e(e){let t=j.get(e);return t||(t=Le(e.value),j.set(e,t)),t}function Y(e,t){let n=R(e),r=R(t);if(!Number.isNaN(n)&&!Number.isNaN(r))return n-r;let o=String(e).toLowerCase(),c=String(t).toLowerCase();return o<c?-1:o>c?1:0}function Ve(e,t){if(t.operator==="in")return !Number.isNaN(e)&&_e(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?"":String(t.value).toLowerCase(),c=r.toLowerCase();return t.operator==="contains"?c.includes(o):t.operator==="notcontains"?!c.includes(o):t.operator==="startswith"?c.startsWith(o):c.endsWith(o)}default:return true}}function X(e,t,n){if(de(e))return e.nodes.length===0?true:e.logic==="or"?e.nodes.some(f=>X(f,t,n)):e.nodes.every(f=>X(f,t,n));let r=t.columns[e.columnId];if(!r)return true;if(r.kind==="numeric")return Ve(r.values[n],e);let o=Q.get(e),c=o??Be(r,e);o||Q.set(e,c);let s=r.codes[n];return s===-1?c.nilPasses:c.mask[s]===1}var Q=new WeakMap,qe=65535;function J(e,t){Q=new WeakMap,j=new WeakMap;let{rowCount:n}=e,r=t.locale??"en",o=t.searchText.trim().toLowerCase(),c=!!t.filter,s=o.length>0,f=[];if(s){let m=/^[0-9.+\\-einftya]*$/.test(o),I=(C,h,N)=>{let w=ge(h,C),D=new Uint8Array(C.length),x=false;for(let S=0;S<w.length;S++)(w[S].includes(o)||N!==void 0&&N.has(C[S]))&&(D[S]=1,x=true);return x?D: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 N=i.get(C);if(h.kind==="text"){let w=I(h.dictionary,h,N);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,N);w&&f.push({codes:h.searchCodes,mask:w,values:null,numberHits:null,scanText:true});}else {let w=null;if(N)for(let D of N){let x=Number(D);Number.isNaN(x)||(w??=new Set).add(x);}(m||w)&&f.push({codes:null,mask:null,values:h.values,numberHits:w,scanText:m});}}}let a=t.onProgress,d=t.isCancelled,g={order:new Uint32Array(0),cancelled:true},b;if(!c&&!s){b=new Uint32Array(n);for(let m=0;m<n;m++)b[m]=m;}else {let m=new Uint32Array(n),I=0;for(let i=0;i<n;i++){if((i&qe)===0){if(d?.())return g;a?.("filtering",n===0?1:i/n);}if(!(c&&!X(t.filter,e,i))){if(s){let C=false;for(let h of f)if(h.codes&&h.mask){let N=h.codes[i];if(N!==-1&&h.mask[N]===1){C=true;break}}else if(h.values){let N=h.values[i];if(!Number.isNaN(N)){if(h.numberHits!==null&&h.numberHits.has(N)){C=true;break}if(h.scanText&&String(N).toLowerCase().includes(o)){C=true;break}}}if(!C)continue}m[I++]=i;}}b=m.subarray(0,I),a?.("filtering",1);}if(t.sort.length===0)return {order:b.slice()};if(d?.())return g;let p=[];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"?p.push({dir:i,numeric:I.values,codes:null,ranks:null}):p.push({dir:i,numeric:null,codes:I.codes,ranks:Ue(I,I.dictionary,r)});}if(p.length===0)return {order:b.slice()};if(b.length>=5e4){let m=[];for(let i of p){if(i.numeric){m.push(i.numeric);continue}let C=i.codes,h=i.ranks,N=new Float64Array(n);for(let w=0;w<n;w++){let D=C[w];N[w]=D===-1?Number.NaN:h[D];}m.push(N);}let I=b;for(let i=p.length-1;i>=0;i--){if(d?.())return g;a?.("sorting",(p.length-1-i)/p.length),I=le(I,m[i],p[i].dir===-1);}return a?.("sorting",1),{order:I===b?b.slice():I}}a?.("sorting",null);let k=Array.from(b);return k.sort((m,I)=>{for(let i of p)if(i.numeric){let C=i.numeric[m],h=i.numeric[I],N=Number.isNaN(C),w=Number.isNaN(h);if(N||w){if(N&&w)continue;return N?1:-1}if(C!==h)return (C<h?-1:1)*i.dir}else {let C=i.codes[m],h=i.codes[I];if(C===-1||h===-1){if(C===-1&&h===-1)continue;return C===-1?1:-1}let N=i.ranks[C],w=i.ranks[h];if(N!==w)return (N<w?-1:1)*i.dir}return m-I}),{order:Uint32Array.from(k)}}var Ge=30,he="Other",Pe=1e4;var L=864e5,Ke=60,ze=20,$=2e3,Z=["day","week","month","quarter","year"],ye={day:L,week:7*L,month:30.44*L,quarter:91.31*L,year:365.25*L};function Ce(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 c=Date.UTC(r,o,n.getUTCDate()),s=(new Date(c).getUTCDay()+6)%7;return c-s*L}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+L;case "week":return e+7*L;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 ee=e=>e<10?`0${e}`:String(e);function We(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}-${ee(n.getUTCMonth()+1)}`;default:return `${r}-${ee(n.getUTCMonth()+1)}-${ee(n.getUTCDate())}`}}function He(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 $e(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=Z.find(b=>r/ye[b]+1<=Ke)??"year";else for(d=a;r/ye[d]+1>$;){let b=Z[Z.indexOf(d)+1];if(!b)break;d=b,g=true;}return {info:{kind:"date",unit:d,adjusted:g},keyOf:b=>Number.isFinite(b)?Ce(b,d):Number.NaN,endOf:b=>Ne(b,d),labelOf:b=>We(b,d),keys:(b,p)=>{let k=[];if(!Number.isFinite(b)||!Number.isFinite(p))return k;for(let m=Ce(b,d);m<=p&&k.length<$;m=Ne(m,d))k.push(m);return k}}}let o=e.size&&e.size>0?e.size:He(r/Math.max(1,e.bins??ze));(!(o>0)||!Number.isFinite(o))&&(o=1);let c=false;for(;r/o+1>$;)o*=2,c=true;let s=o;return {info:{kind:"number",size:s,adjusted:c},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 b=Math.floor(a/s)*s;for(let p=b;p<=d&&g.length<$;p+=s)g.push(p);return g}}}function Ye(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 c=t[o].start;n[o]=c,r[o]=Number.isNaN(c)?Number.NaN:e.endOf(c);}return {bucket:e.info,bucketStarts:n,bucketEnds:r}}var z=-1;function pe(e,t,n,r){let o=Math.max(1,n.maxCategories??Ge),c=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"),g=new Map,b=null,p=0,k=false,m=(u,l=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:p++,start:l}),I=(u,l)=>{if(!f)return Number.NaN;if(f.kind==="numeric")return f.values[u];let y=f.codes[u];return y===z?Number.NaN:Ye(f.dictionary[y],l)},i=n.categoryBucket,C=null,h=Number.POSITIVE_INFINITY,N=Number.NEGATIVE_INFINITY;if(i){for(let u=0;u<t.length;u++){let l=I(t[u],i.kind);Number.isFinite(l)&&(l<h&&(h=l),l>N&&(N=l));}C=$e(i,h,N);}let w=0,D=1,x=2,S=new Uint8Array(s),ne=new Array(s).fill(null),re=new Array(s).fill(null),oe=new Array(s).fill(null);for(let u=0;u<s;u++){let l=n.series[u].aggregate;S[u]=l==="count"?w:d[u]?D:x;let y=a[u];if(!y)continue;if(y.kind==="numeric"){ne[u]=y.values;continue}re[u]=y.codes;let T=y.dictionary,M=new Float64Array(T.length);for(let E=0;E<T.length;E++){let A=T[E],K=A===""?Number.NaN:Number(A);M[E]=Number.isFinite(K)?K:Number.NaN;}oe[u]=M;}for(let u=0;u<t.length;u++){let l=t[u],y,T,M=Number.NaN;if(C&&i)M=C.keyOf(I(l,i.kind)),y=Number.isNaN(M)?"":M,T=Number.isNaN(M)?"":C.labelOf(M);else if(!f)y=T="";else if(f.kind==="text"){let A=f.codes[l];y=T=A===z?"":f.dictionary[A];}else {let A=f.values[l];y=T=Number.isNaN(A)?"":String(A);}let E=g.get(y);E||(g.size>=Pe?(k=true,b??=m(n.otherLabel??he),E=b):(E=m(T,M),g.set(y,E)));for(let A=0;A<s;A++){let K=S[A],_=ne[A],V=re[A];if(K===w){(_!==null?!Number.isNaN(_[l]):V!==null&&V[l]!==z)&&E.count[A]++;continue}if(K===D){let q=E.distinct[A];if(q)if(V!==null){let se=V[l];se!==z&&q.add(se);}else _!==null&&!Number.isNaN(_[l])&&q.add(_[l]);continue}let O;if(_!==null)O=_[l];else if(V!==null){let q=V[l];O=q===z?Number.NaN:oe[A][q];}else O=Number.NaN;Number.isNaN(O)||(E.numericCount[A]++,E.sum[A]+=O,O<E.min[A]&&(E.min[A]=O),O>E.max[A]&&(E.max[A]=O));}}let Te=(u,l)=>{for(let y=0;y<s;y++){u.sum[y]+=l.sum[y],u.numericCount[y]+=l.numericCount[y],u.count[y]+=l.count[y],l.min[y]<u.min[y]&&(u.min[y]=l.min[y]),l.max[y]>u.max[y]&&(u.max[y]=l.max[y]);let T=u.distinct[y],M=l.distinct[y];if(T&&M)for(let E of M)T.add(E);}},ae=(u,l)=>{switch(n.series[l].aggregate){case "count":return u.count[l];case "countDistinct":return u.distinct[l]?.size??0;case "sum":return u.numericCount[l]>0?u.sum[l]:Number.NaN;case "avg":return u.numericCount[l]>0?u.sum[l]/u.numericCount[l]:Number.NaN;case "min":return u.numericCount[l]>0?u.min[l]:Number.NaN;case "max":return u.numericCount[l]>0?u.max[l]:Number.NaN;default:return Number.NaN}},P=[...g.values()],Ee=P.length+(b?1:0),W=u=>{if(s===0)return Number.NEGATIVE_INFINITY;let l=ae(u,0);return Number.isNaN(l)?Number.NEGATIVE_INFINITY:l},B;if(C){B=C.keys(h,N).map(l=>g.get(l)??m(C.labelOf(l),l));let u=g.get("");u&&B.push(u);}else {let u=P;if(P.length>o){let l=[...P].sort((y,T)=>W(T)-W(y));if(u=l.slice(0,o),c){b??=m(n.otherLabel??he);for(let y of l.slice(o))Te(b,y);}}switch(n.categoryOrder??"value-desc"){case "category-asc":u=[...u].sort((l,y)=>l.label.localeCompare(y.label));break;case "first-seen":u=[...u].sort((l,y)=>l.seq-y.seq);break;default:u=[...u].sort((l,y)=>W(y)-W(l));}B=b?[...u,b]:u;}return {categories:B.map(u=>u.label),series:n.series.map((u,l)=>{let y=new Float64Array(B.length);for(let T=0;T<B.length;T++)y[T]=ae(B[T],l);return {label:u.label??r.series[l]??u.columnId,columnId:u.columnId,aggregate:u.aggregate,values:y}}),truncated:C?false:P.length>o||k,otherIndex:C?null:b?B.length-1:null,rowCount:t.length,categoryCount:C?B.length:Ee,rankingExact:!k,...je(C,B)}}function Ie(){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 ke(e,t,n){let r=n.get(e);return r===void 0&&(r=t.length,t.push(e),n.set(e,r)),r}function we(e,t,n){for(let r of t){let o=e[r.columnId];if(!o)continue;let{indices:c}=r;if(o.kind==="numeric"){let s=r.numbers??[];for(let f=0;f<c.length;f++)o.values[c[f]]=s[f];if(o.searchCodes&&o.searchDictionary&&r.labels){let f=n.get(o);for(let a=0;a<c.length;a++){let d=r.labels[a];o.searchCodes[c[a]]=d===null?-1:ke(d,o.searchDictionary,f);}}}else {let s=r.labels??[],f=n.get(o);for(let a=0;a<c.length;a++){let d=s[a];o.codes[c[a]]=d===null?-1:ke(d,o.dictionary,f);}}}}var Ae=self,G=new Map;function U(e,t){Ae.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 Xe(e){let t={};xe(e.columns,t),G.set(e.gridId,{dataVersion:e.dataVersion,table:{rowCount:e.rowCount,columns:t}}),U({action:"ready",gridId:e.gridId,dataVersion:e.dataVersion});}function Qe(e){let t=G.get(e.gridId);!t||t.dataVersion!==e.dataVersion||(xe(e.columns,t.table.columns),U({action:"ready",gridId:e.gridId,dataVersion:e.dataVersion}));}var F=new Set,te=(e,t)=>`${e}:${t}`;function Je(e){let t=G.get(e.gridId);if(!t||t.dataVersion!==e.dataVersion)return;let n=te(e.gridId,e.requestId),r=`${e.gridId}:*`,o=()=>F.has(n)||F.has(r);if(o()){F.delete(n),U({action:"cancelled",gridId:e.gridId,requestId:e.requestId});return}try{let{order:c,cancelled:s}=J(t.table,{sort:e.sort,filter:e.filter,searchText:e.searchText,searchColumns:e.searchColumns,searchLabelHits:e.searchLabelHits,locale:e.locale,onProgress:(f,a)=>U({action:"progress",gridId:e.gridId,dataVersion:e.dataVersion,requestId:e.requestId,phase:f,fraction:a}),isCancelled:o});if(s){F.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:c.buffer,visibleCount:c.length},[c.buffer]),F.delete(n);}catch(c){U({action:"error",gridId:e.gridId,requestId:e.requestId,message:c instanceof Error?c.message:String(c)});}}function Ze(e){let t=G.get(e.gridId);if(!t||t.dataVersion!==e.dataVersion)return;let n=te(e.gridId,e.requestId),r=`${e.gridId}:*`,o=()=>F.has(n)||F.has(r);if(o()){F.delete(n),U({action:"cancelled",gridId:e.gridId,requestId:e.requestId});return}try{let{order:c,cancelled:s}=J(t.table,{sort:[],filter:e.filter,searchText:e.searchText,searchColumns:e.searchColumns,searchLabelHits:e.searchLabelHits,locale:e.locale,isCancelled:o});if(s){F.delete(n),U({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=pe(t.table.columns,c,f,{series:e.series.map(m=>m.label??m.columnId)}),d=a.categories.length,g=new Float64Array(a.series.length*d);for(let m=0;m<a.series.length;m++)g.set(a.series[m].values,m*d);let b=a.bucketStarts,p=a.bucketEnds,k=[g.buffer];b&&p&&k.push(b.buffer,p.buffer),U({action:"aggregated",gridId:e.gridId,dataVersion:e.dataVersion,requestId:e.requestId,categories:a.categories,values:g.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:b?.buffer,bucketEnds:p?.buffer},k),F.delete(n);}catch(c){U({action:"error",gridId:e.gridId,requestId:e.requestId,message:c instanceof Error?c.message:String(c)});}}var et=Ie();function tt(e){let t=G.get(e.gridId);!t||t.dataVersion!==e.fromVersion||(we(t.table.columns,e.patches,et),t.dataVersion=e.toVersion);}Ae.onmessage=e=>{let t=e.data;switch(t.action){case "init":Xe(t);break;case "addColumns":Qe(t);break;case "patchRows":tt(t);break;case "compute":Je(t);break;case "aggregate":Ze(t);break;case "cancel":F.add(t.requestId===void 0?`${t.gridId}:*`:te(t.gridId,t.requestId));break;case "dispose":G.delete(t.gridId);for(let n of F)n.startsWith(`${t.gridId}:`)&&F.delete(n);break}};',gu=null;function is(){return $i.length>0}function as(){if(gu)return gu;if(!is())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 gu=URL.createObjectURL(new Blob([$i],{type:"text/javascript"})),gu}var os=2e4,gi=!1;function ls(e,t){typeof process<"u"&&process.env&&!t||gi&&!t||(gi=!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 us=1e5,rs=12,ns=2e3,is=500,pi=2e5;function mi(){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 Ge=class extends Error{constructor(e){super(`[datagrid] ${e}`),this.name="WorkerRequestAbandoned"}},gu=class extends Error{constructor(){super("[datagrid] compute cancelled"),this.name="WorkerRequestCancelled"}};function as(){return typeof Worker<"u"}function Wi(e,t){if(e){if("nodes"in e){for(let u of e.nodes)Wi(u,t);return}t.add(e.columnId)}}function Ar(e,t){let u=new Set;for(let r of t.sort)u.add(r.columnId);if(Wi(t.filter,u),(t.searchText??"").trim().length>0)for(let r of e.getOrder())e.getState(r)?.visible&&u.add(r);return[...u].filter(r=>e.getState(r)!==void 0)}var pu=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 Ni;constructor(e,t){this.rows=e,this.options=t,this.threshold=t.threshold??es,this.fallback=new Jl(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;let a=i.usesSortValue?l=>u.getSortValue(l,n):l=>u.getCellValue(l,n),s=[];if(i.kind==="numeric"){let l=i.dataType==="date"?Ki:Vi,m=[],c=i.hasSearch?[]:void 0;for(let h of t){let E=a(this.rows[h]);if(Au(E))m.push(Number.NaN),c?.push(null);else{if(!i.hasSearch&&typeof E!="number")return;m.push(l(E)),c?.push(String(E))}s.push(h)}r.push({columnId:n,kind:"numeric",indices:s,numbers:m,labels:c})}else{let l=[];for(let m of t){let c=a(this.rows[m]);l.push(Au(c)?null:String(c)),s.push(m)}r.push({columnId:n,kind:"text",indices:s,labels:l})}}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&&as()&&this.rows.length>=this.threshold}async getRows(e,t){if(!this.usesWorker()||_l(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 Ge||u instanceof gu)throw u;return this.workerBroken=!0,this.teardownWorker(),ts(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(Xl());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 gu)}}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 Ol(this.rows,e,t,u);let a=Hi(this.rows,e,t,u),s=ns;for(;;){let l=performance.now(),m=a.step(s),c=performance.now()-l;if(!m)break;let h=c>0?Math.round(s*rs/c):pi;if(s=Math.min(pi,Math.max(is,h)),await mi(),this.encodeToken!==i)throw new Ge("encode cancelled");n?.(a.done/a.total)}return a.finish()}toWire(e,t,u,r,n){if(this.encodedMeta.set(t,{kind:r.kind,hasSearch:r.kind==="numeric"&&!!r.searchCodes,usesSortValue:u,dataType:e.getDataType(t)}),r.kind==="numeric"){let a={columnId:t,kind:"numeric",buffer:r.values.buffer};return n.push(a.buffer),r.searchCodes&&r.searchDictionary&&(a.searchBuffer=r.searchCodes.buffer,a.searchDictionary=r.searchDictionary,n.push(a.searchBuffer)),a}let i={columnId:t,kind:"text",buffer:r.codes.buffer,dictionary:r.dictionary};return n.push(i.buffer),i}async sendColumns(e,t,u,r,n=!1){let i=this.dataVersion,a=[],s=[],l=this.rows.length>=us&&u.length>0,m=this.encodeToken;for(let h=0;h<u.length;h++){if(l){if(await mi(),this.encodeToken!==m)throw new Ge("encode cancelled");n||this.options.onEncodeProgress?.(h/u.length)}let E=t.getDef(u[h])?.calculateSortValue!=null,g=await this.encodeOne(t,u[h],E,l,n?void 0:C=>this.options.onEncodeProgress?.((h+C)/u.length),m);a.push(this.toWire(t,u[h],E,g,s))}l&&!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,s),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=Ar(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 Ge("data replaced while columns were being encoded")}let a=++this.requestCounter,s=e.getOrder().filter(c=>e.getState(c)?.visible),l=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:s,searchLabelHits:$n(yr(e,s,wr(t.searchText))),locale:this.options.locale??"en"};return u.postMessage(m),l}async aggregate(e,t,u){if(!this.usesWorker()||!Ri(u))return null;try{let r=this.ensureWorker(),n=new Set(Ar(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 Ge("data replaced while columns were being encoded");let a=++this.requestCounter,s=e.getOrder().filter(g=>e.getState(g)?.visible),l=new Promise((g,C)=>{this.pendingAggregate.set(a,{resolve:g,reject:C})}),m={action:"aggregate",gridId:this.options.gridId,dataVersion:this.dataVersion,requestId:a,filter:t.filter,searchText:t.searchText,searchColumns:s,searchLabelHits:$n(yr(e,s,wr(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 l,h=c.categories.length,E=new Float64Array(c.values);return{categories:c.categories,series:u.series.map((g,C)=>({label:c.seriesLabels[C]??g.columnId,columnId:g.columnId,aggregate:g.aggregate,values:E.subarray(C*h,(C+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 Ge||r instanceof gu||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 Ge(e);this.pending.forEach(u=>u.reject(t)),this.pending.clear(),this.pendingAggregate.forEach(u=>u.reject(t)),this.pendingAggregate.clear()}};var os=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),s=Math.max(n,i),l=u&&!this.allMatching?new Set(this.selected):new Set;for(let m=a;m<=s;m++)l.add(t[m]);return!this.allMatching&&cr(l,this.selected)?!1:(this.allMatching=!1,this.selected=l,!0)}selectAll(e){if(this.mode!=="multiple")return!1;let t=new Set(e);return!this.allMatching&&cr(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&&cr(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 cr(e,t){if(e.size!==t.size)return!1;for(let u of e)if(!t.has(u))return!1;return!0}function ls(e){return{count:e.length,keyAt:t=>e[t],indexOf:t=>e.indexOf(t)}}function Xe(e,t,u){return e<t?t:e>u?u:e}function hr(e){return e.rows??ls(e.rowKeys??[])}var ss=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=hr(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=hr(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 E=r.keyAt(0);return E===void 0?!1:this.set({rowKey:E,columnId:u[0]})}let a=r.count-1,s=u.length-1,{rowIndex:l,columnIndex:m}=i,c=l;switch(e){case"up":l=Xe(l-1,0,a);break;case"down":l=Xe(l+1,0,a);break;case"left":m=Xe(m-1,0,s);break;case"right":m=Xe(m+1,0,s);break;case"pageUp":l=Xe(l-n,0,a);break;case"pageDown":l=Xe(l+n,0,a);break;case"rowStart":m=0;break;case"rowEnd":m=s;break;case"gridStart":l=0,m=0;break;case"gridEnd":l=a,m=s;break}if(t.isFocusable){let E=l>c?1:l<c?-1:0;l=this.skipUnfocusable(r,l,E,t.isFocusable,c)}let h=r.keyAt(l);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=hr(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=Xe(t??0,0,r.count-1),s=r.keyAt(a);return s===void 0?this.clear():this.set({rowKey:s,columnId:i})}},ce=(e,t=!0)=>({type:e,preventDefault:t});function Ui(e){let t=!!(e.ctrlKey||e.metaKey),u=!!e.shiftKey;switch(e.key){case"ArrowUp":return ce(u?"extendSelectionUp":"up");case"ArrowDown":return ce(u?"extendSelectionDown":"down");case"ArrowLeft":return ce("left");case"ArrowRight":return ce("right");case"PageUp":return ce("pageUp");case"PageDown":return ce("pageDown");case"Home":return ce(t?"gridStart":"rowStart");case"End":return ce(t?"gridEnd":"rowEnd");case" ":case"Spacebar":return ce("toggleSelection");case"Enter":return ce("activate");case"Escape":return ce("clearSelection");case"a":case"A":return t?ce("selectAll"):null;case"c":case"C":return t?ce("copy",!1):null;default:return null}}function ds(e){return e==="up"||e==="down"||e==="left"||e==="right"||e==="pageUp"||e==="pageDown"||e==="rowStart"||e==="rowEnd"||e==="gridStart"||e==="gridEnd"}var cs="__dg_";function hs(e){return e.startsWith(cs)}function ps(e){return e.filter(t=>!hs(t))}function br(e){return e.replace(/[\t\r\n]+/g," ")}function ms(e,t,u){let r=u.getCellValue(e.data,t);return br(yu(u.getDef(t),r,e.data))}function gs(e,t,u={}){let r=u.columnIds??ps(t.runtime().map(i=>i.state.id));if(r.length===0)return"";let n=[];if(u.includeGroupHeaders){let i=r.map(s=>Ne(t.getDef(s))),a=i.reduce((s,l)=>Math.max(s,l.length),0);for(let s=0;s<a;s++){let l=null;n.push(i.map(m=>{let c=m[s]??"",h=c===""?null:m.slice(0,s+1).join("\0"),E=h!==null&&h===l;return l=h,E?"":br(c)}).join(" "))}}(u.includeHeaders||u.includeGroupHeaders)&&n.push(r.map(i=>br(t.getDef(i)?.headerName??t.getDef(i)?.field??i)).join(" "));for(let i of e)et(i)&&n.push(r.map(a=>ms(i,a,t)).join(" "));return n.join(`
12
- `)}var fs=5,Cs=35e5,ws=16e6,ys=4,Es=3;function gi(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],s=0;for(let g of u)s+=g.state.width,a.push(s);let l=new Array(u.length).fill(null),m=[],c=i;for(let g=0;g<u.length;g++)u[g].state.pinned==="sticky"&&(l[g]=c,c+=u[g].state.width,m.push(g));let h=new Array(r.length),E=0;for(let g=r.length-1;g>=0;g--)h[g]=E,E+=r[g].state.width;return{left:t,center:u,right:r,leftWidth:i,centerWidth:s,rightWidth:E,totalWidth:i+s+E,centerOffsets:a,leftOffsets:n,rightOffsets:h,centerStickyOffsets:l,stickyIndices:m}}var As={left:[],center:[],right:[],leftWidth:0,centerWidth:0,rightWidth:0,totalWidth:0,centerOffsets:[0],leftOffsets:[],rightOffsets:[],centerStickyOffsets:[],stickyIndices:[]};function fi(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 pr(e,t,u){return e<t?t:e>u?u:e}var bs=class{rowCount=0;heights;overscanY;overscanX;viewportWidth=0;viewportHeight=0;scrollTop=0;scrollLeft=0;maxScrollOffset=Cs;leadWidth=0;headerOffset=0;footerOffset=0;maxCanvasHeight=ws;layout=As;window;constructor(e={}){this.heights=new Wo(e.rowHeight??28),this.overscanY=Math.max(0,e.overscanY??fs),this.overscanX=Math.max(0,e.overscanX??Es),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 l=this.heights.offsetOf(e),m=l+this.heights.heightOf(e),c=this.virtualTop();l<c?u.scrollTop=this.physicalTop(l,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:s}=this.layout;if(t!=null&&t>=0&&t<r.length){let l=Math.max(0,this.viewportWidth-this.leadWidth-i-a),m=0;for(let E of s)E<t&&(m+=r[E].state.width);let c=n[t],h=n[t+1];s.includes(t)&&c<this.scrollLeft||(c<this.scrollLeft+m?u.scrollLeft=Math.max(0,c-m):h>this.scrollLeft+l&&(u.scrollLeft=h-l))}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:pr(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=pr(this.heights.indexAt(r),0,n),a=pr(this.heights.indexAt(r+this.viewportHeight-1),0,n),s=Math.max(0,i-this.overscanY),l=Math.min(this.rowCount,a+1+this.overscanY),m=this.heights.offsetOf(s)-(r-this.scrollTop);if(u){let c=m+this.heights.offsetOf(l)-this.heights.offsetOf(s);c>t&&(m-=c-t)}return{start:s,end:l,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,s=this.scrollLeft+i,l=fi(t,a,n),m=fi(t,s-1,n),c=Math.max(0,l-this.overscanX),h=Math.min(n,m+1+this.overscanX);return{start:c,end:h,offsetX:t[c]}}};function vs(e){let{getParentKey:t,parentField:u}=e;if(t)return n=>t(n)??null;let r=u??"parentId";return n=>n[r]??null}function xs(e,t,u){let r=new Map,n=new Map,i=new Map;for(let l=0;l<e.length;l++)i.set(t(e[l]),l);for(let l=0;l<e.length;l++){let m=t(e[l]),c=u(e[l]);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 l of n.keys()){if(a.has(l))continue;let m=new Set,c=l;for(;c!==null&&!a.has(c);){if(m.has(c)){let h=n.get(c)??null;n.set(c,null);let E=r.get(h);if(E){let C=E.indexOf(c);C>=0&&E.splice(C,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 s=r.get(null);return s&&s.sort((l,m)=>(i.get(l)??0)-(i.get(m)??0)),{childrenOf:r,parentOf:n,sourceIndexOf:i}}function Ds(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 s=e.length!==u.sourceIndexOf.size,l=new Set(i.keys());if(s)for(let g of i.keys()){let C=u.parentOf.get(g)??null;for(;C!==null&&!l.has(C);)l.add(C),C=u.parentOf.get(C)??null}let m=g=>{let C=g.filter(D=>l.has(D));return C.sort((D,S)=>{let T=a.get(D),N=a.get(S);return T!==void 0&&N!==void 0?T-N:T!==void 0?-1:N!==void 0?1:(u.sourceIndexOf.get(D)??0)-(u.sourceIndexOf.get(S)??0)}),C},c=[],h=[],E=m(u.childrenOf.get(null)??[]);for(let g=E.length-1;g>=0;g--)h.push({key:E[g],depth:0});for(;h.length>0;){let{key:g,depth:C}=h.pop(),D=m(u.childrenOf.get(g)??[]),S=D.length>0,T=S&&(s||n(g)),N=i.get(g),O=u.sourceIndexOf.get(g)??-1,W={depth:C,hasChildren:S,expanded:T,ancestorOnly:N===void 0};if(c.push(N?{...N,tree:W}:{kind:"data",key:g,sourceIndex:O,data:r[O],tree:W}),T)for(let Z=D.length-1;Z>=0;Z--)h.push({key:D[Z],depth:C+1})}return{nodes:c}}var vr=(()=>{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 Rt(){return new Promise(e=>vr(e))}var mu=1e5,mr=32768,Ci=65536;async function Fs(e){let{rows:t,getValue:u,collator:r,shouldAbort:n,onProgress:i}=e,a=()=>n?n():!1,s=new Map;for(let C=0;C<t.length;C+=mu){if(a())return null;let D=Math.min(t.length,C+mu);for(let S=C;S<D;S++){let T=u(t[S]),N=T==null?"":String(T);s.has(N)||s.set(N,T)}i?.(D/t.length*.2),D<t.length&&await Rt()}let l=[...s.keys()],m=[];for(let C=0;C<l.length;C+=mr){if(a())return null;m.push(l.slice(C,C+mr).sort(r.compare)),i?.(.2+Math.min(l.length,C+mr)/Math.max(1,l.length)*.2),await Rt()}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 C=[];for(let D=0;D<m.length;D+=2){if(D+1===m.length){C.push(m[D]);continue}let S=m[D],T=m[D+1],N=new Array(S.length+T.length),O=0,W=0,Z=0,j=Ci;for(;O<S.length&&W<T.length;)if(r.compare(S[O],T[W])<=0?N[Z++]=S[O++]:N[Z++]=T[W++],--j===0){if(a())return null;await Rt(),j=Ci}for(;O<S.length;)N[Z++]=S[O++];for(;W<T.length;)N[Z++]=T[W++];if(C.push(N),a())return null;await Rt()}m=C,h++,i?.(.4+Math.min(1,h/c)*.5)}let E=m[0],g=new Array(E.length);for(let C=0;C<E.length;C+=mu){if(a())return null;let D=Math.min(E.length,C+mu);for(let S=C;S<D;S++){let T=E[S];g[S]={label:T,value:s.get(T)}}D<E.length&&await Rt()}return i?.(1),g}function Ss(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 Bs=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]={[It]:t}:delete r[e];else{let n={...r[e]??{}};delete n[It],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:Ss(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 gr(e,t){return e.toLowerCase().endsWith(`.${t}`)?e:`${e}.${t}`}var ks=[];function $i(e,t){if(!e)return null;if("nodes"in e){let u=e.nodes.map(r=>$i(r,t)).filter(r=>r!==null);return u.length===0?null:{logic:e.logic,nodes:u}}return t(e.columnId)?e:null}var xr="__dg_pending_row_",Rs=e=>`${xr}${e}`;function Ns(e){if(typeof e!="string"||!e.startsWith(xr))return null;let t=Number(e.slice(xr.length));return Number.isInteger(t)&&t>=0?t:null}function Ts(e){return e==null?[]:typeof e=="string"?[e]:[...e]}var Ms="\0",wi="",fr=1e3,Is=150,Ls=60,qi=class{gridId;events=new jo;columns;store;rowModel;debugMode;locale;text;virtual;selection;focus=new ss;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={};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=Pt(e.locale,e.messages),this.columns=new Gl(e.columns,{defaultColumnDef:e.defaultColumnDef,debugMode:this.debugMode}),this.store=new Bs({multiSort:e.sorting?.multi??!1});let t=To(e.rowKey);if(this.keyGetter=t,this.rowKeyField=typeof e.rowKey=="string"?e.rowKey:null,Qa(e.dataSource)?this.rowModel=new Xn(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 pu(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 os(e.selection?.mode??"none"),this.deferredSelection=e.selection?.deferred??!1,this.summaryDefs=e.summaries??[],this.treeData=e.tree??null,this.treeData&&(this.treeParent=vs(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?.enabled??!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 bs({rowHeight:e.rowHeight,overscanY:e.virtualization?.overscanY,overscanX:e.virtualization?.overscanX}),this.virtual.setColumnLayout(gi(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(Ke(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(Ms)}#${t?this.summaryDefs.map(r=>`${r.columnId}:${r.type}`).join(","):""}`;return this.groupTree&&this.groupTreeSignature===u?this.groupTree:(this.setBusy("grouping",null),this.groupTree=co(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 pu&&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)},Is)}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(ds(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?"":gs(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?Rs(t):void 0),indexOf:t=>{let u=Ns(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=fr){return this.getDistinctValueSet(e,t).entries}getDistinctValueSet(e,t=fr){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,s=!1;for(let m of n){let c=this.columns.getCellValue(m,e),h=c==null?"":String(c),E=c==null?"":yu(i,c,m);if(!a.has(h)&&(a.set(h,{value:c,label:E}),a.size>t)){a.delete(h),s=!0;break}}let l=[...a.values()].sort((m,c)=>this.collator().compare(m.label,c.label));return this.distinctCache.set(u,l),s?this.distinctTruncated.add(u):this.distinctTruncated.delete(u),{entries:l,truncated:s}}searchDistinctValues(e,t,u=fr){let r=t.trim().toLowerCase();if(!r)return this.getDistinctValueSet(e,u);let n=this.rowModel.getSourceRows?.()??[],i=this.columns.getDef(e),a=new Map,s=!1;for(let l of n){let m=this.columns.getCellValue(l,e),c=m==null?"":String(m),h=m==null?"":yu(i,m,l);if(!(!h.toLowerCase().includes(r)||a.has(c))&&(a.set(c,{value:m,label:h}),a.size>u)){a.delete(c),s=!0;break}}return{entries:[...a.values()].sort((l,m)=>this.collator().compare(l.label,m.label)),truncated:s}}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=Fs({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),s=new Map;for(let c of r)s.set(c,this.columns.getState(c)?.width??0);for(let c=0;c<=r.length&&a.size>0;c++){let h=0;for(let C of a)h+=s.get(C)??0;if(h<=0)break;let E=i/h,g=!1;for(let C of[...a]){let D=(s.get(C)??0)*E,S=this.columns.getDef(C),T=S?.minWidth??Ls,N=S?.maxWidth??Number.POSITIVE_INFINITY;if(D<T||D>N){let O=Math.min(Math.max(D,T),N);s.set(C,O),a.delete(C),i-=O,g=!0}else s.set(C,D)}if(!g)break}let l=0;for(let c of r)l+=s.get(c)??0;let m=0;r.forEach((c,h)=>{let E=h===r.length-1?Math.round(l)-m:Math.round(s.get(c)??0);m+=E,this.columns.setWidth(c,E)}),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 Xn?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(po(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(wi)}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 s=[];for(let l of a){let m=this.getDataRowNode(l);m&&s.push(m)}return lr(s,this.columns,e,n)}}let i=this.rowModel instanceof pu?this.rowModel:null;if(i?.usesWorker()&&Ri(e)&&!r){let{searchText:a}=this.store.getState(),s=await i.aggregate(this.columns,{sort:[],filter:u==="all"?null:this.runningFilter(),searchText:u==="all"?"":a},e);if(s)return s}if(u==="all"){let a=this.rowModel.getSourceRows?.()??[],s=new Array(a.length);for(let l=0;l<a.length;l++)s[l]=Ke(a[l],this.keyGetter(a[l]),l);return lr(s,this.columns,e,n)}return lr(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(wi)}runSummaryPass(e,t,u,r,n){let i=++this.summaryPassSeq;if(e.length<=1e5){this.busyDepth>0&&this.setBusy("aggregating",null);let h=lo(e,this.columns,t,this.pendingReaders);this.summaryValues=u?{...this.summaryValues,...h}:h,r!==null&&(this.summaryBasis=r);return}let a=so(this.columns,t,this.pendingReaders),s=1e5,l=e.length,m=0,c=()=>{if(this.disposed||i!==this.summaryPassSeq||n!==this.computeToken)return;let h=Math.min(l,m+s);if(a.add(e,m,h),m=h,m<l){this.setBusy("aggregating",m/l),vr(c);return}let E=a.finish();this.summaryValues=u?{...this.summaryValues,...E}:E,r!==null&&(this.summaryBasis=r),this.busyDepth===0&&this.setBusy(null,null),this.events.emit("summariesChanged",{values:this.summaryValues})};vr(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 dl({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:ir(u,n),filter:this.runningFilter(),searchText:r},{maxRows:this.exportMaxRows,pageSize:this.exportPageSize,isCancelled:()=>t!==this.exportToken||this.disposed,onProgress:(a,s)=>this.setBusy("exporting",s>0?Math.round(a/s*100):null)});return this.setBusy("exporting",null),i}setExportDefaults(e){this.exportDefaults={...e}}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={}){return this.withExportSignal(e,async t=>{let u=this.buildExportModelFrom(await this.exportRows(),t);return{blob:await ml(u,t),fileName:gr(t.fileName??this.gridId,"csv"),rowCount:u.rows.length}})}async exportToExcel(e={}){this.requireEnterprise("Excel export");let t={sheetName:this.text.exportSheetName,...this.exportDefaults,...e};return this.withExportSignal(t,async u=>{let r=this.buildExportModelFrom(await this.exportRows(),u);return{blob:await El(r,{...u,onProgress:n=>{u.onProgress?.(n),n>=1&&this.setBusy("exporting",null,!1)}}),fileName:gr(u.fileName??this.gridId,"xlsx"),rowCount:r.rows.length}})}async exportToPdf(e={}){return this.requireEnterprise("PDF export"),this.withExportSignal(e,async t=>{let u=this.buildExportModelFrom(await this.exportRows(),t);return this.setBusy("exporting",null,!1),{blob:await Nl(u,t),fileName:gr(t.fileName??this.gridId,"pdf"),rowCount:u.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=Ts(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:$i(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,{[It]: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=Il(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 E=t.patchRows(h);this.invalidateResultCaches(),this.events.emit("rowsChanged",{added:0,updated:E,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 E=r(u[h]);n.has(E)&&i.set(E,h)}let a=u.slice(),s=0,l=0,m=[];if(e.update)for(let h of e.update){let E=i.get(r(h));E!==void 0&&(a[E]=h,m.push(E),s++)}if(e.remove&&e.remove.length>0){let h=new Set(e.remove.map(g=>yi(g)?g:r(g))),E=a.filter(g=>!h.has(r(g)));l=a.length-E.length,a=E}let c=e.add?.length??0;if(c>0){let h=e.addBeforeKey===void 0?-1:a.findIndex(g=>r(g)===e.addBeforeKey),E=e.add;h>=0?a=a.slice(0,h).concat(E,a.slice(h)):e.addPosition==="first"?a=E.concat(a):a=a.concat(E)}if(!(l>0||c>0)&&this.rowModel.patchData?this.rowModel.patchData(a,m,this.columns):this.rowModel.setData?.(a),this.bumpDataEpoch(),l>0){let h=new Set(a.map(E=>r(E)));this.selection.retainKeys(h)&&this.emitSelectionChanged()}this.events.emit("rowsChanged",{added:c,updated:s,removed:l}),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=mo(e,this.keyGetter);go(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=Ar(this.columns,{sort:ir(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 s of n){let l=this.columns.getCellValue(a,s),m=this.columns.getCellValue(i,s);if(!Object.is(l,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 pu&&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=ir(t,r),a,s=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(C){!(C instanceof Ge)&&!(C instanceof gu)&&(this.events.emit("dataError",{error:C}),this.debugMode&&console.error("[datagrid] row model failed",C));return}if(e!==this.computeToken||this.disposed)return;let l=Math.round(performance.now()-s),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 C=this.currentSummaryBasis(n,u),D=this.summaryBasis===C,S=D?this.summaryDefs.filter(T=>T.type==="custom"&&T.dependsOnOrder!==!1):this.summaryDefs;S.length>0?this.runSummaryPass(a.nodes,S,D,C,e):this.summaryBasis=C}else this.summaryValues={},this.summaryBasis=null;let h=Math.round(performance.now()-m);this.lastResult=a,this.invalidateResultCaches();let E=performance.now();this.projectView();let g=this.rowModel.getLastTimings?.();this.lastComputeTimings={modelMs:l,summaryMs:h,projectViewMs:Math.round(performance.now()-E),...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"?ho(this.ensureGroupTree(t),{collapsedKeys:this.store.collapsedSet(),collapsedByDefault:this.collapsedByDefault}).nodes:this.lastResult.nodes),i=this.masterDetail?Ho(n,{expandedKeys:this.store.expandedSet(),expandedByDefault:this.masterDetail.expandedByDefault,height:this.masterDetail.height}):n,a=this.editForm?zo(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:l}=e,m=this.store.clampPage(Math.ceil(a.length/l))*l;this.viewNodes=a.slice(m,m+l)}else this.viewNodes=a;this.rowIndexCache=null,this.rebuildRowHeights();let s=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(s)}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=xs(e,this.keyGetter,this.treeParent),this.treeIndexEpoch=this.dataEpoch),Ds(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],s;a.kind==="detail"||a.kind==="editform"?s=a.height:s=e.get(a.key)??this.getRowHeightFn?.(a,i),s!==void 0&&s!==u&&n.set(i,Math.max(1,s))}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 ks;this.spanCacheResult!==this.lastResult&&(this.spanCache.clear(),this.spanCacheResult=this.lastResult);let u=this.spanCache.get(e);if(u)return u;let r=Ao(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(gi(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}},Rr={compact:24,normal:28,comfortable:36};var Nr={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 bu(e,t,u){return e?Nr[e][t??"normal"]:t?Rr[t]:u}function Tr(e){return{sum:e.summarySum,avg:e.summaryAvg,min:e.summaryMin,max:e.summaryMax,count:e.summaryCount,countDistinct:e.summaryDistinct,custom:e.summaryCustom}}var Ps=Tr(Pt("en"));function Mr(e,t=Ps){return e.label??t[e.type]}var Gs=new Set(["sum","avg","min","max"]);function Ir(e,t,u){if(e.valueFormatter)return e.valueFormatter(t??null);if(t==null)return"\u2014";if(!Gs.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 _i(e){switch(e){case"number":return["sum","avg","min","max","count","countDistinct"];case"date":return["min","max","count","countDistinct"];default:return["count","countDistinct"]}}var Os=[">=","<=","<>",">","<","="];function ji(e,t,u){let r=t.trim();if(r==="")return null;for(let n of Os)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 Yi(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 vu(e,t){let{controller:u,maxGroupLevels:r,t:n}=t,i=e.columnId,a=u.getColumnModel().getDef(i),s=u.getSort(),l=s.find(N=>N.columnId===i),m=u.getGroupLevels(),c=m.includes(i),h=a?.sortable!==!1,E=u.getColumnStates().find(N=>N.id===i)?.pinned??null,g=a?.groupable!==!1,C=[{id:"sort-asc",label:n.sortAsc,disabled:!h||l?.direction==="asc",onSelect:()=>u.setSort([{columnId:i,direction:"asc"}])},{id:"sort-desc",label:n.sortDesc,disabled:!h||l?.direction==="desc",onSelect:()=>u.setSort([{columnId:i,direction:"desc"}])},{id:"sort-clear",label:n.clearSort,disabled:!l,onSelect:()=>u.setSort(s.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}],D=u.getColumnStates().filter(N=>N.visible&&N.pinned===E).map(N=>N.id),S=D.indexOf(i),T=a?.reorderable!==!1&&S>=0;return C.push({id:"sep-4",separator:!0},{id:"move-left",label:n.moveLeft,disabled:!T||S<=0,onSelect:()=>u.moveColumn(i,D[S-1])},{id:"move-right",label:n.moveRight,disabled:!T||S<0||S>=D.length-1,onSelect:()=>u.moveColumn(i,D[S+2])},{id:"fixed-position",label:n.fixedPosition,items:[{id:"pin-left",label:n.pinLeft,disabled:E==="left",onSelect:()=>u.setColumnPinned(i,"left")},{id:"pin-right",label:n.pinRight,disabled:E==="right",onSelect:()=>u.setColumnPinned(i,"right")},{id:"pin-sticky",label:n.pinSticky,disabled:E==="sticky",onSelect:()=>u.setColumnPinned(i,"sticky")}]},{id:"unpin",label:n.unpin,disabled:E===null,onSelect:()=>u.setColumnPinned(i,null)}),C}async function Zi(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 Pi(u.blob,u.fileName),{completed:!0}}catch(u){return u instanceof ut?{completed:!1}:{completed:!1,error:u instanceof Error?u.message:String(u)}}}var Ji=null;function Vs(){return typeof document>"u"?null:(Ji??=document.createElement("canvas"),Ji.getContext("2d"))}function Qi(e){let t=getComputedStyle(e);return`${t.fontStyle} ${t.fontWeight} ${t.fontSize} ${t.fontFamily}`}function xu(e,t){let u=Vs();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 s=n.querySelector(".kanuni-datagrid-header-label")??n;u.font=Qi(s),a=u.measureText(s.textContent??"").width+44}if(i.length>0){u.font=Qi(i[0]);for(let s=0;s<i.length;s++){let l=i[s].textContent??"";if(l==="")continue;let m=u.measureText(l).width+20;m>a&&(a=m)}}return a===0?null:Math.round(Math.min(640,Math.max(48,a)))}var gt=60,Ot=36,ft=28,Vt="application/x-kanuni-row",Gt=new Map,Lr=new Set,Gr=5e3,rt=0,Ks=["columnStateChanged","sortChanged"],Hs=["columnStateChanged"],zs=["contentReady","viewportChanged","filterChanged","selectionChanged","focusChanged","summariesChanged","cellsRefreshed"],k=(e,t="div")=>{let u=document.createElement(t);return u.className=e,u},Kt="http://www.w3.org/2000/svg";function Ws(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 Us={columnResize:"use `resizable`",columnReorder:"use `reorderable`",groupPanel:"use `grouping: { panel: true }`",autoColumns:"columns are inferred automatically when `columns` is empty",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:""},Du=new Set;function $s(e){for(let t of Object.keys(e)){let u=Us[t];u===void 0||u===""||Du.has(t)||(Du.add(t),console.warn(`[datagrid] \`${t}\` is a React-only option \u2014 ${u}.`))}}function qs(){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 _s(){let e=document.createElementNS(Kt,"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(Kt,"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 js(e){let t=document.createElementNS(Kt,"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(Kt,"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(Kt,"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 Ys(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 Pr(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 Xi(e,t){let{theme:u,palette:r,density:n,dark:i,striped:a=!0,rowNumbers:s=!1,locale:l="en",footer:m=!1,footerMenu:c=!0,footerPosition:h="bottom",notes:E,pinnedTopRows:g=[],pinnedBottomRows:C=[],resizable:D=!0,reorderable:S=!0,filterRow:T=!1,headerFilter:N=!1,filterIconMode:O="hover",filterPanel:W=!1,onOpenFilterBuilder:Z,focusedRow:j=!1,focusedRowKey:J,onFocusedRowChanged:nt,onRowClick:Fu,onRowActivate:Ct,autoSizeStrategy:V="none",renderRow:H,announcements:Y=!0,filterPanelLabels:_,showRowCount:Ee=!1,toolbarColumnChooser:He=!1,cellMenu:Ae=!0,rowMenu:he,headerMenu:ae,rowDrag:ue,alignedGrids:ee,printLayout:ze,renderCellContent:Su,getCellClassName:Bu,onCellPointerDown:Or,onCellPointerEnter:Ht,onCellDoubleClick:Vr,renderDetail:Kr,renderEditForm:ea,enterpriseEdition:Te=!1,stateStoring:Hr,tooltip:ku=!0,filterDebounce:ta,toolbar:zr=!1,highlightSearch:ua=!0,sortable:ra=!0,toolbarItemsAfter:na,toolbarItemsBefore:ia,toolbarExcel:aa=!1,toolbarPdf:oa=!1,searchDebounce:la=200,...sa}=t;$s(t),Ee&&!Du.has("showRowCount:deprecated")&&(Du.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 I=Pt(l),{emptyText:da=I.noData,loadingText:ca=I.busy,loadingOverlay:Ru=!0,...pe}=sa,Wr=typeof Ru=="number"?Ru:300,Nu=Tr(I);if(!pe.columns||pe.columns.length===0){let o=Array.isArray(pe.dataSource)?pe.dataSource:[];pe.columns=bi(o)}pe.rowHeight===void 0&&(pe.rowHeight=bu(u,n,28));let ha=Te?pe:Ws(pe,!!t.debugMode),We=Te?E:void 0;!Te&&E&&t.debugMode&&console.warn("[datagrid] cell notes are an Enterprise feature \u2014 use createEnterpriseGrid from @kanunilabs/datagrid-enterprise to show them.");let A=new qi(ha);A.setEnterpriseEdition(Te),J!=null&&A.focusRow(J);let $=k(Pr(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"),oe=k("kanuni-datagrid-canvas"),we=k("kanuni-datagrid-header");we.setAttribute("role","row");let me=k("kanuni-datagrid-rows");me.style.position="relative";let Q=k("kanuni-datagrid-viewport");me.appendChild(Q);let wt=k("kanuni-datagrid-pinned-rows kanuni-datagrid-pinned-rows--top"),Ur=k("kanuni-datagrid-pinned-rows kanuni-datagrid-pinned-rows--bottom"),Be=m,Ue=h==="top",ne=k(`kanuni-datagrid-footer-row kanuni-datagrid-footer-row--${Ue?"top":"bottom"}`);if(ne.setAttribute("role","row"),ne.setAttribute("aria-label",I.columnTotalsAria),c){let o=d=>{let p=d.target?.closest(".kanuni-datagrid-footer-cell")?.getAttribute("data-column-id");p&&(d.preventDefault(),Ma(p,{left:d.clientX,top:d.clientY}))};ne.addEventListener("click",o),ne.addEventListener("contextmenu",o)}let zt=k("kanuni-datagrid-bands-host");zt.style.display="contents";let it=k("kanuni-datagrid-filter-row");it.setAttribute("role","row"),oe.append(zt,we),T&&oe.append(it);let Tu=T?2:1;ne.style.setProperty("--dg-pinned-gap",String(Ue?Tu:0)),wt.style.setProperty("--dg-pinned-gap",String(Tu+(Be&&Ue?1:0))),Be&&Ue&&oe.append(ne),g.length>0&&oe.append(wt),oe.append(me),C.length>0&&oe.append(Ur),Be&&!Ue&&oe.append(ne),U.appendChild(oe);let $e=k("kanuni-datagrid-toolbar"),at=k("kanuni-datagrid-pager");at.setAttribute("role","navigation"),at.setAttribute("aria-label","Pagination");let qe=k("kanuni-datagrid-filter-panel"),_e=!!pe.grouping?.panel,le=k("kanuni-datagrid-group-panel");zr&&$.appendChild($e),_e&&$.appendChild(le),$.appendChild(U),W&&$.appendChild(qe),pe.pagination?.enabled&&$.appendChild(at);let yt=k("kanuni-datagrid-loading-overlay"),$r=k("kanuni-datagrid-loading-card"),qr=k("kanuni-datagrid-loading-spinner","span");qr.setAttribute("aria-hidden","true");let _r=k("kanuni-datagrid-loading-label","span");_r.textContent=ca,$r.append(qr,_r),yt.appendChild($r),yt.style.display="none";let Et=k("kanuni-datagrid-sr-only","div");Et.setAttribute("role","status"),Et.setAttribute("aria-live","polite"),Et.setAttribute("aria-atomic","true");let Wt=k("kanuni-datagrid-empty");Wt.textContent=da,Wt.style.display="none",$.append(yt,Wt),Y&&$.appendChild(Et),e.appendChild($);let jr=pe.selection,Ut=(jr?.mode??"none")!=="none"&&(jr?.checkboxColumn??!1),$t=A.hasMasterDetail()&&!!Kr,Mu=s?gt:0,Yr=Mu+($t?ft:0),be=(s?gt:0)+($t?ft:0)+(Ut?Ot:0);A.setLeadWidth(be);let qt=!!ue?.enabled,At=ue?.group??null,Zr=ue?.allowReordering??!0,Jr=ue?.allowDropInsert??At!==null,ke=null,_t=null,jt=!1,je=null,Me=null;function ot(o){je=o;for(let d of Q.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 Qr=(o,d)=>{let f=d.getBoundingClientRect();return o.clientY<f.top+f.height/2?"before":"after"},Xr=o=>o.dataTransfer?.types.includes(Vt)?ke!==null?Zr:Jr&&At!==null:!1;function en(o,d,f){let p=null;try{let y=o.dataTransfer?.getData(Vt);p=y?JSON.parse(y):null}catch{p=null}if(p){if(p.gridId===A.gridId){if(!Zr)return;if(ue?.onReorder){ue.onReorder({dragKey:p.rowKey,targetKey:d,position:f,row:A.getRowByKey(p.rowKey)});return}A.moveRow(p.rowKey,d,f);return}!Jr||At===null||p.group!==At||ue?.onAdd?.({row:p.row,rowKey:p.rowKey,otherGridId:p.gridId,targetKey:d,position:f})}}let pa=o=>{let d=Ie(o);if(!d||d.node.kind!=="data"||!o.dataTransfer)return;ke=d.node.key,_t=d.node.key,jt=!1;let f={gridId:A.gridId,group:At,rowKey:d.node.key,row:d.node.data};o.dataTransfer.setData(Vt,JSON.stringify(f)),o.dataTransfer.setData("text/plain",String(d.node.key)),o.dataTransfer.effectAllowed="move",A.notifyRowDrag("enter",{rowKey:d.node.key})},ma=o=>{if(!Xr(o))return;o.preventDefault(),o.dataTransfer&&(o.dataTransfer.dropEffect="move");let d=Ie(o);if(!d||d.node.kind!=="data")return;if(ke===d.node.key){Me=null,ot(null);return}let f=o.target.closest(".kanuni-datagrid-row"),p=Qr(o,f),y=je?.key!==d.node.key||je.side!==p;Me={key:d.node.key,side:p},ot({key:d.node.key,side:p}),y&&ke!==null&&A.notifyRowDrag("move",{rowKey:ke,overKey:d.node.key,position:p})},ga=o=>{if(!Xr(o)){ot(null);return}o.preventDefault();let d=Ie(o);if(jt=!0,d&&d.node.kind==="data"){let f=o.target.closest(".kanuni-datagrid-row"),p=Qr(o,f);Me={key:d.node.key,side:p},en(o,d.node.key,p)}else Me=null,en(o,null,"after");ke=null,ot(null)},fa=()=>{_t!==null&&A.notifyRowDragEnd({rowKey:_t,dropped:jt,overKey:Me?.key??null,position:Me?.side??null}),jt=!1,_t=null,ke=null,Me=null,ot(null)},Ca=o=>{let d=o.relatedTarget;d&&me.contains(d)||ke!==null&&(Me=null,ot(null),A.notifyRowDrag("leave",{rowKey:ke}))},bt=ze===void 0||ze===!1?null:(()=>{let o=ze===!0?{}:ze;return{always:o.always??!1,maxRows:o.maxRows??Gr}})(),vt=!1;function Iu(o){vt!==o&&(vt=o,$.classList.toggle("kanuni-datagrid-print",o),o?(rt++,document.documentElement.classList.add("kanuni-datagrid-printing")):(rt--,rt<=0&&(rt=0,document.documentElement.classList.remove("kanuni-datagrid-printing"))),Vu())}let tn=null;if(bt&&!bt.always){let o=()=>{let f=A.getRows().length;if(f>bt.maxRows){A.isDebugMode()&&console.warn(`[datagrid] print layout skipped: ${f} rows exceeds maxRows (${bt.maxRows}). Printing the visible rows instead \u2014 use exportPdf() for the whole result.`);return}Iu(!0)},d=()=>Iu(!1);window.addEventListener("beforeprint",o),window.addEventListener("afterprint",d),tn=()=>{window.removeEventListener("beforeprint",o),window.removeEventListener("afterprint",d)}}let Ye=0,ve=[],se=0,Lu=0;function Pu(){let o=A.getColumnLayout(),d=A.getVirtualWindow().columns,f=[],p=(b,v,F,x)=>{let w=b.def;f.push({def:w,id:b.state.id,width:b.state.width,pinned:v,inset:F,className:Ys(w.align,w.dataType)+(v?" kanuni-datagrid-cell--pinned":"")+(w.autoHeight?" kanuni-datagrid-cell--wrap":""),visualIndex:x})};o.left.forEach((b,v)=>p(b,"left",o.leftOffsets[v]+be,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)),ve=f,se=d.offsetX;let y=(o.centerOffsets[Math.min(d.end,o.center.length)]??0)-(o.centerOffsets[Math.min(d.start,o.center.length)]??0);Lu=Math.max(0,o.centerWidth-d.offsetX-y),oe.style.minWidth=`${o.totalWidth+be}px`}let Yt=26;function wa(){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=Ei(f);if(zt.textContent="",we.style.top=`${p*Yt}px`,$.style.setProperty("--dg-band-offset",`${p*Yt}px`),p===0)return;Ai(f,p).forEach((b,v)=>{let F=k("kanuni-datagrid-band-row");if(F.style.top=`${v*Yt}px`,F.style.height=`${Yt}px`,be>0){let x=k("kanuni-datagrid-band-cell kanuni-datagrid-band-cell--spacer kanuni-datagrid-band-cell--pinned");x.style.width=`${be}px`,x.style.flex="none",x.style.insetInlineStart="0px",F.appendChild(x)}if(se>0){let x=k("kanuni-datagrid-spacer");x.style.width=`${se}px`,x.style.flex="none",F.appendChild(x)}for(let x of b){let w=k(`kanuni-datagrid-band-cell${x.spacer?" kanuni-datagrid-band-cell--spacer":""}`);if(w.style.width=`${x.width}px`,w.style.flex="none",!x.spacer){if(x.columnIds.length>0){let R=Ne(A.getColumnModel().getDef(x.columnIds[0])).slice(0,v+1);if(R.length===v+1&&A.isBandCollapsible(R)){let M=A.isBandCollapsed(R),L=document.createElement("button");L.type="button",L.className="kanuni-datagrid-band-toggle",L.setAttribute("aria-expanded",String(!M));let P=M?I.expandDetails??"Expand":I.collapseDetails??"Collapse";L.setAttribute("aria-label",P),L.title=P,L.appendChild(js(M)),L.addEventListener("click",K=>{K.stopPropagation(),A.toggleBand(R)}),w.appendChild(L)}}let B=k("kanuni-datagrid-band-label","span");B.textContent=x.label,w.appendChild(B)}F.appendChild(w)}zt.appendChild(F)})}let xt=null,Zt=null;function Jt(o,d){Zt&&Zt!==o&&Zt.classList.remove("kanuni-datagrid-header-cell--drop-before","kanuni-datagrid-header-cell--drop-after"),Zt=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 un(){if(!xt)return;let o=A.getSelectedCount(),d=A.getVisibleCount(),f=d>0&&o>=d;xt.checked=f,xt.indeterminate=!f&&o>0}function Gu(){wa();let o=A.getSort(),d=new Map(o.map((p,y)=>[p.columnId,{direction:p.direction,order:y}]));if(we.textContent="",xt=null,s){let p=k("kanuni-datagrid-header-cell kanuni-datagrid-header-cell--pinned kanuni-datagrid-rownum-cell");p.setAttribute("role","columnheader"),p.style.width=`${gt}px`,p.style.flex="none",p.style.insetInlineStart="0px",we.appendChild(p)}if($t){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",I.detailsAria),p.style.width=`${ft}px`,p.style.flex="none",p.style.insetInlineStart=`${Mu}px`,we.appendChild(p)}if(Ut){let p=k("kanuni-datagrid-header-cell kanuni-datagrid-header-cell--pinned kanuni-datagrid-select-cell");p.setAttribute("role","columnheader"),p.style.width=`${Ot}px`,p.style.flex="none",p.style.insetInlineStart=`${Yr}px`;let y=document.createElement("input");y.type="checkbox",y.setAttribute("aria-label",I.selectAllRows),y.addEventListener("change",()=>{A.getSelectedCount()>0?A.clearSelection():A.selectAll()}),p.appendChild(y),we.appendChild(p),xt=y,un()}let f=!1;for(let p of ve){if(!p.pinned&&!f){if(se>0){let x=document.createElement("div");x.style.flex=`0 0 ${se}px`,we.appendChild(x)}f=!0}let y=ra&&p.def.sortable!==!1,b=d.get(p.id),v=k(`kanuni-datagrid-header-cell${y?" 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"),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 F=k("kanuni-datagrid-header-label","span");if(p.def.renderHeader){let x=p.def.renderHeader({column:p.def});typeof x=="string"?F.textContent=x:F.appendChild(x)}else F.textContent=p.def.headerName??p.id;if(v.appendChild(F),b){let x=k("kanuni-datagrid-sort-indicator","span");if(x.setAttribute("aria-hidden","true"),x.textContent=b.direction==="asc"?"\u25B2":"\u25BC",v.appendChild(x),o.length>1){let w=k("kanuni-datagrid-sort-order","span");w.setAttribute("aria-hidden","true"),w.textContent=String(b.order+1),v.appendChild(w)}}if(y){let x=p.id;v.addEventListener("click",w=>{A.toggleSort(x,w.shiftKey)})}if(ae!==!1){let x=p.id;v.addEventListener("contextmenu",w=>{w.preventDefault(),Ta(x,{left:w.clientX,top:w.clientY})})}if(N&&p.def.filterable!==!1){let x=document.createElement("button");x.type="button";let w=A.getColumnFilter(p.id)!==null;x.className=`kanuni-datagrid-filter-button${w?" kanuni-datagrid-filter-button--active":""}${O==="always"?" kanuni-datagrid-filter-button--pinned":""}`,x.setAttribute("aria-haspopup","dialog"),x.setAttribute("aria-label",`${p.def.headerName??p.id} filter`),x.appendChild(_s()),x.addEventListener("click",B=>{B.stopPropagation(),Fa(p.id,x)}),v.appendChild(x)}if(S&&p.def.reorderable!==!1&&(v.draggable=!0,v.addEventListener("dragstart",x=>{x.dataTransfer?.setData("text/x-kanuni-column",p.id),x.dataTransfer&&(x.dataTransfer.effectAllowed="move")}),v.addEventListener("dragover",x=>{if(!x.dataTransfer?.types.includes("text/x-kanuni-column"))return;x.preventDefault();let w=v.getBoundingClientRect(),B=x.clientX<w.left+w.width/2;Jt(v,B?"before":"after")}),v.addEventListener("dragleave",x=>{let w=x.relatedTarget;(!w||!v.contains(w))&&Jt(null,"before")}),v.addEventListener("drop",x=>{Jt(null,"before");let w=x.dataTransfer?.getData("text/x-kanuni-column");if(!w||w===p.id)return;x.preventDefault();let B=v.getBoundingClientRect();if(x.clientX<B.left+B.width/2)A.moveColumn(w,p.id);else{let M=ve.findIndex(L=>L.id===p.id);A.moveColumn(w,ve[M+1]?.id)}}),v.addEventListener("dragend",()=>Jt(null,"before"))),D&&p.def.resizable!==!1){let x=k("kanuni-datagrid-resize-handle","span");x.setAttribute("data-resize-handle",p.id),x.setAttribute("role","presentation"),x.addEventListener("click",w=>w.stopPropagation()),x.addEventListener("dblclick",w=>{w.stopPropagation(),La(p.id)}),x.addEventListener("pointerdown",w=>{w.preventDefault(),w.stopPropagation();let B=w.clientX,R=p.width,M=getComputedStyle(v).direction==="rtl"?-1:1;v.draggable=!1;let L=R,P=!1,K=ie=>{P=!0,L=R+(ie.clientX-B)*M,A.setColumnWidth(p.id,L,!1)},z=()=>{window.removeEventListener("pointermove",K),window.removeEventListener("pointerup",z),window.removeEventListener("pointercancel",z),P&&A.setColumnWidth(p.id,L,!0),v.draggable=S&&p.def.reorderable!==!1};window.addEventListener("pointermove",K),window.addEventListener("pointerup",z),window.addEventListener("pointercancel",z)}),v.appendChild(x)}we.appendChild(v)}}let rn=null,Qt=null;function ya(o){if(o===rn)return;rn=o;let d=[];for(let f=0;f<o.length;f++)o[f].kind!=="data"&&d.push(f);Qt=d.length>0?d:null}function Ea(o){if(!Qt)return o+1;let d=0,f=Qt.length;for(;d<f;){let p=d+f>>1;Qt[p]<=o?d=p+1:f=p}return o+1-d}let Dt=[];function nn(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:Ye}}if(o==="group"){let w=k("kanuni-datagrid-group-cell");w.setAttribute("role","gridcell"),w.setAttribute("aria-colindex","1");let B=k("kanuni-datagrid-group-twisty","span");B.setAttribute("aria-hidden","true");let R=k("kanuni-datagrid-group-caption","span"),M=k("kanuni-datagrid-group-label","span"),L=k("kanuni-datagrid-group-count","span"),P=k("kanuni-datagrid-group-aggregates","span");return w.append(B,R,M,L,P),d.appendChild(w),d.addEventListener("click",()=>{let K=d.getAttribute("data-group-key");K!==null&&A.toggleGroup(K)}),{kind:o,root:d,cells:[],rowNumberCell:null,selectInput:null,detailToggle:null,leadingSpacer:null,trailingSpacer:null,group:{cell:w,twisty:B,caption:R,label:M,count:L,aggregates:P},epoch:Ye}}if(qt){let w=k("kanuni-datagrid-row-grip","span");w.setAttribute("aria-hidden","true"),w.title=I.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(H)return{kind:o,root:d,cells:[],rowNumberCell:null,selectInput:null,detailToggle:null,leadingSpacer:null,trailingSpacer:null,epoch:Ye};let f=null;s&&(f=k("kanuni-datagrid-cell kanuni-datagrid-cell--number kanuni-datagrid-cell--pinned kanuni-datagrid-rownum-cell"),f.setAttribute("role","gridcell"),f.style.width=`${gt}px`,f.style.flex="none",f.style.insetInlineStart="0px",d.appendChild(f));let p=null;if($t){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=`${ft}px`,w.style.flex="none",w.style.insetInlineStart=`${Mu}px`;let B=document.createElement("button");B.type="button",B.className="kanuni-datagrid-detail-toggle",B.tabIndex=-1,B.addEventListener("click",R=>{R.stopPropagation();let M=d.getAttribute("data-row-key");if(M===null)return;let L=A.getRows().find(P=>String(P.key)===M);L&&L.kind==="data"&&A.toggleDetail(L.key)}),B.addEventListener("mousedown",R=>R.stopPropagation()),w.appendChild(B),d.appendChild(w),p=B}let y=null;if(Ut){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=`${Ot}px`,w.style.flex="none",w.style.insetInlineStart=`${Yr}px`;let B=document.createElement("input");B.type="checkbox",B.tabIndex=-1;let R=()=>{let M=d.getAttribute("data-row-key");if(M===null)return;let L=A.getRows().find(P=>String(P.key)===M);L&&A.toggleRow(L.key)};w.addEventListener("mousedown",M=>M.stopPropagation()),w.addEventListener("click",M=>{M.target.tagName!=="INPUT"&&(M.stopPropagation(),R())}),B.addEventListener("change",R),B.addEventListener("click",M=>M.stopPropagation()),B.addEventListener("mousedown",M=>M.stopPropagation()),w.appendChild(B),d.appendChild(w),y=B}let b=[],v=null,F=!1;for(let w of ve){!w.pinned&&!F&&(v=document.createElement("div"),v.style.flex=`0 0 ${se}px`,d.appendChild(v),F=!0);let B=k(w.className);B.setAttribute("role","gridcell"),B.setAttribute("data-column-id",w.id),B.style.width=`${w.width}px`,B.style.flex="none",w.pinned==="left"&&(B.style.insetInlineStart=`${w.inset}px`),w.pinned==="right"&&(B.style.insetInlineEnd=`${w.inset}px`),d.appendChild(B),b.push({el:B,slot:w})}let x=document.createElement("div");return x.style.flex=`0 0 ${Lu}px`,d.appendChild(x),{kind:o,root:d,cells:b,rowNumberCell:f,selectInput:y,detailToggle:p,leadingSpacer:v,trailingSpacer:x,epoch:Ye}}let lt="";function Xt(o,d){if(lt===""||d===""){o.textContent=d;return}let f=d.toLowerCase(),p=f.indexOf(lt);if(p===-1){o.textContent=d;return}let y=[],b=0;for(;p!==-1;){p>b&&y.push(document.createTextNode(d.slice(b,p)));let v=document.createElement("mark");v.className="kanuni-datagrid-highlight",v.textContent=d.slice(p,p+lt.length),y.push(v),b=p+lt.length,p=f.indexOf(lt,b)}b<d.length&&y.push(document.createTextNode(d.slice(b))),o.replaceChildren(...y)}function Aa(o,d,f){let p=A.getColumnModel().getCellValue(f.data,d.id),y=d.def;if(y.renderCell){let v=y.renderCell({value:p,row:f.data,node:f,column:y});typeof v=="string"?o.textContent=v:o.replaceChildren(v);return}let b=Lt(y,p);if(b!==null){Xt(o,b);return}if(y.valueFormatter){let v=y.valueFormatter(p,f.data);Xt(o,typeof v=="string"?v:String(v??""));return}if(y.dateFormat&&y.dataType==="date"){Xt(o,Ti(p,y.dateFormat));return}Xt(o,p==null?"":String(p))}function an(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 w=o.panelCell,B=d.kind==="detail";p.className=`kanuni-datagrid-row ${B?"kanuni-datagrid-detail-row":"kanuni-datagrid-editform-row"}`,p.style.height=`${d.height}px`,B?(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")),w.className=B?"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 M=B?Kr?.(d.data):d.parentKey===null?void 0:ea?.(d.parentKey,d.data);w.textContent="",typeof M=="string"?w.textContent=M:M&&w.appendChild(M)}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=on?"":`${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 y=A.getFocus();if(p.classList.toggle("kanuni-datagrid-row--focused",j&&y!==null&&y.rowKey===d.key),o.leadingSpacer&&(o.leadingSpacer.style.flex=`0 0 ${se}px`),o.trailingSpacer&&(o.trailingSpacer.style.flex=`0 0 ${Lu}px`),qt){let w=je!==null&&String(je.key)===String(d.key);p.classList.toggle("kanuni-datagrid-row--drop-before",w&&je.side==="before"),p.classList.toggle("kanuni-datagrid-row--drop-after",w&&je.side==="after")}if(o.rowNumberCell&&(o.rowNumberCell.textContent=String(Ea(f))),o.selectInput&&(o.selectInput.checked=A.isRowSelected(d.key),o.selectInput.setAttribute("aria-label",I.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?I.collapseDetails:I.expandDetails)}if(d.kind==="group"&&o.group){let w=d;p.className=`kanuni-datagrid-row kanuni-datagrid-group-row kanuni-datagrid-group-row--level-${w.level}`,p.setAttribute("aria-expanded",String(w.expanded)),p.setAttribute("aria-level",String(w.level+1)),p.setAttribute("data-group-key",String(w.key)),p.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 B=A.getColumnModel().getDef(w.columnId),R=B?.headerName??w.columnId;o.group.caption.textContent=`${R}:`,o.group.label.textContent=Lt(B,w.value)??(w.label===""?I.filterBlank:w.label),o.group.count.textContent=`(${w.count})`,o.group.aggregates.textContent="";let M=w.aggregates??null;if(M)for(let L of A.getSummaryDefs()){let P=k("kanuni-datagrid-group-aggregate","span"),K=k("kanuni-datagrid-group-aggregate-label","span"),z=A.getColumnModel().getDef(L.columnId);K.textContent=`${Mr(L,Nu)} ${z?.headerName??L.columnId}:`,P.append(K,` ${Ir(L,M[tt(L.columnId,L.type)],z)}`),o.group.aggregates.appendChild(P)}return}if(d.kind!=="data"){for(let{el:w}of o.cells)w.textContent="";return}if(p.className=p.className.includes("group-row")?"kanuni-datagrid-row":p.className,H){let w=qt?1:0,B=H({row:d.data,node:d,rowIndex:f,selected:A.isRowSelected(d.key),focused:j&&y!==null&&y.rowKey===d.key});if(B instanceof Node&&p.childNodes.length===w+1&&p.childNodes[w]===B)return;for(;p.childNodes.length>w;)p.removeChild(p.lastChild);typeof B=="string"?p.appendChild(document.createTextNode(B)):B&&p.appendChild(B);return}let b=y!==null&&y.rowKey===d.key?y.columnId:null,v=d.tree,F=v?(()=>{let w=A.getColumnLayout();return(w.left[0]??w.center[0]??w.right[0])?.state.id??null})():null,x=A.hasCellSpans();for(let{el:w,slot:B}of o.cells){let R=Su||Bu?{node:d,columnId:B.id,rowIndex:f,columnIndex:B.visualIndex,value:A.getColumnModel().getCellValue(d.data,B.id)}:null,M=R&&Su?Su(R):void 0,L=!1;if(M!==void 0?M instanceof Node&&w.childNodes.length===1&&w.firstChild===M?L=!0:typeof M=="string"?w.textContent=M:w.replaceChildren(M):(Aa(w,B,d),v&&B.id===F&&xa(w,d,v)),x&&!L){let z=va(f,B.id);w.classList.toggle("kanuni-datagrid-cell--span",z?.kind==="draw"),w.classList.toggle("kanuni-datagrid-cell--span-covered",z?.kind==="covered");let ie=M!==void 0;if(z?.kind==="covered"&&b!==B.id&&!ie)w.replaceChildren();else if(z?.kind==="draw"){let ye=k("kanuni-datagrid-span-box");ye.style.height=`${z.height}px`,ye.append(...Array.from(w.childNodes)),w.appendChild(ye)}}else x||w.classList.remove("kanuni-datagrid-cell--span","kanuni-datagrid-cell--span-covered");if(We){let z=!!Ou(d.key,B.id,d.data);w.classList.toggle("kanuni-datagrid-cell--noted",z)}w.id=`${t.gridId}-cell-${String(d.key)}-${B.id}`,w.classList.toggle("kanuni-datagrid-cell--focused",b===B.id);let P=w.getAttribute("data-slot-classes");if(P)for(let z of P.split(" "))w.classList.remove(z);let K=R&&Bu?Bu(R):void 0;if(K){for(let z of K.split(" "))w.classList.add(z);w.setAttribute("data-slot-classes",K)}else P&&w.removeAttribute("data-slot-classes")}}let on=t.columns.some(o=>o.autoHeight);function ba(){if(!on)return;let o=A.getVirtualWindow(),d=A.getRows(),f=new Map(A.getMeasuredRowHeights()),p=!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,F=Dt[v]?.root;if(!F)continue;let x=F.getBoundingClientRect().height;x>0&&f.get(b.key)!==x&&(f.set(b.key,x),p=!0)}p&&A.setMeasuredRowHeights(f)}let eu={start:0,end:0};function va(o,d){let f=A.getCellSpans(d);if(f.length===0)return null;let p=Bi(f,o,eu.start,eu.end);if(!p)return null;if(p.role==="covered")return{kind:"covered"};let y=A.getRowOffset(p.drawStart);return{kind:"draw",height:A.getRowOffset(p.drawEnd)+A.getRowHeightAt(p.drawEnd)-y}}function xa(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 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?I.collapseDetails:I.expandDetails),y.textContent=f.expanded?"\u25BE":"\u25B8",y.addEventListener("mousedown",b=>b.stopPropagation()),y.addEventListener("click",b=>{b.stopPropagation(),A.toggleTreeRow(d.key)}),p.appendChild(y)}else p.appendChild(k("kanuni-datagrid-tree-toggle kanuni-datagrid-tree-toggle--leaf","span"));p.append(...Array.from(o.childNodes)),o.appendChild(p)}let Ou=(o,d,f)=>We?We.get({rowKey:o,columnId:d,row:f})??null:null;function Vu(){let o=A.getVirtualWindow(),d=A.getRows(),f=vt?{...o,rows:{...o.rows,start:0,end:d.length,offsetY:0,totalHeight:0}}:o;ya(d),me.style.height=`${f.rows.totalHeight}px`,Q.style.transform=`translateY(${f.rows.offsetY}px)`,lt=ua?A.getSearchText().trim().toLowerCase():"";let p=Math.max(0,Math.min(f.rows.end,d.length)-f.rows.start);for(eu.start=f.rows.start,eu.end=Math.min(f.rows.end,d.length)-1;Dt.length>p;)Dt.pop().root.remove();for(let y=0;y<p;y++){let b=f.rows.start+y,v=d[b],F=v.kind==="data"?"data":v.kind==="group"?"group":v.kind==="detail"||v.kind==="editform"?"panel":"stub",x=Dt[y];if(!x||x.epoch!==Ye||x.kind!==F){let w=nn(F);x?Q.replaceChild(w.root,x.root):Q.appendChild(w.root),Dt[y]=w,x=w}an(x,v,b)}ba()}let ln=ki(ta??(A.isRemote()?200:0));function Ku(){if(!T)return;if(it.textContent="",be>0){let d=k("kanuni-datagrid-filter-cell kanuni-datagrid-filter-cell--pinned");d.style.width=`${be}px`,d.style.flex="none",d.style.insetInlineStart="0px",it.appendChild(d)}let o=!1;for(let d of ve){if(!d.pinned&&!o){if(se>0){let p=k("kanuni-datagrid-spacer");p.style.width=`${se}px`,p.style.flex="none",it.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 y=()=>A.setColumnFilter(d.id,ji(d.id,p.value,d.def.dataType),xi);p.addEventListener("input",()=>ln.schedule(d.id,y));let b=()=>{ln.cancel(d.id),y()};p.addEventListener("keydown",v=>{v.key==="Enter"&&b()}),p.addEventListener("blur",b),f.appendChild(p)}it.appendChild(f)}}let sn=()=>{};function Da(){if(!zr)return;let o=document.createElement("input");o.type="search",o.className="kanuni-datagrid-toolbar-search",o.placeholder=I.toolbarSearch,o.setAttribute("aria-label",I.toolbarSearch);let d=null;o.addEventListener("input",()=>{d&&clearTimeout(d),d=setTimeout(()=>A.setSearchText(o.value),la)});let f=k("kanuni-datagrid-toolbar-spacer"),p=null;if(He){let w=document.createElement("button");w.type="button",w.textContent=I.toolbarColumns??"Columns",w.setAttribute("aria-haspopup","dialog"),w.addEventListener("click",()=>{let B=w.getBoundingClientRect();Cn({left:B.left,top:B.bottom+2})}),p=w}let y=Te&&aa,b=Te&&oa,v=document.createElement("button");v.type="button",v.className="kanuni-datagrid-toolbar-icon-button",v.setAttribute("aria-haspopup","menu"),v.setAttribute("aria-label",I.exportMenu),v.setAttribute("data-testid","dg-export-menu"),v.title=I.exportMenu,v.appendChild(qs());let F=null;v.addEventListener("click",()=>{if(F)return;let w=v.getBoundingClientRect();Ze({left:w.right-190,top:w.bottom+2},B=>{B.setAttribute("role","menu"),B.setAttribute("aria-label",I.exportMenu);let R=[{kind:"csv",label:I.exportCsv,testId:"dg-export-csv",on:!0},{kind:"excel",label:I.exportExcel,testId:"dg-export-excel",on:y},{kind:"excel-selected",label:I.exportExcelSelected,testId:"dg-export-excel-selected",on:y},{kind:"pdf",label:I.exportPdf,testId:"dg-export-pdf",on:b}];for(let M of R){if(!M.on)continue;let L=document.createElement("button");L.type="button",L.className="kanuni-datagrid-menu-item",L.setAttribute("role","menuitem"),L.setAttribute("data-testid",M.testId),L.textContent=M.label,M.kind==="excel-selected"&&A.getSelectedCount()===0&&(L.disabled=!0),L.addEventListener("click",()=>{F=M.kind,v.disabled=!0,de(),Zi(A,M.kind).then(P=>{F=null,v.disabled=!1,P.error&&sn(P.error)})}),B.appendChild(L)}},"kanuni-datagrid-filter-popup kanuni-datagrid-export-menu")});for(let w of ia??[])$e.append(w);$e.append(o,f),p&&$e.append(p),$e.append(v);for(let w of na??[])$e.append(w);let x=k("kanuni-datagrid-toolbar-error","span");x.setAttribute("role","alert"),x.style.display="none",$e.append(x),sn=w=>{x.textContent=w,x.style.display=""}}function dn(){if(!at.isConnected)return;let o=A.getPage(),d=A.getPageCount();at.textContent="";let f=(F,x,w,B)=>{let R=document.createElement("button");return R.type="button",R.textContent=F,R.setAttribute("aria-label",x),R.disabled=w,R.addEventListener("click",B),R},p=k("kanuni-datagrid-pager-buttons"),y=o<=0,b=o>=d-1;p.append(f("\xAB",I.pagerFirst??"First",y,()=>A.setPage(0)),f("\u2039",I.pagerPrevious??"Previous",y,()=>A.setPage(o-1)));let v=k("kanuni-datagrid-pager-current","span");v.textContent=`${o+1} / ${d}`,p.append(v,f("\u203A",I.pagerNext??"Next",b,()=>A.setPage(o+1)),f("\xBB",I.pagerLast??"Last",b,()=>A.setPage(d-1))),at.appendChild(p)}function Hu(){if(!Be)return;let o=A.getColumnLayout(),d=A.getSummaries(),f=new Map(A.getSummaryDefs().map(y=>[y.columnId,y]));if(ne.textContent="",ne.style.width=`${o.totalWidth+be}px`,be>0){let y=k("kanuni-datagrid-footer-cell kanuni-datagrid-footer-cell--pinned");y.style.width=`${be}px`,y.style.insetInlineStart="0px",ne.appendChild(y)}let p=!1;for(let y of ve){if(!y.pinned&&!p){if(se>0){let x=k("kanuni-datagrid-spacer");x.style.width=`${se}px`,ne.appendChild(x)}p=!0}let b=f.get(y.id),v=y.def.dataType==="number",F=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(F.setAttribute("role","gridcell"),F.setAttribute("data-column-id",y.id),F.setAttribute("data-summary-type",b?.type??""),F.style.width=`${y.width}px`,y.pinned==="left"&&(F.style.insetInlineStart=`${y.inset}px`),y.pinned==="right"&&(F.style.insetInlineEnd=`${y.inset}px`),b){F.title=`${Mr(b,Nu)} \u2014 ${y.def.headerName??y.id}`;let x=k("kanuni-datagrid-footer-value","span");x.textContent=Ir(b,d[tt(b.columnId,b.type)],y.def),F.appendChild(x)}else{let x=k("kanuni-datagrid-footer-hint","span");x.textContent=c?"\xB7":"",F.appendChild(x)}ne.appendChild(F)}}function zu(){let o=(d,f,p)=>{d.textContent="",f.forEach((y,b)=>{let v=nn("data");an(v,{kind:"data",key:`__pinned-${p}-${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(wt,g,"top"),C.length>0&&o(Ur,C,"bottom")}let st=null,Wu=null;function de(){Wu?.(),Wu=null,st?.remove(),st=null}function cn(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 Ze(o,d,f="kanuni-datagrid-filter-popup"){de(),st=k(`${Pr(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),st.appendChild(p),document.body.appendChild(st),cn(p,o);let y=st,b=F=>{y.contains(F.target)||de()},v=F=>{F.key==="Escape"&&de()};document.addEventListener("pointerdown",b,!0),document.addEventListener("keydown",v,!0),Wu=()=>{document.removeEventListener("pointerdown",b,!0),document.removeEventListener("keydown",v,!0)}}let Je=25,hn=8,pn=new Map,mn=0;function Fa(o,d){let f=d.getBoundingClientRect(),p=++mn;Ze({left:f.left,top:f.bottom+2},y=>{let b=[],v=!0,F=new Set,x=!1,w=0,B="",R=[],M=null,L="",P=[],K=document.createElement("input");K.type="search",K.className="kanuni-datagrid-filter-search",K.placeholder=I.search,K.setAttribute("data-testid","dg-filter-search");let z=k("kanuni-datagrid-filter-actions"),ie=document.createElement("button");ie.type="button",ie.textContent=I.filterSelectAll,ie.addEventListener("click",()=>{x=!0,F=new Set(b.map(G=>G.label)),De()});let ye=document.createElement("button");ye.type="button",ye.textContent=I.clear,ye.addEventListener("click",()=>{x=!0,F=new Set,De()}),z.append(ie,ye);let re=k("kanuni-datagrid-filter-list");re.setAttribute("role","listbox"),re.setAttribute("aria-multiselectable","true");let ct=document.createElement("div");ct.style.position="relative";let xe=document.createElement("div");ct.appendChild(xe),re.appendChild(ct);let ou=()=>{let G=B.trim().toLowerCase();if(!G){R=b;return}M||(M=b.map(q=>q.label.toLowerCase())),R=L!==""&&G.includes(L)?P.filter(q=>q.label.toLowerCase().includes(G)):b.filter((q,X)=>M[X].includes(G)),L=G,P=R},De=()=>{if(re.setAttribute("aria-busy",String(v)),re.setAttribute("aria-setsize",String(R.length)),v){ct.style.height="",xe.textContent="";let Ce=k("kanuni-datagrid-filter-empty");Ce.textContent=I.filterLoading,xe.appendChild(Ce);return}if(R.length===0){ct.style.height="",xe.style.transform="",xe.textContent="";let Ce=k("kanuni-datagrid-filter-empty");Ce.textContent=I.filterNoMatch,xe.appendChild(Ce);return}let G=re.clientHeight||240,q=Math.max(0,Math.floor(re.scrollTop/Je)-hn),X=Math.ceil(G/Je)+hn*2,fe=Math.min(q,Math.max(0,R.length-1)),Wa=Math.min(R.length,fe+X);ct.style.height=`${R.length*Je}px`,xe.style.transform=`translateY(${fe*Je}px)`,xe.textContent="";for(let Ce=fe;Ce<Wa;Ce++){let ht=R[Ce],Fe=k("kanuni-datagrid-filter-item");Fe.setAttribute("role","option"),Fe.setAttribute("aria-selected",String(F.has(ht.label))),Fe.tabIndex=0,Fe.setAttribute("data-value",ht.label),Fe.setAttribute("data-index",String(Ce)),Ce===w&&Fe.classList.add("kanuni-datagrid-filter-item--active");let Bt=document.createElement("input");Bt.type="checkbox",Bt.readOnly=!0,Bt.checked=F.has(ht.label),Bt.tabIndex=-1;let Kn=document.createElement("span");Kn.textContent=ht.label===""?I.filterBlank:ht.label,Fe.append(Bt,Kn),Fe.addEventListener("click",()=>Gn(ht.label)),Fe.addEventListener("focus",()=>{w=Ce}),xe.appendChild(Fe)}},Gn=G=>{x=!0,F.has(G)?F.delete(G):F.add(G);for(let q of xe.querySelectorAll(".kanuni-datagrid-filter-item")){if(q.getAttribute("data-value")!==G)continue;q.setAttribute("aria-selected",String(F.has(G)));let X=q.querySelector("input");X&&(X.checked=F.has(G))}};re.addEventListener("scroll",()=>{pn.set(o,re.scrollTop),De()}),K.addEventListener("input",()=>{B=K.value,w=0,ou(),De()});let ur=G=>{if(R.length===0)return;w=Math.max(0,Math.min(R.length-1,G));let q=w*Je,X=re.clientHeight||240;q<re.scrollTop?re.scrollTop=q:q+Je>re.scrollTop+X&&(re.scrollTop=q+Je-X),De(),y.querySelector(`.kanuni-datagrid-filter-item[data-index="${w}"]`)?.focus()},On=()=>{if(v)return;let G;if(F.size===b.length)G=null;else{let q=F.has(""),X=b.filter(fe=>fe.label!==""&&F.has(fe.label));X.length===0?G=q?{columnId:o,operator:"isnull"}:null:q?G={logic:"or",nodes:[{columnId:o,operator:"in",value:X.map(fe=>fe.value)},{columnId:o,operator:"isnull"}]}:G={columnId:o,operator:"in",value:X.map(fe=>fe.value)}}A.setColumnFilter(o,G,Sr),de()};y.tabIndex=-1,y.addEventListener("keydown",G=>{let q=G.target===K;if(G.key==="Backspace"&&!q){G.preventDefault(),K.focus(),B=B.slice(0,-1),K.value=B,w=0,ou(),De();return}if(G.key==="ArrowDown"){G.preventDefault(),ur(q?0:w+1);return}if(G.key==="ArrowUp"){G.preventDefault(),ur(q?R.length-1:w-1);return}if(!q&&(G.key==="Home"||G.key==="End")){G.preventDefault(),ur(G.key==="Home"?0:R.length-1);return}if(G.key===" "&&!q){G.preventDefault();let X=R[w];X&&Gn(X.label);return}if(G.key==="Enter"){G.preventDefault(),On();return}!q&&G.key.length===1&&G.key!==" "&&!G.ctrlKey&&!G.metaKey&&!G.altKey&&(G.preventDefault(),K.focus(),B+=G.key,K.value=B,w=0,ou(),De())});let Vn=k("kanuni-datagrid-filter-footer"),lu=document.createElement("button");lu.type="button",lu.textContent=I.cancel,lu.addEventListener("click",()=>de());let Pe=document.createElement("button");Pe.type="button",Pe.className="kanuni-datagrid-filter-primary",Pe.setAttribute("data-testid","dg-filter-apply"),Pe.textContent=I.apply,Pe.disabled=!0,Pe.addEventListener("click",On),Vn.append(lu,Pe),y.append(K,z,re,Vn),De(),queueMicrotask(()=>{K.isConnected&&K.focus()}),A.getDistinctValueSetAsync(o).then(G=>{if(mn!==p||!y.isConnected)return;b=G.entries,M=null,L="",v=!1,Pe.disabled=!1;let q=Si(A.getColumnFilter(o,Sr)??A.getColumnFilter(o,It),b);q?(x=!0,F=new Set(q)):x||(F=new Set(b.map(fe=>fe.label))),ou();let X=pn.get(o);De(),X&&(re.scrollTop=X,De())})})}function Uu(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 gn(o,d,f){let p=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(),de()}),p.appendChild(y),p}let Sa=/Mac|iPhone|iPad|iPod/.test(navigator.platform??"")?"\u2318":"Ctrl+";function $u(o,d,f){let p=null,y=()=>{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 F=k("kanuni-datagrid-menu-row"),x=document.createElement("button");if(x.type="button",x.className="kanuni-datagrid-menu-item",x.setAttribute("role","menuitem"),x.setAttribute("data-item-index",String(v)),b.disabled&&(x.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),x.appendChild(R)}let w=k("kanuni-datagrid-menu-label","span");if(w.textContent=b.label??"",x.appendChild(w),b.shortcut){let R=k("kanuni-datagrid-menu-shortcut","span");R.textContent=b.shortcut,x.appendChild(R)}let B=b.items??[];if(B.length>0){let R=k("kanuni-datagrid-menu-caret","span");R.textContent="\u203A",x.appendChild(R),x.setAttribute("aria-haspopup","menu"),x.setAttribute("aria-expanded","false");let M=()=>{y();let L=k("kanuni-datagrid-context-menu kanuni-datagrid-submenu");L.setAttribute("role","menu");let P=x.getBoundingClientRect();L.style.left=`${P.right}px`,L.style.top=`${Math.max(0,P.top-4)}px`;for(let K of B){if(K.separator){let ye=k("kanuni-datagrid-menu-separator");ye.setAttribute("role","separator"),L.appendChild(ye);continue}let z=document.createElement("button");z.type="button",z.className="kanuni-datagrid-menu-item",z.setAttribute("role","menuitem"),K.disabled&&(z.disabled=!0);let ie=k("kanuni-datagrid-menu-label","span");ie.textContent=K.label??"",z.appendChild(ie),z.addEventListener("click",()=>{K.onSelect?.(f),de()}),L.appendChild(z)}o.parentElement?.appendChild(L),cn(L,{left:P.right,top:Math.max(0,P.top-4)}),p=L,x.setAttribute("aria-expanded","true")};x.addEventListener("mouseenter",M),x.addEventListener("click",M)}else x.addEventListener("mouseenter",y),x.addEventListener("click",()=>{b.onSelect?.(f),de()});F.appendChild(x),o.appendChild(F)})}let fn=o=>{let f=o.target.closest(".kanuni-datagrid-row");if(!f||f.classList.contains("kanuni-datagrid-group-row"))return;let p=Ie(o);if(p?.columnId&&A.notifyCell("cellContextMenu",p.node,p.rowIndex,p.columnId),!he&&!Ae||!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 y={row:p.node.data,node:p.node,rowIndex:p.rowIndex,columnId:p.columnId,selectedKeys:A.getSelectedKeys()},b=(typeof he=="function"?he(y):he)??[],v=[...b,...Ba(y,b.length>0)];v.length===0&&!Ae||Ze({left:o.clientX,top:o.clientY},F=>{if(F.setAttribute("role","menu"),$u(F,v,y),Ae){if(v.length>0){let x=k("kanuni-datagrid-menu-separator");x.setAttribute("role","separator"),F.appendChild(x)}F.append(gn(I.menuCopy??"Copy",`${Sa}C`,()=>Uu()),gn(I.menuCopyWithHeaders??"Copy with headers",null,()=>Uu({includeHeaders:!0})))}},"kanuni-datagrid-context-menu")};function Ba(o,d){if(!We?.onChange||We.menu===!1)return[];let f=o.columnId;if(!f)return[];let p=o.node.key,y=Ou(p,f,o.row),b=[];return d&&b.push({separator:!0,id:"__note-sep"}),b.push({id:"__note-edit",label:y?I.editNote:I.addNote,onSelect:()=>ka(p,f,o.row,y??"")}),y&&b.push({id:"__note-delete",label:I.deleteNote,onSelect:()=>We.onChange?.({rowKey:p,columnId:f,row:o.row,text:null})}),b}function ka(o,d,f,p){let b=($.querySelector(`[data-row-key="${CSS.escape(String(o))}"] [data-column-id="${CSS.escape(d)}"]`)??$).getBoundingClientRect();queueMicrotask(()=>{Ze({left:b.left,top:b.bottom+2},v=>{v.setAttribute("aria-label",I.noteEditorAria);let F=document.createElement("textarea");F.className="kanuni-datagrid-note-input",F.rows=4,F.value=p,F.setAttribute("aria-label",I.noteEditorAria),F.placeholder=I.notePlaceholder,F.setAttribute("data-testid","dg-note-input");let x=()=>{let M=F.value.trim();de(),We?.onChange?.({rowKey:o,columnId:d,row:f,text:M===""?null:M})};F.addEventListener("keydown",M=>{M.key==="Enter"&&(M.ctrlKey||M.metaKey)&&(M.preventDefault(),x()),M.key==="Escape"&&(M.preventDefault(),de())});let w=k("kanuni-datagrid-note-actions"),B=document.createElement("button");B.type="button",B.className="kanuni-datagrid-note-cancel",B.textContent=I.cancel,B.addEventListener("click",()=>de());let R=document.createElement("button");R.type="button",R.className="kanuni-datagrid-note-save",R.setAttribute("data-testid","dg-note-save"),R.textContent=I.save,R.addEventListener("click",x),w.append(B,R),v.append(F,w),queueMicrotask(()=>{F.focus(),F.select()})},"kanuni-datagrid-filter-popup kanuni-datagrid-note-editor")})}function Ra(o){_e!==o&&(_e=o,o?($.insertBefore(le,U),ju()):le.remove())}function Na(o){if(Be!==o){if(Be=o,o){if(Ue){let d=g.length>0?wt:me;oe.insertBefore(ne,d)}else oe.append(ne);Hu()}else ne.remove();wt.style.setProperty("--dg-pinned-gap",String(Tu+(Be&&Ue?1:0)))}}function qu(o){let d=xu($,o);d!==null&&A.setColumnWidth(o,d)}function Ta(o,d){let f=A.getColumnModel().getDef(o),p={columnId:o,headerName:f?.headerName??o},y=vu(p,{controller:A,t:I,groupPanelVisible:_e,footerVisible:Be,onToggleGroupPanel:()=>Ra(!_e),onToggleFooter:()=>Na(!Be),onOpenFieldChooser:()=>Cn(d),onBestFit:qu,onBestFitAll:()=>{for(let v of A.getColumnStates())v.visible&&qu(v.id)},maxGroupLevels:Te?Number.POSITIVE_INFINITY:1}),b=typeof ae=="function"?ae(p,y):y;b.length!==0&&Ze(d,v=>{v.setAttribute("role","menu"),$u(v,b,p)},"kanuni-datagrid-context-menu")}function Ma(o,d){let f=A.getColumnModel().getDef(o),p=A.getColumnSummary(o),y={columnId:o,headerName:f?.headerName??f?.field??o},b=[{id:"none",label:I.noTotal,disabled:p===null,onSelect:()=>A.setColumnSummary(o,null)},{id:"sep",separator:!0},..._i(f?.dataType).map(v=>({id:v,label:Nu[v],disabled:p?.type===v,onSelect:()=>A.setColumnSummary(o,v)}))];Ze(d,v=>{v.setAttribute("role","menu"),$u(v,b,y)},"kanuni-datagrid-context-menu")}function Cn(o){Ze(o,d=>{let f=k("kanuni-datagrid-filter-list");for(let p of A.getColumnStates()){let y=document.createElement("label");y.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"),F=A.getColumnModel().getDef(p.id);v.textContent=F?.headerName??p.id,y.append(b,v),f.appendChild(y)}d.appendChild(f)},"kanuni-datagrid-filter-popup kanuni-datagrid-column-chooser")}let Qe=null,_u=null,tu=o=>{le.classList.toggle("kanuni-datagrid-group-panel--over",o)};function wn(o,d,f){let p=A.getGroupLevels();if(o===d)return;let y=p.filter(F=>F!==o),b=y.indexOf(d);if(b<0)return;let v=f==="before"?b:b+1;_u=o,A.groupBy([...y.slice(0,v),o,...y.slice(v)])}function yn(o,d){let f=A.getGroupLevels(),p=f.indexOf(o),y=p+d;p<0||y<0||y>=f.length||wn(o,f[y],d===-1?"before":"after")}function En(o,d){if(!o)return;let f=A.getGroupLevels();if(f.includes(o))return;let p=Te?Number.POSITIVE_INFINITY:1;if(f.length>=p){A.groupBy([...f.slice(0,p-1),o]);return}let y=d??f.length;A.groupBy([...f.slice(0,y),o,...f.slice(y)])}function ju(){if(!_e)return;le.textContent="";let o=A.getGroupLevels();if(o.length===0){let x=k("kanuni-datagrid-group-panel-hint","span");x.textContent=I.groupPanelHint??"Drag a column header here to group by it",le.appendChild(x);return}let d=x=>A.getColumnModel().getDef(x)?.headerName??x,f=k("kanuni-datagrid-group-levels"),p=(x,w)=>x<w.top+w.height/2?"before":"after",y=(x,w)=>{for(let B of le.querySelectorAll(".kanuni-datagrid-group-level"))B.classList.remove("kanuni-datagrid-group-level--drop-before","kanuni-datagrid-group-level--drop-after");x&&w&&x.classList.add(`kanuni-datagrid-group-level--drop-${w}`)};o.forEach((x,w)=>{let B=k("kanuni-datagrid-group-level");B.style.setProperty("--dg-group-level",String(w)),B.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",`${mt(I.groupLevelAria,{n:w+1})}: ${d(x)}`),R.addEventListener("dragstart",P=>{Qe=x,P.dataTransfer&&(P.dataTransfer.effectAllowed="move",P.dataTransfer.setData("text/x-kanuni-column",x))}),R.addEventListener("dragend",()=>{Qe=null,y(null,null)}),R.addEventListener("keydown",P=>{let K=P.ctrlKey||P.metaKey;K&&(P.key==="ArrowUp"||P.key==="ArrowLeft")?(P.preventDefault(),yn(x,-1)):K&&(P.key==="ArrowDown"||P.key==="ArrowRight")?(P.preventDefault(),yn(x,1)):(P.key==="Delete"||P.key==="Backspace")&&(P.preventDefault(),A.groupBy(o.filter(z=>z!==x)))}),B.addEventListener("dragover",P=>{!Qe&&!(P.dataTransfer?.types.includes("text/x-kanuni-column")??!1)||(P.preventDefault(),P.stopPropagation(),y(B,p(P.clientY,B.getBoundingClientRect())))}),B.addEventListener("drop",P=>{P.preventDefault(),P.stopPropagation();let K=p(P.clientY,B.getBoundingClientRect());y(null,null),tu(!1);let z=Qe;if(Qe=null,z){wn(z,x,K);return}let ie=P.dataTransfer?.getData("text/x-kanuni-column");ie&&En(ie,K==="before"?w:w+1)}),o.length>1){let P=k("kanuni-datagrid-group-chip-level","span");P.textContent=String(w+1),R.appendChild(P)}let M=document.createElement("span");M.textContent=d(x);let L=document.createElement("button");L.type="button",L.setAttribute("aria-label",mt(I.groupRemoveAria,{column:d(x)})),L.textContent="\xD7",L.addEventListener("click",()=>{A.groupBy(o.filter(P=>P!==x))}),L.draggable=!1,R.append(M,L),B.appendChild(R),f.appendChild(B),_u===x&&(_u=null,queueMicrotask(()=>R.focus()))}),le.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 F=document.createElement("button");F.type="button",F.textContent="Collapse all",F.addEventListener("click",()=>A.collapseAllGroups()),b.append(v,F),le.appendChild(b)}if(_e){let o=d=>d.dataTransfer?.types.includes("text/x-kanuni-column")??!1;le.addEventListener("dragover",d=>{o(d)&&(d.preventDefault(),tu(!0))}),le.addEventListener("dragleave",d=>{let f=d.relatedTarget;f&&le.contains(f)||tu(!1)}),le.addEventListener("drop",d=>{tu(!1);let f=d.dataTransfer?.getData("text/x-kanuni-column");if(f){if(d.preventDefault(),Qe){Qe=null;return}En(f)}})}let An="";function bn(){if(!Y)return;let o=[mt(I.announceRows,{n:A.getVisibleCount()})],d=A.getSort();if(d.length>0){let y=d.map(b=>{let v=A.getColumnModel().getDef(b.columnId),F=v?.headerName??v?.field??b.columnId,x=b.direction==="desc"?I.announceDescending:I.announceAscending;return`${F} ${x}`}).join(", ");o.push(mt(I.announceSortedBy,{columns:y}))}let f=A.getSelectedCount();f>0&&o.push(mt(I.announceSelected,{n:f}));let p=o.join(", ");p!==An&&(An=p,Et.textContent=p)}function vn(){if(!W)return;qe.textContent="";let o=Gi(A.getEffectiveFilter(),A.getColumnModel(),{..._,labels:{...kr(I),..._?.labels}});if(!o&&W!=="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=I.filterRemove,f.setAttribute("aria-label",I.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=I.filterToggle,p.setAttribute("aria-label",I.filterToggle),p.setAttribute("data-testid","dg-filter-panel-toggle"),p.addEventListener("change",()=>A.setFilterEnabled(p.checked));let y=k("kanuni-datagrid-filter-panel-text","span");if(y.setAttribute("data-testid","dg-filter-panel-text"),y.textContent=o??I.filterNone,o&&(y.title=o),qe.append(f,p,y),Z){let b=document.createElement("button");b.type="button",b.className="kanuni-datagrid-filter-panel-builder",b.title=I.filterEditBuilder,b.setAttribute("aria-label",I.filterEditBuilder),b.setAttribute("data-testid","dg-filter-panel-builder"),b.textContent="\u25BE",b.addEventListener("click",Z),qe.appendChild(b)}}let Yu=new Set,Ia=A.events.on("cellsFlashed",({rowKeys:o,columnIds:d,duration:f})=>{let p=o.length?o.map(F=>`[data-row-key="${CSS.escape(String(F))}"]`).join(","):".kanuni-datagrid-row",y=d.length?d.map(F=>`[data-column-id="${CSS.escape(F)}"]`).join(","):"[data-column-id]",b=[];Q.querySelectorAll(p).forEach(F=>{F.querySelectorAll(y).forEach(x=>b.push(x))});for(let F of b)F.classList.remove("kanuni-datagrid-cell--flash");$.offsetWidth;for(let F of b)F.classList.add("kanuni-datagrid-cell--flash");let v=setTimeout(()=>{for(let F of b)F.classList.remove("kanuni-datagrid-cell--flash");Yu.delete(v)},f);Yu.add(v)});function Ie(o){let d=o.target,f=d.closest(".kanuni-datagrid-row");if(!f||!Q.contains(f))return null;let p=f.getAttribute("data-row-key");if(p===null)return null;let y=A.getRows(),b=y.findIndex(F=>String(F.key)===p);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 xn=o=>{let d=Ie(o);d&&(Fu?.(d.node),A.notifyRow("rowClicked",d.node,d.rowIndex),d.columnId&&A.notifyCell("cellClicked",d.node,d.rowIndex,d.columnId))},Dn=o=>{let d=Ie(o);if(d){if(Vr){let f=tr(d);f&&Vr(f)}Ct?.(d.node),A.notifyRow("rowDoubleClicked",d.node,d.rowIndex),d.columnId&&A.notifyCell("cellDoubleClicked",d.node,d.rowIndex,d.columnId)}};Q.addEventListener("click",xn),Q.addEventListener("dblclick",Dn);function La(o){let d=0,f=we.querySelector(`[data-column-id="${CSS.escape(o)}"]`);f&&(d=f.scrollWidth),Q.querySelectorAll(`[data-column-id="${CSS.escape(o)}"]`).forEach(p=>{p.scrollWidth>d&&(d=p.scrollWidth)}),d>0&&A.setColumnWidth(o,d+12,!0)}function Pa(){if(N)for(let o of we.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 Zu=!1,Fn=!1,dt=null;function uu(){dt!==null&&(clearTimeout(dt),dt=null)}function ru(o){yt.style.display=o?"":"none"}function nu(){let o=A.getOverlay();if(Wt.style.display=o==="noRows"?"":"none",Ru===!1){uu(),ru(!1);return}if(!(o==="loading"&&(Zu||!Fn))){uu(),ru(!1);return}if(Zu||Wr<=0){uu(),ru(!0);return}dt!==null||yt.style.display===""||(dt=setTimeout(()=>{dt=null,ge||ru(!0)},Wr))}let Sn=!1,Ju=!1,Qu=!1,Xu=!1,ge=!1;function Ga(){if(Ju=!1,!ge){if(Qu)Qu=!1,Xu&&(Xu=!1,Ye++),Pu(),Gu(),Ku(),zu();else{let o=se;Pu(),se!==o&&(Ye++,Gu(),Ku(),zu())}Vu(),un(),Hu(),dn(),Pa(),ju(),vn(),bn(),nu()}}function er(o){ge||(o&&(Qu=!0),!Ju&&(Ju=!0,queueMicrotask(Ga)))}let Oa=[...nt?[A.events.on("focusedRowChanged",o=>nt({rowKey:o.rowKey,row:o.row}))]:[],...Ks.map(o=>A.events.on(o,()=>er(!0))),...Hs.map(o=>A.events.on(o,()=>{Xu=!0})),...zs.map(o=>A.events.on(o,()=>er(!1))),A.events.on("overlayChanged",o=>{Zu=o.manual===!0&&o.overlay==="loading",ge||nu()}),A.events.on("busyChanged",o=>{Fn=o.background===!0,ge||nu()}),A.events.on("paginationChanged",()=>{ge||er(!1)}),A.events.on("scrollRequested",o=>{if(ge)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(()=>{ge||Math.abs(U.scrollTop-d)<=1||(U.scrollTop=d,A.setScroll(U.scrollTop,Math.abs(U.scrollLeft)))},0)}),...V==="fitGrid"?[A.events.on("gridSizeChanged",()=>A.sizeColumnsToFit())]:[],...V==="fitCells"?[A.events.on("firstDataRendered",()=>{ge||Sn||(Sn=!0,queueMicrotask(()=>{if(!ge)for(let o of A.getColumnStates())o.visible&&qu(o.id)}))})]:[]];V==="fitGrid"&&A.sizeColumnsToFit();function tr(o){if(!o.columnId||o.node.kind!=="data")return null;let d=ve.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 Bn=o=>{let d=o.target;if(Or){let F=Ie(o),x=F?tr(F):null;x&&Or(x,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 y=A.getRows().find(F=>String(F.key)===p);if(!y||y.kind!=="data")return;A.handleRowClick(y.key,{ctrlKey:o.ctrlKey||Ut&&!o.shiftKey,metaKey:o.metaKey,shiftKey:o.shiftKey});let b=d.closest(".kanuni-datagrid-cell"),v=b?ve.find(F=>b.id.endsWith(`-${F.id}`))?.id:void 0;v&&A.focusCell(y.key,v)},kn=o=>{if(!Ht)return;let f=o.target.closest(".kanuni-datagrid-cell");if(!f||!Q.contains(f)||o.relatedTarget?.closest?.(".kanuni-datagrid-cell")===f)return;let y=Ie(o),b=y?tr(y):null;b&&Ht(b,o)};Q.addEventListener("mousedown",Bn),Q.addEventListener("contextmenu",fn),Ht&&Q.addEventListener("mouseover",kn),qt&&(me.addEventListener("dragstart",pa),me.addEventListener("dragover",ma),me.addEventListener("drop",ga),me.addEventListener("dragend",fa),me.addEventListener("dragleave",Ca)),$.tabIndex=0;let Rn=o=>{let d=o.target;if(d.tagName==="INPUT"||d.tagName==="TEXTAREA"||d.isContentEditable)return;let f=Ui({key:o.key,ctrlKey:o.ctrlKey,metaKey:o.metaKey,shiftKey:o.shiftKey,altKey:o.altKey});if(!f)return;if(f.type==="copy"){Uu();return}if(f.type==="activate"){if(Ct){let b=A.getFocus(),v=b?A.getRows().find(F=>F.key===b.rowKey):void 0;v&&Ct(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(x=>x.state.id===A.getFocus()?.columnId),F=A.ensureVisible(p.rowIndex,v===-1?void 0:v);F&&(F.scrollTop!==void 0&&(U.scrollTop=F.scrollTop),F.scrollLeft!==void 0&&(U.scrollLeft=F.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",Rn);let Va=Hr?Oi(A,Hr):null,Ka=typeof ku=="object"?ku.delay??400:400,Ft=null,iu=null;function St(){iu&&clearTimeout(iu),iu=null,Ft?.remove(),Ft=null}let Ha=o=>o.scrollWidth>o.clientWidth+1||o.scrollHeight>o.clientHeight+1;function za(o){let f=o.closest(".kanuni-datagrid-row")?.getAttribute("data-row-key"),p=ve.find(F=>o.id.endsWith(`-${F.id}`));if(!f||!p)return null;let y=A.getRows().find(F=>String(F.key)===f);if(!y||y.kind!=="data")return null;let b=p.def,v=Ou(y.key,p.id,y.data);if(v)return v;if(typeof b.tooltip=="function")return b.tooltip({value:A.getColumnModel().getCellValue(y.data,p.id),row:y.data,node:y,column:b})??null;if(typeof b.tooltip=="string")return b.tooltip;if(b.tooltipField){let F=y.data[b.tooltipField];return F==null?null:String(F)}return Ha(o)?o.textContent??null:null}let Nn=o=>{if(ku===!1)return;St();let d=o.target.closest(".kanuni-datagrid-cell");!d||!Q.contains(d)||(iu=setTimeout(()=>{let f=za(d);if(!f)return;let p=d.getBoundingClientRect();Ft=k(`${Pr(t)} kanuni-datagrid-portal`);let y=k("kanuni-datagrid-tooltip");y.setAttribute("role","tooltip"),y.textContent=f,y.style.position="fixed",y.style.left=`${p.left}px`,y.style.top=`${p.bottom+4}px`,y.style.zIndex="1001",Ft.appendChild(y),document.body.appendChild(Ft)},Ka))},Tn=()=>St();$.addEventListener("pointerover",Nn),$.addEventListener("pointerout",Tn),U.addEventListener("scroll",St,{passive:!0});let Mn=()=>{if(A.setScroll(U.scrollTop,Math.abs(U.scrollLeft)),Le)for(let o of In())o.scroller.scrollLeft!==U.scrollLeft&&(o.scroller.scrollLeft=U.scrollLeft)};U.addEventListener("scroll",Mn,{passive:!0});let Le=null,In=()=>{if(!ee||!Le)return[];let o=Gt.get(ee);return o?[...o].filter(d=>d!==Le):[]},Ln=null;if(ee){Le={controller:A,scroller:U};let o=Gt.get(ee)??new Set;o.add(Le),Gt.set(ee,o),Ln=A.events.on("columnStateChanged",()=>{if(Lr.has(ee))return;let d=In();if(d.length===0)return;let f=A.getColumnStates();Lr.add(ee);try{for(let p of d)p.controller.applyColumnStates(f)}finally{Lr.delete(ee)}})}let Pn=()=>{A.setViewportSize(U.clientWidth,U.clientHeight),U.style.setProperty("--dg-viewport-width",`${U.clientWidth}px`);let o=me.getBoundingClientRect(),d=oe.getBoundingClientRect();A.setChromeOffsets(o.top-d.top,d.bottom-o.bottom),Yi(U,A)};Pn();let au=null;return typeof ResizeObserver<"u"&&(au=new ResizeObserver(Pn),au.observe(U),au.observe(oe)),Pu(),Gu(),Ku(),Da(),zu(),Vu(),Hu(),dn(),ju(),vn(),bn(),nu(),bt?.always&&Iu(!0),{controller:A,element:$,setData:o=>A.setData(o),setColumns:o=>A.setColumns(o),destroy:()=>{if(!ge){if(ge=!0,Oa.forEach(o=>o()),au?.disconnect(),tn?.(),vt&&(vt=!1,rt--,rt<=0&&(rt=0,document.documentElement.classList.remove("kanuni-datagrid-printing"))),Ln?.(),ee&&Le){let o=Gt.get(ee);o?.delete(Le),o&&o.size===0&&Gt.delete(ee),Le=null}U.removeEventListener("scroll",Mn),Q.removeEventListener("mousedown",Bn),Q.removeEventListener("contextmenu",fn),Ht&&Q.removeEventListener("mouseover",kn),Q.removeEventListener("click",xn),Q.removeEventListener("dblclick",Dn),Ia(),uu();for(let o of Yu)clearTimeout(o);$.removeEventListener("keydown",Rn),$.removeEventListener("pointerover",Nn),$.removeEventListener("pointerout",Tn),U.removeEventListener("scroll",St),St(),Va?.(),de(),A.dispose(),$.remove()}}}}return Za(Zs);})();
11
+ Cause:`,e))}var ss=1e5,ds=12,cs=2e3,hs=500,fi=2e5;function Ci(){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 Ve=class extends Error{constructor(e){super(`[datagrid] ${e}`),this.name="WorkerRequestAbandoned"}},wu=class extends Error{constructor(){super("[datagrid] compute cancelled"),this.name="WorkerRequestCancelled"}};function ps(){return typeof Worker<"u"}function qi(e,t){if(e){if("nodes"in e){for(let u of e.nodes)qi(u,t);return}t.add(e.columnId)}}function xr(e,t){let u=new Set;for(let r of t.sort)u.add(r.columnId);if(qi(t.filter,u),(t.searchText??"").trim().length>0)for(let r of e.getOrder())e.getState(r)?.visible&&u.add(r);return[...u].filter(r=>e.getState(r)!==void 0)}var fu=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 Ii;constructor(e,t){this.rows=e,this.options=t,this.threshold=t.threshold??os,this.fallback=new ns(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;let a=i.usesSortValue?l=>u.getSortValue(l,n):l=>u.getCellValue(l,n),s=[];if(i.kind==="numeric"){let l=i.dataType==="date"?Wi:zi,m=[],c=i.hasSearch?[]:void 0;for(let h of t){let E=a(this.rows[h]);if(xu(E))m.push(Number.NaN),c?.push(null);else{if(!i.hasSearch&&typeof E!="number")return;m.push(l(E)),c?.push(String(E))}s.push(h)}r.push({columnId:n,kind:"numeric",indices:s,numbers:m,labels:c})}else{let l=[];for(let m of t){let c=a(this.rows[m]);l.push(xu(c)?null:String(c)),s.push(m)}r.push({columnId:n,kind:"text",indices:s,labels:l})}}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()||es(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 Ve||u instanceof wu)throw u;return this.workerBroken=!0,this.teardownWorker(),ls(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(as());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 wu)}}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 $l(this.rows,e,t,u);let a=Ui(this.rows,e,t,u),s=cs;for(;;){let l=performance.now(),m=a.step(s),c=performance.now()-l;if(!m)break;let h=c>0?Math.round(s*ds/c):fi;if(s=Math.min(fi,Math.max(hs,h)),await Ci(),this.encodeToken!==i)throw new Ve("encode cancelled");n?.(a.done/a.total)}return a.finish()}toWire(e,t,u,r,n){if(this.encodedMeta.set(t,{kind:r.kind,hasSearch:r.kind==="numeric"&&!!r.searchCodes,usesSortValue:u,dataType:e.getDataType(t)}),r.kind==="numeric"){let a={columnId:t,kind:"numeric",buffer:r.values.buffer};return n.push(a.buffer),r.searchCodes&&r.searchDictionary&&(a.searchBuffer=r.searchCodes.buffer,a.searchDictionary=r.searchDictionary,n.push(a.searchBuffer)),a}let i={columnId:t,kind:"text",buffer:r.codes.buffer,dictionary:r.dictionary};return n.push(i.buffer),i}async sendColumns(e,t,u,r,n=!1){let i=this.dataVersion,a=[],s=[],l=this.rows.length>=ss&&u.length>0,m=this.encodeToken;for(let h=0;h<u.length;h++){if(l){if(await Ci(),this.encodeToken!==m)throw new Ve("encode cancelled");n||this.options.onEncodeProgress?.(h/u.length)}let E=t.getDef(u[h])?.calculateSortValue!=null,g=await this.encodeOne(t,u[h],E,l,n?void 0:w=>this.options.onEncodeProgress?.((h+w)/u.length),m);a.push(this.toWire(t,u[h],E,g,s))}l&&!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,s),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=xr(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 Ve("data replaced while columns were being encoded")}let a=++this.requestCounter,s=e.getOrder().filter(c=>e.getState(c)?.visible),l=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:s,searchLabelHits:jn(br(e,s,Ar(t.searchText))),locale:this.options.locale??"en"};return u.postMessage(m),l}async aggregate(e,t,u){if(!this.usesWorker()||!Mi(u))return null;try{let r=this.ensureWorker(),n=new Set(xr(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 Ve("data replaced while columns were being encoded");let a=++this.requestCounter,s=e.getOrder().filter(g=>e.getState(g)?.visible),l=new Promise((g,w)=>{this.pendingAggregate.set(a,{resolve:g,reject:w})}),m={action:"aggregate",gridId:this.options.gridId,dataVersion:this.dataVersion,requestId:a,filter:t.filter,searchText:t.searchText,searchColumns:s,searchLabelHits:jn(br(e,s,Ar(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 l,h=c.categories.length,E=new Float64Array(c.values);return{categories:c.categories,series:u.series.map((g,w)=>({label:c.seriesLabels[w]??g.columnId,columnId:g.columnId,aggregate:g.aggregate,values:E.subarray(w*h,(w+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 Ve||r instanceof wu||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 Ve(e);this.pending.forEach(u=>u.reject(t)),this.pending.clear(),this.pendingAggregate.forEach(u=>u.reject(t)),this.pendingAggregate.clear()}};var ms=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),s=Math.max(n,i),l=u&&!this.allMatching?new Set(this.selected):new Set;for(let m=a;m<=s;m++)l.add(t[m]);return!this.allMatching&&mr(l,this.selected)?!1:(this.allMatching=!1,this.selected=l,!0)}selectAll(e){if(this.mode!=="multiple")return!1;let t=new Set(e);return!this.allMatching&&mr(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&&mr(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 mr(e,t){if(e.size!==t.size)return!1;for(let u of e)if(!t.has(u))return!1;return!0}function gs(e){return{count:e.length,keyAt:t=>e[t],indexOf:t=>e.indexOf(t)}}function ut(e,t,u){return e<t?t:e>u?u:e}function gr(e){return e.rows??gs(e.rowKeys??[])}var fs=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=gr(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=gr(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 E=r.keyAt(0);return E===void 0?!1:this.set({rowKey:E,columnId:u[0]})}let a=r.count-1,s=u.length-1,{rowIndex:l,columnIndex:m}=i,c=l;switch(e){case"up":l=ut(l-1,0,a);break;case"down":l=ut(l+1,0,a);break;case"left":m=ut(m-1,0,s);break;case"right":m=ut(m+1,0,s);break;case"pageUp":l=ut(l-n,0,a);break;case"pageDown":l=ut(l+n,0,a);break;case"rowStart":m=0;break;case"rowEnd":m=s;break;case"gridStart":l=0,m=0;break;case"gridEnd":l=a,m=s;break}if(t.isFocusable){let E=l>c?1:l<c?-1:0;l=this.skipUnfocusable(r,l,E,t.isFocusable,c)}let h=r.keyAt(l);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=gr(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=ut(t??0,0,r.count-1),s=r.keyAt(a);return s===void 0?this.clear():this.set({rowKey:s,columnId:i})}},me=(e,t=!0)=>({type:e,preventDefault:t});function _i(e){let t=!!(e.ctrlKey||e.metaKey),u=!!e.shiftKey;switch(e.key){case"ArrowUp":return me(u?"extendSelectionUp":"up");case"ArrowDown":return me(u?"extendSelectionDown":"down");case"ArrowLeft":return me("left");case"ArrowRight":return me("right");case"PageUp":return me("pageUp");case"PageDown":return me("pageDown");case"Home":return me(t?"gridStart":"rowStart");case"End":return me(t?"gridEnd":"rowEnd");case" ":case"Spacebar":return me("toggleSelection");case"Enter":return me("activate");case"Escape":return me("clearSelection");case"a":case"A":return t?me("selectAll"):null;case"c":case"C":return t?me("copy",!1):null;default:return null}}function Cs(e){return e==="up"||e==="down"||e==="left"||e==="right"||e==="pageUp"||e==="pageDown"||e==="rowStart"||e==="rowEnd"||e==="gridStart"||e==="gridEnd"}var ws="__dg_";function ys(e){return e.startsWith(ws)}function Es(e){return e.filter(t=>!ys(t))}function Dr(e){return e.replace(/[\t\r\n]+/g," ")}function As(e,t,u){let r=u.getCellValue(e.data,t);return Dr(bu(u.getDef(t),r,e.data))}function bs(e,t,u={}){let r=u.columnIds??Es(t.runtime().map(i=>i.state.id));if(r.length===0)return"";let n=[];if(u.includeGroupHeaders){let i=r.map(s=>Ne(t.getDef(s))),a=i.reduce((s,l)=>Math.max(s,l.length),0);for(let s=0;s<a;s++){let l=null;n.push(i.map(m=>{let c=m[s]??"",h=c===""?null:m.slice(0,s+1).join("\0"),E=h!==null&&h===l;return l=h,E?"":Dr(c)}).join(" "))}}(u.includeHeaders||u.includeGroupHeaders)&&n.push(r.map(i=>Dr(t.getDef(i)?.headerName??t.getDef(i)?.field??i)).join(" "));for(let i of e)rt(i)&&n.push(r.map(a=>As(i,a,t)).join(" "));return n.join(`
12
+ `)}var vs=5,xs=35e5,Ds=16e6,Fs=4,Ss=3;function wi(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],s=0;for(let g of u)s+=g.state.width,a.push(s);let l=new Array(u.length).fill(null),m=[],c=i;for(let g=0;g<u.length;g++)u[g].state.pinned==="sticky"&&(l[g]=c,c+=u[g].state.width,m.push(g));let h=new Array(r.length),E=0;for(let g=r.length-1;g>=0;g--)h[g]=E,E+=r[g].state.width;return{left:t,center:u,right:r,leftWidth:i,centerWidth:s,rightWidth:E,totalWidth:i+s+E,centerOffsets:a,leftOffsets:n,rightOffsets:h,centerStickyOffsets:l,stickyIndices:m}}var Bs={left:[],center:[],right:[],leftWidth:0,centerWidth:0,rightWidth:0,totalWidth:0,centerOffsets:[0],leftOffsets:[],rightOffsets:[],centerStickyOffsets:[],stickyIndices:[]};function yi(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 fr(e,t,u){return e<t?t:e>u?u:e}var ks=class{rowCount=0;heights;overscanY;overscanX;viewportWidth=0;viewportHeight=0;scrollTop=0;scrollLeft=0;maxScrollOffset=xs;leadWidth=0;headerOffset=0;footerOffset=0;maxCanvasHeight=Ds;layout=Bs;window;constructor(e={}){this.heights=new Zo(e.rowHeight??28),this.overscanY=Math.max(0,e.overscanY??vs),this.overscanX=Math.max(0,e.overscanX??Ss),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 l=this.heights.offsetOf(e),m=l+this.heights.heightOf(e),c=this.virtualTop();l<c?u.scrollTop=this.physicalTop(l,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:s}=this.layout;if(t!=null&&t>=0&&t<r.length){let l=Math.max(0,this.viewportWidth-this.leadWidth-i-a),m=0;for(let E of s)E<t&&(m+=r[E].state.width);let c=n[t],h=n[t+1];s.includes(t)&&c<this.scrollLeft||(c<this.scrollLeft+m?u.scrollLeft=Math.max(0,c-m):h>this.scrollLeft+l&&(u.scrollLeft=h-l))}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-Fs?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:fr(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=fr(this.heights.indexAt(r),0,n),a=fr(this.heights.indexAt(r+this.viewportHeight-1),0,n),s=Math.max(0,i-this.overscanY),l=Math.min(this.rowCount,a+1+this.overscanY),m=this.heights.offsetOf(s)-(r-this.scrollTop);if(u){let c=m+this.heights.offsetOf(l)-this.heights.offsetOf(s);c>t&&(m-=c-t)}return{start:s,end:l,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,s=this.scrollLeft+i,l=yi(t,a,n),m=yi(t,s-1,n),c=Math.max(0,l-this.overscanX),h=Math.min(n,m+1+this.overscanX);return{start:c,end:h,offsetX:t[c]}}};function Rs(e){let{getParentKey:t,parentField:u}=e;if(t)return n=>t(n)??null;let r=u??"parentId";return n=>n[r]??null}function Ns(e,t,u){let r=new Map,n=new Map,i=new Map;for(let l=0;l<e.length;l++)i.set(t(e[l]),l);for(let l=0;l<e.length;l++){let m=t(e[l]),c=u(e[l]);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 l of n.keys()){if(a.has(l))continue;let m=new Set,c=l;for(;c!==null&&!a.has(c);){if(m.has(c)){let h=n.get(c)??null;n.set(c,null);let E=r.get(h);if(E){let w=E.indexOf(c);w>=0&&E.splice(w,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 s=r.get(null);return s&&s.sort((l,m)=>(i.get(l)??0)-(i.get(m)??0)),{childrenOf:r,parentOf:n,sourceIndexOf:i}}function Ts(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 s=e.length!==u.sourceIndexOf.size,l=new Set(i.keys());if(s)for(let g of i.keys()){let w=u.parentOf.get(g)??null;for(;w!==null&&!l.has(w);)l.add(w),w=u.parentOf.get(w)??null}let m=g=>{let w=g.filter(x=>l.has(x));return w.sort((x,S)=>{let M=a.get(x),N=a.get(S);return M!==void 0&&N!==void 0?M-N:M!==void 0?-1:N!==void 0?1:(u.sourceIndexOf.get(x)??0)-(u.sourceIndexOf.get(S)??0)}),w},c=[],h=[],E=m(u.childrenOf.get(null)??[]);for(let g=E.length-1;g>=0;g--)h.push({key:E[g],depth:0});for(;h.length>0;){let{key:g,depth:w}=h.pop(),x=m(u.childrenOf.get(g)??[]),S=x.length>0,M=S&&(s||n(g)),N=i.get(g),O=u.sourceIndexOf.get(g)??-1,z={depth:w,hasChildren:S,expanded:M,ancestorOnly:N===void 0};if(c.push(N?{...N,tree:z}:{kind:"data",key:g,sourceIndex:O,data:r[O],tree:z}),M)for(let J=x.length-1;J>=0;J--)h.push({key:x[J],depth:w+1})}return{nodes:c}}var Fr=(()=>{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 Tt(){return new Promise(e=>Fr(e))}var Cu=1e5,Cr=32768,Ei=65536;async function Ms(e){let{rows:t,getValue:u,collator:r,shouldAbort:n,onProgress:i}=e,a=()=>n?n():!1,s=new Map;for(let w=0;w<t.length;w+=Cu){if(a())return null;let x=Math.min(t.length,w+Cu);for(let S=w;S<x;S++){let M=u(t[S]),N=M==null?"":String(M);s.has(N)||s.set(N,M)}i?.(x/t.length*.2),x<t.length&&await Tt()}let l=[...s.keys()],m=[];for(let w=0;w<l.length;w+=Cr){if(a())return null;m.push(l.slice(w,w+Cr).sort(r.compare)),i?.(.2+Math.min(l.length,w+Cr)/Math.max(1,l.length)*.2),await Tt()}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 w=[];for(let x=0;x<m.length;x+=2){if(x+1===m.length){w.push(m[x]);continue}let S=m[x],M=m[x+1],N=new Array(S.length+M.length),O=0,z=0,J=0,j=Ei;for(;O<S.length&&z<M.length;)if(r.compare(S[O],M[z])<=0?N[J++]=S[O++]:N[J++]=M[z++],--j===0){if(a())return null;await Tt(),j=Ei}for(;O<S.length;)N[J++]=S[O++];for(;z<M.length;)N[J++]=M[z++];if(w.push(N),a())return null;await Tt()}m=w,h++,i?.(.4+Math.min(1,h/c)*.5)}let E=m[0],g=new Array(E.length);for(let w=0;w<E.length;w+=Cu){if(a())return null;let x=Math.min(E.length,w+Cu);for(let S=w;S<x;S++){let M=E[S];g[S]={label:M,value:s.get(M)}}x<E.length&&await Tt()}return i?.(1),g}function Is(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 Ls=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]={[Pt]:t}:delete r[e];else{let n={...r[e]??{}};delete n[Pt],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:Is(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 wr(e,t){return e.toLowerCase().endsWith(`.${t}`)?e:`${e}.${t}`}var Ps=[];function ji(e,t){if(!e)return null;if("nodes"in e){let u=e.nodes.map(r=>ji(r,t)).filter(r=>r!==null);return u.length===0?null:{logic:e.logic,nodes:u}}return t(e.columnId)?e:null}var Sr="__dg_pending_row_",Gs=e=>`${Sr}${e}`;function Os(e){if(typeof e!="string"||!e.startsWith(Sr))return null;let t=Number(e.slice(Sr.length));return Number.isInteger(t)&&t>=0?t:null}function Vs(e){return e==null?[]:typeof e=="string"?[e]:[...e]}var Hs="\0",Ai="",yr=1e3,Ks=150,zs=60,Yi=class{gridId;events=new tl;columns;store;rowModel;debugMode;locale;text;virtual;selection;focus=new fs;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={};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=Ot(e.locale,e.messages),this.columns=new Ul(e.columns,{defaultColumnDef:e.defaultColumnDef,debugMode:this.debugMode}),this.store=new Ls({multiSort:e.sorting?.multi??!1});let t=Vo(e.rowKey);if(this.keyGetter=t,this.rowKeyField=typeof e.rowKey=="string"?e.rowKey:null,io(e.dataSource)?this.rowModel=new ui(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 fu(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 ms(e.selection?.mode??"none"),this.deferredSelection=e.selection?.deferred??!1,this.summaryDefs=e.summaries??[],this.treeData=e.tree??null,this.treeData&&(this.treeParent=Rs(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?.enabled??!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 ks({rowHeight:e.rowHeight,overscanY:e.virtualization?.overscanY,overscanX:e.virtualization?.overscanX}),this.virtual.setColumnLayout(wi(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(ze(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(Hs)}#${t?this.summaryDefs.map(r=>`${r.columnId}:${r.type}`).join(","):""}`;return this.groupTree&&this.groupTreeSignature===u?this.groupTree:(this.setBusy("grouping",null),this.groupTree=wo(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 fu&&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)},Ks)}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(Cs(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?"":bs(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?Gs(t):void 0),indexOf:t=>{let u=Os(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=yr){return this.getDistinctValueSet(e,t).entries}getDistinctValueSet(e,t=yr){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,s=!1;for(let m of n){let c=this.columns.getCellValue(m,e),h=c==null?"":String(c),E=c==null?"":bu(i,c,m);if(!a.has(h)&&(a.set(h,{value:c,label:E}),a.size>t)){a.delete(h),s=!0;break}}let l=[...a.values()].sort((m,c)=>this.collator().compare(m.label,c.label));return this.distinctCache.set(u,l),s?this.distinctTruncated.add(u):this.distinctTruncated.delete(u),{entries:l,truncated:s}}searchDistinctValues(e,t,u=yr){let r=t.trim().toLowerCase();if(!r)return this.getDistinctValueSet(e,u);let n=this.rowModel.getSourceRows?.()??[],i=this.columns.getDef(e),a=new Map,s=!1;for(let l of n){let m=this.columns.getCellValue(l,e),c=m==null?"":String(m),h=m==null?"":bu(i,m,l);if(!(!h.toLowerCase().includes(r)||a.has(c))&&(a.set(c,{value:m,label:h}),a.size>u)){a.delete(c),s=!0;break}}return{entries:[...a.values()].sort((l,m)=>this.collator().compare(l.label,m.label)),truncated:s}}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=Ms({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),s=new Map;for(let c of r)s.set(c,this.columns.getState(c)?.width??0);for(let c=0;c<=r.length&&a.size>0;c++){let h=0;for(let w of a)h+=s.get(w)??0;if(h<=0)break;let E=i/h,g=!1;for(let w of[...a]){let x=(s.get(w)??0)*E,S=this.columns.getDef(w),M=S?.minWidth??zs,N=S?.maxWidth??Number.POSITIVE_INFINITY;if(x<M||x>N){let O=Math.min(Math.max(x,M),N);s.set(w,O),a.delete(w),i-=O,g=!0}else s.set(w,x)}if(!g)break}let l=0;for(let c of r)l+=s.get(c)??0;let m=0;r.forEach((c,h)=>{let E=h===r.length-1?Math.round(l)-m:Math.round(s.get(c)??0);m+=E,this.columns.setWidth(c,E)}),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 ui?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(Eo(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(Ai)}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 s=[];for(let l of a){let m=this.getDataRowNode(l);m&&s.push(m)}return cr(s,this.columns,e,n)}}let i=this.rowModel instanceof fu?this.rowModel:null;if(i?.usesWorker()&&Mi(e)&&!r){let{searchText:a}=this.store.getState(),s=await i.aggregate(this.columns,{sort:[],filter:u==="all"?null:this.runningFilter(),searchText:u==="all"?"":a},e);if(s)return s}if(u==="all"){let a=this.rowModel.getSourceRows?.()??[],s=new Array(a.length);for(let l=0;l<a.length;l++)s[l]=ze(a[l],this.keyGetter(a[l]),l);return cr(s,this.columns,e,n)}return cr(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(Ai)}runSummaryPass(e,t,u,r,n){let i=++this.summaryPassSeq;if(e.length<=1e5){this.busyDepth>0&&this.setBusy("aggregating",null);let h=fo(e,this.columns,t,this.pendingReaders);this.summaryValues=u?{...this.summaryValues,...h}:h,r!==null&&(this.summaryBasis=r);return}let a=Co(this.columns,t,this.pendingReaders),s=1e5,l=e.length,m=0,c=()=>{if(this.disposed||i!==this.summaryPassSeq||n!==this.computeToken)return;let h=Math.min(l,m+s);if(a.add(e,m,h),m=h,m<l){this.setBusy("aggregating",m/l),Fr(c);return}let E=a.finish();this.summaryValues=u?{...this.summaryValues,...E}:E,r!==null&&(this.summaryBasis=r),this.busyDepth===0&&this.setBusy(null,null),this.events.emit("summariesChanged",{values:this.summaryValues})};Fr(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 Cl({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:lr(u,n),filter:this.runningFilter(),searchText:r},{maxRows:this.exportMaxRows,pageSize:this.exportPageSize,isCancelled:()=>t!==this.exportToken||this.disposed,onProgress:(a,s)=>this.setBusy("exporting",s>0?Math.round(a/s*100):null)});return this.setBusy("exporting",null),i}setExportDefaults(e){this.exportDefaults={...e}}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={}){return this.withExportSignal(e,async t=>{let u=this.buildExportModelFrom(await this.exportRows(),t);return{blob:await Al(u,t),fileName:wr(t.fileName??this.gridId,"csv"),rowCount:u.rows.length}})}async exportToExcel(e={}){this.requireEnterprise("Excel export");let t={sheetName:this.text.exportSheetName,...this.exportDefaults,...e};return this.withExportSignal(t,async u=>{let r=this.buildExportModelFrom(await this.exportRows(),u);return{blob:await Sl(r,{...u,onProgress:n=>{u.onProgress?.(n),n>=1&&this.setBusy("exporting",null,!1)}}),fileName:wr(u.fileName??this.gridId,"xlsx"),rowCount:r.rows.length}})}async exportToPdf(e={}){return this.requireEnterprise("PDF export"),this.withExportSignal(e,async t=>{let u=this.buildExportModelFrom(await this.exportRows(),t);return this.setBusy("exporting",null,!1),{blob:await Ol(u,t),fileName:wr(t.fileName??this.gridId,"pdf"),rowCount:u.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=Vs(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:ji(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,{[Pt]: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=Kl(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 E=t.patchRows(h);this.invalidateResultCaches(),this.events.emit("rowsChanged",{added:0,updated:E,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 E=r(u[h]);n.has(E)&&i.set(E,h)}let a=u.slice(),s=0,l=0,m=[];if(e.update)for(let h of e.update){let E=i.get(r(h));E!==void 0&&(a[E]=h,m.push(E),s++)}if(e.remove&&e.remove.length>0){let h=new Set(e.remove.map(g=>bi(g)?g:r(g))),E=a.filter(g=>!h.has(r(g)));l=a.length-E.length,a=E}let c=e.add?.length??0;if(c>0){let h=e.addBeforeKey===void 0?-1:a.findIndex(g=>r(g)===e.addBeforeKey),E=e.add;h>=0?a=a.slice(0,h).concat(E,a.slice(h)):e.addPosition==="first"?a=E.concat(a):a=a.concat(E)}if(!(l>0||c>0)&&this.rowModel.patchData?this.rowModel.patchData(a,m,this.columns):this.rowModel.setData?.(a),this.bumpDataEpoch(),l>0){let h=new Set(a.map(E=>r(E)));this.selection.retainKeys(h)&&this.emitSelectionChanged()}this.events.emit("rowsChanged",{added:c,updated:s,removed:l}),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=Ao(e,this.keyGetter);bo(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=xr(this.columns,{sort:lr(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 s of n){let l=this.columns.getCellValue(a,s),m=this.columns.getCellValue(i,s);if(!Object.is(l,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 fu&&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=lr(t,r),a,s=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(w){!(w instanceof Ve)&&!(w instanceof wu)&&(this.events.emit("dataError",{error:w}),this.debugMode&&console.error("[datagrid] row model failed",w));return}if(e!==this.computeToken||this.disposed)return;let l=Math.round(performance.now()-s),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 w=this.currentSummaryBasis(n,u),x=this.summaryBasis===w,S=x?this.summaryDefs.filter(M=>M.type==="custom"&&M.dependsOnOrder!==!1):this.summaryDefs;S.length>0?this.runSummaryPass(a.nodes,S,x,w,e):this.summaryBasis=w}else this.summaryValues={},this.summaryBasis=null;let h=Math.round(performance.now()-m);this.lastResult=a,this.invalidateResultCaches();let E=performance.now();this.projectView();let g=this.rowModel.getLastTimings?.();this.lastComputeTimings={modelMs:l,summaryMs:h,projectViewMs:Math.round(performance.now()-E),...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"?yo(this.ensureGroupTree(t),{collapsedKeys:this.store.collapsedSet(),collapsedByDefault:this.collapsedByDefault}).nodes:this.lastResult.nodes),i=this.masterDetail?jo(n,{expandedKeys:this.store.expandedSet(),expandedByDefault:this.masterDetail.expandedByDefault,height:this.masterDetail.height}):n,a=this.editForm?Yo(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:l}=e,m=this.store.clampPage(Math.ceil(a.length/l))*l;this.viewNodes=a.slice(m,m+l)}else this.viewNodes=a;this.rowIndexCache=null,this.rebuildRowHeights();let s=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(s)}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=Ns(e,this.keyGetter,this.treeParent),this.treeIndexEpoch=this.dataEpoch),Ts(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],s;a.kind==="detail"||a.kind==="editform"?s=a.height:s=e.get(a.key)??this.getRowHeightFn?.(a,i),s!==void 0&&s!==u&&n.set(i,Math.max(1,s))}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 Ps;this.spanCacheResult!==this.lastResult&&(this.spanCache.clear(),this.spanCacheResult=this.lastResult);let u=this.spanCache.get(e);if(u)return u;let r=Bo(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(wi(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}},Mr={compact:24,normal:28,comfortable:36};var Ir={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 Du(e,t,u){return e?Ir[e][t??"normal"]:t?Mr[t]:u}function Lr(e){return{sum:e.summarySum,avg:e.summaryAvg,min:e.summaryMin,max:e.summaryMax,count:e.summaryCount,countDistinct:e.summaryDistinct,custom:e.summaryCustom}}var Ws=Lr(Ot("en"));function Pr(e,t=Ws){return e.label??t[e.type]}var Us=new Set(["sum","avg","min","max"]);function Gr(e,t,u){if(e.valueFormatter)return e.valueFormatter(t??null);if(t==null)return"\u2014";if(!Us.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 Zi(e){switch(e){case"number":return["sum","avg","min","max","count","countDistinct"];case"date":return["min","max","count","countDistinct"];default:return["count","countDistinct"]}}var $s=[">=","<=","<>",">","<","="];function Ji(e,t,u){let r=t.trim();if(r==="")return null;for(let n of $s)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 Qi(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 Fu(e,t){let{controller:u,maxGroupLevels:r,t:n}=t,i=e.columnId,a=u.getColumnModel().getDef(i),s=u.getSort(),l=s.find(N=>N.columnId===i),m=u.getGroupLevels(),c=m.includes(i),h=a?.sortable!==!1,E=u.getColumnStates().find(N=>N.id===i)?.pinned??null,g=a?.groupable!==!1,w=[{id:"sort-asc",label:n.sortAsc,disabled:!h||l?.direction==="asc",onSelect:()=>u.setSort([{columnId:i,direction:"asc"}])},{id:"sort-desc",label:n.sortDesc,disabled:!h||l?.direction==="desc",onSelect:()=>u.setSort([{columnId:i,direction:"desc"}])},{id:"sort-clear",label:n.clearSort,disabled:!l,onSelect:()=>u.setSort(s.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}],x=u.getColumnStates().filter(N=>N.visible&&N.pinned===E).map(N=>N.id),S=x.indexOf(i),M=a?.reorderable!==!1&&S>=0;return w.push({id:"sep-4",separator:!0},{id:"move-left",label:n.moveLeft,disabled:!M||S<=0,onSelect:()=>u.moveColumn(i,x[S-1])},{id:"move-right",label:n.moveRight,disabled:!M||S<0||S>=x.length-1,onSelect:()=>u.moveColumn(i,x[S+2])},{id:"fixed-position",label:n.fixedPosition,items:[{id:"pin-left",label:n.pinLeft,disabled:E==="left",onSelect:()=>u.setColumnPinned(i,"left")},{id:"pin-right",label:n.pinRight,disabled:E==="right",onSelect:()=>u.setColumnPinned(i,"right")},{id:"pin-sticky",label:n.pinSticky,disabled:E==="sticky",onSelect:()=>u.setColumnPinned(i,"sticky")}]},{id:"unpin",label:n.unpin,disabled:E===null,onSelect:()=>u.setColumnPinned(i,null)}),w}async function Or(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 Vi(u.blob,u.fileName),{completed:!0}}catch(u){return u instanceof it?{completed:!1}:{completed:!1,error:u instanceof Error?u.message:String(u)}}}var Xi=null;function qs(){return typeof document>"u"?null:(Xi??=document.createElement("canvas"),Xi.getContext("2d"))}function ea(e){let t=getComputedStyle(e);return`${t.fontStyle} ${t.fontWeight} ${t.fontSize} ${t.fontFamily}`}function Su(e,t){let u=qs();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 s=n.querySelector(".kanuni-datagrid-header-label")??n;u.font=ea(s),a=u.measureText(s.textContent??"").width+44}if(i.length>0){u.font=ea(i[0]);for(let s=0;s<i.length;s++){let l=i[s].textContent??"";if(l==="")continue;let m=u.measureText(l).width+20;m>a&&(a=m)}}return a===0?null:Math.round(Math.min(640,Math.max(48,a)))}var Ct=60,Ht=36,wt=28,Kt="application/x-kanuni-row",Vt=new Map,Vr=new Set,Kr=5e3,at=0,_s=["columnStateChanged","sortChanged"],js=["columnStateChanged"],Ys=["contentReady","viewportChanged","filterChanged","selectionChanged","focusChanged","summariesChanged","cellsRefreshed"],k=(e,t="div")=>{let u=document.createElement(t);return u.className=e,u},zt="http://www.w3.org/2000/svg";function Zs(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 Js={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:""},Bu=new Set;function Qs(e){for(let t of Object.keys(e)){let u=Js[t];u===void 0||u===""||Bu.has(t)||(Bu.add(t),console.warn(`[datagrid] \`${t}\` is a React-only option \u2014 ${u}.`))}}function Xs(){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 e0(){let e=document.createElementNS(zt,"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(zt,"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 t0(e){let t=document.createElementNS(zt,"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(zt,"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(zt,"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 u0(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 Hr(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 ta(e,t){let{theme:u,palette:r,density:n,dark:i,striped:a=!0,rowNumbers:s=!1,locale:l="en",footer:m=!1,footerMenu:c=!0,footerPosition:h="bottom",notes:E,pinnedTopRows:g=[],pinnedBottomRows:w=[],resizable:x=!0,reorderable:S=!0,filterRow:M=!1,headerFilter:N=!1,filterIconMode:O="hover",filterPanel:z=!1,onOpenFilterBuilder:J,focusedRow:j=!1,focusedRowKey:Q,onFocusedRowChanged:ot,onRowClick:ku,onRowActivate:yt,autoSizeStrategy:V="none",renderRow:H,announcements:Z=!0,filterPanelLabels:_,showRowCount:be=!1,toolbarColumnChooser:We=!1,cellMenu:Ee=!0,rowMenu:ge,headerMenu:oe,rowDrag:re,alignedGrids:te,printLayout:Ue,renderCellContent:Ru,getCellClassName:Nu,onCellPointerDown:zr,onCellPointerEnter:Wt,onCellDoubleClick:Wr,renderDetail:Ur,renderEditForm:ua,enterpriseEdition:Te=!1,stateStoring:$r,tooltip:$e=!0,renderOverlay:Tu,filterDebounce:ra,toolbar:qr=!1,highlightSearch:na=!0,sortable:ia=!0,toolbarItemsAfter:aa,toolbarItemsBefore:oa,toolbarExcel:la=!1,toolbarPdf:sa=!1,searchDebounce:da=200,...ca}=t;Qs(t),be&&!Bu.has("showRowCount:deprecated")&&(Bu.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 T=Ot(l),{emptyText:ha=T.noData,loadingText:pa=T.busy,loadingOverlay:Mu=!0,...fe}=ca,_r=typeof Mu=="number"?Mu:300,Iu=Lr(T);if((!fe.columns||fe.columns.length===0)&&t.autoColumns!==!1){let o=Array.isArray(fe.dataSource)?fe.dataSource:[];fe.columns=Di(o,typeof t.autoColumns=="object"?t.autoColumns:{})}fe.rowHeight===void 0&&(fe.rowHeight=Du(u,n,28));let ma=Te?fe:Zs(fe,!!t.debugMode),qe=Te?E:void 0;!Te&&E&&t.debugMode&&console.warn("[datagrid] cell notes are an Enterprise feature \u2014 use createEnterpriseGrid from @kanunilabs/datagrid-enterprise to show them.");let A=new Yi(ma);A.setEnterpriseEdition(Te),Q!=null&&A.focusRow(Q);let U=k(Hr(t));U.style.height="100%",U.setAttribute("role","grid"),U.setAttribute("data-grid-id",t.gridId),u&&U.setAttribute("data-theme",u),U.style.setProperty("--dg-row-height",`${A.getRowHeight()}px`);let W=k("kanuni-datagrid-scroller"),le=k("kanuni-datagrid-canvas"),Ae=k("kanuni-datagrid-header");Ae.setAttribute("role","row");let se=k("kanuni-datagrid-rows");se.style.position="relative";let X=k("kanuni-datagrid-viewport");se.appendChild(X);let Et=k("kanuni-datagrid-pinned-rows kanuni-datagrid-pinned-rows--top"),jr=k("kanuni-datagrid-pinned-rows kanuni-datagrid-pinned-rows--bottom"),Be=m,_e=h==="top",ie=k(`kanuni-datagrid-footer-row kanuni-datagrid-footer-row--${_e?"top":"bottom"}`);if(ie.setAttribute("role","row"),ie.setAttribute("aria-label",T.columnTotalsAria),c){let o=d=>{let p=d.target?.closest(".kanuni-datagrid-footer-cell")?.getAttribute("data-column-id");p&&(d.preventDefault(),Oa(p,{left:d.clientX,top:d.clientY}))};ie.addEventListener("click",o),ie.addEventListener("contextmenu",o)}let Ut=k("kanuni-datagrid-bands-host");Ut.style.display="contents";let lt=k("kanuni-datagrid-filter-row");lt.setAttribute("role","row"),le.append(Ut,Ae),M&&le.append(lt);let Lu=M?2:1;ie.style.setProperty("--dg-pinned-gap",String(_e?Lu:0)),Et.style.setProperty("--dg-pinned-gap",String(Lu+(Be&&_e?1:0))),Be&&_e&&le.append(ie),g.length>0&&le.append(Et),le.append(se),w.length>0&&le.append(jr),Be&&!_e&&le.append(ie),W.appendChild(le);let je=k("kanuni-datagrid-toolbar"),st=k("kanuni-datagrid-pager");st.setAttribute("role","navigation"),st.setAttribute("aria-label","Pagination");let Ye=k("kanuni-datagrid-filter-panel"),Ze=!!fe.grouping?.panel,de=k("kanuni-datagrid-group-panel");qr&&U.appendChild(je),Ze&&U.appendChild(de),U.appendChild(W),z&&U.appendChild(Ye),fe.pagination?.enabled&&U.appendChild(st);let At=k("kanuni-datagrid-loading-overlay"),Yr=k("kanuni-datagrid-loading-card"),Zr=k("kanuni-datagrid-loading-spinner","span");Zr.setAttribute("aria-hidden","true");let Jr=k("kanuni-datagrid-loading-label","span");Jr.textContent=pa,Yr.append(Zr,Jr),At.appendChild(Yr),At.style.display="none";let bt=k("kanuni-datagrid-sr-only","div");bt.setAttribute("role","status"),bt.setAttribute("aria-live","polite"),bt.setAttribute("aria-atomic","true");let $t=k("kanuni-datagrid-empty");$t.textContent=ha,$t.style.display="none",U.append(At,$t),Z&&U.appendChild(bt),e.appendChild(U);let Qr=fe.selection,qt=(Qr?.mode??"none")!=="none"&&(Qr?.checkboxColumn??!1),_t=A.hasMasterDetail()&&!!Ur,Pu=s?Ct:0,Xr=Pu+(_t?wt:0),ve=(s?Ct:0)+(_t?wt:0)+(qt?Ht:0);A.setLeadWidth(ve);let jt=!!re?.enabled,vt=re?.group??null,en=re?.allowReordering??!0,tn=re?.allowDropInsert??vt!==null,ke=null,Yt=null,Zt=!1,Je=null,Me=null;function dt(o){Je=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 un=(o,d)=>{let f=d.getBoundingClientRect();return o.clientY<f.top+f.height/2?"before":"after"},rn=o=>o.dataTransfer?.types.includes(Kt)?ke!==null?en:tn&&vt!==null:!1;function nn(o,d,f){let p=null;try{let y=o.dataTransfer?.getData(Kt);p=y?JSON.parse(y):null}catch{p=null}if(p){if(p.gridId===A.gridId){if(!en)return;if(re?.onReorder){re.onReorder({dragKey:p.rowKey,targetKey:d,position:f,row:A.getRowByKey(p.rowKey)});return}A.moveRow(p.rowKey,d,f);return}!tn||vt===null||p.group!==vt||re?.onAdd?.({row:p.row,rowKey:p.rowKey,otherGridId:p.gridId,targetKey:d,position:f})}}let ga=o=>{let d=Le(o);if(!d||d.node.kind!=="data"||!o.dataTransfer)return;ke=d.node.key,Yt=d.node.key,Zt=!1;let f={gridId:A.gridId,group:vt,rowKey:d.node.key,row:d.node.data};o.dataTransfer.setData(Kt,JSON.stringify(f)),o.dataTransfer.setData("text/plain",String(d.node.key)),o.dataTransfer.effectAllowed="move",A.notifyRowDrag("enter",{rowKey:d.node.key})},fa=o=>{if(!rn(o))return;o.preventDefault(),o.dataTransfer&&(o.dataTransfer.dropEffect="move");let d=Le(o);if(!d||d.node.kind!=="data")return;if(ke===d.node.key){Me=null,dt(null);return}let f=o.target.closest(".kanuni-datagrid-row"),p=un(o,f),y=Je?.key!==d.node.key||Je.side!==p;Me={key:d.node.key,side:p},dt({key:d.node.key,side:p}),y&&ke!==null&&A.notifyRowDrag("move",{rowKey:ke,overKey:d.node.key,position:p})},Ca=o=>{if(!rn(o)){dt(null);return}o.preventDefault();let d=Le(o);if(Zt=!0,d&&d.node.kind==="data"){let f=o.target.closest(".kanuni-datagrid-row"),p=un(o,f);Me={key:d.node.key,side:p},nn(o,d.node.key,p)}else Me=null,nn(o,null,"after");ke=null,dt(null)},wa=()=>{Yt!==null&&A.notifyRowDragEnd({rowKey:Yt,dropped:Zt,overKey:Me?.key??null,position:Me?.side??null}),Zt=!1,Yt=null,ke=null,Me=null,dt(null)},ya=o=>{let d=o.relatedTarget;d&&se.contains(d)||ke!==null&&(Me=null,dt(null),A.notifyRowDrag("leave",{rowKey:ke}))},xt=Ue===void 0||Ue===!1?null:(()=>{let o=Ue===!0?{}:Ue;return{always:o.always??!1,maxRows:o.maxRows??Kr}})(),Dt=!1;function Gu(o){Dt!==o&&(Dt=o,U.classList.toggle("kanuni-datagrid-print",o),o?(at++,document.documentElement.classList.add("kanuni-datagrid-printing")):(at--,at<=0&&(at=0,document.documentElement.classList.remove("kanuni-datagrid-printing"))),zu())}let an=null;if(xt&&!xt.always){let o=()=>{let f=A.getRows().length;if(f>xt.maxRows){A.isDebugMode()&&console.warn(`[datagrid] print layout skipped: ${f} rows exceeds maxRows (${xt.maxRows}). Printing the visible rows instead \u2014 use exportPdf() for the whole result.`);return}Gu(!0)},d=()=>Gu(!1);window.addEventListener("beforeprint",o),window.addEventListener("afterprint",d),an=()=>{window.removeEventListener("beforeprint",o),window.removeEventListener("afterprint",d)}}let Qe=0,xe=[],ce=0,Ou=0;function Vu(){let o=A.getColumnLayout(),d=A.getVirtualWindow().columns,f=[],p=(b,v,D,B)=>{let C=b.def;f.push({def:C,id:b.state.id,width:b.state.width,pinned:v,inset:D,className:u0(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]+ve,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)),xe=f,ce=d.offsetX;let y=(o.centerOffsets[Math.min(d.end,o.center.length)]??0)-(o.centerOffsets[Math.min(d.start,o.center.length)]??0);Ou=Math.max(0,o.centerWidth-d.offsetX-y),le.style.minWidth=`${o.totalWidth+ve}px`}let Jt=26;function Ea(){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=vi(f);if(Ut.textContent="",Ae.style.top=`${p*Jt}px`,U.style.setProperty("--dg-band-offset",`${p*Jt}px`),p===0)return;xi(f,p).forEach((b,v)=>{let D=k("kanuni-datagrid-band-row");if(D.style.top=`${v*Jt}px`,D.style.height=`${Jt}px`,ve>0){let B=k("kanuni-datagrid-band-cell kanuni-datagrid-band-cell--spacer kanuni-datagrid-band-cell--pinned");B.style.width=`${ve}px`,B.style.flex="none",B.style.insetInlineStart="0px",D.appendChild(B)}if(ce>0){let B=k("kanuni-datagrid-spacer");B.style.width=`${ce}px`,B.style.flex="none",D.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=Ne(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?T.expandDetails??"Expand":T.collapseDetails??"Collapse";P.setAttribute("aria-label",L),P.title=L,P.appendChild(t0(I)),P.addEventListener("click",K=>{K.stopPropagation(),A.toggleBand(R)}),C.appendChild(P)}}let F=k("kanuni-datagrid-band-label","span");F.textContent=B.label,C.appendChild(F)}D.appendChild(C)}Ut.appendChild(D)})}let Ft=null,Qt=null;function Xt(o,d){Qt&&Qt!==o&&Qt.classList.remove("kanuni-datagrid-header-cell--drop-before","kanuni-datagrid-header-cell--drop-after"),Qt=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 on(){if(!Ft)return;let o=A.getSelectedCount(),d=A.getVisibleCount(),f=d>0&&o>=d;Ft.checked=f,Ft.indeterminate=!f&&o>0}function Hu(){Ea();let o=A.getSort(),d=new Map(o.map((p,y)=>[p.columnId,{direction:p.direction,order:y}]));if(Ae.textContent="",Ft=null,s){let p=k("kanuni-datagrid-header-cell kanuni-datagrid-header-cell--pinned kanuni-datagrid-rownum-cell");p.setAttribute("role","columnheader"),p.style.width=`${Ct}px`,p.style.flex="none",p.style.insetInlineStart="0px",Ae.appendChild(p)}if(_t){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",T.detailsAria),p.style.width=`${wt}px`,p.style.flex="none",p.style.insetInlineStart=`${Pu}px`,Ae.appendChild(p)}if(qt){let p=k("kanuni-datagrid-header-cell kanuni-datagrid-header-cell--pinned kanuni-datagrid-select-cell");p.setAttribute("role","columnheader"),p.style.width=`${Ht}px`,p.style.flex="none",p.style.insetInlineStart=`${Xr}px`;let y=document.createElement("input");y.type="checkbox",y.setAttribute("aria-label",T.selectAllRows),y.addEventListener("change",()=>{A.getSelectedCount()>0?A.clearSelection():A.selectAll()}),p.appendChild(y),Ae.appendChild(p),Ft=y,on()}let f=!1;for(let p of xe){if(!p.pinned&&!f){if(ce>0){let C=document.createElement("div");C.style.flex=`0 0 ${ce}px`,Ae.appendChild(C)}f=!0}let y=ia&&p.def.sortable!==!1,b=d.get(p.id),v=k(`kanuni-datagrid-header-cell${y?" 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 D=p.def.headerTooltip;D&&(v.title=D),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 F=k("kanuni-datagrid-sort-order","span");F.setAttribute("aria-hidden","true"),F.textContent=String(b.order+1),v.appendChild(F)}}if(y){let C=p.id;v.addEventListener("click",F=>{A.toggleSort(C,F.shiftKey)})}if(oe!==!1){let C=p.id;v.addEventListener("contextmenu",F=>{F.preventDefault(),Ga(C,{left:F.clientX,top:F.clientY})})}if(N&&p.def.filterable!==!1){let C=document.createElement("button");C.type="button";let F=A.getColumnFilter(p.id)!==null;C.className=`kanuni-datagrid-filter-button${F?" kanuni-datagrid-filter-button--active":""}${O==="always"?" kanuni-datagrid-filter-button--pinned":""}`,C.setAttribute("aria-haspopup","dialog"),C.setAttribute("aria-label",`${p.def.headerName??p.id} filter`),C.appendChild(e0()),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 F=v.getBoundingClientRect(),R=C.clientX<F.left+F.width/2;Xt(v,R?"before":"after")}),v.addEventListener("dragleave",C=>{let F=C.relatedTarget;(!F||!v.contains(F))&&Xt(null,"before")}),v.addEventListener("drop",C=>{Xt(null,"before");let F=C.dataTransfer?.getData("text/x-kanuni-column");if(!F||F===p.id)return;C.preventDefault();let R=v.getBoundingClientRect();if(C.clientX<R.left+R.width/2)A.moveColumn(F,p.id);else{let P=xe.findIndex(L=>L.id===p.id);A.moveColumn(F,xe[P+1]?.id)}}),v.addEventListener("dragend",()=>Xt(null,"before"))),x&&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",F=>F.stopPropagation()),C.addEventListener("dblclick",F=>{F.stopPropagation(),Ha(p.id)}),C.addEventListener("pointerdown",F=>{F.preventDefault(),F.stopPropagation();let R=F.clientX,I=p.width,P=getComputedStyle(v).direction==="rtl"?-1:1;v.draggable=!1;let L=I,K=!1,Y=pe=>{K=!0,L=I+(pe.clientX-R)*P,A.setColumnWidth(p.id,L,!1)},ne=()=>{window.removeEventListener("pointermove",Y),window.removeEventListener("pointerup",ne),window.removeEventListener("pointercancel",ne),K&&A.setColumnWidth(p.id,L,!0),v.draggable=S&&p.def.reorderable!==!1};window.addEventListener("pointermove",Y),window.addEventListener("pointerup",ne),window.addEventListener("pointercancel",ne)}),v.appendChild(C)}Ae.appendChild(v)}}let ln=null,eu=null;function Aa(o){if(o===ln)return;ln=o;let d=[];for(let f=0;f<o.length;f++)o[f].kind!=="data"&&d.push(f);eu=d.length>0?d:null}function ba(o){if(!eu)return o+1;let d=0,f=eu.length;for(;d<f;){let p=d+f>>1;eu[p]<=o?d=p+1:f=p}return o+1-d}let St=[];function sn(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:Qe}}if(o==="group"){let C=k("kanuni-datagrid-group-cell");C.setAttribute("role","gridcell"),C.setAttribute("aria-colindex","1");let F=k("kanuni-datagrid-group-twisty","span");F.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(F,R,I,P,L),d.appendChild(C),d.addEventListener("click",()=>{let K=d.getAttribute("data-group-key");K!==null&&A.toggleGroup(K)}),{kind:o,root:d,cells:[],rowNumberCell:null,selectInput:null,detailToggle:null,leadingSpacer:null,trailingSpacer:null,group:{cell:C,twisty:F,caption:R,label:I,count:P,aggregates:L},epoch:Qe}}if(jt){let C=k("kanuni-datagrid-row-grip","span");C.setAttribute("aria-hidden","true"),C.title=T.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(H)return{kind:o,root:d,cells:[],rowNumberCell:null,selectInput:null,detailToggle:null,leadingSpacer:null,trailingSpacer:null,epoch:Qe};let f=null;s&&(f=k("kanuni-datagrid-cell kanuni-datagrid-cell--number kanuni-datagrid-cell--pinned kanuni-datagrid-rownum-cell"),f.setAttribute("role","gridcell"),f.style.width=`${Ct}px`,f.style.flex="none",f.style.insetInlineStart="0px",d.appendChild(f));let p=null;if(_t){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=`${wt}px`,C.style.flex="none",C.style.insetInlineStart=`${Pu}px`;let F=document.createElement("button");F.type="button",F.className="kanuni-datagrid-detail-toggle",F.tabIndex=-1,F.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)}),F.addEventListener("mousedown",R=>R.stopPropagation()),C.appendChild(F),d.appendChild(C),p=F}let y=null;if(qt){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=`${Ht}px`,C.style.flex="none",C.style.insetInlineStart=`${Xr}px`;let F=document.createElement("input");F.type="checkbox",F.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())}),F.addEventListener("change",R),F.addEventListener("click",I=>I.stopPropagation()),F.addEventListener("mousedown",I=>I.stopPropagation()),C.appendChild(F),d.appendChild(C),y=F}let b=[],v=null,D=!1;for(let C of xe){!C.pinned&&!D&&(v=document.createElement("div"),v.style.flex=`0 0 ${ce}px`,d.appendChild(v),D=!0);let F=k(C.className);F.setAttribute("role","gridcell"),F.setAttribute("data-column-id",C.id),F.style.width=`${C.width}px`,F.style.flex="none",C.pinned==="left"&&(F.style.insetInlineStart=`${C.inset}px`),C.pinned==="right"&&(F.style.insetInlineEnd=`${C.inset}px`),d.appendChild(F),b.push({el:F,slot:C})}let B=document.createElement("div");return B.style.flex=`0 0 ${Ou}px`,d.appendChild(B),{kind:o,root:d,cells:b,rowNumberCell:f,selectInput:y,detailToggle:p,leadingSpacer:v,trailingSpacer:B,epoch:Qe}}let ct="";function tu(o,d){if(ct===""||d===""){o.textContent=d;return}let f=d.toLowerCase(),p=f.indexOf(ct);if(p===-1){o.textContent=d;return}let y=[],b=0;for(;p!==-1;){p>b&&y.push(document.createTextNode(d.slice(b,p)));let v=document.createElement("mark");v.className="kanuni-datagrid-highlight",v.textContent=d.slice(p,p+ct.length),y.push(v),b=p+ct.length,p=f.indexOf(ct,b)}b<d.length&&y.push(document.createTextNode(d.slice(b))),o.replaceChildren(...y)}function va(o,d,f){let p=A.getColumnModel().getCellValue(f.data,d.id),y=d.def;if(y.renderCell){let v=y.renderCell({value:p,row:f.data,node:f,column:y});typeof v=="string"?o.textContent=v:o.replaceChildren(v);return}let b=Gt(y,p);if(b!==null){tu(o,b);return}if(y.valueFormatter){let v=y.valueFormatter(p,f.data);tu(o,typeof v=="string"?v:String(v??""));return}if(y.dateFormat&&y.dataType==="date"){tu(o,Li(p,y.dateFormat));return}tu(o,p==null?"":String(p))}function dn(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,F=d.kind==="detail";p.className=`kanuni-datagrid-row ${F?"kanuni-datagrid-detail-row":"kanuni-datagrid-editform-row"}`,p.style.height=`${d.height}px`,F?(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=F?"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=F?Ur?.(d.data):d.parentKey===null?void 0:ua?.(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=cn?"":`${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 y=A.getFocus();if(p.classList.toggle("kanuni-datagrid-row--focused",j&&y!==null&&y.rowKey===d.key),o.leadingSpacer&&(o.leadingSpacer.style.flex=`0 0 ${ce}px`),o.trailingSpacer&&(o.trailingSpacer.style.flex=`0 0 ${Ou}px`),jt){let C=Je!==null&&String(Je.key)===String(d.key);p.classList.toggle("kanuni-datagrid-row--drop-before",C&&Je.side==="before"),p.classList.toggle("kanuni-datagrid-row--drop-after",C&&Je.side==="after")}if(o.rowNumberCell&&(o.rowNumberCell.textContent=String(ba(f))),o.selectInput&&(o.selectInput.checked=A.isRowSelected(d.key),o.selectInput.setAttribute("aria-label",T.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?T.collapseDetails:T.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 F=A.getColumnModel().getDef(C.columnId),R=F?.headerName??C.columnId;o.group.caption.textContent=`${R}:`,o.group.label.textContent=Gt(F,C.value)??(C.label===""?T.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"),K=k("kanuni-datagrid-group-aggregate-label","span"),Y=A.getColumnModel().getDef(P.columnId);K.textContent=`${Pr(P,Iu)} ${Y?.headerName??P.columnId}:`,L.append(K,` ${Gr(P,I[nt(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,H){let C=jt?1:0,F=H({row:d.data,node:d,rowIndex:f,selected:A.isRowSelected(d.key),focused:j&&y!==null&&y.rowKey===d.key});if(F instanceof Node&&p.childNodes.length===C+1&&p.childNodes[C]===F)return;for(;p.childNodes.length>C;)p.removeChild(p.lastChild);typeof F=="string"?p.appendChild(document.createTextNode(F)):F&&p.appendChild(F);return}let b=y!==null&&y.rowKey===d.key?y.columnId:null,v=d.tree,D=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:F}of o.cells){let R=Ru||Nu?{node:d,columnId:F.id,rowIndex:f,columnIndex:F.visualIndex,value:A.getColumnModel().getCellValue(d.data,F.id)}:null,I=R&&Ru?Ru(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):(va(C,F,d),v&&F.id===D&&Fa(C,d,v)),B&&!P){let $=Da(f,F.id);C.classList.toggle("kanuni-datagrid-cell--span",$?.kind==="draw"),C.classList.toggle("kanuni-datagrid-cell--span-covered",$?.kind==="covered");let Ge=I!==void 0;if($?.kind==="covered"&&b!==F.id&&!Ge)C.replaceChildren();else if($?.kind==="draw"){let ae=k("kanuni-datagrid-span-box");ae.style.height=`${$.height}px`,ae.append(...Array.from(C.childNodes)),C.appendChild(ae)}}else B||C.classList.remove("kanuni-datagrid-cell--span","kanuni-datagrid-cell--span-covered");if(qe){let $=!!Ku(d.key,F.id,d.data);C.classList.toggle("kanuni-datagrid-cell--noted",$)}C.id=`${t.gridId}-cell-${String(d.key)}-${F.id}`,C.classList.toggle("kanuni-datagrid-cell--focused",b===F.id);let L=C.getAttribute("data-slot-classes");if(L)for(let $ of L.split(" "))C.classList.remove($);let K=R&&Nu?Nu(R):void 0,Y=F.def.cellClassName,pe=[typeof Y=="function"?Y({value:A.getColumnModel().getCellValue(d.data,F.id),row:d.data,node:d,column:F.def}):Y,K].filter(Boolean).join(" ")||void 0;if(pe){for(let $ of pe.split(" "))C.classList.add($);C.setAttribute("data-slot-classes",pe)}else L&&C.removeAttribute("data-slot-classes")}}let cn=t.columns.some(o=>o.autoHeight);function xa(){if(!cn)return;let o=A.getVirtualWindow(),d=A.getRows(),f=new Map(A.getMeasuredRowHeights()),p=!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,D=St[v]?.root;if(!D)continue;let B=D.getBoundingClientRect().height;B>0&&f.get(b.key)!==B&&(f.set(b.key,B),p=!0)}p&&A.setMeasuredRowHeights(f)}let uu={start:0,end:0};function Da(o,d){let f=A.getCellSpans(d);if(f.length===0)return null;let p=Ni(f,o,uu.start,uu.end);if(!p)return null;if(p.role==="covered")return{kind:"covered"};let y=A.getRowOffset(p.drawStart);return{kind:"draw",height:A.getRowOffset(p.drawEnd)+A.getRowHeightAt(p.drawEnd)-y}}function Fa(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 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?T.collapseDetails:T.expandDetails),y.textContent=f.expanded?"\u25BE":"\u25B8",y.addEventListener("mousedown",b=>b.stopPropagation()),y.addEventListener("click",b=>{b.stopPropagation(),A.toggleTreeRow(d.key)}),p.appendChild(y)}else p.appendChild(k("kanuni-datagrid-tree-toggle kanuni-datagrid-tree-toggle--leaf","span"));p.append(...Array.from(o.childNodes)),o.appendChild(p)}let Ku=(o,d,f)=>qe?qe.get({rowKey:o,columnId:d,row:f})??null:null,hn=null,Ie=Tu?k("kanuni-datagrid-overlay"):null;Ie&&(Ie.style.position="absolute",Ie.style.inset="0",Ie.style.pointerEvents="none",se.appendChild(Ie));function Sa(){if(!Tu||!Ie)return;let o=Tu();o!==hn&&(hn=o,o?Ie.replaceChildren(o):Ie.replaceChildren())}function zu(){Sa();let o=A.getVirtualWindow(),d=A.getRows(),f=Dt?{...o,rows:{...o.rows,start:0,end:d.length,offsetY:0,totalHeight:0}}:o;Aa(d),se.style.height=`${f.rows.totalHeight}px`,X.style.transform=`translateY(${f.rows.offsetY}px)`,ct=na?A.getSearchText().trim().toLowerCase():"";let p=Math.max(0,Math.min(f.rows.end,d.length)-f.rows.start);for(uu.start=f.rows.start,uu.end=Math.min(f.rows.end,d.length)-1;St.length>p;)St.pop().root.remove();for(let y=0;y<p;y++){let b=f.rows.start+y,v=d[b],D=v.kind==="data"?"data":v.kind==="group"?"group":v.kind==="detail"||v.kind==="editform"?"panel":"stub",B=St[y];if(!B||B.epoch!==Qe||B.kind!==D){let C=sn(D);B?X.replaceChild(C.root,B.root):X.appendChild(C.root),St[y]=C,B=C}dn(B,v,b)}xa()}let pn=Ti(ra??(A.isRemote()?200:0));function Wu(){if(!M)return;if(lt.textContent="",ve>0){let d=k("kanuni-datagrid-filter-cell kanuni-datagrid-filter-cell--pinned");d.style.width=`${ve}px`,d.style.flex="none",d.style.insetInlineStart="0px",lt.appendChild(d)}let o=!1;for(let d of xe){if(!d.pinned&&!o){if(ce>0){let p=k("kanuni-datagrid-spacer");p.style.width=`${ce}px`,p.style.flex="none",lt.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 y=()=>A.setColumnFilter(d.id,Ji(d.id,p.value,d.def.dataType),Si);p.addEventListener("input",()=>pn.schedule(d.id,y));let b=()=>{pn.cancel(d.id),y()};p.addEventListener("keydown",v=>{v.key==="Enter"&&b()}),p.addEventListener("blur",b),f.appendChild(p)}lt.appendChild(f)}}let Uu=()=>{};function Ba(){if(!qr)return;let o=document.createElement("input");o.type="search",o.className="kanuni-datagrid-toolbar-search",o.placeholder=T.toolbarSearch,o.setAttribute("aria-label",T.toolbarSearch);let d=null;o.addEventListener("input",()=>{d&&clearTimeout(d),d=setTimeout(()=>A.setSearchText(o.value),da)});let f=k("kanuni-datagrid-toolbar-spacer"),p=null;if(We){let C=document.createElement("button");C.type="button",C.textContent=T.toolbarColumns??"Columns",C.setAttribute("aria-haspopup","dialog"),C.addEventListener("click",()=>{let F=C.getBoundingClientRect();En({left:F.left,top:F.bottom+2})}),p=C}let y=Te&&la,b=Te&&sa,v=document.createElement("button");v.type="button",v.className="kanuni-datagrid-toolbar-icon-button",v.setAttribute("aria-haspopup","menu"),v.setAttribute("aria-label",T.exportMenu),v.setAttribute("data-testid","dg-export-menu"),v.title=T.exportMenu,v.appendChild(Xs());let D=null;v.addEventListener("click",()=>{if(D)return;let C=v.getBoundingClientRect();Xe({left:C.right-190,top:C.bottom+2},F=>{F.setAttribute("role","menu"),F.setAttribute("aria-label",T.exportMenu);let R=[{kind:"csv",label:T.exportCsv,testId:"dg-export-csv",on:!0},{kind:"excel",label:T.exportExcel,testId:"dg-export-excel",on:y},{kind:"excel-selected",label:T.exportExcelSelected,testId:"dg-export-excel-selected",on:y},{kind:"pdf",label:T.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",()=>{D=I.kind,v.disabled=!0,he(),Or(A,I.kind).then(L=>{D=null,v.disabled=!1,L.error&&Uu(L.error)})}),F.appendChild(P)}},"kanuni-datagrid-filter-popup kanuni-datagrid-export-menu")});for(let C of oa??[])je.append(C);je.append(o,f),p&&je.append(p),je.append(v);for(let C of aa??[])je.append(C);let B=k("kanuni-datagrid-toolbar-error","span");B.setAttribute("role","alert"),B.style.display="none",je.append(B),Uu=C=>{B.textContent=C,B.style.display=""}}function mn(){if(!st.isConnected)return;let o=A.getPage(),d=A.getPageCount();st.textContent="";let f=(D,B,C,F)=>{let R=document.createElement("button");return R.type="button",R.textContent=D,R.setAttribute("aria-label",B),R.disabled=C,R.addEventListener("click",F),R},p=k("kanuni-datagrid-pager-buttons"),y=o<=0,b=o>=d-1;p.append(f("\xAB",T.pagerFirst??"First",y,()=>A.setPage(0)),f("\u2039",T.pagerPrevious??"Previous",y,()=>A.setPage(o-1)));let v=k("kanuni-datagrid-pager-current","span");v.textContent=`${o+1} / ${d}`,p.append(v,f("\u203A",T.pagerNext??"Next",b,()=>A.setPage(o+1)),f("\xBB",T.pagerLast??"Last",b,()=>A.setPage(d-1))),st.appendChild(p)}function $u(){if(!Be)return;let o=A.getColumnLayout(),d=A.getSummaries(),f=new Map(A.getSummaryDefs().map(y=>[y.columnId,y]));if(ie.textContent="",ie.style.width=`${o.totalWidth+ve}px`,ve>0){let y=k("kanuni-datagrid-footer-cell kanuni-datagrid-footer-cell--pinned");y.style.width=`${ve}px`,y.style.insetInlineStart="0px",ie.appendChild(y)}let p=!1;for(let y of xe){if(!y.pinned&&!p){if(ce>0){let B=k("kanuni-datagrid-spacer");B.style.width=`${ce}px`,ie.appendChild(B)}p=!0}let b=f.get(y.id),v=y.def.dataType==="number",D=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(D.setAttribute("role","gridcell"),D.setAttribute("data-column-id",y.id),D.setAttribute("data-summary-type",b?.type??""),D.style.width=`${y.width}px`,y.pinned==="left"&&(D.style.insetInlineStart=`${y.inset}px`),y.pinned==="right"&&(D.style.insetInlineEnd=`${y.inset}px`),b){D.title=`${Pr(b,Iu)} \u2014 ${y.def.headerName??y.id}`;let B=k("kanuni-datagrid-footer-value","span");B.textContent=Gr(b,d[nt(b.columnId,b.type)],y.def),D.appendChild(B)}else{let B=k("kanuni-datagrid-footer-hint","span");B.textContent=c?"\xB7":"",D.appendChild(B)}ie.appendChild(D)}}function qu(){let o=(d,f,p)=>{d.textContent="",f.forEach((y,b)=>{let v=sn("data");dn(v,{kind:"data",key:`__pinned-${p}-${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(Et,g,"top"),w.length>0&&o(jr,w,"bottom")}let ht=null,_u=null;function he(){_u?.(),_u=null,ht?.remove(),ht=null}function gn(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 Xe(o,d,f="kanuni-datagrid-filter-popup"){he(),ht=k(`${Hr(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),ht.appendChild(p),document.body.appendChild(ht),gn(p,o);let y=ht,b=D=>{y.contains(D.target)||he()},v=D=>{D.key==="Escape"&&he()};document.addEventListener("pointerdown",b,!0),document.addEventListener("keydown",v,!0),_u=()=>{document.removeEventListener("pointerdown",b,!0),document.removeEventListener("keydown",v,!0)}}let et=25,fn=8,Cn=new Map,wn=0;function ka(o,d){let f=d.getBoundingClientRect(),p=++wn;Xe({left:f.left,top:f.bottom+2},y=>{let b=[],v=!0,D=new Set,B=!1,C=0,F="",R=[],I=null,P="",L=[],K=document.createElement("input");K.type="search",K.className="kanuni-datagrid-filter-search",K.placeholder=T.search,K.setAttribute("data-testid","dg-filter-search");let Y=k("kanuni-datagrid-filter-actions"),ne=document.createElement("button");ne.type="button",ne.textContent=T.filterSelectAll,ne.addEventListener("click",()=>{B=!0,D=new Set(b.map(G=>G.label)),De()});let pe=document.createElement("button");pe.type="button",pe.textContent=T.clear,pe.addEventListener("click",()=>{B=!0,D=new Set,De()}),Y.append(ne,pe);let $=k("kanuni-datagrid-filter-list");$.setAttribute("role","listbox"),$.setAttribute("aria-multiselectable","true");let Ge=document.createElement("div");Ge.style.position="relative";let ae=document.createElement("div");Ge.appendChild(ae),$.appendChild(Ge);let du=()=>{let G=F.trim().toLowerCase();if(!G){R=b;return}I||(I=b.map(q=>q.label.toLowerCase())),R=P!==""&&G.includes(P)?L.filter(q=>q.label.toLowerCase().includes(G)):b.filter((q,ee)=>I[ee].includes(G)),P=G,L=R},De=()=>{if($.setAttribute("aria-busy",String(v)),$.setAttribute("aria-setsize",String(R.length)),v){Ge.style.height="",ae.textContent="";let ye=k("kanuni-datagrid-filter-empty");ye.textContent=T.filterLoading,ae.appendChild(ye);return}if(R.length===0){Ge.style.height="",ae.style.transform="",ae.textContent="";let ye=k("kanuni-datagrid-filter-empty");ye.textContent=T.filterNoMatch,ae.appendChild(ye);return}let G=$.clientHeight||240,q=Math.max(0,Math.floor($.scrollTop/et)-fn),ee=Math.ceil(G/et)+fn*2,we=Math.min(q,Math.max(0,R.length-1)),Za=Math.min(R.length,we+ee);Ge.style.height=`${R.length*et}px`,ae.style.transform=`translateY(${we*et}px)`,ae.textContent="";for(let ye=we;ye<Za;ye++){let mt=R[ye],Fe=k("kanuni-datagrid-filter-item");Fe.setAttribute("role","option"),Fe.setAttribute("aria-selected",String(D.has(mt.label))),Fe.tabIndex=0,Fe.setAttribute("data-value",mt.label),Fe.setAttribute("data-index",String(ye)),ye===C&&Fe.classList.add("kanuni-datagrid-filter-item--active");let Rt=document.createElement("input");Rt.type="checkbox",Rt.readOnly=!0,Rt.checked=D.has(mt.label),Rt.tabIndex=-1;let Wn=document.createElement("span");Wn.textContent=mt.label===""?T.filterBlank:mt.label,Fe.append(Rt,Wn),Fe.addEventListener("click",()=>Hn(mt.label)),Fe.addEventListener("focus",()=>{C=ye}),ae.appendChild(Fe)}},Hn=G=>{B=!0,D.has(G)?D.delete(G):D.add(G);for(let q of ae.querySelectorAll(".kanuni-datagrid-filter-item")){if(q.getAttribute("data-value")!==G)continue;q.setAttribute("aria-selected",String(D.has(G)));let ee=q.querySelector("input");ee&&(ee.checked=D.has(G))}};$.addEventListener("scroll",()=>{Cn.set(o,$.scrollTop),De()}),K.addEventListener("input",()=>{F=K.value,C=0,du(),De()});let ir=G=>{if(R.length===0)return;C=Math.max(0,Math.min(R.length-1,G));let q=C*et,ee=$.clientHeight||240;q<$.scrollTop?$.scrollTop=q:q+et>$.scrollTop+ee&&($.scrollTop=q+et-ee),De(),y.querySelector(`.kanuni-datagrid-filter-item[data-index="${C}"]`)?.focus()},Kn=()=>{if(v)return;let G;if(D.size===b.length)G=null;else{let q=D.has(""),ee=b.filter(we=>we.label!==""&&D.has(we.label));ee.length===0?G=q?{columnId:o,operator:"isnull"}:null:q?G={logic:"or",nodes:[{columnId:o,operator:"in",value:ee.map(we=>we.value)},{columnId:o,operator:"isnull"}]}:G={columnId:o,operator:"in",value:ee.map(we=>we.value)}}A.setColumnFilter(o,G,Rr),he()};y.tabIndex=-1,y.addEventListener("keydown",G=>{let q=G.target===K;if(G.key==="Backspace"&&!q){G.preventDefault(),K.focus(),F=F.slice(0,-1),K.value=F,C=0,du(),De();return}if(G.key==="ArrowDown"){G.preventDefault(),ir(q?0:C+1);return}if(G.key==="ArrowUp"){G.preventDefault(),ir(q?R.length-1:C-1);return}if(!q&&(G.key==="Home"||G.key==="End")){G.preventDefault(),ir(G.key==="Home"?0:R.length-1);return}if(G.key===" "&&!q){G.preventDefault();let ee=R[C];ee&&Hn(ee.label);return}if(G.key==="Enter"){G.preventDefault(),Kn();return}!q&&G.key.length===1&&G.key!==" "&&!G.ctrlKey&&!G.metaKey&&!G.altKey&&(G.preventDefault(),K.focus(),F+=G.key,K.value=F,C=0,du(),De())});let zn=k("kanuni-datagrid-filter-footer"),cu=document.createElement("button");cu.type="button",cu.textContent=T.cancel,cu.addEventListener("click",()=>he());let Oe=document.createElement("button");Oe.type="button",Oe.className="kanuni-datagrid-filter-primary",Oe.setAttribute("data-testid","dg-filter-apply"),Oe.textContent=T.apply,Oe.disabled=!0,Oe.addEventListener("click",Kn),zn.append(cu,Oe),y.append(K,Y,$,zn),De(),queueMicrotask(()=>{K.isConnected&&K.focus()}),A.getDistinctValueSetAsync(o).then(G=>{if(wn!==p||!y.isConnected)return;b=G.entries,I=null,P="",v=!1,Oe.disabled=!1;let q=Ri(A.getColumnFilter(o,Rr)??A.getColumnFilter(o,Pt),b);q?(B=!0,D=new Set(q)):B||(D=new Set(b.map(we=>we.label))),du();let ee=Cn.get(o);De(),ee&&($.scrollTop=ee,De())})})}function ru(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 Ra(o){if(Ee===!1)return[];let d=Ee===!0?{}:Ee,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:T.menuCopy,shortcut:`${Ta}C`,onSelect:()=>ru()}),d.copyWithHeaders!==!1&&p({id:"__dg-copy-headers",label:T.menuCopyWithHeaders,onSelect:()=>ru({includeHeaders:!0})}),d.copyWithGroupHeaders!==!1&&Na()&&p({id:"__dg-copy-group-headers",label:T.menuCopyWithGroupHeaders,onSelect:()=>ru({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:T.exportCsv,excel:T.exportExcel,"excel-selected":T.exportExcelSelected,pdf:T.exportPdf};p({id:"__dg-export",label:T.menuExport,items:y.map(D=>({id:`__dg-export-${D}`,label:v[D],disabled:D==="excel-selected"&&b,onSelect:()=>{Or(A,D).then(B=>{B.error&&Uu(B.error)})}}))})}return f}function Na(){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 n0(o,d,f){let p=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(),he()}),p.appendChild(y),p}let Ta=/Mac|iPhone|iPad|iPod/.test(navigator.platform??"")?"\u2318":"Ctrl+";function ju(o,d,f){let p=null,y=()=>{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 D=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 F=b.items??[];if(F.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 K of F){if(K.separator){let pe=k("kanuni-datagrid-menu-separator");pe.setAttribute("role","separator"),P.appendChild(pe);continue}let Y=document.createElement("button");Y.type="button",Y.className="kanuni-datagrid-menu-item",Y.setAttribute("role","menuitem"),K.disabled&&(Y.disabled=!0);let ne=k("kanuni-datagrid-menu-label","span");ne.textContent=K.label??"",Y.appendChild(ne),Y.addEventListener("click",()=>{K.onSelect?.(f),he()}),P.appendChild(Y)}o.parentElement?.appendChild(P),gn(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",y),B.addEventListener("click",()=>{b.onSelect?.(f),he()});D.appendChild(B),o.appendChild(D)})}let yn=o=>{let f=o.target.closest(".kanuni-datagrid-row");if(!f||f.classList.contains("kanuni-datagrid-group-row"))return;let p=Le(o);if(p?.columnId&&A.notifyCell("cellContextMenu",p.node,p.rowIndex,p.columnId),!ge&&!Ee||!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 y={row:p.node.data,node:p.node,rowIndex:p.rowIndex,columnId:p.columnId,selectedKeys:A.getSelectedKeys()},b=(typeof ge=="function"?ge(y):ge)??[],v=[...b,...Ma(y,b.length>0)],D=Ra(v.length>0);v.length===0&&D.length===0||Xe({left:o.clientX,top:o.clientY},B=>{B.setAttribute("role","menu"),ju(B,[...v,...D],y)},"kanuni-datagrid-context-menu")};function Ma(o,d){if(!qe?.onChange||qe.menu===!1)return[];let f=o.columnId;if(!f)return[];let p=o.node.key,y=Ku(p,f,o.row),b=[];return d&&b.push({separator:!0,id:"__note-sep"}),b.push({id:"__note-edit",label:y?T.editNote:T.addNote,onSelect:()=>Ia(p,f,o.row,y??"")}),y&&b.push({id:"__note-delete",label:T.deleteNote,onSelect:()=>qe.onChange?.({rowKey:p,columnId:f,row:o.row,text:null})}),b}function Ia(o,d,f,p){let b=(U.querySelector(`[data-row-key="${CSS.escape(String(o))}"] [data-column-id="${CSS.escape(d)}"]`)??U).getBoundingClientRect();queueMicrotask(()=>{Xe({left:b.left,top:b.bottom+2},v=>{v.setAttribute("aria-label",T.noteEditorAria);let D=document.createElement("textarea");D.className="kanuni-datagrid-note-input",D.rows=4,D.value=p,D.setAttribute("aria-label",T.noteEditorAria),D.placeholder=T.notePlaceholder,D.setAttribute("data-testid","dg-note-input");let B=()=>{let I=D.value.trim();he(),qe?.onChange?.({rowKey:o,columnId:d,row:f,text:I===""?null:I})};D.addEventListener("keydown",I=>{I.key==="Enter"&&(I.ctrlKey||I.metaKey)&&(I.preventDefault(),B()),I.key==="Escape"&&(I.preventDefault(),he())});let C=k("kanuni-datagrid-note-actions"),F=document.createElement("button");F.type="button",F.className="kanuni-datagrid-note-cancel",F.textContent=T.cancel,F.addEventListener("click",()=>he());let R=document.createElement("button");R.type="button",R.className="kanuni-datagrid-note-save",R.setAttribute("data-testid","dg-note-save"),R.textContent=T.save,R.addEventListener("click",B),C.append(F,R),v.append(D,C),queueMicrotask(()=>{D.focus(),D.select()})},"kanuni-datagrid-filter-popup kanuni-datagrid-note-editor")})}function La(o){Ze!==o&&(Ze=o,o?(U.insertBefore(de,W),Ju()):de.remove())}function Pa(o){if(Be!==o){if(Be=o,o){if(_e){let d=g.length>0?Et:se;le.insertBefore(ie,d)}else le.append(ie);$u()}else ie.remove();Et.style.setProperty("--dg-pinned-gap",String(Lu+(Be&&_e?1:0)))}}function Yu(o){let d=Su(U,o);d!==null&&A.setColumnWidth(o,d)}function Ga(o,d){let f=A.getColumnModel().getDef(o),p={columnId:o,headerName:f?.headerName??o},y=Fu(p,{controller:A,t:T,groupPanelVisible:Ze,footerVisible:Be,onToggleGroupPanel:()=>La(!Ze),onToggleFooter:()=>Pa(!Be),onOpenFieldChooser:()=>En(d),onBestFit:Yu,onBestFitAll:()=>{for(let v of A.getColumnStates())v.visible&&Yu(v.id)},maxGroupLevels:Te?Number.POSITIVE_INFINITY:1}),b=typeof oe=="function"?oe(p,y):y;b.length!==0&&Xe(d,v=>{v.setAttribute("role","menu"),ju(v,b,p)},"kanuni-datagrid-context-menu")}function Oa(o,d){let f=A.getColumnModel().getDef(o),p=A.getColumnSummary(o),y={columnId:o,headerName:f?.headerName??f?.field??o},b=[{id:"none",label:T.noTotal,disabled:p===null,onSelect:()=>A.setColumnSummary(o,null)},{id:"sep",separator:!0},...Zi(f?.dataType).map(v=>({id:v,label:Iu[v],disabled:p?.type===v,onSelect:()=>A.setColumnSummary(o,v)}))];Xe(d,v=>{v.setAttribute("role","menu"),ju(v,b,y)},"kanuni-datagrid-context-menu")}function En(o){Xe(o,d=>{let f=k("kanuni-datagrid-filter-list");for(let p of A.getColumnStates()){let y=document.createElement("label");y.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"),D=A.getColumnModel().getDef(p.id);v.textContent=D?.headerName??p.id,y.append(b,v),f.appendChild(y)}d.appendChild(f)},"kanuni-datagrid-filter-popup kanuni-datagrid-column-chooser")}let tt=null,Zu=null,nu=o=>{de.classList.toggle("kanuni-datagrid-group-panel--over",o)};function An(o,d,f){let p=A.getGroupLevels();if(o===d)return;let y=p.filter(D=>D!==o),b=y.indexOf(d);if(b<0)return;let v=f==="before"?b:b+1;Zu=o,A.groupBy([...y.slice(0,v),o,...y.slice(v)])}function bn(o,d){let f=A.getGroupLevels(),p=f.indexOf(o),y=p+d;p<0||y<0||y>=f.length||An(o,f[y],d===-1?"before":"after")}function vn(o,d){if(!o)return;let f=A.getGroupLevels();if(f.includes(o))return;let p=Te?Number.POSITIVE_INFINITY:1;if(f.length>=p){A.groupBy([...f.slice(0,p-1),o]);return}let y=d??f.length;A.groupBy([...f.slice(0,y),o,...f.slice(y)])}function Ju(){if(!Ze)return;de.textContent="";let o=A.getGroupLevels();if(o.length===0){let B=k("kanuni-datagrid-group-panel-hint","span");B.textContent=T.groupPanelHint??"Drag a column header here to group by it",de.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",y=(B,C)=>{for(let F of de.querySelectorAll(".kanuni-datagrid-group-level"))F.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 F=k("kanuni-datagrid-group-level");F.style.setProperty("--dg-group-level",String(C)),F.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",`${ft(T.groupLevelAria,{n:C+1})}: ${d(B)}`),R.addEventListener("dragstart",L=>{tt=B,L.dataTransfer&&(L.dataTransfer.effectAllowed="move",L.dataTransfer.setData("text/x-kanuni-column",B))}),R.addEventListener("dragend",()=>{tt=null,y(null,null)}),R.addEventListener("keydown",L=>{let K=L.ctrlKey||L.metaKey;K&&(L.key==="ArrowUp"||L.key==="ArrowLeft")?(L.preventDefault(),bn(B,-1)):K&&(L.key==="ArrowDown"||L.key==="ArrowRight")?(L.preventDefault(),bn(B,1)):(L.key==="Delete"||L.key==="Backspace")&&(L.preventDefault(),A.groupBy(o.filter(Y=>Y!==B)))}),F.addEventListener("dragover",L=>{!tt&&!(L.dataTransfer?.types.includes("text/x-kanuni-column")??!1)||(L.preventDefault(),L.stopPropagation(),y(F,p(L.clientY,F.getBoundingClientRect())))}),F.addEventListener("drop",L=>{L.preventDefault(),L.stopPropagation();let K=p(L.clientY,F.getBoundingClientRect());y(null,null),nu(!1);let Y=tt;if(tt=null,Y){An(Y,B,K);return}let ne=L.dataTransfer?.getData("text/x-kanuni-column");ne&&vn(ne,K==="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",ft(T.groupRemoveAria,{column:d(B)})),P.textContent="\xD7",P.addEventListener("click",()=>{A.groupBy(o.filter(L=>L!==B))}),P.draggable=!1,R.append(I,P),F.appendChild(R),f.appendChild(F),Zu===B&&(Zu=null,queueMicrotask(()=>R.focus()))}),de.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 D=document.createElement("button");D.type="button",D.textContent="Collapse all",D.addEventListener("click",()=>A.collapseAllGroups()),b.append(v,D),de.appendChild(b)}if(Ze){let o=d=>d.dataTransfer?.types.includes("text/x-kanuni-column")??!1;de.addEventListener("dragover",d=>{o(d)&&(d.preventDefault(),nu(!0))}),de.addEventListener("dragleave",d=>{let f=d.relatedTarget;f&&de.contains(f)||nu(!1)}),de.addEventListener("drop",d=>{nu(!1);let f=d.dataTransfer?.getData("text/x-kanuni-column");if(f){if(d.preventDefault(),tt){tt=null;return}vn(f)}})}let xn="";function Dn(){if(!Z)return;let o=[ft(T.announceRows,{n:A.getVisibleCount()})],d=A.getSort();if(d.length>0){let y=d.map(b=>{let v=A.getColumnModel().getDef(b.columnId),D=v?.headerName??v?.field??b.columnId,B=b.direction==="desc"?T.announceDescending:T.announceAscending;return`${D} ${B}`}).join(", ");o.push(ft(T.announceSortedBy,{columns:y}))}let f=A.getSelectedCount();f>0&&o.push(ft(T.announceSelected,{n:f}));let p=o.join(", ");p!==xn&&(xn=p,bt.textContent=p)}function Fn(){if(!z)return;Ye.textContent="";let o=Hi(A.getEffectiveFilter(),A.getColumnModel(),{..._,labels:{...Tr(T),..._?.labels}});if(!o&&z!=="always"){Ye.style.display="none";return}Ye.style.display="";let d=A.isFilterEnabled();Ye.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=T.filterRemove,f.setAttribute("aria-label",T.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=T.filterToggle,p.setAttribute("aria-label",T.filterToggle),p.setAttribute("data-testid","dg-filter-panel-toggle"),p.addEventListener("change",()=>A.setFilterEnabled(p.checked));let y=k("kanuni-datagrid-filter-panel-text","span");if(y.setAttribute("data-testid","dg-filter-panel-text"),y.textContent=o??T.filterNone,o&&(y.title=o),Ye.append(f,p,y),J){let b=document.createElement("button");b.type="button",b.className="kanuni-datagrid-filter-panel-builder",b.title=T.filterEditBuilder,b.setAttribute("aria-label",T.filterEditBuilder),b.setAttribute("data-testid","dg-filter-panel-builder"),b.textContent="\u25BE",b.addEventListener("click",J),Ye.appendChild(b)}}let Qu=new Set,Va=A.events.on("cellsFlashed",({rowKeys:o,columnIds:d,duration:f})=>{let p=o.length?o.map(D=>`[data-row-key="${CSS.escape(String(D))}"]`).join(","):".kanuni-datagrid-row",y=d.length?d.map(D=>`[data-column-id="${CSS.escape(D)}"]`).join(","):"[data-column-id]",b=[];X.querySelectorAll(p).forEach(D=>{D.querySelectorAll(y).forEach(B=>b.push(B))});for(let D of b)D.classList.remove("kanuni-datagrid-cell--flash");U.offsetWidth;for(let D of b)D.classList.add("kanuni-datagrid-cell--flash");let v=setTimeout(()=>{for(let D of b)D.classList.remove("kanuni-datagrid-cell--flash");Qu.delete(v)},f);Qu.add(v)});function Le(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 y=A.getRows(),b=y.findIndex(D=>String(D.key)===p);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 Sn=o=>{let d=Le(o);d&&(ku?.(d.node),A.notifyRow("rowClicked",d.node,d.rowIndex),d.columnId&&A.notifyCell("cellClicked",d.node,d.rowIndex,d.columnId))},Bn=o=>{let d=Le(o);if(d){if(Wr){let f=nr(d);f&&Wr(f)}yt?.(d.node),A.notifyRow("rowDoubleClicked",d.node,d.rowIndex),d.columnId&&A.notifyCell("cellDoubleClicked",d.node,d.rowIndex,d.columnId)}};X.addEventListener("click",Sn),X.addEventListener("dblclick",Bn);function Ha(o){let d=0,f=Ae.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 Ka(){if(N)for(let o of Ae.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 Xu=!1,kn=!1,pt=null;function iu(){pt!==null&&(clearTimeout(pt),pt=null)}function au(o){At.style.display=o?"":"none"}function ou(){let o=A.getOverlay();if($t.style.display=o==="noRows"?"":"none",Mu===!1){iu(),au(!1);return}if(!(o==="loading"&&(Xu||!kn))){iu(),au(!1);return}if(Xu||_r<=0){iu(),au(!0);return}pt!==null||At.style.display===""||(pt=setTimeout(()=>{pt=null,Ce||au(!0)},_r))}let Rn=!1,er=!1,tr=!1,ur=!1,Ce=!1;function za(){if(er=!1,!Ce){if(tr)tr=!1,ur&&(ur=!1,Qe++),Vu(),Hu(),Wu(),qu();else{let o=ce;Vu(),ce!==o&&(Qe++,Hu(),Wu(),qu())}zu(),on(),$u(),mn(),Ka(),Ju(),Fn(),Dn(),ou()}}function rr(o){Ce||(o&&(tr=!0),!er&&(er=!0,queueMicrotask(za)))}let Wa=[...ot?[A.events.on("focusedRowChanged",o=>ot({rowKey:o.rowKey,row:o.row}))]:[],..._s.map(o=>A.events.on(o,()=>rr(!0))),...js.map(o=>A.events.on(o,()=>{ur=!0})),...Ys.map(o=>A.events.on(o,()=>rr(!1))),A.events.on("overlayChanged",o=>{Xu=o.manual===!0&&o.overlay==="loading",Ce||ou()}),A.events.on("busyChanged",o=>{kn=o.background===!0,Ce||ou()}),A.events.on("paginationChanged",()=>{Ce||rr(!1)}),A.events.on("scrollRequested",o=>{if(Ce)return;o.scrollTop!==void 0&&(W.scrollTop=o.scrollTop),o.scrollLeft!==void 0&&(W.scrollLeft=o.scrollLeft),A.setScroll(W.scrollTop,Math.abs(W.scrollLeft));let d=o.scrollTop;d===void 0||Math.abs(W.scrollTop-d)<=1||setTimeout(()=>{Ce||Math.abs(W.scrollTop-d)<=1||(W.scrollTop=d,A.setScroll(W.scrollTop,Math.abs(W.scrollLeft)))},0)}),...V==="fitGrid"?[A.events.on("gridSizeChanged",()=>A.sizeColumnsToFit())]:[],...V==="fitCells"?[A.events.on("firstDataRendered",()=>{Ce||Rn||(Rn=!0,queueMicrotask(()=>{if(!Ce)for(let o of A.getColumnStates())o.visible&&Yu(o.id)}))})]:[]];V==="fitGrid"&&A.sizeColumnsToFit();function nr(o){if(!o.columnId||o.node.kind!=="data")return null;let d=xe.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 Nn=o=>{let d=o.target;if(zr){let D=Le(o),B=D?nr(D):null;B&&zr(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 y=A.getRows().find(D=>String(D.key)===p);if(!y||y.kind!=="data")return;A.handleRowClick(y.key,{ctrlKey:o.ctrlKey||qt&&!o.shiftKey,metaKey:o.metaKey,shiftKey:o.shiftKey});let b=d.closest(".kanuni-datagrid-cell"),v=b?xe.find(D=>b.id.endsWith(`-${D.id}`))?.id:void 0;v&&A.focusCell(y.key,v)},Tn=o=>{if(!Wt)return;let f=o.target.closest(".kanuni-datagrid-cell");if(!f||!X.contains(f)||o.relatedTarget?.closest?.(".kanuni-datagrid-cell")===f)return;let y=Le(o),b=y?nr(y):null;b&&Wt(b,o)};X.addEventListener("mousedown",Nn),X.addEventListener("contextmenu",yn),Wt&&X.addEventListener("mouseover",Tn),jt&&(se.addEventListener("dragstart",ga),se.addEventListener("dragover",fa),se.addEventListener("drop",Ca),se.addEventListener("dragend",wa),se.addEventListener("dragleave",ya)),U.tabIndex=0;let Mn=o=>{let d=o.target;if(d.tagName==="INPUT"||d.tagName==="TEXTAREA"||d.isContentEditable)return;let f=_i({key:o.key,ctrlKey:o.ctrlKey,metaKey:o.metaKey,shiftKey:o.shiftKey,altKey:o.altKey});if(!f)return;if(f.type==="copy"){ru();return}if(f.type==="activate"){if(yt){let b=A.getFocus(),v=b?A.getRows().find(D=>D.key===b.rowKey):void 0;v&&yt(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),D=A.ensureVisible(p.rowIndex,v===-1?void 0:v);D&&(D.scrollTop!==void 0&&(W.scrollTop=D.scrollTop),D.scrollLeft!==void 0&&(W.scrollLeft=D.scrollLeft),A.setScroll(W.scrollTop,Math.abs(W.scrollLeft)))}let y=A.getFocus();U.setAttribute("aria-activedescendant",y?`${t.gridId}-cell-${String(y.rowKey)}-${y.columnId}`:"")};U.addEventListener("keydown",Mn);let Ua=$r?Ki(A,$r):null,$a=typeof $e=="object"?$e.delay??400:400,qa=$e!==!1&&!(typeof $e=="object"&&$e.enabled===!1),_a=typeof $e=="object"?$e.showOnTruncation!==!1:!0,Bt=null,lu=null;function kt(){lu&&clearTimeout(lu),lu=null,Bt?.remove(),Bt=null}let ja=o=>o.scrollWidth>o.clientWidth+1||o.scrollHeight>o.clientHeight+1;function Ya(o){let f=o.closest(".kanuni-datagrid-row")?.getAttribute("data-row-key"),p=xe.find(D=>o.id.endsWith(`-${D.id}`));if(!f||!p)return null;let y=A.getRows().find(D=>String(D.key)===f);if(!y||y.kind!=="data")return null;let b=p.def,v=Ku(y.key,p.id,y.data);if(v)return v;if(typeof b.tooltip=="function")return b.tooltip({value:A.getColumnModel().getCellValue(y.data,p.id),row:y.data,node:y,column:b})??null;if(typeof b.tooltip=="string")return b.tooltip;if(b.tooltipField){let D=y.data[b.tooltipField];return D==null?null:String(D)}return _a&&ja(o)?o.textContent??null:null}let In=o=>{if(!qa)return;kt();let d=o.target.closest(".kanuni-datagrid-cell");!d||!X.contains(d)||(lu=setTimeout(()=>{let f=Ya(d);if(!f)return;let p=d.getBoundingClientRect();Bt=k(`${Hr(t)} kanuni-datagrid-portal`);let y=k("kanuni-datagrid-tooltip");y.setAttribute("role","tooltip"),y.textContent=f,y.style.position="fixed",y.style.left=`${p.left}px`,y.style.top=`${p.bottom+4}px`,y.style.zIndex="1001",Bt.appendChild(y),document.body.appendChild(Bt)},$a))},Ln=()=>kt();U.addEventListener("pointerover",In),U.addEventListener("pointerout",Ln),W.addEventListener("scroll",kt,{passive:!0});let Pn=()=>{if(A.setScroll(W.scrollTop,Math.abs(W.scrollLeft)),Pe)for(let o of Gn())o.scroller.scrollLeft!==W.scrollLeft&&(o.scroller.scrollLeft=W.scrollLeft)};W.addEventListener("scroll",Pn,{passive:!0});let Pe=null,Gn=()=>{if(!te||!Pe)return[];let o=Vt.get(te);return o?[...o].filter(d=>d!==Pe):[]},On=null;if(te){Pe={controller:A,scroller:W};let o=Vt.get(te)??new Set;o.add(Pe),Vt.set(te,o),On=A.events.on("columnStateChanged",()=>{if(Vr.has(te))return;let d=Gn();if(d.length===0)return;let f=A.getColumnStates();Vr.add(te);try{for(let p of d)p.controller.applyColumnStates(f)}finally{Vr.delete(te)}})}let Vn=()=>{A.setViewportSize(W.clientWidth,W.clientHeight),W.style.setProperty("--dg-viewport-width",`${W.clientWidth}px`);let o=se.getBoundingClientRect(),d=le.getBoundingClientRect();A.setChromeOffsets(o.top-d.top,d.bottom-o.bottom),Qi(W,A)};Vn();let su=null;return typeof ResizeObserver<"u"&&(su=new ResizeObserver(Vn),su.observe(W),su.observe(le)),Vu(),Hu(),Wu(),Ba(),qu(),zu(),$u(),mn(),Ju(),Fn(),Dn(),ou(),xt?.always&&Gu(!0),{controller:A,element:U,setData:o=>A.setData(o),setColumns:o=>A.setColumns(o),destroy:()=>{if(!Ce){if(Ce=!0,Wa.forEach(o=>o()),su?.disconnect(),an?.(),Dt&&(Dt=!1,at--,at<=0&&(at=0,document.documentElement.classList.remove("kanuni-datagrid-printing"))),On?.(),te&&Pe){let o=Vt.get(te);o?.delete(Pe),o&&o.size===0&&Vt.delete(te),Pe=null}W.removeEventListener("scroll",Pn),X.removeEventListener("mousedown",Nn),X.removeEventListener("contextmenu",yn),Wt&&X.removeEventListener("mouseover",Tn),X.removeEventListener("click",Sn),X.removeEventListener("dblclick",Bn),Va(),iu();for(let o of Qu)clearTimeout(o);U.removeEventListener("keydown",Mn),U.removeEventListener("pointerover",In),U.removeEventListener("pointerout",Ln),W.removeEventListener("scroll",kt),kt(),Ua?.(),he(),A.dispose(),U.remove()}}}}return ro(r0);})();