@kanunilabs/datagrid 1.4.0 → 1.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/datagrid.umd.js +8 -8
- package/dist/index.cjs +2 -2
- package/dist/index.js +2 -2
- package/dist/styles.css +32 -0
- package/package.json +4 -4
package/dist/datagrid.umd.js
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
"use strict";var KanuniLabsDataGrid=(()=>{var _o=Object.create;var vu=Object.defineProperty;var jo=Object.getOwnPropertyDescriptor;var Yo=Object.getOwnPropertyNames;var Qo=Object.getPrototypeOf,Xo=Object.prototype.hasOwnProperty;var Fr=(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 Jo=(e,t)=>{for(var u in t)vu(e,u,{get:t[u],enumerable:!0})},xa=(e,t,u,r)=>{if(t&&typeof t=="object"||typeof t=="function")for(let n of Yo(t))!Xo.call(e,n)&&n!==u&&vu(e,n,{get:()=>t[n],enumerable:!(r=jo(t,n))||r.enumerable});return e};var Dr=(e,t,u)=>(u=e!=null?_o(Qo(e)):{},xa(t||!e||!e.__esModule?vu(u,"default",{value:e,enumerable:!0}):u,e)),Zo=e=>xa(vu({},"__esModule",{value:!0}),e);var Td={};Jo(Td,{CHECKBOX_COLUMN_WIDTH:()=>eu,DENSITY_ROW_HEIGHT:()=>sn,DETAIL_COLUMN_WIDTH:()=>Tt,PRINT_MAX_ROWS:()=>yn,ROW_DRAG_MIME:()=>tu,ROW_NUMBER_COLUMN_WIDTH:()=>kt,THEME_ROW_HEIGHT:()=>cn,buildHeaderMenu:()=>Uu,createGrid:()=>Yi,isPackagedTheme:()=>dn,measureBestFitWidth:()=>qu,presetRowHeight:()=>Ku});function el(e){return e.kind==="group"}function Le(e){return e.kind==="data"}function tl(e){return e.kind==="treePath"}function ul(e){return!Array.isArray(e)&&typeof e.load=="function"}function ii(e){return typeof e=="string"||typeof e=="number"}var oi="\u2063tree:";function rl(e){return oi+JSON.stringify(e)}function Sr(e){return typeof e=="string"&&e.startsWith(oi)}function nl(e,t,u){let r=new Map,n=new Map,a=new Map,i=new Map,l=new Map,o=new Array(e.length);for(let c=0;c<e.length;c++){let g=t(e[c]);a.set(g,c);let f=u(e[c]),C=Array.isArray(f)?f.map(F=>String(F)):[];o[c]=C;let b=JSON.stringify(C);C.length>0&&!l.has(b)&&l.set(b,g)}let d=(c,g)=>{n.set(g,c);let f=r.get(c);f?f.push(g):r.set(c,[g])},h=c=>{if(c.length===0)return null;let g=l.get(JSON.stringify(c));if(g!==void 0)return g;let f=rl(c);return i.has(f)||(i.set(f,{label:c[c.length-1],path:c}),d(h(c.slice(0,-1)),f)),f};for(let c=0;c<e.length;c++){let g=t(e[c]),f=o[c];d(f.length>1?h(f.slice(0,-1)):null,g)}return{childrenOf:r,parentOf:n,sourceIndexOf:a,pathRows:i}}function Br(e,t,u=new WeakMap){let r=[],n=[];for(let a=e.length-1;a>=0;a--)n.push({row:e[a],parent:null});for(;n.length>0;){let{row:a,parent:i}=n.pop();r.push(a),i!==null&&typeof a=="object"&&a!==null&&u.set(a,i);let l=a&&typeof a=="object"?a[t]:void 0;if(Array.isArray(l))for(let o=l.length-1;o>=0;o--)n.push({row:l[o],parent:a})}return{rows:r,parentOf:u}}function al(e){let{getParentKey:t,parentField:u}=e;if(t)return n=>t(n)??null;let r=u??"parentId";return n=>n[r]??null}function il(e,t,u){let r=new Map,n=new Map,a=new Map;for(let o=0;o<e.length;o++)a.set(t(e[o]),o);for(let o=0;o<e.length;o++){let d=t(e[o]),h=u(e[o]);h!==null&&(h===d||!a.has(h))&&(h=null),n.set(d,h);let c=r.get(h);c?c.push(d):r.set(h,[d])}let i=new Set;for(let o of n.keys()){if(i.has(o))continue;let d=new Set,h=o;for(;h!==null&&!i.has(h);){if(d.has(h)){let c=n.get(h)??null;n.set(h,null);let g=r.get(c);if(g){let C=g.indexOf(h);C>=0&&g.splice(C,1)}let f=r.get(null);f?f.push(h):r.set(null,[h]);break}d.add(h),h=n.get(h)??null}for(let c of d)i.add(c)}let l=r.get(null);return l&&l.sort((o,d)=>(a.get(o)??0)-(a.get(d)??0)),{childrenOf:r,parentOf:n,sourceIndexOf:a}}var ol=Object.freeze({});function ll(e,t){let{index:u,sourceRows:r,isExpanded:n}=t,a=new Map,i=new Map;for(let b=0;b<e.length;b++)a.set(e[b].key,e[b]),i.set(e[b].key,b);let l=e.length!==u.sourceIndexOf.size,o=u.pathRows,d=new Set(a.keys()),h=new Map;if(l||o&&o.size>0)for(let b of a.keys()){let F=i.get(b),R=u.parentOf.get(b)??null;for(;R!==null&&!d.has(R);)d.add(R),o?.has(R)&&h.set(R,F),R=u.parentOf.get(R)??null}let c=b=>{let F=b.filter(R=>d.has(R));return F.sort((R,I)=>{let V=i.get(R)??h.get(R),$=i.get(I)??h.get(I);return V!==void 0&&$!==void 0?V-$:V!==void 0?-1:$!==void 0?1:(u.sourceIndexOf.get(R)??0)-(u.sourceIndexOf.get(I)??0)}),F},g=[],f=[],C=c(u.childrenOf.get(null)??[]);for(let b=C.length-1;b>=0;b--)f.push({key:C[b],depth:0});for(;f.length>0;){let{key:b,depth:F}=f.pop(),R=c(u.childrenOf.get(b)??[]),I=R.length>0,V=I&&(l||n(b)),$=a.get(b),Y=o?.get(b);if(Y)g.push({kind:"treePath",key:b,label:Y.label,path:Y.path,data:ol,tree:{depth:F,hasChildren:I,expanded:V,ancestorOnly:!1}});else{let G=u.sourceIndexOf.get(b)??-1,_={depth:F,hasChildren:I,expanded:V,ancestorOnly:$===void 0};g.push($?{...$,tree:_}:{kind:"data",key:b,sourceIndex:G,data:r[G],tree:_})}if(V)for(let G=R.length-1;G>=0;G--)f.push({key:R[G],depth:F+1})}return{nodes:g}}var ba=new WeakMap;function sl(e){if(typeof e.items=="function"||!Array.isArray(e.items))return null;let t=ba.get(e);if(t)return t;let u=new Map;for(let r of e.items)u.set(r.value,r.label);return ba.set(e,u),u}function ft(e,t){if(!e?.lookup)return null;let u=sl(e.lookup);if(!u)return null;let r=u.get(t);return r===void 0?null:r}function dl(e){return e?.lookup?typeof e.lookup.items=="function"?null:e.lookup.items:null}function He(e){let t=e?.band;return t==null?[]:typeof t=="string"?t===""?[]:[t]:t.filter(u=>typeof u=="string"&&u!=="")}function _t(e){return e.join("\0")}function cl(e,t){let u=e?.bandShow;if(u===void 0)return!1;let r=He(e);if(r.length===0)return!1;let n=!1;for(let a=0;a<r.length;a++)if(t.has(_t(r.slice(0,a+1)))){n=!0;break}return u==="open"?n:!n}function li(e){let t=0;for(let u of e){let r=He(u.def).length;r>t&&(t=r)}return t}function si(e,t){if(t<=0)return[];let u=[];for(let r=0;r<t;r++){let n=[];for(let a of e){let i=He(a.def),l=r<i.length?i[r]:"",o=l==="",d=n[n.length-1];d!==void 0&&d.spacer===o&&d.label===l&&(o||hl(e,d.columnIds[0],a.state.id,r))?(d.columnIds.push(a.state.id),d.width+=a.state.width):n.push({label:l,columnIds:[a.state.id],width:a.state.width,level:r,spacer:o})}u.push(n)}return u}function hl(e,t,u,r){if(r===0)return!0;let n=e.find(o=>o.state.id===t),a=e.find(o=>o.state.id===u),i=He(n?.def),l=He(a?.def);for(let o=0;o<r;o++)if(i[o]!==l[o])return!1;return!0}var pl=/^\d{4}-\d{2}-\d{2}(?:[T ]\d{2}:\d{2}|$)/;function ml(e){return e==null||e===""?null:typeof e=="boolean"?"boolean":typeof e=="number"?Number.isFinite(e)?"number":null:e instanceof Date||typeof e=="string"&&pl.test(e)?"date":"string"}function gl(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:a=!0,defaults:i}=t;if(!e||e.length===0)return[];let l=new Set(r??[]),o=Math.min(e.length,Math.max(1,u)),d=new Map;for(let h=0;h<o;h++){let c=e[h];if(!(!c||typeof c!="object"))for(let[g,f]of Object.entries(c)){if(l.has(g))continue;d.get(g)==null&&d.set(g,ml(f))}}return(n?n.filter(h=>d.has(h)&&!l.has(h)):[...d.keys()]).map(h=>({...i,field:h,headerName:a?gl(h):h,...d.get(h)?{dataType:d.get(h)}:{}}))}var Je=(e,t)=>`${e}:${t}`;function fl(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 Cl(e,t){return t==="date"&&!(e instanceof Date)&&typeof e!="number"?Date.parse(String(e)):fl(e)}function Zr(e,t,u,r=Je(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 yl(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 Lu(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=Cl(t,e.dataType);Number.isNaN(r)||(e.numericCount++,e.sum+=r,r<e.min&&(e.min=r),r>e.max&&(e.max=r))}function Pu(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 ci(e,t,u,r,n,a){let i={};if(n.length===0)return i;let l=a?.effectiveValue,o=a?.effectiveRow,d=[];for(let h of n){let c=Je(h.columnId,h.type);if(h.type==="custom"){if(!h.calculate){i[c]=null;continue}let g=[];for(let f=t;f<u;f++){let C=e[f];if(!C||!Le(C))continue;let b=r.getCellValue(C.data,h.columnId);g.push({row:o?o(C.key,C.data):C.data,value:l?l(C.key,h.columnId,b):b})}i[c]=h.calculate(g);continue}d.push(Zr(h.columnId,h.type,r.getDataType(h.columnId),c))}if(d.length>0){let h=d.length===1?d[0]:null;for(let c=t;c<u;c++){let g=e[c];if(!g||!Le(g))continue;let f=g.data;if(h){let C=r.getCellValue(f,h.columnId);Lu(h,l?l(g.key,h.columnId,C):C);continue}for(let C of d){let b=r.getCellValue(f,C.columnId);Lu(C,l?l(g.key,C.columnId,b):b)}}for(let c of d)i[c.key]=Pu(c)}return i}function wl(e,t,u,r){return ci(e,0,e.length,t,u,r)}function El(e,t,u){let r=u?.effectiveValue,n=u?.effectiveRow,a=[],i=[],l=[];for(let o of t){if(o.type==="custom"){o.calculate?i.push({def:o,cells:[]}):l.push(Je(o.columnId,o.type));continue}a.push(Zr(o.columnId,o.type,e.getDataType(o.columnId)))}return{add(o,d,h){for(let c=d;c<h;c++){let g=o[c];if(!g||!Le(g))continue;let f=g.data;for(let C of a){let b=e.getCellValue(f,C.columnId);Lu(C,r?r(g.key,C.columnId,b):b)}for(let{def:C,cells:b}of i){let F=e.getCellValue(f,C.columnId);b.push({row:n?n(g.key,f):f,value:r?r(g.key,C.columnId,F):F})}}},finish(){let o={};for(let d of l)o[d]=null;for(let d of a)o[d.key]=Pu(d);for(let{def:d,cells:h}of i)o[Je(d.columnId,d.type)]=d.calculate(h);return o}}}var Fu=(e,t=2)=>String(e).padStart(t,"0");function Al(e){if(e instanceof Date)return Number.isNaN(e.getTime())?null:e;if(typeof e=="number"&&Number.isFinite(e))return new Date(e);if(typeof e=="string"&&e.trim()!==""){let t=/^(\d{4})-(\d{2})-(\d{2})$/.exec(e.trim());if(t)return new Date(Number(t[1]),Number(t[2])-1,Number(t[3]));let u=Date.parse(e);return Number.isNaN(u)?null:new Date(u)}return null}function xl(e){let t=new Date(e.getFullYear(),e.getMonth(),e.getDate()),u=(t.getDay()+6)%7;t.setDate(t.getDate()-u+3);let r=t.getFullYear(),n=new Date(r,0,4),a=(n.getDay()+6)%7;n.setDate(n.getDate()-a+3);let i=1+Math.round((t.getTime()-n.getTime())/(7*864e5));return{year:r,week:i}}function va(e,t){let u=Al(e);if(!u)return null;let r=u.getFullYear(),n=u.getMonth();switch(t){case"day":return{key:`${r}-${Fu(n+1)}-${Fu(u.getDate())}`,start:new Date(r,n,u.getDate())};case"week":{let{year:a,week:i}=xl(u),l=(u.getDay()+6)%7;return{key:`${a}-W${Fu(i)}`,start:new Date(r,n,u.getDate()-l)}}case"month":return{key:`${r}-${Fu(n+1)}`,start:new Date(r,n,1)};case"quarter":{let a=Math.floor(n/3);return{key:`${r}-Q${a+1}`,start:new Date(r,a*3,1)}}case"year":return{key:String(r),start:new Date(r,0,1)};default:return null}}function bl(e,t,u){let{start:r,key:n}=e;try{switch(t){case"day":return new Intl.DateTimeFormat(u,{dateStyle:"medium"}).format(r);case"month":return new Intl.DateTimeFormat(u,{month:"long",year:"numeric"}).format(r);case"year":return new Intl.DateTimeFormat(u,{year:"numeric"}).format(r);case"quarter":return`Q${Math.floor(r.getMonth()/3)+1} ${new Intl.DateTimeFormat(u,{year:"numeric"}).format(r)}`;case"week":return`${n} \xB7 ${new Intl.DateTimeFormat(u,{day:"numeric",month:"short"}).format(r)}`}}catch{}return n}var Fa=(e,t)=>`${e}::${t}`;function vl(e,t,u){let r=u.columnIds,n=u.summaries,a=0,i=r.map(h=>{let c=t.getDef(h);return c?.groupInterval&&t.getDataType(h)==="date"?c.groupInterval:void 0}),l=(h,c)=>{let g=t.getCellValue(e[h].data,r[c]),f=i[c];return f?va(g,f)?.key??"":g==null?"":String(g)},o=(h,c,g,f)=>{let C=r[g],b=i[g],F=[],R=h;for(;R<c;){let I=t.getCellValue(e[R].data,C),V=b?va(I,b):null,$=V?V.start:b?null:I,Y=l(R,g),G=R+1;for(;G<c&&l(G,g)===Y;)G++;let _=f?`${f}|${Fa(C,Y)}`:Fa(C,Y),oe={columnId:C,value:$,label:Y,key:_,level:g,from:R,to:G,count:G-R,children:null};V&&b&&(oe.display=bl(V,b,u.locale??"en")),n&&n.length>0&&(oe.aggregates=ci(e,R,G,t,n)),a++,g+1<r.length&&(oe.children=o(R,G,g+1,_)),F.push(oe),R=G}return F},d=r.length===0?[]:o(0,e.length,0,"");return{levels:r,roots:d,totalGroupCount:a,nodes:e}}function Fl(e,t){let{collapsedKeys:u,collapsedByDefault:r=!1}=t,n=[],a=0,i=l=>{for(let o of l){let d=r?!u.has(o.key):u.has(o.key),h={kind:"group",key:o.key,columnId:o.columnId,value:o.value,label:o.label,...o.display!==void 0?{display:o.display}:{},count:o.count,level:o.level,expanded:!d};if(o.aggregates&&(h.aggregates=o.aggregates),n.push(h),a++,!d)if(o.children)i(o.children);else for(let c=o.from;c<o.to;c++)n.push(e.nodes[c])}};return i(e.roots),{nodes:n,groupCount:a}}function Dl(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 kr(e,t){let u=t==null?[]:Array.isArray(t)?[...t]:[t];if(u.length===0)return[...e];let r=u.map(a=>({columnId:a,direction:e.find(i=>i.columnId===a)?.direction??"asc"})),n=e.filter(a=>!u.includes(a.columnId));return[...r,...n]}function Sl(e,t){let u=new Map,r=new Map,n=new Set,a,i,l=!1;for(let d of e){if(d.add){for(let h of d.add){let c=t(h);u.set(c,h),r.delete(c)}l||(l=!0,a=d.addPosition,i=d.addBeforeKey)}if(d.update)for(let h of d.update){let c=t(h);if(u.has(c)){u.set(c,h);continue}n.has(c)||r.set(c,h)}if(d.remove)for(let h of d.remove){let c=ii(h)?h:t(h);if(u.has(c)){u.delete(c),r.delete(c);continue}r.delete(c),n.add(c)}}let o={};return u.size>0&&(o.add=[...u.values()],a!==void 0&&(o.addPosition=a),i!==void 0&&(o.addBeforeKey=i)),r.size>0&&(o.update=[...r.values()]),n.size>0&&(o.remove=[...n]),o}function Bl(e){return!e.add?.length&&!e.update?.length&&!e.remove?.length}function Qt(e){return e.nodes!==void 0}function Da(...e){let t=e.filter(u=>u!=null);return t.length===0?null:t.length===1?t[0]:{logic:"and",nodes:t}}var hi="row",en="set",St="__default",kl=/[\u0130\u0131]/,Tl=/[\u0130\u0131]/g;function ne(e){return kl.test(e)?e.replace(Tl,"i").toLowerCase():e.toLowerCase()}var Nl=[{token:"yyyy",kind:"year"},{token:"yy",kind:"year"},{token:"MM",kind:"month"},{token:"dd",kind:"day"}];function Rl(e){let t=[],u="",r=0;for(;r<e.length;){let n=Nl.find(a=>e.startsWith(a.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 Ml(e){if(e==null||e==="")return null;if(e instanceof Date)return Number.isNaN(e.getTime())?null:e;if(typeof e=="number"){let n=new Date(e);return Number.isNaN(n.getTime())?null:n}let t=String(e),u=/^(\d{4})-(\d{2})-(\d{2})$/.exec(t);if(u)return new Date(Number(u[1]),Number(u[2])-1,Number(u[3]));let r=new Date(t);return Number.isNaN(r.getTime())?null:r}var Du=new Map;function Il(e){let t=Du.get(e);return t||(Du.size>=64&&Du.clear(),t=Rl(e),Du.set(e,t)),t}function tn(e,t){let u=Ml(e);if(!u)return"";let r=(n,a)=>String(n).padStart(a,"0");return Il(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 a=u.getFullYear();return n.length>2?r(a,n.length):r(a%100,2)}).join("")}function Gu(e,t,u){let r=ft(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 pi(e){return e?typeof e.valueFormatter=="function"||!!e.dateFormat&&e.dataType==="date":!1}function mi(e,t,u){if(!e||ft(e,t)!==null)return null;let r;try{if(typeof e.valueFormatter=="function")r=e.valueFormatter(t,u);else if(e.dateFormat&&e.dataType==="date"&&t!=null)r=tn(t,e.dateFormat);else return null}catch{return null}return typeof r=="number"?String(r):typeof r=="string"&&r!==""?r:null}var Sa=-1,$r="\0display:";function Ll(e){return $r+e}function un(e){return e.startsWith($r)?e.slice($r.length):null}function gi(e,t,u){return mi(e.getDef(t),e.getCellValue(u,t),u)}function Ou(e){return e==null||typeof e=="number"&&Number.isNaN(e)}function fi(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 Ci(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 yi(e,t,u,r=!1){let n=e.length,a=0,i=un(u),l=i===null?t.getDataType(u):"string",o=i!==null?g=>gi(t,i,g):r?g=>t.getSortValue(g,u):g=>t.getCellValue(g,u);if(l==="number"||l==="boolean"||l==="date"){let g=new Float64Array(n),f=l==="date"?Ci:fi,C=[],b=new Map,F=new Int32Array(n),R=!0;return{total:n,get done(){return a},step(I){let V=Math.min(n,a+I);for(;a<V;a++){let $=o(e[a]);if(Ou($)){g[a]=Number.NaN,F[a]=Sa;continue}g[a]=f($),typeof $!="number"&&(R=!1);let Y=String($),G=b.get(Y);G===void 0&&(G=C.length,C.push(Y),b.set(Y,G)),F[a]=G}return a<n},finish(){return R?{kind:"numeric",values:g}:{kind:"numeric",values:g,searchCodes:F,searchDictionary:C}}}}let d=new Int32Array(n),h=[],c=new Map;return{total:n,get done(){return a},step(g){let f=Math.min(n,a+g);for(;a<f;a++){let C=o(e[a]);if(Ou(C)){d[a]=Sa;continue}let b=String(C),F=c.get(b);F===void 0&&(F=h.length,h.push(b),c.set(b,F)),d[a]=F}return a<n},finish(){return{kind:"text",codes:d,dictionary:h}}}}function Pl(e,t,u,r=!1){let n=yi(e,t,u,r);return n.step(n.total),n.finish()}var Ba=new WeakMap;function Gl(e){let t=Ba.get(e);if(t!==void 0)return t;let u=Ol(e);return Ba.set(e,u),u}function Ol(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 ka(e){for(let t=0;t<e.length;t++){let u=e.charCodeAt(t);if(u<32||u>126)return!1}return!0}function Vl(e,t){let u=0,r=0,n=e.length,a=t.length;for(;u<n&&r<a;){let i=e.charCodeAt(u),l=t.charCodeAt(r),o=i>=48&&i<=57,d=l>=48&&l<=57;if(o!==d)return!0;if(o){for(;u<n&&e.charCodeAt(u)===48;)u++;for(;r<a&&t.charCodeAt(r)===48;)r++;let h=u,c=r;for(;u<n;){let f=e.charCodeAt(u);if(f<48||f>57)break;u++}for(;r<a;){let f=t.charCodeAt(r);if(f<48||f>57)break;r++}let g=u-h;if(g!==r-c)return!0;for(let f=0;f<g;f++)if(e.charCodeAt(h+f)!==t.charCodeAt(c+f))return!0}else{if(i>=65&&i<=90&&(i+=32),l>=65&&l<=90&&(l+=32),i!==l)return!0;u++,r++}}return u!==n||r!==a}function zl(e,t){let u=e.length,r=new Array(u);for(let d=0;d<u;d++)r[d]=d;r.sort((d,h)=>t.compare(e[d],e[h]));let n=new Int32Array(u);if(u===0)return n;let a=Gl(t)?new Uint8Array(u):null,i=r[0],l=a?ka(e[i])?1:2:0;a&&(a[i]=l);let o=0;n[i]=0;for(let d=1;d<u;d++){let h=r[d],c=e[i],g=e[h],f=0;a&&(f=a[h],f===0&&(f=ka(g)?1:2,a[h]=f)),(l===1&&f===1&&Vl(c,g)||t.compare(c,g)!==0)&&o++,n[h]=o,i=h,l=f}return n}var Xt=["today","yesterday","tomorrow","thisWeek","lastWeek","nextWeek","thisMonth","lastMonth","nextMonth","thisQuarter","lastQuarter","nextQuarter","thisYear","lastYear","nextYear","yearToDate","lastDays","nextDays"],U=(e,t,u)=>new Date(e,t,u).getTime();function Hl(e,t=new Date){if(!e||typeof e!="object")return null;let u=t.getFullYear(),r=t.getMonth(),n=t.getDate(),a=(t.getDay()+6)%7,i=Math.floor(r/3)*3,l,o;switch(e.period){case"today":[l,o]=[U(u,r,n),U(u,r,n+1)];break;case"yesterday":[l,o]=[U(u,r,n-1),U(u,r,n)];break;case"tomorrow":[l,o]=[U(u,r,n+1),U(u,r,n+2)];break;case"thisWeek":[l,o]=[U(u,r,n-a),U(u,r,n-a+7)];break;case"lastWeek":[l,o]=[U(u,r,n-a-7),U(u,r,n-a)];break;case"nextWeek":[l,o]=[U(u,r,n-a+7),U(u,r,n-a+14)];break;case"thisMonth":[l,o]=[U(u,r,1),U(u,r+1,1)];break;case"lastMonth":[l,o]=[U(u,r-1,1),U(u,r,1)];break;case"nextMonth":[l,o]=[U(u,r+1,1),U(u,r+2,1)];break;case"thisQuarter":[l,o]=[U(u,i,1),U(u,i+3,1)];break;case"lastQuarter":[l,o]=[U(u,i-3,1),U(u,i,1)];break;case"nextQuarter":[l,o]=[U(u,i+3,1),U(u,i+6,1)];break;case"thisYear":[l,o]=[U(u,0,1),U(u+1,0,1)];break;case"lastYear":[l,o]=[U(u-1,0,1),U(u,0,1)];break;case"nextYear":[l,o]=[U(u+1,0,1),U(u+2,0,1)];break;case"yearToDate":[l,o]=[U(u,0,1),U(u,r,n+1)];break;case"lastDays":case"nextDays":{let d=e.days;if(typeof d!="number"||!Number.isInteger(d)||d<1)return null;[l,o]=e.period==="lastDays"?[U(u,r,n-d+1),U(u,r,n+1)]:[U(u,r,n),U(u,r,n+d)];break}default:return null}return[l,o-1]}function rn(e,t=new Date){if(!e)return null;if(Qt(e)){let r=!1,n=e.nodes.map(a=>{let i=rn(a,t);return i!==a&&(r=!0),i});return r?{...e,nodes:n}:e}if(e.operator!=="period")return e;let u=Hl(e.value,t);return{columnId:e.columnId,operator:"between",value:u??[]}}function ie(e){return e==null}function Ve(e){return e==null?"":String(e)}function Qe(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 vt(e,t){let u=Qe(e),r=Qe(t);if(typeof u=="number"&&typeof r=="number")return u-r;if(typeof u=="number"&&typeof r=="string"){let i=Date.parse(r);if(!Number.isNaN(i))return u-i}else if(typeof u=="string"&&typeof r=="number"){let i=Date.parse(u);if(!Number.isNaN(i))return i-r}let n=String(u),a=String(r);return n<a?-1:n>a?1:0}var Ta=new WeakMap;function Wl(e){let t=Ta.get(e);if(!t){t=new Set;let u=Array.isArray(e.value)?e.value:[];for(let r of u){if(ie(r))continue;let n=Qe(r);typeof n=="number"&&Number.isNaN(n)||t.add(n)}Ta.set(e,t)}return t}function wi(e,t){switch(t.operator){case"isnull":return ie(e);case"isnotnull":return!ie(e);case"=":return ie(e)||ie(t.value)?ie(e)&&ie(t.value):Qe(e)===Qe(t.value);case"<>":return ie(e)||ie(t.value)?!(ie(e)&&ie(t.value)):Qe(e)!==Qe(t.value);case">":return!ie(e)&&vt(e,t.value)>0;case">=":return!ie(e)&&vt(e,t.value)>=0;case"<":return!ie(e)&&vt(e,t.value)<0;case"<=":return!ie(e)&&vt(e,t.value)<=0;case"contains":return ne(Ve(e)).includes(ne(Ve(t.value)));case"notcontains":return!ne(Ve(e)).includes(ne(Ve(t.value)));case"startswith":return ne(Ve(e)).startsWith(ne(Ve(t.value)));case"endswith":return ne(Ve(e)).endsWith(ne(Ve(t.value)));case"in":{if(ie(e))return!1;let u=Qe(e);return typeof u=="number"&&Number.isNaN(u)?!1:Wl(t).has(u)}case"between":{if(!Array.isArray(t.value)||t.value.length<2||ie(e))return!1;let[u,r]=t.value;return vt(e,u)>=0&&vt(e,r)<=0}default:return!0}}function Ur(e,t,u){if(Qt(t))return t.nodes.length===0?!0:t.logic==="or"?t.nodes.some(n=>Ur(e,n,u)):t.nodes.every(n=>Ur(e,n,u));let r=u.getCellValue(e,t.columnId);return wi(r,t)}function Yt(e){return ne((e??"").trim())}function qr(e,t,u){if(u==="")return null;let r=null;for(let n of t){let a=e.getDef(n)?.lookup?.items;if(!Array.isArray(a))continue;let i=null;for(let l of a)ne(String(l.label)).includes(u)&&(i??=new Set).add(String(l.value));i&&(r??=new Map).set(n,i)}return r}function _r(e){let t=e.getOrder().filter(r=>e.getState(r)?.visible),u=t.filter(r=>pi(e.getDef(r))).map(Ll);return u.length===0?t:[...t,...u]}function Na(e){if(!e||e.size===0)return;let t={};for(let[u,r]of e)t[u]=[...r];return t}function Kl(e,t,u,r,n,a){r=rn(r);let i=Yt(n),l=!!r,o=i.length>0,d=typeof a=="function";if(!l&&!o&&!d)return e.slice();let h=o?u.getOrder().filter(I=>u.getState(I)?.visible):[],c=o?qr(u,h,i):null,g=c!==null,f=g?h.map(I=>c.get(I)??null):[],C=o?h.map(I=>{let V=u.getDef(I);return pi(V)?V:void 0}):[],b=C.some(I=>I!==void 0),F=new Uint32Array(e.length),R=0;for(let I=0;I<e.length;I++){let V=e[I],$=t[V];if(!(l&&!Ur($,r,u))&&!(d&&!a($))){if(o){let Y=!1;for(let G=0;G<h.length;G++){let _=u.getCellValue($,h[G]);if(!ie(_)){let oe=Ve(_);if(ne(oe).includes(i)){Y=!0;break}if(g){let Pe=f[G];if(Pe!==null&&Pe.has(oe)){Y=!0;break}}}if(b){let oe=C[G];if(oe!==void 0){let Pe=mi(oe,_,$);if(Pe!==null&&ne(Pe).includes(i)){Y=!0;break}}}}if(!Y)continue}F[R++]=V}}return R===F.length?F:F.slice(0,R)}var $l=wi;function Ul(e){return e==="in"||e==="isnull"}function Ei(e){if(!Qt(e))return Ul(e.operator)?[e]:null;if(e.logic!=="or")return null;let t=[];for(let u of e.nodes){let r=Ei(u);if(!r)return null;t.push(...r)}return t.length>0?t:null}function Ai(e,t){if(!e)return null;let u=Ei(e);if(!u)return null;let r=[];for(let n of t)u.some(a=>$l(n.value,a))&&r.push(n.label);return r.length===t.length?null:r}function ql(e){return e==null||e===""}function _l(e,t,u){let r=[],n=-1,a,i,l=o=>{n>=0&&o-n>1&&r.push({start:n,end:o-1,length:o-n}),n=-1,i=void 0};for(let o=0;o<e.length;o++){let d=e[o];if(!d||d.kind!=="data"){l(o);continue}let h=d.data,c=t(h);if(ql(c)){l(o);continue}n>=0&&i!==void 0&&(u?u({value:c,row:h},{value:a,row:i}):Object.is(c,a))||(l(o),n=o,a=c,i=h)}return l(e.length),r}function jl(e,t){let u=0,r=e.length-1;for(;u<=r;){let n=u+r>>1,a=e[n];if(t<a.start)r=n-1;else if(t>a.end)u=n+1;else return a}return null}function xi(e,t,u,r=Number.POSITIVE_INFINITY){let n=jl(e,t);if(!n)return null;let a=Math.max(n.start,u);if(t!==a)return{role:"covered"};let i=Math.min(n.end,r);return{role:"draw",span:n,drawStart:a,drawEnd:i,clippedAbove:n.start<a,clippedBelow:n.end>i}}function bi(e,t=globalThis){let u=new Map,r=!1,n=a=>{let i=u.get(a);i!==void 0&&(t.clearTimeout(i),u.delete(a))};return{schedule(a,i){if(!r){if(n(a),e<=0){i();return}u.set(a,t.setTimeout(()=>{u.delete(a),r||i()},e))}},cancel:n,cancelAll(){for(let a of u.values())t.clearTimeout(a);u.clear()},dispose(){r=!0;for(let a of u.values())t.clearTimeout(a);u.clear()},isPending(a){return u.has(a)},get pendingCount(){return u.size}}}var vi=30,Ra="Other",Yl=1e4;function Fi(e){return!e.series.some(t=>t.aggregate==="custom")}function Di(e){return e==null?"":String(e)}var Xe=864e5,Ql=60,Xl=20,Su=2e3,Tr=["day","week","month","quarter","year"],Ma={day:Xe,week:7*Xe,month:30.44*Xe,quarter:91.31*Xe,year:365.25*Xe};function Ia(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 a=Date.UTC(r,n,u.getUTCDate()),i=(new Date(a).getUTCDay()+6)%7;return a-i*Xe}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 La(e,t){let u=new Date(e),r=u.getUTCFullYear(),n=u.getUTCMonth();switch(t){case"day":return e+Xe;case"week":return e+7*Xe;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 Nr=e=>e<10?`0${e}`:String(e);function Jl(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}-${Nr(u.getUTCMonth()+1)}`;default:return`${r}-${Nr(u.getUTCMonth()+1)}-${Nr(u.getUTCDate())}`}}function Zl(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 Si(e,t,u){let r=Number.isFinite(t)&&Number.isFinite(u)?Math.max(0,u-t):0;if(e.kind==="date"){let l=e.unit??"auto",o,d=!1;if(l==="auto")o=Tr.find(h=>r/Ma[h]+1<=Ql)??"year";else for(o=l;r/Ma[o]+1>Su;){let h=Tr[Tr.indexOf(o)+1];if(!h)break;o=h,d=!0}return{info:{kind:"date",unit:o,adjusted:d},keyOf:h=>Number.isFinite(h)?Ia(h,o):Number.NaN,endOf:h=>La(h,o),labelOf:h=>Jl(h,o),keys:(h,c)=>{let g=[];if(!Number.isFinite(h)||!Number.isFinite(c))return g;for(let f=Ia(h,o);f<=c&&g.length<Su;f=La(f,o))g.push(f);return g}}}let n=e.size&&e.size>0?e.size:Zl(r/Math.max(1,e.bins??Xl));(!(n>0)||!Number.isFinite(n))&&(n=1);let a=!1;for(;r/n+1>Su;)n*=2,a=!0;let i=n;return{info:{kind:"number",size:i,adjusted:a},keyOf:l=>Number.isFinite(l)?Math.floor(l/i)*i:Number.NaN,endOf:l=>l+i,labelOf:l=>{let o=d=>String(Number(d.toPrecision(12)));return`${o(l)} \u2013 ${o(l+i)}`},keys:(l,o)=>{let d=[];if(!Number.isFinite(l)||!Number.isFinite(o))return d;let h=Math.floor(l/i)*i;for(let c=h;c<=o&&d.length<Su;c+=i)d.push(c);return d}}}function Vu(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 Rr(e,t,u,r={}){let n=Math.max(1,u.maxCategories??vi),a=u.otherBucket!==!1,i=r.effectiveValue,l=u.series.map(W=>t.getDataType(W.columnId)),o=u.series.some(W=>W.aggregate==="custom"),d=new Map,h=null,c=0,g=0,f=!1,C=(W,K=Number.NaN)=>({label:W,accs:u.series.map((Z,J)=>Zr(Z.columnId,Z.aggregate,l[J],`${J}`)),seq:g++,start:K}),b=u.categoryBucket,F=null,R=Number.POSITIVE_INFINITY,I=Number.NEGATIVE_INFINITY;if(b){for(let W=0;W<e.length;W++){let K=e[W];if(!K||!Le(K))continue;let Z=t.getCellValue(K.data,u.categoryColumnId),J=Vu(i?i(K.key,u.categoryColumnId,Z):Z,b.kind);Number.isFinite(J)&&(J<R&&(R=J),J>I&&(I=J))}F=Si(b,R,I)}let V=o?new Map:null;for(let W=0;W<e.length;W++){let K=e[W];if(!K||!Le(K))continue;c++;let Z=t.getCellValue(K.data,u.categoryColumnId),J=i?i(K.key,u.categoryColumnId,Z):Z,ke,Ze,ve=Number.NaN;F&&b?(ve=F.keyOf(Vu(J,b.kind)),ke=Number.isNaN(ve)?"":ve,Ze=Number.isNaN(ve)?"":F.labelOf(ve)):ke=Ze=Di(J);let we=d.get(ke);we||(d.size>=Yl?(f=!0,h??=C(u.otherLabel??Ra),we=h):(we=C(Ze,ve),d.set(ke,we)));for(let ce=0;ce<u.series.length;ce++){let le=u.series[ce];if(le.aggregate==="custom")continue;let ae=t.getCellValue(K.data,le.columnId);Lu(we.accs[ce],i?i(K.key,le.columnId,ae):ae)}if(V){let ce=V.get(we.label);ce||(ce=u.series.map(()=>[]),V.set(we.label,ce));for(let le=0;le<u.series.length;le++){let ae=u.series[le];if(ae.aggregate!=="custom")continue;let et=t.getCellValue(K.data,ae.columnId);ce[le].push({row:r.effectiveRow?r.effectiveRow(K.key,K.data):K.data,value:i?i(K.key,ae.columnId,et):et})}}}let $=[...d.values()],Y=$.length+(h?1:0),G=W=>(u.series.length>0?Pu(W.accs[0]):null)??Number.NEGATIVE_INFINITY,_,oe;if(F){_=F.keys(R,I).map(K=>d.get(K)??C(F.labelOf(K),K));let W=d.get("");W&&_.push(W),oe=null}else{let W=$;if($.length>n){let K=[...$].sort((Z,J)=>G(J)-G(Z));if(W=K.slice(0,n),a){h??=C(u.otherLabel??Ra);for(let Z of K.slice(n))for(let J=0;J<u.series.length;J++)yl(h.accs[J],Z.accs[J])}}switch(u.categoryOrder??"value-desc"){case"category-asc":W=[...W].sort((K,Z)=>K.label.localeCompare(Z.label));break;case"first-seen":W=[...W].sort((K,Z)=>K.seq-Z.seq);break;default:W=[...W].sort((K,Z)=>G(Z)-G(K))}_=h?[...W,h]:W,oe=h?_.length-1:null}let Pe=_.map(W=>W.label),Nt=u.series.map((W,K)=>{let Z=new Float64Array(_.length);for(let J=0;J<_.length;J++){let ke;if(W.aggregate==="custom"){let Ze=V?.get(_[J].label)?.[K]??[];ke=W.calculate?W.calculate(Ze):null}else ke=Pu(_[J].accs[K]);Z[J]=ke??Number.NaN}return{label:W.label??t.getDef(W.columnId)?.headerName??W.columnId,columnId:W.columnId,aggregate:W.aggregate,values:Z}});return{categories:Pe,series:Nt,truncated:F?!1:$.length>n||f,otherIndex:oe,rowCount:c,categoryCount:F?_.length:Y,rankingExact:!f,...es(F,_)}}function es(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 a=t[n].start;u[n]=a,r[n]=Number.isNaN(a)?Number.NaN:e.endOf(a)}return{bucket:e.info,bucketStarts:u,bucketEnds:r}}var ts=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={}}};function Mr(e,t){let u=(e.length-1)*t,r=Math.floor(u),n=Math.ceil(u);return e[r]+(e[n]-e[r])*(u-r)}function us(e,t=50){let u=0,r=new Float64Array(e.length);for(let C=0;C<e.length;C++){let b=e[C];Number.isFinite(b)&&(r[u++]=b)}if(u===0)return null;let n=r.subarray(0,u).sort(),a=Mr(n,.25),i=Mr(n,.5),l=Mr(n,.75),o=1.5*(l-a),d=n[0],h=n[u-1],c=[],g=[];for(let C=0;C<u;C++){let b=n[C];if(b<a-o)c.push(b);else{d=b;break}}for(let C=u-1;C>=0;C--){let b=n[C];if(b>l+o)g.push(b);else{h=b;break}}let f=[];for(let C=0;f.length<t&&(C<c.length||C<g.length);C++)C<c.length&&f.push(c[C]),C<g.length&&f.length<t&&f.push(g[C]);return{count:u,q1:a,median:i,q3:l,low:d,high:h,outliers:f,outliersTruncated:c.length+g.length>f.length,min:n[0],max:n[u-1]}}var Ir=["tr","en","de","fr","es","it","pt","ru","ar","zh-CN","ja","ko"];function rs(e){if(!e)return;if(Ir.includes(e))return e;let t=e.toLowerCase(),u=Ir.find(n=>n.toLowerCase()===t);if(u)return u;if(t.startsWith("zh"))return"zh-CN";let r=t.split("-")[0];return Ir.find(n=>n.toLowerCase()===r)}function ns(e,t,u,r){let n=rs(u),a=n?e[n]:void 0;return!a&&!r?t:{...t,...a,...r}}var as=2e3;function Lr(e){if(typeof e=="number")return e;if(e instanceof Date)return e.getTime();if(typeof e=="string"&&e.trim()!==""){let t=Number(e);if(Number.isFinite(t))return t;let u=Date.parse(e);return Number.isNaN(u)?Number.NaN:u}return Number.NaN}function Pr(e,t,u){let r=Math.max(1,u.maxPoints??as),n=e.filter(Le),a=n.length>r?Math.ceil(n.length/r):1,i=a===1?n:n.filter((d,h)=>h%a===0),l=d=>t.getDef(d)?.headerName??d,o=u.series.map(d=>{let h=[],c=[],g=[],f=[];for(let C of i){let b=Lr(t.getCellValue(C.data,u.xColumnId)),F=Lr(t.getCellValue(C.data,d.columnId));if(!Number.isFinite(b)||!Number.isFinite(F))continue;let R=Number.NaN;u.sizeColumnId&&(R=Lr(t.getCellValue(C.data,u.sizeColumnId)),!Number.isFinite(R))||(h.push(b),c.push(F),u.sizeColumnId&&g.push(R),f.push(C.key))}return{label:d.label??l(d.columnId),columnId:d.columnId,x:Float64Array.from(h),y:Float64Array.from(c),size:u.sizeColumnId?Float64Array.from(g):null,keys:f}});return{xColumnId:u.xColumnId,xLabel:l(u.xColumnId),xTemporal:t.getDataType(u.xColumnId)==="date",sizeColumnId:u.sizeColumnId,sizeLabel:u.sizeColumnId?l(u.sizeColumnId):void 0,series:o,rowCount:n.length,sampled:a>1}}function is(e){return typeof e=="number"?e:typeof e=="string"&&e.trim()!==""?Number(e):Number.NaN}function os(e,t,u){let r=Math.max(1,u.maxCategories??vi),n=u.categoryBucket,a=null;if(n){let g=Number.POSITIVE_INFINITY,f=Number.NEGATIVE_INFINITY;for(let C of e){if(!C||!Le(C))continue;let b=Vu(t.getCellValue(C.data,u.categoryColumnId),n.kind);Number.isFinite(b)&&(b<g&&(g=b),b>f&&(f=b))}a=Si(n,g,f)}let i=new Map,l=0;for(let g of e){if(!g||!Le(g))continue;l++;let f=t.getCellValue(g.data,u.categoryColumnId),C,b,F=Number.NaN;a&&n?(F=a.keyOf(Vu(f,n.kind)),C=Number.isNaN(F)?"":F,b=Number.isNaN(F)?"":a.labelOf(F)):C=b=Di(f);let R=i.get(C);R||(R={label:b,start:F,values:[]},i.set(C,R));let I=is(t.getCellValue(g.data,u.valueColumnId));Number.isFinite(I)&&R.values.push(I)}let o=[...i.values()],d=o.length>r;d&&(o=o.sort((g,f)=>f.values.length-g.values.length).slice(0,r));let h=g=>a?Number.isNaN(g.start):g.label==="";o.sort((g,f)=>h(g)||h(f)?Number(h(g))-Number(h(f)):a?g.start-f.start:g.label.localeCompare(f.label));let c={categories:o.map(g=>g.label),stats:o.map(g=>us(g.values)),valueColumnId:u.valueColumnId,rowCount:l,truncated:d};return a&&(c.bucketStarts=Float64Array.from(o,g=>g.start),c.bucketEnds=Float64Array.from(o,g=>Number.isNaN(g.start)?Number.NaN:a.endOf(g.start))),c}var ls=["filter","sort","grouping","columnVisibility","columnSizing","columnPinning","search"],Bi=["=","<>","contains","notcontains","startswith","endswith"],zu=["=","<>",">",">=","<","<="],ki=["isnull","isnotnull"],ss=["lastDays","nextDays"],ds=e=>e==="string"?"text":e==="lookup"?"coded value":e,Ft=(e,t)=>({type:"object",...t?{description:t}:{},properties:e,required:Object.keys(e),additionalProperties:!1}),Se=(e,t)=>({enum:[...e]}),Pa="A date as YYYY-MM-DD.";function cs(e){return e.map(t=>{let u=`- ${t.id}: "${t.header}" (${ds(t.dataType)})`;if(t.description&&(u+=` \u2014 ${t.description}`),t.values&&t.values.length>0){let r=t.values.map(n=>String(n.value)===n.label?n.label:`${String(n.value)} = ${n.label}`);u+=`. Values: ${r.join(", ")}`}return u}).join(`
|
|
2
|
-
`)}function
|
|
1
|
+
"use strict";var KanuniLabsDataGrid=(()=>{var rl=Object.create;var ku=Object.defineProperty;var nl=Object.getOwnPropertyDescriptor;var al=Object.getOwnPropertyNames;var il=Object.getPrototypeOf,ol=Object.prototype.hasOwnProperty;var Tr=(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 ll=(e,t)=>{for(var u in t)ku(e,u,{get:t[u],enumerable:!0})},Ba=(e,t,u,r)=>{if(t&&typeof t=="object"||typeof t=="function")for(let n of al(t))!ol.call(e,n)&&n!==u&&ku(e,n,{get:()=>t[n],enumerable:!(r=nl(t,n))||r.enumerable});return e};var Nr=(e,t,u)=>(u=e!=null?rl(il(e)):{},Ba(t||!e||!e.__esModule?ku(u,"default",{value:e,enumerable:!0}):u,e)),sl=e=>Ba(ku({},"__esModule",{value:!0}),e);var Ud={};ll(Ud,{CHECKBOX_COLUMN_WIDTH:()=>ru,DENSITY_ROW_HEIGHT:()=>yn,DETAIL_COLUMN_WIDTH:()=>Rt,PRINT_MAX_ROWS:()=>Fn,ROW_DRAG_MIME:()=>nu,ROW_NUMBER_COLUMN_WIDTH:()=>Nt,THEME_ROW_HEIGHT:()=>En,buildHeaderMenu:()=>Qu,createGrid:()=>ao,isPackagedTheme:()=>wn,measureBestFitWidth:()=>Xu,presetRowHeight:()=>Yu});function dl(e){return e.kind==="group"}function Pe(e){return e.kind==="data"}function cl(e){return e.kind==="treePath"}function hl(e){return!Array.isArray(e)&&typeof e.load=="function"}function gi(e){return typeof e=="string"||typeof e=="number"}var fi="\u2063tree:";function pl(e){return fi+JSON.stringify(e)}function Rr(e){return typeof e=="string"&&e.startsWith(fi)}function ml(e,t,u){let r=new Map,n=new Map,a=new Map,i=new Map,l=new Map,o=new Array(e.length);for(let c=0;c<e.length;c++){let g=t(e[c]);a.set(g,c);let f=u(e[c]),w=Array.isArray(f)?f.map(x=>String(x)):[];o[c]=w;let F=JSON.stringify(w);w.length>0&&!l.has(F)&&l.set(F,g)}let d=(c,g)=>{n.set(g,c);let f=r.get(c);f?f.push(g):r.set(c,[g])},h=c=>{if(c.length===0)return null;let g=l.get(JSON.stringify(c));if(g!==void 0)return g;let f=pl(c);return i.has(f)||(i.set(f,{label:c[c.length-1],path:c}),d(h(c.slice(0,-1)),f)),f};for(let c=0;c<e.length;c++){let g=t(e[c]),f=o[c];d(f.length>1?h(f.slice(0,-1)):null,g)}return{childrenOf:r,parentOf:n,sourceIndexOf:a,pathRows:i}}function Mr(e,t,u=new WeakMap){let r=[],n=[];for(let a=e.length-1;a>=0;a--)n.push({row:e[a],parent:null});for(;n.length>0;){let{row:a,parent:i}=n.pop();r.push(a),i!==null&&typeof a=="object"&&a!==null&&u.set(a,i);let l=a&&typeof a=="object"?a[t]:void 0;if(Array.isArray(l))for(let o=l.length-1;o>=0;o--)n.push({row:l[o],parent:a})}return{rows:r,parentOf:u}}function gl(e){let{getParentKey:t,parentField:u}=e;if(t)return n=>t(n)??null;let r=u??"parentId";return n=>n[r]??null}function fl(e,t,u){let r=new Map,n=new Map,a=new Map;for(let o=0;o<e.length;o++)a.set(t(e[o]),o);for(let o=0;o<e.length;o++){let d=t(e[o]),h=u(e[o]);h!==null&&(h===d||!a.has(h))&&(h=null),n.set(d,h);let c=r.get(h);c?c.push(d):r.set(h,[d])}let i=new Set;for(let o of n.keys()){if(i.has(o))continue;let d=new Set,h=o;for(;h!==null&&!i.has(h);){if(d.has(h)){let c=n.get(h)??null;n.set(h,null);let g=r.get(c);if(g){let w=g.indexOf(h);w>=0&&g.splice(w,1)}let f=r.get(null);f?f.push(h):r.set(null,[h]);break}d.add(h),h=n.get(h)??null}for(let c of d)i.add(c)}let l=r.get(null);return l&&l.sort((o,d)=>(a.get(o)??0)-(a.get(d)??0)),{childrenOf:r,parentOf:n,sourceIndexOf:a}}var Cl=Object.freeze({});function yl(e,t){let{index:u,sourceRows:r,isExpanded:n}=t,a=new Map,i=new Map;for(let F=0;F<e.length;F++)a.set(e[F].key,e[F]),i.set(e[F].key,F);let l=e.length!==u.sourceIndexOf.size,o=u.pathRows,d=new Set(a.keys()),h=new Map;if(l||o&&o.size>0)for(let F of a.keys()){let x=i.get(F),k=u.parentOf.get(F)??null;for(;k!==null&&!d.has(k);)d.add(k),o?.has(k)&&h.set(k,x),k=u.parentOf.get(k)??null}let c=F=>{let x=F.filter(k=>d.has(k));return x.sort((k,R)=>{let P=i.get(k)??h.get(k),H=i.get(R)??h.get(R);return P!==void 0&&H!==void 0?P-H:P!==void 0?-1:H!==void 0?1:(u.sourceIndexOf.get(k)??0)-(u.sourceIndexOf.get(R)??0)}),x},g=[],f=[],w=c(u.childrenOf.get(null)??[]);for(let F=w.length-1;F>=0;F--)f.push({key:w[F],depth:0});for(;f.length>0;){let{key:F,depth:x}=f.pop(),k=c(u.childrenOf.get(F)??[]),R=k.length>0,P=R&&(l||n(F)),H=a.get(F),U=o?.get(F);if(U)g.push({kind:"treePath",key:F,label:U.label,path:U.path,data:Cl,tree:{depth:x,hasChildren:R,expanded:P,ancestorOnly:!1}});else{let O=u.sourceIndexOf.get(F)??-1,j={depth:x,hasChildren:R,expanded:P,ancestorOnly:H===void 0};g.push(H?{...H,tree:j}:{kind:"data",key:F,sourceIndex:O,data:r[O],tree:j})}if(P)for(let O=k.length-1;O>=0;O--)f.push({key:k[O],depth:x+1})}return{nodes:g}}var ka=new WeakMap;function wl(e){if(typeof e.items=="function"||!Array.isArray(e.items))return null;let t=ka.get(e);if(t)return t;let u=new Map;for(let r of e.items)u.set(r.value,r.label);return ka.set(e,u),u}function Ct(e,t){if(!e?.lookup)return null;let u=wl(e.lookup);if(!u)return null;let r=u.get(t);return r===void 0?null:r}function El(e){return e?.lookup?typeof e.lookup.items=="function"?null:e.lookup.items:null}function Ke(e){let t=e?.band;return t==null?[]:typeof t=="string"?t===""?[]:[t]:t.filter(u=>typeof u=="string"&&u!=="")}function Yt(e){return e.join("\0")}function Al(e,t){let u=e?.bandShow;if(u===void 0)return!1;let r=Ke(e);if(r.length===0)return!1;let n=!1;for(let a=0;a<r.length;a++)if(t.has(Yt(r.slice(0,a+1)))){n=!0;break}return u==="open"?n:!n}function Ci(e){let t=0;for(let u of e){let r=Ke(u.def).length;r>t&&(t=r)}return t}function yi(e,t){if(t<=0)return[];let u=[];for(let r=0;r<t;r++){let n=[];for(let a of e){let i=Ke(a.def),l=r<i.length?i[r]:"",o=l==="",d=n[n.length-1];d!==void 0&&d.spacer===o&&d.label===l&&(o||xl(e,d.columnIds[0],a.state.id,r))?(d.columnIds.push(a.state.id),d.width+=a.state.width):n.push({label:l,columnIds:[a.state.id],width:a.state.width,level:r,spacer:o})}u.push(n)}return u}function xl(e,t,u,r){if(r===0)return!0;let n=e.find(o=>o.state.id===t),a=e.find(o=>o.state.id===u),i=Ke(n?.def),l=Ke(a?.def);for(let o=0;o<r;o++)if(i[o]!==l[o])return!1;return!0}var bl=/^\d{4}-\d{2}-\d{2}(?:[T ]\d{2}:\d{2}|$)/;function vl(e){return e==null||e===""?null:typeof e=="boolean"?"boolean":typeof e=="number"?Number.isFinite(e)?"number":null:e instanceof Date||typeof e=="string"&&bl.test(e)?"date":"string"}function Fl(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 wi(e,t={}){let{sampleSize:u=50,exclude:r,include:n,humanizeHeaders:a=!0,defaults:i}=t;if(!e||e.length===0)return[];let l=new Set(r??[]),o=Math.min(e.length,Math.max(1,u)),d=new Map;for(let h=0;h<o;h++){let c=e[h];if(!(!c||typeof c!="object"))for(let[g,f]of Object.entries(c)){if(l.has(g))continue;d.get(g)==null&&d.set(g,vl(f))}}return(n?n.filter(h=>d.has(h)&&!l.has(h)):[...d.keys()]).map(h=>({...i,field:h,headerName:a?Fl(h):h,...d.get(h)?{dataType:d.get(h)}:{}}))}var et=(e,t)=>`${e}:${t}`;function Dl(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 Sl(e,t){return t==="date"&&!(e instanceof Date)&&typeof e!="number"?Date.parse(String(e)):Dl(e)}function ln(e,t,u,r=et(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 Bl(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 zu(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=Sl(t,e.dataType);Number.isNaN(r)||(e.numericCount++,e.sum+=r,r<e.min&&(e.min=r),r>e.max&&(e.max=r))}function Hu(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 Ei(e,t,u,r,n,a){let i={};if(n.length===0)return i;let l=a?.effectiveValue,o=a?.effectiveRow,d=[];for(let h of n){let c=et(h.columnId,h.type);if(h.type==="custom"){if(!h.calculate){i[c]=null;continue}let g=[];for(let f=t;f<u;f++){let w=e[f];if(!w||!Pe(w))continue;let F=r.getCellValue(w.data,h.columnId);g.push({row:o?o(w.key,w.data):w.data,value:l?l(w.key,h.columnId,F):F})}i[c]=h.calculate(g);continue}d.push(ln(h.columnId,h.type,r.getDataType(h.columnId),c))}if(d.length>0){let h=d.length===1?d[0]:null;for(let c=t;c<u;c++){let g=e[c];if(!g||!Pe(g))continue;let f=g.data;if(h){let w=r.getCellValue(f,h.columnId);zu(h,l?l(g.key,h.columnId,w):w);continue}for(let w of d){let F=r.getCellValue(f,w.columnId);zu(w,l?l(g.key,w.columnId,F):F)}}for(let c of d)i[c.key]=Hu(c)}return i}function kl(e,t,u,r){return Ei(e,0,e.length,t,u,r)}function Tl(e,t,u){let r=u?.effectiveValue,n=u?.effectiveRow,a=[],i=[],l=[];for(let o of t){if(o.type==="custom"){o.calculate?i.push({def:o,cells:[]}):l.push(et(o.columnId,o.type));continue}a.push(ln(o.columnId,o.type,e.getDataType(o.columnId)))}return{add(o,d,h){for(let c=d;c<h;c++){let g=o[c];if(!g||!Pe(g))continue;let f=g.data;for(let w of a){let F=e.getCellValue(f,w.columnId);zu(w,r?r(g.key,w.columnId,F):F)}for(let{def:w,cells:F}of i){let x=e.getCellValue(f,w.columnId);F.push({row:n?n(g.key,f):f,value:r?r(g.key,w.columnId,x):x})}}},finish(){let o={};for(let d of l)o[d]=null;for(let d of a)o[d.key]=Hu(d);for(let{def:d,cells:h}of i)o[et(d.columnId,d.type)]=d.calculate(h);return o}}}var Tu=(e,t=2)=>String(e).padStart(t,"0");function Nl(e){if(e instanceof Date)return Number.isNaN(e.getTime())?null:e;if(typeof e=="number"&&Number.isFinite(e))return new Date(e);if(typeof e=="string"&&e.trim()!==""){let t=/^(\d{4})-(\d{2})-(\d{2})$/.exec(e.trim());if(t)return new Date(Number(t[1]),Number(t[2])-1,Number(t[3]));let u=Date.parse(e);return Number.isNaN(u)?null:new Date(u)}return null}function Rl(e){let t=new Date(e.getFullYear(),e.getMonth(),e.getDate()),u=(t.getDay()+6)%7;t.setDate(t.getDate()-u+3);let r=t.getFullYear(),n=new Date(r,0,4),a=(n.getDay()+6)%7;n.setDate(n.getDate()-a+3);let i=1+Math.round((t.getTime()-n.getTime())/(7*864e5));return{year:r,week:i}}function Ta(e,t){let u=Nl(e);if(!u)return null;let r=u.getFullYear(),n=u.getMonth();switch(t){case"day":return{key:`${r}-${Tu(n+1)}-${Tu(u.getDate())}`,start:new Date(r,n,u.getDate())};case"week":{let{year:a,week:i}=Rl(u),l=(u.getDay()+6)%7;return{key:`${a}-W${Tu(i)}`,start:new Date(r,n,u.getDate()-l)}}case"month":return{key:`${r}-${Tu(n+1)}`,start:new Date(r,n,1)};case"quarter":{let a=Math.floor(n/3);return{key:`${r}-Q${a+1}`,start:new Date(r,a*3,1)}}case"year":return{key:String(r),start:new Date(r,0,1)};default:return null}}function Ml(e,t,u){let{start:r,key:n}=e;try{switch(t){case"day":return new Intl.DateTimeFormat(u,{dateStyle:"medium"}).format(r);case"month":return new Intl.DateTimeFormat(u,{month:"long",year:"numeric"}).format(r);case"year":return new Intl.DateTimeFormat(u,{year:"numeric"}).format(r);case"quarter":return`Q${Math.floor(r.getMonth()/3)+1} ${new Intl.DateTimeFormat(u,{year:"numeric"}).format(r)}`;case"week":return`${n} \xB7 ${new Intl.DateTimeFormat(u,{day:"numeric",month:"short"}).format(r)}`}}catch{}return n}var Na=(e,t)=>`${e}::${t}`;function Il(e,t,u){let r=u.columnIds,n=u.summaries,a=0,i=r.map(h=>{let c=t.getDef(h);return c?.groupInterval&&t.getDataType(h)==="date"?c.groupInterval:void 0}),l=(h,c)=>{let g=t.getCellValue(e[h].data,r[c]),f=i[c];return f?Ta(g,f)?.key??"":g==null?"":String(g)},o=(h,c,g,f)=>{let w=r[g],F=i[g],x=[],k=h;for(;k<c;){let R=t.getCellValue(e[k].data,w),P=F?Ta(R,F):null,H=P?P.start:F?null:R,U=l(k,g),O=k+1;for(;O<c&&l(O,g)===U;)O++;let j=f?`${f}|${Na(w,U)}`:Na(w,U),oe={columnId:w,value:H,label:U,key:j,level:g,from:k,to:O,count:O-k,children:null};P&&F&&(oe.display=Ml(P,F,u.locale??"en")),n&&n.length>0&&(oe.aggregates=Ei(e,k,O,t,n)),a++,g+1<r.length&&(oe.children=o(k,O,g+1,j)),x.push(oe),k=O}return x},d=r.length===0?[]:o(0,e.length,0,"");return{levels:r,roots:d,totalGroupCount:a,nodes:e}}function Ll(e,t){let{collapsedKeys:u,collapsedByDefault:r=!1}=t,n=[],a=0,i=l=>{for(let o of l){let d=r?!u.has(o.key):u.has(o.key),h={kind:"group",key:o.key,columnId:o.columnId,value:o.value,label:o.label,...o.display!==void 0?{display:o.display}:{},count:o.count,level:o.level,expanded:!d};if(o.aggregates&&(h.aggregates=o.aggregates),n.push(h),a++,!d)if(o.children)i(o.children);else for(let c=o.from;c<o.to;c++)n.push(e.nodes[c])}};return i(e.roots),{nodes:n,groupCount:a}}function Pl(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(a=>({columnId:a,direction:e.find(i=>i.columnId===a)?.direction??"asc"})),n=e.filter(a=>!u.includes(a.columnId));return[...r,...n]}function Gl(e,t){let u=new Map,r=new Map,n=new Set,a,i,l=!1;for(let d of e){if(d.add){for(let h of d.add){let c=t(h);u.set(c,h),r.delete(c)}l||(l=!0,a=d.addPosition,i=d.addBeforeKey)}if(d.update)for(let h of d.update){let c=t(h);if(u.has(c)){u.set(c,h);continue}n.has(c)||r.set(c,h)}if(d.remove)for(let h of d.remove){let c=gi(h)?h:t(h);if(u.has(c)){u.delete(c),r.delete(c);continue}r.delete(c),n.add(c)}}let o={};return u.size>0&&(o.add=[...u.values()],a!==void 0&&(o.addPosition=a),i!==void 0&&(o.addBeforeKey=i)),r.size>0&&(o.update=[...r.values()]),n.size>0&&(o.remove=[...n]),o}function Ol(e){return!e.add?.length&&!e.update?.length&&!e.remove?.length}function Jt(e){return e.nodes!==void 0}function Ra(...e){let t=e.filter(u=>u!=null);return t.length===0?null:t.length===1?t[0]:{logic:"and",nodes:t}}var Ai="row",sn="set",kt="__default",Vl=/[\u0130\u0131]/,zl=/[\u0130\u0131]/g;function ne(e){return Vl.test(e)?e.replace(zl,"i").toLowerCase():e.toLowerCase()}var Hl=[{token:"yyyy",kind:"year"},{token:"yy",kind:"year"},{token:"MM",kind:"month"},{token:"dd",kind:"day"}];function Wl(e){let t=[],u="",r=0;for(;r<e.length;){let n=Hl.find(a=>e.startsWith(a.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 xi(e){if(e==null||e==="")return null;if(e instanceof Date)return Number.isNaN(e.getTime())?null:e;if(typeof e=="number"){let n=new Date(e);return Number.isNaN(n.getTime())?null:n}let t=String(e),u=/^(\d{4})-(\d{2})-(\d{2})$/.exec(t);if(u)return new Date(Number(u[1]),Number(u[2])-1,Number(u[3]));let r=new Date(t);return Number.isNaN(r.getTime())?null:r}var Nu=new Map;function Kl(e){let t=Nu.get(e);return t||(Nu.size>=64&&Nu.clear(),t=Wl(e),Nu.set(e,t)),t}function ju(e,t){let u=xi(e);if(!u)return"";let r=(n,a)=>String(n).padStart(a,"0");return Kl(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 a=u.getFullYear();return n.length>2?r(a,n.length):r(a%100,2)}).join("")}function Wu(e,t,u){let r=Ct(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 e?.dataType==="date"&&e.dateFormat&&t!=null?ju(t,e.dateFormat):t==null?"":String(t)}function bi(e){return e?typeof e.valueFormatter=="function"||!!e.dateFormat&&e.dataType==="date":!1}function vi(e,t,u){if(!e||Ct(e,t)!==null)return null;let r;try{if(typeof e.valueFormatter=="function")r=e.valueFormatter(t,u);else if(e.dateFormat&&e.dataType==="date"&&t!=null)r=ju(t,e.dateFormat);else return null}catch{return null}return typeof r=="number"?String(r):typeof r=="string"&&r!==""?r:null}var Ma=-1,Xr="\0display:";function $l(e){return Xr+e}function dn(e){return e.startsWith(Xr)?e.slice(Xr.length):null}function Fi(e,t,u){return vi(e.getDef(t),e.getCellValue(u,t),u)}function Ku(e){return e==null||typeof e=="number"&&Number.isNaN(e)}function Di(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 Si(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 Bi(e,t,u,r=!1){let n=e.length,a=0,i=dn(u),l=i===null?t.getDataType(u):"string",o=i!==null?g=>Fi(t,i,g):r?g=>t.getSortValue(g,u):g=>t.getCellValue(g,u);if(l==="number"||l==="boolean"||l==="date"){let g=new Float64Array(n),f=l==="date"?Si:Di,w=[],F=new Map,x=new Int32Array(n),k=!0;return{total:n,get done(){return a},step(R){let P=Math.min(n,a+R);for(;a<P;a++){let H=o(e[a]);if(Ku(H)){g[a]=Number.NaN,x[a]=Ma;continue}g[a]=f(H),typeof H!="number"&&(k=!1);let U=String(H),O=F.get(U);O===void 0&&(O=w.length,w.push(U),F.set(U,O)),x[a]=O}return a<n},finish(){return k?{kind:"numeric",values:g}:{kind:"numeric",values:g,searchCodes:x,searchDictionary:w}}}}let d=new Int32Array(n),h=[],c=new Map;return{total:n,get done(){return a},step(g){let f=Math.min(n,a+g);for(;a<f;a++){let w=o(e[a]);if(Ku(w)){d[a]=Ma;continue}let F=String(w),x=c.get(F);x===void 0&&(x=h.length,h.push(F),c.set(F,x)),d[a]=x}return a<n},finish(){return{kind:"text",codes:d,dictionary:h}}}}function Ul(e,t,u,r=!1){let n=Bi(e,t,u,r);return n.step(n.total),n.finish()}var Ia=new WeakMap;function ql(e){let t=Ia.get(e);if(t!==void 0)return t;let u=_l(e);return Ia.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 La(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,a=t.length;for(;u<n&&r<a;){let i=e.charCodeAt(u),l=t.charCodeAt(r),o=i>=48&&i<=57,d=l>=48&&l<=57;if(o!==d)return!0;if(o){for(;u<n&&e.charCodeAt(u)===48;)u++;for(;r<a&&t.charCodeAt(r)===48;)r++;let h=u,c=r;for(;u<n;){let f=e.charCodeAt(u);if(f<48||f>57)break;u++}for(;r<a;){let f=t.charCodeAt(r);if(f<48||f>57)break;r++}let g=u-h;if(g!==r-c)return!0;for(let f=0;f<g;f++)if(e.charCodeAt(h+f)!==t.charCodeAt(c+f))return!0}else{if(i>=65&&i<=90&&(i+=32),l>=65&&l<=90&&(l+=32),i!==l)return!0;u++,r++}}return u!==n||r!==a}function Yl(e,t){let u=e.length,r=new Array(u);for(let d=0;d<u;d++)r[d]=d;r.sort((d,h)=>t.compare(e[d],e[h]));let n=new Int32Array(u);if(u===0)return n;let a=ql(t)?new Uint8Array(u):null,i=r[0],l=a?La(e[i])?1:2:0;a&&(a[i]=l);let o=0;n[i]=0;for(let d=1;d<u;d++){let h=r[d],c=e[i],g=e[h],f=0;a&&(f=a[h],f===0&&(f=La(g)?1:2,a[h]=f)),(l===1&&f===1&&jl(c,g)||t.compare(c,g)!==0)&&o++,n[h]=o,i=h,l=f}return n}var Zt=["today","yesterday","tomorrow","thisWeek","lastWeek","nextWeek","thisMonth","lastMonth","nextMonth","thisQuarter","lastQuarter","nextQuarter","thisYear","lastYear","nextYear","yearToDate","lastDays","nextDays"],q=(e,t,u)=>new Date(e,t,u).getTime();function Ql(e,t=new Date){if(!e||typeof e!="object")return null;let u=t.getFullYear(),r=t.getMonth(),n=t.getDate(),a=(t.getDay()+6)%7,i=Math.floor(r/3)*3,l,o;switch(e.period){case"today":[l,o]=[q(u,r,n),q(u,r,n+1)];break;case"yesterday":[l,o]=[q(u,r,n-1),q(u,r,n)];break;case"tomorrow":[l,o]=[q(u,r,n+1),q(u,r,n+2)];break;case"thisWeek":[l,o]=[q(u,r,n-a),q(u,r,n-a+7)];break;case"lastWeek":[l,o]=[q(u,r,n-a-7),q(u,r,n-a)];break;case"nextWeek":[l,o]=[q(u,r,n-a+7),q(u,r,n-a+14)];break;case"thisMonth":[l,o]=[q(u,r,1),q(u,r+1,1)];break;case"lastMonth":[l,o]=[q(u,r-1,1),q(u,r,1)];break;case"nextMonth":[l,o]=[q(u,r+1,1),q(u,r+2,1)];break;case"thisQuarter":[l,o]=[q(u,i,1),q(u,i+3,1)];break;case"lastQuarter":[l,o]=[q(u,i-3,1),q(u,i,1)];break;case"nextQuarter":[l,o]=[q(u,i+3,1),q(u,i+6,1)];break;case"thisYear":[l,o]=[q(u,0,1),q(u+1,0,1)];break;case"lastYear":[l,o]=[q(u-1,0,1),q(u,0,1)];break;case"nextYear":[l,o]=[q(u+1,0,1),q(u+2,0,1)];break;case"yearToDate":[l,o]=[q(u,0,1),q(u,r,n+1)];break;case"lastDays":case"nextDays":{let d=e.days;if(typeof d!="number"||!Number.isInteger(d)||d<1)return null;[l,o]=e.period==="lastDays"?[q(u,r,n-d+1),q(u,r,n+1)]:[q(u,r,n),q(u,r,n+d)];break}default:return null}return[l,o-1]}function cn(e,t=new Date){if(!e)return null;if(Jt(e)){let r=!1,n=e.nodes.map(a=>{let i=cn(a,t);return i!==a&&(r=!0),i});return r?{...e,nodes:n}:e}if(e.operator!=="period")return e;let u=Ql(e.value,t);return{columnId:e.columnId,operator:"between",value:u??[]}}function ie(e){return e==null}function He(e){return e==null?"":String(e)}function Je(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 Dt(e,t){let u=Je(e),r=Je(t);if(typeof u=="number"&&typeof r=="number")return u-r;if(typeof u=="number"&&typeof r=="string"){let i=Date.parse(r);if(!Number.isNaN(i))return u-i}else if(typeof u=="string"&&typeof r=="number"){let i=Date.parse(u);if(!Number.isNaN(i))return i-r}let n=String(u),a=String(r);return n<a?-1:n>a?1:0}var Pa=new WeakMap;function Xl(e){let t=Pa.get(e);if(!t){t=new Set;let u=Array.isArray(e.value)?e.value:[];for(let r of u){if(ie(r))continue;let n=Je(r);typeof n=="number"&&Number.isNaN(n)||t.add(n)}Pa.set(e,t)}return t}function ki(e,t){switch(t.operator){case"isnull":return ie(e);case"isnotnull":return!ie(e);case"=":return ie(e)||ie(t.value)?ie(e)&&ie(t.value):Je(e)===Je(t.value);case"<>":return ie(e)||ie(t.value)?!(ie(e)&&ie(t.value)):Je(e)!==Je(t.value);case">":return!ie(e)&&Dt(e,t.value)>0;case">=":return!ie(e)&&Dt(e,t.value)>=0;case"<":return!ie(e)&&Dt(e,t.value)<0;case"<=":return!ie(e)&&Dt(e,t.value)<=0;case"contains":return ne(He(e)).includes(ne(He(t.value)));case"notcontains":return!ne(He(e)).includes(ne(He(t.value)));case"startswith":return ne(He(e)).startsWith(ne(He(t.value)));case"endswith":return ne(He(e)).endsWith(ne(He(t.value)));case"in":{if(ie(e))return!1;let u=Je(e);return typeof u=="number"&&Number.isNaN(u)?!1:Xl(t).has(u)}case"between":{if(!Array.isArray(t.value)||t.value.length<2||ie(e))return!1;let[u,r]=t.value;return Dt(e,u)>=0&&Dt(e,r)<=0}default:return!0}}function Jr(e,t,u){if(Jt(t))return t.nodes.length===0?!0:t.logic==="or"?t.nodes.some(n=>Jr(e,n,u)):t.nodes.every(n=>Jr(e,n,u));let r=u.getCellValue(e,t.columnId);return ki(r,t)}function Xt(e){return ne((e??"").trim())}function Zr(e,t,u){if(u==="")return null;let r=null;for(let n of t){let a=e.getDef(n)?.lookup?.items;if(!Array.isArray(a))continue;let i=null;for(let l of a)ne(String(l.label)).includes(u)&&(i??=new Set).add(String(l.value));i&&(r??=new Map).set(n,i)}return r}function en(e){let t=e.getOrder().filter(r=>e.getState(r)?.visible),u=t.filter(r=>bi(e.getDef(r))).map($l);return u.length===0?t:[...t,...u]}function Ga(e){if(!e||e.size===0)return;let t={};for(let[u,r]of e)t[u]=[...r];return t}function Jl(e,t,u,r,n,a){r=cn(r);let i=Xt(n),l=!!r,o=i.length>0,d=typeof a=="function";if(!l&&!o&&!d)return e.slice();let h=o?u.getOrder().filter(R=>u.getState(R)?.visible):[],c=o?Zr(u,h,i):null,g=c!==null,f=g?h.map(R=>c.get(R)??null):[],w=o?h.map(R=>{let P=u.getDef(R);return bi(P)?P:void 0}):[],F=w.some(R=>R!==void 0),x=new Uint32Array(e.length),k=0;for(let R=0;R<e.length;R++){let P=e[R],H=t[P];if(!(l&&!Jr(H,r,u))&&!(d&&!a(H))){if(o){let U=!1;for(let O=0;O<h.length;O++){let j=u.getCellValue(H,h[O]);if(!ie(j)){let oe=He(j);if(ne(oe).includes(i)){U=!0;break}if(g){let Ge=f[O];if(Ge!==null&&Ge.has(oe)){U=!0;break}}}if(F){let oe=w[O];if(oe!==void 0){let Ge=vi(oe,j,H);if(Ge!==null&&ne(Ge).includes(i)){U=!0;break}}}}if(!U)continue}x[k++]=P}}return k===x.length?x:x.slice(0,k)}var Zl=ki;function es(e){return e==="in"||e==="isnull"}function Ti(e){if(!Jt(e))return es(e.operator)?[e]:null;if(e.logic!=="or")return null;let t=[];for(let u of e.nodes){let r=Ti(u);if(!r)return null;t.push(...r)}return t.length>0?t:null}function Ni(e,t){if(!e)return null;let u=Ti(e);if(!u)return null;let r=[];for(let n of t)u.some(a=>Zl(n.value,a))&&r.push(n.label);return r.length===t.length?null:r}function ts(e){return e==null||e===""}function us(e,t,u){let r=[],n=-1,a,i,l=o=>{n>=0&&o-n>1&&r.push({start:n,end:o-1,length:o-n}),n=-1,i=void 0};for(let o=0;o<e.length;o++){let d=e[o];if(!d||d.kind!=="data"){l(o);continue}let h=d.data,c=t(h);if(ts(c)){l(o);continue}n>=0&&i!==void 0&&(u?u({value:c,row:h},{value:a,row:i}):Object.is(c,a))||(l(o),n=o,a=c,i=h)}return l(e.length),r}function rs(e,t){let u=0,r=e.length-1;for(;u<=r;){let n=u+r>>1,a=e[n];if(t<a.start)r=n-1;else if(t>a.end)u=n+1;else return a}return null}function Ri(e,t,u,r=Number.POSITIVE_INFINITY){let n=rs(e,t);if(!n)return null;let a=Math.max(n.start,u);if(t!==a)return{role:"covered"};let i=Math.min(n.end,r);return{role:"draw",span:n,drawStart:a,drawEnd:i,clippedAbove:n.start<a,clippedBelow:n.end>i}}function Mi(e,t=globalThis){let u=new Map,r=!1,n=a=>{let i=u.get(a);i!==void 0&&(t.clearTimeout(i),u.delete(a))};return{schedule(a,i){if(!r){if(n(a),e<=0){i();return}u.set(a,t.setTimeout(()=>{u.delete(a),r||i()},e))}},cancel:n,cancelAll(){for(let a of u.values())t.clearTimeout(a);u.clear()},dispose(){r=!0;for(let a of u.values())t.clearTimeout(a);u.clear()},isPending(a){return u.has(a)},get pendingCount(){return u.size}}}var Ii=30,Oa="Other",ns=1e4;function Li(e){return!e.series.some(t=>t.aggregate==="custom")}function Pi(e){return e==null?"":String(e)}var Ze=864e5,as=60,is=20,Ru=2e3,Lr=["day","week","month","quarter","year"],Va={day:Ze,week:7*Ze,month:30.44*Ze,quarter:91.31*Ze,year:365.25*Ze};function za(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 a=Date.UTC(r,n,u.getUTCDate()),i=(new Date(a).getUTCDay()+6)%7;return a-i*Ze}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 Ha(e,t){let u=new Date(e),r=u.getUTCFullYear(),n=u.getUTCMonth();switch(t){case"day":return e+Ze;case"week":return e+7*Ze;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 Pr=e=>e<10?`0${e}`:String(e);function os(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}-${Pr(u.getUTCMonth()+1)}`;default:return`${r}-${Pr(u.getUTCMonth()+1)}-${Pr(u.getUTCDate())}`}}function ls(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 Gi(e,t,u){let r=Number.isFinite(t)&&Number.isFinite(u)?Math.max(0,u-t):0;if(e.kind==="date"){let l=e.unit??"auto",o,d=!1;if(l==="auto")o=Lr.find(h=>r/Va[h]+1<=as)??"year";else for(o=l;r/Va[o]+1>Ru;){let h=Lr[Lr.indexOf(o)+1];if(!h)break;o=h,d=!0}return{info:{kind:"date",unit:o,adjusted:d},keyOf:h=>Number.isFinite(h)?za(h,o):Number.NaN,endOf:h=>Ha(h,o),labelOf:h=>os(h,o),keys:(h,c)=>{let g=[];if(!Number.isFinite(h)||!Number.isFinite(c))return g;for(let f=za(h,o);f<=c&&g.length<Ru;f=Ha(f,o))g.push(f);return g}}}let n=e.size&&e.size>0?e.size:ls(r/Math.max(1,e.bins??is));(!(n>0)||!Number.isFinite(n))&&(n=1);let a=!1;for(;r/n+1>Ru;)n*=2,a=!0;let i=n;return{info:{kind:"number",size:i,adjusted:a},keyOf:l=>Number.isFinite(l)?Math.floor(l/i)*i:Number.NaN,endOf:l=>l+i,labelOf:l=>{let o=d=>String(Number(d.toPrecision(12)));return`${o(l)} \u2013 ${o(l+i)}`},keys:(l,o)=>{let d=[];if(!Number.isFinite(l)||!Number.isFinite(o))return d;let h=Math.floor(l/i)*i;for(let c=h;c<=o&&d.length<Ru;c+=i)d.push(c);return d}}}function $u(e,t){if(e==null)return Number.NaN;if(e instanceof Date)return e.getTime();if(typeof e=="number")return e;if(t==="number")return Number(e);let u=Number(e);return Number.isNaN(u)?Date.parse(String(e)):u}function Gr(e,t,u,r={}){let n=Math.max(1,u.maxCategories??Ii),a=u.otherBucket!==!1,i=r.effectiveValue,l=u.series.map(K=>t.getDataType(K.columnId)),o=u.series.some(K=>K.aggregate==="custom"),d=new Map,h=null,c=0,g=0,f=!1,w=(K,$=Number.NaN)=>({label:K,accs:u.series.map((Z,J)=>ln(Z.columnId,Z.aggregate,l[J],`${J}`)),seq:g++,start:$}),F=u.categoryBucket,x=null,k=Number.POSITIVE_INFINITY,R=Number.NEGATIVE_INFINITY;if(F){for(let K=0;K<e.length;K++){let $=e[K];if(!$||!Pe($))continue;let Z=t.getCellValue($.data,u.categoryColumnId),J=$u(i?i($.key,u.categoryColumnId,Z):Z,F.kind);Number.isFinite(J)&&(J<k&&(k=J),J>R&&(R=J))}x=Gi(F,k,R)}let P=o?new Map:null;for(let K=0;K<e.length;K++){let $=e[K];if(!$||!Pe($))continue;c++;let Z=t.getCellValue($.data,u.categoryColumnId),J=i?i($.key,u.categoryColumnId,Z):Z,Te,tt,ve=Number.NaN;x&&F?(ve=x.keyOf($u(J,F.kind)),Te=Number.isNaN(ve)?"":ve,tt=Number.isNaN(ve)?"":x.labelOf(ve)):Te=tt=Pi(J);let Ee=d.get(Te);Ee||(d.size>=ns?(f=!0,h??=w(u.otherLabel??Oa),Ee=h):(Ee=w(tt,ve),d.set(Te,Ee)));for(let he=0;he<u.series.length;he++){let le=u.series[he];if(le.aggregate==="custom")continue;let ae=t.getCellValue($.data,le.columnId);zu(Ee.accs[he],i?i($.key,le.columnId,ae):ae)}if(P){let he=P.get(Ee.label);he||(he=u.series.map(()=>[]),P.set(Ee.label,he));for(let le=0;le<u.series.length;le++){let ae=u.series[le];if(ae.aggregate!=="custom")continue;let ut=t.getCellValue($.data,ae.columnId);he[le].push({row:r.effectiveRow?r.effectiveRow($.key,$.data):$.data,value:i?i($.key,ae.columnId,ut):ut})}}}let H=[...d.values()],U=H.length+(h?1:0),O=K=>(u.series.length>0?Hu(K.accs[0]):null)??Number.NEGATIVE_INFINITY,j,oe;if(x){j=x.keys(k,R).map($=>d.get($)??w(x.labelOf($),$));let K=d.get("");K&&j.push(K),oe=null}else{let K=H;if(H.length>n){let $=[...H].sort((Z,J)=>O(J)-O(Z));if(K=$.slice(0,n),a){h??=w(u.otherLabel??Oa);for(let Z of $.slice(n))for(let J=0;J<u.series.length;J++)Bl(h.accs[J],Z.accs[J])}}switch(u.categoryOrder??"value-desc"){case"category-asc":K=[...K].sort(($,Z)=>$.label.localeCompare(Z.label));break;case"first-seen":K=[...K].sort(($,Z)=>$.seq-Z.seq);break;default:K=[...K].sort(($,Z)=>O(Z)-O($))}j=h?[...K,h]:K,oe=h?j.length-1:null}let Ge=j.map(K=>K.label),Mt=u.series.map((K,$)=>{let Z=new Float64Array(j.length);for(let J=0;J<j.length;J++){let Te;if(K.aggregate==="custom"){let tt=P?.get(j[J].label)?.[$]??[];Te=K.calculate?K.calculate(tt):null}else Te=Hu(j[J].accs[$]);Z[J]=Te??Number.NaN}return{label:K.label??t.getDef(K.columnId)?.headerName??K.columnId,columnId:K.columnId,aggregate:K.aggregate,values:Z}});return{categories:Ge,series:Mt,truncated:x?!1:H.length>n||f,otherIndex:oe,rowCount:c,categoryCount:x?j.length:U,rankingExact:!f,...ss(x,j)}}function ss(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 a=t[n].start;u[n]=a,r[n]=Number.isNaN(a)?Number.NaN:e.endOf(a)}return{bucket:e.info,bucketStarts:u,bucketEnds:r}}var ds=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={}}};function Or(e,t){let u=(e.length-1)*t,r=Math.floor(u),n=Math.ceil(u);return e[r]+(e[n]-e[r])*(u-r)}function cs(e,t=50){let u=0,r=new Float64Array(e.length);for(let w=0;w<e.length;w++){let F=e[w];Number.isFinite(F)&&(r[u++]=F)}if(u===0)return null;let n=r.subarray(0,u).sort(),a=Or(n,.25),i=Or(n,.5),l=Or(n,.75),o=1.5*(l-a),d=n[0],h=n[u-1],c=[],g=[];for(let w=0;w<u;w++){let F=n[w];if(F<a-o)c.push(F);else{d=F;break}}for(let w=u-1;w>=0;w--){let F=n[w];if(F>l+o)g.push(F);else{h=F;break}}let f=[];for(let w=0;f.length<t&&(w<c.length||w<g.length);w++)w<c.length&&f.push(c[w]),w<g.length&&f.length<t&&f.push(g[w]);return{count:u,q1:a,median:i,q3:l,low:d,high:h,outliers:f,outliersTruncated:c.length+g.length>f.length,min:n[0],max:n[u-1]}}var Vr=["tr","en","de","fr","es","it","pt","ru","ar","zh-CN","ja","ko"];function hs(e){if(!e)return;if(Vr.includes(e))return e;let t=e.toLowerCase(),u=Vr.find(n=>n.toLowerCase()===t);if(u)return u;if(t.startsWith("zh"))return"zh-CN";let r=t.split("-")[0];return Vr.find(n=>n.toLowerCase()===r)}function ps(e,t,u,r){let n=hs(u),a=n?e[n]:void 0;return!a&&!r?t:{...t,...a,...r}}var ms=2e3;function zr(e){if(typeof e=="number")return e;if(e instanceof Date)return e.getTime();if(typeof e=="string"&&e.trim()!==""){let t=Number(e);if(Number.isFinite(t))return t;let u=Date.parse(e);return Number.isNaN(u)?Number.NaN:u}return Number.NaN}function Hr(e,t,u){let r=Math.max(1,u.maxPoints??ms),n=e.filter(Pe),a=n.length>r?Math.ceil(n.length/r):1,i=a===1?n:n.filter((d,h)=>h%a===0),l=d=>t.getDef(d)?.headerName??d,o=u.series.map(d=>{let h=[],c=[],g=[],f=[];for(let w of i){let F=zr(t.getCellValue(w.data,u.xColumnId)),x=zr(t.getCellValue(w.data,d.columnId));if(!Number.isFinite(F)||!Number.isFinite(x))continue;let k=Number.NaN;u.sizeColumnId&&(k=zr(t.getCellValue(w.data,u.sizeColumnId)),!Number.isFinite(k))||(h.push(F),c.push(x),u.sizeColumnId&&g.push(k),f.push(w.key))}return{label:d.label??l(d.columnId),columnId:d.columnId,x:Float64Array.from(h),y:Float64Array.from(c),size:u.sizeColumnId?Float64Array.from(g):null,keys:f}});return{xColumnId:u.xColumnId,xLabel:l(u.xColumnId),xTemporal:t.getDataType(u.xColumnId)==="date",sizeColumnId:u.sizeColumnId,sizeLabel:u.sizeColumnId?l(u.sizeColumnId):void 0,series:o,rowCount:n.length,sampled:a>1}}function gs(e){return typeof e=="number"?e:typeof e=="string"&&e.trim()!==""?Number(e):Number.NaN}function fs(e,t,u){let r=Math.max(1,u.maxCategories??Ii),n=u.categoryBucket,a=null;if(n){let g=Number.POSITIVE_INFINITY,f=Number.NEGATIVE_INFINITY;for(let w of e){if(!w||!Pe(w))continue;let F=$u(t.getCellValue(w.data,u.categoryColumnId),n.kind);Number.isFinite(F)&&(F<g&&(g=F),F>f&&(f=F))}a=Gi(n,g,f)}let i=new Map,l=0;for(let g of e){if(!g||!Pe(g))continue;l++;let f=t.getCellValue(g.data,u.categoryColumnId),w,F,x=Number.NaN;a&&n?(x=a.keyOf($u(f,n.kind)),w=Number.isNaN(x)?"":x,F=Number.isNaN(x)?"":a.labelOf(x)):w=F=Pi(f);let k=i.get(w);k||(k={label:F,start:x,values:[]},i.set(w,k));let R=gs(t.getCellValue(g.data,u.valueColumnId));Number.isFinite(R)&&k.values.push(R)}let o=[...i.values()],d=o.length>r;d&&(o=o.sort((g,f)=>f.values.length-g.values.length).slice(0,r));let h=g=>a?Number.isNaN(g.start):g.label==="";o.sort((g,f)=>h(g)||h(f)?Number(h(g))-Number(h(f)):a?g.start-f.start:g.label.localeCompare(f.label));let c={categories:o.map(g=>g.label),stats:o.map(g=>cs(g.values)),valueColumnId:u.valueColumnId,rowCount:l,truncated:d};return a&&(c.bucketStarts=Float64Array.from(o,g=>g.start),c.bucketEnds=Float64Array.from(o,g=>Number.isNaN(g.start)?Number.NaN:a.endOf(g.start))),c}var Cs=["filter","sort","grouping","columnVisibility","columnSizing","columnPinning","search"],Oi=["=","<>","contains","notcontains","startswith","endswith"],Uu=["=","<>",">",">=","<","<="],Vi=["isnull","isnotnull"],ys=["lastDays","nextDays"],ws=e=>e==="string"?"text":e==="lookup"?"coded value":e,St=(e,t)=>({type:"object",...t?{description:t}:{},properties:e,required:Object.keys(e),additionalProperties:!1}),Be=(e,t)=>({enum:[...e]}),Wa="A date as YYYY-MM-DD.";function Es(e){return e.map(t=>{let u=`- ${t.id}: "${t.header}" (${ws(t.dataType)})`;if(t.description&&(u+=` \u2014 ${t.description}`),t.values&&t.values.length>0){let r=t.values.map(n=>String(n.value)===n.label?n.label:`${String(n.value)} = ${n.label}`);u+=`. Values: ${r.join(", ")}`}return u}).join(`
|
|
2
|
+
`)}function As(e){let t=e.filter(o=>o.filterable),u=o=>t.filter(o).map(d=>d.id),r=[],n=(o,d,h,c)=>{o.length!==0&&r.push(St({columnId:Be(o),operator:Be(d),value:h},c))},a=u(o=>o.dataType==="string"||o.dataType==="lookup");n(a,Oi,{type:"string"},"A text comparison; case is ignored.");let i=u(o=>o.dataType==="number");n(i,Uu,{type:"number"}),n(i,["between"],{type:"array",items:{type:"number"},minItems:2,maxItems:2},"Inclusive range: [min, max].");let l=u(o=>o.dataType==="date");n(l,Uu,{type:"string",description:Wa}),n(l,["between"],{type:"array",items:{type:"string",description:Wa},minItems:2,maxItems:2},"Inclusive date range: [from, to]."),n(l,["period"],St({period:Be(Zt),days:{type:["integer","null"],description:"For lastDays / nextDays: how many days, today included. null otherwise."}}),'A period relative to today, which keeps its meaning tomorrow: prefer it for "this month", "last week", "the last 30 days".'),n(u(o=>o.dataType==="boolean"),["="],{type:"boolean"});for(let o of t){if(!o.values||o.values.length===0)continue;let d=o.values.map(h=>h.value);n([o.id],["=","<>"],Be(d)),n([o.id],["in"],{type:"array",items:Be(d),minItems:1},"Any of these values.")}return n(t.map(o=>o.id),Vi,{type:"null"},"Whether the cell is empty; value is always null."),r}function xs(e){let{columns:t,features:u}=e,r={},n={};if(u.has("filter")){let d=As(t);if(d.length>0){let h=[{$ref:"#/$defs/filterGroup"}];d.forEach((c,g)=>{n[`condition${g}`]=c,h.push({$ref:`#/$defs/condition${g}`})}),n.filterNode={anyOf:h},n.filterGroup=St({logic:Be(["and","or"]),nodes:{type:"array",items:{$ref:"#/$defs/filterNode"}}},"Conditions or nested groups, combined with and / or."),r.filter={description:"The WHOLE filter the grid should apply \u2014 it replaces the current one. null shows every row.",anyOf:[{$ref:"#/$defs/filterNode"},{type:"null"}]}}}let a=t.filter(d=>d.sortable).map(d=>d.id);u.has("sort")&&a.length>0&&(r.sort={type:"array",description:"The whole sort, outermost first. [] leaves the rows in data order.",items:St({columnId:Be(a),direction:Be(["asc","desc"])})});let i=t.filter(d=>d.groupable).map(d=>d.id);u.has("grouping")&&i.length>0&&(r.groupBy={type:"array",description:"Columns to group the rows by, outermost first. [] for no grouping.",items:Be(i)});let l={};u.has("columnVisibility")&&(l.visible={type:"boolean",description:"false hides the column."}),u.has("columnSizing")&&(l.width={type:["number","null"],description:"Width in pixels; null leaves it as it is."}),u.has("columnPinning")&&(l.pinned={description:"Keep the column against the left or right edge; null lets it scroll.",anyOf:[Be(["left","right"]),{type:"null"}]});let o=u.has("columnSizing")&&!u.has("columnVisibility")&&!u.has("columnPinning")?t.filter(d=>d.resizable):t;return Object.keys(l).length>0&&o.length>0&&(r.columns={type:"array",description:"Only the columns to change; a column not listed stays as it is.",items:St({columnId:Be(o.map(d=>d.id)),...l})}),u.has("search")&&(r.searchText={type:"string",description:'Free-text search across the visible columns. "" for none.'}),{$schema:"https://json-schema.org/draft/2020-12/schema",title:"Grid state",description:`The state of a data grid. Return every property; each one REPLACES that part of the grid state, so carry over whatever the user did not ask to change.
|
|
3
3
|
Columns:
|
|
4
|
-
`+cs(t),...Ft(r),...Object.keys(n).length>0?{$defs:n}:{}}}var ze=e=>typeof e=="object"&&e!==null&&!Array.isArray(e),Ga=e=>typeof e=="string"&&!Number.isNaN(Date.parse(e)),Ru=e=>{let t=typeof e=="number"?e:typeof e=="string"&&e.trim()!==""?Number(e):Number.NaN;return Number.isFinite(t)?t:null};function ms(e,t,u){let r=e.columnId,n=e.operator,a=typeof r=="string"?t.get(r):void 0,i=c=>(u.push(`filter on ${String(r)} (${String(n)}): ${c}`),null);if(!a)return i("no such column");if(!a.filterable)return i("the column cannot be filtered");let l=a.id,o=a.dataType,d=e.value;if(ki.includes(n))return{columnId:l,operator:n};if(n==="in")return!Array.isArray(d)||d.length===0?i('"in" needs a non-empty list'):{columnId:l,operator:n,value:[...d]};if(o==="boolean"){if(n!=="=")return i('a yes/no column only takes "="');let c=d===!0||d==="true"?!0:d===!1||d==="false"?!1:null;return c===null?i("expected true or false"):{columnId:l,operator:n,value:c}}if(o==="number"){if(n==="between"){let g=Array.isArray(d)&&d.length===2?d.map(Ru):null;return!g||g[0]===null||g[1]===null?i("expected [min, max] numbers"):{columnId:l,operator:n,value:g}}if(!zu.includes(n))return i("not an operator for numbers");let c=Ru(d);return c===null?i("expected a number"):{columnId:l,operator:n,value:c}}if(o==="date"){if(n==="period"){let c=ze(d)?d:null,g=c?.period;if(!g||!Xt.includes(g))return i("unknown period");if(ss.includes(g)){let f=Ru(c.days);return f===null||f<1||!Number.isInteger(f)?i(`${g} needs a whole number of days`):{columnId:l,operator:n,value:{period:g,days:f}}}return{columnId:l,operator:n,value:{period:g}}}return n==="between"?!Array.isArray(d)||d.length!==2||!d.every(Ga)?i("expected [from, to] dates"):{columnId:l,operator:n,value:[d[0],d[1]]}:zu.includes(n)?Ga(d)?{columnId:l,operator:n,value:d}:i("expected a YYYY-MM-DD date"):i("not an operator for dates")}if(!Bi.includes(n))return i("not an operator for text");if(d==null||typeof d=="object")return i("expected a value");let h=a.values?.find(c=>String(c.value)===String(d));return{columnId:l,operator:n,value:h&&(n==="="||n==="<>")?h.value:String(d)}}function Ti(e,t,u,r){if(!ze(e))return u.push("filter: a condition that is not an object"),null;if(Array.isArray(e.nodes)){if(r>8)return u.push("filter: groups nested more than 8 deep"),null;let n=e.logic==="or"?"or":"and";e.logic!=="and"&&e.logic!=="or"&&u.push('filter: a group without and/or, read as "and"');let a=e.nodes.map(i=>Ti(i,t,u,r+1)).filter(i=>i!==null);return a.length===0?null:a.length===1?a[0]:{logic:n,nodes:a}}return ms(e,t,u)}function gs(e,t){let u=[],r=e;if(typeof r=="string")try{r=JSON.parse(r)}catch{return{state:{},dropped:["the answer is not valid JSON"]}}if(!ze(r))return{state:{},dropped:["the answer is not an object"]};let{features:n}=t,a=new Map(t.columns.map(l=>[l.id,l])),i={};if(n.has("filter")&&"filter"in r&&(i.filter=r.filter===null?null:Ti(r.filter,a,u,0)),n.has("sort")&&"sort"in r)if(!Array.isArray(r.sort))u.push("sort: not a list");else{let l=new Set;i.sort=[];for(let o of r.sort){let d=ze(o)&&typeof o.columnId=="string"?a.get(o.columnId):void 0,h=ze(o)?o.direction:void 0;!d||!d.sortable?u.push(`sort by ${ze(o)?String(o.columnId):"?"}: not a sortable column`):h!=="asc"&&h!=="desc"?u.push(`sort by ${d.id}: direction must be asc or desc`):l.has(d.id)||(l.add(d.id),i.sort.push({columnId:d.id,direction:h}))}}if(n.has("grouping")&&"groupBy"in r)if(!Array.isArray(r.groupBy))u.push("groupBy: not a list");else{let l=[];for(let o of r.groupBy){let d=typeof o=="string"?a.get(o):void 0;!d||!d.groupable?u.push(`group by ${String(o)}: not a groupable column`):l.includes(d.id)||l.push(d.id)}i.groupBy=l}if((n.has("columnVisibility")||n.has("columnSizing")||n.has("columnPinning"))&&"columns"in r)if(!Array.isArray(r.columns))u.push("columns: not a list");else{let l=new Map;for(let o of r.columns){let d=ze(o)&&typeof o.columnId=="string"?a.get(o.columnId):void 0;if(!d||!ze(o)){u.push(`column ${ze(o)?String(o.columnId):"?"}: no such column`);continue}let h={columnId:d.id};if(n.has("columnVisibility")&&"visible"in o&&(typeof o.visible=="boolean"?h.visible=o.visible:u.push(`column ${d.id}: visible must be true or false`)),n.has("columnSizing")&&o.width!==null&&o.width!==void 0){let c=Ru(o.width);c===null||c<=0?u.push(`column ${d.id}: width must be a positive number`):d.resizable?h.width=c:u.push(`column ${d.id}: cannot be resized`)}n.has("columnPinning")&&"pinned"in o&&(o.pinned==="left"||o.pinned==="right"||o.pinned===null?h.pinned=o.pinned:u.push(`column ${d.id}: pinned must be left, right or null`)),l.set(d.id,{...l.get(d.id),...h})}i.columns=[...l.values()]}return n.has("search")&&"searchText"in r&&(typeof r.searchText=="string"?i.searchText=r.searchText:r.searchText===null?i.searchText="":u.push("searchText: not text")),{state:i,dropped:u}}function Ni(e,t=new Set){if(Qt(e))for(let u of e.nodes)Ni(u,t);else t.add(e.columnId);return t}function fs(e){if(typeof e=="function")return e;let t=e;return u=>u[t]}function Be(e,t,u){return{kind:"data",key:t,sourceIndex:u,data:e}}var Ri=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 a=0;a<e.length;a++){let i=e[a],l=r[i];if(l===void 0){let o=t[i];l=Be(o,u(o),i),r[i]=l}n[a]=l}return n}},Cs="\0nil";function ys(e){return e.map(t=>t==null?Cs:String(t)).join("")}function Oa(){return{key:"",path:[],level:-1,label:"",value:null,count:0,expanded:!0,childCount:0,childCountKnown:!1,blocks:new Map}}function ws(e,t,u){return e.blocks.get(Math.floor(t/u))?.[t%u]}function Hu(e,t,u){let r=u?.get(e);if(r!==void 0)return r;let n=e.childCountKnown?e.childCount:1;for(let a of e.blocks.values())for(let i of a)i&&Dt(i)&&i.expanded&&(n+=Hu(i,t,u));return u?.set(e,n),n}function Dt(e){return e.kind!=="data"}function Va(e,t){let{blockSize:u,columnIds:r}=t,n=new Map,a=Hu(e,u,n),i=t.range?Math.max(0,t.range.start):0,l=t.range?Math.min(a,t.range.end):a,o=new Array(a),d=[],h=new Set,c=0,g=f=>{if(!f.childCountKnown){c>=i&&c<l&&!h.has(`${f.key}@0`)&&(h.add(`${f.key}@0`),d.push({nodeKey:f.key,path:f.path,childIndex:0})),c++;return}for(let C=0;C<f.childCount;C++){if(c>=l)return;let b=ws(f,C,u);if(b===void 0){if(c>=i){let F=`${f.key}@${Math.floor(C/u)}`;h.has(F)||(h.add(F),d.push({nodeKey:f.key,path:f.path,childIndex:C}))}c++;continue}if(!Dt(b)){c>=i&&(o[c]=b),c++;continue}if(c>=i&&b.record)o[c]={kind:"data",key:b.record.key,sourceIndex:b.record.sourceIndex,data:b.record.data,tree:{depth:b.level,hasChildren:!0,expanded:b.expanded,ancestorOnly:!1}};else if(c>=i){let F={kind:"group",key:b.key,columnId:r[b.level]??"",value:b.value,label:b.label,count:b.count,level:b.level,expanded:b.expanded,...b.aggregates?{aggregates:b.aggregates}:{}};o[c]=F}if(c++,b.expanded){let F=Hu(b,u,n);c+F<=i?c+=F:g(b)}}};return g(e),{nodes:o,pending:d}}var Es=class extends Error{constructor(){super("[datagrid] export cancelled"),this.name="ExportCancelled"}},As=100,xs=100;function bs(e,t){return JSON.stringify({sort:e.sort,filter:e.filter,searchText:e.searchText,group:t,summaries:e.summaries})}var za=class{mode="remote";source;keyGetter;blockSize;maxBlocks;group;groupColumnIds;root=Oa();expanded=new Set;onError;debugMode;tree;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??As),this.maxBlocks=Math.max(1,t.maxBlocks??xs),this.group=t.group,this.groupColumnIds=t.groupColumnIds??[],this.onError=t.onError,this.debugMode=t.debugMode??!1,this.tree=t.tree}isTree(){return this.tree!==void 0}syncTreeExpansion(e){for(let t of e.blocks.values())for(let u of t)u&&Dt(u)&&u.record&&(u.expanded=this.tree.isExpanded(u.record.key),this.syncTreeExpansion(u))}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&&Dt(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&&Dt(r)){let n=this.findNode(e,r);if(n)return n}return null}resetTree(){this.root=Oa()}async loadAllRows(e,t){if(this.isGrouped()||this.isTree())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 Es;let a=await this.source.load({skip:u.length,take:r,sort:e.sort,filter:e.filter,searchText:e.searchText});if(n=a.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(a.rows.length===0)break;for(let i of a.rows)u.push(Be(i,this.keyGetter(i),u.length));t.onProgress?.(u.length,n)}return u}patchRows(e){if(e.length===0)return 0;let t=new Map;for(let a of e)t.set(this.keyGetter(a),a);let u=0,r=a=>{for(let i=0;i<a.length;i++){let l=a[i];if(!l)continue;let o=t.get(l.key);o!==void 0&&(a[i]=Be(o,l.key,l.sourceIndex),u++)}};for(let a of this.blocks.values())r(a.nodes);let n=a=>{for(let i of a.blocks.values())for(let l=0;l<i.length;l++){let o=i[l];if(!o)continue;if(Dt(o)){n(o);continue}let d=t.get(o.key);d!==void 0&&(i[l]=Be(d,o.key,o.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 a=this.distinctInFlight.get(r);if(a)return a;let i=this.generation,l=u.call(this.source,{columnId:e,limit:t}).then(o=>(!this.disposed&&i===this.generation&&this.distinctCache.set(r,o),o)).catch(o=>(this.onError?.(o),this.debugMode&&console.error("[datagrid] loadDistinctValues failed",o),[])).finally(()=>{this.distinctInFlight.delete(r)});return this.distinctInFlight.set(r,l),l}async getRows(e,t){let u=bs(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()||this.isTree())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)),a=Math.max(n,Math.floor(Math.max(0,r.end-1)/this.blockSize)),i=[];for(let l=n;l<=a;l++)this.blocks.has(l)?this.blocks.get(l).touched=++this.clock:i.push(l);return i.length>0&&await Promise.all(i.map(l=>this.fetchBlock(l,t))),this.snapshot()}async getGroupedRows(e){let t=e.range,u=this.tree?64:(this.group?.length??0)+2,r=this.generation;for(let i=0;i<u&&!(this.disposed||r!==this.generation);i++){if(this.tree&&this.syncTreeExpansion(this.root),!this.root.childCountKnown){if(await this.loadChildren(this.root,0,e),!this.root.childCountKnown)break;continue}let{pending:l}=Va(this.root,{blockSize:this.blockSize,columnIds:this.groupColumnIds,range:t});if(l.length===0)break;await Promise.all(l.map(o=>{let d=this.findNode(o.nodeKey);return d?this.loadChildren(d,o.childIndex,e):Promise.resolve()}))}this.tree&&this.syncTreeExpansion(this.root);let{nodes:n}=Va(this.root,{blockSize:this.blockSize,columnIds:this.groupColumnIds,range:t}),a=Hu(this.root,this.blockSize);return this.visibleCount=a,{nodes:n,visibleCount:a,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}`,a=this.treeInFlight.get(n);if(a)return a;let i=this.loadChildrenBlock(e,r,u).finally(()=>{this.treeInFlight.get(n)===i&&this.treeInFlight.delete(n)});return this.treeInFlight.set(n,i),i}async loadChildrenBlock(e,t,u){let r=this.generation,n=this.group?.length??0,a=e.path.length>=n,i=this.tree?{skip:t*this.blockSize,take:this.blockSize,sort:u.sort,filter:u.filter,searchText:u.searchText,parentKey:e.record?e.record.key:null,...e===this.root?{summaries:u.summaries}:{}}:{skip:t*this.blockSize,take:this.blockSize,sort:u.sort,filter:u.filter,searchText:u.searchText,group:this.group,groupKeys:[...e.path],...e.path.length===0?{summaries:u.summaries}:{}};try{let l=await this.source.load(i);if(this.disposed||r!==this.generation)return;l.summaries&&(this.summaries=l.summaries);let o=t*this.blockSize,d=this.tree?l.rows.map((h,c)=>this.treeChild(e,h,o+c)):a?l.rows.map((h,c)=>Be(h,this.keyGetter(h),o+c)):(l.groups??[]).map(h=>{let c=[...e.path,h.value],g=ys(c);return{key:g,path:c,level:e.level+1,label:h.label??(h.value==null?"":String(h.value)),value:h.value,count:h.count,...h.aggregates?{aggregates:h.aggregates}:{},expanded:this.expanded.has(g),childCount:0,childCountKnown:!1,blocks:new Map}});e.blocks.set(t,d),e.childCount=l.totalCount,e.childCountKnown=!0,e===this.root&&(this.totalCount=l.totalCount,this.countKnown=!0)}catch(l){this.debugMode&&console.error("[datagrid] remote group load failed",e.key,l),this.onError?.(l)}}treeChild(e,t,u){let r=this.keyGetter(t),n=e.level+1;return this.tree.hasChildren(t)?{key:String(r),path:[...e.path,r],level:n,label:"",value:r,count:0,expanded:this.tree.isExpanded(r),childCount:0,childCountKnown:!1,blocks:new Map,record:{key:r,data:t,sourceIndex:u}}:{...Be(t,r,u),tree:{depth:n,hasChildren:!1,expanded:!1,ancestorOnly:!1}}}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 a=r+n;a<this.visibleCount&&(e[a]=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 a=e*this.blockSize,i=n.rows.map((l,o)=>Be(l,this.keyGetter(l),a+o));this.blocks.set(e,{nodes:i,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 vs=e=>`__detail__${String(e)}`;function Fs(e,t){let{expandedKeys:u,expandedByDefault:r=!1}=t,n=Math.max(1,t.height);if(!r&&u.size===0)return e;let a=r?e.length:u.size,i=new Array(e.length+a),l=0;for(let o of e)i[l++]=o,!(o.kind!=="data"||!(r?!u.has(o.key):u.has(o.key)))&&(i[l++]={kind:"detail",key:vs(o.key),parentKey:o.key,data:o.data,height:n});return i.length=l,i}var Ha=e=>e===null?"__editform__new":`__editform__${String(e)}`;function Ds(e,t){let{rowKey:u,atTop:r=!1}=t;if(u===null)return e;let n=Math.max(1,t.height),a=e.findIndex(o=>o.kind==="data"&&o.key===u);if(r)return[{kind:"editform",key:Ha(u),parentKey:u,data:a<0?void 0:e[a].data,height:n},...e];if(a<0)return e;let i={kind:"editform",key:Ha(u),parentKey:u,data:e[a].data,height:n},l=new Array(e.length+1);for(let o=0;o<=a;o++)l[o]=e[o];l[a+1]=i;for(let o=a+1;o<e.length;o++)l[o+1]=e[o];return l}var Ss=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=Wa(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=Wa(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=Bs(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],a=this.overrides.get(n);this.size[r]=a,this.top[r]=n*this.base+u,u+=a-this.base,this.cum[r]=u}}};function Wa(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 Bs(e,t){let u=0,r=e.length-1,n=-1;for(;u<=r;){let a=u+r>>>1;e[a]<=t?(n=a,u=a+1):r=a-1}return n}var nn={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",opInPeriod:"is in",periodToday:"today",periodYesterday:"yesterday",periodTomorrow:"tomorrow",periodThisWeek:"this week",periodLastWeek:"last week",periodNextWeek:"next week",periodThisMonth:"this month",periodLastMonth:"last month",periodNextMonth:"next month",periodThisQuarter:"this quarter",periodLastQuarter:"last quarter",periodNextQuarter:"next quarter",periodThisYear:"this year",periodLastYear:"last year",periodNextYear:"next year",periodYearToDate:"year to date",periodLastDays:"the last {n} days",periodNextDays:"the next {n} days",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}",selectGroupAria:"Select the {count} rows of {group}",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",chartStacking:"Series layout",chartStackGrouped:"Grouped",chartStackStacked:"Stacked",chartStackNormalized:"100% stacked",chartFormat:"Format",chartFormatTitle:"Title",chartFormatCategoryAxis:"Category axis title",chartFormatValueAxis:"Value axis title",chartFormatLegend:"Legend",chartLegendTop:"Top",chartLegendBottom:"Bottom",chartLegendLeft:"Left",chartLegendRight:"Right",chartLegendNone:"Hidden",chartFormatDataLabels:"Data labels",chartFormatScale:"Value scale",chartScaleLinear:"Linear",chartScaleLog:"Logarithmic",sparklineSummary:"{count} values from {min} to {max}, ending at {last}",chartTypeWaterfall:"Waterfall",chartTypeFunnel:"Funnel",chartTypeTreemap:"Treemap",chartTypeHeatmap:"Heatmap",chartTypeBox:"Box plot",chartTypeRadar:"Radar",chartTypeRangeBar:"Range",chartBoxQ1:"Q1",chartBoxMedian:"Median",chartBoxQ3:"Q3",chartBoxOutlier:"Outlier",chartTotal:"Total",chartTypeScatter:"Scatter",chartTypeBubble:"Bubble",chartXAxis:"X axis",chartBubbleSize:"Size",chartXYSampled:"{shown} of {total} points, sampled evenly",licenseMissing:"Unlicensed",licenseExpired:"License expired",licenseReleaseNotCovered:"This version is not covered by the license",licenseDomainMismatch:"License not valid for this domain",licenseRevoked:"License revoked",licenseInvalidFormat:"Malformed license key",licenseInvalidSignature:"Invalid license signature",licenseEngineUnavailable:"Browser cannot verify the license (HTTPS required)"},ks={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",opInPeriod:"d\xF6nem i\xE7inde",periodToday:"bug\xFCn",periodYesterday:"d\xFCn",periodTomorrow:"yar\u0131n",periodThisWeek:"bu hafta",periodLastWeek:"ge\xE7en hafta",periodNextWeek:"gelecek hafta",periodThisMonth:"bu ay",periodLastMonth:"ge\xE7en ay",periodNextMonth:"gelecek ay",periodThisQuarter:"bu \xE7eyrek",periodLastQuarter:"ge\xE7en \xE7eyrek",periodNextQuarter:"gelecek \xE7eyrek",periodThisYear:"bu y\u0131l",periodLastYear:"ge\xE7en y\u0131l",periodNextYear:"gelecek y\u0131l",periodYearToDate:"y\u0131lba\u015F\u0131ndan bug\xFCne",periodLastDays:"son {n} g\xFCn",periodNextDays:"\xF6n\xFCm\xFCzdeki {n} g\xFCn",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",selectGroupAria:"{group} grubundaki {count} 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",chartStacking:"Seri yerle\u015Fimi",chartStackGrouped:"Yan yana",chartStackStacked:"Y\u0131\u011F\u0131lm\u0131\u015F",chartStackNormalized:"%100 y\u0131\u011F\u0131lm\u0131\u015F",chartFormat:"Bi\xE7im",chartFormatTitle:"Ba\u015Fl\u0131k",chartFormatCategoryAxis:"Kategori ekseni ba\u015Fl\u0131\u011F\u0131",chartFormatValueAxis:"De\u011Fer ekseni ba\u015Fl\u0131\u011F\u0131",chartFormatLegend:"Lejant",chartLegendTop:"\xDCstte",chartLegendBottom:"Altta",chartLegendLeft:"Solda",chartLegendRight:"Sa\u011Fda",chartLegendNone:"Gizli",chartFormatDataLabels:"Veri etiketleri",chartFormatScale:"De\u011Fer \xF6l\xE7e\u011Fi",chartScaleLinear:"Do\u011Frusal",chartScaleLog:"Logaritmik",sparklineSummary:"{count} de\u011Fer, {min} ile {max} aras\u0131, son de\u011Fer {last}",chartTypeWaterfall:"\u015Eelale",chartTypeFunnel:"Huni",chartTypeTreemap:"A\u011Fa\xE7 haritas\u0131",chartTypeHeatmap:"Is\u0131 haritas\u0131",chartTypeBox:"Kutu grafi\u011Fi",chartTypeRadar:"Radar",chartTypeRangeBar:"Aral\u0131k",chartBoxQ1:"\xC71",chartBoxMedian:"Ortanca",chartBoxQ3:"\xC73",chartBoxOutlier:"Ayk\u0131r\u0131 de\u011Fer",chartTotal:"Toplam",chartTypeScatter:"Da\u011F\u0131l\u0131m",chartTypeBubble:"Kabarc\u0131k",chartXAxis:"X ekseni",chartBubbleSize:"Boyut",chartXYSampled:"{total} noktan\u0131n {shown} tanesi, e\u015Fit aral\u0131kla \xF6rneklendi",licenseMissing:"Lisanss\u0131z",licenseExpired:"Lisans\u0131n s\xFCresi dolmu\u015F",licenseReleaseNotCovered:"Bu s\xFCr\xFCm lisans kapsam\u0131nda de\u011Fil",licenseDomainMismatch:"Lisans bu alan ad\u0131 i\xE7in ge\xE7erli de\u011Fil",licenseRevoked:"Lisans iptal edilmi\u015F",licenseInvalidFormat:"Lisans anahtar\u0131 hatal\u0131",licenseInvalidSignature:"Lisans imzas\u0131 ge\xE7ersiz",licenseEngineUnavailable:"Taray\u0131c\u0131 lisans\u0131 do\u011Frulayam\u0131yor (HTTPS gerekli)"},Ts={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",opInPeriod:"liegt in",periodToday:"heute",periodYesterday:"gestern",periodTomorrow:"morgen",periodThisWeek:"diese Woche",periodLastWeek:"letzte Woche",periodNextWeek:"n\xE4chste Woche",periodThisMonth:"diesen Monat",periodLastMonth:"letzten Monat",periodNextMonth:"n\xE4chsten Monat",periodThisQuarter:"dieses Quartal",periodLastQuarter:"letztes Quartal",periodNextQuarter:"n\xE4chstes Quartal",periodThisYear:"dieses Jahr",periodLastYear:"letztes Jahr",periodNextYear:"n\xE4chstes Jahr",periodYearToDate:"seit Jahresbeginn",periodLastDays:"die letzten {n} Tage",periodNextDays:"die n\xE4chsten {n} Tage",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",selectGroupAria:"Die {count} Zeilen von {group} 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",chartStacking:"Reihenanordnung",chartStackGrouped:"Gruppiert",chartStackStacked:"Gestapelt",chartStackNormalized:"Gestapelt 100 %",chartFormat:"Format",chartFormatTitle:"Titel",chartFormatCategoryAxis:"Titel der Kategorieachse",chartFormatValueAxis:"Titel der Werteachse",chartFormatLegend:"Legende",chartLegendTop:"Oben",chartLegendBottom:"Unten",chartLegendLeft:"Links",chartLegendRight:"Rechts",chartLegendNone:"Ausgeblendet",chartFormatDataLabels:"Datenbeschriftungen",chartFormatScale:"Werteskala",chartScaleLinear:"Linear",chartScaleLog:"Logarithmisch",sparklineSummary:"{count} Werte von {min} bis {max}, zuletzt {last}",chartTypeWaterfall:"Wasserfall",chartTypeFunnel:"Trichter",chartTypeTreemap:"Treemap",chartTypeHeatmap:"Heatmap",chartTypeBox:"Boxplot",chartTypeRadar:"Netz",chartTypeRangeBar:"Spanne",chartBoxQ1:"Q1",chartBoxMedian:"Median",chartBoxQ3:"Q3",chartBoxOutlier:"Ausrei\xDFer",chartTotal:"Gesamt",chartTypeScatter:"Punkt (XY)",chartTypeBubble:"Blase",chartXAxis:"X-Achse",chartBubbleSize:"Gr\xF6\xDFe",chartXYSampled:"{shown} von {total} Punkten, gleichm\xE4\xDFig ausgew\xE4hlt",licenseMissing:"Nicht lizenziert",licenseExpired:"Lizenz abgelaufen",licenseReleaseNotCovered:"Diese Version ist nicht durch die Lizenz abgedeckt",licenseDomainMismatch:"Lizenz gilt nicht f\xFCr diese Domain",licenseRevoked:"Lizenz widerrufen",licenseInvalidFormat:"Lizenzschl\xFCssel fehlerhaft",licenseInvalidSignature:"Ung\xFCltige Lizenzsignatur",licenseEngineUnavailable:"Browser kann die Lizenz nicht pr\xFCfen (HTTPS erforderlich)"},Ns={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",opInPeriod:"est dans",periodToday:"aujourd'hui",periodYesterday:"hier",periodTomorrow:"demain",periodThisWeek:"cette semaine",periodLastWeek:"la semaine derni\xE8re",periodNextWeek:"la semaine prochaine",periodThisMonth:"ce mois-ci",periodLastMonth:"le mois dernier",periodNextMonth:"le mois prochain",periodThisQuarter:"ce trimestre",periodLastQuarter:"le trimestre dernier",periodNextQuarter:"le trimestre prochain",periodThisYear:"cette ann\xE9e",periodLastYear:"l'ann\xE9e derni\xE8re",periodNextYear:"l'ann\xE9e prochaine",periodYearToDate:"depuis le d\xE9but de l'ann\xE9e",periodLastDays:"les {n} derniers jours",periodNextDays:"les {n} prochains jours",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}",selectGroupAria:"S\xE9lectionner les {count} lignes de {group}",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",chartStacking:"Disposition des s\xE9ries",chartStackGrouped:"Group\xE9",chartStackStacked:"Empil\xE9",chartStackNormalized:"Empil\xE9 100 %",chartFormat:"Format",chartFormatTitle:"Titre",chartFormatCategoryAxis:"Titre de l\u2019axe des cat\xE9gories",chartFormatValueAxis:"Titre de l\u2019axe des valeurs",chartFormatLegend:"L\xE9gende",chartLegendTop:"En haut",chartLegendBottom:"En bas",chartLegendLeft:"\xC0 gauche",chartLegendRight:"\xC0 droite",chartLegendNone:"Masqu\xE9e",chartFormatDataLabels:"\xC9tiquettes de donn\xE9es",chartFormatScale:"\xC9chelle des valeurs",chartScaleLinear:"Lin\xE9aire",chartScaleLog:"Logarithmique",sparklineSummary:"{count} valeurs de {min} \xE0 {max}, derni\xE8re {last}",chartTypeWaterfall:"Cascade",chartTypeFunnel:"Entonnoir",chartTypeTreemap:"Compartimentage",chartTypeHeatmap:"Carte thermique",chartTypeBox:"Bo\xEEte \xE0 moustaches",chartTypeRadar:"Radar",chartTypeRangeBar:"Plage",chartBoxQ1:"Q1",chartBoxMedian:"M\xE9diane",chartBoxQ3:"Q3",chartBoxOutlier:"Valeur aberrante",chartTotal:"Total",chartTypeScatter:"Nuage de points",chartTypeBubble:"Bulles",chartXAxis:"Axe X",chartBubbleSize:"Taille",chartXYSampled:"{shown} points sur {total}, \xE9chantillonn\xE9s r\xE9guli\xE8rement",licenseMissing:"Sans licence",licenseExpired:"Licence expir\xE9e",licenseReleaseNotCovered:"Cette version n\u2019est pas couverte par la licence",licenseDomainMismatch:"Licence non valide pour ce domaine",licenseRevoked:"Licence r\xE9voqu\xE9e",licenseInvalidFormat:"Cl\xE9 de licence mal form\xE9e",licenseInvalidSignature:"Signature de licence invalide",licenseEngineUnavailable:"Le navigateur ne peut pas v\xE9rifier la licence (HTTPS requis)"},Rs={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",opInPeriod:"est\xE1 en",periodToday:"hoy",periodYesterday:"ayer",periodTomorrow:"ma\xF1ana",periodThisWeek:"esta semana",periodLastWeek:"la semana pasada",periodNextWeek:"la pr\xF3xima semana",periodThisMonth:"este mes",periodLastMonth:"el mes pasado",periodNextMonth:"el pr\xF3ximo mes",periodThisQuarter:"este trimestre",periodLastQuarter:"el trimestre pasado",periodNextQuarter:"el pr\xF3ximo trimestre",periodThisYear:"este a\xF1o",periodLastYear:"el a\xF1o pasado",periodNextYear:"el pr\xF3ximo a\xF1o",periodYearToDate:"en lo que va de a\xF1o",periodLastDays:"los \xFAltimos {n} d\xEDas",periodNextDays:"los pr\xF3ximos {n} d\xEDas",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}",selectGroupAria:"Seleccionar las {count} filas de {group}",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",chartStacking:"Disposici\xF3n de series",chartStackGrouped:"Agrupado",chartStackStacked:"Apilado",chartStackNormalized:"Apilado 100 %",chartFormat:"Formato",chartFormatTitle:"T\xEDtulo",chartFormatCategoryAxis:"T\xEDtulo del eje de categor\xEDas",chartFormatValueAxis:"T\xEDtulo del eje de valores",chartFormatLegend:"Leyenda",chartLegendTop:"Arriba",chartLegendBottom:"Abajo",chartLegendLeft:"Izquierda",chartLegendRight:"Derecha",chartLegendNone:"Oculta",chartFormatDataLabels:"Etiquetas de datos",chartFormatScale:"Escala de valores",chartScaleLinear:"Lineal",chartScaleLog:"Logar\xEDtmica",sparklineSummary:"{count} valores de {min} a {max}, \xFAltimo {last}",chartTypeWaterfall:"Cascada",chartTypeFunnel:"Embudo",chartTypeTreemap:"Mapa de \xE1rbol",chartTypeHeatmap:"Mapa de calor",chartTypeBox:"Diagrama de caja",chartTypeRadar:"Radar",chartTypeRangeBar:"Rango",chartBoxQ1:"Q1",chartBoxMedian:"Mediana",chartBoxQ3:"Q3",chartBoxOutlier:"Valor at\xEDpico",chartTotal:"Total",chartTypeScatter:"Dispersi\xF3n",chartTypeBubble:"Burbujas",chartXAxis:"Eje X",chartBubbleSize:"Tama\xF1o",chartXYSampled:"{shown} de {total} puntos, muestreados de forma uniforme",licenseMissing:"Sin licencia",licenseExpired:"Licencia caducada",licenseReleaseNotCovered:"Esta versi\xF3n no est\xE1 cubierta por la licencia",licenseDomainMismatch:"Licencia no v\xE1lida para este dominio",licenseRevoked:"Licencia revocada",licenseInvalidFormat:"Clave de licencia mal formada",licenseInvalidSignature:"Firma de licencia no v\xE1lida",licenseEngineUnavailable:"El navegador no puede verificar la licencia (se requiere HTTPS)"},Ms={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",opInPeriod:"\xE8 in",periodToday:"oggi",periodYesterday:"ieri",periodTomorrow:"domani",periodThisWeek:"questa settimana",periodLastWeek:"la settimana scorsa",periodNextWeek:"la prossima settimana",periodThisMonth:"questo mese",periodLastMonth:"il mese scorso",periodNextMonth:"il prossimo mese",periodThisQuarter:"questo trimestre",periodLastQuarter:"il trimestre scorso",periodNextQuarter:"il prossimo trimestre",periodThisYear:"quest'anno",periodLastYear:"l'anno scorso",periodNextYear:"l'anno prossimo",periodYearToDate:"da inizio anno",periodLastDays:"gli ultimi {n} giorni",periodNextDays:"i prossimi {n} giorni",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}",selectGroupAria:"Seleziona le {count} righe di {group}",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",chartStacking:"Disposizione serie",chartStackGrouped:"Raggruppato",chartStackStacked:"In pila",chartStackNormalized:"In pila 100%",chartFormat:"Formato",chartFormatTitle:"Titolo",chartFormatCategoryAxis:"Titolo asse categorie",chartFormatValueAxis:"Titolo asse valori",chartFormatLegend:"Legenda",chartLegendTop:"In alto",chartLegendBottom:"In basso",chartLegendLeft:"A sinistra",chartLegendRight:"A destra",chartLegendNone:"Nascosta",chartFormatDataLabels:"Etichette dati",chartFormatScale:"Scala dei valori",chartScaleLinear:"Lineare",chartScaleLog:"Logaritmica",sparklineSummary:"{count} valori da {min} a {max}, ultimo {last}",chartTypeWaterfall:"Cascata",chartTypeFunnel:"Imbuto",chartTypeTreemap:"Treemap",chartTypeHeatmap:"Mappa di calore",chartTypeBox:"Box plot",chartTypeRadar:"Radar",chartTypeRangeBar:"Intervallo",chartBoxQ1:"Q1",chartBoxMedian:"Mediana",chartBoxQ3:"Q3",chartBoxOutlier:"Valore anomalo",chartTotal:"Totale",chartTypeScatter:"Dispersione",chartTypeBubble:"Bolle",chartXAxis:"Asse X",chartBubbleSize:"Dimensione",chartXYSampled:"{shown} di {total} punti, campionati in modo uniforme",licenseMissing:"Senza licenza",licenseExpired:"Licenza scaduta",licenseReleaseNotCovered:"Questa versione non \xE8 coperta dalla licenza",licenseDomainMismatch:"Licenza non valida per questo dominio",licenseRevoked:"Licenza revocata",licenseInvalidFormat:"Chiave di licenza malformata",licenseInvalidSignature:"Firma della licenza non valida",licenseEngineUnavailable:"Il browser non pu\xF2 verificare la licenza (HTTPS richiesto)"},Is={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",opInPeriod:"est\xE1 em",periodToday:"hoje",periodYesterday:"ontem",periodTomorrow:"amanh\xE3",periodThisWeek:"esta semana",periodLastWeek:"a semana passada",periodNextWeek:"a pr\xF3xima semana",periodThisMonth:"este m\xEAs",periodLastMonth:"o m\xEAs passado",periodNextMonth:"o pr\xF3ximo m\xEAs",periodThisQuarter:"este trimestre",periodLastQuarter:"o trimestre passado",periodNextQuarter:"o pr\xF3ximo trimestre",periodThisYear:"este ano",periodLastYear:"o ano passado",periodNextYear:"o pr\xF3ximo ano",periodYearToDate:"no acumulado do ano",periodLastDays:"os \xFAltimos {n} dias",periodNextDays:"os pr\xF3ximos {n} dias",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}",selectGroupAria:"Selecionar as {count} linhas de {group}",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",chartStacking:"Disposi\xE7\xE3o das s\xE9ries",chartStackGrouped:"Agrupado",chartStackStacked:"Empilhado",chartStackNormalized:"Empilhado 100%",chartFormat:"Formato",chartFormatTitle:"T\xEDtulo",chartFormatCategoryAxis:"T\xEDtulo do eixo de categorias",chartFormatValueAxis:"T\xEDtulo do eixo de valores",chartFormatLegend:"Legenda",chartLegendTop:"Em cima",chartLegendBottom:"Em baixo",chartLegendLeft:"\xC0 esquerda",chartLegendRight:"\xC0 direita",chartLegendNone:"Oculta",chartFormatDataLabels:"R\xF3tulos de dados",chartFormatScale:"Escala de valores",chartScaleLinear:"Linear",chartScaleLog:"Logar\xEDtmica",sparklineSummary:"{count} valores de {min} a {max}, \xFAltimo {last}",chartTypeWaterfall:"Cascata",chartTypeFunnel:"Funil",chartTypeTreemap:"Mapa de \xE1rvore",chartTypeHeatmap:"Mapa de calor",chartTypeBox:"Diagrama de caixa",chartTypeRadar:"Radar",chartTypeRangeBar:"Intervalo",chartBoxQ1:"Q1",chartBoxMedian:"Mediana",chartBoxQ3:"Q3",chartBoxOutlier:"Valor at\xEDpico",chartTotal:"Total",chartTypeScatter:"Dispers\xE3o",chartTypeBubble:"Bolhas",chartXAxis:"Eixo X",chartBubbleSize:"Tamanho",chartXYSampled:"{shown} de {total} pontos, amostrados de forma uniforme",licenseMissing:"Sem licen\xE7a",licenseExpired:"Licen\xE7a expirada",licenseReleaseNotCovered:"Esta vers\xE3o n\xE3o \xE9 coberta pela licen\xE7a",licenseDomainMismatch:"Licen\xE7a n\xE3o v\xE1lida para este dom\xEDnio",licenseRevoked:"Licen\xE7a revogada",licenseInvalidFormat:"Chave de licen\xE7a malformada",licenseInvalidSignature:"Assinatura da licen\xE7a inv\xE1lida",licenseEngineUnavailable:"O navegador n\xE3o consegue verificar a licen\xE7a (HTTPS necess\xE1rio)"},Ls={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}",opInPeriod:"\u0432 \u043F\u0435\u0440\u0438\u043E\u0434\u0435",periodToday:"\u0441\u0435\u0433\u043E\u0434\u043D\u044F",periodYesterday:"\u0432\u0447\u0435\u0440\u0430",periodTomorrow:"\u0437\u0430\u0432\u0442\u0440\u0430",periodThisWeek:"\u044D\u0442\u0430 \u043D\u0435\u0434\u0435\u043B\u044F",periodLastWeek:"\u043F\u0440\u043E\u0448\u043B\u0430\u044F \u043D\u0435\u0434\u0435\u043B\u044F",periodNextWeek:"\u0441\u043B\u0435\u0434\u0443\u044E\u0449\u0430\u044F \u043D\u0435\u0434\u0435\u043B\u044F",periodThisMonth:"\u044D\u0442\u043E\u0442 \u043C\u0435\u0441\u044F\u0446",periodLastMonth:"\u043F\u0440\u043E\u0448\u043B\u044B\u0439 \u043C\u0435\u0441\u044F\u0446",periodNextMonth:"\u0441\u043B\u0435\u0434\u0443\u044E\u0449\u0438\u0439 \u043C\u0435\u0441\u044F\u0446",periodThisQuarter:"\u044D\u0442\u043E\u0442 \u043A\u0432\u0430\u0440\u0442\u0430\u043B",periodLastQuarter:"\u043F\u0440\u043E\u0448\u043B\u044B\u0439 \u043A\u0432\u0430\u0440\u0442\u0430\u043B",periodNextQuarter:"\u0441\u043B\u0435\u0434\u0443\u044E\u0449\u0438\u0439 \u043A\u0432\u0430\u0440\u0442\u0430\u043B",periodThisYear:"\u044D\u0442\u043E\u0442 \u0433\u043E\u0434",periodLastYear:"\u043F\u0440\u043E\u0448\u043B\u044B\u0439 \u0433\u043E\u0434",periodNextYear:"\u0441\u043B\u0435\u0434\u0443\u044E\u0449\u0438\u0439 \u0433\u043E\u0434",periodYearToDate:"\u0441 \u043D\u0430\u0447\u0430\u043B\u0430 \u0433\u043E\u0434\u0430",periodLastDays:"\u043F\u043E\u0441\u043B\u0435\u0434\u043D\u0438\u0435 {n} \u0434\u043D.",periodNextDays:"\u0441\u043B\u0435\u0434\u0443\u044E\u0449\u0438\u0435 {n} \u0434\u043D.",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}",selectGroupAria:"\u0412\u044B\u0431\u0440\u0430\u0442\u044C \u0441\u0442\u0440\u043E\u043A\u0438 \u0433\u0440\u0443\u043F\u043F\u044B {group} ({count})",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",chartStacking:"\u0420\u0430\u0441\u043F\u043E\u043B\u043E\u0436\u0435\u043D\u0438\u0435 \u0440\u044F\u0434\u043E\u0432",chartStackGrouped:"\u0413\u0440\u0443\u043F\u043F\u0438\u0440\u043E\u0432\u043A\u0430",chartStackStacked:"\u0421 \u043D\u0430\u043A\u043E\u043F\u043B\u0435\u043D\u0438\u0435\u043C",chartStackNormalized:"\u041D\u043E\u0440\u043C\u0438\u0440\u043E\u0432\u0430\u043D\u043D\u043E\u0435 100%",chartFormat:"\u0424\u043E\u0440\u043C\u0430\u0442",chartFormatTitle:"\u0417\u0430\u0433\u043E\u043B\u043E\u0432\u043E\u043A",chartFormatCategoryAxis:"\u041D\u0430\u0437\u0432\u0430\u043D\u0438\u0435 \u043E\u0441\u0438 \u043A\u0430\u0442\u0435\u0433\u043E\u0440\u0438\u0439",chartFormatValueAxis:"\u041D\u0430\u0437\u0432\u0430\u043D\u0438\u0435 \u043E\u0441\u0438 \u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0439",chartFormatLegend:"\u041B\u0435\u0433\u0435\u043D\u0434\u0430",chartLegendTop:"\u0421\u0432\u0435\u0440\u0445\u0443",chartLegendBottom:"\u0421\u043D\u0438\u0437\u0443",chartLegendLeft:"\u0421\u043B\u0435\u0432\u0430",chartLegendRight:"\u0421\u043F\u0440\u0430\u0432\u0430",chartLegendNone:"\u0421\u043A\u0440\u044B\u0442\u0430",chartFormatDataLabels:"\u041F\u043E\u0434\u043F\u0438\u0441\u0438 \u0434\u0430\u043D\u043D\u044B\u0445",chartFormatScale:"\u0428\u043A\u0430\u043B\u0430 \u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0439",chartScaleLinear:"\u041B\u0438\u043D\u0435\u0439\u043D\u0430\u044F",chartScaleLog:"\u041B\u043E\u0433\u0430\u0440\u0438\u0444\u043C\u0438\u0447\u0435\u0441\u043A\u0430\u044F",sparklineSummary:"{count} \u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0439 \u043E\u0442 {min} \u0434\u043E {max}, \u043F\u043E\u0441\u043B\u0435\u0434\u043D\u0435\u0435 {last}",chartTypeWaterfall:"\u041A\u0430\u0441\u043A\u0430\u0434\u043D\u0430\u044F",chartTypeFunnel:"\u0412\u043E\u0440\u043E\u043D\u043A\u0430",chartTypeTreemap:"\u041F\u043B\u043E\u0441\u043A\u043E\u0435 \u0434\u0435\u0440\u0435\u0432\u043E",chartTypeHeatmap:"\u0422\u0435\u043F\u043B\u043E\u0432\u0430\u044F \u043A\u0430\u0440\u0442\u0430",chartTypeBox:"\u042F\u0449\u0438\u043A \u0441 \u0443\u0441\u0430\u043C\u0438",chartTypeRadar:"\u041B\u0435\u043F\u0435\u0441\u0442\u043A\u043E\u0432\u0430\u044F",chartTypeRangeBar:"\u0414\u0438\u0430\u043F\u0430\u0437\u043E\u043D",chartBoxQ1:"Q1",chartBoxMedian:"\u041C\u0435\u0434\u0438\u0430\u043D\u0430",chartBoxQ3:"Q3",chartBoxOutlier:"\u0412\u044B\u0431\u0440\u043E\u0441",chartTotal:"\u0418\u0442\u043E\u0433\u043E",chartTypeScatter:"\u0422\u043E\u0447\u0435\u0447\u043D\u0430\u044F",chartTypeBubble:"\u041F\u0443\u0437\u044B\u0440\u044C\u043A\u043E\u0432\u0430\u044F",chartXAxis:"\u041E\u0441\u044C X",chartBubbleSize:"\u0420\u0430\u0437\u043C\u0435\u0440",chartXYSampled:"{shown} \u0438\u0437 {total} \u0442\u043E\u0447\u0435\u043A, \u0440\u0430\u0432\u043D\u043E\u043C\u0435\u0440\u043D\u0430\u044F \u0432\u044B\u0431\u043E\u0440\u043A\u0430",licenseMissing:"\u0411\u0435\u0437 \u043B\u0438\u0446\u0435\u043D\u0437\u0438\u0438",licenseExpired:"\u0421\u0440\u043E\u043A \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u044F \u043B\u0438\u0446\u0435\u043D\u0437\u0438\u0438 \u0438\u0441\u0442\u0451\u043A",licenseReleaseNotCovered:"\u042D\u0442\u0430 \u0432\u0435\u0440\u0441\u0438\u044F \u043D\u0435 \u043F\u043E\u043A\u0440\u044B\u0432\u0430\u0435\u0442\u0441\u044F \u043B\u0438\u0446\u0435\u043D\u0437\u0438\u0435\u0439",licenseDomainMismatch:"\u041B\u0438\u0446\u0435\u043D\u0437\u0438\u044F \u043D\u0435\u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0442\u0435\u043B\u044C\u043D\u0430 \u0434\u043B\u044F \u044D\u0442\u043E\u0433\u043E \u0434\u043E\u043C\u0435\u043D\u0430",licenseRevoked:"\u041B\u0438\u0446\u0435\u043D\u0437\u0438\u044F \u043E\u0442\u043E\u0437\u0432\u0430\u043D\u0430",licenseInvalidFormat:"\u041D\u0435\u0432\u0435\u0440\u043D\u044B\u0439 \u0444\u043E\u0440\u043C\u0430\u0442 \u043B\u0438\u0446\u0435\u043D\u0437\u0438\u043E\u043D\u043D\u043E\u0433\u043E \u043A\u043B\u044E\u0447\u0430",licenseInvalidSignature:"\u041D\u0435\u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0442\u0435\u043B\u044C\u043D\u0430\u044F \u043F\u043E\u0434\u043F\u0438\u0441\u044C \u043B\u0438\u0446\u0435\u043D\u0437\u0438\u0438",licenseEngineUnavailable:"\u0411\u0440\u0430\u0443\u0437\u0435\u0440 \u043D\u0435 \u043C\u043E\u0436\u0435\u0442 \u043F\u0440\u043E\u0432\u0435\u0440\u0438\u0442\u044C \u043B\u0438\u0446\u0435\u043D\u0437\u0438\u044E (\u0442\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044F HTTPS)"},Ps={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",opInPeriod:"\u0636\u0645\u0646 \u0627\u0644\u0641\u062A\u0631\u0629",periodToday:"\u0627\u0644\u064A\u0648\u0645",periodYesterday:"\u0623\u0645\u0633",periodTomorrow:"\u063A\u062F\u064B\u0627",periodThisWeek:"\u0647\u0630\u0627 \u0627\u0644\u0623\u0633\u0628\u0648\u0639",periodLastWeek:"\u0627\u0644\u0623\u0633\u0628\u0648\u0639 \u0627\u0644\u0645\u0627\u0636\u064A",periodNextWeek:"\u0627\u0644\u0623\u0633\u0628\u0648\u0639 \u0627\u0644\u0642\u0627\u062F\u0645",periodThisMonth:"\u0647\u0630\u0627 \u0627\u0644\u0634\u0647\u0631",periodLastMonth:"\u0627\u0644\u0634\u0647\u0631 \u0627\u0644\u0645\u0627\u0636\u064A",periodNextMonth:"\u0627\u0644\u0634\u0647\u0631 \u0627\u0644\u0642\u0627\u062F\u0645",periodThisQuarter:"\u0647\u0630\u0627 \u0627\u0644\u0631\u0628\u0639",periodLastQuarter:"\u0627\u0644\u0631\u0628\u0639 \u0627\u0644\u0645\u0627\u0636\u064A",periodNextQuarter:"\u0627\u0644\u0631\u0628\u0639 \u0627\u0644\u0642\u0627\u062F\u0645",periodThisYear:"\u0647\u0630\u0627 \u0627\u0644\u0639\u0627\u0645",periodLastYear:"\u0627\u0644\u0639\u0627\u0645 \u0627\u0644\u0645\u0627\u0636\u064A",periodNextYear:"\u0627\u0644\u0639\u0627\u0645 \u0627\u0644\u0642\u0627\u062F\u0645",periodYearToDate:"\u0645\u0646\u0630 \u0628\u062F\u0627\u064A\u0629 \u0627\u0644\u0639\u0627\u0645",periodLastDays:"\u0622\u062E\u0631 {n} \u064A\u0648\u0645",periodNextDays:"\u0627\u0644\u0640 {n} \u064A\u0648\u0645 \u0627\u0644\u0642\u0627\u062F\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}",selectGroupAria:"\u062A\u062D\u062F\u064A\u062F \u0635\u0641\u0648\u0641 {group} \u0648\u0639\u062F\u062F\u0647\u0627 {count}",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",chartStacking:"\u062A\u0631\u062A\u064A\u0628 \u0627\u0644\u0633\u0644\u0627\u0633\u0644",chartStackGrouped:"\u0645\u062C\u0645\u0651\u0639",chartStackStacked:"\u0645\u0643\u062F\u0651\u0633",chartStackNormalized:"\u0645\u0643\u062F\u0651\u0633 100%",chartFormat:"\u0627\u0644\u062A\u0646\u0633\u064A\u0642",chartFormatTitle:"\u0627\u0644\u0639\u0646\u0648\u0627\u0646",chartFormatCategoryAxis:"\u0639\u0646\u0648\u0627\u0646 \u0645\u062D\u0648\u0631 \u0627\u0644\u0641\u0626\u0627\u062A",chartFormatValueAxis:"\u0639\u0646\u0648\u0627\u0646 \u0645\u062D\u0648\u0631 \u0627\u0644\u0642\u064A\u0645",chartFormatLegend:"\u0648\u0633\u064A\u0644\u0629 \u0627\u0644\u0625\u064A\u0636\u0627\u062D",chartLegendTop:"\u0623\u0639\u0644\u0649",chartLegendBottom:"\u0623\u0633\u0641\u0644",chartLegendLeft:"\u064A\u0633\u0627\u0631",chartLegendRight:"\u064A\u0645\u064A\u0646",chartLegendNone:"\u0645\u062E\u0641\u064A\u0629",chartFormatDataLabels:"\u062A\u0633\u0645\u064A\u0627\u062A \u0627\u0644\u0628\u064A\u0627\u0646\u0627\u062A",chartFormatScale:"\u0645\u0642\u064A\u0627\u0633 \u0627\u0644\u0642\u064A\u0645",chartScaleLinear:"\u062E\u0637\u064A",chartScaleLog:"\u0644\u0648\u063A\u0627\u0631\u064A\u062A\u0645\u064A",sparklineSummary:"{count} \u0642\u064A\u0645\u0629 \u0645\u0646 {min} \u0625\u0644\u0649 {max}\u060C \u0627\u0644\u0623\u062E\u064A\u0631\u0629 {last}",chartTypeWaterfall:"\u0634\u0644\u0627\u0644",chartTypeFunnel:"\u0642\u0645\u0639",chartTypeTreemap:"\u062E\u0631\u064A\u0637\u0629 \u0634\u062C\u0631\u064A\u0629",chartTypeHeatmap:"\u062E\u0631\u064A\u0637\u0629 \u062D\u0631\u0627\u0631\u064A\u0629",chartTypeBox:"\u0645\u062E\u0637\u0637 \u0627\u0644\u0635\u0646\u062F\u0648\u0642",chartTypeRadar:"\u0631\u0627\u062F\u0627\u0631",chartTypeRangeBar:"\u0646\u0637\u0627\u0642",chartBoxQ1:"\u0627\u0644\u0631\u0628\u064A\u0639 \u0627\u0644\u0623\u0648\u0644",chartBoxMedian:"\u0627\u0644\u0648\u0633\u064A\u0637",chartBoxQ3:"\u0627\u0644\u0631\u0628\u064A\u0639 \u0627\u0644\u062B\u0627\u0644\u062B",chartBoxOutlier:"\u0642\u064A\u0645\u0629 \u0634\u0627\u0630\u0629",chartTotal:"\u0627\u0644\u0625\u062C\u0645\u0627\u0644\u064A",chartTypeScatter:"\u0645\u0628\u0639\u062B\u0631",chartTypeBubble:"\u0641\u0642\u0627\u0639\u064A",chartXAxis:"\u0627\u0644\u0645\u062D\u0648\u0631 X",chartBubbleSize:"\u0627\u0644\u062D\u062C\u0645",chartXYSampled:"{shown} \u0645\u0646 {total} \u0646\u0642\u0637\u0629\u060C \u0628\u0639\u064A\u0646\u0629 \u0645\u0646\u062A\u0638\u0645\u0629",licenseMissing:"\u063A\u064A\u0631 \u0645\u0631\u062E\u0651\u0635",licenseExpired:"\u0627\u0646\u062A\u0647\u062A \u0635\u0644\u0627\u062D\u064A\u0629 \u0627\u0644\u062A\u0631\u062E\u064A\u0635",licenseReleaseNotCovered:"\u0647\u0630\u0627 \u0627\u0644\u0625\u0635\u062F\u0627\u0631 \u063A\u064A\u0631 \u0645\u0634\u0645\u0648\u0644 \u0628\u0627\u0644\u062A\u0631\u062E\u064A\u0635",licenseDomainMismatch:"\u0627\u0644\u062A\u0631\u062E\u064A\u0635 \u063A\u064A\u0631 \u0635\u0627\u0644\u062D \u0644\u0647\u0630\u0627 \u0627\u0644\u0646\u0637\u0627\u0642",licenseRevoked:"\u062A\u0645 \u0625\u0644\u063A\u0627\u0621 \u0627\u0644\u062A\u0631\u062E\u064A\u0635",licenseInvalidFormat:"\u0635\u064A\u063A\u0629 \u0645\u0641\u062A\u0627\u062D \u0627\u0644\u062A\u0631\u062E\u064A\u0635 \u063A\u064A\u0631 \u0635\u062D\u064A\u062D\u0629",licenseInvalidSignature:"\u062A\u0648\u0642\u064A\u0639 \u0627\u0644\u062A\u0631\u062E\u064A\u0635 \u063A\u064A\u0631 \u0635\u0627\u0644\u062D",licenseEngineUnavailable:"\u0644\u0627 \u064A\u0633\u062A\u0637\u064A\u0639 \u0627\u0644\u0645\u062A\u0635\u0641\u062D \u0627\u0644\u062A\u062D\u0642\u0642 \u0645\u0646 \u0627\u0644\u062A\u0631\u062E\u064A\u0635 (\u064A\u0644\u0632\u0645 HTTPS)"},Gs={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",opInPeriod:"\u5728\u671F\u95F4",periodToday:"\u4ECA\u5929",periodYesterday:"\u6628\u5929",periodTomorrow:"\u660E\u5929",periodThisWeek:"\u672C\u5468",periodLastWeek:"\u4E0A\u5468",periodNextWeek:"\u4E0B\u5468",periodThisMonth:"\u672C\u6708",periodLastMonth:"\u4E0A\u6708",periodNextMonth:"\u4E0B\u6708",periodThisQuarter:"\u672C\u5B63\u5EA6",periodLastQuarter:"\u4E0A\u5B63\u5EA6",periodNextQuarter:"\u4E0B\u5B63\u5EA6",periodThisYear:"\u4ECA\u5E74",periodLastYear:"\u53BB\u5E74",periodNextYear:"\u660E\u5E74",periodYearToDate:"\u5E74\u521D\u81F3\u4ECA",periodLastDays:"\u6700\u8FD1 {n} \u5929",periodNextDays:"\u672A\u6765 {n} \u5929",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",selectGroupAria:"\u9009\u62E9 {group} \u4E2D\u7684 {count} \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",chartStacking:"\u7CFB\u5217\u5E03\u5C40",chartStackGrouped:"\u7C07\u72B6",chartStackStacked:"\u5806\u79EF",chartStackNormalized:"\u767E\u5206\u6BD4\u5806\u79EF",chartFormat:"\u683C\u5F0F",chartFormatTitle:"\u6807\u9898",chartFormatCategoryAxis:"\u5206\u7C7B\u8F74\u6807\u9898",chartFormatValueAxis:"\u6570\u503C\u8F74\u6807\u9898",chartFormatLegend:"\u56FE\u4F8B",chartLegendTop:"\u9876\u90E8",chartLegendBottom:"\u5E95\u90E8",chartLegendLeft:"\u5DE6\u4FA7",chartLegendRight:"\u53F3\u4FA7",chartLegendNone:"\u9690\u85CF",chartFormatDataLabels:"\u6570\u636E\u6807\u7B7E",chartFormatScale:"\u6570\u503C\u523B\u5EA6",chartScaleLinear:"\u7EBF\u6027",chartScaleLog:"\u5BF9\u6570",sparklineSummary:"{count} \u4E2A\u503C\uFF0C\u4ECE {min} \u5230 {max}\uFF0C\u6700\u540E\u4E3A {last}",chartTypeWaterfall:"\u7011\u5E03\u56FE",chartTypeFunnel:"\u6F0F\u6597\u56FE",chartTypeTreemap:"\u77E9\u5F62\u6811\u56FE",chartTypeHeatmap:"\u70ED\u529B\u56FE",chartTypeBox:"\u7BB1\u7EBF\u56FE",chartTypeRadar:"\u96F7\u8FBE\u56FE",chartTypeRangeBar:"\u8303\u56F4\u56FE",chartBoxQ1:"Q1",chartBoxMedian:"\u4E2D\u4F4D\u6570",chartBoxQ3:"Q3",chartBoxOutlier:"\u79BB\u7FA4\u503C",chartTotal:"\u5408\u8BA1",chartTypeScatter:"\u6563\u70B9\u56FE",chartTypeBubble:"\u6C14\u6CE1\u56FE",chartXAxis:"X \u8F74",chartBubbleSize:"\u5927\u5C0F",chartXYSampled:"\u5171 {total} \u4E2A\u70B9\uFF0C\u5747\u5300\u62BD\u6837\u663E\u793A {shown} \u4E2A",licenseMissing:"\u672A\u6388\u6743",licenseExpired:"\u8BB8\u53EF\u8BC1\u5DF2\u8FC7\u671F",licenseReleaseNotCovered:"\u6B64\u7248\u672C\u4E0D\u5728\u8BB8\u53EF\u8BC1\u8986\u76D6\u8303\u56F4\u5185",licenseDomainMismatch:"\u8BB8\u53EF\u8BC1\u5BF9\u6B64\u57DF\u540D\u65E0\u6548",licenseRevoked:"\u8BB8\u53EF\u8BC1\u5DF2\u88AB\u540A\u9500",licenseInvalidFormat:"\u8BB8\u53EF\u8BC1\u5BC6\u94A5\u683C\u5F0F\u9519\u8BEF",licenseInvalidSignature:"\u8BB8\u53EF\u8BC1\u7B7E\u540D\u65E0\u6548",licenseEngineUnavailable:"\u6D4F\u89C8\u5668\u65E0\u6CD5\u9A8C\u8BC1\u8BB8\u53EF\u8BC1\uFF08\u9700\u8981 HTTPS\uFF09"},Os={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",opInPeriod:"\u671F\u9593\u5185",periodToday:"\u4ECA\u65E5",periodYesterday:"\u6628\u65E5",periodTomorrow:"\u660E\u65E5",periodThisWeek:"\u4ECA\u9031",periodLastWeek:"\u5148\u9031",periodNextWeek:"\u6765\u9031",periodThisMonth:"\u4ECA\u6708",periodLastMonth:"\u5148\u6708",periodNextMonth:"\u6765\u6708",periodThisQuarter:"\u4ECA\u56DB\u534A\u671F",periodLastQuarter:"\u524D\u56DB\u534A\u671F",periodNextQuarter:"\u6B21\u56DB\u534A\u671F",periodThisYear:"\u4ECA\u5E74",periodLastYear:"\u6628\u5E74",periodNextYear:"\u6765\u5E74",periodYearToDate:"\u5E74\u521D\u6765",periodLastDays:"\u904E\u53BB {n} \u65E5\u9593",periodNextDays:"\u4ECA\u5F8C {n} \u65E5\u9593",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",selectGroupAria:"{group} \u306E {count} \u884C\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",chartStacking:"\u7CFB\u5217\u306E\u914D\u7F6E",chartStackGrouped:"\u96C6\u5408",chartStackStacked:"\u7A4D\u307F\u4E0A\u3052",chartStackNormalized:"100% \u7A4D\u307F\u4E0A\u3052",chartFormat:"\u66F8\u5F0F",chartFormatTitle:"\u30BF\u30A4\u30C8\u30EB",chartFormatCategoryAxis:"\u9805\u76EE\u8EF8\u306E\u30BF\u30A4\u30C8\u30EB",chartFormatValueAxis:"\u5024\u8EF8\u306E\u30BF\u30A4\u30C8\u30EB",chartFormatLegend:"\u51E1\u4F8B",chartLegendTop:"\u4E0A",chartLegendBottom:"\u4E0B",chartLegendLeft:"\u5DE6",chartLegendRight:"\u53F3",chartLegendNone:"\u975E\u8868\u793A",chartFormatDataLabels:"\u30C7\u30FC\u30BF \u30E9\u30D9\u30EB",chartFormatScale:"\u5024\u306E\u76EE\u76DB",chartScaleLinear:"\u7DDA\u5F62",chartScaleLog:"\u5BFE\u6570",sparklineSummary:"{count} \u500B\u306E\u5024 ({min}\u301C{max})\u3001\u6700\u5F8C\u306F {last}",chartTypeWaterfall:"\u30A6\u30A9\u30FC\u30BF\u30FC\u30D5\u30A9\u30FC\u30EB",chartTypeFunnel:"\u3058\u3087\u3046\u3054",chartTypeTreemap:"\u30C4\u30EA\u30FC\u30DE\u30C3\u30D7",chartTypeHeatmap:"\u30D2\u30FC\u30C8\u30DE\u30C3\u30D7",chartTypeBox:"\u7BB1\u3072\u3052\u56F3",chartTypeRadar:"\u30EC\u30FC\u30C0\u30FC",chartTypeRangeBar:"\u7BC4\u56F2",chartBoxQ1:"Q1",chartBoxMedian:"\u4E2D\u592E\u5024",chartBoxQ3:"Q3",chartBoxOutlier:"\u5916\u308C\u5024",chartTotal:"\u5408\u8A08",chartTypeScatter:"\u6563\u5E03\u56F3",chartTypeBubble:"\u30D0\u30D6\u30EB",chartXAxis:"X \u8EF8",chartBubbleSize:"\u30B5\u30A4\u30BA",chartXYSampled:"{total} \u70B9\u4E2D {shown} \u70B9 (\u5747\u7B49\u306B\u62BD\u51FA)",licenseMissing:"\u30E9\u30A4\u30BB\u30F3\u30B9\u306A\u3057",licenseExpired:"\u30E9\u30A4\u30BB\u30F3\u30B9\u306E\u6709\u52B9\u671F\u9650\u304C\u5207\u308C\u3066\u3044\u307E\u3059",licenseReleaseNotCovered:"\u3053\u306E\u30D0\u30FC\u30B8\u30E7\u30F3\u306F\u30E9\u30A4\u30BB\u30F3\u30B9\u306E\u5BFE\u8C61\u5916\u3067\u3059",licenseDomainMismatch:"\u3053\u306E\u30C9\u30E1\u30A4\u30F3\u3067\u306F\u30E9\u30A4\u30BB\u30F3\u30B9\u304C\u7121\u52B9\u3067\u3059",licenseRevoked:"\u30E9\u30A4\u30BB\u30F3\u30B9\u306F\u53D6\u308A\u6D88\u3055\u308C\u307E\u3057\u305F",licenseInvalidFormat:"\u30E9\u30A4\u30BB\u30F3\u30B9\u30AD\u30FC\u306E\u5F62\u5F0F\u304C\u6B63\u3057\u304F\u3042\u308A\u307E\u305B\u3093",licenseInvalidSignature:"\u30E9\u30A4\u30BB\u30F3\u30B9\u306E\u7F72\u540D\u304C\u7121\u52B9\u3067\u3059",licenseEngineUnavailable:"\u30D6\u30E9\u30A6\u30B6\u30FC\u3067\u30E9\u30A4\u30BB\u30F3\u30B9\u3092\u691C\u8A3C\u3067\u304D\u307E\u305B\u3093\uFF08HTTPS \u304C\u5FC5\u8981\u3067\u3059\uFF09"},Vs={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",opInPeriod:"\uAE30\uAC04 \uB0B4",periodToday:"\uC624\uB298",periodYesterday:"\uC5B4\uC81C",periodTomorrow:"\uB0B4\uC77C",periodThisWeek:"\uC774\uBC88 \uC8FC",periodLastWeek:"\uC9C0\uB09C\uC8FC",periodNextWeek:"\uB2E4\uC74C \uC8FC",periodThisMonth:"\uC774\uBC88 \uB2EC",periodLastMonth:"\uC9C0\uB09C\uB2EC",periodNextMonth:"\uB2E4\uC74C \uB2EC",periodThisQuarter:"\uC774\uBC88 \uBD84\uAE30",periodLastQuarter:"\uC9C0\uB09C \uBD84\uAE30",periodNextQuarter:"\uB2E4\uC74C \uBD84\uAE30",periodThisYear:"\uC62C\uD574",periodLastYear:"\uC791\uB144",periodNextYear:"\uB0B4\uB144",periodYearToDate:"\uC5F0\uCD08\uBD80\uD130 \uC624\uB298\uAE4C\uC9C0",periodLastDays:"\uCD5C\uADFC {n}\uC77C",periodNextDays:"\uC55E\uC73C\uB85C {n}\uC77C",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",selectGroupAria:"{group}\uC758 {count}\uAC1C \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",chartStacking:"\uACC4\uC5F4 \uBC30\uCE58",chartStackGrouped:"\uBB36\uC740",chartStackStacked:"\uB204\uC801",chartStackNormalized:"100% \uB204\uC801",chartFormat:"\uC11C\uC2DD",chartFormatTitle:"\uC81C\uBAA9",chartFormatCategoryAxis:"\uBC94\uC8FC \uCD95 \uC81C\uBAA9",chartFormatValueAxis:"\uAC12 \uCD95 \uC81C\uBAA9",chartFormatLegend:"\uBC94\uB840",chartLegendTop:"\uC704\uCABD",chartLegendBottom:"\uC544\uB798\uCABD",chartLegendLeft:"\uC67C\uCABD",chartLegendRight:"\uC624\uB978\uCABD",chartLegendNone:"\uC228\uAE40",chartFormatDataLabels:"\uB370\uC774\uD130 \uB808\uC774\uBE14",chartFormatScale:"\uAC12 \uB208\uAE08",chartScaleLinear:"\uC120\uD615",chartScaleLog:"\uB85C\uADF8",sparklineSummary:"\uAC12 {count}\uAC1C, {min}\uBD80\uD130 {max}\uAE4C\uC9C0, \uB9C8\uC9C0\uB9C9 {last}",chartTypeWaterfall:"\uD3ED\uD3EC",chartTypeFunnel:"\uAE54\uB54C\uAE30\uD615",chartTypeTreemap:"\uD2B8\uB9AC\uB9F5",chartTypeHeatmap:"\uD788\uD2B8\uB9F5",chartTypeBox:"\uC0C1\uC790 \uADF8\uB9BC",chartTypeRadar:"\uBC29\uC0AC\uD615",chartTypeRangeBar:"\uBC94\uC704",chartBoxQ1:"Q1",chartBoxMedian:"\uC911\uC559\uAC12",chartBoxQ3:"Q3",chartBoxOutlier:"\uC774\uC0C1\uAC12",chartTotal:"\uD569\uACC4",chartTypeScatter:"\uBD84\uC0B0\uD615",chartTypeBubble:"\uAC70\uD488\uD615",chartXAxis:"X\uCD95",chartBubbleSize:"\uD06C\uAE30",chartXYSampled:"{total}\uAC1C \uC911 {shown}\uAC1C \uC810, \uADE0\uB4F1 \uD45C\uBCF8",licenseMissing:"\uB77C\uC774\uC120\uC2A4 \uC5C6\uC74C",licenseExpired:"\uB77C\uC774\uC120\uC2A4\uAC00 \uB9CC\uB8CC\uB418\uC5C8\uC2B5\uB2C8\uB2E4",licenseReleaseNotCovered:"\uC774 \uBC84\uC804\uC740 \uB77C\uC774\uC120\uC2A4 \uC801\uC6A9 \uB300\uC0C1\uC774 \uC544\uB2D9\uB2C8\uB2E4",licenseDomainMismatch:"\uC774 \uB3C4\uBA54\uC778\uC5D0\uC11C\uB294 \uB77C\uC774\uC120\uC2A4\uAC00 \uC720\uD6A8\uD558\uC9C0 \uC54A\uC2B5\uB2C8\uB2E4",licenseRevoked:"\uB77C\uC774\uC120\uC2A4\uAC00 \uCDE8\uC18C\uB418\uC5C8\uC2B5\uB2C8\uB2E4",licenseInvalidFormat:"\uB77C\uC774\uC120\uC2A4 \uD0A4 \uD615\uC2DD\uC774 \uC798\uBABB\uB418\uC5C8\uC2B5\uB2C8\uB2E4",licenseInvalidSignature:"\uB77C\uC774\uC120\uC2A4 \uC11C\uBA85\uC774 \uC720\uD6A8\uD558\uC9C0 \uC54A\uC2B5\uB2C8\uB2E4",licenseEngineUnavailable:"\uBE0C\uB77C\uC6B0\uC800\uC5D0\uC11C \uB77C\uC774\uC120\uC2A4\uB97C \uD655\uC778\uD560 \uC218 \uC5C6\uC2B5\uB2C8\uB2E4(HTTPS \uD544\uC694)"};function Bt(e,t){let u=e;for(let[r,n]of Object.entries(t))u=u.replace(`{${r}}`,String(n));return u}var zs={tr:ks,en:nn,de:Ts,fr:Ns,es:Rs,it:Ms,pt:Is,ru:Ls,ar:Ps,"zh-CN":Gs,ja:Os,ko:Vs};function Jt(e,t){return ns(zs,nn,e,t)}function Hs(e,t,u,r){let n=u.getCellValue(e.data,t);return r?{text:n==null?"":String(n),value:n}:{text:Gu(u.getDef(t),n,e.data),value:n}}function Ws({nodes:e,columns:t,options:u,isSelected:r,selectionCount:n=0,summaries:a}){let i=t.runtime(),l=(u.columnIds??i.map(f=>f.state.id)).map(f=>{let C=t.getDef(f),b=t.getState(f),F=C?.dataType==="number";return{id:f,header:C?.headerName??C?.field??f,width:Math.max(8,Math.round((b?.width??100)/7)),isNumeric:F,align:C?.align??(F?"right":"left"),numFmt:C?.excelFormat??Ks(C?.dataType)}}),o=!!u.selectedOnly&&n>0&&!!r,d=u.includeGroups!==!1,h=!!u.raw,c=[];for(let f of e)if(f){if(el(f)){if(!d||o)continue;let C=l.map((b,F)=>F===0?{text:`${f.label===""?"(Blanks)":f.label} (${f.count})`,value:f.label}:{text:"",value:null});c.push({kind:"group",cells:C,level:f.level});continue}if(tl(f)){if(!d||o)continue;let C=l.map((b,F)=>F===0?{text:f.label,value:f.label}:{text:"",value:null});c.push({kind:"group",cells:C,level:f.tree.depth});continue}Le(f)&&(o&&!r(f.key)||c.push({kind:"data",cells:l.map(C=>Hs(f,C.id,t,h)),level:0}))}let g;return a&&a.defs.length>0&&(g=l.map(f=>{let C=a.defs.find(F=>F.columnId===f.id);if(!C)return null;let b=a.values[`${C.columnId}:${C.type}`]??null;return{text:C.valueFormatter?C.valueFormatter(b):b==null?"":String(b),value:b}})),{columns:l,rows:c,totals:g}}function Ks(e){if(e==="number")return"#,##0.###";if(e==="date")return"yyyy-mm-dd"}var gt=class extends Error{constructor(){super("Export aborted"),this.name="ExportAbortedError"}},$s="\uFEFF",Us=new Set(["tr","de","fr","es","it","pt","ru","ar"]);function qs(e){let t=(e??"en").split(/[-_]/)[0].toLowerCase();return Us.has(t)?";":","}function Ka(e,t){return e.includes(t)||e.includes('"')||e.includes(`
|
|
5
|
-
`)||e.includes("\r")||e!==e.trim()?`"${e.replace(/"/g,'""')}"`:e}async function
|
|
6
|
-
`,n=[];t.includeHeaders!==!1&&n.push(e.columns.map(l=>Ka(l.header,u)).join(u));let a=e.rows.length;for(let l=0;l<a;l++){if(t.signal?.aborted)throw new gt;let o=e.rows[l];n.push(o.cells.map(d=>Ka(d.text,u)).join(u)),(l+1)%5e3===0&&(t.onProgress?.((l+1)/a),await new Promise(d=>setTimeout(d,0)))}t.onProgress?.(1);let i=n.join(r);return t.bom===!1?i:$s+i}async function js(e,t={}){let u=await _s(e,t);return new Blob([u],{type:"text/csv;charset=utf-8;"})}var Ys="application/vnd.openxmlformats-officedocument.spreadsheetml.sheet",$a="FFF1F5F9",Qs="FFFAFAFA",Ua="FFE2E8F0";async function Xs(){let e;try{e=await import("exceljs")}catch{throw new Error('[datagrid] Excel export needs the "exceljs" package. Install it with: npm i exceljs')}let t=e,u=t.Workbook?t:t.default;if(!u?.Workbook)throw new Error('[datagrid] Excel export needs the "exceljs" package, and what loaded exposes no Workbook \u2014 it is either not installed (npm i exceljs) or a version this writer does not understand.');return u}function Mi(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 Js(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 Ii(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 jt(e,t,u,r,n){let a=t.customizeCell;a&&e.eachCell((i,l)=>{let o=r?.columns[l-1],d=a({kind:u,columnId:o?.id??null,value:i.value,text:i.value==null?"":String(i.value),rowNumber:e.number,colNumber:l,rowIndex:n});Ii(i,d)})}function Wu(e,t,u,r){if(t?.length)for(let n of t){let a=e.addRow(n.cells);n.height&&(a.height=n.height),n.style&&a.eachCell(i=>Ii(i,n.style)),n.merge&&u>1&&e.mergeCells(`A${a.number}:${Js(u)}${a.number}`),jt(a,r,"band",null,-1)}}async function qa(e,t,u,r,n){let a=null;if(r&&t.columns.length>0){let c=e.addRow(t.columns.map(g=>g.header));c.font={bold:!0},c.fill={type:"pattern",pattern:"solid",fgColor:{argb:$a}},n&&(c.alignment={horizontal:"left",vertical:"middle"},c.border={bottom:{style:"thin",color:{argb:Ua}}}),jt(c,u,"header",t,-1),a=c.number}let i=t.rows.length,l=a===null?0:a+1,o=a??0,d=0,h=-1;for(let c=0;c<i;c++){if(u.signal?.aborted)throw new gt;let g=t.rows[c],f=g.cells.map(b=>u.raw||typeof b.value=="number"||b.value instanceof Date?b.value:b.text),C=e.addRow(f);c===0&&(l=C.number),o=C.number,g.kind==="group"?(h=g.level,C.font={bold:!0},C.getCell(1).alignment={indent:g.level,horizontal:"left"},n&&(C.fill={type:"pattern",pattern:"solid",fgColor:{argb:$a}},C.outlineLevel=g.level),d=0,jt(C,u,"group",t,c)):(n&&(h>=0&&(C.outlineLevel=h+1),d%2===1&&(C.fill={type:"pattern",pattern:"solid",fgColor:{argb:Qs}})),d++,jt(C,u,"data",t,c)),(c+1)%5e3===0&&(u.onProgress?.((c+1)/i),await new Promise(b=>setTimeout(b,0)))}if(n&&u.totalsRow!==!1&&t.totals){let c=e.addRow(t.totals.map(g=>g==null?"":typeof g.value=="number"?g.value:g.text));c.font={bold:!0},c.border={top:{style:"double",color:{argb:Ua}}},jt(c,u,"totals",t,-1),o=c.number}return{headerRow:a,firstDataRow:l,lastRow:o}}function Zs(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}),a=r.position??{col:0,row:0,width:160,height:48};t.addImage(n,{tl:{col:a.col,row:a.row},ext:{width:a.width,height:a.height}})}}async function e0(e,t={}){let u=await Xs(),r=t.styled===!0,n=t.includeHeaders!==!1,a=new u.Workbook,i=c=>a.addWorksheet(c),l=i(t.sheetName??"Data");r&&(l.properties.outlineProperties={summaryBelow:!1,summaryRight:!1}),Mi(l,e,r),Zs(a,l,t.images),Wu(l,t.headerBlock,e.columns.length,t);let o=await qa(l,e,t,n,r);t.onProgress?.(1),t.autoFilter!==!1&&o.headerRow!==null&&e.columns.length>0&&(l.autoFilter={from:{row:o.headerRow,column:1},to:{row:o.headerRow,column:e.columns.length}}),t.freezeHeader!==!1&&o.headerRow!==null&&(l.views=[{state:"frozen",ySplit:o.headerRow}]);let d=l;for(let c of t.additionalGrids??[])d=t0(i,d,c,t,r),await qa(d,c.model,t,c.includeHeaders!==!1,r);Wu(l,t.footerBlock,e.columns.length,t);let h=await a.xlsx.writeBuffer();return new Blob([h],{type:Ys})}function t0(e,t,u,r,n){if(u.sheetName){let i=e(u.sheetName);return Mi(i,u.model,n),u.title&&Wu(i,[{cells:[u.title],merge:!0,style:{font:{bold:!0,size:13}}}],u.model.columns.length,r),i}let a=u.gap??2;for(let i=0;i<a;i++)t.addRow([]);return u.title&&Wu(t,[{cells:[u.title],merge:!0,style:{font:{bold:!0,size:13}}}],u.model.columns.length,r),t}var u0="application/pdf",Gr=[241,245,249],r0=[250,250,250],Ie=[30,41,59];async function n0(){let e=new Error('[datagrid] PDF export needs "jspdf" and "jspdf-autotable". Install them with: npm i jspdf jspdf-autotable'),t;try{let[u,r]=await Promise.all([import("jspdf"),import("jspdf-autotable")]);t={jsPDF:u.jsPDF??u.default,autoTable:r.default??r}}catch{throw e}if(typeof t.jsPDF!="function"||typeof t.autoTable!="function")throw e;return t}var an="helvetica",a0=/[^\u0000-\u00ff\u0152\u0153\u0160\u0161\u0178\u017d\u017e\u0192\u02c6\u02dc\u2013\u2014\u2018\u2019\u201a\u201c\u201d\u201e\u2020\u2021\u2022\u2026\u2030\u2039\u203a\u20ac\u2122]/u;function i0(e,t){let u=function*(){for(let r of t.headerBlock??[])yield r.text;for(let r of t.footerBlock??[])yield r.text;for(let r of[{model:e,title:void 0},...t.additionalGrids??[]]){r.title&&(yield r.title);for(let n of r.model.columns)yield n.header;for(let n of r.model.rows)for(let a of n.cells)yield a.text;for(let n of r.model.totals??[])n&&(yield n.text)}};for(let r of u()){let n=a0.exec(r);if(n)return n[0]}return null}function o0(e,t,u){let r,n;if(typeof e=="string")r=atob(e.slice(0,8)),n=e;else{let a=e instanceof Uint8Array?e:new Uint8Array(e),i=[];for(let l=0;l<a.length;l+=32768)i.push(String.fromCharCode.apply(null,a.subarray(l,l+32768)));n=i.join(""),r=n.slice(0,4)}if(!r.startsWith("\0\0\0")){let a=r.startsWith("OTTO")?" (it is OpenType-CFF, .otf)":r.startsWith("wOF")?" (it is WOFF)":"";throw new Error(`[datagrid] PDF export: font "${t}" (${u}) is not a TrueType .ttf file${a}. jsPDF embeds TrueType only.`)}return n}function l0(e,t){let u=[["normal",t.normal],["bold",t.bold??t.normal],["italic",t.italic??t.normal],["bolditalic",t.boldItalic??t.bold??t.italic??t.normal]];for(let[r,n]of u){let a=`${t.family}-${r}.ttf`;e.addFileToVFS(a,o0(n,t.family,r)),e.addFont(a,t.family,r)}return t.family}function jr(e,t,u,r,n){if(!t?.length)return u;let a=e.internal.pageSize.getWidth(),i=u;for(let l of t){let o=l.fontSize??10;e.setFontSize(o),e.setFont(n,l.fontStyle??"normal");let d=l.color??Ie;e.setTextColor(d[0],d[1],d[2]);let h=l.align??"left",c=h==="center"?a/2:h==="right"?a-r:r;i+=o*.353,e.text(l.text,c,i,{align:h}),i+=l.spacing??2}return e.setTextColor(Ie[0],Ie[1],Ie[2]),i}function s0(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 on(e,t,u,r,n,a,i){let l=r.styled!==!1,o=r.margin??14,d=i?.from??0,h=i?.to??u.rows.length,c=u.rows.slice(d,h).map(f=>f.cells.map(C=>C.text)),g=l&&r.totalsRow!==!1&&u.totals&&(!i||i.withTotals)?[u.totals.map(f=>f?.text??"")]:void 0;return t(e,{startY:n,margin:{left:o,right:o},head:a&&u.columns.length>0?[u.columns.map(f=>f.header)]:void 0,body:c,foot:g,theme:l?"grid":"plain",showHead:r.repeatHeaders===!1?"firstPage":"everyPage",showFoot:g?"lastPage":"never",styles:{...r.font?{font:r.font.family}:{},fontSize:8,cellPadding:2,textColor:Ie},headStyles:{fillColor:Gr,textColor:Ie,fontStyle:"bold"},footStyles:{fillColor:Gr,textColor:Ie,fontStyle:"bold"},alternateRowStyles:l?{fillColor:r0}:void 0,columnStyles:l?Object.fromEntries(u.columns.map((f,C)=>[C,{halign:f.align}])):void 0,didParseCell:f=>{let C,b=-1;f.section==="head"?C="header":f.section==="foot"?C="totals":(b=d+f.row.index,C=u.rows[b]?.kind==="group"?"group":"data"),C==="group"&&(f.cell.styles.fontStyle="bold",f.cell.styles.fillColor=Gr,f.column.index===0&&(f.cell.styles.cellPadding={top:2,right:2,bottom:2,left:2+(u.rows[b]?.level??0)*4}));let F=r.customizeCell;if(!F)return;let R=u.columns[f.column.index],I=b>=0?u.rows[b]?.cells[f.column.index]:void 0;s0(f.cell,F({kind:C,columnId:R?.id??null,text:Array.isArray(f.cell.text)?f.cell.text.join(" "):String(f.cell.text),value:I?.value,rowIndex:b,columnIndex:f.column.index}))}}),e.lastAutoTable?.finalY??n}function d0(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 a=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: ${a}`)}})}function c0(e,t){let u=t.pageNumbers;if(!u)return;let r=t.margin??14,n=e.getNumberOfPages(),a=e.internal.pageSize.getWidth(),i=e.internal.pageSize.getHeight();for(let l=1;l<=n;l++){e.setPage(l),e.setFontSize(8),e.setFont(t.font?.family??an,"normal"),e.setTextColor(148,163,184);let o=typeof u=="function"?u(l,n):`${l} / ${n}`;e.text(o,a-r,i-8,{align:"right"})}e.setTextColor(Ie[0],Ie[1],Ie[2])}var h0=400,p0=1e3;async function m0(e,t,u,r,n,a,i){let l=u.rows.length,o=Math.max(1,r.sliceRows||p0),d=n,h=0;for(;h<l;){if(r.signal?.aborted)throw new gt;let c=Math.min(l,h+o);h>0&&e.addPage(),d=on(e,t,u,r,h===0?n:i,a,{from:h,to:c,withTotals:c>=l}),h=c,r.onProgress?.(h/l),h<l&&await new Promise(g=>setTimeout(g,0))}return d}async function g0(e,t={}){if(t.signal?.aborted)throw new gt;let{jsPDF:u,autoTable:r}=await n0(),n=t.margin??14,a=new u({orientation:t.orientation??"landscape",unit:"mm",format:t.pageSize??"a4"}),i=t.font?l0(a,t.font):an;if(!t.font){let d=i0(e,t);if(d!==null){let h=d.codePointAt(0).toString(16).toUpperCase().padStart(4,"0");console.warn(`[datagrid] PDF export: "${d}" (U+${h}) cannot be drawn by the built-in PDF font and will come out as the wrong character. Pass \`font\` (a TrueType .ttf covering your language) in the PDF export options \u2014 see PdfExportOptions.font.`)}}d0(a,t.images);let l=n;l=jr(a,t.headerBlock,l,n,i),l=t.sliceRows!==0&&e.rows.length>h0?await m0(a,r,e,t,l+2,t.includeHeaders!==!1,n):on(a,r,e,t,l+2,t.includeHeaders!==!1);for(let d of t.additionalGrids??[]){if(t.signal?.aborted)throw new gt;l=f0(a,r,d,t,l,n)}if(t.onProgress?.(1),t.footerBlock?.length){let d=t.footerBlock.reduce((h,c)=>h+(c.fontSize??10)*.353+(c.spacing??2),4);l+d>a.internal.pageSize.getHeight()-n&&(a.addPage(),l=n),jr(a,t.footerBlock,l+4,n,i)}c0(a,t);let o=a.output("arraybuffer");return new Blob([o],{type:u0})}function f0(e,t,u,r,n,a){let i=n;return u.pageBreak?(e.addPage(),i=a):i+=8,u.title&&(i=jr(e,[{text:u.title,fontSize:12,fontStyle:"bold"}],i,a,r.font?.family??an)),on(e,t,u.model,r,i+2,u.includeHeaders!==!1)}function Li(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 ln(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,period:e.opInPeriod,periods:{today:e.periodToday,yesterday:e.periodYesterday,tomorrow:e.periodTomorrow,thisWeek:e.periodThisWeek,lastWeek:e.periodLastWeek,nextWeek:e.periodNextWeek,thisMonth:e.periodThisMonth,lastMonth:e.periodLastMonth,nextMonth:e.periodNextMonth,thisQuarter:e.periodThisQuarter,lastQuarter:e.periodLastQuarter,nextQuarter:e.periodNextQuarter,thisYear:e.periodThisYear,lastYear:e.periodLastYear,nextYear:e.periodNextYear,yearToDate:e.periodYearToDate,lastDays:e.periodLastDays,nextDays:e.periodNextDays},and:e.filterAnd.toLocaleLowerCase(),or:e.filterOr.toLocaleLowerCase(),blank:e.chartBlankCategory,listSeparator:", ",ofN:e.opValuesCount}}var C0=ln(Jt("en"));function Pi(e,t,u={}){if(!e)return null;let r={...C0,...u.labels},n=u.maxListValues??3,a=d=>{let h=t.getDef(d);return h?.headerName??h?.field??d},i=(d,h)=>{if(h==null||h==="")return r.blank;let c=ft(t.getDef(d),h);return c!==null?c:h instanceof Date?h.toLocaleDateString():String(h)},l=(d,h)=>{if(Qt(d)){let f=d.nodes.map(b=>l(b,h+1)).filter(Boolean);if(f.length===0)return"";let C=f.join(` ${r[d.logic]} `);return h>0&&f.length>1?`(${C})`:C}let c=a(d.columnId);if(d.operator==="period"){let f=d.value,C=f?r.periods[f.period]:void 0;return`${c}: ${C?C.replace("{n}",String(f?.days??"")):r.blank}`}let g=r[d.operator];switch(d.operator){case"isnull":case"isnotnull":return`${c} ${g}`;case"in":{let f=Array.isArray(d.value)?d.value:[d.value];return f.length>n?`${c} ${g} ${r.ofN.replace("{n}",String(f.length))}`:`${c} ${g} ${f.map(C=>i(d.columnId,C)).join(r.listSeparator)}`}case"between":{let[f,C]=Array.isArray(d.value)?d.value:[void 0,void 0];return`${c} ${g} ${i(d.columnId,f)} \u2013 ${i(d.columnId,C)}`}default:return`${c} ${g} ${i(d.columnId,d.value)}`}},o=l(e,0);return o===""?null:o}function y0(e,t,u,r,n){let a=e,i=a.findIndex(h=>n(h)===t);if(i<0)return{rows:a,moved:!1,fromIndex:-1,toIndex:-1};let l;if(u===null)l=a.length;else{let h=a.findIndex(c=>n(c)===u);if(h<0)return{rows:a,moved:!1,fromIndex:i,toIndex:-1};if(h===i)return{rows:a,moved:!1,fromIndex:i,toIndex:i};l=r==="before"?h:h+1}if(l>i&&(l-=1),l===i)return{rows:a,moved:!1,fromIndex:i,toIndex:i};let o=a.slice(),[d]=o.splice(i,1);return o.splice(l,0,d),{rows:o,moved:!0,fromIndex:i,toIndex:l}}var w0=["columnStateChanged","sortChanged","filterChanged","groupChanged","chartOpened","chartChanged","chartClosed","treeRowToggled"];function _a(e){try{return globalThis[e]??null}catch{return null}}function Gi(e,t){if(!t.enabled)return()=>{};let u=t.storageKey??`kanuni-datagrid-${e.gridId}`,r=t.type??"localStorage",n=t.saveDelay??500,a=!1,i=c=>{if(!(a||!c))try{e.applyViewState(c)}catch{}};if(r==="custom"){let c=null;try{c=t.customLoad?.()??null}catch{c=null}c&&typeof c.then=="function"?c.then(i,()=>{}):i(c)}else{let c=_a(r);if(c){let g=null,f=!0;try{g=c.getItem(u)}catch{f=!1}if(f&&g)try{i(JSON.parse(g))}catch{try{c.removeItem(u)}catch{}}}}let l,o=()=>{let c=e.getViewState();if(r==="custom"){try{Promise.resolve(t.customSave?.(c)).catch(()=>{})}catch{}return}let g=_a(r);if(g)try{g.setItem(u,JSON.stringify(c))}catch{}},d=()=>{l!==void 0&&clearTimeout(l),l=setTimeout(o,n)},h=w0.map(c=>e.events.on(c,d));return()=>{a=!0,h.forEach(c=>c()),l!==void 0&&(clearTimeout(l),l=void 0,o())}}var ja=150,Bu=40;function E0(e,t){return e.id?e.id:e.field?e.field:`col_${t}`}function Ut(e,t,u){let r=Math.max(e,t);return u!=null&&(r=Math.min(r,u)),r}var A0=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,a)=>{let i={...this.options.defaultColumnDef,...n},l=E0(i,a);if(r.has(l)){let o=`[datagrid] duplicate column id "${l}" \u2014 set an explicit \`id\` on one of the columns.`;this.options.debugMode?console.error(o):console.warn(o)}return r.add(l),i.id=l,i}),this.states=new Map,this.defsById=new Map,this.orderIds=[],this.defs.forEach((n,a)=>{let i=n.id;this.defsById.has(i)||this.defsById.set(i,n);let l=n.minWidth??Bu,o=t.get(i),d=u.get(i),h=c=>d!==void 0&&o!==void 0&&o[c]===n[c];this.states.set(i,{id:i,width:h("width")?Ut(d.width,l,n.maxWidth):Ut(n.width??ja,l,n.maxWidth),pinned:h("pin")?d.pinned:n.pin??null,visible:h("visible")?d.visible:n.visible!==!1,order:d!==void 0?d.order:a}),this.orderIds.push(i)}),this.orderIds.sort((n,a)=>(this.states.get(n)?.order??0)-(this.states.get(a)?.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??Bu;u.width=Ut(e.width??ja,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||cl(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(_t(e))}setBandCollapsed(e,t){if(e.length===0)return!1;let u=_t(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=_t(e),u=!1,r=!1;for(let n of this.orderIds){let a=this.getDef(n),i=this.states.get(n);if(!a||!i?.visible)continue;let l=He(a);l.length<e.length||_t(l.slice(0,e.length))===t&&(a.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=Ut(t,r.minWidth??Bu,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,a)=>{let i=this.states.get(n);i&&(i.order=a)}),this.version++}applyColumnStates(e){let t=e.filter(n=>this.states.has(n.id)).slice().sort((n,a)=>n.order-a.order);for(let n of t){let a=this.getDef(n.id),i=this.states.get(n.id);!a||!i||(i.width=Ut(n.width,a.minWidth??Bu,a.maxWidth),i.pinned=n.pinned,i.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,a)=>{let i=this.states.get(n);i&&(i.order=a)}),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 x0(e,t,u){let r=e.length,n=new Uint32Array(r),a=new Uint32Array(r),i=0,l=0;for(let F=0;F<r;F++){let R=e[F];Number.isNaN(t[R])?a[l++]=R:n[i++]=R}let o=new Uint32Array(i),d=new Uint32Array(i),h=new Float64Array(1),c=new Uint32Array(h.buffer);for(let F=0;F<i;F++){let R=t[n[F]];h[0]=R===0?0:R;let I=c[0],V=c[1];V&2147483648?(I=~I>>>0,V=~V>>>0):V=(V^2147483648)>>>0,u&&(I=~I>>>0,V=~V>>>0),o[F]=I,d[F]=V}let g=new Uint32Array(i);for(let F=0;F<i;F++)g[F]=F;let f=new Uint32Array(i),C=new Uint32Array(256);for(let F=0;F<8;F++){let R=F>=4,I=(F&3)*8,V=R?d:o;C.fill(0);for(let G=0;G<i;G++)C[V[g[G]]>>>I&255]++;if(C[V[g[0]]>>>I&255]===i)continue;let $=0;for(let G=0;G<256;G++){let _=C[G];C[G]=$,$+=_}for(let G=0;G<i;G++){let _=g[G];f[C[V[_]>>>I&255]++]=_}let Y=g;g=f,f=Y}let b=new Uint32Array(r);for(let F=0;F<i;F++)b[F]=n[g[F]];for(let F=0;F<l;F++)b[i+F]=a[F];return b}var Ya=new Map;function b0(e){let t=Ya.get(e);return t||(t=new Intl.Collator(e,{numeric:!0,sensitivity:"base"}),Ya.set(e,t)),t}function Qa(e){return e==null||typeof e=="number"&&Number.isNaN(e)}function v0(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 F0(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 D0(e,t){for(let u of t)if(e.getDef(u.columnId)?.comparator)return!0;return!1}function S0(e,t,u,r){let n=e.length,a=r.columnId,i=r.direction==="desc"?-1:1,l=u.getDataType(a),o=u.getDef(a)?.comparator;if(o){let c=new Array(n),g=new Array(n);for(let f=0;f<n;f++){let C=t[e[f]];c[f]=u.getSortValue(C,a),g[f]=C}return{dir:i,numeric:null,strings:null,values:c,valueRows:g,comparator:o}}if(l==="string"||l==="lookup"){let c=new Array(n);for(let g=0;g<n;g++){let f=u.getSortValue(t[e[g]],a);c[g]=Qa(f)?null:String(f)}return{dir:i,numeric:null,strings:c,values:null,valueRows:null,comparator:null}}let d=new Float64Array(n),h=l==="date"?F0:v0;for(let c=0;c<n;c++){let g=u.getSortValue(t[e[c]],a);d[c]=Qa(g)?Number.NaN:h(g)}return{dir:i,numeric:d,strings:null,values:null,valueRows:null,comparator:null}}function B0(e,t){let u=e.length,r=[],n=new Map,a=new Int32Array(u);for(let o=0;o<u;o++){let d=e[o];if(d===null){a[o]=-1;continue}let h=n.get(d);h===void 0&&(h=r.length,r.push(d),n.set(d,h)),a[o]=h}let i=zl(r,t),l=new Float64Array(u);for(let o=0;o<u;o++)l[o]=a[o]===-1?Number.NaN:i[a[o]];return l}function k0(e,t,u,r,n={}){if(r.length===0)return e.slice();let a=b0(n.locale??"en"),i=r.map(c=>S0(e,t,u,c)),l=i.length,o=new Array(e.length),d=!0;for(let c=0;c<e.length;c++)o[c]=c,c>0&&e[c]<e[c-1]&&(d=!1);if(!i.some(c=>c.comparator!==null)&&d&&e.length>=5e4){let c=i.map(C=>C.numeric?C.numeric:B0(C.strings,a)),g=Uint32Array.from(o);for(let C=l-1;C>=0;C--)g=x0(g,c[C],i[C].dir===-1);let f=new Uint32Array(e.length);for(let C=0;C<g.length;C++)f[C]=e[g[C]];return f}o.sort((c,g)=>{for(let f=0;f<l;f++){let C=i[f];if(C.comparator){let b=C.values,F=C.valueRows,R=C.comparator(b[c],b[g],F[c],F[g],C.dir===-1);if(R!==0)return R*C.dir}else if(C.numeric){let b=C.numeric[c],F=C.numeric[g],R=Number.isNaN(b),I=Number.isNaN(F);if(R||I){if(R&&I)continue;return R?1:-1}if(b!==F)return(b<F?-1:1)*C.dir}else{let b=C.strings[c],F=C.strings[g];if(b===null||F===null){if(b===null&&F===null)continue;return b===null?1:-1}let R=a.compare(b,F);if(R!==0)return R*C.dir}}return e[c]-e[g]});let h=new Uint32Array(e.length);for(let c=0;c<o.length;c++)h[c]=e[o[c]];return h}var T0=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 Ri}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 i=0;i<u;i++)r[i]=i;let n=Kl(r,this.rows,e,t.filter,t.searchText,t.externalFilter),a=k0(n,this.rows,e,t.sort,{locale:this.locale});return{nodes:this.nodeCache.project(a,this.rows,this.keyGetter),visibleCount:a.length,totalCount:u}}async getRows(e,t){return this.compute(e,t)}},Oi='var Ue=/[\\u0130\\u0131]/,ve=/[\\u0130\\u0131]/g;function P(e){return Ue.test(e)?e.replace(ve,"i").toLowerCase():e.toLowerCase()}var M=-1;var ce=new WeakMap;function Be(e){let t=ce.get(e);if(t!==void 0)return t;let n=Oe(e);return ce.set(e,n),n}function Oe(e){let t=e.resolvedOptions();if(t.sensitivity!=="base"||t.numeric!==true||t.ignorePunctuation||t.usage!=="sort"||t.collation!=="default")return false;let n=[];for(let r=32;r<=126;r++)n.push(String.fromCharCode(r));n.sort(e.compare);for(let r=1;r<n.length;r++)if(e.compare(n[r-1],n[r])===0&&n[r-1].toLowerCase()!==n[r].toLowerCase())return false;for(let r of n)if(e.compare(r,"")===0)return false;return !(e.compare("01","1")!==0||e.compare("0","00")!==0||e.compare("a09z","a9z")!==0||e.compare("9","10")>=0)}function de(e){for(let t=0;t<e.length;t++){let n=e.charCodeAt(t);if(n<32||n>126)return false}return true}function _e(e,t){let n=0,r=0,o=e.length,f=t.length;for(;n<o&&r<f;){let s=e.charCodeAt(n),l=t.charCodeAt(r),a=s>=48&&s<=57,d=l>=48&&l<=57;if(a!==d)return true;if(a){for(;n<o&&e.charCodeAt(n)===48;)n++;for(;r<f&&t.charCodeAt(r)===48;)r++;let b=n,m=r;for(;n<o;){let N=e.charCodeAt(n);if(N<48||N>57)break;n++;}for(;r<f;){let N=t.charCodeAt(r);if(N<48||N>57)break;r++;}let k=n-b;if(k!==r-m)return true;for(let N=0;N<k;N++)if(e.charCodeAt(b+N)!==t.charCodeAt(m+N))return true}else {if(s>=65&&s<=90&&(s+=32),l>=65&&l<=90&&(l+=32),s!==l)return true;n++,r++;}}return n!==o||r!==f}function fe(e,t){let n=e.length,r=new Array(n);for(let b=0;b<n;b++)r[b]=b;r.sort((b,m)=>t.compare(e[b],e[m]));let o=new Int32Array(n);if(n===0)return o;let s=Be(t)?new Uint8Array(n):null,l=r[0],a=s?de(e[l])?1:2:0;s&&(s[l]=a);let d=0;o[l]=0;for(let b=1;b<n;b++){let m=r[b],k=e[l],N=e[m],y=0;s&&(y=s[m],y===0&&(y=de(N)?1:2,s[m]=y)),(a===1&&y===1&&_e(k,N)||t.compare(k,N)!==0)&&d++,o[m]=d,l=m,a=y;}return o}function me(e,t,n){let r=e.length,o=new Uint32Array(r),f=new Uint32Array(r),s=0,l=0;for(let i=0;i<r;i++){let C=e[i];Number.isNaN(t[C])?f[l++]=C:o[s++]=C;}let a=new Uint32Array(s),d=new Uint32Array(s),b=new Float64Array(1),m=new Uint32Array(b.buffer);for(let i=0;i<s;i++){let C=t[o[i]];b[0]=C===0?0:C;let g=m[0],p=m[1];p&2147483648?(g=~g>>>0,p=~p>>>0):p=(p^2147483648)>>>0,n&&(g=~g>>>0,p=~p>>>0),a[i]=g,d[i]=p;}let k=new Uint32Array(s);for(let i=0;i<s;i++)k[i]=i;let N=new Uint32Array(s),y=new Uint32Array(256);for(let i=0;i<8;i++){let C=i>=4,g=(i&3)*8,p=C?d:a;y.fill(0);for(let x=0;x<s;x++)y[p[k[x]]>>>g&255]++;if(y[p[k[0]]>>>g&255]===s)continue;let w=0;for(let x=0;x<256;x++){let E=y[x];y[x]=w,w+=E;}for(let x=0;x<s;x++){let E=k[x];N[y[p[E]>>>g&255]++]=E;}let D=k;k=N,N=D;}let I=new Uint32Array(r);for(let i=0;i<s;i++)I[i]=o[k[i]];for(let i=0;i<l;i++)I[s+i]=f[i];return I}function be(e){return e.nodes!==void 0}var ge=new Map;function Ve(e){let t=ge.get(e);return t||(t=new Intl.Collator(e,{numeric:true,sensitivity:"base"}),ge.set(e,t)),t}var he=new WeakMap;function qe(e,t,n){let r=he.get(e);r||(r=new Map,he.set(e,r));let o=r.get(n);return (!o||o.length!==t.length)&&(o=fe(t,Ve(n)),r.set(n,o)),o}var ye=new WeakMap;function Ce(e,t){let n=ye.get(e);if(!n)n=t.map(P),ye.set(e,n);else for(let r=n.length;r<t.length;r++)n.push(P(t[r]));return n}function R(e){if(e instanceof Date)return e.getTime();if(typeof e=="number")return e;if(typeof e=="boolean")return e?1:0;if(e==null)return Number.NaN;let t=Number(e);if(!Number.isNaN(t))return t;let n=Date.parse(String(e));return Number.isNaN(n)?Number.NaN:n}function Pe(e,t){let n=e.dictionary,r=new Uint8Array(n.length),o=false,f=t.operator;if(f==="isnull")return {mask:r,nilPasses:true};if(f==="isnotnull")return r.fill(1),{mask:r,nilPasses:false};let s=Ce(e,n),l=t.value==null?"":P(String(t.value));switch(f){case "=":case "<>":{let a=t.value===null||t.value===void 0;for(let d=0;d<n.length;d++){let b=a?false:Ge(n[d],t.value);r[d]=(f==="="?b:!b)?1:0;}o=f==="="?a:!a;break}case "contains":for(let a=0;a<n.length;a++)r[a]=s[a].includes(l)?1:0;break;case "notcontains":for(let a=0;a<n.length;a++)r[a]=s[a].includes(l)?0:1;o=true,l===""&&(o=false);break;case "startswith":for(let a=0;a<n.length;a++)r[a]=s[a].startsWith(l)?1:0;break;case "endswith":for(let a=0;a<n.length;a++)r[a]=s[a].endsWith(l)?1:0;break;case "in":{let a=We(t.value);for(let d=0;d<n.length;d++)r[d]=a.has(Y(n[d]))?1:0;break}case ">":case ">=":case "<":case "<=":{for(let a=0;a<n.length;a++){let d=Q(n[a],t.value);r[a]=f===">"&&d>0||f===">="&&d>=0||f==="<"&&d<0||f==="<="&&d<=0?1:0;}break}case "between":{if(!Array.isArray(t.value)||t.value.length<2)break;let[a,d]=t.value;for(let b=0;b<n.length;b++)r[b]=Q(n[b],a)>=0&&Q(n[b],d)<=0?1:0;break}default:r.fill(1),o=true;}return {mask:r,nilPasses:o}}function Y(e){if(e instanceof Date)return e.getTime();if(typeof e=="number")return e;if(typeof e=="boolean")return e?1:0;let t=Number(e);return Number.isNaN(t)?String(e).toLowerCase():t}function Ge(e,t){return Y(e)===Y(t)}function We(e){let t=new Set,n=Array.isArray(e)?e:[];for(let r of n){if(r==null)continue;let o=Y(r);typeof o=="number"&&Number.isNaN(o)||t.add(o);}return t}function ze(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 Ke(e){let t=J.get(e);return t||(t=ze(e.value),J.set(e,t)),t}function Q(e,t){let n=R(e),r=R(t);if(!Number.isNaN(n)&&!Number.isNaN(r))return n-r;let o=String(e).toLowerCase(),f=String(t).toLowerCase();return o<f?-1:o>f?1:0}function He(e,t){if(t.operator==="in")return !Number.isNaN(e)&&Ke(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?"":P(String(t.value)),f=r.toLowerCase();return t.operator==="contains"?f.includes(o):t.operator==="notcontains"?!f.includes(o):t.operator==="startswith"?f.startsWith(o):f.endsWith(o)}default:return true}}function Z(e,t,n){if(be(e))return e.nodes.length===0?true:e.logic==="or"?e.nodes.some(l=>Z(l,t,n)):e.nodes.every(l=>Z(l,t,n));let r=t.columns[e.columnId];if(!r)return true;if(r.kind==="numeric")return He(r.values[n],e);let o=ee.get(e),f=o??Pe(r,e);o||ee.set(e,f);let s=r.codes[n];return s===M?f.nilPasses:f.mask[s]===1}var ee=new WeakMap,Ye=65535;function te(e,t){ee=new WeakMap,J=new WeakMap;let{rowCount:n}=e,r=t.locale??"en",o=P(t.searchText.trim()),f=!!t.filter,s=o.length>0,l=[];if(s){let y=/^[0-9.+\\-einftya]*$/.test(o),I=(C,g,p)=>{let w=Ce(g,C),D=new Uint8Array(C.length),x=false;for(let E=0;E<w.length;E++)(w[E].includes(o)||p!==void 0&&p.has(C[E]))&&(D[E]=1,x=true);return x?D:null},i=new Map;if(t.searchLabelHits)for(let[C,g]of Object.entries(t.searchLabelHits))i.set(C,new Set(g));for(let C of t.searchColumns){let g=e.columns[C];if(!g)continue;let p=i.get(C);if(g.kind==="text"){let w=I(g.dictionary,g,p);w&&l.push({codes:g.codes,mask:w,values:null,numberHits:null,scanText:true});}else if(g.searchDictionary&&g.searchCodes){let w=I(g.searchDictionary,g,p);w&&l.push({codes:g.searchCodes,mask:w,values:null,numberHits:null,scanText:true});}else {let w=null;if(p)for(let D of p){let x=Number(D);Number.isNaN(x)||(w??=new Set).add(x);}(y||w)&&l.push({codes:null,mask:null,values:g.values,numberHits:w,scanText:y});}}}let a=t.onProgress,d=t.isCancelled,b={order:new Uint32Array(0),cancelled:true},m;if(!f&&!s){m=new Uint32Array(n);for(let y=0;y<n;y++)m[y]=y;}else {let y=new Uint32Array(n),I=0;for(let i=0;i<n;i++){if((i&Ye)===0){if(d?.())return b;a?.("filtering",n===0?1:i/n);}if(!(f&&!Z(t.filter,e,i))){if(s){let C=false;for(let g of l)if(g.codes&&g.mask){let p=g.codes[i];if(p!==M&&g.mask[p]===1){C=true;break}}else if(g.values){let p=g.values[i];if(!Number.isNaN(p)){if(g.numberHits!==null&&g.numberHits.has(p)){C=true;break}if(g.scanText&&String(p).toLowerCase().includes(o)){C=true;break}}}if(!C)continue}y[I++]=i;}}m=y.subarray(0,I),a?.("filtering",1);}if(t.sort.length===0)return {order:m.slice()};if(d?.())return b;let k=[];for(let y of t.sort){let I=e.columns[y.columnId];if(!I)continue;let i=y.direction==="desc"?-1:1;I.kind==="numeric"?k.push({dir:i,numeric:I.values,codes:null,ranks:null}):k.push({dir:i,numeric:null,codes:I.codes,ranks:qe(I,I.dictionary,r)});}if(k.length===0)return {order:m.slice()};if(m.length>=5e4){let y=[];for(let i of k){if(i.numeric){y.push(i.numeric);continue}let C=i.codes,g=i.ranks,p=new Float64Array(n);for(let w=0;w<n;w++){let D=C[w];p[w]=D===M?Number.NaN:g[D];}y.push(p);}let I=m;for(let i=k.length-1;i>=0;i--){if(d?.())return b;a?.("sorting",(k.length-1-i)/k.length),I=me(I,y[i],k[i].dir===-1);}return a?.("sorting",1),{order:I===m?m.slice():I}}a?.("sorting",null);let N=Array.from(m);return N.sort((y,I)=>{for(let i of k)if(i.numeric){let C=i.numeric[y],g=i.numeric[I],p=Number.isNaN(C),w=Number.isNaN(g);if(p||w){if(p&&w)continue;return p?1:-1}if(C!==g)return (C<g?-1:1)*i.dir}else {let C=i.codes[y],g=i.codes[I];if(C===M||g===M){if(C===M&&g===M)continue;return C===M?1:-1}let p=i.ranks[C],w=i.ranks[g];if(p!==w)return (p<w?-1:1)*i.dir}return y-I}),{order:Uint32Array.from(N)}}var $e=30,pe="Other",Xe=1e4;var _=864e5,je=60,Qe=20,$=2e3,ne=["day","week","month","quarter","year"],Ne={day:_,week:7*_,month:30.44*_,quarter:91.31*_,year:365.25*_};function ke(e,t){let n=new Date(e),r=n.getUTCFullYear(),o=n.getUTCMonth();switch(t){case "day":return Date.UTC(r,o,n.getUTCDate());case "week":{let f=Date.UTC(r,o,n.getUTCDate()),s=(new Date(f).getUTCDay()+6)%7;return f-s*_}case "month":return Date.UTC(r,o,1);case "quarter":return Date.UTC(r,Math.floor(o/3)*3,1);default:return Date.UTC(r,0,1)}}function Ie(e,t){let n=new Date(e),r=n.getUTCFullYear(),o=n.getUTCMonth();switch(t){case "day":return e+_;case "week":return e+7*_;case "month":return Date.UTC(r,o+1,1);case "quarter":return Date.UTC(r,o+3,1);default:return Date.UTC(r+1,0,1)}}var re=e=>e<10?`0${e}`:String(e);function Je(e,t){let n=new Date(e),r=n.getUTCFullYear();switch(t){case "year":return String(r);case "quarter":return `${r}-Q${Math.floor(n.getUTCMonth()/3)+1}`;case "month":return `${r}-${re(n.getUTCMonth()+1)}`;default:return `${r}-${re(n.getUTCMonth()+1)}-${re(n.getUTCDate())}`}}function Ze(e){if(!(e>0)||!Number.isFinite(e))return 1;let n=10**Math.floor(Math.log10(e)),r=e/n;return (r<=1?1:r<=2?2:r<=5?5:10)*n}function et(e,t,n){let r=Number.isFinite(t)&&Number.isFinite(n)?Math.max(0,n-t):0;if(e.kind==="date"){let a=e.unit??"auto",d,b=false;if(a==="auto")d=ne.find(m=>r/Ne[m]+1<=je)??"year";else for(d=a;r/Ne[d]+1>$;){let m=ne[ne.indexOf(d)+1];if(!m)break;d=m,b=true;}return {info:{kind:"date",unit:d,adjusted:b},keyOf:m=>Number.isFinite(m)?ke(m,d):Number.NaN,endOf:m=>Ie(m,d),labelOf:m=>Je(m,d),keys:(m,k)=>{let N=[];if(!Number.isFinite(m)||!Number.isFinite(k))return N;for(let y=ke(m,d);y<=k&&N.length<$;y=Ie(y,d))N.push(y);return N}}}let o=e.size&&e.size>0?e.size:Ze(r/Math.max(1,e.bins??Qe));(!(o>0)||!Number.isFinite(o))&&(o=1);let f=false;for(;r/o+1>$;)o*=2,f=true;let s=o;return {info:{kind:"number",size:s,adjusted:f},keyOf:a=>Number.isFinite(a)?Math.floor(a/s)*s:Number.NaN,endOf:a=>a+s,labelOf:a=>{let d=b=>String(Number(b.toPrecision(12)));return `${d(a)} \\u2013 ${d(a+s)}`},keys:(a,d)=>{let b=[];if(!Number.isFinite(a)||!Number.isFinite(d))return b;let m=Math.floor(a/s)*s;for(let k=m;k<=d&&b.length<$;k+=s)b.push(k);return b}}}function tt(e,t){if(e==null)return Number.NaN;if(e instanceof Date)return e.getTime();if(typeof e=="number")return e;if(t==="number")return Number(e);let n=Number(e);return Number.isNaN(n)?Date.parse(String(e)):n}function nt(e,t){if(!e)return {};let n=new Float64Array(t.length),r=new Float64Array(t.length);for(let o=0;o<t.length;o++){let f=t[o].start;n[o]=f,r[o]=Number.isNaN(f)?Number.NaN:e.endOf(f);}return {bucket:e.info,bucketStarts:n,bucketEnds:r}}var K=-1;function we(e,t,n,r){let o=Math.max(1,n.maxCategories??$e),f=n.otherBucket!==false,s=n.series.length,l=e[n.categoryColumnId],a=n.series.map(u=>e[u.columnId]),d=n.series.map(u=>u.aggregate==="countDistinct"),b=new Map,m=null,k=0,N=false,y=(u,c=Number.NaN)=>({label:u,sum:new Float64Array(s),numericCount:new Float64Array(s),count:new Float64Array(s),min:new Float64Array(s).fill(Number.POSITIVE_INFINITY),max:new Float64Array(s).fill(Number.NEGATIVE_INFINITY),distinct:d.map(h=>h?new Set:null),seq:k++,start:c}),I=(u,c)=>{if(!l)return Number.NaN;if(l.kind==="numeric")return l.values[u];let h=l.codes[u];return h===K?Number.NaN:tt(l.dictionary[h],c)},i=n.categoryBucket,C=null,g=Number.POSITIVE_INFINITY,p=Number.NEGATIVE_INFINITY;if(i){for(let u=0;u<t.length;u++){let c=I(t[u],i.kind);Number.isFinite(c)&&(c<g&&(g=c),c>p&&(p=c));}C=et(i,g,p);}let w=0,D=1,x=2,E=new Uint8Array(s),ae=new Array(s).fill(null),se=new Array(s).fill(null),ie=new Array(s).fill(null);for(let u=0;u<s;u++){let c=n.series[u].aggregate;E[u]=c==="count"?w:d[u]?D:x;let h=a[u];if(!h)continue;if(h.kind==="numeric"){ae[u]=h.values;continue}se[u]=h.codes;let T=h.dictionary,F=new Float64Array(T.length);for(let S=0;S<T.length;S++){let A=T[S],z=A===""?Number.NaN:Number(A);F[S]=Number.isFinite(z)?z:Number.NaN;}ie[u]=F;}for(let u=0;u<t.length;u++){let c=t[u],h,T,F=Number.NaN;if(C&&i)F=C.keyOf(I(c,i.kind)),h=Number.isNaN(F)?"":F,T=Number.isNaN(F)?"":C.labelOf(F);else if(!l)h=T="";else if(l.kind==="text"){let A=l.codes[c];h=T=A===K?"":l.dictionary[A];}else {let A=l.values[c];h=T=Number.isNaN(A)?"":String(A);}let S=b.get(h);S||(b.size>=Xe?(N=true,m??=y(n.otherLabel??pe),S=m):(S=y(T,F),b.set(h,S)));for(let A=0;A<s;A++){let z=E[A],L=ae[A],V=se[A];if(z===w){(L!==null?!Number.isNaN(L[c]):V!==null&&V[c]!==K)&&S.count[A]++;continue}if(z===D){let q=S.distinct[A];if(q)if(V!==null){let le=V[c];le!==K&&q.add(le);}else L!==null&&!Number.isNaN(L[c])&&q.add(L[c]);continue}let O;if(L!==null)O=L[c];else if(V!==null){let q=V[c];O=q===K?Number.NaN:ie[A][q];}else O=Number.NaN;Number.isNaN(O)||(S.numericCount[A]++,S.sum[A]+=O,O<S.min[A]&&(S.min[A]=O),O>S.max[A]&&(S.max[A]=O));}}let Me=(u,c)=>{for(let h=0;h<s;h++){u.sum[h]+=c.sum[h],u.numericCount[h]+=c.numericCount[h],u.count[h]+=c.count[h],c.min[h]<u.min[h]&&(u.min[h]=c.min[h]),c.max[h]>u.max[h]&&(u.max[h]=c.max[h]);let T=u.distinct[h],F=c.distinct[h];if(T&&F)for(let S of F)T.add(S);}},ue=(u,c)=>{switch(n.series[c].aggregate){case "count":return u.count[c];case "countDistinct":return u.distinct[c]?.size??0;case "sum":return u.numericCount[c]>0?u.sum[c]:Number.NaN;case "avg":return u.numericCount[c]>0?u.sum[c]/u.numericCount[c]:Number.NaN;case "min":return u.numericCount[c]>0?u.min[c]:Number.NaN;case "max":return u.numericCount[c]>0?u.max[c]:Number.NaN;default:return Number.NaN}},W=[...b.values()],Re=W.length+(m?1:0),H=u=>{if(s===0)return Number.NEGATIVE_INFINITY;let c=ue(u,0);return Number.isNaN(c)?Number.NEGATIVE_INFINITY:c},v;if(C){v=C.keys(g,p).map(c=>b.get(c)??y(C.labelOf(c),c));let u=b.get("");u&&v.push(u);}else {let u=W;if(W.length>o){let c=[...W].sort((h,T)=>H(T)-H(h));if(u=c.slice(0,o),f){m??=y(n.otherLabel??pe);for(let h of c.slice(o))Me(m,h);}}switch(n.categoryOrder??"value-desc"){case "category-asc":u=[...u].sort((c,h)=>c.label.localeCompare(h.label));break;case "first-seen":u=[...u].sort((c,h)=>c.seq-h.seq);break;default:u=[...u].sort((c,h)=>H(h)-H(c));}v=m?[...u,m]:u;}return {categories:v.map(u=>u.label),series:n.series.map((u,c)=>{let h=new Float64Array(v.length);for(let T=0;T<v.length;T++)h[T]=ue(v[T],c);return {label:u.label??r.series[c]??u.columnId,columnId:u.columnId,aggregate:u.aggregate,values:h}}),truncated:C?false:W.length>o||N,otherIndex:C?null:m?v.length-1:null,rowCount:t.length,categoryCount:C?v.length:Re,rankingExact:!N,...nt(C,v)}}function xe(){let e=new WeakMap;return {get(t){let n=e.get(t);if(n===void 0){n=new Map;let r=t.kind==="text"?t.dictionary:t.searchDictionary??[];for(let o=0;o<r.length;o++)n.set(r[o],o);e.set(t,n);}return n}}}function Ae(e,t,n){let r=n.get(e);return r===void 0&&(r=t.length,t.push(e),n.set(e,r)),r}function Te(e,t,n){for(let r of t){let o=e[r.columnId];if(!o)continue;let{indices:f}=r;if(o.kind==="numeric"){let s=r.numbers??[];for(let l=0;l<f.length;l++)o.values[f[l]]=s[l];if(o.searchCodes&&o.searchDictionary&&r.labels){let l=n.get(o);for(let a=0;a<f.length;a++){let d=r.labels[a];o.searchCodes[f[a]]=d===null?M:Ae(d,o.searchDictionary,l);}}}else {let s=r.labels??[],l=n.get(o);for(let a=0;a<f.length;a++){let d=s[a];o.codes[f[a]]=d===null?M:Ae(d,o.dictionary,l);}}}}var Se=self,G=new Map;function U(e,t){Se.postMessage(e,t??[]);}function Ee(e,t){for(let n of e)if(n.kind==="numeric"){let r={kind:"numeric",values:new Float64Array(n.buffer)};n.searchBuffer&&n.searchDictionary&&(r.searchCodes=new Int32Array(n.searchBuffer),r.searchDictionary=n.searchDictionary),t[n.columnId]=r;}else t[n.columnId]={kind:"text",codes:new Int32Array(n.buffer),dictionary:n.dictionary??[]};}function rt(e){let t={};Ee(e.columns,t),G.set(e.gridId,{dataVersion:e.dataVersion,table:{rowCount:e.rowCount,columns:t}}),U({action:"ready",gridId:e.gridId,dataVersion:e.dataVersion});}function ot(e){let t=G.get(e.gridId);!t||t.dataVersion!==e.dataVersion||(Ee(e.columns,t.table.columns),U({action:"ready",gridId:e.gridId,dataVersion:e.dataVersion}));}var B=new Set,j=(e,t)=>`${e}:${t}`,X=new Map,oe=new Map;function De(e,t){t>(X.get(e)??0)&&X.set(e,t);}function Fe(e,t){let n=j(e,t);return ()=>B.has(n)||t<=(oe.get(e)??0)}function at(e){De(e.gridId,e.requestId);let t=G.get(e.gridId);if(!t||t.dataVersion!==e.dataVersion)return;let n=j(e.gridId,e.requestId),r=Fe(e.gridId,e.requestId);if(r()){B.delete(n),U({action:"cancelled",gridId:e.gridId,requestId:e.requestId});return}try{let{order:o,cancelled:f}=te(t.table,{sort:e.sort,filter:e.filter,searchText:e.searchText,searchColumns:e.searchColumns,searchLabelHits:e.searchLabelHits,locale:e.locale,onProgress:(s,l)=>U({action:"progress",gridId:e.gridId,dataVersion:e.dataVersion,requestId:e.requestId,phase:s,fraction:l}),isCancelled:r});if(f){B.delete(n),U({action:"cancelled",gridId:e.gridId,requestId:e.requestId});return}U({action:"result",gridId:e.gridId,dataVersion:e.dataVersion,requestId:e.requestId,order:o.buffer,visibleCount:o.length},[o.buffer]),B.delete(n);}catch(o){U({action:"error",gridId:e.gridId,requestId:e.requestId,message:o instanceof Error?o.message:String(o)});}}function st(e){De(e.gridId,e.requestId);let t=G.get(e.gridId);if(!t||t.dataVersion!==e.dataVersion)return;let n=j(e.gridId,e.requestId),r=Fe(e.gridId,e.requestId);if(r()){B.delete(n),U({action:"cancelled",gridId:e.gridId,requestId:e.requestId});return}try{let{order:o,cancelled:f}=te(t.table,{sort:[],filter:e.filter,searchText:e.searchText,searchColumns:e.searchColumns,searchLabelHits:e.searchLabelHits,locale:e.locale,isCancelled:r});if(f){B.delete(n),U({action:"cancelled",gridId:e.gridId,requestId:e.requestId});return}let s={categoryColumnId:e.categoryColumnId,series:e.series,maxCategories:e.maxCategories,otherBucket:e.otherBucket,categoryOrder:e.categoryOrder,categoryBucket:e.categoryBucket,otherLabel:e.otherLabel},l=we(t.table.columns,o,s,{series:e.series.map(N=>N.label??N.columnId)}),a=l.categories.length,d=new Float64Array(l.series.length*a);for(let N=0;N<l.series.length;N++)d.set(l.series[N].values,N*a);let b=l.bucketStarts,m=l.bucketEnds,k=[d.buffer];b&&m&&k.push(b.buffer,m.buffer),U({action:"aggregated",gridId:e.gridId,dataVersion:e.dataVersion,requestId:e.requestId,categories:l.categories,values:d.buffer,seriesLabels:l.series.map(N=>N.label),truncated:l.truncated,otherIndex:l.otherIndex,rowCount:l.rowCount,categoryCount:l.categoryCount,rankingExact:l.rankingExact,bucket:l.bucket,bucketStarts:b?.buffer,bucketEnds:m?.buffer},k),B.delete(n);}catch(o){U({action:"error",gridId:e.gridId,requestId:e.requestId,message:o instanceof Error?o.message:String(o)});}}var it=xe();function ut(e){let t=G.get(e.gridId);!t||t.dataVersion!==e.fromVersion||(Te(t.table.columns,e.patches,it),t.dataVersion=e.toVersion);}Se.onmessage=e=>{let t=e.data;switch(t.action){case "init":rt(t);break;case "addColumns":ot(t);break;case "patchRows":ut(t);break;case "compute":at(t);break;case "aggregate":st(t);break;case "cancel":t.requestId===void 0?oe.set(t.gridId,X.get(t.gridId)??0):B.add(j(t.gridId,t.requestId));break;case "dispose":G.delete(t.gridId),X.delete(t.gridId),oe.delete(t.gridId);for(let n of B)n.startsWith(`${t.gridId}:`)&&B.delete(n);break}};',ku=null;function N0(){return Oi.length>0}function R0(){if(ku)return ku;if(!N0())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 ku=URL.createObjectURL(new Blob([Oi],{type:"text/javascript"})),ku}var M0=2e4,Xa=!1;function I0(e,t){typeof process<"u"&&process.env&&!t||Xa&&!t||(Xa=!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
|
+
`+Es(t),...St(r),...Object.keys(n).length>0?{$defs:n}:{}}}var We=e=>typeof e=="object"&&e!==null&&!Array.isArray(e),Ka=e=>typeof e=="string"&&!Number.isNaN(Date.parse(e)),Gu=e=>{let t=typeof e=="number"?e:typeof e=="string"&&e.trim()!==""?Number(e):Number.NaN;return Number.isFinite(t)?t:null};function bs(e,t,u){let r=e.columnId,n=e.operator,a=typeof r=="string"?t.get(r):void 0,i=c=>(u.push(`filter on ${String(r)} (${String(n)}): ${c}`),null);if(!a)return i("no such column");if(!a.filterable)return i("the column cannot be filtered");let l=a.id,o=a.dataType,d=e.value;if(Vi.includes(n))return{columnId:l,operator:n};if(n==="in")return!Array.isArray(d)||d.length===0?i('"in" needs a non-empty list'):{columnId:l,operator:n,value:[...d]};if(o==="boolean"){if(n!=="=")return i('a yes/no column only takes "="');let c=d===!0||d==="true"?!0:d===!1||d==="false"?!1:null;return c===null?i("expected true or false"):{columnId:l,operator:n,value:c}}if(o==="number"){if(n==="between"){let g=Array.isArray(d)&&d.length===2?d.map(Gu):null;return!g||g[0]===null||g[1]===null?i("expected [min, max] numbers"):{columnId:l,operator:n,value:g}}if(!Uu.includes(n))return i("not an operator for numbers");let c=Gu(d);return c===null?i("expected a number"):{columnId:l,operator:n,value:c}}if(o==="date"){if(n==="period"){let c=We(d)?d:null,g=c?.period;if(!g||!Zt.includes(g))return i("unknown period");if(ys.includes(g)){let f=Gu(c.days);return f===null||f<1||!Number.isInteger(f)?i(`${g} needs a whole number of days`):{columnId:l,operator:n,value:{period:g,days:f}}}return{columnId:l,operator:n,value:{period:g}}}return n==="between"?!Array.isArray(d)||d.length!==2||!d.every(Ka)?i("expected [from, to] dates"):{columnId:l,operator:n,value:[d[0],d[1]]}:Uu.includes(n)?Ka(d)?{columnId:l,operator:n,value:d}:i("expected a YYYY-MM-DD date"):i("not an operator for dates")}if(!Oi.includes(n))return i("not an operator for text");if(d==null||typeof d=="object")return i("expected a value");let h=a.values?.find(c=>String(c.value)===String(d));return{columnId:l,operator:n,value:h&&(n==="="||n==="<>")?h.value:String(d)}}function zi(e,t,u,r){if(!We(e))return u.push("filter: a condition that is not an object"),null;if(Array.isArray(e.nodes)){if(r>8)return u.push("filter: groups nested more than 8 deep"),null;let n=e.logic==="or"?"or":"and";e.logic!=="and"&&e.logic!=="or"&&u.push('filter: a group without and/or, read as "and"');let a=e.nodes.map(i=>zi(i,t,u,r+1)).filter(i=>i!==null);return a.length===0?null:a.length===1?a[0]:{logic:n,nodes:a}}return bs(e,t,u)}function vs(e,t){let u=[],r=e;if(typeof r=="string")try{r=JSON.parse(r)}catch{return{state:{},dropped:["the answer is not valid JSON"]}}if(!We(r))return{state:{},dropped:["the answer is not an object"]};let{features:n}=t,a=new Map(t.columns.map(l=>[l.id,l])),i={};if(n.has("filter")&&"filter"in r&&(i.filter=r.filter===null?null:zi(r.filter,a,u,0)),n.has("sort")&&"sort"in r)if(!Array.isArray(r.sort))u.push("sort: not a list");else{let l=new Set;i.sort=[];for(let o of r.sort){let d=We(o)&&typeof o.columnId=="string"?a.get(o.columnId):void 0,h=We(o)?o.direction:void 0;!d||!d.sortable?u.push(`sort by ${We(o)?String(o.columnId):"?"}: not a sortable column`):h!=="asc"&&h!=="desc"?u.push(`sort by ${d.id}: direction must be asc or desc`):l.has(d.id)||(l.add(d.id),i.sort.push({columnId:d.id,direction:h}))}}if(n.has("grouping")&&"groupBy"in r)if(!Array.isArray(r.groupBy))u.push("groupBy: not a list");else{let l=[];for(let o of r.groupBy){let d=typeof o=="string"?a.get(o):void 0;!d||!d.groupable?u.push(`group by ${String(o)}: not a groupable column`):l.includes(d.id)||l.push(d.id)}i.groupBy=l}if((n.has("columnVisibility")||n.has("columnSizing")||n.has("columnPinning"))&&"columns"in r)if(!Array.isArray(r.columns))u.push("columns: not a list");else{let l=new Map;for(let o of r.columns){let d=We(o)&&typeof o.columnId=="string"?a.get(o.columnId):void 0;if(!d||!We(o)){u.push(`column ${We(o)?String(o.columnId):"?"}: no such column`);continue}let h={columnId:d.id};if(n.has("columnVisibility")&&"visible"in o&&(typeof o.visible=="boolean"?h.visible=o.visible:u.push(`column ${d.id}: visible must be true or false`)),n.has("columnSizing")&&o.width!==null&&o.width!==void 0){let c=Gu(o.width);c===null||c<=0?u.push(`column ${d.id}: width must be a positive number`):d.resizable?h.width=c:u.push(`column ${d.id}: cannot be resized`)}n.has("columnPinning")&&"pinned"in o&&(o.pinned==="left"||o.pinned==="right"||o.pinned===null?h.pinned=o.pinned:u.push(`column ${d.id}: pinned must be left, right or null`)),l.set(d.id,{...l.get(d.id),...h})}i.columns=[...l.values()]}return n.has("search")&&"searchText"in r&&(typeof r.searchText=="string"?i.searchText=r.searchText:r.searchText===null?i.searchText="":u.push("searchText: not text")),{state:i,dropped:u}}function Hi(e,t=new Set){if(Jt(e))for(let u of e.nodes)Hi(u,t);else t.add(e.columnId);return t}function Fs(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 Wi=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 a=0;a<e.length;a++){let i=e[a],l=r[i];if(l===void 0){let o=t[i];l=ke(o,u(o),i),r[i]=l}n[a]=l}return n}},Ds="\0nil";function Ss(e){return e.map(t=>t==null?Ds:String(t)).join("")}function $a(){return{key:"",path:[],level:-1,label:"",value:null,count:0,expanded:!0,childCount:0,childCountKnown:!1,blocks:new Map}}function Bs(e,t,u){return e.blocks.get(Math.floor(t/u))?.[t%u]}function qu(e,t,u){let r=u?.get(e);if(r!==void 0)return r;let n=e.childCountKnown?e.childCount:1;for(let a of e.blocks.values())for(let i of a)i&&Bt(i)&&i.expanded&&(n+=qu(i,t,u));return u?.set(e,n),n}function Bt(e){return e.kind!=="data"}function Ua(e,t){let{blockSize:u,columnIds:r}=t,n=new Map,a=qu(e,u,n),i=t.range?Math.max(0,t.range.start):0,l=t.range?Math.min(a,t.range.end):a,o=new Array(a),d=[],h=new Set,c=0,g=f=>{if(!f.childCountKnown){c>=i&&c<l&&!h.has(`${f.key}@0`)&&(h.add(`${f.key}@0`),d.push({nodeKey:f.key,path:f.path,childIndex:0})),c++;return}for(let w=0;w<f.childCount;w++){if(c>=l)return;let F=Bs(f,w,u);if(F===void 0){if(c>=i){let x=`${f.key}@${Math.floor(w/u)}`;h.has(x)||(h.add(x),d.push({nodeKey:f.key,path:f.path,childIndex:w}))}c++;continue}if(!Bt(F)){c>=i&&(o[c]=F),c++;continue}if(c>=i&&F.record)o[c]={kind:"data",key:F.record.key,sourceIndex:F.record.sourceIndex,data:F.record.data,tree:{depth:F.level,hasChildren:!0,expanded:F.expanded,ancestorOnly:!1}};else if(c>=i){let x={kind:"group",key:F.key,columnId:r[F.level]??"",value:F.value,label:F.label,count:F.count,level:F.level,expanded:F.expanded,...F.aggregates?{aggregates:F.aggregates}:{}};o[c]=x}if(c++,F.expanded){let x=qu(F,u,n);c+x<=i?c+=x:g(F)}}};return g(e),{nodes:o,pending:d}}var ks=class extends Error{constructor(){super("[datagrid] export cancelled"),this.name="ExportCancelled"}},Ts=100,Ns=100;function Rs(e,t){return JSON.stringify({sort:e.sort,filter:e.filter,searchText:e.searchText,group:t,summaries:e.summaries})}var qa=class{mode="remote";source;keyGetter;blockSize;maxBlocks;group;groupColumnIds;root=$a();expanded=new Set;onError;debugMode;tree;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??Ts),this.maxBlocks=Math.max(1,t.maxBlocks??Ns),this.group=t.group,this.groupColumnIds=t.groupColumnIds??[],this.onError=t.onError,this.debugMode=t.debugMode??!1,this.tree=t.tree}isTree(){return this.tree!==void 0}syncTreeExpansion(e){for(let t of e.blocks.values())for(let u of t)u&&Bt(u)&&u.record&&(u.expanded=this.tree.isExpanded(u.record.key),this.syncTreeExpansion(u))}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&&Bt(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&&Bt(r)){let n=this.findNode(e,r);if(n)return n}return null}resetTree(){this.root=$a()}async loadAllRows(e,t){if(this.isGrouped()||this.isTree())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 ks;let a=await this.source.load({skip:u.length,take:r,sort:e.sort,filter:e.filter,searchText:e.searchText});if(n=a.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(a.rows.length===0)break;for(let i of a.rows)u.push(ke(i,this.keyGetter(i),u.length));t.onProgress?.(u.length,n)}return u}patchRows(e){if(e.length===0)return 0;let t=new Map;for(let a of e)t.set(this.keyGetter(a),a);let u=0,r=a=>{for(let i=0;i<a.length;i++){let l=a[i];if(!l)continue;let o=t.get(l.key);o!==void 0&&(a[i]=ke(o,l.key,l.sourceIndex),u++)}};for(let a of this.blocks.values())r(a.nodes);let n=a=>{for(let i of a.blocks.values())for(let l=0;l<i.length;l++){let o=i[l];if(!o)continue;if(Bt(o)){n(o);continue}let d=t.get(o.key);d!==void 0&&(i[l]=ke(d,o.key,o.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 a=this.distinctInFlight.get(r);if(a)return a;let i=this.generation,l=u.call(this.source,{columnId:e,limit:t}).then(o=>(!this.disposed&&i===this.generation&&this.distinctCache.set(r,o),o)).catch(o=>(this.onError?.(o),this.debugMode&&console.error("[datagrid] loadDistinctValues failed",o),[])).finally(()=>{this.distinctInFlight.delete(r)});return this.distinctInFlight.set(r,l),l}async getRows(e,t){let u=Rs(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()||this.isTree())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)),a=Math.max(n,Math.floor(Math.max(0,r.end-1)/this.blockSize)),i=[];for(let l=n;l<=a;l++)this.blocks.has(l)?this.blocks.get(l).touched=++this.clock:i.push(l);return i.length>0&&await Promise.all(i.map(l=>this.fetchBlock(l,t))),this.snapshot()}async getGroupedRows(e){let t=e.range,u=this.tree?64:(this.group?.length??0)+2,r=this.generation;for(let i=0;i<u&&!(this.disposed||r!==this.generation);i++){if(this.tree&&this.syncTreeExpansion(this.root),!this.root.childCountKnown){if(await this.loadChildren(this.root,0,e),!this.root.childCountKnown)break;continue}let{pending:l}=Ua(this.root,{blockSize:this.blockSize,columnIds:this.groupColumnIds,range:t});if(l.length===0)break;await Promise.all(l.map(o=>{let d=this.findNode(o.nodeKey);return d?this.loadChildren(d,o.childIndex,e):Promise.resolve()}))}this.tree&&this.syncTreeExpansion(this.root);let{nodes:n}=Ua(this.root,{blockSize:this.blockSize,columnIds:this.groupColumnIds,range:t}),a=qu(this.root,this.blockSize);return this.visibleCount=a,{nodes:n,visibleCount:a,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}`,a=this.treeInFlight.get(n);if(a)return a;let i=this.loadChildrenBlock(e,r,u).finally(()=>{this.treeInFlight.get(n)===i&&this.treeInFlight.delete(n)});return this.treeInFlight.set(n,i),i}async loadChildrenBlock(e,t,u){let r=this.generation,n=this.group?.length??0,a=e.path.length>=n,i=this.tree?{skip:t*this.blockSize,take:this.blockSize,sort:u.sort,filter:u.filter,searchText:u.searchText,parentKey:e.record?e.record.key:null,...e===this.root?{summaries:u.summaries}:{}}:{skip:t*this.blockSize,take:this.blockSize,sort:u.sort,filter:u.filter,searchText:u.searchText,group:this.group,groupKeys:[...e.path],...e.path.length===0?{summaries:u.summaries}:{}};try{let l=await this.source.load(i);if(this.disposed||r!==this.generation)return;l.summaries&&(this.summaries=l.summaries);let o=t*this.blockSize,d=this.tree?l.rows.map((h,c)=>this.treeChild(e,h,o+c)):a?l.rows.map((h,c)=>ke(h,this.keyGetter(h),o+c)):(l.groups??[]).map(h=>{let c=[...e.path,h.value],g=Ss(c);return{key:g,path:c,level:e.level+1,label:h.label??(h.value==null?"":String(h.value)),value:h.value,count:h.count,...h.aggregates?{aggregates:h.aggregates}:{},expanded:this.expanded.has(g),childCount:0,childCountKnown:!1,blocks:new Map}});e.blocks.set(t,d),e.childCount=l.totalCount,e.childCountKnown=!0,e===this.root&&(this.totalCount=l.totalCount,this.countKnown=!0)}catch(l){this.debugMode&&console.error("[datagrid] remote group load failed",e.key,l),this.onError?.(l)}}treeChild(e,t,u){let r=this.keyGetter(t),n=e.level+1;return this.tree.hasChildren(t)?{key:String(r),path:[...e.path,r],level:n,label:"",value:r,count:0,expanded:this.tree.isExpanded(r),childCount:0,childCountKnown:!1,blocks:new Map,record:{key:r,data:t,sourceIndex:u}}:{...ke(t,r,u),tree:{depth:n,hasChildren:!1,expanded:!1,ancestorOnly:!1}}}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 a=r+n;a<this.visibleCount&&(e[a]=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 a=e*this.blockSize,i=n.rows.map((l,o)=>ke(l,this.keyGetter(l),a+o));this.blocks.set(e,{nodes:i,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 Ms=e=>`__detail__${String(e)}`;function Is(e,t){let{expandedKeys:u,expandedByDefault:r=!1}=t,n=Math.max(1,t.height);if(!r&&u.size===0)return e;let a=r?e.length:u.size,i=new Array(e.length+a),l=0;for(let o of e)i[l++]=o,!(o.kind!=="data"||!(r?!u.has(o.key):u.has(o.key)))&&(i[l++]={kind:"detail",key:Ms(o.key),parentKey:o.key,data:o.data,height:n});return i.length=l,i}var _a=e=>e===null?"__editform__new":`__editform__${String(e)}`;function Ls(e,t){let{rowKey:u,atTop:r=!1}=t;if(u===null)return e;let n=Math.max(1,t.height),a=e.findIndex(o=>o.kind==="data"&&o.key===u);if(r)return[{kind:"editform",key:_a(u),parentKey:u,data:a<0?void 0:e[a].data,height:n},...e];if(a<0)return e;let i={kind:"editform",key:_a(u),parentKey:u,data:e[a].data,height:n},l=new Array(e.length+1);for(let o=0;o<=a;o++)l[o]=e[o];l[a+1]=i;for(let o=a+1;o<e.length;o++)l[o+1]=e[o];return l}var Ps=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=ja(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=ja(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=Gs(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],a=this.overrides.get(n);this.size[r]=a,this.top[r]=n*this.base+u,u+=a-this.base,this.cum[r]=u}}};function ja(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 Gs(e,t){let u=0,r=e.length-1,n=-1;for(;u<=r;){let a=u+r>>>1;e[a]<=t?(n=a,u=a+1):r=a-1}return n}var hn={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",opInPeriod:"is in",periodToday:"today",periodYesterday:"yesterday",periodTomorrow:"tomorrow",periodThisWeek:"this week",periodLastWeek:"last week",periodNextWeek:"next week",periodThisMonth:"this month",periodLastMonth:"last month",periodNextMonth:"next month",periodThisQuarter:"this quarter",periodLastQuarter:"last quarter",periodNextQuarter:"next quarter",periodThisYear:"this year",periodLastYear:"last year",periodNextYear:"next year",periodYearToDate:"year to date",periodLastDays:"the last {n} days",periodNextDays:"the next {n} days",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}",selectGroupAria:"Select the {count} rows of {group}",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",chartStacking:"Series layout",chartStackGrouped:"Grouped",chartStackStacked:"Stacked",chartStackNormalized:"100% stacked",chartFormat:"Format",chartFormatTitle:"Title",chartFormatCategoryAxis:"Category axis title",chartFormatValueAxis:"Value axis title",chartFormatLegend:"Legend",chartLegendTop:"Top",chartLegendBottom:"Bottom",chartLegendLeft:"Left",chartLegendRight:"Right",chartLegendNone:"Hidden",chartFormatDataLabels:"Data labels",chartFormatScale:"Value scale",chartScaleLinear:"Linear",chartScaleLog:"Logarithmic",sparklineSummary:"{count} values from {min} to {max}, ending at {last}",chartTypeWaterfall:"Waterfall",chartTypeFunnel:"Funnel",chartTypeTreemap:"Treemap",chartTypeHeatmap:"Heatmap",chartTypeBox:"Box plot",chartTypeRadar:"Radar",chartTypeRangeBar:"Range",chartBoxQ1:"Q1",chartBoxMedian:"Median",chartBoxQ3:"Q3",chartBoxOutlier:"Outlier",chartTotal:"Total",chartTypeScatter:"Scatter",chartTypeBubble:"Bubble",chartXAxis:"X axis",chartBubbleSize:"Size",chartXYSampled:"{shown} of {total} points, sampled evenly",licenseMissing:"Unlicensed",licenseExpired:"License expired",licenseReleaseNotCovered:"This version is not covered by the license",licenseDomainMismatch:"License not valid for this domain",licenseRevoked:"License revoked",licenseInvalidFormat:"Malformed license key",licenseInvalidSignature:"Invalid license signature",licenseEngineUnavailable:"Browser cannot verify the license (HTTPS required)"},Os={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",opInPeriod:"d\xF6nem i\xE7inde",periodToday:"bug\xFCn",periodYesterday:"d\xFCn",periodTomorrow:"yar\u0131n",periodThisWeek:"bu hafta",periodLastWeek:"ge\xE7en hafta",periodNextWeek:"gelecek hafta",periodThisMonth:"bu ay",periodLastMonth:"ge\xE7en ay",periodNextMonth:"gelecek ay",periodThisQuarter:"bu \xE7eyrek",periodLastQuarter:"ge\xE7en \xE7eyrek",periodNextQuarter:"gelecek \xE7eyrek",periodThisYear:"bu y\u0131l",periodLastYear:"ge\xE7en y\u0131l",periodNextYear:"gelecek y\u0131l",periodYearToDate:"y\u0131lba\u015F\u0131ndan bug\xFCne",periodLastDays:"son {n} g\xFCn",periodNextDays:"\xF6n\xFCm\xFCzdeki {n} g\xFCn",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",selectGroupAria:"{group} grubundaki {count} 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",chartStacking:"Seri yerle\u015Fimi",chartStackGrouped:"Yan yana",chartStackStacked:"Y\u0131\u011F\u0131lm\u0131\u015F",chartStackNormalized:"%100 y\u0131\u011F\u0131lm\u0131\u015F",chartFormat:"Bi\xE7im",chartFormatTitle:"Ba\u015Fl\u0131k",chartFormatCategoryAxis:"Kategori ekseni ba\u015Fl\u0131\u011F\u0131",chartFormatValueAxis:"De\u011Fer ekseni ba\u015Fl\u0131\u011F\u0131",chartFormatLegend:"Lejant",chartLegendTop:"\xDCstte",chartLegendBottom:"Altta",chartLegendLeft:"Solda",chartLegendRight:"Sa\u011Fda",chartLegendNone:"Gizli",chartFormatDataLabels:"Veri etiketleri",chartFormatScale:"De\u011Fer \xF6l\xE7e\u011Fi",chartScaleLinear:"Do\u011Frusal",chartScaleLog:"Logaritmik",sparklineSummary:"{count} de\u011Fer, {min} ile {max} aras\u0131, son de\u011Fer {last}",chartTypeWaterfall:"\u015Eelale",chartTypeFunnel:"Huni",chartTypeTreemap:"A\u011Fa\xE7 haritas\u0131",chartTypeHeatmap:"Is\u0131 haritas\u0131",chartTypeBox:"Kutu grafi\u011Fi",chartTypeRadar:"Radar",chartTypeRangeBar:"Aral\u0131k",chartBoxQ1:"\xC71",chartBoxMedian:"Ortanca",chartBoxQ3:"\xC73",chartBoxOutlier:"Ayk\u0131r\u0131 de\u011Fer",chartTotal:"Toplam",chartTypeScatter:"Da\u011F\u0131l\u0131m",chartTypeBubble:"Kabarc\u0131k",chartXAxis:"X ekseni",chartBubbleSize:"Boyut",chartXYSampled:"{total} noktan\u0131n {shown} tanesi, e\u015Fit aral\u0131kla \xF6rneklendi",licenseMissing:"Lisanss\u0131z",licenseExpired:"Lisans\u0131n s\xFCresi dolmu\u015F",licenseReleaseNotCovered:"Bu s\xFCr\xFCm lisans kapsam\u0131nda de\u011Fil",licenseDomainMismatch:"Lisans bu alan ad\u0131 i\xE7in ge\xE7erli de\u011Fil",licenseRevoked:"Lisans iptal edilmi\u015F",licenseInvalidFormat:"Lisans anahtar\u0131 hatal\u0131",licenseInvalidSignature:"Lisans imzas\u0131 ge\xE7ersiz",licenseEngineUnavailable:"Taray\u0131c\u0131 lisans\u0131 do\u011Frulayam\u0131yor (HTTPS gerekli)"},Vs={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",opInPeriod:"liegt in",periodToday:"heute",periodYesterday:"gestern",periodTomorrow:"morgen",periodThisWeek:"diese Woche",periodLastWeek:"letzte Woche",periodNextWeek:"n\xE4chste Woche",periodThisMonth:"diesen Monat",periodLastMonth:"letzten Monat",periodNextMonth:"n\xE4chsten Monat",periodThisQuarter:"dieses Quartal",periodLastQuarter:"letztes Quartal",periodNextQuarter:"n\xE4chstes Quartal",periodThisYear:"dieses Jahr",periodLastYear:"letztes Jahr",periodNextYear:"n\xE4chstes Jahr",periodYearToDate:"seit Jahresbeginn",periodLastDays:"die letzten {n} Tage",periodNextDays:"die n\xE4chsten {n} Tage",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",selectGroupAria:"Die {count} Zeilen von {group} 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",chartStacking:"Reihenanordnung",chartStackGrouped:"Gruppiert",chartStackStacked:"Gestapelt",chartStackNormalized:"Gestapelt 100 %",chartFormat:"Format",chartFormatTitle:"Titel",chartFormatCategoryAxis:"Titel der Kategorieachse",chartFormatValueAxis:"Titel der Werteachse",chartFormatLegend:"Legende",chartLegendTop:"Oben",chartLegendBottom:"Unten",chartLegendLeft:"Links",chartLegendRight:"Rechts",chartLegendNone:"Ausgeblendet",chartFormatDataLabels:"Datenbeschriftungen",chartFormatScale:"Werteskala",chartScaleLinear:"Linear",chartScaleLog:"Logarithmisch",sparklineSummary:"{count} Werte von {min} bis {max}, zuletzt {last}",chartTypeWaterfall:"Wasserfall",chartTypeFunnel:"Trichter",chartTypeTreemap:"Treemap",chartTypeHeatmap:"Heatmap",chartTypeBox:"Boxplot",chartTypeRadar:"Netz",chartTypeRangeBar:"Spanne",chartBoxQ1:"Q1",chartBoxMedian:"Median",chartBoxQ3:"Q3",chartBoxOutlier:"Ausrei\xDFer",chartTotal:"Gesamt",chartTypeScatter:"Punkt (XY)",chartTypeBubble:"Blase",chartXAxis:"X-Achse",chartBubbleSize:"Gr\xF6\xDFe",chartXYSampled:"{shown} von {total} Punkten, gleichm\xE4\xDFig ausgew\xE4hlt",licenseMissing:"Nicht lizenziert",licenseExpired:"Lizenz abgelaufen",licenseReleaseNotCovered:"Diese Version ist nicht durch die Lizenz abgedeckt",licenseDomainMismatch:"Lizenz gilt nicht f\xFCr diese Domain",licenseRevoked:"Lizenz widerrufen",licenseInvalidFormat:"Lizenzschl\xFCssel fehlerhaft",licenseInvalidSignature:"Ung\xFCltige Lizenzsignatur",licenseEngineUnavailable:"Browser kann die Lizenz nicht pr\xFCfen (HTTPS erforderlich)"},zs={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",opInPeriod:"est dans",periodToday:"aujourd'hui",periodYesterday:"hier",periodTomorrow:"demain",periodThisWeek:"cette semaine",periodLastWeek:"la semaine derni\xE8re",periodNextWeek:"la semaine prochaine",periodThisMonth:"ce mois-ci",periodLastMonth:"le mois dernier",periodNextMonth:"le mois prochain",periodThisQuarter:"ce trimestre",periodLastQuarter:"le trimestre dernier",periodNextQuarter:"le trimestre prochain",periodThisYear:"cette ann\xE9e",periodLastYear:"l'ann\xE9e derni\xE8re",periodNextYear:"l'ann\xE9e prochaine",periodYearToDate:"depuis le d\xE9but de l'ann\xE9e",periodLastDays:"les {n} derniers jours",periodNextDays:"les {n} prochains jours",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}",selectGroupAria:"S\xE9lectionner les {count} lignes de {group}",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",chartStacking:"Disposition des s\xE9ries",chartStackGrouped:"Group\xE9",chartStackStacked:"Empil\xE9",chartStackNormalized:"Empil\xE9 100 %",chartFormat:"Format",chartFormatTitle:"Titre",chartFormatCategoryAxis:"Titre de l\u2019axe des cat\xE9gories",chartFormatValueAxis:"Titre de l\u2019axe des valeurs",chartFormatLegend:"L\xE9gende",chartLegendTop:"En haut",chartLegendBottom:"En bas",chartLegendLeft:"\xC0 gauche",chartLegendRight:"\xC0 droite",chartLegendNone:"Masqu\xE9e",chartFormatDataLabels:"\xC9tiquettes de donn\xE9es",chartFormatScale:"\xC9chelle des valeurs",chartScaleLinear:"Lin\xE9aire",chartScaleLog:"Logarithmique",sparklineSummary:"{count} valeurs de {min} \xE0 {max}, derni\xE8re {last}",chartTypeWaterfall:"Cascade",chartTypeFunnel:"Entonnoir",chartTypeTreemap:"Compartimentage",chartTypeHeatmap:"Carte thermique",chartTypeBox:"Bo\xEEte \xE0 moustaches",chartTypeRadar:"Radar",chartTypeRangeBar:"Plage",chartBoxQ1:"Q1",chartBoxMedian:"M\xE9diane",chartBoxQ3:"Q3",chartBoxOutlier:"Valeur aberrante",chartTotal:"Total",chartTypeScatter:"Nuage de points",chartTypeBubble:"Bulles",chartXAxis:"Axe X",chartBubbleSize:"Taille",chartXYSampled:"{shown} points sur {total}, \xE9chantillonn\xE9s r\xE9guli\xE8rement",licenseMissing:"Sans licence",licenseExpired:"Licence expir\xE9e",licenseReleaseNotCovered:"Cette version n\u2019est pas couverte par la licence",licenseDomainMismatch:"Licence non valide pour ce domaine",licenseRevoked:"Licence r\xE9voqu\xE9e",licenseInvalidFormat:"Cl\xE9 de licence mal form\xE9e",licenseInvalidSignature:"Signature de licence invalide",licenseEngineUnavailable:"Le navigateur ne peut pas v\xE9rifier la licence (HTTPS requis)"},Hs={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",opInPeriod:"est\xE1 en",periodToday:"hoy",periodYesterday:"ayer",periodTomorrow:"ma\xF1ana",periodThisWeek:"esta semana",periodLastWeek:"la semana pasada",periodNextWeek:"la pr\xF3xima semana",periodThisMonth:"este mes",periodLastMonth:"el mes pasado",periodNextMonth:"el pr\xF3ximo mes",periodThisQuarter:"este trimestre",periodLastQuarter:"el trimestre pasado",periodNextQuarter:"el pr\xF3ximo trimestre",periodThisYear:"este a\xF1o",periodLastYear:"el a\xF1o pasado",periodNextYear:"el pr\xF3ximo a\xF1o",periodYearToDate:"en lo que va de a\xF1o",periodLastDays:"los \xFAltimos {n} d\xEDas",periodNextDays:"los pr\xF3ximos {n} d\xEDas",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}",selectGroupAria:"Seleccionar las {count} filas de {group}",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",chartStacking:"Disposici\xF3n de series",chartStackGrouped:"Agrupado",chartStackStacked:"Apilado",chartStackNormalized:"Apilado 100 %",chartFormat:"Formato",chartFormatTitle:"T\xEDtulo",chartFormatCategoryAxis:"T\xEDtulo del eje de categor\xEDas",chartFormatValueAxis:"T\xEDtulo del eje de valores",chartFormatLegend:"Leyenda",chartLegendTop:"Arriba",chartLegendBottom:"Abajo",chartLegendLeft:"Izquierda",chartLegendRight:"Derecha",chartLegendNone:"Oculta",chartFormatDataLabels:"Etiquetas de datos",chartFormatScale:"Escala de valores",chartScaleLinear:"Lineal",chartScaleLog:"Logar\xEDtmica",sparklineSummary:"{count} valores de {min} a {max}, \xFAltimo {last}",chartTypeWaterfall:"Cascada",chartTypeFunnel:"Embudo",chartTypeTreemap:"Mapa de \xE1rbol",chartTypeHeatmap:"Mapa de calor",chartTypeBox:"Diagrama de caja",chartTypeRadar:"Radar",chartTypeRangeBar:"Rango",chartBoxQ1:"Q1",chartBoxMedian:"Mediana",chartBoxQ3:"Q3",chartBoxOutlier:"Valor at\xEDpico",chartTotal:"Total",chartTypeScatter:"Dispersi\xF3n",chartTypeBubble:"Burbujas",chartXAxis:"Eje X",chartBubbleSize:"Tama\xF1o",chartXYSampled:"{shown} de {total} puntos, muestreados de forma uniforme",licenseMissing:"Sin licencia",licenseExpired:"Licencia caducada",licenseReleaseNotCovered:"Esta versi\xF3n no est\xE1 cubierta por la licencia",licenseDomainMismatch:"Licencia no v\xE1lida para este dominio",licenseRevoked:"Licencia revocada",licenseInvalidFormat:"Clave de licencia mal formada",licenseInvalidSignature:"Firma de licencia no v\xE1lida",licenseEngineUnavailable:"El navegador no puede verificar la licencia (se requiere HTTPS)"},Ws={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",opInPeriod:"\xE8 in",periodToday:"oggi",periodYesterday:"ieri",periodTomorrow:"domani",periodThisWeek:"questa settimana",periodLastWeek:"la settimana scorsa",periodNextWeek:"la prossima settimana",periodThisMonth:"questo mese",periodLastMonth:"il mese scorso",periodNextMonth:"il prossimo mese",periodThisQuarter:"questo trimestre",periodLastQuarter:"il trimestre scorso",periodNextQuarter:"il prossimo trimestre",periodThisYear:"quest'anno",periodLastYear:"l'anno scorso",periodNextYear:"l'anno prossimo",periodYearToDate:"da inizio anno",periodLastDays:"gli ultimi {n} giorni",periodNextDays:"i prossimi {n} giorni",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}",selectGroupAria:"Seleziona le {count} righe di {group}",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",chartStacking:"Disposizione serie",chartStackGrouped:"Raggruppato",chartStackStacked:"In pila",chartStackNormalized:"In pila 100%",chartFormat:"Formato",chartFormatTitle:"Titolo",chartFormatCategoryAxis:"Titolo asse categorie",chartFormatValueAxis:"Titolo asse valori",chartFormatLegend:"Legenda",chartLegendTop:"In alto",chartLegendBottom:"In basso",chartLegendLeft:"A sinistra",chartLegendRight:"A destra",chartLegendNone:"Nascosta",chartFormatDataLabels:"Etichette dati",chartFormatScale:"Scala dei valori",chartScaleLinear:"Lineare",chartScaleLog:"Logaritmica",sparklineSummary:"{count} valori da {min} a {max}, ultimo {last}",chartTypeWaterfall:"Cascata",chartTypeFunnel:"Imbuto",chartTypeTreemap:"Treemap",chartTypeHeatmap:"Mappa di calore",chartTypeBox:"Box plot",chartTypeRadar:"Radar",chartTypeRangeBar:"Intervallo",chartBoxQ1:"Q1",chartBoxMedian:"Mediana",chartBoxQ3:"Q3",chartBoxOutlier:"Valore anomalo",chartTotal:"Totale",chartTypeScatter:"Dispersione",chartTypeBubble:"Bolle",chartXAxis:"Asse X",chartBubbleSize:"Dimensione",chartXYSampled:"{shown} di {total} punti, campionati in modo uniforme",licenseMissing:"Senza licenza",licenseExpired:"Licenza scaduta",licenseReleaseNotCovered:"Questa versione non \xE8 coperta dalla licenza",licenseDomainMismatch:"Licenza non valida per questo dominio",licenseRevoked:"Licenza revocata",licenseInvalidFormat:"Chiave di licenza malformata",licenseInvalidSignature:"Firma della licenza non valida",licenseEngineUnavailable:"Il browser non pu\xF2 verificare la licenza (HTTPS richiesto)"},Ks={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",opInPeriod:"est\xE1 em",periodToday:"hoje",periodYesterday:"ontem",periodTomorrow:"amanh\xE3",periodThisWeek:"esta semana",periodLastWeek:"a semana passada",periodNextWeek:"a pr\xF3xima semana",periodThisMonth:"este m\xEAs",periodLastMonth:"o m\xEAs passado",periodNextMonth:"o pr\xF3ximo m\xEAs",periodThisQuarter:"este trimestre",periodLastQuarter:"o trimestre passado",periodNextQuarter:"o pr\xF3ximo trimestre",periodThisYear:"este ano",periodLastYear:"o ano passado",periodNextYear:"o pr\xF3ximo ano",periodYearToDate:"no acumulado do ano",periodLastDays:"os \xFAltimos {n} dias",periodNextDays:"os pr\xF3ximos {n} dias",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}",selectGroupAria:"Selecionar as {count} linhas de {group}",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",chartStacking:"Disposi\xE7\xE3o das s\xE9ries",chartStackGrouped:"Agrupado",chartStackStacked:"Empilhado",chartStackNormalized:"Empilhado 100%",chartFormat:"Formato",chartFormatTitle:"T\xEDtulo",chartFormatCategoryAxis:"T\xEDtulo do eixo de categorias",chartFormatValueAxis:"T\xEDtulo do eixo de valores",chartFormatLegend:"Legenda",chartLegendTop:"Em cima",chartLegendBottom:"Em baixo",chartLegendLeft:"\xC0 esquerda",chartLegendRight:"\xC0 direita",chartLegendNone:"Oculta",chartFormatDataLabels:"R\xF3tulos de dados",chartFormatScale:"Escala de valores",chartScaleLinear:"Linear",chartScaleLog:"Logar\xEDtmica",sparklineSummary:"{count} valores de {min} a {max}, \xFAltimo {last}",chartTypeWaterfall:"Cascata",chartTypeFunnel:"Funil",chartTypeTreemap:"Mapa de \xE1rvore",chartTypeHeatmap:"Mapa de calor",chartTypeBox:"Diagrama de caixa",chartTypeRadar:"Radar",chartTypeRangeBar:"Intervalo",chartBoxQ1:"Q1",chartBoxMedian:"Mediana",chartBoxQ3:"Q3",chartBoxOutlier:"Valor at\xEDpico",chartTotal:"Total",chartTypeScatter:"Dispers\xE3o",chartTypeBubble:"Bolhas",chartXAxis:"Eixo X",chartBubbleSize:"Tamanho",chartXYSampled:"{shown} de {total} pontos, amostrados de forma uniforme",licenseMissing:"Sem licen\xE7a",licenseExpired:"Licen\xE7a expirada",licenseReleaseNotCovered:"Esta vers\xE3o n\xE3o \xE9 coberta pela licen\xE7a",licenseDomainMismatch:"Licen\xE7a n\xE3o v\xE1lida para este dom\xEDnio",licenseRevoked:"Licen\xE7a revogada",licenseInvalidFormat:"Chave de licen\xE7a malformada",licenseInvalidSignature:"Assinatura da licen\xE7a inv\xE1lida",licenseEngineUnavailable:"O navegador n\xE3o consegue verificar a licen\xE7a (HTTPS necess\xE1rio)"},$s={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}",opInPeriod:"\u0432 \u043F\u0435\u0440\u0438\u043E\u0434\u0435",periodToday:"\u0441\u0435\u0433\u043E\u0434\u043D\u044F",periodYesterday:"\u0432\u0447\u0435\u0440\u0430",periodTomorrow:"\u0437\u0430\u0432\u0442\u0440\u0430",periodThisWeek:"\u044D\u0442\u0430 \u043D\u0435\u0434\u0435\u043B\u044F",periodLastWeek:"\u043F\u0440\u043E\u0448\u043B\u0430\u044F \u043D\u0435\u0434\u0435\u043B\u044F",periodNextWeek:"\u0441\u043B\u0435\u0434\u0443\u044E\u0449\u0430\u044F \u043D\u0435\u0434\u0435\u043B\u044F",periodThisMonth:"\u044D\u0442\u043E\u0442 \u043C\u0435\u0441\u044F\u0446",periodLastMonth:"\u043F\u0440\u043E\u0448\u043B\u044B\u0439 \u043C\u0435\u0441\u044F\u0446",periodNextMonth:"\u0441\u043B\u0435\u0434\u0443\u044E\u0449\u0438\u0439 \u043C\u0435\u0441\u044F\u0446",periodThisQuarter:"\u044D\u0442\u043E\u0442 \u043A\u0432\u0430\u0440\u0442\u0430\u043B",periodLastQuarter:"\u043F\u0440\u043E\u0448\u043B\u044B\u0439 \u043A\u0432\u0430\u0440\u0442\u0430\u043B",periodNextQuarter:"\u0441\u043B\u0435\u0434\u0443\u044E\u0449\u0438\u0439 \u043A\u0432\u0430\u0440\u0442\u0430\u043B",periodThisYear:"\u044D\u0442\u043E\u0442 \u0433\u043E\u0434",periodLastYear:"\u043F\u0440\u043E\u0448\u043B\u044B\u0439 \u0433\u043E\u0434",periodNextYear:"\u0441\u043B\u0435\u0434\u0443\u044E\u0449\u0438\u0439 \u0433\u043E\u0434",periodYearToDate:"\u0441 \u043D\u0430\u0447\u0430\u043B\u0430 \u0433\u043E\u0434\u0430",periodLastDays:"\u043F\u043E\u0441\u043B\u0435\u0434\u043D\u0438\u0435 {n} \u0434\u043D.",periodNextDays:"\u0441\u043B\u0435\u0434\u0443\u044E\u0449\u0438\u0435 {n} \u0434\u043D.",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}",selectGroupAria:"\u0412\u044B\u0431\u0440\u0430\u0442\u044C \u0441\u0442\u0440\u043E\u043A\u0438 \u0433\u0440\u0443\u043F\u043F\u044B {group} ({count})",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",chartStacking:"\u0420\u0430\u0441\u043F\u043E\u043B\u043E\u0436\u0435\u043D\u0438\u0435 \u0440\u044F\u0434\u043E\u0432",chartStackGrouped:"\u0413\u0440\u0443\u043F\u043F\u0438\u0440\u043E\u0432\u043A\u0430",chartStackStacked:"\u0421 \u043D\u0430\u043A\u043E\u043F\u043B\u0435\u043D\u0438\u0435\u043C",chartStackNormalized:"\u041D\u043E\u0440\u043C\u0438\u0440\u043E\u0432\u0430\u043D\u043D\u043E\u0435 100%",chartFormat:"\u0424\u043E\u0440\u043C\u0430\u0442",chartFormatTitle:"\u0417\u0430\u0433\u043E\u043B\u043E\u0432\u043E\u043A",chartFormatCategoryAxis:"\u041D\u0430\u0437\u0432\u0430\u043D\u0438\u0435 \u043E\u0441\u0438 \u043A\u0430\u0442\u0435\u0433\u043E\u0440\u0438\u0439",chartFormatValueAxis:"\u041D\u0430\u0437\u0432\u0430\u043D\u0438\u0435 \u043E\u0441\u0438 \u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0439",chartFormatLegend:"\u041B\u0435\u0433\u0435\u043D\u0434\u0430",chartLegendTop:"\u0421\u0432\u0435\u0440\u0445\u0443",chartLegendBottom:"\u0421\u043D\u0438\u0437\u0443",chartLegendLeft:"\u0421\u043B\u0435\u0432\u0430",chartLegendRight:"\u0421\u043F\u0440\u0430\u0432\u0430",chartLegendNone:"\u0421\u043A\u0440\u044B\u0442\u0430",chartFormatDataLabels:"\u041F\u043E\u0434\u043F\u0438\u0441\u0438 \u0434\u0430\u043D\u043D\u044B\u0445",chartFormatScale:"\u0428\u043A\u0430\u043B\u0430 \u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0439",chartScaleLinear:"\u041B\u0438\u043D\u0435\u0439\u043D\u0430\u044F",chartScaleLog:"\u041B\u043E\u0433\u0430\u0440\u0438\u0444\u043C\u0438\u0447\u0435\u0441\u043A\u0430\u044F",sparklineSummary:"{count} \u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0439 \u043E\u0442 {min} \u0434\u043E {max}, \u043F\u043E\u0441\u043B\u0435\u0434\u043D\u0435\u0435 {last}",chartTypeWaterfall:"\u041A\u0430\u0441\u043A\u0430\u0434\u043D\u0430\u044F",chartTypeFunnel:"\u0412\u043E\u0440\u043E\u043D\u043A\u0430",chartTypeTreemap:"\u041F\u043B\u043E\u0441\u043A\u043E\u0435 \u0434\u0435\u0440\u0435\u0432\u043E",chartTypeHeatmap:"\u0422\u0435\u043F\u043B\u043E\u0432\u0430\u044F \u043A\u0430\u0440\u0442\u0430",chartTypeBox:"\u042F\u0449\u0438\u043A \u0441 \u0443\u0441\u0430\u043C\u0438",chartTypeRadar:"\u041B\u0435\u043F\u0435\u0441\u0442\u043A\u043E\u0432\u0430\u044F",chartTypeRangeBar:"\u0414\u0438\u0430\u043F\u0430\u0437\u043E\u043D",chartBoxQ1:"Q1",chartBoxMedian:"\u041C\u0435\u0434\u0438\u0430\u043D\u0430",chartBoxQ3:"Q3",chartBoxOutlier:"\u0412\u044B\u0431\u0440\u043E\u0441",chartTotal:"\u0418\u0442\u043E\u0433\u043E",chartTypeScatter:"\u0422\u043E\u0447\u0435\u0447\u043D\u0430\u044F",chartTypeBubble:"\u041F\u0443\u0437\u044B\u0440\u044C\u043A\u043E\u0432\u0430\u044F",chartXAxis:"\u041E\u0441\u044C X",chartBubbleSize:"\u0420\u0430\u0437\u043C\u0435\u0440",chartXYSampled:"{shown} \u0438\u0437 {total} \u0442\u043E\u0447\u0435\u043A, \u0440\u0430\u0432\u043D\u043E\u043C\u0435\u0440\u043D\u0430\u044F \u0432\u044B\u0431\u043E\u0440\u043A\u0430",licenseMissing:"\u0411\u0435\u0437 \u043B\u0438\u0446\u0435\u043D\u0437\u0438\u0438",licenseExpired:"\u0421\u0440\u043E\u043A \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u044F \u043B\u0438\u0446\u0435\u043D\u0437\u0438\u0438 \u0438\u0441\u0442\u0451\u043A",licenseReleaseNotCovered:"\u042D\u0442\u0430 \u0432\u0435\u0440\u0441\u0438\u044F \u043D\u0435 \u043F\u043E\u043A\u0440\u044B\u0432\u0430\u0435\u0442\u0441\u044F \u043B\u0438\u0446\u0435\u043D\u0437\u0438\u0435\u0439",licenseDomainMismatch:"\u041B\u0438\u0446\u0435\u043D\u0437\u0438\u044F \u043D\u0435\u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0442\u0435\u043B\u044C\u043D\u0430 \u0434\u043B\u044F \u044D\u0442\u043E\u0433\u043E \u0434\u043E\u043C\u0435\u043D\u0430",licenseRevoked:"\u041B\u0438\u0446\u0435\u043D\u0437\u0438\u044F \u043E\u0442\u043E\u0437\u0432\u0430\u043D\u0430",licenseInvalidFormat:"\u041D\u0435\u0432\u0435\u0440\u043D\u044B\u0439 \u0444\u043E\u0440\u043C\u0430\u0442 \u043B\u0438\u0446\u0435\u043D\u0437\u0438\u043E\u043D\u043D\u043E\u0433\u043E \u043A\u043B\u044E\u0447\u0430",licenseInvalidSignature:"\u041D\u0435\u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0442\u0435\u043B\u044C\u043D\u0430\u044F \u043F\u043E\u0434\u043F\u0438\u0441\u044C \u043B\u0438\u0446\u0435\u043D\u0437\u0438\u0438",licenseEngineUnavailable:"\u0411\u0440\u0430\u0443\u0437\u0435\u0440 \u043D\u0435 \u043C\u043E\u0436\u0435\u0442 \u043F\u0440\u043E\u0432\u0435\u0440\u0438\u0442\u044C \u043B\u0438\u0446\u0435\u043D\u0437\u0438\u044E (\u0442\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044F HTTPS)"},Us={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",opInPeriod:"\u0636\u0645\u0646 \u0627\u0644\u0641\u062A\u0631\u0629",periodToday:"\u0627\u0644\u064A\u0648\u0645",periodYesterday:"\u0623\u0645\u0633",periodTomorrow:"\u063A\u062F\u064B\u0627",periodThisWeek:"\u0647\u0630\u0627 \u0627\u0644\u0623\u0633\u0628\u0648\u0639",periodLastWeek:"\u0627\u0644\u0623\u0633\u0628\u0648\u0639 \u0627\u0644\u0645\u0627\u0636\u064A",periodNextWeek:"\u0627\u0644\u0623\u0633\u0628\u0648\u0639 \u0627\u0644\u0642\u0627\u062F\u0645",periodThisMonth:"\u0647\u0630\u0627 \u0627\u0644\u0634\u0647\u0631",periodLastMonth:"\u0627\u0644\u0634\u0647\u0631 \u0627\u0644\u0645\u0627\u0636\u064A",periodNextMonth:"\u0627\u0644\u0634\u0647\u0631 \u0627\u0644\u0642\u0627\u062F\u0645",periodThisQuarter:"\u0647\u0630\u0627 \u0627\u0644\u0631\u0628\u0639",periodLastQuarter:"\u0627\u0644\u0631\u0628\u0639 \u0627\u0644\u0645\u0627\u0636\u064A",periodNextQuarter:"\u0627\u0644\u0631\u0628\u0639 \u0627\u0644\u0642\u0627\u062F\u0645",periodThisYear:"\u0647\u0630\u0627 \u0627\u0644\u0639\u0627\u0645",periodLastYear:"\u0627\u0644\u0639\u0627\u0645 \u0627\u0644\u0645\u0627\u0636\u064A",periodNextYear:"\u0627\u0644\u0639\u0627\u0645 \u0627\u0644\u0642\u0627\u062F\u0645",periodYearToDate:"\u0645\u0646\u0630 \u0628\u062F\u0627\u064A\u0629 \u0627\u0644\u0639\u0627\u0645",periodLastDays:"\u0622\u062E\u0631 {n} \u064A\u0648\u0645",periodNextDays:"\u0627\u0644\u0640 {n} \u064A\u0648\u0645 \u0627\u0644\u0642\u0627\u062F\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}",selectGroupAria:"\u062A\u062D\u062F\u064A\u062F \u0635\u0641\u0648\u0641 {group} \u0648\u0639\u062F\u062F\u0647\u0627 {count}",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",chartStacking:"\u062A\u0631\u062A\u064A\u0628 \u0627\u0644\u0633\u0644\u0627\u0633\u0644",chartStackGrouped:"\u0645\u062C\u0645\u0651\u0639",chartStackStacked:"\u0645\u0643\u062F\u0651\u0633",chartStackNormalized:"\u0645\u0643\u062F\u0651\u0633 100%",chartFormat:"\u0627\u0644\u062A\u0646\u0633\u064A\u0642",chartFormatTitle:"\u0627\u0644\u0639\u0646\u0648\u0627\u0646",chartFormatCategoryAxis:"\u0639\u0646\u0648\u0627\u0646 \u0645\u062D\u0648\u0631 \u0627\u0644\u0641\u0626\u0627\u062A",chartFormatValueAxis:"\u0639\u0646\u0648\u0627\u0646 \u0645\u062D\u0648\u0631 \u0627\u0644\u0642\u064A\u0645",chartFormatLegend:"\u0648\u0633\u064A\u0644\u0629 \u0627\u0644\u0625\u064A\u0636\u0627\u062D",chartLegendTop:"\u0623\u0639\u0644\u0649",chartLegendBottom:"\u0623\u0633\u0641\u0644",chartLegendLeft:"\u064A\u0633\u0627\u0631",chartLegendRight:"\u064A\u0645\u064A\u0646",chartLegendNone:"\u0645\u062E\u0641\u064A\u0629",chartFormatDataLabels:"\u062A\u0633\u0645\u064A\u0627\u062A \u0627\u0644\u0628\u064A\u0627\u0646\u0627\u062A",chartFormatScale:"\u0645\u0642\u064A\u0627\u0633 \u0627\u0644\u0642\u064A\u0645",chartScaleLinear:"\u062E\u0637\u064A",chartScaleLog:"\u0644\u0648\u063A\u0627\u0631\u064A\u062A\u0645\u064A",sparklineSummary:"{count} \u0642\u064A\u0645\u0629 \u0645\u0646 {min} \u0625\u0644\u0649 {max}\u060C \u0627\u0644\u0623\u062E\u064A\u0631\u0629 {last}",chartTypeWaterfall:"\u0634\u0644\u0627\u0644",chartTypeFunnel:"\u0642\u0645\u0639",chartTypeTreemap:"\u062E\u0631\u064A\u0637\u0629 \u0634\u062C\u0631\u064A\u0629",chartTypeHeatmap:"\u062E\u0631\u064A\u0637\u0629 \u062D\u0631\u0627\u0631\u064A\u0629",chartTypeBox:"\u0645\u062E\u0637\u0637 \u0627\u0644\u0635\u0646\u062F\u0648\u0642",chartTypeRadar:"\u0631\u0627\u062F\u0627\u0631",chartTypeRangeBar:"\u0646\u0637\u0627\u0642",chartBoxQ1:"\u0627\u0644\u0631\u0628\u064A\u0639 \u0627\u0644\u0623\u0648\u0644",chartBoxMedian:"\u0627\u0644\u0648\u0633\u064A\u0637",chartBoxQ3:"\u0627\u0644\u0631\u0628\u064A\u0639 \u0627\u0644\u062B\u0627\u0644\u062B",chartBoxOutlier:"\u0642\u064A\u0645\u0629 \u0634\u0627\u0630\u0629",chartTotal:"\u0627\u0644\u0625\u062C\u0645\u0627\u0644\u064A",chartTypeScatter:"\u0645\u0628\u0639\u062B\u0631",chartTypeBubble:"\u0641\u0642\u0627\u0639\u064A",chartXAxis:"\u0627\u0644\u0645\u062D\u0648\u0631 X",chartBubbleSize:"\u0627\u0644\u062D\u062C\u0645",chartXYSampled:"{shown} \u0645\u0646 {total} \u0646\u0642\u0637\u0629\u060C \u0628\u0639\u064A\u0646\u0629 \u0645\u0646\u062A\u0638\u0645\u0629",licenseMissing:"\u063A\u064A\u0631 \u0645\u0631\u062E\u0651\u0635",licenseExpired:"\u0627\u0646\u062A\u0647\u062A \u0635\u0644\u0627\u062D\u064A\u0629 \u0627\u0644\u062A\u0631\u062E\u064A\u0635",licenseReleaseNotCovered:"\u0647\u0630\u0627 \u0627\u0644\u0625\u0635\u062F\u0627\u0631 \u063A\u064A\u0631 \u0645\u0634\u0645\u0648\u0644 \u0628\u0627\u0644\u062A\u0631\u062E\u064A\u0635",licenseDomainMismatch:"\u0627\u0644\u062A\u0631\u062E\u064A\u0635 \u063A\u064A\u0631 \u0635\u0627\u0644\u062D \u0644\u0647\u0630\u0627 \u0627\u0644\u0646\u0637\u0627\u0642",licenseRevoked:"\u062A\u0645 \u0625\u0644\u063A\u0627\u0621 \u0627\u0644\u062A\u0631\u062E\u064A\u0635",licenseInvalidFormat:"\u0635\u064A\u063A\u0629 \u0645\u0641\u062A\u0627\u062D \u0627\u0644\u062A\u0631\u062E\u064A\u0635 \u063A\u064A\u0631 \u0635\u062D\u064A\u062D\u0629",licenseInvalidSignature:"\u062A\u0648\u0642\u064A\u0639 \u0627\u0644\u062A\u0631\u062E\u064A\u0635 \u063A\u064A\u0631 \u0635\u0627\u0644\u062D",licenseEngineUnavailable:"\u0644\u0627 \u064A\u0633\u062A\u0637\u064A\u0639 \u0627\u0644\u0645\u062A\u0635\u0641\u062D \u0627\u0644\u062A\u062D\u0642\u0642 \u0645\u0646 \u0627\u0644\u062A\u0631\u062E\u064A\u0635 (\u064A\u0644\u0632\u0645 HTTPS)"},qs={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",opInPeriod:"\u5728\u671F\u95F4",periodToday:"\u4ECA\u5929",periodYesterday:"\u6628\u5929",periodTomorrow:"\u660E\u5929",periodThisWeek:"\u672C\u5468",periodLastWeek:"\u4E0A\u5468",periodNextWeek:"\u4E0B\u5468",periodThisMonth:"\u672C\u6708",periodLastMonth:"\u4E0A\u6708",periodNextMonth:"\u4E0B\u6708",periodThisQuarter:"\u672C\u5B63\u5EA6",periodLastQuarter:"\u4E0A\u5B63\u5EA6",periodNextQuarter:"\u4E0B\u5B63\u5EA6",periodThisYear:"\u4ECA\u5E74",periodLastYear:"\u53BB\u5E74",periodNextYear:"\u660E\u5E74",periodYearToDate:"\u5E74\u521D\u81F3\u4ECA",periodLastDays:"\u6700\u8FD1 {n} \u5929",periodNextDays:"\u672A\u6765 {n} \u5929",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",selectGroupAria:"\u9009\u62E9 {group} \u4E2D\u7684 {count} \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",chartStacking:"\u7CFB\u5217\u5E03\u5C40",chartStackGrouped:"\u7C07\u72B6",chartStackStacked:"\u5806\u79EF",chartStackNormalized:"\u767E\u5206\u6BD4\u5806\u79EF",chartFormat:"\u683C\u5F0F",chartFormatTitle:"\u6807\u9898",chartFormatCategoryAxis:"\u5206\u7C7B\u8F74\u6807\u9898",chartFormatValueAxis:"\u6570\u503C\u8F74\u6807\u9898",chartFormatLegend:"\u56FE\u4F8B",chartLegendTop:"\u9876\u90E8",chartLegendBottom:"\u5E95\u90E8",chartLegendLeft:"\u5DE6\u4FA7",chartLegendRight:"\u53F3\u4FA7",chartLegendNone:"\u9690\u85CF",chartFormatDataLabels:"\u6570\u636E\u6807\u7B7E",chartFormatScale:"\u6570\u503C\u523B\u5EA6",chartScaleLinear:"\u7EBF\u6027",chartScaleLog:"\u5BF9\u6570",sparklineSummary:"{count} \u4E2A\u503C\uFF0C\u4ECE {min} \u5230 {max}\uFF0C\u6700\u540E\u4E3A {last}",chartTypeWaterfall:"\u7011\u5E03\u56FE",chartTypeFunnel:"\u6F0F\u6597\u56FE",chartTypeTreemap:"\u77E9\u5F62\u6811\u56FE",chartTypeHeatmap:"\u70ED\u529B\u56FE",chartTypeBox:"\u7BB1\u7EBF\u56FE",chartTypeRadar:"\u96F7\u8FBE\u56FE",chartTypeRangeBar:"\u8303\u56F4\u56FE",chartBoxQ1:"Q1",chartBoxMedian:"\u4E2D\u4F4D\u6570",chartBoxQ3:"Q3",chartBoxOutlier:"\u79BB\u7FA4\u503C",chartTotal:"\u5408\u8BA1",chartTypeScatter:"\u6563\u70B9\u56FE",chartTypeBubble:"\u6C14\u6CE1\u56FE",chartXAxis:"X \u8F74",chartBubbleSize:"\u5927\u5C0F",chartXYSampled:"\u5171 {total} \u4E2A\u70B9\uFF0C\u5747\u5300\u62BD\u6837\u663E\u793A {shown} \u4E2A",licenseMissing:"\u672A\u6388\u6743",licenseExpired:"\u8BB8\u53EF\u8BC1\u5DF2\u8FC7\u671F",licenseReleaseNotCovered:"\u6B64\u7248\u672C\u4E0D\u5728\u8BB8\u53EF\u8BC1\u8986\u76D6\u8303\u56F4\u5185",licenseDomainMismatch:"\u8BB8\u53EF\u8BC1\u5BF9\u6B64\u57DF\u540D\u65E0\u6548",licenseRevoked:"\u8BB8\u53EF\u8BC1\u5DF2\u88AB\u540A\u9500",licenseInvalidFormat:"\u8BB8\u53EF\u8BC1\u5BC6\u94A5\u683C\u5F0F\u9519\u8BEF",licenseInvalidSignature:"\u8BB8\u53EF\u8BC1\u7B7E\u540D\u65E0\u6548",licenseEngineUnavailable:"\u6D4F\u89C8\u5668\u65E0\u6CD5\u9A8C\u8BC1\u8BB8\u53EF\u8BC1\uFF08\u9700\u8981 HTTPS\uFF09"},_s={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",opInPeriod:"\u671F\u9593\u5185",periodToday:"\u4ECA\u65E5",periodYesterday:"\u6628\u65E5",periodTomorrow:"\u660E\u65E5",periodThisWeek:"\u4ECA\u9031",periodLastWeek:"\u5148\u9031",periodNextWeek:"\u6765\u9031",periodThisMonth:"\u4ECA\u6708",periodLastMonth:"\u5148\u6708",periodNextMonth:"\u6765\u6708",periodThisQuarter:"\u4ECA\u56DB\u534A\u671F",periodLastQuarter:"\u524D\u56DB\u534A\u671F",periodNextQuarter:"\u6B21\u56DB\u534A\u671F",periodThisYear:"\u4ECA\u5E74",periodLastYear:"\u6628\u5E74",periodNextYear:"\u6765\u5E74",periodYearToDate:"\u5E74\u521D\u6765",periodLastDays:"\u904E\u53BB {n} \u65E5\u9593",periodNextDays:"\u4ECA\u5F8C {n} \u65E5\u9593",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",selectGroupAria:"{group} \u306E {count} \u884C\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",chartStacking:"\u7CFB\u5217\u306E\u914D\u7F6E",chartStackGrouped:"\u96C6\u5408",chartStackStacked:"\u7A4D\u307F\u4E0A\u3052",chartStackNormalized:"100% \u7A4D\u307F\u4E0A\u3052",chartFormat:"\u66F8\u5F0F",chartFormatTitle:"\u30BF\u30A4\u30C8\u30EB",chartFormatCategoryAxis:"\u9805\u76EE\u8EF8\u306E\u30BF\u30A4\u30C8\u30EB",chartFormatValueAxis:"\u5024\u8EF8\u306E\u30BF\u30A4\u30C8\u30EB",chartFormatLegend:"\u51E1\u4F8B",chartLegendTop:"\u4E0A",chartLegendBottom:"\u4E0B",chartLegendLeft:"\u5DE6",chartLegendRight:"\u53F3",chartLegendNone:"\u975E\u8868\u793A",chartFormatDataLabels:"\u30C7\u30FC\u30BF \u30E9\u30D9\u30EB",chartFormatScale:"\u5024\u306E\u76EE\u76DB",chartScaleLinear:"\u7DDA\u5F62",chartScaleLog:"\u5BFE\u6570",sparklineSummary:"{count} \u500B\u306E\u5024 ({min}\u301C{max})\u3001\u6700\u5F8C\u306F {last}",chartTypeWaterfall:"\u30A6\u30A9\u30FC\u30BF\u30FC\u30D5\u30A9\u30FC\u30EB",chartTypeFunnel:"\u3058\u3087\u3046\u3054",chartTypeTreemap:"\u30C4\u30EA\u30FC\u30DE\u30C3\u30D7",chartTypeHeatmap:"\u30D2\u30FC\u30C8\u30DE\u30C3\u30D7",chartTypeBox:"\u7BB1\u3072\u3052\u56F3",chartTypeRadar:"\u30EC\u30FC\u30C0\u30FC",chartTypeRangeBar:"\u7BC4\u56F2",chartBoxQ1:"Q1",chartBoxMedian:"\u4E2D\u592E\u5024",chartBoxQ3:"Q3",chartBoxOutlier:"\u5916\u308C\u5024",chartTotal:"\u5408\u8A08",chartTypeScatter:"\u6563\u5E03\u56F3",chartTypeBubble:"\u30D0\u30D6\u30EB",chartXAxis:"X \u8EF8",chartBubbleSize:"\u30B5\u30A4\u30BA",chartXYSampled:"{total} \u70B9\u4E2D {shown} \u70B9 (\u5747\u7B49\u306B\u62BD\u51FA)",licenseMissing:"\u30E9\u30A4\u30BB\u30F3\u30B9\u306A\u3057",licenseExpired:"\u30E9\u30A4\u30BB\u30F3\u30B9\u306E\u6709\u52B9\u671F\u9650\u304C\u5207\u308C\u3066\u3044\u307E\u3059",licenseReleaseNotCovered:"\u3053\u306E\u30D0\u30FC\u30B8\u30E7\u30F3\u306F\u30E9\u30A4\u30BB\u30F3\u30B9\u306E\u5BFE\u8C61\u5916\u3067\u3059",licenseDomainMismatch:"\u3053\u306E\u30C9\u30E1\u30A4\u30F3\u3067\u306F\u30E9\u30A4\u30BB\u30F3\u30B9\u304C\u7121\u52B9\u3067\u3059",licenseRevoked:"\u30E9\u30A4\u30BB\u30F3\u30B9\u306F\u53D6\u308A\u6D88\u3055\u308C\u307E\u3057\u305F",licenseInvalidFormat:"\u30E9\u30A4\u30BB\u30F3\u30B9\u30AD\u30FC\u306E\u5F62\u5F0F\u304C\u6B63\u3057\u304F\u3042\u308A\u307E\u305B\u3093",licenseInvalidSignature:"\u30E9\u30A4\u30BB\u30F3\u30B9\u306E\u7F72\u540D\u304C\u7121\u52B9\u3067\u3059",licenseEngineUnavailable:"\u30D6\u30E9\u30A6\u30B6\u30FC\u3067\u30E9\u30A4\u30BB\u30F3\u30B9\u3092\u691C\u8A3C\u3067\u304D\u307E\u305B\u3093\uFF08HTTPS \u304C\u5FC5\u8981\u3067\u3059\uFF09"},js={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",opInPeriod:"\uAE30\uAC04 \uB0B4",periodToday:"\uC624\uB298",periodYesterday:"\uC5B4\uC81C",periodTomorrow:"\uB0B4\uC77C",periodThisWeek:"\uC774\uBC88 \uC8FC",periodLastWeek:"\uC9C0\uB09C\uC8FC",periodNextWeek:"\uB2E4\uC74C \uC8FC",periodThisMonth:"\uC774\uBC88 \uB2EC",periodLastMonth:"\uC9C0\uB09C\uB2EC",periodNextMonth:"\uB2E4\uC74C \uB2EC",periodThisQuarter:"\uC774\uBC88 \uBD84\uAE30",periodLastQuarter:"\uC9C0\uB09C \uBD84\uAE30",periodNextQuarter:"\uB2E4\uC74C \uBD84\uAE30",periodThisYear:"\uC62C\uD574",periodLastYear:"\uC791\uB144",periodNextYear:"\uB0B4\uB144",periodYearToDate:"\uC5F0\uCD08\uBD80\uD130 \uC624\uB298\uAE4C\uC9C0",periodLastDays:"\uCD5C\uADFC {n}\uC77C",periodNextDays:"\uC55E\uC73C\uB85C {n}\uC77C",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",selectGroupAria:"{group}\uC758 {count}\uAC1C \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",chartStacking:"\uACC4\uC5F4 \uBC30\uCE58",chartStackGrouped:"\uBB36\uC740",chartStackStacked:"\uB204\uC801",chartStackNormalized:"100% \uB204\uC801",chartFormat:"\uC11C\uC2DD",chartFormatTitle:"\uC81C\uBAA9",chartFormatCategoryAxis:"\uBC94\uC8FC \uCD95 \uC81C\uBAA9",chartFormatValueAxis:"\uAC12 \uCD95 \uC81C\uBAA9",chartFormatLegend:"\uBC94\uB840",chartLegendTop:"\uC704\uCABD",chartLegendBottom:"\uC544\uB798\uCABD",chartLegendLeft:"\uC67C\uCABD",chartLegendRight:"\uC624\uB978\uCABD",chartLegendNone:"\uC228\uAE40",chartFormatDataLabels:"\uB370\uC774\uD130 \uB808\uC774\uBE14",chartFormatScale:"\uAC12 \uB208\uAE08",chartScaleLinear:"\uC120\uD615",chartScaleLog:"\uB85C\uADF8",sparklineSummary:"\uAC12 {count}\uAC1C, {min}\uBD80\uD130 {max}\uAE4C\uC9C0, \uB9C8\uC9C0\uB9C9 {last}",chartTypeWaterfall:"\uD3ED\uD3EC",chartTypeFunnel:"\uAE54\uB54C\uAE30\uD615",chartTypeTreemap:"\uD2B8\uB9AC\uB9F5",chartTypeHeatmap:"\uD788\uD2B8\uB9F5",chartTypeBox:"\uC0C1\uC790 \uADF8\uB9BC",chartTypeRadar:"\uBC29\uC0AC\uD615",chartTypeRangeBar:"\uBC94\uC704",chartBoxQ1:"Q1",chartBoxMedian:"\uC911\uC559\uAC12",chartBoxQ3:"Q3",chartBoxOutlier:"\uC774\uC0C1\uAC12",chartTotal:"\uD569\uACC4",chartTypeScatter:"\uBD84\uC0B0\uD615",chartTypeBubble:"\uAC70\uD488\uD615",chartXAxis:"X\uCD95",chartBubbleSize:"\uD06C\uAE30",chartXYSampled:"{total}\uAC1C \uC911 {shown}\uAC1C \uC810, \uADE0\uB4F1 \uD45C\uBCF8",licenseMissing:"\uB77C\uC774\uC120\uC2A4 \uC5C6\uC74C",licenseExpired:"\uB77C\uC774\uC120\uC2A4\uAC00 \uB9CC\uB8CC\uB418\uC5C8\uC2B5\uB2C8\uB2E4",licenseReleaseNotCovered:"\uC774 \uBC84\uC804\uC740 \uB77C\uC774\uC120\uC2A4 \uC801\uC6A9 \uB300\uC0C1\uC774 \uC544\uB2D9\uB2C8\uB2E4",licenseDomainMismatch:"\uC774 \uB3C4\uBA54\uC778\uC5D0\uC11C\uB294 \uB77C\uC774\uC120\uC2A4\uAC00 \uC720\uD6A8\uD558\uC9C0 \uC54A\uC2B5\uB2C8\uB2E4",licenseRevoked:"\uB77C\uC774\uC120\uC2A4\uAC00 \uCDE8\uC18C\uB418\uC5C8\uC2B5\uB2C8\uB2E4",licenseInvalidFormat:"\uB77C\uC774\uC120\uC2A4 \uD0A4 \uD615\uC2DD\uC774 \uC798\uBABB\uB418\uC5C8\uC2B5\uB2C8\uB2E4",licenseInvalidSignature:"\uB77C\uC774\uC120\uC2A4 \uC11C\uBA85\uC774 \uC720\uD6A8\uD558\uC9C0 \uC54A\uC2B5\uB2C8\uB2E4",licenseEngineUnavailable:"\uBE0C\uB77C\uC6B0\uC800\uC5D0\uC11C \uB77C\uC774\uC120\uC2A4\uB97C \uD655\uC778\uD560 \uC218 \uC5C6\uC2B5\uB2C8\uB2E4(HTTPS \uD544\uC694)"};function Tt(e,t){let u=e;for(let[r,n]of Object.entries(t))u=u.replace(`{${r}}`,String(n));return u}var Ys={tr:Os,en:hn,de:Vs,fr:zs,es:Hs,it:Ws,pt:Ks,ru:$s,ar:Us,"zh-CN":qs,ja:_s,ko:js};function eu(e,t){return ps(Ys,hn,e,t)}function pn(e){return{sum:e.summarySum,avg:e.summaryAvg,min:e.summaryMin,max:e.summaryMax,count:e.summaryCount,countDistinct:e.summaryDistinct,custom:e.summaryCustom}}var Qs=pn(eu("en"));function mn(e,t=Qs){return e.label??t[e.type]}var Xs=new Set(["sum","avg","min","max"]);function tu(e,t,u){if(e.valueFormatter)return e.valueFormatter(t??null);if(t==null)return"\u2014";if(!Xs.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 Ki(e){switch(e){case"number":return["sum","avg","min","max","count","countDistinct"];case"date":return["min","max","count","countDistinct"];default:return["count","countDistinct"]}}function Js(e,t,u,r){let n=u.getCellValue(e.data,t);return r?{text:n==null?"":String(n),value:n}:{text:Wu(u.getDef(t),n,e.data),value:n}}var Zs=new Set(["sum","avg","min","max"]);function Ya(e,t,u,r){if(t==null)return{text:"",value:null};if(r)return{text:String(t),value:t};let n=Zs.has(e.type);return{text:tu(e,t,u),value:n&&u?.dataType==="date"?new Date(t):t,numFmt:n?void 0:"#,##0"}}function e0({nodes:e,columns:t,options:u,isSelected:r,selectionCount:n=0,summaries:a}){let i=t.runtime(),l=(u.columnIds??i.map(f=>f.state.id)).map(f=>{let w=t.getDef(f),F=t.getState(f),x=w?.dataType==="number";return{id:f,header:w?.headerName??w?.field??f,width:Math.max(8,Math.round((F?.width??100)/7)),isNumeric:x,isDate:w?.dataType==="date",align:w?.align??(x?"right":"left"),numFmt:w?.excelFormat??t0(w?.dataType)}}),o=!!u.selectedOnly&&n>0&&!!r,d=u.includeGroups!==!1,h=!!u.raw,c=[];for(let f of e)if(f){if(dl(f)){if(!d||o)continue;let w=f.aggregates,F=l.map((x,k)=>{if(k===0)return{text:`${f.label===""?"(Blanks)":f.label} (${f.count})`,value:f.label};let R=w?a?.defs.find(P=>P.columnId===x.id):void 0;return R?Ya(R,w[`${R.columnId}:${R.type}`],t.getDef(x.id),h):{text:"",value:null}});c.push({kind:"group",cells:F,level:f.level});continue}if(cl(f)){if(!d||o)continue;let w=l.map((F,x)=>x===0?{text:f.label,value:f.label}:{text:"",value:null});c.push({kind:"group",cells:w,level:f.tree.depth});continue}Pe(f)&&(o&&!r(f.key)||c.push({kind:"data",cells:l.map(w=>Js(f,w.id,t,h)),level:0}))}let g;return a&&a.defs.length>0&&(g=l.map(f=>{let w=a.defs.find(F=>F.columnId===f.id);return w?Ya(w,a.values[`${w.columnId}:${w.type}`],t.getDef(f.id),h):null})),{columns:l,rows:c,totals:g}}function t0(e){if(e==="number")return"#,##0.###";if(e==="date")return"yyyy-mm-dd"}var ft=class extends Error{constructor(){super("Export aborted"),this.name="ExportAbortedError"}},u0="\uFEFF",r0=new Set(["tr","de","fr","es","it","pt","ru","ar"]);function n0(e){let t=(e??"en").split(/[-_]/)[0].toLowerCase();return r0.has(t)?";":","}function Qa(e,t){return e.includes(t)||e.includes('"')||e.includes(`
|
|
5
|
+
`)||e.includes("\r")||e!==e.trim()?`"${e.replace(/"/g,'""')}"`:e}async function a0(e,t={}){let u=t.delimiter??",",r=t.newline??`\r
|
|
6
|
+
`,n=[];t.includeHeaders!==!1&&n.push(e.columns.map(l=>Qa(l.header,u)).join(u));let a=e.rows.length;for(let l=0;l<a;l++){if(t.signal?.aborted)throw new ft;let o=e.rows[l];n.push(o.cells.map(d=>Qa(d.text,u)).join(u)),(l+1)%5e3===0&&(t.onProgress?.((l+1)/a),await new Promise(d=>setTimeout(d,0)))}t.onProgress?.(1);let i=n.join(r);return t.bom===!1?i:u0+i}async function i0(e,t={}){let u=await a0(e,t);return new Blob([u],{type:"text/csv;charset=utf-8;"})}var o0="application/vnd.openxmlformats-officedocument.spreadsheetml.sheet",Xa="FFF1F5F9",l0="FFFAFAFA",Ja="FFE2E8F0",Wr=1048576,s0=31;function d0(e,t,u){for(let r=Math.max(2,t);;r++){let n=` (${r})`,a=e.slice(0,s0-n.length)+n;if(!u.has(a.toLowerCase()))return a}}var c0=/^\d{4}-\d{2}-\d{2}(?:[T ]\d{2}:\d{2}(?::\d{2}(?:\.\d{1,9})?)?)?(?:Z|[+-]\d{2}:?\d{2})?$/;function Kr(e){return new Date(Date.UTC(e.getFullYear(),e.getMonth(),e.getDate(),e.getHours(),e.getMinutes(),e.getSeconds(),e.getMilliseconds()))}function Za(e){if(e instanceof Date)return Number.isNaN(e.getTime())?null:Kr(e);if(typeof e=="number"&&Number.isFinite(e))return Kr(new Date(e));if(typeof e=="string"&&c0.test(e.trim())){let t=xi(e.trim());return t?Kr(t):null}return null}function ei(e,t,u,r){if(e.value instanceof Date)return Za(e.value)??(u?e.value:e.text);if(r&&t?.isDate){let n=Za(e.value);if(n)return n}return u||typeof e.value=="number"?e.value:e.text}async function h0(){let e;try{e=await import("exceljs")}catch{throw new Error('[datagrid] Excel export needs the "exceljs" package. Install it with: npm i exceljs')}let t=e,u=t.Workbook?t:t.default;if(!u?.Workbook)throw new Error('[datagrid] Excel export needs the "exceljs" package, and what loaded exposes no Workbook \u2014 it is either not installed (npm i exceljs) or a version this writer does not understand.');return u}function tn(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 p0(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 $i(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 Qt(e,t,u,r,n){let a=t.customizeCell;a&&e.eachCell((i,l)=>{let o=r?.columns[l-1],d=a({kind:u,columnId:o?.id??null,value:i.value,text:i.value==null?"":String(i.value),rowNumber:e.number,colNumber:l,rowIndex:n});$i(i,d)})}function _u(e,t,u,r){if(t?.length)for(let n of t){e.room()||e.continue();let a=e.sheet,i=a.addRow(n.cells);n.height&&(i.height=n.height),n.style&&i.eachCell(l=>$i(l,n.style)),n.merge&&u>1&&a.mergeCells(`A${i.number}:${p0(u)}${i.number}`),Qt(i,r,"band",null,-1)}}async function ti(e,t,u,r,n,a){let i=null,l=t.columns.length,o=(x,k)=>{let R=x.addRow(t.columns.map(P=>P.header));return R.font={bold:!0},R.fill={type:"pattern",pattern:"solid",fgColor:{argb:Xa}},n&&(R.alignment={horizontal:"left",vertical:"middle"},R.border={bottom:{style:"thin",color:{argb:Ja}}}),Qt(R,u,"header",t,-1),k&&(u.autoFilter!==!1&&(x.autoFilter={from:{row:R.number,column:1},to:{row:R.number,column:l}}),u.freezeHeader!==!1&&(x.views=[{state:"frozen",ySplit:R.number}])),R.number},d=r&&l>0;e.onContinue=d?x=>{o(x,!0)}:null,d&&(e.room(2)?i=o(e.sheet,a):e.continue());let h=t.rows.length,c=i===null?0:i+1,g=i??0,f=0,w=-1,F=(x,k)=>{k.forEach((R,P)=>{R?.numFmt&&(x.getCell(P+1).numFmt=R.numFmt)})};for(let x=0;x<h;x++){if(u.signal?.aborted)throw new ft;let k=t.rows[x],R=k.cells.map((H,U)=>ei(H,t.columns[U],!!u.raw,k.kind==="data"));e.room()||e.continue();let P=e.sheet.addRow(R);F(P,k.cells),x===0&&(c=P.number),g=P.number,k.kind==="group"?(w=k.level,P.font={bold:!0},P.getCell(1).alignment={indent:k.level,horizontal:"left"},n&&(P.fill={type:"pattern",pattern:"solid",fgColor:{argb:Xa}},P.outlineLevel=k.level),f=0,Qt(P,u,"group",t,x)):(n&&(w>=0&&(P.outlineLevel=w+1),f%2===1&&(P.fill={type:"pattern",pattern:"solid",fgColor:{argb:l0}})),f++,Qt(P,u,"data",t,x)),(x+1)%5e3===0&&(u.onProgress?.((x+1)/h),await new Promise(H=>setTimeout(H,0)))}if(n&&u.totalsRow!==!1&&t.totals){e.room()||e.continue();let x=e.sheet.addRow(t.totals.map((k,R)=>k==null?"":ei(k,t.columns[R],!1,!1)));F(x,t.totals.map(k=>k??{})),x.font={bold:!0},x.border={top:{style:"double",color:{argb:Ja}}},Qt(x,u,"totals",t,-1),g=x.number}return e.onContinue=null,{headerRow:i,firstDataRow:c,lastRow:g}}function m0(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}),a=r.position??{col:0,row:0,width:160,height:48};t.addImage(n,{tl:{col:a.col,row:a.row},ext:{width:a.width,height:a.height}})}}async function g0(e,t={}){let u=await h0(),r=t.styled===!0,n=t.includeHeaders!==!1,a=new u.Workbook,i=Math.floor(t.maxRowsPerSheet??Wr),l=Math.max(2,Math.min(Wr,Number.isFinite(i)?i:Wr)),o=new Set,d=x=>{o.add(x.toLowerCase());let k=a.addWorksheet(x);return r&&(k.properties.outlineProperties={summaryBelow:!1,summaryRight:!1}),k},h=(x,k)=>{let R=x.name,P=2,H={sheet:x,limit:l,room:(U=1)=>H.sheet.rowCount+U<=l,continue:()=>{let U=d(d0(R,P++,o));tn(U,k,r),H.sheet=U,H.onContinue?.(U)},onContinue:null};return H},c=d(t.sheetName??"Data");tn(c,e,r);let g=h(c,e);m0(a,c,t.images),_u(g,t.headerBlock,e.columns.length,t),await ti(g,e,t,n,r,!0),t.onProgress?.(1);let f=g,w=g;for(let x of t.additionalGrids??[]){let k=!x.sheetName;f=f0(d,h,f,x,t,r),await ti(f,x.model,t,x.includeHeaders!==!1,r,!1),k&&w===g&&(w=f)}_u(w,t.footerBlock,e.columns.length,t);let F=await a.xlsx.writeBuffer();return new Blob([F],{type:o0})}function f0(e,t,u,r,n,a){let i=r.title?[{cells:[r.title],merge:!0,style:{font:{bold:!0,size:13}}}]:void 0;if(r.sheetName){let o=e(r.sheetName);tn(o,r.model,a);let d=t(o,r.model);return _u(d,i,r.model.columns.length,n),d}let l=r.gap??2;for(let o=0;o<l;o++){if(!u.room()){u.continue();break}u.sheet.addRow([])}return _u(u,i,r.model.columns.length,n),u}var C0="application/pdf",$r=[241,245,249],y0=[250,250,250],Le=[30,41,59];async function w0(){let e=new Error('[datagrid] PDF export needs "jspdf" and "jspdf-autotable". Install them with: npm i jspdf jspdf-autotable'),t;try{let[u,r]=await Promise.all([import("jspdf"),import("jspdf-autotable")]);t={jsPDF:u.jsPDF??u.default,autoTable:r.default??r}}catch{throw e}if(typeof t.jsPDF!="function"||typeof t.autoTable!="function")throw e;return t}var gn="helvetica",E0=/[^\u0000-\u00ff\u0152\u0153\u0160\u0161\u0178\u017d\u017e\u0192\u02c6\u02dc\u2013\u2014\u2018\u2019\u201a\u201c\u201d\u201e\u2020\u2021\u2022\u2026\u2030\u2039\u203a\u20ac\u2122]/u;function A0(e,t){let u=function*(){for(let r of t.headerBlock??[])yield r.text;for(let r of t.footerBlock??[])yield r.text;for(let r of[{model:e,title:void 0},...t.additionalGrids??[]]){r.title&&(yield r.title);for(let n of r.model.columns)yield n.header;for(let n of r.model.rows)for(let a of n.cells)yield a.text;for(let n of r.model.totals??[])n&&(yield n.text)}};for(let r of u()){let n=E0.exec(r);if(n)return n[0]}return null}function x0(e,t,u){let r,n;if(typeof e=="string")r=atob(e.slice(0,8)),n=e;else{let a=e instanceof Uint8Array?e:new Uint8Array(e),i=[];for(let l=0;l<a.length;l+=32768)i.push(String.fromCharCode.apply(null,a.subarray(l,l+32768)));n=i.join(""),r=n.slice(0,4)}if(!r.startsWith("\0\0\0")){let a=r.startsWith("OTTO")?" (it is OpenType-CFF, .otf)":r.startsWith("wOF")?" (it is WOFF)":"";throw new Error(`[datagrid] PDF export: font "${t}" (${u}) is not a TrueType .ttf file${a}. jsPDF embeds TrueType only.`)}return n}function b0(e,t){let u=[["normal",t.normal],["bold",t.bold??t.normal],["italic",t.italic??t.normal],["bolditalic",t.boldItalic??t.bold??t.italic??t.normal]];for(let[r,n]of u){let a=`${t.family}-${r}.ttf`;e.addFileToVFS(a,x0(n,t.family,r)),e.addFont(a,t.family,r)}return t.family}function un(e,t,u,r,n){if(!t?.length)return u;let a=e.internal.pageSize.getWidth(),i=u;for(let l of t){let o=l.fontSize??10;e.setFontSize(o),e.setFont(n,l.fontStyle??"normal");let d=l.color??Le;e.setTextColor(d[0],d[1],d[2]);let h=l.align??"left",c=h==="center"?a/2:h==="right"?a-r:r;i+=o*.353,e.text(l.text,c,i,{align:h}),i+=l.spacing??2}return e.setTextColor(Le[0],Le[1],Le[2]),i}function v0(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 fn(e,t,u,r,n,a,i){let l=r.styled!==!1,o=r.margin??14,d=i?.from??0,h=i?.to??u.rows.length,c=u.rows.slice(d,h).map(f=>f.cells.map(w=>w.text)),g=l&&r.totalsRow!==!1&&u.totals&&(!i||i.withTotals)?[u.totals.map(f=>f?.text??"")]:void 0;return t(e,{startY:n,margin:{left:o,right:o},head:a&&u.columns.length>0?[u.columns.map(f=>f.header)]:void 0,body:c,foot:g,theme:l?"grid":"plain",showHead:r.repeatHeaders===!1?"firstPage":"everyPage",showFoot:g?"lastPage":"never",styles:{...r.font?{font:r.font.family}:{},fontSize:8,cellPadding:2,textColor:Le},headStyles:{fillColor:$r,textColor:Le,fontStyle:"bold"},footStyles:{fillColor:$r,textColor:Le,fontStyle:"bold"},alternateRowStyles:l?{fillColor:y0}:void 0,columnStyles:l?Object.fromEntries(u.columns.map((f,w)=>[w,{halign:f.align}])):void 0,didParseCell:f=>{let w,F=-1;f.section==="head"?w="header":f.section==="foot"?w="totals":(F=d+f.row.index,w=u.rows[F]?.kind==="group"?"group":"data"),w==="group"&&(f.cell.styles.fontStyle="bold",f.cell.styles.fillColor=$r,f.column.index===0&&(f.cell.styles.cellPadding={top:2,right:2,bottom:2,left:2+(u.rows[F]?.level??0)*4}));let x=r.customizeCell;if(!x)return;let k=u.columns[f.column.index],R=F>=0?u.rows[F]?.cells[f.column.index]:void 0;v0(f.cell,x({kind:w,columnId:k?.id??null,text:Array.isArray(f.cell.text)?f.cell.text.join(" "):String(f.cell.text),value:R?.value,rowIndex:F,columnIndex:f.column.index}))}}),e.lastAutoTable?.finalY??n}function F0(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 a=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: ${a}`)}})}function D0(e,t){let u=t.pageNumbers;if(!u)return;let r=t.margin??14,n=e.getNumberOfPages(),a=e.internal.pageSize.getWidth(),i=e.internal.pageSize.getHeight();for(let l=1;l<=n;l++){e.setPage(l),e.setFontSize(8),e.setFont(t.font?.family??gn,"normal"),e.setTextColor(148,163,184);let o=typeof u=="function"?u(l,n):`${l} / ${n}`;e.text(o,a-r,i-8,{align:"right"})}e.setTextColor(Le[0],Le[1],Le[2])}var S0=400,B0=1e3;async function k0(e,t,u,r,n,a,i){let l=u.rows.length,o=Math.max(1,r.sliceRows||B0),d=n,h=0;for(;h<l;){if(r.signal?.aborted)throw new ft;let c=Math.min(l,h+o);h>0&&e.addPage(),d=fn(e,t,u,r,h===0?n:i,a,{from:h,to:c,withTotals:c>=l}),h=c,r.onProgress?.(h/l),h<l&&await new Promise(g=>setTimeout(g,0))}return d}async function T0(e,t={}){if(t.signal?.aborted)throw new ft;let{jsPDF:u,autoTable:r}=await w0(),n=t.margin??14,a=new u({orientation:t.orientation??"landscape",unit:"mm",format:t.pageSize??"a4"}),i=t.font?b0(a,t.font):gn;if(!t.font){let d=A0(e,t);if(d!==null){let h=d.codePointAt(0).toString(16).toUpperCase().padStart(4,"0");console.warn(`[datagrid] PDF export: "${d}" (U+${h}) cannot be drawn by the built-in PDF font and will come out as the wrong character. Pass \`font\` (a TrueType .ttf covering your language) in the PDF export options \u2014 see PdfExportOptions.font.`)}}F0(a,t.images);let l=n;l=un(a,t.headerBlock,l,n,i),l=t.sliceRows!==0&&e.rows.length>S0?await k0(a,r,e,t,l+2,t.includeHeaders!==!1,n):fn(a,r,e,t,l+2,t.includeHeaders!==!1);for(let d of t.additionalGrids??[]){if(t.signal?.aborted)throw new ft;l=N0(a,r,d,t,l,n)}if(t.onProgress?.(1),t.footerBlock?.length){let d=t.footerBlock.reduce((h,c)=>h+(c.fontSize??10)*.353+(c.spacing??2),4);l+d>a.internal.pageSize.getHeight()-n&&(a.addPage(),l=n),un(a,t.footerBlock,l+4,n,i)}D0(a,t);let o=a.output("arraybuffer");return new Blob([o],{type:C0})}function N0(e,t,u,r,n,a){let i=n;return u.pageBreak?(e.addPage(),i=a):i+=8,u.title&&(i=un(e,[{text:u.title,fontSize:12,fontStyle:"bold"}],i,a,r.font?.family??gn)),fn(e,t,u.model,r,i+2,u.includeHeaders!==!1)}function Ui(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 Cn(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,period:e.opInPeriod,periods:{today:e.periodToday,yesterday:e.periodYesterday,tomorrow:e.periodTomorrow,thisWeek:e.periodThisWeek,lastWeek:e.periodLastWeek,nextWeek:e.periodNextWeek,thisMonth:e.periodThisMonth,lastMonth:e.periodLastMonth,nextMonth:e.periodNextMonth,thisQuarter:e.periodThisQuarter,lastQuarter:e.periodLastQuarter,nextQuarter:e.periodNextQuarter,thisYear:e.periodThisYear,lastYear:e.periodLastYear,nextYear:e.periodNextYear,yearToDate:e.periodYearToDate,lastDays:e.periodLastDays,nextDays:e.periodNextDays},and:e.filterAnd.toLocaleLowerCase(),or:e.filterOr.toLocaleLowerCase(),blank:e.chartBlankCategory,listSeparator:", ",ofN:e.opValuesCount}}var R0=Cn(eu("en"));function qi(e,t,u={}){if(!e)return null;let r={...R0,...u.labels},n=u.maxListValues??3,a=d=>{let h=t.getDef(d);return h?.headerName??h?.field??d},i=(d,h)=>{if(h==null||h==="")return r.blank;let c=Ct(t.getDef(d),h);return c!==null?c:h instanceof Date?h.toLocaleDateString():String(h)},l=(d,h)=>{if(Jt(d)){let f=d.nodes.map(F=>l(F,h+1)).filter(Boolean);if(f.length===0)return"";let w=f.join(` ${r[d.logic]} `);return h>0&&f.length>1?`(${w})`:w}let c=a(d.columnId);if(d.operator==="period"){let f=d.value,w=f?r.periods[f.period]:void 0;return`${c}: ${w?w.replace("{n}",String(f?.days??"")):r.blank}`}let g=r[d.operator];switch(d.operator){case"isnull":case"isnotnull":return`${c} ${g}`;case"in":{let f=Array.isArray(d.value)?d.value:[d.value];return f.length>n?`${c} ${g} ${r.ofN.replace("{n}",String(f.length))}`:`${c} ${g} ${f.map(w=>i(d.columnId,w)).join(r.listSeparator)}`}case"between":{let[f,w]=Array.isArray(d.value)?d.value:[void 0,void 0];return`${c} ${g} ${i(d.columnId,f)} \u2013 ${i(d.columnId,w)}`}default:return`${c} ${g} ${i(d.columnId,d.value)}`}},o=l(e,0);return o===""?null:o}function M0(e,t,u,r,n){let a=e,i=a.findIndex(h=>n(h)===t);if(i<0)return{rows:a,moved:!1,fromIndex:-1,toIndex:-1};let l;if(u===null)l=a.length;else{let h=a.findIndex(c=>n(c)===u);if(h<0)return{rows:a,moved:!1,fromIndex:i,toIndex:-1};if(h===i)return{rows:a,moved:!1,fromIndex:i,toIndex:i};l=r==="before"?h:h+1}if(l>i&&(l-=1),l===i)return{rows:a,moved:!1,fromIndex:i,toIndex:i};let o=a.slice(),[d]=o.splice(i,1);return o.splice(l,0,d),{rows:o,moved:!0,fromIndex:i,toIndex:l}}var I0=["columnStateChanged","sortChanged","filterChanged","groupChanged","chartOpened","chartChanged","chartClosed","treeRowToggled"];function ui(e){try{return globalThis[e]??null}catch{return null}}function _i(e,t){if(!t.enabled)return()=>{};let u=t.storageKey??`kanuni-datagrid-${e.gridId}`,r=t.type??"localStorage",n=t.saveDelay??500,a=!1,i=c=>{if(!(a||!c))try{e.applyViewState(c)}catch{}};if(r==="custom"){let c=null;try{c=t.customLoad?.()??null}catch{c=null}c&&typeof c.then=="function"?c.then(i,()=>{}):i(c)}else{let c=ui(r);if(c){let g=null,f=!0;try{g=c.getItem(u)}catch{f=!1}if(f&&g)try{i(JSON.parse(g))}catch{try{c.removeItem(u)}catch{}}}}let l,o=()=>{let c=e.getViewState();if(r==="custom"){try{Promise.resolve(t.customSave?.(c)).catch(()=>{})}catch{}return}let g=ui(r);if(g)try{g.setItem(u,JSON.stringify(c))}catch{}},d=()=>{l!==void 0&&clearTimeout(l),l=setTimeout(o,n)},h=I0.map(c=>e.events.on(c,d));return()=>{a=!0,h.forEach(c=>c()),l!==void 0&&(clearTimeout(l),l=void 0,o())}}var ri=150,Mu=40;function L0(e,t){return e.id?e.id:e.field?e.field:`col_${t}`}function _t(e,t,u){let r=Math.max(e,t);return u!=null&&(r=Math.min(r,u)),r}var P0=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,a)=>{let i={...this.options.defaultColumnDef,...n},l=L0(i,a);if(r.has(l)){let o=`[datagrid] duplicate column id "${l}" \u2014 set an explicit \`id\` on one of the columns.`;this.options.debugMode?console.error(o):console.warn(o)}return r.add(l),i.id=l,i}),this.states=new Map,this.defsById=new Map,this.orderIds=[],this.defs.forEach((n,a)=>{let i=n.id;this.defsById.has(i)||this.defsById.set(i,n);let l=n.minWidth??Mu,o=t.get(i),d=u.get(i),h=c=>d!==void 0&&o!==void 0&&o[c]===n[c];this.states.set(i,{id:i,width:h("width")?_t(d.width,l,n.maxWidth):_t(n.width??ri,l,n.maxWidth),pinned:h("pin")?d.pinned:n.pin??null,visible:h("visible")?d.visible:n.visible!==!1,order:d!==void 0?d.order:a}),this.orderIds.push(i)}),this.orderIds.sort((n,a)=>(this.states.get(n)?.order??0)-(this.states.get(a)?.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=_t(e.width??ri,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||Al(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(Yt(e))}setBandCollapsed(e,t){if(e.length===0)return!1;let u=Yt(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=Yt(e),u=!1,r=!1;for(let n of this.orderIds){let a=this.getDef(n),i=this.states.get(n);if(!a||!i?.visible)continue;let l=Ke(a);l.length<e.length||Yt(l.slice(0,e.length))===t&&(a.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=_t(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,a)=>{let i=this.states.get(n);i&&(i.order=a)}),this.version++}applyColumnStates(e){let t=e.filter(n=>this.states.has(n.id)).slice().sort((n,a)=>n.order-a.order);for(let n of t){let a=this.getDef(n.id),i=this.states.get(n.id);!a||!i||(i.width=_t(n.width,a.minWidth??Mu,a.maxWidth),i.pinned=n.pinned,i.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,a)=>{let i=this.states.get(n);i&&(i.order=a)}),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 G0(e,t,u){let r=e.length,n=new Uint32Array(r),a=new Uint32Array(r),i=0,l=0;for(let x=0;x<r;x++){let k=e[x];Number.isNaN(t[k])?a[l++]=k:n[i++]=k}let o=new Uint32Array(i),d=new Uint32Array(i),h=new Float64Array(1),c=new Uint32Array(h.buffer);for(let x=0;x<i;x++){let k=t[n[x]];h[0]=k===0?0:k;let R=c[0],P=c[1];P&2147483648?(R=~R>>>0,P=~P>>>0):P=(P^2147483648)>>>0,u&&(R=~R>>>0,P=~P>>>0),o[x]=R,d[x]=P}let g=new Uint32Array(i);for(let x=0;x<i;x++)g[x]=x;let f=new Uint32Array(i),w=new Uint32Array(256);for(let x=0;x<8;x++){let k=x>=4,R=(x&3)*8,P=k?d:o;w.fill(0);for(let O=0;O<i;O++)w[P[g[O]]>>>R&255]++;if(w[P[g[0]]>>>R&255]===i)continue;let H=0;for(let O=0;O<256;O++){let j=w[O];w[O]=H,H+=j}for(let O=0;O<i;O++){let j=g[O];f[w[P[j]>>>R&255]++]=j}let U=g;g=f,f=U}let F=new Uint32Array(r);for(let x=0;x<i;x++)F[x]=n[g[x]];for(let x=0;x<l;x++)F[i+x]=a[x];return F}var ni=new Map;function O0(e){let t=ni.get(e);return t||(t=new Intl.Collator(e,{numeric:!0,sensitivity:"base"}),ni.set(e,t)),t}function ai(e){return e==null||typeof e=="number"&&Number.isNaN(e)}function V0(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 z0(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 H0(e,t){for(let u of t)if(e.getDef(u.columnId)?.comparator)return!0;return!1}function W0(e,t,u,r){let n=e.length,a=r.columnId,i=r.direction==="desc"?-1:1,l=u.getDataType(a),o=u.getDef(a)?.comparator;if(o){let c=new Array(n),g=new Array(n);for(let f=0;f<n;f++){let w=t[e[f]];c[f]=u.getSortValue(w,a),g[f]=w}return{dir:i,numeric:null,strings:null,values:c,valueRows:g,comparator:o}}if(l==="string"||l==="lookup"){let c=new Array(n);for(let g=0;g<n;g++){let f=u.getSortValue(t[e[g]],a);c[g]=ai(f)?null:String(f)}return{dir:i,numeric:null,strings:c,values:null,valueRows:null,comparator:null}}let d=new Float64Array(n),h=l==="date"?z0:V0;for(let c=0;c<n;c++){let g=u.getSortValue(t[e[c]],a);d[c]=ai(g)?Number.NaN:h(g)}return{dir:i,numeric:d,strings:null,values:null,valueRows:null,comparator:null}}function K0(e,t){let u=e.length,r=[],n=new Map,a=new Int32Array(u);for(let o=0;o<u;o++){let d=e[o];if(d===null){a[o]=-1;continue}let h=n.get(d);h===void 0&&(h=r.length,r.push(d),n.set(d,h)),a[o]=h}let i=Yl(r,t),l=new Float64Array(u);for(let o=0;o<u;o++)l[o]=a[o]===-1?Number.NaN:i[a[o]];return l}function $0(e,t,u,r,n={}){if(r.length===0)return e.slice();let a=O0(n.locale??"en"),i=r.map(c=>W0(e,t,u,c)),l=i.length,o=new Array(e.length),d=!0;for(let c=0;c<e.length;c++)o[c]=c,c>0&&e[c]<e[c-1]&&(d=!1);if(!i.some(c=>c.comparator!==null)&&d&&e.length>=5e4){let c=i.map(w=>w.numeric?w.numeric:K0(w.strings,a)),g=Uint32Array.from(o);for(let w=l-1;w>=0;w--)g=G0(g,c[w],i[w].dir===-1);let f=new Uint32Array(e.length);for(let w=0;w<g.length;w++)f[w]=e[g[w]];return f}o.sort((c,g)=>{for(let f=0;f<l;f++){let w=i[f];if(w.comparator){let F=w.values,x=w.valueRows,k=w.comparator(F[c],F[g],x[c],x[g],w.dir===-1);if(k!==0)return k*w.dir}else if(w.numeric){let F=w.numeric[c],x=w.numeric[g],k=Number.isNaN(F),R=Number.isNaN(x);if(k||R){if(k&&R)continue;return k?1:-1}if(F!==x)return(F<x?-1:1)*w.dir}else{let F=w.strings[c],x=w.strings[g];if(F===null||x===null){if(F===null&&x===null)continue;return F===null?1:-1}let k=a.compare(F,x);if(k!==0)return k*w.dir}}return e[c]-e[g]});let h=new Uint32Array(e.length);for(let c=0;c<o.length;c++)h[c]=e[o[c]];return h}var U0=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 Wi}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 i=0;i<u;i++)r[i]=i;let n=Jl(r,this.rows,e,t.filter,t.searchText,t.externalFilter),a=$0(n,this.rows,e,t.sort,{locale:this.locale});return{nodes:this.nodeCache.project(a,this.rows,this.keyGetter),visibleCount:a.length,totalCount:u}}async getRows(e,t){return this.compute(e,t)}},ji='var Ue=/[\\u0130\\u0131]/,ve=/[\\u0130\\u0131]/g;function P(e){return Ue.test(e)?e.replace(ve,"i").toLowerCase():e.toLowerCase()}var M=-1;var ce=new WeakMap;function Be(e){let t=ce.get(e);if(t!==void 0)return t;let n=Oe(e);return ce.set(e,n),n}function Oe(e){let t=e.resolvedOptions();if(t.sensitivity!=="base"||t.numeric!==true||t.ignorePunctuation||t.usage!=="sort"||t.collation!=="default")return false;let n=[];for(let r=32;r<=126;r++)n.push(String.fromCharCode(r));n.sort(e.compare);for(let r=1;r<n.length;r++)if(e.compare(n[r-1],n[r])===0&&n[r-1].toLowerCase()!==n[r].toLowerCase())return false;for(let r of n)if(e.compare(r,"")===0)return false;return !(e.compare("01","1")!==0||e.compare("0","00")!==0||e.compare("a09z","a9z")!==0||e.compare("9","10")>=0)}function de(e){for(let t=0;t<e.length;t++){let n=e.charCodeAt(t);if(n<32||n>126)return false}return true}function _e(e,t){let n=0,r=0,o=e.length,f=t.length;for(;n<o&&r<f;){let s=e.charCodeAt(n),l=t.charCodeAt(r),a=s>=48&&s<=57,d=l>=48&&l<=57;if(a!==d)return true;if(a){for(;n<o&&e.charCodeAt(n)===48;)n++;for(;r<f&&t.charCodeAt(r)===48;)r++;let b=n,m=r;for(;n<o;){let N=e.charCodeAt(n);if(N<48||N>57)break;n++;}for(;r<f;){let N=t.charCodeAt(r);if(N<48||N>57)break;r++;}let k=n-b;if(k!==r-m)return true;for(let N=0;N<k;N++)if(e.charCodeAt(b+N)!==t.charCodeAt(m+N))return true}else {if(s>=65&&s<=90&&(s+=32),l>=65&&l<=90&&(l+=32),s!==l)return true;n++,r++;}}return n!==o||r!==f}function fe(e,t){let n=e.length,r=new Array(n);for(let b=0;b<n;b++)r[b]=b;r.sort((b,m)=>t.compare(e[b],e[m]));let o=new Int32Array(n);if(n===0)return o;let s=Be(t)?new Uint8Array(n):null,l=r[0],a=s?de(e[l])?1:2:0;s&&(s[l]=a);let d=0;o[l]=0;for(let b=1;b<n;b++){let m=r[b],k=e[l],N=e[m],y=0;s&&(y=s[m],y===0&&(y=de(N)?1:2,s[m]=y)),(a===1&&y===1&&_e(k,N)||t.compare(k,N)!==0)&&d++,o[m]=d,l=m,a=y;}return o}function me(e,t,n){let r=e.length,o=new Uint32Array(r),f=new Uint32Array(r),s=0,l=0;for(let i=0;i<r;i++){let C=e[i];Number.isNaN(t[C])?f[l++]=C:o[s++]=C;}let a=new Uint32Array(s),d=new Uint32Array(s),b=new Float64Array(1),m=new Uint32Array(b.buffer);for(let i=0;i<s;i++){let C=t[o[i]];b[0]=C===0?0:C;let g=m[0],p=m[1];p&2147483648?(g=~g>>>0,p=~p>>>0):p=(p^2147483648)>>>0,n&&(g=~g>>>0,p=~p>>>0),a[i]=g,d[i]=p;}let k=new Uint32Array(s);for(let i=0;i<s;i++)k[i]=i;let N=new Uint32Array(s),y=new Uint32Array(256);for(let i=0;i<8;i++){let C=i>=4,g=(i&3)*8,p=C?d:a;y.fill(0);for(let x=0;x<s;x++)y[p[k[x]]>>>g&255]++;if(y[p[k[0]]>>>g&255]===s)continue;let w=0;for(let x=0;x<256;x++){let E=y[x];y[x]=w,w+=E;}for(let x=0;x<s;x++){let E=k[x];N[y[p[E]>>>g&255]++]=E;}let D=k;k=N,N=D;}let I=new Uint32Array(r);for(let i=0;i<s;i++)I[i]=o[k[i]];for(let i=0;i<l;i++)I[s+i]=f[i];return I}function be(e){return e.nodes!==void 0}var ge=new Map;function Ve(e){let t=ge.get(e);return t||(t=new Intl.Collator(e,{numeric:true,sensitivity:"base"}),ge.set(e,t)),t}var he=new WeakMap;function qe(e,t,n){let r=he.get(e);r||(r=new Map,he.set(e,r));let o=r.get(n);return (!o||o.length!==t.length)&&(o=fe(t,Ve(n)),r.set(n,o)),o}var ye=new WeakMap;function Ce(e,t){let n=ye.get(e);if(!n)n=t.map(P),ye.set(e,n);else for(let r=n.length;r<t.length;r++)n.push(P(t[r]));return n}function R(e){if(e instanceof Date)return e.getTime();if(typeof e=="number")return e;if(typeof e=="boolean")return e?1:0;if(e==null)return Number.NaN;let t=Number(e);if(!Number.isNaN(t))return t;let n=Date.parse(String(e));return Number.isNaN(n)?Number.NaN:n}function Pe(e,t){let n=e.dictionary,r=new Uint8Array(n.length),o=false,f=t.operator;if(f==="isnull")return {mask:r,nilPasses:true};if(f==="isnotnull")return r.fill(1),{mask:r,nilPasses:false};let s=Ce(e,n),l=t.value==null?"":P(String(t.value));switch(f){case "=":case "<>":{let a=t.value===null||t.value===void 0;for(let d=0;d<n.length;d++){let b=a?false:Ge(n[d],t.value);r[d]=(f==="="?b:!b)?1:0;}o=f==="="?a:!a;break}case "contains":for(let a=0;a<n.length;a++)r[a]=s[a].includes(l)?1:0;break;case "notcontains":for(let a=0;a<n.length;a++)r[a]=s[a].includes(l)?0:1;o=true,l===""&&(o=false);break;case "startswith":for(let a=0;a<n.length;a++)r[a]=s[a].startsWith(l)?1:0;break;case "endswith":for(let a=0;a<n.length;a++)r[a]=s[a].endsWith(l)?1:0;break;case "in":{let a=We(t.value);for(let d=0;d<n.length;d++)r[d]=a.has(Y(n[d]))?1:0;break}case ">":case ">=":case "<":case "<=":{for(let a=0;a<n.length;a++){let d=Q(n[a],t.value);r[a]=f===">"&&d>0||f===">="&&d>=0||f==="<"&&d<0||f==="<="&&d<=0?1:0;}break}case "between":{if(!Array.isArray(t.value)||t.value.length<2)break;let[a,d]=t.value;for(let b=0;b<n.length;b++)r[b]=Q(n[b],a)>=0&&Q(n[b],d)<=0?1:0;break}default:r.fill(1),o=true;}return {mask:r,nilPasses:o}}function Y(e){if(e instanceof Date)return e.getTime();if(typeof e=="number")return e;if(typeof e=="boolean")return e?1:0;let t=Number(e);return Number.isNaN(t)?String(e).toLowerCase():t}function Ge(e,t){return Y(e)===Y(t)}function We(e){let t=new Set,n=Array.isArray(e)?e:[];for(let r of n){if(r==null)continue;let o=Y(r);typeof o=="number"&&Number.isNaN(o)||t.add(o);}return t}function ze(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 Ke(e){let t=J.get(e);return t||(t=ze(e.value),J.set(e,t)),t}function Q(e,t){let n=R(e),r=R(t);if(!Number.isNaN(n)&&!Number.isNaN(r))return n-r;let o=String(e).toLowerCase(),f=String(t).toLowerCase();return o<f?-1:o>f?1:0}function He(e,t){if(t.operator==="in")return !Number.isNaN(e)&&Ke(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?"":P(String(t.value)),f=r.toLowerCase();return t.operator==="contains"?f.includes(o):t.operator==="notcontains"?!f.includes(o):t.operator==="startswith"?f.startsWith(o):f.endsWith(o)}default:return true}}function Z(e,t,n){if(be(e))return e.nodes.length===0?true:e.logic==="or"?e.nodes.some(l=>Z(l,t,n)):e.nodes.every(l=>Z(l,t,n));let r=t.columns[e.columnId];if(!r)return true;if(r.kind==="numeric")return He(r.values[n],e);let o=ee.get(e),f=o??Pe(r,e);o||ee.set(e,f);let s=r.codes[n];return s===M?f.nilPasses:f.mask[s]===1}var ee=new WeakMap,Ye=65535;function te(e,t){ee=new WeakMap,J=new WeakMap;let{rowCount:n}=e,r=t.locale??"en",o=P(t.searchText.trim()),f=!!t.filter,s=o.length>0,l=[];if(s){let y=/^[0-9.+\\-einftya]*$/.test(o),I=(C,g,p)=>{let w=Ce(g,C),D=new Uint8Array(C.length),x=false;for(let E=0;E<w.length;E++)(w[E].includes(o)||p!==void 0&&p.has(C[E]))&&(D[E]=1,x=true);return x?D:null},i=new Map;if(t.searchLabelHits)for(let[C,g]of Object.entries(t.searchLabelHits))i.set(C,new Set(g));for(let C of t.searchColumns){let g=e.columns[C];if(!g)continue;let p=i.get(C);if(g.kind==="text"){let w=I(g.dictionary,g,p);w&&l.push({codes:g.codes,mask:w,values:null,numberHits:null,scanText:true});}else if(g.searchDictionary&&g.searchCodes){let w=I(g.searchDictionary,g,p);w&&l.push({codes:g.searchCodes,mask:w,values:null,numberHits:null,scanText:true});}else {let w=null;if(p)for(let D of p){let x=Number(D);Number.isNaN(x)||(w??=new Set).add(x);}(y||w)&&l.push({codes:null,mask:null,values:g.values,numberHits:w,scanText:y});}}}let a=t.onProgress,d=t.isCancelled,b={order:new Uint32Array(0),cancelled:true},m;if(!f&&!s){m=new Uint32Array(n);for(let y=0;y<n;y++)m[y]=y;}else {let y=new Uint32Array(n),I=0;for(let i=0;i<n;i++){if((i&Ye)===0){if(d?.())return b;a?.("filtering",n===0?1:i/n);}if(!(f&&!Z(t.filter,e,i))){if(s){let C=false;for(let g of l)if(g.codes&&g.mask){let p=g.codes[i];if(p!==M&&g.mask[p]===1){C=true;break}}else if(g.values){let p=g.values[i];if(!Number.isNaN(p)){if(g.numberHits!==null&&g.numberHits.has(p)){C=true;break}if(g.scanText&&String(p).toLowerCase().includes(o)){C=true;break}}}if(!C)continue}y[I++]=i;}}m=y.subarray(0,I),a?.("filtering",1);}if(t.sort.length===0)return {order:m.slice()};if(d?.())return b;let k=[];for(let y of t.sort){let I=e.columns[y.columnId];if(!I)continue;let i=y.direction==="desc"?-1:1;I.kind==="numeric"?k.push({dir:i,numeric:I.values,codes:null,ranks:null}):k.push({dir:i,numeric:null,codes:I.codes,ranks:qe(I,I.dictionary,r)});}if(k.length===0)return {order:m.slice()};if(m.length>=5e4){let y=[];for(let i of k){if(i.numeric){y.push(i.numeric);continue}let C=i.codes,g=i.ranks,p=new Float64Array(n);for(let w=0;w<n;w++){let D=C[w];p[w]=D===M?Number.NaN:g[D];}y.push(p);}let I=m;for(let i=k.length-1;i>=0;i--){if(d?.())return b;a?.("sorting",(k.length-1-i)/k.length),I=me(I,y[i],k[i].dir===-1);}return a?.("sorting",1),{order:I===m?m.slice():I}}a?.("sorting",null);let N=Array.from(m);return N.sort((y,I)=>{for(let i of k)if(i.numeric){let C=i.numeric[y],g=i.numeric[I],p=Number.isNaN(C),w=Number.isNaN(g);if(p||w){if(p&&w)continue;return p?1:-1}if(C!==g)return (C<g?-1:1)*i.dir}else {let C=i.codes[y],g=i.codes[I];if(C===M||g===M){if(C===M&&g===M)continue;return C===M?1:-1}let p=i.ranks[C],w=i.ranks[g];if(p!==w)return (p<w?-1:1)*i.dir}return y-I}),{order:Uint32Array.from(N)}}var $e=30,pe="Other",Xe=1e4;var _=864e5,je=60,Qe=20,$=2e3,ne=["day","week","month","quarter","year"],Ne={day:_,week:7*_,month:30.44*_,quarter:91.31*_,year:365.25*_};function ke(e,t){let n=new Date(e),r=n.getUTCFullYear(),o=n.getUTCMonth();switch(t){case "day":return Date.UTC(r,o,n.getUTCDate());case "week":{let f=Date.UTC(r,o,n.getUTCDate()),s=(new Date(f).getUTCDay()+6)%7;return f-s*_}case "month":return Date.UTC(r,o,1);case "quarter":return Date.UTC(r,Math.floor(o/3)*3,1);default:return Date.UTC(r,0,1)}}function Ie(e,t){let n=new Date(e),r=n.getUTCFullYear(),o=n.getUTCMonth();switch(t){case "day":return e+_;case "week":return e+7*_;case "month":return Date.UTC(r,o+1,1);case "quarter":return Date.UTC(r,o+3,1);default:return Date.UTC(r+1,0,1)}}var re=e=>e<10?`0${e}`:String(e);function Je(e,t){let n=new Date(e),r=n.getUTCFullYear();switch(t){case "year":return String(r);case "quarter":return `${r}-Q${Math.floor(n.getUTCMonth()/3)+1}`;case "month":return `${r}-${re(n.getUTCMonth()+1)}`;default:return `${r}-${re(n.getUTCMonth()+1)}-${re(n.getUTCDate())}`}}function Ze(e){if(!(e>0)||!Number.isFinite(e))return 1;let n=10**Math.floor(Math.log10(e)),r=e/n;return (r<=1?1:r<=2?2:r<=5?5:10)*n}function et(e,t,n){let r=Number.isFinite(t)&&Number.isFinite(n)?Math.max(0,n-t):0;if(e.kind==="date"){let a=e.unit??"auto",d,b=false;if(a==="auto")d=ne.find(m=>r/Ne[m]+1<=je)??"year";else for(d=a;r/Ne[d]+1>$;){let m=ne[ne.indexOf(d)+1];if(!m)break;d=m,b=true;}return {info:{kind:"date",unit:d,adjusted:b},keyOf:m=>Number.isFinite(m)?ke(m,d):Number.NaN,endOf:m=>Ie(m,d),labelOf:m=>Je(m,d),keys:(m,k)=>{let N=[];if(!Number.isFinite(m)||!Number.isFinite(k))return N;for(let y=ke(m,d);y<=k&&N.length<$;y=Ie(y,d))N.push(y);return N}}}let o=e.size&&e.size>0?e.size:Ze(r/Math.max(1,e.bins??Qe));(!(o>0)||!Number.isFinite(o))&&(o=1);let f=false;for(;r/o+1>$;)o*=2,f=true;let s=o;return {info:{kind:"number",size:s,adjusted:f},keyOf:a=>Number.isFinite(a)?Math.floor(a/s)*s:Number.NaN,endOf:a=>a+s,labelOf:a=>{let d=b=>String(Number(b.toPrecision(12)));return `${d(a)} \\u2013 ${d(a+s)}`},keys:(a,d)=>{let b=[];if(!Number.isFinite(a)||!Number.isFinite(d))return b;let m=Math.floor(a/s)*s;for(let k=m;k<=d&&b.length<$;k+=s)b.push(k);return b}}}function tt(e,t){if(e==null)return Number.NaN;if(e instanceof Date)return e.getTime();if(typeof e=="number")return e;if(t==="number")return Number(e);let n=Number(e);return Number.isNaN(n)?Date.parse(String(e)):n}function nt(e,t){if(!e)return {};let n=new Float64Array(t.length),r=new Float64Array(t.length);for(let o=0;o<t.length;o++){let f=t[o].start;n[o]=f,r[o]=Number.isNaN(f)?Number.NaN:e.endOf(f);}return {bucket:e.info,bucketStarts:n,bucketEnds:r}}var K=-1;function we(e,t,n,r){let o=Math.max(1,n.maxCategories??$e),f=n.otherBucket!==false,s=n.series.length,l=e[n.categoryColumnId],a=n.series.map(u=>e[u.columnId]),d=n.series.map(u=>u.aggregate==="countDistinct"),b=new Map,m=null,k=0,N=false,y=(u,c=Number.NaN)=>({label:u,sum:new Float64Array(s),numericCount:new Float64Array(s),count:new Float64Array(s),min:new Float64Array(s).fill(Number.POSITIVE_INFINITY),max:new Float64Array(s).fill(Number.NEGATIVE_INFINITY),distinct:d.map(h=>h?new Set:null),seq:k++,start:c}),I=(u,c)=>{if(!l)return Number.NaN;if(l.kind==="numeric")return l.values[u];let h=l.codes[u];return h===K?Number.NaN:tt(l.dictionary[h],c)},i=n.categoryBucket,C=null,g=Number.POSITIVE_INFINITY,p=Number.NEGATIVE_INFINITY;if(i){for(let u=0;u<t.length;u++){let c=I(t[u],i.kind);Number.isFinite(c)&&(c<g&&(g=c),c>p&&(p=c));}C=et(i,g,p);}let w=0,D=1,x=2,E=new Uint8Array(s),ae=new Array(s).fill(null),se=new Array(s).fill(null),ie=new Array(s).fill(null);for(let u=0;u<s;u++){let c=n.series[u].aggregate;E[u]=c==="count"?w:d[u]?D:x;let h=a[u];if(!h)continue;if(h.kind==="numeric"){ae[u]=h.values;continue}se[u]=h.codes;let T=h.dictionary,F=new Float64Array(T.length);for(let S=0;S<T.length;S++){let A=T[S],z=A===""?Number.NaN:Number(A);F[S]=Number.isFinite(z)?z:Number.NaN;}ie[u]=F;}for(let u=0;u<t.length;u++){let c=t[u],h,T,F=Number.NaN;if(C&&i)F=C.keyOf(I(c,i.kind)),h=Number.isNaN(F)?"":F,T=Number.isNaN(F)?"":C.labelOf(F);else if(!l)h=T="";else if(l.kind==="text"){let A=l.codes[c];h=T=A===K?"":l.dictionary[A];}else {let A=l.values[c];h=T=Number.isNaN(A)?"":String(A);}let S=b.get(h);S||(b.size>=Xe?(N=true,m??=y(n.otherLabel??pe),S=m):(S=y(T,F),b.set(h,S)));for(let A=0;A<s;A++){let z=E[A],L=ae[A],V=se[A];if(z===w){(L!==null?!Number.isNaN(L[c]):V!==null&&V[c]!==K)&&S.count[A]++;continue}if(z===D){let q=S.distinct[A];if(q)if(V!==null){let le=V[c];le!==K&&q.add(le);}else L!==null&&!Number.isNaN(L[c])&&q.add(L[c]);continue}let O;if(L!==null)O=L[c];else if(V!==null){let q=V[c];O=q===K?Number.NaN:ie[A][q];}else O=Number.NaN;Number.isNaN(O)||(S.numericCount[A]++,S.sum[A]+=O,O<S.min[A]&&(S.min[A]=O),O>S.max[A]&&(S.max[A]=O));}}let Me=(u,c)=>{for(let h=0;h<s;h++){u.sum[h]+=c.sum[h],u.numericCount[h]+=c.numericCount[h],u.count[h]+=c.count[h],c.min[h]<u.min[h]&&(u.min[h]=c.min[h]),c.max[h]>u.max[h]&&(u.max[h]=c.max[h]);let T=u.distinct[h],F=c.distinct[h];if(T&&F)for(let S of F)T.add(S);}},ue=(u,c)=>{switch(n.series[c].aggregate){case "count":return u.count[c];case "countDistinct":return u.distinct[c]?.size??0;case "sum":return u.numericCount[c]>0?u.sum[c]:Number.NaN;case "avg":return u.numericCount[c]>0?u.sum[c]/u.numericCount[c]:Number.NaN;case "min":return u.numericCount[c]>0?u.min[c]:Number.NaN;case "max":return u.numericCount[c]>0?u.max[c]:Number.NaN;default:return Number.NaN}},W=[...b.values()],Re=W.length+(m?1:0),H=u=>{if(s===0)return Number.NEGATIVE_INFINITY;let c=ue(u,0);return Number.isNaN(c)?Number.NEGATIVE_INFINITY:c},v;if(C){v=C.keys(g,p).map(c=>b.get(c)??y(C.labelOf(c),c));let u=b.get("");u&&v.push(u);}else {let u=W;if(W.length>o){let c=[...W].sort((h,T)=>H(T)-H(h));if(u=c.slice(0,o),f){m??=y(n.otherLabel??pe);for(let h of c.slice(o))Me(m,h);}}switch(n.categoryOrder??"value-desc"){case "category-asc":u=[...u].sort((c,h)=>c.label.localeCompare(h.label));break;case "first-seen":u=[...u].sort((c,h)=>c.seq-h.seq);break;default:u=[...u].sort((c,h)=>H(h)-H(c));}v=m?[...u,m]:u;}return {categories:v.map(u=>u.label),series:n.series.map((u,c)=>{let h=new Float64Array(v.length);for(let T=0;T<v.length;T++)h[T]=ue(v[T],c);return {label:u.label??r.series[c]??u.columnId,columnId:u.columnId,aggregate:u.aggregate,values:h}}),truncated:C?false:W.length>o||N,otherIndex:C?null:m?v.length-1:null,rowCount:t.length,categoryCount:C?v.length:Re,rankingExact:!N,...nt(C,v)}}function xe(){let e=new WeakMap;return {get(t){let n=e.get(t);if(n===void 0){n=new Map;let r=t.kind==="text"?t.dictionary:t.searchDictionary??[];for(let o=0;o<r.length;o++)n.set(r[o],o);e.set(t,n);}return n}}}function Ae(e,t,n){let r=n.get(e);return r===void 0&&(r=t.length,t.push(e),n.set(e,r)),r}function Te(e,t,n){for(let r of t){let o=e[r.columnId];if(!o)continue;let{indices:f}=r;if(o.kind==="numeric"){let s=r.numbers??[];for(let l=0;l<f.length;l++)o.values[f[l]]=s[l];if(o.searchCodes&&o.searchDictionary&&r.labels){let l=n.get(o);for(let a=0;a<f.length;a++){let d=r.labels[a];o.searchCodes[f[a]]=d===null?M:Ae(d,o.searchDictionary,l);}}}else {let s=r.labels??[],l=n.get(o);for(let a=0;a<f.length;a++){let d=s[a];o.codes[f[a]]=d===null?M:Ae(d,o.dictionary,l);}}}}var Se=self,G=new Map;function U(e,t){Se.postMessage(e,t??[]);}function Ee(e,t){for(let n of e)if(n.kind==="numeric"){let r={kind:"numeric",values:new Float64Array(n.buffer)};n.searchBuffer&&n.searchDictionary&&(r.searchCodes=new Int32Array(n.searchBuffer),r.searchDictionary=n.searchDictionary),t[n.columnId]=r;}else t[n.columnId]={kind:"text",codes:new Int32Array(n.buffer),dictionary:n.dictionary??[]};}function rt(e){let t={};Ee(e.columns,t),G.set(e.gridId,{dataVersion:e.dataVersion,table:{rowCount:e.rowCount,columns:t}}),U({action:"ready",gridId:e.gridId,dataVersion:e.dataVersion});}function ot(e){let t=G.get(e.gridId);!t||t.dataVersion!==e.dataVersion||(Ee(e.columns,t.table.columns),U({action:"ready",gridId:e.gridId,dataVersion:e.dataVersion}));}var B=new Set,j=(e,t)=>`${e}:${t}`,X=new Map,oe=new Map;function De(e,t){t>(X.get(e)??0)&&X.set(e,t);}function Fe(e,t){let n=j(e,t);return ()=>B.has(n)||t<=(oe.get(e)??0)}function at(e){De(e.gridId,e.requestId);let t=G.get(e.gridId);if(!t||t.dataVersion!==e.dataVersion)return;let n=j(e.gridId,e.requestId),r=Fe(e.gridId,e.requestId);if(r()){B.delete(n),U({action:"cancelled",gridId:e.gridId,requestId:e.requestId});return}try{let{order:o,cancelled:f}=te(t.table,{sort:e.sort,filter:e.filter,searchText:e.searchText,searchColumns:e.searchColumns,searchLabelHits:e.searchLabelHits,locale:e.locale,onProgress:(s,l)=>U({action:"progress",gridId:e.gridId,dataVersion:e.dataVersion,requestId:e.requestId,phase:s,fraction:l}),isCancelled:r});if(f){B.delete(n),U({action:"cancelled",gridId:e.gridId,requestId:e.requestId});return}U({action:"result",gridId:e.gridId,dataVersion:e.dataVersion,requestId:e.requestId,order:o.buffer,visibleCount:o.length},[o.buffer]),B.delete(n);}catch(o){U({action:"error",gridId:e.gridId,requestId:e.requestId,message:o instanceof Error?o.message:String(o)});}}function st(e){De(e.gridId,e.requestId);let t=G.get(e.gridId);if(!t||t.dataVersion!==e.dataVersion)return;let n=j(e.gridId,e.requestId),r=Fe(e.gridId,e.requestId);if(r()){B.delete(n),U({action:"cancelled",gridId:e.gridId,requestId:e.requestId});return}try{let{order:o,cancelled:f}=te(t.table,{sort:[],filter:e.filter,searchText:e.searchText,searchColumns:e.searchColumns,searchLabelHits:e.searchLabelHits,locale:e.locale,isCancelled:r});if(f){B.delete(n),U({action:"cancelled",gridId:e.gridId,requestId:e.requestId});return}let s={categoryColumnId:e.categoryColumnId,series:e.series,maxCategories:e.maxCategories,otherBucket:e.otherBucket,categoryOrder:e.categoryOrder,categoryBucket:e.categoryBucket,otherLabel:e.otherLabel},l=we(t.table.columns,o,s,{series:e.series.map(N=>N.label??N.columnId)}),a=l.categories.length,d=new Float64Array(l.series.length*a);for(let N=0;N<l.series.length;N++)d.set(l.series[N].values,N*a);let b=l.bucketStarts,m=l.bucketEnds,k=[d.buffer];b&&m&&k.push(b.buffer,m.buffer),U({action:"aggregated",gridId:e.gridId,dataVersion:e.dataVersion,requestId:e.requestId,categories:l.categories,values:d.buffer,seriesLabels:l.series.map(N=>N.label),truncated:l.truncated,otherIndex:l.otherIndex,rowCount:l.rowCount,categoryCount:l.categoryCount,rankingExact:l.rankingExact,bucket:l.bucket,bucketStarts:b?.buffer,bucketEnds:m?.buffer},k),B.delete(n);}catch(o){U({action:"error",gridId:e.gridId,requestId:e.requestId,message:o instanceof Error?o.message:String(o)});}}var it=xe();function ut(e){let t=G.get(e.gridId);!t||t.dataVersion!==e.fromVersion||(Te(t.table.columns,e.patches,it),t.dataVersion=e.toVersion);}Se.onmessage=e=>{let t=e.data;switch(t.action){case "init":rt(t);break;case "addColumns":ot(t);break;case "patchRows":ut(t);break;case "compute":at(t);break;case "aggregate":st(t);break;case "cancel":t.requestId===void 0?oe.set(t.gridId,X.get(t.gridId)??0):B.add(j(t.gridId,t.requestId));break;case "dispose":G.delete(t.gridId),X.delete(t.gridId),oe.delete(t.gridId);for(let n of B)n.startsWith(`${t.gridId}:`)&&B.delete(n);break}};',Iu=null;function q0(){return ji.length>0}function _0(){if(Iu)return Iu;if(!q0())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 Iu=URL.createObjectURL(new Blob([ji],{type:"text/javascript"})),Iu}var j0=2e4,ii=!1;function Y0(e,t){typeof process<"u"&&process.env&&!t||ii&&!t||(ii=!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.
|
|
7
7
|
The worker ships inside the package and starts from a Blob URL, so this is almost always a Content-Security-Policy. Either allow it:
|
|
8
8
|
Content-Security-Policy: worker-src 'self' blob:
|
|
9
9
|
or serve the worker as a file and point at it:
|
|
@@ -11,6 +11,6 @@ or serve the worker as a file and point at it:
|
|
|
11
11
|
<DataGrid worker={{ url: workerUrl }} />
|
|
12
12
|
Next.js: copy datagrid.worker.js from node_modules/@kanunilabs/datagrid-core/dist/ into public/, then <DataGrid worker={{ url: '/datagrid.worker.js' }} />
|
|
13
13
|
Silence this by turning the worker off on purpose: <DataGrid worker={{ enabled: false }} />
|
|
14
|
-
Cause:`,e))}var L0=1e5,P0=12,G0=2e3,O0=500,Ja=2e5;function Za(){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 Me=class extends Error{constructor(e){super(`[datagrid] ${e}`),this.name="WorkerRequestAbandoned"}},Mu=class extends Error{constructor(){super("[datagrid] compute cancelled"),this.name="WorkerRequestCancelled"}};function V0(){return typeof Worker<"u"}function Vi(e,t){if(e){if("nodes"in e){for(let u of e.nodes)Vi(u,t);return}t.add(e.columnId)}}function Yr(e,t){let u=new Set;for(let r of t.sort)u.add(r.columnId);if(Vi(t.filter,u),(t.searchText??"").trim().length>0)for(let r of _r(e))u.add(r);return[...u].filter(r=>e.getState(un(r)??r)!==void 0)}var Tu=class{mode="client";rows;options;fallback;threshold;worker=null;workerBroken=!1;dataVersion=0;encodeToken=0;encodeQueue=Promise.resolve();initializedVersion=-1;encodedColumns=new Set;lastTimings={encodeMs:0,workerMs:0,projectMs:0};getLastTimings(){return this.lastTimings}encodedMeta=new Map;requestCounter=0;pending=new Map;pendingAggregate=new Map;nodeCache=new Ri;constructor(e,t){this.rows=e,this.options=t,this.threshold=t.threshold??M0,this.fallback=new T0(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 a=this.encodedMeta.get(n);if(!a)return;if(a.displaySource!==null){let o=a.displaySource,d=[],h=[];for(let c of t)h.push(gi(u,o,this.rows[c])),d.push(c);r.push({columnId:n,kind:"text",indices:d,labels:h});continue}let i=a.usesSortValue?o=>u.getSortValue(o,n):o=>u.getCellValue(o,n),l=[];if(a.kind==="numeric"){let o=a.dataType==="date"?Ci:fi,d=[],h=a.hasSearch?[]:void 0;for(let c of t){let g=i(this.rows[c]);if(Ou(g))d.push(Number.NaN),h?.push(null);else{if(!a.hasSearch&&typeof g!="number")return;d.push(o(g)),h?.push(String(g))}l.push(c)}r.push({columnId:n,kind:"numeric",indices:l,numbers:d,labels:h})}else{let o=[];for(let d of t){let h=i(this.rows[d]);o.push(Ou(h)?null:String(h)),l.push(d)}r.push({columnId:n,kind:"text",indices:l,labels:o})}}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&&V0()&&this.rows.length>=this.threshold}async getRows(e,t){if(!this.usesWorker()||D0(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 Me||u instanceof Mu)throw u;return this.workerBroken=!0,this.teardownWorker(),I0(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(R0());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 Mu)}}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,a){if(!r)return Pl(this.rows,e,t,u);let i=yi(this.rows,e,t,u),l=G0;for(;;){let o=performance.now(),d=i.step(l),h=performance.now()-o;if(!d)break;let c=h>0?Math.round(l*P0/h):Ja;if(l=Math.min(Ja,Math.max(O0,c)),await Za(),this.encodeToken!==a)throw new Me("encode cancelled");n?.(i.done/i.total)}return i.finish()}toWire(e,t,u,r,n){let a=un(t);if(this.encodedMeta.set(t,{kind:r.kind,hasSearch:r.kind==="numeric"&&!!r.searchCodes,usesSortValue:u,dataType:a===null?e.getDataType(t):"string",displaySource:a}),r.kind==="numeric"){let l={columnId:t,kind:"numeric",buffer:r.values.buffer};return n.push(l.buffer),r.searchCodes&&r.searchDictionary&&(l.searchBuffer=r.searchCodes.buffer,l.searchDictionary=r.searchDictionary,n.push(l.searchBuffer)),l}let i={columnId:t,kind:"text",buffer:r.codes.buffer,dictionary:r.dictionary};return n.push(i.buffer),i}enqueueEncode(e,t){let u=this.encodeQueue.then(()=>{if(this.encodeToken!==e)throw new Me("encode cancelled");return t(e)});return this.encodeQueue=u.catch(()=>{}),u}async sendColumns(e,t,u,r,n=!1,a=this.encodeToken){let i=this.dataVersion,l=[],o=[],d=this.rows.length>=L0&&u.length>0;for(let c=0;c<u.length;c++){if(d){if(await Za(),this.encodeToken!==a)throw new Me("encode cancelled");n||this.options.onEncodeProgress?.(c/u.length)}let g=t.getDef(u[c])?.calculateSortValue!=null,f=await this.encodeOne(t,u[c],g,d,n?void 0:C=>this.options.onEncodeProgress?.((c+C)/u.length),a);l.push(this.toWire(t,u[c],g,f,o))}d&&!n&&this.options.onEncodeProgress?.(1);let h=r?{action:"init",gridId:this.options.gridId,dataVersion:i,rowCount:this.rows.length,columns:l}:{action:"addColumns",gridId:this.options.gridId,dataVersion:i,columns:l};if(e.postMessage(h,o),r)this.initializedVersion=i,this.encodedColumns=new Set(u);else for(let c of u)this.encodedColumns.add(c)}async computeOnWorker(e,t){let u=this.ensureWorker();this.lastTimings={encodeMs:0,workerMs:0,projectMs:0},await this.enqueueEncode(this.encodeToken,async l=>{let o=Yr(e,t),d=this.initializedVersion!==this.dataVersion,h=d?o:o.filter(g=>!this.encodedColumns.has(g));if(!d&&h.length===0)return;let c=performance.now();if(await this.sendColumns(u,e,h,d,!1,l),this.lastTimings.encodeMs=Math.round(performance.now()-c),this.initializedVersion!==this.dataVersion)throw new Me("data replaced while columns were being encoded")});let r=++this.requestCounter,n=_r(e),a=new Promise((l,o)=>{this.pending.set(r,{resolve:l,reject:o})}),i={action:"compute",gridId:this.options.gridId,dataVersion:this.dataVersion,requestId:r,sort:t.sort,filter:t.filter,searchText:t.searchText,searchColumns:n,searchLabelHits:Na(qr(e,n,Yt(t.searchText))),locale:this.options.locale??"en"};return u.postMessage(i),a}async aggregate(e,t,u){if(!this.usesWorker()||!Fi(u))return null;try{let r=this.ensureWorker(),n=new Set(Yr(e,t));n.add(u.categoryColumnId);for(let g of u.series)n.add(g.columnId);if(this.initializedVersion!==this.dataVersion)return null;await this.enqueueEncode(this.encodeToken,async g=>{if(this.initializedVersion!==this.dataVersion)throw new Me("data replaced while the chart waited to encode");let f=[...n].filter(C=>!this.encodedColumns.has(C));if(f.length!==0&&(await this.sendColumns(r,e,f,!1,!0,g),this.initializedVersion!==this.dataVersion))throw new Me("data replaced while columns were being encoded")});let a=++this.requestCounter,i=_r(e),l=new Promise((g,f)=>{this.pendingAggregate.set(a,{resolve:g,reject:f})}),o={action:"aggregate",gridId:this.options.gridId,dataVersion:this.dataVersion,requestId:a,filter:t.filter,searchText:t.searchText,searchColumns:i,searchLabelHits:Na(qr(e,i,Yt(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(o);let d=await l,h=d.categories.length,c=new Float64Array(d.values);return{categories:d.categories,series:u.series.map((g,f)=>({label:d.seriesLabels[f]??g.columnId,columnId:g.columnId,aggregate:g.aggregate,values:c.subarray(f*h,(f+1)*h)})),truncated:d.truncated,otherIndex:d.otherIndex,rowCount:d.rowCount,categoryCount:d.categoryCount,rankingExact:d.rankingExact,bucket:d.bucket,bucketStarts:d.bucketStarts?new Float64Array(d.bucketStarts):void 0,bucketEnds:d.bucketEnds?new Float64Array(d.bucketEnds):void 0}}catch(r){return r instanceof Me||r instanceof Mu||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 Me(e);this.pending.forEach(u=>u.reject(t)),this.pending.clear(),this.pendingAggregate.forEach(u=>u.reject(t)),this.pendingAggregate.clear()}};var z0=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),a=t.indexOf(e);if(n===-1||a===-1)return this.select(e);let i=Math.min(n,a),l=Math.max(n,a),o=u&&!this.allMatching?new Set(this.selected):new Set;for(let d=i;d<=l;d++)o.add(t[d]);return!this.allMatching&&Or(o,this.selected)?!1:(this.allMatching=!1,this.selected=o,!0)}selectAll(e){if(this.mode!=="multiple")return!1;let t=new Set(e);return!this.allMatching&&Or(t,this.selected)?!1:(this.allMatching=!1,this.selected=t,this.anchor=e[0]??null,!0)}setMany(e,t){if(this.mode!=="multiple")return!1;let u=!1;for(let r of e)this.isSelected(r)!==t&&(this.allMatching===t?this.selected.delete(r):this.selected.add(r),u=!0);return u}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&&Or(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 Or(e,t){if(e.size!==t.size)return!1;for(let u of e)if(!t.has(u))return!1;return!0}function H0(e){return{count:e.length,keyAt:t=>e[t],indexOf:t=>e.indexOf(t)}}function mt(e,t,u){return e<t?t:e>u?u:e}function Vr(e){return e.rows??H0(e.rowKeys??[])}var W0=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=Vr(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=Vr(t);if(r.count===0||u.length===0)return!1;let n=Math.max(1,t.pageSize??10),a=this.getIndices(t);if(!a){let g=r.keyAt(0);return g===void 0?!1:this.set({rowKey:g,columnId:u[0]})}let i=r.count-1,l=u.length-1,{rowIndex:o,columnIndex:d}=a,h=o;switch(e){case"up":o=mt(o-1,0,i);break;case"down":o=mt(o+1,0,i);break;case"left":d=mt(d-1,0,l);break;case"right":d=mt(d+1,0,l);break;case"pageUp":o=mt(o-n,0,i);break;case"pageDown":o=mt(o+n,0,i);break;case"rowStart":d=0;break;case"rowEnd":d=l;break;case"gridStart":o=0,d=0;break;case"gridEnd":o=i,d=l;break}if(t.isFocusable){let g=o>h?1:o<h?-1:0;o=this.skipUnfocusable(r,o,g,t.isFocusable,h)}let c=r.keyAt(o);return c===void 0?!1:this.set({rowKey:c,columnId:u[d]})}skipUnfocusable(e,t,u,r,n){if(r(e.keyAt(t),t))return t;let a=u===0?-1:u;for(let i=t+a;i>=0&&i<e.count;i+=a)if(r(e.keyAt(i),i))return i;for(let i=t-a;i>=0&&i<e.count;i-=a)if(r(e.keyAt(i),i))return i;return n}reconcile(e,t){if(!this.position)return!1;let{columnIds:u}=e,r=Vr(e);if(r.count===0||u.length===0)return this.clear();let n=r.indexOf(this.position.rowKey)!==-1,a=u.includes(this.position.columnId)?this.position.columnId:u[0];if(n)return this.set({rowKey:this.position.rowKey,columnId:a});let i=mt(t??0,0,r.count-1),l=r.keyAt(i);return l===void 0?this.clear():this.set({rowKey:l,columnId:a})}},ye=(e,t=!0)=>({type:e,preventDefault:t});function zi(e){let t=!!(e.ctrlKey||e.metaKey),u=!!e.shiftKey;switch(e.key){case"ArrowUp":return ye(u?"extendSelectionUp":"up");case"ArrowDown":return ye(u?"extendSelectionDown":"down");case"ArrowLeft":return ye("left");case"ArrowRight":return ye("right");case"PageUp":return ye("pageUp");case"PageDown":return ye("pageDown");case"Home":return ye(t?"gridStart":"rowStart");case"End":return ye(t?"gridEnd":"rowEnd");case" ":case"Spacebar":return ye("toggleSelection");case"Enter":return ye("activate");case"Escape":return ye("clearSelection");case"a":case"A":return t?ye("selectAll"):null;case"c":case"C":return t?ye("copy",!1):null;default:return null}}function K0(e){return e==="up"||e==="down"||e==="left"||e==="right"||e==="pageUp"||e==="pageDown"||e==="rowStart"||e==="rowEnd"||e==="gridStart"||e==="gridEnd"}var $0="__dg_";function Iu(e){return e.startsWith($0)}function U0(e){return e.filter(t=>!Iu(t))}function Qr(e){return e.replace(/[\t\r\n]+/g," ")}function q0(e,t,u){let r=u.getCellValue(e.data,t);return Qr(Gu(u.getDef(t),r,e.data))}function _0(e,t,u={}){let r=u.columnIds??U0(t.runtime().map(a=>a.state.id));if(r.length===0)return"";let n=[];if(u.includeGroupHeaders){let a=r.map(l=>He(t.getDef(l))),i=a.reduce((l,o)=>Math.max(l,o.length),0);for(let l=0;l<i;l++){let o=null;n.push(a.map(d=>{let h=d[l]??"",c=h===""?null:d.slice(0,l+1).join("\0"),g=c!==null&&c===o;return o=c,g?"":Qr(h)}).join(" "))}}(u.includeHeaders||u.includeGroupHeaders)&&n.push(r.map(a=>Qr(t.getDef(a)?.headerName??t.getDef(a)?.field??a)).join(" "));for(let a of e)Le(a)&&n.push(r.map(i=>q0(a,i,t)).join(" "));return n.join(`
|
|
15
|
-
`)}var j0=5,Y0=35e5,Q0=16e6,X0=4,J0=3;function ei(e){let t=[],u=[],r=[];for(let f of e)f.state.pinned==="left"?t.push(f):f.state.pinned==="right"?r.push(f):u.push(f);let n=[],a=0;for(let f of t)n.push(a),a+=f.state.width;let i=[0],l=0;for(let f of u)l+=f.state.width,i.push(l);let o=new Array(u.length).fill(null),d=[],h=a;for(let f=0;f<u.length;f++)u[f].state.pinned==="sticky"&&(o[f]=h,h+=u[f].state.width,d.push(f));let c=new Array(r.length),g=0;for(let f=r.length-1;f>=0;f--)c[f]=g,g+=r[f].state.width;return{left:t,center:u,right:r,leftWidth:a,centerWidth:l,rightWidth:g,totalWidth:a+l+g,centerOffsets:i,leftOffsets:n,rightOffsets:c,centerStickyOffsets:o,stickyIndices:d}}var Z0={left:[],center:[],right:[],leftWidth:0,centerWidth:0,rightWidth:0,totalWidth:0,centerOffsets:[0],leftOffsets:[],rightOffsets:[],centerStickyOffsets:[],stickyIndices:[]};function ti(e,t,u){let r=0,n=u-1,a=0;for(;r<=n;){let i=r+n>>1;e[i]<=t?(a=i,r=i+1):n=i-1}return a}function zr(e,t,u){return e<t?t:e>u?u:e}var ed=class{rowCount=0;heights;overscanY;overscanX;viewportWidth=0;viewportHeight=0;scrollTop=0;scrollLeft=0;maxScrollOffset=Y0;leadWidth=0;headerOffset=0;footerOffset=0;maxCanvasHeight=Q0;layout=Z0;window;constructor(e={}){this.heights=new Ss(e.rowHeight??28),this.overscanY=Math.max(0,e.overscanY??j0),this.overscanX=Math.max(0,e.overscanX??J0),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 o=this.heights.offsetOf(e),d=o+this.heights.heightOf(e),h=this.virtualTop();o<h?u.scrollTop=this.physicalTop(o,Math.floor):d>h+this.viewportHeight&&(u.scrollTop=this.physicalTop(d-this.viewportHeight,Math.ceil)+this.headerOffset+this.footerOffset)}let{center:r,centerOffsets:n,leftWidth:a,rightWidth:i,stickyIndices:l}=this.layout;if(t!=null&&t>=0&&t<r.length){let o=Math.max(0,this.viewportWidth-this.leadWidth-a-i),d=0;for(let g of l)g<t&&(d+=r[g].state.width);let h=n[t],c=n[t+1];l.includes(t)&&h<this.scrollLeft||(h<this.scrollLeft+d?u.scrollLeft=Math.max(0,h-d):c>this.scrollLeft+o&&(u.scrollLeft=c-o))}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-X0?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:zr(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,a=zr(this.heights.indexAt(r),0,n),i=zr(this.heights.indexAt(r+this.viewportHeight-1),0,n),l=Math.max(0,a-this.overscanY),o=Math.min(this.rowCount,i+1+this.overscanY),d=this.heights.offsetOf(l)-(r-this.scrollTop);if(u){let h=d+this.heights.offsetOf(o)-this.heights.offsetOf(l);h>t&&(d-=h-t)}return{start:l,end:o,offsetY:d,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 a=Math.max(0,this.viewportWidth-u-r);if(a===0)return{start:0,end:0,offsetX:0};let i=this.scrollLeft,l=this.scrollLeft+a,o=ti(t,i,n),d=ti(t,l-1,n),h=Math.max(0,o-this.overscanX),c=Math.min(n,d+1+this.overscanX);return{start:h,end:c,offsetX:t[h]}}},Xr=(()=>{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 qt(){return new Promise(e=>Xr(e))}var Nu=1e5,Hr=32768,ui=65536;async function td(e){let{rows:t,getValue:u,collator:r,shouldAbort:n,onProgress:a}=e,i=()=>n?n():!1,l=new Map;for(let C=0;C<t.length;C+=Nu){if(i())return null;let b=Math.min(t.length,C+Nu);for(let F=C;F<b;F++){let R=u(t[F]),I=R==null?"":String(R);l.has(I)||l.set(I,R)}a?.(b/t.length*.2),b<t.length&&await qt()}let o=[...l.keys()],d=[];for(let C=0;C<o.length;C+=Hr){if(i())return null;d.push(o.slice(C,C+Hr).sort(r.compare)),a?.(.2+Math.min(o.length,C+Hr)/Math.max(1,o.length)*.2),await qt()}d.length===0&&(d=[[]]);let h=Math.max(1,Math.ceil(Math.log2(Math.max(2,d.length)))),c=0;for(;d.length>1;){let C=[];for(let b=0;b<d.length;b+=2){if(b+1===d.length){C.push(d[b]);continue}let F=d[b],R=d[b+1],I=new Array(F.length+R.length),V=0,$=0,Y=0,G=ui;for(;V<F.length&&$<R.length;)if(r.compare(F[V],R[$])<=0?I[Y++]=F[V++]:I[Y++]=R[$++],--G===0){if(i())return null;await qt(),G=ui}for(;V<F.length;)I[Y++]=F[V++];for(;$<R.length;)I[Y++]=R[$++];if(C.push(I),i())return null;await qt()}d=C,c++,a?.(.4+Math.min(1,c/h)*.5)}let g=d[0],f=new Array(g.length);for(let C=0;C<g.length;C+=Nu){if(i())return null;let b=Math.min(g.length,C+Nu);for(let F=C;F<b;F++){let R=g[F];f[F]={label:R,value:l.get(R)}}b<g.length&&await qt()}return a?.(1),f}function ud(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 rd=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(i=>i.columnId===e),n=r?r.direction==="asc"?"desc":null:"asc",a;this.multiSort&&t?(a=u.filter(i=>i.columnId!==e),n&&a.push({columnId:e,direction:n})):a=n?[{columnId:e,direction:n}]:[],this.commit({...this.state,sort:a})}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]={[St]:t}:delete r[e];else{let n={...r[e]??{}};delete n[St],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:ud(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 nd=[];function Hi(e,t){if(!e)return null;if("nodes"in e){let u=e.nodes.map(r=>Hi(r,t)).filter(r=>r!==null);return u.length===0?null:{logic:e.logic,nodes:u}}return t(e.columnId)?e:null}var Jr="__dg_pending_row_",ad=e=>`${Jr}${e}`;function id(e){if(typeof e!="string"||!e.startsWith(Jr))return null;let t=Number(e.slice(Jr.length));return Number.isInteger(t)&&t>=0?t:null}function od(e){return e==null?[]:typeof e=="string"?[e]:[...e]}var ld="\0",ri="",Kr=1e3,sd=150,dd=60,Wi=class{gridId;events=new ts;viewStateParts=new Map;pendingViewStateParts={};columns;store;rowModel;debugMode;locale;text;virtual;selection;focus=new W0;keyGetter;rowKeyField;summaryDefs;pendingReaders;historyDelegate;editingDelegate;summaryValues={};treeData;treeParent=null;treeChildParents=new WeakMap;treeIndex=null;treeIndexEpoch=-1;treeToggled=new Set;treeExpandedByDefault;warnedTreeGrouping=!1;lastPagination=null;firstDataRenderedSent=!1;cellRevision=0;collapsedByDefault;groupSummaries;groupDisplay;showGroupedColumns;masterDetail;editForm=null;getRowHeightFn;measuredRowHeights=new Map;lastResult={nodes:[],visibleCount:0,totalCount:0};spanCache=new Map;spanCacheResult=null;viewNodes=[];allViewNodes=[];paginationEnabled;infiniteScroll;infinitePageSize;infiniteLimit;exportDefaults={csv:{},excel:{},pdf:{}};exportPageSize;exportMaxRows;exportToken=0;computeToken=0;lastComputeTimings={};summaryPassSeq=0;remoteFetchQueued=!1;viewportWidth=0;viewportHeight=0;leadWidth=0;externalFilter=null;asyncQueue=[];asyncCallbacks=[];asyncTimer=null;asyncTransactionWait;lastScrollTop=-1;lastScrollLeft=-1;scrollEndTimer=null;overlayOverride=null;lastFocusedRowKey=null;deferredSelection;rowIndexCache=null;dataNodeCache=null;dataKeyCache=null;nodeByKey=null;groupTree=null;groupTreeSignature=null;dataEpoch=0;distinctCache=new Map;distinctFullInflight=new Map;distinctTruncated=new Set;distinctEpoch=-1;localeCollator=null;summaryBasis=null;busy={busy:!1,progress:null,phase:null,cancellable:!1};exportAbort=null;busyDepth=0;unsubscribeStore;disposed=!1;constructor(e){this.gridId=e.gridId,this.asyncTransactionWait=e.asyncTransactionWait??50,this.debugMode=e.debugMode??!1,this.locale=e.locale??"en",this.text=Jt(e.locale,e.messages),this.columns=new A0(e.columns,{defaultColumnDef:e.defaultColumnDef,debugMode:this.debugMode}),this.store=new rd({multiSort:e.sorting?.multi??!1});let t=fs(e.rowKey);if(this.keyGetter=t,e.tree?.childrenField&&Array.isArray(e.dataSource)&&(e={...e,dataSource:Br(e.dataSource,e.tree.childrenField,this.treeChildParents).rows}),this.rowKeyField=typeof e.rowKey=="string"?e.rowKey:null,ul(e.dataSource)){let u=e.tree?.hasChildren;this.rowModel=new za(e.dataSource,{keyGetter:t,blockSize:e.remote?.blockSize,maxBlocks:e.remote?.maxBlocks,onError:r=>this.events.emit("dataError",{error:r}),debugMode:this.debugMode,...u?{tree:{hasChildren:u,isExpanded:r=>this.isTreeRowExpanded(r)}}:{}})}else this.rowModel=new Tu(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))});if(this.exportPageSize=Math.max(1,e.remote?.exportPageSize??1e3),this.exportMaxRows=Math.max(1,e.remote?.exportMaxRows??1e5),this.selection=new z0(e.selection?.mode??"none"),this.deferredSelection=e.selection?.deferred??!1,this.summaryDefs=e.summaries??[],this.treeData=e.tree??null,this.treeData&&(this.treeParent=this.treeData.childrenField?u=>{let r=u&&typeof u=="object"?this.treeChildParents.get(u):void 0;return r===void 0?null:t(r)}:al(this.treeData)),this.treeData&&this.rowModel.mode==="remote"&&!this.treeData.hasChildren&&console.warn("[datagrid] `tree` needs the rows in memory and is ignored with a remote DataSource \u2014 the grid shows a flat list. Give `tree.hasChildren` to load the tree from the server one level at a time (`load({ parentKey })`), or load the rows into an array."),this.treeExpandedByDefault=this.treeData?.defaultExpanded??!1,this.collapsedByDefault=e.grouping?.collapsedByDefault??!1,this.groupSummaries=e.grouping?.groupSummaries??!1,this.groupDisplay=e.grouping?.display==="aligned"?"aligned":"fullWidth",this.showGroupedColumns=e.grouping?.showGroupedColumns??!1,e.grouping?.groupBy){this.store.setGroupBy(e.grouping.groupBy);let u=this.store.getState().groupBy;this.remote()?.setGrouping(u.map(r=>({columnId:r})),u)}this.paginationEnabled=e.pagination?e.pagination.enabled!==!1:!1,this.infiniteScroll=e.scrolling?.mode==="infinite",this.infinitePageSize=Math.max(1,e.scrolling?.pageSize??100),this.infiniteLimit=this.infinitePageSize,e.pagination?.pageSize&&this.store.setPageSize(e.pagination.pageSize),this.virtual=new ed({rowHeight:e.rowHeight,overscanY:e.virtualization?.overscanY,overscanX:e.virtualization?.overscanX}),this.virtual.setColumnLayout(ei(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(Be(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(ld)}#${t?this.summaryDefs.map(r=>`${r.columnId}:${r.type}`).join(","):""}`;return this.groupTree&&this.groupTreeSignature===u?this.groupTree:(this.setBusy("grouping",null),this.groupTree=vl(this.dataNodes(),this.columns,{columnIds:e,summaries:t?this.summaryDefs:void 0,locale:this.locale}),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 Tu&&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 a=this.emitIfWindowChanged(this.virtual.setViewportSize(e,t));return a&&this.rowModel.mode==="remote"&&this.scheduleRemoteFetch(),n&&this.events.emit("gridSizeChanged",{width:e,height:t,previousWidth:u,previousHeight:r}),a}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)},sd)}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})}lastRemoteRange=null;fetchUncoveredWindow(){let e=this.lastRemoteRange;if(!e)return;let t=this.virtual.getWindow().rows,u=Math.min(t.end,this.viewNodes.length);for(let r=t.start;r<u;r++)if(this.viewNodes[r]===void 0&&(r<e.start||r>=e.end)){this.scheduleRemoteFetch();return}}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)}getRowIndex(e){return this.rowAxis().indexOf(e)}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 a=this.ensureVisible(0);return a&&this.events.emit("scrollRequested",a),!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(a=>a.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(){if(!this.selection.isAllMatching())return this.selection.getSelectedCount();let{keys:e}=this.selection.getSelectionDescriptor(),t=e.length;if(this.rowModel.mode==="client"&&t>0){t=0;for(let u of e)this.getDataRowNode(u)&&t++}return Math.max(0,this.lastResult.visibleCount-t)}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){Sr(e)||this.selection.select(e)&&this.emitSelectionChanged()}toggleRow(e){Sr(e)||this.selection.toggle(e)&&this.emitSelectionChanged()}setSelectedKeys(e){this.selection.setSelectedKeys(e)&&this.emitSelectionChanged()}selectionVersion=0;groupSelectionCache=new Map;groupSelectionCacheKey=null;findGroup(e){let t=this.groupTree;if(!t)return null;let u=[...t.roots];for(;u.length>0;){let r=u.pop();if(r.key===e)return r;r.children&&e.startsWith(`${r.key}|`)&&u.push(...r.children)}return null}getGroupRowKeys(e){let t=this.findGroup(e);if(!t||!this.groupTree)return[];let u=this.groupTree.nodes,r=[];for(let n=t.from;n<t.to;n++)r.push(u[n].key);return r}getGroupSelectionState(e){let t=this.groupSelectionCacheKey;(!t||t.tree!==this.groupTree||t.version!==this.selectionVersion)&&(this.groupSelectionCache.clear(),this.groupSelectionCacheKey={tree:this.groupTree,version:this.selectionVersion});let u=this.groupSelectionCache.get(e);if(u)return u;let r=0,n=0,a=this.findGroup(e);if(a&&this.groupTree){let l=this.groupTree.nodes;for(let o=a.from;o<a.to&&!(r>0&&n>0);o++)this.selection.isSelected(l[o].key)?r++:n++}let i=r>0&&n>0?"some":r>0?"all":"none";return this.groupSelectionCache.set(e,i),i}setGroupSelected(e,t){this.selection.setMany(this.getGroupRowKeys(e),t)&&this.emitSelectionChanged()}toggleGroupSelection(e){this.setGroupSelected(e,this.getGroupSelectionState(e)!=="all")}selectAll(){(this.deferredSelection?this.selection.selectAllMatching():this.selection.selectAll(this.dataKeys()))&&this.emitSelectionChanged()}clearSelection(){this.selection.clear()&&this.emitSelectionChanged()}handleRowClick(e,t={}){Sr(e)||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((t==="left"||t==="right")&&this.expandCollapseByKey(t))return!0;if(K0(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==="treePath"?this.toggleTreeRow(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}}expandCollapseByKey(e){let t=this.getFocusedNode(),u=this.focus.get();if(!t||!u)return!1;if(t.kind==="group")return(e==="right"?t.expanded:!t.expanded)?!1:(this.toggleGroup(String(t.key)),!0);if(t.kind!=="data"&&t.kind!=="treePath"||!t.tree)return!1;let r=this.getVisualColumnIds().find(o=>!Iu(o));if(u.columnId!==r)return!1;let{hasChildren:n,expanded:a,depth:i}=t.tree;if(e==="right")return!n||a?!1:(this.expandTreeRow(t.key),!0);if(n&&a)return this.collapseTreeRow(t.key),!0;let l=i>0?this.treeIndex?.parentOf.get(t.key)??null:null;return l===null||this.rowAxis().indexOf(l)<0?!1:(this.focusCell(l,u.columnId),!0)}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?"":_0(t,this.columns,e)}notifyClipboardGesture(e,t,u){let r=`${e}Start`,n=`${e}End`;this.events.emit(r,{cellCount:t});let a=!1;try{return a=u(),a}finally{this.events.emit(n,{cellCount:t,performed:a})}}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?ad(t):void 0),indexOf:t=>{let u=id(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 a=e[n];a&&!r.has(a.key)&&r.set(a.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"||u==="treePath"}: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.selectionVersion++;let e=this.getSelectedCount();if(!this.selection.isAllMatching()){this.events.emit("selectionChanged",{selectedKeys:this.selection.getSelectedKeys(),selectedCount:e});return}let t=null,u=()=>t??=this.getSelectedKeys();this.events.emit("selectionChanged",{get selectedKeys(){return u()},selectedCount:e})}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()?rn(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=Kr){return this.getDistinctValueSet(e,t).entries}getDistinctValueSet(e,t=Kr){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?.()??[],a=this.columns.getDef(e),i=new Map,l=!1;for(let d of n){let h=this.columns.getCellValue(d,e),c=h==null?"":String(h),g=h==null?"":Gu(a,h,d);if(!i.has(c)&&(i.set(c,{value:h,label:g}),i.size>t)){i.delete(c),l=!0;break}}let o=[...i.values()].sort((d,h)=>this.collator().compare(d.label,h.label));return this.distinctCache.set(u,o),l?this.distinctTruncated.add(u):this.distinctTruncated.delete(u),{entries:o,truncated:l}}searchDistinctValues(e,t,u=Kr){let r=ne(t.trim());if(!r)return this.getDistinctValueSet(e,u);let n=this.rowModel.getSourceRows?.()??[],a=this.columns.getDef(e),i=new Map,l=!1;for(let o of n){let d=this.columns.getCellValue(o,e),h=d==null?"":String(d),c=d==null?"":Gu(a,d,o);if(!(!ne(c).includes(r)||i.has(h))&&(i.set(h,{value:d,label:c}),i.size>u)){i.delete(h),l=!0;break}}return{entries:[...i.values()].sort((o,d)=>this.collator().compare(o.label,d.label)),truncated:l}}async getDistinctValueSetAsync(e,t){if(this.remote())return{entries:await this.getDistinctValuesAsync(e),truncated:!1};this.distinctEpoch!==this.dataEpoch&&(this.distinctCache.clear(),this.distinctTruncated.clear(),this.distinctEpoch=this.dataEpoch);let u=`${e} full`,r=this.distinctCache.get(u);if(r)return{entries:r,truncated:!1};let n=this.distinctFullInflight.get(e);if(!n){let a=this.dataEpoch;n=td({rows:this.rowModel.getSourceRows?.()??[],getValue:i=>this.columns.getCellValue(i,e),collator:this.collator(),shouldAbort:()=>this.disposed,onProgress:t}).then(i=>(this.distinctFullInflight.delete(e),i===null?[]:(a===this.dataEpoch&&this.distinctEpoch===a&&(this.distinctCache.set(u,i),this.distinctTruncated.delete(u)),i))),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(h=>this.columns.getState(h)?.visible&&!u.has(h));if(r.length===0)return;let n=0;for(let h of this.columns.getOrder())!this.columns.getState(h)?.visible||!u.has(h)||(n+=this.columns.getState(h)?.width??0);let a=t-n;if(a<=0)return;let i=new Set(r),l=new Map;for(let h of r)l.set(h,this.columns.getState(h)?.width??0);for(let h=0;h<=r.length&&i.size>0;h++){let c=0;for(let C of i)c+=l.get(C)??0;if(c<=0)break;let g=a/c,f=!1;for(let C of[...i]){let b=(l.get(C)??0)*g,F=this.columns.getDef(C),R=F?.minWidth??dd,I=F?.maxWidth??Number.POSITIVE_INFINITY;if(b<R||b>I){let V=Math.min(Math.max(b,R),I);l.set(C,V),i.delete(C),a-=V,f=!0}else l.set(C,b)}if(!f)break}let o=0;for(let h of r)o+=l.get(h)??0;let d=0;r.forEach((h,c)=>{let g=c===r.length-1?Math.round(o)-d:Math.round(l.get(h)??0);d+=g,this.columns.setWidth(h,g)}),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}getGroupDisplay(){return this.groupDisplay}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 za?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(Dl(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}hasTreePathRows(){return!!this.treeData?.getDataPath}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),this.events.emit("detailToggled",{rowKey:e,expanded:this.isDetailExpanded(e)}))}collapseAllDetails(){this.masterDetail&&(this.masterDetail.expandedByDefault?this.store.setExpandedDetails(this.dataKeys()):this.store.setExpandedDetails([]),this.events.emit("detailToggled",{rowKey:null,expanded:!1}))}expandAllDetails(){this.masterDetail&&(this.masterDetail.expandedByDefault?this.store.setExpandedDetails([]):this.store.setExpandedDetails(this.dataKeys()),this.events.emit("detailToggled",{rowKey:null,expanded:!0}))}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(ri)}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 i=this.getSelectedKeys();if(i.length>0){let l=[];for(let o of i){let d=this.getDataRowNode(o);d&&l.push(d)}return Rr(l,this.columns,e,n)}}let a=this.rowModel instanceof Tu?this.rowModel:null;if(a?.usesWorker()&&Fi(e)&&!r){let{searchText:i}=this.store.getState(),l=await a.aggregate(this.columns,{sort:[],filter:u==="all"?null:this.runningFilter(),searchText:u==="all"?"":i},e);if(l)return l}if(u==="all"){let i=this.rowModel.getSourceRows?.()??[],l=new Array(i.length);for(let o=0;o<i.length;o++)l[o]=Be(i[o],this.keyGetter(i[o]),o);return Rr(l,this.columns,e,n)}return Rr(this.dataNodes(),this.columns,e,n)}async computeChartBoxData(e){return os(this.chartSourceNodes(e.source),this.columns,e)}chartSourceNodes(e){if(e==="selection"){let t=this.getSelectedKeys();if(t.length>0){let u=[];for(let r of t){let n=this.getDataRowNode(r);n&&u.push(n)}return u}}if(e==="all"){let t=this.rowModel.getSourceRows?.()??[],u=new Array(t.length);for(let r=0;r<t.length;r++)u[r]=Be(t[r],this.keyGetter(t[r]),r);return u}return this.dataNodes()}async computeChartXYData(e){let t=e.source??"view";if(t==="selection"){let u=this.getSelectedKeys();if(u.length>0){let r=[];for(let n of u){let a=this.getDataRowNode(n);a&&r.push(a)}return Pr(r,this.columns,e)}}if(t==="all"){let u=this.rowModel.getSourceRows?.()??[],r=new Array(u.length);for(let n=0;n<u.length;n++)r[n]=Be(u[n],this.keyGetter(u[n]),n);return Pr(r,this.columns,e)}return Pr(this.dataNodes(),this.columns,e)}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(ri)}runSummaryPass(e,t,u,r,n){let a=++this.summaryPassSeq;if(e.length<=1e5){this.busyDepth>0&&this.setBusy("aggregating",null);let c=wl(e,this.columns,t,this.pendingReaders);this.summaryValues=u?{...this.summaryValues,...c}:c,r!==null&&(this.summaryBasis=r);return}let i=El(this.columns,t,this.pendingReaders),l=1e5,o=e.length,d=0,h=()=>{if(this.disposed||a!==this.summaryPassSeq||n!==this.computeToken)return;let c=Math.min(o,d+l);if(i.add(e,d,c),d=c,d<o){this.setBusy("aggregating",d/o),Xr(h);return}let g=i.finish();this.summaryValues=u?{...this.summaryValues,...g}:g,r!==null&&(this.summaryBasis=r),this.busyDepth===0&&this.setBusy(null,null),this.events.emit("summariesChanged",{values:this.summaryValues})};Xr(h)}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 Ws({nodes:e,columns:this.columns,options:{columnIds:this.layoutRuntime().map(u=>u.state.id),...t},isSelected:u=>this.selection.isSelected(u),selectionCount:this.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(),a=await e.loadAllRows({sort:kr(u,n),filter:this.runningFilter(),searchText:r},{maxRows:this.exportMaxRows,pageSize:this.exportPageSize,isCancelled:()=>t!==this.exportToken||this.disposed,onProgress:(i,l)=>this.setBusy("exporting",l>0?Math.round(i/l*100):null)});return this.setBusy("exporting",null),a}setExportDefaults(e,t){if(typeof e!="string"){this.exportDefaults.excel={...e};return}this.exportDefaults[e]={...t??{}}}setEnterpriseEdition(e){this.enterpriseEdition=e}isEnterpriseEdition(){return this.enterpriseEdition}enterpriseEdition=!1;requireEnterprise(e,t=" (CSV export is available in Community)"){if(!this.enterpriseEdition)throw new Error(`[datagrid] ${e} is an Enterprise feature. Import EnterpriseDataGrid from @kanunilabs/datagrid-react-enterprise${t}.`)}async withExportSignal(e,t){if(e.signal)return this.withBusy("exporting",()=>t(e));let u=new AbortController;this.exportAbort=u;try{return await this.withBusy("exporting",()=>t({...e,signal:u.signal}))}finally{this.exportAbort===u&&(this.exportAbort=null)}}async exportToCsv(e={}){let t={delimiter:qs(this.locale),...this.exportDefaults.csv,...e};return this.withExportSignal(t,async u=>{let r=this.buildExportModelFrom(await this.exportRows(),u);return{blob:await js(r,u),fileName:Wr(u.fileName??this.gridId,"csv"),rowCount:r.rows.length}})}async exportToExcel(e={}){this.requireEnterprise("Excel export");let t={sheetName:this.text.exportSheetName,...this.exportDefaults.excel,...e};return this.withExportSignal(t,async u=>{let r=this.buildExportModelFrom(await this.exportRows(),u);return{blob:await e0(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={}){this.requireEnterprise("PDF export");let t={...this.exportDefaults.pdf,...e};return this.withExportSignal(t,async u=>{let r=this.buildExportModelFrom(await this.exportRows(),u);return this.setBusy("exporting",null,!1),{blob:await g0(r,u),fileName:Wr(u.fileName??this.gridId,"pdf"),rowCount:r.rows.length}})}getViewState(){let e=this.store.getState();return{version:1,columns:this.columns.getColumnStates(),sort:e.sort,filter:e.filter,columnFilters:e.columnFilters,columnFilterParts:e.columnFilterParts,filterEnabled:e.filterEnabled,searchText:e.searchText,groupBy:e.groupBy,collapsedGroups:e.collapsedGroups,page:e.page,pageSize:e.pageSize,...this.treeData?{tree:{expandedByDefault:this.treeExpandedByDefault,toggled:[...this.treeToggled]}}:{},...this.viewStateParts.size>0?{parts:this.collectViewStateParts()}:{}}}collectViewStateParts(){let e={};for(let[t,u]of this.viewStateParts)try{e[t]=u.get()}catch{}return e}registerViewStatePart(e,t){if(this.viewStateParts.set(e,t),e in this.pendingViewStateParts){let u=this.pendingViewStateParts[e];delete this.pendingViewStateParts[e];try{t.apply(u)}catch{}}return()=>{this.viewStateParts.get(e)===t&&this.viewStateParts.delete(e)}}getAiSchema(e={}){return this.requireEnterprise("The AI state schema",""),ps(this.aiContext(e))}getAiState(e={}){this.requireEnterprise("The AI state schema","");let t=this.aiContext(e),u=this.store.getState(),r={},{features:n}=t;return n.has("filter")&&(r.filter=this.store.effectiveFilter()),n.has("sort")&&(r.sort=u.sort.map(a=>({...a}))),n.has("grouping")&&(r.groupBy=[...u.groupBy]),(n.has("columnVisibility")||n.has("columnSizing")||n.has("columnPinning"))&&(r.columns=t.columns.map(a=>{let i=this.columns.getState(a.id);return{columnId:a.id,...n.has("columnVisibility")?{visible:i.visible}:{},...n.has("columnSizing")?{width:i.width}:{},...n.has("columnPinning")?{pinned:i.pinned==="left"||i.pinned==="right"?i.pinned:null}:{}}})),n.has("search")&&(r.searchText=u.searchText),r}applyAiState(e,t={}){this.requireEnterprise("The AI state schema","");let u=this.aiContext(t),{state:r,dropped:n}=gs(e,u),a=[],i=this.getViewState(),l=!1;if(r.filter!==void 0){let o=r.filter===null?[]:"nodes"in r.filter&&r.filter.logic==="and"?r.filter.nodes:[r.filter],d=new Map,h=[];for(let c of o){let g=Ni(c);if(g.size===1){let[f]=g;d.set(f,[...d.get(f)??[],c])}else h.push(c)}i.filter=Da(...h),i.columnFilters={},i.columnFilterParts={};for(let[c,g]of d){let f=Da(...g);i.columnFilters[c]=f,i.columnFilterParts[c]={[St]:f}}i.filterEnabled=!0,a.push("filter"),l=!0}if(r.sort!==void 0&&(i.sort=r.sort,a.push("sort")),r.groupBy!==void 0&&(i.groupBy=r.groupBy,i.collapsedGroups=[],a.push("grouping"),l=!0),r.columns!==void 0&&r.columns.length>0){let o=new Map(r.columns.map(c=>[c.columnId,c])),d=i.columns.map(c=>{let g=o.get(c.id);return g?{...c,...g.visible!==void 0?{visible:g.visible}:{},...typeof g.width=="number"?{width:g.width}:{},...g.pinned!==void 0?{pinned:g.pinned}:{}}:c});d.some(c=>c.visible&&!Iu(c.id))?i.columns=d:(n.push("columns: the answer would hide every column"),i.columns=d.map((c,g)=>({...c,visible:i.columns[g].visible})));let h=c=>r.columns.some(g=>g[c]!==void 0);h("visible")&&a.push("columnVisibility"),r.columns.some(c=>typeof c.width=="number")&&a.push("columnSizing"),h("pinned")&&a.push("columnPinning")}return r.searchText!==void 0&&(i.searchText=r.searchText,a.push("search"),l=!0),l&&(i.page=0),a.length>0&&(this.applyViewState(i),r.sort!==void 0&&this.emitSortChanged()),n.length>0&&this.debugMode&&console.warn(`[datagrid] applyAiState left out: ${n.join("; ")}`),{applied:a,dropped:n}}aiContext(e){let t=new Set(e.exclude??[]),u=new Set(ls.filter(a=>!t.has(a)));this.treeData&&u.delete("grouping");let r=Math.max(1,e.maxValues??100),n=[];for(let a of this.columns.getOrder()){if(Iu(a))continue;let i=this.columns.getDef(a),l=e.columns?.[a];if(!i||l?.exclude)continue;let o=i.dataType??(i.lookup?"lookup":"string"),d,h=l?.description,c=dl(i);if(c&&l?.includeValues!==!1)d=c.filter(g=>["string","number","boolean"].includes(typeof g.value)).slice(0,r).map(g=>({value:g.value,label:g.label}));else if(l?.includeValues&&o!=="date"){let g=this.getDistinctValueSet(a,r);d=g.entries.filter(f=>["string","number","boolean"].includes(typeof f.value)).map(f=>({value:f.value,label:f.label})),g.truncated&&(h=`${h?`${h}. `:""}Only some of its values are listed`)}n.push({id:a,header:i.headerName??i.field??a,dataType:o,sortable:i.sortable!==!1,filterable:i.filterable!==!1,groupable:i.groupable!==!1,resizable:i.resizable!==!1,...h?{description:h}:{},...d?{values:d}:{}})}return{columns:n,features:u}}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=a=>t.has(a)?!0:(u.push(a),!1),n=od(e.groupBy).filter(r);this.remote()?.setGrouping(n.map(a=>({columnId:a})),n),this.store.applyState({sort:(e.sort??[]).filter(a=>r(a.columnId)),filter:Hi(e.filter??null,r),columnFilters:Object.fromEntries(Object.entries(e.columnFilters??{}).filter(([a])=>r(a))),columnFilterParts:Object.fromEntries(Object.entries(e.columnFilterParts??Object.fromEntries(Object.entries(e.columnFilters??{}).map(([a,i])=>[a,{[St]:i}]))).filter(([a])=>r(a))),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.treeData&&e.tree&&typeof e.tree.expandedByDefault=="boolean"&&(this.treeExpandedByDefault=e.tree.expandedByDefault,this.treeToggled=new Set(Array.isArray(e.tree.toggled)?e.tree.toggled:[])),this.recompute();for(let[a,i]of Object.entries(e.parts??{})){let l=this.viewStateParts.get(a);if(!l){this.pendingViewStateParts[a]=i;continue}try{l.apply(i)}catch{}}}setData(e){this.treeData?.childrenField&&(this.treeChildParents=new WeakMap,e=Br(e,this.treeData.childrenField,this.treeChildParents).rows),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=y0(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){this.treeData?.childrenField&&e.add&&e.add.length>0&&(e={...e,add:Br(e.add,this.treeData.childrenField,this.treeChildParents).rows});let t=this.remote();if(t){let c=e.update??[];if(!((e.add?.length??0)>0||(e.remove?.length??0)>0)&&c.length>0&&this.remoteUpdateKeepsPlacement(c)){let g=t.patchRows(c);this.invalidateResultCaches(),this.events.emit("rowsChanged",{added:0,updated:g,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 c of e.update)n.add(r(c));let a=new Map;if(n.size>0)for(let c=0;c<u.length;c++){let g=r(u[c]);n.has(g)&&a.set(g,c)}let i=u.slice(),l=0,o=0,d=[];if(e.update)for(let c of e.update){let g=a.get(r(c));g!==void 0&&(i[g]=c,d.push(g),l++)}if(e.remove&&e.remove.length>0){let c=new Set(e.remove.map(f=>ii(f)?f:r(f))),g=i.filter(f=>!c.has(r(f)));o=i.length-g.length,i=g}let h=e.add?.length??0;if(h>0){let c=e.addBeforeKey===void 0?-1:i.findIndex(f=>r(f)===e.addBeforeKey),g=e.add;c>=0?i=i.slice(0,c).concat(g,i.slice(c)):e.addPosition==="first"?i=g.concat(i):i=i.concat(g)}if(!(o>0||h>0)&&this.rowModel.patchData?this.rowModel.patchData(i,d,this.columns):this.rowModel.setData?.(i),this.bumpDataEpoch(),o>0){let c=new Set(i.map(g=>r(g)));this.selection.retainKeys(c)&&this.emitSelectionChanged()}this.events.emit("rowsChanged",{added:h,updated:l,removed:o}),this.events.emit("dataUpdated",{totalCount:i.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=Sl(e,this.keyGetter);Bl(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=Yr(this.columns,{sort:kr(t,r),filter:this.runningFilter(),searchText:u});if(n.length===0)return!0;for(let a of e){let i=this.getRowByKey(this.keyGetter(a));if(!i)return!1;for(let l of n){let o=this.columns.getCellValue(i,l),d=this.columns.getCellValue(a,l);if(!Object.is(o,d))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,a=r&&this.foregroundDepth===0;this.busy.busy===r&&this.busy.phase===e&&this.busy.progress===t&&this.busy.cancellable===n&&this.busy.background===a||(this.busy={busy:r,phase:e,progress:t,cancellable:n,background:a},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 Tu&&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(),a=kr(t,r),i,l=performance.now();try{i=await this.rowModel.getRows(this.columns,{sort:a,filter:n,searchText:u,externalFilter:this.externalFilter,range:this.lastRemoteRange=this.neededRange(),summaries:this.serverSummaryRequests()})}catch(C){!(C instanceof Me)&&!(C instanceof Mu)&&(this.events.emit("dataError",{error:C}),this.debugMode&&console.error("[datagrid] row model failed",C));return}if(e!==this.computeToken||this.disposed)return;let o=Math.round(performance.now()-l),d=performance.now(),h=this.remote();if(h)this.summaryValues=this.summaryDefs.length>0?h.getSummaries():{},this.summaryBasis=null;else if(this.summaryDefs.length>0){let C=this.currentSummaryBasis(n,u),b=this.summaryBasis===C,F=b?this.summaryDefs.filter(R=>R.type==="custom"&&R.dependsOnOrder!==!1):this.summaryDefs;F.length>0?this.runSummaryPass(i.nodes,F,b,C,e):this.summaryBasis=C}else this.summaryValues={},this.summaryBasis=null;let c=Math.round(performance.now()-d);this.lastResult=i,this.invalidateResultCaches();let g=performance.now();this.projectView();let f=this.rowModel.getLastTimings?.();this.lastComputeTimings={modelMs:o,summaryMs:c,projectViewMs:Math.round(performance.now()-g),...f}}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"?Fl(this.ensureGroupTree(t),{collapsedKeys:this.store.collapsedSet(),collapsedByDefault:this.collapsedByDefault}).nodes:this.lastResult.nodes),a=this.masterDetail?Fs(n,{expandedKeys:this.store.expandedSet(),expandedByDefault:this.masterDetail.expandedByDefault,height:this.masterDetail.height}):n,i=this.editForm?Ds(a,{rowKey:this.editForm.rowKey,height:this.editForm.height,atTop:this.editForm.atTop}):a;if(this.allViewNodes=i,this.infiniteScroll)this.infiniteLimit=Math.min(this.infiniteLimit,Math.max(this.infinitePageSize,i.length)),this.viewNodes=i.slice(0,this.infiniteLimit);else if(this.paginationEnabled){let{pageSize:o}=e,d=this.store.clampPage(Math.ceil(i.length/o))*o;this.viewNodes=i.slice(d,d+o)}else this.viewNodes=i;this.rowIndexCache=null,this.rebuildRowHeights();let l=this.virtual.setRowCount(this.viewNodes.length);this.rowModel.mode==="remote"&&this.fetchUncoveredWindow(),this.focus.reconcile(this.focusContext(),u)&&this.emitFocusChanged(),this.events.emit("contentReady",{rows:this.lastResult.nodes,totalCount:this.lastResult.totalCount,visibleCount:this.lastResult.visibleCount}),this.emitPaginationChanged(!0),!this.firstDataRenderedSent&&this.viewNodes.length>0&&(this.firstDataRenderedSent=!0,this.events.emit("firstDataRendered",{rowCount:this.viewNodes.length})),this.emitIfWindowChanged(l)}treeView(){if(!this.treeData||!this.treeParent||this.rowModel.mode!=="client")return null;let e=this.rowModel.getSourceRows?.();if(!e)return null;if(!this.treeIndex||this.treeIndexEpoch!==this.dataEpoch){let t=this.treeData.getDataPath;this.treeIndex=t?nl(e,this.keyGetter,t):il(e,this.keyGetter,this.treeParent),this.treeIndexEpoch=this.dataEpoch}return ll(this.dataNodes(),{index:this.treeIndex,sourceRows:e,isExpanded:t=>this.isTreeRowExpanded(t)}).nodes}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.reprojectTree(),this.events.emit("treeRowToggled",{rowKey:e,expanded:t}))}expandAllTreeRows(){this.treeData&&(this.treeExpandedByDefault=!0,this.treeToggled.clear(),this.reprojectTree(),this.events.emit("treeRowToggled",{rowKey:null,expanded:!0}))}collapseAllTreeRows(){this.treeData&&(this.treeExpandedByDefault=!1,this.treeToggled.clear(),this.reprojectTree(),this.events.emit("treeRowToggled",{rowKey:null,expanded:!1}))}reprojectTree(){this.rowModel.isTree?.()?this.recompute():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 a=0;a<r.length;a++){let i=r[a],l;i.kind==="detail"||i.kind==="editform"?l=i.height:l=e.get(i.key)??this.getRowHeightFn?.(i,a),l!==void 0&&l!==u&&n.set(a,Math.max(1,l))}return this.virtual.setRowHeights(n)}setMeasuredRowHeights(e){let t=e.size!==this.measuredRowHeights.size;if(!t){for(let[r,n]of e)if(this.measuredRowHeights.get(r)!==n){t=!0;break}}if(!t)return!1;this.measuredRowHeights=new Map(e);let u=this.rebuildRowHeights();return this.emitIfWindowChanged(u),u}getMeasuredRowHeights(){return this.measuredRowHeights}clearMeasuredRowHeights(){if(this.measuredRowHeights.size===0)return!1;this.measuredRowHeights=new Map;let e=this.rebuildRowHeights();return this.emitIfWindowChanged(e),e}getRowHeightAt(e){return this.virtual.getRowHeightAt(e)}getRowOffset(e){return this.virtual.getRowOffset(e)}getCellSpans(e){let t=this.columns.getDef(e)?.spanRows;if(!t)return nd;this.spanCacheResult!==this.lastResult&&(this.spanCache.clear(),this.spanCacheResult=this.lastResult);let u=this.spanCache.get(e);if(u)return u;let r=_l(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(ei(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}},sn={compact:24,normal:28,comfortable:36},cd=["quartz","balham","material","alpine","kanuni","kanuni-midnight"];function dn(e){return e!==void 0&&cd.includes(e)}var cn={quartz:{compact:26,normal:36,comfortable:44},balham:{compact:20,normal:25,comfortable:32},material:{compact:32,normal:40,comfortable:52},alpine:{compact:26,normal:34,comfortable:42},kanuni:{compact:24,normal:32,comfortable:40},"kanuni-midnight":{compact:24,normal:32,comfortable:40}};function Ku(e,t,u){return dn(e)?cn[e][t??"normal"]:t?sn[t]:u}function hn(e){return{sum:e.summarySum,avg:e.summaryAvg,min:e.summaryMin,max:e.summaryMax,count:e.summaryCount,countDistinct:e.summaryDistinct,custom:e.summaryCustom}}var hd=hn(Jt("en"));function pn(e,t=hd){return e.label??t[e.type]}var pd=new Set(["sum","avg","min","max"]);function $u(e,t,u){if(e.valueFormatter)return e.valueFormatter(t??null);if(t==null)return"\u2014";if(!pd.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 Ki(e){switch(e){case"number":return["sum","avg","min","max","count","countDistinct"];case"date":return["min","max","count","countDistinct"];default:return["count","countDistinct"]}}var md={today:"periodToday",yesterday:"periodYesterday",tomorrow:"periodTomorrow",thisWeek:"periodThisWeek",lastWeek:"periodLastWeek",nextWeek:"periodNextWeek",thisMonth:"periodThisMonth",lastMonth:"periodLastMonth",nextMonth:"periodNextMonth",thisQuarter:"periodThisQuarter",lastQuarter:"periodLastQuarter",nextQuarter:"periodNextQuarter",thisYear:"periodThisYear",lastYear:"periodLastYear",nextYear:"periodNextYear",yearToDate:"periodYearToDate",lastDays:"periodLastDays",nextDays:"periodNextDays"};function mn(e){let t={};for(let u of Xt)t[u]=String(e[md[u]]);return t}var ni=mn(nn),ai=e=>e.trim().replace(/\s+/g," ").toLocaleLowerCase();function gd(e,t){let u=ai(e);for(let r of t?[t,ni]:[ni])for(let n of Xt){let a=ai(r[n]);if(!a.includes("{n}")){if(u===a)return{period:n};continue}let[i,l]=a.split("{n}");if(u.startsWith(i)&&u.endsWith(l)){let o=u.slice(i.length,u.length-l.length).trim(),d=/^\d+$/.test(o)?Number(o):Number.NaN;if(Number.isInteger(d)&&d>=1)return{period:n,days:d}}}return null}function $i(e){let t=[];for(let u of Xt)if(u==="lastDays")for(let r of[7,30,90])t.push(e.lastDays.replace("{n}",String(r)));else if(u==="nextDays")for(let r of[7,30])t.push(e.nextDays.replace("{n}",String(r)));else t.push(e[u]);return t}var fd=[">=","<=","<>",">","<","="];function Ui(e,t,u,r){let n=t.trim();if(n==="")return null;if(u==="date"){let a=gd(n,r);if(a)return{columnId:e,operator:"period",value:a}}for(let a of fd)if(n.startsWith(a)){let i=n.slice(a.length).trim();if(i==="")return null;let l=u==="number"?Number(i):Number.NaN;return{columnId:e,operator:a,value:Number.isNaN(l)?i:l}}if(u==="number"){let a=Number(n);return Number.isNaN(a)?{columnId:e,operator:"contains",value:n}:{columnId:e,operator:"=",value:a}}if(u==="boolean"){let a=n.toLowerCase();return a==="true"||a==="false"?{columnId:e,operator:"=",value:a==="true"}:{columnId:e,operator:"contains",value:n}}return u==="date"?{columnId:e,operator:"contains",value:n}:{columnId:e,operator:"contains",value:n}}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 Uu(e,t){let{controller:u,maxGroupLevels:r,t:n}=t,a=e.columnId,i=u.getColumnModel().getDef(a),l=u.getSort(),o=l.find(I=>I.columnId===a),d=u.getGroupLevels(),h=d.includes(a),c=i?.sortable!==!1,g=u.getColumnStates().find(I=>I.id===a)?.pinned??null,f=i?.groupable!==!1,C=[{id:"sort-asc",label:n.sortAsc,disabled:!c||o?.direction==="asc",onSelect:()=>u.setSort([{columnId:a,direction:"asc"}])},{id:"sort-desc",label:n.sortDesc,disabled:!c||o?.direction==="desc",onSelect:()=>u.setSort([{columnId:a,direction:"desc"}])},{id:"sort-clear",label:n.clearSort,disabled:!o,onSelect:()=>u.setSort(l.filter(I=>I.columnId!==a))},{id:"sep-1",separator:!0},{id:"group",label:h?n.ungroupColumn:n.groupByColumn,disabled:!f,onSelect:()=>{h?u.groupBy(d.filter(I=>I!==a)):u.groupBy([...d,a].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(I=>I.visible).length<=1,onSelect:()=>u.setColumnVisible(a,!1)},{id:"field-chooser",label:n.fieldChooser,onSelect:t.onOpenFieldChooser},{id:"sep-3",separator:!0},{id:"best-fit",label:n.bestFit,disabled:i?.resizable===!1,onSelect:()=>t.onBestFit(a)},{id:"best-fit-all",label:n.bestFitAll,onSelect:t.onBestFitAll}],b=u.getColumnStates().filter(I=>I.visible&&I.pinned===g).map(I=>I.id),F=b.indexOf(a),R=i?.reorderable!==!1&&F>=0;return C.push({id:"sep-4",separator:!0},{id:"move-left",label:n.moveLeft,disabled:!R||F<=0,onSelect:()=>u.moveColumn(a,b[F-1])},{id:"move-right",label:n.moveRight,disabled:!R||F<0||F>=b.length-1,onSelect:()=>u.moveColumn(a,b[F+2])},{id:"fixed-position",label:n.fixedPosition,items:[{id:"pin-left",label:n.pinLeft,disabled:g==="left",onSelect:()=>u.setColumnPinned(a,"left")},{id:"pin-right",label:n.pinRight,disabled:g==="right",onSelect:()=>u.setColumnPinned(a,"right")},{id:"pin-sticky",label:n.pinSticky,disabled:g==="sticky",onSelect:()=>u.setColumnPinned(a,"sticky")}]},{id:"unpin",label:n.unpin,disabled:g===null,onSelect:()=>u.setColumnPinned(a,null)}),C}async function gn(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 Li(u.blob,u.fileName),{completed:!0}}catch(u){return u instanceof gt?{completed:!1}:{completed:!1,error:u instanceof Error?u.message:String(u)}}}var _i=null;function Cd(){return typeof document>"u"?null:(_i??=document.createElement("canvas"),_i.getContext("2d"))}function ji(e){let t=getComputedStyle(e);return`${t.fontStyle} ${t.fontWeight} ${t.fontSize} ${t.fontFamily}`}function yd(e){for(let t=e.firstElementChild;t;t=t.nextElementSibling)if(t.tagName!=="MARK")return!0;return!1}function wd(e){let t=e.map(r=>[r.style.width,r.style.minWidth,r.style.maxWidth]);for(let r of e)r.style.width="max-content",r.style.minWidth="0",r.style.maxWidth="none";let u=0;for(let r of e){let n=Math.ceil(r.getBoundingClientRect().width);n>u&&(u=n)}return e.forEach((r,n)=>{[r.style.width,r.style.minWidth,r.style.maxWidth]=t[n]}),u}function qu(e,t){let u=Cd();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}"]`),a=e.querySelectorAll(`.kanuni-datagrid-cell[data-column-id="${r}"]`);if(!n&&a.length===0)return null;let i=0;if(n){let l=n.querySelector(".kanuni-datagrid-header-label")??n;u.font=ji(l),i=u.measureText(l.textContent??"").width+44}if(a.length>0){u.font=ji(a[0]);let l=[];for(let o=0;o<a.length;o++){if(yd(a[o])){l.push(a[o]);continue}let d=a[o].textContent??"";if(d==="")continue;let h=u.measureText(d).width+20;h>i&&(i=h)}l.length>0&&(i=Math.max(i,wd(l)))}return i===0?null:Math.round(Math.min(640,Math.max(48,i)))}var kt=60,eu=36,Tt=28,tu="application/x-kanuni-row",Zt=new Map,fn=new Set,yn=5e3,Ct=0,Ed=["columnStateChanged","sortChanged"],Ad=["columnStateChanged"],xd=["contentReady","viewportChanged","filterChanged","selectionChanged","focusChanged","summariesChanged","cellsRefreshed"],T=(e,t="div")=>{let u=document.createElement(t);return u.className=e,u},uu="http://www.w3.org/2000/svg";function bd(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:a}=r.grouping,i=n==null?[]:typeof n=="string"?[n]:n;(i.length>1||a)&&(u("multi-level grouping and group summaries are"),r={...r,grouping:{...r.grouping,groupBy:i.slice(0,1),groupSummaries:!1}})}return r}var vd={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:""},_u=new Set;function Fd(e){for(let t of Object.keys(e)){let u=vd[t];u===void 0||u===""||_u.has(t)||(_u.add(t),console.warn(`[datagrid] \`${t}\` is a React-only option \u2014 ${u}.`))}}function Dd(){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 Sd(){let e=document.createElementNS(uu,"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(uu,"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 Bd(e){let t=document.createElementNS(uu,"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(uu,"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 a=document.createElementNS(uu,"path");a.setAttribute("d",n),a.setAttribute("fill","none"),a.setAttribute("stroke","currentColor"),a.setAttribute("stroke-width","1.3"),a.setAttribute("stroke-linecap","round"),t.appendChild(a)};return r("M5 8h6"),e&&r("M8 5v6"),t}function kd(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 Cn(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 Yi(e,t){let{theme:u,palette:r,density:n,dark:a,striped:i=!0,rowNumbers:l=!1,locale:o="en",footer:d=!1,footerMenu:h=!0,footerPosition:c="bottom",notes:g,pinnedTopRows:f=[],pinnedBottomRows:C=[],resizable:b=!0,reorderable:F=!0,filterRow:R=!1,headerFilter:I=!1,filterIconMode:V="hover",filterPanel:$=!1,onOpenFilterBuilder:Y,focusedRow:G=!1,focusedRowKey:_,onFocusedRowChanged:oe,onRowClick:Pe,onRowActivate:Nt,autoSizeStrategy:W="none",renderRow:K,announcements:Z=!0,filterPanelLabels:J,showRowCount:ke=!1,toolbarColumnChooser:Ze=!1,cellMenu:ve=!0,rowMenu:we,headerMenu:ce,rowDrag:le,alignedGrids:ae,printLayout:et,renderCellContent:ju,getCellClassName:Yu,onCellPointerDown:wn,onCellPointerEnter:ru,onCellDoubleClick:En,renderDetail:An,renderEditForm:Qi,enterpriseEdition:We=!1,stateStoring:xn,tooltip:tt=!0,renderOverlay:Qu,filterDebounce:Xi,toolbar:bn=!1,highlightSearch:Ji=!0,sortable:Zi=!0,toolbarItemsAfter:eo,toolbarItemsBefore:to,toolbarExcel:uo=!1,toolbarPdf:ro=!1,searchDebounce:no=200,...ao}=t;Fd(t),ke&&!_u.has("showRowCount:deprecated")&&(_u.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 L=Jt(o),{emptyText:io=L.noData,loadingText:oo=L.busy,loadingOverlay:Xu=!0,...Ee}=ao,vn=typeof Xu=="number"?Xu:300,Ju=hn(L),Fn=mn(L);if((!Ee.columns||Ee.columns.length===0)&&t.autoColumns!==!1){let s=Array.isArray(Ee.dataSource)?Ee.dataSource:[];Ee.columns=di(s,typeof t.autoColumns=="object"?t.autoColumns:{})}Ee.rowHeight===void 0&&(Ee.rowHeight=Ku(u,n,28));let lo=We?Ee:bd(Ee,!!t.debugMode),ut=We?g:void 0;!We&&g&&t.debugMode&&console.warn("[datagrid] cell notes are an Enterprise feature \u2014 use createEnterpriseGrid from @kanunilabs/datagrid-enterprise to show them.");let E=new Wi(lo);E.setEnterpriseEdition(We),_!=null&&E.focusRow(_);let j=T(Cn(t));j.style.height="100%",j.setAttribute("role","grid"),j.setAttribute("data-grid-id",t.gridId),u&&j.setAttribute("data-theme",u),j.style.setProperty("--dg-row-height",`${E.getRowHeight()}px`);let q=T("kanuni-datagrid-scroller"),he=T("kanuni-datagrid-canvas"),Fe=T("kanuni-datagrid-header");Fe.setAttribute("role","row");let pe=T("kanuni-datagrid-rows");pe.style.position="relative";let ee=T("kanuni-datagrid-viewport");pe.appendChild(ee);let Rt=T("kanuni-datagrid-pinned-rows kanuni-datagrid-pinned-rows--top"),Dn=T("kanuni-datagrid-pinned-rows kanuni-datagrid-pinned-rows--bottom"),Ge=d,rt=c==="top",de=T(`kanuni-datagrid-footer-row kanuni-datagrid-footer-row--${rt?"top":"bottom"}`);if(de.setAttribute("role","row"),de.setAttribute("aria-label",L.columnTotalsAria),h){let s=p=>{let m=p.target?.closest(".kanuni-datagrid-footer-cell")?.getAttribute("data-column-id");m&&(p.preventDefault(),Io(m,{left:p.clientX,top:p.clientY}))};de.addEventListener("click",s),de.addEventListener("contextmenu",s)}let nu=T("kanuni-datagrid-bands-host");nu.style.display="contents";let nt=T("kanuni-datagrid-filter-row");nt.setAttribute("role","row"),he.append(nu,Fe),R&&he.append(nt);let Zu=R?2:1;de.style.setProperty("--dg-pinned-gap",String(rt?Zu:0)),Rt.style.setProperty("--dg-pinned-gap",String(Zu+(Ge&&rt?1:0))),Ge&&rt&&he.append(de),f.length>0&&he.append(Rt),he.append(pe),C.length>0&&he.append(Dn),Ge&&!rt&&he.append(de),q.appendChild(he);let at=T("kanuni-datagrid-toolbar"),yt=T("kanuni-datagrid-pager");yt.setAttribute("role","navigation"),yt.setAttribute("aria-label","Pagination");let it=T("kanuni-datagrid-filter-panel"),ot=!!Ee.grouping?.panel,me=T("kanuni-datagrid-group-panel");bn&&j.appendChild(at),ot&&j.appendChild(me),j.appendChild(q),$&&j.appendChild(it);let Sn=Ee.pagination;Sn&&Sn.enabled!==!1&&j.appendChild(yt);let Mt=T("kanuni-datagrid-loading-overlay"),Bn=T("kanuni-datagrid-loading-card"),kn=T("kanuni-datagrid-loading-spinner","span");kn.setAttribute("aria-hidden","true");let Tn=T("kanuni-datagrid-loading-label","span");Tn.textContent=oo,Bn.append(kn,Tn),Mt.appendChild(Bn),Mt.style.display="none";let It=T("kanuni-datagrid-sr-only","div");It.setAttribute("role","status"),It.setAttribute("aria-live","polite"),It.setAttribute("aria-atomic","true");let au=T("kanuni-datagrid-empty");au.textContent=io,au.style.display="none",j.append(Mt,au),Z&&j.appendChild(It),e.appendChild(j);let Lt=Ee.selection,Nn=E.getGroupDisplay()==="aligned",Pt=(Lt?.mode??"none")!=="none"&&(Lt?.checkboxColumn??!1),so=(Lt?.rowClick??(Pt?"toggle":"replace"))==="toggle",iu=E.hasMasterDetail()&&!!An,er=l?kt:0,Rn=er+(iu?Tt:0),Te=(l?kt:0)+(iu?Tt:0)+(Pt?eu:0);E.setLeadWidth(Te);let Gt=!!le?.enabled,Ot=le?.group??null,Mn=le?.allowReordering??!0,In=le?.allowDropInsert??Ot!==null,Oe=null,ou=null,lu=!1,lt=null,Ke=null;function wt(s){lt=s;for(let p of ee.querySelectorAll(".kanuni-datagrid-row")){let w=p.getAttribute("data-row-key"),m=s!==null&&w===String(s.key);p.classList.toggle("kanuni-datagrid-row--drop-before",m&&s.side==="before"),p.classList.toggle("kanuni-datagrid-row--drop-after",m&&s.side==="after")}}let Ln=(s,p)=>{let w=p.getBoundingClientRect();return s.clientY<w.top+w.height/2?"before":"after"},Pn=s=>s.dataTransfer?.types.includes(tu)?Oe!==null?Mn:In&&Ot!==null:!1;function Gn(s,p,w){let m=null;try{let y=s.dataTransfer?.getData(tu);m=y?JSON.parse(y):null}catch{m=null}if(m){if(m.gridId===E.gridId){if(!Mn)return;if(le?.onReorder){le.onReorder({dragKey:m.rowKey,targetKey:p,position:w,row:E.getRowByKey(m.rowKey)});return}E.moveRow(m.rowKey,p,w);return}!In||Ot===null||m.group!==Ot||le?.onAdd?.({row:m.row,rowKey:m.rowKey,otherGridId:m.gridId,targetKey:p,position:w})}}let co=s=>{let p=qe(s);if(!p||p.node.kind!=="data"||!s.dataTransfer)return;Oe=p.node.key,ou=p.node.key,lu=!1;let w={gridId:E.gridId,group:Ot,rowKey:p.node.key,row:p.node.data};s.dataTransfer.setData(tu,JSON.stringify(w)),s.dataTransfer.setData("text/plain",String(p.node.key)),s.dataTransfer.effectAllowed="move",E.notifyRowDrag("enter",{rowKey:p.node.key})},ho=s=>{if(!Pn(s))return;s.preventDefault(),s.dataTransfer&&(s.dataTransfer.dropEffect="move");let p=qe(s);if(!p||p.node.kind!=="data")return;if(Oe===p.node.key){Ke=null,wt(null);return}let w=s.target.closest(".kanuni-datagrid-row"),m=Ln(s,w),y=lt?.key!==p.node.key||lt.side!==m;Ke={key:p.node.key,side:m},wt({key:p.node.key,side:m}),y&&Oe!==null&&E.notifyRowDrag("move",{rowKey:Oe,overKey:p.node.key,position:m})},po=s=>{if(!Pn(s)){wt(null);return}s.preventDefault();let p=qe(s);if(lu=!0,p&&p.node.kind==="data"){let w=s.target.closest(".kanuni-datagrid-row"),m=Ln(s,w);Ke={key:p.node.key,side:m},Gn(s,p.node.key,m)}else Ke=null,Gn(s,null,"after");Oe=null,wt(null)},mo=()=>{ou!==null&&E.notifyRowDragEnd({rowKey:ou,dropped:lu,overKey:Ke?.key??null,position:Ke?.side??null}),lu=!1,ou=null,Oe=null,Ke=null,wt(null)},go=s=>{let p=s.relatedTarget;p&&pe.contains(p)||Oe!==null&&(Ke=null,wt(null),E.notifyRowDrag("leave",{rowKey:Oe}))},Vt=et===void 0||et===!1?null:(()=>{let s=et===!0?{}:et;return{always:s.always??!1,maxRows:s.maxRows??yn}})(),zt=!1;function tr(s){zt!==s&&(zt=s,j.classList.toggle("kanuni-datagrid-print",s),s?(Ct++,document.documentElement.classList.add("kanuni-datagrid-printing")):(Ct--,Ct<=0&&(Ct=0,document.documentElement.classList.remove("kanuni-datagrid-printing"))),lr())}let On=null;if(Vt&&!Vt.always){let s=()=>{let w=E.getRows().length;if(w>Vt.maxRows){E.isDebugMode()&&console.warn(`[datagrid] print layout skipped: ${w} rows exceeds maxRows (${Vt.maxRows}). Printing the visible rows instead \u2014 use exportPdf() for the whole result.`);return}tr(!0)},p=()=>tr(!1);window.addEventListener("beforeprint",s),window.addEventListener("afterprint",p),On=()=>{window.removeEventListener("beforeprint",s),window.removeEventListener("afterprint",p)}}let $e=0,Ne=[],ge=0,ur=0;function rr(){let s=E.getColumnLayout(),p=E.getVirtualWindow().columns,w=[],m=(A,v,D,B)=>{let x=A.def;w.push({def:x,id:A.state.id,width:A.state.width,pinned:v,inset:D,className:kd(x.align,x.dataType)+(v?" kanuni-datagrid-cell--pinned":"")+(x.autoHeight?" kanuni-datagrid-cell--wrap":""),visualIndex:B})};s.left.forEach((A,v)=>m(A,"left",s.leftOffsets[v]+Te,v));for(let A=p.start;A<p.end&&A<s.center.length;A++)m(s.center[A],null,0,s.left.length+A);s.right.forEach((A,v)=>m(A,"right",s.rightOffsets[v],s.left.length+s.center.length+v)),Ne=w,ge=p.offsetX;let y=(s.centerOffsets[Math.min(p.end,s.center.length)]??0)-(s.centerOffsets[Math.min(p.start,s.center.length)]??0);ur=Math.max(0,s.centerWidth-p.offsetX-y),he.style.minWidth=`${s.totalWidth+Te}px`}let su=26;function fo(){let s=E.getColumnLayout(),p=E.getVirtualWindow().columns,w=[...s.left,...s.center.slice(p.start,Math.min(p.end,s.center.length)),...s.right],m=li(w);if(nu.textContent="",Fe.style.top=`${m*su}px`,j.style.setProperty("--dg-band-offset",`${m*su}px`),m===0)return;si(w,m).forEach((A,v)=>{let D=T("kanuni-datagrid-band-row");if(D.style.top=`${v*su}px`,D.style.height=`${su}px`,Te>0){let B=T("kanuni-datagrid-band-cell kanuni-datagrid-band-cell--spacer kanuni-datagrid-band-cell--pinned");B.style.width=`${Te}px`,B.style.flex="none",B.style.insetInlineStart="0px",D.appendChild(B)}if(ge>0){let B=T("kanuni-datagrid-spacer");B.style.width=`${ge}px`,B.style.flex="none",D.appendChild(B)}for(let B of A){let x=T(`kanuni-datagrid-band-cell${B.spacer?" kanuni-datagrid-band-cell--spacer":""}`);if(x.style.width=`${B.width}px`,x.style.flex="none",!B.spacer){if(B.columnIds.length>0){let M=He(E.getColumnModel().getDef(B.columnIds[0])).slice(0,v+1);if(M.length===v+1&&E.isBandCollapsible(M)){let P=E.isBandCollapsed(M),S=document.createElement("button");S.type="button",S.className="kanuni-datagrid-band-toggle",S.setAttribute("aria-expanded",String(!P));let N=P?L.expandDetails??"Expand":L.collapseDetails??"Collapse";S.setAttribute("aria-label",N),S.title=N,S.appendChild(Bd(P)),S.addEventListener("click",O=>{O.stopPropagation(),E.toggleBand(M)}),x.appendChild(S)}}let k=T("kanuni-datagrid-band-label","span");k.textContent=B.label,x.appendChild(k)}D.appendChild(x)}nu.appendChild(D)})}let Ht=null,du=null;function cu(s,p){du&&du!==s&&du.classList.remove("kanuni-datagrid-header-cell--drop-before","kanuni-datagrid-header-cell--drop-after"),du=s,s&&(s.classList.toggle("kanuni-datagrid-header-cell--drop-before",p==="before"),s.classList.toggle("kanuni-datagrid-header-cell--drop-after",p==="after"))}function Vn(){if(!Ht)return;let s=E.getSelectedCount(),p=E.getVisibleCount(),w=p>0&&s>=p;Ht.checked=w,Ht.indeterminate=!w&&s>0}function nr(){fo();let s=E.getSort(),p=new Map(s.map((m,y)=>[m.columnId,{direction:m.direction,order:y}]));if(Fe.textContent="",Ht=null,l){let m=T("kanuni-datagrid-header-cell kanuni-datagrid-header-cell--pinned kanuni-datagrid-rownum-cell");m.setAttribute("role","columnheader"),m.style.width=`${kt}px`,m.style.flex="none",m.style.insetInlineStart="0px",Fe.appendChild(m)}if(iu){let m=T("kanuni-datagrid-header-cell kanuni-datagrid-header-cell--pinned kanuni-datagrid-detail-toggle-cell");m.setAttribute("role","columnheader"),m.setAttribute("aria-label",L.detailsAria),m.style.width=`${Tt}px`,m.style.flex="none",m.style.insetInlineStart=`${er}px`,Fe.appendChild(m)}if(Pt){let m=T("kanuni-datagrid-header-cell kanuni-datagrid-header-cell--pinned kanuni-datagrid-select-cell");m.setAttribute("role","columnheader"),m.style.width=`${eu}px`,m.style.flex="none",m.style.insetInlineStart=`${Rn}px`;let y=document.createElement("input");y.type="checkbox",y.setAttribute("aria-label",L.selectAllRows),y.addEventListener("change",()=>{E.getSelectedCount()>0?E.clearSelection():E.selectAll()}),m.appendChild(y),Fe.appendChild(m),Ht=y,Vn()}let w=!1;for(let m of Ne){if(!m.pinned&&!w){if(ge>0){let x=document.createElement("div");x.style.flex=`0 0 ${ge}px`,Fe.appendChild(x)}w=!0}let y=Zi&&m.def.sortable!==!1,A=p.get(m.id),v=T(`kanuni-datagrid-header-cell${y?" kanuni-datagrid-header-cell--sortable":""}${m.pinned?" kanuni-datagrid-header-cell--pinned":""}`);v.setAttribute("role","columnheader"),v.setAttribute("data-column-id",m.id),v.setAttribute("aria-sort",A?A.direction==="asc"?"ascending":"descending":"none");let D=m.def.headerTooltip;D&&(v.title=D),v.style.width=`${m.width}px`,v.style.flex="none",m.pinned==="left"&&(v.style.insetInlineStart=`${m.inset}px`),m.pinned==="right"&&(v.style.insetInlineEnd=`${m.inset}px`);let B=T("kanuni-datagrid-header-label","span");if(m.def.renderHeader){let x=m.def.renderHeader({column:m.def});typeof x=="string"?B.textContent=x:B.appendChild(x)}else B.textContent=m.def.headerName??m.id;if(v.appendChild(B),A){let x=T("kanuni-datagrid-sort-indicator","span");if(x.setAttribute("aria-hidden","true"),x.textContent=A.direction==="asc"?"\u25B2":"\u25BC",v.appendChild(x),s.length>1){let k=T("kanuni-datagrid-sort-order","span");k.setAttribute("aria-hidden","true"),k.textContent=String(A.order+1),v.appendChild(k)}}if(y){let x=m.id;v.addEventListener("click",k=>{E.toggleSort(x,k.shiftKey)})}if(ce!==!1){let x=m.id;v.addEventListener("contextmenu",k=>{k.preventDefault(),Mo(x,{left:k.clientX,top:k.clientY})})}if(I&&m.def.filterable!==!1){let x=document.createElement("button");x.type="button";let k=E.getColumnFilter(m.id)!==null;x.className=`kanuni-datagrid-filter-button${k?" kanuni-datagrid-filter-button--active":""}${V==="always"?" kanuni-datagrid-filter-button--pinned":""}`,x.setAttribute("aria-haspopup","dialog"),x.setAttribute("aria-label",`${m.def.headerName??m.id} filter`),x.appendChild(Sd()),x.addEventListener("click",M=>{M.stopPropagation(),Fo(m.id,x)}),v.appendChild(x)}if(F&&m.def.reorderable!==!1&&(v.draggable=!0,v.addEventListener("dragstart",x=>{x.dataTransfer?.setData("text/x-kanuni-column",m.id),x.dataTransfer&&(x.dataTransfer.effectAllowed="move")}),v.addEventListener("dragover",x=>{if(!x.dataTransfer?.types.includes("text/x-kanuni-column"))return;x.preventDefault();let k=v.getBoundingClientRect(),M=x.clientX<k.left+k.width/2;cu(v,M?"before":"after")}),v.addEventListener("dragleave",x=>{let k=x.relatedTarget;(!k||!v.contains(k))&&cu(null,"before")}),v.addEventListener("drop",x=>{cu(null,"before");let k=x.dataTransfer?.getData("text/x-kanuni-column");if(!k||k===m.id)return;x.preventDefault();let M=v.getBoundingClientRect();if(x.clientX<M.left+M.width/2)E.moveColumn(k,m.id);else{let S=Ne.findIndex(N=>N.id===m.id);E.moveColumn(k,Ne[S+1]?.id)}}),v.addEventListener("dragend",()=>cu(null,"before"))),b&&m.def.resizable!==!1){let x=T("kanuni-datagrid-resize-handle","span");x.setAttribute("data-resize-handle",m.id),x.setAttribute("role","presentation"),x.addEventListener("click",k=>k.stopPropagation()),x.addEventListener("dblclick",k=>{k.stopPropagation(),Po(m.id)}),x.addEventListener("pointerdown",k=>{k.preventDefault(),k.stopPropagation();let M=k.clientX,P=m.width,S=getComputedStyle(v).direction==="rtl"?-1:1;v.draggable=!1;let N=P,O=!1,H=se=>{O=!0,N=P+(se.clientX-M)*S,E.setColumnWidth(m.id,N,!1)},Q=()=>{window.removeEventListener("pointermove",H),window.removeEventListener("pointerup",Q),window.removeEventListener("pointercancel",Q),O&&E.setColumnWidth(m.id,N,!0),v.draggable=F&&m.def.reorderable!==!1};window.addEventListener("pointermove",H),window.addEventListener("pointerup",Q),window.addEventListener("pointercancel",Q)}),v.appendChild(x)}Fe.appendChild(v)}}let zn=null,hu=null;function Co(s){if(s===zn)return;zn=s;let p=[];for(let w=0;w<s.length;w++){let m=s[w];m&&m.kind!=="data"&&p.push(w)}hu=p.length>0?p:null}function yo(s){if(!hu)return s+1;let p=0,w=hu.length;for(;p<w;){let m=p+w>>1;hu[m]<=s?p=m+1:w=m}return s+1-p}let st=[];function ar(s="data"){let p=T("kanuni-datagrid-row");if(p.setAttribute("role","row"),s==="loading"){p.classList.add("kanuni-datagrid-row--loading"),p.setAttribute("aria-busy","true");let x=T("kanuni-datagrid-cell kanuni-datagrid-loading-cell");return x.setAttribute("role","gridcell"),x.setAttribute("aria-colindex","1"),x.appendChild(T("kanuni-datagrid-loading-bar","span")),p.appendChild(x),{kind:s,root:p,cells:[],rowNumberCell:null,selectInput:null,detailToggle:null,leadingSpacer:null,trailingSpacer:null,epoch:$e}}if(s==="data"&&Nn&&p.addEventListener("click",()=>{if(!p.classList.contains("kanuni-datagrid-group-row--aligned"))return;let x=p.getAttribute("data-group-key");x!==null&&E.toggleGroup(x)}),s==="panel"){let x=document.createElement("div");return x.setAttribute("role","gridcell"),x.setAttribute("aria-colindex","1"),p.appendChild(x),{kind:s,root:p,cells:[],rowNumberCell:null,selectInput:null,detailToggle:null,leadingSpacer:null,trailingSpacer:null,panelCell:x,epoch:$e}}if(s==="group"){let x=T("kanuni-datagrid-group-cell");x.setAttribute("role","gridcell"),x.setAttribute("aria-colindex","1");let k=T("kanuni-datagrid-group-twisty","span");k.setAttribute("aria-hidden","true");let M=T("kanuni-datagrid-group-caption","span"),P=T("kanuni-datagrid-group-label","span"),S=T("kanuni-datagrid-group-count","span"),N=T("kanuni-datagrid-group-aggregates","span"),O=null;return Pt&&Lt?.mode==="multiple"&&(O=document.createElement("input"),O.type="checkbox",O.className="kanuni-datagrid-group-checkbox",O.tabIndex=-1,O.addEventListener("change",()=>{let H=p.getAttribute("data-group-key");H!==null&&E.toggleGroupSelection(H)}),O.addEventListener("click",H=>H.stopPropagation()),O.addEventListener("mousedown",H=>H.stopPropagation()),x.appendChild(O)),x.append(k,M,P,S,N),p.appendChild(x),p.addEventListener("click",()=>{let H=p.getAttribute("data-group-key");H!==null&&E.toggleGroup(H)}),{kind:s,root:p,cells:[],rowNumberCell:null,selectInput:null,detailToggle:null,leadingSpacer:null,trailingSpacer:null,group:{cell:x,check:O,twisty:k,caption:M,label:P,count:S,aggregates:N},epoch:$e}}if(Gt){let x=T("kanuni-datagrid-row-grip","span");x.setAttribute("aria-hidden","true"),x.title=L.dragToReorder??"Drag to reorder",x.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>',x.addEventListener("mouseenter",()=>{p.draggable=!0}),x.addEventListener("mouseleave",()=>{p.draggable=!1}),p.appendChild(x)}if(K)return{kind:s,root:p,cells:[],rowNumberCell:null,selectInput:null,detailToggle:null,leadingSpacer:null,trailingSpacer:null,epoch:$e};let w=null;l&&(w=T("kanuni-datagrid-cell kanuni-datagrid-cell--number kanuni-datagrid-cell--pinned kanuni-datagrid-rownum-cell"),w.setAttribute("role","gridcell"),w.style.width=`${kt}px`,w.style.flex="none",w.style.insetInlineStart="0px",p.appendChild(w));let m=null;if(iu){let x=T("kanuni-datagrid-cell kanuni-datagrid-cell--center kanuni-datagrid-cell--pinned kanuni-datagrid-detail-toggle-cell");x.setAttribute("role","gridcell"),x.style.width=`${Tt}px`,x.style.flex="none",x.style.insetInlineStart=`${er}px`;let k=document.createElement("button");k.type="button",k.className="kanuni-datagrid-detail-toggle",k.tabIndex=-1,k.addEventListener("click",M=>{M.stopPropagation();let P=p.getAttribute("data-row-key");if(P===null)return;let S=E.getRows().find(N=>N!==void 0&&String(N.key)===P);S&&S.kind==="data"&&E.toggleDetail(S.key)}),k.addEventListener("mousedown",M=>M.stopPropagation()),x.appendChild(k),p.appendChild(x),m=k}let y=null;if(Pt){let x=T("kanuni-datagrid-cell kanuni-datagrid-cell--center kanuni-datagrid-cell--pinned kanuni-datagrid-select-cell");x.setAttribute("role","gridcell"),x.style.width=`${eu}px`,x.style.flex="none",x.style.insetInlineStart=`${Rn}px`;let k=document.createElement("input");k.type="checkbox",k.tabIndex=-1;let M=()=>{let P=p.getAttribute("data-row-key");if(P===null)return;let S=E.getRows().find(N=>N!==void 0&&String(N.key)===P);S?.kind==="group"?E.toggleGroupSelection(String(S.key)):S&&E.toggleRow(S.key)};x.addEventListener("mousedown",P=>P.stopPropagation()),x.addEventListener("click",P=>{P.target.tagName!=="INPUT"&&(P.stopPropagation(),M())}),k.addEventListener("change",M),k.addEventListener("click",P=>P.stopPropagation()),k.addEventListener("mousedown",P=>P.stopPropagation()),x.appendChild(k),p.appendChild(x),y=k}let A=[],v=null,D=!1;for(let x of Ne){!x.pinned&&!D&&(v=document.createElement("div"),v.style.flex=`0 0 ${ge}px`,p.appendChild(v),D=!0);let k=T(x.className);k.setAttribute("role","gridcell"),k.setAttribute("data-column-id",x.id),k.style.width=`${x.width}px`,k.style.flex="none",x.pinned==="left"&&(k.style.insetInlineStart=`${x.inset}px`),x.pinned==="right"&&(k.style.insetInlineEnd=`${x.inset}px`),p.appendChild(k),A.push({el:k,slot:x})}let B=document.createElement("div");return B.style.flex=`0 0 ${ur}px`,p.appendChild(B),{kind:s,root:p,cells:A,rowNumberCell:w,selectInput:y,detailToggle:m,leadingSpacer:v,trailingSpacer:B,epoch:$e}}let Et="";function pu(s,p){if(Et===""||p===""){s.textContent=p;return}let w=ne(p),m=w.indexOf(Et);if(m===-1){s.textContent=p;return}let y=[],A=0;for(;m!==-1;){m>A&&y.push(document.createTextNode(p.slice(A,m)));let v=document.createElement("mark");v.className="kanuni-datagrid-highlight",v.textContent=p.slice(m,m+Et.length),y.push(v),A=m+Et.length,m=w.indexOf(Et,A)}A<p.length&&y.push(document.createTextNode(p.slice(A))),s.replaceChildren(...y)}function wo(s,p,w){let m=E.getColumnModel().getCellValue(w.data,p.id),y=p.def;if(y.renderCell){let v=y.renderCell({value:m,row:w.data,node:w,column:y});typeof v=="string"?s.textContent=v:s.replaceChildren(v);return}let A=ft(y,m);if(A!==null){pu(s,A);return}if(y.valueFormatter){let v=y.valueFormatter(m,w.data);pu(s,typeof v=="string"?v:String(v??""));return}if(y.dateFormat&&y.dataType==="date"){pu(s,tn(m,y.dateFormat));return}pu(s,m==null?"":String(m))}function Hn(s,p,w){let m=s.root;if(m.setAttribute("aria-rowindex",String(w+2)),m.setAttribute("data-row-key",String(p.key)),p.kind==="detail"||p.kind==="editform"){let S=s.panelCell,N=p.kind==="detail";m.className=`kanuni-datagrid-row ${N?"kanuni-datagrid-detail-row":"kanuni-datagrid-editform-row"}`,m.style.height=`${p.height}px`,N?(m.setAttribute("data-detail-for",String(p.parentKey)),m.removeAttribute("data-editform-for")):(m.setAttribute("data-editform-for",p.parentKey===null?"":String(p.parentKey)),m.removeAttribute("data-detail-for")),S.className=N?"kanuni-datagrid-detail-cell":"kanuni-datagrid-editform-cell";let O=`${p.kind}:${String(p.key)}`;if(m.getAttribute("data-panel-for")!==O){m.setAttribute("data-panel-for",O);let H=N?An?.(p.data):p.parentKey===null?void 0:Qi?.(p.parentKey,p.data);S.textContent="",typeof H=="string"?S.textContent=H:H&&S.appendChild(H)}return}if(m.removeAttribute("data-panel-for"),m.removeAttribute("data-detail-for"),m.removeAttribute("data-editform-for"),p.kind==="filler"){m.style.display="none";return}m.style.display="",m.style.height=Wn?"":`${E.getRowHeight()}px`;let y=p.kind==="group"&&!s.group?p:null;if(!s.group){m.classList.remove("kanuni-datagrid-group-row","kanuni-datagrid-group-row--aligned");for(let S of Array.from(m.classList))S.startsWith("kanuni-datagrid-group-row--level-")&&m.classList.remove(S);y?(m.classList.add("kanuni-datagrid-group-row","kanuni-datagrid-group-row--aligned",`kanuni-datagrid-group-row--level-${y.level}`),m.setAttribute("aria-expanded",String(y.expanded)),m.setAttribute("aria-level",String(y.level+1)),m.setAttribute("data-group-key",String(y.key)),m.setAttribute("data-group-level",String(y.level))):(m.removeAttribute("aria-expanded"),m.removeAttribute("aria-level"),m.removeAttribute("data-group-key"),m.removeAttribute("data-group-level"))}m.classList.toggle("kanuni-datagrid-row--odd",i&&w%2===1),m.classList.toggle("kanuni-datagrid-row--selected",E.isRowSelected(p.key));let A=E.getFocus();if(m.classList.toggle("kanuni-datagrid-row--focused",G&&A!==null&&A.rowKey===p.key),s.leadingSpacer&&(s.leadingSpacer.style.flex=`0 0 ${ge}px`),s.trailingSpacer&&(s.trailingSpacer.style.flex=`0 0 ${ur}px`),Gt){let S=lt!==null&&String(lt.key)===String(p.key);m.classList.toggle("kanuni-datagrid-row--drop-before",S&<.side==="before"),m.classList.toggle("kanuni-datagrid-row--drop-after",S&<.side==="after")}let v=p.kind==="treePath",D=v||y!==null;if(m.classList.toggle("kanuni-datagrid-row--tree-path",v),s.rowNumberCell&&(s.rowNumberCell.textContent=D?"":String(yo(w))),s.detailToggle&&(s.detailToggle.hidden=D),s.selectInput){let S=y!==null&&Lt?.mode==="multiple";if(s.selectInput.hidden=v||y!==null&&!S,s.selectInput.classList.toggle("kanuni-datagrid-group-checkbox",S),S){let N=E.getGroupSelectionState(String(y.key));s.selectInput.checked=N==="all",s.selectInput.indeterminate=N==="some",s.selectInput.setAttribute("aria-label",L.selectGroupAria.replace("{count}",String(y.count)).replace("{group}",y.display??y.label))}else s.selectInput.indeterminate=!1,s.selectInput.checked=E.isRowSelected(p.key),s.selectInput.setAttribute("aria-label",L.selectRowAria.replace("{row}",String(p.key)))}if(s.detailToggle&&p.kind==="data"){let S=E.isDetailExpanded(p.key);s.detailToggle.textContent=S?"\u25BE":"\u25B8",s.detailToggle.setAttribute("aria-expanded",String(S)),s.detailToggle.setAttribute("aria-label",S?L.collapseDetails:L.expandDetails)}if(p.kind==="group"&&s.group){let S=p;m.className=`kanuni-datagrid-row kanuni-datagrid-group-row kanuni-datagrid-group-row--level-${S.level}`,m.setAttribute("aria-expanded",String(S.expanded)),m.setAttribute("aria-level",String(S.level+1)),m.setAttribute("data-group-key",String(S.key)),m.setAttribute("data-group-level",String(S.level)),s.group.cell.style.paddingLeft=S.level>0?`${8+S.level*18}px`:"",s.group.twisty.textContent=S.expanded?"\u25BE":"\u25B8";let N=E.getColumnModel().getDef(S.columnId),O=N?.headerName??S.columnId;if(s.group.caption.textContent=`${O}:`,s.group.label.textContent=ft(N,S.value)??S.display??(S.label===""?L.filterBlank:S.label),s.group.count.textContent=`(${S.count})`,s.group.check){let Q=E.getGroupSelectionState(String(S.key));s.group.check.checked=Q==="all",s.group.check.indeterminate=Q==="some",s.group.check.setAttribute("aria-label",L.selectGroupAria.replace("{count}",String(S.count)).replace("{group}",s.group.label.textContent??""))}s.group.aggregates.textContent="";let H=S.aggregates??null;if(H)for(let Q of E.getSummaryDefs()){let se=T("kanuni-datagrid-group-aggregate","span"),ue=T("kanuni-datagrid-group-aggregate-label","span"),Ce=E.getColumnModel().getDef(Q.columnId);ue.textContent=`${pn(Q,Ju)} ${Ce?.headerName??Q.columnId}:`,se.append(ue,` ${$u(Q,H[Je(Q.columnId,Q.type)],Ce)}`),s.group.aggregates.appendChild(se)}return}if(p.kind!=="data"&&!v&&!y){for(let{el:S}of s.cells)S.textContent="";return}if(K&&D){let S=Gt?1:0;for(;m.childNodes.length>S;)m.removeChild(m.lastChild);let N=T("kanuni-datagrid-cell");y?N.appendChild(Kn(y)):(N.appendChild($n(p)),ir(N,p,p.tree)),m.appendChild(N);return}if(K){let S=Gt?1:0,N=K({row:p.data,node:p,rowIndex:w,selected:E.isRowSelected(p.key),focused:G&&A!==null&&A.rowKey===p.key});if(N instanceof Node&&m.childNodes.length===S+1&&m.childNodes[S]===N)return;for(;m.childNodes.length>S;)m.removeChild(m.lastChild);typeof N=="string"?m.appendChild(document.createTextNode(N)):N&&m.appendChild(N);return}let B=A!==null&&A.rowKey===p.key?A.columnId:null,x=y?void 0:p.tree,k=x||y?(()=>{let S=E.getColumnLayout();return(S.left[0]??S.center[0]??S.right[0])?.state.id??null})():null,M=x?k:null,P=E.hasCellSpans();for(let{el:S,slot:N}of s.cells){let O=(ju||Yu)&&!D?{node:p,columnId:N.id,rowIndex:w,columnIndex:N.visualIndex,value:E.getColumnModel().getCellValue(p.data,N.id)}:null,H=O&&ju?ju(O):void 0,Q=!1;if(H!==void 0?H instanceof Node&&S.childNodes.length===1&&S.firstChild===H?Q=!0:typeof H=="string"?S.textContent=H:S.replaceChildren(H):y?N.id===k?S.replaceChildren(Kn(y)):S.replaceChildren(...xo(y,N.id)):v?N.id===M?(S.replaceChildren($n(p)),ir(S,p,x)):S.replaceChildren():(wo(S,N,p),x&&N.id===M&&ir(S,p,x)),P&&!Q){let te=Ao(w,N.id);S.classList.toggle("kanuni-datagrid-cell--span",te?.kind==="draw"),S.classList.toggle("kanuni-datagrid-cell--span-covered",te?.kind==="covered");let xu=H!==void 0;if(te?.kind==="covered"&&B!==N.id&&!xu)S.replaceChildren();else if(te?.kind==="draw"){let pt=T("kanuni-datagrid-span-box");pt.style.height=`${te.height}px`,pt.append(...Array.from(S.childNodes)),S.appendChild(pt)}}else P||S.classList.remove("kanuni-datagrid-cell--span","kanuni-datagrid-cell--span-covered");if(ut){let te=!D&&!!or(p.key,N.id,p.data);S.classList.toggle("kanuni-datagrid-cell--noted",te)}S.id=`${t.gridId}-cell-${String(p.key)}-${N.id}`,S.classList.toggle("kanuni-datagrid-cell--focused",B===N.id);let se=S.getAttribute("data-slot-classes");if(se)for(let te of se.split(" "))S.classList.remove(te);let ue=O&&Yu?Yu(O):void 0,Ce=N.def.cellClassName,je=[D?void 0:typeof Ce=="function"?Ce({value:E.getColumnModel().getCellValue(p.data,N.id),row:p.data,node:p,column:N.def}):Ce,ue].filter(Boolean).join(" ")||void 0;if(je){for(let te of je.split(" "))S.classList.add(te);S.setAttribute("data-slot-classes",je)}else se&&S.removeAttribute("data-slot-classes")}}let Wn=t.columns.some(s=>s.autoHeight);function Eo(){if(!Wn)return;let s=E.getVirtualWindow(),p=E.getRows(),w=new Map(E.getMeasuredRowHeights()),m=!1;for(let y=s.rows.start;y<s.rows.end&&y<p.length;y++){let A=p[y];if(!A||A.kind!=="data")continue;let v=y-s.rows.start,D=st[v]?.root;if(!D)continue;let B=D.getBoundingClientRect().height;B>0&&w.get(A.key)!==B&&(w.set(A.key,B),m=!0)}m&&E.setMeasuredRowHeights(w)}let mu={start:0,end:0};function Ao(s,p){let w=E.getCellSpans(p);if(w.length===0)return null;let m=xi(w,s,mu.start,mu.end);if(!m)return null;if(m.role==="covered")return{kind:"covered"};let y=E.getRowOffset(m.drawStart);return{kind:"draw",height:E.getRowOffset(m.drawEnd)+E.getRowHeightAt(m.drawEnd)-y}}function Kn(s){let p=T("kanuni-datagrid-group-inline","span");p.style.paddingInlineStart=`${s.level*16}px`;let w=T("kanuni-datagrid-group-twisty","span");w.setAttribute("aria-hidden","true"),w.textContent=s.expanded?"\u25BE":"\u25B8";let m=E.getColumnModel().getDef(s.columnId),y=T("kanuni-datagrid-group-caption","span");y.textContent=`${m?.headerName??s.columnId}:`;let A=T("kanuni-datagrid-group-label","span");A.textContent=ft(m,s.value)??s.display??(s.label===""?L.filterBlank:s.label);let v=T("kanuni-datagrid-group-count","span");return v.textContent=`(${s.count})`,p.append(w,y,A,v),p}function xo(s,p){if(!s.aggregates)return[];let w=E.getSummaryDefs().find(y=>y.columnId===p);if(!w)return[];let m=T("kanuni-datagrid-group-aggregate-value","span");return m.textContent=$u(w,s.aggregates[Je(w.columnId,w.type)],E.getColumnModel().getDef(p)),[m]}function $n(s){let p=T("kanuni-datagrid-tree-path-label","span");return p.textContent=s.label,p}function ir(s,p,w){let m=T(`kanuni-datagrid-tree-cell${w.ancestorOnly?" kanuni-datagrid-tree-cell--ancestor":""}`,"span");if(m.style.paddingInlineStart=`${w.depth*16}px`,w.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(w.expanded)),y.setAttribute("aria-label",w.expanded?L.collapseDetails:L.expandDetails),y.textContent=w.expanded?"\u25BE":"\u25B8",y.addEventListener("mousedown",A=>A.stopPropagation()),y.addEventListener("click",A=>{A.stopPropagation(),E.toggleTreeRow(p.key)}),m.appendChild(y)}else m.appendChild(T("kanuni-datagrid-tree-toggle kanuni-datagrid-tree-toggle--leaf","span"));m.append(...Array.from(s.childNodes)),s.appendChild(m)}let or=(s,p,w)=>ut?ut.get({rowKey:s,columnId:p,row:w})??null:null,Un=null,Ue=Qu?T("kanuni-datagrid-overlay"):null;Ue&&(Ue.style.position="absolute",Ue.style.inset="0",Ue.style.pointerEvents="none",pe.appendChild(Ue));function bo(){if(!Qu||!Ue)return;let s=Qu();s!==Un&&(Un=s,s?Ue.replaceChildren(s):Ue.replaceChildren())}function lr(){bo();let s=E.getVirtualWindow(),p=E.getRows(),w=zt?{...s,rows:{...s.rows,start:0,end:p.length,offsetY:0,totalHeight:0}}:s;Co(p),pe.style.height=`${w.rows.totalHeight}px`,ee.style.transform=`translateY(${w.rows.offsetY}px)`,Et=Ji?Yt(E.getSearchText()):"";let m=Math.max(0,Math.min(w.rows.end,p.length)-w.rows.start);for(mu.start=w.rows.start,mu.end=Math.min(w.rows.end,p.length)-1;st.length>m;)st.pop().root.remove();for(let y=0;y<m;y++){let A=w.rows.start+y,v=p[A];if(!v){let x=st[y];if(!x||x.kind!=="loading"){let k=ar("loading");x?ee.replaceChild(k.root,x.root):ee.appendChild(k.root),st[y]=k,x=k}x.root.setAttribute("aria-rowindex",String(A+2)),x.root.style.height=`${E.getRowHeight()}px`;continue}let D=v.kind==="data"?"data":v.kind==="group"?Nn?"data":"group":v.kind==="detail"||v.kind==="editform"?"panel":"stub",B=st[y];if(!B||B.epoch!==$e||B.kind!==D){let x=ar(D);B?ee.replaceChild(x.root,B.root):ee.appendChild(x.root),st[y]=x,B=x}Hn(B,v,A)}Eo()}let qn=bi(Xi??(E.isRemote()?200:0));function sr(){if(!R)return;if(nt.textContent="",Te>0){let m=T("kanuni-datagrid-filter-cell kanuni-datagrid-filter-cell--pinned");m.style.width=`${Te}px`,m.style.flex="none",m.style.insetInlineStart="0px",nt.appendChild(m)}let s=!1,p=null,w=()=>{if(!p){p=document.createElement("datalist"),p.id=`${t.gridId}-filter-periods`;for(let m of $i(Fn)){let y=document.createElement("option");y.value=m,p.appendChild(y)}nt.appendChild(p)}return p.id};for(let m of Ne){if(!m.pinned&&!s){if(ge>0){let A=T("kanuni-datagrid-spacer");A.style.width=`${ge}px`,A.style.flex="none",nt.appendChild(A)}s=!0}let y=T(`kanuni-datagrid-filter-cell${m.pinned?" kanuni-datagrid-filter-cell--pinned":""}`);if(y.style.width=`${m.width}px`,y.style.flex="none",m.pinned==="left"&&(y.style.insetInlineStart=`${m.inset}px`),m.pinned==="right"&&(y.style.insetInlineEnd=`${m.inset}px`),m.def.filterable!==!1){let A=document.createElement("input");A.className="kanuni-datagrid-filter-input",A.setAttribute("aria-label",`${m.def.headerName??m.id} filter`),m.def.dataType==="date"&&A.setAttribute("list",w());let v=()=>E.setColumnFilter(m.id,Ui(m.id,A.value,m.def.dataType,Fn),hi);A.addEventListener("input",()=>qn.schedule(m.id,v));let D=()=>{qn.cancel(m.id),v()};A.addEventListener("keydown",B=>{B.key==="Enter"&&D()}),A.addEventListener("blur",D),y.appendChild(A)}nt.appendChild(y)}}let dr=()=>{};function vo(){if(!bn)return;let s=document.createElement("input");s.type="search",s.className="kanuni-datagrid-toolbar-search",s.placeholder=L.toolbarSearch,s.setAttribute("aria-label",L.toolbarSearch);let p=null;s.addEventListener("input",()=>{p&&clearTimeout(p),p=setTimeout(()=>E.setSearchText(s.value),no)});let w=T("kanuni-datagrid-toolbar-spacer"),m=null;if(Ze){let x=document.createElement("button");x.type="button",x.textContent=L.toolbarColumns??"Columns",x.setAttribute("aria-haspopup","dialog"),x.addEventListener("click",()=>{let k=x.getBoundingClientRect();Zn({left:k.left,top:k.bottom+2})}),m=x}let y=We&&uo,A=We&&ro,v=document.createElement("button");v.type="button",v.className="kanuni-datagrid-toolbar-icon-button",v.setAttribute("aria-haspopup","menu"),v.setAttribute("aria-label",L.exportMenu),v.setAttribute("data-testid","dg-export-menu"),v.title=L.exportMenu,v.appendChild(Dd());let D=null;v.addEventListener("click",()=>{if(D)return;let x=v.getBoundingClientRect();dt({left:x.right-190,top:x.bottom+2},k=>{k.setAttribute("role","menu"),k.setAttribute("aria-label",L.exportMenu);let M=[{kind:"csv",label:L.exportCsv,testId:"dg-export-csv",on:!0},{kind:"excel",label:L.exportExcel,testId:"dg-export-excel",on:y},{kind:"excel-selected",label:L.exportExcelSelected,testId:"dg-export-excel-selected",on:y},{kind:"pdf",label:L.exportPdf,testId:"dg-export-pdf",on:A}];for(let P of M){if(!P.on)continue;let S=document.createElement("button");S.type="button",S.className="kanuni-datagrid-menu-item",S.setAttribute("role","menuitem"),S.setAttribute("data-testid",P.testId),S.textContent=P.label,P.kind==="excel-selected"&&E.getSelectedCount()===0&&(S.disabled=!0),S.addEventListener("click",()=>{D=P.kind,v.disabled=!0,fe(),gn(E,P.kind).then(N=>{D=null,v.disabled=!1,N.error&&dr(N.error)})}),k.appendChild(S)}},"kanuni-datagrid-filter-popup kanuni-datagrid-export-menu")});for(let x of to??[])at.append(x);at.append(s,w),m&&at.append(m),at.append(v);for(let x of eo??[])at.append(x);let B=T("kanuni-datagrid-toolbar-error","span");B.setAttribute("role","alert"),B.style.display="none",at.append(B),dr=x=>{B.textContent=x,B.style.display=""}}function _n(){if(!yt.isConnected)return;let s=E.getPage(),p=E.getPageCount();yt.textContent="";let w=(D,B,x,k)=>{let M=document.createElement("button");return M.type="button",M.textContent=D,M.setAttribute("aria-label",B),M.disabled=x,M.addEventListener("click",k),M},m=T("kanuni-datagrid-pager-buttons"),y=s<=0,A=s>=p-1;m.append(w("\xAB",L.pagerFirst??"First",y,()=>E.setPage(0)),w("\u2039",L.pagerPrevious??"Previous",y,()=>E.setPage(s-1)));let v=T("kanuni-datagrid-pager-current","span");v.textContent=`${s+1} / ${p}`,m.append(v,w("\u203A",L.pagerNext??"Next",A,()=>E.setPage(s+1)),w("\xBB",L.pagerLast??"Last",A,()=>E.setPage(p-1))),yt.appendChild(m)}function cr(){if(!Ge)return;let s=E.getColumnLayout(),p=E.getSummaries(),w=new Map(E.getSummaryDefs().map(y=>[y.columnId,y]));if(de.textContent="",de.style.width=`${s.totalWidth+Te}px`,Te>0){let y=T("kanuni-datagrid-footer-cell kanuni-datagrid-footer-cell--pinned");y.style.width=`${Te}px`,y.style.insetInlineStart="0px",de.appendChild(y)}let m=!1;for(let y of Ne){if(!y.pinned&&!m){if(ge>0){let B=T("kanuni-datagrid-spacer");B.style.width=`${ge}px`,de.appendChild(B)}m=!0}let A=w.get(y.id),v=y.def.dataType==="number",D=T(`kanuni-datagrid-footer-cell${y.pinned?" kanuni-datagrid-footer-cell--pinned":""}${v?" kanuni-datagrid-footer-cell--number":""}${A?" kanuni-datagrid-footer-cell--active":""}`);if(D.setAttribute("role","gridcell"),D.setAttribute("data-column-id",y.id),D.setAttribute("data-summary-type",A?.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`),A){D.title=`${pn(A,Ju)} \u2014 ${y.def.headerName??y.id}`;let B=T("kanuni-datagrid-footer-value","span");B.textContent=$u(A,p[Je(A.columnId,A.type)],y.def),D.appendChild(B)}else{let B=T("kanuni-datagrid-footer-hint","span");B.textContent=h?"\xB7":"",D.appendChild(B)}de.appendChild(D)}}function hr(){let s=(p,w,m)=>{p.textContent="",w.forEach((y,A)=>{let v=ar("data");Hn(v,{kind:"data",key:`__pinned-${m}-${A}`,sourceIndex:-1,data:y},A),v.root.classList.remove("kanuni-datagrid-row--odd"),v.root.removeAttribute("aria-rowindex"),v.rowNumberCell&&(v.rowNumberCell.textContent=""),p.appendChild(v.root)})};f.length>0&&s(Rt,f,"top"),C.length>0&&s(Dn,C,"bottom")}let At=null,pr=null;function fe(){pr?.(),pr=null,At?.remove(),At=null}function jn(s,p){let m=s.getBoundingClientRect();m.width===0&&m.height===0||(s.style.left=`${Math.max(8,Math.min(p.left,window.innerWidth-m.width-8))}px`,s.style.top=`${Math.max(8,Math.min(p.top,window.innerHeight-m.height-8))}px`)}function dt(s,p,w="kanuni-datagrid-filter-popup"){fe(),At=T(`${Cn(t)} kanuni-datagrid-portal`);let m=T(w);m.style.position="fixed",m.style.left=`${s.left}px`,m.style.top=`${s.top}px`,m.style.zIndex="1000",p(m),At.appendChild(m),document.body.appendChild(At),jn(m,s);let y=At,A=D=>{y.contains(D.target)||fe()},v=D=>{D.key==="Escape"&&fe()};document.addEventListener("pointerdown",A,!0),document.addEventListener("keydown",v,!0),pr=()=>{document.removeEventListener("pointerdown",A,!0),document.removeEventListener("keydown",v,!0)}}let ct=25,Yn=8,Qn=new Map,Xn=0;function Fo(s,p){let w=p.getBoundingClientRect(),m=++Xn;dt({left:w.left,top:w.bottom+2},y=>{let A=[],v=!0,D=new Set,B=!1,x=0,k="",M=[],P=null,S="",N=[],O=document.createElement("input");O.type="search",O.className="kanuni-datagrid-filter-search",O.placeholder=L.search,O.setAttribute("data-testid","dg-filter-search");let H=T("kanuni-datagrid-filter-actions"),Q=document.createElement("button");Q.type="button",Q.textContent=L.filterSelectAll,Q.addEventListener("click",()=>{B=!0,D=new Set(A.map(z=>z.label)),te()});let se=document.createElement("button");se.type="button",se.textContent=L.clear,se.addEventListener("click",()=>{B=!0,D=new Set,te()}),H.append(Q,se);let ue=T("kanuni-datagrid-filter-list");ue.setAttribute("role","listbox"),ue.setAttribute("aria-multiselectable","true");let Ce=document.createElement("div");Ce.style.position="relative";let De=document.createElement("div");Ce.appendChild(De),ue.appendChild(Ce);let je=()=>{let z=ne(k.trim());if(!z){M=A;return}P||(P=A.map(X=>ne(X.label))),M=S!==""&&z.includes(S)?N.filter(X=>ne(X.label).includes(z)):A.filter((X,re)=>P[re].includes(z)),S=z,N=M},te=()=>{if(ue.setAttribute("aria-busy",String(v)),ue.setAttribute("aria-setsize",String(M.length)),v){Ce.style.height="",De.textContent="";let be=T("kanuni-datagrid-filter-empty");be.textContent=L.filterLoading,De.appendChild(be);return}if(M.length===0){Ce.style.height="",De.style.transform="",De.textContent="";let be=T("kanuni-datagrid-filter-empty");be.textContent=L.filterNoMatch,De.appendChild(be);return}let z=ue.clientHeight||240,X=Math.max(0,Math.floor(ue.scrollTop/ct)-Yn),re=Math.ceil(z/ct)+Yn*2,xe=Math.min(X,Math.max(0,M.length-1)),qo=Math.min(M.length,xe+re);Ce.style.height=`${M.length*ct}px`,De.style.transform=`translateY(${xe*ct}px)`,De.textContent="";for(let be=xe;be<qo;be++){let bt=M[be],Re=T("kanuni-datagrid-filter-item");Re.setAttribute("role","option"),Re.setAttribute("aria-selected",String(D.has(bt.label))),Re.tabIndex=0,Re.setAttribute("data-value",bt.label),Re.setAttribute("data-index",String(be)),be===x&&Re.classList.add("kanuni-datagrid-filter-item--active");let $t=document.createElement("input");$t.type="checkbox",$t.readOnly=!0,$t.checked=D.has(bt.label),$t.tabIndex=-1;let Aa=document.createElement("span");Aa.textContent=bt.label===""?L.filterBlank:bt.label,Re.append($t,Aa),Re.addEventListener("click",()=>xu(bt.label)),Re.addEventListener("focus",()=>{x=be}),De.appendChild(Re)}},xu=z=>{B=!0,D.has(z)?D.delete(z):D.add(z);for(let X of De.querySelectorAll(".kanuni-datagrid-filter-item")){if(X.getAttribute("data-value")!==z)continue;X.setAttribute("aria-selected",String(D.has(z)));let re=X.querySelector("input");re&&(re.checked=D.has(z))}};ue.addEventListener("scroll",()=>{Qn.set(s,ue.scrollTop),te()}),O.addEventListener("input",()=>{k=O.value,x=0,je(),te()});let pt=z=>{if(M.length===0)return;x=Math.max(0,Math.min(M.length-1,z));let X=x*ct,re=ue.clientHeight||240;X<ue.scrollTop?ue.scrollTop=X:X+ct>ue.scrollTop+re&&(ue.scrollTop=X+ct-re),te(),y.querySelector(`.kanuni-datagrid-filter-item[data-index="${x}"]`)?.focus()},wa=()=>{if(v)return;let z;if(D.size===A.length)z=null;else{let X=D.has(""),re=A.filter(xe=>xe.label!==""&&D.has(xe.label));re.length===0?z=X?{columnId:s,operator:"isnull"}:null:X?z={logic:"or",nodes:[{columnId:s,operator:"in",value:re.map(xe=>xe.value)},{columnId:s,operator:"isnull"}]}:z={columnId:s,operator:"in",value:re.map(xe=>xe.value)}}E.setColumnFilter(s,z,en),fe()};y.tabIndex=-1,y.addEventListener("keydown",z=>{let X=z.target===O;if(z.key==="Backspace"&&!X){z.preventDefault(),O.focus(),k=k.slice(0,-1),O.value=k,x=0,je(),te();return}if(z.key==="ArrowDown"){z.preventDefault(),pt(X?0:x+1);return}if(z.key==="ArrowUp"){z.preventDefault(),pt(X?M.length-1:x-1);return}if(!X&&(z.key==="Home"||z.key==="End")){z.preventDefault(),pt(z.key==="Home"?0:M.length-1);return}if(z.key===" "&&!X){z.preventDefault();let re=M[x];re&&xu(re.label);return}if(z.key==="Enter"){z.preventDefault(),wa();return}!X&&z.key.length===1&&z.key!==" "&&!z.ctrlKey&&!z.metaKey&&!z.altKey&&(z.preventDefault(),O.focus(),k+=z.key,O.value=k,x=0,je(),te())});let Ea=T("kanuni-datagrid-filter-footer"),bu=document.createElement("button");bu.type="button",bu.textContent=L.cancel,bu.addEventListener("click",()=>fe());let Ye=document.createElement("button");Ye.type="button",Ye.className="kanuni-datagrid-filter-primary",Ye.setAttribute("data-testid","dg-filter-apply"),Ye.textContent=L.apply,Ye.disabled=!0,Ye.addEventListener("click",wa),Ea.append(bu,Ye),y.append(O,H,ue,Ea),te(),queueMicrotask(()=>{O.isConnected&&O.focus()}),E.getDistinctValueSetAsync(s).then(z=>{if(Xn!==m||!y.isConnected)return;A=z.entries,P=null,S="",v=!1,Ye.disabled=!1;let X=Ai(E.getColumnFilter(s,en)??E.getColumnFilter(s,St),A);X?(B=!0,D=new Set(X)):B||(D=new Set(A.map(xe=>xe.label))),je();let re=Qn.get(s);te(),re&&(ue.scrollTop=re,te())})})}function gu(s={}){let p=E.getClipboardText(s);E.notifyClipboardGesture("copy",p?p.split(`
|
|
16
|
-
`).length:0,()=>!p||!navigator.clipboard?.writeText?!1:(navigator.clipboard.writeText(p).catch(()=>{}),!0))}function Do(s){if(ve===!1)return[];let p=ve===!0?{}:ve,w=[],m=A=>{s&&w.length===0&&w.push({separator:!0,id:"__dg-sep"}),w.push(A)};p.copy!==!1&&m({id:"__dg-copy",label:L.menuCopy,shortcut:`${Bo}C`,onSelect:()=>gu()}),p.copyWithHeaders!==!1&&m({id:"__dg-copy-headers",label:L.menuCopyWithHeaders,onSelect:()=>gu({includeHeaders:!0})}),p.copyWithGroupHeaders!==!1&&So()&&m({id:"__dg-copy-group-headers",label:L.menuCopyWithGroupHeaders,onSelect:()=>gu({includeGroupHeaders:!0})});let y=p.export===!1?[]:Array.isArray(p.export)?p.export:["csv","excel","excel-selected","pdf"];if(y.length>0){let A=E.getSelectedCount()===0,v={csv:L.exportCsv,excel:L.exportExcel,"excel-selected":L.exportExcelSelected,pdf:L.exportPdf};m({id:"__dg-export",label:L.menuExport,items:y.map(D=>({id:`__dg-export-${D}`,label:v[D],disabled:D==="excel-selected"&&A,onSelect:()=>{gn(E,D).then(B=>{B.error&&dr(B.error)})}}))})}return w}function So(){let s=E.getColumnModel();return E.getVisualColumnIds().some(p=>{let w=s.getDef(p)?.band;return typeof w=="string"?w!=="":Array.isArray(w)&&w.length>0})}function Nd(s,p,w){let m=T("kanuni-datagrid-menu-row"),y=document.createElement("button");y.type="button",y.className="kanuni-datagrid-menu-item";let A=T("kanuni-datagrid-menu-label","span");if(A.textContent=s,y.appendChild(A),p){let v=T("kanuni-datagrid-menu-shortcut","span");v.textContent=p,y.appendChild(v)}return y.addEventListener("click",()=>{w(),fe()}),m.appendChild(y),m}let Bo=/Mac|iPhone|iPad|iPod/.test(navigator.platform??"")?"\u2318":"Ctrl+";function mr(s,p,w){let m=null,y=()=>{m?.remove(),m=null};p.forEach((A,v)=>{if(A.separator){let M=T("kanuni-datagrid-menu-separator");M.setAttribute("role","separator"),s.appendChild(M);return}let D=T("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)),A.disabled&&(B.disabled=!0),A.icon!==void 0){let M=T("kanuni-datagrid-menu-icon","span");typeof A.icon=="string"?M.textContent=A.icon:M.appendChild(A.icon),B.appendChild(M)}let x=T("kanuni-datagrid-menu-label","span");if(x.textContent=A.label??"",B.appendChild(x),A.shortcut){let M=T("kanuni-datagrid-menu-shortcut","span");M.textContent=A.shortcut,B.appendChild(M)}let k=A.items??[];if(k.length>0){let M=T("kanuni-datagrid-menu-caret","span");M.textContent="\u203A",B.appendChild(M),B.setAttribute("aria-haspopup","menu"),B.setAttribute("aria-expanded","false");let P=()=>{y();let S=T("kanuni-datagrid-context-menu kanuni-datagrid-submenu");S.setAttribute("role","menu");let N=B.getBoundingClientRect();S.style.left=`${N.right}px`,S.style.top=`${Math.max(0,N.top-4)}px`;for(let O of k){if(O.separator){let se=T("kanuni-datagrid-menu-separator");se.setAttribute("role","separator"),S.appendChild(se);continue}let H=document.createElement("button");H.type="button",H.className="kanuni-datagrid-menu-item",H.setAttribute("role","menuitem"),O.disabled&&(H.disabled=!0);let Q=T("kanuni-datagrid-menu-label","span");Q.textContent=O.label??"",H.appendChild(Q),H.addEventListener("click",()=>{O.onSelect?.(w),fe()}),S.appendChild(H)}s.parentElement?.appendChild(S),jn(S,{left:N.right,top:Math.max(0,N.top-4)}),m=S,B.setAttribute("aria-expanded","true")};B.addEventListener("mouseenter",P),B.addEventListener("click",P)}else B.addEventListener("mouseenter",y),B.addEventListener("click",()=>{A.onSelect?.(w),fe()});D.appendChild(B),s.appendChild(D)})}let Jn=s=>{let w=s.target.closest(".kanuni-datagrid-row");if(!w||w.classList.contains("kanuni-datagrid-group-row"))return;let m=qe(s);if(m?.columnId&&E.notifyCell("cellContextMenu",m.node,m.rowIndex,m.columnId),!we&&!ve||!m||m.node.kind!=="data")return;s.preventDefault(),E.isRowSelected(m.node.key)||E.handleRowClick(m.node.key,{}),m.columnId&&E.focusCell(m.node.key,m.columnId);let y={row:m.node.data,node:m.node,rowIndex:m.rowIndex,columnId:m.columnId,selectedKeys:E.getSelectedKeys()},A=(typeof we=="function"?we(y):we)??[],v=[...A,...ko(y,A.length>0)],D=Do(v.length>0);v.length===0&&D.length===0||dt({left:s.clientX,top:s.clientY},B=>{B.setAttribute("role","menu"),mr(B,[...v,...D],y)},"kanuni-datagrid-context-menu")};function ko(s,p){if(!ut?.onChange||ut.menu===!1)return[];let w=s.columnId;if(!w)return[];let m=s.node.key,y=or(m,w,s.row),A=[];return p&&A.push({separator:!0,id:"__note-sep"}),A.push({id:"__note-edit",label:y?L.editNote:L.addNote,onSelect:()=>To(m,w,s.row,y??"")}),y&&A.push({id:"__note-delete",label:L.deleteNote,onSelect:()=>ut.onChange?.({rowKey:m,columnId:w,row:s.row,text:null})}),A}function To(s,p,w,m){let A=(j.querySelector(`[data-row-key="${CSS.escape(String(s))}"] [data-column-id="${CSS.escape(p)}"]`)??j).getBoundingClientRect();queueMicrotask(()=>{dt({left:A.left,top:A.bottom+2},v=>{v.setAttribute("aria-label",L.noteEditorAria);let D=document.createElement("textarea");D.className="kanuni-datagrid-note-input",D.rows=4,D.value=m,D.setAttribute("aria-label",L.noteEditorAria),D.placeholder=L.notePlaceholder,D.setAttribute("data-testid","dg-note-input");let B=()=>{let P=D.value.trim();fe(),ut?.onChange?.({rowKey:s,columnId:p,row:w,text:P===""?null:P})};D.addEventListener("keydown",P=>{P.key==="Enter"&&(P.ctrlKey||P.metaKey)&&(P.preventDefault(),B()),P.key==="Escape"&&(P.preventDefault(),fe())});let x=T("kanuni-datagrid-note-actions"),k=document.createElement("button");k.type="button",k.className="kanuni-datagrid-note-cancel",k.textContent=L.cancel,k.addEventListener("click",()=>fe());let M=document.createElement("button");M.type="button",M.className="kanuni-datagrid-note-save",M.setAttribute("data-testid","dg-note-save"),M.textContent=L.save,M.addEventListener("click",B),x.append(k,M),v.append(D,x),queueMicrotask(()=>{D.focus(),D.select()})},"kanuni-datagrid-filter-popup kanuni-datagrid-note-editor")})}function No(s){ot!==s&&(ot=s,s?(j.insertBefore(me,q),Cr()):me.remove())}function Ro(s){if(Ge!==s){if(Ge=s,s){if(rt){let p=f.length>0?Rt:pe;he.insertBefore(de,p)}else he.append(de);cr()}else de.remove();Rt.style.setProperty("--dg-pinned-gap",String(Zu+(Ge&&rt?1:0)))}}function gr(s){let p=qu(j,s);p!==null&&E.setColumnWidth(s,p)}function Mo(s,p){let w=E.getColumnModel().getDef(s),m={columnId:s,headerName:w?.headerName??s},y=Uu(m,{controller:E,t:L,groupPanelVisible:ot,footerVisible:Ge,onToggleGroupPanel:()=>No(!ot),onToggleFooter:()=>Ro(!Ge),onOpenFieldChooser:()=>Zn(p),onBestFit:gr,onBestFitAll:()=>{for(let v of E.getColumnStates())v.visible&&gr(v.id)},maxGroupLevels:We?Number.POSITIVE_INFINITY:1}),A=typeof ce=="function"?ce(m,y):y;A.length!==0&&dt(p,v=>{v.setAttribute("role","menu"),mr(v,A,m)},"kanuni-datagrid-context-menu")}function Io(s,p){let w=E.getColumnModel().getDef(s),m=E.getColumnSummary(s),y={columnId:s,headerName:w?.headerName??w?.field??s},A=[{id:"none",label:L.noTotal,disabled:m===null,onSelect:()=>E.setColumnSummary(s,null)},{id:"sep",separator:!0},...Ki(w?.dataType).map(v=>({id:v,label:Ju[v],disabled:m?.type===v,onSelect:()=>E.setColumnSummary(s,v)}))];dt(p,v=>{v.setAttribute("role","menu"),mr(v,A,y)},"kanuni-datagrid-context-menu")}function Zn(s){dt(s,p=>{let w=T("kanuni-datagrid-filter-list");for(let m of E.getColumnStates()){let y=document.createElement("label");y.className="kanuni-datagrid-filter-item";let A=document.createElement("input");A.type="checkbox",A.checked=m.visible,A.addEventListener("change",()=>{E.setColumnVisible(m.id,A.checked)});let v=document.createElement("span"),D=E.getColumnModel().getDef(m.id);v.textContent=D?.headerName??m.id,y.append(A,v),w.appendChild(y)}p.appendChild(w)},"kanuni-datagrid-filter-popup kanuni-datagrid-column-chooser")}let ht=null,fr=null,fu=s=>{me.classList.toggle("kanuni-datagrid-group-panel--over",s)};function ea(s,p,w){let m=E.getGroupLevels();if(s===p)return;let y=m.filter(D=>D!==s),A=y.indexOf(p);if(A<0)return;let v=w==="before"?A:A+1;fr=s,E.groupBy([...y.slice(0,v),s,...y.slice(v)])}function ta(s,p){let w=E.getGroupLevels(),m=w.indexOf(s),y=m+p;m<0||y<0||y>=w.length||ea(s,w[y],p===-1?"before":"after")}function ua(s,p){if(!s)return;let w=E.getGroupLevels();if(w.includes(s))return;let m=We?Number.POSITIVE_INFINITY:1;if(w.length>=m){E.groupBy([...w.slice(0,m-1),s]);return}let y=p??w.length;E.groupBy([...w.slice(0,y),s,...w.slice(y)])}function Cr(){if(!ot)return;me.textContent="";let s=E.getGroupLevels();if(s.length===0){let B=T("kanuni-datagrid-group-panel-hint","span");B.textContent=L.groupPanelHint??"Drag a column header here to group by it",me.appendChild(B);return}let p=B=>E.getColumnModel().getDef(B)?.headerName??B,w=T("kanuni-datagrid-group-levels"),m=(B,x)=>B<x.top+x.height/2?"before":"after",y=(B,x)=>{for(let k of me.querySelectorAll(".kanuni-datagrid-group-level"))k.classList.remove("kanuni-datagrid-group-level--drop-before","kanuni-datagrid-group-level--drop-after");B&&x&&B.classList.add(`kanuni-datagrid-group-level--drop-${x}`)};s.forEach((B,x)=>{let k=T("kanuni-datagrid-group-level");k.style.setProperty("--dg-group-level",String(x)),k.setAttribute("data-group-level",String(x));let M=T("kanuni-datagrid-group-chip");if(M.setAttribute("role","button"),M.tabIndex=0,s.length>1&&(M.draggable=!0),M.setAttribute("aria-label",`${Bt(L.groupLevelAria,{n:x+1})}: ${p(B)}`),M.addEventListener("dragstart",N=>{ht=B,N.dataTransfer&&(N.dataTransfer.effectAllowed="move",N.dataTransfer.setData("text/x-kanuni-column",B))}),M.addEventListener("dragend",()=>{ht=null,y(null,null)}),M.addEventListener("keydown",N=>{let O=N.ctrlKey||N.metaKey;O&&(N.key==="ArrowUp"||N.key==="ArrowLeft")?(N.preventDefault(),ta(B,-1)):O&&(N.key==="ArrowDown"||N.key==="ArrowRight")?(N.preventDefault(),ta(B,1)):(N.key==="Delete"||N.key==="Backspace")&&(N.preventDefault(),E.groupBy(s.filter(H=>H!==B)))}),k.addEventListener("dragover",N=>{!ht&&!(N.dataTransfer?.types.includes("text/x-kanuni-column")??!1)||(N.preventDefault(),N.stopPropagation(),y(k,m(N.clientY,k.getBoundingClientRect())))}),k.addEventListener("drop",N=>{N.preventDefault(),N.stopPropagation();let O=m(N.clientY,k.getBoundingClientRect());y(null,null),fu(!1);let H=ht;if(ht=null,H){ea(H,B,O);return}let Q=N.dataTransfer?.getData("text/x-kanuni-column");Q&&ua(Q,O==="before"?x:x+1)}),s.length>1){let N=T("kanuni-datagrid-group-chip-level","span");N.textContent=String(x+1),M.appendChild(N)}let P=document.createElement("span");P.textContent=p(B);let S=document.createElement("button");S.type="button",S.setAttribute("aria-label",Bt(L.groupRemoveAria,{column:p(B)})),S.textContent="\xD7",S.addEventListener("click",()=>{E.groupBy(s.filter(N=>N!==B))}),S.draggable=!1,M.append(P,S),k.appendChild(M),w.appendChild(k),fr===B&&(fr=null,queueMicrotask(()=>M.focus()))}),me.appendChild(w);let A=T("kanuni-datagrid-group-panel-actions"),v=document.createElement("button");v.type="button",v.textContent="Expand all",v.addEventListener("click",()=>E.expandAllGroups());let D=document.createElement("button");D.type="button",D.textContent="Collapse all",D.addEventListener("click",()=>E.collapseAllGroups()),A.append(v,D),me.appendChild(A)}if(ot){let s=p=>p.dataTransfer?.types.includes("text/x-kanuni-column")??!1;me.addEventListener("dragover",p=>{s(p)&&(p.preventDefault(),fu(!0))}),me.addEventListener("dragleave",p=>{let w=p.relatedTarget;w&&me.contains(w)||fu(!1)}),me.addEventListener("drop",p=>{fu(!1);let w=p.dataTransfer?.getData("text/x-kanuni-column");if(w){if(p.preventDefault(),ht){ht=null;return}ua(w)}})}let ra="";function na(){if(!Z)return;let s=[Bt(L.announceRows,{n:E.getVisibleCount()})],p=E.getSort();if(p.length>0){let y=p.map(A=>{let v=E.getColumnModel().getDef(A.columnId),D=v?.headerName??v?.field??A.columnId,B=A.direction==="desc"?L.announceDescending:L.announceAscending;return`${D} ${B}`}).join(", ");s.push(Bt(L.announceSortedBy,{columns:y}))}let w=E.getSelectedCount();w>0&&s.push(Bt(L.announceSelected,{n:w}));let m=s.join(", ");m!==ra&&(ra=m,It.textContent=m)}function aa(){if(!$)return;it.textContent="";let s=Pi(E.getEffectiveFilter(),E.getColumnModel(),{...J,labels:{...ln(L),...J?.labels}});if(!s&&$!=="always"){it.style.display="none";return}it.style.display="";let p=E.isFilterEnabled();it.className=`kanuni-datagrid-filter-panel${p?"":" kanuni-datagrid-filter-panel--suspended"}`;let w=document.createElement("button");w.type="button",w.className="kanuni-datagrid-filter-panel-clear",w.title=L.filterRemove,w.setAttribute("aria-label",L.filterRemove),w.setAttribute("data-testid","dg-filter-panel-clear"),w.disabled=s===null,w.textContent="\xD7",w.addEventListener("click",()=>{E.setFilter(null),E.clearColumnFilters(),E.setFilterEnabled(!0)});let m=document.createElement("input");m.type="checkbox",m.className="kanuni-datagrid-filter-panel-toggle",m.checked=p,m.disabled=s===null,m.title=L.filterToggle,m.setAttribute("aria-label",L.filterToggle),m.setAttribute("data-testid","dg-filter-panel-toggle"),m.addEventListener("change",()=>E.setFilterEnabled(m.checked));let y=T("kanuni-datagrid-filter-panel-text","span");if(y.setAttribute("data-testid","dg-filter-panel-text"),y.textContent=s??L.filterNone,s&&(y.title=s),it.append(w,m,y),Y){let A=document.createElement("button");A.type="button",A.className="kanuni-datagrid-filter-panel-builder",A.title=L.filterEditBuilder,A.setAttribute("aria-label",L.filterEditBuilder),A.setAttribute("data-testid","dg-filter-panel-builder"),A.textContent="\u25BE",A.addEventListener("click",Y),it.appendChild(A)}}let yr=new Set,Lo=E.events.on("cellsFlashed",({rowKeys:s,columnIds:p,duration:w})=>{let m=s.length?s.map(D=>`[data-row-key="${CSS.escape(String(D))}"]`).join(","):".kanuni-datagrid-row",y=p.length?p.map(D=>`[data-column-id="${CSS.escape(D)}"]`).join(","):"[data-column-id]",A=[];ee.querySelectorAll(m).forEach(D=>{D.querySelectorAll(y).forEach(B=>A.push(B))});for(let D of A)D.classList.remove("kanuni-datagrid-cell--flash");j.offsetWidth;for(let D of A)D.classList.add("kanuni-datagrid-cell--flash");let v=setTimeout(()=>{for(let D of A)D.classList.remove("kanuni-datagrid-cell--flash");yr.delete(v)},w);yr.add(v)});function qe(s){let p=s.target,w=p.closest(".kanuni-datagrid-row");if(!w||!ee.contains(w))return null;let m=w.getAttribute("data-row-key");if(m===null)return null;let y=E.getRows(),A=y.findIndex(D=>D!==void 0&&String(D.key)===m);if(A===-1)return null;let v=p.closest(".kanuni-datagrid-cell")?.getAttribute("data-column-id")??null;return{node:y[A],rowIndex:A,columnId:v}}let ia=s=>{let p=qe(s);p&&(Pe?.(p.node),E.notifyRow("rowClicked",p.node,p.rowIndex),p.columnId&&E.notifyCell("cellClicked",p.node,p.rowIndex,p.columnId))},oa=s=>{let p=qe(s);if(p){if(En){let w=vr(p);w&&En(w)}Nt?.(p.node),E.notifyRow("rowDoubleClicked",p.node,p.rowIndex),p.columnId&&E.notifyCell("cellDoubleClicked",p.node,p.rowIndex,p.columnId)}};ee.addEventListener("click",ia),ee.addEventListener("dblclick",oa);function Po(s){let p=0,w=Fe.querySelector(`[data-column-id="${CSS.escape(s)}"]`);w&&(p=w.scrollWidth),ee.querySelectorAll(`[data-column-id="${CSS.escape(s)}"]`).forEach(m=>{m.scrollWidth>p&&(p=m.scrollWidth)}),p>0&&E.setColumnWidth(s,p+12,!0)}function Go(){if(I)for(let s of Fe.querySelectorAll(".kanuni-datagrid-filter-button")){let p=s.parentElement?.getAttribute("data-column-id");p&&s.classList.toggle("kanuni-datagrid-filter-button--active",E.getColumnFilter(p)!==null)}}let wr=!1,la=!1,xt=null;function Cu(){xt!==null&&(clearTimeout(xt),xt=null)}function yu(s){Mt.style.display=s?"":"none"}function wu(){let s=E.getOverlay();if(au.style.display=s==="noRows"?"":"none",Xu===!1){Cu(),yu(!1);return}if(!(s==="loading"&&(wr||!la))){Cu(),yu(!1);return}if(wr||vn<=0){Cu(),yu(!0);return}xt!==null||Mt.style.display===""||(xt=setTimeout(()=>{xt=null,Ae||yu(!0)},vn))}let sa=!1,Er=!1,Ar=!1,xr=!1,Ae=!1;function Oo(){if(Er=!1,!Ae){if(Ar)Ar=!1,xr&&(xr=!1,$e++),rr(),nr(),sr(),hr();else{let s=ge;rr(),ge!==s&&($e++,nr(),sr(),hr())}lr(),Vn(),cr(),_n(),Go(),Cr(),aa(),na(),wu()}}function br(s){Ae||(s&&(Ar=!0),!Er&&(Er=!0,queueMicrotask(Oo)))}let Vo=[...oe?[E.events.on("focusedRowChanged",s=>oe({rowKey:s.rowKey,row:s.row}))]:[],...Ed.map(s=>E.events.on(s,()=>br(!0))),...Ad.map(s=>E.events.on(s,()=>{xr=!0})),...xd.map(s=>E.events.on(s,()=>br(!1))),E.events.on("overlayChanged",s=>{wr=s.manual===!0&&s.overlay==="loading",Ae||wu()}),E.events.on("busyChanged",s=>{la=s.background===!0,Ae||wu()}),E.events.on("paginationChanged",()=>{Ae||br(!1)}),E.events.on("scrollRequested",s=>{if(Ae)return;s.scrollTop!==void 0&&(q.scrollTop=s.scrollTop),s.scrollLeft!==void 0&&(q.scrollLeft=s.scrollLeft),E.setScroll(q.scrollTop,Math.abs(q.scrollLeft));let p=s.scrollTop;p===void 0||Math.abs(q.scrollTop-p)<=1||setTimeout(()=>{Ae||Math.abs(q.scrollTop-p)<=1||(q.scrollTop=p,E.setScroll(q.scrollTop,Math.abs(q.scrollLeft)))},0)}),...W==="fitGrid"?[E.events.on("gridSizeChanged",()=>E.sizeColumnsToFit())]:[],...W==="fitCells"?[E.events.on("firstDataRendered",()=>{Ae||sa||(sa=!0,queueMicrotask(()=>{if(!Ae)for(let s of E.getColumnStates())s.visible&&gr(s.id)}))})]:[]];W==="fitGrid"&&E.sizeColumnsToFit();function vr(s){if(!s.columnId||s.node.kind!=="data")return null;let p=Ne.find(w=>w.id===s.columnId);return p?{node:s.node,columnId:s.columnId,rowIndex:s.rowIndex,columnIndex:p.visualIndex,value:s.node.kind==="data"?E.getColumnModel().getCellValue(s.node.data,p.id):void 0}:null}let da=s=>{let p=s.target;if(wn){let D=qe(s),B=D?vr(D):null;B&&wn(B,s)}let w=p.closest(".kanuni-datagrid-row");if(!w||w.classList.contains("kanuni-datagrid-group-row"))return;let m=w.getAttribute("data-row-key");if(m===null)return;let y=E.getRows().find(D=>D!==void 0&&String(D.key)===m);if(!y||y.kind!=="data")return;E.handleRowClick(y.key,{ctrlKey:s.ctrlKey||so&&!s.shiftKey,metaKey:s.metaKey,shiftKey:s.shiftKey});let A=p.closest(".kanuni-datagrid-cell"),v=A?Ne.find(D=>A.id.endsWith(`-${D.id}`))?.id:void 0;v&&E.focusCell(y.key,v)},ca=s=>{if(!ru)return;let w=s.target.closest(".kanuni-datagrid-cell");if(!w||!ee.contains(w)||s.relatedTarget?.closest?.(".kanuni-datagrid-cell")===w)return;let y=qe(s),A=y?vr(y):null;A&&ru(A,s)};ee.addEventListener("mousedown",da),ee.addEventListener("contextmenu",Jn),ru&&ee.addEventListener("mouseover",ca),Gt&&(pe.addEventListener("dragstart",co),pe.addEventListener("dragover",ho),pe.addEventListener("drop",po),pe.addEventListener("dragend",mo),pe.addEventListener("dragleave",go)),j.tabIndex=0;let ha=s=>{let p=s.target;if(p.tagName==="INPUT"||p.tagName==="TEXTAREA"||p.isContentEditable)return;let w=zi({key:s.key,ctrlKey:s.ctrlKey,metaKey:s.metaKey,shiftKey:s.shiftKey,altKey:s.altKey});if(!w)return;if(w.type==="copy"){gu();return}if(w.type==="activate"){if(Nt){let A=E.getFocus(),v=A?E.getRows().find(D=>D!==void 0&&D.key===A.rowKey):void 0;v&&Nt(v)}w.preventDefault&&s.preventDefault();return}E.executeCommand(w),w.preventDefault&&s.preventDefault();let m=E.getFocusIndices();if(m){let v=E.getColumnLayout().center.findIndex(B=>B.state.id===E.getFocus()?.columnId),D=E.ensureVisible(m.rowIndex,v===-1?void 0:v);D&&(D.scrollTop!==void 0&&(q.scrollTop=D.scrollTop),D.scrollLeft!==void 0&&(q.scrollLeft=D.scrollLeft),E.setScroll(q.scrollTop,Math.abs(q.scrollLeft)))}let y=E.getFocus();j.setAttribute("aria-activedescendant",y?`${t.gridId}-cell-${String(y.rowKey)}-${y.columnId}`:"")};j.addEventListener("keydown",ha);let zo=xn?Gi(E,xn):null,Ho=typeof tt=="object"?tt.delay??400:400,Wo=tt!==!1&&!(typeof tt=="object"&&tt.enabled===!1),Ko=typeof tt=="object"?tt.showOnTruncation!==!1:!0,Wt=null,Eu=null;function Kt(){Eu&&clearTimeout(Eu),Eu=null,Wt?.remove(),Wt=null}let $o=s=>s.scrollWidth>s.clientWidth+1||s.scrollHeight>s.clientHeight+1;function Uo(s){let w=s.closest(".kanuni-datagrid-row")?.getAttribute("data-row-key"),m=Ne.find(D=>s.id.endsWith(`-${D.id}`));if(!w||!m)return null;let y=E.getRows().find(D=>D!==void 0&&String(D.key)===w);if(!y||y.kind!=="data")return null;let A=m.def,v=or(y.key,m.id,y.data);if(v)return v;if(typeof A.tooltip=="function")return A.tooltip({value:E.getColumnModel().getCellValue(y.data,m.id),row:y.data,node:y,column:A})??null;if(typeof A.tooltip=="string")return A.tooltip;if(A.tooltipField){let D=y.data[A.tooltipField];return D==null?null:String(D)}return Ko&&$o(s)?s.textContent??null:null}let pa=s=>{if(!Wo)return;Kt();let p=s.target.closest(".kanuni-datagrid-cell");!p||!ee.contains(p)||(Eu=setTimeout(()=>{let w=Uo(p);if(!w)return;let m=p.getBoundingClientRect();Wt=T(`${Cn(t)} kanuni-datagrid-portal`);let y=T("kanuni-datagrid-tooltip");y.setAttribute("role","tooltip"),y.textContent=w,y.style.position="fixed",y.style.left=`${m.left}px`,y.style.top=`${m.bottom+4}px`,y.style.zIndex="1001",Wt.appendChild(y),document.body.appendChild(Wt)},Ho))},ma=()=>Kt();j.addEventListener("pointerover",pa),j.addEventListener("pointerout",ma),q.addEventListener("scroll",Kt,{passive:!0});let ga=()=>{if(E.setScroll(q.scrollTop,Math.abs(q.scrollLeft)),_e)for(let s of fa())s.scroller.scrollLeft!==q.scrollLeft&&(s.scroller.scrollLeft=q.scrollLeft)};q.addEventListener("scroll",ga,{passive:!0});let _e=null,fa=()=>{if(!ae||!_e)return[];let s=Zt.get(ae);return s?[...s].filter(p=>p!==_e):[]},Ca=null;if(ae){_e={controller:E,scroller:q};let s=Zt.get(ae)??new Set;s.add(_e),Zt.set(ae,s),Ca=E.events.on("columnStateChanged",()=>{if(fn.has(ae))return;let p=fa();if(p.length===0)return;let w=E.getColumnStates();fn.add(ae);try{for(let m of p)m.controller.applyColumnStates(w)}finally{fn.delete(ae)}})}let ya=()=>{E.setViewportSize(q.clientWidth,q.clientHeight),q.style.setProperty("--dg-viewport-width",`${q.clientWidth}px`);let s=pe.getBoundingClientRect(),p=he.getBoundingClientRect();E.setChromeOffsets(s.top-p.top,p.bottom-s.bottom),qi(q,E)};ya();let Au=null;return typeof ResizeObserver<"u"&&(Au=new ResizeObserver(ya),Au.observe(q),Au.observe(he)),rr(),nr(),sr(),vo(),hr(),lr(),cr(),_n(),Cr(),aa(),na(),wu(),Vt?.always&&tr(!0),{controller:E,element:j,setData:s=>E.setData(s),setColumns:s=>E.setColumns(s),destroy:()=>{if(!Ae){if(Ae=!0,Vo.forEach(s=>s()),Au?.disconnect(),On?.(),zt&&(zt=!1,Ct--,Ct<=0&&(Ct=0,document.documentElement.classList.remove("kanuni-datagrid-printing"))),Ca?.(),ae&&_e){let s=Zt.get(ae);s?.delete(_e),s&&s.size===0&&Zt.delete(ae),_e=null}q.removeEventListener("scroll",ga),ee.removeEventListener("mousedown",da),ee.removeEventListener("contextmenu",Jn),ru&&ee.removeEventListener("mouseover",ca),ee.removeEventListener("click",ia),ee.removeEventListener("dblclick",oa),Lo(),Cu();for(let s of yr)clearTimeout(s);j.removeEventListener("keydown",ha),j.removeEventListener("pointerover",pa),j.removeEventListener("pointerout",ma),q.removeEventListener("scroll",Kt),Kt(),zo?.(),fe(),E.dispose(),j.remove()}}}}return Zo(Td);})();
|
|
14
|
+
Cause:`,e))}var Q0=1e5,X0=12,J0=2e3,Z0=500,oi=2e5;function li(){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 Ie=class extends Error{constructor(e){super(`[datagrid] ${e}`),this.name="WorkerRequestAbandoned"}},Ou=class extends Error{constructor(){super("[datagrid] compute cancelled"),this.name="WorkerRequestCancelled"}};function ed(){return typeof Worker<"u"}function Yi(e,t){if(e){if("nodes"in e){for(let u of e.nodes)Yi(u,t);return}t.add(e.columnId)}}function rn(e,t){let u=new Set;for(let r of t.sort)u.add(r.columnId);if(Yi(t.filter,u),(t.searchText??"").trim().length>0)for(let r of en(e))u.add(r);return[...u].filter(r=>e.getState(dn(r)??r)!==void 0)}var Lu=class{mode="client";rows;options;fallback;threshold;worker=null;workerBroken=!1;dataVersion=0;encodeToken=0;encodeQueue=Promise.resolve();initializedVersion=-1;encodedColumns=new Set;lastTimings={encodeMs:0,workerMs:0,projectMs:0};getLastTimings(){return this.lastTimings}encodedMeta=new Map;requestCounter=0;pending=new Map;pendingAggregate=new Map;nodeCache=new Wi;constructor(e,t){this.rows=e,this.options=t,this.threshold=t.threshold??j0,this.fallback=new U0(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 a=this.encodedMeta.get(n);if(!a)return;if(a.displaySource!==null){let o=a.displaySource,d=[],h=[];for(let c of t)h.push(Fi(u,o,this.rows[c])),d.push(c);r.push({columnId:n,kind:"text",indices:d,labels:h});continue}let i=a.usesSortValue?o=>u.getSortValue(o,n):o=>u.getCellValue(o,n),l=[];if(a.kind==="numeric"){let o=a.dataType==="date"?Si:Di,d=[],h=a.hasSearch?[]:void 0;for(let c of t){let g=i(this.rows[c]);if(Ku(g))d.push(Number.NaN),h?.push(null);else{if(!a.hasSearch&&typeof g!="number")return;d.push(o(g)),h?.push(String(g))}l.push(c)}r.push({columnId:n,kind:"numeric",indices:l,numbers:d,labels:h})}else{let o=[];for(let d of t){let h=i(this.rows[d]);o.push(Ku(h)?null:String(h)),l.push(d)}r.push({columnId:n,kind:"text",indices:l,labels:o})}}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&&ed()&&this.rows.length>=this.threshold}async getRows(e,t){if(!this.usesWorker()||H0(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 Ie||u instanceof Ou)throw u;return this.workerBroken=!0,this.teardownWorker(),Y0(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(_0());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 Ou)}}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,a){if(!r)return Ul(this.rows,e,t,u);let i=Bi(this.rows,e,t,u),l=J0;for(;;){let o=performance.now(),d=i.step(l),h=performance.now()-o;if(!d)break;let c=h>0?Math.round(l*X0/h):oi;if(l=Math.min(oi,Math.max(Z0,c)),await li(),this.encodeToken!==a)throw new Ie("encode cancelled");n?.(i.done/i.total)}return i.finish()}toWire(e,t,u,r,n){let a=dn(t);if(this.encodedMeta.set(t,{kind:r.kind,hasSearch:r.kind==="numeric"&&!!r.searchCodes,usesSortValue:u,dataType:a===null?e.getDataType(t):"string",displaySource:a}),r.kind==="numeric"){let l={columnId:t,kind:"numeric",buffer:r.values.buffer};return n.push(l.buffer),r.searchCodes&&r.searchDictionary&&(l.searchBuffer=r.searchCodes.buffer,l.searchDictionary=r.searchDictionary,n.push(l.searchBuffer)),l}let i={columnId:t,kind:"text",buffer:r.codes.buffer,dictionary:r.dictionary};return n.push(i.buffer),i}enqueueEncode(e,t){let u=this.encodeQueue.then(()=>{if(this.encodeToken!==e)throw new Ie("encode cancelled");return t(e)});return this.encodeQueue=u.catch(()=>{}),u}async sendColumns(e,t,u,r,n=!1,a=this.encodeToken){let i=this.dataVersion,l=[],o=[],d=this.rows.length>=Q0&&u.length>0;for(let c=0;c<u.length;c++){if(d){if(await li(),this.encodeToken!==a)throw new Ie("encode cancelled");n||this.options.onEncodeProgress?.(c/u.length)}let g=t.getDef(u[c])?.calculateSortValue!=null,f=await this.encodeOne(t,u[c],g,d,n?void 0:w=>this.options.onEncodeProgress?.((c+w)/u.length),a);l.push(this.toWire(t,u[c],g,f,o))}d&&!n&&this.options.onEncodeProgress?.(1);let h=r?{action:"init",gridId:this.options.gridId,dataVersion:i,rowCount:this.rows.length,columns:l}:{action:"addColumns",gridId:this.options.gridId,dataVersion:i,columns:l};if(e.postMessage(h,o),r)this.initializedVersion=i,this.encodedColumns=new Set(u);else for(let c of u)this.encodedColumns.add(c)}async computeOnWorker(e,t){let u=this.ensureWorker();this.lastTimings={encodeMs:0,workerMs:0,projectMs:0},await this.enqueueEncode(this.encodeToken,async l=>{let o=rn(e,t),d=this.initializedVersion!==this.dataVersion,h=d?o:o.filter(g=>!this.encodedColumns.has(g));if(!d&&h.length===0)return;let c=performance.now();if(await this.sendColumns(u,e,h,d,!1,l),this.lastTimings.encodeMs=Math.round(performance.now()-c),this.initializedVersion!==this.dataVersion)throw new Ie("data replaced while columns were being encoded")});let r=++this.requestCounter,n=en(e),a=new Promise((l,o)=>{this.pending.set(r,{resolve:l,reject:o})}),i={action:"compute",gridId:this.options.gridId,dataVersion:this.dataVersion,requestId:r,sort:t.sort,filter:t.filter,searchText:t.searchText,searchColumns:n,searchLabelHits:Ga(Zr(e,n,Xt(t.searchText))),locale:this.options.locale??"en"};return u.postMessage(i),a}async aggregate(e,t,u){if(!this.usesWorker()||!Li(u))return null;try{let r=this.ensureWorker(),n=new Set(rn(e,t));n.add(u.categoryColumnId);for(let g of u.series)n.add(g.columnId);if(this.initializedVersion!==this.dataVersion)return null;await this.enqueueEncode(this.encodeToken,async g=>{if(this.initializedVersion!==this.dataVersion)throw new Ie("data replaced while the chart waited to encode");let f=[...n].filter(w=>!this.encodedColumns.has(w));if(f.length!==0&&(await this.sendColumns(r,e,f,!1,!0,g),this.initializedVersion!==this.dataVersion))throw new Ie("data replaced while columns were being encoded")});let a=++this.requestCounter,i=en(e),l=new Promise((g,f)=>{this.pendingAggregate.set(a,{resolve:g,reject:f})}),o={action:"aggregate",gridId:this.options.gridId,dataVersion:this.dataVersion,requestId:a,filter:t.filter,searchText:t.searchText,searchColumns:i,searchLabelHits:Ga(Zr(e,i,Xt(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(o);let d=await l,h=d.categories.length,c=new Float64Array(d.values);return{categories:d.categories,series:u.series.map((g,f)=>({label:d.seriesLabels[f]??g.columnId,columnId:g.columnId,aggregate:g.aggregate,values:c.subarray(f*h,(f+1)*h)})),truncated:d.truncated,otherIndex:d.otherIndex,rowCount:d.rowCount,categoryCount:d.categoryCount,rankingExact:d.rankingExact,bucket:d.bucket,bucketStarts:d.bucketStarts?new Float64Array(d.bucketStarts):void 0,bucketEnds:d.bucketEnds?new Float64Array(d.bucketEnds):void 0}}catch(r){return r instanceof Ie||r instanceof Ou||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 Ie(e);this.pending.forEach(u=>u.reject(t)),this.pending.clear(),this.pendingAggregate.forEach(u=>u.reject(t)),this.pendingAggregate.clear()}};var td=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),a=t.indexOf(e);if(n===-1||a===-1)return this.select(e);let i=Math.min(n,a),l=Math.max(n,a),o=u&&!this.allMatching?new Set(this.selected):new Set;for(let d=i;d<=l;d++)o.add(t[d]);return!this.allMatching&&Ur(o,this.selected)?!1:(this.allMatching=!1,this.selected=o,!0)}selectAll(e){if(this.mode!=="multiple")return!1;let t=new Set(e);return!this.allMatching&&Ur(t,this.selected)?!1:(this.allMatching=!1,this.selected=t,this.anchor=e[0]??null,!0)}setMany(e,t){if(this.mode!=="multiple")return!1;let u=!1;for(let r of e)this.isSelected(r)!==t&&(this.allMatching===t?this.selected.delete(r):this.selected.add(r),u=!0);return u}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&&Ur(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 Ur(e,t){if(e.size!==t.size)return!1;for(let u of e)if(!t.has(u))return!1;return!0}function ud(e){return{count:e.length,keyAt:t=>e[t],indexOf:t=>e.indexOf(t)}}function gt(e,t,u){return e<t?t:e>u?u:e}function qr(e){return e.rows??ud(e.rowKeys??[])}var rd=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=qr(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=qr(t);if(r.count===0||u.length===0)return!1;let n=Math.max(1,t.pageSize??10),a=this.getIndices(t);if(!a){let g=r.keyAt(0);return g===void 0?!1:this.set({rowKey:g,columnId:u[0]})}let i=r.count-1,l=u.length-1,{rowIndex:o,columnIndex:d}=a,h=o;switch(e){case"up":o=gt(o-1,0,i);break;case"down":o=gt(o+1,0,i);break;case"left":d=gt(d-1,0,l);break;case"right":d=gt(d+1,0,l);break;case"pageUp":o=gt(o-n,0,i);break;case"pageDown":o=gt(o+n,0,i);break;case"rowStart":d=0;break;case"rowEnd":d=l;break;case"gridStart":o=0,d=0;break;case"gridEnd":o=i,d=l;break}if(t.isFocusable){let g=o>h?1:o<h?-1:0;o=this.skipUnfocusable(r,o,g,t.isFocusable,h)}let c=r.keyAt(o);return c===void 0?!1:this.set({rowKey:c,columnId:u[d]})}skipUnfocusable(e,t,u,r,n){if(r(e.keyAt(t),t))return t;let a=u===0?-1:u;for(let i=t+a;i>=0&&i<e.count;i+=a)if(r(e.keyAt(i),i))return i;for(let i=t-a;i>=0&&i<e.count;i-=a)if(r(e.keyAt(i),i))return i;return n}reconcile(e,t){if(!this.position)return!1;let{columnIds:u}=e,r=qr(e);if(r.count===0||u.length===0)return this.clear();let n=r.indexOf(this.position.rowKey)!==-1,a=u.includes(this.position.columnId)?this.position.columnId:u[0];if(n)return this.set({rowKey:this.position.rowKey,columnId:a});let i=gt(t??0,0,r.count-1),l=r.keyAt(i);return l===void 0?this.clear():this.set({rowKey:l,columnId:a})}},we=(e,t=!0)=>({type:e,preventDefault:t});function Qi(e){let t=!!(e.ctrlKey||e.metaKey),u=!!e.shiftKey;switch(e.key){case"ArrowUp":return we(u?"extendSelectionUp":"up");case"ArrowDown":return we(u?"extendSelectionDown":"down");case"ArrowLeft":return we("left");case"ArrowRight":return we("right");case"PageUp":return we("pageUp");case"PageDown":return we("pageDown");case"Home":return we(t?"gridStart":"rowStart");case"End":return we(t?"gridEnd":"rowEnd");case" ":case"Spacebar":return we("toggleSelection");case"Enter":return we("activate");case"Escape":return we("clearSelection");case"a":case"A":return t?we("selectAll"):null;case"c":case"C":return t?we("copy",!1):null;default:return null}}function nd(e){return e==="up"||e==="down"||e==="left"||e==="right"||e==="pageUp"||e==="pageDown"||e==="rowStart"||e==="rowEnd"||e==="gridStart"||e==="gridEnd"}var ad="__dg_";function Vu(e){return e.startsWith(ad)}function id(e){return e.filter(t=>!Vu(t))}function nn(e){return e.replace(/[\t\r\n]+/g," ")}function od(e,t,u){let r=u.getCellValue(e.data,t);return nn(Wu(u.getDef(t),r,e.data))}function ld(e,t,u={}){let r=u.columnIds??id(t.runtime().map(a=>a.state.id));if(r.length===0)return"";let n=[];if(u.includeGroupHeaders){let a=r.map(l=>Ke(t.getDef(l))),i=a.reduce((l,o)=>Math.max(l,o.length),0);for(let l=0;l<i;l++){let o=null;n.push(a.map(d=>{let h=d[l]??"",c=h===""?null:d.slice(0,l+1).join("\0"),g=c!==null&&c===o;return o=c,g?"":nn(h)}).join(" "))}}(u.includeHeaders||u.includeGroupHeaders)&&n.push(r.map(a=>nn(t.getDef(a)?.headerName??t.getDef(a)?.field??a)).join(" "));for(let a of e)Pe(a)&&n.push(r.map(i=>od(a,i,t)).join(" "));return n.join(`
|
|
15
|
+
`)}var sd=5,dd=35e5,cd=16e6,hd=4,pd=3;function si(e){let t=[],u=[],r=[];for(let f of e)f.state.pinned==="left"?t.push(f):f.state.pinned==="right"?r.push(f):u.push(f);let n=[],a=0;for(let f of t)n.push(a),a+=f.state.width;let i=[0],l=0;for(let f of u)l+=f.state.width,i.push(l);let o=new Array(u.length).fill(null),d=[],h=a;for(let f=0;f<u.length;f++)u[f].state.pinned==="sticky"&&(o[f]=h,h+=u[f].state.width,d.push(f));let c=new Array(r.length),g=0;for(let f=r.length-1;f>=0;f--)c[f]=g,g+=r[f].state.width;return{left:t,center:u,right:r,leftWidth:a,centerWidth:l,rightWidth:g,totalWidth:a+l+g,centerOffsets:i,leftOffsets:n,rightOffsets:c,centerStickyOffsets:o,stickyIndices:d}}var md={left:[],center:[],right:[],leftWidth:0,centerWidth:0,rightWidth:0,totalWidth:0,centerOffsets:[0],leftOffsets:[],rightOffsets:[],centerStickyOffsets:[],stickyIndices:[]};function di(e,t,u){let r=0,n=u-1,a=0;for(;r<=n;){let i=r+n>>1;e[i]<=t?(a=i,r=i+1):n=i-1}return a}function _r(e,t,u){return e<t?t:e>u?u:e}var gd=class{rowCount=0;heights;overscanY;overscanX;viewportWidth=0;viewportHeight=0;scrollTop=0;scrollLeft=0;maxScrollOffset=dd;leadWidth=0;headerOffset=0;footerOffset=0;maxCanvasHeight=cd;layout=md;window;constructor(e={}){this.heights=new Ps(e.rowHeight??28),this.overscanY=Math.max(0,e.overscanY??sd),this.overscanX=Math.max(0,e.overscanX??pd),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)}getViewTop(){return this.virtualTop()}indexAtOffset(e){return this.rowCount===0?-1:Math.min(this.rowCount-1,Math.max(0,this.heights.indexAt(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,u=0){let r={};if(e>=0&&e<this.rowCount){let d=this.heights.offsetOf(e),h=d+this.heights.heightOf(e),c=this.virtualTop();d-u<c?r.scrollTop=this.physicalTop(Math.max(0,d-u),Math.floor):h>c+this.viewportHeight&&(r.scrollTop=this.physicalTop(h-this.viewportHeight,Math.ceil)+this.headerOffset+this.footerOffset)}let{center:n,centerOffsets:a,leftWidth:i,rightWidth:l,stickyIndices:o}=this.layout;if(t!=null&&t>=0&&t<n.length){let d=Math.max(0,this.viewportWidth-this.leadWidth-i-l),h=0;for(let f of o)f<t&&(h+=n[f].state.width);let c=a[t],g=a[t+1];o.includes(t)&&c<this.scrollLeft||(c<this.scrollLeft+h?r.scrollLeft=Math.max(0,c-h):g>this.scrollLeft+d&&(r.scrollLeft=g-d))}return r.scrollTop===void 0&&r.scrollLeft===void 0?null:r}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-hd?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:_r(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,a=_r(this.heights.indexAt(r),0,n),i=_r(this.heights.indexAt(r+this.viewportHeight-1),0,n),l=Math.max(0,a-this.overscanY),o=Math.min(this.rowCount,i+1+this.overscanY),d=this.heights.offsetOf(l)-(r-this.scrollTop);if(u){let h=d+this.heights.offsetOf(o)-this.heights.offsetOf(l);h>t&&(d-=h-t)}return{start:l,end:o,offsetY:d,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 a=Math.max(0,this.viewportWidth-u-r);if(a===0)return{start:0,end:0,offsetX:0};let i=this.scrollLeft,l=this.scrollLeft+a,o=di(t,i,n),d=di(t,l-1,n),h=Math.max(0,o-this.overscanX),c=Math.min(n,d+1+this.overscanX);return{start:h,end:c,offsetX:t[h]}}};function fd(e){let t=e.length,u=new Int32Array(t),r=new Int32Array(t),n=[];for(let a=0;a<t;a++){let i=e[a];if(i&&i.kind==="group"){for(;n.length>0&&e[n[n.length-1]].level>=i.level;)r[n.pop()]=a;u[a]=n.length>0?n[n.length-1]:-1,n.push(a)}else u[a]=n.length>0?n[n.length-1]:-1}for(;n.length>0;)r[n.pop()]=t;return{nodes:e,enclosing:u,end:r}}function Xi(e,t){let u=[];if(t<0||t>=e.enclosing.length)return u;for(let r=e.enclosing[t];r>=0;r=e.enclosing[r])u.push(r);return u.reverse()}function Cd(e,t){if(e.enclosing.length===0)return[];let u=t.indexAt(t.viewTop),r=[],n=Xi(e,u),a=e.nodes[u];a&&a.kind==="group"&&t.offsetOf(u)<t.viewTop&&n.push(u);let i=0;for(let l of n){let o=t.heightOf(l),d=t.offsetOf(e.end[l])-t.viewTop-o,h=Math.min(i,d);if(h+o<=0)break;r.push({node:e.nodes[l],index:l,offset:h,height:o}),i+=o}return r}var an=(()=>{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 jt(){return new Promise(e=>an(e))}var Pu=1e5,jr=32768,ci=65536;async function yd(e){let{rows:t,getValue:u,collator:r,shouldAbort:n,onProgress:a}=e,i=()=>n?n():!1,l=new Map;for(let w=0;w<t.length;w+=Pu){if(i())return null;let F=Math.min(t.length,w+Pu);for(let x=w;x<F;x++){let k=u(t[x]),R=k==null?"":String(k);l.has(R)||l.set(R,k)}a?.(F/t.length*.2),F<t.length&&await jt()}let o=[...l.keys()],d=[];for(let w=0;w<o.length;w+=jr){if(i())return null;d.push(o.slice(w,w+jr).sort(r.compare)),a?.(.2+Math.min(o.length,w+jr)/Math.max(1,o.length)*.2),await jt()}d.length===0&&(d=[[]]);let h=Math.max(1,Math.ceil(Math.log2(Math.max(2,d.length)))),c=0;for(;d.length>1;){let w=[];for(let F=0;F<d.length;F+=2){if(F+1===d.length){w.push(d[F]);continue}let x=d[F],k=d[F+1],R=new Array(x.length+k.length),P=0,H=0,U=0,O=ci;for(;P<x.length&&H<k.length;)if(r.compare(x[P],k[H])<=0?R[U++]=x[P++]:R[U++]=k[H++],--O===0){if(i())return null;await jt(),O=ci}for(;P<x.length;)R[U++]=x[P++];for(;H<k.length;)R[U++]=k[H++];if(w.push(R),i())return null;await jt()}d=w,c++,a?.(.4+Math.min(1,c/h)*.5)}let g=d[0],f=new Array(g.length);for(let w=0;w<g.length;w+=Pu){if(i())return null;let F=Math.min(g.length,w+Pu);for(let x=w;x<F;x++){let k=g[x];f[x]={label:k,value:l.get(k)}}F<g.length&&await jt()}return a?.(1),f}function wd(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 Ed=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(i=>i.columnId===e),n=r?r.direction==="asc"?"desc":null:"asc",a;this.multiSort&&t?(a=u.filter(i=>i.columnId!==e),n&&a.push({columnId:e,direction:n})):a=n?[{columnId:e,direction:n}]:[],this.commit({...this.state,sort:a})}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]={[kt]:t}:delete r[e];else{let n={...r[e]??{}};delete n[kt],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:wd(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 Yr(e,t){return e.toLowerCase().endsWith(`.${t}`)?e:`${e}.${t}`}var Ad=[];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 on="__dg_pending_row_",xd=e=>`${on}${e}`;function bd(e){if(typeof e!="string"||!e.startsWith(on))return null;let t=Number(e.slice(on.length));return Number.isInteger(t)&&t>=0?t:null}function vd(e){return e==null?[]:typeof e=="string"?[e]:[...e]}var Fd="\0",hi="",Qr=1e3,Dd=150,Sd=60,Zi=class{gridId;events=new ds;viewStateParts=new Map;pendingViewStateParts={};columns;store;rowModel;debugMode;locale;text;virtual;selection;focus=new rd;keyGetter;rowKeyField;summaryDefs;pendingReaders;historyDelegate;editingDelegate;summaryValues={};treeData;treeParent=null;treeChildParents=new WeakMap;treeIndex=null;treeIndexEpoch=-1;treeToggled=new Set;treeExpandedByDefault;warnedTreeGrouping=!1;lastPagination=null;firstDataRenderedSent=!1;cellRevision=0;collapsedByDefault;groupSummaries;groupDisplay;stickyGroupHeaders;stickyIndex=null;showGroupedColumns;masterDetail;editForm=null;getRowHeightFn;measuredRowHeights=new Map;lastResult={nodes:[],visibleCount:0,totalCount:0};spanCache=new Map;spanCacheResult=null;viewNodes=[];allViewNodes=[];paginationEnabled;infiniteScroll;infinitePageSize;infiniteLimit;exportDefaults={csv:{},excel:{},pdf:{}};exportPageSize;exportMaxRows;exportToken=0;computeToken=0;lastComputeTimings={};summaryPassSeq=0;remoteFetchQueued=!1;viewportWidth=0;viewportHeight=0;leadWidth=0;externalFilter=null;asyncQueue=[];asyncCallbacks=[];asyncTimer=null;asyncTransactionWait;lastScrollTop=-1;lastScrollLeft=-1;scrollEndTimer=null;overlayOverride=null;lastFocusedRowKey=null;deferredSelection;rowIndexCache=null;dataNodeCache=null;dataKeyCache=null;nodeByKey=null;groupTree=null;groupTreeSignature=null;dataEpoch=0;distinctCache=new Map;distinctFullInflight=new Map;distinctTruncated=new Set;distinctEpoch=-1;localeCollator=null;summaryBasis=null;busy={busy:!1,progress:null,phase:null,cancellable:!1};exportAbort=null;busyDepth=0;unsubscribeStore;disposed=!1;constructor(e){this.gridId=e.gridId,this.asyncTransactionWait=e.asyncTransactionWait??50,this.debugMode=e.debugMode??!1,this.locale=e.locale??"en",this.text=eu(e.locale,e.messages),this.columns=new P0(e.columns,{defaultColumnDef:e.defaultColumnDef,debugMode:this.debugMode}),this.store=new Ed({multiSort:e.sorting?.multi??!1});let t=Fs(e.rowKey);if(this.keyGetter=t,e.tree?.childrenField&&Array.isArray(e.dataSource)&&(e={...e,dataSource:Mr(e.dataSource,e.tree.childrenField,this.treeChildParents).rows}),this.rowKeyField=typeof e.rowKey=="string"?e.rowKey:null,hl(e.dataSource)){let u=e.tree?.hasChildren;this.rowModel=new qa(e.dataSource,{keyGetter:t,blockSize:e.remote?.blockSize,maxBlocks:e.remote?.maxBlocks,onError:r=>this.events.emit("dataError",{error:r}),debugMode:this.debugMode,...u?{tree:{hasChildren:u,isExpanded:r=>this.isTreeRowExpanded(r)}}:{}})}else this.rowModel=new Lu(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))});if(this.exportPageSize=Math.max(1,e.remote?.exportPageSize??1e3),this.exportMaxRows=Math.max(1,e.remote?.exportMaxRows??1e5),this.selection=new td(e.selection?.mode??"none"),this.deferredSelection=e.selection?.deferred??!1,this.summaryDefs=e.summaries??[],this.treeData=e.tree??null,this.treeData&&(this.treeParent=this.treeData.childrenField?u=>{let r=u&&typeof u=="object"?this.treeChildParents.get(u):void 0;return r===void 0?null:t(r)}:gl(this.treeData)),this.treeData&&this.rowModel.mode==="remote"&&!this.treeData.hasChildren&&console.warn("[datagrid] `tree` needs the rows in memory and is ignored with a remote DataSource \u2014 the grid shows a flat list. Give `tree.hasChildren` to load the tree from the server one level at a time (`load({ parentKey })`), or load the rows into an array."),this.treeExpandedByDefault=this.treeData?.defaultExpanded??!1,this.collapsedByDefault=e.grouping?.collapsedByDefault??!1,this.groupSummaries=e.grouping?.groupSummaries??!1,this.groupDisplay=e.grouping?.display==="aligned"?"aligned":"fullWidth",this.stickyGroupHeaders=e.grouping?.stickyHeaders??!1,this.showGroupedColumns=e.grouping?.showGroupedColumns??!1,e.grouping?.groupBy){this.store.setGroupBy(e.grouping.groupBy);let u=this.store.getState().groupBy;this.remote()?.setGrouping(u.map(r=>({columnId:r})),u)}this.paginationEnabled=e.pagination?e.pagination.enabled!==!1:!1,this.infiniteScroll=e.scrolling?.mode==="infinite",this.infinitePageSize=Math.max(1,e.scrolling?.pageSize??100),this.infiniteLimit=this.infinitePageSize,e.pagination?.pageSize&&this.store.setPageSize(e.pagination.pageSize),this.virtual=new gd({rowHeight:e.rowHeight,overscanY:e.virtualization?.overscanY,overscanX:e.virtualization?.overscanX}),this.virtual.setColumnLayout(si(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(Fd)}#${t?this.summaryDefs.map(r=>`${r.columnId}:${r.type}`).join(","):""}`;return this.groupTree&&this.groupTreeSignature===u?this.groupTree:(this.setBusy("grouping",null),this.groupTree=Il(this.dataNodes(),this.columns,{columnIds:e,summaries:t?this.summaryDefs:void 0,locale:this.locale}),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 Lu&&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 a=this.emitIfWindowChanged(this.virtual.setViewportSize(e,t));return a&&this.rowModel.mode==="remote"&&this.scheduleRemoteFetch(),n&&this.events.emit("gridSizeChanged",{width:e,height:t,previousWidth:u,previousHeight:r}),a}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)},Dd)}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})}lastRemoteRange=null;fetchUncoveredWindow(){let e=this.lastRemoteRange;if(!e)return;let t=this.virtual.getWindow().rows,u=Math.min(t.end,this.viewNodes.length);for(let r=t.start;r<u;r++)if(this.viewNodes[r]===void 0&&(r<e.start||r>=e.end)){this.scheduleRemoteFetch();return}}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){let u=0,r=this.stickyGroupIndex();if(r)for(let n of Xi(r,e))u+=this.virtual.getRowHeightAt(n);return this.virtual.ensureVisible(e,t,u)}stickyGroupIndex(){return!this.stickyGroupHeaders||this.rowModel.mode!=="client"||this.store.getState().groupBy.length===0?null:(this.stickyIndex?.nodes!==this.viewNodes&&(this.stickyIndex=fd(this.viewNodes)),this.stickyIndex)}getStickyGroupRows(){let e=this.stickyGroupIndex();if(!e)return[];let t=this.virtual;return Cd(e,{viewTop:t.getViewTop(),indexAt:u=>t.indexAtOffset(u),offsetOf:u=>t.getRowOffset(u),heightOf:u=>t.getRowHeightAt(u)})}hasStickyGroupHeaders(){return this.stickyGroupHeaders&&this.rowModel.mode==="client"}getRowIndex(e){return this.rowAxis().indexOf(e)}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 a=this.ensureVisible(0);return a&&this.events.emit("scrollRequested",a),!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(a=>a.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(){if(!this.selection.isAllMatching())return this.selection.getSelectedCount();let{keys:e}=this.selection.getSelectionDescriptor(),t=e.length;if(this.rowModel.mode==="client"&&t>0){t=0;for(let u of e)this.getDataRowNode(u)&&t++}return Math.max(0,this.lastResult.visibleCount-t)}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){Rr(e)||this.selection.select(e)&&this.emitSelectionChanged()}toggleRow(e){Rr(e)||this.selection.toggle(e)&&this.emitSelectionChanged()}setSelectedKeys(e){this.selection.setSelectedKeys(e)&&this.emitSelectionChanged()}selectionVersion=0;groupSelectionCache=new Map;groupSelectionCacheKey=null;findGroup(e){let t=this.groupTree;if(!t)return null;let u=[...t.roots];for(;u.length>0;){let r=u.pop();if(r.key===e)return r;r.children&&e.startsWith(`${r.key}|`)&&u.push(...r.children)}return null}getGroupRowKeys(e){let t=this.findGroup(e);if(!t||!this.groupTree)return[];let u=this.groupTree.nodes,r=[];for(let n=t.from;n<t.to;n++)r.push(u[n].key);return r}getGroupSelectionState(e){let t=this.groupSelectionCacheKey;(!t||t.tree!==this.groupTree||t.version!==this.selectionVersion)&&(this.groupSelectionCache.clear(),this.groupSelectionCacheKey={tree:this.groupTree,version:this.selectionVersion});let u=this.groupSelectionCache.get(e);if(u)return u;let r=0,n=0,a=this.findGroup(e);if(a&&this.groupTree){let l=this.groupTree.nodes;for(let o=a.from;o<a.to&&!(r>0&&n>0);o++)this.selection.isSelected(l[o].key)?r++:n++}let i=r>0&&n>0?"some":r>0?"all":"none";return this.groupSelectionCache.set(e,i),i}setGroupSelected(e,t){this.selection.setMany(this.getGroupRowKeys(e),t)&&this.emitSelectionChanged()}toggleGroupSelection(e){this.setGroupSelected(e,this.getGroupSelectionState(e)!=="all")}selectAll(){(this.deferredSelection?this.selection.selectAllMatching():this.selection.selectAll(this.dataKeys()))&&this.emitSelectionChanged()}clearSelection(){this.selection.clear()&&this.emitSelectionChanged()}handleRowClick(e,t={}){Rr(e)||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((t==="left"||t==="right")&&this.expandCollapseByKey(t))return!0;if(nd(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==="treePath"?this.toggleTreeRow(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}}expandCollapseByKey(e){let t=this.getFocusedNode(),u=this.focus.get();if(!t||!u)return!1;if(t.kind==="group")return(e==="right"?t.expanded:!t.expanded)?!1:(this.toggleGroup(String(t.key)),!0);if(t.kind!=="data"&&t.kind!=="treePath"||!t.tree)return!1;let r=this.getVisualColumnIds().find(o=>!Vu(o));if(u.columnId!==r)return!1;let{hasChildren:n,expanded:a,depth:i}=t.tree;if(e==="right")return!n||a?!1:(this.expandTreeRow(t.key),!0);if(n&&a)return this.collapseTreeRow(t.key),!0;let l=i>0?this.treeIndex?.parentOf.get(t.key)??null:null;return l===null||this.rowAxis().indexOf(l)<0?!1:(this.focusCell(l,u.columnId),!0)}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?"":ld(t,this.columns,e)}notifyClipboardGesture(e,t,u){let r=`${e}Start`,n=`${e}End`;this.events.emit(r,{cellCount:t});let a=!1;try{return a=u(),a}finally{this.events.emit(n,{cellCount:t,performed:a})}}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?xd(t):void 0),indexOf:t=>{let u=bd(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 a=e[n];a&&!r.has(a.key)&&r.set(a.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"||u==="treePath"}: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.selectionVersion++;let e=this.getSelectedCount();if(!this.selection.isAllMatching()){this.events.emit("selectionChanged",{selectedKeys:this.selection.getSelectedKeys(),selectedCount:e});return}let t=null,u=()=>t??=this.getSelectedKeys();this.events.emit("selectionChanged",{get selectedKeys(){return u()},selectedCount:e})}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()?cn(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=Qr){return this.getDistinctValueSet(e,t).entries}getDistinctValueSet(e,t=Qr){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?.()??[],a=this.columns.getDef(e),i=new Map,l=!1;for(let d of n){let h=this.columns.getCellValue(d,e),c=h==null?"":String(h),g=h==null?"":Wu(a,h,d);if(!i.has(c)&&(i.set(c,{value:h,label:g}),i.size>t)){i.delete(c),l=!0;break}}let o=[...i.values()].sort((d,h)=>this.collator().compare(d.label,h.label));return this.distinctCache.set(u,o),l?this.distinctTruncated.add(u):this.distinctTruncated.delete(u),{entries:o,truncated:l}}searchDistinctValues(e,t,u=Qr){let r=ne(t.trim());if(!r)return this.getDistinctValueSet(e,u);let n=this.rowModel.getSourceRows?.()??[],a=this.columns.getDef(e),i=new Map,l=!1;for(let o of n){let d=this.columns.getCellValue(o,e),h=d==null?"":String(d),c=d==null?"":Wu(a,d,o);if(!(!ne(c).includes(r)||i.has(h))&&(i.set(h,{value:d,label:c}),i.size>u)){i.delete(h),l=!0;break}}return{entries:[...i.values()].sort((o,d)=>this.collator().compare(o.label,d.label)),truncated:l}}async getDistinctValueSetAsync(e,t){if(this.remote())return{entries:await this.getDistinctValuesAsync(e),truncated:!1};this.distinctEpoch!==this.dataEpoch&&(this.distinctCache.clear(),this.distinctTruncated.clear(),this.distinctEpoch=this.dataEpoch);let u=`${e} full`,r=this.distinctCache.get(u);if(r)return{entries:r,truncated:!1};let n=this.distinctFullInflight.get(e);if(!n){let a=this.dataEpoch;n=yd({rows:this.rowModel.getSourceRows?.()??[],getValue:i=>this.columns.getCellValue(i,e),collator:this.collator(),shouldAbort:()=>this.disposed,onProgress:t}).then(i=>(this.distinctFullInflight.delete(e),i===null?[]:(a===this.dataEpoch&&this.distinctEpoch===a&&(this.distinctCache.set(u,i),this.distinctTruncated.delete(u)),i))),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(h=>this.columns.getState(h)?.visible&&!u.has(h));if(r.length===0)return;let n=0;for(let h of this.columns.getOrder())!this.columns.getState(h)?.visible||!u.has(h)||(n+=this.columns.getState(h)?.width??0);let a=t-n;if(a<=0)return;let i=new Set(r),l=new Map;for(let h of r)l.set(h,this.columns.getState(h)?.width??0);for(let h=0;h<=r.length&&i.size>0;h++){let c=0;for(let w of i)c+=l.get(w)??0;if(c<=0)break;let g=a/c,f=!1;for(let w of[...i]){let F=(l.get(w)??0)*g,x=this.columns.getDef(w),k=x?.minWidth??Sd,R=x?.maxWidth??Number.POSITIVE_INFINITY;if(F<k||F>R){let P=Math.min(Math.max(F,k),R);l.set(w,P),i.delete(w),a-=P,f=!0}else l.set(w,F)}if(!f)break}let o=0;for(let h of r)o+=l.get(h)??0;let d=0;r.forEach((h,c)=>{let g=c===r.length-1?Math.round(o)-d:Math.round(l.get(h)??0);d+=g,this.columns.setWidth(h,g)}),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}getGroupDisplay(){return this.groupDisplay}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 qa?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(Pl(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}hasTreePathRows(){return!!this.treeData?.getDataPath}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),this.events.emit("detailToggled",{rowKey:e,expanded:this.isDetailExpanded(e)}))}collapseAllDetails(){this.masterDetail&&(this.masterDetail.expandedByDefault?this.store.setExpandedDetails(this.dataKeys()):this.store.setExpandedDetails([]),this.events.emit("detailToggled",{rowKey:null,expanded:!1}))}expandAllDetails(){this.masterDetail&&(this.masterDetail.expandedByDefault?this.store.setExpandedDetails([]):this.store.setExpandedDetails(this.dataKeys()),this.events.emit("detailToggled",{rowKey:null,expanded:!0}))}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(hi)}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 i=this.getSelectedKeys();if(i.length>0){let l=[];for(let o of i){let d=this.getDataRowNode(o);d&&l.push(d)}return Gr(l,this.columns,e,n)}}let a=this.rowModel instanceof Lu?this.rowModel:null;if(a?.usesWorker()&&Li(e)&&!r){let{searchText:i}=this.store.getState(),l=await a.aggregate(this.columns,{sort:[],filter:u==="all"?null:this.runningFilter(),searchText:u==="all"?"":i},e);if(l)return l}if(u==="all"){let i=this.rowModel.getSourceRows?.()??[],l=new Array(i.length);for(let o=0;o<i.length;o++)l[o]=ke(i[o],this.keyGetter(i[o]),o);return Gr(l,this.columns,e,n)}return Gr(this.dataNodes(),this.columns,e,n)}async computeChartBoxData(e){return fs(this.chartSourceNodes(e.source),this.columns,e)}chartSourceNodes(e){if(e==="selection"){let t=this.getSelectedKeys();if(t.length>0){let u=[];for(let r of t){let n=this.getDataRowNode(r);n&&u.push(n)}return u}}if(e==="all"){let t=this.rowModel.getSourceRows?.()??[],u=new Array(t.length);for(let r=0;r<t.length;r++)u[r]=ke(t[r],this.keyGetter(t[r]),r);return u}return this.dataNodes()}async computeChartXYData(e){let t=e.source??"view";if(t==="selection"){let u=this.getSelectedKeys();if(u.length>0){let r=[];for(let n of u){let a=this.getDataRowNode(n);a&&r.push(a)}return Hr(r,this.columns,e)}}if(t==="all"){let u=this.rowModel.getSourceRows?.()??[],r=new Array(u.length);for(let n=0;n<u.length;n++)r[n]=ke(u[n],this.keyGetter(u[n]),n);return Hr(r,this.columns,e)}return Hr(this.dataNodes(),this.columns,e)}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(hi)}runSummaryPass(e,t,u,r,n){let a=++this.summaryPassSeq;if(e.length<=1e5){this.busyDepth>0&&this.setBusy("aggregating",null);let c=kl(e,this.columns,t,this.pendingReaders);this.summaryValues=u?{...this.summaryValues,...c}:c,r!==null&&(this.summaryBasis=r);return}let i=Tl(this.columns,t,this.pendingReaders),l=1e5,o=e.length,d=0,h=()=>{if(this.disposed||a!==this.summaryPassSeq||n!==this.computeToken)return;let c=Math.min(o,d+l);if(i.add(e,d,c),d=c,d<o){this.setBusy("aggregating",d/o),an(h);return}let g=i.finish();this.summaryValues=u?{...this.summaryValues,...g}:g,r!==null&&(this.summaryBasis=r),this.busyDepth===0&&this.setBusy(null,null),this.events.emit("summariesChanged",{values:this.summaryValues})};an(h)}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 e0({nodes:e,columns:this.columns,options:{columnIds:this.layoutRuntime().map(u=>u.state.id),...t},isSelected:u=>this.selection.isSelected(u),selectionCount:this.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(),a=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:(i,l)=>this.setBusy("exporting",l>0?Math.round(i/l*100):null)});return this.setBusy("exporting",null),a}setExportDefaults(e,t){if(typeof e!="string"){this.exportDefaults.excel={...e};return}this.exportDefaults[e]={...t??{}}}setEnterpriseEdition(e){this.enterpriseEdition=e}isEnterpriseEdition(){return this.enterpriseEdition}enterpriseEdition=!1;requireEnterprise(e,t=" (CSV export is available in Community)"){if(!this.enterpriseEdition)throw new Error(`[datagrid] ${e} is an Enterprise feature. Import EnterpriseDataGrid from @kanunilabs/datagrid-react-enterprise${t}.`)}async withExportSignal(e,t){if(e.signal)return this.withBusy("exporting",()=>t(e));let u=new AbortController;this.exportAbort=u;try{return await this.withBusy("exporting",()=>t({...e,signal:u.signal}))}finally{this.exportAbort===u&&(this.exportAbort=null)}}async exportToCsv(e={}){let t={delimiter:n0(this.locale),...this.exportDefaults.csv,...e};return this.withExportSignal(t,async u=>{let r=this.buildExportModelFrom(await this.exportRows(),u);return{blob:await i0(r,u),fileName:Yr(u.fileName??this.gridId,"csv"),rowCount:r.rows.length}})}async exportToExcel(e={}){this.requireEnterprise("Excel export");let t={sheetName:this.text.exportSheetName,...this.exportDefaults.excel,...e};return this.withExportSignal(t,async u=>{let r=this.buildExportModelFrom(await this.exportRows(),u);return{blob:await g0(r,{...u,onProgress:n=>{u.onProgress?.(n),n>=1&&this.setBusy("exporting",null,!1)}}),fileName:Yr(u.fileName??this.gridId,"xlsx"),rowCount:r.rows.length}})}async exportToPdf(e={}){this.requireEnterprise("PDF export");let t={...this.exportDefaults.pdf,...e};return this.withExportSignal(t,async u=>{let r=this.buildExportModelFrom(await this.exportRows(),u);return this.setBusy("exporting",null,!1),{blob:await T0(r,u),fileName:Yr(u.fileName??this.gridId,"pdf"),rowCount:r.rows.length}})}getViewState(){let e=this.store.getState();return{version:1,columns:this.columns.getColumnStates(),sort:e.sort,filter:e.filter,columnFilters:e.columnFilters,columnFilterParts:e.columnFilterParts,filterEnabled:e.filterEnabled,searchText:e.searchText,groupBy:e.groupBy,collapsedGroups:e.collapsedGroups,page:e.page,pageSize:e.pageSize,...this.treeData?{tree:{expandedByDefault:this.treeExpandedByDefault,toggled:[...this.treeToggled]}}:{},...this.viewStateParts.size>0?{parts:this.collectViewStateParts()}:{}}}collectViewStateParts(){let e={};for(let[t,u]of this.viewStateParts)try{e[t]=u.get()}catch{}return e}registerViewStatePart(e,t){if(this.viewStateParts.set(e,t),e in this.pendingViewStateParts){let u=this.pendingViewStateParts[e];delete this.pendingViewStateParts[e];try{t.apply(u)}catch{}}return()=>{this.viewStateParts.get(e)===t&&this.viewStateParts.delete(e)}}getAiSchema(e={}){return this.requireEnterprise("The AI state schema",""),xs(this.aiContext(e))}getAiState(e={}){this.requireEnterprise("The AI state schema","");let t=this.aiContext(e),u=this.store.getState(),r={},{features:n}=t;return n.has("filter")&&(r.filter=this.store.effectiveFilter()),n.has("sort")&&(r.sort=u.sort.map(a=>({...a}))),n.has("grouping")&&(r.groupBy=[...u.groupBy]),(n.has("columnVisibility")||n.has("columnSizing")||n.has("columnPinning"))&&(r.columns=t.columns.map(a=>{let i=this.columns.getState(a.id);return{columnId:a.id,...n.has("columnVisibility")?{visible:i.visible}:{},...n.has("columnSizing")?{width:i.width}:{},...n.has("columnPinning")?{pinned:i.pinned==="left"||i.pinned==="right"?i.pinned:null}:{}}})),n.has("search")&&(r.searchText=u.searchText),r}applyAiState(e,t={}){this.requireEnterprise("The AI state schema","");let u=this.aiContext(t),{state:r,dropped:n}=vs(e,u),a=[],i=this.getViewState(),l=!1;if(r.filter!==void 0){let o=r.filter===null?[]:"nodes"in r.filter&&r.filter.logic==="and"?r.filter.nodes:[r.filter],d=new Map,h=[];for(let c of o){let g=Hi(c);if(g.size===1){let[f]=g;d.set(f,[...d.get(f)??[],c])}else h.push(c)}i.filter=Ra(...h),i.columnFilters={},i.columnFilterParts={};for(let[c,g]of d){let f=Ra(...g);i.columnFilters[c]=f,i.columnFilterParts[c]={[kt]:f}}i.filterEnabled=!0,a.push("filter"),l=!0}if(r.sort!==void 0&&(i.sort=r.sort,a.push("sort")),r.groupBy!==void 0&&(i.groupBy=r.groupBy,i.collapsedGroups=[],a.push("grouping"),l=!0),r.columns!==void 0&&r.columns.length>0){let o=new Map(r.columns.map(c=>[c.columnId,c])),d=i.columns.map(c=>{let g=o.get(c.id);return g?{...c,...g.visible!==void 0?{visible:g.visible}:{},...typeof g.width=="number"?{width:g.width}:{},...g.pinned!==void 0?{pinned:g.pinned}:{}}:c});d.some(c=>c.visible&&!Vu(c.id))?i.columns=d:(n.push("columns: the answer would hide every column"),i.columns=d.map((c,g)=>({...c,visible:i.columns[g].visible})));let h=c=>r.columns.some(g=>g[c]!==void 0);h("visible")&&a.push("columnVisibility"),r.columns.some(c=>typeof c.width=="number")&&a.push("columnSizing"),h("pinned")&&a.push("columnPinning")}return r.searchText!==void 0&&(i.searchText=r.searchText,a.push("search"),l=!0),l&&(i.page=0),a.length>0&&(this.applyViewState(i),r.sort!==void 0&&this.emitSortChanged()),n.length>0&&this.debugMode&&console.warn(`[datagrid] applyAiState left out: ${n.join("; ")}`),{applied:a,dropped:n}}aiContext(e){let t=new Set(e.exclude??[]),u=new Set(Cs.filter(a=>!t.has(a)));this.treeData&&u.delete("grouping");let r=Math.max(1,e.maxValues??100),n=[];for(let a of this.columns.getOrder()){if(Vu(a))continue;let i=this.columns.getDef(a),l=e.columns?.[a];if(!i||l?.exclude)continue;let o=i.dataType??(i.lookup?"lookup":"string"),d,h=l?.description,c=El(i);if(c&&l?.includeValues!==!1)d=c.filter(g=>["string","number","boolean"].includes(typeof g.value)).slice(0,r).map(g=>({value:g.value,label:g.label}));else if(l?.includeValues&&o!=="date"){let g=this.getDistinctValueSet(a,r);d=g.entries.filter(f=>["string","number","boolean"].includes(typeof f.value)).map(f=>({value:f.value,label:f.label})),g.truncated&&(h=`${h?`${h}. `:""}Only some of its values are listed`)}n.push({id:a,header:i.headerName??i.field??a,dataType:o,sortable:i.sortable!==!1,filterable:i.filterable!==!1,groupable:i.groupable!==!1,resizable:i.resizable!==!1,...h?{description:h}:{},...d?{values:d}:{}})}return{columns:n,features:u}}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=a=>t.has(a)?!0:(u.push(a),!1),n=vd(e.groupBy).filter(r);this.remote()?.setGrouping(n.map(a=>({columnId:a})),n),this.store.applyState({sort:(e.sort??[]).filter(a=>r(a.columnId)),filter:Ji(e.filter??null,r),columnFilters:Object.fromEntries(Object.entries(e.columnFilters??{}).filter(([a])=>r(a))),columnFilterParts:Object.fromEntries(Object.entries(e.columnFilterParts??Object.fromEntries(Object.entries(e.columnFilters??{}).map(([a,i])=>[a,{[kt]:i}]))).filter(([a])=>r(a))),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.treeData&&e.tree&&typeof e.tree.expandedByDefault=="boolean"&&(this.treeExpandedByDefault=e.tree.expandedByDefault,this.treeToggled=new Set(Array.isArray(e.tree.toggled)?e.tree.toggled:[])),this.recompute();for(let[a,i]of Object.entries(e.parts??{})){let l=this.viewStateParts.get(a);if(!l){this.pendingViewStateParts[a]=i;continue}try{l.apply(i)}catch{}}}setData(e){this.treeData?.childrenField&&(this.treeChildParents=new WeakMap,e=Mr(e,this.treeData.childrenField,this.treeChildParents).rows),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=M0(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){this.treeData?.childrenField&&e.add&&e.add.length>0&&(e={...e,add:Mr(e.add,this.treeData.childrenField,this.treeChildParents).rows});let t=this.remote();if(t){let c=e.update??[];if(!((e.add?.length??0)>0||(e.remove?.length??0)>0)&&c.length>0&&this.remoteUpdateKeepsPlacement(c)){let g=t.patchRows(c);this.invalidateResultCaches(),this.events.emit("rowsChanged",{added:0,updated:g,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 c of e.update)n.add(r(c));let a=new Map;if(n.size>0)for(let c=0;c<u.length;c++){let g=r(u[c]);n.has(g)&&a.set(g,c)}let i=u.slice(),l=0,o=0,d=[];if(e.update)for(let c of e.update){let g=a.get(r(c));g!==void 0&&(i[g]=c,d.push(g),l++)}if(e.remove&&e.remove.length>0){let c=new Set(e.remove.map(f=>gi(f)?f:r(f))),g=i.filter(f=>!c.has(r(f)));o=i.length-g.length,i=g}let h=e.add?.length??0;if(h>0){let c=e.addBeforeKey===void 0?-1:i.findIndex(f=>r(f)===e.addBeforeKey),g=e.add;c>=0?i=i.slice(0,c).concat(g,i.slice(c)):e.addPosition==="first"?i=g.concat(i):i=i.concat(g)}if(!(o>0||h>0)&&this.rowModel.patchData?this.rowModel.patchData(i,d,this.columns):this.rowModel.setData?.(i),this.bumpDataEpoch(),o>0){let c=new Set(i.map(g=>r(g)));this.selection.retainKeys(c)&&this.emitSelectionChanged()}this.events.emit("rowsChanged",{added:h,updated:l,removed:o}),this.events.emit("dataUpdated",{totalCount:i.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=Gl(e,this.keyGetter);Ol(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=rn(this.columns,{sort:Ir(t,r),filter:this.runningFilter(),searchText:u});if(n.length===0)return!0;for(let a of e){let i=this.getRowByKey(this.keyGetter(a));if(!i)return!1;for(let l of n){let o=this.columns.getCellValue(i,l),d=this.columns.getCellValue(a,l);if(!Object.is(o,d))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,a=r&&this.foregroundDepth===0;this.busy.busy===r&&this.busy.phase===e&&this.busy.progress===t&&this.busy.cancellable===n&&this.busy.background===a||(this.busy={busy:r,phase:e,progress:t,cancellable:n,background:a},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 Lu&&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(),a=Ir(t,r),i,l=performance.now();try{i=await this.rowModel.getRows(this.columns,{sort:a,filter:n,searchText:u,externalFilter:this.externalFilter,range:this.lastRemoteRange=this.neededRange(),summaries:this.serverSummaryRequests()})}catch(w){!(w instanceof Ie)&&!(w instanceof Ou)&&(this.events.emit("dataError",{error:w}),this.debugMode&&console.error("[datagrid] row model failed",w));return}if(e!==this.computeToken||this.disposed)return;let o=Math.round(performance.now()-l),d=performance.now(),h=this.remote();if(h)this.summaryValues=this.summaryDefs.length>0?h.getSummaries():{},this.summaryBasis=null;else if(this.summaryDefs.length>0){let w=this.currentSummaryBasis(n,u),F=this.summaryBasis===w,x=F?this.summaryDefs.filter(k=>k.type==="custom"&&k.dependsOnOrder!==!1):this.summaryDefs;x.length>0?this.runSummaryPass(i.nodes,x,F,w,e):this.summaryBasis=w}else this.summaryValues={},this.summaryBasis=null;let c=Math.round(performance.now()-d);this.lastResult=i,this.invalidateResultCaches();let g=performance.now();this.projectView();let f=this.rowModel.getLastTimings?.();this.lastComputeTimings={modelMs:o,summaryMs:c,projectViewMs:Math.round(performance.now()-g),...f}}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"?Ll(this.ensureGroupTree(t),{collapsedKeys:this.store.collapsedSet(),collapsedByDefault:this.collapsedByDefault}).nodes:this.lastResult.nodes),a=this.masterDetail?Is(n,{expandedKeys:this.store.expandedSet(),expandedByDefault:this.masterDetail.expandedByDefault,height:this.masterDetail.height}):n,i=this.editForm?Ls(a,{rowKey:this.editForm.rowKey,height:this.editForm.height,atTop:this.editForm.atTop}):a;if(this.allViewNodes=i,this.infiniteScroll)this.infiniteLimit=Math.min(this.infiniteLimit,Math.max(this.infinitePageSize,i.length)),this.viewNodes=i.slice(0,this.infiniteLimit);else if(this.paginationEnabled){let{pageSize:o}=e,d=this.store.clampPage(Math.ceil(i.length/o))*o;this.viewNodes=i.slice(d,d+o)}else this.viewNodes=i;this.rowIndexCache=null,this.rebuildRowHeights();let l=this.virtual.setRowCount(this.viewNodes.length);this.rowModel.mode==="remote"&&this.fetchUncoveredWindow(),this.focus.reconcile(this.focusContext(),u)&&this.emitFocusChanged(),this.events.emit("contentReady",{rows:this.lastResult.nodes,totalCount:this.lastResult.totalCount,visibleCount:this.lastResult.visibleCount}),this.emitPaginationChanged(!0),!this.firstDataRenderedSent&&this.viewNodes.length>0&&(this.firstDataRenderedSent=!0,this.events.emit("firstDataRendered",{rowCount:this.viewNodes.length})),this.emitIfWindowChanged(l)}treeView(){if(!this.treeData||!this.treeParent||this.rowModel.mode!=="client")return null;let e=this.rowModel.getSourceRows?.();if(!e)return null;if(!this.treeIndex||this.treeIndexEpoch!==this.dataEpoch){let t=this.treeData.getDataPath;this.treeIndex=t?ml(e,this.keyGetter,t):fl(e,this.keyGetter,this.treeParent),this.treeIndexEpoch=this.dataEpoch}return yl(this.dataNodes(),{index:this.treeIndex,sourceRows:e,isExpanded:t=>this.isTreeRowExpanded(t)}).nodes}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.reprojectTree(),this.events.emit("treeRowToggled",{rowKey:e,expanded:t}))}expandAllTreeRows(){this.treeData&&(this.treeExpandedByDefault=!0,this.treeToggled.clear(),this.reprojectTree(),this.events.emit("treeRowToggled",{rowKey:null,expanded:!0}))}collapseAllTreeRows(){this.treeData&&(this.treeExpandedByDefault=!1,this.treeToggled.clear(),this.reprojectTree(),this.events.emit("treeRowToggled",{rowKey:null,expanded:!1}))}reprojectTree(){this.rowModel.isTree?.()?this.recompute():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 a=0;a<r.length;a++){let i=r[a],l;i.kind==="detail"||i.kind==="editform"?l=i.height:l=e.get(i.key)??this.getRowHeightFn?.(i,a),l!==void 0&&l!==u&&n.set(a,Math.max(1,l))}return this.virtual.setRowHeights(n)}setMeasuredRowHeights(e){let t=e.size!==this.measuredRowHeights.size;if(!t){for(let[r,n]of e)if(this.measuredRowHeights.get(r)!==n){t=!0;break}}if(!t)return!1;this.measuredRowHeights=new Map(e);let u=this.rebuildRowHeights();return this.emitIfWindowChanged(u),u}getMeasuredRowHeights(){return this.measuredRowHeights}clearMeasuredRowHeights(){if(this.measuredRowHeights.size===0)return!1;this.measuredRowHeights=new Map;let e=this.rebuildRowHeights();return this.emitIfWindowChanged(e),e}getRowHeightAt(e){return this.virtual.getRowHeightAt(e)}getRowOffset(e){return this.virtual.getRowOffset(e)}getCellSpans(e){let t=this.columns.getDef(e)?.spanRows;if(!t)return Ad;this.spanCacheResult!==this.lastResult&&(this.spanCache.clear(),this.spanCacheResult=this.lastResult);let u=this.spanCache.get(e);if(u)return u;let r=us(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(si(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}},yn={compact:24,normal:28,comfortable:36},Bd=["quartz","balham","material","alpine","kanuni","kanuni-midnight"];function wn(e){return e!==void 0&&Bd.includes(e)}var En={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 Yu(e,t,u){return wn(e)?En[e][t??"normal"]:t?yn[t]:u}var kd={today:"periodToday",yesterday:"periodYesterday",tomorrow:"periodTomorrow",thisWeek:"periodThisWeek",lastWeek:"periodLastWeek",nextWeek:"periodNextWeek",thisMonth:"periodThisMonth",lastMonth:"periodLastMonth",nextMonth:"periodNextMonth",thisQuarter:"periodThisQuarter",lastQuarter:"periodLastQuarter",nextQuarter:"periodNextQuarter",thisYear:"periodThisYear",lastYear:"periodLastYear",nextYear:"periodNextYear",yearToDate:"periodYearToDate",lastDays:"periodLastDays",nextDays:"periodNextDays"};function An(e){let t={};for(let u of Zt)t[u]=String(e[kd[u]]);return t}var pi=An(hn),mi=e=>e.trim().replace(/\s+/g," ").toLocaleLowerCase();function Td(e,t){let u=mi(e);for(let r of t?[t,pi]:[pi])for(let n of Zt){let a=mi(r[n]);if(!a.includes("{n}")){if(u===a)return{period:n};continue}let[i,l]=a.split("{n}");if(u.startsWith(i)&&u.endsWith(l)){let o=u.slice(i.length,u.length-l.length).trim(),d=/^\d+$/.test(o)?Number(o):Number.NaN;if(Number.isInteger(d)&&d>=1)return{period:n,days:d}}}return null}function eo(e){let t=[];for(let u of Zt)if(u==="lastDays")for(let r of[7,30,90])t.push(e.lastDays.replace("{n}",String(r)));else if(u==="nextDays")for(let r of[7,30])t.push(e.nextDays.replace("{n}",String(r)));else t.push(e[u]);return t}var Nd=[">=","<=","<>",">","<","="];function to(e,t,u,r){let n=t.trim();if(n==="")return null;if(u==="date"){let a=Td(n,r);if(a)return{columnId:e,operator:"period",value:a}}for(let a of Nd)if(n.startsWith(a)){let i=n.slice(a.length).trim();if(i==="")return null;let l=u==="number"?Number(i):Number.NaN;return{columnId:e,operator:a,value:Number.isNaN(l)?i:l}}if(u==="number"){let a=Number(n);return Number.isNaN(a)?{columnId:e,operator:"contains",value:n}:{columnId:e,operator:"=",value:a}}if(u==="boolean"){let a=n.toLowerCase();return a==="true"||a==="false"?{columnId:e,operator:"=",value:a==="true"}:{columnId:e,operator:"contains",value:n}}return u==="date"?{columnId:e,operator:"contains",value:n}:{columnId:e,operator:"contains",value:n}}function uo(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 Qu(e,t){let{controller:u,maxGroupLevels:r,t:n}=t,a=e.columnId,i=u.getColumnModel().getDef(a),l=u.getSort(),o=l.find(R=>R.columnId===a),d=u.getGroupLevels(),h=d.includes(a),c=i?.sortable!==!1,g=u.getColumnStates().find(R=>R.id===a)?.pinned??null,f=i?.groupable!==!1,w=[{id:"sort-asc",label:n.sortAsc,disabled:!c||o?.direction==="asc",onSelect:()=>u.setSort([{columnId:a,direction:"asc"}])},{id:"sort-desc",label:n.sortDesc,disabled:!c||o?.direction==="desc",onSelect:()=>u.setSort([{columnId:a,direction:"desc"}])},{id:"sort-clear",label:n.clearSort,disabled:!o,onSelect:()=>u.setSort(l.filter(R=>R.columnId!==a))},{id:"sep-1",separator:!0},{id:"group",label:h?n.ungroupColumn:n.groupByColumn,disabled:!f,onSelect:()=>{h?u.groupBy(d.filter(R=>R!==a)):u.groupBy([...d,a].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(R=>R.visible).length<=1,onSelect:()=>u.setColumnVisible(a,!1)},{id:"field-chooser",label:n.fieldChooser,onSelect:t.onOpenFieldChooser},{id:"sep-3",separator:!0},{id:"best-fit",label:n.bestFit,disabled:i?.resizable===!1,onSelect:()=>t.onBestFit(a)},{id:"best-fit-all",label:n.bestFitAll,onSelect:t.onBestFitAll}],F=u.getColumnStates().filter(R=>R.visible&&R.pinned===g).map(R=>R.id),x=F.indexOf(a),k=i?.reorderable!==!1&&x>=0;return w.push({id:"sep-4",separator:!0},{id:"move-left",label:n.moveLeft,disabled:!k||x<=0,onSelect:()=>u.moveColumn(a,F[x-1])},{id:"move-right",label:n.moveRight,disabled:!k||x<0||x>=F.length-1,onSelect:()=>u.moveColumn(a,F[x+2])},{id:"fixed-position",label:n.fixedPosition,items:[{id:"pin-left",label:n.pinLeft,disabled:g==="left",onSelect:()=>u.setColumnPinned(a,"left")},{id:"pin-right",label:n.pinRight,disabled:g==="right",onSelect:()=>u.setColumnPinned(a,"right")},{id:"pin-sticky",label:n.pinSticky,disabled:g==="sticky",onSelect:()=>u.setColumnPinned(a,"sticky")}]},{id:"unpin",label:n.unpin,disabled:g===null,onSelect:()=>u.setColumnPinned(a,null)}),w}async function xn(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 Ui(u.blob,u.fileName),{completed:!0}}catch(u){return u instanceof ft?{completed:!1}:{completed:!1,error:u instanceof Error?u.message:String(u)}}}var ro=null;function Rd(){return typeof document>"u"?null:(ro??=document.createElement("canvas"),ro.getContext("2d"))}function no(e){let t=getComputedStyle(e);return`${t.fontStyle} ${t.fontWeight} ${t.fontSize} ${t.fontFamily}`}function Md(e){for(let t=e.firstElementChild;t;t=t.nextElementSibling)if(t.tagName!=="MARK")return!0;return!1}function Id(e){let t=e.map(r=>[r.style.width,r.style.minWidth,r.style.maxWidth]);for(let r of e)r.style.width="max-content",r.style.minWidth="0",r.style.maxWidth="none";let u=0;for(let r of e){let n=Math.ceil(r.getBoundingClientRect().width);n>u&&(u=n)}return e.forEach((r,n)=>{[r.style.width,r.style.minWidth,r.style.maxWidth]=t[n]}),u}function Xu(e,t){let u=Rd();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}"]`),a=e.querySelectorAll(`.kanuni-datagrid-cell[data-column-id="${r}"]`);if(!n&&a.length===0)return null;let i=0;if(n){let l=n.querySelector(".kanuni-datagrid-header-label")??n;u.font=no(l),i=u.measureText(l.textContent??"").width+44}if(a.length>0){u.font=no(a[0]);let l=[];for(let o=0;o<a.length;o++){if(Md(a[o])){l.push(a[o]);continue}let d=a[o].textContent??"";if(d==="")continue;let h=u.measureText(d).width+20;h>i&&(i=h)}l.length>0&&(i=Math.max(i,Id(l)))}return i===0?null:Math.round(Math.min(640,Math.max(48,i)))}var Nt=60,ru=36,Rt=28,nu="application/x-kanuni-row",uu=new Map,bn=new Set,Fn=5e3,yt=0,Ld=["columnStateChanged","sortChanged"],Pd=["columnStateChanged"],Gd=["contentReady","viewportChanged","filterChanged","selectionChanged","focusChanged","summariesChanged","cellsRefreshed"],N=(e,t="div")=>{let u=document.createElement(t);return u.className=e,u},au="http://www.w3.org/2000/svg";function Od(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:a}=r.grouping,i=n==null?[]:typeof n=="string"?[n]:n;(i.length>1||a)&&(u("multi-level grouping and group summaries are"),r={...r,grouping:{...r.grouping,groupBy:i.slice(0,1),groupSummaries:!1}})}return r}var Vd={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:""},Ju=new Set;function zd(e){for(let t of Object.keys(e)){let u=Vd[t];u===void 0||u===""||Ju.has(t)||(Ju.add(t),console.warn(`[datagrid] \`${t}\` is a React-only option \u2014 ${u}.`))}}function Hd(){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 Wd(){let e=document.createElementNS(au,"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(au,"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 Kd(e){let t=document.createElementNS(au,"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(au,"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 a=document.createElementNS(au,"path");a.setAttribute("d",n),a.setAttribute("fill","none"),a.setAttribute("stroke","currentColor"),a.setAttribute("stroke-width","1.3"),a.setAttribute("stroke-linecap","round"),t.appendChild(a)};return r("M5 8h6"),e&&r("M8 5v6"),t}function $d(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 vn(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 ao(e,t){let{theme:u,palette:r,density:n,dark:a,striped:i=!0,rowNumbers:l=!1,locale:o="en",footer:d=!1,footerMenu:h=!0,footerPosition:c="bottom",notes:g,pinnedTopRows:f=[],pinnedBottomRows:w=[],resizable:F=!0,reorderable:x=!0,filterRow:k=!1,headerFilter:R=!1,filterIconMode:P="hover",filterPanel:H=!1,onOpenFilterBuilder:U,focusedRow:O=!1,focusedRowKey:j,onFocusedRowChanged:oe,onRowClick:Ge,onRowActivate:Mt,autoSizeStrategy:K="none",renderRow:$,announcements:Z=!0,filterPanelLabels:J,showRowCount:Te=!1,toolbarColumnChooser:tt=!1,cellMenu:ve=!0,rowMenu:Ee,headerMenu:he,rowDrag:le,alignedGrids:ae,printLayout:ut,renderCellContent:Zu,getCellClassName:er,onCellPointerDown:Dn,onCellPointerEnter:iu,onCellDoubleClick:Sn,renderDetail:Bn,renderEditForm:io,enterpriseEdition:$e=!1,stateStoring:kn,tooltip:rt=!0,renderOverlay:tr,filterDebounce:oo,toolbar:Tn=!1,highlightSearch:lo=!0,sortable:so=!0,toolbarItemsAfter:co,toolbarItemsBefore:ho,toolbarExcel:po=!1,toolbarPdf:mo=!1,searchDebounce:go=200,...fo}=t;zd(t),Te&&!Ju.has("showRowCount:deprecated")&&(Ju.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 L=eu(o),{emptyText:Co=L.noData,loadingText:yo=L.busy,loadingOverlay:ur=!0,...Ae}=fo,Nn=typeof ur=="number"?ur:300,rr=pn(L),Rn=An(L);if((!Ae.columns||Ae.columns.length===0)&&t.autoColumns!==!1){let s=Array.isArray(Ae.dataSource)?Ae.dataSource:[];Ae.columns=wi(s,typeof t.autoColumns=="object"?t.autoColumns:{})}Ae.rowHeight===void 0&&(Ae.rowHeight=Yu(u,n,28));let wo=$e?Ae:Od(Ae,!!t.debugMode),nt=$e?g:void 0;!$e&&g&&t.debugMode&&console.warn("[datagrid] cell notes are an Enterprise feature \u2014 use createEnterpriseGrid from @kanunilabs/datagrid-enterprise to show them.");let E=new Zi(wo);E.setEnterpriseEdition($e),j!=null&&E.focusRow(j);let Y=N(vn(t));Y.style.height="100%",Y.setAttribute("role","grid"),Y.setAttribute("data-grid-id",t.gridId),u&&Y.setAttribute("data-theme",u),Y.style.setProperty("--dg-row-height",`${E.getRowHeight()}px`);let _=N("kanuni-datagrid-scroller"),ce=N("kanuni-datagrid-canvas"),Fe=N("kanuni-datagrid-header");Fe.setAttribute("role","row");let pe=N("kanuni-datagrid-rows");pe.style.position="relative";let ee=N("kanuni-datagrid-viewport");pe.appendChild(ee);let It=N("kanuni-datagrid-pinned-rows kanuni-datagrid-pinned-rows--top"),Mn=N("kanuni-datagrid-pinned-rows kanuni-datagrid-pinned-rows--bottom"),Ue=N("kanuni-datagrid-sticky-groups");Ue.setAttribute("aria-hidden","true");let De=d,Oe=c==="top",de=N(`kanuni-datagrid-footer-row kanuni-datagrid-footer-row--${Oe?"top":"bottom"}`);if(de.setAttribute("role","row"),de.setAttribute("aria-label",L.columnTotalsAria),h){let s=m=>{let p=m.target?.closest(".kanuni-datagrid-footer-cell")?.getAttribute("data-column-id");p&&(m.preventDefault(),$o(p,{left:m.clientX,top:m.clientY}))};de.addEventListener("click",s),de.addEventListener("contextmenu",s)}let ou=N("kanuni-datagrid-bands-host");ou.style.display="contents";let at=N("kanuni-datagrid-filter-row");at.setAttribute("role","row"),ce.append(ou,Fe),k&&ce.append(at);let Lt=k?2:1;de.style.setProperty("--dg-pinned-gap",String(Oe?Lt:0)),It.style.setProperty("--dg-pinned-gap",String(Lt+(De&&Oe?1:0))),De&&Oe&&ce.append(de),f.length>0&&ce.append(It),E.hasStickyGroupHeaders()&&(Ue.style.setProperty("--dg-pinned-gap",String(Lt+(De&&Oe?1:0))),Ue.style.setProperty("--dg-sticky-below",`${f.length>0?f.length*E.getRowHeight()+1:0}px`),ce.append(Ue)),ce.append(pe),w.length>0&&ce.append(Mn),De&&!Oe&&ce.append(de),_.appendChild(ce);let it=N("kanuni-datagrid-toolbar"),wt=N("kanuni-datagrid-pager");wt.setAttribute("role","navigation"),wt.setAttribute("aria-label","Pagination");let ot=N("kanuni-datagrid-filter-panel"),lt=!!Ae.grouping?.panel,me=N("kanuni-datagrid-group-panel");Tn&&Y.appendChild(it),lt&&Y.appendChild(me),Y.appendChild(_),H&&Y.appendChild(ot);let In=Ae.pagination;In&&In.enabled!==!1&&Y.appendChild(wt);let Pt=N("kanuni-datagrid-loading-overlay"),Ln=N("kanuni-datagrid-loading-card"),Pn=N("kanuni-datagrid-loading-spinner","span");Pn.setAttribute("aria-hidden","true");let Gn=N("kanuni-datagrid-loading-label","span");Gn.textContent=yo,Ln.append(Pn,Gn),Pt.appendChild(Ln),Pt.style.display="none";let Gt=N("kanuni-datagrid-sr-only","div");Gt.setAttribute("role","status"),Gt.setAttribute("aria-live","polite"),Gt.setAttribute("aria-atomic","true");let lu=N("kanuni-datagrid-empty");lu.textContent=Co,lu.style.display="none",Y.append(Pt,lu),Z&&Y.appendChild(Gt),e.appendChild(Y);let Ot=Ae.selection,nr=E.getGroupDisplay()==="aligned",Vt=(Ot?.mode??"none")!=="none"&&(Ot?.checkboxColumn??!1),Eo=(Ot?.rowClick??(Vt?"toggle":"replace"))==="toggle",su=E.hasMasterDetail()&&!!Bn,ar=l?Nt:0,On=ar+(su?Rt:0),Ne=(l?Nt:0)+(su?Rt:0)+(Vt?ru:0);E.setLeadWidth(Ne);let zt=!!le?.enabled,Ht=le?.group??null,Vn=le?.allowReordering??!0,zn=le?.allowDropInsert??Ht!==null,Ve=null,du=null,cu=!1,st=null,qe=null;function Et(s){st=s;for(let m of ee.querySelectorAll(".kanuni-datagrid-row")){let y=m.getAttribute("data-row-key"),p=s!==null&&y===String(s.key);m.classList.toggle("kanuni-datagrid-row--drop-before",p&&s.side==="before"),m.classList.toggle("kanuni-datagrid-row--drop-after",p&&s.side==="after")}}let Hn=(s,m)=>{let y=m.getBoundingClientRect();return s.clientY<y.top+y.height/2?"before":"after"},Wn=s=>s.dataTransfer?.types.includes(nu)?Ve!==null?Vn:zn&&Ht!==null:!1;function Kn(s,m,y){let p=null;try{let C=s.dataTransfer?.getData(nu);p=C?JSON.parse(C):null}catch{p=null}if(p){if(p.gridId===E.gridId){if(!Vn)return;if(le?.onReorder){le.onReorder({dragKey:p.rowKey,targetKey:m,position:y,row:E.getRowByKey(p.rowKey)});return}E.moveRow(p.rowKey,m,y);return}!zn||Ht===null||p.group!==Ht||le?.onAdd?.({row:p.row,rowKey:p.rowKey,otherGridId:p.gridId,targetKey:m,position:y})}}let Ao=s=>{let m=je(s);if(!m||m.node.kind!=="data"||!s.dataTransfer)return;Ve=m.node.key,du=m.node.key,cu=!1;let y={gridId:E.gridId,group:Ht,rowKey:m.node.key,row:m.node.data};s.dataTransfer.setData(nu,JSON.stringify(y)),s.dataTransfer.setData("text/plain",String(m.node.key)),s.dataTransfer.effectAllowed="move",E.notifyRowDrag("enter",{rowKey:m.node.key})},xo=s=>{if(!Wn(s))return;s.preventDefault(),s.dataTransfer&&(s.dataTransfer.dropEffect="move");let m=je(s);if(!m||m.node.kind!=="data")return;if(Ve===m.node.key){qe=null,Et(null);return}let y=s.target.closest(".kanuni-datagrid-row"),p=Hn(s,y),C=st?.key!==m.node.key||st.side!==p;qe={key:m.node.key,side:p},Et({key:m.node.key,side:p}),C&&Ve!==null&&E.notifyRowDrag("move",{rowKey:Ve,overKey:m.node.key,position:p})},bo=s=>{if(!Wn(s)){Et(null);return}s.preventDefault();let m=je(s);if(cu=!0,m&&m.node.kind==="data"){let y=s.target.closest(".kanuni-datagrid-row"),p=Hn(s,y);qe={key:m.node.key,side:p},Kn(s,m.node.key,p)}else qe=null,Kn(s,null,"after");Ve=null,Et(null)},vo=()=>{du!==null&&E.notifyRowDragEnd({rowKey:du,dropped:cu,overKey:qe?.key??null,position:qe?.side??null}),cu=!1,du=null,Ve=null,qe=null,Et(null)},Fo=s=>{let m=s.relatedTarget;m&&pe.contains(m)||Ve!==null&&(qe=null,Et(null),E.notifyRowDrag("leave",{rowKey:Ve}))},Wt=ut===void 0||ut===!1?null:(()=>{let s=ut===!0?{}:ut;return{always:s.always??!1,maxRows:s.maxRows??Fn}})(),At=!1;function ir(s){At!==s&&(At=s,Y.classList.toggle("kanuni-datagrid-print",s),s?(yt++,document.documentElement.classList.add("kanuni-datagrid-printing")):(yt--,yt<=0&&(yt=0,document.documentElement.classList.remove("kanuni-datagrid-printing"))),pr())}let $n=null;if(Wt&&!Wt.always){let s=()=>{let y=E.getRows().length;if(y>Wt.maxRows){E.isDebugMode()&&console.warn(`[datagrid] print layout skipped: ${y} rows exceeds maxRows (${Wt.maxRows}). Printing the visible rows instead \u2014 use exportPdf() for the whole result.`);return}ir(!0)},m=()=>ir(!1);window.addEventListener("beforeprint",s),window.addEventListener("afterprint",m),$n=()=>{window.removeEventListener("beforeprint",s),window.removeEventListener("afterprint",m)}}let ze=0,Re=[],ge=0,or=0;function lr(){let s=E.getColumnLayout(),m=E.getVirtualWindow().columns,y=[],p=(A,b,D,B)=>{let v=A.def;y.push({def:v,id:A.state.id,width:A.state.width,pinned:b,inset:D,className:$d(v.align,v.dataType)+(b?" kanuni-datagrid-cell--pinned":"")+(v.autoHeight?" kanuni-datagrid-cell--wrap":""),visualIndex:B})};s.left.forEach((A,b)=>p(A,"left",s.leftOffsets[b]+Ne,b));for(let A=m.start;A<m.end&&A<s.center.length;A++)p(s.center[A],null,0,s.left.length+A);s.right.forEach((A,b)=>p(A,"right",s.rightOffsets[b],s.left.length+s.center.length+b)),Re=y,ge=m.offsetX;let C=(s.centerOffsets[Math.min(m.end,s.center.length)]??0)-(s.centerOffsets[Math.min(m.start,s.center.length)]??0);or=Math.max(0,s.centerWidth-m.offsetX-C),ce.style.minWidth=`${s.totalWidth+Ne}px`}let hu=26;function Do(){let s=E.getColumnLayout(),m=E.getVirtualWindow().columns,y=[...s.left,...s.center.slice(m.start,Math.min(m.end,s.center.length)),...s.right],p=Ci(y);if(ou.textContent="",Fe.style.top=`${p*hu}px`,Y.style.setProperty("--dg-band-offset",`${p*hu}px`),p===0)return;yi(y,p).forEach((A,b)=>{let D=N("kanuni-datagrid-band-row");if(D.style.top=`${b*hu}px`,D.style.height=`${hu}px`,Ne>0){let B=N("kanuni-datagrid-band-cell kanuni-datagrid-band-cell--spacer kanuni-datagrid-band-cell--pinned");B.style.width=`${Ne}px`,B.style.flex="none",B.style.insetInlineStart="0px",D.appendChild(B)}if(ge>0){let B=N("kanuni-datagrid-spacer");B.style.width=`${ge}px`,B.style.flex="none",D.appendChild(B)}for(let B of A){let v=N(`kanuni-datagrid-band-cell${B.spacer?" kanuni-datagrid-band-cell--spacer":""}`);if(v.style.width=`${B.width}px`,v.style.flex="none",!B.spacer){if(B.columnIds.length>0){let I=Ke(E.getColumnModel().getDef(B.columnIds[0])).slice(0,b+1);if(I.length===b+1&&E.isBandCollapsible(I)){let G=E.isBandCollapsed(I),S=document.createElement("button");S.type="button",S.className="kanuni-datagrid-band-toggle",S.setAttribute("aria-expanded",String(!G));let M=G?L.expandDetails??"Expand":L.collapseDetails??"Collapse";S.setAttribute("aria-label",M),S.title=M,S.appendChild(Kd(G)),S.addEventListener("click",V=>{V.stopPropagation(),E.toggleBand(I)}),v.appendChild(S)}}let T=N("kanuni-datagrid-band-label","span");T.textContent=B.label,v.appendChild(T)}D.appendChild(v)}ou.appendChild(D)})}let Kt=null,pu=null;function mu(s,m){pu&&pu!==s&&pu.classList.remove("kanuni-datagrid-header-cell--drop-before","kanuni-datagrid-header-cell--drop-after"),pu=s,s&&(s.classList.toggle("kanuni-datagrid-header-cell--drop-before",m==="before"),s.classList.toggle("kanuni-datagrid-header-cell--drop-after",m==="after"))}function Un(){if(!Kt)return;let s=E.getSelectedCount(),m=E.getVisibleCount(),y=m>0&&s>=m;Kt.checked=y,Kt.indeterminate=!y&&s>0}function sr(){Do();let s=E.getSort(),m=new Map(s.map((p,C)=>[p.columnId,{direction:p.direction,order:C}]));if(Fe.textContent="",Kt=null,l){let p=N("kanuni-datagrid-header-cell kanuni-datagrid-header-cell--pinned kanuni-datagrid-rownum-cell");p.setAttribute("role","columnheader"),p.style.width=`${Nt}px`,p.style.flex="none",p.style.insetInlineStart="0px",Fe.appendChild(p)}if(su){let p=N("kanuni-datagrid-header-cell kanuni-datagrid-header-cell--pinned kanuni-datagrid-detail-toggle-cell");p.setAttribute("role","columnheader"),p.setAttribute("aria-label",L.detailsAria),p.style.width=`${Rt}px`,p.style.flex="none",p.style.insetInlineStart=`${ar}px`,Fe.appendChild(p)}if(Vt){let p=N("kanuni-datagrid-header-cell kanuni-datagrid-header-cell--pinned kanuni-datagrid-select-cell");p.setAttribute("role","columnheader"),p.style.width=`${ru}px`,p.style.flex="none",p.style.insetInlineStart=`${On}px`;let C=document.createElement("input");C.type="checkbox",C.setAttribute("aria-label",L.selectAllRows),C.addEventListener("change",()=>{E.getSelectedCount()>0?E.clearSelection():E.selectAll()}),p.appendChild(C),Fe.appendChild(p),Kt=C,Un()}let y=!1;for(let p of Re){if(!p.pinned&&!y){if(ge>0){let v=document.createElement("div");v.style.flex=`0 0 ${ge}px`,Fe.appendChild(v)}y=!0}let C=so&&p.def.sortable!==!1,A=m.get(p.id),b=N(`kanuni-datagrid-header-cell${C?" kanuni-datagrid-header-cell--sortable":""}${p.pinned?" kanuni-datagrid-header-cell--pinned":""}`);b.setAttribute("role","columnheader"),b.setAttribute("data-column-id",p.id),b.setAttribute("aria-sort",A?A.direction==="asc"?"ascending":"descending":"none");let D=p.def.headerTooltip;D&&(b.title=D),b.style.width=`${p.width}px`,b.style.flex="none",p.pinned==="left"&&(b.style.insetInlineStart=`${p.inset}px`),p.pinned==="right"&&(b.style.insetInlineEnd=`${p.inset}px`);let B=N("kanuni-datagrid-header-label","span");if(p.def.renderHeader){let v=p.def.renderHeader({column:p.def});typeof v=="string"?B.textContent=v:B.appendChild(v)}else B.textContent=p.def.headerName??p.id;if(b.appendChild(B),A){let v=N("kanuni-datagrid-sort-indicator","span");if(v.setAttribute("aria-hidden","true"),v.textContent=A.direction==="asc"?"\u25B2":"\u25BC",b.appendChild(v),s.length>1){let T=N("kanuni-datagrid-sort-order","span");T.setAttribute("aria-hidden","true"),T.textContent=String(A.order+1),b.appendChild(T)}}if(C){let v=p.id;b.addEventListener("click",T=>{E.toggleSort(v,T.shiftKey)})}if(he!==!1){let v=p.id;b.addEventListener("contextmenu",T=>{T.preventDefault(),Ko(v,{left:T.clientX,top:T.clientY})})}if(R&&p.def.filterable!==!1){let v=document.createElement("button");v.type="button";let T=E.getColumnFilter(p.id)!==null;v.className=`kanuni-datagrid-filter-button${T?" kanuni-datagrid-filter-button--active":""}${P==="always"?" kanuni-datagrid-filter-button--pinned":""}`,v.setAttribute("aria-haspopup","dialog"),v.setAttribute("aria-label",`${p.def.headerName??p.id} filter`),v.appendChild(Wd()),v.addEventListener("click",I=>{I.stopPropagation(),Lo(p.id,v)}),b.appendChild(v)}if(x&&p.def.reorderable!==!1&&(b.draggable=!0,b.addEventListener("dragstart",v=>{v.dataTransfer?.setData("text/x-kanuni-column",p.id),v.dataTransfer&&(v.dataTransfer.effectAllowed="move")}),b.addEventListener("dragover",v=>{if(!v.dataTransfer?.types.includes("text/x-kanuni-column"))return;v.preventDefault();let T=b.getBoundingClientRect(),I=v.clientX<T.left+T.width/2;mu(b,I?"before":"after")}),b.addEventListener("dragleave",v=>{let T=v.relatedTarget;(!T||!b.contains(T))&&mu(null,"before")}),b.addEventListener("drop",v=>{mu(null,"before");let T=v.dataTransfer?.getData("text/x-kanuni-column");if(!T||T===p.id)return;v.preventDefault();let I=b.getBoundingClientRect();if(v.clientX<I.left+I.width/2)E.moveColumn(T,p.id);else{let S=Re.findIndex(M=>M.id===p.id);E.moveColumn(T,Re[S+1]?.id)}}),b.addEventListener("dragend",()=>mu(null,"before"))),F&&p.def.resizable!==!1){let v=N("kanuni-datagrid-resize-handle","span");v.setAttribute("data-resize-handle",p.id),v.setAttribute("role","presentation"),v.addEventListener("click",T=>T.stopPropagation()),v.addEventListener("dblclick",T=>{T.stopPropagation(),qo(p.id)}),v.addEventListener("pointerdown",T=>{T.preventDefault(),T.stopPropagation();let I=T.clientX,G=p.width,S=getComputedStyle(b).direction==="rtl"?-1:1;b.draggable=!1;let M=G,V=!1,W=se=>{V=!0,M=G+(se.clientX-I)*S,E.setColumnWidth(p.id,M,!1)},Q=()=>{window.removeEventListener("pointermove",W),window.removeEventListener("pointerup",Q),window.removeEventListener("pointercancel",Q),V&&E.setColumnWidth(p.id,M,!0),b.draggable=x&&p.def.reorderable!==!1};window.addEventListener("pointermove",W),window.addEventListener("pointerup",Q),window.addEventListener("pointercancel",Q)}),b.appendChild(v)}Fe.appendChild(b)}}let qn=null,gu=null;function So(s){if(s===qn)return;qn=s;let m=[];for(let y=0;y<s.length;y++){let p=s[y];p&&p.kind!=="data"&&m.push(y)}gu=m.length>0?m:null}function Bo(s){if(!gu)return s+1;let m=0,y=gu.length;for(;m<y;){let p=m+y>>1;gu[p]<=s?m=p+1:y=p}return s+1-m}let dt=[];function fu(s="data"){let m=N("kanuni-datagrid-row");if(m.setAttribute("role","row"),s==="loading"){m.classList.add("kanuni-datagrid-row--loading"),m.setAttribute("aria-busy","true");let v=N("kanuni-datagrid-cell kanuni-datagrid-loading-cell");return v.setAttribute("role","gridcell"),v.setAttribute("aria-colindex","1"),v.appendChild(N("kanuni-datagrid-loading-bar","span")),m.appendChild(v),{kind:s,root:m,cells:[],rowNumberCell:null,selectInput:null,detailToggle:null,leadingSpacer:null,trailingSpacer:null,epoch:ze}}if(s==="data"&&nr&&m.addEventListener("click",()=>{if(!m.classList.contains("kanuni-datagrid-group-row--aligned"))return;let v=m.getAttribute("data-group-key");v!==null&&E.toggleGroup(v)}),s==="panel"){let v=document.createElement("div");return v.setAttribute("role","gridcell"),v.setAttribute("aria-colindex","1"),m.appendChild(v),{kind:s,root:m,cells:[],rowNumberCell:null,selectInput:null,detailToggle:null,leadingSpacer:null,trailingSpacer:null,panelCell:v,epoch:ze}}if(s==="group"){let v=N("kanuni-datagrid-group-cell");v.setAttribute("role","gridcell"),v.setAttribute("aria-colindex","1");let T=N("kanuni-datagrid-group-twisty","span");T.setAttribute("aria-hidden","true");let I=N("kanuni-datagrid-group-caption","span"),G=N("kanuni-datagrid-group-label","span"),S=N("kanuni-datagrid-group-count","span"),M=N("kanuni-datagrid-group-aggregates","span"),V=null;return Vt&&Ot?.mode==="multiple"&&(V=document.createElement("input"),V.type="checkbox",V.className="kanuni-datagrid-group-checkbox",V.tabIndex=-1,V.addEventListener("change",()=>{let W=m.getAttribute("data-group-key");W!==null&&E.toggleGroupSelection(W)}),V.addEventListener("click",W=>W.stopPropagation()),V.addEventListener("mousedown",W=>W.stopPropagation()),v.appendChild(V)),v.append(T,I,G,S,M),m.appendChild(v),m.addEventListener("click",()=>{let W=m.getAttribute("data-group-key");W!==null&&E.toggleGroup(W)}),{kind:s,root:m,cells:[],rowNumberCell:null,selectInput:null,detailToggle:null,leadingSpacer:null,trailingSpacer:null,group:{cell:v,check:V,twisty:T,caption:I,label:G,count:S,aggregates:M},epoch:ze}}if(zt){let v=N("kanuni-datagrid-row-grip","span");v.setAttribute("aria-hidden","true"),v.title=L.dragToReorder??"Drag to reorder",v.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>',v.addEventListener("mouseenter",()=>{m.draggable=!0}),v.addEventListener("mouseleave",()=>{m.draggable=!1}),m.appendChild(v)}if($)return{kind:s,root:m,cells:[],rowNumberCell:null,selectInput:null,detailToggle:null,leadingSpacer:null,trailingSpacer:null,epoch:ze};let y=null;l&&(y=N("kanuni-datagrid-cell kanuni-datagrid-cell--number kanuni-datagrid-cell--pinned kanuni-datagrid-rownum-cell"),y.setAttribute("role","gridcell"),y.style.width=`${Nt}px`,y.style.flex="none",y.style.insetInlineStart="0px",m.appendChild(y));let p=null;if(su){let v=N("kanuni-datagrid-cell kanuni-datagrid-cell--center kanuni-datagrid-cell--pinned kanuni-datagrid-detail-toggle-cell");v.setAttribute("role","gridcell"),v.style.width=`${Rt}px`,v.style.flex="none",v.style.insetInlineStart=`${ar}px`;let T=document.createElement("button");T.type="button",T.className="kanuni-datagrid-detail-toggle",T.tabIndex=-1,T.addEventListener("click",I=>{I.stopPropagation();let G=m.getAttribute("data-row-key");if(G===null)return;let S=E.getRows().find(M=>M!==void 0&&String(M.key)===G);S&&S.kind==="data"&&E.toggleDetail(S.key)}),T.addEventListener("mousedown",I=>I.stopPropagation()),v.appendChild(T),m.appendChild(v),p=T}let C=null;if(Vt){let v=N("kanuni-datagrid-cell kanuni-datagrid-cell--center kanuni-datagrid-cell--pinned kanuni-datagrid-select-cell");v.setAttribute("role","gridcell"),v.style.width=`${ru}px`,v.style.flex="none",v.style.insetInlineStart=`${On}px`;let T=document.createElement("input");T.type="checkbox",T.tabIndex=-1;let I=()=>{let G=m.getAttribute("data-row-key");if(G===null)return;let S=E.getRows().find(M=>M!==void 0&&String(M.key)===G);S?.kind==="group"?E.toggleGroupSelection(String(S.key)):S&&E.toggleRow(S.key)};v.addEventListener("mousedown",G=>G.stopPropagation()),v.addEventListener("click",G=>{G.target.tagName!=="INPUT"&&(G.stopPropagation(),I())}),T.addEventListener("change",I),T.addEventListener("click",G=>G.stopPropagation()),T.addEventListener("mousedown",G=>G.stopPropagation()),v.appendChild(T),m.appendChild(v),C=T}let A=[],b=null,D=!1;for(let v of Re){!v.pinned&&!D&&(b=document.createElement("div"),b.style.flex=`0 0 ${ge}px`,m.appendChild(b),D=!0);let T=N(v.className);T.setAttribute("role","gridcell"),T.setAttribute("data-column-id",v.id),T.style.width=`${v.width}px`,T.style.flex="none",v.pinned==="left"&&(T.style.insetInlineStart=`${v.inset}px`),v.pinned==="right"&&(T.style.insetInlineEnd=`${v.inset}px`),m.appendChild(T),A.push({el:T,slot:v})}let B=document.createElement("div");return B.style.flex=`0 0 ${or}px`,m.appendChild(B),{kind:s,root:m,cells:A,rowNumberCell:y,selectInput:C,detailToggle:p,leadingSpacer:b,trailingSpacer:B,epoch:ze}}let xt="";function Cu(s,m){if(xt===""||m===""){s.textContent=m;return}let y=ne(m),p=y.indexOf(xt);if(p===-1){s.textContent=m;return}let C=[],A=0;for(;p!==-1;){p>A&&C.push(document.createTextNode(m.slice(A,p)));let b=document.createElement("mark");b.className="kanuni-datagrid-highlight",b.textContent=m.slice(p,p+xt.length),C.push(b),A=p+xt.length,p=y.indexOf(xt,A)}A<m.length&&C.push(document.createTextNode(m.slice(A))),s.replaceChildren(...C)}function ko(s,m,y){let p=E.getColumnModel().getCellValue(y.data,m.id),C=m.def;if(C.renderCell){let b=C.renderCell({value:p,row:y.data,node:y,column:C});typeof b=="string"?s.textContent=b:s.replaceChildren(b);return}let A=Ct(C,p);if(A!==null){Cu(s,A);return}if(C.valueFormatter){let b=C.valueFormatter(p,y.data);Cu(s,typeof b=="string"?b:String(b??""));return}if(C.dateFormat&&C.dataType==="date"){Cu(s,ju(p,C.dateFormat));return}Cu(s,p==null?"":String(p))}function dr(s,m,y){let p=s.root;if(p.setAttribute("aria-rowindex",String(y+2)),p.setAttribute("data-row-key",String(m.key)),m.kind==="detail"||m.kind==="editform"){let S=s.panelCell,M=m.kind==="detail";p.className=`kanuni-datagrid-row ${M?"kanuni-datagrid-detail-row":"kanuni-datagrid-editform-row"}`,p.style.height=`${m.height}px`,M?(p.setAttribute("data-detail-for",String(m.parentKey)),p.removeAttribute("data-editform-for")):(p.setAttribute("data-editform-for",m.parentKey===null?"":String(m.parentKey)),p.removeAttribute("data-detail-for")),S.className=M?"kanuni-datagrid-detail-cell":"kanuni-datagrid-editform-cell";let V=`${m.kind}:${String(m.key)}`;if(p.getAttribute("data-panel-for")!==V){p.setAttribute("data-panel-for",V);let W=M?Bn?.(m.data):m.parentKey===null?void 0:io?.(m.parentKey,m.data);S.textContent="",typeof W=="string"?S.textContent=W:W&&S.appendChild(W)}return}if(p.removeAttribute("data-panel-for"),p.removeAttribute("data-detail-for"),p.removeAttribute("data-editform-for"),m.kind==="filler"){p.style.display="none";return}p.style.display="",p.style.height=_n?"":`${E.getRowHeight()}px`;let C=m.kind==="group"&&!s.group?m:null;if(!s.group){p.classList.remove("kanuni-datagrid-group-row","kanuni-datagrid-group-row--aligned");for(let S of Array.from(p.classList))S.startsWith("kanuni-datagrid-group-row--level-")&&p.classList.remove(S);C?(p.classList.add("kanuni-datagrid-group-row","kanuni-datagrid-group-row--aligned",`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))):(p.removeAttribute("aria-expanded"),p.removeAttribute("aria-level"),p.removeAttribute("data-group-key"),p.removeAttribute("data-group-level"))}p.classList.toggle("kanuni-datagrid-row--odd",i&&y%2===1),p.classList.toggle("kanuni-datagrid-row--selected",E.isRowSelected(m.key));let A=E.getFocus();if(p.classList.toggle("kanuni-datagrid-row--focused",O&&A!==null&&A.rowKey===m.key),s.leadingSpacer&&(s.leadingSpacer.style.flex=`0 0 ${ge}px`),s.trailingSpacer&&(s.trailingSpacer.style.flex=`0 0 ${or}px`),zt){let S=st!==null&&String(st.key)===String(m.key);p.classList.toggle("kanuni-datagrid-row--drop-before",S&&st.side==="before"),p.classList.toggle("kanuni-datagrid-row--drop-after",S&&st.side==="after")}let b=m.kind==="treePath",D=b||C!==null;if(p.classList.toggle("kanuni-datagrid-row--tree-path",b),s.rowNumberCell&&(s.rowNumberCell.textContent=D?"":String(Bo(y))),s.detailToggle&&(s.detailToggle.hidden=D),s.selectInput){let S=C!==null&&Ot?.mode==="multiple";if(s.selectInput.hidden=b||C!==null&&!S,s.selectInput.classList.toggle("kanuni-datagrid-group-checkbox",S),S){let M=E.getGroupSelectionState(String(C.key));s.selectInput.checked=M==="all",s.selectInput.indeterminate=M==="some",s.selectInput.setAttribute("aria-label",L.selectGroupAria.replace("{count}",String(C.count)).replace("{group}",C.display??C.label))}else s.selectInput.indeterminate=!1,s.selectInput.checked=E.isRowSelected(m.key),s.selectInput.setAttribute("aria-label",L.selectRowAria.replace("{row}",String(m.key)))}if(s.detailToggle&&m.kind==="data"){let S=E.isDetailExpanded(m.key);s.detailToggle.textContent=S?"\u25BE":"\u25B8",s.detailToggle.setAttribute("aria-expanded",String(S)),s.detailToggle.setAttribute("aria-label",S?L.collapseDetails:L.expandDetails)}if(m.kind==="group"&&s.group){let S=m;p.className=`kanuni-datagrid-row kanuni-datagrid-group-row kanuni-datagrid-group-row--level-${S.level}`,p.setAttribute("aria-expanded",String(S.expanded)),p.setAttribute("aria-level",String(S.level+1)),p.setAttribute("data-group-key",String(S.key)),p.setAttribute("data-group-level",String(S.level)),s.group.cell.style.paddingLeft=S.level>0?`${8+S.level*18}px`:"",s.group.twisty.textContent=S.expanded?"\u25BE":"\u25B8";let M=E.getColumnModel().getDef(S.columnId),V=M?.headerName??S.columnId;if(s.group.caption.textContent=`${V}:`,s.group.label.textContent=Ct(M,S.value)??S.display??(S.label===""?L.filterBlank:S.label),s.group.count.textContent=`(${S.count})`,s.group.check){let Q=E.getGroupSelectionState(String(S.key));s.group.check.checked=Q==="all",s.group.check.indeterminate=Q==="some",s.group.check.setAttribute("aria-label",L.selectGroupAria.replace("{count}",String(S.count)).replace("{group}",s.group.label.textContent??""))}s.group.aggregates.textContent="";let W=S.aggregates??null;if(W)for(let Q of E.getSummaryDefs()){let se=N("kanuni-datagrid-group-aggregate","span"),ue=N("kanuni-datagrid-group-aggregate-label","span"),ye=E.getColumnModel().getDef(Q.columnId);ue.textContent=`${mn(Q,rr)} ${ye?.headerName??Q.columnId}:`,se.append(ue,` ${tu(Q,W[et(Q.columnId,Q.type)],ye)}`),s.group.aggregates.appendChild(se)}return}if(m.kind!=="data"&&!b&&!C){for(let{el:S}of s.cells)S.textContent="";return}if($&&D){let S=zt?1:0;for(;p.childNodes.length>S;)p.removeChild(p.lastChild);let M=N("kanuni-datagrid-cell");C?M.appendChild(jn(C)):(M.appendChild(Yn(m)),cr(M,m,m.tree)),p.appendChild(M);return}if($){let S=zt?1:0,M=$({row:m.data,node:m,rowIndex:y,selected:E.isRowSelected(m.key),focused:O&&A!==null&&A.rowKey===m.key});if(M instanceof Node&&p.childNodes.length===S+1&&p.childNodes[S]===M)return;for(;p.childNodes.length>S;)p.removeChild(p.lastChild);typeof M=="string"?p.appendChild(document.createTextNode(M)):M&&p.appendChild(M);return}let B=A!==null&&A.rowKey===m.key?A.columnId:null,v=C?void 0:m.tree,T=v||C?(()=>{let S=E.getColumnLayout();return(S.left[0]??S.center[0]??S.right[0])?.state.id??null})():null,I=v?T:null,G=E.hasCellSpans();for(let{el:S,slot:M}of s.cells){let V=(Zu||er)&&!D?{node:m,columnId:M.id,rowIndex:y,columnIndex:M.visualIndex,value:E.getColumnModel().getCellValue(m.data,M.id)}:null,W=V&&Zu?Zu(V):void 0,Q=!1;if(W!==void 0?W instanceof Node&&S.childNodes.length===1&&S.firstChild===W?Q=!0:typeof W=="string"?S.textContent=W:S.replaceChildren(W):C?M.id===T?S.replaceChildren(jn(C)):S.replaceChildren(...Ro(C,M.id)):b?M.id===I?(S.replaceChildren(Yn(m)),cr(S,m,v)):S.replaceChildren():(ko(S,M,m),v&&M.id===I&&cr(S,m,v)),G&&!Q){let te=No(y,M.id);S.classList.toggle("kanuni-datagrid-cell--span",te?.kind==="draw"),S.classList.toggle("kanuni-datagrid-cell--span-covered",te?.kind==="covered");let Su=W!==void 0;if(te?.kind==="covered"&&B!==M.id&&!Su)S.replaceChildren();else if(te?.kind==="draw"){let mt=N("kanuni-datagrid-span-box");mt.style.height=`${te.height}px`,mt.append(...Array.from(S.childNodes)),S.appendChild(mt)}}else G||S.classList.remove("kanuni-datagrid-cell--span","kanuni-datagrid-cell--span-covered");if(nt){let te=!D&&!!hr(m.key,M.id,m.data);S.classList.toggle("kanuni-datagrid-cell--noted",te)}S.id=`${t.gridId}-cell-${String(m.key)}-${M.id}`,S.classList.toggle("kanuni-datagrid-cell--focused",B===M.id);let se=S.getAttribute("data-slot-classes");if(se)for(let te of se.split(" "))S.classList.remove(te);let ue=V&&er?er(V):void 0,ye=M.def.cellClassName,Qe=[D?void 0:typeof ye=="function"?ye({value:E.getColumnModel().getCellValue(m.data,M.id),row:m.data,node:m,column:M.def}):ye,ue].filter(Boolean).join(" ")||void 0;if(Qe){for(let te of Qe.split(" "))S.classList.add(te);S.setAttribute("data-slot-classes",Qe)}else se&&S.removeAttribute("data-slot-classes")}}let _n=t.columns.some(s=>s.autoHeight);function To(){if(!_n)return;let s=E.getVirtualWindow(),m=E.getRows(),y=new Map(E.getMeasuredRowHeights()),p=!1;for(let C=s.rows.start;C<s.rows.end&&C<m.length;C++){let A=m[C];if(!A||A.kind!=="data")continue;let b=C-s.rows.start,D=dt[b]?.root;if(!D)continue;let B=D.getBoundingClientRect().height;B>0&&y.get(A.key)!==B&&(y.set(A.key,B),p=!0)}p&&E.setMeasuredRowHeights(y)}let yu={start:0,end:0};function No(s,m){let y=E.getCellSpans(m);if(y.length===0)return null;let p=Ri(y,s,yu.start,yu.end);if(!p)return null;if(p.role==="covered")return{kind:"covered"};let C=E.getRowOffset(p.drawStart);return{kind:"draw",height:E.getRowOffset(p.drawEnd)+E.getRowHeightAt(p.drawEnd)-C}}function jn(s){let m=N("kanuni-datagrid-group-inline","span");m.style.paddingInlineStart=`${s.level*16}px`;let y=N("kanuni-datagrid-group-twisty","span");y.setAttribute("aria-hidden","true"),y.textContent=s.expanded?"\u25BE":"\u25B8";let p=E.getColumnModel().getDef(s.columnId),C=N("kanuni-datagrid-group-caption","span");C.textContent=`${p?.headerName??s.columnId}:`;let A=N("kanuni-datagrid-group-label","span");A.textContent=Ct(p,s.value)??s.display??(s.label===""?L.filterBlank:s.label);let b=N("kanuni-datagrid-group-count","span");return b.textContent=`(${s.count})`,m.append(y,C,A,b),m}function Ro(s,m){if(!s.aggregates)return[];let y=E.getSummaryDefs().find(C=>C.columnId===m);if(!y)return[];let p=N("kanuni-datagrid-group-aggregate-value","span");return p.textContent=tu(y,s.aggregates[et(y.columnId,y.type)],E.getColumnModel().getDef(m)),[p]}function Yn(s){let m=N("kanuni-datagrid-tree-path-label","span");return m.textContent=s.label,m}function cr(s,m,y){let p=N(`kanuni-datagrid-tree-cell${y.ancestorOnly?" kanuni-datagrid-tree-cell--ancestor":""}`,"span");if(p.style.paddingInlineStart=`${y.depth*16}px`,y.hasChildren){let C=document.createElement("button");C.type="button",C.className="kanuni-datagrid-tree-toggle",C.setAttribute("data-tree-toggle",""),C.setAttribute("aria-expanded",String(y.expanded)),C.setAttribute("aria-label",y.expanded?L.collapseDetails:L.expandDetails),C.textContent=y.expanded?"\u25BE":"\u25B8",C.addEventListener("mousedown",A=>A.stopPropagation()),C.addEventListener("click",A=>{A.stopPropagation(),E.toggleTreeRow(m.key)}),p.appendChild(C)}else p.appendChild(N("kanuni-datagrid-tree-toggle kanuni-datagrid-tree-toggle--leaf","span"));p.append(...Array.from(s.childNodes)),s.appendChild(p)}let hr=(s,m,y)=>nt?nt.get({rowKey:s,columnId:m,row:y})??null:null,Qn=null,_e=tr?N("kanuni-datagrid-overlay"):null;_e&&(_e.style.position="absolute",_e.style.inset="0",_e.style.pointerEvents="none",pe.appendChild(_e));function Mo(){if(!tr||!_e)return;let s=tr();s!==Qn&&(Qn=s,s?_e.replaceChildren(s):_e.replaceChildren())}function pr(){Mo();let s=E.getVirtualWindow(),m=E.getRows(),y=At?{...s,rows:{...s.rows,start:0,end:m.length,offsetY:0,totalHeight:0}}:s;So(m),pe.style.height=`${y.rows.totalHeight}px`,ee.style.transform=`translateY(${y.rows.offsetY}px)`,xt=lo?Xt(E.getSearchText()):"";let p=Math.max(0,Math.min(y.rows.end,m.length)-y.rows.start);for(yu.start=y.rows.start,yu.end=Math.min(y.rows.end,m.length)-1;dt.length>p;)dt.pop().root.remove();for(let C=0;C<p;C++){let A=y.rows.start+C,b=m[A];if(!b){let v=dt[C];if(!v||v.kind!=="loading"){let T=fu("loading");v?ee.replaceChild(T.root,v.root):ee.appendChild(T.root),dt[C]=T,v=T}v.root.setAttribute("aria-rowindex",String(A+2)),v.root.style.height=`${E.getRowHeight()}px`;continue}let D=b.kind==="data"?"data":b.kind==="group"?nr?"data":"group":b.kind==="detail"||b.kind==="editform"?"panel":"stub",B=dt[C];if(!B||B.epoch!==ze||B.kind!==D){let v=fu(D);B?ee.replaceChild(v.root,B.root):ee.appendChild(v.root),dt[C]=v,B=v}dr(B,b,A)}To(),Xn()}let wu=[];function Xn(){if(!E.hasStickyGroupHeaders())return;let s=At?[]:E.getStickyGroupRows();for(Ue.style.width=`${E.getColumnLayout().totalWidth}px`;wu.length>s.length;)wu.pop().wrap.remove();let m=nr?"data":"group";s.forEach((y,p)=>{let C=wu[p];if(!C||C.rs.epoch!==ze||C.rs.kind!==m){let A=fu(m),b=C?.wrap??N("kanuni-datagrid-sticky-group");b.textContent="",b.appendChild(A.root),C||Ue.appendChild(b),C={wrap:b,rs:A},wu[p]=C}dr(C.rs,y.node,y.index),C.rs.root.removeAttribute("aria-rowindex"),C.wrap.style.top=`${y.offset}px`,C.wrap.style.height=`${y.height}px`,C.wrap.style.zIndex=String(s.length-p),C.wrap.classList.toggle("kanuni-datagrid-sticky-group--last",p===s.length-1),C.wrap.querySelectorAll("button, input, select, textarea, a[href], [tabindex]").forEach(A=>A.setAttribute("tabindex","-1"))})}Ue.addEventListener("click",s=>{let y=s.target.closest("[data-group-key]")?.getAttribute("data-group-key");y&&E.scrollToRow(y)});let Jn=Mi(oo??(E.isRemote()?200:0));function mr(){if(!k)return;if(at.textContent="",Ne>0){let p=N("kanuni-datagrid-filter-cell kanuni-datagrid-filter-cell--pinned");p.style.width=`${Ne}px`,p.style.flex="none",p.style.insetInlineStart="0px",at.appendChild(p)}let s=!1,m=null,y=()=>{if(!m){m=document.createElement("datalist"),m.id=`${t.gridId}-filter-periods`;for(let p of eo(Rn)){let C=document.createElement("option");C.value=p,m.appendChild(C)}at.appendChild(m)}return m.id};for(let p of Re){if(!p.pinned&&!s){if(ge>0){let A=N("kanuni-datagrid-spacer");A.style.width=`${ge}px`,A.style.flex="none",at.appendChild(A)}s=!0}let C=N(`kanuni-datagrid-filter-cell${p.pinned?" kanuni-datagrid-filter-cell--pinned":""}`);if(C.style.width=`${p.width}px`,C.style.flex="none",p.pinned==="left"&&(C.style.insetInlineStart=`${p.inset}px`),p.pinned==="right"&&(C.style.insetInlineEnd=`${p.inset}px`),p.def.filterable!==!1){let A=document.createElement("input");A.className="kanuni-datagrid-filter-input",A.setAttribute("aria-label",`${p.def.headerName??p.id} filter`),p.def.dataType==="date"&&A.setAttribute("list",y());let b=()=>E.setColumnFilter(p.id,to(p.id,A.value,p.def.dataType,Rn),Ai);A.addEventListener("input",()=>Jn.schedule(p.id,b));let D=()=>{Jn.cancel(p.id),b()};A.addEventListener("keydown",B=>{B.key==="Enter"&&D()}),A.addEventListener("blur",D),C.appendChild(A)}at.appendChild(C)}}let gr=()=>{};function Io(){if(!Tn)return;let s=document.createElement("input");s.type="search",s.className="kanuni-datagrid-toolbar-search",s.placeholder=L.toolbarSearch,s.setAttribute("aria-label",L.toolbarSearch);let m=null;s.addEventListener("input",()=>{m&&clearTimeout(m),m=setTimeout(()=>E.setSearchText(s.value),go)});let y=N("kanuni-datagrid-toolbar-spacer"),p=null;if(tt){let v=document.createElement("button");v.type="button",v.textContent=L.toolbarColumns??"Columns",v.setAttribute("aria-haspopup","dialog"),v.addEventListener("click",()=>{let T=v.getBoundingClientRect();aa({left:T.left,top:T.bottom+2})}),p=v}let C=$e&&po,A=$e&&mo,b=document.createElement("button");b.type="button",b.className="kanuni-datagrid-toolbar-icon-button",b.setAttribute("aria-haspopup","menu"),b.setAttribute("aria-label",L.exportMenu),b.setAttribute("data-testid","dg-export-menu"),b.title=L.exportMenu,b.appendChild(Hd());let D=null;b.addEventListener("click",()=>{if(D)return;let v=b.getBoundingClientRect();ct({left:v.right-190,top:v.bottom+2},T=>{T.setAttribute("role","menu"),T.setAttribute("aria-label",L.exportMenu);let I=[{kind:"csv",label:L.exportCsv,testId:"dg-export-csv",on:!0},{kind:"excel",label:L.exportExcel,testId:"dg-export-excel",on:C},{kind:"excel-selected",label:L.exportExcelSelected,testId:"dg-export-excel-selected",on:C},{kind:"pdf",label:L.exportPdf,testId:"dg-export-pdf",on:A}];for(let G of I){if(!G.on)continue;let S=document.createElement("button");S.type="button",S.className="kanuni-datagrid-menu-item",S.setAttribute("role","menuitem"),S.setAttribute("data-testid",G.testId),S.textContent=G.label,G.kind==="excel-selected"&&E.getSelectedCount()===0&&(S.disabled=!0),S.addEventListener("click",()=>{D=G.kind,b.disabled=!0,fe(),xn(E,G.kind).then(M=>{D=null,b.disabled=!1,M.error&&gr(M.error)})}),T.appendChild(S)}},"kanuni-datagrid-filter-popup kanuni-datagrid-export-menu")});for(let v of ho??[])it.append(v);it.append(s,y),p&&it.append(p),it.append(b);for(let v of co??[])it.append(v);let B=N("kanuni-datagrid-toolbar-error","span");B.setAttribute("role","alert"),B.style.display="none",it.append(B),gr=v=>{B.textContent=v,B.style.display=""}}function Zn(){if(!wt.isConnected)return;let s=E.getPage(),m=E.getPageCount();wt.textContent="";let y=(D,B,v,T)=>{let I=document.createElement("button");return I.type="button",I.textContent=D,I.setAttribute("aria-label",B),I.disabled=v,I.addEventListener("click",T),I},p=N("kanuni-datagrid-pager-buttons"),C=s<=0,A=s>=m-1;p.append(y("\xAB",L.pagerFirst??"First",C,()=>E.setPage(0)),y("\u2039",L.pagerPrevious??"Previous",C,()=>E.setPage(s-1)));let b=N("kanuni-datagrid-pager-current","span");b.textContent=`${s+1} / ${m}`,p.append(b,y("\u203A",L.pagerNext??"Next",A,()=>E.setPage(s+1)),y("\xBB",L.pagerLast??"Last",A,()=>E.setPage(m-1))),wt.appendChild(p)}function fr(){if(!De)return;let s=E.getColumnLayout(),m=E.getSummaries(),y=new Map(E.getSummaryDefs().map(C=>[C.columnId,C]));if(de.textContent="",de.style.width=`${s.totalWidth+Ne}px`,Ne>0){let C=N("kanuni-datagrid-footer-cell kanuni-datagrid-footer-cell--pinned");C.style.width=`${Ne}px`,C.style.insetInlineStart="0px",de.appendChild(C)}let p=!1;for(let C of Re){if(!C.pinned&&!p){if(ge>0){let B=N("kanuni-datagrid-spacer");B.style.width=`${ge}px`,de.appendChild(B)}p=!0}let A=y.get(C.id),b=C.def.dataType==="number",D=N(`kanuni-datagrid-footer-cell${C.pinned?" kanuni-datagrid-footer-cell--pinned":""}${b?" kanuni-datagrid-footer-cell--number":""}${A?" kanuni-datagrid-footer-cell--active":""}`);if(D.setAttribute("role","gridcell"),D.setAttribute("data-column-id",C.id),D.setAttribute("data-summary-type",A?.type??""),D.style.width=`${C.width}px`,C.pinned==="left"&&(D.style.insetInlineStart=`${C.inset}px`),C.pinned==="right"&&(D.style.insetInlineEnd=`${C.inset}px`),A){D.title=`${mn(A,rr)} \u2014 ${C.def.headerName??C.id}`;let B=N("kanuni-datagrid-footer-value","span");B.textContent=tu(A,m[et(A.columnId,A.type)],C.def),D.appendChild(B)}else{let B=N("kanuni-datagrid-footer-hint","span");B.textContent=h?"\xB7":"",D.appendChild(B)}de.appendChild(D)}}function Cr(){let s=(m,y,p)=>{m.textContent="",y.forEach((C,A)=>{let b=fu("data");dr(b,{kind:"data",key:`__pinned-${p}-${A}`,sourceIndex:-1,data:C},A),b.root.classList.remove("kanuni-datagrid-row--odd"),b.root.removeAttribute("aria-rowindex"),b.rowNumberCell&&(b.rowNumberCell.textContent=""),m.appendChild(b.root)})};f.length>0&&s(It,f,"top"),w.length>0&&s(Mn,w,"bottom")}let bt=null,yr=null;function fe(){yr?.(),yr=null,bt?.remove(),bt=null}function ea(s,m){let p=s.getBoundingClientRect();p.width===0&&p.height===0||(s.style.left=`${Math.max(8,Math.min(m.left,window.innerWidth-p.width-8))}px`,s.style.top=`${Math.max(8,Math.min(m.top,window.innerHeight-p.height-8))}px`)}function ct(s,m,y="kanuni-datagrid-filter-popup"){fe(),bt=N(`${vn(t)} kanuni-datagrid-portal`);let p=N(y);p.style.position="fixed",p.style.left=`${s.left}px`,p.style.top=`${s.top}px`,p.style.zIndex="1000",m(p),bt.appendChild(p),document.body.appendChild(bt),ea(p,s);let C=bt,A=D=>{C.contains(D.target)||fe()},b=D=>{D.key==="Escape"&&fe()};document.addEventListener("pointerdown",A,!0),document.addEventListener("keydown",b,!0),yr=()=>{document.removeEventListener("pointerdown",A,!0),document.removeEventListener("keydown",b,!0)}}let ht=25,ta=8,ua=new Map,ra=0;function Lo(s,m){let y=m.getBoundingClientRect(),p=++ra;ct({left:y.left,top:y.bottom+2},C=>{let A=[],b=!0,D=new Set,B=!1,v=0,T="",I=[],G=null,S="",M=[],V=document.createElement("input");V.type="search",V.className="kanuni-datagrid-filter-search",V.placeholder=L.search,V.setAttribute("data-testid","dg-filter-search");let W=N("kanuni-datagrid-filter-actions"),Q=document.createElement("button");Q.type="button",Q.textContent=L.filterSelectAll,Q.addEventListener("click",()=>{B=!0,D=new Set(A.map(z=>z.label)),te()});let se=document.createElement("button");se.type="button",se.textContent=L.clear,se.addEventListener("click",()=>{B=!0,D=new Set,te()}),W.append(Q,se);let ue=N("kanuni-datagrid-filter-list");ue.setAttribute("role","listbox"),ue.setAttribute("aria-multiselectable","true");let ye=document.createElement("div");ye.style.position="relative";let Se=document.createElement("div");ye.appendChild(Se),ue.appendChild(ye);let Qe=()=>{let z=ne(T.trim());if(!z){I=A;return}G||(G=A.map(X=>ne(X.label))),I=S!==""&&z.includes(S)?M.filter(X=>ne(X.label).includes(z)):A.filter((X,re)=>G[re].includes(z)),S=z,M=I},te=()=>{if(ue.setAttribute("aria-busy",String(b)),ue.setAttribute("aria-setsize",String(I.length)),b){ye.style.height="",Se.textContent="";let be=N("kanuni-datagrid-filter-empty");be.textContent=L.filterLoading,Se.appendChild(be);return}if(I.length===0){ye.style.height="",Se.style.transform="",Se.textContent="";let be=N("kanuni-datagrid-filter-empty");be.textContent=L.filterNoMatch,Se.appendChild(be);return}let z=ue.clientHeight||240,X=Math.max(0,Math.floor(ue.scrollTop/ht)-ta),re=Math.ceil(z/ht)+ta*2,xe=Math.min(X,Math.max(0,I.length-1)),ul=Math.min(I.length,xe+re);ye.style.height=`${I.length*ht}px`,Se.style.transform=`translateY(${xe*ht}px)`,Se.textContent="";for(let be=xe;be<ul;be++){let Ft=I[be],Me=N("kanuni-datagrid-filter-item");Me.setAttribute("role","option"),Me.setAttribute("aria-selected",String(D.has(Ft.label))),Me.tabIndex=0,Me.setAttribute("data-value",Ft.label),Me.setAttribute("data-index",String(be)),be===v&&Me.classList.add("kanuni-datagrid-filter-item--active");let qt=document.createElement("input");qt.type="checkbox",qt.readOnly=!0,qt.checked=D.has(Ft.label),qt.tabIndex=-1;let Sa=document.createElement("span");Sa.textContent=Ft.label===""?L.filterBlank:Ft.label,Me.append(qt,Sa),Me.addEventListener("click",()=>Su(Ft.label)),Me.addEventListener("focus",()=>{v=be}),Se.appendChild(Me)}},Su=z=>{B=!0,D.has(z)?D.delete(z):D.add(z);for(let X of Se.querySelectorAll(".kanuni-datagrid-filter-item")){if(X.getAttribute("data-value")!==z)continue;X.setAttribute("aria-selected",String(D.has(z)));let re=X.querySelector("input");re&&(re.checked=D.has(z))}};ue.addEventListener("scroll",()=>{ua.set(s,ue.scrollTop),te()}),V.addEventListener("input",()=>{T=V.value,v=0,Qe(),te()});let mt=z=>{if(I.length===0)return;v=Math.max(0,Math.min(I.length-1,z));let X=v*ht,re=ue.clientHeight||240;X<ue.scrollTop?ue.scrollTop=X:X+ht>ue.scrollTop+re&&(ue.scrollTop=X+ht-re),te(),C.querySelector(`.kanuni-datagrid-filter-item[data-index="${v}"]`)?.focus()},Fa=()=>{if(b)return;let z;if(D.size===A.length)z=null;else{let X=D.has(""),re=A.filter(xe=>xe.label!==""&&D.has(xe.label));re.length===0?z=X?{columnId:s,operator:"isnull"}:null:X?z={logic:"or",nodes:[{columnId:s,operator:"in",value:re.map(xe=>xe.value)},{columnId:s,operator:"isnull"}]}:z={columnId:s,operator:"in",value:re.map(xe=>xe.value)}}E.setColumnFilter(s,z,sn),fe()};C.tabIndex=-1,C.addEventListener("keydown",z=>{let X=z.target===V;if(z.key==="Backspace"&&!X){z.preventDefault(),V.focus(),T=T.slice(0,-1),V.value=T,v=0,Qe(),te();return}if(z.key==="ArrowDown"){z.preventDefault(),mt(X?0:v+1);return}if(z.key==="ArrowUp"){z.preventDefault(),mt(X?I.length-1:v-1);return}if(!X&&(z.key==="Home"||z.key==="End")){z.preventDefault(),mt(z.key==="Home"?0:I.length-1);return}if(z.key===" "&&!X){z.preventDefault();let re=I[v];re&&Su(re.label);return}if(z.key==="Enter"){z.preventDefault(),Fa();return}!X&&z.key.length===1&&z.key!==" "&&!z.ctrlKey&&!z.metaKey&&!z.altKey&&(z.preventDefault(),V.focus(),T+=z.key,V.value=T,v=0,Qe(),te())});let Da=N("kanuni-datagrid-filter-footer"),Bu=document.createElement("button");Bu.type="button",Bu.textContent=L.cancel,Bu.addEventListener("click",()=>fe());let Xe=document.createElement("button");Xe.type="button",Xe.className="kanuni-datagrid-filter-primary",Xe.setAttribute("data-testid","dg-filter-apply"),Xe.textContent=L.apply,Xe.disabled=!0,Xe.addEventListener("click",Fa),Da.append(Bu,Xe),C.append(V,W,ue,Da),te(),queueMicrotask(()=>{V.isConnected&&V.focus()}),E.getDistinctValueSetAsync(s).then(z=>{if(ra!==p||!C.isConnected)return;A=z.entries,G=null,S="",b=!1,Xe.disabled=!1;let X=Ni(E.getColumnFilter(s,sn)??E.getColumnFilter(s,kt),A);X?(B=!0,D=new Set(X)):B||(D=new Set(A.map(xe=>xe.label))),Qe();let re=ua.get(s);te(),re&&(ue.scrollTop=re,te())})})}function Eu(s={}){let m=E.getClipboardText(s);E.notifyClipboardGesture("copy",m?m.split(`
|
|
16
|
+
`).length:0,()=>!m||!navigator.clipboard?.writeText?!1:(navigator.clipboard.writeText(m).catch(()=>{}),!0))}function Po(s){if(ve===!1)return[];let m=ve===!0?{}:ve,y=[],p=A=>{s&&y.length===0&&y.push({separator:!0,id:"__dg-sep"}),y.push(A)};m.copy!==!1&&p({id:"__dg-copy",label:L.menuCopy,shortcut:`${Oo}C`,onSelect:()=>Eu()}),m.copyWithHeaders!==!1&&p({id:"__dg-copy-headers",label:L.menuCopyWithHeaders,onSelect:()=>Eu({includeHeaders:!0})}),m.copyWithGroupHeaders!==!1&&Go()&&p({id:"__dg-copy-group-headers",label:L.menuCopyWithGroupHeaders,onSelect:()=>Eu({includeGroupHeaders:!0})});let C=m.export===!1?[]:Array.isArray(m.export)?m.export:["csv","excel","excel-selected","pdf"];if(C.length>0){let A=E.getSelectedCount()===0,b={csv:L.exportCsv,excel:L.exportExcel,"excel-selected":L.exportExcelSelected,pdf:L.exportPdf};p({id:"__dg-export",label:L.menuExport,items:C.map(D=>({id:`__dg-export-${D}`,label:b[D],disabled:D==="excel-selected"&&A,onSelect:()=>{xn(E,D).then(B=>{B.error&&gr(B.error)})}}))})}return y}function Go(){let s=E.getColumnModel();return E.getVisualColumnIds().some(m=>{let y=s.getDef(m)?.band;return typeof y=="string"?y!=="":Array.isArray(y)&&y.length>0})}function qd(s,m,y){let p=N("kanuni-datagrid-menu-row"),C=document.createElement("button");C.type="button",C.className="kanuni-datagrid-menu-item";let A=N("kanuni-datagrid-menu-label","span");if(A.textContent=s,C.appendChild(A),m){let b=N("kanuni-datagrid-menu-shortcut","span");b.textContent=m,C.appendChild(b)}return C.addEventListener("click",()=>{y(),fe()}),p.appendChild(C),p}let Oo=/Mac|iPhone|iPad|iPod/.test(navigator.platform??"")?"\u2318":"Ctrl+";function wr(s,m,y){let p=null,C=()=>{p?.remove(),p=null};m.forEach((A,b)=>{if(A.separator){let I=N("kanuni-datagrid-menu-separator");I.setAttribute("role","separator"),s.appendChild(I);return}let D=N("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(b)),A.disabled&&(B.disabled=!0),A.icon!==void 0){let I=N("kanuni-datagrid-menu-icon","span");typeof A.icon=="string"?I.textContent=A.icon:I.appendChild(A.icon),B.appendChild(I)}let v=N("kanuni-datagrid-menu-label","span");if(v.textContent=A.label??"",B.appendChild(v),A.shortcut){let I=N("kanuni-datagrid-menu-shortcut","span");I.textContent=A.shortcut,B.appendChild(I)}let T=A.items??[];if(T.length>0){let I=N("kanuni-datagrid-menu-caret","span");I.textContent="\u203A",B.appendChild(I),B.setAttribute("aria-haspopup","menu"),B.setAttribute("aria-expanded","false");let G=()=>{C();let S=N("kanuni-datagrid-context-menu kanuni-datagrid-submenu");S.setAttribute("role","menu");let M=B.getBoundingClientRect();S.style.left=`${M.right}px`,S.style.top=`${Math.max(0,M.top-4)}px`;for(let V of T){if(V.separator){let se=N("kanuni-datagrid-menu-separator");se.setAttribute("role","separator"),S.appendChild(se);continue}let W=document.createElement("button");W.type="button",W.className="kanuni-datagrid-menu-item",W.setAttribute("role","menuitem"),V.disabled&&(W.disabled=!0);let Q=N("kanuni-datagrid-menu-label","span");Q.textContent=V.label??"",W.appendChild(Q),W.addEventListener("click",()=>{V.onSelect?.(y),fe()}),S.appendChild(W)}s.parentElement?.appendChild(S),ea(S,{left:M.right,top:Math.max(0,M.top-4)}),p=S,B.setAttribute("aria-expanded","true")};B.addEventListener("mouseenter",G),B.addEventListener("click",G)}else B.addEventListener("mouseenter",C),B.addEventListener("click",()=>{A.onSelect?.(y),fe()});D.appendChild(B),s.appendChild(D)})}let na=s=>{let y=s.target.closest(".kanuni-datagrid-row");if(!y||y.classList.contains("kanuni-datagrid-group-row"))return;let p=je(s);if(p?.columnId&&E.notifyCell("cellContextMenu",p.node,p.rowIndex,p.columnId),!Ee&&!ve||!p||p.node.kind!=="data")return;s.preventDefault(),E.isRowSelected(p.node.key)||E.handleRowClick(p.node.key,{}),p.columnId&&E.focusCell(p.node.key,p.columnId);let C={row:p.node.data,node:p.node,rowIndex:p.rowIndex,columnId:p.columnId,selectedKeys:E.getSelectedKeys()},A=(typeof Ee=="function"?Ee(C):Ee)??[],b=[...A,...Vo(C,A.length>0)],D=Po(b.length>0);b.length===0&&D.length===0||ct({left:s.clientX,top:s.clientY},B=>{B.setAttribute("role","menu"),wr(B,[...b,...D],C)},"kanuni-datagrid-context-menu")};function Vo(s,m){if(!nt?.onChange||nt.menu===!1)return[];let y=s.columnId;if(!y)return[];let p=s.node.key,C=hr(p,y,s.row),A=[];return m&&A.push({separator:!0,id:"__note-sep"}),A.push({id:"__note-edit",label:C?L.editNote:L.addNote,onSelect:()=>zo(p,y,s.row,C??"")}),C&&A.push({id:"__note-delete",label:L.deleteNote,onSelect:()=>nt.onChange?.({rowKey:p,columnId:y,row:s.row,text:null})}),A}function zo(s,m,y,p){let A=(Y.querySelector(`[data-row-key="${CSS.escape(String(s))}"] [data-column-id="${CSS.escape(m)}"]`)??Y).getBoundingClientRect();queueMicrotask(()=>{ct({left:A.left,top:A.bottom+2},b=>{b.setAttribute("aria-label",L.noteEditorAria);let D=document.createElement("textarea");D.className="kanuni-datagrid-note-input",D.rows=4,D.value=p,D.setAttribute("aria-label",L.noteEditorAria),D.placeholder=L.notePlaceholder,D.setAttribute("data-testid","dg-note-input");let B=()=>{let G=D.value.trim();fe(),nt?.onChange?.({rowKey:s,columnId:m,row:y,text:G===""?null:G})};D.addEventListener("keydown",G=>{G.key==="Enter"&&(G.ctrlKey||G.metaKey)&&(G.preventDefault(),B()),G.key==="Escape"&&(G.preventDefault(),fe())});let v=N("kanuni-datagrid-note-actions"),T=document.createElement("button");T.type="button",T.className="kanuni-datagrid-note-cancel",T.textContent=L.cancel,T.addEventListener("click",()=>fe());let I=document.createElement("button");I.type="button",I.className="kanuni-datagrid-note-save",I.setAttribute("data-testid","dg-note-save"),I.textContent=L.save,I.addEventListener("click",B),v.append(T,I),b.append(D,v),queueMicrotask(()=>{D.focus(),D.select()})},"kanuni-datagrid-filter-popup kanuni-datagrid-note-editor")})}function Ho(s){lt!==s&&(lt=s,s?(Y.insertBefore(me,_),xr()):me.remove())}function Wo(s){if(De!==s){if(De=s,s){if(Oe){let m=f.length>0?It:pe;ce.insertBefore(de,m)}else ce.append(de);fr()}else de.remove();It.style.setProperty("--dg-pinned-gap",String(Lt+(De&&Oe?1:0))),Ue.style.setProperty("--dg-pinned-gap",String(Lt+(De&&Oe?1:0)))}}function Er(s){let m=Xu(Y,s);m!==null&&E.setColumnWidth(s,m)}function Ko(s,m){let y=E.getColumnModel().getDef(s),p={columnId:s,headerName:y?.headerName??s},C=Qu(p,{controller:E,t:L,groupPanelVisible:lt,footerVisible:De,onToggleGroupPanel:()=>Ho(!lt),onToggleFooter:()=>Wo(!De),onOpenFieldChooser:()=>aa(m),onBestFit:Er,onBestFitAll:()=>{for(let b of E.getColumnStates())b.visible&&Er(b.id)},maxGroupLevels:$e?Number.POSITIVE_INFINITY:1}),A=typeof he=="function"?he(p,C):C;A.length!==0&&ct(m,b=>{b.setAttribute("role","menu"),wr(b,A,p)},"kanuni-datagrid-context-menu")}function $o(s,m){let y=E.getColumnModel().getDef(s),p=E.getColumnSummary(s),C={columnId:s,headerName:y?.headerName??y?.field??s},A=[{id:"none",label:L.noTotal,disabled:p===null,onSelect:()=>E.setColumnSummary(s,null)},{id:"sep",separator:!0},...Ki(y?.dataType).map(b=>({id:b,label:rr[b],disabled:p?.type===b,onSelect:()=>E.setColumnSummary(s,b)}))];ct(m,b=>{b.setAttribute("role","menu"),wr(b,A,C)},"kanuni-datagrid-context-menu")}function aa(s){ct(s,m=>{let y=N("kanuni-datagrid-filter-list");for(let p of E.getColumnStates()){let C=document.createElement("label");C.className="kanuni-datagrid-filter-item";let A=document.createElement("input");A.type="checkbox",A.checked=p.visible,A.addEventListener("change",()=>{E.setColumnVisible(p.id,A.checked)});let b=document.createElement("span"),D=E.getColumnModel().getDef(p.id);b.textContent=D?.headerName??p.id,C.append(A,b),y.appendChild(C)}m.appendChild(y)},"kanuni-datagrid-filter-popup kanuni-datagrid-column-chooser")}let pt=null,Ar=null,Au=s=>{me.classList.toggle("kanuni-datagrid-group-panel--over",s)};function ia(s,m,y){let p=E.getGroupLevels();if(s===m)return;let C=p.filter(D=>D!==s),A=C.indexOf(m);if(A<0)return;let b=y==="before"?A:A+1;Ar=s,E.groupBy([...C.slice(0,b),s,...C.slice(b)])}function oa(s,m){let y=E.getGroupLevels(),p=y.indexOf(s),C=p+m;p<0||C<0||C>=y.length||ia(s,y[C],m===-1?"before":"after")}function la(s,m){if(!s)return;let y=E.getGroupLevels();if(y.includes(s))return;let p=$e?Number.POSITIVE_INFINITY:1;if(y.length>=p){E.groupBy([...y.slice(0,p-1),s]);return}let C=m??y.length;E.groupBy([...y.slice(0,C),s,...y.slice(C)])}function xr(){if(!lt)return;me.textContent="";let s=E.getGroupLevels();if(s.length===0){let B=N("kanuni-datagrid-group-panel-hint","span");B.textContent=L.groupPanelHint??"Drag a column header here to group by it",me.appendChild(B);return}let m=B=>E.getColumnModel().getDef(B)?.headerName??B,y=N("kanuni-datagrid-group-levels"),p=(B,v)=>B<v.top+v.height/2?"before":"after",C=(B,v)=>{for(let T of me.querySelectorAll(".kanuni-datagrid-group-level"))T.classList.remove("kanuni-datagrid-group-level--drop-before","kanuni-datagrid-group-level--drop-after");B&&v&&B.classList.add(`kanuni-datagrid-group-level--drop-${v}`)};s.forEach((B,v)=>{let T=N("kanuni-datagrid-group-level");T.style.setProperty("--dg-group-level",String(v)),T.setAttribute("data-group-level",String(v));let I=N("kanuni-datagrid-group-chip");if(I.setAttribute("role","button"),I.tabIndex=0,s.length>1&&(I.draggable=!0),I.setAttribute("aria-label",`${Tt(L.groupLevelAria,{n:v+1})}: ${m(B)}`),I.addEventListener("dragstart",M=>{pt=B,M.dataTransfer&&(M.dataTransfer.effectAllowed="move",M.dataTransfer.setData("text/x-kanuni-column",B))}),I.addEventListener("dragend",()=>{pt=null,C(null,null)}),I.addEventListener("keydown",M=>{let V=M.ctrlKey||M.metaKey;V&&(M.key==="ArrowUp"||M.key==="ArrowLeft")?(M.preventDefault(),oa(B,-1)):V&&(M.key==="ArrowDown"||M.key==="ArrowRight")?(M.preventDefault(),oa(B,1)):(M.key==="Delete"||M.key==="Backspace")&&(M.preventDefault(),E.groupBy(s.filter(W=>W!==B)))}),T.addEventListener("dragover",M=>{!pt&&!(M.dataTransfer?.types.includes("text/x-kanuni-column")??!1)||(M.preventDefault(),M.stopPropagation(),C(T,p(M.clientY,T.getBoundingClientRect())))}),T.addEventListener("drop",M=>{M.preventDefault(),M.stopPropagation();let V=p(M.clientY,T.getBoundingClientRect());C(null,null),Au(!1);let W=pt;if(pt=null,W){ia(W,B,V);return}let Q=M.dataTransfer?.getData("text/x-kanuni-column");Q&&la(Q,V==="before"?v:v+1)}),s.length>1){let M=N("kanuni-datagrid-group-chip-level","span");M.textContent=String(v+1),I.appendChild(M)}let G=document.createElement("span");G.textContent=m(B);let S=document.createElement("button");S.type="button",S.setAttribute("aria-label",Tt(L.groupRemoveAria,{column:m(B)})),S.textContent="\xD7",S.addEventListener("click",()=>{E.groupBy(s.filter(M=>M!==B))}),S.draggable=!1,I.append(G,S),T.appendChild(I),y.appendChild(T),Ar===B&&(Ar=null,queueMicrotask(()=>I.focus()))}),me.appendChild(y);let A=N("kanuni-datagrid-group-panel-actions"),b=document.createElement("button");b.type="button",b.textContent="Expand all",b.addEventListener("click",()=>E.expandAllGroups());let D=document.createElement("button");D.type="button",D.textContent="Collapse all",D.addEventListener("click",()=>E.collapseAllGroups()),A.append(b,D),me.appendChild(A)}if(lt){let s=m=>m.dataTransfer?.types.includes("text/x-kanuni-column")??!1;me.addEventListener("dragover",m=>{s(m)&&(m.preventDefault(),Au(!0))}),me.addEventListener("dragleave",m=>{let y=m.relatedTarget;y&&me.contains(y)||Au(!1)}),me.addEventListener("drop",m=>{Au(!1);let y=m.dataTransfer?.getData("text/x-kanuni-column");if(y){if(m.preventDefault(),pt){pt=null;return}la(y)}})}let sa="";function da(){if(!Z)return;let s=[Tt(L.announceRows,{n:E.getVisibleCount()})],m=E.getSort();if(m.length>0){let C=m.map(A=>{let b=E.getColumnModel().getDef(A.columnId),D=b?.headerName??b?.field??A.columnId,B=A.direction==="desc"?L.announceDescending:L.announceAscending;return`${D} ${B}`}).join(", ");s.push(Tt(L.announceSortedBy,{columns:C}))}let y=E.getSelectedCount();y>0&&s.push(Tt(L.announceSelected,{n:y}));let p=s.join(", ");p!==sa&&(sa=p,Gt.textContent=p)}function ca(){if(!H)return;ot.textContent="";let s=qi(E.getEffectiveFilter(),E.getColumnModel(),{...J,labels:{...Cn(L),...J?.labels}});if(!s&&H!=="always"){ot.style.display="none";return}ot.style.display="";let m=E.isFilterEnabled();ot.className=`kanuni-datagrid-filter-panel${m?"":" kanuni-datagrid-filter-panel--suspended"}`;let y=document.createElement("button");y.type="button",y.className="kanuni-datagrid-filter-panel-clear",y.title=L.filterRemove,y.setAttribute("aria-label",L.filterRemove),y.setAttribute("data-testid","dg-filter-panel-clear"),y.disabled=s===null,y.textContent="\xD7",y.addEventListener("click",()=>{E.setFilter(null),E.clearColumnFilters(),E.setFilterEnabled(!0)});let p=document.createElement("input");p.type="checkbox",p.className="kanuni-datagrid-filter-panel-toggle",p.checked=m,p.disabled=s===null,p.title=L.filterToggle,p.setAttribute("aria-label",L.filterToggle),p.setAttribute("data-testid","dg-filter-panel-toggle"),p.addEventListener("change",()=>E.setFilterEnabled(p.checked));let C=N("kanuni-datagrid-filter-panel-text","span");if(C.setAttribute("data-testid","dg-filter-panel-text"),C.textContent=s??L.filterNone,s&&(C.title=s),ot.append(y,p,C),U){let A=document.createElement("button");A.type="button",A.className="kanuni-datagrid-filter-panel-builder",A.title=L.filterEditBuilder,A.setAttribute("aria-label",L.filterEditBuilder),A.setAttribute("data-testid","dg-filter-panel-builder"),A.textContent="\u25BE",A.addEventListener("click",U),ot.appendChild(A)}}let br=new Set,Uo=E.events.on("cellsFlashed",({rowKeys:s,columnIds:m,duration:y})=>{let p=s.length?s.map(D=>`[data-row-key="${CSS.escape(String(D))}"]`).join(","):".kanuni-datagrid-row",C=m.length?m.map(D=>`[data-column-id="${CSS.escape(D)}"]`).join(","):"[data-column-id]",A=[];ee.querySelectorAll(p).forEach(D=>{D.querySelectorAll(C).forEach(B=>A.push(B))});for(let D of A)D.classList.remove("kanuni-datagrid-cell--flash");Y.offsetWidth;for(let D of A)D.classList.add("kanuni-datagrid-cell--flash");let b=setTimeout(()=>{for(let D of A)D.classList.remove("kanuni-datagrid-cell--flash");br.delete(b)},y);br.add(b)});function je(s){let m=s.target,y=m.closest(".kanuni-datagrid-row");if(!y||!ee.contains(y))return null;let p=y.getAttribute("data-row-key");if(p===null)return null;let C=E.getRows(),A=C.findIndex(D=>D!==void 0&&String(D.key)===p);if(A===-1)return null;let b=m.closest(".kanuni-datagrid-cell")?.getAttribute("data-column-id")??null;return{node:C[A],rowIndex:A,columnId:b}}let ha=s=>{let m=je(s);m&&(Ge?.(m.node),E.notifyRow("rowClicked",m.node,m.rowIndex),m.columnId&&E.notifyCell("cellClicked",m.node,m.rowIndex,m.columnId))},pa=s=>{let m=je(s);if(m){if(Sn){let y=kr(m);y&&Sn(y)}Mt?.(m.node),E.notifyRow("rowDoubleClicked",m.node,m.rowIndex),m.columnId&&E.notifyCell("cellDoubleClicked",m.node,m.rowIndex,m.columnId)}};ee.addEventListener("click",ha),ee.addEventListener("dblclick",pa);function qo(s){let m=0,y=Fe.querySelector(`[data-column-id="${CSS.escape(s)}"]`);y&&(m=y.scrollWidth),ee.querySelectorAll(`[data-column-id="${CSS.escape(s)}"]`).forEach(p=>{p.scrollWidth>m&&(m=p.scrollWidth)}),m>0&&E.setColumnWidth(s,m+12,!0)}function _o(){if(R)for(let s of Fe.querySelectorAll(".kanuni-datagrid-filter-button")){let m=s.parentElement?.getAttribute("data-column-id");m&&s.classList.toggle("kanuni-datagrid-filter-button--active",E.getColumnFilter(m)!==null)}}let vr=!1,ma=!1,vt=null;function xu(){vt!==null&&(clearTimeout(vt),vt=null)}function bu(s){Pt.style.display=s?"":"none"}function vu(){let s=E.getOverlay();if(lu.style.display=s==="noRows"?"":"none",ur===!1){xu(),bu(!1);return}if(!(s==="loading"&&(vr||!ma))){xu(),bu(!1);return}if(vr||Nn<=0){xu(),bu(!0);return}vt!==null||Pt.style.display===""||(vt=setTimeout(()=>{vt=null,Ce||bu(!0)},Nn))}let ga=!1,Fr=!1,Dr=!1,Sr=!1,Ce=!1;function jo(){if(Fr=!1,!Ce){if(Dr)Dr=!1,Sr&&(Sr=!1,ze++),lr(),sr(),mr(),Cr();else{let s=ge;lr(),ge!==s&&(ze++,sr(),mr(),Cr())}pr(),Un(),fr(),Zn(),_o(),xr(),ca(),da(),vu()}}function Br(s){Ce||(s&&(Dr=!0),!Fr&&(Fr=!0,queueMicrotask(jo)))}let Yo=[...oe?[E.events.on("focusedRowChanged",s=>oe({rowKey:s.rowKey,row:s.row}))]:[],...Ld.map(s=>E.events.on(s,()=>Br(!0))),...Pd.map(s=>E.events.on(s,()=>{Sr=!0})),...Gd.map(s=>E.events.on(s,()=>Br(!1))),E.events.on("overlayChanged",s=>{vr=s.manual===!0&&s.overlay==="loading",Ce||vu()}),E.events.on("busyChanged",s=>{ma=s.background===!0,Ce||vu()}),E.events.on("paginationChanged",()=>{Ce||Br(!1)}),E.events.on("bodyScroll",()=>{Ce||Xn()}),E.events.on("scrollRequested",s=>{if(Ce)return;s.scrollTop!==void 0&&(_.scrollTop=s.scrollTop),s.scrollLeft!==void 0&&(_.scrollLeft=s.scrollLeft),E.setScroll(_.scrollTop,Math.abs(_.scrollLeft));let m=s.scrollTop;m===void 0||Math.abs(_.scrollTop-m)<=1||setTimeout(()=>{Ce||Math.abs(_.scrollTop-m)<=1||(_.scrollTop=m,E.setScroll(_.scrollTop,Math.abs(_.scrollLeft)))},0)}),...K==="fitGrid"?[E.events.on("gridSizeChanged",()=>E.sizeColumnsToFit())]:[],...K==="fitCells"?[E.events.on("firstDataRendered",()=>{Ce||ga||(ga=!0,queueMicrotask(()=>{if(!Ce)for(let s of E.getColumnStates())s.visible&&Er(s.id)}))})]:[]];K==="fitGrid"&&E.sizeColumnsToFit();function kr(s){if(!s.columnId||s.node.kind!=="data")return null;let m=Re.find(y=>y.id===s.columnId);return m?{node:s.node,columnId:s.columnId,rowIndex:s.rowIndex,columnIndex:m.visualIndex,value:s.node.kind==="data"?E.getColumnModel().getCellValue(s.node.data,m.id):void 0}:null}let fa=s=>{let m=s.target;if(Dn){let D=je(s),B=D?kr(D):null;B&&Dn(B,s)}let y=m.closest(".kanuni-datagrid-row");if(!y||y.classList.contains("kanuni-datagrid-group-row"))return;let p=y.getAttribute("data-row-key");if(p===null)return;let C=E.getRows().find(D=>D!==void 0&&String(D.key)===p);if(!C||C.kind!=="data")return;E.handleRowClick(C.key,{ctrlKey:s.ctrlKey||Eo&&!s.shiftKey,metaKey:s.metaKey,shiftKey:s.shiftKey});let A=m.closest(".kanuni-datagrid-cell"),b=A?Re.find(D=>A.id.endsWith(`-${D.id}`))?.id:void 0;b&&E.focusCell(C.key,b)},Ca=s=>{if(!iu)return;let y=s.target.closest(".kanuni-datagrid-cell");if(!y||!ee.contains(y)||s.relatedTarget?.closest?.(".kanuni-datagrid-cell")===y)return;let C=je(s),A=C?kr(C):null;A&&iu(A,s)};ee.addEventListener("mousedown",fa),ee.addEventListener("contextmenu",na),iu&&ee.addEventListener("mouseover",Ca),zt&&(pe.addEventListener("dragstart",Ao),pe.addEventListener("dragover",xo),pe.addEventListener("drop",bo),pe.addEventListener("dragend",vo),pe.addEventListener("dragleave",Fo)),Y.tabIndex=0;let ya=s=>{let m=s.target;if(m.tagName==="INPUT"||m.tagName==="TEXTAREA"||m.isContentEditable)return;let y=Qi({key:s.key,ctrlKey:s.ctrlKey,metaKey:s.metaKey,shiftKey:s.shiftKey,altKey:s.altKey});if(!y)return;if(y.type==="copy"){Eu();return}if(y.type==="activate"){if(Mt){let A=E.getFocus(),b=A?E.getRows().find(D=>D!==void 0&&D.key===A.rowKey):void 0;b&&Mt(b)}y.preventDefault&&s.preventDefault();return}E.executeCommand(y),y.preventDefault&&s.preventDefault();let p=E.getFocusIndices();if(p){let b=E.getColumnLayout().center.findIndex(B=>B.state.id===E.getFocus()?.columnId),D=E.ensureVisible(p.rowIndex,b===-1?void 0:b);D&&(D.scrollTop!==void 0&&(_.scrollTop=D.scrollTop),D.scrollLeft!==void 0&&(_.scrollLeft=D.scrollLeft),E.setScroll(_.scrollTop,Math.abs(_.scrollLeft)))}let C=E.getFocus();Y.setAttribute("aria-activedescendant",C?`${t.gridId}-cell-${String(C.rowKey)}-${C.columnId}`:"")};Y.addEventListener("keydown",ya);let Qo=kn?_i(E,kn):null,Xo=typeof rt=="object"?rt.delay??400:400,Jo=rt!==!1&&!(typeof rt=="object"&&rt.enabled===!1),Zo=typeof rt=="object"?rt.showOnTruncation!==!1:!0,$t=null,Fu=null;function Ut(){Fu&&clearTimeout(Fu),Fu=null,$t?.remove(),$t=null}let el=s=>s.scrollWidth>s.clientWidth+1||s.scrollHeight>s.clientHeight+1;function tl(s){let y=s.closest(".kanuni-datagrid-row")?.getAttribute("data-row-key"),p=Re.find(D=>s.id.endsWith(`-${D.id}`));if(!y||!p)return null;let C=E.getRows().find(D=>D!==void 0&&String(D.key)===y);if(!C||C.kind!=="data")return null;let A=p.def,b=hr(C.key,p.id,C.data);if(b)return b;if(typeof A.tooltip=="function")return A.tooltip({value:E.getColumnModel().getCellValue(C.data,p.id),row:C.data,node:C,column:A})??null;if(typeof A.tooltip=="string")return A.tooltip;if(A.tooltipField){let D=C.data[A.tooltipField];return D==null?null:String(D)}return Zo&&el(s)?s.textContent??null:null}let wa=s=>{if(!Jo)return;Ut();let m=s.target.closest(".kanuni-datagrid-cell");!m||!ee.contains(m)||(Fu=setTimeout(()=>{let y=tl(m);if(!y)return;let p=m.getBoundingClientRect();$t=N(`${vn(t)} kanuni-datagrid-portal`);let C=N("kanuni-datagrid-tooltip");C.setAttribute("role","tooltip"),C.textContent=y,C.style.position="fixed",C.style.left=`${p.left}px`,C.style.top=`${p.bottom+4}px`,C.style.zIndex="1001",$t.appendChild(C),document.body.appendChild($t)},Xo))},Ea=()=>Ut();Y.addEventListener("pointerover",wa),Y.addEventListener("pointerout",Ea),_.addEventListener("scroll",Ut,{passive:!0});let Aa=()=>{if(E.setScroll(_.scrollTop,Math.abs(_.scrollLeft)),Ye)for(let s of xa())s.scroller.scrollLeft!==_.scrollLeft&&(s.scroller.scrollLeft=_.scrollLeft)};_.addEventListener("scroll",Aa,{passive:!0});let Ye=null,xa=()=>{if(!ae||!Ye)return[];let s=uu.get(ae);return s?[...s].filter(m=>m!==Ye):[]},ba=null;if(ae){Ye={controller:E,scroller:_};let s=uu.get(ae)??new Set;s.add(Ye),uu.set(ae,s),ba=E.events.on("columnStateChanged",()=>{if(bn.has(ae))return;let m=xa();if(m.length===0)return;let y=E.getColumnStates();bn.add(ae);try{for(let p of m)p.controller.applyColumnStates(y)}finally{bn.delete(ae)}})}let va=()=>{E.setViewportSize(_.clientWidth,_.clientHeight),_.style.setProperty("--dg-viewport-width",`${_.clientWidth}px`);let s=pe.getBoundingClientRect(),m=ce.getBoundingClientRect();E.setChromeOffsets(s.top-m.top,m.bottom-s.bottom),uo(_,E)};va();let Du=null;return typeof ResizeObserver<"u"&&(Du=new ResizeObserver(va),Du.observe(_),Du.observe(ce)),lr(),sr(),mr(),Io(),Cr(),pr(),fr(),Zn(),xr(),ca(),da(),vu(),Wt?.always&&ir(!0),{controller:E,element:Y,setData:s=>E.setData(s),setColumns:s=>E.setColumns(s),destroy:()=>{if(!Ce){if(Ce=!0,Yo.forEach(s=>s()),Du?.disconnect(),$n?.(),At&&(At=!1,yt--,yt<=0&&(yt=0,document.documentElement.classList.remove("kanuni-datagrid-printing"))),ba?.(),ae&&Ye){let s=uu.get(ae);s?.delete(Ye),s&&s.size===0&&uu.delete(ae),Ye=null}_.removeEventListener("scroll",Aa),ee.removeEventListener("mousedown",fa),ee.removeEventListener("contextmenu",na),iu&&ee.removeEventListener("mouseover",Ca),ee.removeEventListener("click",ha),ee.removeEventListener("dblclick",pa),Uo(),xu();for(let s of br)clearTimeout(s);Y.removeEventListener("keydown",ya),Y.removeEventListener("pointerover",wa),Y.removeEventListener("pointerout",Ea),_.removeEventListener("scroll",Ut),Ut(),Qo?.(),fe(),E.dispose(),Y.remove()}}}}return sl(Ud);})();
|