handsontable 18.1.0 → 18.1.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +6 -0
- package/base.js +2 -2
- package/base.mjs +2 -2
- package/dist/handsontable.full.js +54 -29
- package/dist/handsontable.full.min.js +9 -9
- package/dist/handsontable.js +54 -29
- package/dist/handsontable.min.js +9 -9
- package/dist/themes/classic.js +2 -2
- package/dist/themes/classic.min.js +2 -2
- package/dist/themes/horizon.js +2 -2
- package/dist/themes/horizon.min.js +2 -2
- package/dist/themes/main.js +2 -2
- package/dist/themes/main.min.js +2 -2
- package/dist/themes/static/variables/colors/ant.js +2 -2
- package/dist/themes/static/variables/colors/ant.min.js +2 -2
- package/dist/themes/static/variables/colors/classic.js +2 -2
- package/dist/themes/static/variables/colors/classic.min.js +2 -2
- package/dist/themes/static/variables/colors/horizon.js +2 -2
- package/dist/themes/static/variables/colors/horizon.min.js +2 -2
- package/dist/themes/static/variables/colors/main.js +2 -2
- package/dist/themes/static/variables/colors/main.min.js +2 -2
- package/dist/themes/static/variables/colors/material.js +2 -2
- package/dist/themes/static/variables/colors/material.min.js +2 -2
- package/dist/themes/static/variables/colors/shadcn.js +2 -2
- package/dist/themes/static/variables/colors/shadcn.min.js +2 -2
- package/dist/themes/static/variables/density.js +2 -2
- package/dist/themes/static/variables/density.min.js +2 -2
- package/dist/themes/static/variables/helpers/iconsMap.js +2 -2
- package/dist/themes/static/variables/helpers/iconsMap.min.js +2 -2
- package/dist/themes/static/variables/icons/horizon.js +2 -2
- package/dist/themes/static/variables/icons/horizon.min.js +2 -2
- package/dist/themes/static/variables/icons/main.js +2 -2
- package/dist/themes/static/variables/icons/main.min.js +2 -2
- package/dist/themes/static/variables/sizing.js +2 -2
- package/dist/themes/static/variables/sizing.min.js +2 -2
- package/dist/themes/static/variables/tokens/classic.js +2 -2
- package/dist/themes/static/variables/tokens/classic.min.js +2 -2
- package/dist/themes/static/variables/tokens/horizon.js +2 -2
- package/dist/themes/static/variables/tokens/horizon.min.js +2 -2
- package/dist/themes/static/variables/tokens/main.js +2 -2
- package/dist/themes/static/variables/tokens/main.min.js +2 -2
- package/helpers/mixed.js +5 -5
- package/helpers/mixed.mjs +5 -5
- package/package.json +1 -1
- package/plugins/copyPaste/copyPaste.js +29 -17
- package/plugins/copyPaste/copyPaste.mjs +29 -17
- package/plugins/filters/filters.js +13 -0
- package/plugins/filters/filters.mjs +13 -0
- package/styles/handsontable.css +2 -2
- package/styles/handsontable.min.css +2 -2
- package/styles/handsontableStyles.js +1 -1
- package/styles/handsontableStyles.mjs +1 -1
- package/styles/ht-icons-horizon.min.css +2 -2
- package/styles/ht-icons-main.min.css +2 -2
- package/styles/ht-theme-classic-no-icons.min.css +2 -2
- package/styles/ht-theme-classic.min.css +2 -2
- package/styles/ht-theme-horizon-no-icons.min.css +2 -2
- package/styles/ht-theme-horizon.min.css +2 -2
- package/styles/ht-theme-main-no-icons.min.css +2 -2
- package/styles/ht-theme-main.min.css +2 -2
- package/utils/licenseBranding/index.js +2 -2
- package/utils/licenseBranding/index.mjs +2 -2
- package/utils/licenseNotification.js +2 -2
- package/utils/licenseNotification.mjs +2 -2
package/dist/handsontable.min.js
CHANGED
|
@@ -25,8 +25,8 @@
|
|
|
25
25
|
* INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES OF ANY CHARACTER ARISING FROM
|
|
26
26
|
* USE OR INABILITY TO USE THIS SOFTWARE.
|
|
27
27
|
*
|
|
28
|
-
* Version: 18.1.
|
|
29
|
-
* Release date:
|
|
28
|
+
* Version: 18.1.1
|
|
29
|
+
* Release date: 15/09/2026 (built at 15/09/2026 08:36:17)
|
|
30
30
|
*/
|
|
31
31
|
!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define("Handsontable",[],t):"object"==typeof exports?exports.Handsontable=t():e.Handsontable=t()}("u">typeof self?self:this,()=>(()=>{"use strict";let e,t,o,n;var i={};i.d=(e,t)=>{for(var o in t)i.o(t,o)&&!i.o(e,o)&&Object.defineProperty(e,o,{enumerable:!0,get:t[o]})},i.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),i.r=e=>{"u">typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var r={};i.d(r,{default:()=>y9});var l={};i.r(l),i.d(l,{arrayAvg:()=>en,arrayEach:()=>J,arrayFilter:()=>Z,arrayFlatten:()=>function e(t){return X(t,(t,o)=>t.concat(Array.isArray(o)?e(o):o),[])},arrayMap:()=>Q,arrayMax:()=>et,arrayMin:()=>eo,arrayReduce:()=>X,arraySum:()=>ee,arrayToString:()=>ec,arrayUnique:()=>el,extendArray:()=>Y,getDifferenceOfArrays:()=>es,getIntersectionOfArrays:()=>ea,getUnionOfArrays:()=>eh,insertValuesInPlace:()=>er,pivot:()=>K,removeIndexesInPlace:()=>ei,stringToArray:()=>ed,to2dArray:()=>j});var s={};i.r(s),i.d(s,{_BLOCKING_MODAL_STATES:()=>e3,_LICENSE_EXPIRED_TITLE:()=>eQ,_PURCHASE_LICENSE_TEXT:()=>eJ,_formatExpiryClause:()=>eX,_formatIsoDate:()=>e7,_getLicenseState:()=>te,_injectProductInfo:()=>e5,isDefined:()=>eP,isEmpty:()=>eN,isRegExp:()=>eB,isUndefined:()=>eD,stringify:()=>eO});var a={};i.r(a),i.d(a,{throwWithCause:()=>to});var h={};i.r(h),i.d(h,{assignObjectDefaults:()=>ty,clone:()=>ta,createObjectPropListener:()=>tC,deepClone:()=>ts,deepExtend:()=>tl,deepMerge:()=>tv,deepObjectSize:()=>tb,defineGetter:()=>tg,duckSchema:()=>tn,extend:()=>tr,getProperty:()=>tm,hasOwnProperty:()=>tw,inherit:()=>ti,isKeyValueObject:()=>tS,isObject:()=>tc,isObjectEqual:()=>td,isPlainObject:()=>tu,mixin:()=>th,objectEach:()=>tp,setProperty:()=>tf});var d={};i.r(d),i.d(d,{cancelAnimationFrame:()=>tx,cancelIdleTask:()=>tH,getComparisonFunction:()=>tT,isCSR:()=>tk,isTouchSupported:()=>tE,requestAnimationFrame:()=>tR,requestIdleTask:()=>tM});var c={};i.r(c),i.d(c,{isChrome:()=>tD,isChromeWebKit:()=>tN,isEdge:()=>tz,isEdgeWebKit:()=>tW,isFirefox:()=>tB,isFirefoxWebKit:()=>tL,isIOS:()=>tU,isIpadOS:()=>tG,isLinuxOS:()=>tY,isMacOS:()=>tj,isMobileBrowser:()=>t$,isSafari:()=>tV,isSafariBefore261:()=>tF,isWindowsOS:()=>tq,setBrowserMeta:()=>tO,setPlatformMeta:()=>tP});var u={};i.r(u),i.d(u,{HTML_CHARACTERS:()=>of,SANITIZER_WARN_KEY:()=>ob,addClass:()=>od,addEvent:()=>oW,clearTextSelection:()=>oj,closest:()=>oe,closestDown:()=>ot,empty:()=>om,eventTargetEl:()=>t5,fastInnerHTML:()=>oy,fastInnerText:()=>ov,findFirstParentWithClass:()=>oo,getCaretPosition:()=>oU,getChildEl:()=>nl,getCssTransform:()=>o0,getDeepActiveElement:()=>nr,getFractionalScalingCompensation:()=>oK,getFrameElement:()=>t7,getMaximumScrollLeft:()=>oA,getMaximumScrollTop:()=>oI,getParent:()=>t6,getParentWindow:()=>t9,getScrollLeft:()=>ok,getScrollTop:()=>oE,getScrollableElement:()=>oT,getScrollbarWidth:()=>oX,getSelectionEndPosition:()=>oG,getSelectionText:()=>oq,getShadowHostChain:()=>ni,getStyle:()=>oN,getTrimmingContainer:()=>oD,getWindowScrollLeft:()=>oH,getWindowScrollTop:()=>oM,hasAccessToParentWindow:()=>t8,hasClass:()=>oh,hasHorizontalScrollbar:()=>oQ,hasVerticalScrollbar:()=>oZ,hasZeroHeight:()=>oR,index:()=>oi,innerHeight:()=>oF,innerWidth:()=>oz,isBottomMostColumnHeader:()=>ol,isChildOf:()=>on,isDetached:()=>o4,isHTMLElement:()=>ne,isHTMLInputElement:()=>no,isHTMLTableCellElement:()=>nt,isInput:()=>o2,isInternalElement:()=>t4,isOutsideInput:()=>o3,isShadowRoot:()=>nn,isVisible:()=>oS,makeElementContentEditableAndSelectItsContent:()=>o7,matchesCSSRules:()=>oB,missingSanitizerMessage:()=>oC,observeVisibilityChangeOnce:()=>o5,offset:()=>ox,outerHeight:()=>oV,outerWidth:()=>oL,overlayContainsElement:()=>or,removeAttribute:()=>og,removeClass:()=>oc,removeContentEditableFromElementAndDeselect:()=>o9,removeEvent:()=>o$,removeTextNodes:()=>op,resetCssTransform:()=>o1,runWithSelectedContendEditableElement:()=>o8,selectElementIfAllowed:()=>o6,setAttribute:()=>ou,setCaretPosition:()=>oY,setOverlayPosition:()=>oJ});var g={};i.r(g),i.d(g,{curry:()=>ng,curryRight:()=>np,debounce:()=>nd,fastCall:()=>nm,isFunction:()=>ns,partial:()=>nu,pipe:()=>nc,throttle:()=>na,throttleAfterHits:()=>nh});var p={};i.r(p),i.d(p,{KEY_CODES:()=>nf,isCtrlKey:()=>ny,isCtrlMetaKey:()=>nv,isFunctionKey:()=>nw,isKey:()=>nS,isPrintableChar:()=>nC});var m={};i.r(m),i.d(m,{getFirstChangedTouch:()=>nI,getTouchPointById:()=>nA,hasTouchList:()=>nT,isImmediatePropagationStopped:()=>nx,isLeftClick:()=>nH,isMiddleClick:()=>nE,isRightClick:()=>nM,isTouchEvent:()=>nk,offsetRelativeTo:()=>n_,stopImmediatePropagation:()=>nR});var f={};i.r(f),i.d(f,{_dataToHTML:()=>it,htmlToGridSettings:()=>is,instanceToHTML:()=>ie,replaceTdCellsWithTextContent:()=>il});var b={};i.r(b),i.d(b,{equalsIgnoreCase:()=>ih,escapeHtml:()=>im,isJSON:()=>ic,isPercentValue:()=>iu,localeLowerCase:()=>iS,randomString:()=>id,sanitize:()=>ib,stripTags:()=>ig,substitute:()=>tK,toHyphen:()=>iC,toUpperCaseFirst:()=>ia});var C={};i.r(C),i.d(C,{clamp:()=>iA,getParsedNumber:()=>i_,isCommaThousandsGroupedInteger:()=>iM,isDotThousandsGroupedFloat:()=>iE,isDotThousandsGroupedInteger:()=>iH,isLossyNumericConversion:()=>iP,isNumeric:()=>iR,isNumericLike:()=>ix,isUnsignedNumber:()=>iD,rangeEach:()=>ik,rangeEachReverse:()=>iT,valueAccordingPercent:()=>iI});var w={};i.r(w),i.d(w,{cloneRow:()=>sf,countFirstRowKeys:()=>sg,createEmptySpreadsheetData:()=>sd,createSpreadsheetData:()=>sa,createSpreadsheetObjectData:()=>sh,dataRowToChangesArray:()=>sc,hasChangeForCell:()=>su,isArrayOfArrays:()=>sp,isArrayOfObjects:()=>sm,spreadsheetColumnIndex:()=>ss,spreadsheetColumnLabel:()=>sl});var y={};i.r(y),i.d(y,{CANCEL:()=>sU,CHECKBOX_CHECKED:()=>hg,CHECKBOX_RENDERER_NAMESPACE:()=>hu,CHECKBOX_UNCHECKED:()=>hp,COMMON_NAMESPACE:()=>sW,CONTEXTMENU_ITEMS_ADD_COMMENT:()=>ar,CONTEXTMENU_ITEMS_ALIGNMENT:()=>ah,CONTEXTMENU_ITEMS_ALIGNMENT_BOTTOM:()=>af,CONTEXTMENU_ITEMS_ALIGNMENT_CENTER:()=>ac,CONTEXTMENU_ITEMS_ALIGNMENT_JUSTIFY:()=>ag,CONTEXTMENU_ITEMS_ALIGNMENT_LEFT:()=>ad,CONTEXTMENU_ITEMS_ALIGNMENT_MIDDLE:()=>am,CONTEXTMENU_ITEMS_ALIGNMENT_RIGHT:()=>au,CONTEXTMENU_ITEMS_ALIGNMENT_TOP:()=>ap,CONTEXTMENU_ITEMS_BORDERS:()=>ab,CONTEXTMENU_ITEMS_BORDERS_BOTTOM:()=>ay,CONTEXTMENU_ITEMS_BORDERS_LEFT:()=>av,CONTEXTMENU_ITEMS_BORDERS_RIGHT:()=>aw,CONTEXTMENU_ITEMS_BORDERS_TOP:()=>aC,CONTEXTMENU_ITEMS_CLEAR_COLUMN:()=>s2,CONTEXTMENU_ITEMS_COPY:()=>s3,CONTEXTMENU_ITEMS_COPY_COLUMN_HEADERS_ONLY:()=>s5,CONTEXTMENU_ITEMS_COPY_WITH_COLUMN_GROUP_HEADERS:()=>s4,CONTEXTMENU_ITEMS_COPY_WITH_COLUMN_HEADERS:()=>s6,CONTEXTMENU_ITEMS_CUT:()=>s7,CONTEXTMENU_ITEMS_EDIT_COMMENT:()=>al,CONTEXTMENU_ITEMS_EXPORT:()=>s9,CONTEXTMENU_ITEMS_EXPORT_FILE_CSV:()=>s8,CONTEXTMENU_ITEMS_EXPORT_FILE_XLSX:()=>ae,CONTEXTMENU_ITEMS_FREEZE_COLUMN:()=>at,CONTEXTMENU_ITEMS_HIDE_COLUMN:()=>aM,CONTEXTMENU_ITEMS_HIDE_ROW:()=>aE,CONTEXTMENU_ITEMS_INSERT_LEFT:()=>sK,CONTEXTMENU_ITEMS_INSERT_RIGHT:()=>sX,CONTEXTMENU_ITEMS_MERGE_CELLS:()=>an,CONTEXTMENU_ITEMS_NESTED_ROWS_DETACH_CHILD:()=>ax,CONTEXTMENU_ITEMS_NESTED_ROWS_INSERT_CHILD:()=>aR,CONTEXTMENU_ITEMS_NO_ITEMS:()=>sq,CONTEXTMENU_ITEMS_READ_ONLY:()=>s1,CONTEXTMENU_ITEMS_READ_ONLY_COMMENT:()=>aa,CONTEXTMENU_ITEMS_REDO:()=>s0,CONTEXTMENU_ITEMS_REMOVE_BORDERS:()=>aS,CONTEXTMENU_ITEMS_REMOVE_COLUMN:()=>sQ,CONTEXTMENU_ITEMS_REMOVE_COMMENT:()=>as,CONTEXTMENU_ITEMS_REMOVE_ROW:()=>sZ,CONTEXTMENU_ITEMS_ROW_ABOVE:()=>sj,CONTEXTMENU_ITEMS_ROW_BELOW:()=>sY,CONTEXTMENU_ITEMS_SHOW_COLUMN:()=>aH,CONTEXTMENU_ITEMS_SHOW_ROW:()=>ak,CONTEXTMENU_ITEMS_UNDO:()=>sJ,CONTEXTMENU_ITEMS_UNFREEZE_COLUMN:()=>ao,CONTEXTMENU_ITEMS_UNMERGE_CELLS:()=>ai,CONTEXT_MENU_ITEMS_NAMESPACE:()=>sG,DATA_PROVIDER_BUTTONS_REFETCH:()=>hD,DATA_PROVIDER_ERRORS_CREATE:()=>hA,DATA_PROVIDER_ERRORS_FETCH:()=>hI,DATA_PROVIDER_ERRORS_REMOVE:()=>hO,DATA_PROVIDER_ERRORS_REQUEST_FAILED:()=>hP,DATA_PROVIDER_ERRORS_UPDATE:()=>h_,DATA_PROVIDER_NAMESPACE:()=>hT,EMPTY_DATA_STATE_BUTTONS_FILTERS_RESET:()=>hH,EMPTY_DATA_STATE_DESCRIPTION:()=>hR,EMPTY_DATA_STATE_DESCRIPTION_FILTERS:()=>hM,EMPTY_DATA_STATE_DESCRIPTION_LOADING:()=>hk,EMPTY_DATA_STATE_NAMESPACE:()=>hv,EMPTY_DATA_STATE_TITLE:()=>hS,EMPTY_DATA_STATE_TITLE_FILTERS:()=>hx,EMPTY_DATA_STATE_TITLE_LOADING:()=>hE,EXPORT_FILE_DIALOG_TITLE:()=>hy,EXPORT_FILE_NAMESPACE:()=>hw,FILTERS_BUTTONS_CANCEL:()=>a9,FILTERS_BUTTONS_CLEAR:()=>a5,FILTERS_BUTTONS_OK:()=>a7,FILTERS_BUTTONS_PLACEHOLDER_SEARCH:()=>a8,FILTERS_BUTTONS_PLACEHOLDER_SECOND_VALUE:()=>ht,FILTERS_BUTTONS_PLACEHOLDER_VALUE:()=>he,FILTERS_BUTTONS_SELECT_ALL:()=>a4,FILTERS_CONDITIONS_AFTER:()=>aj,FILTERS_CONDITIONS_AFTER_OR_EQUAL:()=>aY,FILTERS_CONDITIONS_BEFORE:()=>aK,FILTERS_CONDITIONS_BEFORE_OR_EQUAL:()=>aX,FILTERS_CONDITIONS_BEGINS_WITH:()=>aN,FILTERS_CONDITIONS_BETWEEN:()=>aG,FILTERS_CONDITIONS_BY_VALUE:()=>aF,FILTERS_CONDITIONS_CONTAINS:()=>aL,FILTERS_CONDITIONS_EMPTY:()=>a_,FILTERS_CONDITIONS_ENDS_WITH:()=>aB,FILTERS_CONDITIONS_EQUAL:()=>aP,FILTERS_CONDITIONS_GREATER_THAN:()=>az,FILTERS_CONDITIONS_GREATER_THAN_OR_EQUAL:()=>aW,FILTERS_CONDITIONS_LESS_THAN:()=>a$,FILTERS_CONDITIONS_LESS_THAN_OR_EQUAL:()=>aU,FILTERS_CONDITIONS_NAMESPACE:()=>aI,FILTERS_CONDITIONS_NONE:()=>aA,FILTERS_CONDITIONS_NOT_BETWEEN:()=>aq,FILTERS_CONDITIONS_NOT_CONTAIN:()=>aV,FILTERS_CONDITIONS_NOT_EMPTY:()=>aO,FILTERS_CONDITIONS_NOT_EQUAL:()=>aD,FILTERS_CONDITIONS_TODAY:()=>aZ,FILTERS_CONDITIONS_TOMORROW:()=>aQ,FILTERS_CONDITIONS_YESTERDAY:()=>aJ,FILTERS_DIVS_FILTER_BY_CONDITION:()=>a0,FILTERS_DIVS_FILTER_BY_VALUE:()=>a1,FILTERS_LABELS_CONJUNCTION:()=>a2,FILTERS_LABELS_DISJUNCTION:()=>a3,FILTERS_NAMESPACE:()=>aT,FILTERS_VALUES_BLANK_CELLS:()=>a6,LOADING_NAMESPACE:()=>hm,LOADING_TITLE:()=>hf,NOTIFICATION_BUTTONS_CLOSE:()=>hC,NOTIFICATION_NAMESPACE:()=>hb,OK:()=>s$,PAGINATION_COUNTER_SECTION:()=>hl,PAGINATION_FIRST_PAGE:()=>ha,PAGINATION_LAST_PAGE:()=>hc,PAGINATION_NAMESPACE:()=>ho,PAGINATION_NAV_SECTION:()=>hs,PAGINATION_NEXT_PAGE:()=>hd,PAGINATION_PAGE_SIZE_AUTO:()=>hi,PAGINATION_PAGE_SIZE_SECTION:()=>hr,PAGINATION_PREV_PAGE:()=>hh,PAGINATION_SECTION:()=>hn});var v={};i.r(v),i.d(v,{ISO_DATETIME_REGEX:()=>uI,ISO_DATE_REGEX:()=>uv,TIME_REGEX:()=>uE,getNormalizedDate:()=>uS,getRelativeLocalDate:()=>uP,getTodayLocalDate:()=>uO,isSameLocalDay:()=>uD,isValidISODate:()=>uH,isValidISODateTime:()=>u_,isValidTime:()=>uT,parseToLocalDate:()=>uR,parseToLocalDateTime:()=>uA,parseToLocalTime:()=>uk});let S=e=>["tabindex",e],R=()=>["role","presentation"],x=()=>["role","gridcell"],M=()=>["role","gridcell button"],H=()=>["role","rowheader"],E=()=>["role","rowgroup"],k=()=>["role","columnheader"],T=()=>["role","row"],I=()=>["role","listbox"],A=()=>["scope","col"],_=()=>["scope","row"],O=e=>["aria-label",e],P=()=>["aria-hidden","true"],D=function(){let e=!(arguments.length>0)||void 0===arguments[0]||arguments[0];return["aria-disabled",e]},N=e=>["aria-haspopup",e],B=e=>["aria-rowcount",e],L=e=>["aria-colcount",e],V=e=>["aria-rowindex",e],F=e=>["aria-colindex",e],z=e=>["aria-expanded",e],W=()=>["aria-readonly","true"],$=()=>["aria-invalid","true"],U=e=>["aria-checked",e],G=()=>["aria-selected","true"],q=()=>["aria-busy","true"];function j(e){let t=e.length,o=0;for(;o<t;)e[o]=[e[o]],o+=1}function Y(e,t){let o=t.length,n=0;for(;n<o;)e.push(t[n]),n+=1}function K(e){let t=[];if(!e||0===e.length||!e[0]||0===e[0].length)return t;let o=e.length,n=e[0].length;for(let i=0;i<o;i++)for(let o=0;o<n;o++)t[o]||(t[o]=[]),t[o][i]=e[i][o];return t}function X(e,t,o,n){let i=-1,r=Array.isArray(e)?e:Array.from(e),l=r.length;n&&l&&(i+=1,o=r[i]);let s=o;for(i+=1;i<l;)s=t(s,r[i],i,r),i+=1;return s}function Z(e,t){let o=0,n=Array.isArray(e)?e:Array.from(e),i=n.length,r=[],l=-1;for(;o<i;){let e=n[o];t(e,o,n)&&(r[l+=1]=e),o+=1}return r}function Q(e,t){let o=0,n=Array.isArray(e)?e:Array.from(e),i=n.length,r=[],l=-1;for(;o<i;){let e=n[o];r[l+=1]=t(e,o,n),o+=1}return r}function J(e,t){let o,n=0,i=(o=Array.isArray(e)?e:Array.from(e)).length;for(;n<i&&!1!==t(o[n],n,o);)n+=1;return o}function ee(e){return X(e,(e,t)=>e+t,0)}function et(e){return X(e,(e,t)=>void 0!==e&&e>t?e:t,e[0])}function eo(e){return X(e,(e,t)=>void 0!==e&&e<t?e:t,e[0])}function en(e){return e.length?ee(e)/e.length:0}function ei(e,t){let o=0;for(let n=0;n<e.length;n++)t.has(n)||(e[o]=e[n],o+=1);return e.length=o,e}function er(e,t,o,n){if(o<=0)return e;let i=e.length,r=Math.min(t,i);e.length=i+o;for(let t=i-1;t>=r;t--)e[t+o]=e[t];return e.fill(n,r,r+o),e}function el(e){let t=[],o=new Set;return J(e,e=>{o.has(e)||(o.add(e),t.push(e))}),t}function es(){for(var e=arguments.length,t=Array(e),o=0;o<e;o++)t[o]=arguments[o];let[n,...i]=[...t],r=n;return J(i,e=>{let t=new Set(e);r=r.filter(e=>!t.has(e))}),r}function ea(){let e;for(var t=arguments.length,o=Array(t),n=0;n<t;n++)o[n]=arguments[n];let i=[];J(o,(t,n)=>{"function"==typeof t?n===o.length-1&&(e=t):i.push(t)});let[r,...l]=i,s=r;return J(l,t=>{if(e)s=s.filter(o=>t.some(t=>e(o,t)));else{let e=new Set(t);s=s.filter(t=>e.has(t))}}),s}function eh(){for(var e=arguments.length,t=Array(e),o=0;o<e;o++)t[o]=arguments[o];let[n,...i]=[...t],r=new Set(n);return J(i,e=>{J(e,e=>{r.has(e)||r.add(e)})}),Array.from(r)}function ed(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:" ";return e.split(t)}function ec(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:" ";return e.join(t)}function eu(e){for(var t=arguments.length,o=Array(t>1?t-1:0),n=1;n<t;n++)o[n-1]=arguments[n];return X(Array.from(e),(e,t,n)=>e+t.replace(/\r?\n\s*/g,"")+(o[n]?o[n]:""),"").trim()}function eg(e){for(var t=arguments.length,o=Array(t>1?t-1:0),n=1;n<t;n++)o[n-1]=arguments[n];let i=document.createElement("template");i.innerHTML=Array.from(e).reduce((e,t,n)=>e+t+(o[n]??""),"");let r=i.content.cloneNode(!0),l={};return r.querySelectorAll("[data-ref]").forEach(e=>{let t=e.dataset.ref??null;delete e.dataset.ref,null!==t&&(l[t]=e)}),{fragment:r,refs:l}}let ep={"non-commercial-and-evaluation":"non-commercial-and-evaluation"},em=/^[0-9a-fA-F]{25}$/;function ef(e){return"entitlement"===function(e){if("string"!=typeof e)return"unknown";let t=e.trim(),o=t.toLowerCase();if(Object.prototype.hasOwnProperty.call(ep,o))return ep[o];let n=t.lastIndexOf("[");return -1!==n&&-1!==t.indexOf("]",n)?"entitlement":em.test(t.replace(/-/g,""))?"legacy":"unknown"}(e)}let eb=["usage_until","release_until"],eC=[0x428a2f98,0xd728ae22,0x71374491,0x23ef65cd,0xb5c0fbcf,0xec4d3b2f,0xe9b5dba5,0x8189dbbc,0x3956c25b,0xf348b538,0x59f111f1,0xb605d019,0x923f82a4,0xaf194f9b,0xab1c5ed5,0xda6d8118,0xd807aa98,0xa3030242,0x12835b01,0x45706fbe,0x243185be,0x4ee4b28c,0x550c7dc3,0xd5ffb4e2,0x72be5d74,0xf27b896f,0x80deb1fe,0x3b1696b1,0x9bdc06a7,0x25c71235,0xc19bf174,0xcf692694,0xe49b69c1,0x9ef14ad2,0xefbe4786,0x384f25e3,0xfc19dc6,0x8b8cd5b5,0x240ca1cc,0x77ac9c65,0x2de92c6f,0x592b0275,0x4a7484aa,0x6ea6e483,0x5cb0a9dc,0xbd41fbd4,0x76f988da,0x831153b5,0x983e5152,0xee66dfab,0xa831c66d,0x2db43210,0xb00327c8,0x98fb213f,0xbf597fc7,0xbeef0ee4,0xc6e00bf3,0x3da88fc2,0xd5a79147,0x930aa725,0x6ca6351,0xe003826f,0x14292967,0xa0e6e70,0x27b70a85,0x46d22ffc,0x2e1b2138,0x5c26c926,0x4d2c6dfc,0x5ac42aed,0x53380d13,0x9d95b3df,0x650a7354,0x8baf63de,0x766a0abb,0x3c77b2a8,0x81c2c92e,0x47edaee6,0x92722c85,0x1482353b,0xa2bfe8a1,0x4cf10364,0xa81a664b,0xbc423001,0xc24b8b70,0xd0f89791,0xc76c51a3,0x654be30,0xd192e819,0xd6ef5218,0xd6990624,0x5565a910,0xf40e3585,0x5771202a,0x106aa070,0x32bbd1b8,0x19a4c116,0xb8d2d0c8,0x1e376c08,0x5141ab53,0x2748774c,0xdf8eeb99,0x34b0bcb5,0xe19b48a8,0x391c0cb3,0xc5c95a63,0x4ed8aa4a,0xe3418acb,0x5b9cca4f,0x7763e373,0x682e6ff3,0xd6b2b8a3,0x748f82ee,0x5defb2fc,0x78a5636f,0x43172f60,0x84c87814,0xa1f0ab72,0x8cc70208,0x1a6439ec,0x90befffa,0x23631e28,0xa4506ceb,0xde82bde9,0xbef9a3f7,0xb2c67915,0xc67178f2,0xe372532b,0xca273ece,0xea26619c,0xd186b8c7,0x21c0c207,0xeada7dd6,0xcde0eb1e,0xf57d4f7f,0xee6ed178,0x6f067aa,0x72176fba,0xa637dc5,0xa2c898a6,0x113f9804,0xbef90dae,0x1b710b35,0x131c471b,0x28db77f5,0x23047d84,0x32caab7b,0x40c72493,0x3c9ebe0a,0x15c9bebc,0x431d67c4,0x9c100d4c,0x4cc5d4be,0xcb3e42b6,0x597f299c,0xfc657e2a,0x5fcb6fab,0x3ad6faec,0x6c44198c,0x4a475817];function ew(e){return`00000000${(e>>>0).toString(16)}`.slice(-8)}function ey(e){let t=/^(\d{4})-(\d{2})-(\d{2})$/.exec(`${e}`);if(null===t)return null;let o=parseInt(t[1],10),n=parseInt(t[2],10),i=parseInt(t[3],10);if(o<100)return null;let r=Date.UTC(o,n-1,i),l=new Date(r);return l.getUTCFullYear()!==o||l.getUTCMonth()!==n-1||l.getUTCDate()!==i?null:r}let ev=/^[A-Za-z0-9\-_]+$/,eS=/^[0-9a-f]+$/;function eR(e){return null!==e&&"object"==typeof e&&!Array.isArray(e)}function ex(e){return"number"==typeof e&&Number.isFinite(e)&&Math.floor(e)===e&&e>=0}function eM(e){return Array.isArray(e)&&e.every(e=>"string"==typeof e)}function eH(e,t,o){Object.defineProperty(e,t,{value:o,enumerable:!0,writable:!0,configurable:!0})}let eE=null,ek=null;function eT(e,t){var o;if(o=e.products,!Object.prototype.hasOwnProperty.call(o,t))return null;let n=e.products[t];return eR(n)?n:null}let eI=Object.freeze({unrestricted:!0,products:Object.freeze({})});function eA(e){return 864e5*Math.floor(e/864e5)}function e_(e,t){return(e-eA(t))/864e5}function eO(e){let t;switch(typeof e){case"string":case"number":t=`${e}`;break;case"object":t=null===e?"":e.toString();break;case"undefined":t="";break;default:t=e.toString()}return t}function eP(e){return void 0!==e}function eD(e){return void 0===e}function eN(e){return null===e||""===e||eD(e)}function eB(e){return"[object RegExp]"===Object.prototype.toString.call(e)}let eL="length",eV=e=>parseInt(e,16),eF=e=>parseInt(e,10),ez=(e,t,o)=>e.substr(t,o),eW=e=>(e.codePointAt(0)??0)-65,e$=e=>`${e}`.replace(/\-/g,""),eU=e=>eV(ez(e$(e),eV("12"),eW("F")))/(eV(ez(e$(e),eW("B"),~~![][eL]))||9),eG=()=>"u">typeof location&&/^([a-z0-9\-]+\.)?\x68\x61\x6E\x64\x73\x6F\x6E\x74\x61\x62\x6C\x65\x2E\x63\x6F\x6D$/i.test(location.host),eq=!1,ej=new Set,eY={invalid:()=>eu`
|
|
32
32
|
The license key for Handsontable is invalid.\x20
|
|
@@ -69,7 +69,7 @@
|
|
|
69
69
|
The license key for Handsontable expired on ${t}, and is not valid for the installed\x20
|
|
70
70
|
version ${o}. <a href="https://handsontable.com/pricing" target="_blank">Renew</a> your license\x20
|
|
71
71
|
key or downgrade to a version released on or before ${t}. If you need any help, contact us\x20
|
|
72
|
-
at <a href="mailto:sales@handsontable.com">sales@handsontable.com</a>.`}},e3=Object.freeze(["trial_hard_stop","invalid","missing"]);function e6(e){return -1!==e3.indexOf(e)}function e4(e){return"string"==typeof e?e.trim():e}function e5(e){let t,{className:o,key:n,element:i,releaseDate:r}=e;if(ef(n=e4(n)))return function(e){let{className:t,key:o,element:n,releaseDate:i}=e;if(eG())return null;let{lifecycle:r,channels:l}=te(o,i),{state:s}=r,a={daysRemaining:r.daysRemaining,licensedUntil:r.licensedUntil??void 0,hotVersion:"18.1.0"};if(l.console&&!ej.has(o??"")){let e="invalid"===s?{severity:"warn",message:()=>eY.invalid({})}:e1[s];e&&(console[e.severity](e.message(a)),ej.add(o??""))}if(!l.ui||!n||e6(s))return null;let h=e2[s];if(!h)return null;let d=n.ownerDocument,c=d.createElement("div"),u=d.createElement("div");return c.className=`handsontable ${t}`,u.className=`${t}_inner`,u.innerHTML=h(a),c.appendChild(u),n.appendChild(c),c}({className:o,key:n,element:i,releaseDate:r});let l=!eN(n),s="string"==typeof n&&("non-commercial-and-evaluation"===n.toLowerCase()||"ht68e-1f2b7-47158-70b05-0842f"===n.toLowerCase()),a="18.1.0",h="invalid",d="invalid",c=tt(n=e$(n||""));if(s)h="non_commercial",d="valid";else if(l||c)if(c){let[e,o,i]=(r??"01/09/2026"??"").split("/").map(Number),l=Math.floor(Date.UTC(i,o-1,e)/864e5),s=eU(n);t=new Intl.DateTimeFormat("en-US",{year:"numeric",month:"long",day:"2-digit",timeZone:"UTC"}).format((s+1)*864e5),l>s?(h="expired",d="expired"):(h="valid",d="valid")}else h="invalid",d="invalid";else h="missing",d="missing";if(eG()&&(h="valid",d="valid"),eq||"valid"===h||(eY[h]({keyValidityDate:t,hotVersion:a})&&console["non_commercial"===h?"info":"warn"](eY[h]({keyValidityDate:t,hotVersion:a})),eq=!0),"valid"!==d&&!e6(d)&&i&&eK[d]({keyValidityDate:t,hotVersion:a})){let e=document.createElement("div"),n=document.createElement("div");return e.className=`handsontable ${o}`,n.className=`${o}_inner`,n.innerHTML=eK[d]({keyValidityDate:t,hotVersion:a}),e.appendChild(n),i.appendChild(e),e}return null}function e7(e){return new Date(e).toISOString().slice(0,10)}let e9=Object.freeze({console:!0,ui:!0});function e8(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;return{state:e,isTrial:!1,daysRemaining:null,licensedUntil:t}}function te(e,t){let o,n,i=e4(e);if(eG())return{lifecycle:e8("legacy_valid"),channels:e9,grants:eI};if(!ef(i))return{lifecycle:function(e,t){if("string"==typeof e&&("non-commercial-and-evaluation"===e.toLowerCase()||"ht68e-1f2b7-47158-70b05-0842f"===e.toLowerCase()))return e8("non_commercial");if(eN(e))return e8("missing");let o=e$(e||"");if(!tt(o))return e8("invalid");let[n,i,r]=(t??"01/09/2026"??"").split("/").map(Number),l=Math.floor(Date.UTC(r,i-1,n)/864e5),s=eU(o);return l>s?e8("legacy_expired",e7((s+1)*864e5)):e8("legacy_valid")}(i,t),channels:e9,grants:eI};let r=((o=`${i}`)!==eE&&(eE=o,ek=function(e){let t,o,n=e.lastIndexOf("[");if(-1===n)return null;let i=e.indexOf("]",n);if(-1===i)return null;let r=e.slice(n+1,i);if(r.length<=128)return null;let l=r.slice(0,-128),s=r.slice(-128);if(!ev.test(l)||!eS.test(s)||function(e){let t=e.length,o=Math.ceil((t+17)/128),n=new Uint8Array(128*o);n.set(e),n[t]=128;let i=8*t,r=n.length;n[r-7]=255&Math.floor(i/0x1000000000000),n[r-6]=255&Math.floor(i/0x10000000000),n[r-5]=255&Math.floor(i/0x100000000),n[r-4]=i>>>24&255,n[r-3]=i>>>16&255,n[r-2]=i>>>8&255,n[r-1]=255&i;let l=[0x6a09e667,0xf3bcc908,0xbb67ae85,0x84caa73b,0x3c6ef372,0xfe94f82b,0xa54ff53a,0x5f1d36f1,0x510e527f,0xade682d1,0x9b05688c,0x2b3e6c1f,0x1f83d9ab,0xfb41bd6b,0x5be0cd19,0x137e2179],s=Array(80),a=Array(80);for(let e=0;e<o;e+=1){let t=128*e;for(let e=0;e<16;e+=1){let o=t+8*e;s[e]=(n[o]<<24|n[o+1]<<16|n[o+2]<<8|n[o+3])>>>0,a[e]=(n[o+4]<<24|n[o+5]<<16|n[o+6]<<8|n[o+7])>>>0}for(let e=16;e<80;e+=1){let t=s[e-2],o=a[e-2],n=s[e-15],i=a[e-15],r=(t>>>19|o<<13)^(o>>>29|t<<3)^t>>>6,l=(n>>>1|i<<31)^(n>>>8|i<<24)^n>>>7,h=(i>>>1|n<<31)^(i>>>8|n<<24)^(i>>>7|n<<25),d=(((o>>>19|t<<13)^(t>>>29|o<<3)^(o>>>6|t<<26))>>>0)+(a[e-7]>>>0)+(h>>>0)+(a[e-16]>>>0);a[e]=d>>>0,s[e]=(r>>>0)+(s[e-7]>>>0)+(l>>>0)+(s[e-16]>>>0)+Math.floor(d/0x100000000)>>>0}let o=l[0],i=l[1],r=l[2],h=l[3],d=l[4],c=l[5],u=l[6],g=l[7],p=l[8],m=l[9],f=l[10],b=l[11],C=l[12],w=l[13],y=l[14],v=l[15];for(let e=0;e<80;e+=1){let t=(p>>>14|m<<18)^(p>>>18|m<<14)^(m>>>9|p<<23),n=(m>>>14|p<<18)^(m>>>18|p<<14)^(p>>>9|m<<23),l=(o>>>28|i<<4)^(i>>>2|o<<30)^(i>>>7|o<<25),S=(i>>>28|o<<4)^(o>>>2|i<<30)^(o>>>7|i<<25),R=p&f^~p&C,x=o&r^o&d^r&d,M=i&h^i&c^h&c,H=(v>>>0)+(n>>>0)+((m&b^~m&w)>>>0)+(eC[2*e+1]>>>0)+(a[e]>>>0),E=H>>>0,k=(y>>>0)+(t>>>0)+(R>>>0)+(eC[2*e]>>>0)+(s[e]>>>0)+Math.floor(H/0x100000000)>>>0,T=(S>>>0)+(M>>>0),I=T>>>0,A=(l>>>0)+(x>>>0)+Math.floor(T/0x100000000)>>>0;y=C,v=w,C=f,w=b,f=p,b=m;let _=(g>>>0)+E;m=_>>>0,p=(u>>>0)+k+Math.floor(_/0x100000000)>>>0,u=d,g=c,d=r,c=h,r=o,h=i;let O=E+I;i=O>>>0,o=k+A+Math.floor(O/0x100000000)>>>0}let S=[o,i,r,h,d,c,u,g,p,m,f,b,C,w,y,v];for(let e=0;e<16;e+=2){let t=(l[e+1]>>>0)+(S[e+1]>>>0);l[e+1]=t>>>0,l[e]=(l[e]>>>0)+(S[e]>>>0)+Math.floor(t/0x100000000)>>>0}}return l.map(ew).join("")}(function(e){let t=[];for(let o=0;o<e.length;o+=1){let n=e.charCodeAt(o);if(n>=55296&&n<=56319&&o+1<e.length){let t=e.charCodeAt(o+1);t>=56320&&t<=57343&&(n=(n-55296)*1024+(t-56320)+65536,o+=1)}n<128?t.push(n):n<2048?t.push(192|n>>6,128|63&n):n<65536?t.push(224|n>>12,128|n>>6&63,128|63&n):t.push(240|n>>18,128|n>>12&63,128|n>>6&63,128|63&n)}return t}(l))!==s)return null;let a=null===(o=function(e){let t=`${e}`.replace(/-/g,"+").replace(/_/g,"/").replace(/=+$/,"");if(!/^[A-Za-z0-9+/]*$/.test(t)||t.length%4==1)return null;let o=[];for(let e=0;e<t.length;e+=4){let n=[0,1,2,3].map(o=>{let n=t.charAt(e+o);return""===n?-1:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".indexOf(n)});o.push(n[0]<<2|n[1]>>4),-1!==n[2]&&o.push((15&n[1])<<4|n[2]>>2),-1!==n[3]&&o.push((3&n[2])<<6|n[3])}return o}(l))?null:function(e){let t="",o=0;for(;o<e.length;){let n,i=e[o];i<128?(n=i,o+=1):i<224?(n=(31&i)<<6|63&e[o+1],o+=2):i<240?(n=(15&i)<<12|(63&e[o+1])<<6|63&e[o+2],o+=3):(n=(7&i)<<18|(63&e[o+1])<<12|(63&e[o+2])<<6|63&e[o+3],o+=4),n>=65536?(n-=65536,t+=String.fromCharCode(55296+(n>>10),56320+(1023&n))):t+=String.fromCharCode(n)}return t}(o);if(null===a)return null;try{t=JSON.parse(a)}catch(e){return null}if(!eR(t)||!eR(t.products))return null;let h={},d=t.products,c=!1;return(Object.keys(d).forEach(e=>{let t=function(e){if(!eR(e)||!eM(e.capabilities))return null;let t=eb.filter(t=>void 0!==e[t]);if(1!==t.length||null===ey(`${e[t[0]]}`)||!ex(e.notice)||!ex(e.grace)||void 0!==e.flags&&!eM(e.flags))return null;let o={};return Object.keys(e).forEach(t=>eH(o,t,e[t])),eH(o,"capabilities",e.capabilities.slice()),eH(o,"notice",e.notice),eH(o,"grace",e.grace),eH(o,"flags",void 0===e.flags?[]:e.flags.slice()),eH(o,t[0],e[t[0]]),o}(d[e]);if(null===t){c=!0;return}eH(h,e,t)}),c)?null:{products:h}}(o)),ek),l=null===r?null:eT(r,"handsontable");if(null===r||null===l)return{lifecycle:e8("invalid"),channels:e9,grants:eI};let s=t||"01/09/2026";return{lifecycle:function(e,t){let o=-1!==e.flags.indexOf("trial");if(void 0!==e.release_until){let n=e.release_until;return{state:n>=t.buildDate||null===ey(t.buildDate)?"release_valid":"release_expired",isTrial:o,daysRemaining:null,licensedUntil:n}}let n=`${e.usage_until}`,i=ey(n)??eA(t.now),r=function(e,t,o){let n=e+864e5;if(o>=n)return o<n+864e5*t.grace?"soft_stop":"hard_stop";let i=e_(e,o);return t.notice>0&&i<=t.notice?"notice":"valid"}(i,e,t.now);return{state:`${o?"trial":"usage"}_${r}`,isTrial:o,daysRemaining:e_(i,t.now),licensedUntil:n}}(l,{now:Date.now(),buildDate:function(e){let[t,o,n]=`${e}`.split("/");return t&&o&&n?`${n}-${o.padStart(2,"0")}-${t.padStart(2,"0")}`:""}(s)}),channels:{console:-1===l.flags.indexOf("no-console-warns"),ui:-1===l.flags.indexOf("no-ui-warns")},grants:(n={},Object.keys(r.products).forEach(e=>{let t=eT(r,e);null!==t&&eH(n,e,{capabilities:t.capabilities.slice()})}),{unrestricted:!1,products:n})}}function tt(e){let t=[][eL],o=t;if(e[eL]!==eW("Z"))return!1;for(let t="",n="B<H4P+".split(""),i=eW(n.shift()??"A");i;i=eW(n.shift()??"A"))--i<""[eL]?o|=(eF(`${eF(eV(t)+(eV(ez(e,Math.abs(i),2))+String([])).padStart(2,"0"))}`)%97||2)>>1:t=ez(e,i,i?1===n[eL]?9:8:6);return o===t}function to(e){let t=Error(e);throw t.cause={handsontable:!0},t}function tn(e){let t;if(Array.isArray(e))t=e.length?Array(e.length).fill(null):[];else{let o=Object.create(null);tp(e,(e,t)=>{"__children"!==t&&(e&&"object"==typeof e&&!Array.isArray(e)?o[t]=tn(e):Array.isArray(e)?e.length&&"object"==typeof e[0]&&!Array.isArray(e[0])?o[t]=[tn(e[0])]:o[t]=[]:o[t]=null)}),t=o}return t}function ti(e,t){return t.prototype.constructor=t,e.prototype=new t,e.prototype.constructor=e,e}function tr(e,t,o){let n=Array.isArray(o);return tp(t,(t,i)=>{"__proto__"!==i&&"constructor"!==i&&"prototype"!==i&&(!1===n||o.includes(i))&&(e[i]=t)}),e}function tl(e,t){tp(t,(o,n)=>{if("__proto__"===n||"constructor"===n||"prototype"===n)return;let i=t[n];i&&"object"==typeof i?(e[n]||(Array.isArray(i)?e[n]=[]:"[object Date]"===Object.prototype.toString.call(i)?e[n]=i:e[n]={}),tl(e[n],i)):e[n]=i})}function ts(e){if(Array.isArray(e))return e.map(e=>ts(e));if(e instanceof Date)return new Date(e);if("object"==typeof e&&null!==e){let t={};for(let[o,n]of Object.entries(e))"__proto__"!==o&&"constructor"!==o&&"prototype"!==o&&(t[o]=ts(n));return t}return e}function ta(e){let t={};return tp(e,(e,o)=>{t[o]=e}),t}function th(e){for(var t=arguments.length,o=Array(t>1?t-1:0),n=1;n<t;n++)o[n-1]=arguments[n];return e.MIXINS||(e.MIXINS=[]),J(o,t=>{e.MIXINS.push(t.MIXIN_NAME),tp(t,(t,o)=>{if(void 0!==e.prototype[o]&&to(`Mixin conflict. Property '${o}' already exist and cannot be overwritten.`),"function"==typeof t)e.prototype[o]=t;else{let n,i;Object.defineProperty(e.prototype,o,{get:(n=`_${o}`,function(){let e;return void 0===this[n]&&(this[n]=((Array.isArray(e=t)||tu(e))&&(e=ts(e)),e)),this[n]}),set:(i=`_${o}`,function(e){this[i]=e}),configurable:!0})}})}),e}function td(e,t){let o=e=>{if(void 0===e)return"undefined";if(Array.isArray(e))return`[${e.map(o).join(",")}]`;if(e instanceof Date)return JSON.stringify(e);if(null!==e&&"object"==typeof e){let t=Object.entries(e).sort((e,t)=>{let[o]=e,[n]=t;return o.localeCompare(n)}).map(e=>{let[t,n]=e;return`${JSON.stringify(t)}:${o(n)}`});return`{${t.join(",")}}`}return JSON.stringify(e)};return o(e)===o(t)}function tc(e){return tu(e)}function tu(e){return"[object Object]"===Object.prototype.toString.call(e)}function tg(e,t,o,n){n.value=o,n.writable=!1!==n.writable,n.enumerable=!1!==n.enumerable,n.configurable=!1!==n.configurable,Object.defineProperty(e,t,n)}function tp(e,t){for(let o in e)if((!e.hasOwnProperty||e.hasOwnProperty&&Object.prototype.hasOwnProperty.call(e,o))&&!1===t(e[o],o,e))break;return e}function tm(e,t){let o=t.split("."),n=e;for(let e of o)if(void 0===(n=n[e]))return;return n}function tf(e,t,o){if("string"!=typeof t||null===e||"object"!=typeof e)return;let n=t.split("."),i=e;for(let e=0;e<n.length;e+=1){let t=n[e];if("__proto__"===t||"constructor"===t||"prototype"===t)return;if(e!==n.length-1){tw(i,t)||(i[t]={});let e=i[t];if(!tu(e))return;i=e}else Object.defineProperty(i,t,{value:o,writable:!0,enumerable:!0,configurable:!0})}}function tb(e){if(!tu(e))return 0;let t=function(e){let o=0;return tu(e)?tp(e,(e,n)=>{"__children"!==n&&(o+=t(e))}):o+=1,o};return t(e)}function tC(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"value",o=`_${t}`,n={_touched:!1,[o]:e,isTouched(){return!!this._touched},value:void 0};return Object.defineProperty(n,t,{get(){return this[o]},set(e){this._touched=!0,this[o]=e},enumerable:!0,configurable:!0}),n}function tw(e,t){return Object.prototype.hasOwnProperty.call(e,t)}function ty(e,t){if("object"!=typeof e||null===e)return t;if("object"!=typeof t||null===t)return e;let o={};return Object.keys(t).forEach(n=>{let i=t[n],r=e[n];tu(i)?o[n]=ty(tu(r)?r:{},i):o[n]=tw(e,n)&&void 0!==r?r:i}),Object.keys(e).forEach(t=>{tw(o,t)||(o[t]=e[t])}),o}function tv(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},o={...e};return Object.keys(t).forEach(e=>{if("__proto__"===e||"constructor"===e||"prototype"===e)return;let n=t[e],i=o[e];tu(n)&&tu(i)?o[e]=tv(i,n):o[e]=n}),o}function tS(e){return tu(e)&&eP(e.key)&&eP(e.value)}function tR(e){return window.requestAnimationFrame(e)}function tx(e){window.cancelAnimationFrame(e)}function tM(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:100;return"function"==typeof window.requestIdleCallback?window.requestIdleCallback(()=>e(),{timeout:t}):window.requestAnimationFrame(e)}function tH(e){"function"==typeof window.cancelIdleCallback?window.cancelIdleCallback(e):window.cancelAnimationFrame(e)}function tE(){return"ontouchstart"in window}function tk(){return"u">typeof window}function tT(t){let o=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return e||(e="object"==typeof Intl?new Intl.Collator(t,o).compare:"function"==typeof String.prototype.localeCompare?(e,t)=>`${e}`.localeCompare(t):(e,t)=>e===t?0:e>t?-1:1)}let tI=e=>{let t={value:!1,test(o,n){t.value=e(o,n)}};return t},tA={chrome:tI((e,t)=>/Chrome/.test(e)&&/Google/.test(t??"")),chromeWebKit:tI(e=>/CriOS/.test(e)),edge:tI(e=>/Edge/.test(e)),edgeWebKit:tI(e=>/EdgiOS/.test(e)),firefox:tI(e=>/Firefox/.test(e)),firefoxWebKit:tI(e=>/FxiOS/.test(e)),mobile:tI(e=>/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(e)),safari:tI((e,t)=>/Safari/.test(e)&&/Apple Computer/.test(t??"")),safariBefore261:tI((e,t)=>{if(!/Safari/.test(e)||!/Apple Computer/.test(t??""))return!1;let o=/Version\/(\d+(?:\.\d+)?)/i.exec(e);return(o?Number.parseFloat(o[1]):0)<26.1})},t_={mac:tI(e=>/^Mac/.test(e)),win:tI(e=>/^Win/.test(e)),linux:tI(e=>/^Linux/.test(e)),ios:tI(e=>/iPhone|iPad|iPod/i.test(e))};function tO(){let{userAgent:e=navigator.userAgent,vendor:t=navigator.vendor}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};tp(tA,o=>{let{test:n}=o;return n(e,t)})}function tP(){let{platform:e=navigator.platform}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};tp(t_,t=>{let{test:o}=t;return o(e)})}function tD(){return tA.chrome.value}function tN(){return tA.chromeWebKit.value}function tB(){return tA.firefox.value}function tL(){return tA.firefoxWebKit.value}function tV(){return tA.safari.value}function tF(){return tA.safariBefore261.value}function tz(){return tA.edge.value}function tW(){return tA.edgeWebKit.value}function t$(){return tA.mobile.value}function tU(){return t_.ios.value}function tG(){let{maxTouchPoints:e}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:navigator;return(e??0)>2&&t_.mac.value}function tq(){return t_.win.value}function tj(){return t_.mac.value}function tY(){return t_.linux.value}function tK(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return`${e}`.replace(/(?:\\)?\[([^[\]]+)]/g,(e,o)=>"\\"===e.charAt(0)?e.substr(1,e.length-1):void 0===t[o]?"":String(t[o]))}function tX(){for(var e=arguments.length,t=Array(e),o=0;o<e;o++)t[o]=arguments[o];eP(console)&&console.log(...t)}function tZ(){for(var e=arguments.length,t=Array(e),o=0;o<e;o++)t[o]=arguments[o];eP(console)&&console.warn(...t)}tk()&&(tO(),tP());let tQ=new WeakMap;function tJ(e,t){for(var o=arguments.length,n=Array(o>2?o-2:0),i=2;i<o;i++)n[i-2]=arguments[i];let r=tQ.get(e);void 0===r&&(r=new Set,tQ.set(e,r)),r.has(t)||(r.add(t),tZ(...n))}let t0=new Set;function t1(e,t){t0.has(e)||eP(console)&&(t0.add(e),console.warn(t))}function t2(e,t){t1(e,`Deprecated: ${t}`)}function t3(){for(var e=arguments.length,t=Array(e),o=0;o<e;o++)t[o]=arguments[o];eP(console)&&console.error(...t)}function t6(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,o=-1,n=null,i=e;for(;null!==i;){if(o===t){n=ne(i)?i:null;break}nn(i)?i=i.host:(o+=1,i=i.parentNode)}return n}function t4(e,t){let o=e.closest(".handsontable");return!!o&&(o.parentNode===t||o===t)}function t5(e){return e.target}function t7(e){let{frameElement:t}=e;return e.parent&&Object.getPrototypeOf(e.parent)&&t instanceof HTMLIFrameElement?t:null}function t9(e){return t7(e)?e.parent:null}function t8(e){return!!Object.getPrototypeOf(e.parent)}function oe(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[],o=arguments.length>2?arguments[2]:void 0,{ELEMENT_NODE:n,DOCUMENT_FRAGMENT_NODE:i}=Node,r=e;for(;null!=r&&r!==o;){let{nodeType:e,nodeName:o}=r;if(e===n&&ne(r)&&(t.includes(o)||t.includes(r)))return r;r=nn(r)?r.host:r.parentNode}return null}function ot(e,t,o){let n=[],i=ne(e)?e:null;for(;i&&(i=oe(i,t,o))&&(!o||o.contains(i));)if(n.push(i),nn(i)){let{host:e}=i;i=ne(e)?e:null}else i=i.parentElement;let r=n.length;return r?n[r-1]:null}function oo(e,t){let o={element:void 0,classNames:[]},n=e;for(;null!==n&&n!==e.ownerDocument.documentElement&&!o.element;){if("string"==typeof t&&n.classList.contains(t))o.element=n,o.classNames.push(t);else if(t instanceof RegExp){let e=Array.from(n.classList).filter(e=>t.test(e));e.length&&(o.element=n,o.classNames.push(...e))}n=n.parentElement}return o}function on(e,t){let o=e.parentNode,n=[];for("string"==typeof t?n=e instanceof Document?Array.from(e.querySelectorAll(t)):Array.from(e.ownerDocument.querySelectorAll(t)):n.push(t);null!==o;){if(n.indexOf(o)>-1)return!0;o=o.parentNode}return!1}function oi(e){let t=0,o=e;if(o.previousSibling)for(;o=o.previousSibling;)t+=1;return t}function or(e,t,o){let n=o.parentElement?.querySelector(`.ht_clone_${e}`);return!!n&&n.contains(t)}function ol(e){if(!e||!e.classList||!e.parentNode||!e.parentNode.parentNode||e.classList.contains("hiddenHeader")||"none"===e.style.display)return!1;let t=e.parentNode,o=Array.from(t?.parentNode?.childNodes??[]);return(t?o.indexOf(t):-1)+(Number.parseInt(e.getAttribute("rowspan")??"",10)||1)>=o.length}function os(e){return e&&e.length?e.filter(e=>!!e):[]}function oa(e,t){if(!e||!e.length)return t?{regexFree:[],regexes:[]}:[];let o=[],n=[];return n.push(...e.filter(e=>{let n=e instanceof RegExp;return n&&t&&o.push(e),!n})),t?{regexFree:n,regexes:o}:n}function oh(e,t){return void 0!==e.classList&&"string"==typeof t&&""!==t&&e.classList.contains(t)}function od(e,t){"string"==typeof t&&(t=t.split(" ")),(t=os(t)).length>0&&e.classList.add(...t)}function oc(e,t){"string"==typeof t?t=t.split(" "):t instanceof RegExp&&(t=[t]);let{regexFree:o,regexes:n}=oa(t,!0);(o=os(o)).length>0&&e.classList.remove(...o),n.forEach(t=>{e.classList.forEach(o=>{t.test(o)&&e.classList.remove(o)})})}function ou(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[],o=arguments.length>2?arguments[2]:void 0;Array.isArray(t)||(t=[[t,o??""]]),t.forEach(t=>{Array.isArray(t)&&""!==t[0]&&e.setAttribute(t[0],String(t[1]))})}function og(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[];"string"==typeof t?t=t.split(" "):t instanceof RegExp&&(t=[t]);let{regexFree:o,regexes:n}=oa(t,!0);if(o.forEach(t=>{""!==t&&e.removeAttribute(t)}),n.length>0){let t=e.getAttributeNames();for(let o=0;o<t.length;o++){let i=t[o];for(let t=0;t<n.length;t++)if(n[t].test(i)){e.removeAttribute(i);break}}}}function op(e){if(3===e.nodeType)e.parentNode?.removeChild(e);else if(["TABLE","THEAD","TBODY","TFOOT","TR"].indexOf(e.nodeName)>-1){let t=e.childNodes;for(let e=t.length-1;e>=0;e--)op(t[e])}}function om(e){let t;for(;t=e.lastChild;)e.removeChild(t)}let of=/(<([^>]*)>|&([^;]*);)/,ob="sanitizer";function oC(e){return`HTML content is being written to the DOM ("${e}") without a sanitizer. Configure the "sanitizer" option to prevent XSS vulnerabilities.`}let ow={};function oy(e,t){let o=!(arguments.length>2)||void 0===arguments[2]||arguments[2],n=arguments.length>3&&void 0!==arguments[3]?arguments[3]:"innerHTML",i=arguments.length>4&&void 0!==arguments[4]?arguments[4]:ow;if(of.test(t)){let r;"function"==typeof o?r=o(t,n)??"":(!1!==o&&tJ(i,ob,oC(n)),r=t),e.innerHTML=r}else ov(e,t)}function ov(e,t){let o=e.firstChild;o&&3===o.nodeType&&null===o.nextSibling?o.textContent=t:(om(e),e.appendChild(e.ownerDocument.createTextNode(t)))}function oS(e){if("function"==typeof e.checkVisibility)return e.checkVisibility();let t=e.ownerDocument.documentElement,o=e.ownerDocument.defaultView,n=e;for(;n!==t;){if(null===n)return!1;if(nn(n)){let e=n.host;if(e.impl)return oS(e.impl);return oS(e)}if(n.nodeType===Node.DOCUMENT_FRAGMENT_NODE)return!1;else if(n.nodeType===Node.ELEMENT_NODE&&ne(n)&&o?.getComputedStyle(n).display==="none")return!1;n=n.parentNode}return!0}function oR(e){let t=e.ownerDocument.defaultView,o=e;for(;o.parentElement;){if("0px"===o.style.height||"0"===o.style.height){let e=t?.getComputedStyle(o).getPropertyValue("overflow");return"hidden"===e||"clip"===e}o=o.parentElement}return!1}function ox(e){let t,o,n,i=e.ownerDocument,r=i.defaultView,l=i.documentElement,s=e;for(t=s.offsetLeft,o=s.offsetTop,n=s;(s=ne(s.offsetParent)?s.offsetParent:null)&&s!==i.body&&"offsetLeft"in s;)t+=s.offsetLeft,o+=s.offsetTop,n=s;return n&&"fixed"===n.style.position&&(t+=(r?.pageXOffset??0)||l.scrollLeft,o+=(r?.pageYOffset??0)||l.scrollTop),{left:t,top:o}}function oM(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:window;return e.scrollY}function oH(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:window;return e.scrollX}function oE(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:window;return e instanceof Window?oM(t):e.scrollTop}function ok(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:window;return e instanceof Window?oH(t):e.scrollLeft}function oT(e){let t=e.ownerDocument,o=t.defaultView,n=["auto","scroll"],i=e.parentElement;for(;i&&i.style&&t.body!==i;){let{overflow:e,overflowX:t,overflowY:r}=i.style;if([e,t,r].includes("scroll")||(o&&({overflow:e,overflowX:t,overflowY:r}=o.getComputedStyle(i)),n.includes(e)||n.includes(t)||n.includes(r))||i.clientHeight<=i.scrollHeight+1&&(n.includes(r)||n.includes(e))||i.clientWidth<=i.scrollWidth+1&&(n.includes(t)||n.includes(e)))return i;i=i.parentElement}return o??t.documentElement}function oI(e){return e.scrollHeight-e.clientHeight}function oA(e){return e.scrollWidth-e.clientWidth}let o_=["scroll","hidden","auto","clip"],oO=["visible","clip","hidden","scroll","auto","overlay"];function oP(e,t){return o_.includes(e)&&("clip"!==e||"visible"!==t&&""!==t)}function oD(e){let t=e.ownerDocument,o=t.defaultView,n=e.parentElement;for(;n&&n.style&&t.body!==n;){if(o){let{x:e,y:t}=function(e,t){let[o="",n=o]=e.style.overflow.split(/\s+/).filter(Boolean),i=(e,o,n)=>{let i=e||o;return oO.includes(i)?i:t.getPropertyValue(n)};return{x:i(e.style.overflowX,o,"overflow-x"),y:i(e.style.overflowY,n,"overflow-y")}}(n,o.getComputedStyle(n));if(oP(e,t)||oP(t,e))return n}else if("visible"!==n.style.overflow&&""!==n.style.overflow)return n;n=n.parentElement}return o??t.documentElement}function oN(e,t){let o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:window;if(!e)return;if(e instanceof Window)return"width"===t?`${e.innerWidth}px`:"height"===t?`${e.innerHeight}px`:void 0;let n=e.style.getPropertyValue(t)||e.style[t];if(""!==n&&void 0!==n)return n;let i=o.getComputedStyle(e),r=i.getPropertyValue(t)||i[t];if(""!==r&&void 0!==r)return r}function oB(e,t){let o=!1;return t instanceof CSSStyleRule&&t.selectorText&&("msMatchesSelector"in e&&"function"==typeof e.msMatchesSelector?o=e.msMatchesSelector(t.selectorText):e.matches&&(o=e.matches(t.selectorText))),o}function oL(e){return e.offsetWidth}function oV(e){return e.offsetHeight}function oF(e){return e instanceof Window?e.innerHeight:e.clientHeight}function oz(e){return e instanceof Window?e.innerWidth:e.clientWidth}function oW(e,t,o){e.addEventListener(t,o,!1)}function o$(e,t,o){e.removeEventListener(t,o,!1)}function oU(e){return e.selectionStart?e.selectionStart:0}function oG(e){return e.selectionEnd?e.selectionEnd:0}function oq(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:window,t=e.document,o="";return e.getSelection?o=e.getSelection()?.toString()??"":"selection"in t&&t.selection&&"Control"!==t.selection.type&&(o=t.selection.createRange().text),o}function oj(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:window;if(e.getSelection){let t=e.getSelection();t?.empty?t.empty():t?.removeAllRanges&&t.removeAllRanges()}}function oY(e,t,o){if(void 0===o&&(o=t),e.setSelectionRange){e.focus();try{e.setSelectionRange(t,o)}catch(i){let n=e.parentElement;if(n){let i=n.style.display;n.style.display="block",e.setSelectionRange(t,o),n.style.display=i}}}}function oK(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:document;return tq()?2*!Number.isInteger(e.defaultView?.devicePixelRatio||1):0}function oX(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:document;return void 0===t&&(t=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:document,t=function(){let t=arguments.length>0&&void 0!==arguments[0]&&arguments[0],o=e.createElement("div");o.style.height="200px",o.style.width="100%";let n=e.createElement("div");n.classList.add("htScrollbarTest"),t&&n.classList.add("htScrollbarSafariTest"),n.style.boxSizing="content-box",n.style.height="150px",n.style.left="0px",n.style.overflow="hidden",n.style.position="absolute",n.style.top="0px",n.style.width="200px",n.style.visibility="hidden",n.appendChild(o),e.body.appendChild(n);let i=o.offsetWidth;n.style.overflow="scroll";let r=o.offsetWidth;return i===r&&(r=n.clientWidth),e.body.removeChild(n),i-r},o=t();return 0===o&&tF()&&!t$()&&!tG()?t(!0):o}(e)),t}function oZ(e){return e instanceof Window?e.document.body.scrollHeight>e.innerHeight:e.offsetWidth!==e.clientWidth}function oQ(e){return e instanceof Window?e.document.body.scrollWidth>e.innerWidth:e.offsetHeight!==e.clientHeight}function oJ(e,t,o){e.style.transform=`translate3d(${t},${o},0)`}function o0(e){let t;return e.style.transform&&""!==(t=e.style.transform)?["transform",t]:-1}function o1(e){e.style.transform&&""!==e.style.transform&&(e.style.transform="")}function o2(e){return e&&(["INPUT","SELECT","TEXTAREA"].indexOf(e.nodeName)>-1||"true"===e.contentEditable)}function o3(e){return o2(e)&&"hotInput"in e.dataset==!1}function o6(e){let t=nr(e.ownerDocument);ne(t)&&!o3(t)&&(e instanceof HTMLInputElement||e instanceof HTMLTextAreaElement)&&e.select()}function o4(e){return!e.parentNode}function o5(e,t){let o=new IntersectionObserver((e,o)=>{e.forEach(e=>{e.isIntersecting&&(t(),o.disconnect())})});return o.observe(e),o}function o7(e){let t=!(arguments.length>1)||void 0===arguments[1]||arguments[1],o=!(arguments.length>2)||void 0===arguments[2]||arguments[2],n=e.ownerDocument,i=n.createRange(),r=n.defaultView?.getSelection();if(ou(e,"contenteditable",!0),o){let t=P();ou(e,t[0],t[1])}t&&od(e,"invisibleSelection"),i.selectNodeContents(e),r?.removeAllRanges(),r?.addRange(i)}function o9(e){let t=!(arguments.length>1)||void 0===arguments[1]||arguments[1],o=e.ownerDocument.defaultView?.getSelection();e.hasAttribute("aria-hidden")&&e.removeAttribute("aria-hidden"),o?.removeAllRanges(),t&&oc(e,"invisibleSelection"),e.removeAttribute("contenteditable")}function o8(e,t){let o=!(arguments.length>2)||void 0===arguments[2]||arguments[2];o7(e,o),t(),o9(e,o)}function ne(e){if("object"!=typeof e||null===e)return!1;let t=e.ownerDocument?.defaultView?.Element;return!!(t&&e instanceof t)}function nt(e){return ne(e)&&("TD"===e.tagName||"TH"===e.tagName)}function no(e){return"INPUT"===e.tagName}function nn(e){return"object"==typeof e&&null!==e&&"nodeType"in e&&e.nodeType===Node.DOCUMENT_FRAGMENT_NODE&&"host"in e}function ni(e){let t=[],o=e.getRootNode();for(;nn(o);){let{host:e}=o;if(!ne(e))break;t.push(e),o=e.getRootNode()}return t}function nr(e){let t=e.activeElement;for(;t?.shadowRoot?.activeElement;)t=t.shadowRoot.activeElement;return t}function nl(e,t){return e.childNodes[t]||null}function ns(e){return"function"==typeof e}function na(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:200,o=0,n={lastCallThrottled:!0},i=null;return function(){for(var r=arguments.length,l=Array(r),s=0;s<r;s++)l[s]=arguments[s];let a=Date.now(),h=!1;n.lastCallThrottled=!0,o||(o=a,h=!0);let d=t-(a-o);return h?(n.lastCallThrottled=!1,e.apply(this,l)):(i&&clearTimeout(i),i=setTimeout(()=>{n.lastCallThrottled=!1,e.apply(this,l),o=0,i=null},d)),n}}function nh(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:200,o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:10,n=na(e,t),i=o;function r(){for(var t=arguments.length,o=Array(t),r=0;r<t;r++)o[r]=arguments[r];return i?(i-=1,e.apply(this,o)):n.apply(this,o)}return r.clearHits=function(){i=o},r}function nd(e){let t,o=arguments.length>1&&void 0!==arguments[1]?arguments[1]:200,n=null;function i(){for(var i=arguments.length,r=Array(i),l=0;l<i;l++)r[l]=arguments[l];return n&&clearTimeout(n),n=setTimeout(()=>{n=null,t=e.apply(this,r)},o),t}return i.cancel=function(){null!==n&&(clearTimeout(n),n=null)},i}function nc(){for(var e=arguments.length,t=Array(e),o=0;o<e;o++)t[o]=arguments[o];let[n,...i]=t;return function(){for(var e=arguments.length,t=Array(e),o=0;o<e;o++)t[o]=arguments[o];return X(i,(e,t)=>t(e),n.apply(this,t))}}function nu(e){for(var t=arguments.length,o=Array(t>1?t-1:0),n=1;n<t;n++)o[n-1]=arguments[n];return function(){for(var t=arguments.length,n=Array(t),i=0;i<t;i++)n[i]=arguments[i];return e.apply(this,o.concat(n))}}function ng(e){let t=e.length;return function o(n){return function(){for(var i=arguments.length,r=Array(i),l=0;l<i;l++)r[l]=arguments[l];let s=n.concat(r);return s.length>=t?e.apply(this,s):o(s)}}([])}function np(e){let t=e.length;return function o(n){return function(){for(var i=arguments.length,r=Array(i),l=0;l<i;l++)r[l]=arguments[l];let s=n.concat(r.reverse());return s.length>=t?e.apply(this,s):o(s)}}([])}function nm(e,t,o,n,i,r,l,s){if(eP(s))return e.call(t,o,n,i,r,l,s);if(eP(l))return e.call(t,o,n,i,r,l);if(eP(r))return e.call(t,o,n,i,r);if(eP(i))return e.call(t,o,n,i);if(eP(n))return e.call(t,o,n);else if(eP(o))return e.call(t,o);return e.call(t)}let nf={ALT:18,ARROW_DOWN:40,ARROW_LEFT:37,ARROW_RIGHT:39,ARROW_UP:38,AUDIO_DOWN:tB()?182:174,AUDIO_MUTE:tB()?181:173,AUDIO_UP:tB()?183:175,BACKSPACE:8,CAPS_LOCK:20,COMMA:188,COMMAND_LEFT:91,COMMAND_RIGHT:93,COMMAND_FIREFOX:224,CONTROL:17,DELETE:46,END:35,ENTER:13,ESCAPE:27,F1:112,F2:113,F3:114,F4:115,F5:116,F6:117,F7:118,F8:119,F9:120,F10:121,F11:122,F12:123,F13:124,F14:125,F15:126,F16:127,F17:128,F18:129,F19:130,HOME:36,INSERT:45,MEDIA_NEXT:176,MEDIA_PLAY_PAUSE:179,MEDIA_PREV:177,MEDIA_STOP:178,NULL:0,NUM_LOCK:144,PAGE_DOWN:34,PAGE_UP:33,PAUSE:19,PERIOD:190,SCROLL_LOCK:145,SHIFT:16,SPACE:32,TAB:9,A:65,C:67,D:68,F:70,L:76,O:79,P:80,S:83,V:86,X:88,Y:89,Z:90},nb=[nf.ALT,nf.ARROW_DOWN,nf.ARROW_LEFT,nf.ARROW_RIGHT,nf.ARROW_UP,nf.AUDIO_DOWN,nf.AUDIO_MUTE,nf.AUDIO_UP,nf.BACKSPACE,nf.CAPS_LOCK,nf.DELETE,nf.END,nf.ENTER,nf.ESCAPE,nf.F1,nf.F2,nf.F3,nf.F4,nf.F5,nf.F6,nf.F7,nf.F8,nf.F9,nf.F10,nf.F11,nf.F12,nf.F13,nf.F14,nf.F15,nf.F16,nf.F17,nf.F18,nf.F19,nf.HOME,nf.INSERT,nf.MEDIA_NEXT,nf.MEDIA_PLAY_PAUSE,nf.MEDIA_PREV,nf.MEDIA_STOP,nf.NULL,nf.NUM_LOCK,nf.PAGE_DOWN,nf.PAGE_UP,nf.PAUSE,nf.SCROLL_LOCK,nf.SHIFT,nf.TAB];function nC(e){return 32===e||e>=48&&e<=57||e>=96&&e<=111||e>=186&&e<=192||e>=219&&e<=222||e>=226||e>=65&&e<=90}function nw(e){return nb.includes(e)}function ny(e){let t=[];return tj()?t.push(nf.COMMAND_LEFT,nf.COMMAND_RIGHT,nf.COMMAND_FIREFOX):t.push(nf.CONTROL),t.includes(e)}function nv(e){return[nf.CONTROL,nf.COMMAND_LEFT,nf.COMMAND_RIGHT,nf.COMMAND_FIREFOX].includes(e)}function nS(e,t){let o=t.split("|"),n=!1;return J(o,t=>{if(e===nf[t])return n=!0,!1}),n}function nR(e){e.isImmediatePropagationEnabled=!1,e.cancelBubble=!0}function nx(e){return!1===e.isImmediatePropagationEnabled}function nM(e){return 2===e.button}function nH(e){return 0===e.button}function nE(e){return 1===e.button}function nk(e){return"u">typeof TouchEvent&&e instanceof TouchEvent}function nT(e){return"touches"in e&&"changedTouches"in e}function nI(e){if(!nT(e)||0===e.changedTouches.length)return null;let{identifier:t,clientX:o,clientY:n}=e.changedTouches[0];return{identifier:t,clientX:o,clientY:n}}function nA(e,t){if(!nT(e))return null;for(let o=0;o<e.touches.length;o++){let n=e.touches[o];if(n.identifier===t)return{identifier:n.identifier,clientX:n.clientX,clientY:n.clientY}}return null}function n_(e,t){let o={x:e.offsetX,y:e.offsetY},n=t5(e);if(!ne(t)||n!==t&&n.contains(t))return o;for(;n!==t;)o.x+=n.offsetLeft,o.y+=n.offsetTop,n=n.offsetParent;return o}let nO=["afterCellMetaReset","afterChange","afterContextMenuDefaultOptions","beforeContextMenuSetItems","afterDropdownMenuDefaultOptions","beforeDropdownMenuSetItems","afterContextMenuHide","beforeContextMenuShow","afterContextMenuShow","afterCopyLimit","beforeCreateCol","afterColumnSequenceCacheUpdate","afterColumnSequenceChange","afterCreateCol","beforeCreateRow","afterCreateRow","beforeAlter","afterDeselect","afterDestroy","afterDocumentKeyDown","afterDrawSelection","beforeRemoveCellClassNames","beforeCompositionStart","afterGetCellMeta","afterGetColHeader","afterGetRowHeader","afterInit","afterLoadData","afterUpdateData","afterDataProviderFetch","afterDataProviderFetchError","afterDataProviderFetchAbort","hasExternalDataSource","beforeRowsMutation","afterRowsMutation","afterRowsMutationError","afterMomentumScroll","afterOnCellCornerMouseDown","afterOnSelectionHandleMouseDown","afterOnSelectionEdgeMouseDown","beforeMoveCells","afterMoveCells","afterOnCellCornerDblClick","afterOnCellMouseDown","afterOnCellMouseUp","afterOnCellContextMenu","afterOnCellMouseOver","afterOnCellMouseOut","afterOnCellMouseOverOutside","afterRemoveCol","afterRemoveRow","beforeRenderer","afterRenderer","afterRowSequenceCacheUpdate","afterRowSequenceChange","beforeViewportScrollVertically","beforeViewportScrollHorizontally","beforeViewportScroll","afterScrollHorizontally","afterScrollVertically","afterScroll","afterSelection","afterSelectionByProp","afterSelectionEnd","afterSelectionEndByProp","afterSelectionFocusSet","beforeSelectColumns","afterSelectColumns","beforeSelectRows","afterSelectRows","beforeSelectAll","afterSelectAll","afterSetCellMeta","afterRemoveCellMeta","afterSetDataAtCell","afterSetDataAtRowProp","afterSetSourceDataAtCell","afterSetTheme","afterUpdateSettings","afterValidate","beforeLanguageChange","afterLanguageChange","beforeAutofill","afterAutofill","beforeCellAlignment","beforeChange","beforeChangeRender","beforeHeightChange","beforeWidthChange","beforeDrawBorders","beforeGetCellMeta","beforeRemoveCellMeta","beforeInit","beforeInitWalkontable","beforeLoadData","beforeUpdateData","beforeDataProviderFetch","beforeKeyDown","beforeOnCellMouseDown","beforeOnCellMouseUp","beforeOnCellContextMenu","beforeOnCellMouseOver","beforeOnCellMouseOut","beforeOnCellMouseOverOutside","beforeRemoveCol","beforeRemoveRow","beforeViewRender","afterViewRender","beforeRender","afterRender","beforeRowWrap","beforeColumnWrap","beforeSetCellMeta","beforeSelectionFocusSet","beforeSetRangeStartOnly","beforeSetRangeStart","beforeSetRangeEnd","beforeSelectionHighlightSet","beforeTouchScroll","beforeValidate","beforeValueRender","construct","init","modifyColHeader","modifyColWidth","modifyFiltersMultiSelectValue","modifyFocusedElement","modifyRowHeader","modifyRowHeight","modifyRowHeightByOverlayName","modifyData","modifySourceData","modifyRowData","modifyGetCellCoords","modifyGetCoordsElement","modifyFocusOnTabNavigation","beforeHighlightingRowHeader","beforeHighlightingColumnHeader","beforeColumnSort","afterColumnSort","modifyAutofillRange","modifyCopyableRange","beforeCut","afterCut","beforeCopy","afterCopy","beforePaste","afterPaste","beforeColumnFreeze","afterColumnFreeze","beforeColumnMove","afterColumnMove","afterCustomBordersUpdate","beforeColumnUnfreeze","afterColumnUnfreeze","beforeRowCollapse","afterRowCollapse","beforeRowExpand","afterRowExpand","beforeRowMove","afterRowMove","beforeColumnResize","afterColumnResize","beforeRowResize","afterRowResize","afterGetColumnHeaderRenderers","afterGetRowHeaderRenderers","beforeStretchingColumnWidth","beforeFilter","afterFilter","beforePageChange","afterPageChange","beforePageSizeChange","afterPageSizeChange","afterPageSizeVisibilityChange","afterPageCounterVisibilityChange","afterPageNavigationVisibilityChange","afterFormulasValuesUpdate","afterNamedExpressionAdded","afterNamedExpressionRemoved","afterSheetAdded","afterSheetRenamed","afterSheetRemoved","modifyColumnHeaderHeight","modifySinglePassLayout","modifyColumnHeaderValue","beforeUndo","beforeUndoStackChange","afterUndo","afterUndoStackChange","beforeRedo","beforeRedoStackChange","afterRedo","afterRedoStackChange","modifyRowHeaderWidth","modifyTransformFocus","modifyTransformStart","modifyTransformEnd","afterModifyTransformFocus","afterModifyTransformStart","afterModifyTransformEnd","afterViewportRowCalculatorOverride","afterViewportColumnCalculatorOverride","afterPluginsInitialized","beforeHideRows","afterHideRows","beforeUnhideRows","afterUnhideRows","beforeHideColumns","afterHideColumns","beforeUnhideColumns","afterUnhideColumns","beforeTrimRow","afterTrimRow","beforeUntrimRow","afterUntrimRow","beforeDropdownMenuShow","afterDropdownMenuShow","afterDropdownMenuHide","beforeAddChild","afterAddChild","beforeDetachChild","afterDetachChild","beforeBeginEditing","afterDialogHide","afterDialogShow","beforeDialogHide","beforeDialogShow","dialogFocusPreviousElement","dialogFocusNextElement","afterDialogFocus","beforeLoadingShow","afterLoadingShow","beforeLoadingHide","afterLoadingHide","beforeEmptyDataStateShow","afterEmptyDataStateShow","beforeEmptyDataStateHide","afterEmptyDataStateHide","beforeNotificationShow","afterNotificationShow","beforeNotificationHide","afterNotificationHide","afterBeginEditing","beforeMergeCells","afterMergeCells","beforeUnmergeCells","afterUnmergeCells","afterListen","afterUnlisten","afterRefreshDimensions","beforeRefreshDimensions","beforeColumnCollapse","afterColumnCollapse","beforeColumnExpand","afterColumnExpand","modifyAutoColumnSizeSeed"],nP=new Map([["modifyRow","8.0.0"],["modifyCol","8.0.0"],["unmodifyRow","8.0.0"],["unmodifyCol","8.0.0"],["skipLengthCache","8.0.0"],["hiddenColumn","8.0.0"],["hiddenRow","8.0.0"],["persistentStateSave","17.0.0"],["persistentStateLoad","17.0.0"],["persistentStateReset","17.0.0"]]),nD=new Map([]);class nN{#e=new Map;constructor(){nO.forEach(e=>this.#t(e))}getList(e){return this.#e.get(e)??null}getHooks(e){let t=this.#e.get(e),o=[];if(t){let e=t.head;for(;e;)o.push(e),e=e.next}return o}add(e,t){let o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},n=this.#e.get(e);n||(n=this.#t(e),nO.push(e));for(let e=n.head;null!==e;e=e.next)if(e.callback===t)return;let i=Number.isInteger(o.orderIndex)?o.orderIndex??0:0,r=!!o.runOnce,l=!!o.initialHook;if(l){for(let e=n.head;null!==e;e=e.next)if(e.initialHook){e.callback=t;return}}this.#o(n,{callback:t,orderIndex:i,runOnce:r,initialHook:l,next:null})}has(e){let t=this.#e.get(e);return!!t&&null!==t.head}remove(e,t){let o=this.#e.get(e);if(!o)return!1;let n=null,i=o.head;for(;null!==i;){if(i.callback===t)return n?n.next=i.next:o.head=i.next,i===o.tail&&(o.tail=n),!0;n=i,i=i.next}return!1}destroy(){this.#e.clear()}#o(e,t){if(null===e.head){e.head=t,e.tail=t;return}if(t.orderIndex>=e.tail.orderIndex){e.tail.next=t,e.tail=t;return}let o=null,n=e.head;for(;null!==n&&n.orderIndex<=t.orderIndex;)o=n,n=n.next;null===o?(t.next=e.head,e.head=t):(t.next=n,o.next=t)}#t(e){let t={head:null,tail:null};return this.#e.set(e,t),t}}let nB=eu`The plugin hook "[hookName]" was removed in Handsontable [removedInVersion].\x20
|
|
72
|
+
at <a href="mailto:sales@handsontable.com">sales@handsontable.com</a>.`}},e3=Object.freeze(["trial_hard_stop","invalid","missing"]);function e6(e){return -1!==e3.indexOf(e)}function e4(e){return"string"==typeof e?e.trim():e}function e5(e){let t,{className:o,key:n,element:i,releaseDate:r}=e;if(ef(n=e4(n)))return function(e){let{className:t,key:o,element:n,releaseDate:i}=e;if(eG())return null;let{lifecycle:r,channels:l}=te(o,i),{state:s}=r,a={daysRemaining:r.daysRemaining,licensedUntil:r.licensedUntil??void 0,hotVersion:"18.1.1"};if(l.console&&!ej.has(o??"")){let e="invalid"===s?{severity:"warn",message:()=>eY.invalid({})}:e1[s];e&&(console[e.severity](e.message(a)),ej.add(o??""))}if(!l.ui||!n||e6(s))return null;let h=e2[s];if(!h)return null;let d=n.ownerDocument,c=d.createElement("div"),u=d.createElement("div");return c.className=`handsontable ${t}`,u.className=`${t}_inner`,u.innerHTML=h(a),c.appendChild(u),n.appendChild(c),c}({className:o,key:n,element:i,releaseDate:r});let l=!eN(n),s="string"==typeof n&&("non-commercial-and-evaluation"===n.toLowerCase()||"ht68e-1f2b7-47158-70b05-0842f"===n.toLowerCase()),a="18.1.1",h="invalid",d="invalid",c=tt(n=e$(n||""));if(s)h="non_commercial",d="valid";else if(l||c)if(c){let[e,o,i]=(r??"15/09/2026"??"").split("/").map(Number),l=Math.floor(Date.UTC(i,o-1,e)/864e5),s=eU(n);t=new Intl.DateTimeFormat("en-US",{year:"numeric",month:"long",day:"2-digit",timeZone:"UTC"}).format((s+1)*864e5),l>s?(h="expired",d="expired"):(h="valid",d="valid")}else h="invalid",d="invalid";else h="missing",d="missing";if(eG()&&(h="valid",d="valid"),eq||"valid"===h||(eY[h]({keyValidityDate:t,hotVersion:a})&&console["non_commercial"===h?"info":"warn"](eY[h]({keyValidityDate:t,hotVersion:a})),eq=!0),"valid"!==d&&!e6(d)&&i&&eK[d]({keyValidityDate:t,hotVersion:a})){let e=document.createElement("div"),n=document.createElement("div");return e.className=`handsontable ${o}`,n.className=`${o}_inner`,n.innerHTML=eK[d]({keyValidityDate:t,hotVersion:a}),e.appendChild(n),i.appendChild(e),e}return null}function e7(e){return new Date(e).toISOString().slice(0,10)}let e9=Object.freeze({console:!0,ui:!0});function e8(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;return{state:e,isTrial:!1,daysRemaining:null,licensedUntil:t}}function te(e,t){let o,n,i=e4(e);if(eG())return{lifecycle:e8("legacy_valid"),channels:e9,grants:eI};if(!ef(i))return{lifecycle:function(e,t){if("string"==typeof e&&("non-commercial-and-evaluation"===e.toLowerCase()||"ht68e-1f2b7-47158-70b05-0842f"===e.toLowerCase()))return e8("non_commercial");if(eN(e))return e8("missing");let o=e$(e||"");if(!tt(o))return e8("invalid");let[n,i,r]=(t??"15/09/2026"??"").split("/").map(Number),l=Math.floor(Date.UTC(r,i-1,n)/864e5),s=eU(o);return l>s?e8("legacy_expired",e7((s+1)*864e5)):e8("legacy_valid")}(i,t),channels:e9,grants:eI};let r=((o=`${i}`)!==eE&&(eE=o,ek=function(e){let t,o,n=e.lastIndexOf("[");if(-1===n)return null;let i=e.indexOf("]",n);if(-1===i)return null;let r=e.slice(n+1,i);if(r.length<=128)return null;let l=r.slice(0,-128),s=r.slice(-128);if(!ev.test(l)||!eS.test(s)||function(e){let t=e.length,o=Math.ceil((t+17)/128),n=new Uint8Array(128*o);n.set(e),n[t]=128;let i=8*t,r=n.length;n[r-7]=255&Math.floor(i/0x1000000000000),n[r-6]=255&Math.floor(i/0x10000000000),n[r-5]=255&Math.floor(i/0x100000000),n[r-4]=i>>>24&255,n[r-3]=i>>>16&255,n[r-2]=i>>>8&255,n[r-1]=255&i;let l=[0x6a09e667,0xf3bcc908,0xbb67ae85,0x84caa73b,0x3c6ef372,0xfe94f82b,0xa54ff53a,0x5f1d36f1,0x510e527f,0xade682d1,0x9b05688c,0x2b3e6c1f,0x1f83d9ab,0xfb41bd6b,0x5be0cd19,0x137e2179],s=Array(80),a=Array(80);for(let e=0;e<o;e+=1){let t=128*e;for(let e=0;e<16;e+=1){let o=t+8*e;s[e]=(n[o]<<24|n[o+1]<<16|n[o+2]<<8|n[o+3])>>>0,a[e]=(n[o+4]<<24|n[o+5]<<16|n[o+6]<<8|n[o+7])>>>0}for(let e=16;e<80;e+=1){let t=s[e-2],o=a[e-2],n=s[e-15],i=a[e-15],r=(t>>>19|o<<13)^(o>>>29|t<<3)^t>>>6,l=(n>>>1|i<<31)^(n>>>8|i<<24)^n>>>7,h=(i>>>1|n<<31)^(i>>>8|n<<24)^(i>>>7|n<<25),d=(((o>>>19|t<<13)^(t>>>29|o<<3)^(o>>>6|t<<26))>>>0)+(a[e-7]>>>0)+(h>>>0)+(a[e-16]>>>0);a[e]=d>>>0,s[e]=(r>>>0)+(s[e-7]>>>0)+(l>>>0)+(s[e-16]>>>0)+Math.floor(d/0x100000000)>>>0}let o=l[0],i=l[1],r=l[2],h=l[3],d=l[4],c=l[5],u=l[6],g=l[7],p=l[8],m=l[9],f=l[10],b=l[11],C=l[12],w=l[13],y=l[14],v=l[15];for(let e=0;e<80;e+=1){let t=(p>>>14|m<<18)^(p>>>18|m<<14)^(m>>>9|p<<23),n=(m>>>14|p<<18)^(m>>>18|p<<14)^(p>>>9|m<<23),l=(o>>>28|i<<4)^(i>>>2|o<<30)^(i>>>7|o<<25),S=(i>>>28|o<<4)^(o>>>2|i<<30)^(o>>>7|i<<25),R=p&f^~p&C,x=o&r^o&d^r&d,M=i&h^i&c^h&c,H=(v>>>0)+(n>>>0)+((m&b^~m&w)>>>0)+(eC[2*e+1]>>>0)+(a[e]>>>0),E=H>>>0,k=(y>>>0)+(t>>>0)+(R>>>0)+(eC[2*e]>>>0)+(s[e]>>>0)+Math.floor(H/0x100000000)>>>0,T=(S>>>0)+(M>>>0),I=T>>>0,A=(l>>>0)+(x>>>0)+Math.floor(T/0x100000000)>>>0;y=C,v=w,C=f,w=b,f=p,b=m;let _=(g>>>0)+E;m=_>>>0,p=(u>>>0)+k+Math.floor(_/0x100000000)>>>0,u=d,g=c,d=r,c=h,r=o,h=i;let O=E+I;i=O>>>0,o=k+A+Math.floor(O/0x100000000)>>>0}let S=[o,i,r,h,d,c,u,g,p,m,f,b,C,w,y,v];for(let e=0;e<16;e+=2){let t=(l[e+1]>>>0)+(S[e+1]>>>0);l[e+1]=t>>>0,l[e]=(l[e]>>>0)+(S[e]>>>0)+Math.floor(t/0x100000000)>>>0}}return l.map(ew).join("")}(function(e){let t=[];for(let o=0;o<e.length;o+=1){let n=e.charCodeAt(o);if(n>=55296&&n<=56319&&o+1<e.length){let t=e.charCodeAt(o+1);t>=56320&&t<=57343&&(n=(n-55296)*1024+(t-56320)+65536,o+=1)}n<128?t.push(n):n<2048?t.push(192|n>>6,128|63&n):n<65536?t.push(224|n>>12,128|n>>6&63,128|63&n):t.push(240|n>>18,128|n>>12&63,128|n>>6&63,128|63&n)}return t}(l))!==s)return null;let a=null===(o=function(e){let t=`${e}`.replace(/-/g,"+").replace(/_/g,"/").replace(/=+$/,"");if(!/^[A-Za-z0-9+/]*$/.test(t)||t.length%4==1)return null;let o=[];for(let e=0;e<t.length;e+=4){let n=[0,1,2,3].map(o=>{let n=t.charAt(e+o);return""===n?-1:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".indexOf(n)});o.push(n[0]<<2|n[1]>>4),-1!==n[2]&&o.push((15&n[1])<<4|n[2]>>2),-1!==n[3]&&o.push((3&n[2])<<6|n[3])}return o}(l))?null:function(e){let t="",o=0;for(;o<e.length;){let n,i=e[o];i<128?(n=i,o+=1):i<224?(n=(31&i)<<6|63&e[o+1],o+=2):i<240?(n=(15&i)<<12|(63&e[o+1])<<6|63&e[o+2],o+=3):(n=(7&i)<<18|(63&e[o+1])<<12|(63&e[o+2])<<6|63&e[o+3],o+=4),n>=65536?(n-=65536,t+=String.fromCharCode(55296+(n>>10),56320+(1023&n))):t+=String.fromCharCode(n)}return t}(o);if(null===a)return null;try{t=JSON.parse(a)}catch(e){return null}if(!eR(t)||!eR(t.products))return null;let h={},d=t.products,c=!1;return(Object.keys(d).forEach(e=>{let t=function(e){if(!eR(e)||!eM(e.capabilities))return null;let t=eb.filter(t=>void 0!==e[t]);if(1!==t.length||null===ey(`${e[t[0]]}`)||!ex(e.notice)||!ex(e.grace)||void 0!==e.flags&&!eM(e.flags))return null;let o={};return Object.keys(e).forEach(t=>eH(o,t,e[t])),eH(o,"capabilities",e.capabilities.slice()),eH(o,"notice",e.notice),eH(o,"grace",e.grace),eH(o,"flags",void 0===e.flags?[]:e.flags.slice()),eH(o,t[0],e[t[0]]),o}(d[e]);if(null===t){c=!0;return}eH(h,e,t)}),c)?null:{products:h}}(o)),ek),l=null===r?null:eT(r,"handsontable");if(null===r||null===l)return{lifecycle:e8("invalid"),channels:e9,grants:eI};let s=t||"15/09/2026";return{lifecycle:function(e,t){let o=-1!==e.flags.indexOf("trial");if(void 0!==e.release_until){let n=e.release_until;return{state:n>=t.buildDate||null===ey(t.buildDate)?"release_valid":"release_expired",isTrial:o,daysRemaining:null,licensedUntil:n}}let n=`${e.usage_until}`,i=ey(n)??eA(t.now),r=function(e,t,o){let n=e+864e5;if(o>=n)return o<n+864e5*t.grace?"soft_stop":"hard_stop";let i=e_(e,o);return t.notice>0&&i<=t.notice?"notice":"valid"}(i,e,t.now);return{state:`${o?"trial":"usage"}_${r}`,isTrial:o,daysRemaining:e_(i,t.now),licensedUntil:n}}(l,{now:Date.now(),buildDate:function(e){let[t,o,n]=`${e}`.split("/");return t&&o&&n?`${n}-${o.padStart(2,"0")}-${t.padStart(2,"0")}`:""}(s)}),channels:{console:-1===l.flags.indexOf("no-console-warns"),ui:-1===l.flags.indexOf("no-ui-warns")},grants:(n={},Object.keys(r.products).forEach(e=>{let t=eT(r,e);null!==t&&eH(n,e,{capabilities:t.capabilities.slice()})}),{unrestricted:!1,products:n})}}function tt(e){let t=[][eL],o=t;if(e[eL]!==eW("Z"))return!1;for(let t="",n="B<H4P+".split(""),i=eW(n.shift()??"A");i;i=eW(n.shift()??"A"))--i<""[eL]?o|=(eF(`${eF(eV(t)+(eV(ez(e,Math.abs(i),2))+String([])).padStart(2,"0"))}`)%97||2)>>1:t=ez(e,i,i?1===n[eL]?9:8:6);return o===t}function to(e){let t=Error(e);throw t.cause={handsontable:!0},t}function tn(e){let t;if(Array.isArray(e))t=e.length?Array(e.length).fill(null):[];else{let o=Object.create(null);tp(e,(e,t)=>{"__children"!==t&&(e&&"object"==typeof e&&!Array.isArray(e)?o[t]=tn(e):Array.isArray(e)?e.length&&"object"==typeof e[0]&&!Array.isArray(e[0])?o[t]=[tn(e[0])]:o[t]=[]:o[t]=null)}),t=o}return t}function ti(e,t){return t.prototype.constructor=t,e.prototype=new t,e.prototype.constructor=e,e}function tr(e,t,o){let n=Array.isArray(o);return tp(t,(t,i)=>{"__proto__"!==i&&"constructor"!==i&&"prototype"!==i&&(!1===n||o.includes(i))&&(e[i]=t)}),e}function tl(e,t){tp(t,(o,n)=>{if("__proto__"===n||"constructor"===n||"prototype"===n)return;let i=t[n];i&&"object"==typeof i?(e[n]||(Array.isArray(i)?e[n]=[]:"[object Date]"===Object.prototype.toString.call(i)?e[n]=i:e[n]={}),tl(e[n],i)):e[n]=i})}function ts(e){if(Array.isArray(e))return e.map(e=>ts(e));if(e instanceof Date)return new Date(e);if("object"==typeof e&&null!==e){let t={};for(let[o,n]of Object.entries(e))"__proto__"!==o&&"constructor"!==o&&"prototype"!==o&&(t[o]=ts(n));return t}return e}function ta(e){let t={};return tp(e,(e,o)=>{t[o]=e}),t}function th(e){for(var t=arguments.length,o=Array(t>1?t-1:0),n=1;n<t;n++)o[n-1]=arguments[n];return e.MIXINS||(e.MIXINS=[]),J(o,t=>{e.MIXINS.push(t.MIXIN_NAME),tp(t,(t,o)=>{if(void 0!==e.prototype[o]&&to(`Mixin conflict. Property '${o}' already exist and cannot be overwritten.`),"function"==typeof t)e.prototype[o]=t;else{let n,i;Object.defineProperty(e.prototype,o,{get:(n=`_${o}`,function(){let e;return void 0===this[n]&&(this[n]=((Array.isArray(e=t)||tu(e))&&(e=ts(e)),e)),this[n]}),set:(i=`_${o}`,function(e){this[i]=e}),configurable:!0})}})}),e}function td(e,t){let o=e=>{if(void 0===e)return"undefined";if(Array.isArray(e))return`[${e.map(o).join(",")}]`;if(e instanceof Date)return JSON.stringify(e);if(null!==e&&"object"==typeof e){let t=Object.entries(e).sort((e,t)=>{let[o]=e,[n]=t;return o.localeCompare(n)}).map(e=>{let[t,n]=e;return`${JSON.stringify(t)}:${o(n)}`});return`{${t.join(",")}}`}return JSON.stringify(e)};return o(e)===o(t)}function tc(e){return tu(e)}function tu(e){return"[object Object]"===Object.prototype.toString.call(e)}function tg(e,t,o,n){n.value=o,n.writable=!1!==n.writable,n.enumerable=!1!==n.enumerable,n.configurable=!1!==n.configurable,Object.defineProperty(e,t,n)}function tp(e,t){for(let o in e)if((!e.hasOwnProperty||e.hasOwnProperty&&Object.prototype.hasOwnProperty.call(e,o))&&!1===t(e[o],o,e))break;return e}function tm(e,t){let o=t.split("."),n=e;for(let e of o)if(void 0===(n=n[e]))return;return n}function tf(e,t,o){if("string"!=typeof t||null===e||"object"!=typeof e)return;let n=t.split("."),i=e;for(let e=0;e<n.length;e+=1){let t=n[e];if("__proto__"===t||"constructor"===t||"prototype"===t)return;if(e!==n.length-1){tw(i,t)||(i[t]={});let e=i[t];if(!tu(e))return;i=e}else Object.defineProperty(i,t,{value:o,writable:!0,enumerable:!0,configurable:!0})}}function tb(e){if(!tu(e))return 0;let t=function(e){let o=0;return tu(e)?tp(e,(e,n)=>{"__children"!==n&&(o+=t(e))}):o+=1,o};return t(e)}function tC(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"value",o=`_${t}`,n={_touched:!1,[o]:e,isTouched(){return!!this._touched},value:void 0};return Object.defineProperty(n,t,{get(){return this[o]},set(e){this._touched=!0,this[o]=e},enumerable:!0,configurable:!0}),n}function tw(e,t){return Object.prototype.hasOwnProperty.call(e,t)}function ty(e,t){if("object"!=typeof e||null===e)return t;if("object"!=typeof t||null===t)return e;let o={};return Object.keys(t).forEach(n=>{let i=t[n],r=e[n];tu(i)?o[n]=ty(tu(r)?r:{},i):o[n]=tw(e,n)&&void 0!==r?r:i}),Object.keys(e).forEach(t=>{tw(o,t)||(o[t]=e[t])}),o}function tv(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},o={...e};return Object.keys(t).forEach(e=>{if("__proto__"===e||"constructor"===e||"prototype"===e)return;let n=t[e],i=o[e];tu(n)&&tu(i)?o[e]=tv(i,n):o[e]=n}),o}function tS(e){return tu(e)&&eP(e.key)&&eP(e.value)}function tR(e){return window.requestAnimationFrame(e)}function tx(e){window.cancelAnimationFrame(e)}function tM(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:100;return"function"==typeof window.requestIdleCallback?window.requestIdleCallback(()=>e(),{timeout:t}):window.requestAnimationFrame(e)}function tH(e){"function"==typeof window.cancelIdleCallback?window.cancelIdleCallback(e):window.cancelAnimationFrame(e)}function tE(){return"ontouchstart"in window}function tk(){return"u">typeof window}function tT(t){let o=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return e||(e="object"==typeof Intl?new Intl.Collator(t,o).compare:"function"==typeof String.prototype.localeCompare?(e,t)=>`${e}`.localeCompare(t):(e,t)=>e===t?0:e>t?-1:1)}let tI=e=>{let t={value:!1,test(o,n){t.value=e(o,n)}};return t},tA={chrome:tI((e,t)=>/Chrome/.test(e)&&/Google/.test(t??"")),chromeWebKit:tI(e=>/CriOS/.test(e)),edge:tI(e=>/Edge/.test(e)),edgeWebKit:tI(e=>/EdgiOS/.test(e)),firefox:tI(e=>/Firefox/.test(e)),firefoxWebKit:tI(e=>/FxiOS/.test(e)),mobile:tI(e=>/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(e)),safari:tI((e,t)=>/Safari/.test(e)&&/Apple Computer/.test(t??"")),safariBefore261:tI((e,t)=>{if(!/Safari/.test(e)||!/Apple Computer/.test(t??""))return!1;let o=/Version\/(\d+(?:\.\d+)?)/i.exec(e);return(o?Number.parseFloat(o[1]):0)<26.1})},t_={mac:tI(e=>/^Mac/.test(e)),win:tI(e=>/^Win/.test(e)),linux:tI(e=>/^Linux/.test(e)),ios:tI(e=>/iPhone|iPad|iPod/i.test(e))};function tO(){let{userAgent:e=navigator.userAgent,vendor:t=navigator.vendor}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};tp(tA,o=>{let{test:n}=o;return n(e,t)})}function tP(){let{platform:e=navigator.platform}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};tp(t_,t=>{let{test:o}=t;return o(e)})}function tD(){return tA.chrome.value}function tN(){return tA.chromeWebKit.value}function tB(){return tA.firefox.value}function tL(){return tA.firefoxWebKit.value}function tV(){return tA.safari.value}function tF(){return tA.safariBefore261.value}function tz(){return tA.edge.value}function tW(){return tA.edgeWebKit.value}function t$(){return tA.mobile.value}function tU(){return t_.ios.value}function tG(){let{maxTouchPoints:e}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:navigator;return(e??0)>2&&t_.mac.value}function tq(){return t_.win.value}function tj(){return t_.mac.value}function tY(){return t_.linux.value}function tK(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return`${e}`.replace(/(?:\\)?\[([^[\]]+)]/g,(e,o)=>"\\"===e.charAt(0)?e.substr(1,e.length-1):void 0===t[o]?"":String(t[o]))}function tX(){for(var e=arguments.length,t=Array(e),o=0;o<e;o++)t[o]=arguments[o];eP(console)&&console.log(...t)}function tZ(){for(var e=arguments.length,t=Array(e),o=0;o<e;o++)t[o]=arguments[o];eP(console)&&console.warn(...t)}tk()&&(tO(),tP());let tQ=new WeakMap;function tJ(e,t){for(var o=arguments.length,n=Array(o>2?o-2:0),i=2;i<o;i++)n[i-2]=arguments[i];let r=tQ.get(e);void 0===r&&(r=new Set,tQ.set(e,r)),r.has(t)||(r.add(t),tZ(...n))}let t0=new Set;function t1(e,t){t0.has(e)||eP(console)&&(t0.add(e),console.warn(t))}function t2(e,t){t1(e,`Deprecated: ${t}`)}function t3(){for(var e=arguments.length,t=Array(e),o=0;o<e;o++)t[o]=arguments[o];eP(console)&&console.error(...t)}function t6(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,o=-1,n=null,i=e;for(;null!==i;){if(o===t){n=ne(i)?i:null;break}nn(i)?i=i.host:(o+=1,i=i.parentNode)}return n}function t4(e,t){let o=e.closest(".handsontable");return!!o&&(o.parentNode===t||o===t)}function t5(e){return e.target}function t7(e){let{frameElement:t}=e;return e.parent&&Object.getPrototypeOf(e.parent)&&t instanceof HTMLIFrameElement?t:null}function t9(e){return t7(e)?e.parent:null}function t8(e){return!!Object.getPrototypeOf(e.parent)}function oe(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[],o=arguments.length>2?arguments[2]:void 0,{ELEMENT_NODE:n,DOCUMENT_FRAGMENT_NODE:i}=Node,r=e;for(;null!=r&&r!==o;){let{nodeType:e,nodeName:o}=r;if(e===n&&ne(r)&&(t.includes(o)||t.includes(r)))return r;r=nn(r)?r.host:r.parentNode}return null}function ot(e,t,o){let n=[],i=ne(e)?e:null;for(;i&&(i=oe(i,t,o))&&(!o||o.contains(i));)if(n.push(i),nn(i)){let{host:e}=i;i=ne(e)?e:null}else i=i.parentElement;let r=n.length;return r?n[r-1]:null}function oo(e,t){let o={element:void 0,classNames:[]},n=e;for(;null!==n&&n!==e.ownerDocument.documentElement&&!o.element;){if("string"==typeof t&&n.classList.contains(t))o.element=n,o.classNames.push(t);else if(t instanceof RegExp){let e=Array.from(n.classList).filter(e=>t.test(e));e.length&&(o.element=n,o.classNames.push(...e))}n=n.parentElement}return o}function on(e,t){let o=e.parentNode,n=[];for("string"==typeof t?n=e instanceof Document?Array.from(e.querySelectorAll(t)):Array.from(e.ownerDocument.querySelectorAll(t)):n.push(t);null!==o;){if(n.indexOf(o)>-1)return!0;o=o.parentNode}return!1}function oi(e){let t=0,o=e;if(o.previousSibling)for(;o=o.previousSibling;)t+=1;return t}function or(e,t,o){let n=o.parentElement?.querySelector(`.ht_clone_${e}`);return!!n&&n.contains(t)}function ol(e){if(!e||!e.classList||!e.parentNode||!e.parentNode.parentNode||e.classList.contains("hiddenHeader")||"none"===e.style.display)return!1;let t=e.parentNode,o=Array.from(t?.parentNode?.childNodes??[]);return(t?o.indexOf(t):-1)+(Number.parseInt(e.getAttribute("rowspan")??"",10)||1)>=o.length}function os(e){return e&&e.length?e.filter(e=>!!e):[]}function oa(e,t){if(!e||!e.length)return t?{regexFree:[],regexes:[]}:[];let o=[],n=[];return n.push(...e.filter(e=>{let n=e instanceof RegExp;return n&&t&&o.push(e),!n})),t?{regexFree:n,regexes:o}:n}function oh(e,t){return void 0!==e.classList&&"string"==typeof t&&""!==t&&e.classList.contains(t)}function od(e,t){"string"==typeof t&&(t=t.split(" ")),(t=os(t)).length>0&&e.classList.add(...t)}function oc(e,t){"string"==typeof t?t=t.split(" "):t instanceof RegExp&&(t=[t]);let{regexFree:o,regexes:n}=oa(t,!0);(o=os(o)).length>0&&e.classList.remove(...o),n.forEach(t=>{e.classList.forEach(o=>{t.test(o)&&e.classList.remove(o)})})}function ou(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[],o=arguments.length>2?arguments[2]:void 0;Array.isArray(t)||(t=[[t,o??""]]),t.forEach(t=>{Array.isArray(t)&&""!==t[0]&&e.setAttribute(t[0],String(t[1]))})}function og(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[];"string"==typeof t?t=t.split(" "):t instanceof RegExp&&(t=[t]);let{regexFree:o,regexes:n}=oa(t,!0);if(o.forEach(t=>{""!==t&&e.removeAttribute(t)}),n.length>0){let t=e.getAttributeNames();for(let o=0;o<t.length;o++){let i=t[o];for(let t=0;t<n.length;t++)if(n[t].test(i)){e.removeAttribute(i);break}}}}function op(e){if(3===e.nodeType)e.parentNode?.removeChild(e);else if(["TABLE","THEAD","TBODY","TFOOT","TR"].indexOf(e.nodeName)>-1){let t=e.childNodes;for(let e=t.length-1;e>=0;e--)op(t[e])}}function om(e){let t;for(;t=e.lastChild;)e.removeChild(t)}let of=/(<([^>]*)>|&([^;]*);)/,ob="sanitizer";function oC(e){return`HTML content is being written to the DOM ("${e}") without a sanitizer. Configure the "sanitizer" option to prevent XSS vulnerabilities.`}let ow={};function oy(e,t){let o=!(arguments.length>2)||void 0===arguments[2]||arguments[2],n=arguments.length>3&&void 0!==arguments[3]?arguments[3]:"innerHTML",i=arguments.length>4&&void 0!==arguments[4]?arguments[4]:ow;if(of.test(t)){let r;"function"==typeof o?r=o(t,n)??"":(!1!==o&&tJ(i,ob,oC(n)),r=t),e.innerHTML=r}else ov(e,t)}function ov(e,t){let o=e.firstChild;o&&3===o.nodeType&&null===o.nextSibling?o.textContent=t:(om(e),e.appendChild(e.ownerDocument.createTextNode(t)))}function oS(e){if("function"==typeof e.checkVisibility)return e.checkVisibility();let t=e.ownerDocument.documentElement,o=e.ownerDocument.defaultView,n=e;for(;n!==t;){if(null===n)return!1;if(nn(n)){let e=n.host;if(e.impl)return oS(e.impl);return oS(e)}if(n.nodeType===Node.DOCUMENT_FRAGMENT_NODE)return!1;else if(n.nodeType===Node.ELEMENT_NODE&&ne(n)&&o?.getComputedStyle(n).display==="none")return!1;n=n.parentNode}return!0}function oR(e){let t=e.ownerDocument.defaultView,o=e;for(;o.parentElement;){if("0px"===o.style.height||"0"===o.style.height){let e=t?.getComputedStyle(o).getPropertyValue("overflow");return"hidden"===e||"clip"===e}o=o.parentElement}return!1}function ox(e){let t,o,n,i=e.ownerDocument,r=i.defaultView,l=i.documentElement,s=e;for(t=s.offsetLeft,o=s.offsetTop,n=s;(s=ne(s.offsetParent)?s.offsetParent:null)&&s!==i.body&&"offsetLeft"in s;)t+=s.offsetLeft,o+=s.offsetTop,n=s;return n&&"fixed"===n.style.position&&(t+=(r?.pageXOffset??0)||l.scrollLeft,o+=(r?.pageYOffset??0)||l.scrollTop),{left:t,top:o}}function oM(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:window;return e.scrollY}function oH(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:window;return e.scrollX}function oE(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:window;return e instanceof Window?oM(t):e.scrollTop}function ok(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:window;return e instanceof Window?oH(t):e.scrollLeft}function oT(e){let t=e.ownerDocument,o=t.defaultView,n=["auto","scroll"],i=e.parentElement;for(;i&&i.style&&t.body!==i;){let{overflow:e,overflowX:t,overflowY:r}=i.style;if([e,t,r].includes("scroll")||(o&&({overflow:e,overflowX:t,overflowY:r}=o.getComputedStyle(i)),n.includes(e)||n.includes(t)||n.includes(r))||i.clientHeight<=i.scrollHeight+1&&(n.includes(r)||n.includes(e))||i.clientWidth<=i.scrollWidth+1&&(n.includes(t)||n.includes(e)))return i;i=i.parentElement}return o??t.documentElement}function oI(e){return e.scrollHeight-e.clientHeight}function oA(e){return e.scrollWidth-e.clientWidth}let o_=["scroll","hidden","auto","clip"],oO=["visible","clip","hidden","scroll","auto","overlay"];function oP(e,t){return o_.includes(e)&&("clip"!==e||"visible"!==t&&""!==t)}function oD(e){let t=e.ownerDocument,o=t.defaultView,n=e.parentElement;for(;n&&n.style&&t.body!==n;){if(o){let{x:e,y:t}=function(e,t){let[o="",n=o]=e.style.overflow.split(/\s+/).filter(Boolean),i=(e,o,n)=>{let i=e||o;return oO.includes(i)?i:t.getPropertyValue(n)};return{x:i(e.style.overflowX,o,"overflow-x"),y:i(e.style.overflowY,n,"overflow-y")}}(n,o.getComputedStyle(n));if(oP(e,t)||oP(t,e))return n}else if("visible"!==n.style.overflow&&""!==n.style.overflow)return n;n=n.parentElement}return o??t.documentElement}function oN(e,t){let o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:window;if(!e)return;if(e instanceof Window)return"width"===t?`${e.innerWidth}px`:"height"===t?`${e.innerHeight}px`:void 0;let n=e.style.getPropertyValue(t)||e.style[t];if(""!==n&&void 0!==n)return n;let i=o.getComputedStyle(e),r=i.getPropertyValue(t)||i[t];if(""!==r&&void 0!==r)return r}function oB(e,t){let o=!1;return t instanceof CSSStyleRule&&t.selectorText&&("msMatchesSelector"in e&&"function"==typeof e.msMatchesSelector?o=e.msMatchesSelector(t.selectorText):e.matches&&(o=e.matches(t.selectorText))),o}function oL(e){return e.offsetWidth}function oV(e){return e.offsetHeight}function oF(e){return e instanceof Window?e.innerHeight:e.clientHeight}function oz(e){return e instanceof Window?e.innerWidth:e.clientWidth}function oW(e,t,o){e.addEventListener(t,o,!1)}function o$(e,t,o){e.removeEventListener(t,o,!1)}function oU(e){return e.selectionStart?e.selectionStart:0}function oG(e){return e.selectionEnd?e.selectionEnd:0}function oq(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:window,t=e.document,o="";return e.getSelection?o=e.getSelection()?.toString()??"":"selection"in t&&t.selection&&"Control"!==t.selection.type&&(o=t.selection.createRange().text),o}function oj(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:window;if(e.getSelection){let t=e.getSelection();t?.empty?t.empty():t?.removeAllRanges&&t.removeAllRanges()}}function oY(e,t,o){if(void 0===o&&(o=t),e.setSelectionRange){e.focus();try{e.setSelectionRange(t,o)}catch(i){let n=e.parentElement;if(n){let i=n.style.display;n.style.display="block",e.setSelectionRange(t,o),n.style.display=i}}}}function oK(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:document;return tq()?2*!Number.isInteger(e.defaultView?.devicePixelRatio||1):0}function oX(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:document;return void 0===t&&(t=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:document,t=function(){let t=arguments.length>0&&void 0!==arguments[0]&&arguments[0],o=e.createElement("div");o.style.height="200px",o.style.width="100%";let n=e.createElement("div");n.classList.add("htScrollbarTest"),t&&n.classList.add("htScrollbarSafariTest"),n.style.boxSizing="content-box",n.style.height="150px",n.style.left="0px",n.style.overflow="hidden",n.style.position="absolute",n.style.top="0px",n.style.width="200px",n.style.visibility="hidden",n.appendChild(o),e.body.appendChild(n);let i=o.offsetWidth;n.style.overflow="scroll";let r=o.offsetWidth;return i===r&&(r=n.clientWidth),e.body.removeChild(n),i-r},o=t();return 0===o&&tF()&&!t$()&&!tG()?t(!0):o}(e)),t}function oZ(e){return e instanceof Window?e.document.body.scrollHeight>e.innerHeight:e.offsetWidth!==e.clientWidth}function oQ(e){return e instanceof Window?e.document.body.scrollWidth>e.innerWidth:e.offsetHeight!==e.clientHeight}function oJ(e,t,o){e.style.transform=`translate3d(${t},${o},0)`}function o0(e){let t;return e.style.transform&&""!==(t=e.style.transform)?["transform",t]:-1}function o1(e){e.style.transform&&""!==e.style.transform&&(e.style.transform="")}function o2(e){return e&&(["INPUT","SELECT","TEXTAREA"].indexOf(e.nodeName)>-1||"true"===e.contentEditable)}function o3(e){return o2(e)&&"hotInput"in e.dataset==!1}function o6(e){let t=nr(e.ownerDocument);ne(t)&&!o3(t)&&(e instanceof HTMLInputElement||e instanceof HTMLTextAreaElement)&&e.select()}function o4(e){return!e.parentNode}function o5(e,t){let o=new IntersectionObserver((e,o)=>{e.forEach(e=>{e.isIntersecting&&(t(),o.disconnect())})});return o.observe(e),o}function o7(e){let t=!(arguments.length>1)||void 0===arguments[1]||arguments[1],o=!(arguments.length>2)||void 0===arguments[2]||arguments[2],n=e.ownerDocument,i=n.createRange(),r=n.defaultView?.getSelection();if(ou(e,"contenteditable",!0),o){let t=P();ou(e,t[0],t[1])}t&&od(e,"invisibleSelection"),i.selectNodeContents(e),r?.removeAllRanges(),r?.addRange(i)}function o9(e){let t=!(arguments.length>1)||void 0===arguments[1]||arguments[1],o=e.ownerDocument.defaultView?.getSelection();e.hasAttribute("aria-hidden")&&e.removeAttribute("aria-hidden"),o?.removeAllRanges(),t&&oc(e,"invisibleSelection"),e.removeAttribute("contenteditable")}function o8(e,t){let o=!(arguments.length>2)||void 0===arguments[2]||arguments[2];o7(e,o),t(),o9(e,o)}function ne(e){if("object"!=typeof e||null===e)return!1;let t=e.ownerDocument?.defaultView?.Element;return!!(t&&e instanceof t)}function nt(e){return ne(e)&&("TD"===e.tagName||"TH"===e.tagName)}function no(e){return"INPUT"===e.tagName}function nn(e){return"object"==typeof e&&null!==e&&"nodeType"in e&&e.nodeType===Node.DOCUMENT_FRAGMENT_NODE&&"host"in e}function ni(e){let t=[],o=e.getRootNode();for(;nn(o);){let{host:e}=o;if(!ne(e))break;t.push(e),o=e.getRootNode()}return t}function nr(e){let t=e.activeElement;for(;t?.shadowRoot?.activeElement;)t=t.shadowRoot.activeElement;return t}function nl(e,t){return e.childNodes[t]||null}function ns(e){return"function"==typeof e}function na(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:200,o=0,n={lastCallThrottled:!0},i=null;return function(){for(var r=arguments.length,l=Array(r),s=0;s<r;s++)l[s]=arguments[s];let a=Date.now(),h=!1;n.lastCallThrottled=!0,o||(o=a,h=!0);let d=t-(a-o);return h?(n.lastCallThrottled=!1,e.apply(this,l)):(i&&clearTimeout(i),i=setTimeout(()=>{n.lastCallThrottled=!1,e.apply(this,l),o=0,i=null},d)),n}}function nh(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:200,o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:10,n=na(e,t),i=o;function r(){for(var t=arguments.length,o=Array(t),r=0;r<t;r++)o[r]=arguments[r];return i?(i-=1,e.apply(this,o)):n.apply(this,o)}return r.clearHits=function(){i=o},r}function nd(e){let t,o=arguments.length>1&&void 0!==arguments[1]?arguments[1]:200,n=null;function i(){for(var i=arguments.length,r=Array(i),l=0;l<i;l++)r[l]=arguments[l];return n&&clearTimeout(n),n=setTimeout(()=>{n=null,t=e.apply(this,r)},o),t}return i.cancel=function(){null!==n&&(clearTimeout(n),n=null)},i}function nc(){for(var e=arguments.length,t=Array(e),o=0;o<e;o++)t[o]=arguments[o];let[n,...i]=t;return function(){for(var e=arguments.length,t=Array(e),o=0;o<e;o++)t[o]=arguments[o];return X(i,(e,t)=>t(e),n.apply(this,t))}}function nu(e){for(var t=arguments.length,o=Array(t>1?t-1:0),n=1;n<t;n++)o[n-1]=arguments[n];return function(){for(var t=arguments.length,n=Array(t),i=0;i<t;i++)n[i]=arguments[i];return e.apply(this,o.concat(n))}}function ng(e){let t=e.length;return function o(n){return function(){for(var i=arguments.length,r=Array(i),l=0;l<i;l++)r[l]=arguments[l];let s=n.concat(r);return s.length>=t?e.apply(this,s):o(s)}}([])}function np(e){let t=e.length;return function o(n){return function(){for(var i=arguments.length,r=Array(i),l=0;l<i;l++)r[l]=arguments[l];let s=n.concat(r.reverse());return s.length>=t?e.apply(this,s):o(s)}}([])}function nm(e,t,o,n,i,r,l,s){if(eP(s))return e.call(t,o,n,i,r,l,s);if(eP(l))return e.call(t,o,n,i,r,l);if(eP(r))return e.call(t,o,n,i,r);if(eP(i))return e.call(t,o,n,i);if(eP(n))return e.call(t,o,n);else if(eP(o))return e.call(t,o);return e.call(t)}let nf={ALT:18,ARROW_DOWN:40,ARROW_LEFT:37,ARROW_RIGHT:39,ARROW_UP:38,AUDIO_DOWN:tB()?182:174,AUDIO_MUTE:tB()?181:173,AUDIO_UP:tB()?183:175,BACKSPACE:8,CAPS_LOCK:20,COMMA:188,COMMAND_LEFT:91,COMMAND_RIGHT:93,COMMAND_FIREFOX:224,CONTROL:17,DELETE:46,END:35,ENTER:13,ESCAPE:27,F1:112,F2:113,F3:114,F4:115,F5:116,F6:117,F7:118,F8:119,F9:120,F10:121,F11:122,F12:123,F13:124,F14:125,F15:126,F16:127,F17:128,F18:129,F19:130,HOME:36,INSERT:45,MEDIA_NEXT:176,MEDIA_PLAY_PAUSE:179,MEDIA_PREV:177,MEDIA_STOP:178,NULL:0,NUM_LOCK:144,PAGE_DOWN:34,PAGE_UP:33,PAUSE:19,PERIOD:190,SCROLL_LOCK:145,SHIFT:16,SPACE:32,TAB:9,A:65,C:67,D:68,F:70,L:76,O:79,P:80,S:83,V:86,X:88,Y:89,Z:90},nb=[nf.ALT,nf.ARROW_DOWN,nf.ARROW_LEFT,nf.ARROW_RIGHT,nf.ARROW_UP,nf.AUDIO_DOWN,nf.AUDIO_MUTE,nf.AUDIO_UP,nf.BACKSPACE,nf.CAPS_LOCK,nf.DELETE,nf.END,nf.ENTER,nf.ESCAPE,nf.F1,nf.F2,nf.F3,nf.F4,nf.F5,nf.F6,nf.F7,nf.F8,nf.F9,nf.F10,nf.F11,nf.F12,nf.F13,nf.F14,nf.F15,nf.F16,nf.F17,nf.F18,nf.F19,nf.HOME,nf.INSERT,nf.MEDIA_NEXT,nf.MEDIA_PLAY_PAUSE,nf.MEDIA_PREV,nf.MEDIA_STOP,nf.NULL,nf.NUM_LOCK,nf.PAGE_DOWN,nf.PAGE_UP,nf.PAUSE,nf.SCROLL_LOCK,nf.SHIFT,nf.TAB];function nC(e){return 32===e||e>=48&&e<=57||e>=96&&e<=111||e>=186&&e<=192||e>=219&&e<=222||e>=226||e>=65&&e<=90}function nw(e){return nb.includes(e)}function ny(e){let t=[];return tj()?t.push(nf.COMMAND_LEFT,nf.COMMAND_RIGHT,nf.COMMAND_FIREFOX):t.push(nf.CONTROL),t.includes(e)}function nv(e){return[nf.CONTROL,nf.COMMAND_LEFT,nf.COMMAND_RIGHT,nf.COMMAND_FIREFOX].includes(e)}function nS(e,t){let o=t.split("|"),n=!1;return J(o,t=>{if(e===nf[t])return n=!0,!1}),n}function nR(e){e.isImmediatePropagationEnabled=!1,e.cancelBubble=!0}function nx(e){return!1===e.isImmediatePropagationEnabled}function nM(e){return 2===e.button}function nH(e){return 0===e.button}function nE(e){return 1===e.button}function nk(e){return"u">typeof TouchEvent&&e instanceof TouchEvent}function nT(e){return"touches"in e&&"changedTouches"in e}function nI(e){if(!nT(e)||0===e.changedTouches.length)return null;let{identifier:t,clientX:o,clientY:n}=e.changedTouches[0];return{identifier:t,clientX:o,clientY:n}}function nA(e,t){if(!nT(e))return null;for(let o=0;o<e.touches.length;o++){let n=e.touches[o];if(n.identifier===t)return{identifier:n.identifier,clientX:n.clientX,clientY:n.clientY}}return null}function n_(e,t){let o={x:e.offsetX,y:e.offsetY},n=t5(e);if(!ne(t)||n!==t&&n.contains(t))return o;for(;n!==t;)o.x+=n.offsetLeft,o.y+=n.offsetTop,n=n.offsetParent;return o}let nO=["afterCellMetaReset","afterChange","afterContextMenuDefaultOptions","beforeContextMenuSetItems","afterDropdownMenuDefaultOptions","beforeDropdownMenuSetItems","afterContextMenuHide","beforeContextMenuShow","afterContextMenuShow","afterCopyLimit","beforeCreateCol","afterColumnSequenceCacheUpdate","afterColumnSequenceChange","afterCreateCol","beforeCreateRow","afterCreateRow","beforeAlter","afterDeselect","afterDestroy","afterDocumentKeyDown","afterDrawSelection","beforeRemoveCellClassNames","beforeCompositionStart","afterGetCellMeta","afterGetColHeader","afterGetRowHeader","afterInit","afterLoadData","afterUpdateData","afterDataProviderFetch","afterDataProviderFetchError","afterDataProviderFetchAbort","hasExternalDataSource","beforeRowsMutation","afterRowsMutation","afterRowsMutationError","afterMomentumScroll","afterOnCellCornerMouseDown","afterOnSelectionHandleMouseDown","afterOnSelectionEdgeMouseDown","beforeMoveCells","afterMoveCells","afterOnCellCornerDblClick","afterOnCellMouseDown","afterOnCellMouseUp","afterOnCellContextMenu","afterOnCellMouseOver","afterOnCellMouseOut","afterOnCellMouseOverOutside","afterRemoveCol","afterRemoveRow","beforeRenderer","afterRenderer","afterRowSequenceCacheUpdate","afterRowSequenceChange","beforeViewportScrollVertically","beforeViewportScrollHorizontally","beforeViewportScroll","afterScrollHorizontally","afterScrollVertically","afterScroll","afterSelection","afterSelectionByProp","afterSelectionEnd","afterSelectionEndByProp","afterSelectionFocusSet","beforeSelectColumns","afterSelectColumns","beforeSelectRows","afterSelectRows","beforeSelectAll","afterSelectAll","afterSetCellMeta","afterRemoveCellMeta","afterSetDataAtCell","afterSetDataAtRowProp","afterSetSourceDataAtCell","afterSetTheme","afterUpdateSettings","afterValidate","beforeLanguageChange","afterLanguageChange","beforeAutofill","afterAutofill","beforeCellAlignment","beforeChange","beforeChangeRender","beforeHeightChange","beforeWidthChange","beforeDrawBorders","beforeGetCellMeta","beforeRemoveCellMeta","beforeInit","beforeInitWalkontable","beforeLoadData","beforeUpdateData","beforeDataProviderFetch","beforeKeyDown","beforeOnCellMouseDown","beforeOnCellMouseUp","beforeOnCellContextMenu","beforeOnCellMouseOver","beforeOnCellMouseOut","beforeOnCellMouseOverOutside","beforeRemoveCol","beforeRemoveRow","beforeViewRender","afterViewRender","beforeRender","afterRender","beforeRowWrap","beforeColumnWrap","beforeSetCellMeta","beforeSelectionFocusSet","beforeSetRangeStartOnly","beforeSetRangeStart","beforeSetRangeEnd","beforeSelectionHighlightSet","beforeTouchScroll","beforeValidate","beforeValueRender","construct","init","modifyColHeader","modifyColWidth","modifyFiltersMultiSelectValue","modifyFocusedElement","modifyRowHeader","modifyRowHeight","modifyRowHeightByOverlayName","modifyData","modifySourceData","modifyRowData","modifyGetCellCoords","modifyGetCoordsElement","modifyFocusOnTabNavigation","beforeHighlightingRowHeader","beforeHighlightingColumnHeader","beforeColumnSort","afterColumnSort","modifyAutofillRange","modifyCopyableRange","beforeCut","afterCut","beforeCopy","afterCopy","beforePaste","afterPaste","beforeColumnFreeze","afterColumnFreeze","beforeColumnMove","afterColumnMove","afterCustomBordersUpdate","beforeColumnUnfreeze","afterColumnUnfreeze","beforeRowCollapse","afterRowCollapse","beforeRowExpand","afterRowExpand","beforeRowMove","afterRowMove","beforeColumnResize","afterColumnResize","beforeRowResize","afterRowResize","afterGetColumnHeaderRenderers","afterGetRowHeaderRenderers","beforeStretchingColumnWidth","beforeFilter","afterFilter","beforePageChange","afterPageChange","beforePageSizeChange","afterPageSizeChange","afterPageSizeVisibilityChange","afterPageCounterVisibilityChange","afterPageNavigationVisibilityChange","afterFormulasValuesUpdate","afterNamedExpressionAdded","afterNamedExpressionRemoved","afterSheetAdded","afterSheetRenamed","afterSheetRemoved","modifyColumnHeaderHeight","modifySinglePassLayout","modifyColumnHeaderValue","beforeUndo","beforeUndoStackChange","afterUndo","afterUndoStackChange","beforeRedo","beforeRedoStackChange","afterRedo","afterRedoStackChange","modifyRowHeaderWidth","modifyTransformFocus","modifyTransformStart","modifyTransformEnd","afterModifyTransformFocus","afterModifyTransformStart","afterModifyTransformEnd","afterViewportRowCalculatorOverride","afterViewportColumnCalculatorOverride","afterPluginsInitialized","beforeHideRows","afterHideRows","beforeUnhideRows","afterUnhideRows","beforeHideColumns","afterHideColumns","beforeUnhideColumns","afterUnhideColumns","beforeTrimRow","afterTrimRow","beforeUntrimRow","afterUntrimRow","beforeDropdownMenuShow","afterDropdownMenuShow","afterDropdownMenuHide","beforeAddChild","afterAddChild","beforeDetachChild","afterDetachChild","beforeBeginEditing","afterDialogHide","afterDialogShow","beforeDialogHide","beforeDialogShow","dialogFocusPreviousElement","dialogFocusNextElement","afterDialogFocus","beforeLoadingShow","afterLoadingShow","beforeLoadingHide","afterLoadingHide","beforeEmptyDataStateShow","afterEmptyDataStateShow","beforeEmptyDataStateHide","afterEmptyDataStateHide","beforeNotificationShow","afterNotificationShow","beforeNotificationHide","afterNotificationHide","afterBeginEditing","beforeMergeCells","afterMergeCells","beforeUnmergeCells","afterUnmergeCells","afterListen","afterUnlisten","afterRefreshDimensions","beforeRefreshDimensions","beforeColumnCollapse","afterColumnCollapse","beforeColumnExpand","afterColumnExpand","modifyAutoColumnSizeSeed"],nP=new Map([["modifyRow","8.0.0"],["modifyCol","8.0.0"],["unmodifyRow","8.0.0"],["unmodifyCol","8.0.0"],["skipLengthCache","8.0.0"],["hiddenColumn","8.0.0"],["hiddenRow","8.0.0"],["persistentStateSave","17.0.0"],["persistentStateLoad","17.0.0"],["persistentStateReset","17.0.0"]]),nD=new Map([]);class nN{#e=new Map;constructor(){nO.forEach(e=>this.#t(e))}getList(e){return this.#e.get(e)??null}getHooks(e){let t=this.#e.get(e),o=[];if(t){let e=t.head;for(;e;)o.push(e),e=e.next}return o}add(e,t){let o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},n=this.#e.get(e);n||(n=this.#t(e),nO.push(e));for(let e=n.head;null!==e;e=e.next)if(e.callback===t)return;let i=Number.isInteger(o.orderIndex)?o.orderIndex??0:0,r=!!o.runOnce,l=!!o.initialHook;if(l){for(let e=n.head;null!==e;e=e.next)if(e.initialHook){e.callback=t;return}}this.#o(n,{callback:t,orderIndex:i,runOnce:r,initialHook:l,next:null})}has(e){let t=this.#e.get(e);return!!t&&null!==t.head}remove(e,t){let o=this.#e.get(e);if(!o)return!1;let n=null,i=o.head;for(;null!==i;){if(i.callback===t)return n?n.next=i.next:o.head=i.next,i===o.tail&&(o.tail=n),!0;n=i,i=i.next}return!1}destroy(){this.#e.clear()}#o(e,t){if(null===e.head){e.head=t,e.tail=t;return}if(t.orderIndex>=e.tail.orderIndex){e.tail.next=t,e.tail=t;return}let o=null,n=e.head;for(;null!==n&&n.orderIndex<=t.orderIndex;)o=n,n=n.next;null===o?(t.next=e.head,e.head=t):(t.next=n,o.next=t)}#t(e){let t={head:null,tail:null};return this.#e.set(e,t),t}}let nB=eu`The plugin hook "[hookName]" was removed in Handsontable [removedInVersion].\x20
|
|
73
73
|
Please consult release notes https://github.com/handsontable/handsontable/releases/tag/[removedInVersion] to\x20
|
|
74
74
|
learn about the migration path.`;class nL{static getSingleton(){return nV}globalBucket=new nN;getBucket(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null;return e?(e.pluginHookBucket||(e.pluginHookBucket=new nN),e.pluginHookBucket):this.globalBucket}add(e,t){let o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null,n=arguments.length>3?arguments[3]:void 0;return Array.isArray(t)?J(t,t=>this.add(e,t,o)):(nP.has(e)&&tZ(tK(nB,{hookName:e,removedInVersion:nP.get(e)})),nD.has(e)&&tZ(nD.get(e)),this.getBucket(o).add(e,t,{orderIndex:n,runOnce:!1})),this}once(e,t){let o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null,n=arguments.length>3?arguments[3]:void 0;return Array.isArray(t)?J(t,t=>this.once(e,t,o)):this.getBucket(o).add(e,t,{orderIndex:n,runOnce:!0}),this}addAsFixed(e,t){let o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null;return Array.isArray(t)?J(t,t=>this.addAsFixed(e,t,o)):this.getBucket(o).add(e,t,{initialHook:!0}),this}remove(e,t){let o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null;return this.getBucket(o).remove(e,t)}has(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;return this.getBucket(t).has(e)}run(e,t,o,n,i,r,l,s){return o=this.#n(this.getBucket().getList(t),e,t,null,o,n,i,r,l,s),o=this.#n(this.getBucket(e).getList(t),e,t,e,o,n,i,r,l,s)}#n(e,t,o,n,i,r,l,s,a,h){if(null===e||null===e.head)return i;let d=e.head,c=e.tail;for(;null!==d;){let e=nm(d.callback,t,i,r,l,s,a,h);if(void 0!==e&&(i=e),d.runOnce&&this.remove(o,d.callback,n),d===c)break;d=d.next}return i}destroy(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null;this.getBucket(e).destroy()}register(e){this.isRegistered(e)||nO.push(e)}deregister(e){this.isRegistered(e)&&nO.splice(nO.indexOf(e),1)}isDeprecated(e){return nD.has(e)||nP.has(e)}isRegistered(e){return nO.indexOf(e)>=0}getRegistered(){return nO}}let nV=new nL,nF=new Map;function nz(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"common";nF.has(e)||nF.set(e,new Map);let t=nF.get(e);return{register:function(e,o){t.set(e,o)},getItem:function(e){return t.get(e)},hasItem:function(e){return t.has(e)},getNames:function(){return[...t.keys()]},getValues:function(){return[...t.values()]},clear:function(){nF.delete(e),t.clear()}}}let{register:nW,getItem:n$,hasItem:nU,getNames:nG,getValues:nq}=nz("editors");class nj{#i;#r={};constructor(e){this.#i=e;const t=this.#r;nL.getSingleton().add("afterDestroy",function(){t[this.guid]=null})}getConstructor(){return this.#i}getInstance(e){return e.guid in this.#r||(this.#r[e.guid]=new this.#i(e)),this.#r[e.guid]}}let nY=new WeakMap;function nK(e){return"function"==typeof e}function nX(e){return nK(e)||to("Editor class must be a constructor function."),e}function nZ(e){return"string"!=typeof e?nX(e):(nU(e)||to(`No registered editor found under "${e}" name`),n$(e).getConstructor())}function nQ(e,t){let o="string"==typeof e?e:null,n=t;e&&nK(e)&&(n=e,o=e.EDITOR_TYPE??null),n||to("Editor class is required to register an editor.");let i=nX(n),r=new nj(i);null!==o&&nW(o,r),nY.set(i,r)}let nJ={_hooksStorage:Object.create(null),addHook(e,t){return this._hooksStorage[e]||(this._hooksStorage[e]=[]),this.hot.addHook(e,t),this._hooksStorage[e].push(t),this},removeHooksByKey(e){J(this._hooksStorage[e]||[],t=>{this.hot.removeHook(e,t)})},clearHooks(){tp(this._hooksStorage,(e,t)=>this.removeHooksByKey(t)),this._hooksStorage={}}};function n0(e,t){let{instance:o,visualRow:n,visualCol:i,valueSetter:r}=t;return ns(r)?r.call(o,e,n,i,t):e}function n1(e,t){let{instance:o,visualRow:n,visualCol:i,valueGetter:r}=t;return ns(r)?r.call(o,e,n,i,t):e}tg(nJ,"MIXIN_NAME","hooksRefRegisterer",{writable:!1,enumerable:!1});let n2=Object.freeze({VIRGIN:"STATE_VIRGIN",EDITING:"STATE_EDITING",WAITING:"STATE_WAITING",FINISHED:"STATE_FINISHED"});class n3{static get EDITOR_TYPE(){return"base"}state=n2.VIRGIN;_opened=!1;_fullEditMode=!1;_closeCallback=null;_closeAfterDataChange=!0;TD=null;row=null;col=null;prop=null;originalValue=null;constructor(e){this.hot=e,this.init()}_fireCallbacks(e){this._closeCallback&&(this._closeCallback(e),this._closeCallback=null)}init(){}getValue(){to("Editor getValue() method unimplemented")}setValue(e){to("Editor setValue() method unimplemented")}open(e){to("Editor open() method unimplemented")}close(){to("Editor close() method unimplemented")}focus(){to("Editor focus() method unimplemented")}prepare(e,t,o,n,i,r){this.TD=n,this.row=e,this.col=t,this.prop=o,this.originalValue=i,this.cellProperties=r,this.state=this.isOpened()?this.state:n2.VIRGIN}extend(){return class extends this.constructor{}}saveValue(e,t){let o,n,i,r;if(t){let e=this.hot.getSelectedRangeActive(),t=e?.getTopStartCorner(),l=e?.getBottomEndCorner();o=t?.row??this.row,n=t?.col??this.col,i=l?.row??this.row,r=l?.col??this.col}else[o,n,i,r]=[this.row,this.col,null,null];let l=this.hot.runHooks("modifyGetCellCoords",o,n,!1,"meta");Array.isArray(l)&&([o,n]=l),this.hot.populateFromArray(o,n,e,i,r,"edit")}beginEditing(e,t){if(this.state!==n2.VIRGIN)return;if(null===this.row||null===this.col)return void tZ("Editor opened without valid cell coordinates.");let o=this.hot,n=o.rowIndexMapper.getRenderableFromVisualIndex(this.row),i=o.columnIndexMapper.getRenderableFromVisualIndex(this.col);if(null!==n&&null!==i&&o.view.scrollViewport({row:n,col:i}),this.state=n2.EDITING,this.isInFullEditMode()){let t=n1(this.originalValue,this.hot.getCellMeta(this.row,this.col)),o="string"==typeof e?e:eO(t);this.setValue(o)}this.open(t),this._opened=!0,this.focus(),o.view.render(),o.runHooks("afterBeginEditing",this.row,this.col),this.addHook("beforeDialogShow",()=>this.cancelChanges())}finishEditing(e,t,o){if(o){let e=this._closeCallback;this._closeCallback=t=>{e&&e(t),o(t),this.hot.view.render()}}if(!this.isWaiting()){if(this.state===n2.VIRGIN)return void this.hot._registerTimeout(()=>{this._fireCallbacks(!0)});if(this.state===n2.EDITING){if(e){this.cancelChanges(),this.hot.view.render();return}let o=this.getValue();this.cellProperties.trimWhitespace&&(o="string"==typeof o?String.prototype.trim.call(o||""):o),"function"==typeof this.cellProperties.valueParser&&(o=this.cellProperties.valueParser(o,this.cellProperties)),this.state=n2.WAITING,this.saveValue([[o]],t),this.hot.getCellValidator(this.cellProperties)?this.hot.addHookOnce("postAfterValidate",e=>{this.state=n2.FINISHED,this.discardEditor(e)}):(this.state=n2.FINISHED,this.discardEditor(!0))}}}cancelChanges(){this.state=n2.FINISHED,this.discardEditor()}discardEditor(e){if(this.state===n2.FINISHED)if(!1===e&&!0!==this.cellProperties.allowInvalid){if(null===this.row||null===this.col)return;this.hot.selectCell(this.row,this.col),this.focus(),this.state=n2.EDITING,this._fireCallbacks(!1)}else this.close(),this._opened=!1,this._fullEditMode=!1,this.state=n2.VIRGIN,this._fireCallbacks(!0),this.hot.getShortcutManager().setActiveContextName("grid")}enableFullEditMode(){this._fullEditMode=!0}isInFullEditMode(){return this._fullEditMode}isOpened(){return this._opened}isWaiting(){return this.state===n2.WAITING}getEditedCellRect(){let e=this.getEditedCell();if(!e)return;let{wtOverlays:t,wtViewport:o}=this.hot.view._wt,n=this.hot.rootWindow,i=ox(e),r=oL(e),l=ox(this.hot.rootElement),s=oL(this.hot.rootElement),a=t.topOverlay?.holder,h=t.inlineStartOverlay?.holder,d=a!==n?a.scrollTop:0,c=h!==n?h.scrollLeft:0,u=n.innerWidth-l.left-s,{wtTable:g}=t.getParentOverlay(e)??this.hot.view._wt,p=g.name,m=["master","inline_start"].includes(p)?d:0,f=["master","top","bottom"].includes(p)?c:0,b=+(i.top!==l.top),C=i.top-l.top-b-m,w=0;w=this.hot.isRtl()?n.innerWidth-i.left-r-u-1+f:i.left-l.left-1-f,["top","top_inline_start_corner"].includes(p)&&(C+=t.topOverlay?.getOverlayOffset()??0),["inline_start","top_inline_start_corner"].includes(p)&&(w+=Math.abs(t.inlineStartOverlay?.getOverlayOffset()??0));let y=this.hot.hasColHeaders(),v=this.hot.rowIndexMapper.getRenderableFromVisualIndex(this.row??0),S=this.hot.columnIndexMapper.getRenderableFromVisualIndex(this.col??0),R=this.hot.rowIndexMapper.getRenderableIndexesLength()-this.hot.view._wt.getSetting("fixedRowsBottom");(y&&(v??0)<=0||v===R)&&(C+=1),(S??0)<=0&&(w+=1);let x=o.rowsRenderCalculator?.startPosition??0,M=o.columnsRenderCalculator?.startPosition??0,H=Math.abs(t.inlineStartOverlay?.getScrollPosition()??0),E=t.topOverlay?.getScrollPosition()??0,k=oX(this.hot.rootDocument),T=this.#l(e,p,x,E,k),I=this.#s(e,p,g,r,M,H),A=n.getComputedStyle(e),_=Number.parseInt(A[this.hot.isRtl()?"borderRightWidth":"borderLeftWidth"],10)>0?0:1,O=Number.parseInt(A.borderTopWidth,10)>0?0:1,P=oL(e)+_,D=oV(e)+O,N=a&&oZ(a)?k:0,B=h&&oQ(h)?k:0,L=this.hot.view.maximumVisibleElementWidth(I)-N+_;return{top:C,start:w,height:D,maxHeight:Math.max(this.hot.view.maximumVisibleElementHeight(T??0)-B+O,this.hot.stylesHandler.getDefaultRowHeight()??0),width:P,maxWidth:L}}#l(e,t,o,n,i){let r=e.offsetTop,{wtOverlays:l}=this.hot.view._wt;if(["inline_start","master"].includes(t)&&(r+=o-n),["bottom","bottom_inline_start_corner"].includes(t)&&l.bottomOverlay?.clone){let{wtViewport:e,wtTable:t}=l.bottomOverlay.clone;r+=e.getWorkspaceHeight()-t.getHeight()-i}return r}#s(e,t,o,n,i,r){let l=e.offsetLeft;return this.hot.isRtl()?l=(l>=0?o.getWidth()-e.offsetLeft:Math.abs(l))+(i-r-n):["top","master","bottom"].includes(t)&&(l+=i-r),l}getEditedCellsLayerClass(){switch(this.checkEditorSection()){case"inline-start":return"ht_clone_left ht_clone_inline_start";case"bottom":return"ht_clone_bottom";case"bottom-inline-start-corner":return"ht_clone_bottom_left_corner ht_clone_bottom_inline_start_corner";case"top":return"ht_clone_top";case"top-inline-start-corner":return"ht_clone_top_left_corner ht_clone_top_inline_start_corner";default:return"ht_clone_master"}}getEditedCell(){return null===this.row||null===this.col?null:this.hot.getCell(this.row,this.col,!0)}checkEditorSection(){if(null===this.row||null===this.col)return"";let e=this.hot.countRows(),t=this.hot.getSettings(),o="";return this.row<(t.fixedRowsTop??0)?o=this.col<(t.fixedColumnsStart??0)?"top-inline-start-corner":"top":t.fixedRowsBottom&&this.row>=e-t.fixedRowsBottom?o=this.col<(t.fixedColumnsStart??0)?"bottom-inline-start-corner":"bottom":this.col<(t.fixedColumnsStart??0)&&(o="inline-start"),o}}th(n3,nJ);let n6=0,n4=class{constructor(e=null){this.context=e||this,this.context.eventListeners||(this.context.eventListeners=[])}addEventListener(e,t,o){let n=arguments.length>3&&void 0!==arguments[3]&&arguments[3];if(!this.context)return()=>{};function i(e){var t;let n;o.call(this,(n=(t=e).stopImmediatePropagation,t.stopImmediatePropagation=function(){n.apply(this),nR(this)},t))}return this.context.eventListeners.push({element:e,event:t,callback:o,callbackProxy:i,options:n,eventManager:this}),e.addEventListener(t,i,n),n6+=1,()=>{this.removeEventListener(e,t,o)}}removeEventListener(e,t,o){let n,i=arguments.length>3&&void 0!==arguments[3]&&arguments[3];if(!this.context)return;let r=this.context.eventListeners.length;for(;r;)if(r-=1,(n=this.context.eventListeners[r]).event===t&&n.element===e){if(o&&o!==n.callback||i&&n.eventManager!==this)continue;this.context.eventListeners.splice(r,1),n.element.removeEventListener(n.event,n.callbackProxy,n.options),n6-=1}}clearEvents(){let e=arguments.length>0&&void 0!==arguments[0]&&arguments[0];if(!this.context)return;let t=this.context.eventListeners.length;for(;t;){t-=1;let o=this.context.eventListeners[t];e&&o.eventManager!==this||(this.context.eventListeners.splice(t,1),o.element.removeEventListener(o.event,o.callbackProxy,o.options),n6-=1)}}clear(){this.clearEvents()}destroy(){this.clearEvents(),this.context=null}destroyWithOwnEventsOnly(){this.clearEvents(!0),this.context=null}fireEvent(e,t){let o,n="document"in e?e.document:void 0,i="window"in e?e:void 0;n||(i=(n=e.ownerDocument?e.ownerDocument:e).defaultView);let r={bubbles:!0,cancelable:"mousemove"!==t,view:i,detail:0,screenX:0,screenY:0,clientX:1,clientY:1,ctrlKey:!1,altKey:!1,shiftKey:!1,metaKey:!1,button:0,relatedTarget:void 0};n.createEvent?(o=n.createEvent("MouseEvents")).initMouseEvent(t,r.bubbles,r.cancelable,r.view,r.detail,r.screenX,r.screenY,r.clientX,r.clientY,r.ctrlKey,r.altKey,r.shiftKey,r.metaKey,r.button,r.relatedTarget||n.body.parentNode):o=n.createEventObject(),e.dispatchEvent?e.dispatchEvent(o):e.fireEvent(`on${t}`,o)}};class n5{destroyed=!1;#a=!1;constructor(e,t,o){this.hot=e,this.tableMeta=t,this.selection=o,this.eventManager=new n4(e),this.hot.addHook("afterDocumentKeyDown",e=>this.#h(e)),this.hot.addHook("beforeCompositionStart",e=>this.#h(e)),this.hot.addHook("afterRowSequenceCacheUpdate",()=>this.#d()),this.hot.addHook("afterColumnSequenceCacheUpdate",()=>this.#d()),this.hot.view._wt.update("onCellDblClick",(e,t,o)=>this.#c(e,t))}getActiveEditor(){return this.activeEditor}prepareEditor(){if(this.#a=!1,this.activeEditor&&this.activeEditor.isWaiting())return void this.closeEditor(!1,!1,e=>{e&&this.prepareEditor()});let e=this.hot.getSelectedRangeActive()?.highlight;if(!e||e.isHeader())return;let{row:t,col:o}=e,n=this.hot.runHooks("modifyGetCellCoords",t,o,!1,"meta"),i=t,r=o;if(Array.isArray(n)&&([i,r]=n),this.cellProperties=this.hot.getCellMeta(i,r),!this.isCellEditable())return void this.clearActiveEditor();let l=this.hot.getCell(t,o,!0);if(l){var s;let e,n=this.hot.getCellEditor(this.cellProperties),a=this.hot.colToProp(r),h=this.hot.getSourceDataAtCell(this.hot.toPhysicalRow(i),r);this.activeEditor=(s=this.hot,nK(n)?(nY.get(n)||nQ(null,n),e=nY.get(n)):"string"==typeof n?e=n$(n):to('Only strings and functions can be passed as "editor" parameter'),e||to(`No editor registered under name "${n}"`),e.getInstance(s)),this.activeEditor.prepare(t,o,a,l,h,this.cellProperties)}}isEditorOpened(){return this.activeEditor&&this.activeEditor.isOpened()}openEditor(e,t){let o=arguments.length>2&&void 0!==arguments[2]&&arguments[2];if(!this.isCellEditable())return void this.clearActiveEditor();let n=this.hot.getSelectedRangeActive(),i=this.hot.runHooks("beforeBeginEditing",n.highlight.row,n.highlight.col,e,t,o);(t instanceof MouseEvent&&"boolean"!=typeof i&&(i=0===this.hot.selection.getLayerLevel()&&n.isSingle()),!1===i)?this.clearActiveEditor():(this.activeEditor||(this.hot.scrollToFocusedCell(),this.prepareEditor()),this.activeEditor&&(o&&this.activeEditor.enableFullEditMode(),this.activeEditor.beginEditing(e,t)))}closeEditor(){let e=arguments.length>0&&void 0!==arguments[0]&&arguments[0],t=arguments.length>1&&void 0!==arguments[1]&&arguments[1],o=arguments.length>2?arguments[2]:void 0;this.activeEditor?this.activeEditor.finishEditing(e,t,o):o&&o(!1)}closeEditorAndSaveChanges(e){this.closeEditor(!1,e)}closeEditorAndRestoreOriginalValue(e){this.closeEditor(!0,e)}clearActiveEditor(){this.activeEditor=void 0}isCellEditable(){let e=this.hot.getSelectedRangeActive();if(!e)return!1;let t=this.hot.getCellEditor(this.cellProperties),{row:o,col:n}=e.highlight;return!(null===o||null===n||this.cellProperties.readOnly||!t||this.#u(o,n))}moveSelectionAfterEnter(e){if(!this.hot.getSelected())return;let t={..."function"==typeof this.tableMeta.enterMoves?this.tableMeta.enterMoves(e):this.tableMeta.enterMoves};e.shiftKey&&(t.row=-(t.row??0),t.col=-(t.col??0)),this.hot.selection.isMultiple()?this.selection.transformFocus(t.row??0,t.col??0):this.selection.transformStart(t.row??0,t.col??0,!0)}#u(e,t){return this.hot.rowIndexMapper.isHidden(this.hot.toPhysicalRow(e))||this.hot.columnIndexMapper.isHidden(this.hot.toPhysicalColumn(t))}#d(e){let t=this.activeEditor??e;if(t&&null!==t.row&&null!==t.col&&this.#u(t.row,t.col)){if(t.isWaiting()){this.#a||(this.#a=!0,this.hot.addHookOnce("postAfterValidate",()=>{this.#a=!1,this.hot._registerTimeout(()=>this.#d(t),0)}));return}t.state!==n2.EDITING||this.#a||(this.#a=!0,this.hot._registerTimeout(()=>{this.#a=!1,!this.destroyed&&t.state===n2.EDITING&&null!==t.row&&null!==t.col&&this.#u(t.row,t.col)&&t.finishEditing(!1,!1,e=>{e||t.finishEditing(!0)})},0))}}#h(e){let t=this.hot.getSelectedRangeActive();if(!this.hot.isListening()||!t||t.highlight.isHeader()||nx(e))return;let{keyCode:o}=e,n=(e.ctrlKey||e.metaKey)&&!e.altKey;this.activeEditor&&(!this.activeEditor||this.activeEditor.isWaiting())||nw(o)||nv(o)||n||this.isEditorOpened()||this.openEditor("",e)}#c(e,t){t?.isCell()&&(this.hot.getShortcutManager().isCtrlPressed()?this.clearActiveEditor():this.openEditor(null,e,!0))}destroy(){this.destroyed=!0,this.eventManager.destroy()}}let n7=new WeakMap;n5.getInstance=function(e,t,o){let n=n7.get(e);return n||(n=new n5(e,t,o),n7.set(e,n)),n};let n9={" ":" ","&":"&","<":"<",">":">"},n8=RegExp(Object.keys(n9).map(e=>`(${e})`).join("|"),"gi");function ie(e){let t=e.hasColHeaders(),o=e.hasRowHeaders(),n=[t?-1:0,o?-1:0,e.countRows()-1,e.countCols()-1],i=e.getData(...n),r=i.length,l=r>0?i[0].length:0,s=["<table>","</table>"],a=t?["<thead>","</thead>"]:[],h=["<tbody>","</tbody>"],d=+!!o,c=+!!t;for(let n=0;n<r;n+=1){let r=t&&0===n,s=[];for(let t=0;t<l;t+=1){let l=!r&&o&&0===t,a="";if(r)a=`<th>${e.getColHeader(t-d)}</th>`;else if(l)a=`<th>${e.getRowHeader(n-c)}</th>`;else{let o=i[n][t],{hidden:r,rowspan:l,colspan:s}=e.getCellMetaTransient(n-c,t-d);if(!r){let e=[];if(l&&e.push(`rowspan="${l}"`),s&&e.push(`colspan="${s}"`),eN(o))a=`<td ${e.join(" ")}></td>`;else{let t=String(o).replaceAll("<","<").replaceAll(">",">").replace(/(<br(\s*|\/)>(\r\n|\n)?|\r\n|\n)/g,"<br>\r\n").replace(/\x20/gi," ").replace(/\t/gi,"	");a=`<td ${e.join(" ")}>${t}</td>`}}}s.push(a)}let u=["<tr>",...s,"</tr>"].join("");r?a.splice(1,0,u):h.splice(-1,0,u)}return s.splice(1,0,a.join(""),h.join("")),s.join("")}function it(e){let t=e.length,o=["<table>"];for(let n=0;n<t;n+=1){let i=e[n],r=i.length,l=[];0===n&&o.push("<tbody>");for(let e=0;e<r;e+=1){let t=i[e],o=eN(t)?"":t.toString().replaceAll("&","&").replaceAll("<","<").replaceAll(">",">").replace(/(<br(\s*|\/)>(\r\n|\n)?|\r\n|\n)/g,"<br>\r\n").replace(/\x20{2,}/gi,e=>`<span style="mso-spacerun: yes">${" ".repeat(e.length-1)} </span>`).replace(/\t/gi,"	");l.push(`<td>${o}</td>`)}o.push("<tr>",...l,"</tr>"),n+1===t&&o.push("</tbody>")}return o.push("</table>"),o.join("")}let io=/<td\b[^>]*>/i,ii=/<\/\s*td\s*>/i,ir=/<p.*?>/g;function il(e){let t=[],o=0;for(;o<e.length;){let n,i=e.substring(o).match(io);if(!i){t.push(e.substring(o));break}let r=o+(i.index??0),l=i[0],s=r+l.length;t.push(e.substring(o,r));let a=function(e,t){let o=1,n=t;for(;o>0;){let t=e.substring(n),i=t.match(io),r=t.match(ii);if(!r)break;let l=n+(r.index??0),s=r[0].length,a=i?n+(i.index??0):e.length;if(a<l)o+=1,n=a+(i?.[0].length??0);else{if(0==(o-=1))return{start:l,length:s};n=l+s}}return null}(e,s);if(!a){t.push(e.substring(r));break}let h=e.substring(r,a.start+a.length),d=a.start-r,c=h.substring(l.length,d).trim().replaceAll(/\n\s+/g," ").replaceAll(ir,"\n").replace(/^\n+/,"").replaceAll(/<\/(.*)>\s+$/mg,"</$1>");do n=c,c=c.replace(/<(?!br\b)[^>]+>/gi,"");while(c!==n);c=c.replaceAll(/^ $/mg,""),t.push(`${l}${c}</td>`),o=a.start+a.length}return t.join("")}function is(e){var t;let o=arguments.length>1&&void 0!==arguments[1]?arguments[1]:document,n={},i=e,r=null;if("string"==typeof i){let e=il(i);i=(r=new(o.defaultView?.DOMParser??DOMParser)().parseFromString(e,"text/html")).querySelector("table")}if(!i||"TABLE"!==((t=i)&&t.nodeName||""))return;let l=i,s=r?.querySelector('meta[name$="enerator"]')??null,a=null!==l.querySelector("tbody th"),h=l.querySelector("tr"),d=h?Array.from(h.cells).reduce((e,t)=>e+t.colSpan,0)-!!a:0,c=l.tFoot&&Array.from(l.tFoot.rows)||[],u=[],g=!1,p=0,m=0;if(l.tHead){let e=Array.from(l.tHead.rows).filter(e=>{let t=null!==e.querySelector("td");return t&&u.push(e),!t});g=(p=e.length)>0,p>1?n.nestedHeaders=Array.from(e).reduce((e,t)=>{let o=Array.from(t.cells).reduce((e,t,o)=>{if(a&&0===o)return e;let{colSpan:n,innerHTML:i}=t;return e.push(n>1?{label:i,colspan:n}:i),e},[]);return e.push(o),e},[]):g&&(n.colHeaders=Array.from(e[0].children).reduce((e,t,o)=>(a&&0===o||e.push(t.innerHTML),e),[]))}u.length&&(n.fixedRowsTop=u.length),c.length&&(n.fixedRowsBottom=c.length);let f=[...u,...Array.from(l.tBodies).reduce((e,t)=>(Array.from(t.rows).forEach(t=>{e.push(t)}),e),[]),...c],b=Array.from({length:m=f.length},()=>Array.from({length:d})),C=[],w=[];for(let e=0;e<m;e++){let t=Array.from(f[e].cells),o=t.length;for(let n=0;n<o;n++){let o=t[n],{nodeName:i,innerHTML:r,rowSpan:l,colSpan:a}=o,h=b[e].findIndex(e=>void 0===e);if("TD"===i){if(l>1||a>1){for(let t=e;t<e+l;t++)if(t<m)for(let e=h;e<h+a;e++)b[t][e]=null;let t=o.getAttribute("style");t&&t.includes("mso-ignore:colspan")||C.push({col:h,row:e,rowspan:l,colspan:a})}let t="";t=s&&/excel/gi.test(s.content)?r.replace(/[\r\n][\x20]{0,2}/g," ").replace(/<br(\s*|\/)>[\r\n]?[\x20]{0,3}/gim,"\r\n"):r.replace(/<br(\s*|\/)>[\r\n]?/gim,"\r\n"),b[e][h]=t.replace(n8,e=>n9[e])}else w.push(r)}}return C.length&&(n.mergeCells=C),w.length&&(n.rowHeaders=w),b.length&&(n.data=b),n}function ia(e){return e[0].toUpperCase()+e.substr(1)}function ih(){for(var e=arguments.length,t=Array(e),o=0;o<e;o++)t[o]=arguments[o];let n=[],i=t.length;for(;i;){let e=eO(t[i-=1]).toLowerCase();-1===n.indexOf(e)&&n.push(e)}return 1===n.length}function id(){let e=new Uint16Array(4);return globalThis.crypto.getRandomValues(e),Array.from(e,e=>e.toString(16).padStart(4,"0")).join("")}function ic(e){if("string"!=typeof e)return!1;try{let t=JSON.parse(e);return"object"==typeof t&&null!==t}catch{return!1}}function iu(e){return/^(?:\d\d?%|100%)$/.test(e)}function ig(e){let t=String(e),o="",n=0,i=!1,r="";for(let e=0;e<t.length;e++){let l=t[e];n>0&&!i&&('"'===l||"'"===l)?(i=!0,r=l):i&&l===r?i=!1:i||"<"!==l?!i&&">"===l&&n>0?n-=1:0===n&&(o+=l):n+=1}return o}let ip={"&":"&","<":"<",">":">",'"':""","'":"'"};function im(e){return String(e).replace(/[&<>"']/g,e=>ip[e])}function ib(e){return t2("helper.sanitize","`sanitize()` is deprecated and will be removed in Handsontable 19.0.0. It returns its input unchanged. Use the `sanitizer` option to supply your own sanitizer."),e}function iC(e){return"string"!=typeof e?e:e.replace(/([A-Z])/g,"-$1").replaceAll("_","-").toLowerCase()}let iw="Iİ\xcc\xcdĨ",iy=iw.toLowerCase(),iv=new Map;function iS(e,t){return!function(e){let t,o=iv.get(e);if(void 0!==o)return o;try{t=iw.toLocaleLowerCase(e)!==iy}catch{t=!1}return iv.set(e,t),t}(t)?e.toLowerCase():e.toLocaleLowerCase(t)}function iR(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[];if("number"==typeof e)return!isNaN(e)&&isFinite(e);if("string"==typeof e){if(0===e.length)return!1;if(1===e.length)return/\d/.test(e);let o=Array.from(new Set([".",...t])).map(e=>`\\${e}`).join("|");return RegExp(`^[+-]?(((${o})?\\d+((${o})\\d+)?(e[+-]?\\d+)?)|(0x[a-f\\d]+))$`,"i").test(e.trim())}return"object"==typeof e&&null!==e&&"number"==typeof e.valueOf()&&!(e instanceof Date)}function ix(e){return iR(e,[","])}function iM(e,t){return"."===t&&"string"==typeof e&&/^[+-]?[1-9]\d{0,2}(,\d{3})+$/.test(e.trim())}function iH(e,t){return","===t&&"string"==typeof e&&/^[+-]?[1-9]\d{0,2}(\.\d{3})+$/.test(e.trim())}function iE(e,t){return","===t&&"string"==typeof e&&/^[+-]?[1-9]\d{0,2}(\.\d{3})+,\d+$/.test(e.trim())}function ik(e,t,o){let n,i,r;for("function"==typeof t?(n=-1,i=e,r=t):(n=e-1,i=t,r=o);++n<=i&&!1!==r(n););}function iT(e,t,o){let n,i,r=e+1;for("function"==typeof t?(i=t,n=0):(i=o,n=t);--r>=n&&!1!==i(r););}function iI(e,t){return Number.parseInt(String(e*(t=isNaN(t=Number.parseInt(t.toString().replace("%",""),10))?0:t)/100),10)}function iA(e,t,o){return Math.min(e,t)===e?t:Math.max(e,o)===e?o:e}function i_(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},{decimalSeparator:o}=t,n=e.trim();if(iM(e,o))return Number.parseFloat(n.replaceAll(",",""));if(iH(e,o))return Number.parseFloat(n.replaceAll(".",""));if(iE(e,o))return Number.parseFloat(n.replaceAll(".","").replace(",","."));let i=n.replace(",",".");return!1===isNaN(Number.parseFloat(i))?Number.parseFloat(i):null}function iO(e){let t=/^([+-]?)(\d*)(?:\.(\d*))?(?:e([+-]?\d+))?$/i.exec(e.trim());if(null===t||""===t[2]&&(t[3]??"")==="")return e.trim();let o="-"===t[1]?"-":"",n=t[2],i=t[3]??"",r=Number.parseInt(t[4]??"0",10);if(Math.abs(r)>1e3)return e.trim();let l=`${n}${i}`,s=n.length+r;s>l.length&&(l=l.padEnd(s,"0")),s<1&&(l=`${"0".repeat(1-s)}${l}`,s=1);let a=l.slice(0,s).replace(/^0+(?=\d)/,""),h=l.slice(s);return`${o}${a}${h.length>0?`.${h}`:""}`}function iP(e,t){let o=Object.is(t,-0)?"-0":String(t);return iO(e.replace(",","."))!==iO(o)}function iD(e){return Number.isInteger(e)&&"number"==typeof e&&e>=0}let iN=new Map([["asc",[-1,1]],["desc",[1,-1]]]),iB=e=>`The priority '${e}' is already declared in a map.`,iL=e=>`The priority '${e}' is not a number.`,iV=e=>`The id '${e}' is already declared in a map.`;function iF(){let{errorIdExists:e}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=new Map,o=ns(e)?e:iV;function n(){return[...t]}function i(e){return t.has(e)}return{addItem:function(e,n){i(e)&&to(String(o(e))),t.set(e,n)},clear:function(){t.clear()},getId:function(e){let[t]=n().find(t=>{let[o,n]=t;return e===n&&o})||[null];return t},getItem:function(e){return t.get(e)},getItems:n,getValues:function(){return[...t.values()]},hasItem:i,removeItem:function(e){return t.delete(e)}}}let iz=e=>`'${e}' value is already declared in a unique set.`,iW=e=>`There is already registered "${e}" plugin.`,i$=function(){let{errorPriorityExists:e,errorPriorityNaN:t}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},o=new Map,n=ns(e)?e:iB,i=ns(t)?t:iL;return{addItem:function(e,t){iR(e)||to(String(i(e))),o.has(e)&&to(String(n(e))),o.set(e,t)},getItems:function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"asc",[t,n]=iN.get(e)||iN.get("asc");return[...o].sort((e,o)=>e[0]<o[0]?t:n).map(e=>e[1])}}}({errorPriorityExists:e=>`There is already registered plugin on priority "${e}".`,errorPriorityNaN:e=>`The priority "${e}" is not a number.`}),iU=function(){let{errorItemExists:e}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=new Set,o=ns(e)?e:iz;return{addItem:function(e){t.has(e)&&to(String(o(e))),t.add(e)},clear:function(){t.clear()},getItems:function(){return[...t]}}}({errorItemExists:iW}),iG=iF({errorIdExists:iW});function iq(){return[...i$.getItems(),...iU.getItems()]}function ij(e){let t=ia(e);return iG.getItem(t)}function iY(e,t,o){var n,i,r,l,s,a;let h,[d,c,u]=(n=e,i=t,r=o,"function"==typeof n&&(n=(i=n).PLUGIN_KEY,r=i.PLUGIN_PRIORITY),[n,i,r]);void 0===ij(d)&&(l=d,s=c,a=u,h=ia(l),iG.hasItem(h)&&to(iW(h)),void 0===a?iU.addItem(h):i$.addItem(a,h),iG.addItem(h,s))}let{register:iK,getItem:iX,hasItem:iZ,getNames:iQ,getValues:iJ}=nz("renderers");function i0(e){return"function"==typeof e?e:(iZ(e)||to(`No registered renderer found under "${e}" name`),iX(e))}function i1(e,t){"string"!=typeof e&&(t=e,e=e.RENDERER_TYPE),iK(e,t)}let{register:i2,getItem:i3,hasItem:i6,getNames:i4,getValues:i5}=nz("validators");function i7(e){return"function"==typeof e?e:(i6(e)||to(`No registered validator found under "${e}" name`),i3(e))}function i9(e,t){"string"!=typeof e&&(t=e,e=e.VALIDATOR_TYPE),i2(e,t)}function i8(e,t,o){return"function"==typeof t.valueFormatter?t.valueFormatter(e,t):"function"==typeof o&&"function"==typeof o.valueFormatter?o.valueFormatter.call(t,e,t):e}function re(e,t){let[o]=t,n=t[6];try{e(...t),n._isBaseRendererCalled||o.getCellRenderer({renderer:"base"})(...t)}finally{n._isBaseRendererCalled=!1}}class rt{rowHeights=new Map;columnHeaderHeights=new Map;measure(e){if(this.rowHeights.clear(),this.columnHeaderHeights.clear(),!e?.wtTable)return;let t=e.wtSettings.getSetting("stylesHandler").areCellsBorderBox();this.#g(e.wtTable,t),[e.wtOverlays?.topOverlay?.clone,e.wtOverlays?.bottomOverlay?.clone].forEach(e=>{e?.wtTable&&this.#g(e.wtTable,t)}),this.#p(e.wtTable)}hasColumnHeaderTallerThan(e){for(let t of this.columnHeaderHeights.values())if(t>e)return!0;return!1}#g(e,t){let{TBODY:o,rowFilter:n}=e;if(!o||!n)return;let i=t?oV:oF,r=+!t,l=o.childNodes.length;for(;l;){let e;l-=1;let s=n.renderedToSource(l),a=o.childNodes[l],h=a.querySelector("th");e=h?i(h):i(a)-r,t||(e+=1),this.rowHeights.set(s,e)}}#p(e){let{THEAD:t}=e;if(!t)return;let o=t.childNodes;for(let e=0,t=o.length;e<t;e++){let t,n=o[e].childNodes;for(let e=0;e<n.length;e++){let o=n[e];if(o instanceof HTMLTableCellElement&&o.rowSpan<=1){let e=oF(o);(void 0===t||e>t)&&(t=e)}}void 0!==t&&this.columnHeaderHeights.set(e,t)}}}function ro(e){if("sourceCapabilities"in e&&e.sourceCapabilities)return!0===e.sourceCapabilities.firesTouchEvents}function rn(e,t,o,n,i){let r=0;for(let l=o;l<=n;l++){let o=e.getCell({row:t,col:l},!0);if(!ne(o))continue;let n=e.domBindings.geometryReader.offsetWidth(o);if(i<r+n)return l;r+=n}return null}function ri(e,t,o,n,i){let r=0;for(let l=o;l<=n;l++){let o=e.getCell({row:l,col:t},!0);if(!ne(o))continue;let n=e.domBindings.geometryReader.offsetHeight(o);if(i<r+n)return l;r+=n}return null}function rr(e){return{facadeGetter:e.getFacade(),rootDocument:e.rootDocument,rootWindow:e.rootWindow,geometryReader:e.geometryReader,wtSettings:e.wtSettings,eventManager:e.makeEventManager(),wtTable:e.getWtTable(),selectionManager:e.getSelectionManager()}}let rl=class{#m;#f;#b=null;#C=[null,null];#w=[null,null];#y=null;#v=0;#S=null;#R=!1;#x=null;#M=!1;#H=null;#E=0;#k=!1;#T=!1;#I=null;constructor(e,t=null){this.#m=e,this.#f=t,this.registerEvents()}registerEvents(){this.#m.eventManager.addEventListener(this.#m.wtTable.holder,"contextmenu",e=>this.onContextMenu(e)),this.#m.eventManager.addEventListener(this.#m.wtTable.TABLE,"mouseover",e=>this.onMouseOver(e)),this.#m.eventManager.addEventListener(this.#m.wtTable.TABLE,"mouseout",e=>this.onMouseOut(e)),this.#m.wtTable.isMaster&&(this.#m.eventManager.addEventListener(this.#m.rootDocument,"mousemove",e=>this.onMouseMove(e)),this.#m.eventManager.addEventListener(this.#m.rootDocument,"mouseup",()=>{this.#T=!1,this.#I=null}));let e=()=>{this.#m.eventManager.addEventListener(this.#m.wtTable.holder,"touchstart",e=>this.onTouchStart(e)),this.#m.eventManager.addEventListener(this.#m.wtTable.holder,"touchend",e=>this.onTouchEnd(e)),this.#m.eventManager.addEventListener(this.#m.wtTable.holder,"touchmove",e=>this.onTouchMove(e)),this.#m.eventManager.addEventListener(this.#m.wtTable.holder,"touchcancel",()=>this.onTouchCancel()),this.#m.eventManager.addEventListener(this.#m.wtTable.holder,"scroll",()=>this.onHolderScroll())},t=()=>{this.#m.eventManager.addEventListener(this.#m.wtTable.holder,"mouseup",e=>{this.#A(e)||this.onMouseUp(e)}),this.#m.eventManager.addEventListener(this.#m.wtTable.holder,"mousedown",e=>{this.#A(e)||this.onMouseDown(e)})};t$()?e():(tE()&&e(),t())}selectedCellWasTouched(e){let t=this.parentCell(e).coords;if(this.#b&&t){let[e,o]=[t.row,this.#b.from.row],[n,i]=[t.col,this.#b.from.col];return e===o&&n===i}return!1}parentCell(e){let t={coords:null,TD:null},o=ot(e,["TD","TH"],this.#m.wtTable.TABLE);if(o)t.coords=this.#m.wtTable.getCoords(o),t.TD=o;else if(oh(e,"wtBorder")&&oh(e,"current")){let e=this.#m.selectionManager.getFocusSelection()?.cellRange;e&&(t.coords=e.highlight,t.TD=this.#m.wtTable.getCell(t.coords))}else if(oh(e,"wtBorder")&&oh(e,"area")){let e=this.#m.selectionManager.getAreaSelection()?.cellRange;e&&(t.coords=e.to,t.TD=this.#m.wtTable.getCell(t.coords))}return t}#A(e){if(!1===ro(e))return!1;let t=Date.now()-this.#E<500;return this.#k&&t?("mouseup"===e.type&&(this.#k=!1),!0):(this.#k=!1,!1)}onMouseDown(e){let t=nr(this.#m.rootDocument),o=t5(e),n=t5(e);if(t&&!["TD","TH"].includes(t.nodeName)&&(n===t||t6(o,0)===t||t6(o,1)===t))return;let i=this.parentCell(n);oh(n,"corner")?this.#m.wtSettings.getSetting("onCellCornerMouseDown",e,n):i.TD&&(this.#T=!0,this.#I=null,this.#m.wtSettings.has("onCellMouseDown")&&this.callListener("onCellMouseDown",e,i.coords,i.TD)),!this.touchApplied&&0===e.button&&i.TD&&(this.#w[0]=i.TD,null!==this.#C[0]&&clearTimeout(this.#C[0]),this.#C[0]=setTimeout(()=>{this.#w[0]=null},1e3))}onContextMenu(e){if(this.#_(),this.#m.wtSettings.has("onCellContextMenu")){let t=this.parentCell(t5(e));t.TD&&this.callListener("onCellContextMenu",e,t.coords,t.TD)}}onMouseOver(e){if(!this.#m.wtSettings.has("onCellMouseOver"))return;let t=this.#m.wtTable.TABLE,o=ot(t5(e),["TD","TH"],t),n=this.#f||this;if(o&&o!==n.lastMouseOver&&on(o,t)){n.lastMouseOver=o;let t=this.#m.wtTable.getCoords(o);t&&this.callListener("onCellMouseOver",e,t,o)}}onMouseMove(e){if(!this.#T)return;let{coords:t,isOutside:o}=this.#O(e.clientX,e.clientY);if(o){let o=this.#I;if(!o||o.row!==t.row||o.col!==t.col){let o=this.#m.wtTable.getCell(t);o instanceof HTMLElement&&(this.#I={row:t.row,col:t.col},this.callListener("onCellMouseOverOutside",e,t,o))}}else this.#I=null}#O(e,t){return function(e,t,o){let n=e.wtSettings.getSetting("rtlMode"),i=e.facadeGetter(),r=e.wtSettings.getSetting("fixedColumnsStart"),l=e.wtSettings.getSetting("fixedRowsTop"),s=e.wtSettings.getSetting("fixedRowsBottom"),a=i.wtScroll.getFirstPartiallyVisibleRow(),h=i.wtScroll.getLastPartiallyVisibleRow(),d=i.wtScroll.getFirstPartiallyVisibleColumn(),c=i.wtScroll.getLastPartiallyVisibleColumn(),u=e.geometryReader.getBoundingClientRect(e.wtTable.wtRootElement),g=e.wtSettings.getSetting("columnHeaders").length>0?i.wtViewport.getColumnHeaderHeight():0,p=e.wtSettings.getSetting("rowHeaders").length>0?i.wtViewport.getRowHeaderWidth():0,m=e.rootWindow,f=i.wtViewport.isHorizontallyScrollableByWindow()?Math.min(0,u.left):u.left,b=i.wtViewport.isVerticallyScrollableByWindow()?Math.min(0,u.top):u.top,C=i.wtViewport.isHorizontallyScrollableByWindow()?m.innerWidth:u.left+i.wtViewport.getViewportWidth()+p,w=i.wtViewport.isVerticallyScrollableByWindow()?m.innerHeight:u.top+i.wtViewport.getViewportHeight()+g,y=iA(t,f,C),v=iA(o,b,w),S=null;if(r>0){let t=i.getCell({row:a,col:0},!0);if(ne(t)){let o=e.geometryReader.getBoundingClientRect(t);S=rn(i,a,0,r-1,n?o.right-y:y-o.left)}}if(null===S){let t=i.getCell({row:a,col:d},!0);if(ne(t)){let o=e.geometryReader.getBoundingClientRect(t),r=n?o.right-y:y-o.left;null===(S=rn(i,a,d,c,r))&&(S=r<0?d:c)}else S=d}let R=null;if(l>0){let t=i.getCell({row:0,col:d},!0);ne(t)&&(R=ri(i,d,0,l-1,v-e.geometryReader.getBoundingClientRect(t).top))}if(null===R&&s>0){let t=e.wtSettings.getSetting("totalRows"),o=t-s,n=t-1,r=i.getCell({row:o,col:d},!0);if(ne(r)){let t=v-e.geometryReader.getBoundingClientRect(r).top;t>=0&&null===(R=ri(i,d,o,n,t))&&(R=n)}}if(null===R){let t=i.getCell({row:a,col:d},!0);ne(t)?null===(R=ri(i,d,a,h,v-e.geometryReader.getBoundingClientRect(t).top))&&(R=h):R=a}return{coords:i.createCellCoords(R,S),isOutside:t<f||t>C||o<b||o>w}}(this.#m,e,t)}onMouseOut(e){if(!this.#m.wtSettings.has("onCellMouseOut"))return;let t=this.#m.wtTable.TABLE,o=ot(t5(e),["TD","TH"],t),n=ot(e.relatedTarget,["TD","TH"],t),i=this.#f||this;if(o&&o!==n&&on(o,t)){let t=this.#m.wtTable.getCoords(o);t&&this.callListener("onCellMouseOut",e,t,o),null===n&&(i.lastMouseOver=null)}}onMouseUp(e){this.#T=!1,this.#I=null;let t=this.parentCell(t5(e));(t.TD&&this.#m.wtSettings.has("onCellMouseUp")&&this.callListener("onCellMouseUp",e,t.coords,t.TD),this.touchApplied)?this.#P(e,t):0===e.button&&(t.TD&&t.TD===this.#w[0]&&t.TD===this.#w[1]?(this.#D(e,t),this.#w[0]=null,this.#w[1]=null):t.TD&&t.TD===this.#w[0]&&(this.#w[1]=t.TD,null!==this.#C[1]&&clearTimeout(this.#C[1]),this.#C[1]=setTimeout(()=>{this.#w[1]=null},500)))}#P(e,t){if(this.#R||!t.TD||!t.coords){this.#y=null;return}let o=Date.now();if(null!==this.#y&&this.#y.row===t.coords.row&&this.#y.col===t.coords.col&&o-this.#v<1e3){this.#D(e,t),this.#y=null;return}this.#y=t.coords.clone(),this.#v=o}#D(e,t){oh(t5(e),"corner")?this.callListener("onCellCornerDblClick",e,t.coords,t.TD):this.callListener("onCellDblClick",e,t.coords,t.TD)}onTouchStart(e){this.#b=this.#m.selectionManager.getFocusSelection()?.cellRange??null,this.touchApplied=!0,this.#M=!1,this.#R=!1,this.#H=e,this.#N(e)}onTouchEnd(e){let t=this.#M,o=!t&&!this.#R&&null!==this.#H,n=this.#H;this.#_(),this.#H=null,o&&null!==n&&this.onMouseDown(n);let i=t5(e),r=this.parentCell(i)?.coords,l=null!=r&&(r.row??-1)>=0&&(r.col??-1)>=0;e.cancelable&&l&&this.#m.wtSettings.getSetting("isDataViewInstance")&&(tU()&&(tN()||tL())&&this.selectedCellWasTouched(i)&&!["A","BUTTON","INPUT"].includes(i.tagName)?e.preventDefault():this.selectedCellWasTouched(i)||"INPUT"===i.tagName&&"checkbox"===i.type||e.preventDefault()),!t||this.#R?(this.onMouseUp(e),this.#E=Date.now(),this.#k=!0):(this.#y=null,this.#k=!1),this.touchApplied=!1,this.#M=!1,this.#R=!1}onTouchCancel(){this.#_(),this.touchApplied=!1,this.#T=!1,this.#M=!1,this.#R=!1,this.#H=null,this.#y=null,this.#k=!1}#N(e){this.#_();let t=e.touches[0];t&&(this.#x={x:t.clientX,y:t.clientY},this.#S=setTimeout(()=>{this.#S=null,this.#R=!0,this.#x=null,this.onMouseDown(e),this.#w[0]=null,this.#w[1]=null,this.#y=null,null!==this.#C[0]&&clearTimeout(this.#C[0]),null!==this.#C[1]&&clearTimeout(this.#C[1]);let o=e.target;if(!o)return;let n=new MouseEvent("contextmenu",{bubbles:!0,cancelable:!0,clientX:t.clientX,clientY:t.clientY,screenX:t.screenX,screenY:t.screenY});o.dispatchEvent(n)},500))}onHolderScroll(){this.momentumScrolling||(this.momentumScrolling={}),this.touchApplied&&(this.#M=!0),this.#_(),clearTimeout(this.momentumScrolling._timeout),this.momentumScrolling.ongoing||this.#m.wtSettings.getSetting("onBeforeTouchScroll"),this.momentumScrolling.ongoing=!0,this.momentumScrolling._timeout=setTimeout(()=>{this.touchApplied||(this.momentumScrolling.ongoing=!1,this.#m.wtSettings.getSetting("onAfterMomentumScroll"))},200)}#_(){null!==this.#S&&(clearTimeout(this.#S),this.#S=null),this.#x=null}onTouchMove(e){if(null===this.#x)return;let t=e.touches[0];if(!t){this.#M=!0,this.#_();return}let o=Math.abs(t.clientX-this.#x.x),n=Math.abs(t.clientY-this.#x.y);(o>10||n>10)&&(this.#M=!0,this.#_())}callListener(e,t,o,n){let i=this.#m.wtSettings.getSettingPure(e);i&&i(t,o,n,this.#m.facadeGetter())}destroy(){null!==this.#C[0]&&clearTimeout(this.#C[0]),null!==this.#C[1]&&clearTimeout(this.#C[1]),this.#_(),this.momentumScrolling&&clearTimeout(this.momentumScrolling._timeout),this.#m.eventManager.destroy()}},rs="bottom",ra="inline_start",rh="top_inline_start_corner",rd="bottom_inline_start_corner",rc=["top",rs,ra,rh,rd],ru=new Map([["top","ht_clone_top"],[rs,`ht_clone_${rs}`],[ra,`ht_clone_${ra} ht_clone_left`],[rh,`ht_clone_${rh} ht_clone_top_left_corner`],[rd,`ht_clone_${rd} ht_clone_bottom_left_corner`]]),rg={getCell(e){if(null===e.row||null===e.col)return -5;let t=e.row,o=e.col,n=this.wtSettings.getSetting("onModifyGetCellCoords",t,o,!this.isMaster,"render");if(n&&Array.isArray(n)&&([t,o]=n),this.isRowBeforeRenderedRows(t))return -1;if(this.isRowAfterRenderedRows(t))return -2;if(this.isColumnBeforeRenderedColumns(o))return -3;if(this.isColumnAfterRenderedColumns(o))return -4;let i=this.getRow(t);!i&&t>=0&&to("TR was expected to be rendered but is not");let r=(!1!==i?i:null)?.childNodes[this.columnFilter.sourceColumnToVisibleRowHeadedColumn(o)];return!r&&o>=0&&to("TD or TH was expected to be rendered but is not"),r},getRow(e){let t=null,o=null;if((e<0?(t=this.rowFilter?.sourceRowToVisibleColHeadedRow(e),o=this.THEAD):(t=this.rowFilter?.sourceToRendered(e),o=this.TBODY),null!=t&&null!==o)&&!(o.childNodes.length<t+1))return o.childNodes[t];return!1},getColumnHeader(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,o=this.THEAD.childNodes[t],n=o?.childNodes[this.columnFilter.sourceColumnToVisibleRowHeadedColumn(e)];return ne(n)?n:void 0},getColumnHeaders(e){let t=[],o=this.columnFilter.sourceColumnToVisibleRowHeadedColumn(e);return this.THEAD.childNodes.forEach(e=>{let n=e.childNodes[o];nt(n)&&t.push(n)}),t},getRowHeader(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;if(t>=this.wtSettings.getSetting("rowHeaders").length)return;let o=this.rowFilter.sourceToRendered(e),n=o<0?this.rowFilter.sourceRowToVisibleColHeadedRow(e):o,i=o<0?this.THEAD:this.TBODY,r=i?.childNodes[n],l=r?.childNodes[t];return ne(l)?l:void 0},getRowHeaders(e){let t=[],o=this.wtSettings.getSetting("rowHeaders").length;for(let n=0;n<o;n++){let o=this.TBODY.childNodes[this.rowFilter.sourceToRendered(e)],i=o?.childNodes[n];i&&t.push(i)}return t},getCoords(e){let t=e;if("TD"!==t.nodeName&&"TH"!==t.nodeName&&(t=oe(t,["TD","TH"])),null===t)return null;let o=t.parentNode;if(!o)return null;let n=o.parentNode;if(!n)return null;let i=ne(o)?oi(o):0,r=nt(t)?t.cellIndex:0;or(rh,t,this.wtRootElement)||or("top",t,this.wtRootElement)?"THEAD"===n.nodeName&&(i-=n.childNodes.length):or(rd,t,this.wtRootElement)||or("bottom",t,this.wtRootElement)?i=this.wtSettings.getSetting("totalRows")-n.childNodes.length+i:n===this.THEAD?i=this.rowFilter.visibleColHeadedRowToSourceRow(i):this.rowFilter&&(i=this.rowFilter.renderedToSource(i)),or(rh,t,this.wtRootElement)||or(ra,t,this.wtRootElement)||or(rd,t,this.wtRootElement)?r=this.columnFilter.offsettedTH(r):this.columnFilter&&(r=this.columnFilter.visibleRowHeadedColumnToSourceColumn(r));let l=this.wtSettings.getSetting("onModifyGetCoordsElement",i,r);return l&&Array.isArray(l)&&([i,r]=l),this.wot.createCellCoords(i,r)},getTrForRow(e){return this.TBODY.childNodes[this.rowFilter.sourceToRendered(e)]}};tg(rg,"MIXIN_NAME","cellAccess",{writable:!1,enumerable:!1});let rp={fixTableDomTree(){let e=this.deps.rootDocument;this.TBODY=this.TABLE.querySelector("tbody"),this.TBODY||(this.TBODY=e.createElement("tbody"),this.TABLE.appendChild(this.TBODY)),this.THEAD=this.TABLE.querySelector("thead"),this.THEAD||(this.THEAD=e.createElement("thead"),this.TABLE.insertBefore(this.THEAD,this.TBODY)),this.COLGROUP=this.TABLE.querySelector("colgroup"),this.COLGROUP||(this.COLGROUP=e.createElement("colgroup"),this.TABLE.insertBefore(this.COLGROUP,this.THEAD))},createSpreader(e){let t,o=e.parentNode;return o&&o.nodeType===Node.ELEMENT_NODE&&ne(o)&&oh(o,"wtHolder")||((t=this.deps.rootDocument.createElement("div")).className="wtSpreader",o&&e.before(t),t.appendChild(e)),t&&(t.style.position="relative",this.wtSettings.getSetting("ariaTags")&&ou(t,[R()])),t},createHider(e){let t,o=e.parentNode;return o&&o.nodeType===Node.ELEMENT_NODE&&ne(o)&&oh(o,"wtHolder")||((t=this.deps.rootDocument.createElement("div")).className="wtHider",o&&e.before(t),t.appendChild(e)),t&&this.wtSettings.getSetting("ariaTags")&&ou(t,[R()]),t},createHolder(e){let t,o=e.parentNode;if(!o||o.nodeType!==Node.ELEMENT_NODE||!ne(o)||!oh(o,"wtHolder")){if((t=this.deps.rootDocument.createElement("div")).style.position="relative",t.className="wtHolder",this.isMaster&&ou(t,[S(-1)]),o&&e.before(t),this.isMaster){let e=t.parentNode;ne(e)&&(e.className+="ht_master handsontable",e.setAttribute("dir",this.wtSettings.getSettingPure("rtlMode")?"rtl":"ltr"),this.wtSettings.getSetting("ariaTags")&&ou(e,[R()]))}t.appendChild(e)}return t&&this.wtSettings.getSetting("ariaTags")&&ou(t,[R()]),t}};tg(rp,"MIXIN_NAME","domScaffold",{writable:!1,enumerable:!1});class rm{nextSize=0;nextOffset=0;setSize(e){this.nextSize=e}setOffset(e){this.nextOffset=e}}class rf{size=new rm;workingSpace=0;sharedSize=null;setSize(e){this.size.setSize(e)}setOffset(e){this.size.setOffset(e)}getViewSize(){return this.size}isShared(){return null!==this.sharedSize}isPlaceOn(e){return this.workingSpace===e}append(e){this.workingSpace=1,e.workingSpace=2,this.sharedSize=e.getViewSize()}prepend(e){this.workingSpace=2,e.workingSpace=1,this.sharedSize=e.getViewSize()}}class rb{rootNode;nodesPool;sizeSet=new rf;collectedNodes=[];childNodeType;visualIndex=0;constructor(e,t,o){this.rootNode=e,this.nodesPool=t,this.childNodeType="string"==typeof o?o.toUpperCase():o}setSize(e){return this.sizeSet.setSize(e),this}setOffset(e){return this.sizeSet.setOffset(e),this}isSharedViewSet(){return this.sizeSet.isShared()}getNode(e){return e<this.collectedNodes.length?this.collectedNodes[e]:null}getCurrentNode(){let e=this.collectedNodes.length;return e>0?this.collectedNodes[e-1]:null}getRenderedChildCount(){let{rootNode:e,sizeSet:t}=this,o=0;if(this.isSharedViewSet()){let n=e.firstElementChild;for(;n;){if(n.tagName===this.childNodeType)o+=1;else if(t.isPlaceOn(1))break;n=n.nextElementSibling}}else o=e.childElementCount;return o}start(){this.collectedNodes.length=0,this.visualIndex=0;let{rootNode:e,sizeSet:t}=this,o=this.isSharedViewSet(),{nextSize:n}=t.getViewSize(),i=this.getRenderedChildCount();for(;i<n;){let n=this.nodesPool();!o||t.isPlaceOn(2)?e.appendChild(n):e.insertBefore(n,e.firstChild),i+=1}let r=o&&t.isPlaceOn(1);for(;i>n;){let t=r?e.firstChild:e.lastChild;t&&e.removeChild(t),i-=1}}render(){let{rootNode:e,sizeSet:t}=this,o=this.visualIndex;this.isSharedViewSet()&&t.isPlaceOn(2)&&t.sharedSize&&(o+=t.sharedSize.nextSize);let n=e.children[o];if(n){if(n.tagName!==this.childNodeType){let e=this.nodesPool();n.replaceWith(e),n=e}}else n=this.nodesPool(),e.appendChild(n);this.collectedNodes.push(n),this.visualIndex+=1}end(){}}class rC extends rb{prependView(e){return this.sizeSet.prepend(e.sizeSet),e.sizeSet.append(this.sizeSet),this}appendView(e){return this.sizeSet.append(e.sizeSet),e.sizeSet.prepend(this.sizeSet),this}}class rw{nodeType;constructor(e){this.nodeType=e.toUpperCase()}setRootDocument(e){this.rootDocument=e}obtain(e,t){return this.rootDocument.createElement(this.nodeType)}}class ry{nodesPool=null;renderedNodes=0;constructor(e,t){this.nodesPool="string"==typeof e?new rw(e):null,this.nodeType=e,void 0!==t&&(this.rootNode=t)}setTable(e){this.nodesPool&&this.nodesPool.setRootDocument(e.rootDocument),this.table=e}render(){}}class rv extends ry{orderViews=new WeakMap;constructor(){super("TH")}obtainOrderView(e){return this.orderViews.has(e)||this.orderViews.set(e,new rC(e,()=>this.nodesPool.obtain(),this.nodeType)),this.orderViews.get(e)}render(){let{rowsToRender:e,rowHeaderFunctions:t,rowHeadersCount:o,rows:n,cells:i}=this.table;for(let r=0;r<e;r++){let e=this.table.renderedRowToSource(r),l=n.getRenderedNode(r);if(!l)continue;let s=this.obtainOrderView(l),a=i.obtainOrderView(l);s.appendView(a).setSize(o).setOffset(0).start();for(let n=0;n<o;n++){s.render();let o=s.getCurrentNode();o&&(o.className="",o.removeAttribute("style"),og(o,[/aria-(.*)/,/role/]),this.table.isAriaEnabled()&&ou(o,[H(),_(),F(n+1),S(-1)]),t[n](e,o,n))}s.end()}}}class rS extends ry{orderView;constructor(e){super("TR",e),this.orderView=new rb(e,()=>this.nodesPool.obtain(),this.nodeType)}getRenderedNode(e){return this.orderView.getNode(e)}render(){let{columnHeadersCount:e}=this.table;this.table.isAriaEnabled()&&ou(this.rootNode,[E()]),this.orderView.setSize(e).setOffset(0).start();for(let t=0;t<e;t++){this.orderView.render();let e=this.orderView.getCurrentNode();e&&this.table.isAriaEnabled()&&ou(e,[T(),V(t+1)])}this.orderView.end()}}class rR extends ry{orderViews=new WeakMap;constructor(){super("TH")}obtainOrderView(e){return this.orderViews.has(e)||this.orderViews.set(e,new rb(e,()=>this.nodesPool.obtain(),this.nodeType)),this.orderViews.get(e)}render(){let{columnHeadersCount:e,columnHeaderFunctions:t,columnsToRender:o,rowHeadersCount:n,columnHeaderRows:i}=this.table,r=o+n;for(let o=0;o<e;o++){let e=i.getRenderedNode(o);if(!e)continue;let l=this.obtainOrderView(e);l.setSize(r).setOffset(0).start();for(let e=0;e<r;e++){l.render();let i=e-n,r=this.table.renderedColumnToSource(i),s=l.getCurrentNode();s&&(s.className="",s.removeAttribute("style"),og(s,[/aria-(.*)/,/role/]),this.table.isAriaEnabled()&&ou(s,[F(e+1),S(-1),k(),...i>=0?[A()]:[M(),O("Select whole grid")]]),t[o](r,s,o))}l.end(),this.#B(e)}}#B(e){let{children:t}=e,o=null;for(let e=t.length-1;e>=0;e--){let n=t[e];null!==o||oh(n,"hiddenHeader")?oh(n,"htLastVisibleHeader")&&oc(n,"htLastVisibleHeader"):(o=n,oh(n,"htLastVisibleHeader")||od(n,"htLastVisibleHeader"))}}}let rx=!1;class rM extends ry{orderView;constructor(e){super("COL",e),this.orderView=new rb(e,()=>this.nodesPool.obtain(),this.nodeType)}render(){let{columnsToRender:e,rowHeadersCount:t}=this.table,o=e+t;!rx&&e>1e3&&(rx=!0,tZ(eu`Performance tip: Handsontable rendered more than 1000 visible columns.\x20
|
|
75
75
|
Consider limiting the number of rendered columns by specifying the table width and/or\x20
|
|
@@ -82,7 +82,7 @@
|
|
|
82
82
|
Cell type must be an object or a string mapped to an object registered by
|
|
83
83
|
"Handsontable.cellTypes.registerCellType" method`),dl(e)}function dc(e,t){"string"!=typeof e&&(e=(t=e).CELL_TYPE);let{editor:o,renderer:n,validator:i}=t;o&&nQ(e,o),n&&i1(e,n),i&&i9(e,i),dr(e,t)}function du(e,t){let o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:e,n="string"==typeof t.type?dd(t.type):t.type;if(e._automaticallyAssignedMetaProps&&tp(t,(t,o)=>{e._automaticallyAssignedMetaProps.delete(o)}),!tu(n))return;o!==e||e._automaticallyAssignedMetaProps||(e._automaticallyAssignedMetaProps=new Set);let i={};tp(n,(t,n)=>{"CELL_TYPE"!==n&&(o._automaticallyAssignedMetaProps?.has(n)||!tw(o,n))&&(i[n]=t,e._automaticallyAssignedMetaProps?.add(n))}),tr(e,i)}let dg=()=>({_automaticallyAssignedMetaProps:void 0,_userDefinedMetaProps:void 0,_persistedMetaProps:void 0,activeHeaderClassName:"ht__active_highlight",allowEmpty:!0,allowHtml:!1,allowInsertColumn:!0,allowInsertRow:!0,allowInvalid:!0,allowRemoveColumn:!0,allowRemoveRow:!0,ariaTags:!0,autoColumnSize:void 0,autoRowSize:void 0,autoWrapCol:!1,autoWrapRow:!1,bindRowsWithHeaders:void 0,cell:[],cells:void 0,checkedTemplate:void 0,className:void 0,colHeaders:null,collapsibleColumns:void 0,columnHeaderHeight:void 0,columns:void 0,columnSorting:void 0,columnSummary:void 0,colWidths:void 0,commentedCellClassName:"htCommentCell",comments:!1,contextMenu:void 0,copyable:!0,copyPaste:!0,currentColClassName:void 0,currentHeaderClassName:"ht__highlight",currentRowClassName:void 0,customBorders:!1,customBordersProgressive:!1,data:void 0,dataProvider:void 0,dataDotNotation:!0,dataSchema:void 0,dateFormat:{year:"numeric",month:"2-digit",day:"2-digit"},timeFormat:{hour:"2-digit",minute:"2-digit"},dateTimeFormat:{year:"numeric",month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit",second:"2-digit",hour12:!1},defaultDate:void 0,disableVisualSelection:!1,dialog:!1,dragToScroll:!0,dropdownMenu:void 0,editor:void 0,emptyDataState:!1,enterBeginsEditing:!0,enterCommits:!0,enterMoves:{col:0,row:1},exportFile:void 0,fillHandle:{autoInsertRow:!1},filter:!0,filteringCaseSensitive:!1,filters:void 0,filterSelectedItems:!0,fixedColumnsLeft:0,fixedColumnsStart:0,fixedRowsBottom:0,fixedRowsTop:0,formulas:void 0,fragmentSelection:!1,hashLength:void 0,hashRevealDelay:void 0,hashSymbol:"*",headerClassName:void 0,height:void 0,hiddenColumns:void 0,hiddenRows:void 0,initialState:void 0,invalidCellClassName:"htInvalid",imeFastEdit:!1,isEmptyCol(e){let t,o,n=!!this.getSettings().dataSchema,i=this.getSchema(),r=this.colToProp(e),l=this.countRows();for(t=0;t<l;t++)if(!1===eN(o=this.getDataAtCell(t,e))){if("object"==typeof o){if(!1===td(i[r],o))return!1;continue}if(n&&i[r]===o)continue;return!1}return!0},isEmptyRow(e){let t,o,n=!!this.getSettings().dataSchema,i=this.getSchema(),r=this.countCols();for(t=0;t<r;t++)if(!1===eN(o=this.getDataAtCell(e,t))){let e=this.colToProp(t);if("object"==typeof o){if(!1===td(i[e],o))return!1;continue}if(n&&i[e]===o)continue;return!1}return!0},label:void 0,language:"en-US",layoutDirection:"inherit",layout:void 0,licenseKey:void 0,locale:"en-US",loading:!1,notification:!1,manualColumnFreeze:void 0,manualColumnMove:void 0,manualColumnResize:void 0,manualRowMove:void 0,manualRowResize:void 0,maxCols:1/0,maxRows:1/0,maxSelections:void 0,mergeCells:!1,minCols:0,minRowHeights:void 0,minRows:0,minSpareCols:0,minSpareRows:0,multiColumnSorting:void 0,navigableHeaders:!1,tabNavigation:!0,nestedHeaders:void 0,nestedRows:void 0,noWordWrapClassName:"htNoWrap",numericFormat:void 0,preserveNumericLiteral:!1,observeDOMVisibility:!0,outsideClickDeselects:!0,pagination:void 0,placeholder:void 0,placeholderCellClassName:"htPlaceholder",preventOverflow:!1,preventWheel:!1,readOnly:!1,readOnlyCellClassName:"htDimmed",renderAllRows:!1,renderAllColumns:!1,renderer:void 0,valueFormatter:void 0,valueParser:void 0,rowHeaders:void 0,rowHeaderWidth:void 0,rowHeights:void 0,search:!1,searchInput:!0,selectionMode:"multiple",selectionHandles:!1,moveCells:!1,selectOptions:void 0,skipColumnOnPaste:!1,skipRowOnPaste:!1,sortByRelevance:!0,sourceSortFunction:void 0,source:void 0,startCols:5,startRows:5,stretchH:"none",strict:void 0,tableClassName:void 0,textEllipsis:!1,themeName:void 0,theme:void 0,colorScheme:void 0,density:void 0,injectCoreCss:!0,tabMoves:{row:0,col:1},title:void 0,trimDropdown:!0,trimRows:void 0,trimWhitespace:!0,type:"text",uncheckedTemplate:void 0,undo:!0,validator:void 0,sourceDataValidator:void 0,sourceDataWarningMessage:void 0,valueGetter:void 0,valueSetter:void 0,viewportColumnRenderingOffset:"auto",viewportRowRenderingOffset:"auto",viewportColumnRenderingThreshold:0,viewportRowRenderingThreshold:0,visibleRows:10,width:void 0,wordWrap:!0,sanitizer:void 0,parsePastedValue:!1});class dp{metaCtor=class{};constructor(e){this.meta=this.metaCtor.prototype,tr(this.meta,dg()),this.meta.instance=e}getMetaConstructor(){return this.metaCtor}getMeta(){return this.meta}updateMeta(e){tr(this.meta,e),du(this.meta,{...e,type:e.type??this.meta.type},e)}}class dm{constructor(e){const t=e.getMetaConstructor();this.meta=new t}getMeta(){return this.meta}updateMeta(e){tr(this.meta,e),du(this.meta,e,e)}}function df(e){iD(e)||null==e||to("Assertion failed: Expecting an unsigned number or null/undefined argument.")}class db{#ov=new Map;#tF=0;#oS=[];#oR=0;#ox=-1;#oM=!0;#oH=!1;constructor(e){this.valueFactory=e}obtain(e){iD(e)||to("Assertion failed: Expecting an unsigned number.");let t=e;this.#oS.length>0&&-1===(t=this.#oE(e))&&(this.#ok(),t=e);let o=this.#ov.get(t);if(void 0===o){o=this.valueFactory(e),this.#ov.set(t,o),e>=this.#tF&&(this.#tF=e+1);let n=t>e?t:e;n>=this.#oR&&(this.#oR=n+1),t>this.#ox?this.#ox=t:this.#oM=!1}return o}has(e){return void 0!==this.getIfExists(e)}insert(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1;df(e);let o=null==e?this.#tF:e;this.#tF+=t,o>=this.#oR||(this.#oR+=t,this.#oT({start:o,amount:t,isInsert:!0}))}remove(e){let t,o=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1;if(df(e),null==e){let e=this.#tF-o;t=e<0?Math.max(this.#tF+e,0):e}else t=e;let n=Math.max(Math.min(this.#tF-t,o),0),i=t>=this.#oR;this.#tF-=n,this.#oR>this.#tF&&(this.#oR=this.#tF),i||this.#oT({start:t,amount:o,isInsert:!1})}size(){return this.#oS.length>0&&this.#ok(),this.#ov.size}values(){return this.#oS.length>0&&this.#ok(),this.#oH=!0,this.#ov.values()}entries(){return this.#oS.length>0&&this.#ok(),this.#oH=!0,this.#ov.entries()}evict(e){if(this.#oS.length>0){let t=this.#oE(e);-1!==t&&this.#ov.delete(t);return}this.#ov.delete(e)}getIfExists(e){if(this.#oS.length>0){let t=this.#oE(e);return -1===t?void 0:this.#ov.get(t)}return this.#ov.get(e)}clear(){this.#ov.clear(),this.#oS=[],this.#tF=0,this.#oR=0,this.#ox=-1,this.#oM=!0,this.#oH=!1}#oT(e){let t=this.#oS,o=t.length>0?t[t.length-1]:void 0;!(void 0!==o&&o.isInsert===e.isInsert&&this.#oI(o,e))&&(t.push(e),t.length>=1024&&this.#ok())}#oI(e,t){return t.isInsert?t.start>=e.start&&t.start<=e.start+e.amount&&(e.amount+=t.amount,!0):t.start===e.start?(e.amount+=t.amount,!0):t.start+t.amount===e.start&&(e.start=t.start,e.amount+=t.amount,!0)}#oE(e){let t=this.#oS,o=e;for(let e=t.length-1;e>=0;e--){let{start:n,amount:i,isInsert:r}=t[e];if(r){if(o>=n+i)o-=i;else if(o>=n)return -1}else o>=n&&(o+=i)}return o}#ok(){let e=this.#oS;if(this.#oS=[],1===e.length&&!e[0].isInsert&&!this.#oH&&this.#oM&&this.#ox===this.#ov.size-1)return void this.#oA(e[0].start,e[0].amount);let t=Array(e.length),o=1/0;for(let n=e.length-1;n>=0;n--)e[n].start<o&&(o=e[n].start),t[n]=o;let n=!1;for(let e of this.#ov.keys())if(e>=o){n=!0;break}if(!n)return;let i=new Map,r=-1,l=!0,s=-1;for(let[o,n]of this.#ov){let a=this.#o_(o,e,t);-1!==a&&(i.set(a,n),a>r&&(r=a),a<=s&&(l=!1),s=a)}this.#ov=i,this.#oH=!1,this.#oR=r+1,this.#ox=r,this.#oM=l}#oA(e,t){let o=this.#ov,n=o.size,i=Math.max(n-t,e);for(let n=e;n<i;n++)o.set(n,o.get(n+t));for(let e=i;e<n;e++)o.delete(e);this.#ox=i-1,this.#oR=i}#o_(e,t,o){let n=e;for(let e=0;e<t.length&&!(n<o[e]);e++){let{start:o,amount:i,isInsert:r}=t[e];if(r)n>=o&&(n+=i);else if(n>=o+i)n-=i;else if(n>=o)return -1}return n}[Symbol.iterator](){return this.entries()}}let dC=["data","width"];class dw{metas=new db(()=>this._createMeta());constructor(e){this.globalMeta=e,this.metas=new db(()=>this._createMeta())}updateMeta(e,t){let o=this.getMeta(e);tr(o,t),du(o,t)}createColumn(e,t){this.metas.insert(e,t)}removeColumn(e,t){this.metas.remove(e,t)}getMeta(e){return this.metas.obtain(e)}getMetaConstructor(e){return this.metas.obtain(e).constructor}clearCache(){this.metas.clear()}_createMeta(){return function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[];function o(){}ti(o,e);for(let e=0;e<t.length;e++)o.prototype[t[e]]=void 0;return o}(this.globalMeta.getMetaConstructor(),dC).prototype}}class dy{metas=new db(()=>this._createRow());#oO=0;constructor(e){this.columnMeta=e}enableUserDefinedMetaRecording(){this.#oO>0&&(this.#oO-=1)}disableUserDefinedMetaRecording(){this.#oO+=1}updateMeta(e,t,o){let n=this.getMeta(e,t);tr(n,o),du(n,o)}createRow(e,t){this.metas.insert(e,t)}createColumn(e,t){for(let[,o]of this.metas)o.insert(e,t)}removeRow(e,t){this.metas.remove(e,t)}removeColumn(e,t){for(let[,o]of this.metas)o.remove(e,t)}getMeta(e,t,o){let n=this.metas.obtain(e).obtain(t);return void 0===o?n:n[o]}hasMeta(e,t){return this.metas.has(e)&&this.metas.obtain(e).has(t)}getMetaIfExists(e,t){return this.metas.getIfExists(e)?.getIfExists(t)}createTransientMeta(e){return this._createMeta(e)}setMeta(e,t,o,n){let i=this.metas.obtain(e).obtain(t);i._automaticallyAssignedMetaProps?.delete(o),i[o]=n,void 0===i._persistedMetaProps&&(i._persistedMetaProps=new Set),i._persistedMetaProps.add(o),0===this.#oO?(void 0===i._userDefinedMetaProps&&(i._userDefinedMetaProps=new Set),i._userDefinedMetaProps.add(o)):i._userDefinedMetaProps?.delete(o)}removeMeta(e,t,o){let n=this.metas.getIfExists(e)?.getIfExists(t);void 0!==n&&(delete n[o],n._userDefinedMetaProps?.delete(o),n._persistedMetaProps?.delete(o))}getMetas(){let e=[],t=Array.from(this.metas.values());for(let o=0;o<t.length;o++)eP(t[o])&&e.push(...Array.from(t[o].values()));return e}getMetasAtRow(e){iD(e)||to("Assertion failed: Expecting an unsigned number.");let t=this.metas.getIfExists(e);return void 0===t?[]:Array.from(t).sort((e,t)=>{let[o]=e,[n]=t;return o-n}).map(e=>{let[,t]=e;return t})}getUserDefinedMetas(){let e=[];for(let[t,o]of this.metas)for(let[n,i]of o){let o=i._userDefinedMetaProps;void 0!==o&&o.forEach(o=>{tw(i,o)&&e.push({physicalRow:t,physicalColumn:n,key:o,value:i[o]})})}return e}evictRow(e){let t=this.metas.getIfExists(e);if(void 0===t)return[];let o=!1,n=[];for(let[e,i]of t){let r=i._persistedMetaProps,l=void 0!==r&&r.size>0,s=!1===i.valid;l||s?o=!0:(t.evict(e),n.push(e))}return o||this.metas.evict(e),n}clearCache(){this.metas.clear()}_createRow(){return new db(e=>this._createMeta(e))}_createMeta(e){return new(this.columnMeta.getMetaConstructor(e))}}class dv{constructor(e,t={},o=[]){this.hot=e,this.globalMeta=new dp(e),this.tableMeta=new dm(this.globalMeta),this.columnMeta=new dw(this.globalMeta),this.cellMeta=new dy(this.columnMeta),o.forEach(e=>new e(this)),this.globalMeta.updateMeta(t)}getGlobalMeta(){return this.globalMeta.getMeta()}updateGlobalMeta(e){this.globalMeta.updateMeta(e)}getTableMeta(){return this.tableMeta.getMeta()}updateTableMeta(e){this.tableMeta.updateMeta(e)}getColumnMeta(e){return this.columnMeta.getMeta(e)}updateColumnMeta(e,t){this.columnMeta.updateMeta(e,t)}getCellMeta(e,t,o){let n=this.cellMeta.getMeta(e,t);return n.visualRow=o.visualRow,n.visualCol=o.visualColumn,n.row=e,n.col=t,o.skipMetaExtension||this.runLocalHooks("afterGetCellMeta",n),n}getCellMetaUncached(e,t,o){let n=this.cellMeta.getMetaIfExists(e,t)??this.cellMeta.createTransientMeta(t);return n.visualRow=o.visualRow,n.visualCol=o.visualColumn,n.row=e,n.col=t,n}getCellMetaTransient(e,t,o){let n=this.cellMeta.getMetaIfExists(e,t);if(void 0!==n)return n.visualRow=o.visualRow,n.visualCol=o.visualColumn,n.row=e,n.col=t,this.runLocalHooks("afterGetCellMeta",n),n;let i=this.cellMeta.createTransientMeta(t);return i.visualRow=o.visualRow,i.visualCol=o.visualColumn,i.row=e,i.col=t,this.runLocalHooks("extendTransientCellMeta",i),i}getCellMetaKeyValue(e,t,o){return"string"!=typeof o&&to("The passed cell meta object key is not a string"),this.cellMeta.getMeta(e,t,o)}setCellMeta(e,t,o,n){this.cellMeta.setMeta(e,t,o,n)}updateCellMeta(e,t,o){this.cellMeta.updateMeta(e,t,o)}removeCellMeta(e,t,o){this.cellMeta.removeMeta(e,t,o)}getCellsMeta(){return this.cellMeta.getMetas()}getCellsMetaAtRow(e){return this.cellMeta.getMetasAtRow(e)}getUserDefinedCellMetas(){return this.cellMeta.getUserDefinedMetas()}enableUserDefinedMetaRecording(){this.cellMeta.enableUserDefinedMetaRecording()}disableUserDefinedMetaRecording(){this.cellMeta.disableUserDefinedMetaRecording()}createRow(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1;this.cellMeta.createRow(e,t)}removeRow(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1;this.cellMeta.removeRow(e,t)}createColumn(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1;this.cellMeta.createColumn(e,t),this.columnMeta.createColumn(e,t)}removeColumn(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1;this.cellMeta.removeColumn(e,t),this.columnMeta.removeColumn(e,t)}clearCellsCache(){this.cellMeta.clearCache()}clearCache(){this.cellMeta.clearCache(),this.columnMeta.clearCache()}}th(dv,sb);class dS{metaSyncMemo=new Map;#oP=0;#oD=0;#oN=!1;constructor(e){this.metaManager=e,e.addLocalHook("afterGetCellMeta",e=>{this.extendCellMeta(e)}),e.addLocalHook("extendTransientCellMeta",e=>{this.extendTransientCellMeta(e)}),nL.getSingleton().add("beforeRender",e=>{e&&this.metaSyncMemo.clear()},this.metaManager.hot);const t=()=>this.#oB();nL.getSingleton().add("afterScrollVertically",t,this.metaManager.hot),nL.getSingleton().add("afterViewRender",t,this.metaManager.hot)}extendCellMeta(e){let t=e.row,o=e.col;if(this.metaSyncMemo.get(t)?.has(o))return;this.#oL(e,e=>{this.metaManager.updateCellMeta(t,o,e)});let n=this.metaSyncMemo.get(t);void 0===n&&(n=new Set,this.metaSyncMemo.set(t,n)),n.add(o)}extendTransientCellMeta(e){this.#oL(e,t=>{tr(e,t),du(e,t)})}#oL(e,t){let o=e.row,n=e.col,i=e.visualRow,r=e.visualCol,l=this.metaManager.hot,s=l.colToProp(r);e.prop=s,l.runHooks("beforeGetCellMeta",i,r,e);let a=tw(e,"type")?e.type:null,h=ns(e.cells)?e.cells(o,n,s):null;a&&(h?h.type=h.type??a:h={type:a}),h&&t(h),l.runHooks("afterGetCellMeta",i,r,e)}#oB(){let e=this.metaManager.hot,t=e.getFirstRenderedVisibleRow(),o=e.getLastRenderedVisibleRow();if(!Number.isInteger(t)||!Number.isInteger(o)||o<t)return;let n=o-t+1,i=t-n,r=o+n,l=this.#oP,s=this.#oD;this.#oN&&(this.#oV(l,Math.min(s,i-1)),this.#oV(Math.max(l,r+1),s)),this.#oP=i,this.#oD=r,this.#oN=!0}#oV(e,t){if(e>t)return;let o=this.metaManager.hot,n=o.getSelectedRangeLast(),i=n?n.highlight.row:null;for(let n=e;n<=t;n++){let e=o.toPhysicalRow(n);n!==i&&Number.isInteger(e)&&this.#oF(e)}}#oF(e){let t=this.metaManager.cellMeta.evictRow(e);if(0===t.length)return;let o=this.metaSyncMemo.get(e);if(void 0!==o){for(let e=0;e<t.length;e++)o.delete(t[e]);0===o.size&&this.metaSyncMemo.delete(e)}}}class dR{metaManager;usageTracker=new Set;propDescriptors=new Map([["ariaTags",{initOnly:!0}],["fixedColumnsLeft",{target:"fixedColumnsStart",onChange(e){this.metaManager.hot.isRtl()&&"fixedColumnsLeft"===e&&to("The `fixedColumnsLeft` is not supported for RTL. Please use option `fixedColumnsStart`."),this.usageTracker.has("fixedColumnsLeft")&&this.usageTracker.has("fixedColumnsStart")&&to("The `fixedColumnsLeft` and `fixedColumnsStart` should not be used together. Please use only the option `fixedColumnsStart`.")}}],["layoutDirection",{initOnly:!0}],["renderAllColumns",{initOnly:!0}],["renderAllRows",{initOnly:!0}]]);constructor(e){this.metaManager=e,this.extendMetaProps()}#oz=(e,t,o)=>{o||to(`The \`${e}\` option can not be updated after the Handsontable is initialized.`)};extendMetaProps(){this.propDescriptors.forEach((e,t)=>{let{initOnly:o,target:n,onChange:i}=e,r="string"==typeof n,l=r?n:t,s=`_${l}`;this.metaManager.globalMeta.meta[s]=this.metaManager.globalMeta.meta[l],i?(this.installPropWatcher(t,s,i),r&&this.installPropWatcher(n,s,i)):o&&(this.installPropWatcher(t,s,this.#oz),this.metaManager.globalMeta.meta._initOnlySettings||(this.metaManager.globalMeta.meta._initOnlySettings=[]),this.metaManager.globalMeta.meta._initOnlySettings.push(t))})}installPropWatcher(e,t,o){let{usageTracker:n}=this,i=o.bind(this);Object.defineProperty(this.metaManager.globalMeta.meta,e,{get(){return this[t]},set(o){let r=!n.has(e);n.add(e),i(e,o,r),this[t]=o},enumerable:!0,configurable:!0})}}let dx=class{dataType="array";colToProp=e=>void 0;propToCol=e=>void 0;countCachedColumns;constructor(e,t=[]){this.hot=e,this.data=t}modifyRowData(e){let t;return this.hot.hasHook("modifyRowData")&&(t=this.hot.runHooks("modifyRowData",e)),void 0===t||Number.isInteger(t)?this.data[e]:t}getData(){let e=arguments.length>0&&void 0!==arguments[0]&&arguments[0];return this.data?.length?e||this.hot.hasHook("modifySourceData")||this.hot.hasHook("modifyRowData")?this.getByRange(null,null,e):this.data.map(sf):this.data}setData(e){this.data=e}getAtColumn(e){let t=[];return J(this.data,(o,n)=>{let i=this.getAtCell(n,e);t.push(i)}),t}getAtRow(e,t,o){let n=arguments.length>3&&void 0!==arguments[3]&&arguments[3],i=void 0===t&&void 0===o,{dataDotNotation:r}=this.hot.getSettings(),l=null,s=null;if(Array.isArray(l=this.modifyRowData(e)))s=[],i?l.forEach((t,o)=>{s[o]=this.getAtPhysicalCell(e,o,l)}):ik(t,o,o=>{s[o-t]=this.getAtPhysicalCell(e,o,l)});else if(tu(l)||ns(l))if(s=n?[]:{},!i||n){let i=this.countFirstRowKeys()-1;ik(0,i,a=>{let h=this.colToProp(a);if(a>=(t||0)&&a<=(o||i)&&!Number.isInteger(h)){let t=this.getAtPhysicalCell(e,h,l);n?s.push(t):r?null!==s&&tf(s,h,t):s[h]=t}})}else tp(l,(t,o)=>{let n=this.getAtPhysicalCell(e,o,l);r?null!==s&&tf(s,o,n):s[o]=n});return s}setAtCell(e,t,o){let n;if("string"==typeof e){let t=Number(e);if(Number.isNaN(t)||!Number.isInteger(t)||t<0)return;n=t}else{if("number"!=typeof e||!Number.isInteger(e)||e<0)return;n=e}if(n>=this.countRows()||"number"==typeof t&&t>=this.countFirstRowKeys())return;if(this.hot.hasHook("modifySourceData")){let e=tC(o);this.hot.runHooks("modifySourceData",n,t,e,"set"),e.isTouched()&&(o=e.value)}let i=this.modifyRowData(n);if(Number.isInteger(t))Array.isArray(i)?i[t]=o:tu(i)&&tf(i,String(t),o);else if(Array.isArray(i)){let e=Number(t);!Number.isNaN(e)&&Number.isInteger(e)&&e>=0&&e<this.countFirstRowKeys()&&(i[e]=o)}else tu(i)&&tf(i,String(t),o)}getAtPhysicalCell(e,t,o){let n=null;if(o)if("string"==typeof t){let{dataDotNotation:e}=this.hot.getSettings();n=e?tm(o,t):o[t]}else n="function"==typeof t?t(o):o[t];if(this.hot.hasHook("modifySourceData")){let o=tC(n);this.hot.runHooks("modifySourceData",e,t,o,"get"),o.isTouched()&&(n=o.value)}return n}getAtCell(e,t){let o=this.modifyRowData(e);return this.getAtPhysicalCell(e,this.colToProp(t),o)}getByRange(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null,t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,o=arguments.length>2&&void 0!==arguments[2]&&arguments[2],n=!1,i=null,r=null,l=null,s=null;null===e||null===t?(n=!0,i=0,l=this.countRows()-1):(i=Math.min(e.row,t.row),r=Math.min(e.col,t.col),l=Math.max(e.row,t.row),s=Math.max(e.col,t.col));let a=[];return ik(i,l,e=>{a.push(n?this.getAtRow(e,void 0,void 0,o):this.getAtRow(e,r,s,o))}),a}getCopyable(e,t){let o=this.propToCol(t);return"number"==typeof o&&this.hot.getCellMetaTransient(e,o).copyable?this.getAtCell(this.hot.toPhysicalRow(e),o):""}countRows(){if(this.hot.hasHook("modifySourceLength")){let e=this.hot.runHooks("modifySourceLength");if("number"==typeof e&&Number.isInteger(e))return e}return this.data.length}countFirstRowKeys(){return sg(this.data??[])}destroy(){this.data=null,this.hot=null}},dM=/^(\r\n|\n\r|\r|\n)/,dH=/^[^\t\r\n]+/,dE=/^\t/;function dk(e){let t,o,n,i,r,l="";for(t=0,o=e.length;t<o;t+=1){for(n=0,i=e[t].length;n<i;n+=1)n>0&&(l+=" "),"string"==typeof(r=e[t][n])?r.indexOf("\n")>-1?l+=`"${r.replaceAll('"','""')}"`:l+=r:null==r?l+="":l+=r;t!==o-1&&(l+="\n")}return l}class dT{static get DESTINATION_RENDERER(){return 1}static get DESTINATION_CLIPBOARD_GENERATOR(){return 2}tableMeta;constructor(e,t,o){this.hot=e,this.metaManager=o,this.tableMeta=o.getTableMeta(),this.dataSource=t,this.colToPropCache=[],this.propToColCache=new Map,this.refreshDuckSchema(),this.createMap()}createMap(){let e=this.getSchema();void 0===e&&to("trying to create `columns` definition but you didn't provide `schema` nor `data`");let t=this.tableMeta.columns;this.colToPropCache=[],this.propToColCache=new Map,t?this.#oW(t,e):this.recursiveDuckColumns(e)}#oW(e,t){let o=0,n=0,i="function"==typeof e;if(i){let e=tb(t);o=e>0?e:this.countFirstRowKeys()}else o=Math.min(this.tableMeta.maxCols??1/0,e.length);for(let t=0;t<o;t++){let o=i?e(t):e[t];if(tu(o)){if(void 0!==o.data){let e=i?n:t,r=o.data;this.colToPropCache[e]=r,this.propToColCache.set(r,e)}n+=1}}}countFirstRowKeys(){return sg(this.dataSource??[])}recursiveDuckColumns(e,t,o){let n,i=t??0,r=o??"";return"object"!=typeof e||null===e||Array.isArray(e)||tp(e,(e,t)=>{null===e?(n=r+t,this.colToPropCache.push(n),this.propToColCache.set(n,i),i+=1):"object"==typeof e&&null!==e&&(i=this.recursiveDuckColumns(e,i,`${t}.`))}),i}colToProp(e){if(!1===Number.isInteger(e))return e;let t=this.hot.toPhysicalColumn(e);return null===t?e:this.colToPropCache&&eP(this.colToPropCache[t])?this.colToPropCache[t]:t}propToCol(e){let t=this.propToColCache.get(e);if(void 0!==t)return this.hot.toVisualColumn(t);if("number"!=typeof e)return e;let o=this.hot.toVisualColumn(e);return null!==o?o:e}getSchema(){let e=this.tableMeta.dataSchema;return e?"function"==typeof e?e():e:this.duckSchema}createDuckSchema(){return this.dataSource&&this.dataSource[0]?tn(this.dataSource[0]):{}}refreshDuckSchema(){this.duckSchema=this.createDuckSchema()}createRow(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1,{source:o,mode:n="above"}=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},i=this.hot.countSourceRows(),r=i,l=0,s=e;if(("number"!=typeof s||s>=i)&&(s=i),s<this.hot.countRows()&&(r=this.hot.toPhysicalRow(s)),!1===this.hot.runHooks("beforeCreateRow",s,t,o)||null===r)return{delta:0};let a=this.tableMeta.maxRows,h=this.getSchema().length,d=[];for(;l<t&&i+l<(a??1/0);){let e=null;if("array"===this.hot.dataType)this.tableMeta.dataSchema?e=ts(this.getSchema()):(e=[],ik(h-1,()=>e.push(null)));else if("function"===this.hot.dataType){let t=this.tableMeta.dataSchema;"function"!=typeof t&&to("`dataSchema` must be a function when `dataType` is `function`"),e=t(s+l)}else tl(e={},this.getSchema());d.push(e),l+=1}this.hot.rowIndexMapper.insertIndexes(s,l),"below"===n&&(r=Math.min(r+1,i)),this.spliceData(r,0,d);let c=this.hot.toVisualRow(r);return this.hot.countSourceRows()===d.length&&this.hot.columnIndexMapper.initToLength(this.hot.getInitialColumnCount()),l>0&&(null==e?this.metaManager.createRow(null,l):"auto"!==o&&this.metaManager.createRow(r,t)),this.hot.runHooks("afterCreateRow",c,l,o),{delta:l,startPhysicalIndex:r}}createCol(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1,{source:o,mode:n="start"}=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};this.hot.isColumnModificationAllowed()||to("Cannot create new column. When data source in an object, you can only have as much columns as defined in first data row, data schema or in the 'columns' setting.If you want to be able to add new columns, you have to use array datasource.");let i=this.dataSource??[],r=this.tableMeta.maxCols,l=this.hot.countSourceCols(),s=this.hot.countCols(),a=this.hot.countSourceRows(),h="number"==typeof e&&e<=l?e:s;if(!1===this.hot.runHooks("beforeCreateCol",h,t,o))return{delta:0};let d=h<s?this.hot.toPhysicalColumn(h):l,c="end"===n?Math.min(d+1,l):d,u=Math.max(0,Math.min(t,(r??1/0)-s));return this.#o$(i,c,h,s,a,u),u>0&&(null==e?this.metaManager.createColumn(null,u):"auto"!==o&&this.metaManager.createColumn(c,t)),this.hot.columnIndexMapper.insertIndexes(h,u,n),this.hot.runHooks("afterCreateCol",this.hot.toVisualColumn(c),u,o),this.refreshDuckSchema(),{delta:u,startPhysicalIndex:c}}#o$(e,t,o,n,i,r){if(r<=0)return;let l=r;"number"==typeof o&&(l=Math.max(0,Math.min(r,o-n+1)));let s=r-l;if(l>0)if(i>0)for(let t=0;t<i;t++){void 0===e[t]&&(e[t]=[]);for(let o=0;o<l;o++)e[t].push(null)}else for(let t=0;t<l;t++)e.push([null]);if(s>0)for(let o=0;o<i;o++)er(e[o],t+l,s,null)}removeRow(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1,o=arguments.length>2?arguments[2]:void 0,n=Number.isInteger(e)?e:-t,i=this.visualRowsToPhysical(n,t),r=this.hot.countRows();if(n=(r+n)%r,!1===this.hot.runHooks("beforeRemoveRow",n,i.length,i,o))return!1;let l=i.length;if(this.filterData(n,l,i),n<this.hot.countRows()){this.hot.rowIndexMapper.removeIndexes(i);let e=eP(this.tableMeta.columns)||eP(this.tableMeta.dataSchema)||this.tableMeta.colHeaders;0!==this.hot.rowIndexMapper.getNotTrimmedIndexesLength()||e||this.hot.columnIndexMapper.setIndexesSequence([])}let s=i.slice(0).sort((e,t)=>t-e);return this.#oU(s,(e,t)=>{this.metaManager.removeRow(e,t)}),this.hot.runHooks("afterRemoveRow",n,l,i,o),!0}removeCol(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1,o=arguments.length>2?arguments[2]:void 0;("object"===this.hot.dataType||this.tableMeta.columns)&&to("cannot remove column with object data source or columns option specified");let n="number"!=typeof e?-t:e;n=(this.hot.countCols()+n)%this.hot.countCols();let i=this.visualColumnsToPhysical(n,t),r=i.slice(0).sort((e,t)=>t-e);if(!1===this.hot.runHooks("beforeRemoveCol",n,t,i,o))return!1;let l=!0,s=r.length,a=this.dataSource??[];for(let e=0;e<s;e++)l&&i[0]!==i[e]-e&&(l=!1);return this.#oG(a,l,i,r,t),n<this.hot.countCols()&&(this.hot.columnIndexMapper.removeIndexes(i),this.tableMeta.rowHeaders||0!==this.hot.columnIndexMapper.getNotTrimmedIndexesLength()||this.hot.rowIndexMapper.setIndexesSequence([])),this.hot.runHooks("afterRemoveCol",n,t,i,o),this.refreshDuckSchema(),!0}#oG(e,t,o,n,i){if(t)for(let t=0,n=this.hot.countSourceRows();t<n;t++)e[t].splice(o[0],i),0===t&&this.metaManager.removeColumn(o[0],i);else{let t=new Set(o),i=this.hot.countSourceRows();for(let o=0;o<i;o++)ei(e[o],t);i>0&&this.#oU(n,(e,t)=>{this.metaManager.removeColumn(e,t)})}}#oU(e,t){let o=0;for(let n=0;n<e.length;n++)(n+1>=e.length||e[n+1]!==e[n]-1)&&(t(e[n],n-o+1),o=n+1)}spliceCol(e,t,o){for(var n=arguments.length,i=Array(n>3?n-3:0),r=3;r<n;r++)i[r-3]=arguments[r];let l=this.hot.getDataAtCol(e),s=l.slice(t,t+o);Y(i,l.slice(t+o));let a=0;for(;a<o;)i.push(null),a+=1;return j(i),this.hot.populateFromArray(t,e,i,void 0,void 0,"spliceCol"),s}spliceRow(e,t,o){for(var n=arguments.length,i=Array(n>3?n-3:0),r=3;r<n;r++)i[r-3]=arguments[r];let l=this.hot.getSourceDataAtRow(e),s=l.slice(t,t+o);Y(i,l.slice(t+o));let a=0;for(;a<o;)i.push(null),a+=1;return this.hot.populateFromArray(e,t,[i],void 0,void 0,"spliceRow"),s}spliceData(e,t,o){if(!1!==this.hot.runHooks("beforeDataSplice",e,t,o)){let t=[...this.dataSource.slice(0,e),...o,...this.dataSource.slice(e)];this.dataSource.length=0,t.forEach(e=>this.dataSource.push(e))}}filterData(e,t,o){let n=this.hot.runHooks("filterData",e,t,o);Array.isArray(n)?(this.dataSource.length=0,n.forEach(e=>{this.dataSource.push(e)})):ei(this.dataSource,new Set(o))}get(e,t){let o=this.hot.toPhysicalRow(e),n=this.dataSource[o],i=this.hot.runHooks("modifyRowData",o);n="number"!=typeof i?i:n;let{dataDotNotation:r}=this.hot.getSettings(),l=null;if(n&&tw(n,t))l=n[t];else if(r&&"string"==typeof t&&t.indexOf(".")>-1){let e=n;if(!e)return null;let o=t.split(".");for(let t=0,n=o.length;t<n;t++)if(void 0===(e=e[o[t]]))return null;l=e}else"function"==typeof t&&(l=t(this.dataSource.slice(o,o+1)[0]));let s=this.propToCol(t),a="number"==typeof s?this.hot.toPhysicalColumn(s):null;if("number"==typeof s&&iD(o)&&iD(a)&&(l=n1(l,this.metaManager.getCellMetaUncached(o,a,{visualRow:e,visualColumn:s}))),this.hot.hasHook("modifyData")){let t=tC(l);this.hot.runHooks("modifyData",e,s,t,"get"),t.isTouched()&&(l=t.value)}return l}getCopyable(e,t){let o=this.propToCol(t);return"number"==typeof o&&this.hot.getCellMetaTransient(e,o).copyable?this.get(e,t):""}set(e,t,o){let n=this.hot.toPhysicalRow(e),i=o,r=this.dataSource[n],l=this.hot.runHooks("modifyRowData",n);if(r="number"!=typeof l?l:r,this.hot.hasHook("modifyData")){let o=tC(i);this.hot.runHooks("modifyData",e,this.propToCol(t),o,"set"),o.isTouched()&&(i=o.value)}let{dataDotNotation:s}=this.hot.getSettings();if(r&&tw(r,t))r[t]=i;else if(s&&"string"==typeof t&&t.indexOf(".")>-1){let e,o=r,n=0,l=t.split(".");for(n=0,e=l.length-1;n<e;n++){if("__proto__"===l[n]||"constructor"===l[n]||"prototype"===l[n])return;void 0===o[l[n]]&&(o[l[n]]={}),o=o[l[n]]}o[l[n]]=i}else if("function"==typeof t)t(this.dataSource.slice(n,n+1)[0],i);else{if("__proto__"===t||"constructor"===t||"prototype"===t)return;r[t]=i}}visualRowsToPhysical(e,t){let o=this.hot.countRows(),n=[],i=(o+e)%o,r=t;for(;i<o&&r;)n.push(this.hot.toPhysicalRow(i)),r-=1,i+=1;return n}visualColumnsToPhysical(e,t){let o=this.hot.countCols(),n=[],i=(o+e)%o,r=t;for(;i<o&&r;){let e=this.hot.toPhysicalColumn(i);n.push(e),r-=1,i+=1}return n}clear(){for(let e=0;e<this.hot.countSourceRows();e++)for(let t=0;t<this.hot.countCols();t++)this.set(e,this.colToProp(t),"")}getLength(){let e,t=this.tableMeta.maxRows;return e=(t??0)<0||0===t?0:t||1/0,Math.min(this.hot.rowIndexMapper.getNotTrimmedIndexesLength(),e)}getAll(){let e={row:0,col:0},t={row:Math.max(this.hot.countRows()-1,0),col:Math.max(this.hot.countCols()-1,0)};return e.row-t.row!=0||this.hot.countSourceRows()?this.getRange(e,t,dT.DESTINATION_RENDERER):[]}countCachedColumns(){return this.colToPropCache.length}getRange(e,t,o){let n,i,r,l=[],s=this.tableMeta.maxRows,a=this.tableMeta.maxCols;if(0===s||0===a)return[];let h=o===dT.DESTINATION_CLIPBOARD_GENERATOR?this.getCopyable:this.get,d=Math.min(Math.max((s??1/0)-1,0),Math.max(e.row,t.row)),c=Math.min(Math.max((a??1/0)-1,0),Math.max(e.col,t.col));for(n=Math.min(e.row,t.row);n<=d;n++){r=[];let o=n>=0?this.hot.toPhysicalRow(n):n;for(i=Math.min(e.col,t.col);i<=c&&null!==o;i++)r.push(h.call(this,n,this.colToProp(i)));null!==o&&l.push(r)}return l}getText(e,t){return dk(this.getRange(e,t,dT.DESTINATION_RENDERER))}getCopyableText(e,t){return dk(this.getRange(e,t,dT.DESTINATION_CLIPBOARD_GENERATOR))}destroy(){this.hot=null,this.metaManager=null,this.dataSource=null,this.duckSchema=null,this.colToPropCache.length=0,this.propToColCache.clear(),this.propToColCache=void 0}}function dI(e,t,o,n,i,r,l){let s=e.sourceDataValidator;if(!ns(s)||!0===s(t,e,l))return;!1===e.allowInvalid&&i.setAtCell(o,n,null);let a=e.sourceDataWarningMessage;if(a){let e=r.get(a)??[];e.push({row:o,col:n,value:t,message:a}),r.set(a,e)}}function dA(e,t){let o=e.countSourceRows(),n=e.countSourceCols();if(0===o||0===n)return;let i=e.getSettings(),r=e._getDataSource(),l=new Map,{fullScan:s,columns:a}=function(e,t){let o=e._getMetaManager(),n=[];for(let i=0;i<t;i+=1){let t=e.columnIndexMapper.getVisualFromPhysicalIndex(i);if(null===t)continue;let r=o.getCellMetaUncached(0,i,{visualRow:0,visualColumn:t}),l=r.sourceDataValidator;if(ns(l)){if(!0!==l.rowIndependent)return{fullScan:!0,columns:[]};n.push({physicalColumn:i,cellMeta:r})}}return{fullScan:!1,columns:n}}(e,n),h=Array.isArray(i.cell)&&i.cell.length>0||e._getMetaManager().getUserDefinedCellMetas().length>0;(s||0!==a.length||h)&&(s||h?function(e,t,o,n,i,r){let{rowIndexMapper:l,columnIndexMapper:s}=e,a=e._getMetaManager();for(let e=0;e<o;e+=1)for(let o=0;o<n;o+=1){let n=l.getVisualFromPhysicalIndex(e),h=s.getVisualFromPhysicalIndex(o);if(null===n||null===h)continue;let d=a.getCellMetaUncached(e,o,{visualRow:n,visualColumn:h});ns(d.sourceDataValidator)&&dI(d,t.getAtCell(e,o),e,o,t,i,r)}}(e,r,o,n,l,t):function(e,t,o,n,i,r){for(let l=0;l<o;l+=1)if(null!==n(l))for(let o=0;o<e.length;o+=1){let{physicalColumn:n,cellMeta:s}=e[o];dI(s,t.getAtCell(l,n),l,n,t,i,r)}}(a,r,o,t=>e.rowIndexMapper.getVisualFromPhysicalIndex(t),l,t),l.forEach((e,t)=>{d_(t,e)}))}function d_(e,t){!function(){let{logFunction:e=tX,message:t="",items:o=[],maxSample:n=5,itemFormatter:i=e=>`${e}`}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};if(!Array.isArray(o)||0===o.length)return;let r=o.length,l=o.slice(0,n).map(e=>` - ${i(e)}`),s=r>n?` - ...and ${r-n} more`:"";e(tK(t,{itemsCount:`${r} cell${r>1?"s":""}`,affectedCells:["Affected cells:",...l,...s?[s]:[]].join("\n")}))}({logFunction:tZ,message:e,items:t,itemFormatter:e=>{let{row:t,col:o,value:n}=e,i=eO(n),r=i.length>64?`${i.slice(0,64)}...`:i;return`row ${t}, col ${o}, value: "${r}"`}})}function dO(e,t,o,n){let{hotInstance:i,dataMap:r,dataSource:l,internalSource:s,source:a,metaManager:h,firstRun:d}=n,c=ia(s),u=i.getSettings();Array.isArray(u.dataSchema)?i.dataType="array":ns(u.dataSchema)?i.dataType="function":i.dataType="object",r&&r.destroy(),e=i.runHooks(`before${c}`,e,d,a);let g=new dT(i,e,h);t(g),"object"==typeof e&&null!==e?e.push&&e.splice||(e=[e]):null===e?e=function(e,t,o){let n=t.getSchema(),i=[];for(let t=0,r=o.startRows;t<r;t++){let t;if(("object"===e.dataType||"function"===e.dataType)&&o.dataSchema)t=ts(n);else if("array"===e.dataType)t=ts(n[0]);else{t=[];for(let e=0,n=o.startCols;e<n;e++)t.push(null)}i.push(t)}return i}(i,g,u):to(`${s} only accepts array of objects or array of arrays (${typeof e} given)`),Array.isArray(e[0])&&(i.dataType="array"),u.data=e,g.dataSource=e,l.data=e,l.dataType=i.dataType,l.colToProp=e=>g.colToProp(e),l.propToCol=e=>g.propToCol(e),l.countCachedColumns=g.countCachedColumns.bind(g),o(g),d||dA(i,s),i.runHooks(`after${c}`,e,d,a),d||(i.runHooks("afterChange",null,s),i.view.adjustElementsSize(),i.render()),i.getSettings().ariaTags&&ou(i.rootElement,[B(-1),L(i.countCols()+(i.view?i.countRowHeaders():0))])}class dP{#oq;#oj;constructor({rowIndexMapper:e,columnIndexMapper:t}){this.#oq=e,this.#oj=t}toRenderable(e){let t="N-S"===e.getVerticalDirection()?1:-1,o="W-E"===e.getHorizontalDirection()?1:-1,n=this.#oY(e.from,t,o);if(null===n)return null;let i=this.#oY(e.to,-t,-o);if(null===i)return null;let r=e.clone();return r.from=n,r.to=i,r.includes(e.highlight)||(r.highlight=n),r}#oY(e,t){let o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:t;if(null===e.row||null===e.col)return null;let n=this.#oK(this.#oq,e.row,t);if(null===n)return null;let i=this.#oK(this.#oj,e.col,o);return null===i?null:e.clone().assign({row:n,col:i})}#oK(e,t,o){return t<0?t:e.getNearestNotHiddenIndex(t,o)}}function dD(e){ne(e)&&e.scrollIntoView({block:"nearest",inline:"nearest"})}function dN(e){let{selection:t,view:o}=e,n=e.getSelectedRangeActive(),i=t.getSelectionSource(),r=o.getFirstFullyVisibleColumn()??-1,l=o.getLastFullyVisibleColumn()??-1,s=n?.getTopStartCorner().col??-1,a=n?.getBottomEndCorner().col??-1,h=s<=r,d=a>=l,c=o.getFirstFullyVisibleRow()??-1,u=o.getLastFullyVisibleRow()??-1,g=n?.getTopStartCorner().row??-1,p=n?.getBottomEndCorner().row??-1,m=g<=c,f=p>=u;return{getComputedColumnTarget:e=>"mouse"===i||"keyboard"===i?e.col??-1:h&&d?n?.highlight.col??-1:h?s:d?a:e.col??-1,getComputedRowTarget:e=>"mouse"===i||"keyboard"===i?e.row??-1:m&&f?n?.highlight.row??-1:m?g:f?p:e.row??-1}}let dB=Object.freeze({CELL:"cell",MIXED:"mixed"});class dL{#oX;#oZ=null;#oQ=!1;#oJ;#o0=1;#o1=null;#o2=new Map;#o3=!1;#o6=!1;constructor(e){this.#oX=e}init(){var e=this;let t=this.#oX.getSettings();this.#oJ=t.imeFastEdit?dB.MIXED:dB.CELL,this.#oX.addHook("afterUpdateSettings",function(){for(var t=arguments.length,o=Array(t),n=0;n<t;n++)o[n]=arguments[n];return e.#o4(o[0])}),this.#oX.addHook("afterSelection",function(){for(var t=arguments.length,o=Array(t),n=0;n<t;n++)o[n]=arguments[n];return e.#o5()}),this.#oX.addHook("afterSelectionFocusSet",function(){for(var t=arguments.length,o=Array(t),n=0;n<t;n++)o[n]=arguments[n];return e.#o5()}),this.#oX.addHook("afterSelectionEnd",function(){for(var t=arguments.length,o=Array(t),n=0;n<t;n++)o[n]=arguments[n];return e.#o7()}),this.#oX.addHook("afterRender",function(){for(var t=arguments.length,o=Array(t),n=0;n<t;n++)o[n]=arguments[n];return e.#o9()}),this.#oZ=new n4(this.#oX);let o=[this.#oX.rootWrapperElement??this.#oX.rootElement,this.#oX.rootPortalElement].filter(e=>ne(e));o.forEach(e=>{this.#oZ.addEventListener(e,"focusin",()=>{this.#oQ=!0}),this.#oZ.addEventListener(e,"focusout",e=>{let t=e.relatedTarget;this.#oQ=ne(t)&&o.some(e=>e.contains(t))})})}hasBrowserFocus(){return this.#oQ}isForeignFocusTarget(e){let{rootElement:t,rootWrapperElement:o,rootPortalElement:n,rootDocument:i}=this.#oX,r=!!o&&o.contains(e)&&!t.contains(e);return!(null===e||e===i.body||e===i.documentElement||t4(e,t)||r||n&&n.contains(e))&&!ni(t).includes(e)}getFocusMode(){return this.#oJ}setFocusMode(e){Object.values(dB).includes(e)?this.#oJ=e:tZ(`"${e}" is not a valid focus mode.`)}getRefocusDelay(){return this.#o0}setRefocusDelay(e){this.#o0=e}setRefocusElementGetter(e){this.#o1=e}suspend(){this.#o6=!0}resume(){this.#o6=!1}getRefocusElement(){return"function"==typeof this.#o1?this.#o1():this.#oX.getActiveEditor()?.TEXTAREA}focusElement(e,t){return!!ne(e)&&!!e.isConnected&&(e.focus(t),!0)}focusOnHighlightedCell(e){let t=e=>{let t=this.#oX.getSelectedRangeActive()?.highlight;if(!t)return;let o=this.#oX.runHooks("modifyFocusedElement",t.row,t.col,e);ne(o)||(o=e),o&&!this.#oX.getActiveEditor()?.isOpened?.()&&this.focusElement(o,{preventScroll:!0})};e?t(e):this.#o8(e=>t(e))}refocusToEditorTextarea(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:this.#o0;this.#oX.getSettings().imeFastEdit&&!this.#oX.getActiveEditor()?.isOpened?.()&&(this.#oX.getActiveEditor()?.refreshValue?.(),this.#o2.has(e)||this.#o2.set(e,nd(()=>{this.#oX.isDestroyed||this.getRefocusElement()?.select()},e)),this.#o2.get(e)())}#o8(e){let t=this.#oX.getSelectedRangeActive()?.highlight;if(!t||!this.#oX.selection.isCellVisible(t)||null===t.row||null===t.col)return void e(null);let{row:o,col:n}=t,i=this.#oX.getCell(o,n,!0);null===i?this.#oX.addHookOnce("afterScroll",()=>{e(this.#oX.getCell(o,n,!0))}):e(i)}#ne(){let e=this.#o6;this.#o8(t=>{let o=nr(this.#oX.rootDocument),n=ne(o)?o:null;e&&n&&o3(n)||(n&&o3(n)&&n.blur(),this.focusOnHighlightedCell(t))})}#o7(){if(this.#o6){let e=nr(this.#oX.rootDocument),t=ne(e)?e:null;if(t&&o3(t))return}this.#o8(e=>{this.getFocusMode()===dB.MIXED&&e?.nodeName==="TD"&&this.refocusToEditorTextarea()})}#o5(){this.#o3=!0}#o9(){this.#o3&&(this.#o3=!1,this.#ne())}#o4(e){"boolean"==typeof e.imeFastEdit&&this.setFocusMode(e.imeFastEdit?dB.MIXED:dB.CELL)}}let dV=Object.freeze({INLINE:"inline",MODAL:"modal"}),dF=Object.freeze({UNKNOWN:"unknown",CLICK:"click",TAB_FROM_ABOVE:"tab_from_above",TAB_FROM_BELOW:"tab_from_below"});function dz(e,t){let o=e.rootDocument.createElement("div");return o.style.display="none",o.classList.add("htFocusCatcher"),o.dataset.htFocusSource=t,o}function dW(e){let{rowIndexMapper:t,columnIndexMapper:o}=e,{navigableHeaders:n}=e.getSettings(),i=n&&e.countColHeaders()>0?-e.countColHeaders():0,r=n&&e.countRowHeaders()>0?-e.countRowHeaders():0,l=0===i?t.getVisualFromRenderableIndex(i):i,s=0===r?o.getVisualFromRenderableIndex(r):r;return null===l||null===s?null:e._createCellCoords(l,s)}function d$(e){let{rowIndexMapper:t,columnIndexMapper:o}=e,{navigableHeaders:n}=e.getSettings(),i=t.getRenderableIndexesLength()-1,r=o.getRenderableIndexesLength()-1;if(i<0){if(!n||0===e.countColHeaders())return null;i=-1}if(r<0){if(!n||0===e.countColHeaders())return null;r=-1}return e._createCellCoords(t.getVisualFromRenderableIndex(i)??i,o.getVisualFromRenderableIndex(r)??r)}let dU="gridDefault",dG="grid.tabNavigation",dq="editorManager.handlingEditor";function dj(e){let t,o=t=>{if(!t)return null;let{rowIndexMapper:o,columnIndexMapper:n}=e;if(o.isHidden(t.row)||n.isHidden(t.col))return null;let i=dW(e),r=d$(e);return null===i||null===r?null:(t.row=iA(t.row,i.row??t.row,r.row??t.row),t.col=iA(t.col,i.col??t.col,r.col??t.col),t)},n={wrapped:!1,flipped:!1},i=!0,r=!1;e.addHook("afterSelection",()=>{i&&(t=e.getSelectedRangeActive()?.highlight)}),e.addHook("beforeRowWrap",(e,t,o)=>{n.wrapped=!0,n.flipped=o}),e.addHook("beforeEmptyDataStateShow",()=>{r=!0}),e.addHook("beforeEmptyDataStateHide",()=>{r=!1});let l=e.getShortcutManager().getContext("grid");l?.addShortcuts([{keys:[["Tab"],["Shift","Tab"]],preventDefault:!1,stopPropagation:!1,relativeToGroup:dU,group:dG,position:"before",callback(){let{tabNavigation:t}=e.getSettings();e.getSelectedRangeActive()&&!t&&(i=!1)}},{keys:[["Tab"],["Shift","Tab"]],preventDefault:!1,stopPropagation:!1,relativeToGroup:dU,group:dG,callback(o){let{tabNavigation:r,autoWrapRow:l}=e.getSettings();i=!0,(!r||!e.selection.isSelected()||l&&n.wrapped&&n.flipped||!l&&n.wrapped)&&(l&&n.wrapped&&n.flipped&&(t=o.shiftKey?dW(e):d$(e)),n.wrapped=!1,n.flipped=!1)},position:"after"}]);let s=e.rootGridContentElement??e.rootElement;e.getFocusScopeManager().registerScope("grid",s,{contains:t=>!!(s===t||s.contains(t))||null===t.closest(".htMenu")&&e.rootPortalElement.contains(t),runOnlyIf:()=>{let{navigableHeaders:t}=e.getSettings();return!((r||!t)&&0===e.countRenderedRows()&&0===e.countRenderedCols()&&e.countRowHeaders()>0&&e.countColHeaders()>0)&&!!(!t&&e.countRenderedRows()>0&&e.countRenderedCols()>0||t&&(e.countRowHeaders()>0||e.countColHeaders()>0))},onActivate:n=>{if("tab_from_above"===n){let n=o(t)??dW(e);if(n){let t=e.runHooks("modifyFocusOnTabNavigation","from_above",n),{row:o,col:i}=n;!1!==t&&null!==o&&null!==i&&(e.selectCell(o,i),e.getFocusManager().focusOnHighlightedCell())}}else if("tab_from_below"===n){let n=o(t)??d$(e);if(n){let t=e.runHooks("modifyFocusOnTabNavigation","from_below",n),{row:o,col:i}=n;!1!==t&&null!==o&&null!==i&&e.selectCell(o,i)}}}})}let dY=new Map([[" ","space"],["spacebar","space"],["scroll","scrolllock"],["del","delete"],["esc","escape"],["medianexttrack","mediatracknext"],["mediaprevioustrack","mediatrackprevious"],["volumeup","audiovolumeup"],["volumedown","audiovolumedown"],["volumemute","audiovolumemute"],["multiply","*"],["add","+"],["divide","/"],["subtract","-"],["left","arrowleft"],["right","arrowright"],["up","arrowup"],["down","arrowdown"]]),dK=e=>e.map(e=>{let t=e.toLowerCase();return dY.has(t)?dY.get(t)??t:t}).sort((e,t)=>e.localeCompare(t)).join("+"),dX=new Map([[96,"numpad0"],[97,"numpad1"],[98,"numpad2"],[99,"numpad3"],[100,"numpad4"],[101,"numpad5"],[102,"numpad6"],[103,"numpad7"],[104,"numpad8"],[105,"numpad9"],[106,"multiply"],[107,"add"],[108,"decimal"],[109,"subtract"],[110,"decimal"],[111,"divide"],[112,"f1"],[113,"f2"],[114,"f3"],[115,"f4"],[116,"f5"],[117,"f6"],[118,"f7"],[119,"f8"],[120,"f9"],[121,"f10"],[122,"f11"],[123,"f12"],[186,"semicolon"],[187,"equal"],[188,"comma"],[189,"minus"],[190,"period"],[191,"slash"],[192,"backquote"],[219,"bracketleft"],[220,"backslash"],[221,"bracketright"],[222,"quote"]]),dZ=e=>{let{which:t,key:o}=e;if(dX.has(t))return dX.get(t)??o.toLowerCase();let n=String.fromCharCode(t).toLowerCase();return/^[a-z0-9]$/.test(n)?n:o.toLowerCase()},dQ=["meta","alt","shift","control"],dJ=function(e){let t=arguments.length>1&&void 0!==arguments[1]&&arguments[1],o=[];return e.altKey&&o.push("alt"),t&&(e.ctrlKey||e.metaKey)?o.push("control/meta"):(e.ctrlKey&&o.push("control"),e.metaKey&&o.push("meta")),e.shiftKey&&o.push("shift"),o},d0=Symbol("shortcut-context");function d1(e){return tu(e)&&e.__kindOf===d0}let d2=function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"table",o=iF({errorIdExists:t=>`The "${t}" shortcut is already registered in the "${e}" context.`}),n=function(){let{keys:e,callback:t,group:n,runOnlyIf:i=()=>!0,captureCtrl:r=!1,preventDefault:l=!0,stopPropagation:s=!1,relativeToGroup:a,position:h,forwardToContext:d}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};eD(n)&&to("You need to define the shortcut's group."),!1===ns(t)&&to("The shortcut's callback needs to be a function."),!1===Array.isArray(e)&&to(eu`Pass the shortcut\'s keys as an array of arrays,\x20
|
|
84
84
|
using the KeyboardEvent.key properties:\x20
|
|
85
|
-
declare https: //developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent/key/Key_Values.`);let c={callback:t,group:n,runOnlyIf:i,captureCtrl:r,preventDefault:l,stopPropagation:s};eP(a)&&(c.relativeToGroup=a,c.position=h),d1(d)&&(c.forwardToContext=d),e.forEach(e=>{let t=dK(e);if(o.hasItem(t)){let e=o.getItem(t),n=e.findIndex(e=>e.group===a);-1!==n?"before"===h?n-=1:n+=1:n=e.length,e.splice(n,0,c)}else o.addItem(t,[c])})},i=e=>{let t=dK(e);o.removeItem(t)};return{__kindOf:d0,scope:t,addShortcut:n,addShortcuts:function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};e.forEach(e=>{tp(t,(o,n)=>{!1===Object.prototype.hasOwnProperty.call(e,n)&&(e[n]=t[n])}),n(e)})},getShortcuts:e=>{let t=dK(e),n=o.getItem(t);return eP(n)?n.slice():[]},hasShortcut:e=>{let t=dK(e);return o.hasItem(t)},removeShortcutsByKeys:i,removeShortcutsByGroup:e=>{o.getItems().forEach(t=>{let[o,n]=t,r=n.filter(t=>t.group!==e);0===r.length?i(o.split("+")):(n.length=0,n.push(...r))})}}},d3=(o=new Set,{press(e){o.add(e)},release(e){o.delete(e)},releaseAll(){o.clear()},isPressed:e=>o.has(e)}),d6=new WeakMap,d4=e=>{if("string"==typeof e.key){let t=dZ(e);dQ.includes(t)&&d3.press(t)}},d5=e=>{if("string"==typeof e.key){let t=dZ(e);dQ.includes(t)&&d3.release(t)}},d7=[{name:"editorCloseAndSave",callback(e){e._getEditorManager().closeEditorAndSaveChanges()}},{name:"editorCloseAndSaveByArrowKeys",callback(e,t,o){let n=e._getEditorManager(),i=n.getActiveEditor();i?.isInFullEditMode()&&i?.state===n2.EDITING||(n.closeEditorAndSaveChanges(),e.getSelected()&&(o.includes("arrowdown")?e.selection.transformStart(1,0):o.includes("arrowup")?e.selection.transformStart(-1,0):o.includes("arrowleft")?e.selection.transformStart(0,-1*e.getDirectionFactor()):o.includes("arrowright")&&e.selection.transformStart(0,e.getDirectionFactor())),t.preventDefault())}},{name:"editorCloseAndSaveByEnter",callback(e,t){let o=e._getEditorManager();o.closeEditorAndSaveChanges(t.ctrlKey||t.metaKey),o.moveSelectionAfterEnter(t)}},{name:"editorCloseWithoutSaving",callback(e){let t=e._getEditorManager();t.closeEditorAndRestoreOriginalValue(e.getShortcutManager().isCtrlPressed()),t.activeEditor?.focus()}},{name:"editorFastOpen",callback(e,t){let o=e.getSelectedRangeActive()?.highlight;o?.isHeader()||e._getEditorManager().openEditor(null,t,!0)}},{name:"editorOpen",callback(e,t,o){let{selection:n}=e,i=e._getEditorManager(),r=e.getSelectedRange(),l=e.getSelectedRangeActive(),s=l?.highlight;if((r?.some(e=>n.isMultiple(e))||(r?.length??0)>1)&&!l?.isHeader()&&e.countRenderedCols()>0&&e.countRenderedRows()>0){let i=e.getSettings(),r="function"==typeof i.enterMoves?i.enterMoves(t):i.enterMoves;o.includes("shift")?n.transformFocus(-(r?.row??0),-(r?.col??0)):n.transformFocus(r?.row??0,r?.col??0);return}s?.isHeader()||(e.getSettings().enterBeginsEditing?i.cellProperties.readOnly?i.moveSelectionAfterEnter(t):i.openEditor(null,t,!0):i.moveSelectionAfterEnter(t),nR(t))}},{name:"extendCellsSelectionDown",callback(e){let{selection:t}=e,o=e.getSelectedRangeActive()?.highlight;!t.isSelectedByColumnHeader()&&!t.isSelectedByCorner()&&(o?.isCell()||o?.isHeader()&&t.isSelectedByRowHeader())&&(t.markSource("keyboard"),t.transformEnd(1,0),t.markEndSource())}},{name:"extendCellsSelectionDownByViewportHeight",callback(e){let{selection:t,rowIndexMapper:o}=e,n=e.getSelectedRangeActive();if(!n)return;let{to:i}=n,r=i.row??0,l=Math.min(r+e.countVisibleRows(),e.countRows()-1),s=o.getNearestNotHiddenIndex(l,-1);if(null!==s){let o=e._createCellCoords(s,i.col??0),n=r-(e.getFirstFullyVisibleRow()??0),l=Math.min((o.row??0)-n,e.countRows()-1);t.markSource("keyboard"),t.setRangeEnd(o,e.getActiveSelectionLayerIndex()),t.markEndSource(),e.scrollViewportTo({row:l,verticalSnap:"top",horizontalSnap:"start"})}}},{name:"extendCellsSelectionLeft",callback(e){let{selection:t}=e,o=e.getSelectedRangeActive()?.highlight;!t.isSelectedByRowHeader()&&!t.isSelectedByCorner()&&(o?.isCell()||o?.isHeader()&&t.isSelectedByColumnHeader())&&(t.markSource("keyboard"),t.transformEnd(0,-1*e.getDirectionFactor()),t.markEndSource())}},{name:"extendCellsSelectionRight",callback(e){let{selection:t}=e,o=e.getSelectedRangeActive()?.highlight;!t.isSelectedByRowHeader()&&!t.isSelectedByCorner()&&(o?.isCell()||o?.isHeader()&&t.isSelectedByColumnHeader())&&(t.markSource("keyboard"),t.transformEnd(0,e.getDirectionFactor()),t.markEndSource())}},{name:"extendCellsSelectionToColumns",callback(e){let{selection:t}=e,o=e.getSelectedRangeActive();if(!o)return;let{highlight:n,from:i,to:r}=o;t.markSource("keyboard"),t.isSelectedByRowHeader()?t.selectAll(!0,!0):e.selectColumns(i.col??0,r.col??0,n),t.markEndSource()}},{name:"extendCellsSelectionToMostBottom",callback(e){let{selection:t,rowIndexMapper:o}=e,n=e.getSelectedRangeActive();if(!n)return;let{highlight:i,from:r,to:l}=n,s=i.isHeader()&&t.isSelectedByRowHeader();if(i.isCell()||s){let n=o.getNearestNotHiddenIndex(e.countRows()-1,-1),a=r.clone();a.row=i.row,t.markSource("keyboard"),t.setRangeStart(a,void 0,!1,i.clone()),s&&t.selectedByRowHeader.add(t.getLayerLevel()),t.setRangeEnd(e._createCellCoords(n??0,l.col??0)),t.markEndSource()}}},{name:"extendCellsSelectionToMostInlineEnd",callback(e){let{selection:t,columnIndexMapper:o}=e,n=e.getSelectedRangeActive();if(!n)return;let{highlight:i,from:r,to:l}=n;if(!t.isSelectedByRowHeader()&&!t.isSelectedByCorner()&&i.isCell()){let n=o.getNearestNotHiddenIndex(e.countCols()-1,-1),s=r.clone();s.col=i.col,t.markSource("keyboard"),t.setRangeStart(s,void 0,!1,i.clone()),t.setRangeEnd(e._createCellCoords(l.row??0,n??0)),t.markEndSource()}}},{name:"extendCellsSelectionToMostInlineStart",callback(e){let{selection:t,columnIndexMapper:o}=e,n=e.getSelectedRangeActive();if(!n)return;let{highlight:i,from:r,to:l}=n;if(!t.isSelectedByRowHeader()&&!t.isSelectedByCorner()&&i.isCell()){let n=Number(e.getSettings().fixedColumnsStart)||0,s=o.getNearestNotHiddenIndex(n,1),a=r.clone();a.col=i.col,t.markSource("keyboard"),t.setRangeStart(a,void 0,!1,i.clone()),t.setRangeEnd(e._createCellCoords(l.row??0,s??0)),t.markEndSource()}}},{name:"extendCellsSelectionToMostLeft",callback(e){let{selection:t,columnIndexMapper:o}=e,n=e.getSelectedRangeActive();if(!n)return;let{highlight:i,from:r,to:l}=n,s=i.isHeader()&&t.isSelectedByColumnHeader();if(i.isCell()||s){let n=e.isRtl()?o.getNearestNotHiddenIndex(e.countCols()-1,-1):o.getNearestNotHiddenIndex(0,1),a=r.clone();a.col=i.col,t.markSource("keyboard"),t.setRangeStart(a,void 0,!1,i.clone()),s&&t.selectedByColumnHeader.add(t.getLayerLevel()),t.setRangeEnd(e._createCellCoords(l.row??0,n??0)),t.markEndSource()}}},{name:"extendCellsSelectionToMostRight",callback(e){let{selection:t,columnIndexMapper:o}=e,n=e.getSelectedRangeActive();if(!n)return;let{highlight:i,from:r,to:l}=n,s=i.isHeader()&&t.isSelectedByColumnHeader();if(i.isCell()||s){let n=e.isRtl()?o.getNearestNotHiddenIndex(0,1):o.getNearestNotHiddenIndex(e.countCols()-1,-1),a=r.clone();a.col=i.col,t.markSource("keyboard"),t.setRangeStart(a,void 0,!1,i.clone()),s&&t.selectedByColumnHeader.add(t.getLayerLevel()),t.setRangeEnd(e._createCellCoords(l.row??0,n??0)),t.markEndSource()}}},{name:"extendCellsSelectionToMostTop",callback(e){let{selection:t,rowIndexMapper:o}=e,n=e.getSelectedRangeActive();if(!n)return;let{highlight:i,from:r,to:l}=n,s=i.isHeader()&&t.isSelectedByRowHeader();if(i.isCell()||s){let n=o.getNearestNotHiddenIndex(0,1),a=r.clone();a.row=i.row,t.markSource("keyboard"),t.setRangeStart(a,void 0,!1,i.clone()),s&&t.selectedByRowHeader.add(t.getLayerLevel()),t.setRangeEnd(e._createCellCoords(n??0,l.col??0)),t.markEndSource()}}},{name:"extendCellsSelectionToRows",callback(e){let{selection:t}=e,o=e.getSelectedRangeActive();if(!o)return void t.markEndSource();let{highlight:n,from:i,to:r}=o;t.markSource("keyboard"),t.isSelectedByColumnHeader()?t.selectAll(!0,!0):e.selectRows(i.row??0,r.row??0,n),t.markEndSource()}},{name:"extendCellsSelectionUp",callback(e){let{selection:t}=e,o=e.getSelectedRangeActive()?.highlight;!t.isSelectedByColumnHeader()&&!t.isSelectedByCorner()&&(o?.isCell()||o?.isHeader()&&t.isSelectedByRowHeader())&&(t.markSource("keyboard"),t.transformEnd(-1,0),t.markEndSource())}},{name:"extendCellsSelectionUpByViewportHeight",callback(e){let{selection:t,rowIndexMapper:o}=e,n=e.getSelectedRangeActive();if(!n)return;let{to:i}=n,r=i.row??0,l=Math.max(r-e.countVisibleRows(),0),s=o.getNearestNotHiddenIndex(l,1);if(null!==s){let o=e._createCellCoords(s,i.col??0),n=r-(e.getFirstFullyVisibleRow()??0),l=Math.max((o.row??0)-n,0);t.markSource("keyboard"),t.setRangeEnd(o,e.getActiveSelectionLayerIndex()),t.markEndSource(),e.scrollViewportTo({row:l,verticalSnap:"top",horizontalSnap:"start"})}}},{name:"moveCellSelectionDown",callback(e){let{selection:t}=e;t.markSource("keyboard"),t.transformStart(1,0),t.markEndSource()}},{name:"moveCellSelectionDownByViewportHeight",callback(e){let{selection:t}=e,{navigableHeaders:o}=e.getSettings(),n=o?e.countColHeaders():0,i=e.getSelectedRangeActive()?.highlight.row??0,r=e.countVisibleRows()+n;r=0===r?1:r,i===e.countRows()-1?r=1:i+r>e.countRows()&&(r=e.countRows()-i-1),t.markSource("keyboard"),t.transformStart(r,0),t.markEndSource();let l=e.getSettings().fixedRowsBottom??0,s=e.countRows(),a=e.getSelectedRangeActive()?.highlight.row??0;a<0?e.scrollViewportTo({row:0}):l>0&&a>=s-l&&e.scrollViewportTo({row:s-l-1,verticalSnap:"bottom"})}},{name:"moveCellSelectionInlineEnd",callback(e,t){let{selection:o}=e,n=e.getSettings(),i=e.getSelectedRange(),r=e.getSelectedRangeActive(),l="function"==typeof n.tabMoves?n.tabMoves(t):n.tabMoves;o.markSource("keyboard"),(i?.some(e=>o.isMultiple(e))||(i?.length??0)>1)&&!r?.isHeader()&&e.countRenderedCols()>0&&e.countRenderedRows()>0?o.transformFocus(-(l?.row??0),-(l?.col??0)):o.transformStart(-(l?.row??0),-(l?.col??0)),o.markEndSource()}},{name:"moveCellSelectionInlineStart",callback(e,t){let{selection:o}=e,n=e.getSettings(),i=e.getSelectedRange(),r=e.getSelectedRangeActive(),l="function"==typeof n.tabMoves?n.tabMoves(t):n.tabMoves;o.markSource("keyboard"),(i?.some(e=>o.isMultiple(e))||(i?.length??0)>1)&&!r?.isHeader()&&e.countRenderedCols()>0&&e.countRenderedRows()>0?o.transformFocus(l?.row??0,l?.col??0):o.transformStart(l?.row??0,l?.col??0),o.markEndSource()}},{name:"moveCellSelectionLeft",callback(e){let{selection:t}=e;t.markSource("keyboard"),t.transformStart(0,-1*e.getDirectionFactor()),t.markEndSource()}},{name:"moveCellSelectionRight",callback(e){let{selection:t}=e;t.markSource("keyboard"),t.transformStart(0,e.getDirectionFactor()),t.markEndSource()}},{name:"moveCellSelectionToMostBottom",callback(e){let{selection:t}=e,o=e.getSelectedRangeActive()?.highlight.col??0,n=e.rowIndexMapper.getNearestNotHiddenIndex(e.countRows()-1,-1);null===n&&(n=-1),t.setRangeStart(e._createCellCoords(n,o))}},{name:"moveCellSelectionToMostBottomInlineEnd",callback(e){let{selection:t,rowIndexMapper:o,columnIndexMapper:n}=e,i=Number(e.getSettings().fixedRowsBottom)||0,r=o.getNearestNotHiddenIndex(e.countRows()-i-1,-1),l=n.getNearestNotHiddenIndex(e.countCols()-1,-1);t.markSource("keyboard"),t.setRangeStart(e._createCellCoords(r??-1,l??-1)),t.markEndSource()}},{name:"moveCellSelectionToMostInlineEnd",callback(e){let{selection:t,columnIndexMapper:o}=e;t.markSource("keyboard"),t.setRangeStart(e._createCellCoords(e.getSelectedRangeActive()?.highlight.row??0,o.getNearestNotHiddenIndex(e.countCols()-1,-1)??0)),t.markEndSource()}},{name:"moveCellSelectionToMostInlineStart",callback(e){let{selection:t,columnIndexMapper:o}=e,n=Number(e.getSettings().fixedColumnsStart)||0,i=e.getSelectedRangeActive()?.highlight.row??0,r=o.getNearestNotHiddenIndex(n,1);t.markSource("keyboard"),t.setRangeStart(e._createCellCoords(i,r??0)),t.markEndSource()}},{name:"moveCellSelectionToMostLeft",callback(e){let{selection:t,columnIndexMapper:o}=e,n=e.getSelectedRangeActive()?.highlight.row??0,i=e.isRtl()?o.getNearestNotHiddenIndex(e.countCols()-1,-1):o.getNearestNotHiddenIndex(0,1);null===i&&(i=e.isRtl()?-1:-e.countRowHeaders()),t.markSource("keyboard"),t.setRangeStart(e._createCellCoords(n,i)),t.markEndSource()}},{name:"moveCellSelectionToMostRight",callback(e){let{selection:t,columnIndexMapper:o}=e,n=e.getSelectedRangeActive()?.highlight.row??0,i=e.isRtl()?o.getNearestNotHiddenIndex(0,1):o.getNearestNotHiddenIndex(e.countCols()-1,-1);null===i&&(i=e.isRtl()?-e.countRowHeaders():-1),t.markSource("keyboard"),t.setRangeStart(e._createCellCoords(n,i)),t.markEndSource()}},{name:"moveCellSelectionToMostTop",callback(e){let{selection:t}=e,o=e.getSelectedRangeActive()?.highlight.col??0,n=e.rowIndexMapper.getNearestNotHiddenIndex(0,1);null===n&&(n=-e.countColHeaders()),t.markSource("keyboard"),t.setRangeStart(e._createCellCoords(n,o)),t.markEndSource()}},{name:"moveCellSelectionToMostTopInlineStart",callback(e){let{selection:t,rowIndexMapper:o,columnIndexMapper:n}=e,i=Number(e.getSettings().fixedRowsTop)||0,r=Number(e.getSettings().fixedColumnsStart)||0,l=o.getNearestNotHiddenIndex(i,1),s=n.getNearestNotHiddenIndex(r,1);t.markSource("keyboard"),t.setRangeStart(e._createCellCoords(l??0,s??0)),t.markEndSource()}},{name:"moveCellSelectionUp",callback(e){let{selection:t}=e;t.markSource("keyboard"),t.transformStart(-1,0),t.markEndSource()}},{name:"moveCellSelectionUpByViewportHight",callback(e){let{selection:t}=e,{navigableHeaders:o}=e.getSettings(),n=o?e.countColHeaders():0,i=e.getSelectedRangeActive()?.highlight.row??0,r=e.countVisibleRows()+n;r=0===r?-1:-r,i===-n?r=-1:i+r<n&&(r=-(i+n)),t.markSource("keyboard"),t.transformStart(r,0),t.markEndSource();let l=e.getSettings().fixedRowsTop??0;(e.getSelectedRangeActive()?.highlight.row??0)<l&&e.scrollViewportTo({row:l,verticalSnap:"top"})}},{name:"emptySelectedCells",callback(e){e.emptySelectedCells(),e._getEditorManager().prepareEditor()}},{name:"scrollToFocusedCell",callback(e){let t=e.getSelectedRangeActive()?.highlight;if(!t)return;let o=e.getFirstFullyVisibleRow()-1,n=e.getFirstFullyVisibleColumn()-1,i=e.getLastFullyVisibleRow()+1,r=e.getLastFullyVisibleColumn()+1,l=e._createCellCoords(o,n),s=e._createCellCoords(i,r);if(!e._createCellRange(l,l,s).includes(t)&&((t.row??-1)>=0||(t.col??-1)>=0)){let o={};if((t.col??-1)>=0){let n=Math.floor(e.countVisibleCols()/2);o.col=Math.max((t.col??0)-n,0)}if((t.row??-1)>=0){let n=Math.floor(e.countVisibleRows()/2);o.row=Math.max((t.row??0)-n,0)}e.scrollViewportTo({...o,verticalSnap:"top",horizontalSnap:"start"})}}},{name:"selectAllCells",callback(e){let{selection:t}=e;t.markSource("keyboard"),t.selectAll(!0,!0,{disableHeadersHighlight:!0}),t.markEndSource()}},{name:"selectAllCellsAndHeaders",callback(e){let{selection:t}=e;t.markSource("keyboard"),t.selectAll(!0,!0,{disableHeadersHighlight:!1}),t.markEndSource()}},{name:"populateSelectedCellsData",callback(e){let t=e.getSelectedRange();if(!t)return;let o=t[t.length-1].highlight.normalize(),n=o.row??0,i=o.col??0,r=e.getDataAtCell(n,i),l=new Map;for(let o=0;o<t.length;o++)t[o].forAll((t,o)=>{if(t>=0&&o>=0&&(t!==n||o!==i)){let{readOnly:n}=e.getCellMetaTransient(t,o);n||l.set(`${t}x${o}`,[t,o,r])}});e.setDataAtCell(Array.from(l.values()))}},{name:"tabNavigation",callback(e){let t={wrapped:!1,flipped:!1},o=!1,n=!1;return e.addHook("afterSelection",(e,i,r,l,s)=>{o&&(t.wrapped&&t.flipped||n)&&(n=!1,s.value=!0)}),e.addHook("beforeRowWrap",(e,o,n)=>{t.wrapped=!0,t.flipped=n}),{before(){let{tabNavigation:t}=e.getSettings();o=!0,t||(n=!0)},after(n){let{tabNavigation:i,autoWrapRow:r}=e.getSettings();if(o=!1,!i||!e.selection.isSelected()||r&&t.wrapped&&t.flipped||!r&&t.wrapped)return t.wrapped=!1,t.flipped=!1,e.deselectCell(),!1;n.preventDefault()}}}}];function d9(e){let t={};return d7.forEach(o=>{let{name:n,callback:i}=o;t[n]=function(){for(var t=arguments.length,o=Array(t),n=0;n<t;n++)o[n]=arguments[n];return i(e,...o)}}),t}function d8(e){let t=e.getShortcutManager().addContext("editor"),o=d9(e);t.addShortcuts([{keys:[["Enter"],["Enter","Shift"]],callback:(e,t)=>o.editorCloseAndSaveByEnter(e,t)},{keys:[["Enter","Control/Meta"],["Enter","Control/Meta","Shift"]],captureCtrl:!0,callback:(e,t)=>o.editorCloseAndSaveByEnter(e,t)},{keys:[["Tab"],["Tab","Shift"],["PageDown"],["PageUp"]],forwardToContext:e.getShortcutManager().getContext("grid"),callback:(e,t)=>o.editorCloseAndSave(e,t)},{keys:[["ArrowDown"],["ArrowUp"],["ArrowLeft"],["ArrowRight"]],preventDefault:!1,callback:(e,t)=>o.editorCloseAndSaveByArrowKeys(e,t)},{keys:[["Escape"],["Escape","Control/Meta"]],callback:()=>o.editorCloseWithoutSaving()}],{group:dq})}function ce(e){let t=e.getShortcutManager().addContext("grid"),o=d9(e);t.addShortcuts([{keys:[["F2"]],callback:e=>o.editorFastOpen(e)},{keys:[["Enter"],["Enter","Shift"]],callback:(e,t)=>o.editorOpen(e,t)},{keys:[["Backspace"],["Delete"]],callback:()=>o.emptySelectedCells()}],{group:dq,runOnlyIf:()=>eP(e.getSelected())}),t.addShortcuts([{keys:[["Control/Meta","A"]],callback:()=>o.selectAllCells(),runOnlyIf:()=>eP(e.getSelected())&&!e.getSelectedRangeActive()?.highlight.isHeader()},{keys:[["Control/Meta","A"]],callback:()=>{},runOnlyIf:()=>!!(eP(e.getSelected())&&e.getSelectedRangeActive()?.highlight.isHeader()),preventDefault:!0},{keys:[["Control/Meta","Shift","Space"]],callback:()=>o.selectAllCellsAndHeaders()},{keys:[["Control/Meta","Enter"]],callback:()=>o.populateSelectedCellsData(),runOnlyIf:()=>eP(e.getSelected())&&!e.getSelectedRangeActive()?.highlight.isHeader()&&(e.getSelectedRangeActive()?.getCellsCount()??0)>1},{keys:[["Control","Space"]],captureCtrl:!0,callback:()=>o.extendCellsSelectionToColumns()},{keys:[["Shift","Space"]],stopPropagation:!0,callback:()=>o.extendCellsSelectionToRows()},{keys:[["ArrowUp"]],callback:()=>o.moveCellSelectionUp()},{keys:[["ArrowUp","Control/Meta"]],captureCtrl:!0,callback:()=>o.moveCellSelectionToMostTop()},{keys:[["ArrowUp","Shift"]],callback:()=>o.extendCellsSelectionUp()},{keys:[["ArrowUp","Shift","Control/Meta"]],captureCtrl:!0,callback:()=>o.extendCellsSelectionToMostTop(),runOnlyIf:()=>eP(e.getSelected())&&!(e.selection.isSelectedByCorner()||e.selection.isSelectedByColumnHeader())},{keys:[["ArrowDown"]],callback:()=>o.moveCellSelectionDown()},{keys:[["ArrowDown","Control/Meta"]],captureCtrl:!0,callback:()=>o.moveCellSelectionToMostBottom()},{keys:[["ArrowDown","Shift"]],callback:()=>o.extendCellsSelectionDown()},{keys:[["ArrowDown","Shift","Control/Meta"]],captureCtrl:!0,callback:()=>o.extendCellsSelectionToMostBottom(),runOnlyIf:()=>eP(e.getSelected())&&!(e.selection.isSelectedByCorner()||e.selection.isSelectedByColumnHeader())},{keys:[["ArrowLeft"]],callback:()=>o.moveCellSelectionLeft()},{keys:[["ArrowLeft","Control/Meta"]],captureCtrl:!0,callback:()=>o.moveCellSelectionToMostLeft()},{keys:[["ArrowLeft","Shift"]],callback:()=>o.extendCellsSelectionLeft()},{keys:[["ArrowLeft","Shift","Control/Meta"]],captureCtrl:!0,callback:()=>o.extendCellsSelectionToMostLeft(),runOnlyIf:()=>eP(e.getSelected())&&!(e.selection.isSelectedByCorner()||e.selection.isSelectedByRowHeader())},{keys:[["ArrowRight"]],callback:()=>o.moveCellSelectionRight()},{keys:[["ArrowRight","Control/Meta"]],captureCtrl:!0,callback:()=>o.moveCellSelectionToMostRight()},{keys:[["ArrowRight","Shift"]],callback:()=>o.extendCellsSelectionRight()},{keys:[["ArrowRight","Shift","Control/Meta"]],captureCtrl:!0,callback:()=>o.extendCellsSelectionToMostRight(),runOnlyIf:()=>eP(e.getSelected())&&!(e.selection.isSelectedByCorner()||e.selection.isSelectedByRowHeader())},{keys:[["Home"]],captureCtrl:!0,callback:()=>o.moveCellSelectionToMostInlineStart(),runOnlyIf:()=>eP(e.getSelected())&&e.view.isMainTableNotFullyCoveredByOverlays()},{keys:[["Home","Shift"]],callback:()=>o.extendCellsSelectionToMostInlineStart()},{keys:[["Home","Control/Meta"]],captureCtrl:!0,callback:()=>o.moveCellSelectionToMostTopInlineStart(),runOnlyIf:()=>eP(e.getSelected())&&e.view.isMainTableNotFullyCoveredByOverlays()},{keys:[["End"]],captureCtrl:!0,callback:()=>o.moveCellSelectionToMostInlineEnd(),runOnlyIf:()=>eP(e.getSelected())&&e.view.isMainTableNotFullyCoveredByOverlays()},{keys:[["End","Shift"]],callback:()=>o.extendCellsSelectionToMostInlineEnd()},{keys:[["End","Control/Meta"]],captureCtrl:!0,callback:()=>o.moveCellSelectionToMostBottomInlineEnd(),runOnlyIf:()=>eP(e.getSelected())&&e.view.isMainTableNotFullyCoveredByOverlays()},{keys:[["PageUp"]],callback:()=>o.moveCellSelectionUpByViewportHight()},{keys:[["PageUp","Shift"]],callback:()=>o.extendCellsSelectionUpByViewportHeight()},{keys:[["PageDown"]],callback:()=>o.moveCellSelectionDownByViewportHeight()},{keys:[["PageDown","Shift"]],callback:()=>o.extendCellsSelectionDownByViewportHeight()},{keys:[["Tab"]],preventDefault:!1,callback:e=>o.moveCellSelectionInlineStart(e)},{keys:[["Shift","Tab"]],preventDefault:!1,callback:e=>o.moveCellSelectionInlineEnd(e)},{keys:[["Control/Meta","Backspace"]],callback:()=>o.scrollToFocusedCell()}],{runOnlyIf:()=>{let{navigableHeaders:t}=e.getSettings();return eP(e.getSelected())&&(t||!t&&e.countRenderedRows()>0&&e.countRenderedCols()>0)},group:dU});let n=o.tabNavigation();t.addShortcuts([{keys:[["Tab"],["Shift","Tab"]],preventDefault:!1,stopPropagation:!1,relativeToGroup:dU,group:dG,position:"before",callback:e=>n.before(e)},{keys:[["Tab"],["Shift","Tab"]],preventDefault:!1,stopPropagation:!1,relativeToGroup:dU,group:dG,callback:e=>n.after(e),position:"after"}])}function ct(e){let{classNames:t}=oo(e,/ht-theme-[a-zA-Z0-9_-]+/);return t.pop()}let co="handsontable-core-styles";class cn{#oX;#nt;#no;#nn=null;#ni=!1;#nr;#nl={};#ns={};#na;constructor({hot:e,rootElement:t,rootDocument:o,onThemeChange:n=e=>{},injectCoreCss:i=!0}){this.#oX=e,this.#no=t,this.#nr=o,this.#na=n,i&&this.#nh()}getCSSVariableValue(e){if(this.#nl[`--ht-${e}`])return this.#nl[`--ht-${e}`];let t=this.#nd(`--ht-${e}`)??this.#nc(`--ht-${e}`);if(null!==t)return this.#nl[`--ht-${e}`]=t,t}getStyleForTD(e){return this.#ns?.td?.[e]}getDefaultRowHeight(e){let t=this.#nu();return void 0!==e&&e===this.#oX.view.getFirstRenderedVisibleRow()?(t??0)+1:t}areCellsBorderBox(){return"border-box"===this.getStyleForTD("box-sizing")}useTheme(e){"string"==typeof e&&/ht-theme-.*/.test(e)?(this.#ng(),e!==this.#nt&&(this.#nt=e),this.#na(this.#nt),this.#np()):tZ(`${e} isn't a valid theme name. Please ensure it follows the format ht-theme-<theme-name>.`)}getThemeName(){return this.#nt}#nh(){if(!this.#oX||!this.#nr||!this.#nr.head)return;let e=this.#nr.getElementById(co);if(e&&e instanceof HTMLStyleElement)return;let t=this.#nr.createElement("style");t.id=co,t.textContent='/*!\n * Copyright (c) HANDSONCODE sp. z o. o.\n *\n * HANDSONTABLE is a software distributed by HANDSONCODE sp. z o. o., a Polish corporation based in\n * Gdynia, Poland, at Aleja Zwyciestwa 96-98, registered by the District Court in Gdansk under number\n * 538651, EU tax ID number: PL5862294002, share capital: PLN 67,200.00.\n *\n * This software is protected by applicable copyright laws, including international treaties, and dual-\n * licensed - depending on whether your use for commercial purposes, meaning intended for or\n * resulting in commercial advantage or monetary compensation, or not.\n *\n * If your use is strictly personal or solely for evaluation purposes, meaning for the purposes of testing\n * the suitability, performance, and usefulness of this software outside the production environment,\n * you agree to be bound by the terms included in the "handsontable-non-commercial-license.pdf" file.\n *\n * Your use of this software for commercial purposes is subject to the terms included in an applicable\n * license agreement.\n *\n * In any case, you must not make any such use of this software as to develop software which may be\n * considered competitive with this software.\n *\n * UNLESS EXPRESSLY AGREED OTHERWISE, HANDSONCODE PROVIDES THIS SOFTWARE ON AN "AS IS"\n * BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, AND IN NO EVENT AND UNDER NO\n * LEGAL THEORY, SHALL HANDSONCODE BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY DIRECT,\n * INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES OF ANY CHARACTER ARISING FROM\n * USE OR INABILITY TO USE THIS SOFTWARE.\n *\n * Version: 18.1.0\n * Release date: 01/09/2026 (built at 01/09/2026 11:40:23)\n */\n.ht-root-wrapper{font-family:var(--ht-font-family),-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;flex-direction:column;height:100%;display:flex;position:relative}.ht-root-wrapper.ht-shadow-dom{isolation:isolate}.ht-root-wrapper.ht-slot-bottom-filled .ht-wrapper:not(.htHorizontallyScrollableByWindow) .ht_master .wtHolder,.ht-root-wrapper.ht-slot-bottom-filled .ht-wrapper:not(.htVerticallyScrollableByWindow) .ht_master .wtHolder,.ht-root-wrapper.ht-slot-top-filled .ht-wrapper:not(.htHorizontallyScrollableByWindow) .ht_master .wtHolder,.ht-root-wrapper.ht-slot-top-filled .ht-wrapper:not(.htVerticallyScrollableByWindow) .ht_master .wtHolder{background-color:var(--ht-background-color);box-shadow:inset 0 0 0 1px var(--ht-border-color)}.htFocusCatcher{opacity:0;z-index:-1;border:0;outline:0;width:0;height:0;margin:0;padding:0;position:absolute;display:block!important}.ht-grid{flex:auto;min-height:0;position:relative}.ht-grid-content{height:100%}.ht-slot-top,.ht-slot-bottom{flex:none;overflow-x:auto}.ht-slot-element{box-sizing:border-box;border:1px solid var(--ht-border-color);width:100%}.ht-slot-top>.ht-slot-element:not(:first-of-type){border-top-width:0}.ht-slot-top>.ht-slot-element:last-of-type,.ht-slot-bottom>.ht-slot-element:not(:last-of-type){border-bottom-width:0}.ht-slot-bottom>.ht-slot-element:first-of-type{border-top-width:0}.htScrollbarTest{scrollbar-width:auto;scrollbar-color:var(--ht-scrollbar-thumb-color)var(--ht-scrollbar-track-color)}.htScrollbarSafariTest::-webkit-scrollbar{width:9px;height:9px}.handsontable{font-family:var(--ht-font-family),-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;font-size:var(--ht-font-size);line-height:var(--ht-line-height);font-weight:var(--ht-font-weight);letter-spacing:var(--ht-letter-spacing);color:var(--ht-foreground-color);touch-action:manipulation;position:relative}.handsontable .wtHolder{scrollbar-width:auto;scrollbar-color:var(--ht-scrollbar-thumb-color)var(--ht-scrollbar-track-color)}.handsontable .wtHolder::-webkit-scrollbar{width:9px;height:9px}.handsontable .wtHolder::-webkit-scrollbar-track{background:var(--ht-scrollbar-track-color);border-radius:var(--ht-scrollbar-border-radius)}.handsontable .wtHolder::-webkit-scrollbar-thumb{background-color:var(--ht-scrollbar-thumb-color);border-radius:var(--ht-scrollbar-border-radius)}.handsontable .wtHolder::-webkit-scrollbar-corner{background:var(--ht-scrollbar-track-color)}.handsontable .wtHolder:not(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi))::-webkit-scrollbar-corner{border-bottom-right-radius:var(--ht-scrollbar-border-radius)}.handsontable .wtHolder:is(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi))::-webkit-scrollbar-corner{border-bottom-left-radius:var(--ht-scrollbar-border-radius)}.handsontable.ht-wrapper{width:100%;height:100%}.handsontable.ht-wrapper:not(.htFirstDatasetColumnNotRendered) :where(table.htCore>tbody>tr,.htGhostTable>table>tbody>tr)>td:first-of-type{border-inline-start-width:1px}.handsontable.htGhostTable.htNestedHeaders table{border-spacing:0;border-collapse:collapse}.handsontable.htGhostTable table thead th{border-bottom-width:0}.handsontable.htGhostTable table tbody tr:first-of-type th:first-child,.handsontable.htGhostTable table tbody tr:first-of-type td:first-child{height:calc(var(--ht-cell-vertical-padding)*2 + var(--ht-line-height) + 1px)}.handsontable.htGhostTable table tbody tr th,.handsontable.htGhostTable table tbody tr td{height:calc(var(--ht-cell-vertical-padding)*2 + var(--ht-line-height) + 1px);border-top-width:0}.handsontable:not(.htHorizontallyScrollableByWindow).htHasScrollX .ht_master .wtHolder,.handsontable:not(.htHorizontallyScrollableByWindow).htHasScrollY .ht_master .wtHolder,.handsontable:not(.htVerticallyScrollableByWindow).htHasScrollX .ht_master .wtHolder,.handsontable:not(.htVerticallyScrollableByWindow).htHasScrollY .ht_master .wtHolder{background-color:var(--ht-background-color);box-shadow:inset 0 0 0 1px var(--ht-border-color)}.handsontable :where(table.htCore>tbody,.htGhostTable>table>tbody)>tr.ht__row_even>th{background-color:var(--ht-row-header-even-background-color)}.handsontable :where(table.htCore>tbody,.htGhostTable>table>tbody)>tr.ht__row_even>td{background-color:var(--ht-row-cell-even-background-color)}.handsontable :where(table.htCore>tbody,.htGhostTable>table>tbody)>tr.ht__row_odd>th{background-color:var(--ht-row-header-odd-background-color)}.handsontable :where(table.htCore>tbody,.htGhostTable>table>tbody)>tr.ht__row_odd>td{background-color:var(--ht-row-cell-odd-background-color)}.handsontable :where(table.htCore>thead>tr,.htGhostTable>table>thead>tr,table.htCore>tbody>tr,.htGhostTable>table>tbody>tr)>th,.handsontable :where(table.htCore>tbody>tr,.htGhostTable>table>tbody>tr)>td{height:calc(var(--ht-cell-vertical-padding)*2 + var(--ht-line-height) + 1px);padding:var(--ht-cell-vertical-padding)var(--ht-cell-horizontal-padding);vertical-align:top;border-top-width:0;border-inline-width:0 1px;font-size:var(--ht-font-size);line-height:var(--ht-line-height);white-space:pre-wrap;empty-cells:show;box-sizing:border-box;color:var(--ht-foreground-color);border-style:solid;border-bottom-width:1px;border-top-color:var(--ht-cell-vertical-border-color);border-bottom-color:var(--ht-cell-vertical-border-color);border-inline-start-color:var(--ht-cell-horizontal-border-color);border-inline-end-color:var(--ht-cell-horizontal-border-color);outline:0;overflow:hidden}.handsontable :where(table.htCore>thead>tr,.htGhostTable>table>thead>tr,table.htCore>tbody>tr,.htGhostTable>table>tbody>tr)>th.invisibleSelection,.handsontable :where(table.htCore>tbody>tr,.htGhostTable>table>tbody>tr)>td.invisibleSelection{outline:none}.handsontable :where(table.htCore>thead>tr,.htGhostTable>table>thead>tr,table.htCore>tbody>tr,.htGhostTable>table>tbody>tr)>th.invisibleSelection::selection,.handsontable :where(table.htCore>tbody>tr,.htGhostTable>table>tbody>tr)>td.invisibleSelection::selection{background:0 0}.handsontable :where(table.htCore>thead>tr,.htGhostTable>table>thead>tr,table.htCore>tbody>tr,.htGhostTable>table>tbody>tr)>th{text-align:center;font-weight:var(--ht-header-font-weight);white-space:nowrap;color:var(--ht-header-foreground-color);background-color:var(--ht-header-background-color);position:relative;overflow:visible}.handsontable :where(table.htCore>thead>tr,.htGhostTable>table>thead>tr,table.htCore>tbody>tr,.htGhostTable>table>tbody>tr)>th:last-child{border-inline-width:0 1px;border-bottom-width:1px;border-inline-end-color:var(--ht-border-color)}.handsontable :where(table.htCore>thead>tr,.htGhostTable>table>thead>tr,table.htCore>tbody>tr,.htGhostTable>table>tbody>tr)>th:last-child.ht__active_highlight{border-inline-end-color:var(--ht-header-active-border-color)}.handsontable :where(table.htCore>thead>tr,.htGhostTable>table>thead>tr,table.htCore>tbody>tr,.htGhostTable>table>tbody>tr)>th:first-child{border-inline-start-color:var(--ht-border-color)}.handsontable :where(table.htCore>thead>tr,.htGhostTable>table>thead>tr,table.htCore>tbody>tr,.htGhostTable>table>tbody>tr)>th:first-child.ht__active_highlight{border-inline-start-color:var(--ht-header-active-border-color)}.handsontable :where(table.htCore>thead>tr,.htGhostTable>table>thead>tr,table.htCore>tbody>tr,.htGhostTable>table>tbody>tr)>th:first-child,.handsontable :where(table.htCore>thead>tr,.htGhostTable>table>thead>tr,table.htCore>tbody>tr,.htGhostTable>table>tbody>tr)>th:nth-child(2){border-inline-start-width:1px}.handsontable :where(table.htCore>thead>tr,.htGhostTable>table>thead>tr,table.htCore>tbody>tr,.htGhostTable>table>tbody>tr)>th.current{box-shadow:inset 0 0 0 1px var(--ht-cell-selection-border-color)}.handsontable :where(table.htCore>thead>tr,.htGhostTable>table>thead>tr,table.htCore>tbody>tr,.htGhostTable>table>tbody>tr)>th.active{color:var(--ht-header-active-foreground-color);background-color:var(--ht-header-active-background-color)}.handsontable :where(table.htCore>thead>tr,.htGhostTable>table>thead>tr,table.htCore>tbody>tr,.htGhostTable>table>tbody>tr)>th.ht__highlight{color:var(--ht-header-highlighted-foreground-color);background-color:var(--ht-header-highlighted-background-color)}.handsontable :where(table.htCore>thead>tr,.htGhostTable>table>thead>tr,table.htCore>tbody>tr,.htGhostTable>table>tbody>tr)>th.ht__active_highlight{border-color:var(--ht-header-active-border-color);color:var(--ht-header-active-foreground-color);background-color:var(--ht-header-active-background-color)}.handsontable :where(table.htCore>thead>tr,.htGhostTable>table>thead>tr,table.htCore>tbody>tr,.htGhostTable>table>tbody>tr)>th.ht__active_highlight-prev,.handsontable :where(table.htCore>thead>tr,.htGhostTable>table>thead>tr,table.htCore>tbody>tr,.htGhostTable>table>tbody>tr)>th.ht__active_highlight-seam{border-inline-end-color:var(--ht-header-active-border-color)}.handsontable :where(table.htCore,.htGhostTable>table)>tbody>tr.ht__row_odd>th.ht__highlight,.handsontable :where(table.htCore,.htGhostTable>table)>tbody>tr.ht__row_even>th.ht__highlight{color:var(--ht-header-row-highlighted-foreground-color);background-color:var(--ht-header-row-highlighted-background-color)}.handsontable :where(table.htCore,.htGhostTable>table)>tbody>tr.ht__row_odd>th.ht__active_highlight,.handsontable :where(table.htCore,.htGhostTable>table)>tbody>tr.ht__row_even>th.ht__active_highlight{color:var(--ht-header-row-active-foreground-color);background-color:var(--ht-header-row-active-background-color)}.handsontable :where(table.htCore,.htGhostTable>table)>tbody>tr:first-of-type>th:first-child:empty:after,.handsontable :where(table.htCore,.htGhostTable>table)>tbody>tr:first-of-type>td:first-child:empty:after{content:"";min-height:var(--ht-line-height);display:block}.handsontable :where(table.htCore,.htGhostTable>table)>tbody>tr>th{color:var(--ht-header-row-foreground-color);background-color:var(--ht-header-row-background-color);padding:0}.handsontable :where(table.htCore,.htGhostTable>table)>tbody>tr>th .relative{padding:var(--ht-cell-vertical-padding)var(--ht-cell-horizontal-padding);min-height:100%}.handsontable :where(table.htCore,.htGhostTable>table)>tbody>tr>td:first-child{border-inline-start-color:var(--ht-border-color)}.handsontable :where(table.htCore,.htGhostTable>table)>tbody>tr>td:last-child{border-inline-end-color:var(--ht-border-color)}.handsontable :where(table.htCore,.htGhostTable>table)>tbody>tr>th.ht__active_highlight-prev-row{border-bottom-color:var(--ht-header-active-border-color)}.handsontable :where(table.htCore,.htGhostTable>table)>thead>tr>th{padding:0}.handsontable :where(table.htCore,.htGhostTable>table)>thead>tr>th.ht__active_highlight{box-shadow:-1px 0 0 0 var(--ht-header-active-border-color)}.handsontable :where(table.htCore,.htGhostTable>table)>thead>tr>th .relative{padding:var(--ht-cell-vertical-padding)var(--ht-cell-horizontal-padding);flex-direction:row;align-items:center;gap:2px;display:flex}.handsontable :where(table.htCore,.htGhostTable>table)>thead>tr>th .relative .colHeader{text-overflow:ellipsis;vertical-align:top;flex:auto;min-width:0;overflow:hidden}.handsontable :where(table.htCore>thead,table.htCore>tbody,.htGhostTable>table>thead,.htGhostTable>table>tbody)>tr:first-child>th,.handsontable :where(table.htCore>thead,table.htCore>tbody,.htGhostTable>table>thead,.htGhostTable>table>tbody)>tr:first-child>td{border-top-color:var(--ht-border-color);border-top-width:1px}.handsontable :where(table.htCore>thead,table.htCore>tbody,.htGhostTable>table>thead,.htGhostTable>table>tbody)>tr:first-child>th.ht__active_highlight,.handsontable :where(table.htCore>thead,table.htCore>tbody,.htGhostTable>table>thead,.htGhostTable>table>tbody)>tr:first-child>th.ht__active_highlight-row-seam-bottom,.handsontable :where(table.htCore>thead,table.htCore>tbody,.htGhostTable>table>thead,.htGhostTable>table>tbody)>tr:first-child>td.ht__active_highlight,.handsontable :where(table.htCore>thead,table.htCore>tbody,.htGhostTable>table>thead,.htGhostTable>table>tbody)>tr:first-child>td.ht__active_highlight-row-seam-bottom{border-top-color:var(--ht-header-active-border-color)}.handsontable :where(table.htCore>thead,table.htCore>tbody,.htGhostTable>table>thead,.htGhostTable>table>tbody)>tr:last-child>th,.handsontable :where(table.htCore>thead,table.htCore>tbody,.htGhostTable>table>thead,.htGhostTable>table>tbody)>tr:last-child>td{border-bottom-color:var(--ht-border-color)}.handsontable :where(table.htCore>thead,table.htCore>tbody,.htGhostTable>table>thead,.htGhostTable>table>tbody)>tr:last-child>th.ht__active_highlight,.handsontable :where(table.htCore>thead,table.htCore>tbody,.htGhostTable>table>thead,.htGhostTable>table>tbody)>tr:last-child>th.ht__active_highlight-row-seam-top,.handsontable :where(table.htCore>thead,table.htCore>tbody,.htGhostTable>table>thead,.htGhostTable>table>tbody)>tr:last-child>td.ht__active_highlight,.handsontable :where(table.htCore>thead,table.htCore>tbody,.htGhostTable>table>thead,.htGhostTable>table>tbody)>tr:last-child>td.ht__active_highlight-row-seam-top{border-bottom-color:var(--ht-header-active-border-color)}.handsontable div[class^=ht_clone] thead .ht__highlight .relative:after{content:"";height:var(--ht-header-highlighted-shadow-size);background-color:var(--ht-accent-color);display:block;position:absolute;bottom:-1px;left:-1px;right:-1px}.handsontable div[class^=ht_clone] thead tr:only-of-type .ht__highlight .relative:after{bottom:0}.handsontable div[class^=ht_clone] tbody .ht__highlight .relative:after{content:"";width:var(--ht-header-highlighted-shadow-size);background-color:var(--ht-accent-color);display:block;position:absolute;top:-1px;bottom:-1px;right:-1px}.handsontable div[class^=ht_clone] :where(table.htCore>tbody>tr,.htGhostTable>table>tbody>tr)>td:first-of-type{border-inline-start-width:1px}.handsontable :where(table.htCore,.htGhostTable>table)>thead>tr:not(:last-child)>th{overflow:hidden}.handsontable .hide{display:none}.handsontable .relative{box-sizing:border-box;position:relative}.handsontable .wtHider{width:0}.handsontable .wtSpreader{width:0;height:auto;position:relative}.handsontable .htAutoSize{visibility:hidden;position:absolute;top:-99000px;left:-99000px}.handsontable .htTextEllipsis{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.handsontable table.htCore,.handsontable:where(.htGhostTable)>table,.handsontable :where(table.htCore,.htGhostTable>table)>thead,.handsontable :where(table.htCore,.htGhostTable>table)>tbody,.handsontable input:not(:where(table.htCore>tbody>tr>td:not(.htCustomMenuRenderer) :not(.htCheckboxRendererInput),.htGhostTable>table>tbody>tr>td:not(.htCustomMenuRenderer) :not(.htCheckboxRendererInput))),.handsontable textarea:not(:where(table.htCore>tbody>tr>td:not(.htCustomMenuRenderer) :not(.htCheckboxRendererInput),.htGhostTable>table>tbody>tr>td:not(.htCustomMenuRenderer) :not(.htCheckboxRendererInput))),.handsontable div:not(:where(table.htCore>tbody>tr>td:not(.htCustomMenuRenderer) :not(.htCheckboxRendererInput),.htGhostTable>table>tbody>tr>td:not(.htCustomMenuRenderer) :not(.htCheckboxRendererInput))){box-sizing:content-box}.handsontable input:not(:where(table.htCore>tbody>tr>td:not(.htCustomMenuRenderer) :not(.htCheckboxRendererInput),.htGhostTable>table>tbody>tr>td:not(.htCustomMenuRenderer) :not(.htCheckboxRendererInput))),.handsontable textarea:not(:where(table.htCore>tbody>tr>td:not(.htCustomMenuRenderer) :not(.htCheckboxRendererInput),.htGhostTable>table>tbody>tr>td:not(.htCustomMenuRenderer) :not(.htCheckboxRendererInput))){min-height:initial}.handsontable .htCore{border-spacing:0;border-collapse:separate;table-layout:fixed;cursor:default;background-color:var(--ht-background-color);border-width:0;outline-width:0;width:0;margin:0}.handsontable :where(table.htCore,.htGhostTable>table)>colgroup>col,.handsontable :where(table.htCore,.htGhostTable>table)>colgroup>col.rowHeader{width:64px}.handsontable :where(table.htCore,.htGhostTable>table)>colgroup>col.hidden{width:0!important}.handsontable span.colHeader,.handsontable span.rowHeader{font-size:var(--ht-font-size);line-height:var(--ht-line-height);display:inline-block}.handsontable :where(table.htCore>thead,table.htCore>tbody,.htGhostTable>table>thead,.htGhostTable>table>tbody)>tr.hidden,.handsontable :where(table.htCore>thead,table.htCore>tbody,.htGhostTable>table>thead,.htGhostTable>table>tbody)>tr.hidden>td,.handsontable :where(table.htCore>thead,table.htCore>tbody,.htGhostTable>table>thead,.htGhostTable>table>tbody)>tr.hidden>th{display:none}.handsontable a:not(:where(table.htCore>tbody>tr>td:not(.htCustomMenuRenderer) :not(.htCheckboxRendererInput),.htGhostTable>table>tbody>tr>td:not(.htCustomMenuRenderer) :not(.htCheckboxRendererInput))){color:var(--ht-link-color)}.handsontable a:not(:where(table.htCore>tbody>tr>td:not(.htCustomMenuRenderer) :not(.htCheckboxRendererInput),.htGhostTable>table>tbody>tr>td:not(.htCustomMenuRenderer) :not(.htCheckboxRendererInput))):hover{color:var(--ht-link-hover-color)}.handsontable .ht_clone_top :where(table.htCore>thead>tr)>th:nth-child(2),.handsontable .ht_clone_top_inline_start_corner :where(table.htCore>thead>tr)>th:nth-child(2){border-inline-width:0 1px}.handsontable.htRowHeaders :where(table.htCore)>thead>tr>th:nth-child(2){border-inline-start-width:1px}.handsontable .ht_master:not(.innerBorderInlineStart):not(.emptyColumns) :where(table.htCore)>tbody>tr>th,.handsontable .ht_master:not(.innerBorderInlineStart):not(.emptyColumns) :where(table.htCore)>thead>tr>th:first-child,.handsontable .ht_master:not(.innerBorderInlineStart):not(.emptyColumns)~.handsontable:not(.htGhostTable) :where(table.htCore)>tbody>tr>th,.handsontable .ht_master:not(.innerBorderInlineStart):not(.emptyColumns)~.handsontable:not(.ht_clone_top):not(.htGhostTable) :where(table.htCore)>thead>tr>th:first-child{border-inline-width:1px 0}.handsontable .ht_master:not(.innerBorderTop):not(.innerBorderBottom) :where(table.htCore)>thead>tr:last-child>th,.handsontable .ht_master:not(.innerBorderTop):not(.innerBorderBottom)~.handsontable :where(table.htCore)>thead>tr:last-child>th,.handsontable .ht_master:not(.innerBorderTop):not(.innerBorderBottom) :where(table.htCore)>thead>tr.lastChild>th,.handsontable .ht_master:not(.innerBorderTop):not(.innerBorderBottom)~.handsontable :where(table.htCore)>thead>tr.lastChild>th{border-bottom-width:0}.handsontable.htAutoRowSize .ht_master.innerBorderTop :where(table.htCore)>tbody>tr:first-child>th,.handsontable.htAutoRowSize .ht_master.innerBorderTop :where(table.htCore)>tbody>tr:first-child>td,.handsontable.htAutoRowSize .ht_master.innerBorderTop~.ht_clone_inline_start :where(table.htCore)>tbody>tr:first-child>th,.handsontable.htAutoRowSize .ht_master.innerBorderTop~.ht_clone_inline_start :where(table.htCore)>tbody>tr:first-child>td{border-top-width:0}.handsontable .ht_master table.htCore>thead,.handsontable .ht_master table.htCore>tbody>tr>th,.handsontable .ht_clone_inline_start table.htCore>thead{visibility:hidden}.ht_master,.ht_clone_inline_start,.ht_clone_top,.ht_clone_bottom,.ht_master .wtHolder,.ht_clone_inline_start .wtHolder,.ht_clone_top .wtHolder,.ht_clone_bottom .wtHolder{overflow:hidden}.ht_master .wtHolder{overflow:auto}[dir=rtl].handsontable :where(table.htCore>tbody>tr,.htGhostTable>table>tbody>tr)>td[dir=ltr]{border-inline-width:1px 0}[dir=rtl].handsontable :where(table.htCore,.htGhostTable>table)>tbody>tr>td[dir=ltr]:last-child{border-inline-start-color:var(--ht-border-color)}[dir=rtl].handsontable div[class^=ht_clone] tbody .ht__highlight .relative:after{left:-1px;right:auto}.handsontable.ht-wrapper{border-radius:var(--ht-border-radius)}.handsontable.ht-wrapper:not(.htColumnHeaders) .ht_master .htCore>tbody>tr:first-child>td:first-child:not(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)){border-top-left-radius:var(--ht-border-radius)}.handsontable.ht-wrapper:not(.htColumnHeaders) .ht_master .htCore>tbody>tr:first-child>td:first-child:is(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)){border-top-right-radius:var(--ht-border-radius)}.handsontable.ht-wrapper:not(.htColumnHeaders) .ht_master .htCore>tbody>tr:first-child>td:last-child:not(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)){border-top-right-radius:var(--ht-border-radius)}.handsontable.ht-wrapper:not(.htColumnHeaders) .ht_master .htCore>tbody>tr:first-child>td:last-child:is(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)){border-top-left-radius:var(--ht-border-radius)}.handsontable.ht-wrapper:not(.htColumnHeaders) .ht_clone_top_inline_start_corner .htCore>tbody>tr:first-child>td:first-child:not(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)){border-top-left-radius:var(--ht-border-radius)}.handsontable.ht-wrapper:not(.htColumnHeaders) .ht_clone_top_inline_start_corner .htCore>tbody>tr:first-child>td:first-child:is(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)){border-top-right-radius:var(--ht-border-radius)}.handsontable.ht-wrapper:not(.htColumnHeaders) .ht_clone_top .htCore>tbody>tr:first-child>td:first-child:not(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)){border-top-left-radius:var(--ht-border-radius)}.handsontable.ht-wrapper:not(.htColumnHeaders) .ht_clone_top .htCore>tbody>tr:first-child>td:first-child:is(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)){border-top-right-radius:var(--ht-border-radius)}.handsontable.ht-wrapper:not(.htColumnHeaders) .ht_clone_top .htCore>tbody>tr:first-child>td:last-child:not(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)){border-top-right-radius:var(--ht-border-radius)}.handsontable.ht-wrapper:not(.htColumnHeaders) .ht_clone_top .htCore>tbody>tr:first-child>td:last-child:is(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)){border-top-left-radius:var(--ht-border-radius)}:is(.handsontable.ht-wrapper:not(.htColumnHeaders) .ht_clone_inline_start .htCore>tbody>tr:first-child>th:first-child:not(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)),.handsontable.ht-wrapper:not(.htColumnHeaders) .ht_clone_inline_start .htCore>tbody>tr:first-child>td:first-child:not(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi))){border-top-left-radius:var(--ht-border-radius)}:is(.handsontable.ht-wrapper:not(.htColumnHeaders) .ht_clone_inline_start .htCore>tbody>tr:first-child>th:first-child:is(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)),.handsontable.ht-wrapper:not(.htColumnHeaders) .ht_clone_inline_start .htCore>tbody>tr:first-child>td:first-child:is(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi))){border-top-right-radius:var(--ht-border-radius)}.handsontable.ht-wrapper .ht_master .wtHolder,.handsontable.ht-wrapper .ht_master .htCore{border-radius:var(--ht-border-radius)}.handsontable.ht-wrapper .ht_master .htCore>thead>tr:first-child>th:first-child:not(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)){border-top-left-radius:var(--ht-border-radius)}.handsontable.ht-wrapper .ht_master .htCore>thead>tr:first-child>th:first-child:is(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)){border-top-right-radius:var(--ht-border-radius)}.handsontable.ht-wrapper .ht_master .htCore>thead>tr:first-child>th:not(.hiddenHeader).htLastVisibleHeader:not(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)){border-top-right-radius:var(--ht-border-radius)}.handsontable.ht-wrapper .ht_master .htCore>thead>tr:first-child>th:not(.hiddenHeader).htLastVisibleHeader:is(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)){border-top-left-radius:var(--ht-border-radius)}.handsontable.ht-wrapper .ht_master .htCore>thead>tr:last-child>th:first-child:not(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)){border-bottom-left-radius:var(--ht-border-radius)}.handsontable.ht-wrapper .ht_master .htCore>thead>tr:last-child>th:first-child:is(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)){border-bottom-right-radius:var(--ht-border-radius)}.handsontable.ht-wrapper .ht_master .htCore>thead>tr:last-child>th:not(.hiddenHeader).htLastVisibleHeader:not(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)){border-bottom-right-radius:var(--ht-border-radius)}.handsontable.ht-wrapper .ht_master .htCore>thead>tr:last-child>th:not(.hiddenHeader).htLastVisibleHeader:is(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)){border-bottom-left-radius:var(--ht-border-radius)}.handsontable.ht-wrapper .ht_master .htCore>tbody>tr:last-child>td:first-child:not(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)){border-bottom-left-radius:var(--ht-border-radius)}.handsontable.ht-wrapper .ht_master .htCore>tbody>tr:last-child>td:first-child:is(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)){border-bottom-right-radius:var(--ht-border-radius)}.handsontable.ht-wrapper .ht_master .htCore>tbody>tr:last-child>td:last-child:not(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)){border-bottom-right-radius:var(--ht-border-radius)}.handsontable.ht-wrapper .ht_master .htCore>tbody>tr:last-child>td:last-child:is(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)){border-bottom-left-radius:var(--ht-border-radius)}.handsontable.ht-wrapper .ht_clone_top_inline_start_corner .htCore:not(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)){border-top-left-radius:var(--ht-border-radius)}.handsontable.ht-wrapper .ht_clone_top_inline_start_corner .htCore:is(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)){border-top-right-radius:var(--ht-border-radius)}.handsontable.ht-wrapper .ht_clone_top_inline_start_corner .htCore>thead>tr:first-child>th:first-child:not(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)){border-top-left-radius:var(--ht-border-radius)}.handsontable.ht-wrapper .ht_clone_top_inline_start_corner .htCore>thead>tr:first-child>th:first-child:is(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)){border-top-right-radius:var(--ht-border-radius)}.handsontable.ht-wrapper .ht_clone_top .htCore:not(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)){border-top-left-radius:var(--ht-border-radius);border-top-right-radius:var(--ht-border-radius)}.handsontable.ht-wrapper .ht_clone_top .htCore:is(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)){border-top-right-radius:var(--ht-border-radius);border-top-left-radius:var(--ht-border-radius)}.handsontable.ht-wrapper .ht_clone_top .htCore>thead>tr:first-child>th:first-child:not(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)){border-top-left-radius:var(--ht-border-radius)}.handsontable.ht-wrapper .ht_clone_top .htCore>thead>tr:first-child>th:first-child:is(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)){border-top-right-radius:var(--ht-border-radius)}.handsontable.ht-wrapper .ht_clone_top .htCore>thead>tr:first-child>th:not(.hiddenHeader).htLastVisibleHeader:not(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)){border-top-right-radius:var(--ht-border-radius)}.handsontable.ht-wrapper .ht_clone_top .htCore>thead>tr:first-child>th:not(.hiddenHeader).htLastVisibleHeader:is(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)){border-top-left-radius:var(--ht-border-radius)}.handsontable.ht-wrapper .ht_clone_inline_start .htCore:not(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)){border-top-left-radius:var(--ht-border-radius);border-bottom-left-radius:var(--ht-border-radius)}.handsontable.ht-wrapper .ht_clone_inline_start .htCore:is(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)){border-top-right-radius:var(--ht-border-radius);border-bottom-right-radius:var(--ht-border-radius)}.handsontable.ht-wrapper .ht_clone_inline_start .htCore>thead>tr:first-child>th:first-child:not(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)){border-top-left-radius:var(--ht-border-radius)}.handsontable.ht-wrapper .ht_clone_inline_start .htCore>thead>tr:first-child>th:first-child:is(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)){border-top-right-radius:var(--ht-border-radius)}:is(.handsontable.ht-wrapper .ht_clone_inline_start .htCore>tbody>tr:last-child>th:first-child:not(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)),.handsontable.ht-wrapper .ht_clone_inline_start .htCore>tbody>tr:last-child>td:first-child:not(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi))){border-bottom-left-radius:var(--ht-border-radius)}:is(.handsontable.ht-wrapper .ht_clone_inline_start .htCore>tbody>tr:last-child>th:first-child:is(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)),.handsontable.ht-wrapper .ht_clone_inline_start .htCore>tbody>tr:last-child>td:first-child:is(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi))){border-bottom-right-radius:var(--ht-border-radius)}.handsontable.ht-wrapper .ht_clone_bottom_inline_start_corner .htCore:not(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)){border-bottom-left-radius:var(--ht-border-radius)}.handsontable.ht-wrapper .ht_clone_bottom_inline_start_corner .htCore:is(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)){border-bottom-right-radius:var(--ht-border-radius)}:is(.handsontable.ht-wrapper .ht_clone_bottom_inline_start_corner .htCore>:where(thead,tbody)>tr:last-child>th:first-child:not(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)),.handsontable.ht-wrapper .ht_clone_bottom_inline_start_corner .htCore>:where(thead,tbody)>tr:last-child>td:first-child:not(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi))){border-bottom-left-radius:var(--ht-border-radius)}:is(.handsontable.ht-wrapper .ht_clone_bottom_inline_start_corner .htCore>:where(thead,tbody)>tr:last-child>th:first-child:is(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)),.handsontable.ht-wrapper .ht_clone_bottom_inline_start_corner .htCore>:where(thead,tbody)>tr:last-child>td:first-child:is(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi))){border-bottom-right-radius:var(--ht-border-radius)}.handsontable.ht-wrapper .ht_clone_bottom .htCore:not(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)){border-bottom-right-radius:var(--ht-border-radius);border-bottom-left-radius:var(--ht-border-radius)}.handsontable.ht-wrapper .ht_clone_bottom .htCore:is(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)){border-bottom-left-radius:var(--ht-border-radius);border-bottom-right-radius:var(--ht-border-radius)}:is(.handsontable.ht-wrapper .ht_clone_bottom .htCore>:where(thead,tbody)>tr:last-child>th:first-child:not(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)),.handsontable.ht-wrapper .ht_clone_bottom .htCore>:where(thead,tbody)>tr:last-child>td:first-child:not(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi))){border-bottom-left-radius:var(--ht-border-radius)}:is(.handsontable.ht-wrapper .ht_clone_bottom .htCore>:where(thead,tbody)>tr:last-child>th:first-child:is(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)),.handsontable.ht-wrapper .ht_clone_bottom .htCore>:where(thead,tbody)>tr:last-child>td:first-child:is(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi))){border-bottom-right-radius:var(--ht-border-radius)}:is(.handsontable.ht-wrapper .ht_clone_bottom .htCore>:where(thead,tbody)>tr:last-child>th:last-child:not(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)),.handsontable.ht-wrapper .ht_clone_bottom .htCore>:where(thead,tbody)>tr:last-child>td:last-child:not(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi))){border-bottom-right-radius:var(--ht-border-radius)}:is(.handsontable.ht-wrapper .ht_clone_bottom .htCore>:where(thead,tbody)>tr:last-child>th:last-child:is(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)),.handsontable.ht-wrapper .ht_clone_bottom .htCore>:where(thead,tbody)>tr:last-child>td:last-child:is(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi))){border-bottom-left-radius:var(--ht-border-radius)}.handsontable.ht-wrapper.htHasScrollX:not(.htHorizontallyScrollableByWindow) .htCore:not(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)),.handsontable.ht-wrapper.htHasScrollX:not(.htHorizontallyScrollableByWindow) .htCore:is(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)){border-bottom-right-radius:0;border-bottom-left-radius:0}:is(.handsontable.ht-wrapper.htHasScrollX:not(.htHorizontallyScrollableByWindow) .htCore>thead>tr:last-child>th:first-child:not(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)),.handsontable.ht-wrapper.htHasScrollX:not(.htHorizontallyScrollableByWindow) .htCore>tbody>tr:last-child>td:first-child:not(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)),.handsontable.ht-wrapper.htHasScrollX:not(.htHorizontallyScrollableByWindow) .htCore>tbody>tr:last-child>th:first-child:not(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi))){border-bottom-left-radius:0}:is(.handsontable.ht-wrapper.htHasScrollX:not(.htHorizontallyScrollableByWindow) .htCore>thead>tr:last-child>th:first-child:is(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)),.handsontable.ht-wrapper.htHasScrollX:not(.htHorizontallyScrollableByWindow) .htCore>tbody>tr:last-child>td:first-child:is(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)),.handsontable.ht-wrapper.htHasScrollX:not(.htHorizontallyScrollableByWindow) .htCore>tbody>tr:last-child>th:first-child:is(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi))){border-bottom-right-radius:0}.handsontable.ht-wrapper.htHasScrollX:not(.htHorizontallyScrollableByWindow) .htCore>thead>tr:last-child>th:not(.hiddenHeader).htLastVisibleHeader:not(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)){border-bottom-right-radius:0}.handsontable.ht-wrapper.htHasScrollX:not(.htHorizontallyScrollableByWindow) .htCore>tbody>tr:last-child>td:last-child:not(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)){border-bottom-right-radius:0}.handsontable.ht-wrapper.htHasScrollX:not(.htHorizontallyScrollableByWindow) .htCore>tbody>tr:last-child>th:last-child:not(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)){border-bottom-right-radius:0}.handsontable.ht-wrapper.htHasScrollX:not(.htHorizontallyScrollableByWindow) .htCore>thead>tr:last-child>th:not(.hiddenHeader).htLastVisibleHeader:is(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)){border-bottom-left-radius:0}.handsontable.ht-wrapper.htHasScrollX:not(.htHorizontallyScrollableByWindow) .htCore>tbody>tr:last-child>td:last-child:is(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)){border-bottom-left-radius:0}.handsontable.ht-wrapper.htHasScrollX:not(.htHorizontallyScrollableByWindow) .htCore>tbody>tr:last-child>th:last-child:is(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)){border-bottom-left-radius:0}.handsontable.ht-wrapper.htHasScrollY:not(.htVerticallyScrollableByWindow) .htCore:not(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)){border-top-right-radius:0;border-bottom-right-radius:0}.handsontable.ht-wrapper.htHasScrollY:not(.htVerticallyScrollableByWindow) .htCore:is(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)){border-top-left-radius:0;border-bottom-left-radius:0}.handsontable.ht-wrapper.htHasScrollY:not(.htVerticallyScrollableByWindow) .htCore>thead>tr:first-child>th:not(.hiddenHeader).htLastVisibleHeader:not(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)){border-top-right-radius:0}.handsontable.ht-wrapper.htHasScrollY:not(.htVerticallyScrollableByWindow) .htCore>tbody>tr:first-child>td:last-child:not(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)){border-top-right-radius:0}.handsontable.ht-wrapper.htHasScrollY:not(.htVerticallyScrollableByWindow) .htCore>tbody>tr:first-child>th:last-child:not(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)){border-top-right-radius:0}.handsontable.ht-wrapper.htHasScrollY:not(.htVerticallyScrollableByWindow) .htCore>thead>tr:first-child>th:not(.hiddenHeader).htLastVisibleHeader:is(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)){border-top-left-radius:0}.handsontable.ht-wrapper.htHasScrollY:not(.htVerticallyScrollableByWindow) .htCore>tbody>tr:first-child>td:last-child:is(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)){border-top-left-radius:0}.handsontable.ht-wrapper.htHasScrollY:not(.htVerticallyScrollableByWindow) .htCore>tbody>tr:first-child>th:last-child:is(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)){border-top-left-radius:0}.handsontable.ht-wrapper.htHasScrollY:not(.htVerticallyScrollableByWindow) .htCore>thead>tr:last-child>th:not(.hiddenHeader).htLastVisibleHeader:not(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)){border-bottom-right-radius:0}.handsontable.ht-wrapper.htHasScrollY:not(.htVerticallyScrollableByWindow) .htCore>tbody>tr:last-child>td:last-child:not(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)){border-bottom-right-radius:0}.handsontable.ht-wrapper.htHasScrollY:not(.htVerticallyScrollableByWindow) .htCore>tbody>tr:last-child>th:last-child:not(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)){border-bottom-right-radius:0}.handsontable.ht-wrapper.htHasScrollY:not(.htVerticallyScrollableByWindow) .htCore>thead>tr:last-child>th:not(.hiddenHeader).htLastVisibleHeader:is(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)){border-bottom-left-radius:0}.handsontable.ht-wrapper.htHasScrollY:not(.htVerticallyScrollableByWindow) .htCore>tbody>tr:last-child>td:last-child:is(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)){border-bottom-left-radius:0}.handsontable.ht-wrapper.htHasScrollY:not(.htVerticallyScrollableByWindow) .htCore>tbody>tr:last-child>th:last-child:is(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)){border-bottom-left-radius:0}.ht-root-wrapper{border-radius:var(--ht-border-radius)}.ht-root-wrapper.ht-slot-bottom-filled .ht-wrapper:not(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)),.ht-root-wrapper.ht-slot-bottom-filled .ht_master .wtHolder:not(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)){border-bottom-right-radius:0;border-bottom-left-radius:0}.ht-root-wrapper.ht-slot-bottom-filled .ht-wrapper:is(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)){border-bottom-right-radius:0;border-bottom-left-radius:0}.ht-root-wrapper.ht-slot-bottom-filled .ht_master .wtHolder:is(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)){border-bottom-right-radius:0;border-bottom-left-radius:0}.ht-root-wrapper.ht-slot-bottom-filled .htCore:not(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)),.ht-root-wrapper.ht-slot-bottom-filled .htCore:is(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)){border-bottom-right-radius:0;border-bottom-left-radius:0}:is(.ht-root-wrapper.ht-slot-bottom-filled .htCore>thead>tr:last-child>th:first-child:not(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)),.ht-root-wrapper.ht-slot-bottom-filled .htCore>tbody>tr:last-child>td:first-child:not(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)),.ht-root-wrapper.ht-slot-bottom-filled .htCore>tbody>tr:last-child>th:first-child:not(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi))){border-bottom-left-radius:0}:is(.ht-root-wrapper.ht-slot-bottom-filled .htCore>thead>tr:last-child>th:first-child:is(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)),.ht-root-wrapper.ht-slot-bottom-filled .htCore>tbody>tr:last-child>td:first-child:is(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)),.ht-root-wrapper.ht-slot-bottom-filled .htCore>tbody>tr:last-child>th:first-child:is(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi))){border-bottom-right-radius:0}.ht-root-wrapper.ht-slot-bottom-filled .htCore>thead>tr:last-child>th:not(.hiddenHeader).htLastVisibleHeader:not(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)){border-bottom-right-radius:0}.ht-root-wrapper.ht-slot-bottom-filled .htCore>tbody>tr:last-child>td:last-child:not(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)){border-bottom-right-radius:0}.ht-root-wrapper.ht-slot-bottom-filled .htCore>tbody>tr:last-child>th:last-child:not(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)){border-bottom-right-radius:0}.ht-root-wrapper.ht-slot-bottom-filled .htCore>thead>tr:last-child>th:not(.hiddenHeader).htLastVisibleHeader:is(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)){border-bottom-left-radius:0}.ht-root-wrapper.ht-slot-bottom-filled .htCore>tbody>tr:last-child>td:last-child:is(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)){border-bottom-left-radius:0}.ht-root-wrapper.ht-slot-bottom-filled .htCore>tbody>tr:last-child>th:last-child:is(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)){border-bottom-left-radius:0}.ht-root-wrapper.ht-slot-top-filled .ht-wrapper:not(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)),.ht-root-wrapper.ht-slot-top-filled .ht_master .wtHolder:not(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)){border-top-left-radius:0;border-top-right-radius:0}.ht-root-wrapper.ht-slot-top-filled .ht-wrapper:is(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)){border-top-left-radius:0;border-top-right-radius:0}.ht-root-wrapper.ht-slot-top-filled .ht_master .wtHolder:is(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)){border-top-left-radius:0;border-top-right-radius:0}.ht-root-wrapper.ht-slot-top-filled .htCore:not(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)),.ht-root-wrapper.ht-slot-top-filled .htCore:is(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)){border-top-left-radius:0;border-top-right-radius:0}:is(.ht-root-wrapper.ht-slot-top-filled .htCore>thead>tr:first-child>th:first-child:not(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)),.ht-root-wrapper.ht-slot-top-filled .htCore>tbody>tr:first-child>td:first-child:not(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)),.ht-root-wrapper.ht-slot-top-filled .htCore>tbody>tr:first-child>th:first-child:not(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi))){border-top-left-radius:0}:is(.ht-root-wrapper.ht-slot-top-filled .htCore>thead>tr:first-child>th:first-child:is(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)),.ht-root-wrapper.ht-slot-top-filled .htCore>tbody>tr:first-child>td:first-child:is(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)),.ht-root-wrapper.ht-slot-top-filled .htCore>tbody>tr:first-child>th:first-child:is(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi))){border-top-right-radius:0}.ht-root-wrapper.ht-slot-top-filled .htCore>thead>tr:first-child>th:not(.hiddenHeader).htLastVisibleHeader:not(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)){border-top-right-radius:0}.ht-root-wrapper.ht-slot-top-filled .htCore>tbody>tr:first-child>td:last-child:not(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)){border-top-right-radius:0}.ht-root-wrapper.ht-slot-top-filled .htCore>tbody>tr:first-child>th:last-child:not(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)){border-top-right-radius:0}.ht-root-wrapper.ht-slot-top-filled .htCore>thead>tr:first-child>th:not(.hiddenHeader).htLastVisibleHeader:is(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)){border-top-left-radius:0}.ht-root-wrapper.ht-slot-top-filled .htCore>tbody>tr:first-child>td:last-child:is(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)){border-top-left-radius:0}.ht-root-wrapper.ht-slot-top-filled .htCore>tbody>tr:first-child>th:last-child:is(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)){border-top-left-radius:0}.ht-root-wrapper .ht-slot-element{border-radius:var(--ht-border-radius)}.ht-root-wrapper .ht-slot-bottom>.ht-slot-element:not(:last-of-type){border-radius:0}.ht-root-wrapper .ht-slot-bottom>.ht-slot-element:last-of-type:not(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)),.ht-root-wrapper .ht-slot-bottom>.ht-slot-element:last-of-type:is(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)){border-top-left-radius:0;border-top-right-radius:0}.ht-root-wrapper .ht-slot-top>.ht-slot-element:not(:first-of-type){border-radius:0}.ht-root-wrapper .ht-slot-top>.ht-slot-element:first-of-type:not(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)),.ht-root-wrapper .ht-slot-top>.ht-slot-element:first-of-type:is(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)){border-bottom-right-radius:0;border-bottom-left-radius:0}.handsontable.mobile,.handsontable.mobile .wtHolder{-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:#0000;-webkit-overflow-scrolling:touch}.handsontable.mobile .handsontableInput:focus{box-shadow:inset 0 0 0 2px var(--ht-accent-color);-webkit-appearance:none}.handsontable .topSelectionHandle,.handsontable .topSelectionHandle-HitArea,.handsontable .bottomSelectionHandle,.handsontable .bottomSelectionHandle-HitArea{inset-inline-start:-10000px;inset-inline-end:unset;z-index:9999;top:-10000px}.handsontable.hide-tween{animation:.2s forwards opacity-hide}.handsontable.show-tween{animation:.3s forwards opacity-show}.ht_clone_master{z-index:100}.ht_clone_inline_start{z-index:120}.ht_clone_bottom{z-index:130}.ht_clone_bottom_inline_start_corner{z-index:150}.ht_clone_top{z-index:160}.ht_clone_top_inline_start_corner{z-index:180}.ht_editor_hidden{z-index:-1}.ht_editor_visible{z-index:200}.handsontable td.area{position:relative}.handsontable td.area:before{content:"";background:var(--ht-cell-selection-background-color,#1a42e8);position:absolute;inset:0}.handsontable td.area-1{position:relative}.handsontable td.area-1:before{content:"";background:var(--ht-cell-selection-background-color,#1a42e8);position:absolute;inset:0}.handsontable td.area-2{position:relative}.handsontable td.area-2:before{content:"";background:var(--ht-cell-selection-background-color,#1a42e8);position:absolute;inset:0}.handsontable td.area-3{position:relative}.handsontable td.area-3:before{content:"";background:var(--ht-cell-selection-background-color,#1a42e8);position:absolute;inset:0}.handsontable td.area-4{position:relative}.handsontable td.area-4:before{content:"";background:var(--ht-cell-selection-background-color,#1a42e8);position:absolute;inset:0}.handsontable td.area-5{position:relative}.handsontable td.area-5:before{content:"";background:var(--ht-cell-selection-background-color,#1a42e8);position:absolute;inset:0}.handsontable td.area-6{position:relative}.handsontable td.area-6:before{content:"";background:var(--ht-cell-selection-background-color,#1a42e8);position:absolute;inset:0}.handsontable td.area-7{position:relative}.handsontable td.area-7:before{content:"";background:var(--ht-cell-selection-background-color,#1a42e8);position:absolute;inset:0}.handsontable td.area:before{opacity:.14}.handsontable td.area-1:before{opacity:.21}.handsontable td.area-2:before{opacity:.28}.handsontable td.area-3:before{opacity:.35}.handsontable td.area-4:before{opacity:.42}.handsontable td.area-5:before{opacity:.49}.handsontable td.area-6:before{opacity:.56}.handsontable td.area-7:before{opacity:.63}.handsontable td.area{border-color:color-mix(in srgb,var(--ht-border-color),var(--ht-foreground-color)10%)}.handsontable .wtSelectionHandle{box-sizing:border-box;z-index:115;background:var(--ht-cell-selection-handle-background-color);border:var(--ht-cell-selection-handle-border-width)solid var(--ht-cell-selection-handle-border-color);border-radius:var(--ht-cell-selection-handle-border-radius);animation:ht-selection-handle-fade-in var(--ht-table-transition)ease-in-out backwards;position:absolute}.handsontable .wtSelectionHandle:hover{background:color-mix(in srgb,var(--ht-cell-selection-handle-border-color)30%,var(--ht-cell-selection-handle-background-color))}@media (prefers-reduced-motion:reduce){.handsontable .wtSelectionHandle{animation:none}}.handsontable .wtSelectionHandle--top,.handsontable .wtSelectionHandle--bottom{width:var(--ht-cell-selection-handle-length);height:var(--ht-cell-selection-handle-size);cursor:ns-resize}.handsontable .wtSelectionHandle--start,.handsontable .wtSelectionHandle--end{width:var(--ht-cell-selection-handle-size);height:var(--ht-cell-selection-handle-length);cursor:ew-resize}.handsontable.ht__resizing-selection--top .wtSelectionHandle:not(.wtSelectionHandle--top),.handsontable.ht__resizing-selection--bottom .wtSelectionHandle:not(.wtSelectionHandle--bottom),.handsontable.ht__resizing-selection--start .wtSelectionHandle:not(.wtSelectionHandle--start),.handsontable.ht__resizing-selection--end .wtSelectionHandle:not(.wtSelectionHandle--end){display:none!important}.handsontable.ht__resizing-selection--top,.handsontable.ht__resizing-selection--top *,.handsontable.ht__resizing-selection--bottom,.handsontable.ht__resizing-selection--bottom *{cursor:ns-resize!important}.handsontable.ht__resizing-selection--start,.handsontable.ht__resizing-selection--start *,.handsontable.ht__resizing-selection--end,.handsontable.ht__resizing-selection--end *{cursor:ew-resize!important}.handsontable.ht__resizing-selection--top .wtSelectionHandle--top,.handsontable.ht__resizing-selection--bottom .wtSelectionHandle--bottom,.handsontable.ht__resizing-selection--start .wtSelectionHandle--start,.handsontable.ht__resizing-selection--end .wtSelectionHandle--end{background:color-mix(in srgb,var(--ht-cell-selection-handle-border-color)30%,var(--ht-cell-selection-handle-background-color))}.handsontable .wtMoveZone{cursor:grab}.handsontable .wtMoveZone:active,.handsontable.ht__moving{cursor:grabbing}.handsontable.ht__moving *{cursor:grabbing!important}.handsontable.ht__moving .wtBorder.area,.handsontable.ht__moving .wtBorder.current{display:none!important}.handsontable.ht__moving .wtSelectionHandle,.handsontable.ht__moving .wtMoveZone{visibility:hidden!important}.handsontable .wtBorder{font-size:0;position:absolute}.handsontable .wtBorder:first-child,.handsontable .wtBorder:nth-child(3){z-index:2}.handsontable .wtBorder:nth-child(2),.handsontable .wtBorder:nth-child(4){z-index:1}.handsontable .wtBorder.hidden{display:none!important}.handsontable .wtBorder.current{z-index:10;background-color:var(--ht-cell-selection-border-color)!important}.handsontable .wtBorder.area{z-index:8;background-color:var(--ht-cell-selection-border-color)!important}.handsontable .wtBorder.fill{z-index:6;background-color:var(--ht-cell-autofill-fill-border-color,#68696c)!important}.handsontable .wtBorder.corner{cursor:crosshair;z-index:110;font-size:0;border-radius:var(--ht-cell-autofill-border-radius)!important;background-color:var(--ht-cell-autofill-background-color,#1a42e8)!important;border-color:var(--ht-cell-autofill-border-color)!important}.handsontable .wtBorder.corner:after{content:"";border-radius:var(--ht-cell-autofill-border-radius);inset:min(0px,(var(--ht-cell-autofill-size) - var(--ht-cell-autofill-hit-area-size))/2);background:0 0;position:absolute}.handsontable .wtBorder.corner.wtCornerInlineEndEdge:after{inset-inline-end:0}.handsontable .wtBorder.corner.wtCornerBlockEndEdge:after{inset-block-end:0}@keyframes ht-selection-handle-fade-in{0%{opacity:0}to{opacity:1}}.hot-display-license-info{font-family:var(--ht-font-family),-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;padding:var(--ht-license-vertical-padding,16px)var(--ht-license-horizontal-padding,16px);font-size:var(--ht-font-size-small);line-height:var(--ht-line-height-small);color:var(--ht-license-foreground-color);background-color:var(--ht-license-background-color,#f7f7f9);text-align:left;min-width:300px}.hot-display-license-info a{font-size:var(--ht-license-font-size);color:var(--ht-link-color)}.hot-display-license-info a:hover{color:var(--ht-link-hover-color)}.ht-license-badge-wrapper{z-index:1050;pointer-events:none;position:absolute;inset:0;overflow:hidden}.ht-license-badge-on .ht-license-badge-corner thead tr:first-child th:first-child:after{content:"";inline-size:min(var(--ht-license-badge-size,16px),100%);block-size:min(var(--ht-license-badge-size,16px),100%);background-color:var(--ht-license-badge-color,var(--ht-disabled-color,#a3a3a3));pointer-events:none;margin:auto;position:absolute;inset:0;inset-inline-start:clamp(0px,100% - var(--ht-license-badge-size,16px),6px);-webkit-mask-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width=%2714.8626%27 height=%2716%27 viewBox=%270 0 14.8626 16%27 fill=%27none%27 xmlns=%27http://www.w3.org/2000/svg%27%3E%3Cpath d=%27M0 0H3.28665V4.35577H7.03576V0H10.306V11.407H7.03576V6.90834H3.28665V11.407H0V0Z%27 fill=%27%23000%27/%3E%3Cpath d=%27M11.0991 12.236H14.8633V16.0001H11.0991V12.236Z%27 fill=%27%23000%27/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width=%2714.8626%27 height=%2716%27 viewBox=%270 0 14.8626 16%27 fill=%27none%27 xmlns=%27http://www.w3.org/2000/svg%27%3E%3Cpath d=%27M0 0H3.28665V4.35577H7.03576V0H10.306V11.407H7.03576V6.90834H3.28665V11.407H0V0Z%27 fill=%27%23000%27/%3E%3Cpath d=%27M11.0991 12.236H14.8633V16.0001H11.0991V12.236Z%27 fill=%27%23000%27/%3E%3C/svg%3E");-webkit-mask-position:50%;mask-position:50%;-webkit-mask-size:contain;mask-size:contain;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat}.ht-license-badge-on .ht-license-badge-corner thead tr:first-child th:first-child:hover:after{background-color:var(--ht-license-badge-hover-color,var(--ht-read-only-color,#68696c))}[dir=rtl] .ht-license-badge-on .ht-license-badge-corner thead tr:first-child th:first-child:after{inset-inline-start:0;inset-inline-end:clamp(0px,100% - var(--ht-license-badge-size,16px),6px)}.ht-license-badge{clip-path:inset(50%);white-space:nowrap;color:#0000;background:0 0;border:0;block-size:1px;inline-size:1px;margin:0;padding:0;position:absolute;inset-block-start:0;inset-inline-start:0;overflow:hidden}.ht-license-popover{font-family:var(--ht-font-family),-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;z-index:1051;inline-size:auto;max-inline-size:min(var(--ht-license-popover-width,320px),100vw - 32px);border-radius:var(--ht-border-radius,8px);background-color:var(--ht-license-popover-background-color,#16171a);max-block-size:100%;color:var(--ht-license-popover-foreground-color,#fff);font-size:var(--ht-font-size-small,12px);line-height:var(--ht-line-height-small,18px);text-align:start;pointer-events:auto;box-shadow:var(--ht-shadow-x,0)var(--ht-shadow-y,0)var(--ht-shadow-blur,8px)color-mix(in srgb,var(--ht-shadow-color,#000)var(--ht-shadow-opacity,100%),transparent);flex-direction:column;padding:16px;display:none;position:absolute;inset-block-start:0;inset-inline-start:var(--ht-license-badge-area-width,50px);inset-inline-end:0;overflow:visible}.ht-license-popover:not(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)){border-top-left-radius:0}.ht-license-popover:is(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)){border-top-right-radius:0}.ht-license-popover:before{content:"";border-block-start:var(--ht-license-popover-tail-size,5px)solid var(--ht-license-popover-background-color,#16171a);border-inline-start:var(--ht-license-popover-tail-size,5px)solid #0000;block-size:0;inline-size:0;position:absolute;inset-block-start:0;inset-inline-end:100%}.ht-license-popover__content{min-block-size:0;overflow-y:auto}.ht-license-badge-wrapper.is-corner-hover:not(.is-dismissed) .ht-license-popover,.ht-license-badge-wrapper:not(.is-dismissed):hover .ht-license-popover,.ht-license-popover.is-open{display:flex}.ht-license-badge-wrapper.is-cornerless .ht-license-badge{display:none}.ht-license-badge-wrapper.is-cornerless .ht-license-popover{inset-inline-start:0}.ht-license-badge-wrapper.is-cornerless .ht-license-popover:not(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)){border-top-left-radius:var(--ht-border-radius,8px)}.ht-license-badge-wrapper.is-cornerless .ht-license-popover:is(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)){border-top-right-radius:var(--ht-border-radius,8px)}.ht-license-badge-wrapper.is-cornerless .ht-license-popover:before{display:none}.ht-license-popover__title{margin-block-end:8px;padding-inline-end:16px;font-weight:700}.ht-license-popover__body{color:var(--ht-license-popover-body-color,#d5d6d8);margin:0 0 12px}.ht-license-popover__link{color:var(--ht-license-popover-link-color,#3ba0ff);text-decoration:none}.ht-license-popover__link:hover{text-decoration:underline}.ht-license-popover__close{block-size:20px;inline-size:20px;color:inherit;cursor:pointer;background:0 0;border:0;justify-content:center;align-items:center;padding:0;line-height:1;display:flex;position:absolute;inset-block-start:12px;inset-inline-end:12px}.ht-license-popover__close:before{content:"✕";font-size:14px}.ht-dialog.ht-license-lock{z-index:1070}.ht-dialog.ht-license-lock:before{content:"";block-size:calc(var(--ht-line-height,20px) + var(--ht-density-cell-vertical,4px)*2);background-color:var(--ht-header-background-color);border-block-end:1px solid var(--ht-cell-horizontal-border-color,var(--ht-border-color));position:absolute;inset-block-start:0;inset-inline:0}.ht-dialog.ht-license-lock:after{content:"";inline-size:var(--ht-license-badge-size,16px);block-size:var(--ht-license-badge-size,16px);background-color:var(--ht-license-badge-color,var(--ht-disabled-color,#a3a3a3));position:absolute;inset-block-start:calc(var(--ht-density-cell-vertical,4px) + (var(--ht-line-height,20px) - var(--ht-license-badge-size,16px))/2);inset-inline-start:var(--ht-cell-horizontal-padding,8px);-webkit-mask-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width=%2714.8626%27 height=%2716%27 viewBox=%270 0 14.8626 16%27 fill=%27none%27 xmlns=%27http://www.w3.org/2000/svg%27%3E%3Cpath d=%27M0 0H3.28665V4.35577H7.03576V0H10.306V11.407H7.03576V6.90834H3.28665V11.407H0V0Z%27 fill=%27%23000%27/%3E%3Cpath d=%27M11.0991 12.236H14.8633V16.0001H11.0991V12.236Z%27 fill=%27%23000%27/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width=%2714.8626%27 height=%2716%27 viewBox=%270 0 14.8626 16%27 fill=%27none%27 xmlns=%27http://www.w3.org/2000/svg%27%3E%3Cpath d=%27M0 0H3.28665V4.35577H7.03576V0H10.306V11.407H7.03576V6.90834H3.28665V11.407H0V0Z%27 fill=%27%23000%27/%3E%3Cpath d=%27M11.0991 12.236H14.8633V16.0001H11.0991V12.236Z%27 fill=%27%23000%27/%3E%3C/svg%3E");-webkit-mask-size:contain;mask-size:contain;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat}.ht-dialog.ht-license-lock .ht-dialog__content-wrapper{padding-block-start:calc(var(--ht-line-height,20px) + var(--ht-density-cell-vertical,4px)*2)}.ht-dialog.ht-license-lock .ht-dialog__content-wrapper-inner,.ht-dialog.ht-license-lock .ht-dialog__content{min-inline-size:0}.ht-dialog.ht-license-lock a.ht-button{text-decoration:none;display:inline-block}.ht-dialog.ht-license-lock .ht-dialog__title,.ht-dialog.ht-license-lock .ht-dialog__description{word-break:break-word;overflow-wrap:break-word}.handsontable .htAutocompleteArrow{cursor:default;width:var(--ht-icon-size);height:var(--ht-icon-size);float:right;top:calc((var(--ht-line-height) - var(--ht-icon-size))/2);margin-inline-start:calc(var(--ht-gap-size)*2);margin-inline-end:1px;font-size:0;position:relative}.handsontable .htAutocompleteArrow:after{content:"";opacity:.6;display:block;position:absolute;top:0;left:0}[dir=rtl].handsontable .htAutocompleteArrow{float:left}.handsontable .htCheckboxRendererInput{width:var(--ht-checkbox-size);height:var(--ht-checkbox-size);vertical-align:middle;cursor:pointer;margin:0;outline:none;margin-top:-2px;display:inline-block;position:relative}.handsontable .htCheckboxRendererInput:first-child{margin-inline-end:var(--ht-gap-size)}.handsontable .htCheckboxRendererInput:last-child{margin-inline-start:var(--ht-gap-size)}.handsontable .htCheckboxRendererInput:before{content:"";width:var(--ht-checkbox-size);height:var(--ht-checkbox-size);border-radius:var(--ht-checkbox-border-radius);border:1px solid var(--ht-checkbox-border-color);background-color:var(--ht-checkbox-background-color);box-sizing:border-box;pointer-events:none;transition:all var(--ht-table-transition)ease-in-out;display:inline-block;position:absolute;top:0;left:0}.handsontable .htCheckboxRendererInput:after{content:"";color:var(--ht-checkbox-icon-color);pointer-events:none;display:block;position:absolute;top:0;left:0;width:var(--ht-checkbox-size)!important;height:var(--ht-checkbox-size)!important}.handsontable .htCheckboxRendererInput:checked:before{border-color:var(--ht-checkbox-checked-border-color);background-color:var(--ht-checkbox-checked-background-color)}.handsontable .htCheckboxRendererInput:checked:after{color:var(--ht-checkbox-checked-icon-color)}.handsontable .htCheckboxRendererInput:checked:disabled:before{border-color:var(--ht-checkbox-checked-disabled-border-color);background-color:var(--ht-checkbox-checked-disabled-background-color)}.handsontable .htCheckboxRendererInput:checked:disabled:after{color:var(--ht-checkbox-checked-disabled-icon-color)}.handsontable .htCheckboxRendererInput:checked:focus:before{border-color:var(--ht-checkbox-checked-focus-border-color);background-color:var(--ht-checkbox-checked-focus-background-color)}.handsontable .htCheckboxRendererInput:checked:focus:after{color:var(--ht-checkbox-checked-focus-icon-color)}.handsontable .htCheckboxRendererInput:focus:before{border-color:var(--ht-checkbox-focus-border-color);background-color:var(--ht-checkbox-focus-background-color);outline:1px solid var(--ht-checkbox-focus-ring-color)}.handsontable .htCheckboxRendererInput:focus:after{color:var(--ht-checkbox-focus-icon-color)}.handsontable .htCheckboxRendererInput:disabled{cursor:initial}.handsontable .htCheckboxRendererInput:disabled:before{border-color:var(--ht-checkbox-disabled-border-color);background-color:var(--ht-checkbox-disabled-background-color)}.handsontable .htCheckboxRendererInput:disabled:after{color:var(--ht-checkbox-disabled-icon-color)}.handsontable .htCheckboxRendererInput:indeterminate:before{border-color:var(--ht-checkbox-indeterminate-border-color);background-color:var(--ht-checkbox-indeterminate-background-color)}.handsontable .htCheckboxRendererInput:indeterminate:after{color:var(--ht-checkbox-indeterminate-icon-color)}.handsontable .htCheckboxRendererInput:indeterminate:disabled:before{border-color:var(--ht-checkbox-indeterminate-disabled-border-color);background-color:var(--ht-checkbox-indeterminate-disabled-background-color)}.handsontable .htCheckboxRendererInput:indeterminate:disabled:after{color:var(--ht-checkbox-indeterminate-disabled-icon-color)}.handsontable .htCheckboxRendererInput:indeterminate:focus:before{border-color:var(--ht-checkbox-indeterminate-focus-border-color);background-color:var(--ht-checkbox-indeterminate-focus-background-color)}.handsontable .htCheckboxRendererInput:indeterminate:focus:after{color:var(--ht-checkbox-indeterminate-focus-icon-color)}.handsontable .htCheckboxRendererInput.noValue{opacity:.5}.handsontable .htCheckboxRendererLabel{font-size:inherit;line-height:inherit;cursor:pointer;color:inherit;margin:0;display:inline-block;position:relative}.handsontable .htCheckboxRendererLabel.fullWidth{width:100%}.handsontable .htPlaceholder{color:var(--ht-placeholder-color)}.handsontable .htDimmed{color:var(--ht-read-only-color)!important;background-color:var(--ht-cell-read-only-background-color)!important}.handsontable .htLeft{text-align:left}.handsontable .htCenter{text-align:center}.handsontable .htRight{text-align:right}.handsontable .htJustify{text-align:justify}.handsontable .htTop{vertical-align:top}.handsontable .htMiddle{vertical-align:middle}.handsontable .htBottom{vertical-align:bottom}.handsontable .htInvalid{background-color:var(--ht-cell-error-background-color)!important}.handsontable .htNoWrap{white-space:nowrap}.handsontable .htSearchResult{background-color:var(--ht-cell-success-background-color)!important}.handsontable .ht-multi-select-renderer{padding:var(--ht-cell-vertical-padding)var(--ht-cell-horizontal-padding);overflow:hidden}.handsontable .ht-multi-select-chips-container{align-items:center;gap:var(--ht-gap-size);flex-wrap:nowrap;max-width:100%;display:flex;overflow:hidden}.handsontable .ht-multi-select-chip{align-items:center;gap:var(--ht-gap-size);padding:var(--ht-chip-vertical-padding)calc((var(--ht-line-height) - var(--ht-icon-size))/2)var(--ht-chip-vertical-padding)var(--ht-chip-horizontal-padding);border-radius:var(--ht-chip-border-radius);background:var(--ht-chip-background);white-space:nowrap;box-sizing:border-box;flex-shrink:0;max-width:100px;display:inline-flex}.handsontable .ht-multi-select-chip-label{text-overflow:ellipsis;color:var(--ht-foreground-color);font-style:normal;font-weight:var(--ht-font-weight);line-height:var(--ht-line-height,40px);letter-spacing:var(--ht-letter-spacing,0);padding:0 var(--ht-chip-gap);overflow:hidden}.handsontable .ht-multi-select-chip-remove{cursor:pointer;color:var(--ht-icon-button-icon-color);background-position:50%;background-repeat:no-repeat;background-size:contain;flex-shrink:0;justify-content:center;align-items:center;padding:0;display:flex;position:relative;width:var(--ht-icon-size)!important;height:var(--ht-icon-size)!important}.handsontable .ht-multi-select-chip-remove:before{content:"";display:block;position:absolute;top:0;left:0}.handsontable .ht-multi-select-chip-remove:hover{background-color:var(--ht-icon-button-hover-background-color)}.handsontable .ht-multi-select-overflow{padding:var(--ht-chip-vertical-padding)var(--ht-chip-horizontal-padding);background:var(--ht-chip-background);border-radius:var(--ht-chip-border-radius);color:var(--ht-foreground-color);white-space:nowrap;flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}.handsontableInputHolder{position:absolute;top:0;left:0}.handsontableInputHolder .handsontableInput{padding:calc(var(--ht-cell-vertical-padding,4px) + 1px)calc(var(--ht-cell-horizontal-padding,8px) + 1px);color:var(--ht-cell-editor-foreground-color);background-color:var(--ht-cell-editor-background-color,#fff);box-shadow:inset 0 0 0 var(--ht-cell-editor-border-width,2px)var(--ht-cell-editor-border-color,#1a42e8),0 0 var(--ht-cell-editor-shadow-blur-radius,0)0 var(--ht-cell-editor-shadow-color,transparent);box-sizing:border-box;border:none;border-radius:0;outline-width:0;margin:0;display:block;font-family:inherit!important;font-size:inherit!important;line-height:inherit!important;-webkit-appearance:none!important}.handsontableInputHolder .handsontableInput:focus{outline:none}.htSelectEditor{position:absolute}.htSelectEditor select{width:100%;height:100%;padding:calc(var(--ht-cell-vertical-padding,4px) + 1px)calc(var(--ht-cell-horizontal-padding,8px) + 1px);white-space:nowrap;text-overflow:ellipsis;color:var(--ht-cell-editor-foreground-color);background-color:var(--ht-cell-editor-background-color,#fff);box-shadow:inset 0 0 0 var(--ht-cell-editor-border-width,2px)var(--ht-cell-editor-border-color,#1a42e8),0 0 var(--ht-cell-editor-shadow-blur-radius,0)0 var(--ht-cell-editor-shadow-color,transparent);box-sizing:border-box;border:none;border-radius:0;margin:0;padding-inline-end:26px;position:absolute;inset:0;overflow:hidden;font-family:inherit!important;font-size:inherit!important;line-height:inherit!important;-webkit-appearance:none!important}.htSelectEditor select:focus{outline:none}.htSelectEditor .htAutocompleteArrow{z-index:1;pointer-events:none;margin-inline-end:4px;top:50%;transform:translateY(-50%)}.handsontable.listbox{box-shadow:var(--ht-menu-shadow-x,0)var(--ht-menu-shadow-y,0)var(--ht-menu-shadow-blur,8px)color-mix(in srgb,var(--ht-menu-shadow-color,#000)var(--ht-menu-shadow-opacity,100%),transparent);border:var(--ht-menu-border-width,1px)solid var(--ht-menu-border-color,#e5e5e9);margin:0}.handsontable.listbox .ht_master{background-color:var(--ht-background-color);overflow:hidden}.handsontable.listbox .wtHolder{overflow:auto;border-radius:0!important}.handsontable.listbox .wtHider,.handsontable.listbox .htCore{border-radius:0!important}.handsontable.listbox table{overflow:hidden}.handsontable.listbox table th,.handsontable.listbox table tr:first-child th,.handsontable.listbox table tr:last-child th,.handsontable.listbox table tr:first-child td,.handsontable.listbox table td{border-color:#0000!important}.handsontable.listbox table th,.handsontable.listbox table td{white-space:nowrap;text-overflow:ellipsis;border-radius:0!important}.handsontable.listbox table .wtBorder{visibility:hidden}.handsontable.listbox table strong{color:inherit;font-weight:700}.handsontable.listbox table tr td:hover td{cursor:pointer;background:color-mix(in srgb,var(--ht-menu-item-hover-color)var(--ht-menu-item-hover-color-opacity,100%),transparent)!important;box-shadow:none!important}.handsontable.listbox table td{transition:var(--ht-table-transition)background ease-in-out}.handsontable.listbox table td:hover{cursor:pointer;background-color:color-mix(in srgb,var(--ht-menu-item-hover-color)var(--ht-menu-item-hover-color-opacity,100%),transparent)!important}.handsontable.listbox table td.current:not([aria-expanded=true]){box-shadow:inset 0 0 0 1px var(--ht-accent-color)}.handsontable.listbox table td.htDimmed{cursor:default;font-style:inherit;color:inherit!important}.handsontable.listbox table td.htDimmed:not(.handsontable.listbox table td:hover){background-color:inherit!important}.handsontable.listbox table thead th{text-align:left;height:auto!important}.handsontable.listbox table thead th .relative{padding-top:calc(var(--ht-cell-vertical-padding) + var(--ht-gap-size));padding-bottom:calc(var(--ht-cell-vertical-padding) + var(--ht-gap-size))}.handsontable.listbox .ht_clone_top .wtHider{overflow:hidden}.handsontable.listbox .ht_clone_top table{border-radius:0}.handsontable.listbox .htBorders div{background:0 0!important}.handsontable.autocompleteEditor tr.ht__row_even th,.handsontable.autocompleteEditor tr.ht__row_even td,.handsontable.autocompleteEditor tr.ht__row_odd th,.handsontable.autocompleteEditor tr.ht__row_odd td{background-color:var(--ht-background-color,#fff)}[dir=rtl].handsontable.listbox table thead th{text-align:right}.handsontableEditor{position:absolute}.handsontableEditor .ht-multi-select-editor{box-shadow:var(--ht-menu-shadow-x,0)var(--ht-menu-shadow-y,0)var(--ht-menu-shadow-blur,8px)color-mix(in srgb,var(--ht-menu-shadow-color,#000)var(--ht-menu-shadow-opacity,100%),transparent);scrollbar-width:auto;scrollbar-color:var(--ht-scrollbar-thumb-color)var(--ht-scrollbar-track-color);border-radius:0 0 var(--ht-menu-border-radius)var(--ht-menu-border-radius);border:var(--ht-menu-border-width)solid var(--ht-menu-border-color);background:var(--ht-background-color);width:max-content;min-width:120px;padding:var(--ht-menu-vertical-padding)var(--ht-menu-horizontal-padding);overflow-y:auto}.handsontableEditor .ht-multi-select-editor .ht-multi-select-editor-search-input-wrapper{padding:var(--ht-menu-item-vertical-padding)var(--ht-menu-item-horizontal-padding);align-items:center;gap:var(--ht-gap-size);align-self:stretch;display:flex;position:relative}.handsontableEditor .ht-multi-select-editor .ht-multi-select-editor-search-icon{left:calc(var(--ht-menu-item-horizontal-padding) + 10px);opacity:.5;pointer-events:none;z-index:1;background-position:50%;background-repeat:no-repeat;background-size:contain;width:16px;height:16px;position:absolute;top:50%;transform:translateY(-50%)}.handsontableEditor .ht-multi-select-editor input.ht-multi-select-editor-search-input{box-sizing:border-box;border-radius:var(--ht-input-border-radius);width:100%;color:var(--ht-input-foreground-color);background-color:var(--ht-input-background-color);border:1px solid var(--ht-input-border-color);transition:var(--ht-table-transition)all ease-in-out;line-height:var(--ht-line-height);font-size:var(--ht-font-size);padding:var(--ht-input-vertical-padding)var(--ht-menu-item-horizontal-padding)var(--ht-input-vertical-padding)32px}.handsontableEditor .ht-multi-select-editor input.ht-multi-select-editor-search-input:hover{border-color:var(--ht-input-hover-border-color);color:var(--ht-input-hover-foreground-color);background-color:var(--ht-input-hover-background-color)}.handsontableEditor .ht-multi-select-editor input.ht-multi-select-editor-search-input:disabled{border-color:var(--ht-input-disabled-border-color);color:var(--ht-input-disabled-foreground-color);background-color:var(--ht-input-disabled-background-color)}.handsontableEditor .ht-multi-select-editor input.ht-multi-select-editor-search-input:focus{border-color:var(--ht-input-focus-border-color);color:var(--ht-input-focus-foreground-color);background-color:var(--ht-input-focus-background-color);outline-offset:0;box-shadow:none;outline:none}.handsontableEditor .ht-multi-select-editor input.ht-multi-select-editor-search-input::placeholder{color:var(--ht-foreground-color);opacity:.6}.handsontableEditor .ht-multi-select-editor .ht-multi-select-editor-separator{background-color:var(--ht-menu-border-color);width:100%;height:1px;margin:var(--ht-menu-vertical-padding)0 var(--ht-menu-vertical-padding)0;padding:0}.handsontableEditor .ht-multi-select-editor ul{width:100%;padding:var(--ht-gap-size)var(--ht-menu-horizontal-padding);flex-direction:column;align-items:flex-start;margin:0;list-style:none;display:flex}.handsontableEditor .ht-multi-select-editor ul li{background:var(--ht-background-color);padding:var(--ht-menu-item-vertical-padding)var(--ht-menu-item-horizontal-padding);-webkit-user-select:none;user-select:none;cursor:pointer;align-self:stretch;align-items:center;display:flex}.handsontableEditor .ht-multi-select-editor ul li *{cursor:pointer}.handsontableEditor .ht-multi-select-editor ul li.ht-multi-select-editor-item-selected{background:color-mix(in srgb,var(--ht-menu-item-active-color)var(--ht-menu-item-active-color-opacity,100%),transparent)}.handsontableEditor .ht-multi-select-editor ul li div{flex:1 0 0;align-items:center;display:flex}.handsontableEditor .ht-multi-select-editor ul li div input{-webkit-appearance:none;appearance:none;width:var(--ht-checkbox-size);height:var(--ht-checkbox-size);margin:0;padding:0;display:flex;position:relative}.handsontableEditor .ht-multi-select-editor ul li div input:after{content:"";display:block;position:absolute;top:0;left:0}.handsontableEditor .ht-multi-select-editor ul li div input:before{content:"";box-sizing:border-box;width:var(--ht-checkbox-size);height:var(--ht-checkbox-size);border-radius:var(--ht-checkbox-border-radius);border:1px solid var(--ht-checkbox-border-color);background:var(--ht-checkbox-background-color);background-position:50%;background-repeat:no-repeat;display:block;position:absolute;top:0;left:0}.handsontableEditor .ht-multi-select-editor ul li div input:checked:before{border-color:var(--ht-checkbox-checked-border-color);background:var(--ht-checkbox-checked-background-color)}.handsontableEditor .ht-multi-select-editor ul li div input:checked:after{color:var(--ht-checkbox-checked-icon-color);background-color:currentColor}.handsontableEditor .ht-multi-select-editor ul li div input:focus{outline:none}.handsontableEditor .ht-multi-select-editor ul li div label{color:var(--ht-foreground-color);text-overflow:ellipsis;font-size:var(--ht-font-size);font-style:normal;font-weight:400;line-height:var(--ht-line-height);letter-spacing:var(--ht-letter-spacing);width:100%;padding:0 0 0 calc(var(--ht-gap-size)*2);overflow:hidden}.handsontableEditor .ht-multi-select-editor ul li:hover{background:color-mix(in srgb,var(--ht-menu-item-hover-color)var(--ht-menu-item-hover-color-opacity,100%),transparent)}.handsontableEditor .ht-multi-select-editor ul li:has(input:focus){background:color-mix(in srgb,var(--ht-menu-item-hover-color)var(--ht-menu-item-hover-color-opacity,100%),transparent)}.handsontable .htUISelectCaption{width:100%;padding:var(--ht-input-vertical-padding)var(--ht-input-horizontal-padding);font-family:inherit;font-size:var(--ht-font-size);line-height:var(--ht-line-height);font-weight:var(--ht-font-weight);border-radius:var(--ht-input-border-radius);box-sizing:border-box;cursor:pointer;border:var(--ht-input-border-width)solid var(--ht-input-border-color);color:var(--ht-input-foreground-color);background-color:var(--ht-input-background-color);text-overflow:ellipsis;white-space:nowrap;transition:var(--ht-table-transition)all ease-in-out;margin:0;padding-inline-end:calc(var(--ht-input-horizontal-padding) + var(--ht-icon-size));overflow:hidden;outline:none!important}.handsontable .htUISelectCaption:after{content:"";right:calc(var(--ht-input-horizontal-padding) - var(--ht-icon-size)/4);display:block;position:absolute;top:50%;transform:translateY(-50%)}.handsontable .htUISelectCaption:hover{border-color:var(--ht-input-hover-border-color);color:var(--ht-input-hover-foreground-color);background-color:var(--ht-input-hover-background-color)}.handsontable .htUISelectCaption:disabled{border-color:var(--ht-input-disabled-border-color);color:var(--ht-input-disabled-foreground-color);background-color:var(--ht-input-disabled-background-color)}.handsontable .htUISelectCaption:focus{border-color:var(--ht-input-focus-border-color);color:var(--ht-input-focus-foreground-color);background-color:var(--ht-input-focus-background-color)}.handsontable .htUISelect{cursor:pointer;position:relative;outline:none!important}.handsontable .htUISelect:focus .htUISelectCaption{border-color:var(--ht-input-focus-border-color);color:var(--ht-input-focus-foreground-color);background-color:var(--ht-input-focus-background-color)}[dir=rtl].handsontable .htUISelectCaption:after{right:auto;left:calc(var(--ht-input-horizontal-padding) - var(--ht-icon-size)/4)}.handsontable .htFiltersMenuCondition .htUIInput input,.handsontable .htFiltersMenuValue .htUIMultipleSelectSearch input{width:100%;padding:var(--ht-input-vertical-padding)var(--ht-input-horizontal-padding);font-family:inherit;font-size:var(--ht-font-size);line-height:var(--ht-line-height);font-weight:var(--ht-font-weight);border-radius:var(--ht-input-border-radius);box-sizing:border-box;cursor:pointer;border:var(--ht-input-border-width)solid var(--ht-input-border-color);color:var(--ht-input-foreground-color);background-color:var(--ht-input-background-color);transition:var(--ht-table-transition)all ease-in-out;outline:none!important}.handsontable .htFiltersMenuCondition .htUIInput input:hover,.handsontable .htFiltersMenuValue .htUIMultipleSelectSearch input:hover{border-color:var(--ht-input-hover-border-color);color:var(--ht-input-hover-foreground-color);background-color:var(--ht-input-hover-background-color)}.handsontable .htFiltersMenuCondition .htUIInput input:disabled,.handsontable .htFiltersMenuValue .htUIMultipleSelectSearch input:disabled{border-color:var(--ht-input-disabled-border-color);color:var(--ht-input-disabled-foreground-color);background-color:var(--ht-input-disabled-background-color)}.handsontable .htFiltersMenuCondition .htUIInput input:focus,.handsontable .htFiltersMenuValue .htUIMultipleSelectSearch input:focus{border-color:var(--ht-input-focus-border-color);color:var(--ht-input-focus-foreground-color);background-color:var(--ht-input-focus-background-color)}.handsontable .htUIInput{text-align:center;padding:0;position:relative;outline:none!important}.handsontable .htUIInputIcon{position:absolute}.handsontable .htUIInput.htUIButton input,.handsontable .ht-button{min-width:64px;padding:var(--ht-button-vertical-padding)var(--ht-button-horizontal-padding);font-family:inherit;font-size:var(--ht-font-size);line-height:var(--ht-line-height);font-weight:var(--ht-font-weight);border-radius:var(--ht-button-border-radius);box-sizing:border-box;cursor:pointer;transition:var(--ht-table-transition)all ease-in-out;border-style:solid;border-width:1px;outline:none!important}.handsontable .htUIInput.htUIButtonCancel input,.handsontable .ht-button--secondary{border-color:var(--ht-secondary-button-border-color);background-color:var(--ht-secondary-button-background-color);color:var(--ht-secondary-button-foreground-color)}.handsontable .htUIInput.htUIButtonCancel input:hover,.handsontable .ht-button--secondary:hover{border-color:var(--ht-secondary-button-hover-border-color);background-color:var(--ht-secondary-button-hover-background-color);color:var(--ht-secondary-button-hover-foreground-color)}.handsontable .htUIInput.htUIButtonCancel input:disabled,.handsontable .ht-button--secondary:disabled{border-color:var(--ht-secondary-button-disabled-border-color);background-color:var(--ht-secondary-button-disabled-background-color);color:var(--ht-secondary-button-disabled-foreground-color)}.handsontable .htUIInput.htUIButtonCancel input:focus,.handsontable .ht-button--secondary:focus{border-color:var(--ht-secondary-button-focus-border-color);background-color:var(--ht-secondary-button-focus-background-color);color:var(--ht-secondary-button-focus-foreground-color);box-shadow:0 0 0 1px var(--ht-accent-color)}.htUIInput.htUIButtonOK input,.ht-button--primary{border-color:var(--ht-primary-button-border-color);background-color:var(--ht-primary-button-background-color);color:var(--ht-primary-button-foreground-color)}.htUIInput.htUIButtonOK input:hover,.ht-button--primary:hover{border-color:var(--ht-primary-button-hover-border-color);background-color:var(--ht-primary-button-hover-background-color);color:var(--ht-primary-button-hover-foreground-color)}.htUIInput.htUIButtonOK input:disabled,.ht-button--primary:disabled{border-color:var(--ht-primary-button-disabled-border-color);background-color:var(--ht-primary-button-disabled-background-color);color:var(--ht-primary-button-disabled-foreground-color)}.htUIInput.htUIButtonOK input:focus,.ht-button--primary:focus{border-color:var(--ht-primary-button-focus-border-color);background-color:var(--ht-primary-button-focus-background-color);color:var(--ht-primary-button-focus-foreground-color);box-shadow:0 0 0 1px var(--ht-accent-color)}.handsontable .htUIRadio{padding:var(--ht-gap-size)calc(2*var(--ht-gap-size));align-items:center;gap:var(--ht-gap-size);cursor:pointer;margin:0;padding-bottom:0;display:inline-flex;position:relative}.handsontable .htUIRadio:first-child{padding-inline-start:0}.handsontable .htUIRadio>input[type=radio]{width:var(--ht-radio-size);height:var(--ht-radio-size);-webkit-appearance:none;appearance:none;cursor:pointer;border-radius:calc(.5*var(--ht-radio-size));outline:none;margin:0;position:relative}.handsontable .htUIRadio>input[type=radio]:before{content:"";border-radius:calc(.5*var(--ht-radio-size));border:1px solid var(--ht-radio-border-color);background-color:var(--ht-radio-background-color);display:block;position:absolute;inset:0}.handsontable .htUIRadio>input[type=radio]:after{content:"";color:var(--ht-radio-icon-color);display:block;position:absolute}.handsontable .htUIRadio>input[type=radio]:checked:before{border-color:var(--ht-radio-checked-border-color);background-color:var(--ht-radio-checked-background-color)}.handsontable .htUIRadio>input[type=radio]:checked:after{color:var(--ht-radio-checked-icon-color)}.handsontable .htUIRadio>input[type=radio]:checked:disabled{cursor:initial}.handsontable .htUIRadio>input[type=radio]:checked:disabled:before{border-color:var(--ht-radio-checked-disabled-border-color);background-color:var(--ht-radio-checked-disabled-background-color)}.handsontable .htUIRadio>input[type=radio]:checked:disabled:after{color:var(--ht-radio-checked-disabled-icon-color)}.handsontable .htUIRadio>input[type=radio]:checked:focus:before{border-color:var(--ht-radio-checked-focus-border-color);background-color:var(--ht-radio-checked-focus-background-color)}.handsontable .htUIRadio>input[type=radio]:checked:focus:after{color:var(--ht-radio-checked-focus-icon-color)}.handsontable .htUIRadio>input[type=radio]:disabled{cursor:initial}.handsontable .htUIRadio>input[type=radio]:disabled:before{border-color:var(--ht-radio-disabled-border-color);background-color:var(--ht-radio-disabled-background-color)}.handsontable .htUIRadio>input[type=radio]:disabled:after{color:var(--ht-radio-disabled-icon-color)}.handsontable .htUIRadio>input[type=radio]:focus:before{border-color:var(--ht-radio-focus-border-color);background-color:var(--ht-radio-focus-background-color);outline:1px solid var(--ht-radio-focus-ring-color)}.handsontable .htUIRadio>input[type=radio]:focus:after{color:var(--ht-radio-focus-icon-color)}.handsontable .htUIRadio label{vertical-align:middle;cursor:pointer;color:inherit}.handsontable .htUIRadio label:before{content:"";display:block;position:absolute;inset:0}.handsontable .collapsibleIndicator,.handsontable .ht_nestingButton{width:var(--ht-icon-button-hit-area-size);height:var(--ht-icon-button-hit-area-size);margin:calc(-1*(var(--ht-icon-button-hit-area-size) - var(--ht-icon-size))/2 + 1px);box-sizing:border-box;cursor:pointer;text-indent:-100px;flex-shrink:0;font-size:0;position:relative;overflow:visible}.handsontable .collapsibleIndicator:before,.handsontable .ht_nestingButton:before{content:"";width:var(--ht-icon-size);height:var(--ht-icon-size);margin-top:calc(-.5*var(--ht-icon-size));margin-left:calc(-.5*var(--ht-icon-size));border-radius:var(--ht-collapse-button-border-radius);transition:var(--ht-table-transition)all ease-in-out;z-index:1;display:block;position:absolute;top:50%;left:50%}.handsontable .collapsibleIndicator:after,.handsontable .ht_nestingButton:after{content:"";width:var(--ht-icon-size);height:var(--ht-icon-size);margin-top:calc(-.5*var(--ht-icon-size));margin-left:calc(-.5*var(--ht-icon-size));border-radius:var(--ht-collapse-button-border-radius);transition:var(--ht-table-transition)all ease-in-out;z-index:0;display:block;position:absolute;top:50%;left:50%}.handsontable .collapsibleIndicator.expanded:before,.handsontable .collapsibleIndicator.ht_nestingCollapse:before,.handsontable .ht_nestingButton.expanded:before,.handsontable .ht_nestingButton.ht_nestingCollapse:before{color:var(--ht-collapse-button-open-icon-color)}.handsontable .collapsibleIndicator.expanded:after,.handsontable .collapsibleIndicator.ht_nestingCollapse:after,.handsontable .ht_nestingButton.expanded:after,.handsontable .ht_nestingButton.ht_nestingCollapse:after{background-color:var(--ht-collapse-button-open-background-color);box-shadow:0 0 0 1px var(--ht-collapse-button-open-border-color)}.handsontable .collapsibleIndicator.expanded:hover:before,.handsontable .collapsibleIndicator.ht_nestingCollapse:hover:before,.handsontable .ht_nestingButton.expanded:hover:before,.handsontable .ht_nestingButton.ht_nestingCollapse:hover:before{color:var(--ht-collapse-button-open-hover-icon-color)}.handsontable .collapsibleIndicator.expanded:hover:after,.handsontable .collapsibleIndicator.ht_nestingCollapse:hover:after,.handsontable .ht_nestingButton.expanded:hover:after,.handsontable .ht_nestingButton.ht_nestingCollapse:hover:after{background-color:var(--ht-collapse-button-open-hover-background-color);box-shadow:0 0 0 1px var(--ht-collapse-button-open-hover-border-color)}.handsontable .collapsibleIndicator.collapsed:before,.handsontable .collapsibleIndicator.ht_nestingExpand:before,.handsontable .ht_nestingButton.collapsed:before,.handsontable .ht_nestingButton.ht_nestingExpand:before{color:var(--ht-collapse-button-close-icon-color)}.handsontable .collapsibleIndicator.collapsed:after,.handsontable .collapsibleIndicator.ht_nestingExpand:after,.handsontable .ht_nestingButton.collapsed:after,.handsontable .ht_nestingButton.ht_nestingExpand:after{background-color:var(--ht-collapse-button-close-background-color);box-shadow:0 0 0 1px var(--ht-collapse-button-close-border-color)}.handsontable .collapsibleIndicator.collapsed:hover:before,.handsontable .collapsibleIndicator.ht_nestingExpand:hover:before,.handsontable .ht_nestingButton.collapsed:hover:before,.handsontable .ht_nestingButton.ht_nestingExpand:hover:before{color:var(--ht-collapse-button-close-hover-icon-color)}.handsontable .collapsibleIndicator.collapsed:hover:after,.handsontable .collapsibleIndicator.ht_nestingExpand:hover:after,.handsontable .ht_nestingButton.collapsed:hover:after,.handsontable .ht_nestingButton.ht_nestingExpand:hover:after{background-color:var(--ht-collapse-button-close-hover-background-color);box-shadow:0 0 0 1px var(--ht-collapse-button-close-hover-border-color)}.handsontable th.ht__active_highlight .collapsibleIndicator.collapsed:before,.handsontable th.ht__active_highlight .collapsibleIndicator.ht_nestingExpand:before,.handsontable th.ht__active_highlight .ht_nestingButton.collapsed:before,.handsontable th.ht__active_highlight .ht_nestingButton.ht_nestingExpand:before{color:var(--ht-collapse-button-close-icon-active-color)}.handsontable th.ht__active_highlight .collapsibleIndicator.collapsed:hover:before,.handsontable th.ht__active_highlight .collapsibleIndicator.ht_nestingExpand:hover:before,.handsontable th.ht__active_highlight .ht_nestingButton.collapsed:hover:before,.handsontable th.ht__active_highlight .ht_nestingButton.ht_nestingExpand:hover:before{color:var(--ht-collapse-button-close-hover-icon-active-color)}.handsontable th.ht__active_highlight .collapsibleIndicator.expanded:before,.handsontable th.ht__active_highlight .collapsibleIndicator.ht_nestingCollapse:before,.handsontable th.ht__active_highlight .ht_nestingButton.expanded:before,.handsontable th.ht__active_highlight .ht_nestingButton.ht_nestingCollapse:before{color:var(--ht-collapse-button-open-icon-active-color)}.handsontable th.ht__active_highlight .collapsibleIndicator.expanded:hover:before,.handsontable th.ht__active_highlight .collapsibleIndicator.ht_nestingCollapse:hover:before,.handsontable th.ht__active_highlight .ht_nestingButton.expanded:hover:before,.handsontable th.ht__active_highlight .ht_nestingButton.ht_nestingCollapse:hover:before{color:var(--ht-collapse-button-open-hover-icon-active-color)}.handsontable thead th.htRowspanHeader+th{border-inline-start-width:0}.handsontable thead th.htRowspanHeader{vertical-align:bottom;height:auto;overflow:visible}.handsontable thead th.htRowspanHeader.ht__active_highlight{border-inline-start-color:var(--ht-header-active-border-color);z-index:1}.handsontable.htRowHeaders.htHasRowspanHeaders :where(table.htCore)>thead>tr:last-child>th:first-child:not(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)){border-bottom-left-radius:0}.handsontable.htRowHeaders.htHasRowspanHeaders :where(table.htCore)>thead>tr:last-child>th:first-child:is(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)){border-bottom-right-radius:0}.handsontable.htHasRowspanHeaders .ht_clone_inline_start .htCore>tbody>tr:first-child>th:first-child:not(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)){border-top-left-radius:0}.handsontable.htHasRowspanHeaders .ht_clone_inline_start .htCore>tbody>tr:first-child>th:first-child:is(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)){border-top-right-radius:0}.handsontable .ht_master:not(.innerBorderTop):not(.innerBorderBottom) thead th.htRowspanBottomLevel,.handsontable .ht_master:not(.innerBorderTop):not(.innerBorderBottom)~.handsontable thead th.htRowspanBottomLevel{border-bottom-width:0}.handsontable thead th.hiddenHeader:not(:first-of-type){display:none}.handsontable thead th.hiddenHeaderText .colHeader{opacity:0}.handsontable th.ht_nestingLevels>.relative{align-items:center;gap:5px;display:flex}.handsontable th.ht_nestingLevels span:last-child{padding-left:calc(var(--ht-icon-size) + 5px)}.handsontable th.ht_nestingLevels span.ht_nestingLevel{display:inline-block}.handsontable th.ht_nestingLevels span.ht_nestingLevel_empty{order:-2;width:5px;height:1px;display:inline-block;position:relative}.handsontable th.ht_nestingLevels .ht_nestingButton{cursor:pointer;order:-1;position:relative}.handsontable th.beforeHiddenColumn,.handsontable th.afterHiddenColumn{position:relative}.handsontable th.beforeHiddenColumn:before,.handsontable th.beforeHiddenColumn:after,.handsontable th.afterHiddenColumn:before,.handsontable th.afterHiddenColumn:after{color:var(--ht-hidden-indicator-color);position:absolute;top:50%;transform:translateY(-50%);width:10px!important;height:10px!important}.handsontable th.beforeHiddenColumn:after{content:"";display:block;right:-2px}.handsontable th.afterHiddenColumn:before{content:"";display:block;left:-2px}.handsontable th.ht__active_highlight.beforeHiddenColumn:before,.handsontable th.ht__active_highlight.beforeHiddenColumn:after,.handsontable th.ht__active_highlight.afterHiddenColumn:before,.handsontable th.ht__active_highlight.afterHiddenColumn:after{color:var(--ht-icon-button-active-icon-color,var(--ht-icon-active-button-icon-color))}[dir=rtl].handsontable th.beforeHiddenColumn:after{right:initial;left:-2px;transform:translateY(-50%)rotate(180deg)}[dir=rtl].handsontable th.afterHiddenColumn:before{right:-2px;left:initial;transform:translateY(-50%)rotate(180deg)}.handsontable th.beforeHiddenRow,.handsontable th.afterHiddenRow{position:relative}.handsontable th.beforeHiddenRow:before,.handsontable th.beforeHiddenRow:after,.handsontable th.afterHiddenRow:before,.handsontable th.afterHiddenRow:after{color:var(--ht-hidden-indicator-color);position:absolute;left:50%;transform:translate(-50%);width:10px!important;height:10px!important}.handsontable th.beforeHiddenRow:after{content:"";display:block;bottom:-2px}.handsontable th.afterHiddenRow:before{content:"";display:block;top:-2px}.handsontable th.ht__active_highlight.beforeHiddenRow:before,.handsontable th.ht__active_highlight.beforeHiddenRow:after,.handsontable th.ht__active_highlight.afterHiddenRow:before,.handsontable th.ht__active_highlight.afterHiddenRow:after{color:var(--ht-icon-button-active-icon-color,var(--ht-icon-active-button-icon-color))}.handsontable .changeType{box-sizing:border-box;width:var(--ht-icon-button-hit-area-size);height:var(--ht-icon-button-hit-area-size);margin:calc(-1*(var(--ht-icon-button-hit-area-size) - var(--ht-icon-size))/2 + 1px);box-shadow:none;color:inherit;z-index:1;background:0 0;border:none;outline:none;flex-shrink:0;padding:0;position:relative;overflow:visible}.handsontable .changeType:before{content:"";width:var(--ht-icon-size);height:var(--ht-icon-size);margin-top:calc(-.5*var(--ht-icon-size));margin-left:calc(-.5*var(--ht-icon-size));color:var(--ht-icon-button-icon-color);z-index:1;display:block;position:absolute;top:50%;left:50%}.handsontable .changeType:after{content:"";width:var(--ht-icon-size);height:var(--ht-icon-size);margin-top:calc(-.5*var(--ht-icon-size));margin-left:calc(-.5*var(--ht-icon-size));border-radius:var(--ht-icon-button-border-radius);box-shadow:0 0 0 1px var(--ht-icon-button-border-color);background-color:var(--ht-icon-button-background-color);z-index:0;display:block;position:absolute;top:50%;left:50%}.handsontable .changeType:hover{cursor:pointer}.handsontable .changeType:hover:before{color:var(--ht-icon-button-hover-icon-color)}.handsontable .changeType:hover:after{box-shadow:0 0 0 1px var(--ht-icon-button-hover-border-color);background-color:var(--ht-icon-button-hover-background-color)}.handsontable .ht__active_highlight .changeType:before{color:var(--ht-icon-button-active-icon-color,var(--ht-icon-active-button-icon-color))}.handsontable .ht__active_highlight .changeType:after{box-shadow:0 0 0 1px var(--ht-icon-button-active-border-color,var(--ht-icon-active-button-border-color));background-color:var(--ht-icon-button-active-background-color,var(--ht-icon-active-button-background-color))}.handsontable .ht__active_highlight .changeType:hover:before{color:var(--ht-icon-button-active-hover-icon-color,var(--ht-icon-active-button-hover-icon-color))}.handsontable .ht__active_highlight .changeType:hover:after{box-shadow:0 0 0 1px var(--ht-icon-button-active-hover-border-color,var(--ht-icon-active-button-hover-border-color));background-color:var(--ht-icon-button-active-hover-background-color,var(--ht-icon-active-button-hover-background-color))}.handsontable th.htFiltersActive{background-color:var(--ht-header-filter-background-color)}.handsontable th.htFiltersActive.ht__active_highlight{background-color:color-mix(in srgb,var(--ht-header-active-background-color),var(--ht-header-filter-background-color)20%)}.handsontable.htDropdownMenu>.ht_master,.handsontable.htContextMenu>.ht_master,.handsontable.htFiltersConditionsMenu>.ht_master{box-shadow:var(--ht-menu-shadow-x,0)var(--ht-menu-shadow-y,0)var(--ht-menu-shadow-blur,8px)color-mix(in srgb,var(--ht-menu-shadow-color,#000)var(--ht-menu-shadow-opacity,100%),transparent);border:var(--ht-menu-border-width,1px)solid var(--ht-menu-border-color,#e5e5e9);border-radius:var(--ht-menu-border-radius);padding:var(--ht-menu-vertical-padding,8px)var(--ht-menu-horizontal-padding,0);background-color:var(--ht-background-color,#fff);overflow:hidden}.handsontable.htDropdownMenu:not(.htGhostTable),.handsontable.htContextMenu:not(.htGhostTable),.handsontable.htFiltersConditionsMenu:not(.htGhostTable){z-index:1060;display:none;position:absolute}.handsontable.htDropdownMenu .ht_clone_top,.handsontable.htDropdownMenu .ht_clone_bottom,.handsontable.htDropdownMenu .ht_clone_inline_start,.handsontable.htDropdownMenu .ht_clone_top_inline_start_corner,.handsontable.htDropdownMenu .ht_clone_bottom_inline_start_corner,.handsontable.htContextMenu .ht_clone_top,.handsontable.htContextMenu .ht_clone_bottom,.handsontable.htContextMenu .ht_clone_inline_start,.handsontable.htContextMenu .ht_clone_top_inline_start_corner,.handsontable.htContextMenu .ht_clone_bottom_inline_start_corner,.handsontable.htFiltersConditionsMenu .ht_clone_top,.handsontable.htFiltersConditionsMenu .ht_clone_bottom,.handsontable.htFiltersConditionsMenu .ht_clone_inline_start,.handsontable.htFiltersConditionsMenu .ht_clone_top_inline_start_corner,.handsontable.htFiltersConditionsMenu .ht_clone_bottom_inline_start_corner{display:none}.handsontable.htDropdownMenu table.htCore,.handsontable.htContextMenu table.htCore,.handsontable.htFiltersConditionsMenu table.htCore{overflow:hidden}.handsontable.htDropdownMenu .htCustomMenuRenderer .table.htCore,.handsontable.htContextMenu .htCustomMenuRenderer .table.htCore,.handsontable.htFiltersConditionsMenu .htCustomMenuRenderer .table.htCore{box-shadow:none}.handsontable.htDropdownMenu.handsontable:focus,.handsontable.htContextMenu.handsontable:focus,.handsontable.htFiltersConditionsMenu.handsontable:focus{outline:none}.handsontable.htDropdownMenu .wtBorder,.handsontable.htContextMenu .wtBorder,.handsontable.htFiltersConditionsMenu .wtBorder{visibility:hidden}.handsontable.htDropdownMenu tbody tr:first-of-type td:first-child,.handsontable.htDropdownMenu tbody tr:first-of-type th:first-child,.handsontable.htContextMenu tbody tr:first-of-type td:first-child,.handsontable.htContextMenu tbody tr:first-of-type th:first-child,.handsontable.htFiltersConditionsMenu tbody tr:first-of-type td:first-child,.handsontable.htFiltersConditionsMenu tbody tr:first-of-type th:first-child{height:calc(var(--ht-cell-vertical-padding)*2 + var(--ht-line-height) + 1px)}.handsontable.htDropdownMenu table tbody tr td,.handsontable.htContextMenu table tbody tr td,.handsontable.htFiltersConditionsMenu table tbody tr td{padding:var(--ht-menu-item-vertical-padding,4px)var(--ht-menu-item-horizontal-padding,8px);white-space:nowrap;text-overflow:ellipsis;background:var(--ht-background-color,#fff);cursor:pointer;transition:var(--ht-table-transition)background ease-in-out;border-width:0;position:relative;overflow:hidden}.handsontable.htDropdownMenu table tbody tr td:first-child,.handsontable.htContextMenu table tbody tr td:first-child,.handsontable.htFiltersConditionsMenu table tbody tr td:first-child{border-top-width:0;border-inline-end-width:0;border-bottom-width:0;border-inline-start-width:0}.handsontable.htDropdownMenu table tbody tr td.htDimmed,.handsontable.htContextMenu table tbody tr td.htDimmed,.handsontable.htFiltersConditionsMenu table tbody tr td.htDimmed{font-style:normal;color:inherit!important;background-color:inherit!important}.handsontable.htDropdownMenu table tbody tr td:not(.handsontable.htDropdownMenu table tbody tr td.htCustomMenuRenderer,.handsontable.htDropdownMenu table tbody tr td.htDisabled,.handsontable.htContextMenu table tbody tr td.htCustomMenuRenderer,.handsontable.htContextMenu table tbody tr td.htDisabled,.handsontable.htFiltersConditionsMenu table tbody tr td.htCustomMenuRenderer,.handsontable.htFiltersConditionsMenu table tbody tr td.htDisabled):hover,.handsontable.htContextMenu table tbody tr td:not(.handsontable.htDropdownMenu table tbody tr td.htCustomMenuRenderer,.handsontable.htDropdownMenu table tbody tr td.htDisabled,.handsontable.htContextMenu table tbody tr td.htCustomMenuRenderer,.handsontable.htContextMenu table tbody tr td.htDisabled,.handsontable.htFiltersConditionsMenu table tbody tr td.htCustomMenuRenderer,.handsontable.htFiltersConditionsMenu table tbody tr td.htDisabled):hover,.handsontable.htFiltersConditionsMenu table tbody tr td:not(.handsontable.htDropdownMenu table tbody tr td.htCustomMenuRenderer,.handsontable.htDropdownMenu table tbody tr td.htDisabled,.handsontable.htContextMenu table tbody tr td.htCustomMenuRenderer,.handsontable.htContextMenu table tbody tr td.htDisabled,.handsontable.htFiltersConditionsMenu table tbody tr td.htCustomMenuRenderer,.handsontable.htFiltersConditionsMenu table tbody tr td.htDisabled):hover{cursor:pointer;background:color-mix(in srgb,var(--ht-menu-item-hover-color)var(--ht-menu-item-hover-color-opacity,100%),transparent)!important}.handsontable.htDropdownMenu table tbody tr td:not(.handsontable.htDropdownMenu table tbody tr td.htCustomMenuRenderer,.handsontable.htDropdownMenu table tbody tr td.htDisabled,.handsontable.htContextMenu table tbody tr td.htCustomMenuRenderer,.handsontable.htContextMenu table tbody tr td.htDisabled,.handsontable.htFiltersConditionsMenu table tbody tr td.htCustomMenuRenderer,.handsontable.htFiltersConditionsMenu table tbody tr td.htDisabled).current:not([aria-expanded=true]),.handsontable.htContextMenu table tbody tr td:not(.handsontable.htDropdownMenu table tbody tr td.htCustomMenuRenderer,.handsontable.htDropdownMenu table tbody tr td.htDisabled,.handsontable.htContextMenu table tbody tr td.htCustomMenuRenderer,.handsontable.htContextMenu table tbody tr td.htDisabled,.handsontable.htFiltersConditionsMenu table tbody tr td.htCustomMenuRenderer,.handsontable.htFiltersConditionsMenu table tbody tr td.htDisabled).current:not([aria-expanded=true]),.handsontable.htFiltersConditionsMenu table tbody tr td:not(.handsontable.htDropdownMenu table tbody tr td.htCustomMenuRenderer,.handsontable.htDropdownMenu table tbody tr td.htDisabled,.handsontable.htContextMenu table tbody tr td.htCustomMenuRenderer,.handsontable.htContextMenu table tbody tr td.htDisabled,.handsontable.htFiltersConditionsMenu table tbody tr td.htCustomMenuRenderer,.handsontable.htFiltersConditionsMenu table tbody tr td.htDisabled).current:not([aria-expanded=true]){box-shadow:inset 0 0 0 1px var(--ht-accent-color)}.handsontable.htDropdownMenu table tbody tr td.htSubmenu .htItemWrapper,.handsontable.htContextMenu table tbody tr td.htSubmenu .htItemWrapper,.handsontable.htFiltersConditionsMenu table tbody tr td.htSubmenu .htItemWrapper{margin-inline-end:calc(2*var(--ht-gap-size,4px) + var(--ht-icon-size))}.handsontable.htDropdownMenu table tbody tr td.htSubmenu .htItemWrapper:after,.handsontable.htContextMenu table tbody tr td.htSubmenu .htItemWrapper:after,.handsontable.htFiltersConditionsMenu table tbody tr td.htSubmenu .htItemWrapper:after{content:"";top:50%;right:calc(var(--ht-menu-item-horizontal-padding) + var(--ht-gap-size)*2);display:block;position:absolute;transform:translateY(-50%)}.handsontable.htDropdownMenu table tbody tr td.htSeparator,.handsontable.htContextMenu table tbody tr td.htSeparator,.handsontable.htFiltersConditionsMenu table tbody tr td.htSeparator{border-top:1px solid var(--ht-border-color);cursor:default;height:0;padding:0}.handsontable.htDropdownMenu table tbody tr td.htDisabled,.handsontable.htContextMenu table tbody tr td.htDisabled,.handsontable.htFiltersConditionsMenu table tbody tr td.htDisabled{color:var(--ht-disabled-color);cursor:default}.handsontable.htDropdownMenu table tbody tr td.htDisabled:hover,.handsontable.htContextMenu table tbody tr td.htDisabled:hover,.handsontable.htFiltersConditionsMenu table tbody tr td.htDisabled:hover{background:var(--ht-background-color);color:var(--ht-disabled-color)}.handsontable.htDropdownMenu table tbody tr td.htHidden,.handsontable.htContextMenu table tbody tr td.htHidden,.handsontable.htFiltersConditionsMenu table tbody tr td.htHidden{display:none}:is(.handsontable.htDropdownMenu table tbody tr td:has(.htItemWrapper .selected),.handsontable.htContextMenu table tbody tr td:has(.htItemWrapper .selected),.handsontable.htFiltersConditionsMenu table tbody tr td:has(.htItemWrapper .selected)){background-color:color-mix(in srgb,var(--ht-menu-item-active-color)var(--ht-menu-item-active-color-opacity,100%),transparent)}.handsontable.htDropdownMenu table tbody tr td .htItemWrapper,.handsontable.htContextMenu table tbody tr td .htItemWrapper,.handsontable.htFiltersConditionsMenu table tbody tr td .htItemWrapper{margin-inline:calc(2*var(--ht-gap-size,4px))}.handsontable.htDropdownMenu table tbody tr td .htItemWrapper:before,.handsontable.htContextMenu table tbody tr td .htItemWrapper:before,.handsontable.htFiltersConditionsMenu table tbody tr td .htItemWrapper:before{vertical-align:text-bottom;margin-right:12px}.handsontable.htDropdownMenu table tbody tr td .htItemWrapper span.selected,.handsontable.htContextMenu table tbody tr td .htItemWrapper span.selected,.handsontable.htFiltersConditionsMenu table tbody tr td .htItemWrapper span.selected{font-size:0;inset:0}.handsontable.htDropdownMenu table tbody tr td .htItemWrapper span.selected:after,.handsontable.htContextMenu table tbody tr td .htItemWrapper span.selected:after,.handsontable.htFiltersConditionsMenu table tbody tr td .htItemWrapper span.selected:after{content:"";top:50%;right:calc(var(--ht-menu-item-horizontal-padding) + var(--ht-gap-size)*2);color:var(--ht-accent-color);display:block;position:absolute;transform:translateY(-50%)}.handsontable.htDropdownMenu table tbody tr td div span.selected,.handsontable.htContextMenu table tbody tr td div span.selected,.handsontable.htFiltersConditionsMenu table tbody tr td div span.selected{position:absolute;inset-inline-end:0}.handsontable.htDropdownMenu table tbody tr td .htUIButton,.handsontable.htContextMenu table tbody tr td .htUIButton,.handsontable.htFiltersConditionsMenu table tbody tr td .htUIButton{width:calc(50% - var(--ht-gap-size))}.handsontable.htDropdownMenu table tbody tr td .htUIButton input,.handsontable.htContextMenu table tbody tr td .htUIButton input,.handsontable.htFiltersConditionsMenu table tbody tr td .htUIButton input{width:100%}.handsontable .htUIClearAll a,.handsontable .htUISelectAll a{padding:var(--ht-gap-size);text-decoration:none;display:inline-block}.handsontable .htUIMultipleSelect .ht_master .wtHolder{background:0 0;box-shadow:none!important;border-radius:0!important;overflow-y:scroll!important}.handsontable .htUIMultipleSelect .ht_master .wtHolder .htCore{box-shadow:none}[dir=rtl].handsontable.htDropdownMenu table tbody tr td.htSubmenu .htItemWrapper:after,[dir=rtl].handsontable.htContextMenu table tbody tr td.htSubmenu .htItemWrapper:after,[dir=rtl].handsontable.htFiltersConditionsMenu table tbody tr td.htSubmenu .htItemWrapper:after{left:calc(4*var(--ht-gap-size));right:auto;transform:translateY(-50%)rotate(180deg)}[dir=rtl].handsontable.htDropdownMenu table tbody tr td .htItemWrapper span.selected:after,[dir=rtl].handsontable.htContextMenu table tbody tr td .htItemWrapper span.selected:after,[dir=rtl].handsontable.htFiltersConditionsMenu table tbody tr td .htItemWrapper span.selected:after{left:calc(4*var(--ht-gap-size));right:auto}.handsontable.htFiltersConditionsMenu:not(.htGhostTable){z-index:1070}.handsontable .ht_master table td.htCustomMenuRenderer{cursor:auto}.handsontable .ht_master table td.htCustomMenuRenderer.htFiltersMenuActionBar{padding-top:calc(var(--ht-menu-item-vertical-padding,4px)*2)}.handsontable .htFiltersMenuLabel{font-size:var(--ht-font-size-small);line-height:var(--ht-line-height-small);font-weight:var(--ht-font-weight);margin-bottom:calc(var(--ht-gap-size,2px)*2)}.handsontable .htFiltersMenuLabel:empty{display:none}.handsontable .htFiltersMenuCondition{padding-top:calc(var(--ht-gap-size,2px)*3)!important;padding-bottom:0!important}.handsontable .htFiltersMenuCondition .border{border-bottom:1px solid var(--ht-border-color)!important}.handsontable .htFiltersMenuCondition .htUIInput{margin-top:calc(var(--ht-gap-size,2px)*2)}.handsontable .htFiltersMenuValue{padding-top:calc(var(--ht-gap-size,2px)*3)!important;border-bottom:1px solid var(--ht-border-color)!important;padding-bottom:0!important}.handsontable .htFiltersMenuOperators{padding-top:calc(var(--ht-gap-size,2px)*2)!important;padding-bottom:0!important}.handsontable .htUISelectionControls{margin:0 calc(var(--ht-gap-size,2px)*-1);padding-top:calc(var(--ht-gap-size,2px)*2)!important;padding-bottom:var(--ht-gap-size,2px)!important}.handsontable .htUIMultipleSelectHot{--ht-cell-horizontal-padding:calc(var(--ht-menu-item-horizontal-padding,2px) + var(--ht-gap-size,2px)*2);--ht-cell-vertical-padding:4px;width:calc(100% + var(--ht-menu-item-horizontal-padding,2px)*2 + var(--ht-gap-size,2px)*4);margin:0 calc((var(--ht-menu-item-horizontal-padding,2px) + var(--ht-gap-size,2px)*2)*-1);overflow:initial!important}.handsontable .htUIMultipleSelectHot:before{content:"";background-color:var(--ht-border-color);width:100%;height:1px;display:block;position:absolute;top:-1px;left:0}.handsontable .htUIMultipleSelectHot .wtHolder{box-sizing:border-box;padding:0;overflow-x:hidden}.handsontable .htUIMultipleSelectHot .wtHolder .wtSpreader{padding:calc(var(--ht-gap-size)*2)0}.handsontable .htUIMultipleSelectHot .wtHolder td{padding:var(--ht-cell-vertical-padding)var(--ht-cell-horizontal-padding);height:auto!important}.handsontable .htUIClearAll,.handsontable .htUISelectAll{margin-right:var(--ht-gap-size,4px);margin-bottom:var(--ht-gap-size,4px);display:inline-block}.handsontable .htUIClearAll a,.handsontable .htUISelectAll a{font-size:var(--ht-font-size);line-height:var(--ht-line-height);color:var(--ht-link-color);border-radius:var(--ht-button-border-radius)}.handsontable .htUIClearAll a:hover,.handsontable .htUISelectAll a:hover{color:var(--ht-link-hover-color)}.handsontable .htUIClearAll a:focus,.handsontable .htUISelectAll a:focus{outline:1px solid var(--ht-link-hover-color)}.handsontable .htUIMultipleSelect .ht_master .wtHolder{overflow:auto}.handsontable .htUIMultipleSelect .ht_master .wtHolder .wtHider,.handsontable .htUIMultipleSelect .ht_master .wtHolder .htCore,.handsontable .htUIMultipleSelect .ht_master .wtHolder tr,.handsontable .htUIMultipleSelect .ht_master .wtHolder td{background:0 0}.handsontable .htUIInput.htUIButton{cursor:pointer;display:inline-block}.handsontable .htUIInput.htUIButtonOK{margin-inline-start:0;margin-inline-end:calc(2*var(--ht-gap-size,2px))}.handsontable td a.ht-hyperlink{color:var(--ht-link-color);text-decoration:underline}.handsontable td a.ht-hyperlink:hover{color:var(--ht-link-hover-color)}.handsontable .htCommentCell{position:relative}.handsontable .htCommentCell:after{content:"";top:0;border-inline-start:var(--ht-comments-indicator-size,4px)solid #0000;border-inline-end:none;border-top:var(--ht-comments-indicator-size,4px)solid var(--ht-comments-indicator-color,#1a42e8);display:block;position:absolute;inset-inline-start:unset;inset-inline-end:0}.htCommentsContainer .htComments{z-index:1059;display:none;position:absolute}.htCommentsContainer .htCommentTextArea{font-family:var(--ht-font-family),-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;box-shadow:var(--ht-menu-shadow-x,0)var(--ht-menu-shadow-y,0)var(--ht-menu-shadow-blur,8px)color-mix(in srgb,var(--ht-menu-shadow-color,#000)var(--ht-menu-shadow-opacity,100%),transparent);width:240px;height:88px;font-size:var(--ht-font-size);line-height:var(--ht-line-height);font-weight:var(--ht-font-weight);padding:var(--ht-comments-textarea-vertical-padding)var(--ht-comments-textarea-horizontal-padding);border:var(--ht-comments-textarea-border-width,1px)solid var(--ht-comments-textarea-border-color,transparent);border-inline-start:var(--ht-comments-textarea-border-width,1px)solid var(--ht-comments-textarea-border-color,#1a42e8);color:var(--ht-comments-textarea-foreground-color);background-color:var(--ht-comments-textarea-background-color,#fff);box-sizing:border-box;-webkit-appearance:none;margin:0 -1px;outline:0!important}.htCommentsContainer .htCommentTextArea:focus{border:var(--ht-comments-textarea-focus-border-width,1px)solid var(--ht-comments-textarea-focus-border-color,#1a42e8);color:var(--ht-comments-textarea-focus-foreground-color);background-color:var(--ht-comments-textarea-focus-background-color,#fff)}.htBorders .wtBorder.ht-border-style-dashed-vertical{background-image:repeating-linear-gradient(to bottom,var(--ht-custom-border-color)0 5px,transparent 0 10px)}.htBorders .wtBorder.ht-border-style-dashed-horizontal{background-image:repeating-linear-gradient(to right,var(--ht-custom-border-color)0 5px,transparent 0 10px)}.htBorders .wtBorder.ht-border-style-dotted-horizontal{background-image:radial-gradient(circle,var(--ht-custom-border-color)calc(var(--ht-custom-border-size)/2),transparent 0);background-size:calc(var(--ht-custom-border-size)*2)var(--ht-custom-border-size);background-repeat:repeat-x}.htBorders .wtBorder.ht-border-style-dotted-vertical{background-image:radial-gradient(circle,var(--ht-custom-border-color)calc(var(--ht-custom-border-size)/2),transparent 0);background-size:var(--ht-custom-border-size)calc(var(--ht-custom-border-size)*2);background-repeat:repeat-y}.handsontable .colHeader.columnSorting.sortAction{box-sizing:border-box;min-width:min(var(--ht-icon-size,16px) + 8px,100%);flex-grow:0;max-width:100%;margin-inline:auto;position:static}.handsontable .colHeader.columnSorting.sortAction:before,.handsontable .colHeader.columnSorting.sortAction:after{margin-inline:var(--ht-sort-indicator-offset);margin-inline-end:var(--ht-sort-indicator-offset-end)}.handsontable .htLeft .colHeader.columnSorting.sortAction{margin-left:0;margin-right:auto}.handsontable .htRight .colHeader.columnSorting.sortAction{margin-left:auto;margin-right:0}.handsontable th .relative{--ht-sort-indicator-offset:var(--ht-cell-horizontal-padding);--ht-sort-indicator-offset-end:var(--ht-cell-horizontal-padding);--ht-sort-indicator-reserve:var(--ht-cell-horizontal-padding);--ht-sort-indicator-reserve-end:var(--ht-sort-indicator-reserve);--ht-header-button-slot:calc(var(--ht-icon-size,16px) + 2px)}.handsontable .relative.has-header-button{--ht-sort-indicator-offset-end:calc(var(--ht-cell-horizontal-padding) + var(--ht-icon-size,16px) + (var(--ht-icon-button-hit-area-size,24px) - var(--ht-icon-size,16px))*.5);--ht-sort-indicator-reserve-end:var(--ht-cell-horizontal-padding)}.handsontable .relative.has-sort-indicator.has-header-button{column-gap:calc(2px + var(--ht-header-button-slot))}.handsontable .relative.has-sort-indicator{--ht-sort-indicator-reserve:calc(var(--ht-cell-horizontal-padding) + var(--ht-icon-size,16px) + 2px);padding-inline-end:var(--ht-sort-indicator-reserve-end)}.handsontable .relative.htRight.has-sort-indicator,.handsontable .htRight .relative.has-sort-indicator{--ht-header-button-slot:0px;padding-inline-start:var(--ht-sort-indicator-reserve);padding-inline-end:var(--ht-cell-horizontal-padding)}.handsontable .columnSorting:not(.indicatorDisabled){position:relative}.handsontable .columnSorting:not(.indicatorDisabled).sortAction:hover{cursor:pointer;text-decoration:none}.handsontable .columnSorting:not(.indicatorDisabled).sortAction:before{content:"";width:var(--ht-icon-size,16px);text-align:right;display:block;position:absolute;top:50%;right:2px;transform:translateY(-50%)}.handsontable .htRight .columnSorting.sortAction:before{text-align:left;left:2px;right:auto}[dir=rtl] .handsontable .relative.htRight.has-sort-indicator,[dir=rtl] .handsontable .htRight .relative.has-sort-indicator{--ht-header-button-slot:calc(var(--ht-icon-size,16px) + 2px);padding-inline-start:var(--ht-cell-horizontal-padding);padding-inline-end:var(--ht-sort-indicator-reserve-end)}[dir=rtl] .handsontable .relative.htLeft.has-sort-indicator,[dir=rtl] .handsontable .htLeft .relative.has-sort-indicator{--ht-header-button-slot:0px;padding-inline-start:var(--ht-sort-indicator-reserve);padding-inline-end:var(--ht-cell-horizontal-padding)}[dir=rtl] .handsontable .columnSorting.sortAction:before{text-align:left;left:2px;right:auto}[dir=rtl] .handsontable .htLeft .columnSorting.sortAction:before{text-align:right;left:auto;right:2px}.htGhostTable .htCore .relative{--ht-sort-indicator-offset:0px;--ht-sort-indicator-offset-end:0px;--ht-header-button-slot:0px}.htGhostTable .htCore .relative.has-header-button{--ht-sort-indicator-reserve:var(--ht-cell-horizontal-padding);--ht-sort-indicator-reserve-end:var(--ht-cell-horizontal-padding)}.htGhostTable .htCore span.colHeader.columnSorting:not(.indicatorDisabled):before{content:"*";padding-inline-end:calc(var(--ht-icon-size,16px) + 2px);display:inline-block;position:relative}.handsontable .colHeader.columnSorting:after{content:"";text-align:right;width:8px;margin-top:4px;font-size:8px;display:block;position:absolute;top:50%;right:0;transform:translateY(-50%)}.handsontable .colHeader.columnSorting[class^=sort-]:after,.handsontable .colHeader.columnSorting[class*=\\ sort-]:after{content:"+"}.handsontable .colHeader.columnSorting.sort-1:after{content:"1"}.handsontable .colHeader.columnSorting.sort-2:after{content:"2"}.handsontable .colHeader.columnSorting.sort-3:after{content:"3"}.handsontable .colHeader.columnSorting.sort-4:after{content:"4"}.handsontable .colHeader.columnSorting.sort-5:after{content:"5"}.handsontable .colHeader.columnSorting.sort-6:after{content:"6"}.handsontable .colHeader.columnSorting.sort-7:after{content:"7"}.handsontable .htRight .colHeader.columnSorting:after,[dir=rtl] .handsontable .colHeader.columnSorting:after{text-align:left;left:0;right:auto}[dir=rtl] .handsontable .htLeft .colHeader.columnSorting:after{text-align:right;left:auto;right:0}.htGhostTable th div:has(.changeType) span.colHeader.columnSorting:not(.indicatorDisabled){padding-inline-end:var(--ht-gap-size)}.handsontable .htRowHeaders .ht_master.innerBorderInlineStart~.ht_clone_top_inline_start_corner :where(table.htCore>thead>tr)>th:nth-child(2),.handsontable .htRowHeaders .ht_master.innerBorderInlineStart~.ht_clone_inline_start :where(table.htCore>tbody>tr)>td:first-of-type{border-left:0}.handsontable .ht_clone_top_inline_start_corner th.ht__active_highlight{box-shadow:none}.handsontable .manualColumnResizer{cursor:col-resize;opacity:0;z-index:210;background:0 0;width:10px;margin:0;position:absolute;top:0}.handsontable .manualColumnResizer:before,.handsontable .manualColumnResizer:after{content:"";background:var(--ht-resize-indicator-color);border-radius:2px;width:2px;height:calc(100% - 12px);max-height:16px;margin-top:.5px;display:block;position:absolute;top:50%;left:1px;transform:translateY(-50%)}.handsontable .manualColumnResizer:after{left:auto;right:0}.handsontable .manualColumnResizer:hover,.handsontable .manualColumnResizer.active{opacity:1}.handsontable .manualColumnResizerGuide{inset-inline-end:unset;width:0;border-inline-end:1px solid var(--ht-accent-color);border-inline-start:none;margin-inline-start:5px;margin-inline-end:unset;display:none;position:absolute;top:0}.handsontable .manualColumnResizerGuide.active{z-index:209;display:block}.handsontable .manualRowResizer{z-index:210;cursor:row-resize;opacity:0;background:0 0;height:10px;margin:0;position:absolute;left:0}.handsontable .manualRowResizer:before,.handsontable .manualRowResizer:after{content:"";background:var(--ht-resize-indicator-color);border-radius:2px;width:calc(100% - 12px);max-width:16px;height:2px;display:block;position:absolute;top:1px;left:50%;transform:translate(-50%)}.handsontable .manualRowResizer:after{top:auto;bottom:0}.handsontable .manualRowResizer:hover,.handsontable .manualRowResizer.active{opacity:1}.handsontable .manualRowResizerGuide{border-bottom:1px solid var(--ht-accent-color);border-top:none;height:0;margin-top:5px;display:none;position:absolute;bottom:0;left:0}.handsontable .manualRowResizerGuide.active{z-index:209;display:block}.handsontable tbody td[rowspan][class*=area][class*=highlight]:not([class*=fullySelectedMergedCell]):before{opacity:0}.handsontable tbody td[rowspan][class*=area][class*=highlight][class*=fullySelectedMergedCell-multiple]:before,.handsontable tbody td[rowspan][class*=area][class*=highlight][class*=fullySelectedMergedCell-0]:before{opacity:.14}.handsontable tbody td[rowspan][class*=area][class*=highlight][class*=fullySelectedMergedCell-1]:before{opacity:.21}.handsontable tbody td[rowspan][class*=area][class*=highlight][class*=fullySelectedMergedCell-2]:before{opacity:.28}.handsontable tbody td[rowspan][class*=area][class*=highlight][class*=fullySelectedMergedCell-3]:before{opacity:.35}.handsontable tbody td[rowspan][class*=area][class*=highlight][class*=fullySelectedMergedCell-4]:before{opacity:.42}.handsontable tbody td[rowspan][class*=area][class*=highlight][class*=fullySelectedMergedCell-5]:before{opacity:.49}.handsontable tbody td[rowspan][class*=area][class*=highlight][class*=fullySelectedMergedCell-6]:before{opacity:.56}.handsontable tbody td[rowspan][class*=area][class*=highlight][class*=fullySelectedMergedCell-7]:before{opacity:.63}.handsontable .ht__manualColumnMove.after-selection--columns thead th.ht__highlight,.handsontable .ht__manualColumnMove.after-selection--columns thead th.ht__active_highlight,.handsontable.ht__manualColumnMove.after-selection--columns thead th.ht__highlight,.handsontable.ht__manualColumnMove.after-selection--columns thead th.ht__active_highlight{cursor:move;cursor:-moz-grab;cursor:-webkit-grab;cursor:grab}.handsontable .ht__manualColumnMove.on-moving--columns *,.handsontable .ht__manualColumnMove.on-moving--columns thead th.ht__highlight,.handsontable.ht__manualColumnMove.on-moving--columns *,.handsontable.ht__manualColumnMove.on-moving--columns thead th.ht__highlight{cursor:move;cursor:-moz-grabbing;cursor:-webkit-grabbing;cursor:grabbing}.handsontable .ht__manualColumnMove.on-moving--columns .manualColumnResizer,.handsontable.ht__manualColumnMove.on-moving--columns .manualColumnResizer{display:none}.handsontable .ht__manualColumnMove--guideline,.handsontable .ht__manualColumnMove--backlight,.handsontable.ht__manualColumnMove--guideline,.handsontable.ht__manualColumnMove--backlight{height:100%;display:none;position:absolute}.handsontable .ht__manualColumnMove--guideline,.handsontable.ht__manualColumnMove--guideline{z-index:205;background:var(--ht-move-indicator-color,#1a42e8);width:1px;margin-inline:-.5px 0;top:0}.handsontable .ht__manualColumnMove--backlight,.handsontable.ht__manualColumnMove--backlight{z-index:205;pointer-events:none;background:color-mix(in srgb,var(--ht-move-backlight-color)var(--ht-move-backlight-opacity,100%),transparent);display:none}.handsontable .on-moving--columns.show-ui .ht__manualColumnMove--guideline,.handsontable .on-moving--columns .ht__manualColumnMove--backlight,.handsontable.on-moving--columns.show-ui .ht__manualColumnMove--guideline,.handsontable.on-moving--columns .ht__manualColumnMove--backlight{display:block}.handsontable .wtHider{position:relative}.handsontable .ht__manualRowMove.after-selection--rows tbody th.ht__highlight,.handsontable.ht__manualRowMove.after-selection--rows tbody th.ht__highlight{cursor:move;cursor:-moz-grab;cursor:-webkit-grab;cursor:grab}.handsontable .ht__manualRowMove.on-moving--rows *,.handsontable .ht__manualRowMove.on-moving--rows tbody th.ht__highlight,.handsontable.ht__manualRowMove.on-moving--rows *,.handsontable.ht__manualRowMove.on-moving--rows tbody th.ht__highlight{cursor:move;cursor:-moz-grabbing;cursor:-webkit-grabbing;cursor:grabbing}.handsontable .ht__manualRowMove.on-moving--rows .manualRowResizer,.handsontable.ht__manualRowMove.on-moving--rows .manualRowResizer{display:none}.handsontable .ht__manualRowMove--guideline,.handsontable .ht__manualRowMove--backlight,.handsontable.ht__manualRowMove--guideline,.handsontable.ht__manualRowMove--backlight{width:100%;display:none;position:absolute}.handsontable .ht__manualRowMove--guideline,.handsontable.ht__manualRowMove--guideline{border-top:1px solid var(--ht-move-indicator-color);z-index:205;left:0}.handsontable .ht__manualRowMove--backlight,.handsontable.ht__manualRowMove--backlight{z-index:205;pointer-events:none;background:color-mix(in srgb,var(--ht-move-backlight-color)var(--ht-move-backlight-opacity,100%),transparent);display:none}.handsontable .on-moving--rows.show-ui .ht__manualRowMove--guideline,.handsontable .on-moving--rows .ht__manualRowMove--backlight,.handsontable.on-moving--rows.show-ui .ht__manualRowMove--guideline,.handsontable.on-moving--rows .ht__manualRowMove--backlight{display:block}.ht-dialog{scrollbar-width:auto;scrollbar-color:var(--ht-scrollbar-thumb-color)var(--ht-scrollbar-track-color);font-size:var(--ht-font-size);line-height:var(--ht-line-height);letter-spacing:var(--ht-letter-spacing);z-index:1060;opacity:0;border-radius:var(--ht-border-radius);border:1px solid var(--ht-border-color);width:100%;height:100%;display:none;position:absolute;top:0;left:0;overflow-y:auto;box-sizing:border-box!important}.ht-dialog[dir=rtl]{left:auto;right:0}.ht-dialog:focus{border:1px solid var(--ht-accent-color);outline:none}.ht-dialog:has(.htFocusCatcher:focus){border:1px solid var(--ht-accent-color);outline:none}.ht-dialog *{box-sizing:border-box!important}.ht-dialog--background-solid{background-color:var(--ht-dialog-solid-background-color)}.ht-dialog--background-semi-transparent{background-color:color-mix(in srgb,var(--ht-dialog-semi-transparent-background-color)var(--ht-dialog-semi-transparent-background-opacity,100%),transparent)}.ht-dialog--animation{transition:opacity var(--ht-table-transition)ease-in-out}.ht-dialog--show{opacity:1}.ht-dialog__content-wrapper{width:100%;min-height:100%;padding:calc(var(--ht-gap-size)*4);border-radius:var(--ht-border-radius);justify-content:center;align-items:center;display:flex}.ht-dialog__content{padding:var(--ht-dialog-content-padding-horizontal)var(--ht-dialog-content-padding-vertical);max-width:480px;color:var(--ht-foreground-color);position:relative}.ht-dialog__content--background{box-shadow:var(--ht-shadow-x,0)var(--ht-shadow-y,0)var(--ht-shadow-blur,8px)color-mix(in srgb,var(--ht-shadow-color,#000)var(--ht-shadow-opacity,100%),transparent);border-radius:var(--ht-dialog-content-border-radius);background-color:var(--ht-dialog-content-background-color)}.ht-dialog--confirm .ht-dialog__content-wrapper{text-align:center;padding:calc(var(--ht-gap-size)*2)}.ht-dialog--confirm .ht-dialog__content-wrapper-inner{max-width:480px;padding:calc(var(--ht-gap-size)*2);border-radius:var(--ht-border-radius);flex-direction:column;justify-content:center;align-items:center;display:flex}.ht-dialog--confirm .ht-dialog__content-wrapper-inner--background{box-shadow:var(--ht-shadow-x,0)var(--ht-shadow-y,0)var(--ht-shadow-blur,8px)color-mix(in srgb,var(--ht-shadow-color,#000)var(--ht-shadow-opacity,100%),transparent);border-radius:var(--ht-dialog-content-border-radius);background-color:var(--ht-dialog-content-background-color)}.ht-dialog--confirm .ht-dialog__content-wrapper-inner:focus{box-shadow:0 0 0 1px var(--ht-accent-color);outline:none}.ht-dialog--confirm .ht-dialog__content{justify-content:center;align-items:center;gap:var(--ht-gap-size);flex-direction:column;display:flex}.ht-dialog--confirm .ht-dialog__content:has(.ht-dialog__buttons){gap:calc(var(--ht-gap-size)*2)}.ht-dialog--confirm .ht-dialog__title{font-size:var(--ht-font-size);font-weight:var(--ht-font-weight);line-height:var(--ht-line-height);margin:0}.ht-dialog--confirm .ht-dialog__description{color:var(--ht-foreground-secondary-color);font-size:var(--ht-font-size-small);line-height:var(--ht-line-height-small);font-weight:var(--ht-font-weight);margin:0}.ht-dialog--confirm .ht-dialog__buttons{justify-content:center;gap:calc(var(--ht-gap-size)*2);flex-flow:wrap;display:flex}.ht-notification{z-index:1070;pointer-events:none;position:absolute;inset:0;overflow:visible}.ht-notification__stack{overscroll-behavior:contain;pointer-events:auto;-webkit-overflow-scrolling:touch;scrollbar-width:auto;scrollbar-color:var(--ht-scrollbar-thumb-color)var(--ht-scrollbar-track-color);flex-direction:column;gap:10px;max-width:min(420px,100% - 40px);min-height:0;padding:10px;display:flex;position:absolute;overflow:hidden auto}.ht-notification__stack--top-start{top:10px;align-items:flex-start;max-height:calc(100% - 40px);inset-inline-start:10px}.ht-notification__stack--top-end{top:10px;align-items:flex-end;max-height:calc(100% - 40px);inset-inline-end:10px}.ht-notification__stack--bottom-start{bottom:10px;align-items:flex-start;max-height:calc(100% - 40px);inset-inline-start:10px}.ht-notification__stack--bottom-end{bottom:10px;align-items:flex-end;max-height:calc(100% - 40px);inset-inline-end:10px}.ht-notification__toast{box-shadow:var(--ht-shadow-x,0)var(--ht-shadow-y,0)var(--ht-shadow-blur,8px)color-mix(in srgb,var(--ht-shadow-color,#000)var(--ht-shadow-opacity,100%),transparent);pointer-events:auto;max-width:100%;color:var(--ht-notification-foreground-color,var(--ht-foreground-color));background-color:var(--ht-notification-background-color,var(--ht-background-color));border:1px solid var(--ht-notification-border-color,var(--ht-border-color));border-radius:var(--ht-border-radius,4px);font-size:var(--ht-font-size);line-height:var(--ht-line-height);letter-spacing:var(--ht-letter-spacing);outline:none;flex-shrink:0;display:flex;position:relative}.ht-notification__toast:focus-visible{box-shadow:0 0 0 1px var(--ht-accent-color)}.ht-notification__toast--animate{opacity:0;transition:opacity var(--ht-table-transition,.15s)ease-out,transform var(--ht-table-transition,.15s)ease-out}.ht-notification__toast--animate.ht-notification__toast--stack-top:not(.ht-notification__toast--visible){transform:translateY(-6px)}.ht-notification__toast--animate.ht-notification__toast--stack-bottom:not(.ht-notification__toast--visible){transform:translateY(6px)}.ht-notification__toast--visible{opacity:1;transform:translateY(0)}.ht-notification__toast--info .ht-notification__accent{display:none}.ht-notification__toast--success .ht-notification__accent{background-color:var(--ht-notification-success-accent,#37bc6c)}.ht-notification__toast--warning .ht-notification__accent{background-color:var(--ht-notification-warning-accent,#fbe952)}.ht-notification__toast--error .ht-notification__accent{background-color:var(--ht-notification-error-accent,#fa4d32)}.ht-notification__toast-inner{width:100%;min-width:0;direction:inherit;flex-direction:row;align-items:stretch;gap:0;padding:10px;display:flex}.ht-notification__accent{box-sizing:border-box;border-radius:4px;flex:0 0 4px;align-self:stretch;margin-inline-end:10px}.ht-notification__body{flex:auto;min-width:0}.ht-notification__title{margin:0 0 var(--ht-gap-size);font-size:var(--ht-font-size);font-weight:var(--ht-font-weight,600)}.ht-notification__message{font-size:var(--ht-font-size-small);word-break:break-word;margin:0}.ht-notification__actions{gap:var(--ht-gap-size);margin-top:var(--ht-gap-size);flex-wrap:wrap;display:flex}.ht-notification__close{box-sizing:border-box;width:var(--ht-icon-button-hit-area-size);height:var(--ht-icon-button-hit-area-size);color:var(--ht-icon-button-icon-color,inherit);cursor:pointer;border-radius:var(--ht-icon-button-border-radius,var(--ht-border-radius,4px));background:0 0;border:none;flex:none;align-self:flex-start;margin-inline-start:4px;padding:0;position:relative;overflow:visible}.ht-notification__close:before{content:"";top:50%;margin-top:calc(-.5*var(--ht-icon-size));margin-inline-start:calc(-.5*var(--ht-icon-size));display:block;position:absolute;inset-inline-start:50%}.ht-notification__close:hover{color:var(--ht-icon-button-hover-icon-color,inherit);background-color:var(--ht-icon-button-hover-background-color,color-mix(in srgb,var(--ht-foreground-color)8%,transparent))}.ht-notification__close:focus-visible{outline:2px solid var(--ht-accent-color);outline-offset:2px}.handsontable.ht-pagination{width:100%;color:var(--ht-pagination-bar-foreground-color);background:var(--ht-pagination-bar-background-color);font-size:var(--ht-font-size);line-height:var(--ht-line-height);box-sizing:border-box;overflow-x:auto}.handsontable.ht-pagination:not(.ht-slot-element){border:1px solid var(--ht-border-color);border-radius:var(--ht-border-radius)}.handsontable.ht-pagination .ht-pagination__inner{justify-content:space-between;align-items:center;gap:calc(var(--ht-gap-size)*4);padding-inline:var(--ht-pagination-bar-horizontal-padding);padding-block:var(--ht-pagination-bar-vertical-padding);flex-wrap:wrap;min-width:230px;display:flex}.handsontable.ht-pagination .ht-page-size-section{align-items:center;gap:calc(var(--ht-gap-size)*2);display:flex}.handsontable.ht-pagination .ht-page-size-section__label{white-space:nowrap}.handsontable.ht-pagination .ht-page-size-section__select-wrapper{border-radius:var(--ht-input-border-radius);position:relative}.handsontable.ht-pagination .ht-page-size-section__select-wrapper select{padding-inline-start:var(--ht-gap-size);padding-inline-end:calc(var(--ht-gap-size) + var(--ht-icon-size));padding-top:var(--ht-gap-size);padding-bottom:var(--ht-gap-size);border-radius:var(--ht-input-border-radius);color:var(--ht-input-foreground-color);background-color:var(--ht-input-background-color);border:1px solid var(--ht-input-border-color);line-height:calc(var(--ht-line-height) - 4px);-webkit-appearance:none;font-size:inherit;cursor:pointer}.handsontable.ht-pagination .ht-page-size-section__select-wrapper select:disabled{opacity:.4;cursor:default;color:var(--ht-input-disabled-foreground-color);background-color:var(--ht-input-disabled-background-color);border-color:var(--ht-input-disabled-border-color)}.handsontable.ht-pagination .ht-page-size-section__select-wrapper select:hover:not(:disabled){color:var(--ht-input-hover-foreground-color);background-color:var(--ht-input-hover-background-color);border-color:var(--ht-input-hover-border-color)}.handsontable.ht-pagination .ht-page-size-section__select-wrapper select:focus{color:var(--ht-input-focus-foreground-color);background-color:var(--ht-input-focus-background-color);border-color:var(--ht-input-focus-border-color);outline:none}.handsontable.ht-pagination .ht-page-size-section__select-wrapper:after{content:"";background-color:var(--ht-foreground-color);pointer-events:none;display:block;position:absolute;inset-block-end:50%;inset-inline-end:var(--ht-gap-size);transform:translateY(50%)}.handsontable.ht-pagination .ht-page-counter-section{margin-inline-end:auto}.handsontable.ht-pagination .ht-page-navigation-section{align-items:center;gap:1px;display:flex}.handsontable.ht-pagination .ht-page-navigation-section__button{font-size:inherit;border:1px solid var(--ht-pagination-button-border-color);color:var(--ht-pagination-button-foreground-color);background-color:var(--ht-pagination-button-background-color);border-radius:var(--ht-icon-button-large-border-radius);padding:var(--ht-icon-button-large-padding);cursor:pointer}.handsontable.ht-pagination .ht-page-navigation-section__button:before{content:"";display:block}.handsontable.ht-pagination .ht-page-navigation-section__button--disabled{cursor:default;pointer-events:none;color:var(--ht-pagination-button-disabled-foreground-color);background-color:var(--ht-pagination-button-disabled-background-color);border-color:var(--ht-pagination-button-disabled-border-color)}.handsontable.ht-pagination .ht-page-navigation-section__button:hover:not(:disabled){border-color:var(--ht-pagination-button-hover-border-color);color:var(--ht-pagination-button-hover-foreground-color);background-color:var(--ht-pagination-button-hover-background-color)}.handsontable.ht-pagination .ht-page-navigation-section__button:focus{border-color:var(--ht-pagination-button-focus-border-color);color:var(--ht-pagination-button-focus-foreground-color);background-color:var(--ht-pagination-button-focus-background-color);outline:none}.handsontable.ht-pagination .ht-page-navigation-section__label{white-space:nowrap;text-align:center;min-width:100px}.ht-loading__icon-svg{width:var(--ht-icon-size);height:var(--ht-icon-size);color:var(--ht-accent-color);transform-origin:50%;animation:1s linear infinite ht-loading-spin;display:block}.ht-loading__content{align-items:center;gap:calc(var(--ht-gap-size)*2);display:flex}.ht-loading__title{font-size:var(--ht-font-size);font-weight:var(--ht-font-weight);line-height:var(--ht-line-height);margin:0}.ht-loading__description{color:var(--ht-foreground-secondary-color);font-size:var(--ht-font-size-small);line-height:var(--ht-line-height-small);font-weight:var(--ht-font-weight);margin:0}@keyframes ht-loading-spin{to{transform:rotate(360deg)}}.ht-empty-data-state{scrollbar-width:auto;scrollbar-color:var(--ht-scrollbar-thumb-color)var(--ht-scrollbar-track-color);z-index:999;border:1px solid var(--ht-border-color);border-radius:var(--ht-border-radius);box-sizing:border-box;background-color:var(--ht-background-color);width:100%;display:none;position:absolute;left:0;overflow-y:auto}.ht-empty-data-state *{box-sizing:border-box!important}.ht-empty-data-state__content-wrapper{text-align:center;width:100%;min-height:100%;padding:calc(var(--ht-gap-size)*2);border-radius:var(--ht-border-radius);justify-content:center;align-items:center;display:flex}.ht-empty-data-state__content-wrapper-inner{max-width:480px;padding:calc(var(--ht-gap-size)*2);border-radius:var(--ht-border-radius);flex-direction:column;justify-content:center;align-items:center;display:flex}.ht-empty-data-state__content-wrapper-inner:focus{box-shadow:0 0 0 1px var(--ht-accent-color);outline:none}.ht-empty-data-state__content{justify-content:center;align-items:center;gap:var(--ht-gap-size);flex-direction:column;display:flex}.ht-empty-data-state__title{font-size:var(--ht-font-size);font-weight:var(--ht-font-weight);line-height:var(--ht-line-height);margin:0}.ht-empty-data-state__description{color:var(--ht-foreground-secondary-color);font-size:var(--ht-font-size-small);line-height:var(--ht-line-height-small);font-weight:var(--ht-font-weight);margin:0}.ht-empty-data-state__buttons{justify-content:center;gap:calc(var(--ht-gap-size)*2);flex-flow:wrap;display:flex}.ht-empty-data-state__buttons--has-buttons{margin-top:calc(var(--ht-gap-size)*2)}.ht-empty-data-state__spinner{width:28px;height:28px;margin-bottom:calc(var(--ht-gap-size)*2);border:2px solid var(--ht-border-color);border-top-color:var(--ht-accent-color);border-radius:50%;flex-shrink:0;animation:.75s linear infinite ht-empty-data-state-spin}@media (prefers-reduced-motion:reduce){.ht-empty-data-state__spinner{border-top-color:var(--ht-border-color);animation:none}}.ht-empty-data-state--loading .ht-empty-data-state__content{gap:calc(var(--ht-gap-size)*.5)}.ht-empty-data-state--disable-top-border{border-top-width:0}.ht-empty-data-state--disable-top-border:not(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)),.ht-empty-data-state--disable-top-border:is(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)){border-top-left-radius:0;border-top-right-radius:0}.ht-empty-data-state--disable-inline-border{border-inline-start-width:0}.ht-empty-data-state--disable-inline-border:not(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)){border-top-left-radius:0;border-bottom-left-radius:0}.ht-empty-data-state--disable-inline-border:is(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)){border-top-right-radius:0;border-bottom-right-radius:0}.ht-empty-data-state--disable-bottom-border{border-bottom-width:0}.ht-empty-data-state--disable-bottom-border:not(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)),.ht-empty-data-state--disable-bottom-border:is(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)){border-bottom-right-radius:0;border-bottom-left-radius:0}.ht-root-wrapper.ht-slot-bottom-filled .ht-empty-data-state:not(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)),.ht-root-wrapper.ht-slot-bottom-filled .ht-empty-data-state:is(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)){border-bottom-right-radius:0;border-bottom-left-radius:0}@keyframes ht-empty-data-state-spin{to{transform:rotate(360deg)}}',this.#nr.head.appendChild(t)}#nu(){let e=this.getCSSVariableValue("line-height"),t=this.getCSSVariableValue("cell-vertical-padding"),o=Math.round(Number.parseFloat(this.getStyleForTD("border-bottom-width")??""));return null===e||null===t||isNaN(o)?null:e+2*t+o}#np(){this.#ni=!this.#nm(),this.#nn=getComputedStyle(this.#no);let e=this.#nf(["box-sizing","border-bottom-width"]);this.#ns.td={...this.#ns.td,...{"box-sizing":e["box-sizing"],"border-bottom-width":e["border-bottom-width"]}}}#nf(e){let t=this.#nr,o=this.#no,n=t.createElement("table"),i=t.createElement("tbody"),r=t.createElement("tr"),l=t.createElement("tr"),s=t.createElement("td");n.className="htCore",l.appendChild(s),i.appendChild(r),i.appendChild(l),n.appendChild(i),o.appendChild(n);let a=getComputedStyle(s),h={};return e.forEach(e=>{h[e]=a.getPropertyValue(e)}),o.removeChild(n),h}#nd(e){let t=Math.ceil(Number.parseFloat(this.#nc(e)??""));return Number.isNaN(t)?null:t}#nc(e){let t=this.#nn?.getPropertyValue(e)??null;return""===t?null:t}#ng(){this.#ns={},this.#nl={}}#nm(){if(!this.#no.isConnected)return!1;let e=this.#no.ownerDocument.defaultView;return null!==e&&""!==e.getComputedStyle(this.#no).display}recacheValuesMeasuredWithoutStyles(){return!!this.#ni&&!!this.#nm()&&(this.clearCache(),!0)}clearCache(){this.#ng(),this.#np()}}let ci=null,cr=0,cl={TOP:"top",BOTTOM:"bottom"},cs="ht-slot-element";class ca{#f;#nb=new Map;#nC=0;#nw=[];#ny;#nv;constructor(e,{itemClass:t="",onContentChange:o=()=>{}}={}){this.#f=e,this.#ny=t,this.#nv=o}getElement(){return this.#f}has(e){return this.#nb.has(e)}add(e,t){let o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0,n=this.#nb.get(e),i=n?n.seq:this.#nC;n&&n.element.remove(),this.#ny&&t.classList.add(this.#ny),this.#nb.set(e,{element:t,weight:o,seq:i}),n||(this.#nC+=1),this.#nS(),this.#nv()}remove(e){let t=this.#nb.get(e);t&&(this.#ny&&t.element.classList.remove(this.#ny),t.element.remove(),this.#nb.delete(e),this.#nv())}setOrder(e){this.#nw=Array.isArray(e)?e.slice():[],this.#nS()}getOrder(){return this.#nR()}clear(){this.#nb.forEach(e=>e.element.remove()),this.#nb.clear(),this.#nv()}#nR(){let e=this.#nw;return Array.from(this.#nb.keys()).sort((t,o)=>{let n=e.indexOf(t),i=e.indexOf(o);if(-1!==n||-1!==i)return(-1===n?1/0:n)-(-1===i?1/0:i);let r=this.#nb.get(t),l=this.#nb.get(o);return r.weight!==l.weight?r.weight-l.weight:r.seq-l.seq})}#nS(){let e=this.#f.firstChild;this.#nR().forEach(t=>{let o=this.#nb.get(t).element;o===e?e=e.nextSibling:this.#f.insertBefore(o,e)})}}function ch(e,t){let o=t.parentElement;if(!o)return;let n=null!==t.querySelector(`:scope > .${cs}`);o.classList.toggle(`ht-slot-${e}-filled`,n)}class cd{#nx;constructor(e){this.#nx=new Map(Object.keys(e).map(t=>[t,new ca(e[t],{itemClass:cs,onContentChange:()=>ch(t,e[t])})]))}getSlot(e){let t=this.#nx.get(e);return t||to(`Unknown layout slot "${e}".`),t}register(e,t,o){let{side:n,weight:i=0}=o;this.getSlot(n).add(e,t,i)}unregister(e,t){this.getSlot(t).remove(e)}applyConfig(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};Object.values(cl).forEach(t=>this.getSlot(t).setOrder(e?.[t]??[]))}destroy(){this.#nx.forEach(e=>e.clear())}}let cc="licenseNotification",cu=`plugin:${cc}`,cg="hot-display-license-info";function cp(e){return e.rootSlotBottomElement?.querySelector(`.${cg}`)??null}let cm="mailto:sales@handsontable.com",cf="mailto:support@handsontable.com",cb="https://handsontable.com/docs/tutorial-license-key.html",cC={trial_valid:{title:"Handsontable Trial",body:e=>{let{daysRemaining:t}=e;return`Your Handsontable license key ${eX(t)}. ${eJ}`},linkText:"Contact Sales",linkHref:cm,dismissible:!1},trial_notice:{title:"Handsontable Trial",body:e=>{let{daysRemaining:t}=e;return`Your Handsontable license key ${eX(t)}. ${eJ}`},linkText:"Contact Sales",linkHref:cm,dismissible:!1},trial_soft_stop:{title:"Handsontable Trial Expired",body:()=>`${eQ} ${eJ}`,linkText:"Contact Sales",linkHref:cm,dismissible:!0}},cw={trial_hard_stop:e=>{let{licensedUntil:t}=e;return{title:`Your Handsontable trial license key expired on ${t}.`,description:"You may no longer use Handsontable under the trial license. To continue using the software, contact sales@handsontable.com to purchase a valid license.",action:{text:"Contact Sales",href:cm}}},invalid:()=>({title:"The license key for Handsontable is invalid.",description:"",action:{text:"Contact Support",href:cf},docsLink:{text:"Read more",href:cb,trailingText:" on how to install it properly, or contact us at support@handsontable.com."}}),missing:()=>({title:"The license key for Handsontable is missing.",description:"Use your purchased key to activate the product. Alternatively, you can activate Handsontable to use for non-commercial purposes by passing the key: 'non-commercial-and-evaluation'. ",action:{text:"Contact Support",href:cf},docsLink:{text:"Read more",href:cb,trailingText:" about it in the documentation, or contact us at support@handsontable.com."}})},cy="ht-license-popover",cv="is-open",cS="is-dismissed",cR="is-corner-hover",cx="is-cornerless";function cM(e){let t=e.view?.getOverlayByName(rh),o=t?.clone?.wtTable;return o?.TABLE?{table:o.TABLE,thead:o.THEAD??null}:null}let cH="ht-dialog",cE="licenseLock",ck=`plugin:${cE}`,cT=(e,t)=>`width: var(--ht-icon-size);
|
|
85
|
+
declare https: //developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent/key/Key_Values.`);let c={callback:t,group:n,runOnlyIf:i,captureCtrl:r,preventDefault:l,stopPropagation:s};eP(a)&&(c.relativeToGroup=a,c.position=h),d1(d)&&(c.forwardToContext=d),e.forEach(e=>{let t=dK(e);if(o.hasItem(t)){let e=o.getItem(t),n=e.findIndex(e=>e.group===a);-1!==n?"before"===h?n-=1:n+=1:n=e.length,e.splice(n,0,c)}else o.addItem(t,[c])})},i=e=>{let t=dK(e);o.removeItem(t)};return{__kindOf:d0,scope:t,addShortcut:n,addShortcuts:function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};e.forEach(e=>{tp(t,(o,n)=>{!1===Object.prototype.hasOwnProperty.call(e,n)&&(e[n]=t[n])}),n(e)})},getShortcuts:e=>{let t=dK(e),n=o.getItem(t);return eP(n)?n.slice():[]},hasShortcut:e=>{let t=dK(e);return o.hasItem(t)},removeShortcutsByKeys:i,removeShortcutsByGroup:e=>{o.getItems().forEach(t=>{let[o,n]=t,r=n.filter(t=>t.group!==e);0===r.length?i(o.split("+")):(n.length=0,n.push(...r))})}}},d3=(o=new Set,{press(e){o.add(e)},release(e){o.delete(e)},releaseAll(){o.clear()},isPressed:e=>o.has(e)}),d6=new WeakMap,d4=e=>{if("string"==typeof e.key){let t=dZ(e);dQ.includes(t)&&d3.press(t)}},d5=e=>{if("string"==typeof e.key){let t=dZ(e);dQ.includes(t)&&d3.release(t)}},d7=[{name:"editorCloseAndSave",callback(e){e._getEditorManager().closeEditorAndSaveChanges()}},{name:"editorCloseAndSaveByArrowKeys",callback(e,t,o){let n=e._getEditorManager(),i=n.getActiveEditor();i?.isInFullEditMode()&&i?.state===n2.EDITING||(n.closeEditorAndSaveChanges(),e.getSelected()&&(o.includes("arrowdown")?e.selection.transformStart(1,0):o.includes("arrowup")?e.selection.transformStart(-1,0):o.includes("arrowleft")?e.selection.transformStart(0,-1*e.getDirectionFactor()):o.includes("arrowright")&&e.selection.transformStart(0,e.getDirectionFactor())),t.preventDefault())}},{name:"editorCloseAndSaveByEnter",callback(e,t){let o=e._getEditorManager();o.closeEditorAndSaveChanges(t.ctrlKey||t.metaKey),o.moveSelectionAfterEnter(t)}},{name:"editorCloseWithoutSaving",callback(e){let t=e._getEditorManager();t.closeEditorAndRestoreOriginalValue(e.getShortcutManager().isCtrlPressed()),t.activeEditor?.focus()}},{name:"editorFastOpen",callback(e,t){let o=e.getSelectedRangeActive()?.highlight;o?.isHeader()||e._getEditorManager().openEditor(null,t,!0)}},{name:"editorOpen",callback(e,t,o){let{selection:n}=e,i=e._getEditorManager(),r=e.getSelectedRange(),l=e.getSelectedRangeActive(),s=l?.highlight;if((r?.some(e=>n.isMultiple(e))||(r?.length??0)>1)&&!l?.isHeader()&&e.countRenderedCols()>0&&e.countRenderedRows()>0){let i=e.getSettings(),r="function"==typeof i.enterMoves?i.enterMoves(t):i.enterMoves;o.includes("shift")?n.transformFocus(-(r?.row??0),-(r?.col??0)):n.transformFocus(r?.row??0,r?.col??0);return}s?.isHeader()||(e.getSettings().enterBeginsEditing?i.cellProperties.readOnly?i.moveSelectionAfterEnter(t):i.openEditor(null,t,!0):i.moveSelectionAfterEnter(t),nR(t))}},{name:"extendCellsSelectionDown",callback(e){let{selection:t}=e,o=e.getSelectedRangeActive()?.highlight;!t.isSelectedByColumnHeader()&&!t.isSelectedByCorner()&&(o?.isCell()||o?.isHeader()&&t.isSelectedByRowHeader())&&(t.markSource("keyboard"),t.transformEnd(1,0),t.markEndSource())}},{name:"extendCellsSelectionDownByViewportHeight",callback(e){let{selection:t,rowIndexMapper:o}=e,n=e.getSelectedRangeActive();if(!n)return;let{to:i}=n,r=i.row??0,l=Math.min(r+e.countVisibleRows(),e.countRows()-1),s=o.getNearestNotHiddenIndex(l,-1);if(null!==s){let o=e._createCellCoords(s,i.col??0),n=r-(e.getFirstFullyVisibleRow()??0),l=Math.min((o.row??0)-n,e.countRows()-1);t.markSource("keyboard"),t.setRangeEnd(o,e.getActiveSelectionLayerIndex()),t.markEndSource(),e.scrollViewportTo({row:l,verticalSnap:"top",horizontalSnap:"start"})}}},{name:"extendCellsSelectionLeft",callback(e){let{selection:t}=e,o=e.getSelectedRangeActive()?.highlight;!t.isSelectedByRowHeader()&&!t.isSelectedByCorner()&&(o?.isCell()||o?.isHeader()&&t.isSelectedByColumnHeader())&&(t.markSource("keyboard"),t.transformEnd(0,-1*e.getDirectionFactor()),t.markEndSource())}},{name:"extendCellsSelectionRight",callback(e){let{selection:t}=e,o=e.getSelectedRangeActive()?.highlight;!t.isSelectedByRowHeader()&&!t.isSelectedByCorner()&&(o?.isCell()||o?.isHeader()&&t.isSelectedByColumnHeader())&&(t.markSource("keyboard"),t.transformEnd(0,e.getDirectionFactor()),t.markEndSource())}},{name:"extendCellsSelectionToColumns",callback(e){let{selection:t}=e,o=e.getSelectedRangeActive();if(!o)return;let{highlight:n,from:i,to:r}=o;t.markSource("keyboard"),t.isSelectedByRowHeader()?t.selectAll(!0,!0):e.selectColumns(i.col??0,r.col??0,n),t.markEndSource()}},{name:"extendCellsSelectionToMostBottom",callback(e){let{selection:t,rowIndexMapper:o}=e,n=e.getSelectedRangeActive();if(!n)return;let{highlight:i,from:r,to:l}=n,s=i.isHeader()&&t.isSelectedByRowHeader();if(i.isCell()||s){let n=o.getNearestNotHiddenIndex(e.countRows()-1,-1),a=r.clone();a.row=i.row,t.markSource("keyboard"),t.setRangeStart(a,void 0,!1,i.clone()),s&&t.selectedByRowHeader.add(t.getLayerLevel()),t.setRangeEnd(e._createCellCoords(n??0,l.col??0)),t.markEndSource()}}},{name:"extendCellsSelectionToMostInlineEnd",callback(e){let{selection:t,columnIndexMapper:o}=e,n=e.getSelectedRangeActive();if(!n)return;let{highlight:i,from:r,to:l}=n;if(!t.isSelectedByRowHeader()&&!t.isSelectedByCorner()&&i.isCell()){let n=o.getNearestNotHiddenIndex(e.countCols()-1,-1),s=r.clone();s.col=i.col,t.markSource("keyboard"),t.setRangeStart(s,void 0,!1,i.clone()),t.setRangeEnd(e._createCellCoords(l.row??0,n??0)),t.markEndSource()}}},{name:"extendCellsSelectionToMostInlineStart",callback(e){let{selection:t,columnIndexMapper:o}=e,n=e.getSelectedRangeActive();if(!n)return;let{highlight:i,from:r,to:l}=n;if(!t.isSelectedByRowHeader()&&!t.isSelectedByCorner()&&i.isCell()){let n=Number(e.getSettings().fixedColumnsStart)||0,s=o.getNearestNotHiddenIndex(n,1),a=r.clone();a.col=i.col,t.markSource("keyboard"),t.setRangeStart(a,void 0,!1,i.clone()),t.setRangeEnd(e._createCellCoords(l.row??0,s??0)),t.markEndSource()}}},{name:"extendCellsSelectionToMostLeft",callback(e){let{selection:t,columnIndexMapper:o}=e,n=e.getSelectedRangeActive();if(!n)return;let{highlight:i,from:r,to:l}=n,s=i.isHeader()&&t.isSelectedByColumnHeader();if(i.isCell()||s){let n=e.isRtl()?o.getNearestNotHiddenIndex(e.countCols()-1,-1):o.getNearestNotHiddenIndex(0,1),a=r.clone();a.col=i.col,t.markSource("keyboard"),t.setRangeStart(a,void 0,!1,i.clone()),s&&t.selectedByColumnHeader.add(t.getLayerLevel()),t.setRangeEnd(e._createCellCoords(l.row??0,n??0)),t.markEndSource()}}},{name:"extendCellsSelectionToMostRight",callback(e){let{selection:t,columnIndexMapper:o}=e,n=e.getSelectedRangeActive();if(!n)return;let{highlight:i,from:r,to:l}=n,s=i.isHeader()&&t.isSelectedByColumnHeader();if(i.isCell()||s){let n=e.isRtl()?o.getNearestNotHiddenIndex(0,1):o.getNearestNotHiddenIndex(e.countCols()-1,-1),a=r.clone();a.col=i.col,t.markSource("keyboard"),t.setRangeStart(a,void 0,!1,i.clone()),s&&t.selectedByColumnHeader.add(t.getLayerLevel()),t.setRangeEnd(e._createCellCoords(l.row??0,n??0)),t.markEndSource()}}},{name:"extendCellsSelectionToMostTop",callback(e){let{selection:t,rowIndexMapper:o}=e,n=e.getSelectedRangeActive();if(!n)return;let{highlight:i,from:r,to:l}=n,s=i.isHeader()&&t.isSelectedByRowHeader();if(i.isCell()||s){let n=o.getNearestNotHiddenIndex(0,1),a=r.clone();a.row=i.row,t.markSource("keyboard"),t.setRangeStart(a,void 0,!1,i.clone()),s&&t.selectedByRowHeader.add(t.getLayerLevel()),t.setRangeEnd(e._createCellCoords(n??0,l.col??0)),t.markEndSource()}}},{name:"extendCellsSelectionToRows",callback(e){let{selection:t}=e,o=e.getSelectedRangeActive();if(!o)return void t.markEndSource();let{highlight:n,from:i,to:r}=o;t.markSource("keyboard"),t.isSelectedByColumnHeader()?t.selectAll(!0,!0):e.selectRows(i.row??0,r.row??0,n),t.markEndSource()}},{name:"extendCellsSelectionUp",callback(e){let{selection:t}=e,o=e.getSelectedRangeActive()?.highlight;!t.isSelectedByColumnHeader()&&!t.isSelectedByCorner()&&(o?.isCell()||o?.isHeader()&&t.isSelectedByRowHeader())&&(t.markSource("keyboard"),t.transformEnd(-1,0),t.markEndSource())}},{name:"extendCellsSelectionUpByViewportHeight",callback(e){let{selection:t,rowIndexMapper:o}=e,n=e.getSelectedRangeActive();if(!n)return;let{to:i}=n,r=i.row??0,l=Math.max(r-e.countVisibleRows(),0),s=o.getNearestNotHiddenIndex(l,1);if(null!==s){let o=e._createCellCoords(s,i.col??0),n=r-(e.getFirstFullyVisibleRow()??0),l=Math.max((o.row??0)-n,0);t.markSource("keyboard"),t.setRangeEnd(o,e.getActiveSelectionLayerIndex()),t.markEndSource(),e.scrollViewportTo({row:l,verticalSnap:"top",horizontalSnap:"start"})}}},{name:"moveCellSelectionDown",callback(e){let{selection:t}=e;t.markSource("keyboard"),t.transformStart(1,0),t.markEndSource()}},{name:"moveCellSelectionDownByViewportHeight",callback(e){let{selection:t}=e,{navigableHeaders:o}=e.getSettings(),n=o?e.countColHeaders():0,i=e.getSelectedRangeActive()?.highlight.row??0,r=e.countVisibleRows()+n;r=0===r?1:r,i===e.countRows()-1?r=1:i+r>e.countRows()&&(r=e.countRows()-i-1),t.markSource("keyboard"),t.transformStart(r,0),t.markEndSource();let l=e.getSettings().fixedRowsBottom??0,s=e.countRows(),a=e.getSelectedRangeActive()?.highlight.row??0;a<0?e.scrollViewportTo({row:0}):l>0&&a>=s-l&&e.scrollViewportTo({row:s-l-1,verticalSnap:"bottom"})}},{name:"moveCellSelectionInlineEnd",callback(e,t){let{selection:o}=e,n=e.getSettings(),i=e.getSelectedRange(),r=e.getSelectedRangeActive(),l="function"==typeof n.tabMoves?n.tabMoves(t):n.tabMoves;o.markSource("keyboard"),(i?.some(e=>o.isMultiple(e))||(i?.length??0)>1)&&!r?.isHeader()&&e.countRenderedCols()>0&&e.countRenderedRows()>0?o.transformFocus(-(l?.row??0),-(l?.col??0)):o.transformStart(-(l?.row??0),-(l?.col??0)),o.markEndSource()}},{name:"moveCellSelectionInlineStart",callback(e,t){let{selection:o}=e,n=e.getSettings(),i=e.getSelectedRange(),r=e.getSelectedRangeActive(),l="function"==typeof n.tabMoves?n.tabMoves(t):n.tabMoves;o.markSource("keyboard"),(i?.some(e=>o.isMultiple(e))||(i?.length??0)>1)&&!r?.isHeader()&&e.countRenderedCols()>0&&e.countRenderedRows()>0?o.transformFocus(l?.row??0,l?.col??0):o.transformStart(l?.row??0,l?.col??0),o.markEndSource()}},{name:"moveCellSelectionLeft",callback(e){let{selection:t}=e;t.markSource("keyboard"),t.transformStart(0,-1*e.getDirectionFactor()),t.markEndSource()}},{name:"moveCellSelectionRight",callback(e){let{selection:t}=e;t.markSource("keyboard"),t.transformStart(0,e.getDirectionFactor()),t.markEndSource()}},{name:"moveCellSelectionToMostBottom",callback(e){let{selection:t}=e,o=e.getSelectedRangeActive()?.highlight.col??0,n=e.rowIndexMapper.getNearestNotHiddenIndex(e.countRows()-1,-1);null===n&&(n=-1),t.setRangeStart(e._createCellCoords(n,o))}},{name:"moveCellSelectionToMostBottomInlineEnd",callback(e){let{selection:t,rowIndexMapper:o,columnIndexMapper:n}=e,i=Number(e.getSettings().fixedRowsBottom)||0,r=o.getNearestNotHiddenIndex(e.countRows()-i-1,-1),l=n.getNearestNotHiddenIndex(e.countCols()-1,-1);t.markSource("keyboard"),t.setRangeStart(e._createCellCoords(r??-1,l??-1)),t.markEndSource()}},{name:"moveCellSelectionToMostInlineEnd",callback(e){let{selection:t,columnIndexMapper:o}=e;t.markSource("keyboard"),t.setRangeStart(e._createCellCoords(e.getSelectedRangeActive()?.highlight.row??0,o.getNearestNotHiddenIndex(e.countCols()-1,-1)??0)),t.markEndSource()}},{name:"moveCellSelectionToMostInlineStart",callback(e){let{selection:t,columnIndexMapper:o}=e,n=Number(e.getSettings().fixedColumnsStart)||0,i=e.getSelectedRangeActive()?.highlight.row??0,r=o.getNearestNotHiddenIndex(n,1);t.markSource("keyboard"),t.setRangeStart(e._createCellCoords(i,r??0)),t.markEndSource()}},{name:"moveCellSelectionToMostLeft",callback(e){let{selection:t,columnIndexMapper:o}=e,n=e.getSelectedRangeActive()?.highlight.row??0,i=e.isRtl()?o.getNearestNotHiddenIndex(e.countCols()-1,-1):o.getNearestNotHiddenIndex(0,1);null===i&&(i=e.isRtl()?-1:-e.countRowHeaders()),t.markSource("keyboard"),t.setRangeStart(e._createCellCoords(n,i)),t.markEndSource()}},{name:"moveCellSelectionToMostRight",callback(e){let{selection:t,columnIndexMapper:o}=e,n=e.getSelectedRangeActive()?.highlight.row??0,i=e.isRtl()?o.getNearestNotHiddenIndex(0,1):o.getNearestNotHiddenIndex(e.countCols()-1,-1);null===i&&(i=e.isRtl()?-e.countRowHeaders():-1),t.markSource("keyboard"),t.setRangeStart(e._createCellCoords(n,i)),t.markEndSource()}},{name:"moveCellSelectionToMostTop",callback(e){let{selection:t}=e,o=e.getSelectedRangeActive()?.highlight.col??0,n=e.rowIndexMapper.getNearestNotHiddenIndex(0,1);null===n&&(n=-e.countColHeaders()),t.markSource("keyboard"),t.setRangeStart(e._createCellCoords(n,o)),t.markEndSource()}},{name:"moveCellSelectionToMostTopInlineStart",callback(e){let{selection:t,rowIndexMapper:o,columnIndexMapper:n}=e,i=Number(e.getSettings().fixedRowsTop)||0,r=Number(e.getSettings().fixedColumnsStart)||0,l=o.getNearestNotHiddenIndex(i,1),s=n.getNearestNotHiddenIndex(r,1);t.markSource("keyboard"),t.setRangeStart(e._createCellCoords(l??0,s??0)),t.markEndSource()}},{name:"moveCellSelectionUp",callback(e){let{selection:t}=e;t.markSource("keyboard"),t.transformStart(-1,0),t.markEndSource()}},{name:"moveCellSelectionUpByViewportHight",callback(e){let{selection:t}=e,{navigableHeaders:o}=e.getSettings(),n=o?e.countColHeaders():0,i=e.getSelectedRangeActive()?.highlight.row??0,r=e.countVisibleRows()+n;r=0===r?-1:-r,i===-n?r=-1:i+r<n&&(r=-(i+n)),t.markSource("keyboard"),t.transformStart(r,0),t.markEndSource();let l=e.getSettings().fixedRowsTop??0;(e.getSelectedRangeActive()?.highlight.row??0)<l&&e.scrollViewportTo({row:l,verticalSnap:"top"})}},{name:"emptySelectedCells",callback(e){e.emptySelectedCells(),e._getEditorManager().prepareEditor()}},{name:"scrollToFocusedCell",callback(e){let t=e.getSelectedRangeActive()?.highlight;if(!t)return;let o=e.getFirstFullyVisibleRow()-1,n=e.getFirstFullyVisibleColumn()-1,i=e.getLastFullyVisibleRow()+1,r=e.getLastFullyVisibleColumn()+1,l=e._createCellCoords(o,n),s=e._createCellCoords(i,r);if(!e._createCellRange(l,l,s).includes(t)&&((t.row??-1)>=0||(t.col??-1)>=0)){let o={};if((t.col??-1)>=0){let n=Math.floor(e.countVisibleCols()/2);o.col=Math.max((t.col??0)-n,0)}if((t.row??-1)>=0){let n=Math.floor(e.countVisibleRows()/2);o.row=Math.max((t.row??0)-n,0)}e.scrollViewportTo({...o,verticalSnap:"top",horizontalSnap:"start"})}}},{name:"selectAllCells",callback(e){let{selection:t}=e;t.markSource("keyboard"),t.selectAll(!0,!0,{disableHeadersHighlight:!0}),t.markEndSource()}},{name:"selectAllCellsAndHeaders",callback(e){let{selection:t}=e;t.markSource("keyboard"),t.selectAll(!0,!0,{disableHeadersHighlight:!1}),t.markEndSource()}},{name:"populateSelectedCellsData",callback(e){let t=e.getSelectedRange();if(!t)return;let o=t[t.length-1].highlight.normalize(),n=o.row??0,i=o.col??0,r=e.getDataAtCell(n,i),l=new Map;for(let o=0;o<t.length;o++)t[o].forAll((t,o)=>{if(t>=0&&o>=0&&(t!==n||o!==i)){let{readOnly:n}=e.getCellMetaTransient(t,o);n||l.set(`${t}x${o}`,[t,o,r])}});e.setDataAtCell(Array.from(l.values()))}},{name:"tabNavigation",callback(e){let t={wrapped:!1,flipped:!1},o=!1,n=!1;return e.addHook("afterSelection",(e,i,r,l,s)=>{o&&(t.wrapped&&t.flipped||n)&&(n=!1,s.value=!0)}),e.addHook("beforeRowWrap",(e,o,n)=>{t.wrapped=!0,t.flipped=n}),{before(){let{tabNavigation:t}=e.getSettings();o=!0,t||(n=!0)},after(n){let{tabNavigation:i,autoWrapRow:r}=e.getSettings();if(o=!1,!i||!e.selection.isSelected()||r&&t.wrapped&&t.flipped||!r&&t.wrapped)return t.wrapped=!1,t.flipped=!1,e.deselectCell(),!1;n.preventDefault()}}}}];function d9(e){let t={};return d7.forEach(o=>{let{name:n,callback:i}=o;t[n]=function(){for(var t=arguments.length,o=Array(t),n=0;n<t;n++)o[n]=arguments[n];return i(e,...o)}}),t}function d8(e){let t=e.getShortcutManager().addContext("editor"),o=d9(e);t.addShortcuts([{keys:[["Enter"],["Enter","Shift"]],callback:(e,t)=>o.editorCloseAndSaveByEnter(e,t)},{keys:[["Enter","Control/Meta"],["Enter","Control/Meta","Shift"]],captureCtrl:!0,callback:(e,t)=>o.editorCloseAndSaveByEnter(e,t)},{keys:[["Tab"],["Tab","Shift"],["PageDown"],["PageUp"]],forwardToContext:e.getShortcutManager().getContext("grid"),callback:(e,t)=>o.editorCloseAndSave(e,t)},{keys:[["ArrowDown"],["ArrowUp"],["ArrowLeft"],["ArrowRight"]],preventDefault:!1,callback:(e,t)=>o.editorCloseAndSaveByArrowKeys(e,t)},{keys:[["Escape"],["Escape","Control/Meta"]],callback:()=>o.editorCloseWithoutSaving()}],{group:dq})}function ce(e){let t=e.getShortcutManager().addContext("grid"),o=d9(e);t.addShortcuts([{keys:[["F2"]],callback:e=>o.editorFastOpen(e)},{keys:[["Enter"],["Enter","Shift"]],callback:(e,t)=>o.editorOpen(e,t)},{keys:[["Backspace"],["Delete"]],callback:()=>o.emptySelectedCells()}],{group:dq,runOnlyIf:()=>eP(e.getSelected())}),t.addShortcuts([{keys:[["Control/Meta","A"]],callback:()=>o.selectAllCells(),runOnlyIf:()=>eP(e.getSelected())&&!e.getSelectedRangeActive()?.highlight.isHeader()},{keys:[["Control/Meta","A"]],callback:()=>{},runOnlyIf:()=>!!(eP(e.getSelected())&&e.getSelectedRangeActive()?.highlight.isHeader()),preventDefault:!0},{keys:[["Control/Meta","Shift","Space"]],callback:()=>o.selectAllCellsAndHeaders()},{keys:[["Control/Meta","Enter"]],callback:()=>o.populateSelectedCellsData(),runOnlyIf:()=>eP(e.getSelected())&&!e.getSelectedRangeActive()?.highlight.isHeader()&&(e.getSelectedRangeActive()?.getCellsCount()??0)>1},{keys:[["Control","Space"]],captureCtrl:!0,callback:()=>o.extendCellsSelectionToColumns()},{keys:[["Shift","Space"]],stopPropagation:!0,callback:()=>o.extendCellsSelectionToRows()},{keys:[["ArrowUp"]],callback:()=>o.moveCellSelectionUp()},{keys:[["ArrowUp","Control/Meta"]],captureCtrl:!0,callback:()=>o.moveCellSelectionToMostTop()},{keys:[["ArrowUp","Shift"]],callback:()=>o.extendCellsSelectionUp()},{keys:[["ArrowUp","Shift","Control/Meta"]],captureCtrl:!0,callback:()=>o.extendCellsSelectionToMostTop(),runOnlyIf:()=>eP(e.getSelected())&&!(e.selection.isSelectedByCorner()||e.selection.isSelectedByColumnHeader())},{keys:[["ArrowDown"]],callback:()=>o.moveCellSelectionDown()},{keys:[["ArrowDown","Control/Meta"]],captureCtrl:!0,callback:()=>o.moveCellSelectionToMostBottom()},{keys:[["ArrowDown","Shift"]],callback:()=>o.extendCellsSelectionDown()},{keys:[["ArrowDown","Shift","Control/Meta"]],captureCtrl:!0,callback:()=>o.extendCellsSelectionToMostBottom(),runOnlyIf:()=>eP(e.getSelected())&&!(e.selection.isSelectedByCorner()||e.selection.isSelectedByColumnHeader())},{keys:[["ArrowLeft"]],callback:()=>o.moveCellSelectionLeft()},{keys:[["ArrowLeft","Control/Meta"]],captureCtrl:!0,callback:()=>o.moveCellSelectionToMostLeft()},{keys:[["ArrowLeft","Shift"]],callback:()=>o.extendCellsSelectionLeft()},{keys:[["ArrowLeft","Shift","Control/Meta"]],captureCtrl:!0,callback:()=>o.extendCellsSelectionToMostLeft(),runOnlyIf:()=>eP(e.getSelected())&&!(e.selection.isSelectedByCorner()||e.selection.isSelectedByRowHeader())},{keys:[["ArrowRight"]],callback:()=>o.moveCellSelectionRight()},{keys:[["ArrowRight","Control/Meta"]],captureCtrl:!0,callback:()=>o.moveCellSelectionToMostRight()},{keys:[["ArrowRight","Shift"]],callback:()=>o.extendCellsSelectionRight()},{keys:[["ArrowRight","Shift","Control/Meta"]],captureCtrl:!0,callback:()=>o.extendCellsSelectionToMostRight(),runOnlyIf:()=>eP(e.getSelected())&&!(e.selection.isSelectedByCorner()||e.selection.isSelectedByRowHeader())},{keys:[["Home"]],captureCtrl:!0,callback:()=>o.moveCellSelectionToMostInlineStart(),runOnlyIf:()=>eP(e.getSelected())&&e.view.isMainTableNotFullyCoveredByOverlays()},{keys:[["Home","Shift"]],callback:()=>o.extendCellsSelectionToMostInlineStart()},{keys:[["Home","Control/Meta"]],captureCtrl:!0,callback:()=>o.moveCellSelectionToMostTopInlineStart(),runOnlyIf:()=>eP(e.getSelected())&&e.view.isMainTableNotFullyCoveredByOverlays()},{keys:[["End"]],captureCtrl:!0,callback:()=>o.moveCellSelectionToMostInlineEnd(),runOnlyIf:()=>eP(e.getSelected())&&e.view.isMainTableNotFullyCoveredByOverlays()},{keys:[["End","Shift"]],callback:()=>o.extendCellsSelectionToMostInlineEnd()},{keys:[["End","Control/Meta"]],captureCtrl:!0,callback:()=>o.moveCellSelectionToMostBottomInlineEnd(),runOnlyIf:()=>eP(e.getSelected())&&e.view.isMainTableNotFullyCoveredByOverlays()},{keys:[["PageUp"]],callback:()=>o.moveCellSelectionUpByViewportHight()},{keys:[["PageUp","Shift"]],callback:()=>o.extendCellsSelectionUpByViewportHeight()},{keys:[["PageDown"]],callback:()=>o.moveCellSelectionDownByViewportHeight()},{keys:[["PageDown","Shift"]],callback:()=>o.extendCellsSelectionDownByViewportHeight()},{keys:[["Tab"]],preventDefault:!1,callback:e=>o.moveCellSelectionInlineStart(e)},{keys:[["Shift","Tab"]],preventDefault:!1,callback:e=>o.moveCellSelectionInlineEnd(e)},{keys:[["Control/Meta","Backspace"]],callback:()=>o.scrollToFocusedCell()}],{runOnlyIf:()=>{let{navigableHeaders:t}=e.getSettings();return eP(e.getSelected())&&(t||!t&&e.countRenderedRows()>0&&e.countRenderedCols()>0)},group:dU});let n=o.tabNavigation();t.addShortcuts([{keys:[["Tab"],["Shift","Tab"]],preventDefault:!1,stopPropagation:!1,relativeToGroup:dU,group:dG,position:"before",callback:e=>n.before(e)},{keys:[["Tab"],["Shift","Tab"]],preventDefault:!1,stopPropagation:!1,relativeToGroup:dU,group:dG,callback:e=>n.after(e),position:"after"}])}function ct(e){let{classNames:t}=oo(e,/ht-theme-[a-zA-Z0-9_-]+/);return t.pop()}let co="handsontable-core-styles";class cn{#oX;#nt;#no;#nn=null;#ni=!1;#nr;#nl={};#ns={};#na;constructor({hot:e,rootElement:t,rootDocument:o,onThemeChange:n=e=>{},injectCoreCss:i=!0}){this.#oX=e,this.#no=t,this.#nr=o,this.#na=n,i&&this.#nh()}getCSSVariableValue(e){if(this.#nl[`--ht-${e}`])return this.#nl[`--ht-${e}`];let t=this.#nd(`--ht-${e}`)??this.#nc(`--ht-${e}`);if(null!==t)return this.#nl[`--ht-${e}`]=t,t}getStyleForTD(e){return this.#ns?.td?.[e]}getDefaultRowHeight(e){let t=this.#nu();return void 0!==e&&e===this.#oX.view.getFirstRenderedVisibleRow()?(t??0)+1:t}areCellsBorderBox(){return"border-box"===this.getStyleForTD("box-sizing")}useTheme(e){"string"==typeof e&&/ht-theme-.*/.test(e)?(this.#ng(),e!==this.#nt&&(this.#nt=e),this.#na(this.#nt),this.#np()):tZ(`${e} isn't a valid theme name. Please ensure it follows the format ht-theme-<theme-name>.`)}getThemeName(){return this.#nt}#nh(){if(!this.#oX||!this.#nr||!this.#nr.head)return;let e=this.#nr.getElementById(co);if(e&&e instanceof HTMLStyleElement)return;let t=this.#nr.createElement("style");t.id=co,t.textContent='/*!\n * Copyright (c) HANDSONCODE sp. z o. o.\n *\n * HANDSONTABLE is a software distributed by HANDSONCODE sp. z o. o., a Polish corporation based in\n * Gdynia, Poland, at Aleja Zwyciestwa 96-98, registered by the District Court in Gdansk under number\n * 538651, EU tax ID number: PL5862294002, share capital: PLN 67,200.00.\n *\n * This software is protected by applicable copyright laws, including international treaties, and dual-\n * licensed - depending on whether your use for commercial purposes, meaning intended for or\n * resulting in commercial advantage or monetary compensation, or not.\n *\n * If your use is strictly personal or solely for evaluation purposes, meaning for the purposes of testing\n * the suitability, performance, and usefulness of this software outside the production environment,\n * you agree to be bound by the terms included in the "handsontable-non-commercial-license.pdf" file.\n *\n * Your use of this software for commercial purposes is subject to the terms included in an applicable\n * license agreement.\n *\n * In any case, you must not make any such use of this software as to develop software which may be\n * considered competitive with this software.\n *\n * UNLESS EXPRESSLY AGREED OTHERWISE, HANDSONCODE PROVIDES THIS SOFTWARE ON AN "AS IS"\n * BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, AND IN NO EVENT AND UNDER NO\n * LEGAL THEORY, SHALL HANDSONCODE BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY DIRECT,\n * INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES OF ANY CHARACTER ARISING FROM\n * USE OR INABILITY TO USE THIS SOFTWARE.\n *\n * Version: 18.1.1\n * Release date: 15/09/2026 (built at 15/09/2026 08:36:14)\n */\n.ht-root-wrapper{font-family:var(--ht-font-family),-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;flex-direction:column;height:100%;display:flex;position:relative}.ht-root-wrapper.ht-shadow-dom{isolation:isolate}.ht-root-wrapper.ht-slot-bottom-filled .ht-wrapper:not(.htHorizontallyScrollableByWindow) .ht_master .wtHolder,.ht-root-wrapper.ht-slot-bottom-filled .ht-wrapper:not(.htVerticallyScrollableByWindow) .ht_master .wtHolder,.ht-root-wrapper.ht-slot-top-filled .ht-wrapper:not(.htHorizontallyScrollableByWindow) .ht_master .wtHolder,.ht-root-wrapper.ht-slot-top-filled .ht-wrapper:not(.htVerticallyScrollableByWindow) .ht_master .wtHolder{background-color:var(--ht-background-color);box-shadow:inset 0 0 0 1px var(--ht-border-color)}.htFocusCatcher{opacity:0;z-index:-1;border:0;outline:0;width:0;height:0;margin:0;padding:0;position:absolute;display:block!important}.ht-grid{flex:auto;min-height:0;position:relative}.ht-grid-content{height:100%}.ht-slot-top,.ht-slot-bottom{flex:none;overflow-x:auto}.ht-slot-element{box-sizing:border-box;border:1px solid var(--ht-border-color);width:100%}.ht-slot-top>.ht-slot-element:not(:first-of-type){border-top-width:0}.ht-slot-top>.ht-slot-element:last-of-type,.ht-slot-bottom>.ht-slot-element:not(:last-of-type){border-bottom-width:0}.ht-slot-bottom>.ht-slot-element:first-of-type{border-top-width:0}.htScrollbarTest{scrollbar-width:auto;scrollbar-color:var(--ht-scrollbar-thumb-color)var(--ht-scrollbar-track-color)}.htScrollbarSafariTest::-webkit-scrollbar{width:9px;height:9px}.handsontable{font-family:var(--ht-font-family),-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;font-size:var(--ht-font-size);line-height:var(--ht-line-height);font-weight:var(--ht-font-weight);letter-spacing:var(--ht-letter-spacing);color:var(--ht-foreground-color);touch-action:manipulation;position:relative}.handsontable .wtHolder{scrollbar-width:auto;scrollbar-color:var(--ht-scrollbar-thumb-color)var(--ht-scrollbar-track-color)}.handsontable .wtHolder::-webkit-scrollbar{width:9px;height:9px}.handsontable .wtHolder::-webkit-scrollbar-track{background:var(--ht-scrollbar-track-color);border-radius:var(--ht-scrollbar-border-radius)}.handsontable .wtHolder::-webkit-scrollbar-thumb{background-color:var(--ht-scrollbar-thumb-color);border-radius:var(--ht-scrollbar-border-radius)}.handsontable .wtHolder::-webkit-scrollbar-corner{background:var(--ht-scrollbar-track-color)}.handsontable .wtHolder:not(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi))::-webkit-scrollbar-corner{border-bottom-right-radius:var(--ht-scrollbar-border-radius)}.handsontable .wtHolder:is(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi))::-webkit-scrollbar-corner{border-bottom-left-radius:var(--ht-scrollbar-border-radius)}.handsontable.ht-wrapper{width:100%;height:100%}.handsontable.ht-wrapper:not(.htFirstDatasetColumnNotRendered) :where(table.htCore>tbody>tr,.htGhostTable>table>tbody>tr)>td:first-of-type{border-inline-start-width:1px}.handsontable.htGhostTable.htNestedHeaders table{border-spacing:0;border-collapse:collapse}.handsontable.htGhostTable table thead th{border-bottom-width:0}.handsontable.htGhostTable table tbody tr:first-of-type th:first-child,.handsontable.htGhostTable table tbody tr:first-of-type td:first-child{height:calc(var(--ht-cell-vertical-padding)*2 + var(--ht-line-height) + 1px)}.handsontable.htGhostTable table tbody tr th,.handsontable.htGhostTable table tbody tr td{height:calc(var(--ht-cell-vertical-padding)*2 + var(--ht-line-height) + 1px);border-top-width:0}.handsontable:not(.htHorizontallyScrollableByWindow).htHasScrollX .ht_master .wtHolder,.handsontable:not(.htHorizontallyScrollableByWindow).htHasScrollY .ht_master .wtHolder,.handsontable:not(.htVerticallyScrollableByWindow).htHasScrollX .ht_master .wtHolder,.handsontable:not(.htVerticallyScrollableByWindow).htHasScrollY .ht_master .wtHolder{background-color:var(--ht-background-color);box-shadow:inset 0 0 0 1px var(--ht-border-color)}.handsontable :where(table.htCore>tbody,.htGhostTable>table>tbody)>tr.ht__row_even>th{background-color:var(--ht-row-header-even-background-color)}.handsontable :where(table.htCore>tbody,.htGhostTable>table>tbody)>tr.ht__row_even>td{background-color:var(--ht-row-cell-even-background-color)}.handsontable :where(table.htCore>tbody,.htGhostTable>table>tbody)>tr.ht__row_odd>th{background-color:var(--ht-row-header-odd-background-color)}.handsontable :where(table.htCore>tbody,.htGhostTable>table>tbody)>tr.ht__row_odd>td{background-color:var(--ht-row-cell-odd-background-color)}.handsontable :where(table.htCore>thead>tr,.htGhostTable>table>thead>tr,table.htCore>tbody>tr,.htGhostTable>table>tbody>tr)>th,.handsontable :where(table.htCore>tbody>tr,.htGhostTable>table>tbody>tr)>td{height:calc(var(--ht-cell-vertical-padding)*2 + var(--ht-line-height) + 1px);padding:var(--ht-cell-vertical-padding)var(--ht-cell-horizontal-padding);vertical-align:top;border-top-width:0;border-inline-width:0 1px;font-size:var(--ht-font-size);line-height:var(--ht-line-height);white-space:pre-wrap;empty-cells:show;box-sizing:border-box;color:var(--ht-foreground-color);border-style:solid;border-bottom-width:1px;border-top-color:var(--ht-cell-vertical-border-color);border-bottom-color:var(--ht-cell-vertical-border-color);border-inline-start-color:var(--ht-cell-horizontal-border-color);border-inline-end-color:var(--ht-cell-horizontal-border-color);outline:0;overflow:hidden}.handsontable :where(table.htCore>thead>tr,.htGhostTable>table>thead>tr,table.htCore>tbody>tr,.htGhostTable>table>tbody>tr)>th.invisibleSelection,.handsontable :where(table.htCore>tbody>tr,.htGhostTable>table>tbody>tr)>td.invisibleSelection{outline:none}.handsontable :where(table.htCore>thead>tr,.htGhostTable>table>thead>tr,table.htCore>tbody>tr,.htGhostTable>table>tbody>tr)>th.invisibleSelection::selection,.handsontable :where(table.htCore>tbody>tr,.htGhostTable>table>tbody>tr)>td.invisibleSelection::selection{background:0 0}.handsontable :where(table.htCore>thead>tr,.htGhostTable>table>thead>tr,table.htCore>tbody>tr,.htGhostTable>table>tbody>tr)>th{text-align:center;font-weight:var(--ht-header-font-weight);white-space:nowrap;color:var(--ht-header-foreground-color);background-color:var(--ht-header-background-color);position:relative;overflow:visible}.handsontable :where(table.htCore>thead>tr,.htGhostTable>table>thead>tr,table.htCore>tbody>tr,.htGhostTable>table>tbody>tr)>th:last-child{border-inline-width:0 1px;border-bottom-width:1px;border-inline-end-color:var(--ht-border-color)}.handsontable :where(table.htCore>thead>tr,.htGhostTable>table>thead>tr,table.htCore>tbody>tr,.htGhostTable>table>tbody>tr)>th:last-child.ht__active_highlight{border-inline-end-color:var(--ht-header-active-border-color)}.handsontable :where(table.htCore>thead>tr,.htGhostTable>table>thead>tr,table.htCore>tbody>tr,.htGhostTable>table>tbody>tr)>th:first-child{border-inline-start-color:var(--ht-border-color)}.handsontable :where(table.htCore>thead>tr,.htGhostTable>table>thead>tr,table.htCore>tbody>tr,.htGhostTable>table>tbody>tr)>th:first-child.ht__active_highlight{border-inline-start-color:var(--ht-header-active-border-color)}.handsontable :where(table.htCore>thead>tr,.htGhostTable>table>thead>tr,table.htCore>tbody>tr,.htGhostTable>table>tbody>tr)>th:first-child,.handsontable :where(table.htCore>thead>tr,.htGhostTable>table>thead>tr,table.htCore>tbody>tr,.htGhostTable>table>tbody>tr)>th:nth-child(2){border-inline-start-width:1px}.handsontable :where(table.htCore>thead>tr,.htGhostTable>table>thead>tr,table.htCore>tbody>tr,.htGhostTable>table>tbody>tr)>th.current{box-shadow:inset 0 0 0 1px var(--ht-cell-selection-border-color)}.handsontable :where(table.htCore>thead>tr,.htGhostTable>table>thead>tr,table.htCore>tbody>tr,.htGhostTable>table>tbody>tr)>th.active{color:var(--ht-header-active-foreground-color);background-color:var(--ht-header-active-background-color)}.handsontable :where(table.htCore>thead>tr,.htGhostTable>table>thead>tr,table.htCore>tbody>tr,.htGhostTable>table>tbody>tr)>th.ht__highlight{color:var(--ht-header-highlighted-foreground-color);background-color:var(--ht-header-highlighted-background-color)}.handsontable :where(table.htCore>thead>tr,.htGhostTable>table>thead>tr,table.htCore>tbody>tr,.htGhostTable>table>tbody>tr)>th.ht__active_highlight{border-color:var(--ht-header-active-border-color);color:var(--ht-header-active-foreground-color);background-color:var(--ht-header-active-background-color)}.handsontable :where(table.htCore>thead>tr,.htGhostTable>table>thead>tr,table.htCore>tbody>tr,.htGhostTable>table>tbody>tr)>th.ht__active_highlight-prev,.handsontable :where(table.htCore>thead>tr,.htGhostTable>table>thead>tr,table.htCore>tbody>tr,.htGhostTable>table>tbody>tr)>th.ht__active_highlight-seam{border-inline-end-color:var(--ht-header-active-border-color)}.handsontable :where(table.htCore,.htGhostTable>table)>tbody>tr.ht__row_odd>th.ht__highlight,.handsontable :where(table.htCore,.htGhostTable>table)>tbody>tr.ht__row_even>th.ht__highlight{color:var(--ht-header-row-highlighted-foreground-color);background-color:var(--ht-header-row-highlighted-background-color)}.handsontable :where(table.htCore,.htGhostTable>table)>tbody>tr.ht__row_odd>th.ht__active_highlight,.handsontable :where(table.htCore,.htGhostTable>table)>tbody>tr.ht__row_even>th.ht__active_highlight{color:var(--ht-header-row-active-foreground-color);background-color:var(--ht-header-row-active-background-color)}.handsontable :where(table.htCore,.htGhostTable>table)>tbody>tr:first-of-type>th:first-child:empty:after,.handsontable :where(table.htCore,.htGhostTable>table)>tbody>tr:first-of-type>td:first-child:empty:after{content:"";min-height:var(--ht-line-height);display:block}.handsontable :where(table.htCore,.htGhostTable>table)>tbody>tr>th{color:var(--ht-header-row-foreground-color);background-color:var(--ht-header-row-background-color);padding:0}.handsontable :where(table.htCore,.htGhostTable>table)>tbody>tr>th .relative{padding:var(--ht-cell-vertical-padding)var(--ht-cell-horizontal-padding);min-height:100%}.handsontable :where(table.htCore,.htGhostTable>table)>tbody>tr>td:first-child{border-inline-start-color:var(--ht-border-color)}.handsontable :where(table.htCore,.htGhostTable>table)>tbody>tr>td:last-child{border-inline-end-color:var(--ht-border-color)}.handsontable :where(table.htCore,.htGhostTable>table)>tbody>tr>th.ht__active_highlight-prev-row{border-bottom-color:var(--ht-header-active-border-color)}.handsontable :where(table.htCore,.htGhostTable>table)>thead>tr>th{padding:0}.handsontable :where(table.htCore,.htGhostTable>table)>thead>tr>th.ht__active_highlight{box-shadow:-1px 0 0 0 var(--ht-header-active-border-color)}.handsontable :where(table.htCore,.htGhostTable>table)>thead>tr>th .relative{padding:var(--ht-cell-vertical-padding)var(--ht-cell-horizontal-padding);flex-direction:row;align-items:center;gap:2px;display:flex}.handsontable :where(table.htCore,.htGhostTable>table)>thead>tr>th .relative .colHeader{text-overflow:ellipsis;vertical-align:top;flex:auto;min-width:0;overflow:hidden}.handsontable :where(table.htCore>thead,table.htCore>tbody,.htGhostTable>table>thead,.htGhostTable>table>tbody)>tr:first-child>th,.handsontable :where(table.htCore>thead,table.htCore>tbody,.htGhostTable>table>thead,.htGhostTable>table>tbody)>tr:first-child>td{border-top-color:var(--ht-border-color);border-top-width:1px}.handsontable :where(table.htCore>thead,table.htCore>tbody,.htGhostTable>table>thead,.htGhostTable>table>tbody)>tr:first-child>th.ht__active_highlight,.handsontable :where(table.htCore>thead,table.htCore>tbody,.htGhostTable>table>thead,.htGhostTable>table>tbody)>tr:first-child>th.ht__active_highlight-row-seam-bottom,.handsontable :where(table.htCore>thead,table.htCore>tbody,.htGhostTable>table>thead,.htGhostTable>table>tbody)>tr:first-child>td.ht__active_highlight,.handsontable :where(table.htCore>thead,table.htCore>tbody,.htGhostTable>table>thead,.htGhostTable>table>tbody)>tr:first-child>td.ht__active_highlight-row-seam-bottom{border-top-color:var(--ht-header-active-border-color)}.handsontable :where(table.htCore>thead,table.htCore>tbody,.htGhostTable>table>thead,.htGhostTable>table>tbody)>tr:last-child>th,.handsontable :where(table.htCore>thead,table.htCore>tbody,.htGhostTable>table>thead,.htGhostTable>table>tbody)>tr:last-child>td{border-bottom-color:var(--ht-border-color)}.handsontable :where(table.htCore>thead,table.htCore>tbody,.htGhostTable>table>thead,.htGhostTable>table>tbody)>tr:last-child>th.ht__active_highlight,.handsontable :where(table.htCore>thead,table.htCore>tbody,.htGhostTable>table>thead,.htGhostTable>table>tbody)>tr:last-child>th.ht__active_highlight-row-seam-top,.handsontable :where(table.htCore>thead,table.htCore>tbody,.htGhostTable>table>thead,.htGhostTable>table>tbody)>tr:last-child>td.ht__active_highlight,.handsontable :where(table.htCore>thead,table.htCore>tbody,.htGhostTable>table>thead,.htGhostTable>table>tbody)>tr:last-child>td.ht__active_highlight-row-seam-top{border-bottom-color:var(--ht-header-active-border-color)}.handsontable div[class^=ht_clone] thead .ht__highlight .relative:after{content:"";height:var(--ht-header-highlighted-shadow-size);background-color:var(--ht-accent-color);display:block;position:absolute;bottom:-1px;left:-1px;right:-1px}.handsontable div[class^=ht_clone] thead tr:only-of-type .ht__highlight .relative:after{bottom:0}.handsontable div[class^=ht_clone] tbody .ht__highlight .relative:after{content:"";width:var(--ht-header-highlighted-shadow-size);background-color:var(--ht-accent-color);display:block;position:absolute;top:-1px;bottom:-1px;right:-1px}.handsontable div[class^=ht_clone] :where(table.htCore>tbody>tr,.htGhostTable>table>tbody>tr)>td:first-of-type{border-inline-start-width:1px}.handsontable :where(table.htCore,.htGhostTable>table)>thead>tr:not(:last-child)>th{overflow:hidden}.handsontable .hide{display:none}.handsontable .relative{box-sizing:border-box;position:relative}.handsontable .wtHider{width:0}.handsontable .wtSpreader{width:0;height:auto;position:relative}.handsontable .htAutoSize{visibility:hidden;position:absolute;top:-99000px;left:-99000px}.handsontable .htTextEllipsis{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.handsontable table.htCore,.handsontable:where(.htGhostTable)>table,.handsontable :where(table.htCore,.htGhostTable>table)>thead,.handsontable :where(table.htCore,.htGhostTable>table)>tbody,.handsontable input:not(:where(table.htCore>tbody>tr>td:not(.htCustomMenuRenderer) :not(.htCheckboxRendererInput),.htGhostTable>table>tbody>tr>td:not(.htCustomMenuRenderer) :not(.htCheckboxRendererInput))),.handsontable textarea:not(:where(table.htCore>tbody>tr>td:not(.htCustomMenuRenderer) :not(.htCheckboxRendererInput),.htGhostTable>table>tbody>tr>td:not(.htCustomMenuRenderer) :not(.htCheckboxRendererInput))),.handsontable div:not(:where(table.htCore>tbody>tr>td:not(.htCustomMenuRenderer) :not(.htCheckboxRendererInput),.htGhostTable>table>tbody>tr>td:not(.htCustomMenuRenderer) :not(.htCheckboxRendererInput))){box-sizing:content-box}.handsontable input:not(:where(table.htCore>tbody>tr>td:not(.htCustomMenuRenderer) :not(.htCheckboxRendererInput),.htGhostTable>table>tbody>tr>td:not(.htCustomMenuRenderer) :not(.htCheckboxRendererInput))),.handsontable textarea:not(:where(table.htCore>tbody>tr>td:not(.htCustomMenuRenderer) :not(.htCheckboxRendererInput),.htGhostTable>table>tbody>tr>td:not(.htCustomMenuRenderer) :not(.htCheckboxRendererInput))){min-height:initial}.handsontable .htCore{border-spacing:0;border-collapse:separate;table-layout:fixed;cursor:default;background-color:var(--ht-background-color);border-width:0;outline-width:0;width:0;margin:0}.handsontable :where(table.htCore,.htGhostTable>table)>colgroup>col,.handsontable :where(table.htCore,.htGhostTable>table)>colgroup>col.rowHeader{width:64px}.handsontable :where(table.htCore,.htGhostTable>table)>colgroup>col.hidden{width:0!important}.handsontable span.colHeader,.handsontable span.rowHeader{font-size:var(--ht-font-size);line-height:var(--ht-line-height);display:inline-block}.handsontable :where(table.htCore>thead,table.htCore>tbody,.htGhostTable>table>thead,.htGhostTable>table>tbody)>tr.hidden,.handsontable :where(table.htCore>thead,table.htCore>tbody,.htGhostTable>table>thead,.htGhostTable>table>tbody)>tr.hidden>td,.handsontable :where(table.htCore>thead,table.htCore>tbody,.htGhostTable>table>thead,.htGhostTable>table>tbody)>tr.hidden>th{display:none}.handsontable a:not(:where(table.htCore>tbody>tr>td:not(.htCustomMenuRenderer) :not(.htCheckboxRendererInput),.htGhostTable>table>tbody>tr>td:not(.htCustomMenuRenderer) :not(.htCheckboxRendererInput))){color:var(--ht-link-color)}.handsontable a:not(:where(table.htCore>tbody>tr>td:not(.htCustomMenuRenderer) :not(.htCheckboxRendererInput),.htGhostTable>table>tbody>tr>td:not(.htCustomMenuRenderer) :not(.htCheckboxRendererInput))):hover{color:var(--ht-link-hover-color)}.handsontable .ht_clone_top :where(table.htCore>thead>tr)>th:nth-child(2),.handsontable .ht_clone_top_inline_start_corner :where(table.htCore>thead>tr)>th:nth-child(2){border-inline-width:0 1px}.handsontable.htRowHeaders :where(table.htCore)>thead>tr>th:nth-child(2){border-inline-start-width:1px}.handsontable .ht_master:not(.innerBorderInlineStart):not(.emptyColumns) :where(table.htCore)>tbody>tr>th,.handsontable .ht_master:not(.innerBorderInlineStart):not(.emptyColumns) :where(table.htCore)>thead>tr>th:first-child,.handsontable .ht_master:not(.innerBorderInlineStart):not(.emptyColumns)~.handsontable:not(.htGhostTable) :where(table.htCore)>tbody>tr>th,.handsontable .ht_master:not(.innerBorderInlineStart):not(.emptyColumns)~.handsontable:not(.ht_clone_top):not(.htGhostTable) :where(table.htCore)>thead>tr>th:first-child{border-inline-width:1px 0}.handsontable .ht_master:not(.innerBorderTop):not(.innerBorderBottom) :where(table.htCore)>thead>tr:last-child>th,.handsontable .ht_master:not(.innerBorderTop):not(.innerBorderBottom)~.handsontable :where(table.htCore)>thead>tr:last-child>th,.handsontable .ht_master:not(.innerBorderTop):not(.innerBorderBottom) :where(table.htCore)>thead>tr.lastChild>th,.handsontable .ht_master:not(.innerBorderTop):not(.innerBorderBottom)~.handsontable :where(table.htCore)>thead>tr.lastChild>th{border-bottom-width:0}.handsontable.htAutoRowSize .ht_master.innerBorderTop :where(table.htCore)>tbody>tr:first-child>th,.handsontable.htAutoRowSize .ht_master.innerBorderTop :where(table.htCore)>tbody>tr:first-child>td,.handsontable.htAutoRowSize .ht_master.innerBorderTop~.ht_clone_inline_start :where(table.htCore)>tbody>tr:first-child>th,.handsontable.htAutoRowSize .ht_master.innerBorderTop~.ht_clone_inline_start :where(table.htCore)>tbody>tr:first-child>td{border-top-width:0}.handsontable .ht_master table.htCore>thead,.handsontable .ht_master table.htCore>tbody>tr>th,.handsontable .ht_clone_inline_start table.htCore>thead{visibility:hidden}.ht_master,.ht_clone_inline_start,.ht_clone_top,.ht_clone_bottom,.ht_master .wtHolder,.ht_clone_inline_start .wtHolder,.ht_clone_top .wtHolder,.ht_clone_bottom .wtHolder{overflow:hidden}.ht_master .wtHolder{overflow:auto}[dir=rtl].handsontable :where(table.htCore>tbody>tr,.htGhostTable>table>tbody>tr)>td[dir=ltr]{border-inline-width:1px 0}[dir=rtl].handsontable :where(table.htCore,.htGhostTable>table)>tbody>tr>td[dir=ltr]:last-child{border-inline-start-color:var(--ht-border-color)}[dir=rtl].handsontable div[class^=ht_clone] tbody .ht__highlight .relative:after{left:-1px;right:auto}.handsontable.ht-wrapper{border-radius:var(--ht-border-radius)}.handsontable.ht-wrapper:not(.htColumnHeaders) .ht_master .htCore>tbody>tr:first-child>td:first-child:not(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)){border-top-left-radius:var(--ht-border-radius)}.handsontable.ht-wrapper:not(.htColumnHeaders) .ht_master .htCore>tbody>tr:first-child>td:first-child:is(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)){border-top-right-radius:var(--ht-border-radius)}.handsontable.ht-wrapper:not(.htColumnHeaders) .ht_master .htCore>tbody>tr:first-child>td:last-child:not(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)){border-top-right-radius:var(--ht-border-radius)}.handsontable.ht-wrapper:not(.htColumnHeaders) .ht_master .htCore>tbody>tr:first-child>td:last-child:is(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)){border-top-left-radius:var(--ht-border-radius)}.handsontable.ht-wrapper:not(.htColumnHeaders) .ht_clone_top_inline_start_corner .htCore>tbody>tr:first-child>td:first-child:not(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)){border-top-left-radius:var(--ht-border-radius)}.handsontable.ht-wrapper:not(.htColumnHeaders) .ht_clone_top_inline_start_corner .htCore>tbody>tr:first-child>td:first-child:is(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)){border-top-right-radius:var(--ht-border-radius)}.handsontable.ht-wrapper:not(.htColumnHeaders) .ht_clone_top .htCore>tbody>tr:first-child>td:first-child:not(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)){border-top-left-radius:var(--ht-border-radius)}.handsontable.ht-wrapper:not(.htColumnHeaders) .ht_clone_top .htCore>tbody>tr:first-child>td:first-child:is(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)){border-top-right-radius:var(--ht-border-radius)}.handsontable.ht-wrapper:not(.htColumnHeaders) .ht_clone_top .htCore>tbody>tr:first-child>td:last-child:not(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)){border-top-right-radius:var(--ht-border-radius)}.handsontable.ht-wrapper:not(.htColumnHeaders) .ht_clone_top .htCore>tbody>tr:first-child>td:last-child:is(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)){border-top-left-radius:var(--ht-border-radius)}:is(.handsontable.ht-wrapper:not(.htColumnHeaders) .ht_clone_inline_start .htCore>tbody>tr:first-child>th:first-child:not(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)),.handsontable.ht-wrapper:not(.htColumnHeaders) .ht_clone_inline_start .htCore>tbody>tr:first-child>td:first-child:not(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi))){border-top-left-radius:var(--ht-border-radius)}:is(.handsontable.ht-wrapper:not(.htColumnHeaders) .ht_clone_inline_start .htCore>tbody>tr:first-child>th:first-child:is(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)),.handsontable.ht-wrapper:not(.htColumnHeaders) .ht_clone_inline_start .htCore>tbody>tr:first-child>td:first-child:is(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi))){border-top-right-radius:var(--ht-border-radius)}.handsontable.ht-wrapper .ht_master .wtHolder,.handsontable.ht-wrapper .ht_master .htCore{border-radius:var(--ht-border-radius)}.handsontable.ht-wrapper .ht_master .htCore>thead>tr:first-child>th:first-child:not(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)){border-top-left-radius:var(--ht-border-radius)}.handsontable.ht-wrapper .ht_master .htCore>thead>tr:first-child>th:first-child:is(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)){border-top-right-radius:var(--ht-border-radius)}.handsontable.ht-wrapper .ht_master .htCore>thead>tr:first-child>th:not(.hiddenHeader).htLastVisibleHeader:not(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)){border-top-right-radius:var(--ht-border-radius)}.handsontable.ht-wrapper .ht_master .htCore>thead>tr:first-child>th:not(.hiddenHeader).htLastVisibleHeader:is(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)){border-top-left-radius:var(--ht-border-radius)}.handsontable.ht-wrapper .ht_master .htCore>thead>tr:last-child>th:first-child:not(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)){border-bottom-left-radius:var(--ht-border-radius)}.handsontable.ht-wrapper .ht_master .htCore>thead>tr:last-child>th:first-child:is(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)){border-bottom-right-radius:var(--ht-border-radius)}.handsontable.ht-wrapper .ht_master .htCore>thead>tr:last-child>th:not(.hiddenHeader).htLastVisibleHeader:not(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)){border-bottom-right-radius:var(--ht-border-radius)}.handsontable.ht-wrapper .ht_master .htCore>thead>tr:last-child>th:not(.hiddenHeader).htLastVisibleHeader:is(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)){border-bottom-left-radius:var(--ht-border-radius)}.handsontable.ht-wrapper .ht_master .htCore>tbody>tr:last-child>td:first-child:not(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)){border-bottom-left-radius:var(--ht-border-radius)}.handsontable.ht-wrapper .ht_master .htCore>tbody>tr:last-child>td:first-child:is(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)){border-bottom-right-radius:var(--ht-border-radius)}.handsontable.ht-wrapper .ht_master .htCore>tbody>tr:last-child>td:last-child:not(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)){border-bottom-right-radius:var(--ht-border-radius)}.handsontable.ht-wrapper .ht_master .htCore>tbody>tr:last-child>td:last-child:is(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)){border-bottom-left-radius:var(--ht-border-radius)}.handsontable.ht-wrapper .ht_clone_top_inline_start_corner .htCore:not(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)){border-top-left-radius:var(--ht-border-radius)}.handsontable.ht-wrapper .ht_clone_top_inline_start_corner .htCore:is(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)){border-top-right-radius:var(--ht-border-radius)}.handsontable.ht-wrapper .ht_clone_top_inline_start_corner .htCore>thead>tr:first-child>th:first-child:not(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)){border-top-left-radius:var(--ht-border-radius)}.handsontable.ht-wrapper .ht_clone_top_inline_start_corner .htCore>thead>tr:first-child>th:first-child:is(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)){border-top-right-radius:var(--ht-border-radius)}.handsontable.ht-wrapper .ht_clone_top .htCore:not(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)){border-top-left-radius:var(--ht-border-radius);border-top-right-radius:var(--ht-border-radius)}.handsontable.ht-wrapper .ht_clone_top .htCore:is(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)){border-top-right-radius:var(--ht-border-radius);border-top-left-radius:var(--ht-border-radius)}.handsontable.ht-wrapper .ht_clone_top .htCore>thead>tr:first-child>th:first-child:not(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)){border-top-left-radius:var(--ht-border-radius)}.handsontable.ht-wrapper .ht_clone_top .htCore>thead>tr:first-child>th:first-child:is(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)){border-top-right-radius:var(--ht-border-radius)}.handsontable.ht-wrapper .ht_clone_top .htCore>thead>tr:first-child>th:not(.hiddenHeader).htLastVisibleHeader:not(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)){border-top-right-radius:var(--ht-border-radius)}.handsontable.ht-wrapper .ht_clone_top .htCore>thead>tr:first-child>th:not(.hiddenHeader).htLastVisibleHeader:is(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)){border-top-left-radius:var(--ht-border-radius)}.handsontable.ht-wrapper .ht_clone_inline_start .htCore:not(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)){border-top-left-radius:var(--ht-border-radius);border-bottom-left-radius:var(--ht-border-radius)}.handsontable.ht-wrapper .ht_clone_inline_start .htCore:is(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)){border-top-right-radius:var(--ht-border-radius);border-bottom-right-radius:var(--ht-border-radius)}.handsontable.ht-wrapper .ht_clone_inline_start .htCore>thead>tr:first-child>th:first-child:not(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)){border-top-left-radius:var(--ht-border-radius)}.handsontable.ht-wrapper .ht_clone_inline_start .htCore>thead>tr:first-child>th:first-child:is(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)){border-top-right-radius:var(--ht-border-radius)}:is(.handsontable.ht-wrapper .ht_clone_inline_start .htCore>tbody>tr:last-child>th:first-child:not(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)),.handsontable.ht-wrapper .ht_clone_inline_start .htCore>tbody>tr:last-child>td:first-child:not(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi))){border-bottom-left-radius:var(--ht-border-radius)}:is(.handsontable.ht-wrapper .ht_clone_inline_start .htCore>tbody>tr:last-child>th:first-child:is(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)),.handsontable.ht-wrapper .ht_clone_inline_start .htCore>tbody>tr:last-child>td:first-child:is(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi))){border-bottom-right-radius:var(--ht-border-radius)}.handsontable.ht-wrapper .ht_clone_bottom_inline_start_corner .htCore:not(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)){border-bottom-left-radius:var(--ht-border-radius)}.handsontable.ht-wrapper .ht_clone_bottom_inline_start_corner .htCore:is(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)){border-bottom-right-radius:var(--ht-border-radius)}:is(.handsontable.ht-wrapper .ht_clone_bottom_inline_start_corner .htCore>:where(thead,tbody)>tr:last-child>th:first-child:not(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)),.handsontable.ht-wrapper .ht_clone_bottom_inline_start_corner .htCore>:where(thead,tbody)>tr:last-child>td:first-child:not(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi))){border-bottom-left-radius:var(--ht-border-radius)}:is(.handsontable.ht-wrapper .ht_clone_bottom_inline_start_corner .htCore>:where(thead,tbody)>tr:last-child>th:first-child:is(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)),.handsontable.ht-wrapper .ht_clone_bottom_inline_start_corner .htCore>:where(thead,tbody)>tr:last-child>td:first-child:is(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi))){border-bottom-right-radius:var(--ht-border-radius)}.handsontable.ht-wrapper .ht_clone_bottom .htCore:not(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)){border-bottom-right-radius:var(--ht-border-radius);border-bottom-left-radius:var(--ht-border-radius)}.handsontable.ht-wrapper .ht_clone_bottom .htCore:is(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)){border-bottom-left-radius:var(--ht-border-radius);border-bottom-right-radius:var(--ht-border-radius)}:is(.handsontable.ht-wrapper .ht_clone_bottom .htCore>:where(thead,tbody)>tr:last-child>th:first-child:not(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)),.handsontable.ht-wrapper .ht_clone_bottom .htCore>:where(thead,tbody)>tr:last-child>td:first-child:not(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi))){border-bottom-left-radius:var(--ht-border-radius)}:is(.handsontable.ht-wrapper .ht_clone_bottom .htCore>:where(thead,tbody)>tr:last-child>th:first-child:is(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)),.handsontable.ht-wrapper .ht_clone_bottom .htCore>:where(thead,tbody)>tr:last-child>td:first-child:is(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi))){border-bottom-right-radius:var(--ht-border-radius)}:is(.handsontable.ht-wrapper .ht_clone_bottom .htCore>:where(thead,tbody)>tr:last-child>th:last-child:not(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)),.handsontable.ht-wrapper .ht_clone_bottom .htCore>:where(thead,tbody)>tr:last-child>td:last-child:not(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi))){border-bottom-right-radius:var(--ht-border-radius)}:is(.handsontable.ht-wrapper .ht_clone_bottom .htCore>:where(thead,tbody)>tr:last-child>th:last-child:is(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)),.handsontable.ht-wrapper .ht_clone_bottom .htCore>:where(thead,tbody)>tr:last-child>td:last-child:is(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi))){border-bottom-left-radius:var(--ht-border-radius)}.handsontable.ht-wrapper.htHasScrollX:not(.htHorizontallyScrollableByWindow) .htCore:not(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)),.handsontable.ht-wrapper.htHasScrollX:not(.htHorizontallyScrollableByWindow) .htCore:is(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)){border-bottom-right-radius:0;border-bottom-left-radius:0}:is(.handsontable.ht-wrapper.htHasScrollX:not(.htHorizontallyScrollableByWindow) .htCore>thead>tr:last-child>th:first-child:not(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)),.handsontable.ht-wrapper.htHasScrollX:not(.htHorizontallyScrollableByWindow) .htCore>tbody>tr:last-child>td:first-child:not(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)),.handsontable.ht-wrapper.htHasScrollX:not(.htHorizontallyScrollableByWindow) .htCore>tbody>tr:last-child>th:first-child:not(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi))){border-bottom-left-radius:0}:is(.handsontable.ht-wrapper.htHasScrollX:not(.htHorizontallyScrollableByWindow) .htCore>thead>tr:last-child>th:first-child:is(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)),.handsontable.ht-wrapper.htHasScrollX:not(.htHorizontallyScrollableByWindow) .htCore>tbody>tr:last-child>td:first-child:is(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)),.handsontable.ht-wrapper.htHasScrollX:not(.htHorizontallyScrollableByWindow) .htCore>tbody>tr:last-child>th:first-child:is(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi))){border-bottom-right-radius:0}.handsontable.ht-wrapper.htHasScrollX:not(.htHorizontallyScrollableByWindow) .htCore>thead>tr:last-child>th:not(.hiddenHeader).htLastVisibleHeader:not(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)){border-bottom-right-radius:0}.handsontable.ht-wrapper.htHasScrollX:not(.htHorizontallyScrollableByWindow) .htCore>tbody>tr:last-child>td:last-child:not(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)){border-bottom-right-radius:0}.handsontable.ht-wrapper.htHasScrollX:not(.htHorizontallyScrollableByWindow) .htCore>tbody>tr:last-child>th:last-child:not(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)){border-bottom-right-radius:0}.handsontable.ht-wrapper.htHasScrollX:not(.htHorizontallyScrollableByWindow) .htCore>thead>tr:last-child>th:not(.hiddenHeader).htLastVisibleHeader:is(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)){border-bottom-left-radius:0}.handsontable.ht-wrapper.htHasScrollX:not(.htHorizontallyScrollableByWindow) .htCore>tbody>tr:last-child>td:last-child:is(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)){border-bottom-left-radius:0}.handsontable.ht-wrapper.htHasScrollX:not(.htHorizontallyScrollableByWindow) .htCore>tbody>tr:last-child>th:last-child:is(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)){border-bottom-left-radius:0}.handsontable.ht-wrapper.htHasScrollY:not(.htVerticallyScrollableByWindow) .htCore:not(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)){border-top-right-radius:0;border-bottom-right-radius:0}.handsontable.ht-wrapper.htHasScrollY:not(.htVerticallyScrollableByWindow) .htCore:is(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)){border-top-left-radius:0;border-bottom-left-radius:0}.handsontable.ht-wrapper.htHasScrollY:not(.htVerticallyScrollableByWindow) .htCore>thead>tr:first-child>th:not(.hiddenHeader).htLastVisibleHeader:not(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)){border-top-right-radius:0}.handsontable.ht-wrapper.htHasScrollY:not(.htVerticallyScrollableByWindow) .htCore>tbody>tr:first-child>td:last-child:not(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)){border-top-right-radius:0}.handsontable.ht-wrapper.htHasScrollY:not(.htVerticallyScrollableByWindow) .htCore>tbody>tr:first-child>th:last-child:not(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)){border-top-right-radius:0}.handsontable.ht-wrapper.htHasScrollY:not(.htVerticallyScrollableByWindow) .htCore>thead>tr:first-child>th:not(.hiddenHeader).htLastVisibleHeader:is(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)){border-top-left-radius:0}.handsontable.ht-wrapper.htHasScrollY:not(.htVerticallyScrollableByWindow) .htCore>tbody>tr:first-child>td:last-child:is(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)){border-top-left-radius:0}.handsontable.ht-wrapper.htHasScrollY:not(.htVerticallyScrollableByWindow) .htCore>tbody>tr:first-child>th:last-child:is(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)){border-top-left-radius:0}.handsontable.ht-wrapper.htHasScrollY:not(.htVerticallyScrollableByWindow) .htCore>thead>tr:last-child>th:not(.hiddenHeader).htLastVisibleHeader:not(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)){border-bottom-right-radius:0}.handsontable.ht-wrapper.htHasScrollY:not(.htVerticallyScrollableByWindow) .htCore>tbody>tr:last-child>td:last-child:not(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)){border-bottom-right-radius:0}.handsontable.ht-wrapper.htHasScrollY:not(.htVerticallyScrollableByWindow) .htCore>tbody>tr:last-child>th:last-child:not(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)){border-bottom-right-radius:0}.handsontable.ht-wrapper.htHasScrollY:not(.htVerticallyScrollableByWindow) .htCore>thead>tr:last-child>th:not(.hiddenHeader).htLastVisibleHeader:is(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)){border-bottom-left-radius:0}.handsontable.ht-wrapper.htHasScrollY:not(.htVerticallyScrollableByWindow) .htCore>tbody>tr:last-child>td:last-child:is(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)){border-bottom-left-radius:0}.handsontable.ht-wrapper.htHasScrollY:not(.htVerticallyScrollableByWindow) .htCore>tbody>tr:last-child>th:last-child:is(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)){border-bottom-left-radius:0}.ht-root-wrapper{border-radius:var(--ht-border-radius)}.ht-root-wrapper.ht-slot-bottom-filled .ht-wrapper:not(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)),.ht-root-wrapper.ht-slot-bottom-filled .ht_master .wtHolder:not(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)){border-bottom-right-radius:0;border-bottom-left-radius:0}.ht-root-wrapper.ht-slot-bottom-filled .ht-wrapper:is(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)){border-bottom-right-radius:0;border-bottom-left-radius:0}.ht-root-wrapper.ht-slot-bottom-filled .ht_master .wtHolder:is(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)){border-bottom-right-radius:0;border-bottom-left-radius:0}.ht-root-wrapper.ht-slot-bottom-filled .htCore:not(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)),.ht-root-wrapper.ht-slot-bottom-filled .htCore:is(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)){border-bottom-right-radius:0;border-bottom-left-radius:0}:is(.ht-root-wrapper.ht-slot-bottom-filled .htCore>thead>tr:last-child>th:first-child:not(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)),.ht-root-wrapper.ht-slot-bottom-filled .htCore>tbody>tr:last-child>td:first-child:not(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)),.ht-root-wrapper.ht-slot-bottom-filled .htCore>tbody>tr:last-child>th:first-child:not(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi))){border-bottom-left-radius:0}:is(.ht-root-wrapper.ht-slot-bottom-filled .htCore>thead>tr:last-child>th:first-child:is(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)),.ht-root-wrapper.ht-slot-bottom-filled .htCore>tbody>tr:last-child>td:first-child:is(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)),.ht-root-wrapper.ht-slot-bottom-filled .htCore>tbody>tr:last-child>th:first-child:is(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi))){border-bottom-right-radius:0}.ht-root-wrapper.ht-slot-bottom-filled .htCore>thead>tr:last-child>th:not(.hiddenHeader).htLastVisibleHeader:not(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)){border-bottom-right-radius:0}.ht-root-wrapper.ht-slot-bottom-filled .htCore>tbody>tr:last-child>td:last-child:not(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)){border-bottom-right-radius:0}.ht-root-wrapper.ht-slot-bottom-filled .htCore>tbody>tr:last-child>th:last-child:not(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)){border-bottom-right-radius:0}.ht-root-wrapper.ht-slot-bottom-filled .htCore>thead>tr:last-child>th:not(.hiddenHeader).htLastVisibleHeader:is(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)){border-bottom-left-radius:0}.ht-root-wrapper.ht-slot-bottom-filled .htCore>tbody>tr:last-child>td:last-child:is(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)){border-bottom-left-radius:0}.ht-root-wrapper.ht-slot-bottom-filled .htCore>tbody>tr:last-child>th:last-child:is(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)){border-bottom-left-radius:0}.ht-root-wrapper.ht-slot-top-filled .ht-wrapper:not(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)),.ht-root-wrapper.ht-slot-top-filled .ht_master .wtHolder:not(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)){border-top-left-radius:0;border-top-right-radius:0}.ht-root-wrapper.ht-slot-top-filled .ht-wrapper:is(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)){border-top-left-radius:0;border-top-right-radius:0}.ht-root-wrapper.ht-slot-top-filled .ht_master .wtHolder:is(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)){border-top-left-radius:0;border-top-right-radius:0}.ht-root-wrapper.ht-slot-top-filled .htCore:not(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)),.ht-root-wrapper.ht-slot-top-filled .htCore:is(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)){border-top-left-radius:0;border-top-right-radius:0}:is(.ht-root-wrapper.ht-slot-top-filled .htCore>thead>tr:first-child>th:first-child:not(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)),.ht-root-wrapper.ht-slot-top-filled .htCore>tbody>tr:first-child>td:first-child:not(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)),.ht-root-wrapper.ht-slot-top-filled .htCore>tbody>tr:first-child>th:first-child:not(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi))){border-top-left-radius:0}:is(.ht-root-wrapper.ht-slot-top-filled .htCore>thead>tr:first-child>th:first-child:is(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)),.ht-root-wrapper.ht-slot-top-filled .htCore>tbody>tr:first-child>td:first-child:is(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)),.ht-root-wrapper.ht-slot-top-filled .htCore>tbody>tr:first-child>th:first-child:is(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi))){border-top-right-radius:0}.ht-root-wrapper.ht-slot-top-filled .htCore>thead>tr:first-child>th:not(.hiddenHeader).htLastVisibleHeader:not(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)){border-top-right-radius:0}.ht-root-wrapper.ht-slot-top-filled .htCore>tbody>tr:first-child>td:last-child:not(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)){border-top-right-radius:0}.ht-root-wrapper.ht-slot-top-filled .htCore>tbody>tr:first-child>th:last-child:not(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)){border-top-right-radius:0}.ht-root-wrapper.ht-slot-top-filled .htCore>thead>tr:first-child>th:not(.hiddenHeader).htLastVisibleHeader:is(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)){border-top-left-radius:0}.ht-root-wrapper.ht-slot-top-filled .htCore>tbody>tr:first-child>td:last-child:is(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)){border-top-left-radius:0}.ht-root-wrapper.ht-slot-top-filled .htCore>tbody>tr:first-child>th:last-child:is(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)){border-top-left-radius:0}.ht-root-wrapper .ht-slot-element{border-radius:var(--ht-border-radius)}.ht-root-wrapper .ht-slot-bottom>.ht-slot-element:not(:last-of-type){border-radius:0}.ht-root-wrapper .ht-slot-bottom>.ht-slot-element:last-of-type:not(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)),.ht-root-wrapper .ht-slot-bottom>.ht-slot-element:last-of-type:is(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)){border-top-left-radius:0;border-top-right-radius:0}.ht-root-wrapper .ht-slot-top>.ht-slot-element:not(:first-of-type){border-radius:0}.ht-root-wrapper .ht-slot-top>.ht-slot-element:first-of-type:not(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)),.ht-root-wrapper .ht-slot-top>.ht-slot-element:first-of-type:is(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)){border-bottom-right-radius:0;border-bottom-left-radius:0}.handsontable.mobile,.handsontable.mobile .wtHolder{-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:#0000;-webkit-overflow-scrolling:touch}.handsontable.mobile .handsontableInput:focus{box-shadow:inset 0 0 0 2px var(--ht-accent-color);-webkit-appearance:none}.handsontable .topSelectionHandle,.handsontable .topSelectionHandle-HitArea,.handsontable .bottomSelectionHandle,.handsontable .bottomSelectionHandle-HitArea{inset-inline-start:-10000px;inset-inline-end:unset;z-index:9999;top:-10000px}.handsontable.hide-tween{animation:.2s forwards opacity-hide}.handsontable.show-tween{animation:.3s forwards opacity-show}.ht_clone_master{z-index:100}.ht_clone_inline_start{z-index:120}.ht_clone_bottom{z-index:130}.ht_clone_bottom_inline_start_corner{z-index:150}.ht_clone_top{z-index:160}.ht_clone_top_inline_start_corner{z-index:180}.ht_editor_hidden{z-index:-1}.ht_editor_visible{z-index:200}.handsontable td.area{position:relative}.handsontable td.area:before{content:"";background:var(--ht-cell-selection-background-color,#1a42e8);position:absolute;inset:0}.handsontable td.area-1{position:relative}.handsontable td.area-1:before{content:"";background:var(--ht-cell-selection-background-color,#1a42e8);position:absolute;inset:0}.handsontable td.area-2{position:relative}.handsontable td.area-2:before{content:"";background:var(--ht-cell-selection-background-color,#1a42e8);position:absolute;inset:0}.handsontable td.area-3{position:relative}.handsontable td.area-3:before{content:"";background:var(--ht-cell-selection-background-color,#1a42e8);position:absolute;inset:0}.handsontable td.area-4{position:relative}.handsontable td.area-4:before{content:"";background:var(--ht-cell-selection-background-color,#1a42e8);position:absolute;inset:0}.handsontable td.area-5{position:relative}.handsontable td.area-5:before{content:"";background:var(--ht-cell-selection-background-color,#1a42e8);position:absolute;inset:0}.handsontable td.area-6{position:relative}.handsontable td.area-6:before{content:"";background:var(--ht-cell-selection-background-color,#1a42e8);position:absolute;inset:0}.handsontable td.area-7{position:relative}.handsontable td.area-7:before{content:"";background:var(--ht-cell-selection-background-color,#1a42e8);position:absolute;inset:0}.handsontable td.area:before{opacity:.14}.handsontable td.area-1:before{opacity:.21}.handsontable td.area-2:before{opacity:.28}.handsontable td.area-3:before{opacity:.35}.handsontable td.area-4:before{opacity:.42}.handsontable td.area-5:before{opacity:.49}.handsontable td.area-6:before{opacity:.56}.handsontable td.area-7:before{opacity:.63}.handsontable td.area{border-color:color-mix(in srgb,var(--ht-border-color),var(--ht-foreground-color)10%)}.handsontable .wtSelectionHandle{box-sizing:border-box;z-index:115;background:var(--ht-cell-selection-handle-background-color);border:var(--ht-cell-selection-handle-border-width)solid var(--ht-cell-selection-handle-border-color);border-radius:var(--ht-cell-selection-handle-border-radius);animation:ht-selection-handle-fade-in var(--ht-table-transition)ease-in-out backwards;position:absolute}.handsontable .wtSelectionHandle:hover{background:color-mix(in srgb,var(--ht-cell-selection-handle-border-color)30%,var(--ht-cell-selection-handle-background-color))}@media (prefers-reduced-motion:reduce){.handsontable .wtSelectionHandle{animation:none}}.handsontable .wtSelectionHandle--top,.handsontable .wtSelectionHandle--bottom{width:var(--ht-cell-selection-handle-length);height:var(--ht-cell-selection-handle-size);cursor:ns-resize}.handsontable .wtSelectionHandle--start,.handsontable .wtSelectionHandle--end{width:var(--ht-cell-selection-handle-size);height:var(--ht-cell-selection-handle-length);cursor:ew-resize}.handsontable.ht__resizing-selection--top .wtSelectionHandle:not(.wtSelectionHandle--top),.handsontable.ht__resizing-selection--bottom .wtSelectionHandle:not(.wtSelectionHandle--bottom),.handsontable.ht__resizing-selection--start .wtSelectionHandle:not(.wtSelectionHandle--start),.handsontable.ht__resizing-selection--end .wtSelectionHandle:not(.wtSelectionHandle--end){display:none!important}.handsontable.ht__resizing-selection--top,.handsontable.ht__resizing-selection--top *,.handsontable.ht__resizing-selection--bottom,.handsontable.ht__resizing-selection--bottom *{cursor:ns-resize!important}.handsontable.ht__resizing-selection--start,.handsontable.ht__resizing-selection--start *,.handsontable.ht__resizing-selection--end,.handsontable.ht__resizing-selection--end *{cursor:ew-resize!important}.handsontable.ht__resizing-selection--top .wtSelectionHandle--top,.handsontable.ht__resizing-selection--bottom .wtSelectionHandle--bottom,.handsontable.ht__resizing-selection--start .wtSelectionHandle--start,.handsontable.ht__resizing-selection--end .wtSelectionHandle--end{background:color-mix(in srgb,var(--ht-cell-selection-handle-border-color)30%,var(--ht-cell-selection-handle-background-color))}.handsontable .wtMoveZone{cursor:grab}.handsontable .wtMoveZone:active,.handsontable.ht__moving{cursor:grabbing}.handsontable.ht__moving *{cursor:grabbing!important}.handsontable.ht__moving .wtBorder.area,.handsontable.ht__moving .wtBorder.current{display:none!important}.handsontable.ht__moving .wtSelectionHandle,.handsontable.ht__moving .wtMoveZone{visibility:hidden!important}.handsontable .wtBorder{font-size:0;position:absolute}.handsontable .wtBorder:first-child,.handsontable .wtBorder:nth-child(3){z-index:2}.handsontable .wtBorder:nth-child(2),.handsontable .wtBorder:nth-child(4){z-index:1}.handsontable .wtBorder.hidden{display:none!important}.handsontable .wtBorder.current{z-index:10;background-color:var(--ht-cell-selection-border-color)!important}.handsontable .wtBorder.area{z-index:8;background-color:var(--ht-cell-selection-border-color)!important}.handsontable .wtBorder.fill{z-index:6;background-color:var(--ht-cell-autofill-fill-border-color,#68696c)!important}.handsontable .wtBorder.corner{cursor:crosshair;z-index:110;font-size:0;border-radius:var(--ht-cell-autofill-border-radius)!important;background-color:var(--ht-cell-autofill-background-color,#1a42e8)!important;border-color:var(--ht-cell-autofill-border-color)!important}.handsontable .wtBorder.corner:after{content:"";border-radius:var(--ht-cell-autofill-border-radius);inset:min(0px,(var(--ht-cell-autofill-size) - var(--ht-cell-autofill-hit-area-size))/2);background:0 0;position:absolute}.handsontable .wtBorder.corner.wtCornerInlineEndEdge:after{inset-inline-end:0}.handsontable .wtBorder.corner.wtCornerBlockEndEdge:after{inset-block-end:0}@keyframes ht-selection-handle-fade-in{0%{opacity:0}to{opacity:1}}.hot-display-license-info{font-family:var(--ht-font-family),-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;padding:var(--ht-license-vertical-padding,16px)var(--ht-license-horizontal-padding,16px);font-size:var(--ht-font-size-small);line-height:var(--ht-line-height-small);color:var(--ht-license-foreground-color);background-color:var(--ht-license-background-color,#f7f7f9);text-align:left;min-width:300px}.hot-display-license-info a{font-size:var(--ht-license-font-size);color:var(--ht-link-color)}.hot-display-license-info a:hover{color:var(--ht-link-hover-color)}.ht-license-badge-wrapper{z-index:1050;pointer-events:none;position:absolute;inset:0;overflow:hidden}.ht-license-badge-on .ht-license-badge-corner thead tr:first-child th:first-child:after{content:"";inline-size:min(var(--ht-license-badge-size,16px),100%);block-size:min(var(--ht-license-badge-size,16px),100%);background-color:var(--ht-license-badge-color,var(--ht-disabled-color,#a3a3a3));pointer-events:none;margin:auto;position:absolute;inset:0;inset-inline-start:clamp(0px,100% - var(--ht-license-badge-size,16px),6px);-webkit-mask-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width=%2714.8626%27 height=%2716%27 viewBox=%270 0 14.8626 16%27 fill=%27none%27 xmlns=%27http://www.w3.org/2000/svg%27%3E%3Cpath d=%27M0 0H3.28665V4.35577H7.03576V0H10.306V11.407H7.03576V6.90834H3.28665V11.407H0V0Z%27 fill=%27%23000%27/%3E%3Cpath d=%27M11.0991 12.236H14.8633V16.0001H11.0991V12.236Z%27 fill=%27%23000%27/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width=%2714.8626%27 height=%2716%27 viewBox=%270 0 14.8626 16%27 fill=%27none%27 xmlns=%27http://www.w3.org/2000/svg%27%3E%3Cpath d=%27M0 0H3.28665V4.35577H7.03576V0H10.306V11.407H7.03576V6.90834H3.28665V11.407H0V0Z%27 fill=%27%23000%27/%3E%3Cpath d=%27M11.0991 12.236H14.8633V16.0001H11.0991V12.236Z%27 fill=%27%23000%27/%3E%3C/svg%3E");-webkit-mask-position:50%;mask-position:50%;-webkit-mask-size:contain;mask-size:contain;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat}.ht-license-badge-on .ht-license-badge-corner thead tr:first-child th:first-child:hover:after{background-color:var(--ht-license-badge-hover-color,var(--ht-read-only-color,#68696c))}[dir=rtl] .ht-license-badge-on .ht-license-badge-corner thead tr:first-child th:first-child:after{inset-inline-start:0;inset-inline-end:clamp(0px,100% - var(--ht-license-badge-size,16px),6px)}.ht-license-badge{clip-path:inset(50%);white-space:nowrap;color:#0000;background:0 0;border:0;block-size:1px;inline-size:1px;margin:0;padding:0;position:absolute;inset-block-start:0;inset-inline-start:0;overflow:hidden}.ht-license-popover{font-family:var(--ht-font-family),-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;z-index:1051;inline-size:auto;max-inline-size:min(var(--ht-license-popover-width,320px),100vw - 32px);border-radius:var(--ht-border-radius,8px);background-color:var(--ht-license-popover-background-color,#16171a);max-block-size:100%;color:var(--ht-license-popover-foreground-color,#fff);font-size:var(--ht-font-size-small,12px);line-height:var(--ht-line-height-small,18px);text-align:start;pointer-events:auto;box-shadow:var(--ht-shadow-x,0)var(--ht-shadow-y,0)var(--ht-shadow-blur,8px)color-mix(in srgb,var(--ht-shadow-color,#000)var(--ht-shadow-opacity,100%),transparent);flex-direction:column;padding:16px;display:none;position:absolute;inset-block-start:0;inset-inline-start:var(--ht-license-badge-area-width,50px);inset-inline-end:0;overflow:visible}.ht-license-popover:not(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)){border-top-left-radius:0}.ht-license-popover:is(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)){border-top-right-radius:0}.ht-license-popover:before{content:"";border-block-start:var(--ht-license-popover-tail-size,5px)solid var(--ht-license-popover-background-color,#16171a);border-inline-start:var(--ht-license-popover-tail-size,5px)solid #0000;block-size:0;inline-size:0;position:absolute;inset-block-start:0;inset-inline-end:100%}.ht-license-popover__content{min-block-size:0;overflow-y:auto}.ht-license-badge-wrapper.is-corner-hover:not(.is-dismissed) .ht-license-popover,.ht-license-badge-wrapper:not(.is-dismissed):hover .ht-license-popover,.ht-license-popover.is-open{display:flex}.ht-license-badge-wrapper.is-cornerless .ht-license-badge{display:none}.ht-license-badge-wrapper.is-cornerless .ht-license-popover{inset-inline-start:0}.ht-license-badge-wrapper.is-cornerless .ht-license-popover:not(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)){border-top-left-radius:var(--ht-border-radius,8px)}.ht-license-badge-wrapper.is-cornerless .ht-license-popover:is(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)){border-top-right-radius:var(--ht-border-radius,8px)}.ht-license-badge-wrapper.is-cornerless .ht-license-popover:before{display:none}.ht-license-popover__title{margin-block-end:8px;padding-inline-end:16px;font-weight:700}.ht-license-popover__body{color:var(--ht-license-popover-body-color,#d5d6d8);margin:0 0 12px}.ht-license-popover__link{color:var(--ht-license-popover-link-color,#3ba0ff);text-decoration:none}.ht-license-popover__link:hover{text-decoration:underline}.ht-license-popover__close{block-size:20px;inline-size:20px;color:inherit;cursor:pointer;background:0 0;border:0;justify-content:center;align-items:center;padding:0;line-height:1;display:flex;position:absolute;inset-block-start:12px;inset-inline-end:12px}.ht-license-popover__close:before{content:"✕";font-size:14px}.ht-dialog.ht-license-lock{z-index:1070}.ht-dialog.ht-license-lock:before{content:"";block-size:calc(var(--ht-line-height,20px) + var(--ht-density-cell-vertical,4px)*2);background-color:var(--ht-header-background-color);border-block-end:1px solid var(--ht-cell-horizontal-border-color,var(--ht-border-color));position:absolute;inset-block-start:0;inset-inline:0}.ht-dialog.ht-license-lock:after{content:"";inline-size:var(--ht-license-badge-size,16px);block-size:var(--ht-license-badge-size,16px);background-color:var(--ht-license-badge-color,var(--ht-disabled-color,#a3a3a3));position:absolute;inset-block-start:calc(var(--ht-density-cell-vertical,4px) + (var(--ht-line-height,20px) - var(--ht-license-badge-size,16px))/2);inset-inline-start:var(--ht-cell-horizontal-padding,8px);-webkit-mask-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width=%2714.8626%27 height=%2716%27 viewBox=%270 0 14.8626 16%27 fill=%27none%27 xmlns=%27http://www.w3.org/2000/svg%27%3E%3Cpath d=%27M0 0H3.28665V4.35577H7.03576V0H10.306V11.407H7.03576V6.90834H3.28665V11.407H0V0Z%27 fill=%27%23000%27/%3E%3Cpath d=%27M11.0991 12.236H14.8633V16.0001H11.0991V12.236Z%27 fill=%27%23000%27/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width=%2714.8626%27 height=%2716%27 viewBox=%270 0 14.8626 16%27 fill=%27none%27 xmlns=%27http://www.w3.org/2000/svg%27%3E%3Cpath d=%27M0 0H3.28665V4.35577H7.03576V0H10.306V11.407H7.03576V6.90834H3.28665V11.407H0V0Z%27 fill=%27%23000%27/%3E%3Cpath d=%27M11.0991 12.236H14.8633V16.0001H11.0991V12.236Z%27 fill=%27%23000%27/%3E%3C/svg%3E");-webkit-mask-size:contain;mask-size:contain;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat}.ht-dialog.ht-license-lock .ht-dialog__content-wrapper{padding-block-start:calc(var(--ht-line-height,20px) + var(--ht-density-cell-vertical,4px)*2)}.ht-dialog.ht-license-lock .ht-dialog__content-wrapper-inner,.ht-dialog.ht-license-lock .ht-dialog__content{min-inline-size:0}.ht-dialog.ht-license-lock a.ht-button{text-decoration:none;display:inline-block}.ht-dialog.ht-license-lock .ht-dialog__title,.ht-dialog.ht-license-lock .ht-dialog__description{word-break:break-word;overflow-wrap:break-word}.handsontable .htAutocompleteArrow{cursor:default;width:var(--ht-icon-size);height:var(--ht-icon-size);float:right;top:calc((var(--ht-line-height) - var(--ht-icon-size))/2);margin-inline-start:calc(var(--ht-gap-size)*2);margin-inline-end:1px;font-size:0;position:relative}.handsontable .htAutocompleteArrow:after{content:"";opacity:.6;display:block;position:absolute;top:0;left:0}[dir=rtl].handsontable .htAutocompleteArrow{float:left}.handsontable .htCheckboxRendererInput{width:var(--ht-checkbox-size);height:var(--ht-checkbox-size);vertical-align:middle;cursor:pointer;margin:0;outline:none;margin-top:-2px;display:inline-block;position:relative}.handsontable .htCheckboxRendererInput:first-child{margin-inline-end:var(--ht-gap-size)}.handsontable .htCheckboxRendererInput:last-child{margin-inline-start:var(--ht-gap-size)}.handsontable .htCheckboxRendererInput:before{content:"";width:var(--ht-checkbox-size);height:var(--ht-checkbox-size);border-radius:var(--ht-checkbox-border-radius);border:1px solid var(--ht-checkbox-border-color);background-color:var(--ht-checkbox-background-color);box-sizing:border-box;pointer-events:none;transition:all var(--ht-table-transition)ease-in-out;display:inline-block;position:absolute;top:0;left:0}.handsontable .htCheckboxRendererInput:after{content:"";color:var(--ht-checkbox-icon-color);pointer-events:none;display:block;position:absolute;top:0;left:0;width:var(--ht-checkbox-size)!important;height:var(--ht-checkbox-size)!important}.handsontable .htCheckboxRendererInput:checked:before{border-color:var(--ht-checkbox-checked-border-color);background-color:var(--ht-checkbox-checked-background-color)}.handsontable .htCheckboxRendererInput:checked:after{color:var(--ht-checkbox-checked-icon-color)}.handsontable .htCheckboxRendererInput:checked:disabled:before{border-color:var(--ht-checkbox-checked-disabled-border-color);background-color:var(--ht-checkbox-checked-disabled-background-color)}.handsontable .htCheckboxRendererInput:checked:disabled:after{color:var(--ht-checkbox-checked-disabled-icon-color)}.handsontable .htCheckboxRendererInput:checked:focus:before{border-color:var(--ht-checkbox-checked-focus-border-color);background-color:var(--ht-checkbox-checked-focus-background-color)}.handsontable .htCheckboxRendererInput:checked:focus:after{color:var(--ht-checkbox-checked-focus-icon-color)}.handsontable .htCheckboxRendererInput:focus:before{border-color:var(--ht-checkbox-focus-border-color);background-color:var(--ht-checkbox-focus-background-color);outline:1px solid var(--ht-checkbox-focus-ring-color)}.handsontable .htCheckboxRendererInput:focus:after{color:var(--ht-checkbox-focus-icon-color)}.handsontable .htCheckboxRendererInput:disabled{cursor:initial}.handsontable .htCheckboxRendererInput:disabled:before{border-color:var(--ht-checkbox-disabled-border-color);background-color:var(--ht-checkbox-disabled-background-color)}.handsontable .htCheckboxRendererInput:disabled:after{color:var(--ht-checkbox-disabled-icon-color)}.handsontable .htCheckboxRendererInput:indeterminate:before{border-color:var(--ht-checkbox-indeterminate-border-color);background-color:var(--ht-checkbox-indeterminate-background-color)}.handsontable .htCheckboxRendererInput:indeterminate:after{color:var(--ht-checkbox-indeterminate-icon-color)}.handsontable .htCheckboxRendererInput:indeterminate:disabled:before{border-color:var(--ht-checkbox-indeterminate-disabled-border-color);background-color:var(--ht-checkbox-indeterminate-disabled-background-color)}.handsontable .htCheckboxRendererInput:indeterminate:disabled:after{color:var(--ht-checkbox-indeterminate-disabled-icon-color)}.handsontable .htCheckboxRendererInput:indeterminate:focus:before{border-color:var(--ht-checkbox-indeterminate-focus-border-color);background-color:var(--ht-checkbox-indeterminate-focus-background-color)}.handsontable .htCheckboxRendererInput:indeterminate:focus:after{color:var(--ht-checkbox-indeterminate-focus-icon-color)}.handsontable .htCheckboxRendererInput.noValue{opacity:.5}.handsontable .htCheckboxRendererLabel{font-size:inherit;line-height:inherit;cursor:pointer;color:inherit;margin:0;display:inline-block;position:relative}.handsontable .htCheckboxRendererLabel.fullWidth{width:100%}.handsontable .htPlaceholder{color:var(--ht-placeholder-color)}.handsontable .htDimmed{color:var(--ht-read-only-color)!important;background-color:var(--ht-cell-read-only-background-color)!important}.handsontable .htLeft{text-align:left}.handsontable .htCenter{text-align:center}.handsontable .htRight{text-align:right}.handsontable .htJustify{text-align:justify}.handsontable .htTop{vertical-align:top}.handsontable .htMiddle{vertical-align:middle}.handsontable .htBottom{vertical-align:bottom}.handsontable .htInvalid{background-color:var(--ht-cell-error-background-color)!important}.handsontable .htNoWrap{white-space:nowrap}.handsontable .htSearchResult{background-color:var(--ht-cell-success-background-color)!important}.handsontable .ht-multi-select-renderer{padding:var(--ht-cell-vertical-padding)var(--ht-cell-horizontal-padding);overflow:hidden}.handsontable .ht-multi-select-chips-container{align-items:center;gap:var(--ht-gap-size);flex-wrap:nowrap;max-width:100%;display:flex;overflow:hidden}.handsontable .ht-multi-select-chip{align-items:center;gap:var(--ht-gap-size);padding:var(--ht-chip-vertical-padding)calc((var(--ht-line-height) - var(--ht-icon-size))/2)var(--ht-chip-vertical-padding)var(--ht-chip-horizontal-padding);border-radius:var(--ht-chip-border-radius);background:var(--ht-chip-background);white-space:nowrap;box-sizing:border-box;flex-shrink:0;max-width:100px;display:inline-flex}.handsontable .ht-multi-select-chip-label{text-overflow:ellipsis;color:var(--ht-foreground-color);font-style:normal;font-weight:var(--ht-font-weight);line-height:var(--ht-line-height,40px);letter-spacing:var(--ht-letter-spacing,0);padding:0 var(--ht-chip-gap);overflow:hidden}.handsontable .ht-multi-select-chip-remove{cursor:pointer;color:var(--ht-icon-button-icon-color);background-position:50%;background-repeat:no-repeat;background-size:contain;flex-shrink:0;justify-content:center;align-items:center;padding:0;display:flex;position:relative;width:var(--ht-icon-size)!important;height:var(--ht-icon-size)!important}.handsontable .ht-multi-select-chip-remove:before{content:"";display:block;position:absolute;top:0;left:0}.handsontable .ht-multi-select-chip-remove:hover{background-color:var(--ht-icon-button-hover-background-color)}.handsontable .ht-multi-select-overflow{padding:var(--ht-chip-vertical-padding)var(--ht-chip-horizontal-padding);background:var(--ht-chip-background);border-radius:var(--ht-chip-border-radius);color:var(--ht-foreground-color);white-space:nowrap;flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}.handsontableInputHolder{position:absolute;top:0;left:0}.handsontableInputHolder .handsontableInput{padding:calc(var(--ht-cell-vertical-padding,4px) + 1px)calc(var(--ht-cell-horizontal-padding,8px) + 1px);color:var(--ht-cell-editor-foreground-color);background-color:var(--ht-cell-editor-background-color,#fff);box-shadow:inset 0 0 0 var(--ht-cell-editor-border-width,2px)var(--ht-cell-editor-border-color,#1a42e8),0 0 var(--ht-cell-editor-shadow-blur-radius,0)0 var(--ht-cell-editor-shadow-color,transparent);box-sizing:border-box;border:none;border-radius:0;outline-width:0;margin:0;display:block;font-family:inherit!important;font-size:inherit!important;line-height:inherit!important;-webkit-appearance:none!important}.handsontableInputHolder .handsontableInput:focus{outline:none}.htSelectEditor{position:absolute}.htSelectEditor select{width:100%;height:100%;padding:calc(var(--ht-cell-vertical-padding,4px) + 1px)calc(var(--ht-cell-horizontal-padding,8px) + 1px);white-space:nowrap;text-overflow:ellipsis;color:var(--ht-cell-editor-foreground-color);background-color:var(--ht-cell-editor-background-color,#fff);box-shadow:inset 0 0 0 var(--ht-cell-editor-border-width,2px)var(--ht-cell-editor-border-color,#1a42e8),0 0 var(--ht-cell-editor-shadow-blur-radius,0)0 var(--ht-cell-editor-shadow-color,transparent);box-sizing:border-box;border:none;border-radius:0;margin:0;padding-inline-end:26px;position:absolute;inset:0;overflow:hidden;font-family:inherit!important;font-size:inherit!important;line-height:inherit!important;-webkit-appearance:none!important}.htSelectEditor select:focus{outline:none}.htSelectEditor .htAutocompleteArrow{z-index:1;pointer-events:none;margin-inline-end:4px;top:50%;transform:translateY(-50%)}.handsontable.listbox{box-shadow:var(--ht-menu-shadow-x,0)var(--ht-menu-shadow-y,0)var(--ht-menu-shadow-blur,8px)color-mix(in srgb,var(--ht-menu-shadow-color,#000)var(--ht-menu-shadow-opacity,100%),transparent);border:var(--ht-menu-border-width,1px)solid var(--ht-menu-border-color,#e5e5e9);margin:0}.handsontable.listbox .ht_master{background-color:var(--ht-background-color);overflow:hidden}.handsontable.listbox .wtHolder{overflow:auto;border-radius:0!important}.handsontable.listbox .wtHider,.handsontable.listbox .htCore{border-radius:0!important}.handsontable.listbox table{overflow:hidden}.handsontable.listbox table th,.handsontable.listbox table tr:first-child th,.handsontable.listbox table tr:last-child th,.handsontable.listbox table tr:first-child td,.handsontable.listbox table td{border-color:#0000!important}.handsontable.listbox table th,.handsontable.listbox table td{white-space:nowrap;text-overflow:ellipsis;border-radius:0!important}.handsontable.listbox table .wtBorder{visibility:hidden}.handsontable.listbox table strong{color:inherit;font-weight:700}.handsontable.listbox table tr td:hover td{cursor:pointer;background:color-mix(in srgb,var(--ht-menu-item-hover-color)var(--ht-menu-item-hover-color-opacity,100%),transparent)!important;box-shadow:none!important}.handsontable.listbox table td{transition:var(--ht-table-transition)background ease-in-out}.handsontable.listbox table td:hover{cursor:pointer;background-color:color-mix(in srgb,var(--ht-menu-item-hover-color)var(--ht-menu-item-hover-color-opacity,100%),transparent)!important}.handsontable.listbox table td.current:not([aria-expanded=true]){box-shadow:inset 0 0 0 1px var(--ht-accent-color)}.handsontable.listbox table td.htDimmed{cursor:default;font-style:inherit;color:inherit!important}.handsontable.listbox table td.htDimmed:not(.handsontable.listbox table td:hover){background-color:inherit!important}.handsontable.listbox table thead th{text-align:left;height:auto!important}.handsontable.listbox table thead th .relative{padding-top:calc(var(--ht-cell-vertical-padding) + var(--ht-gap-size));padding-bottom:calc(var(--ht-cell-vertical-padding) + var(--ht-gap-size))}.handsontable.listbox .ht_clone_top .wtHider{overflow:hidden}.handsontable.listbox .ht_clone_top table{border-radius:0}.handsontable.listbox .htBorders div{background:0 0!important}.handsontable.autocompleteEditor tr.ht__row_even th,.handsontable.autocompleteEditor tr.ht__row_even td,.handsontable.autocompleteEditor tr.ht__row_odd th,.handsontable.autocompleteEditor tr.ht__row_odd td{background-color:var(--ht-background-color,#fff)}[dir=rtl].handsontable.listbox table thead th{text-align:right}.handsontableEditor{position:absolute}.handsontableEditor .ht-multi-select-editor{box-shadow:var(--ht-menu-shadow-x,0)var(--ht-menu-shadow-y,0)var(--ht-menu-shadow-blur,8px)color-mix(in srgb,var(--ht-menu-shadow-color,#000)var(--ht-menu-shadow-opacity,100%),transparent);scrollbar-width:auto;scrollbar-color:var(--ht-scrollbar-thumb-color)var(--ht-scrollbar-track-color);border-radius:0 0 var(--ht-menu-border-radius)var(--ht-menu-border-radius);border:var(--ht-menu-border-width)solid var(--ht-menu-border-color);background:var(--ht-background-color);width:max-content;min-width:120px;padding:var(--ht-menu-vertical-padding)var(--ht-menu-horizontal-padding);overflow-y:auto}.handsontableEditor .ht-multi-select-editor .ht-multi-select-editor-search-input-wrapper{padding:var(--ht-menu-item-vertical-padding)var(--ht-menu-item-horizontal-padding);align-items:center;gap:var(--ht-gap-size);align-self:stretch;display:flex;position:relative}.handsontableEditor .ht-multi-select-editor .ht-multi-select-editor-search-icon{left:calc(var(--ht-menu-item-horizontal-padding) + 10px);opacity:.5;pointer-events:none;z-index:1;background-position:50%;background-repeat:no-repeat;background-size:contain;width:16px;height:16px;position:absolute;top:50%;transform:translateY(-50%)}.handsontableEditor .ht-multi-select-editor input.ht-multi-select-editor-search-input{box-sizing:border-box;border-radius:var(--ht-input-border-radius);width:100%;color:var(--ht-input-foreground-color);background-color:var(--ht-input-background-color);border:1px solid var(--ht-input-border-color);transition:var(--ht-table-transition)all ease-in-out;line-height:var(--ht-line-height);font-size:var(--ht-font-size);padding:var(--ht-input-vertical-padding)var(--ht-menu-item-horizontal-padding)var(--ht-input-vertical-padding)32px}.handsontableEditor .ht-multi-select-editor input.ht-multi-select-editor-search-input:hover{border-color:var(--ht-input-hover-border-color);color:var(--ht-input-hover-foreground-color);background-color:var(--ht-input-hover-background-color)}.handsontableEditor .ht-multi-select-editor input.ht-multi-select-editor-search-input:disabled{border-color:var(--ht-input-disabled-border-color);color:var(--ht-input-disabled-foreground-color);background-color:var(--ht-input-disabled-background-color)}.handsontableEditor .ht-multi-select-editor input.ht-multi-select-editor-search-input:focus{border-color:var(--ht-input-focus-border-color);color:var(--ht-input-focus-foreground-color);background-color:var(--ht-input-focus-background-color);outline-offset:0;box-shadow:none;outline:none}.handsontableEditor .ht-multi-select-editor input.ht-multi-select-editor-search-input::placeholder{color:var(--ht-foreground-color);opacity:.6}.handsontableEditor .ht-multi-select-editor .ht-multi-select-editor-separator{background-color:var(--ht-menu-border-color);width:100%;height:1px;margin:var(--ht-menu-vertical-padding)0 var(--ht-menu-vertical-padding)0;padding:0}.handsontableEditor .ht-multi-select-editor ul{width:100%;padding:var(--ht-gap-size)var(--ht-menu-horizontal-padding);flex-direction:column;align-items:flex-start;margin:0;list-style:none;display:flex}.handsontableEditor .ht-multi-select-editor ul li{background:var(--ht-background-color);padding:var(--ht-menu-item-vertical-padding)var(--ht-menu-item-horizontal-padding);-webkit-user-select:none;user-select:none;cursor:pointer;align-self:stretch;align-items:center;display:flex}.handsontableEditor .ht-multi-select-editor ul li *{cursor:pointer}.handsontableEditor .ht-multi-select-editor ul li.ht-multi-select-editor-item-selected{background:color-mix(in srgb,var(--ht-menu-item-active-color)var(--ht-menu-item-active-color-opacity,100%),transparent)}.handsontableEditor .ht-multi-select-editor ul li div{flex:1 0 0;align-items:center;display:flex}.handsontableEditor .ht-multi-select-editor ul li div input{-webkit-appearance:none;appearance:none;width:var(--ht-checkbox-size);height:var(--ht-checkbox-size);margin:0;padding:0;display:flex;position:relative}.handsontableEditor .ht-multi-select-editor ul li div input:after{content:"";display:block;position:absolute;top:0;left:0}.handsontableEditor .ht-multi-select-editor ul li div input:before{content:"";box-sizing:border-box;width:var(--ht-checkbox-size);height:var(--ht-checkbox-size);border-radius:var(--ht-checkbox-border-radius);border:1px solid var(--ht-checkbox-border-color);background:var(--ht-checkbox-background-color);background-position:50%;background-repeat:no-repeat;display:block;position:absolute;top:0;left:0}.handsontableEditor .ht-multi-select-editor ul li div input:checked:before{border-color:var(--ht-checkbox-checked-border-color);background:var(--ht-checkbox-checked-background-color)}.handsontableEditor .ht-multi-select-editor ul li div input:checked:after{color:var(--ht-checkbox-checked-icon-color);background-color:currentColor}.handsontableEditor .ht-multi-select-editor ul li div input:focus{outline:none}.handsontableEditor .ht-multi-select-editor ul li div label{color:var(--ht-foreground-color);text-overflow:ellipsis;font-size:var(--ht-font-size);font-style:normal;font-weight:400;line-height:var(--ht-line-height);letter-spacing:var(--ht-letter-spacing);width:100%;padding:0 0 0 calc(var(--ht-gap-size)*2);overflow:hidden}.handsontableEditor .ht-multi-select-editor ul li:hover{background:color-mix(in srgb,var(--ht-menu-item-hover-color)var(--ht-menu-item-hover-color-opacity,100%),transparent)}.handsontableEditor .ht-multi-select-editor ul li:has(input:focus){background:color-mix(in srgb,var(--ht-menu-item-hover-color)var(--ht-menu-item-hover-color-opacity,100%),transparent)}.handsontable .htUISelectCaption{width:100%;padding:var(--ht-input-vertical-padding)var(--ht-input-horizontal-padding);font-family:inherit;font-size:var(--ht-font-size);line-height:var(--ht-line-height);font-weight:var(--ht-font-weight);border-radius:var(--ht-input-border-radius);box-sizing:border-box;cursor:pointer;border:var(--ht-input-border-width)solid var(--ht-input-border-color);color:var(--ht-input-foreground-color);background-color:var(--ht-input-background-color);text-overflow:ellipsis;white-space:nowrap;transition:var(--ht-table-transition)all ease-in-out;margin:0;padding-inline-end:calc(var(--ht-input-horizontal-padding) + var(--ht-icon-size));overflow:hidden;outline:none!important}.handsontable .htUISelectCaption:after{content:"";right:calc(var(--ht-input-horizontal-padding) - var(--ht-icon-size)/4);display:block;position:absolute;top:50%;transform:translateY(-50%)}.handsontable .htUISelectCaption:hover{border-color:var(--ht-input-hover-border-color);color:var(--ht-input-hover-foreground-color);background-color:var(--ht-input-hover-background-color)}.handsontable .htUISelectCaption:disabled{border-color:var(--ht-input-disabled-border-color);color:var(--ht-input-disabled-foreground-color);background-color:var(--ht-input-disabled-background-color)}.handsontable .htUISelectCaption:focus{border-color:var(--ht-input-focus-border-color);color:var(--ht-input-focus-foreground-color);background-color:var(--ht-input-focus-background-color)}.handsontable .htUISelect{cursor:pointer;position:relative;outline:none!important}.handsontable .htUISelect:focus .htUISelectCaption{border-color:var(--ht-input-focus-border-color);color:var(--ht-input-focus-foreground-color);background-color:var(--ht-input-focus-background-color)}[dir=rtl].handsontable .htUISelectCaption:after{right:auto;left:calc(var(--ht-input-horizontal-padding) - var(--ht-icon-size)/4)}.handsontable .htFiltersMenuCondition .htUIInput input,.handsontable .htFiltersMenuValue .htUIMultipleSelectSearch input{width:100%;padding:var(--ht-input-vertical-padding)var(--ht-input-horizontal-padding);font-family:inherit;font-size:var(--ht-font-size);line-height:var(--ht-line-height);font-weight:var(--ht-font-weight);border-radius:var(--ht-input-border-radius);box-sizing:border-box;cursor:pointer;border:var(--ht-input-border-width)solid var(--ht-input-border-color);color:var(--ht-input-foreground-color);background-color:var(--ht-input-background-color);transition:var(--ht-table-transition)all ease-in-out;outline:none!important}.handsontable .htFiltersMenuCondition .htUIInput input:hover,.handsontable .htFiltersMenuValue .htUIMultipleSelectSearch input:hover{border-color:var(--ht-input-hover-border-color);color:var(--ht-input-hover-foreground-color);background-color:var(--ht-input-hover-background-color)}.handsontable .htFiltersMenuCondition .htUIInput input:disabled,.handsontable .htFiltersMenuValue .htUIMultipleSelectSearch input:disabled{border-color:var(--ht-input-disabled-border-color);color:var(--ht-input-disabled-foreground-color);background-color:var(--ht-input-disabled-background-color)}.handsontable .htFiltersMenuCondition .htUIInput input:focus,.handsontable .htFiltersMenuValue .htUIMultipleSelectSearch input:focus{border-color:var(--ht-input-focus-border-color);color:var(--ht-input-focus-foreground-color);background-color:var(--ht-input-focus-background-color)}.handsontable .htUIInput{text-align:center;padding:0;position:relative;outline:none!important}.handsontable .htUIInputIcon{position:absolute}.handsontable .htUIInput.htUIButton input,.handsontable .ht-button{min-width:64px;padding:var(--ht-button-vertical-padding)var(--ht-button-horizontal-padding);font-family:inherit;font-size:var(--ht-font-size);line-height:var(--ht-line-height);font-weight:var(--ht-font-weight);border-radius:var(--ht-button-border-radius);box-sizing:border-box;cursor:pointer;transition:var(--ht-table-transition)all ease-in-out;border-style:solid;border-width:1px;outline:none!important}.handsontable .htUIInput.htUIButtonCancel input,.handsontable .ht-button--secondary{border-color:var(--ht-secondary-button-border-color);background-color:var(--ht-secondary-button-background-color);color:var(--ht-secondary-button-foreground-color)}.handsontable .htUIInput.htUIButtonCancel input:hover,.handsontable .ht-button--secondary:hover{border-color:var(--ht-secondary-button-hover-border-color);background-color:var(--ht-secondary-button-hover-background-color);color:var(--ht-secondary-button-hover-foreground-color)}.handsontable .htUIInput.htUIButtonCancel input:disabled,.handsontable .ht-button--secondary:disabled{border-color:var(--ht-secondary-button-disabled-border-color);background-color:var(--ht-secondary-button-disabled-background-color);color:var(--ht-secondary-button-disabled-foreground-color)}.handsontable .htUIInput.htUIButtonCancel input:focus,.handsontable .ht-button--secondary:focus{border-color:var(--ht-secondary-button-focus-border-color);background-color:var(--ht-secondary-button-focus-background-color);color:var(--ht-secondary-button-focus-foreground-color);box-shadow:0 0 0 1px var(--ht-accent-color)}.htUIInput.htUIButtonOK input,.ht-button--primary{border-color:var(--ht-primary-button-border-color);background-color:var(--ht-primary-button-background-color);color:var(--ht-primary-button-foreground-color)}.htUIInput.htUIButtonOK input:hover,.ht-button--primary:hover{border-color:var(--ht-primary-button-hover-border-color);background-color:var(--ht-primary-button-hover-background-color);color:var(--ht-primary-button-hover-foreground-color)}.htUIInput.htUIButtonOK input:disabled,.ht-button--primary:disabled{border-color:var(--ht-primary-button-disabled-border-color);background-color:var(--ht-primary-button-disabled-background-color);color:var(--ht-primary-button-disabled-foreground-color)}.htUIInput.htUIButtonOK input:focus,.ht-button--primary:focus{border-color:var(--ht-primary-button-focus-border-color);background-color:var(--ht-primary-button-focus-background-color);color:var(--ht-primary-button-focus-foreground-color);box-shadow:0 0 0 1px var(--ht-accent-color)}.handsontable .htUIRadio{padding:var(--ht-gap-size)calc(2*var(--ht-gap-size));align-items:center;gap:var(--ht-gap-size);cursor:pointer;margin:0;padding-bottom:0;display:inline-flex;position:relative}.handsontable .htUIRadio:first-child{padding-inline-start:0}.handsontable .htUIRadio>input[type=radio]{width:var(--ht-radio-size);height:var(--ht-radio-size);-webkit-appearance:none;appearance:none;cursor:pointer;border-radius:calc(.5*var(--ht-radio-size));outline:none;margin:0;position:relative}.handsontable .htUIRadio>input[type=radio]:before{content:"";border-radius:calc(.5*var(--ht-radio-size));border:1px solid var(--ht-radio-border-color);background-color:var(--ht-radio-background-color);display:block;position:absolute;inset:0}.handsontable .htUIRadio>input[type=radio]:after{content:"";color:var(--ht-radio-icon-color);display:block;position:absolute}.handsontable .htUIRadio>input[type=radio]:checked:before{border-color:var(--ht-radio-checked-border-color);background-color:var(--ht-radio-checked-background-color)}.handsontable .htUIRadio>input[type=radio]:checked:after{color:var(--ht-radio-checked-icon-color)}.handsontable .htUIRadio>input[type=radio]:checked:disabled{cursor:initial}.handsontable .htUIRadio>input[type=radio]:checked:disabled:before{border-color:var(--ht-radio-checked-disabled-border-color);background-color:var(--ht-radio-checked-disabled-background-color)}.handsontable .htUIRadio>input[type=radio]:checked:disabled:after{color:var(--ht-radio-checked-disabled-icon-color)}.handsontable .htUIRadio>input[type=radio]:checked:focus:before{border-color:var(--ht-radio-checked-focus-border-color);background-color:var(--ht-radio-checked-focus-background-color)}.handsontable .htUIRadio>input[type=radio]:checked:focus:after{color:var(--ht-radio-checked-focus-icon-color)}.handsontable .htUIRadio>input[type=radio]:disabled{cursor:initial}.handsontable .htUIRadio>input[type=radio]:disabled:before{border-color:var(--ht-radio-disabled-border-color);background-color:var(--ht-radio-disabled-background-color)}.handsontable .htUIRadio>input[type=radio]:disabled:after{color:var(--ht-radio-disabled-icon-color)}.handsontable .htUIRadio>input[type=radio]:focus:before{border-color:var(--ht-radio-focus-border-color);background-color:var(--ht-radio-focus-background-color);outline:1px solid var(--ht-radio-focus-ring-color)}.handsontable .htUIRadio>input[type=radio]:focus:after{color:var(--ht-radio-focus-icon-color)}.handsontable .htUIRadio label{vertical-align:middle;cursor:pointer;color:inherit}.handsontable .htUIRadio label:before{content:"";display:block;position:absolute;inset:0}.handsontable .collapsibleIndicator,.handsontable .ht_nestingButton{width:var(--ht-icon-button-hit-area-size);height:var(--ht-icon-button-hit-area-size);margin:calc(-1*(var(--ht-icon-button-hit-area-size) - var(--ht-icon-size))/2 + 1px);box-sizing:border-box;cursor:pointer;text-indent:-100px;flex-shrink:0;font-size:0;position:relative;overflow:visible}.handsontable .collapsibleIndicator:before,.handsontable .ht_nestingButton:before{content:"";width:var(--ht-icon-size);height:var(--ht-icon-size);margin-top:calc(-.5*var(--ht-icon-size));margin-left:calc(-.5*var(--ht-icon-size));border-radius:var(--ht-collapse-button-border-radius);transition:var(--ht-table-transition)all ease-in-out;z-index:1;display:block;position:absolute;top:50%;left:50%}.handsontable .collapsibleIndicator:after,.handsontable .ht_nestingButton:after{content:"";width:var(--ht-icon-size);height:var(--ht-icon-size);margin-top:calc(-.5*var(--ht-icon-size));margin-left:calc(-.5*var(--ht-icon-size));border-radius:var(--ht-collapse-button-border-radius);transition:var(--ht-table-transition)all ease-in-out;z-index:0;display:block;position:absolute;top:50%;left:50%}.handsontable .collapsibleIndicator.expanded:before,.handsontable .collapsibleIndicator.ht_nestingCollapse:before,.handsontable .ht_nestingButton.expanded:before,.handsontable .ht_nestingButton.ht_nestingCollapse:before{color:var(--ht-collapse-button-open-icon-color)}.handsontable .collapsibleIndicator.expanded:after,.handsontable .collapsibleIndicator.ht_nestingCollapse:after,.handsontable .ht_nestingButton.expanded:after,.handsontable .ht_nestingButton.ht_nestingCollapse:after{background-color:var(--ht-collapse-button-open-background-color);box-shadow:0 0 0 1px var(--ht-collapse-button-open-border-color)}.handsontable .collapsibleIndicator.expanded:hover:before,.handsontable .collapsibleIndicator.ht_nestingCollapse:hover:before,.handsontable .ht_nestingButton.expanded:hover:before,.handsontable .ht_nestingButton.ht_nestingCollapse:hover:before{color:var(--ht-collapse-button-open-hover-icon-color)}.handsontable .collapsibleIndicator.expanded:hover:after,.handsontable .collapsibleIndicator.ht_nestingCollapse:hover:after,.handsontable .ht_nestingButton.expanded:hover:after,.handsontable .ht_nestingButton.ht_nestingCollapse:hover:after{background-color:var(--ht-collapse-button-open-hover-background-color);box-shadow:0 0 0 1px var(--ht-collapse-button-open-hover-border-color)}.handsontable .collapsibleIndicator.collapsed:before,.handsontable .collapsibleIndicator.ht_nestingExpand:before,.handsontable .ht_nestingButton.collapsed:before,.handsontable .ht_nestingButton.ht_nestingExpand:before{color:var(--ht-collapse-button-close-icon-color)}.handsontable .collapsibleIndicator.collapsed:after,.handsontable .collapsibleIndicator.ht_nestingExpand:after,.handsontable .ht_nestingButton.collapsed:after,.handsontable .ht_nestingButton.ht_nestingExpand:after{background-color:var(--ht-collapse-button-close-background-color);box-shadow:0 0 0 1px var(--ht-collapse-button-close-border-color)}.handsontable .collapsibleIndicator.collapsed:hover:before,.handsontable .collapsibleIndicator.ht_nestingExpand:hover:before,.handsontable .ht_nestingButton.collapsed:hover:before,.handsontable .ht_nestingButton.ht_nestingExpand:hover:before{color:var(--ht-collapse-button-close-hover-icon-color)}.handsontable .collapsibleIndicator.collapsed:hover:after,.handsontable .collapsibleIndicator.ht_nestingExpand:hover:after,.handsontable .ht_nestingButton.collapsed:hover:after,.handsontable .ht_nestingButton.ht_nestingExpand:hover:after{background-color:var(--ht-collapse-button-close-hover-background-color);box-shadow:0 0 0 1px var(--ht-collapse-button-close-hover-border-color)}.handsontable th.ht__active_highlight .collapsibleIndicator.collapsed:before,.handsontable th.ht__active_highlight .collapsibleIndicator.ht_nestingExpand:before,.handsontable th.ht__active_highlight .ht_nestingButton.collapsed:before,.handsontable th.ht__active_highlight .ht_nestingButton.ht_nestingExpand:before{color:var(--ht-collapse-button-close-icon-active-color)}.handsontable th.ht__active_highlight .collapsibleIndicator.collapsed:hover:before,.handsontable th.ht__active_highlight .collapsibleIndicator.ht_nestingExpand:hover:before,.handsontable th.ht__active_highlight .ht_nestingButton.collapsed:hover:before,.handsontable th.ht__active_highlight .ht_nestingButton.ht_nestingExpand:hover:before{color:var(--ht-collapse-button-close-hover-icon-active-color)}.handsontable th.ht__active_highlight .collapsibleIndicator.expanded:before,.handsontable th.ht__active_highlight .collapsibleIndicator.ht_nestingCollapse:before,.handsontable th.ht__active_highlight .ht_nestingButton.expanded:before,.handsontable th.ht__active_highlight .ht_nestingButton.ht_nestingCollapse:before{color:var(--ht-collapse-button-open-icon-active-color)}.handsontable th.ht__active_highlight .collapsibleIndicator.expanded:hover:before,.handsontable th.ht__active_highlight .collapsibleIndicator.ht_nestingCollapse:hover:before,.handsontable th.ht__active_highlight .ht_nestingButton.expanded:hover:before,.handsontable th.ht__active_highlight .ht_nestingButton.ht_nestingCollapse:hover:before{color:var(--ht-collapse-button-open-hover-icon-active-color)}.handsontable thead th.htRowspanHeader+th{border-inline-start-width:0}.handsontable thead th.htRowspanHeader{vertical-align:bottom;height:auto;overflow:visible}.handsontable thead th.htRowspanHeader.ht__active_highlight{border-inline-start-color:var(--ht-header-active-border-color);z-index:1}.handsontable.htRowHeaders.htHasRowspanHeaders :where(table.htCore)>thead>tr:last-child>th:first-child:not(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)){border-bottom-left-radius:0}.handsontable.htRowHeaders.htHasRowspanHeaders :where(table.htCore)>thead>tr:last-child>th:first-child:is(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)){border-bottom-right-radius:0}.handsontable.htHasRowspanHeaders .ht_clone_inline_start .htCore>tbody>tr:first-child>th:first-child:not(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)){border-top-left-radius:0}.handsontable.htHasRowspanHeaders .ht_clone_inline_start .htCore>tbody>tr:first-child>th:first-child:is(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)){border-top-right-radius:0}.handsontable .ht_master:not(.innerBorderTop):not(.innerBorderBottom) thead th.htRowspanBottomLevel,.handsontable .ht_master:not(.innerBorderTop):not(.innerBorderBottom)~.handsontable thead th.htRowspanBottomLevel{border-bottom-width:0}.handsontable thead th.hiddenHeader:not(:first-of-type){display:none}.handsontable thead th.hiddenHeaderText .colHeader{opacity:0}.handsontable th.ht_nestingLevels>.relative{align-items:center;gap:5px;display:flex}.handsontable th.ht_nestingLevels span:last-child{padding-left:calc(var(--ht-icon-size) + 5px)}.handsontable th.ht_nestingLevels span.ht_nestingLevel{display:inline-block}.handsontable th.ht_nestingLevels span.ht_nestingLevel_empty{order:-2;width:5px;height:1px;display:inline-block;position:relative}.handsontable th.ht_nestingLevels .ht_nestingButton{cursor:pointer;order:-1;position:relative}.handsontable th.beforeHiddenColumn,.handsontable th.afterHiddenColumn{position:relative}.handsontable th.beforeHiddenColumn:before,.handsontable th.beforeHiddenColumn:after,.handsontable th.afterHiddenColumn:before,.handsontable th.afterHiddenColumn:after{color:var(--ht-hidden-indicator-color);position:absolute;top:50%;transform:translateY(-50%);width:10px!important;height:10px!important}.handsontable th.beforeHiddenColumn:after{content:"";display:block;right:-2px}.handsontable th.afterHiddenColumn:before{content:"";display:block;left:-2px}.handsontable th.ht__active_highlight.beforeHiddenColumn:before,.handsontable th.ht__active_highlight.beforeHiddenColumn:after,.handsontable th.ht__active_highlight.afterHiddenColumn:before,.handsontable th.ht__active_highlight.afterHiddenColumn:after{color:var(--ht-icon-button-active-icon-color,var(--ht-icon-active-button-icon-color))}[dir=rtl].handsontable th.beforeHiddenColumn:after{right:initial;left:-2px;transform:translateY(-50%)rotate(180deg)}[dir=rtl].handsontable th.afterHiddenColumn:before{right:-2px;left:initial;transform:translateY(-50%)rotate(180deg)}.handsontable th.beforeHiddenRow,.handsontable th.afterHiddenRow{position:relative}.handsontable th.beforeHiddenRow:before,.handsontable th.beforeHiddenRow:after,.handsontable th.afterHiddenRow:before,.handsontable th.afterHiddenRow:after{color:var(--ht-hidden-indicator-color);position:absolute;left:50%;transform:translate(-50%);width:10px!important;height:10px!important}.handsontable th.beforeHiddenRow:after{content:"";display:block;bottom:-2px}.handsontable th.afterHiddenRow:before{content:"";display:block;top:-2px}.handsontable th.ht__active_highlight.beforeHiddenRow:before,.handsontable th.ht__active_highlight.beforeHiddenRow:after,.handsontable th.ht__active_highlight.afterHiddenRow:before,.handsontable th.ht__active_highlight.afterHiddenRow:after{color:var(--ht-icon-button-active-icon-color,var(--ht-icon-active-button-icon-color))}.handsontable .changeType{box-sizing:border-box;width:var(--ht-icon-button-hit-area-size);height:var(--ht-icon-button-hit-area-size);margin:calc(-1*(var(--ht-icon-button-hit-area-size) - var(--ht-icon-size))/2 + 1px);box-shadow:none;color:inherit;z-index:1;background:0 0;border:none;outline:none;flex-shrink:0;padding:0;position:relative;overflow:visible}.handsontable .changeType:before{content:"";width:var(--ht-icon-size);height:var(--ht-icon-size);margin-top:calc(-.5*var(--ht-icon-size));margin-left:calc(-.5*var(--ht-icon-size));color:var(--ht-icon-button-icon-color);z-index:1;display:block;position:absolute;top:50%;left:50%}.handsontable .changeType:after{content:"";width:var(--ht-icon-size);height:var(--ht-icon-size);margin-top:calc(-.5*var(--ht-icon-size));margin-left:calc(-.5*var(--ht-icon-size));border-radius:var(--ht-icon-button-border-radius);box-shadow:0 0 0 1px var(--ht-icon-button-border-color);background-color:var(--ht-icon-button-background-color);z-index:0;display:block;position:absolute;top:50%;left:50%}.handsontable .changeType:hover{cursor:pointer}.handsontable .changeType:hover:before{color:var(--ht-icon-button-hover-icon-color)}.handsontable .changeType:hover:after{box-shadow:0 0 0 1px var(--ht-icon-button-hover-border-color);background-color:var(--ht-icon-button-hover-background-color)}.handsontable .ht__active_highlight .changeType:before{color:var(--ht-icon-button-active-icon-color,var(--ht-icon-active-button-icon-color))}.handsontable .ht__active_highlight .changeType:after{box-shadow:0 0 0 1px var(--ht-icon-button-active-border-color,var(--ht-icon-active-button-border-color));background-color:var(--ht-icon-button-active-background-color,var(--ht-icon-active-button-background-color))}.handsontable .ht__active_highlight .changeType:hover:before{color:var(--ht-icon-button-active-hover-icon-color,var(--ht-icon-active-button-hover-icon-color))}.handsontable .ht__active_highlight .changeType:hover:after{box-shadow:0 0 0 1px var(--ht-icon-button-active-hover-border-color,var(--ht-icon-active-button-hover-border-color));background-color:var(--ht-icon-button-active-hover-background-color,var(--ht-icon-active-button-hover-background-color))}.handsontable th.htFiltersActive{background-color:var(--ht-header-filter-background-color)}.handsontable th.htFiltersActive.ht__active_highlight{background-color:color-mix(in srgb,var(--ht-header-active-background-color),var(--ht-header-filter-background-color)20%)}.handsontable.htDropdownMenu>.ht_master,.handsontable.htContextMenu>.ht_master,.handsontable.htFiltersConditionsMenu>.ht_master{box-shadow:var(--ht-menu-shadow-x,0)var(--ht-menu-shadow-y,0)var(--ht-menu-shadow-blur,8px)color-mix(in srgb,var(--ht-menu-shadow-color,#000)var(--ht-menu-shadow-opacity,100%),transparent);border:var(--ht-menu-border-width,1px)solid var(--ht-menu-border-color,#e5e5e9);border-radius:var(--ht-menu-border-radius);padding:var(--ht-menu-vertical-padding,8px)var(--ht-menu-horizontal-padding,0);background-color:var(--ht-background-color,#fff);overflow:hidden}.handsontable.htDropdownMenu:not(.htGhostTable),.handsontable.htContextMenu:not(.htGhostTable),.handsontable.htFiltersConditionsMenu:not(.htGhostTable){z-index:1060;display:none;position:absolute}.handsontable.htDropdownMenu .ht_clone_top,.handsontable.htDropdownMenu .ht_clone_bottom,.handsontable.htDropdownMenu .ht_clone_inline_start,.handsontable.htDropdownMenu .ht_clone_top_inline_start_corner,.handsontable.htDropdownMenu .ht_clone_bottom_inline_start_corner,.handsontable.htContextMenu .ht_clone_top,.handsontable.htContextMenu .ht_clone_bottom,.handsontable.htContextMenu .ht_clone_inline_start,.handsontable.htContextMenu .ht_clone_top_inline_start_corner,.handsontable.htContextMenu .ht_clone_bottom_inline_start_corner,.handsontable.htFiltersConditionsMenu .ht_clone_top,.handsontable.htFiltersConditionsMenu .ht_clone_bottom,.handsontable.htFiltersConditionsMenu .ht_clone_inline_start,.handsontable.htFiltersConditionsMenu .ht_clone_top_inline_start_corner,.handsontable.htFiltersConditionsMenu .ht_clone_bottom_inline_start_corner{display:none}.handsontable.htDropdownMenu table.htCore,.handsontable.htContextMenu table.htCore,.handsontable.htFiltersConditionsMenu table.htCore{overflow:hidden}.handsontable.htDropdownMenu .htCustomMenuRenderer .table.htCore,.handsontable.htContextMenu .htCustomMenuRenderer .table.htCore,.handsontable.htFiltersConditionsMenu .htCustomMenuRenderer .table.htCore{box-shadow:none}.handsontable.htDropdownMenu.handsontable:focus,.handsontable.htContextMenu.handsontable:focus,.handsontable.htFiltersConditionsMenu.handsontable:focus{outline:none}.handsontable.htDropdownMenu .wtBorder,.handsontable.htContextMenu .wtBorder,.handsontable.htFiltersConditionsMenu .wtBorder{visibility:hidden}.handsontable.htDropdownMenu tbody tr:first-of-type td:first-child,.handsontable.htDropdownMenu tbody tr:first-of-type th:first-child,.handsontable.htContextMenu tbody tr:first-of-type td:first-child,.handsontable.htContextMenu tbody tr:first-of-type th:first-child,.handsontable.htFiltersConditionsMenu tbody tr:first-of-type td:first-child,.handsontable.htFiltersConditionsMenu tbody tr:first-of-type th:first-child{height:calc(var(--ht-cell-vertical-padding)*2 + var(--ht-line-height) + 1px)}.handsontable.htDropdownMenu table tbody tr td,.handsontable.htContextMenu table tbody tr td,.handsontable.htFiltersConditionsMenu table tbody tr td{padding:var(--ht-menu-item-vertical-padding,4px)var(--ht-menu-item-horizontal-padding,8px);white-space:nowrap;text-overflow:ellipsis;background:var(--ht-background-color,#fff);cursor:pointer;transition:var(--ht-table-transition)background ease-in-out;border-width:0;position:relative;overflow:hidden}.handsontable.htDropdownMenu table tbody tr td:first-child,.handsontable.htContextMenu table tbody tr td:first-child,.handsontable.htFiltersConditionsMenu table tbody tr td:first-child{border-top-width:0;border-inline-end-width:0;border-bottom-width:0;border-inline-start-width:0}.handsontable.htDropdownMenu table tbody tr td.htDimmed,.handsontable.htContextMenu table tbody tr td.htDimmed,.handsontable.htFiltersConditionsMenu table tbody tr td.htDimmed{font-style:normal;color:inherit!important;background-color:inherit!important}.handsontable.htDropdownMenu table tbody tr td:not(.handsontable.htDropdownMenu table tbody tr td.htCustomMenuRenderer,.handsontable.htDropdownMenu table tbody tr td.htDisabled,.handsontable.htContextMenu table tbody tr td.htCustomMenuRenderer,.handsontable.htContextMenu table tbody tr td.htDisabled,.handsontable.htFiltersConditionsMenu table tbody tr td.htCustomMenuRenderer,.handsontable.htFiltersConditionsMenu table tbody tr td.htDisabled):hover,.handsontable.htContextMenu table tbody tr td:not(.handsontable.htDropdownMenu table tbody tr td.htCustomMenuRenderer,.handsontable.htDropdownMenu table tbody tr td.htDisabled,.handsontable.htContextMenu table tbody tr td.htCustomMenuRenderer,.handsontable.htContextMenu table tbody tr td.htDisabled,.handsontable.htFiltersConditionsMenu table tbody tr td.htCustomMenuRenderer,.handsontable.htFiltersConditionsMenu table tbody tr td.htDisabled):hover,.handsontable.htFiltersConditionsMenu table tbody tr td:not(.handsontable.htDropdownMenu table tbody tr td.htCustomMenuRenderer,.handsontable.htDropdownMenu table tbody tr td.htDisabled,.handsontable.htContextMenu table tbody tr td.htCustomMenuRenderer,.handsontable.htContextMenu table tbody tr td.htDisabled,.handsontable.htFiltersConditionsMenu table tbody tr td.htCustomMenuRenderer,.handsontable.htFiltersConditionsMenu table tbody tr td.htDisabled):hover{cursor:pointer;background:color-mix(in srgb,var(--ht-menu-item-hover-color)var(--ht-menu-item-hover-color-opacity,100%),transparent)!important}.handsontable.htDropdownMenu table tbody tr td:not(.handsontable.htDropdownMenu table tbody tr td.htCustomMenuRenderer,.handsontable.htDropdownMenu table tbody tr td.htDisabled,.handsontable.htContextMenu table tbody tr td.htCustomMenuRenderer,.handsontable.htContextMenu table tbody tr td.htDisabled,.handsontable.htFiltersConditionsMenu table tbody tr td.htCustomMenuRenderer,.handsontable.htFiltersConditionsMenu table tbody tr td.htDisabled).current:not([aria-expanded=true]),.handsontable.htContextMenu table tbody tr td:not(.handsontable.htDropdownMenu table tbody tr td.htCustomMenuRenderer,.handsontable.htDropdownMenu table tbody tr td.htDisabled,.handsontable.htContextMenu table tbody tr td.htCustomMenuRenderer,.handsontable.htContextMenu table tbody tr td.htDisabled,.handsontable.htFiltersConditionsMenu table tbody tr td.htCustomMenuRenderer,.handsontable.htFiltersConditionsMenu table tbody tr td.htDisabled).current:not([aria-expanded=true]),.handsontable.htFiltersConditionsMenu table tbody tr td:not(.handsontable.htDropdownMenu table tbody tr td.htCustomMenuRenderer,.handsontable.htDropdownMenu table tbody tr td.htDisabled,.handsontable.htContextMenu table tbody tr td.htCustomMenuRenderer,.handsontable.htContextMenu table tbody tr td.htDisabled,.handsontable.htFiltersConditionsMenu table tbody tr td.htCustomMenuRenderer,.handsontable.htFiltersConditionsMenu table tbody tr td.htDisabled).current:not([aria-expanded=true]){box-shadow:inset 0 0 0 1px var(--ht-accent-color)}.handsontable.htDropdownMenu table tbody tr td.htSubmenu .htItemWrapper,.handsontable.htContextMenu table tbody tr td.htSubmenu .htItemWrapper,.handsontable.htFiltersConditionsMenu table tbody tr td.htSubmenu .htItemWrapper{margin-inline-end:calc(2*var(--ht-gap-size,4px) + var(--ht-icon-size))}.handsontable.htDropdownMenu table tbody tr td.htSubmenu .htItemWrapper:after,.handsontable.htContextMenu table tbody tr td.htSubmenu .htItemWrapper:after,.handsontable.htFiltersConditionsMenu table tbody tr td.htSubmenu .htItemWrapper:after{content:"";top:50%;right:calc(var(--ht-menu-item-horizontal-padding) + var(--ht-gap-size)*2);display:block;position:absolute;transform:translateY(-50%)}.handsontable.htDropdownMenu table tbody tr td.htSeparator,.handsontable.htContextMenu table tbody tr td.htSeparator,.handsontable.htFiltersConditionsMenu table tbody tr td.htSeparator{border-top:1px solid var(--ht-border-color);cursor:default;height:0;padding:0}.handsontable.htDropdownMenu table tbody tr td.htDisabled,.handsontable.htContextMenu table tbody tr td.htDisabled,.handsontable.htFiltersConditionsMenu table tbody tr td.htDisabled{color:var(--ht-disabled-color);cursor:default}.handsontable.htDropdownMenu table tbody tr td.htDisabled:hover,.handsontable.htContextMenu table tbody tr td.htDisabled:hover,.handsontable.htFiltersConditionsMenu table tbody tr td.htDisabled:hover{background:var(--ht-background-color);color:var(--ht-disabled-color)}.handsontable.htDropdownMenu table tbody tr td.htHidden,.handsontable.htContextMenu table tbody tr td.htHidden,.handsontable.htFiltersConditionsMenu table tbody tr td.htHidden{display:none}:is(.handsontable.htDropdownMenu table tbody tr td:has(.htItemWrapper .selected),.handsontable.htContextMenu table tbody tr td:has(.htItemWrapper .selected),.handsontable.htFiltersConditionsMenu table tbody tr td:has(.htItemWrapper .selected)){background-color:color-mix(in srgb,var(--ht-menu-item-active-color)var(--ht-menu-item-active-color-opacity,100%),transparent)}.handsontable.htDropdownMenu table tbody tr td .htItemWrapper,.handsontable.htContextMenu table tbody tr td .htItemWrapper,.handsontable.htFiltersConditionsMenu table tbody tr td .htItemWrapper{margin-inline:calc(2*var(--ht-gap-size,4px))}.handsontable.htDropdownMenu table tbody tr td .htItemWrapper:before,.handsontable.htContextMenu table tbody tr td .htItemWrapper:before,.handsontable.htFiltersConditionsMenu table tbody tr td .htItemWrapper:before{vertical-align:text-bottom;margin-right:12px}.handsontable.htDropdownMenu table tbody tr td .htItemWrapper span.selected,.handsontable.htContextMenu table tbody tr td .htItemWrapper span.selected,.handsontable.htFiltersConditionsMenu table tbody tr td .htItemWrapper span.selected{font-size:0;inset:0}.handsontable.htDropdownMenu table tbody tr td .htItemWrapper span.selected:after,.handsontable.htContextMenu table tbody tr td .htItemWrapper span.selected:after,.handsontable.htFiltersConditionsMenu table tbody tr td .htItemWrapper span.selected:after{content:"";top:50%;right:calc(var(--ht-menu-item-horizontal-padding) + var(--ht-gap-size)*2);color:var(--ht-accent-color);display:block;position:absolute;transform:translateY(-50%)}.handsontable.htDropdownMenu table tbody tr td div span.selected,.handsontable.htContextMenu table tbody tr td div span.selected,.handsontable.htFiltersConditionsMenu table tbody tr td div span.selected{position:absolute;inset-inline-end:0}.handsontable.htDropdownMenu table tbody tr td .htUIButton,.handsontable.htContextMenu table tbody tr td .htUIButton,.handsontable.htFiltersConditionsMenu table tbody tr td .htUIButton{width:calc(50% - var(--ht-gap-size))}.handsontable.htDropdownMenu table tbody tr td .htUIButton input,.handsontable.htContextMenu table tbody tr td .htUIButton input,.handsontable.htFiltersConditionsMenu table tbody tr td .htUIButton input{width:100%}.handsontable .htUIClearAll a,.handsontable .htUISelectAll a{padding:var(--ht-gap-size);text-decoration:none;display:inline-block}.handsontable .htUIMultipleSelect .ht_master .wtHolder{background:0 0;box-shadow:none!important;border-radius:0!important;overflow-y:scroll!important}.handsontable .htUIMultipleSelect .ht_master .wtHolder .htCore{box-shadow:none}[dir=rtl].handsontable.htDropdownMenu table tbody tr td.htSubmenu .htItemWrapper:after,[dir=rtl].handsontable.htContextMenu table tbody tr td.htSubmenu .htItemWrapper:after,[dir=rtl].handsontable.htFiltersConditionsMenu table tbody tr td.htSubmenu .htItemWrapper:after{left:calc(4*var(--ht-gap-size));right:auto;transform:translateY(-50%)rotate(180deg)}[dir=rtl].handsontable.htDropdownMenu table tbody tr td .htItemWrapper span.selected:after,[dir=rtl].handsontable.htContextMenu table tbody tr td .htItemWrapper span.selected:after,[dir=rtl].handsontable.htFiltersConditionsMenu table tbody tr td .htItemWrapper span.selected:after{left:calc(4*var(--ht-gap-size));right:auto}.handsontable.htFiltersConditionsMenu:not(.htGhostTable){z-index:1070}.handsontable .ht_master table td.htCustomMenuRenderer{cursor:auto}.handsontable .ht_master table td.htCustomMenuRenderer.htFiltersMenuActionBar{padding-top:calc(var(--ht-menu-item-vertical-padding,4px)*2)}.handsontable .htFiltersMenuLabel{font-size:var(--ht-font-size-small);line-height:var(--ht-line-height-small);font-weight:var(--ht-font-weight);margin-bottom:calc(var(--ht-gap-size,2px)*2)}.handsontable .htFiltersMenuLabel:empty{display:none}.handsontable .htFiltersMenuCondition{padding-top:calc(var(--ht-gap-size,2px)*3)!important;padding-bottom:0!important}.handsontable .htFiltersMenuCondition .border{border-bottom:1px solid var(--ht-border-color)!important}.handsontable .htFiltersMenuCondition .htUIInput{margin-top:calc(var(--ht-gap-size,2px)*2)}.handsontable .htFiltersMenuValue{padding-top:calc(var(--ht-gap-size,2px)*3)!important;border-bottom:1px solid var(--ht-border-color)!important;padding-bottom:0!important}.handsontable .htFiltersMenuOperators{padding-top:calc(var(--ht-gap-size,2px)*2)!important;padding-bottom:0!important}.handsontable .htUISelectionControls{margin:0 calc(var(--ht-gap-size,2px)*-1);padding-top:calc(var(--ht-gap-size,2px)*2)!important;padding-bottom:var(--ht-gap-size,2px)!important}.handsontable .htUIMultipleSelectHot{--ht-cell-horizontal-padding:calc(var(--ht-menu-item-horizontal-padding,2px) + var(--ht-gap-size,2px)*2);--ht-cell-vertical-padding:4px;width:calc(100% + var(--ht-menu-item-horizontal-padding,2px)*2 + var(--ht-gap-size,2px)*4);margin:0 calc((var(--ht-menu-item-horizontal-padding,2px) + var(--ht-gap-size,2px)*2)*-1);overflow:initial!important}.handsontable .htUIMultipleSelectHot:before{content:"";background-color:var(--ht-border-color);width:100%;height:1px;display:block;position:absolute;top:-1px;left:0}.handsontable .htUIMultipleSelectHot .wtHolder{box-sizing:border-box;padding:0;overflow-x:hidden}.handsontable .htUIMultipleSelectHot .wtHolder .wtSpreader{padding:calc(var(--ht-gap-size)*2)0}.handsontable .htUIMultipleSelectHot .wtHolder td{padding:var(--ht-cell-vertical-padding)var(--ht-cell-horizontal-padding);height:auto!important}.handsontable .htUIClearAll,.handsontable .htUISelectAll{margin-right:var(--ht-gap-size,4px);margin-bottom:var(--ht-gap-size,4px);display:inline-block}.handsontable .htUIClearAll a,.handsontable .htUISelectAll a{font-size:var(--ht-font-size);line-height:var(--ht-line-height);color:var(--ht-link-color);border-radius:var(--ht-button-border-radius)}.handsontable .htUIClearAll a:hover,.handsontable .htUISelectAll a:hover{color:var(--ht-link-hover-color)}.handsontable .htUIClearAll a:focus,.handsontable .htUISelectAll a:focus{outline:1px solid var(--ht-link-hover-color)}.handsontable .htUIMultipleSelect .ht_master .wtHolder{overflow:auto}.handsontable .htUIMultipleSelect .ht_master .wtHolder .wtHider,.handsontable .htUIMultipleSelect .ht_master .wtHolder .htCore,.handsontable .htUIMultipleSelect .ht_master .wtHolder tr,.handsontable .htUIMultipleSelect .ht_master .wtHolder td{background:0 0}.handsontable .htUIInput.htUIButton{cursor:pointer;display:inline-block}.handsontable .htUIInput.htUIButtonOK{margin-inline-start:0;margin-inline-end:calc(2*var(--ht-gap-size,2px))}.handsontable td a.ht-hyperlink{color:var(--ht-link-color);text-decoration:underline}.handsontable td a.ht-hyperlink:hover{color:var(--ht-link-hover-color)}.handsontable .htCommentCell{position:relative}.handsontable .htCommentCell:after{content:"";top:0;border-inline-start:var(--ht-comments-indicator-size,4px)solid #0000;border-inline-end:none;border-top:var(--ht-comments-indicator-size,4px)solid var(--ht-comments-indicator-color,#1a42e8);display:block;position:absolute;inset-inline-start:unset;inset-inline-end:0}.htCommentsContainer .htComments{z-index:1059;display:none;position:absolute}.htCommentsContainer .htCommentTextArea{font-family:var(--ht-font-family),-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;box-shadow:var(--ht-menu-shadow-x,0)var(--ht-menu-shadow-y,0)var(--ht-menu-shadow-blur,8px)color-mix(in srgb,var(--ht-menu-shadow-color,#000)var(--ht-menu-shadow-opacity,100%),transparent);width:240px;height:88px;font-size:var(--ht-font-size);line-height:var(--ht-line-height);font-weight:var(--ht-font-weight);padding:var(--ht-comments-textarea-vertical-padding)var(--ht-comments-textarea-horizontal-padding);border:var(--ht-comments-textarea-border-width,1px)solid var(--ht-comments-textarea-border-color,transparent);border-inline-start:var(--ht-comments-textarea-border-width,1px)solid var(--ht-comments-textarea-border-color,#1a42e8);color:var(--ht-comments-textarea-foreground-color);background-color:var(--ht-comments-textarea-background-color,#fff);box-sizing:border-box;-webkit-appearance:none;margin:0 -1px;outline:0!important}.htCommentsContainer .htCommentTextArea:focus{border:var(--ht-comments-textarea-focus-border-width,1px)solid var(--ht-comments-textarea-focus-border-color,#1a42e8);color:var(--ht-comments-textarea-focus-foreground-color);background-color:var(--ht-comments-textarea-focus-background-color,#fff)}.htBorders .wtBorder.ht-border-style-dashed-vertical{background-image:repeating-linear-gradient(to bottom,var(--ht-custom-border-color)0 5px,transparent 0 10px)}.htBorders .wtBorder.ht-border-style-dashed-horizontal{background-image:repeating-linear-gradient(to right,var(--ht-custom-border-color)0 5px,transparent 0 10px)}.htBorders .wtBorder.ht-border-style-dotted-horizontal{background-image:radial-gradient(circle,var(--ht-custom-border-color)calc(var(--ht-custom-border-size)/2),transparent 0);background-size:calc(var(--ht-custom-border-size)*2)var(--ht-custom-border-size);background-repeat:repeat-x}.htBorders .wtBorder.ht-border-style-dotted-vertical{background-image:radial-gradient(circle,var(--ht-custom-border-color)calc(var(--ht-custom-border-size)/2),transparent 0);background-size:var(--ht-custom-border-size)calc(var(--ht-custom-border-size)*2);background-repeat:repeat-y}.handsontable .colHeader.columnSorting.sortAction{box-sizing:border-box;min-width:min(var(--ht-icon-size,16px) + 8px,100%);flex-grow:0;max-width:100%;margin-inline:auto;position:static}.handsontable .colHeader.columnSorting.sortAction:before,.handsontable .colHeader.columnSorting.sortAction:after{margin-inline:var(--ht-sort-indicator-offset);margin-inline-end:var(--ht-sort-indicator-offset-end)}.handsontable .htLeft .colHeader.columnSorting.sortAction{margin-left:0;margin-right:auto}.handsontable .htRight .colHeader.columnSorting.sortAction{margin-left:auto;margin-right:0}.handsontable th .relative{--ht-sort-indicator-offset:var(--ht-cell-horizontal-padding);--ht-sort-indicator-offset-end:var(--ht-cell-horizontal-padding);--ht-sort-indicator-reserve:var(--ht-cell-horizontal-padding);--ht-sort-indicator-reserve-end:var(--ht-sort-indicator-reserve);--ht-header-button-slot:calc(var(--ht-icon-size,16px) + 2px)}.handsontable .relative.has-header-button{--ht-sort-indicator-offset-end:calc(var(--ht-cell-horizontal-padding) + var(--ht-icon-size,16px) + (var(--ht-icon-button-hit-area-size,24px) - var(--ht-icon-size,16px))*.5);--ht-sort-indicator-reserve-end:var(--ht-cell-horizontal-padding)}.handsontable .relative.has-sort-indicator.has-header-button{column-gap:calc(2px + var(--ht-header-button-slot))}.handsontable .relative.has-sort-indicator{--ht-sort-indicator-reserve:calc(var(--ht-cell-horizontal-padding) + var(--ht-icon-size,16px) + 2px);padding-inline-end:var(--ht-sort-indicator-reserve-end)}.handsontable .relative.htRight.has-sort-indicator,.handsontable .htRight .relative.has-sort-indicator{--ht-header-button-slot:0px;padding-inline-start:var(--ht-sort-indicator-reserve);padding-inline-end:var(--ht-cell-horizontal-padding)}.handsontable .columnSorting:not(.indicatorDisabled){position:relative}.handsontable .columnSorting:not(.indicatorDisabled).sortAction:hover{cursor:pointer;text-decoration:none}.handsontable .columnSorting:not(.indicatorDisabled).sortAction:before{content:"";width:var(--ht-icon-size,16px);text-align:right;display:block;position:absolute;top:50%;right:2px;transform:translateY(-50%)}.handsontable .htRight .columnSorting.sortAction:before{text-align:left;left:2px;right:auto}[dir=rtl] .handsontable .relative.htRight.has-sort-indicator,[dir=rtl] .handsontable .htRight .relative.has-sort-indicator{--ht-header-button-slot:calc(var(--ht-icon-size,16px) + 2px);padding-inline-start:var(--ht-cell-horizontal-padding);padding-inline-end:var(--ht-sort-indicator-reserve-end)}[dir=rtl] .handsontable .relative.htLeft.has-sort-indicator,[dir=rtl] .handsontable .htLeft .relative.has-sort-indicator{--ht-header-button-slot:0px;padding-inline-start:var(--ht-sort-indicator-reserve);padding-inline-end:var(--ht-cell-horizontal-padding)}[dir=rtl] .handsontable .columnSorting.sortAction:before{text-align:left;left:2px;right:auto}[dir=rtl] .handsontable .htLeft .columnSorting.sortAction:before{text-align:right;left:auto;right:2px}.htGhostTable .htCore .relative{--ht-sort-indicator-offset:0px;--ht-sort-indicator-offset-end:0px;--ht-header-button-slot:0px}.htGhostTable .htCore .relative.has-header-button{--ht-sort-indicator-reserve:var(--ht-cell-horizontal-padding);--ht-sort-indicator-reserve-end:var(--ht-cell-horizontal-padding)}.htGhostTable .htCore span.colHeader.columnSorting:not(.indicatorDisabled):before{content:"*";padding-inline-end:calc(var(--ht-icon-size,16px) + 2px);display:inline-block;position:relative}.handsontable .colHeader.columnSorting:after{content:"";text-align:right;width:8px;margin-top:4px;font-size:8px;display:block;position:absolute;top:50%;right:0;transform:translateY(-50%)}.handsontable .colHeader.columnSorting[class^=sort-]:after,.handsontable .colHeader.columnSorting[class*=\\ sort-]:after{content:"+"}.handsontable .colHeader.columnSorting.sort-1:after{content:"1"}.handsontable .colHeader.columnSorting.sort-2:after{content:"2"}.handsontable .colHeader.columnSorting.sort-3:after{content:"3"}.handsontable .colHeader.columnSorting.sort-4:after{content:"4"}.handsontable .colHeader.columnSorting.sort-5:after{content:"5"}.handsontable .colHeader.columnSorting.sort-6:after{content:"6"}.handsontable .colHeader.columnSorting.sort-7:after{content:"7"}.handsontable .htRight .colHeader.columnSorting:after,[dir=rtl] .handsontable .colHeader.columnSorting:after{text-align:left;left:0;right:auto}[dir=rtl] .handsontable .htLeft .colHeader.columnSorting:after{text-align:right;left:auto;right:0}.htGhostTable th div:has(.changeType) span.colHeader.columnSorting:not(.indicatorDisabled){padding-inline-end:var(--ht-gap-size)}.handsontable .htRowHeaders .ht_master.innerBorderInlineStart~.ht_clone_top_inline_start_corner :where(table.htCore>thead>tr)>th:nth-child(2),.handsontable .htRowHeaders .ht_master.innerBorderInlineStart~.ht_clone_inline_start :where(table.htCore>tbody>tr)>td:first-of-type{border-left:0}.handsontable .ht_clone_top_inline_start_corner th.ht__active_highlight{box-shadow:none}.handsontable .manualColumnResizer{cursor:col-resize;opacity:0;z-index:210;background:0 0;width:10px;margin:0;position:absolute;top:0}.handsontable .manualColumnResizer:before,.handsontable .manualColumnResizer:after{content:"";background:var(--ht-resize-indicator-color);border-radius:2px;width:2px;height:calc(100% - 12px);max-height:16px;margin-top:.5px;display:block;position:absolute;top:50%;left:1px;transform:translateY(-50%)}.handsontable .manualColumnResizer:after{left:auto;right:0}.handsontable .manualColumnResizer:hover,.handsontable .manualColumnResizer.active{opacity:1}.handsontable .manualColumnResizerGuide{inset-inline-end:unset;width:0;border-inline-end:1px solid var(--ht-accent-color);border-inline-start:none;margin-inline-start:5px;margin-inline-end:unset;display:none;position:absolute;top:0}.handsontable .manualColumnResizerGuide.active{z-index:209;display:block}.handsontable .manualRowResizer{z-index:210;cursor:row-resize;opacity:0;background:0 0;height:10px;margin:0;position:absolute;left:0}.handsontable .manualRowResizer:before,.handsontable .manualRowResizer:after{content:"";background:var(--ht-resize-indicator-color);border-radius:2px;width:calc(100% - 12px);max-width:16px;height:2px;display:block;position:absolute;top:1px;left:50%;transform:translate(-50%)}.handsontable .manualRowResizer:after{top:auto;bottom:0}.handsontable .manualRowResizer:hover,.handsontable .manualRowResizer.active{opacity:1}.handsontable .manualRowResizerGuide{border-bottom:1px solid var(--ht-accent-color);border-top:none;height:0;margin-top:5px;display:none;position:absolute;bottom:0;left:0}.handsontable .manualRowResizerGuide.active{z-index:209;display:block}.handsontable tbody td[rowspan][class*=area][class*=highlight]:not([class*=fullySelectedMergedCell]):before{opacity:0}.handsontable tbody td[rowspan][class*=area][class*=highlight][class*=fullySelectedMergedCell-multiple]:before,.handsontable tbody td[rowspan][class*=area][class*=highlight][class*=fullySelectedMergedCell-0]:before{opacity:.14}.handsontable tbody td[rowspan][class*=area][class*=highlight][class*=fullySelectedMergedCell-1]:before{opacity:.21}.handsontable tbody td[rowspan][class*=area][class*=highlight][class*=fullySelectedMergedCell-2]:before{opacity:.28}.handsontable tbody td[rowspan][class*=area][class*=highlight][class*=fullySelectedMergedCell-3]:before{opacity:.35}.handsontable tbody td[rowspan][class*=area][class*=highlight][class*=fullySelectedMergedCell-4]:before{opacity:.42}.handsontable tbody td[rowspan][class*=area][class*=highlight][class*=fullySelectedMergedCell-5]:before{opacity:.49}.handsontable tbody td[rowspan][class*=area][class*=highlight][class*=fullySelectedMergedCell-6]:before{opacity:.56}.handsontable tbody td[rowspan][class*=area][class*=highlight][class*=fullySelectedMergedCell-7]:before{opacity:.63}.handsontable .ht__manualColumnMove.after-selection--columns thead th.ht__highlight,.handsontable .ht__manualColumnMove.after-selection--columns thead th.ht__active_highlight,.handsontable.ht__manualColumnMove.after-selection--columns thead th.ht__highlight,.handsontable.ht__manualColumnMove.after-selection--columns thead th.ht__active_highlight{cursor:move;cursor:-moz-grab;cursor:-webkit-grab;cursor:grab}.handsontable .ht__manualColumnMove.on-moving--columns *,.handsontable .ht__manualColumnMove.on-moving--columns thead th.ht__highlight,.handsontable.ht__manualColumnMove.on-moving--columns *,.handsontable.ht__manualColumnMove.on-moving--columns thead th.ht__highlight{cursor:move;cursor:-moz-grabbing;cursor:-webkit-grabbing;cursor:grabbing}.handsontable .ht__manualColumnMove.on-moving--columns .manualColumnResizer,.handsontable.ht__manualColumnMove.on-moving--columns .manualColumnResizer{display:none}.handsontable .ht__manualColumnMove--guideline,.handsontable .ht__manualColumnMove--backlight,.handsontable.ht__manualColumnMove--guideline,.handsontable.ht__manualColumnMove--backlight{height:100%;display:none;position:absolute}.handsontable .ht__manualColumnMove--guideline,.handsontable.ht__manualColumnMove--guideline{z-index:205;background:var(--ht-move-indicator-color,#1a42e8);width:1px;margin-inline:-.5px 0;top:0}.handsontable .ht__manualColumnMove--backlight,.handsontable.ht__manualColumnMove--backlight{z-index:205;pointer-events:none;background:color-mix(in srgb,var(--ht-move-backlight-color)var(--ht-move-backlight-opacity,100%),transparent);display:none}.handsontable .on-moving--columns.show-ui .ht__manualColumnMove--guideline,.handsontable .on-moving--columns .ht__manualColumnMove--backlight,.handsontable.on-moving--columns.show-ui .ht__manualColumnMove--guideline,.handsontable.on-moving--columns .ht__manualColumnMove--backlight{display:block}.handsontable .wtHider{position:relative}.handsontable .ht__manualRowMove.after-selection--rows tbody th.ht__highlight,.handsontable.ht__manualRowMove.after-selection--rows tbody th.ht__highlight{cursor:move;cursor:-moz-grab;cursor:-webkit-grab;cursor:grab}.handsontable .ht__manualRowMove.on-moving--rows *,.handsontable .ht__manualRowMove.on-moving--rows tbody th.ht__highlight,.handsontable.ht__manualRowMove.on-moving--rows *,.handsontable.ht__manualRowMove.on-moving--rows tbody th.ht__highlight{cursor:move;cursor:-moz-grabbing;cursor:-webkit-grabbing;cursor:grabbing}.handsontable .ht__manualRowMove.on-moving--rows .manualRowResizer,.handsontable.ht__manualRowMove.on-moving--rows .manualRowResizer{display:none}.handsontable .ht__manualRowMove--guideline,.handsontable .ht__manualRowMove--backlight,.handsontable.ht__manualRowMove--guideline,.handsontable.ht__manualRowMove--backlight{width:100%;display:none;position:absolute}.handsontable .ht__manualRowMove--guideline,.handsontable.ht__manualRowMove--guideline{border-top:1px solid var(--ht-move-indicator-color);z-index:205;left:0}.handsontable .ht__manualRowMove--backlight,.handsontable.ht__manualRowMove--backlight{z-index:205;pointer-events:none;background:color-mix(in srgb,var(--ht-move-backlight-color)var(--ht-move-backlight-opacity,100%),transparent);display:none}.handsontable .on-moving--rows.show-ui .ht__manualRowMove--guideline,.handsontable .on-moving--rows .ht__manualRowMove--backlight,.handsontable.on-moving--rows.show-ui .ht__manualRowMove--guideline,.handsontable.on-moving--rows .ht__manualRowMove--backlight{display:block}.ht-dialog{scrollbar-width:auto;scrollbar-color:var(--ht-scrollbar-thumb-color)var(--ht-scrollbar-track-color);font-size:var(--ht-font-size);line-height:var(--ht-line-height);letter-spacing:var(--ht-letter-spacing);z-index:1060;opacity:0;border-radius:var(--ht-border-radius);border:1px solid var(--ht-border-color);width:100%;height:100%;display:none;position:absolute;top:0;left:0;overflow-y:auto;box-sizing:border-box!important}.ht-dialog[dir=rtl]{left:auto;right:0}.ht-dialog:focus{border:1px solid var(--ht-accent-color);outline:none}.ht-dialog:has(.htFocusCatcher:focus){border:1px solid var(--ht-accent-color);outline:none}.ht-dialog *{box-sizing:border-box!important}.ht-dialog--background-solid{background-color:var(--ht-dialog-solid-background-color)}.ht-dialog--background-semi-transparent{background-color:color-mix(in srgb,var(--ht-dialog-semi-transparent-background-color)var(--ht-dialog-semi-transparent-background-opacity,100%),transparent)}.ht-dialog--animation{transition:opacity var(--ht-table-transition)ease-in-out}.ht-dialog--show{opacity:1}.ht-dialog__content-wrapper{width:100%;min-height:100%;padding:calc(var(--ht-gap-size)*4);border-radius:var(--ht-border-radius);justify-content:center;align-items:center;display:flex}.ht-dialog__content{padding:var(--ht-dialog-content-padding-horizontal)var(--ht-dialog-content-padding-vertical);max-width:480px;color:var(--ht-foreground-color);position:relative}.ht-dialog__content--background{box-shadow:var(--ht-shadow-x,0)var(--ht-shadow-y,0)var(--ht-shadow-blur,8px)color-mix(in srgb,var(--ht-shadow-color,#000)var(--ht-shadow-opacity,100%),transparent);border-radius:var(--ht-dialog-content-border-radius);background-color:var(--ht-dialog-content-background-color)}.ht-dialog--confirm .ht-dialog__content-wrapper{text-align:center;padding:calc(var(--ht-gap-size)*2)}.ht-dialog--confirm .ht-dialog__content-wrapper-inner{max-width:480px;padding:calc(var(--ht-gap-size)*2);border-radius:var(--ht-border-radius);flex-direction:column;justify-content:center;align-items:center;display:flex}.ht-dialog--confirm .ht-dialog__content-wrapper-inner--background{box-shadow:var(--ht-shadow-x,0)var(--ht-shadow-y,0)var(--ht-shadow-blur,8px)color-mix(in srgb,var(--ht-shadow-color,#000)var(--ht-shadow-opacity,100%),transparent);border-radius:var(--ht-dialog-content-border-radius);background-color:var(--ht-dialog-content-background-color)}.ht-dialog--confirm .ht-dialog__content-wrapper-inner:focus{box-shadow:0 0 0 1px var(--ht-accent-color);outline:none}.ht-dialog--confirm .ht-dialog__content{justify-content:center;align-items:center;gap:var(--ht-gap-size);flex-direction:column;display:flex}.ht-dialog--confirm .ht-dialog__content:has(.ht-dialog__buttons){gap:calc(var(--ht-gap-size)*2)}.ht-dialog--confirm .ht-dialog__title{font-size:var(--ht-font-size);font-weight:var(--ht-font-weight);line-height:var(--ht-line-height);margin:0}.ht-dialog--confirm .ht-dialog__description{color:var(--ht-foreground-secondary-color);font-size:var(--ht-font-size-small);line-height:var(--ht-line-height-small);font-weight:var(--ht-font-weight);margin:0}.ht-dialog--confirm .ht-dialog__buttons{justify-content:center;gap:calc(var(--ht-gap-size)*2);flex-flow:wrap;display:flex}.ht-notification{z-index:1070;pointer-events:none;position:absolute;inset:0;overflow:visible}.ht-notification__stack{overscroll-behavior:contain;pointer-events:auto;-webkit-overflow-scrolling:touch;scrollbar-width:auto;scrollbar-color:var(--ht-scrollbar-thumb-color)var(--ht-scrollbar-track-color);flex-direction:column;gap:10px;max-width:min(420px,100% - 40px);min-height:0;padding:10px;display:flex;position:absolute;overflow:hidden auto}.ht-notification__stack--top-start{top:10px;align-items:flex-start;max-height:calc(100% - 40px);inset-inline-start:10px}.ht-notification__stack--top-end{top:10px;align-items:flex-end;max-height:calc(100% - 40px);inset-inline-end:10px}.ht-notification__stack--bottom-start{bottom:10px;align-items:flex-start;max-height:calc(100% - 40px);inset-inline-start:10px}.ht-notification__stack--bottom-end{bottom:10px;align-items:flex-end;max-height:calc(100% - 40px);inset-inline-end:10px}.ht-notification__toast{box-shadow:var(--ht-shadow-x,0)var(--ht-shadow-y,0)var(--ht-shadow-blur,8px)color-mix(in srgb,var(--ht-shadow-color,#000)var(--ht-shadow-opacity,100%),transparent);pointer-events:auto;max-width:100%;color:var(--ht-notification-foreground-color,var(--ht-foreground-color));background-color:var(--ht-notification-background-color,var(--ht-background-color));border:1px solid var(--ht-notification-border-color,var(--ht-border-color));border-radius:var(--ht-border-radius,4px);font-size:var(--ht-font-size);line-height:var(--ht-line-height);letter-spacing:var(--ht-letter-spacing);outline:none;flex-shrink:0;display:flex;position:relative}.ht-notification__toast:focus-visible{box-shadow:0 0 0 1px var(--ht-accent-color)}.ht-notification__toast--animate{opacity:0;transition:opacity var(--ht-table-transition,.15s)ease-out,transform var(--ht-table-transition,.15s)ease-out}.ht-notification__toast--animate.ht-notification__toast--stack-top:not(.ht-notification__toast--visible){transform:translateY(-6px)}.ht-notification__toast--animate.ht-notification__toast--stack-bottom:not(.ht-notification__toast--visible){transform:translateY(6px)}.ht-notification__toast--visible{opacity:1;transform:translateY(0)}.ht-notification__toast--info .ht-notification__accent{display:none}.ht-notification__toast--success .ht-notification__accent{background-color:var(--ht-notification-success-accent,#37bc6c)}.ht-notification__toast--warning .ht-notification__accent{background-color:var(--ht-notification-warning-accent,#fbe952)}.ht-notification__toast--error .ht-notification__accent{background-color:var(--ht-notification-error-accent,#fa4d32)}.ht-notification__toast-inner{width:100%;min-width:0;direction:inherit;flex-direction:row;align-items:stretch;gap:0;padding:10px;display:flex}.ht-notification__accent{box-sizing:border-box;border-radius:4px;flex:0 0 4px;align-self:stretch;margin-inline-end:10px}.ht-notification__body{flex:auto;min-width:0}.ht-notification__title{margin:0 0 var(--ht-gap-size);font-size:var(--ht-font-size);font-weight:var(--ht-font-weight,600)}.ht-notification__message{font-size:var(--ht-font-size-small);word-break:break-word;margin:0}.ht-notification__actions{gap:var(--ht-gap-size);margin-top:var(--ht-gap-size);flex-wrap:wrap;display:flex}.ht-notification__close{box-sizing:border-box;width:var(--ht-icon-button-hit-area-size);height:var(--ht-icon-button-hit-area-size);color:var(--ht-icon-button-icon-color,inherit);cursor:pointer;border-radius:var(--ht-icon-button-border-radius,var(--ht-border-radius,4px));background:0 0;border:none;flex:none;align-self:flex-start;margin-inline-start:4px;padding:0;position:relative;overflow:visible}.ht-notification__close:before{content:"";top:50%;margin-top:calc(-.5*var(--ht-icon-size));margin-inline-start:calc(-.5*var(--ht-icon-size));display:block;position:absolute;inset-inline-start:50%}.ht-notification__close:hover{color:var(--ht-icon-button-hover-icon-color,inherit);background-color:var(--ht-icon-button-hover-background-color,color-mix(in srgb,var(--ht-foreground-color)8%,transparent))}.ht-notification__close:focus-visible{outline:2px solid var(--ht-accent-color);outline-offset:2px}.handsontable.ht-pagination{width:100%;color:var(--ht-pagination-bar-foreground-color);background:var(--ht-pagination-bar-background-color);font-size:var(--ht-font-size);line-height:var(--ht-line-height);box-sizing:border-box;overflow-x:auto}.handsontable.ht-pagination:not(.ht-slot-element){border:1px solid var(--ht-border-color);border-radius:var(--ht-border-radius)}.handsontable.ht-pagination .ht-pagination__inner{justify-content:space-between;align-items:center;gap:calc(var(--ht-gap-size)*4);padding-inline:var(--ht-pagination-bar-horizontal-padding);padding-block:var(--ht-pagination-bar-vertical-padding);flex-wrap:wrap;min-width:230px;display:flex}.handsontable.ht-pagination .ht-page-size-section{align-items:center;gap:calc(var(--ht-gap-size)*2);display:flex}.handsontable.ht-pagination .ht-page-size-section__label{white-space:nowrap}.handsontable.ht-pagination .ht-page-size-section__select-wrapper{border-radius:var(--ht-input-border-radius);position:relative}.handsontable.ht-pagination .ht-page-size-section__select-wrapper select{padding-inline-start:var(--ht-gap-size);padding-inline-end:calc(var(--ht-gap-size) + var(--ht-icon-size));padding-top:var(--ht-gap-size);padding-bottom:var(--ht-gap-size);border-radius:var(--ht-input-border-radius);color:var(--ht-input-foreground-color);background-color:var(--ht-input-background-color);border:1px solid var(--ht-input-border-color);line-height:calc(var(--ht-line-height) - 4px);-webkit-appearance:none;font-size:inherit;cursor:pointer}.handsontable.ht-pagination .ht-page-size-section__select-wrapper select:disabled{opacity:.4;cursor:default;color:var(--ht-input-disabled-foreground-color);background-color:var(--ht-input-disabled-background-color);border-color:var(--ht-input-disabled-border-color)}.handsontable.ht-pagination .ht-page-size-section__select-wrapper select:hover:not(:disabled){color:var(--ht-input-hover-foreground-color);background-color:var(--ht-input-hover-background-color);border-color:var(--ht-input-hover-border-color)}.handsontable.ht-pagination .ht-page-size-section__select-wrapper select:focus{color:var(--ht-input-focus-foreground-color);background-color:var(--ht-input-focus-background-color);border-color:var(--ht-input-focus-border-color);outline:none}.handsontable.ht-pagination .ht-page-size-section__select-wrapper:after{content:"";background-color:var(--ht-foreground-color);pointer-events:none;display:block;position:absolute;inset-block-end:50%;inset-inline-end:var(--ht-gap-size);transform:translateY(50%)}.handsontable.ht-pagination .ht-page-counter-section{margin-inline-end:auto}.handsontable.ht-pagination .ht-page-navigation-section{align-items:center;gap:1px;display:flex}.handsontable.ht-pagination .ht-page-navigation-section__button{font-size:inherit;border:1px solid var(--ht-pagination-button-border-color);color:var(--ht-pagination-button-foreground-color);background-color:var(--ht-pagination-button-background-color);border-radius:var(--ht-icon-button-large-border-radius);padding:var(--ht-icon-button-large-padding);cursor:pointer}.handsontable.ht-pagination .ht-page-navigation-section__button:before{content:"";display:block}.handsontable.ht-pagination .ht-page-navigation-section__button--disabled{cursor:default;pointer-events:none;color:var(--ht-pagination-button-disabled-foreground-color);background-color:var(--ht-pagination-button-disabled-background-color);border-color:var(--ht-pagination-button-disabled-border-color)}.handsontable.ht-pagination .ht-page-navigation-section__button:hover:not(:disabled){border-color:var(--ht-pagination-button-hover-border-color);color:var(--ht-pagination-button-hover-foreground-color);background-color:var(--ht-pagination-button-hover-background-color)}.handsontable.ht-pagination .ht-page-navigation-section__button:focus{border-color:var(--ht-pagination-button-focus-border-color);color:var(--ht-pagination-button-focus-foreground-color);background-color:var(--ht-pagination-button-focus-background-color);outline:none}.handsontable.ht-pagination .ht-page-navigation-section__label{white-space:nowrap;text-align:center;min-width:100px}.ht-loading__icon-svg{width:var(--ht-icon-size);height:var(--ht-icon-size);color:var(--ht-accent-color);transform-origin:50%;animation:1s linear infinite ht-loading-spin;display:block}.ht-loading__content{align-items:center;gap:calc(var(--ht-gap-size)*2);display:flex}.ht-loading__title{font-size:var(--ht-font-size);font-weight:var(--ht-font-weight);line-height:var(--ht-line-height);margin:0}.ht-loading__description{color:var(--ht-foreground-secondary-color);font-size:var(--ht-font-size-small);line-height:var(--ht-line-height-small);font-weight:var(--ht-font-weight);margin:0}@keyframes ht-loading-spin{to{transform:rotate(360deg)}}.ht-empty-data-state{scrollbar-width:auto;scrollbar-color:var(--ht-scrollbar-thumb-color)var(--ht-scrollbar-track-color);z-index:999;border:1px solid var(--ht-border-color);border-radius:var(--ht-border-radius);box-sizing:border-box;background-color:var(--ht-background-color);width:100%;display:none;position:absolute;left:0;overflow-y:auto}.ht-empty-data-state *{box-sizing:border-box!important}.ht-empty-data-state__content-wrapper{text-align:center;width:100%;min-height:100%;padding:calc(var(--ht-gap-size)*2);border-radius:var(--ht-border-radius);justify-content:center;align-items:center;display:flex}.ht-empty-data-state__content-wrapper-inner{max-width:480px;padding:calc(var(--ht-gap-size)*2);border-radius:var(--ht-border-radius);flex-direction:column;justify-content:center;align-items:center;display:flex}.ht-empty-data-state__content-wrapper-inner:focus{box-shadow:0 0 0 1px var(--ht-accent-color);outline:none}.ht-empty-data-state__content{justify-content:center;align-items:center;gap:var(--ht-gap-size);flex-direction:column;display:flex}.ht-empty-data-state__title{font-size:var(--ht-font-size);font-weight:var(--ht-font-weight);line-height:var(--ht-line-height);margin:0}.ht-empty-data-state__description{color:var(--ht-foreground-secondary-color);font-size:var(--ht-font-size-small);line-height:var(--ht-line-height-small);font-weight:var(--ht-font-weight);margin:0}.ht-empty-data-state__buttons{justify-content:center;gap:calc(var(--ht-gap-size)*2);flex-flow:wrap;display:flex}.ht-empty-data-state__buttons--has-buttons{margin-top:calc(var(--ht-gap-size)*2)}.ht-empty-data-state__spinner{width:28px;height:28px;margin-bottom:calc(var(--ht-gap-size)*2);border:2px solid var(--ht-border-color);border-top-color:var(--ht-accent-color);border-radius:50%;flex-shrink:0;animation:.75s linear infinite ht-empty-data-state-spin}@media (prefers-reduced-motion:reduce){.ht-empty-data-state__spinner{border-top-color:var(--ht-border-color);animation:none}}.ht-empty-data-state--loading .ht-empty-data-state__content{gap:calc(var(--ht-gap-size)*.5)}.ht-empty-data-state--disable-top-border{border-top-width:0}.ht-empty-data-state--disable-top-border:not(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)),.ht-empty-data-state--disable-top-border:is(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)){border-top-left-radius:0;border-top-right-radius:0}.ht-empty-data-state--disable-inline-border{border-inline-start-width:0}.ht-empty-data-state--disable-inline-border:not(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)){border-top-left-radius:0;border-bottom-left-radius:0}.ht-empty-data-state--disable-inline-border:is(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)){border-top-right-radius:0;border-bottom-right-radius:0}.ht-empty-data-state--disable-bottom-border{border-bottom-width:0}.ht-empty-data-state--disable-bottom-border:not(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)),.ht-empty-data-state--disable-bottom-border:is(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)){border-bottom-right-radius:0;border-bottom-left-radius:0}.ht-root-wrapper.ht-slot-bottom-filled .ht-empty-data-state:not(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)),.ht-root-wrapper.ht-slot-bottom-filled .ht-empty-data-state:is(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)){border-bottom-right-radius:0;border-bottom-left-radius:0}@keyframes ht-empty-data-state-spin{to{transform:rotate(360deg)}}',this.#nr.head.appendChild(t)}#nu(){let e=this.getCSSVariableValue("line-height"),t=this.getCSSVariableValue("cell-vertical-padding"),o=Math.round(Number.parseFloat(this.getStyleForTD("border-bottom-width")??""));return null===e||null===t||isNaN(o)?null:e+2*t+o}#np(){this.#ni=!this.#nm(),this.#nn=getComputedStyle(this.#no);let e=this.#nf(["box-sizing","border-bottom-width"]);this.#ns.td={...this.#ns.td,...{"box-sizing":e["box-sizing"],"border-bottom-width":e["border-bottom-width"]}}}#nf(e){let t=this.#nr,o=this.#no,n=t.createElement("table"),i=t.createElement("tbody"),r=t.createElement("tr"),l=t.createElement("tr"),s=t.createElement("td");n.className="htCore",l.appendChild(s),i.appendChild(r),i.appendChild(l),n.appendChild(i),o.appendChild(n);let a=getComputedStyle(s),h={};return e.forEach(e=>{h[e]=a.getPropertyValue(e)}),o.removeChild(n),h}#nd(e){let t=Math.ceil(Number.parseFloat(this.#nc(e)??""));return Number.isNaN(t)?null:t}#nc(e){let t=this.#nn?.getPropertyValue(e)??null;return""===t?null:t}#ng(){this.#ns={},this.#nl={}}#nm(){if(!this.#no.isConnected)return!1;let e=this.#no.ownerDocument.defaultView;return null!==e&&""!==e.getComputedStyle(this.#no).display}recacheValuesMeasuredWithoutStyles(){return!!this.#ni&&!!this.#nm()&&(this.clearCache(),!0)}clearCache(){this.#ng(),this.#np()}}let ci=null,cr=0,cl={TOP:"top",BOTTOM:"bottom"},cs="ht-slot-element";class ca{#f;#nb=new Map;#nC=0;#nw=[];#ny;#nv;constructor(e,{itemClass:t="",onContentChange:o=()=>{}}={}){this.#f=e,this.#ny=t,this.#nv=o}getElement(){return this.#f}has(e){return this.#nb.has(e)}add(e,t){let o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0,n=this.#nb.get(e),i=n?n.seq:this.#nC;n&&n.element.remove(),this.#ny&&t.classList.add(this.#ny),this.#nb.set(e,{element:t,weight:o,seq:i}),n||(this.#nC+=1),this.#nS(),this.#nv()}remove(e){let t=this.#nb.get(e);t&&(this.#ny&&t.element.classList.remove(this.#ny),t.element.remove(),this.#nb.delete(e),this.#nv())}setOrder(e){this.#nw=Array.isArray(e)?e.slice():[],this.#nS()}getOrder(){return this.#nR()}clear(){this.#nb.forEach(e=>e.element.remove()),this.#nb.clear(),this.#nv()}#nR(){let e=this.#nw;return Array.from(this.#nb.keys()).sort((t,o)=>{let n=e.indexOf(t),i=e.indexOf(o);if(-1!==n||-1!==i)return(-1===n?1/0:n)-(-1===i?1/0:i);let r=this.#nb.get(t),l=this.#nb.get(o);return r.weight!==l.weight?r.weight-l.weight:r.seq-l.seq})}#nS(){let e=this.#f.firstChild;this.#nR().forEach(t=>{let o=this.#nb.get(t).element;o===e?e=e.nextSibling:this.#f.insertBefore(o,e)})}}function ch(e,t){let o=t.parentElement;if(!o)return;let n=null!==t.querySelector(`:scope > .${cs}`);o.classList.toggle(`ht-slot-${e}-filled`,n)}class cd{#nx;constructor(e){this.#nx=new Map(Object.keys(e).map(t=>[t,new ca(e[t],{itemClass:cs,onContentChange:()=>ch(t,e[t])})]))}getSlot(e){let t=this.#nx.get(e);return t||to(`Unknown layout slot "${e}".`),t}register(e,t,o){let{side:n,weight:i=0}=o;this.getSlot(n).add(e,t,i)}unregister(e,t){this.getSlot(t).remove(e)}applyConfig(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};Object.values(cl).forEach(t=>this.getSlot(t).setOrder(e?.[t]??[]))}destroy(){this.#nx.forEach(e=>e.clear())}}let cc="licenseNotification",cu=`plugin:${cc}`,cg="hot-display-license-info";function cp(e){return e.rootSlotBottomElement?.querySelector(`.${cg}`)??null}let cm="mailto:sales@handsontable.com",cf="mailto:support@handsontable.com",cb="https://handsontable.com/docs/tutorial-license-key.html",cC={trial_valid:{title:"Handsontable Trial",body:e=>{let{daysRemaining:t}=e;return`Your Handsontable license key ${eX(t)}. ${eJ}`},linkText:"Contact Sales",linkHref:cm,dismissible:!1},trial_notice:{title:"Handsontable Trial",body:e=>{let{daysRemaining:t}=e;return`Your Handsontable license key ${eX(t)}. ${eJ}`},linkText:"Contact Sales",linkHref:cm,dismissible:!1},trial_soft_stop:{title:"Handsontable Trial Expired",body:()=>`${eQ} ${eJ}`,linkText:"Contact Sales",linkHref:cm,dismissible:!0}},cw={trial_hard_stop:e=>{let{licensedUntil:t}=e;return{title:`Your Handsontable trial license key expired on ${t}.`,description:"You may no longer use Handsontable under the trial license. To continue using the software, contact sales@handsontable.com to purchase a valid license.",action:{text:"Contact Sales",href:cm}}},invalid:()=>({title:"The license key for Handsontable is invalid.",description:"",action:{text:"Contact Support",href:cf},docsLink:{text:"Read more",href:cb,trailingText:" on how to install it properly, or contact us at support@handsontable.com."}}),missing:()=>({title:"The license key for Handsontable is missing.",description:"Use your purchased key to activate the product. Alternatively, you can activate Handsontable to use for non-commercial purposes by passing the key: 'non-commercial-and-evaluation'. ",action:{text:"Contact Support",href:cf},docsLink:{text:"Read more",href:cb,trailingText:" about it in the documentation, or contact us at support@handsontable.com."}})},cy="ht-license-popover",cv="is-open",cS="is-dismissed",cR="is-corner-hover",cx="is-cornerless";function cM(e){let t=e.view?.getOverlayByName(rh),o=t?.clone?.wtTable;return o?.TABLE?{table:o.TABLE,thead:o.THEAD??null}:null}let cH="ht-dialog",cE="licenseLock",ck=`plugin:${cE}`,cT=(e,t)=>`width: var(--ht-icon-size);
|
|
86
86
|
height: var(--ht-icon-size);
|
|
87
87
|
-webkit-mask-size: contain;
|
|
88
88
|
-webkit-mask-image: url("${e[t]}");
|
|
@@ -216,7 +216,7 @@ ${o}.ht-multi-select-editor-item-selected input::after {
|
|
|
216
216
|
}`)),this.themeStyles.textContent+="}\n",this.themeStyles.textContent+=`.${this.themeClassName} {
|
|
217
217
|
color-scheme: ${n};
|
|
218
218
|
}
|
|
219
|
-
`,this.themeStyles.textContent+=this.#nA(),this.themeStyles.parentNode!==this.hot.rootWrapperElement&&this.hot.rootWrapperElement.prepend(this.themeStyles)}getClassName(){return this.themeClassName}getOverrides(){return{...this.#nH}}getColorScheme(){return this.#nH.colorScheme??this.themeConfig?.colorScheme}getDensityType(){return this.#nH.density??this.themeConfig?.density?.type}setOverrides(e){return!!this.#nk(e)&&(this.#n_(),!0)}update(e){this.hot&&(void 0===e.getThemeConfig&&to('[ThemeManager] The "theme" option must be an instance of ThemeBuilder.'),this.themeConfig=e.getThemeConfig(),this.themeClassName=`ht-theme-${this.themeConfig.name}`,"function"==typeof e.subscribe&&(this.#nM?.(),this.#nM=e.subscribe(e=>{this.hot?.stylesHandler&&(this.themeConfig=e,this.#n_(),this.hot.stylesHandler.clearCache(),this.hot.render(),this.hot.runHooks("afterSetTheme",this.themeClassName,!1))})),this.mount(),this.hot.runHooks("afterSetTheme",this.themeClassName,!0))}mount(){this.#nO(),this.#n_()}unmount(){this.#nP(),this.themeStyles&&this.themeStyles.remove()}#nO(){[this.hot?.rootWrapperElement,this.hot?.rootPortalElement].forEach(e=>{e&&od(e,this.scopeClassName)})}#nP(){[this.hot?.rootWrapperElement,this.hot?.rootPortalElement].forEach(e=>{e&&oc(e,this.scopeClassName)})}destroy(){this.#nM?.(),this.unmount(),this.hot.themeManager=null}}let cq={size_0:"0px",size_0_5:"2px",size_1:"4px",size_2:"8px",size_1_5:"6px",size_3:"12px",size_4:"16px",size_5:"20px",size_6:"24px",size_7:"28px",size_8:"32px",size_9:"36px",size_10:"40px",size_0_25:"1px"},cj={default:{cellVertical:"sizing.size_1",cellHorizontal:"sizing.size_2",barsHorizontal:"sizing.size_4",barsVertical:"sizing.size_2",gap:"sizing.size_1",buttonHorizontal:"sizing.size_3",buttonVertical:"sizing.size_1_5",dialogHorizontal:"sizing.size_2",dialogVertical:"sizing.size_2",inputHorizontal:"sizing.size_3",inputVertical:"sizing.size_1_5",menuVertical:"sizing.size_2",menuHorizontal:"sizing.size_0",menuItemVertical:"sizing.size_1",menuItemHorizontal:"sizing.size_3"},compact:{cellVertical:"sizing.size_0_5",cellHorizontal:"sizing.size_1_5",barsHorizontal:"sizing.size_2",barsVertical:"sizing.size_1",gap:"sizing.size_0_5",buttonHorizontal:"sizing.size_2",buttonVertical:"sizing.size_0_5",dialogHorizontal:"sizing.size_1_5",dialogVertical:"sizing.size_1_5",inputHorizontal:"sizing.size_2",inputVertical:"sizing.size_0_5",menuVertical:"sizing.size_2",menuHorizontal:"sizing.size_0",menuItemVertical:"sizing.size_0_5",menuItemHorizontal:"sizing.size_2"},comfortable:{cellVertical:"sizing.size_2",cellHorizontal:"sizing.size_3",barsHorizontal:"sizing.size_4",barsVertical:"sizing.size_2",gap:"sizing.size_1_5",buttonHorizontal:"sizing.size_4",buttonVertical:"sizing.size_2",dialogHorizontal:"sizing.size_3",dialogVertical:"sizing.size_3",inputHorizontal:"sizing.size_4",inputVertical:"sizing.size_2",menuVertical:"sizing.size_3",menuHorizontal:"sizing.size_0",menuItemVertical:"sizing.size_2",menuItemHorizontal:"sizing.size_2"}},cY=["sizing","icons","colors","tokens"],cK=["name","icons","colors","tokens"];class cX{#nD;#nN;#nB=new Set;#nL="auto";#nV="default";constructor(e){cW(e,"themeConfig",{requiredFields:cK}),this.#nD={name:void 0,sizing:cq,density:{type:this.#nV,sizes:cj},icons:{},colors:{},tokens:{},colorScheme:this.#nL},this.#nF(e),this.#nD=this.#nN}#nz(){let e=this.getThemeConfig();this.#nB.forEach(t=>t(e))}#nW(e,t){if("string"!=typeof t){let o=tv(e.density,t);e.density=o,void 0!==t.type&&(this.#nV=t.type,this.#nD?.density&&(this.#nD.density.type=t.type))}else e.density.type=t,this.#nV=t,this.#nD?.density&&(this.#nD.density.type=t)}#nF(e){let t=ts(this.#nD);void 0!==e.name&&(void 0!==this.#nD.name?tZ('[ThemeBuilder] The "name" property can only be set during `registerTheme()` and cannot be updated via `params()`.'):t.name=e.name),cY.forEach(o=>{void 0!==e[o]&&tu(e[o])&&(t[o]=tv(t[o],e[o]))}),void 0!==e.density&&this.#nW(t,e.density),void 0!==e.colorScheme&&(t.colorScheme=e.colorScheme,this.#nL=e.colorScheme,this.#nD?.colorScheme&&(this.#nD.colorScheme=e.colorScheme)),this.#nN=t}subscribe(e){return"function"!=typeof e&&to("[ThemeBuilder] listener must be a function."),this.#nB.add(e),()=>this.#nB.delete(e)}params(e){return cW(e,"params"),this.#nF(e),this.#nz(),this}setColorScheme(e){return this.#nL=cV(e),this.#nN.colorScheme=this.#nL,this.#nD.colorScheme=this.#nL,this.#nz(),this}setDensityType(e){return this.#nV=cF(e),this.#nN.density.type=this.#nV,this.#nD.density.type=this.#nV,this.#nz(),this}getThemeConfig(){return this.#nN}}let{hasItem:cZ,getItem:cQ,getNames:cJ,getValues:c0,register:c1}=nz("themes");function c2(e){return cZ(e)}function c3(e){return cZ(e)?cQ(e):void tZ(`Theme "${e}" is not registered. Please ensure it is registered before using it.`)}function c6(){return cJ()}function c4(){return c0()}function c5(e,t){let o=e,n=ts(t);return"string"==typeof e&&tu(t)?n.name=e:"string"!=typeof e&&tu(e)&&(o=(n=ts(e)).name??""),{themeName:o,themeConfigObject:n}}function c7(e,t){let{themeName:o,themeConfigObject:n}=c5(e,t),i=new cX(n);return cZ(o)?(tZ(`Theme "${o}" is already registered. Registration skipped.`),c3(o)):(c1(o,i),i)}function c9(e,t){let{themeName:o,themeConfigObject:n}=c5(e,t);if(!cZ(o))return void tZ(`Theme "${o}" is not registered. Cannot reinitialize a non-existent theme.`);let i=new cX(n);return c1(o,i),i}let c8={name:"main",density:"default",icons:{arrowRight:"data:image/svg+xml;charset=utf-8,%3Csvg width='16' height='16' viewBox='0 0 16 16' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M6.64648 10.9393L9.93938 7.64644L6.64648 4.35354' stroke='currentColor' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E%0A",arrowRightWithBar:"data:image/svg+xml;charset=utf-8,%3Csvg width='16' height='16' viewBox='0 0 16 16' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M4.9292 4.64188L8.27934 7.99203L4.9292 11.3422M11.0711 4.08353V11.3422' stroke='currentColor' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E",arrowLeft:"data:image/svg+xml;charset=utf-8,%3Csvg width='16' height='16' viewBox='0 0 16 16' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M9.49268 11.2929L6.19978 8.00001L9.49268 4.70712' stroke='currentColor' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E%0A",arrowLeftWithBar:"data:image/svg+xml;charset=utf-8,%3Csvg width='16' height='16' viewBox='0 0 16 16' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M11.0713 4.64188L7.72115 7.99203L11.0713 11.3422M4.92936 4.08353L4.92936 11.3422' stroke='currentColor' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E",arrowDown:"data:image/svg+xml;charset=utf-8,%3Csvg width='16' height='16' viewBox='0 0 16 16' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cg opacity='0.6'%3E%3Cpath d='M11.5859 6L8.29304 9.29289L5.00015 6' stroke='currentColor' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/g%3E%3C/svg%3E",menu:"data:image/svg+xml;charset=utf-8,%3Csvg width='16' height='16' viewBox='0 0 16 16' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M11.0002 6.66663C11.4262 6.66663 11.6487 7.15963 11.3917 7.47813L11.3537 7.52013L8.35372 10.5201C8.26762 10.6062 8.15307 10.6579 8.03156 10.6656C7.91005 10.6732 7.78992 10.6363 7.69372 10.5616L7.64672 10.5201L4.64672 7.52013L4.60522 7.47313L4.57822 7.43463L4.55122 7.38663L4.54272 7.36863L4.52922 7.33513L4.51322 7.28113L4.50822 7.25463L4.50322 7.22463L4.50122 7.19613V7.13713L4.50372 7.10813L4.50822 7.07813L4.51322 7.05213L4.52922 6.99813L4.54272 6.96463L4.57772 6.89863L4.61022 6.85363L4.64672 6.81313L4.69372 6.77163L4.73222 6.74463L4.78022 6.71763L4.79822 6.70913L4.83172 6.69563L4.88572 6.67963L4.91222 6.67463L4.94222 6.66963L4.97072 6.66763L11.0002 6.66663Z' fill='currentColor'/%3E%3C/svg%3E%0A",selectArrow:"data:image/svg+xml;charset=utf-8,%3Csvg width='16' height='16' viewBox='0 0 16 16' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M11.0002 6.66663C11.4262 6.66663 11.6487 7.15963 11.3917 7.47813L11.3537 7.52013L8.35372 10.5201C8.26762 10.6062 8.15307 10.6579 8.03156 10.6656C7.91005 10.6732 7.78992 10.6363 7.69372 10.5616L7.64672 10.5201L4.64672 7.52013L4.60522 7.47313L4.57822 7.43463L4.55122 7.38663L4.54272 7.36863L4.52922 7.33513L4.51322 7.28113L4.50822 7.25463L4.50322 7.22463L4.50122 7.19613V7.13713L4.50372 7.10813L4.50822 7.07813L4.51322 7.05213L4.52922 6.99813L4.54272 6.96463L4.57772 6.89863L4.61022 6.85363L4.64672 6.81313L4.69372 6.77163L4.73222 6.74463L4.78022 6.71763L4.79822 6.70913L4.83172 6.69563L4.88572 6.67963L4.91222 6.67463L4.94222 6.66963L4.97072 6.66763L11.0002 6.66663Z' fill='currentColor'/%3E%3C/svg%3E%0A",arrowNarrowUp:"data:image/svg+xml;charset=utf-8,%3Csvg width='16' height='16' viewBox='0 0 16 16' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M8.00008 12.6667L8.00008 3.33335M8.00008 3.33335L5.33342 6.00002M8.00008 3.33335L10.6667 6.00002' stroke='currentColor' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E%0A",arrowNarrowDown:"data:image/svg+xml;charset=utf-8,%3Csvg width='16' height='16' viewBox='0 0 16 16' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M8.00004 3.33331V12.6666M8.00004 12.6666L10.6667 9.99998M8.00004 12.6666L5.33337 9.99998' stroke='currentColor' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E%0A",check:"data:image/svg+xml;charset=utf-8,%3Csvg width='16' height='16' viewBox='0 0 16 16' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M3.33337 8.00002L6.66671 11.3334L13.3334 4.66669' stroke='currentColor' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E%0A",checkbox:"data:image/svg+xml;charset=utf-8,%3Csvg width='16' height='16' viewBox='0 0 16 16' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M5 8L7 10L11 6' stroke='currentColor' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E%0A",caretHiddenLeft:"data:image/svg+xml,%3Csvg width='10' height='10' viewBox='0 0 10 10' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M6.08482 1.35771L6.11503 1.3551H6.17649L6.2067 1.35771L6.23795 1.36239L6.26503 1.3676L6.32128 1.38427L6.35618 1.39833L6.42493 1.43479L6.4718 1.46864L6.51399 1.50667L6.55722 1.55562L6.58534 1.59573L6.61347 1.64573L6.62232 1.66448L6.63639 1.69937L6.65305 1.75562L6.65826 1.78323L6.66347 1.81448L6.66555 1.84417L6.66659 1.87489V8.12489C6.66659 8.56864 6.15305 8.80042 5.82128 8.53271L5.77753 8.49312L2.65253 5.36812C2.56286 5.27844 2.50899 5.15912 2.50103 5.03254C2.49307 4.90596 2.53157 4.78083 2.6093 4.68062L2.65253 4.63167L5.77753 1.50667L5.82649 1.46344L5.86659 1.43531L5.91659 1.40719L5.93534 1.39833L5.97024 1.38427L6.02649 1.3676L6.05409 1.36239L6.08482 1.35771Z' fill='currentColor'/%3E%3C/svg%3E",caretHiddenRight:"data:image/svg+xml,%3Csvg width='10' height='10' viewBox='0 0 10 10' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M3.33337 1.87499C3.33337 1.43124 3.84692 1.19947 4.17869 1.46718L4.22244 1.50676L7.34744 4.63176C7.43711 4.72145 7.49098 4.84077 7.49894 4.96735C7.5069 5.09392 7.4684 5.21905 7.39067 5.31926L7.34744 5.36822L4.22244 8.49322L4.17348 8.53645L4.13337 8.56457L4.08337 8.5927L4.06462 8.60155L4.02973 8.61562L3.97348 8.63228L3.94587 8.63749L3.91462 8.6427L3.88494 8.64478L3.85421 8.64582L3.82348 8.64478L3.79327 8.64218L3.76202 8.63749L3.73494 8.63228L3.67869 8.61562L3.64379 8.60155L3.57504 8.5651L3.52817 8.53124L3.48598 8.49322L3.44275 8.44426L3.41462 8.40416L3.3865 8.35416L3.37764 8.33541L3.36358 8.30051L3.34692 8.24426L3.34171 8.21666L3.3365 8.18541L3.33442 8.15572L3.33337 1.87499Z' fill='currentColor'/%3E%3C/svg%3E",caretHiddenUp:"data:image/svg+xml;charset=utf-8,%3Csvg width='8' height='8' viewBox='0 0 8 8' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M3.76425 2.43099C3.82165 2.3736 3.89801 2.33913 3.97902 2.33403C4.06003 2.32894 4.14012 2.35358 4.20425 2.40333L4.23558 2.43099L6.23558 4.43099L6.26325 4.46233L6.28125 4.48799L6.29925 4.51999L6.30492 4.53199L6.31392 4.55433L6.32458 4.59033L6.32792 4.60799L6.33125 4.62799L6.33258 4.64699L6.33325 4.66666L6.33258 4.68633L6.33092 4.70566L6.32792 4.72566L6.32458 4.74299L6.31392 4.77899L6.30492 4.80133L6.28158 4.84533L6.25992 4.87533L6.23558 4.90233L6.20425 4.92999L6.17858 4.94799L6.14658 4.96599L6.13458 4.97166L6.11225 4.98066L6.07625 4.99133L6.05858 4.99466L6.03858 4.99799L6.01958 4.99933L5.99992 4.99999H1.99992C1.71592 4.99999 1.56758 4.67133 1.73892 4.45899L1.76425 4.43099L3.76425 2.43099Z' fill='currentColor'/%3E%3C/svg%3E%0A",caretHiddenDown:"data:image/svg+xml;charset=utf-8,%3Csvg width='8' height='8' viewBox='0 0 8 8' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M5.9999 3C6.2839 3 6.43224 3.32867 6.2609 3.541L6.23557 3.569L4.23557 5.569C4.17817 5.62639 4.10181 5.66087 4.0208 5.66596C3.93979 5.67106 3.8597 5.64642 3.79557 5.59667L3.76424 5.569L1.76424 3.569L1.73657 3.53767L1.71857 3.512L1.70057 3.48L1.6949 3.468L1.6859 3.44567L1.67524 3.40967L1.6719 3.392L1.66857 3.372L1.66724 3.353V3.31367L1.6689 3.29433L1.6719 3.27433L1.67524 3.257L1.6859 3.221L1.6949 3.19867L1.71824 3.15467L1.7399 3.12467L1.76424 3.09767L1.79557 3.07L1.82124 3.052L1.85324 3.034L1.86524 3.02833L1.88757 3.01933L1.92357 3.00867L1.94124 3.00533L1.96124 3.002L1.98024 3.00067L5.9999 3Z' fill='currentColor'/%3E%3C/svg%3E%0A",collapseOff:"data:image/svg+xml;charset=utf-8,%3Csvg width='16' height='16' viewBox='0 0 16 16' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M4.33325 8H11.6666' stroke='currentColor' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E%0A",collapseOn:"data:image/svg+xml;charset=utf-8,%3Csvg width='16' height='16' viewBox='0 0 16 16' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M7.49988 11.6667C7.49988 11.9428 7.72374 12.1667 7.99988 12.1667C8.27602 12.1667 8.49988 11.9428 8.49988 11.6667V8.50002H11.6666C11.9427 8.50002 12.1666 8.27616 12.1666 8.00002C12.1666 7.72388 11.9427 7.50002 11.6666 7.50002H8.49988V4.33337C8.49988 4.05723 8.27602 3.83337 7.99988 3.83337C7.72374 3.83337 7.49988 4.05723 7.49988 4.33337V7.50002H4.33325C4.05711 7.50002 3.83325 7.72388 3.83325 8.00002C3.83325 8.27616 4.05711 8.50002 4.33325 8.50002H7.49988V11.6667Z' fill='currentColor'/%3E%3C/svg%3E%0A",radio:"data:image/svg+xml;charset=utf-8,%3Csvg width='16' height='16' viewBox='0 0 16 16' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Ccircle cx='8' cy='8' r='4' fill='currentColor'/%3E%3C/svg%3E%0A",chipClose:"data:image/svg+xml;charset=utf-8,%3Csvg width='16' height='16' viewBox='0 0 16 16' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M12 4L4 12M4 4L12 12' stroke='currentColor' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E%0A",search:"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='32' height='32' viewBox='0 0 32 32' fill='none'%3E%3Cg opacity='0.5'%3E%3Cpath d='M28 28L20 20M4 13.3333C4 14.559 4.24141 15.7727 4.71046 16.905C5.1795 18.0374 5.86699 19.0663 6.73367 19.933C7.60035 20.7997 8.62925 21.4872 9.76162 21.9562C10.894 22.4253 12.1077 22.6667 13.3333 22.6667C14.559 22.6667 15.7727 22.4253 16.905 21.9562C18.0374 21.4872 19.0663 20.7997 19.933 19.933C20.7997 19.0663 21.4872 18.0374 21.9562 16.905C22.4253 15.7727 22.6667 14.559 22.6667 13.3333C22.6667 12.1077 22.4253 10.894 21.9562 9.76162C21.4872 8.62925 20.7997 7.60035 19.933 6.73367C19.0663 5.86699 18.0374 5.1795 16.905 4.71046C15.7727 4.24141 14.559 4 13.3333 4C12.1077 4 10.894 4.24141 9.76162 4.71046C8.62925 5.1795 7.60035 5.86699 6.73367 6.73367C5.86699 7.60035 5.1795 8.62925 4.71046 9.76162C4.24141 10.894 4 12.1077 4 13.3333Z' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/g%3E%3C/svg%3E"},colors:{white:"#ffffffff",black:"#000000ff",primary:{100:"#6180ffff",200:"#5573f0ff",300:"#4669f6ff",400:"#2e56fcff",500:"#1a42e8ff",600:"#1535bcff"},palette:{50:"#f7f7f9ff",100:"#e7e7e9ff",200:"#b9b9bbff",300:"#a3a3a3ff",400:"#68696cff",500:"#404144ff",600:"#313132ff",700:"#282829ff",800:"#222222ff",900:"#1e1e1fff",950:"#050506ff"},transparent:"#ffffff00"},tokens:{fontFamily:"Inter",fontSize:"14px",fontSizeSmall:"12px",lineHeight:"20px",lineHeightSmall:"18px",fontWeight:"400",letterSpacing:"0px",borderColor:["colors.palette.100","colors.palette.700"],accentColor:["colors.primary.500","colors.primary.300"],foregroundColor:["colors.palette.800","colors.palette.200"],foregroundSecondaryColor:["colors.palette.400","colors.palette.300"],backgroundColor:["colors.white","colors.palette.950"],backgroundSecondaryColor:["colors.palette.50","colors.palette.900"],placeholderColor:["colors.palette.300","colors.palette.400"],readOnlyColor:["colors.palette.400","colors.palette.300"],disabledColor:["colors.palette.300","colors.palette.400"],gapSize:"density.gap",iconSize:"sizing.size_4",tableTransition:"0.15s",borderRadius:"sizing.size_1",barForegroundColor:"tokens.foregroundColor",barBackgroundColor:"tokens.backgroundSecondaryColor",barHorizontalPadding:"density.barsHorizontal",barVerticalPadding:"density.barsVertical",shadowColor:["colors.palette.800","colors.palette.200"],shadowX:"sizing.size_0",shadowY:"sizing.size_2",shadowBlur:"sizing.size_4",shadowOpacity:"8%",cellHorizontalPadding:"density.cellHorizontal",cellVerticalPadding:"density.cellVertical",cellHorizontalBorderColor:"tokens.borderColor",cellVerticalBorderColor:"tokens.borderColor",cellSelectionBorderColor:"tokens.accentColor",cellSelectionBackgroundColor:["colors.primary.400","colors.primary.200"],cellSuccessBackgroundColor:"#37bc6c33",cellErrorBackgroundColor:"#fa4d3233",cellReadOnlyBackgroundColor:"tokens.backgroundSecondaryColor",cellAutofillSize:"sizing.size_1_5",cellAutofillHitAreaSize:"sizing.size_3",cellAutofillBorderWidth:"sizing.size_0_25",cellAutofillBorderRadius:"sizing.size_1",cellAutofillBorderColor:"tokens.backgroundColor",cellAutofillBackgroundColor:"tokens.accentColor",cellAutofillFillBorderColor:"tokens.foregroundColor",cellEditorBorderWidth:"2px",cellEditorBorderColor:"tokens.accentColor",cellEditorForegroundColor:["colors.palette.950","colors.white"],cellEditorBackgroundColor:"tokens.backgroundColor",cellEditorShadowBlurRadius:"0px",cellEditorShadowColor:"tokens.accentColor",cellMobileHandleSize:"sizing.size_3",cellMobileHandleBorderWidth:"sizing.size_0_25",cellMobileHandleBorderRadius:"sizing.size_3",cellMobileHandleBorderColor:"tokens.accentColor",cellMobileHandleBackgroundColor:"tokens.accentColor",cellMobileHandleBackgroundOpacity:"40%",cellSelectionHandleSize:"sizing.size_2",cellSelectionHandleLength:"sizing.size_4",cellSelectionHandleBorderWidth:"sizing.size_0_25",cellSelectionHandleBorderRadius:"sizing.size_3",cellSelectionHandleBorderColor:"tokens.accentColor",cellSelectionHandleBackgroundColor:"tokens.backgroundColor",headerFontWeight:"tokens.fontWeight",headerForegroundColor:"tokens.foregroundColor",headerBackgroundColor:"tokens.backgroundSecondaryColor",headerHighlightedShadowSize:"0px",headerHighlightedForegroundColor:["colors.palette.950","colors.white"],headerHighlightedBackgroundColor:["colors.palette.100","colors.palette.700"],headerActiveBorderColor:["colors.primary.400","colors.primary.200"],headerActiveForegroundColor:"colors.white",headerActiveBackgroundColor:"tokens.accentColor",headerFilterBackgroundColor:"tokens.cellSuccessBackgroundColor",headerRowForegroundColor:"tokens.foregroundColor",headerRowBackgroundColor:"tokens.backgroundSecondaryColor",headerRowHighlightedForegroundColor:["colors.palette.950","colors.white"],headerRowHighlightedBackgroundColor:["colors.palette.100","colors.palette.700"],headerRowActiveForegroundColor:"colors.white",headerRowActiveBackgroundColor:"tokens.accentColor",rowHeaderOddBackgroundColor:"tokens.headerRowBackgroundColor",rowHeaderEvenBackgroundColor:"tokens.headerRowBackgroundColor",rowCellOddBackgroundColor:"tokens.backgroundColor",rowCellEvenBackgroundColor:"tokens.backgroundColor",buttonBorderRadius:"sizing.size_1",buttonHorizontalPadding:"density.buttonHorizontal",buttonVerticalPadding:"density.buttonVertical",primaryButtonBorderColor:"colors.transparent",primaryButtonForegroundColor:"colors.white",primaryButtonBackgroundColor:"tokens.accentColor",primaryButtonDisabledBorderColor:"colors.transparent",primaryButtonDisabledForegroundColor:"tokens.disabledColor",primaryButtonDisabledBackgroundColor:["colors.palette.100","colors.palette.700"],primaryButtonHoverBorderColor:"colors.transparent",primaryButtonHoverForegroundColor:"tokens.backgroundColor",primaryButtonHoverBackgroundColor:["colors.primary.600","colors.primary.100"],primaryButtonFocusBorderColor:"tokens.backgroundColor",primaryButtonFocusForegroundColor:"tokens.backgroundColor",primaryButtonFocusBackgroundColor:"tokens.accentColor",secondaryButtonBorderColor:"tokens.borderColor",secondaryButtonForegroundColor:"tokens.foregroundColor",secondaryButtonBackgroundColor:"tokens.backgroundColor",secondaryButtonDisabledBorderColor:"tokens.borderColor",secondaryButtonDisabledForegroundColor:"tokens.disabledColor",secondaryButtonDisabledBackgroundColor:["colors.palette.100","colors.palette.700"],secondaryButtonHoverBorderColor:"tokens.borderColor",secondaryButtonHoverForegroundColor:"tokens.foregroundColor",secondaryButtonHoverBackgroundColor:["colors.palette.100","colors.palette.700"],secondaryButtonFocusBorderColor:"tokens.borderColor",secondaryButtonFocusForegroundColor:"tokens.foregroundColor",secondaryButtonFocusBackgroundColor:"tokens.backgroundColor",iconButtonBorderRadius:"sizing.size_0_5",iconButtonLargeBorderRadius:"sizing.size_1",iconButtonLargePadding:"sizing.size_1",iconButtonBorderColor:["colors.palette.50","colors.palette.900"],iconButtonBackgroundColor:"tokens.backgroundSecondaryColor",iconButtonIconColor:["colors.palette.300","colors.palette.400"],iconButtonHitAreaSize:"sizing.size_6",iconButtonHoverBorderColor:["colors.palette.100","colors.palette.700"],iconButtonHoverBackgroundColor:["colors.palette.100","colors.palette.700"],iconButtonHoverIconColor:["colors.palette.300","colors.palette.400"],iconButtonActiveBorderColor:["colors.primary.400","colors.primary.200"],iconButtonActiveBackgroundColor:"tokens.accentColor",iconButtonActiveIconColor:"colors.white",iconButtonActiveHoverBorderColor:["colors.primary.400","colors.primary.200"],iconButtonActiveHoverBackgroundColor:["colors.primary.400","colors.primary.200"],iconButtonActiveHoverIconColor:"colors.white",collapseButtonBorderRadius:"sizing.size_1",collapseButtonOpenBorderColor:["colors.palette.200","colors.palette.500"],collapseButtonOpenBackgroundColor:["colors.white","colors.palette.950"],collapseButtonOpenIconColor:["colors.palette.400","colors.palette.300"],collapseButtonOpenIconActiveColor:["colors.palette.400","colors.palette.300"],collapseButtonOpenHoverBorderColor:["colors.palette.200","colors.palette.500"],collapseButtonOpenHoverBackgroundColor:["colors.palette.50","colors.palette.900"],collapseButtonOpenHoverIconColor:["colors.palette.400","colors.palette.300"],collapseButtonOpenHoverIconActiveColor:["colors.palette.400","colors.palette.300"],collapseButtonCloseBorderColor:["colors.palette.200","colors.palette.500"],collapseButtonCloseBackgroundColor:["colors.palette.100","colors.palette.700"],collapseButtonCloseIconColor:["colors.palette.400","colors.palette.300"],collapseButtonCloseIconActiveColor:["colors.palette.400","colors.palette.300"],collapseButtonCloseHoverBorderColor:["colors.palette.200","colors.palette.500"],collapseButtonCloseHoverBackgroundColor:["colors.palette.100","colors.palette.700"],collapseButtonCloseHoverIconColor:["colors.palette.400","colors.palette.300"],collapseButtonCloseHoverIconActiveColor:["colors.palette.400","colors.palette.300"],linkColor:["colors.primary.600","colors.primary.100"],linkHoverColor:"tokens.accentColor",inputBorderWidth:"1px",inputBorderRadius:"sizing.size_1",inputHorizontalPadding:"density.inputHorizontal",inputVerticalPadding:"density.inputVertical",inputBorderColor:"tokens.borderColor",inputForegroundColor:"tokens.foregroundColor",inputBackgroundColor:"tokens.backgroundSecondaryColor",inputHoverBorderColor:"tokens.borderColor",inputHoverForegroundColor:"tokens.foregroundColor",inputHoverBackgroundColor:"tokens.backgroundColor",inputDisabledBorderColor:"tokens.borderColor",inputDisabledForegroundColor:"tokens.disabledColor",inputDisabledBackgroundColor:["colors.palette.200","colors.palette.500"],inputFocusBorderColor:"tokens.accentColor",inputFocusForegroundColor:"tokens.foregroundColor",inputFocusBackgroundColor:"tokens.backgroundColor",checkboxSize:"tokens.iconSize",checkboxBorderRadius:"sizing.size_1",checkboxBorderColor:["colors.palette.200","colors.palette.500"],checkboxBackgroundColor:"tokens.backgroundColor",checkboxIconColor:"colors.transparent",checkboxFocusBorderColor:["colors.palette.200","colors.palette.500"],checkboxFocusBackgroundColor:"tokens.backgroundColor",checkboxFocusIconColor:"colors.transparent",checkboxFocusRingColor:"tokens.accentColor",checkboxDisabledBorderColor:["colors.palette.200","colors.palette.500"],checkboxDisabledBackgroundColor:["colors.palette.100","colors.palette.700"],checkboxDisabledIconColor:"colors.transparent",checkboxCheckedBorderColor:["colors.primary.400","colors.primary.200"],checkboxCheckedBackgroundColor:"tokens.accentColor",checkboxCheckedIconColor:"colors.white",checkboxCheckedFocusBorderColor:"tokens.backgroundColor",checkboxCheckedFocusBackgroundColor:"tokens.accentColor",checkboxCheckedFocusIconColor:"colors.white",checkboxCheckedDisabledBorderColor:["colors.palette.200","colors.palette.500"],checkboxCheckedDisabledBackgroundColor:["colors.palette.100","colors.palette.700"],checkboxCheckedDisabledIconColor:"tokens.disabledColor",checkboxIndeterminateBorderColor:["colors.primary.400","colors.primary.200"],checkboxIndeterminateBackgroundColor:"tokens.accentColor",checkboxIndeterminateIconColor:"colors.white",checkboxIndeterminateFocusBorderColor:"tokens.backgroundColor",checkboxIndeterminateFocusBackgroundColor:"tokens.accentColor",checkboxIndeterminateFocusIconColor:"colors.white",checkboxIndeterminateDisabledBorderColor:["colors.palette.200","colors.palette.600"],checkboxIndeterminateDisabledBackgroundColor:["colors.palette.200","colors.palette.500"],checkboxIndeterminateDisabledIconColor:"tokens.disabledColor",radioSize:"tokens.iconSize",radioBorderColor:["colors.palette.200","colors.palette.500"],radioBackgroundColor:"tokens.backgroundColor",radioIconColor:"colors.transparent",radioFocusBorderColor:"tokens.borderColor",radioFocusBackgroundColor:"tokens.backgroundColor",radioFocusIconColor:"colors.transparent",radioFocusRingColor:"tokens.accentColor",radioDisabledBorderColor:["colors.palette.200","colors.palette.500"],radioDisabledBackgroundColor:["colors.palette.100","colors.palette.700"],radioDisabledIconColor:"colors.transparent",radioCheckedBorderColor:"tokens.accentColor",radioCheckedBackgroundColor:"tokens.backgroundColor",radioCheckedIconColor:"tokens.accentColor",radioCheckedFocusBorderColor:["colors.primary.400","colors.primary.200"],radioCheckedFocusBackgroundColor:"tokens.backgroundColor",radioCheckedFocusIconColor:["colors.primary.400","colors.primary.200"],radioCheckedDisabledBorderColor:["colors.palette.200","colors.palette.500"],radioCheckedDisabledBackgroundColor:["colors.palette.100","colors.palette.700"],radioCheckedDisabledIconColor:"tokens.disabledColor",moveBacklightColor:["colors.palette.800","colors.palette.200"],moveBacklightOpacity:"8%",moveIndicatorColor:"tokens.accentColor",resizeIndicatorColor:["colors.palette.300","colors.palette.400"],hiddenIndicatorColor:["colors.palette.300","colors.palette.400"],menuBorderWidth:"1px",menuBorderRadius:"sizing.size_1",menuHorizontalPadding:"density.menuHorizontal",menuVerticalPadding:"density.menuVertical",menuItemHorizontalPadding:"density.menuItemHorizontal",menuItemVerticalPadding:"density.menuItemVertical",menuBorderColor:"tokens.borderColor",menuShadowX:"tokens.shadowX",menuShadowY:"tokens.shadowY",menuShadowBlur:"tokens.shadowBlur",menuShadowColor:["colors.palette.950","colors.white"],menuShadowOpacity:"8%",menuItemHoverColor:["colors.palette.800","colors.palette.200"],menuItemHoverColorOpacity:"4%",menuItemActiveColor:"tokens.accentColor",menuItemActiveColorOpacity:"8%",commentsTextareaHorizontalPadding:"density.cellHorizontal",commentsTextareaVerticalPadding:"density.cellVertical",commentsTextareaBorderWidth:"1px",commentsTextareaBorderColor:"colors.transparent",commentsTextareaForegroundColor:"tokens.foregroundColor",commentsTextareaBackgroundColor:"tokens.backgroundSecondaryColor",commentsTextareaFocusBorderWidth:"1px",commentsTextareaFocusBorderColor:"tokens.accentColor",commentsTextareaFocusForegroundColor:"tokens.foregroundColor",commentsTextareaFocusBackgroundColor:"tokens.backgroundColor",commentsIndicatorSize:"sizing.size_1_5",commentsIndicatorColor:"tokens.accentColor",licenseHorizontalPadding:"tokens.barHorizontalPadding",licenseVerticalPadding:"tokens.barVerticalPadding",licenseForegroundColor:"tokens.barForegroundColor",licenseBackgroundColor:"tokens.barBackgroundColor",paginationBarForegroundColor:"tokens.barForegroundColor",paginationBarBackgroundColor:"tokens.barBackgroundColor",paginationBarHorizontalPadding:"tokens.barHorizontalPadding",paginationBarVerticalPadding:"tokens.barVerticalPadding",paginationButtonBorderColor:"tokens.paginationBarBackgroundColor",paginationButtonForegroundColor:"tokens.foregroundSecondaryColor",paginationButtonBackgroundColor:"tokens.paginationBarBackgroundColor",paginationButtonHoverBorderColor:["colors.palette.100","colors.palette.700"],paginationButtonHoverForegroundColor:"tokens.foregroundColor",paginationButtonHoverBackgroundColor:["colors.palette.100","colors.palette.700"],paginationButtonDisabledBorderColor:"tokens.paginationBarBackgroundColor",paginationButtonDisabledForegroundColor:"tokens.disabledColor",paginationButtonDisabledBackgroundColor:"tokens.paginationBarBackgroundColor",paginationButtonFocusBorderColor:"tokens.accentColor",paginationButtonFocusForegroundColor:"tokens.foregroundColor",paginationButtonFocusBackgroundColor:"tokens.paginationBarBackgroundColor",dialogSemiTransparentBackgroundColor:["colors.white","colors.palette.950"],dialogSemiTransparentBackgroundOpacity:"80%",dialogSolidBackgroundColor:["colors.white","colors.palette.950"],dialogContentPaddingHorizontal:"density.dialogHorizontal",dialogContentPaddingVertical:"density.dialogVertical",dialogContentBorderRadius:"sizing.size_2",dialogContentBackgroundColor:"tokens.backgroundSecondaryColor",notificationForegroundColor:"tokens.foregroundColor",notificationBackgroundColor:"tokens.backgroundColor",notificationBorderColor:"tokens.backgroundColor",notificationSuccessAccent:"#37bc6cff",notificationWarningAccent:"#fbe952ff",notificationErrorAccent:"#fa4d32ff",chipBackground:"tokens.backgroundSecondaryColor",chipBorderRadius:"sizing.size_0_5",chipVerticalPadding:"sizing.size_0",chipHorizontalPadding:"sizing.size_0_5",chipGap:"sizing.size_1",scrollbarBorderRadius:"sizing.size_2",scrollbarTrackColor:"tokens.backgroundSecondaryColor",scrollbarThumbColor:["colors.palette.300","colors.palette.400"]}},ue=null;function ut(e){if(0===e.length)return[];let t=[...e];return t.sort((e,t)=>{let[o]=e,[n]=t;return o===n?0:o>n?1:-1}),X(t,(e,t)=>{let[o,n]=t,i=e[e.length-1],[r,l]=i,s=r+l;if(o<=s){let e=Math.max(n-(s-o),0);i[1]+=e}else e.push([o,n]);return e},[t[0]])}let uo=new Map,un=[{name:"persistentState",version:"17.0.0",migrationUrl:"https://handsontable.com/docs/javascript-data-grid/changelog-17/"},{name:"correctFormat",version:"18.0.0",migrationUrl:"https://handsontable.com/docs/javascript-data-grid/migration-from-17.1-to-18.0/"}];function ui(e,t,o,n,i,r,l){let s=l.ariaTags,a=[],h=[],d=[],c=[];l._isBaseRendererCalled=!0,l.className&&od(t,l.className),l.readOnly?(a.push(l.readOnlyCellClassName),s&&c.push(W())):s&&d.push(W()[0]),!1===l.valid&&l.invalidCellClassName?(a.push(l.invalidCellClassName),s&&c.push($())):(h.push(l.invalidCellClassName),s&&d.push($()[0])),!1===l.wordWrap&&l.noWordWrapClassName&&a.push(l.noWordWrapClassName),eN(r)&&l.placeholder&&a.push(l.placeholderCellClassName),l.textEllipsis&&a.push("htTextEllipsis"),oc(t,h),od(t,a),og(t,d),ou(t,c)}function ur(e,t,o){e.addEventListener(t,o,!1)}function ul(e,t,o){e.removeEventListener(t,o,!1)}function us(e){return e.ownerDocument.defaultView.getComputedStyle(e)}function ua(e){let t,o=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n={minHeight:200,maxHeight:300,minWidth:100,maxWidth:300,textContent:e=>e.value,...o},i=e.body,r=e.createTextNode(""),l=e.createElement("span");function s(){r.textContent=n.textContent(t),l.style.position="absolute",l.style.fontSize=us(t).fontSize,l.style.fontFamily=us(t).fontFamily,l.style.whiteSpace="pre",i.appendChild(l);let e=Number.parseInt(us(t)?.paddingInlineStart||"0",10),o=Number.parseInt(us(t)?.paddingInlineEnd||"0",10),s=l.clientWidth+e+o+1;i.removeChild(l);let a=t.style;a.height=`${n.minHeight}px`,n.minWidth>s?a.width=`${n.minWidth}px`:s>n.maxWidth?a.width=`${n.maxWidth}px`:a.width=`${s}px`;let h=t.scrollHeight?t.scrollHeight-1:0;n.minHeight>h?a.height=`${n.minHeight}px`:n.maxHeight<h?(a.height=`${n.maxHeight}px`,a.overflowY="visible"):a.height=`${h}px`}function a(){e.defaultView.setTimeout(s,0)}function h(e,t){if("inherit"===e)return t;let o=Number.parseInt(String(e),10);if(!isNaN(o))return o}return{init:function(e,o){let i=arguments.length>2&&void 0!==arguments[2]&&arguments[2];t=e;if(o&&o.minHeight){let e=h(o.minHeight,t.clientHeight);void 0!==e&&(n.minHeight=e)}if(o&&o.maxHeight){let e=h(o.maxHeight,t.clientHeight);void 0!==e&&(n.maxHeight=e)}if(o&&o.minWidth){let e=h(o.minWidth,t.clientWidth);void 0!==e&&(n.minWidth=e)}if(o&&o.maxWidth){let e=h(o.maxWidth,t.clientWidth);void 0!==e&&(n.maxWidth=e)}l.firstChild||(l.className="autoResize",l.style.display="inline-block",l.appendChild(r)),"TEXTAREA"===t.nodeName&&(t.style.resize="none",t.style.height=`${n.minHeight}px`,t.style.minWidth=`${n.minWidth}px`,t.style.maxWidth=`${n.maxWidth}px`,t.style.overflowY="hidden"),i&&(ur(t,"input",s),ur(t,"keydown",a)),s()},resize:s,unObserve(){ul(t,"input",s),ul(t,"keydown",a)}}}function uh(e,t){let o=oU(t),n=t.value.split("\n"),i=o,r=0;for(let t=0;t<n.length;t++){let l=n[t];0!==t&&(r+=n[t-1].length+1);let s=r+l.length;if("home"===e?i=r:"end"===e&&(i=s),o<=s)break}oY(t,i,i)}ui.RENDERER_TYPE="base";let ud="ht_editor_hidden",uc="textEditor";class uu extends n3{static get EDITOR_TYPE(){return"text"}eventManager=new n4(this);autoResize=ua(this.hot.rootDocument);constructor(e){super(e),this.eventManager=new n4(this),this.createElements(),this.bindEvents(),this.hot.addHookOnce("afterDestroy",()=>this.destroy())}getValue(){return this.TEXTAREA.value}setValue(e){this.TEXTAREA.value=e}open(){this._opened=!0,this.refreshDimensions(),this.showEditableElement(),this.hot.getShortcutManager().setActiveContextName("editor"),this.registerShortcuts()}close(){this._opened=!1,this.autoResize.unObserve(),t4(nr(this.hot.rootDocument),this.hot.rootElement)&&this.hot.listen(),this.hideEditableElement(),this.unregisterShortcuts()}prepare(e,t,o,n,i,r){let l=this.state;if(super.prepare(e,t,o,n,i,r),!r.readOnly){this.refreshDimensions(!0);let{allowInvalid:e}=r;e&&!this.isOpened()&&(this.TEXTAREA.value=""),l===n2.FINISHED||this.isOpened()||this.hideEditableElement()}}beginEditing(e,t){this.state===n2.VIRGIN&&(this.TEXTAREA.value="",super.beginEditing(e,t))}focus(){this.TEXTAREA.select(),oY(this.TEXTAREA,this.TEXTAREA.value.length,this.TEXTAREA.value.length)}createElements(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"textarea",{rootDocument:t}=this.hot;this.TEXTAREA=t.createElement(e),ou(this.TEXTAREA,[["data-hot-input",""],S(-1)]),od(this.TEXTAREA,"handsontableInput"),this.textareaStyle=this.TEXTAREA.style,this.textareaStyle.width="0",this.textareaStyle.height="0",this.textareaStyle.overflowY="visible",this.TEXTAREA_PARENT=t.createElement("DIV"),od(this.TEXTAREA_PARENT,"handsontableInputHolder"),oh(this.TEXTAREA_PARENT,this.layerClass)&&oc(this.TEXTAREA_PARENT,this.layerClass),od(this.TEXTAREA_PARENT,ud),this.textareaParentStyle=this.TEXTAREA_PARENT.style,this.TEXTAREA_PARENT.appendChild(this.TEXTAREA),this.hot.rootElement.appendChild(this.TEXTAREA_PARENT)}hideEditableElement(){tz()&&(this.textareaStyle.textIndent="-99999px"),this.textareaStyle.overflowY="visible",this.textareaParentStyle.opacity="0",this.textareaParentStyle.height="1px",oc(this.TEXTAREA_PARENT,this.layerClass),od(this.TEXTAREA_PARENT,ud)}showEditableElement(){this.textareaParentStyle.height="",this.textareaParentStyle.overflow="",this.textareaParentStyle.position="",this.textareaParentStyle[this.hot.isRtl()?"left":"right"]="auto",this.textareaParentStyle.opacity="1",this.textareaStyle.textIndent="";let e=this.TEXTAREA_PARENT.childNodes,t=!1;ik(e.length-1,o=>{if(oh(e[o],"handsontableEditor"))return t=!0,!1}),oh(this.TEXTAREA_PARENT,ud)&&oc(this.TEXTAREA_PARENT,ud),t?this.layerClass="ht_editor_visible":this.layerClass=this.getEditedCellsLayerClass(),od(this.TEXTAREA_PARENT,this.layerClass)}refreshValue(){let e=this.hot.toPhysicalRow(this.row),t=this.hot.getSourceDataAtCell(e,this.col);this.originalValue=t,this.setValue(t),this.refreshDimensions()}refreshDimensions(){let e=arguments.length>0&&void 0!==arguments[0]&&arguments[0];if(this.state!==n2.EDITING&&!e)return;if(this.TD=this.getEditedCell(),!this.TD){e||this.close();return}let t=this.getEditedCellRect();if(!t)return;let{top:o,start:n,width:i,maxWidth:r,height:l,maxHeight:s}=t;this.textareaParentStyle.top=`${o}px`,this.textareaParentStyle[this.hot.isRtl()?"right":"left"]=`${n}px`,this.showEditableElement();let a=this.hot.rootWindow.getComputedStyle(this.TD);this.TEXTAREA.style.fontSize=a.fontSize,this.TEXTAREA.style.fontFamily=a.fontFamily,this.TEXTAREA.style.backgroundColor=this.TD.style.backgroundColor,this.autoResize.init(this.TEXTAREA,{minWidth:Math.min(i,r),minHeight:Math.min(l,s),maxWidth:r,maxHeight:s},!0)}bindEvents(){tU()&&this.eventManager.addEventListener(this.TEXTAREA,"focusout",()=>this.finishEditing(!1)),this.addHook("afterScrollHorizontally",()=>this.refreshDimensions()),this.addHook("afterScrollVertically",()=>this.refreshDimensions()),this.addHook("afterColumnResize",()=>{this.refreshDimensions(),this.state===n2.EDITING&&this.focus()}),this.addHook("afterRowResize",()=>{this.refreshDimensions(),this.state===n2.EDITING&&this.focus()})}destroy(){this.eventManager.destroy(),this.clearHooks()}registerShortcuts(){let e=this.hot.getShortcutManager().getContext("editor"),t=()=>{this.hot.rootDocument.execCommand("insertText",!1,"\n")};e.addShortcuts([{keys:[["Control","Enter"]],callback:()=>(t(),!1),runOnlyIf:e=>!this.hot.selection.isMultiple()&&!e?.altKey},{keys:[["Meta","Enter"]],callback:()=>(t(),!1),runOnlyIf:()=>!this.hot.selection.isMultiple()},{keys:[["Alt","Enter"]],callback:()=>(t(),!1)},{keys:[["Home"]],callback:(e,t)=>{uh(t?.[0]??"",this.TEXTAREA)}},{keys:[["End"]],callback:(e,t)=>{uh(t?.[0]??"",this.TEXTAREA)}}],{runOnlyIf:()=>eP(this.hot.getSelected()),group:uc})}unregisterShortcuts(){this.hot.getShortcutManager().getContext("editor").removeShortcutsByGroup(uc)}}function ug(e,t,o,n,i,r,l){let s=r;eN(s)&&l.placeholder&&(s=l.placeholder);let a=eO(s),h=a;l.trimWhitespace&&(h=a.trim()),ov(t,h)}ug.RENDERER_TYPE="text";let up={CELL_TYPE:"text",editor:uu,renderer:ug},um=function(e,t){var o,n,i;let r,l,s,a,h,d,c,u=arguments.length>2&&void 0!==arguments[2]&&arguments[2],g=this,p=new n4(g),m=!0,f=!1,b=null,C={...t.initialState,...t};u===l9&&l7.set(this,!0),this.rootContainer=e,this.rootWrapperElement=null,this.rootGridElement=null,this.rootGridContentElement=null,this.rootSlotTopElement=null,this.rootSlotBottomElement=null,this.rootOverlaysElement=null,this.rootPortalElement=null,this.rootElement=l8(this)?e.ownerDocument.createElement("div"):e,this.rootDocument=e.ownerDocument,this.rootWindow=this.rootDocument.defaultView,l8(this)&&(this.rootWrapperElement=this.rootDocument.createElement("div"),this.rootSlotTopElement=this.rootDocument.createElement("div"),this.rootGridElement=this.rootDocument.createElement("div"),this.rootGridContentElement=this.rootDocument.createElement("div"),this.rootOverlaysElement=this.rootDocument.createElement("div"),this.rootSlotBottomElement=this.rootDocument.createElement("div"),this.rootPortalElement=this.rootDocument.createElement("div"),od(this.rootElement,["ht-wrapper","handsontable"]),od(this.rootWrapperElement,"ht-root-wrapper"),nn(this.rootContainer.getRootNode())&&od(this.rootWrapperElement,"ht-shadow-dom"),od(this.rootSlotTopElement,"ht-slot-top"),od(this.rootGridElement,"ht-grid"),od(this.rootGridContentElement,"ht-grid-content"),od(this.rootOverlaysElement,"ht-overlay"),od(this.rootSlotBottomElement,"ht-slot-bottom"),this.rootGridContentElement.appendChild(this.rootElement),this.rootGridElement.appendChild(this.rootGridContentElement),this.rootWrapperElement.appendChild(this.rootSlotTopElement),this.rootWrapperElement.appendChild(this.rootGridElement),this.rootWrapperElement.appendChild(this.rootSlotBottomElement),this.rootWrapperElement.appendChild(this.rootOverlaysElement),this.rootContainer.appendChild(this.rootWrapperElement),this.rootWrapperElement.__hotInstance=this,od(this.rootPortalElement,"ht-portal"),this.rootDocument.body.appendChild(this.rootPortalElement)),this.isDestroyed=!1,this.renderSuspendedCounter=0,this.executionSuspendedCounter=0;let w=C?.layoutDirection??"inherit",y=["rtl","ltr"].includes(w)?w:this.rootWindow.getComputedStyle(this.rootElement).direction;this.rootElement.setAttribute("dir",y),this.rootWrapperElement?.setAttribute("dir",y),this.isRtl=function(){return"rtl"===y},this.isLtr=function(){return!g.isRtl()},this.getDirectionFactor=function(){return g.isLtr()?1:-1},this.stylesHandler=new cn({hot:g,rootElement:g.rootElement,rootDocument:g.rootDocument,onThemeChange:e=>{l8(this)&&(oc(this.rootWrapperElement,/ht-theme-.*/g),oc(this.rootPortalElement,/ht-theme-.*/g),e&&(od(this.rootWrapperElement,e),od(this.rootPortalElement,e),getComputedStyle(this.rootWrapperElement).getPropertyValue("--ht-line-height")||tZ(`The "${e}" theme is enabled, but its stylesheets are missing or not imported correctly. Import the correct CSS files in order to use that theme.`)),this.view?._wt?.selectionManager?.refreshAllBorderHandleStyles())},injectCoreCss:"boolean"!=typeof t?.injectCoreCss||t.injectCoreCss}),this.themeManager=null,hF(r=sL(i=C.language))||(r=hB,sV(i)),C.language=r;let v=Object.fromEntries(Object.entries(C).filter(e=>{let[t]=e;return!(nL.getSingleton().isRegistered(t)||nL.getSingleton().isDeprecated(t))})),S=new dv(g,v,[dS,dR]),R=S.getTableMeta(),x=S.getGlobalMeta(),M=iF();this.container=this.rootDocument.createElement("div"),this.rootElement.insertBefore(this.container,this.rootElement.firstChild),this.guid=`ht_${id()}`,uo.set(this.guid,this),this.columnIndexMapper=new sB,this.rowIndexMapper=new sB,this.columnIndexMapper.addLocalHook("indexesSequenceChange",e=>{g.runHooks("afterColumnSequenceChange",e)}),this.rowIndexMapper.addLocalHook("indexesSequenceChange",e=>{g.runHooks("afterRowSequenceChange",e)}),p.addEventListener(this.rootDocument.documentElement,"compositionstart",e=>{g.runHooks("beforeCompositionStart",e)}),s=new dx(g);let H=nz(this.guid);H.register("cellRangeMapper",new dP({rowIndexMapper:this.rowIndexMapper,columnIndexMapper:this.columnIndexMapper})),this.rootElement.id&&"ht_"!==this.rootElement.id.substring(0,3)||(this.rootElement.id=this.guid);let E=new di(R,{rowIndexMapper:g.rowIndexMapper,columnIndexMapper:g.columnIndexMapper,countCols:()=>g.countCols(),countRows:()=>g.countRows(),propToCol:e=>l.propToCol(e),isEditorOpened:()=>{let e=g.getActiveEditor();return!!e&&e.isOpened()},isPluginEnabled:e=>g.getPlugin(e)?.enabled===!0,countRenderableColumns:()=>g.view.countRenderableColumns(),countRenderableRows:()=>g.view.countRenderableRows(),countRowHeaders:()=>g.countRowHeaders(),countColHeaders:()=>g.countColHeaders(),countRenderableRowsInRange:(e,t)=>g.view.countRenderableRowsInRange(e,t),countRenderableColumnsInRange:(e,t)=>g.view.countRenderableColumnsInRange(e,t),getShortcutManager:()=>g.getShortcutManager(),createCellCoords:(e,t)=>g._createCellCoords(e,t),createCellRange:(e,t,o)=>g._createCellRange(e,t,o),visualToRenderableCoords:e=>{let{row:t,col:o}=e;return g._createCellCoords(t>=0?g.rowIndexMapper.getRenderableFromVisualIndex(t):t,o>=0?g.columnIndexMapper.getRenderableFromVisualIndex(o):o)},renderableToVisualCoords:e=>{let{row:t,col:o}=e;return g._createCellCoords(t>=0?g.rowIndexMapper.getVisualFromRenderableIndex(t):t,o>=0?g.columnIndexMapper.getVisualFromRenderableIndex(o):o)},findFirstNonHiddenRenderableRow:(e,t)=>{let o=t>e?1:-1,n=Math.min(e,t),i=Math.max(e,t),r=g.rowIndexMapper.getNearestNotHiddenIndex(e,o);return null===r||1===o&&r>i||-1===o&&r<n?null:r>=0?g.rowIndexMapper.getRenderableFromVisualIndex(r):r},findFirstNonHiddenRenderableColumn:(e,t)=>{let o=t>e?1:-1,n=Math.min(e,t),i=Math.max(e,t),r=g.columnIndexMapper.getNearestNotHiddenIndex(e,o);return null===r||1===o&&r>i||-1===o&&r<n?null:r>=0?g.columnIndexMapper.getRenderableFromVisualIndex(r):r},isDisabledCellSelection:(e,t)=>e<0||t<0?g.getSettings().disableVisualSelection:g.getCellMeta(e,t).disableVisualSelection});this.selection=E;let k=e=>{let{hiddenIndexesChanged:t}=e;this.forceFullRender=!0,t&&this.selection.commit()};function T(e,t){let o="className"===e?g.rootElement:g.table;if(m)void 0!==t&&od(o,t);else{let n=[],i=[];if(x[e]){let t=x[e];n=Array.isArray(t)?t:ed(String(t))}t&&(i=Array.isArray(t)?t:ed(t));let r=es(n,i),l=es(i,n);r.length&&oc(o,r),l.length&&od(o,l)}x[e]=t}function I(e){let t={};return tw(e,"colorScheme")&&(t.colorScheme=e.colorScheme),tw(e,"density")&&(t.density=e.density),t}function A(){return{colorScheme:R.colorScheme,density:R.density}}function _(e,t){let o;(g.themeManager?.destroy(),void 0===e)?(o=cZ("main")?c3("main"):c7(c8),o=c3("main")):o="function"!=typeof e.getThemeConfig?c7(e):e,g.themeManager=function(e){let{hot:t,themeObject:o,overrides:n}=e;return new cG({hot:t,themeObject:o,overrides:n})}({hot:g,themeObject:o,overrides:t})}function O(){let e=!1;return{validatorsInQueue:0,valid:!0,addValidatorToQueue(){this.validatorsInQueue+=1,e=!1},removeValidatorFormQueue(){this.validatorsInQueue=this.validatorsInQueue-1<0?0:this.validatorsInQueue-1,this.checkIfQueueIsEmpty()},onQueueEmpty(e){},checkIfQueueIsEmpty(){0===this.validatorsInQueue&&!1===e&&(e=!0,this.onQueueEmpty(this.valid))}}}function P(e,t){return!!t?.isOpened()&&su(e,t.row,t.prop)}function D(e,t,o){if(!e.length)return void o();let n=g.getActiveEditor(),i=O(),r=!0,s=t=>{let[o,n,,i]=t,r=e.findIndex(e=>{let[t,i]=e;return t===o&&i===n});-1!==r&&(e[r][3]=i)},a=(e,t)=>{"string"==typeof t&&t.endsWith("Validator")&&e?.forEach(s)};g.addHook("afterChange",a),i.onQueueEmpty=()=>{g.removeHook("afterChange",a),n&&r&&n._closeAfterDataChange&&P(e,n)&&n.cancelChanges(),o()};for(let o=e.length-1;o>=0;o--){let n,[s,a,,h]=e[o],d=l.propToCol(a);Number.isInteger(d)?(n=g.getCellMetaTransient(s,d),g.getCellValidator(n)&&(n=g.getCellMeta(s,d))):n={...Object.getPrototypeOf(R),...R},g.getCellValidator(n)&&(i.addValidatorToQueue(),g.validateCell(h,n,function(t,o){return function(n){"boolean"!=typeof n&&to("Validation error: result is not boolean"),!1===n&&!1===o.allowInvalid&&(r=!1,e.splice(t,1),o.valid=!0),i.removeValidatorFormQueue()}}(o,n),t))}i.checkIfQueueIsEmpty()}function N(e,t){for(let t=e.length-1;t>=0;t--){let o=!1;if(null===e[t]){e.splice(t,1);continue}if(null!==e[t][2]&&void 0!==e[t][2]||null!==e[t][3]&&void 0!==e[t][3]){if(R.allowInsertRow)for(;e[t][0]>g.countRows()-1;){let n=e[t][0]-(g.countRows()-1),{delta:i}=l.createRow(void 0,n,{source:"auto"});if(0===i){o=!0;break}}if("array"===g.dataType&&(!R.columns||0===R.columns.length)&&R.allowInsertColumn)for(;Number(l.propToCol(e[t][1]))>g.countCols()-1;){let n=Number(l.propToCol(e[t][1]))-(g.countCols()-1),{delta:i}=l.createCol(void 0,n,{source:"auto"});if(0===i){o=!0;break}}o||l.set(e[t][0],e[t][1],e[t][3])}}let o=e.length>0,n=h.getActiveEditor(),i=n?._closeAfterDataChange,r=P(e,n);o?(a.adjustRowsAndCols(),g.runHooks("beforeChangeRender",e,t),n?.isOpened()&&i&&r&&h.closeEditor(),g.view.adjustElementsSize(),g.render(),(n?.isOpened()&&i&&r||!n?.isOpened())&&h.prepareEditor(),g.runHooks("afterChange",e,t||"edit"),n&&void 0!==n.refreshValue&&(!n.isOpened()||r)&&n.refreshValue()):g.render()}function B(e,t,o){return Array.isArray(e)?e:[[e,t,o]]}function L(e,t){let o=g.runHooks("beforeChange",e,t||"edit"),n=e.filter(e=>null!==e);if(!1===o||0===n.length)return g.getActiveEditor()?.cancelChanges(),[];for(let e=n.length-1;e>=0;e--){let t,[o,i,,r]=n[e],s=l.propToCol(i);t=Number.isInteger(s)?g.getCellMetaTransient(o,s):{...Object.getPrototypeOf(R),...R},n[e][3]=n0(r,t)}return n}this.columnIndexMapper.addLocalHook("cacheUpdated",e=>{k(e),this.runHooks("afterColumnSequenceCacheUpdate",e)}),this.rowIndexMapper.addLocalHook("cacheUpdated",e=>{k(e),this.runHooks("afterRowSequenceCacheUpdate",e)}),this.selection.addLocalHook("afterSetRangeEnd",(e,t)=>{let o=tC(!1),n=this.selection.getSelectedRange(),{from:i,to:r}=n.current(),l=n.size()-1;this.runHooks("afterSelection",i.row,i.col,r.row,r.col,o,l),this.runHooks("afterSelectionByProp",i.row,g.colToProp(i.col),r.row,g.colToProp(r.col),o,l);let s=E.getSelectionSource();t&&!["loadData","updateData","deselect","shift"].includes(s)&&(!o.isTouched()||o.isTouched()&&!o.value)&&c.scrollTo(e);let a=E.isSelectedByRowHeader(),d=E.isSelectedByColumnHeader();a&&d?od(this.rootElement,["ht__selection--rows","ht__selection--columns"]):a?(oc(this.rootElement,"ht__selection--columns"),od(this.rootElement,"ht__selection--rows")):d?(oc(this.rootElement,"ht__selection--rows"),od(this.rootElement,"ht__selection--columns")):oc(this.rootElement,["ht__selection--rows","ht__selection--columns"]),["shift","refresh","loadData","updateData","deselect"].includes(s)||h.closeEditor(),["refresh","loadData","updateData","deselect"].includes(s)||(g.view.render(),h.prepareEditor())}),this.selection.addLocalHook("beforeSetFocus",e=>{this.runHooks("beforeSelectionFocusSet",e.row,e.col)}),this.selection.addLocalHook("afterSetFocus",e=>{let t=tC(!1);this.runHooks("afterSelectionFocusSet",e.row,e.col,t),(!t.isTouched()||t.isTouched()&&!t.value)&&c.scrollTo(e),h.closeEditor(),g.view.render(),h.prepareEditor()}),this.selection.addLocalHook("afterSelectionFinished",e=>{let t=e.length-1,{from:o,to:n}=e[t];this.runHooks("afterSelectionEnd",o.row,o.col,n.row,n.col,t),this.runHooks("afterSelectionEndByProp",o.row,g.colToProp(o.col),n.row,g.colToProp(n.col),t),["refresh","deselect"].includes(E.getSelectionSource())&&(g.view.render(),h.prepareEditor())}),this.selection.addLocalHook("afterIsMultipleSelection",e=>{let t=this.runHooks("afterIsMultipleSelection",e.value);e.value&&(e.value=t)}),this.selection.addLocalHook("afterDeselect",()=>{h.closeEditor(),g.view.render(),oc(this.rootElement,["ht__selection--rows","ht__selection--columns"]),this.runHooks("afterDeselect")}),this.selection.addLocalHook("beforeHighlightSet",()=>g.runHooks("beforeSelectionHighlightSet")).addLocalHook("beforeSetRangeStart",function(){for(var e=arguments.length,t=Array(e),o=0;o<e;o++)t[o]=arguments[o];return g.runHooks("beforeSetRangeStart",...t)}).addLocalHook("beforeSetRangeStartOnly",function(){for(var e=arguments.length,t=Array(e),o=0;o<e;o++)t[o]=arguments[o];return g.runHooks("beforeSetRangeStartOnly",...t)}).addLocalHook("beforeSetRangeEnd",function(){for(var e=arguments.length,t=Array(e),o=0;o<e;o++)t[o]=arguments[o];return g.runHooks("beforeSetRangeEnd",...t)}).addLocalHook("beforeSelectColumns",function(){for(var e=arguments.length,t=Array(e),o=0;o<e;o++)t[o]=arguments[o];return g.runHooks("beforeSelectColumns",...t)}).addLocalHook("afterSelectColumns",function(){for(var e=arguments.length,t=Array(e),o=0;o<e;o++)t[o]=arguments[o];return g.runHooks("afterSelectColumns",...t)}).addLocalHook("beforeSelectRows",function(){for(var e=arguments.length,t=Array(e),o=0;o<e;o++)t[o]=arguments[o];return g.runHooks("beforeSelectRows",...t)}).addLocalHook("afterSelectRows",function(){for(var e=arguments.length,t=Array(e),o=0;o<e;o++)t[o]=arguments[o];return g.runHooks("afterSelectRows",...t)}).addLocalHook("beforeSelectAll",function(){for(var e=arguments.length,t=Array(e),o=0;o<e;o++)t[o]=arguments[o];return g.runHooks("beforeSelectAll",...t)}).addLocalHook("afterSelectAll",function(){for(var e=arguments.length,t=Array(e),o=0;o<e;o++)t[o]=arguments[o];return g.runHooks("afterSelectAll",...t)}).addLocalHook("beforeModifyTransformStart",function(){for(var e=arguments.length,t=Array(e),o=0;o<e;o++)t[o]=arguments[o];return g.runHooks("modifyTransformStart",...t)}).addLocalHook("afterModifyTransformStart",function(){for(var e=arguments.length,t=Array(e),o=0;o<e;o++)t[o]=arguments[o];return g.runHooks("afterModifyTransformStart",...t)}).addLocalHook("beforeModifyTransformFocus",function(){for(var e=arguments.length,t=Array(e),o=0;o<e;o++)t[o]=arguments[o];return g.runHooks("modifyTransformFocus",...t)}).addLocalHook("afterModifyTransformFocus",function(){for(var e=arguments.length,t=Array(e),o=0;o<e;o++)t[o]=arguments[o];return g.runHooks("afterModifyTransformFocus",...t)}).addLocalHook("beforeModifyTransformEnd",function(){for(var e=arguments.length,t=Array(e),o=0;o<e;o++)t[o]=arguments[o];return g.runHooks("modifyTransformEnd",...t)}).addLocalHook("afterModifyTransformEnd",function(){for(var e=arguments.length,t=Array(e),o=0;o<e;o++)t[o]=arguments[o];return g.runHooks("afterModifyTransformEnd",...t)}).addLocalHook("beforeRowWrap",function(){for(var e=arguments.length,t=Array(e),o=0;o<e;o++)t[o]=arguments[o];return g.runHooks("beforeRowWrap",...t)}).addLocalHook("beforeColumnWrap",function(){for(var e=arguments.length,t=Array(e),o=0;o<e;o++)t[o]=arguments[o];return g.runHooks("beforeColumnWrap",...t)}).addLocalHook("insertRowRequire",e=>g.alter("insert_row_above",e,1,"auto")).addLocalHook("insertColRequire",e=>g.alter("insert_col_start",e,1,"auto")),a={alter(e,t){let o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:1,n=arguments.length>3?arguments[3]:void 0,i=arguments.length>4?arguments[4]:void 0;if(!1!==g.runHooks("beforeAlter",e,t,o,n,i)){var r,s;switch(e){case"insert_row_below":case"insert_row_above":let d=g.countSourceRows();if(R.maxRows===d)return;let c="insert_row_below"===e?"below":"above",u="number"==typeof t?t:"below"===c?d:0,{delta:p,startPhysicalIndex:m}=l.createRow(u,o,{source:n,mode:c});E.shiftRows(g.toVisualRow(m),p);break;case"insert_col_start":case"insert_col_end":let f="insert_col_end"===e?"end":"start",b="end"===f?g.countSourceCols():0,C="number"==typeof t?t:b,{delta:w,startPhysicalIndex:y}=l.createCol(C,o,{source:n,mode:f});if(w){if(Array.isArray(R.colHeaders)){let e=[g.toVisualColumn(y),0];e.length+=w,Array.prototype.splice.apply(R.colHeaders,e)}E.shiftColumns(g.toVisualColumn(y),w)}break;case"remove_row":let v;r=Array.isArray(t)?ut(t):[[t,o]],v=0,J(r,e=>{let[t,o]=e,i=eN(t)?g.countRows()-1:Math.max(t-v,0);Number.isInteger(t)&&(t=Math.max(t-v,0));let r=g.countRows();if(!l.removeRow(t,o,n))return;if(E.isSelected()){let{row:e}=g.getSelectedRangeActive().highlight;e>=t&&e<=t+o-1&&h.closeEditor(!0)}let s=g.countRows(),a=R.fixedRowsTop;a>=i+1&&(R.fixedRowsTop-=Math.min(o,a-i));let d=R.fixedRowsBottom;if(d){let e=r-s,o=Number.isInteger(t)?i:Math.max(r-e,0),n=Math.min(o+e-1,r-1)-Math.max(o,r-d)+1;n>0&&(R.fixedRowsBottom-=Math.min(n,d))}if(0===s)E.deselect();else if("ContextMenu.removeRow"===n){let e=E.getSelectedRange(),t=e.pop();e.clear().set(t.from).current().setTo(t.to),E.refresh()}else E.shiftRows(t,-o);v+=o});break;case"remove_col":let S;s=Array.isArray(t)?ut(t):[[t,o]],S=0,J(s,e=>{let[t,o]=e,i=eN(t)?g.countCols()-1:Math.max(t-S,0),r=g.toPhysicalColumn(i);if(Number.isInteger(t)&&(t=Math.max(t-S,0)),!l.removeCol(t,o,n))return;if(E.isSelected()){let{col:e}=g.getSelectedRangeActive().highlight;e>=t&&e<=t+o-1&&h.closeEditor(!0)}if(0===g.countCols())E.deselect();else if("ContextMenu.removeColumn"===n){let e=E.getSelectedRange(),t=e.pop();e.clear().set(t.from).current().setTo(t.to),E.refresh()}else E.shiftColumns(t,-o);let s=R.fixedColumnsStart;s>=i+1&&(R._fixedColumnsStart-=Math.min(o,s-i)),Array.isArray(R.colHeaders)&&(void 0===r&&(r=-1),R.colHeaders.splice(r,o)),S+=o});break;default:to(`There is no such action "${e}"`)}i||a.adjustRowsAndCols(),g.view.adjustElementsSize(),g.view.render()}},adjustRowsAndCols(){let e=R.minRows,t=R.minSpareRows,o=R.minCols,n=R.minSpareCols;if(e){let t=g.countRows();t<e&&l.createRow(t,e-t,{source:"auto"})}if(t){let e=g.countEmptyRows(!0);if(e<t){let o=Math.min(t-e,R.maxRows-g.countSourceRows());l.createRow(g.countRows(),o,{source:"auto"})}}{let e=0,t=n>0&&!R.columns&&"array"===g.dataType;if(t)for(let t=g.countCols()-1;t>=0&&g.isEmptyCol(t)&&!((e+=1)>=n);t--);let i=g.countCols();if(o&&!R.columns&&i<o){let t=o-i;e+=t,l.createCol(i,t,{source:"auto"})}if(t&&e<n){i=g.countCols();let t=Math.min(n-e,R.maxCols-i);l.createCol(i,t,{source:"auto"})}}},populateFromArray(e,t,o,n,i){let r,l,s,a,h,d=[],c={},u=[],p=e.row,m=e.col;if(0===(l=t.length))return!1;let f=0,b=0;switch(tu(o)&&(f=o.col-m+1,b=o.row-p+1),i){case"shift_down":let C=K(t),w=C.length,y=Math.max(w,f),v=g.getData().slice(p),S=K(v).slice(m,m+y);for(s=0;s<y;s+=1)if(s<w){for(r=0,l=C[s].length;r<b-l;r+=1)C[s].push(C[s][r%l]);s<S.length?u.push(C[s].concat(S[s])):u.push(C[s].concat(Array(v.length).fill(null)))}else u.push(C[s%w].concat(S[s]));g.populateFromArray(p,m,K(u));break;case"shift_right":let x=t.length,M=Math.max(x,b),H=g.getData().slice(p).map(e=>e.slice(m));for(r=0;r<M;r+=1)if(r<x){for(s=0,a=t[r].length;s<f-a;s+=1)t[r].push(t[r][s%a]);if(r<H.length)for(let e=0;e<H[r].length;e+=1)t[r].push(H[r][e]);else t[r].push(...Array(H[0].length).fill(null))}else t.push(t[r%l].slice(0,M).concat(H[r]));g.populateFromArray(p,m,t);break;default:c.row=e.row,c.col=e.col;let E=0,k=0,T=!0,I="Autofill.fill"===n||"autofill.fill"===n,A=function(e){let o=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,n=t[e%t.length];return null!==o?n[o%n.length]:n},_=t.length,O=o?o.row-e.row+1:0;for(r=0,l=o?O:Math.max(_,O);r<l&&!(o&&c.row>o.row&&O>_||!R.allowInsertRow&&c.row>g.countRows()-1)&&!(c.row>=R.maxRows);r++){let t=r-E,i=I?r:t,u=A(i).length,p=o?o.col-e.col+1:0;if(a=o?p:Math.max(u,p),c.col=e.col,h=g.getCellMetaTransient(c.row,c.col),("CopyPaste.paste"===n||"Autofill.fill"===n||"autofill.fill"===n)&&h.skipRowOnPaste){E+=1,c.row+=1,"CopyPaste.paste"===n&&(l+=1);continue}for(s=0,k=0;s<a&&!(o&&c.col>o.col&&p>u||!R.allowInsertColumn&&c.col>g.countCols()-1)&&!(c.col>=R.maxCols);s++){if(h=g.getCellMetaTransient(c.row,c.col),("CopyPaste.paste"===n||"Autofill.fill"===n||"autofill.fill"===n)&&h.skipColumnOnPaste){k+=1,c.col+=1,"CopyPaste.paste"===n&&(a+=1);continue}if(h.readOnly&&"UndoRedo.undo"!==n){c.col+=1;continue}let e=s-k,t=I?s:e,o=!!h.valueSetter,r=A(i,t),l=g.getSourceDataAtCell(c.row,c.col)??null;if(null!==r&&"object"==typeof r)if(Array.isArray(r)&&null===l&&(l=[]),o||"object"==typeof l&&null!==l){if(null!==l){let e=tn(Array.isArray(l)?l:l[0]||l),t=tn(Array.isArray(r)?r:r[0]||r);o||"edit"===n||td(e,t)||Array.isArray(e)&&Array.isArray(t)?r=ts(r):T=!1}}else T=!1,h.parsePastedValue&&"CopyPaste.paste"===n&&(T=!0),"edit"===n&&(T=!0,r=ts(r));else o||null===l||"object"!=typeof l||(T=!1);T&&d.push([c.row,c.col,r]),T=!0,c.col+=1}c.row+=1}g.setDataAtCell(d,null,null,n||"populateFromArray")}}},this.init=function(){let e=R.theme,t=R.themeName,o=ct(g.rootContainer);if(l8(g)&&!o&&(tu(e)||!e&&!t)&&_(e,A()),s.setData(R.data),g.runHooks("beforeInit"),(t$()||tG())&&od(g.rootElement,"mobile"),this.updateSettings(C,!0),this.view=new sn(this),h=n5.getInstance(g,R,E),c=function(e){let{selection:t}=e,o=!1,n=!1;return{resume(){n=!1},suspend(){n=!0},skipNextScrollCycle(){o=!0},scrollTo(i){let r;if(o||n){o=!1;return}t.isFocusSelectionChanged()?r=t=>{e.scrollViewportTo(t.toObject(),()=>{let t=e.getSelectedRangeActive();if(!t)return;let{row:o,col:n}=t.highlight;null!==o&&null!==n&&dD(e.getCell(o,n,!0))})}:t.isSelectedByCorner()?r=()=>{}:t.isSelectedByRowHeader()?r=t=>{let o=dN(e).getComputedRowTarget(t);e.scrollViewportTo({row:o},()=>{let t=!!e.getSettings().rowHeaders;dD(e.getCell(o,t?-1:0,!0))})}:t.isSelectedByColumnHeader()?r=t=>{let o=dN(e).getComputedColumnTarget(t);e.scrollViewportTo({col:o},()=>{let t=!!e.getSettings().colHeaders;dD(e.getCell(t?-1:0,o,!0))})}:1===t.getSelectedRange().size()&&t.isMultiple()?r=t=>{let o=dN(e),n={row:o.getComputedRowTarget(t),col:o.getComputedColumnTarget(t)};e.scrollViewportTo(n,()=>{let{row:t,col:o}=n;dD(e.getCell(t,o,!0))})}:1!==t.getSelectedRange().size()||t.isMultiple()?t.getSelectedRange().size()>1&&(r=t=>{let o=dN(e),n={row:o.getComputedRowTarget(t),col:o.getComputedColumnTarget(t)};e.scrollViewportTo(n,()=>{let{row:t,col:o}=n;dD(e.getCell(t,o,!0))})}):r=t=>{let o=e.selection.getSelectionSource(),{row:n,col:i}=t,r=()=>{dD(e.getCell(n,i,!0))};if(n<0&&i>=0)e.scrollViewportTo({col:i},r);else if(i<0&&n>=0)e.scrollViewportTo({row:n},r);else{if("mouse"===o&&(i===e.view.getLastPartiallyVisibleColumn()||n===e.view.getLastPartiallyVisibleRow()))return;e.scrollViewportTo({row:n,col:i},r)}},r?.(i)}}}(g),d.init(),l8(this)){var n,i=g.rootPortalElement;let e=i.ownerDocument;if(!ci){(ci=e.createElement("div")).setAttribute("role","status"),ci.setAttribute("aria-live","assertive"),ci.setAttribute("aria-atomic","true");let t=ci.style;t.position="absolute",t.width="1px",t.height="1px",t.margin="-1px",t.overflow="hidden",t.clipPath="rect(0 0 0 0)",t.whiteSpace="nowrap",i.appendChild(ci)}cr+=1,function(e){let t=e.rootSlotBottomElement;if(!t)return;let o=e5({className:cg,key:e.getSettings().licenseKey,element:t,releaseDate:"01/09/2026"});if(o){let t;(t=e.rootSlotBottomElement)&&(o.classList.add(cs),t.appendChild(o),ch(cl.BOTTOM,t),e.getFocusScopeManager().registerScope(cc,o,{shortcutsContextName:cu,runOnlyIf:()=>null!==cp(e),onActivate:t=>{let o,n=(o=cp(e))?Array.from(o.querySelectorAll("a[href]")):[];n.length>0&&("tab_from_above"===t?n[0]?.focus():"tab_from_below"===t&&n[n.length-1]?.focus())}}))}}(g),function(e,t){let{lifecycle:o,channels:n}=t,i=cw[o.state];i?function(e,t){let o=e.rootOverlaysElement;if(!o)return;let n=e.getFocusScopeManager(),i=e.getShortcutManager(),r=e.isRtl(),l=`${e.guid}-license-lock-title`,s=`${e.guid}-license-lock-description`,a=`${cH} ${cH}--confirm handsontable ht-license-lock ${cH}--background-solid ${cH}--show`,{refs:h}=eg`
|
|
219
|
+
`,this.themeStyles.textContent+=this.#nA(),this.themeStyles.parentNode!==this.hot.rootWrapperElement&&this.hot.rootWrapperElement.prepend(this.themeStyles)}getClassName(){return this.themeClassName}getOverrides(){return{...this.#nH}}getColorScheme(){return this.#nH.colorScheme??this.themeConfig?.colorScheme}getDensityType(){return this.#nH.density??this.themeConfig?.density?.type}setOverrides(e){return!!this.#nk(e)&&(this.#n_(),!0)}update(e){this.hot&&(void 0===e.getThemeConfig&&to('[ThemeManager] The "theme" option must be an instance of ThemeBuilder.'),this.themeConfig=e.getThemeConfig(),this.themeClassName=`ht-theme-${this.themeConfig.name}`,"function"==typeof e.subscribe&&(this.#nM?.(),this.#nM=e.subscribe(e=>{this.hot?.stylesHandler&&(this.themeConfig=e,this.#n_(),this.hot.stylesHandler.clearCache(),this.hot.render(),this.hot.runHooks("afterSetTheme",this.themeClassName,!1))})),this.mount(),this.hot.runHooks("afterSetTheme",this.themeClassName,!0))}mount(){this.#nO(),this.#n_()}unmount(){this.#nP(),this.themeStyles&&this.themeStyles.remove()}#nO(){[this.hot?.rootWrapperElement,this.hot?.rootPortalElement].forEach(e=>{e&&od(e,this.scopeClassName)})}#nP(){[this.hot?.rootWrapperElement,this.hot?.rootPortalElement].forEach(e=>{e&&oc(e,this.scopeClassName)})}destroy(){this.#nM?.(),this.unmount(),this.hot.themeManager=null}}let cq={size_0:"0px",size_0_5:"2px",size_1:"4px",size_2:"8px",size_1_5:"6px",size_3:"12px",size_4:"16px",size_5:"20px",size_6:"24px",size_7:"28px",size_8:"32px",size_9:"36px",size_10:"40px",size_0_25:"1px"},cj={default:{cellVertical:"sizing.size_1",cellHorizontal:"sizing.size_2",barsHorizontal:"sizing.size_4",barsVertical:"sizing.size_2",gap:"sizing.size_1",buttonHorizontal:"sizing.size_3",buttonVertical:"sizing.size_1_5",dialogHorizontal:"sizing.size_2",dialogVertical:"sizing.size_2",inputHorizontal:"sizing.size_3",inputVertical:"sizing.size_1_5",menuVertical:"sizing.size_2",menuHorizontal:"sizing.size_0",menuItemVertical:"sizing.size_1",menuItemHorizontal:"sizing.size_3"},compact:{cellVertical:"sizing.size_0_5",cellHorizontal:"sizing.size_1_5",barsHorizontal:"sizing.size_2",barsVertical:"sizing.size_1",gap:"sizing.size_0_5",buttonHorizontal:"sizing.size_2",buttonVertical:"sizing.size_0_5",dialogHorizontal:"sizing.size_1_5",dialogVertical:"sizing.size_1_5",inputHorizontal:"sizing.size_2",inputVertical:"sizing.size_0_5",menuVertical:"sizing.size_2",menuHorizontal:"sizing.size_0",menuItemVertical:"sizing.size_0_5",menuItemHorizontal:"sizing.size_2"},comfortable:{cellVertical:"sizing.size_2",cellHorizontal:"sizing.size_3",barsHorizontal:"sizing.size_4",barsVertical:"sizing.size_2",gap:"sizing.size_1_5",buttonHorizontal:"sizing.size_4",buttonVertical:"sizing.size_2",dialogHorizontal:"sizing.size_3",dialogVertical:"sizing.size_3",inputHorizontal:"sizing.size_4",inputVertical:"sizing.size_2",menuVertical:"sizing.size_3",menuHorizontal:"sizing.size_0",menuItemVertical:"sizing.size_2",menuItemHorizontal:"sizing.size_2"}},cY=["sizing","icons","colors","tokens"],cK=["name","icons","colors","tokens"];class cX{#nD;#nN;#nB=new Set;#nL="auto";#nV="default";constructor(e){cW(e,"themeConfig",{requiredFields:cK}),this.#nD={name:void 0,sizing:cq,density:{type:this.#nV,sizes:cj},icons:{},colors:{},tokens:{},colorScheme:this.#nL},this.#nF(e),this.#nD=this.#nN}#nz(){let e=this.getThemeConfig();this.#nB.forEach(t=>t(e))}#nW(e,t){if("string"!=typeof t){let o=tv(e.density,t);e.density=o,void 0!==t.type&&(this.#nV=t.type,this.#nD?.density&&(this.#nD.density.type=t.type))}else e.density.type=t,this.#nV=t,this.#nD?.density&&(this.#nD.density.type=t)}#nF(e){let t=ts(this.#nD);void 0!==e.name&&(void 0!==this.#nD.name?tZ('[ThemeBuilder] The "name" property can only be set during `registerTheme()` and cannot be updated via `params()`.'):t.name=e.name),cY.forEach(o=>{void 0!==e[o]&&tu(e[o])&&(t[o]=tv(t[o],e[o]))}),void 0!==e.density&&this.#nW(t,e.density),void 0!==e.colorScheme&&(t.colorScheme=e.colorScheme,this.#nL=e.colorScheme,this.#nD?.colorScheme&&(this.#nD.colorScheme=e.colorScheme)),this.#nN=t}subscribe(e){return"function"!=typeof e&&to("[ThemeBuilder] listener must be a function."),this.#nB.add(e),()=>this.#nB.delete(e)}params(e){return cW(e,"params"),this.#nF(e),this.#nz(),this}setColorScheme(e){return this.#nL=cV(e),this.#nN.colorScheme=this.#nL,this.#nD.colorScheme=this.#nL,this.#nz(),this}setDensityType(e){return this.#nV=cF(e),this.#nN.density.type=this.#nV,this.#nD.density.type=this.#nV,this.#nz(),this}getThemeConfig(){return this.#nN}}let{hasItem:cZ,getItem:cQ,getNames:cJ,getValues:c0,register:c1}=nz("themes");function c2(e){return cZ(e)}function c3(e){return cZ(e)?cQ(e):void tZ(`Theme "${e}" is not registered. Please ensure it is registered before using it.`)}function c6(){return cJ()}function c4(){return c0()}function c5(e,t){let o=e,n=ts(t);return"string"==typeof e&&tu(t)?n.name=e:"string"!=typeof e&&tu(e)&&(o=(n=ts(e)).name??""),{themeName:o,themeConfigObject:n}}function c7(e,t){let{themeName:o,themeConfigObject:n}=c5(e,t),i=new cX(n);return cZ(o)?(tZ(`Theme "${o}" is already registered. Registration skipped.`),c3(o)):(c1(o,i),i)}function c9(e,t){let{themeName:o,themeConfigObject:n}=c5(e,t);if(!cZ(o))return void tZ(`Theme "${o}" is not registered. Cannot reinitialize a non-existent theme.`);let i=new cX(n);return c1(o,i),i}let c8={name:"main",density:"default",icons:{arrowRight:"data:image/svg+xml;charset=utf-8,%3Csvg width='16' height='16' viewBox='0 0 16 16' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M6.64648 10.9393L9.93938 7.64644L6.64648 4.35354' stroke='currentColor' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E%0A",arrowRightWithBar:"data:image/svg+xml;charset=utf-8,%3Csvg width='16' height='16' viewBox='0 0 16 16' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M4.9292 4.64188L8.27934 7.99203L4.9292 11.3422M11.0711 4.08353V11.3422' stroke='currentColor' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E",arrowLeft:"data:image/svg+xml;charset=utf-8,%3Csvg width='16' height='16' viewBox='0 0 16 16' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M9.49268 11.2929L6.19978 8.00001L9.49268 4.70712' stroke='currentColor' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E%0A",arrowLeftWithBar:"data:image/svg+xml;charset=utf-8,%3Csvg width='16' height='16' viewBox='0 0 16 16' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M11.0713 4.64188L7.72115 7.99203L11.0713 11.3422M4.92936 4.08353L4.92936 11.3422' stroke='currentColor' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E",arrowDown:"data:image/svg+xml;charset=utf-8,%3Csvg width='16' height='16' viewBox='0 0 16 16' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cg opacity='0.6'%3E%3Cpath d='M11.5859 6L8.29304 9.29289L5.00015 6' stroke='currentColor' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/g%3E%3C/svg%3E",menu:"data:image/svg+xml;charset=utf-8,%3Csvg width='16' height='16' viewBox='0 0 16 16' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M11.0002 6.66663C11.4262 6.66663 11.6487 7.15963 11.3917 7.47813L11.3537 7.52013L8.35372 10.5201C8.26762 10.6062 8.15307 10.6579 8.03156 10.6656C7.91005 10.6732 7.78992 10.6363 7.69372 10.5616L7.64672 10.5201L4.64672 7.52013L4.60522 7.47313L4.57822 7.43463L4.55122 7.38663L4.54272 7.36863L4.52922 7.33513L4.51322 7.28113L4.50822 7.25463L4.50322 7.22463L4.50122 7.19613V7.13713L4.50372 7.10813L4.50822 7.07813L4.51322 7.05213L4.52922 6.99813L4.54272 6.96463L4.57772 6.89863L4.61022 6.85363L4.64672 6.81313L4.69372 6.77163L4.73222 6.74463L4.78022 6.71763L4.79822 6.70913L4.83172 6.69563L4.88572 6.67963L4.91222 6.67463L4.94222 6.66963L4.97072 6.66763L11.0002 6.66663Z' fill='currentColor'/%3E%3C/svg%3E%0A",selectArrow:"data:image/svg+xml;charset=utf-8,%3Csvg width='16' height='16' viewBox='0 0 16 16' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M11.0002 6.66663C11.4262 6.66663 11.6487 7.15963 11.3917 7.47813L11.3537 7.52013L8.35372 10.5201C8.26762 10.6062 8.15307 10.6579 8.03156 10.6656C7.91005 10.6732 7.78992 10.6363 7.69372 10.5616L7.64672 10.5201L4.64672 7.52013L4.60522 7.47313L4.57822 7.43463L4.55122 7.38663L4.54272 7.36863L4.52922 7.33513L4.51322 7.28113L4.50822 7.25463L4.50322 7.22463L4.50122 7.19613V7.13713L4.50372 7.10813L4.50822 7.07813L4.51322 7.05213L4.52922 6.99813L4.54272 6.96463L4.57772 6.89863L4.61022 6.85363L4.64672 6.81313L4.69372 6.77163L4.73222 6.74463L4.78022 6.71763L4.79822 6.70913L4.83172 6.69563L4.88572 6.67963L4.91222 6.67463L4.94222 6.66963L4.97072 6.66763L11.0002 6.66663Z' fill='currentColor'/%3E%3C/svg%3E%0A",arrowNarrowUp:"data:image/svg+xml;charset=utf-8,%3Csvg width='16' height='16' viewBox='0 0 16 16' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M8.00008 12.6667L8.00008 3.33335M8.00008 3.33335L5.33342 6.00002M8.00008 3.33335L10.6667 6.00002' stroke='currentColor' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E%0A",arrowNarrowDown:"data:image/svg+xml;charset=utf-8,%3Csvg width='16' height='16' viewBox='0 0 16 16' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M8.00004 3.33331V12.6666M8.00004 12.6666L10.6667 9.99998M8.00004 12.6666L5.33337 9.99998' stroke='currentColor' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E%0A",check:"data:image/svg+xml;charset=utf-8,%3Csvg width='16' height='16' viewBox='0 0 16 16' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M3.33337 8.00002L6.66671 11.3334L13.3334 4.66669' stroke='currentColor' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E%0A",checkbox:"data:image/svg+xml;charset=utf-8,%3Csvg width='16' height='16' viewBox='0 0 16 16' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M5 8L7 10L11 6' stroke='currentColor' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E%0A",caretHiddenLeft:"data:image/svg+xml,%3Csvg width='10' height='10' viewBox='0 0 10 10' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M6.08482 1.35771L6.11503 1.3551H6.17649L6.2067 1.35771L6.23795 1.36239L6.26503 1.3676L6.32128 1.38427L6.35618 1.39833L6.42493 1.43479L6.4718 1.46864L6.51399 1.50667L6.55722 1.55562L6.58534 1.59573L6.61347 1.64573L6.62232 1.66448L6.63639 1.69937L6.65305 1.75562L6.65826 1.78323L6.66347 1.81448L6.66555 1.84417L6.66659 1.87489V8.12489C6.66659 8.56864 6.15305 8.80042 5.82128 8.53271L5.77753 8.49312L2.65253 5.36812C2.56286 5.27844 2.50899 5.15912 2.50103 5.03254C2.49307 4.90596 2.53157 4.78083 2.6093 4.68062L2.65253 4.63167L5.77753 1.50667L5.82649 1.46344L5.86659 1.43531L5.91659 1.40719L5.93534 1.39833L5.97024 1.38427L6.02649 1.3676L6.05409 1.36239L6.08482 1.35771Z' fill='currentColor'/%3E%3C/svg%3E",caretHiddenRight:"data:image/svg+xml,%3Csvg width='10' height='10' viewBox='0 0 10 10' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M3.33337 1.87499C3.33337 1.43124 3.84692 1.19947 4.17869 1.46718L4.22244 1.50676L7.34744 4.63176C7.43711 4.72145 7.49098 4.84077 7.49894 4.96735C7.5069 5.09392 7.4684 5.21905 7.39067 5.31926L7.34744 5.36822L4.22244 8.49322L4.17348 8.53645L4.13337 8.56457L4.08337 8.5927L4.06462 8.60155L4.02973 8.61562L3.97348 8.63228L3.94587 8.63749L3.91462 8.6427L3.88494 8.64478L3.85421 8.64582L3.82348 8.64478L3.79327 8.64218L3.76202 8.63749L3.73494 8.63228L3.67869 8.61562L3.64379 8.60155L3.57504 8.5651L3.52817 8.53124L3.48598 8.49322L3.44275 8.44426L3.41462 8.40416L3.3865 8.35416L3.37764 8.33541L3.36358 8.30051L3.34692 8.24426L3.34171 8.21666L3.3365 8.18541L3.33442 8.15572L3.33337 1.87499Z' fill='currentColor'/%3E%3C/svg%3E",caretHiddenUp:"data:image/svg+xml;charset=utf-8,%3Csvg width='8' height='8' viewBox='0 0 8 8' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M3.76425 2.43099C3.82165 2.3736 3.89801 2.33913 3.97902 2.33403C4.06003 2.32894 4.14012 2.35358 4.20425 2.40333L4.23558 2.43099L6.23558 4.43099L6.26325 4.46233L6.28125 4.48799L6.29925 4.51999L6.30492 4.53199L6.31392 4.55433L6.32458 4.59033L6.32792 4.60799L6.33125 4.62799L6.33258 4.64699L6.33325 4.66666L6.33258 4.68633L6.33092 4.70566L6.32792 4.72566L6.32458 4.74299L6.31392 4.77899L6.30492 4.80133L6.28158 4.84533L6.25992 4.87533L6.23558 4.90233L6.20425 4.92999L6.17858 4.94799L6.14658 4.96599L6.13458 4.97166L6.11225 4.98066L6.07625 4.99133L6.05858 4.99466L6.03858 4.99799L6.01958 4.99933L5.99992 4.99999H1.99992C1.71592 4.99999 1.56758 4.67133 1.73892 4.45899L1.76425 4.43099L3.76425 2.43099Z' fill='currentColor'/%3E%3C/svg%3E%0A",caretHiddenDown:"data:image/svg+xml;charset=utf-8,%3Csvg width='8' height='8' viewBox='0 0 8 8' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M5.9999 3C6.2839 3 6.43224 3.32867 6.2609 3.541L6.23557 3.569L4.23557 5.569C4.17817 5.62639 4.10181 5.66087 4.0208 5.66596C3.93979 5.67106 3.8597 5.64642 3.79557 5.59667L3.76424 5.569L1.76424 3.569L1.73657 3.53767L1.71857 3.512L1.70057 3.48L1.6949 3.468L1.6859 3.44567L1.67524 3.40967L1.6719 3.392L1.66857 3.372L1.66724 3.353V3.31367L1.6689 3.29433L1.6719 3.27433L1.67524 3.257L1.6859 3.221L1.6949 3.19867L1.71824 3.15467L1.7399 3.12467L1.76424 3.09767L1.79557 3.07L1.82124 3.052L1.85324 3.034L1.86524 3.02833L1.88757 3.01933L1.92357 3.00867L1.94124 3.00533L1.96124 3.002L1.98024 3.00067L5.9999 3Z' fill='currentColor'/%3E%3C/svg%3E%0A",collapseOff:"data:image/svg+xml;charset=utf-8,%3Csvg width='16' height='16' viewBox='0 0 16 16' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M4.33325 8H11.6666' stroke='currentColor' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E%0A",collapseOn:"data:image/svg+xml;charset=utf-8,%3Csvg width='16' height='16' viewBox='0 0 16 16' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M7.49988 11.6667C7.49988 11.9428 7.72374 12.1667 7.99988 12.1667C8.27602 12.1667 8.49988 11.9428 8.49988 11.6667V8.50002H11.6666C11.9427 8.50002 12.1666 8.27616 12.1666 8.00002C12.1666 7.72388 11.9427 7.50002 11.6666 7.50002H8.49988V4.33337C8.49988 4.05723 8.27602 3.83337 7.99988 3.83337C7.72374 3.83337 7.49988 4.05723 7.49988 4.33337V7.50002H4.33325C4.05711 7.50002 3.83325 7.72388 3.83325 8.00002C3.83325 8.27616 4.05711 8.50002 4.33325 8.50002H7.49988V11.6667Z' fill='currentColor'/%3E%3C/svg%3E%0A",radio:"data:image/svg+xml;charset=utf-8,%3Csvg width='16' height='16' viewBox='0 0 16 16' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Ccircle cx='8' cy='8' r='4' fill='currentColor'/%3E%3C/svg%3E%0A",chipClose:"data:image/svg+xml;charset=utf-8,%3Csvg width='16' height='16' viewBox='0 0 16 16' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M12 4L4 12M4 4L12 12' stroke='currentColor' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E%0A",search:"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='32' height='32' viewBox='0 0 32 32' fill='none'%3E%3Cg opacity='0.5'%3E%3Cpath d='M28 28L20 20M4 13.3333C4 14.559 4.24141 15.7727 4.71046 16.905C5.1795 18.0374 5.86699 19.0663 6.73367 19.933C7.60035 20.7997 8.62925 21.4872 9.76162 21.9562C10.894 22.4253 12.1077 22.6667 13.3333 22.6667C14.559 22.6667 15.7727 22.4253 16.905 21.9562C18.0374 21.4872 19.0663 20.7997 19.933 19.933C20.7997 19.0663 21.4872 18.0374 21.9562 16.905C22.4253 15.7727 22.6667 14.559 22.6667 13.3333C22.6667 12.1077 22.4253 10.894 21.9562 9.76162C21.4872 8.62925 20.7997 7.60035 19.933 6.73367C19.0663 5.86699 18.0374 5.1795 16.905 4.71046C15.7727 4.24141 14.559 4 13.3333 4C12.1077 4 10.894 4.24141 9.76162 4.71046C8.62925 5.1795 7.60035 5.86699 6.73367 6.73367C5.86699 7.60035 5.1795 8.62925 4.71046 9.76162C4.24141 10.894 4 12.1077 4 13.3333Z' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/g%3E%3C/svg%3E"},colors:{white:"#ffffffff",black:"#000000ff",primary:{100:"#6180ffff",200:"#5573f0ff",300:"#4669f6ff",400:"#2e56fcff",500:"#1a42e8ff",600:"#1535bcff"},palette:{50:"#f7f7f9ff",100:"#e7e7e9ff",200:"#b9b9bbff",300:"#a3a3a3ff",400:"#68696cff",500:"#404144ff",600:"#313132ff",700:"#282829ff",800:"#222222ff",900:"#1e1e1fff",950:"#050506ff"},transparent:"#ffffff00"},tokens:{fontFamily:"Inter",fontSize:"14px",fontSizeSmall:"12px",lineHeight:"20px",lineHeightSmall:"18px",fontWeight:"400",letterSpacing:"0px",borderColor:["colors.palette.100","colors.palette.700"],accentColor:["colors.primary.500","colors.primary.300"],foregroundColor:["colors.palette.800","colors.palette.200"],foregroundSecondaryColor:["colors.palette.400","colors.palette.300"],backgroundColor:["colors.white","colors.palette.950"],backgroundSecondaryColor:["colors.palette.50","colors.palette.900"],placeholderColor:["colors.palette.300","colors.palette.400"],readOnlyColor:["colors.palette.400","colors.palette.300"],disabledColor:["colors.palette.300","colors.palette.400"],gapSize:"density.gap",iconSize:"sizing.size_4",tableTransition:"0.15s",borderRadius:"sizing.size_1",barForegroundColor:"tokens.foregroundColor",barBackgroundColor:"tokens.backgroundSecondaryColor",barHorizontalPadding:"density.barsHorizontal",barVerticalPadding:"density.barsVertical",shadowColor:["colors.palette.800","colors.palette.200"],shadowX:"sizing.size_0",shadowY:"sizing.size_2",shadowBlur:"sizing.size_4",shadowOpacity:"8%",cellHorizontalPadding:"density.cellHorizontal",cellVerticalPadding:"density.cellVertical",cellHorizontalBorderColor:"tokens.borderColor",cellVerticalBorderColor:"tokens.borderColor",cellSelectionBorderColor:"tokens.accentColor",cellSelectionBackgroundColor:["colors.primary.400","colors.primary.200"],cellSuccessBackgroundColor:"#37bc6c33",cellErrorBackgroundColor:"#fa4d3233",cellReadOnlyBackgroundColor:"tokens.backgroundSecondaryColor",cellAutofillSize:"sizing.size_1_5",cellAutofillHitAreaSize:"sizing.size_3",cellAutofillBorderWidth:"sizing.size_0_25",cellAutofillBorderRadius:"sizing.size_1",cellAutofillBorderColor:"tokens.backgroundColor",cellAutofillBackgroundColor:"tokens.accentColor",cellAutofillFillBorderColor:"tokens.foregroundColor",cellEditorBorderWidth:"2px",cellEditorBorderColor:"tokens.accentColor",cellEditorForegroundColor:["colors.palette.950","colors.white"],cellEditorBackgroundColor:"tokens.backgroundColor",cellEditorShadowBlurRadius:"0px",cellEditorShadowColor:"tokens.accentColor",cellMobileHandleSize:"sizing.size_3",cellMobileHandleBorderWidth:"sizing.size_0_25",cellMobileHandleBorderRadius:"sizing.size_3",cellMobileHandleBorderColor:"tokens.accentColor",cellMobileHandleBackgroundColor:"tokens.accentColor",cellMobileHandleBackgroundOpacity:"40%",cellSelectionHandleSize:"sizing.size_2",cellSelectionHandleLength:"sizing.size_4",cellSelectionHandleBorderWidth:"sizing.size_0_25",cellSelectionHandleBorderRadius:"sizing.size_3",cellSelectionHandleBorderColor:"tokens.accentColor",cellSelectionHandleBackgroundColor:"tokens.backgroundColor",headerFontWeight:"tokens.fontWeight",headerForegroundColor:"tokens.foregroundColor",headerBackgroundColor:"tokens.backgroundSecondaryColor",headerHighlightedShadowSize:"0px",headerHighlightedForegroundColor:["colors.palette.950","colors.white"],headerHighlightedBackgroundColor:["colors.palette.100","colors.palette.700"],headerActiveBorderColor:["colors.primary.400","colors.primary.200"],headerActiveForegroundColor:"colors.white",headerActiveBackgroundColor:"tokens.accentColor",headerFilterBackgroundColor:"tokens.cellSuccessBackgroundColor",headerRowForegroundColor:"tokens.foregroundColor",headerRowBackgroundColor:"tokens.backgroundSecondaryColor",headerRowHighlightedForegroundColor:["colors.palette.950","colors.white"],headerRowHighlightedBackgroundColor:["colors.palette.100","colors.palette.700"],headerRowActiveForegroundColor:"colors.white",headerRowActiveBackgroundColor:"tokens.accentColor",rowHeaderOddBackgroundColor:"tokens.headerRowBackgroundColor",rowHeaderEvenBackgroundColor:"tokens.headerRowBackgroundColor",rowCellOddBackgroundColor:"tokens.backgroundColor",rowCellEvenBackgroundColor:"tokens.backgroundColor",buttonBorderRadius:"sizing.size_1",buttonHorizontalPadding:"density.buttonHorizontal",buttonVerticalPadding:"density.buttonVertical",primaryButtonBorderColor:"colors.transparent",primaryButtonForegroundColor:"colors.white",primaryButtonBackgroundColor:"tokens.accentColor",primaryButtonDisabledBorderColor:"colors.transparent",primaryButtonDisabledForegroundColor:"tokens.disabledColor",primaryButtonDisabledBackgroundColor:["colors.palette.100","colors.palette.700"],primaryButtonHoverBorderColor:"colors.transparent",primaryButtonHoverForegroundColor:"tokens.backgroundColor",primaryButtonHoverBackgroundColor:["colors.primary.600","colors.primary.100"],primaryButtonFocusBorderColor:"tokens.backgroundColor",primaryButtonFocusForegroundColor:"tokens.backgroundColor",primaryButtonFocusBackgroundColor:"tokens.accentColor",secondaryButtonBorderColor:"tokens.borderColor",secondaryButtonForegroundColor:"tokens.foregroundColor",secondaryButtonBackgroundColor:"tokens.backgroundColor",secondaryButtonDisabledBorderColor:"tokens.borderColor",secondaryButtonDisabledForegroundColor:"tokens.disabledColor",secondaryButtonDisabledBackgroundColor:["colors.palette.100","colors.palette.700"],secondaryButtonHoverBorderColor:"tokens.borderColor",secondaryButtonHoverForegroundColor:"tokens.foregroundColor",secondaryButtonHoverBackgroundColor:["colors.palette.100","colors.palette.700"],secondaryButtonFocusBorderColor:"tokens.borderColor",secondaryButtonFocusForegroundColor:"tokens.foregroundColor",secondaryButtonFocusBackgroundColor:"tokens.backgroundColor",iconButtonBorderRadius:"sizing.size_0_5",iconButtonLargeBorderRadius:"sizing.size_1",iconButtonLargePadding:"sizing.size_1",iconButtonBorderColor:["colors.palette.50","colors.palette.900"],iconButtonBackgroundColor:"tokens.backgroundSecondaryColor",iconButtonIconColor:["colors.palette.300","colors.palette.400"],iconButtonHitAreaSize:"sizing.size_6",iconButtonHoverBorderColor:["colors.palette.100","colors.palette.700"],iconButtonHoverBackgroundColor:["colors.palette.100","colors.palette.700"],iconButtonHoverIconColor:["colors.palette.300","colors.palette.400"],iconButtonActiveBorderColor:["colors.primary.400","colors.primary.200"],iconButtonActiveBackgroundColor:"tokens.accentColor",iconButtonActiveIconColor:"colors.white",iconButtonActiveHoverBorderColor:["colors.primary.400","colors.primary.200"],iconButtonActiveHoverBackgroundColor:["colors.primary.400","colors.primary.200"],iconButtonActiveHoverIconColor:"colors.white",collapseButtonBorderRadius:"sizing.size_1",collapseButtonOpenBorderColor:["colors.palette.200","colors.palette.500"],collapseButtonOpenBackgroundColor:["colors.white","colors.palette.950"],collapseButtonOpenIconColor:["colors.palette.400","colors.palette.300"],collapseButtonOpenIconActiveColor:["colors.palette.400","colors.palette.300"],collapseButtonOpenHoverBorderColor:["colors.palette.200","colors.palette.500"],collapseButtonOpenHoverBackgroundColor:["colors.palette.50","colors.palette.900"],collapseButtonOpenHoverIconColor:["colors.palette.400","colors.palette.300"],collapseButtonOpenHoverIconActiveColor:["colors.palette.400","colors.palette.300"],collapseButtonCloseBorderColor:["colors.palette.200","colors.palette.500"],collapseButtonCloseBackgroundColor:["colors.palette.100","colors.palette.700"],collapseButtonCloseIconColor:["colors.palette.400","colors.palette.300"],collapseButtonCloseIconActiveColor:["colors.palette.400","colors.palette.300"],collapseButtonCloseHoverBorderColor:["colors.palette.200","colors.palette.500"],collapseButtonCloseHoverBackgroundColor:["colors.palette.100","colors.palette.700"],collapseButtonCloseHoverIconColor:["colors.palette.400","colors.palette.300"],collapseButtonCloseHoverIconActiveColor:["colors.palette.400","colors.palette.300"],linkColor:["colors.primary.600","colors.primary.100"],linkHoverColor:"tokens.accentColor",inputBorderWidth:"1px",inputBorderRadius:"sizing.size_1",inputHorizontalPadding:"density.inputHorizontal",inputVerticalPadding:"density.inputVertical",inputBorderColor:"tokens.borderColor",inputForegroundColor:"tokens.foregroundColor",inputBackgroundColor:"tokens.backgroundSecondaryColor",inputHoverBorderColor:"tokens.borderColor",inputHoverForegroundColor:"tokens.foregroundColor",inputHoverBackgroundColor:"tokens.backgroundColor",inputDisabledBorderColor:"tokens.borderColor",inputDisabledForegroundColor:"tokens.disabledColor",inputDisabledBackgroundColor:["colors.palette.200","colors.palette.500"],inputFocusBorderColor:"tokens.accentColor",inputFocusForegroundColor:"tokens.foregroundColor",inputFocusBackgroundColor:"tokens.backgroundColor",checkboxSize:"tokens.iconSize",checkboxBorderRadius:"sizing.size_1",checkboxBorderColor:["colors.palette.200","colors.palette.500"],checkboxBackgroundColor:"tokens.backgroundColor",checkboxIconColor:"colors.transparent",checkboxFocusBorderColor:["colors.palette.200","colors.palette.500"],checkboxFocusBackgroundColor:"tokens.backgroundColor",checkboxFocusIconColor:"colors.transparent",checkboxFocusRingColor:"tokens.accentColor",checkboxDisabledBorderColor:["colors.palette.200","colors.palette.500"],checkboxDisabledBackgroundColor:["colors.palette.100","colors.palette.700"],checkboxDisabledIconColor:"colors.transparent",checkboxCheckedBorderColor:["colors.primary.400","colors.primary.200"],checkboxCheckedBackgroundColor:"tokens.accentColor",checkboxCheckedIconColor:"colors.white",checkboxCheckedFocusBorderColor:"tokens.backgroundColor",checkboxCheckedFocusBackgroundColor:"tokens.accentColor",checkboxCheckedFocusIconColor:"colors.white",checkboxCheckedDisabledBorderColor:["colors.palette.200","colors.palette.500"],checkboxCheckedDisabledBackgroundColor:["colors.palette.100","colors.palette.700"],checkboxCheckedDisabledIconColor:"tokens.disabledColor",checkboxIndeterminateBorderColor:["colors.primary.400","colors.primary.200"],checkboxIndeterminateBackgroundColor:"tokens.accentColor",checkboxIndeterminateIconColor:"colors.white",checkboxIndeterminateFocusBorderColor:"tokens.backgroundColor",checkboxIndeterminateFocusBackgroundColor:"tokens.accentColor",checkboxIndeterminateFocusIconColor:"colors.white",checkboxIndeterminateDisabledBorderColor:["colors.palette.200","colors.palette.600"],checkboxIndeterminateDisabledBackgroundColor:["colors.palette.200","colors.palette.500"],checkboxIndeterminateDisabledIconColor:"tokens.disabledColor",radioSize:"tokens.iconSize",radioBorderColor:["colors.palette.200","colors.palette.500"],radioBackgroundColor:"tokens.backgroundColor",radioIconColor:"colors.transparent",radioFocusBorderColor:"tokens.borderColor",radioFocusBackgroundColor:"tokens.backgroundColor",radioFocusIconColor:"colors.transparent",radioFocusRingColor:"tokens.accentColor",radioDisabledBorderColor:["colors.palette.200","colors.palette.500"],radioDisabledBackgroundColor:["colors.palette.100","colors.palette.700"],radioDisabledIconColor:"colors.transparent",radioCheckedBorderColor:"tokens.accentColor",radioCheckedBackgroundColor:"tokens.backgroundColor",radioCheckedIconColor:"tokens.accentColor",radioCheckedFocusBorderColor:["colors.primary.400","colors.primary.200"],radioCheckedFocusBackgroundColor:"tokens.backgroundColor",radioCheckedFocusIconColor:["colors.primary.400","colors.primary.200"],radioCheckedDisabledBorderColor:["colors.palette.200","colors.palette.500"],radioCheckedDisabledBackgroundColor:["colors.palette.100","colors.palette.700"],radioCheckedDisabledIconColor:"tokens.disabledColor",moveBacklightColor:["colors.palette.800","colors.palette.200"],moveBacklightOpacity:"8%",moveIndicatorColor:"tokens.accentColor",resizeIndicatorColor:["colors.palette.300","colors.palette.400"],hiddenIndicatorColor:["colors.palette.300","colors.palette.400"],menuBorderWidth:"1px",menuBorderRadius:"sizing.size_1",menuHorizontalPadding:"density.menuHorizontal",menuVerticalPadding:"density.menuVertical",menuItemHorizontalPadding:"density.menuItemHorizontal",menuItemVerticalPadding:"density.menuItemVertical",menuBorderColor:"tokens.borderColor",menuShadowX:"tokens.shadowX",menuShadowY:"tokens.shadowY",menuShadowBlur:"tokens.shadowBlur",menuShadowColor:["colors.palette.950","colors.white"],menuShadowOpacity:"8%",menuItemHoverColor:["colors.palette.800","colors.palette.200"],menuItemHoverColorOpacity:"4%",menuItemActiveColor:"tokens.accentColor",menuItemActiveColorOpacity:"8%",commentsTextareaHorizontalPadding:"density.cellHorizontal",commentsTextareaVerticalPadding:"density.cellVertical",commentsTextareaBorderWidth:"1px",commentsTextareaBorderColor:"colors.transparent",commentsTextareaForegroundColor:"tokens.foregroundColor",commentsTextareaBackgroundColor:"tokens.backgroundSecondaryColor",commentsTextareaFocusBorderWidth:"1px",commentsTextareaFocusBorderColor:"tokens.accentColor",commentsTextareaFocusForegroundColor:"tokens.foregroundColor",commentsTextareaFocusBackgroundColor:"tokens.backgroundColor",commentsIndicatorSize:"sizing.size_1_5",commentsIndicatorColor:"tokens.accentColor",licenseHorizontalPadding:"tokens.barHorizontalPadding",licenseVerticalPadding:"tokens.barVerticalPadding",licenseForegroundColor:"tokens.barForegroundColor",licenseBackgroundColor:"tokens.barBackgroundColor",paginationBarForegroundColor:"tokens.barForegroundColor",paginationBarBackgroundColor:"tokens.barBackgroundColor",paginationBarHorizontalPadding:"tokens.barHorizontalPadding",paginationBarVerticalPadding:"tokens.barVerticalPadding",paginationButtonBorderColor:"tokens.paginationBarBackgroundColor",paginationButtonForegroundColor:"tokens.foregroundSecondaryColor",paginationButtonBackgroundColor:"tokens.paginationBarBackgroundColor",paginationButtonHoverBorderColor:["colors.palette.100","colors.palette.700"],paginationButtonHoverForegroundColor:"tokens.foregroundColor",paginationButtonHoverBackgroundColor:["colors.palette.100","colors.palette.700"],paginationButtonDisabledBorderColor:"tokens.paginationBarBackgroundColor",paginationButtonDisabledForegroundColor:"tokens.disabledColor",paginationButtonDisabledBackgroundColor:"tokens.paginationBarBackgroundColor",paginationButtonFocusBorderColor:"tokens.accentColor",paginationButtonFocusForegroundColor:"tokens.foregroundColor",paginationButtonFocusBackgroundColor:"tokens.paginationBarBackgroundColor",dialogSemiTransparentBackgroundColor:["colors.white","colors.palette.950"],dialogSemiTransparentBackgroundOpacity:"80%",dialogSolidBackgroundColor:["colors.white","colors.palette.950"],dialogContentPaddingHorizontal:"density.dialogHorizontal",dialogContentPaddingVertical:"density.dialogVertical",dialogContentBorderRadius:"sizing.size_2",dialogContentBackgroundColor:"tokens.backgroundSecondaryColor",notificationForegroundColor:"tokens.foregroundColor",notificationBackgroundColor:"tokens.backgroundColor",notificationBorderColor:"tokens.backgroundColor",notificationSuccessAccent:"#37bc6cff",notificationWarningAccent:"#fbe952ff",notificationErrorAccent:"#fa4d32ff",chipBackground:"tokens.backgroundSecondaryColor",chipBorderRadius:"sizing.size_0_5",chipVerticalPadding:"sizing.size_0",chipHorizontalPadding:"sizing.size_0_5",chipGap:"sizing.size_1",scrollbarBorderRadius:"sizing.size_2",scrollbarTrackColor:"tokens.backgroundSecondaryColor",scrollbarThumbColor:["colors.palette.300","colors.palette.400"]}},ue=null;function ut(e){if(0===e.length)return[];let t=[...e];return t.sort((e,t)=>{let[o]=e,[n]=t;return o===n?0:o>n?1:-1}),X(t,(e,t)=>{let[o,n]=t,i=e[e.length-1],[r,l]=i,s=r+l;if(o<=s){let e=Math.max(n-(s-o),0);i[1]+=e}else e.push([o,n]);return e},[t[0]])}let uo=new Map,un=[{name:"persistentState",version:"17.0.0",migrationUrl:"https://handsontable.com/docs/javascript-data-grid/changelog-17/"},{name:"correctFormat",version:"18.0.0",migrationUrl:"https://handsontable.com/docs/javascript-data-grid/migration-from-17.1-to-18.0/"}];function ui(e,t,o,n,i,r,l){let s=l.ariaTags,a=[],h=[],d=[],c=[];l._isBaseRendererCalled=!0,l.className&&od(t,l.className),l.readOnly?(a.push(l.readOnlyCellClassName),s&&c.push(W())):s&&d.push(W()[0]),!1===l.valid&&l.invalidCellClassName?(a.push(l.invalidCellClassName),s&&c.push($())):(h.push(l.invalidCellClassName),s&&d.push($()[0])),!1===l.wordWrap&&l.noWordWrapClassName&&a.push(l.noWordWrapClassName),eN(r)&&l.placeholder&&a.push(l.placeholderCellClassName),l.textEllipsis&&a.push("htTextEllipsis"),oc(t,h),od(t,a),og(t,d),ou(t,c)}function ur(e,t,o){e.addEventListener(t,o,!1)}function ul(e,t,o){e.removeEventListener(t,o,!1)}function us(e){return e.ownerDocument.defaultView.getComputedStyle(e)}function ua(e){let t,o=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n={minHeight:200,maxHeight:300,minWidth:100,maxWidth:300,textContent:e=>e.value,...o},i=e.body,r=e.createTextNode(""),l=e.createElement("span");function s(){r.textContent=n.textContent(t),l.style.position="absolute",l.style.fontSize=us(t).fontSize,l.style.fontFamily=us(t).fontFamily,l.style.whiteSpace="pre",i.appendChild(l);let e=Number.parseInt(us(t)?.paddingInlineStart||"0",10),o=Number.parseInt(us(t)?.paddingInlineEnd||"0",10),s=l.clientWidth+e+o+1;i.removeChild(l);let a=t.style;a.height=`${n.minHeight}px`,n.minWidth>s?a.width=`${n.minWidth}px`:s>n.maxWidth?a.width=`${n.maxWidth}px`:a.width=`${s}px`;let h=t.scrollHeight?t.scrollHeight-1:0;n.minHeight>h?a.height=`${n.minHeight}px`:n.maxHeight<h?(a.height=`${n.maxHeight}px`,a.overflowY="visible"):a.height=`${h}px`}function a(){e.defaultView.setTimeout(s,0)}function h(e,t){if("inherit"===e)return t;let o=Number.parseInt(String(e),10);if(!isNaN(o))return o}return{init:function(e,o){let i=arguments.length>2&&void 0!==arguments[2]&&arguments[2];t=e;if(o&&o.minHeight){let e=h(o.minHeight,t.clientHeight);void 0!==e&&(n.minHeight=e)}if(o&&o.maxHeight){let e=h(o.maxHeight,t.clientHeight);void 0!==e&&(n.maxHeight=e)}if(o&&o.minWidth){let e=h(o.minWidth,t.clientWidth);void 0!==e&&(n.minWidth=e)}if(o&&o.maxWidth){let e=h(o.maxWidth,t.clientWidth);void 0!==e&&(n.maxWidth=e)}l.firstChild||(l.className="autoResize",l.style.display="inline-block",l.appendChild(r)),"TEXTAREA"===t.nodeName&&(t.style.resize="none",t.style.height=`${n.minHeight}px`,t.style.minWidth=`${n.minWidth}px`,t.style.maxWidth=`${n.maxWidth}px`,t.style.overflowY="hidden"),i&&(ur(t,"input",s),ur(t,"keydown",a)),s()},resize:s,unObserve(){ul(t,"input",s),ul(t,"keydown",a)}}}function uh(e,t){let o=oU(t),n=t.value.split("\n"),i=o,r=0;for(let t=0;t<n.length;t++){let l=n[t];0!==t&&(r+=n[t-1].length+1);let s=r+l.length;if("home"===e?i=r:"end"===e&&(i=s),o<=s)break}oY(t,i,i)}ui.RENDERER_TYPE="base";let ud="ht_editor_hidden",uc="textEditor";class uu extends n3{static get EDITOR_TYPE(){return"text"}eventManager=new n4(this);autoResize=ua(this.hot.rootDocument);constructor(e){super(e),this.eventManager=new n4(this),this.createElements(),this.bindEvents(),this.hot.addHookOnce("afterDestroy",()=>this.destroy())}getValue(){return this.TEXTAREA.value}setValue(e){this.TEXTAREA.value=e}open(){this._opened=!0,this.refreshDimensions(),this.showEditableElement(),this.hot.getShortcutManager().setActiveContextName("editor"),this.registerShortcuts()}close(){this._opened=!1,this.autoResize.unObserve(),t4(nr(this.hot.rootDocument),this.hot.rootElement)&&this.hot.listen(),this.hideEditableElement(),this.unregisterShortcuts()}prepare(e,t,o,n,i,r){let l=this.state;if(super.prepare(e,t,o,n,i,r),!r.readOnly){this.refreshDimensions(!0);let{allowInvalid:e}=r;e&&!this.isOpened()&&(this.TEXTAREA.value=""),l===n2.FINISHED||this.isOpened()||this.hideEditableElement()}}beginEditing(e,t){this.state===n2.VIRGIN&&(this.TEXTAREA.value="",super.beginEditing(e,t))}focus(){this.TEXTAREA.select(),oY(this.TEXTAREA,this.TEXTAREA.value.length,this.TEXTAREA.value.length)}createElements(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"textarea",{rootDocument:t}=this.hot;this.TEXTAREA=t.createElement(e),ou(this.TEXTAREA,[["data-hot-input",""],S(-1)]),od(this.TEXTAREA,"handsontableInput"),this.textareaStyle=this.TEXTAREA.style,this.textareaStyle.width="0",this.textareaStyle.height="0",this.textareaStyle.overflowY="visible",this.TEXTAREA_PARENT=t.createElement("DIV"),od(this.TEXTAREA_PARENT,"handsontableInputHolder"),oh(this.TEXTAREA_PARENT,this.layerClass)&&oc(this.TEXTAREA_PARENT,this.layerClass),od(this.TEXTAREA_PARENT,ud),this.textareaParentStyle=this.TEXTAREA_PARENT.style,this.TEXTAREA_PARENT.appendChild(this.TEXTAREA),this.hot.rootElement.appendChild(this.TEXTAREA_PARENT)}hideEditableElement(){tz()&&(this.textareaStyle.textIndent="-99999px"),this.textareaStyle.overflowY="visible",this.textareaParentStyle.opacity="0",this.textareaParentStyle.height="1px",oc(this.TEXTAREA_PARENT,this.layerClass),od(this.TEXTAREA_PARENT,ud)}showEditableElement(){this.textareaParentStyle.height="",this.textareaParentStyle.overflow="",this.textareaParentStyle.position="",this.textareaParentStyle[this.hot.isRtl()?"left":"right"]="auto",this.textareaParentStyle.opacity="1",this.textareaStyle.textIndent="";let e=this.TEXTAREA_PARENT.childNodes,t=!1;ik(e.length-1,o=>{if(oh(e[o],"handsontableEditor"))return t=!0,!1}),oh(this.TEXTAREA_PARENT,ud)&&oc(this.TEXTAREA_PARENT,ud),t?this.layerClass="ht_editor_visible":this.layerClass=this.getEditedCellsLayerClass(),od(this.TEXTAREA_PARENT,this.layerClass)}refreshValue(){let e=this.hot.toPhysicalRow(this.row),t=this.hot.getSourceDataAtCell(e,this.col);this.originalValue=t,this.setValue(t),this.refreshDimensions()}refreshDimensions(){let e=arguments.length>0&&void 0!==arguments[0]&&arguments[0];if(this.state!==n2.EDITING&&!e)return;if(this.TD=this.getEditedCell(),!this.TD){e||this.close();return}let t=this.getEditedCellRect();if(!t)return;let{top:o,start:n,width:i,maxWidth:r,height:l,maxHeight:s}=t;this.textareaParentStyle.top=`${o}px`,this.textareaParentStyle[this.hot.isRtl()?"right":"left"]=`${n}px`,this.showEditableElement();let a=this.hot.rootWindow.getComputedStyle(this.TD);this.TEXTAREA.style.fontSize=a.fontSize,this.TEXTAREA.style.fontFamily=a.fontFamily,this.TEXTAREA.style.backgroundColor=this.TD.style.backgroundColor,this.autoResize.init(this.TEXTAREA,{minWidth:Math.min(i,r),minHeight:Math.min(l,s),maxWidth:r,maxHeight:s},!0)}bindEvents(){tU()&&this.eventManager.addEventListener(this.TEXTAREA,"focusout",()=>this.finishEditing(!1)),this.addHook("afterScrollHorizontally",()=>this.refreshDimensions()),this.addHook("afterScrollVertically",()=>this.refreshDimensions()),this.addHook("afterColumnResize",()=>{this.refreshDimensions(),this.state===n2.EDITING&&this.focus()}),this.addHook("afterRowResize",()=>{this.refreshDimensions(),this.state===n2.EDITING&&this.focus()})}destroy(){this.eventManager.destroy(),this.clearHooks()}registerShortcuts(){let e=this.hot.getShortcutManager().getContext("editor"),t=()=>{this.hot.rootDocument.execCommand("insertText",!1,"\n")};e.addShortcuts([{keys:[["Control","Enter"]],callback:()=>(t(),!1),runOnlyIf:e=>!this.hot.selection.isMultiple()&&!e?.altKey},{keys:[["Meta","Enter"]],callback:()=>(t(),!1),runOnlyIf:()=>!this.hot.selection.isMultiple()},{keys:[["Alt","Enter"]],callback:()=>(t(),!1)},{keys:[["Home"]],callback:(e,t)=>{uh(t?.[0]??"",this.TEXTAREA)}},{keys:[["End"]],callback:(e,t)=>{uh(t?.[0]??"",this.TEXTAREA)}}],{runOnlyIf:()=>eP(this.hot.getSelected()),group:uc})}unregisterShortcuts(){this.hot.getShortcutManager().getContext("editor").removeShortcutsByGroup(uc)}}function ug(e,t,o,n,i,r,l){let s=r;eN(s)&&l.placeholder&&(s=l.placeholder);let a=eO(s),h=a;l.trimWhitespace&&(h=a.trim()),ov(t,h)}ug.RENDERER_TYPE="text";let up={CELL_TYPE:"text",editor:uu,renderer:ug},um=function(e,t){var o,n,i;let r,l,s,a,h,d,c,u=arguments.length>2&&void 0!==arguments[2]&&arguments[2],g=this,p=new n4(g),m=!0,f=!1,b=null,C={...t.initialState,...t};u===l9&&l7.set(this,!0),this.rootContainer=e,this.rootWrapperElement=null,this.rootGridElement=null,this.rootGridContentElement=null,this.rootSlotTopElement=null,this.rootSlotBottomElement=null,this.rootOverlaysElement=null,this.rootPortalElement=null,this.rootElement=l8(this)?e.ownerDocument.createElement("div"):e,this.rootDocument=e.ownerDocument,this.rootWindow=this.rootDocument.defaultView,l8(this)&&(this.rootWrapperElement=this.rootDocument.createElement("div"),this.rootSlotTopElement=this.rootDocument.createElement("div"),this.rootGridElement=this.rootDocument.createElement("div"),this.rootGridContentElement=this.rootDocument.createElement("div"),this.rootOverlaysElement=this.rootDocument.createElement("div"),this.rootSlotBottomElement=this.rootDocument.createElement("div"),this.rootPortalElement=this.rootDocument.createElement("div"),od(this.rootElement,["ht-wrapper","handsontable"]),od(this.rootWrapperElement,"ht-root-wrapper"),nn(this.rootContainer.getRootNode())&&od(this.rootWrapperElement,"ht-shadow-dom"),od(this.rootSlotTopElement,"ht-slot-top"),od(this.rootGridElement,"ht-grid"),od(this.rootGridContentElement,"ht-grid-content"),od(this.rootOverlaysElement,"ht-overlay"),od(this.rootSlotBottomElement,"ht-slot-bottom"),this.rootGridContentElement.appendChild(this.rootElement),this.rootGridElement.appendChild(this.rootGridContentElement),this.rootWrapperElement.appendChild(this.rootSlotTopElement),this.rootWrapperElement.appendChild(this.rootGridElement),this.rootWrapperElement.appendChild(this.rootSlotBottomElement),this.rootWrapperElement.appendChild(this.rootOverlaysElement),this.rootContainer.appendChild(this.rootWrapperElement),this.rootWrapperElement.__hotInstance=this,od(this.rootPortalElement,"ht-portal"),this.rootDocument.body.appendChild(this.rootPortalElement)),this.isDestroyed=!1,this.renderSuspendedCounter=0,this.executionSuspendedCounter=0;let w=C?.layoutDirection??"inherit",y=["rtl","ltr"].includes(w)?w:this.rootWindow.getComputedStyle(this.rootElement).direction;this.rootElement.setAttribute("dir",y),this.rootWrapperElement?.setAttribute("dir",y),this.isRtl=function(){return"rtl"===y},this.isLtr=function(){return!g.isRtl()},this.getDirectionFactor=function(){return g.isLtr()?1:-1},this.stylesHandler=new cn({hot:g,rootElement:g.rootElement,rootDocument:g.rootDocument,onThemeChange:e=>{l8(this)&&(oc(this.rootWrapperElement,/ht-theme-.*/g),oc(this.rootPortalElement,/ht-theme-.*/g),e&&(od(this.rootWrapperElement,e),od(this.rootPortalElement,e),getComputedStyle(this.rootWrapperElement).getPropertyValue("--ht-line-height")||tZ(`The "${e}" theme is enabled, but its stylesheets are missing or not imported correctly. Import the correct CSS files in order to use that theme.`)),this.view?._wt?.selectionManager?.refreshAllBorderHandleStyles())},injectCoreCss:"boolean"!=typeof t?.injectCoreCss||t.injectCoreCss}),this.themeManager=null,hF(r=sL(i=C.language))||(r=hB,sV(i)),C.language=r;let v=Object.fromEntries(Object.entries(C).filter(e=>{let[t]=e;return!(nL.getSingleton().isRegistered(t)||nL.getSingleton().isDeprecated(t))})),S=new dv(g,v,[dS,dR]),R=S.getTableMeta(),x=S.getGlobalMeta(),M=iF();this.container=this.rootDocument.createElement("div"),this.rootElement.insertBefore(this.container,this.rootElement.firstChild),this.guid=`ht_${id()}`,uo.set(this.guid,this),this.columnIndexMapper=new sB,this.rowIndexMapper=new sB,this.columnIndexMapper.addLocalHook("indexesSequenceChange",e=>{g.runHooks("afterColumnSequenceChange",e)}),this.rowIndexMapper.addLocalHook("indexesSequenceChange",e=>{g.runHooks("afterRowSequenceChange",e)}),p.addEventListener(this.rootDocument.documentElement,"compositionstart",e=>{g.runHooks("beforeCompositionStart",e)}),s=new dx(g);let H=nz(this.guid);H.register("cellRangeMapper",new dP({rowIndexMapper:this.rowIndexMapper,columnIndexMapper:this.columnIndexMapper})),this.rootElement.id&&"ht_"!==this.rootElement.id.substring(0,3)||(this.rootElement.id=this.guid);let E=new di(R,{rowIndexMapper:g.rowIndexMapper,columnIndexMapper:g.columnIndexMapper,countCols:()=>g.countCols(),countRows:()=>g.countRows(),propToCol:e=>l.propToCol(e),isEditorOpened:()=>{let e=g.getActiveEditor();return!!e&&e.isOpened()},isPluginEnabled:e=>g.getPlugin(e)?.enabled===!0,countRenderableColumns:()=>g.view.countRenderableColumns(),countRenderableRows:()=>g.view.countRenderableRows(),countRowHeaders:()=>g.countRowHeaders(),countColHeaders:()=>g.countColHeaders(),countRenderableRowsInRange:(e,t)=>g.view.countRenderableRowsInRange(e,t),countRenderableColumnsInRange:(e,t)=>g.view.countRenderableColumnsInRange(e,t),getShortcutManager:()=>g.getShortcutManager(),createCellCoords:(e,t)=>g._createCellCoords(e,t),createCellRange:(e,t,o)=>g._createCellRange(e,t,o),visualToRenderableCoords:e=>{let{row:t,col:o}=e;return g._createCellCoords(t>=0?g.rowIndexMapper.getRenderableFromVisualIndex(t):t,o>=0?g.columnIndexMapper.getRenderableFromVisualIndex(o):o)},renderableToVisualCoords:e=>{let{row:t,col:o}=e;return g._createCellCoords(t>=0?g.rowIndexMapper.getVisualFromRenderableIndex(t):t,o>=0?g.columnIndexMapper.getVisualFromRenderableIndex(o):o)},findFirstNonHiddenRenderableRow:(e,t)=>{let o=t>e?1:-1,n=Math.min(e,t),i=Math.max(e,t),r=g.rowIndexMapper.getNearestNotHiddenIndex(e,o);return null===r||1===o&&r>i||-1===o&&r<n?null:r>=0?g.rowIndexMapper.getRenderableFromVisualIndex(r):r},findFirstNonHiddenRenderableColumn:(e,t)=>{let o=t>e?1:-1,n=Math.min(e,t),i=Math.max(e,t),r=g.columnIndexMapper.getNearestNotHiddenIndex(e,o);return null===r||1===o&&r>i||-1===o&&r<n?null:r>=0?g.columnIndexMapper.getRenderableFromVisualIndex(r):r},isDisabledCellSelection:(e,t)=>e<0||t<0?g.getSettings().disableVisualSelection:g.getCellMeta(e,t).disableVisualSelection});this.selection=E;let k=e=>{let{hiddenIndexesChanged:t}=e;this.forceFullRender=!0,t&&this.selection.commit()};function T(e,t){let o="className"===e?g.rootElement:g.table;if(m)void 0!==t&&od(o,t);else{let n=[],i=[];if(x[e]){let t=x[e];n=Array.isArray(t)?t:ed(String(t))}t&&(i=Array.isArray(t)?t:ed(t));let r=es(n,i),l=es(i,n);r.length&&oc(o,r),l.length&&od(o,l)}x[e]=t}function I(e){let t={};return tw(e,"colorScheme")&&(t.colorScheme=e.colorScheme),tw(e,"density")&&(t.density=e.density),t}function A(){return{colorScheme:R.colorScheme,density:R.density}}function _(e,t){let o;(g.themeManager?.destroy(),void 0===e)?(o=cZ("main")?c3("main"):c7(c8),o=c3("main")):o="function"!=typeof e.getThemeConfig?c7(e):e,g.themeManager=function(e){let{hot:t,themeObject:o,overrides:n}=e;return new cG({hot:t,themeObject:o,overrides:n})}({hot:g,themeObject:o,overrides:t})}function O(){let e=!1;return{validatorsInQueue:0,valid:!0,addValidatorToQueue(){this.validatorsInQueue+=1,e=!1},removeValidatorFormQueue(){this.validatorsInQueue=this.validatorsInQueue-1<0?0:this.validatorsInQueue-1,this.checkIfQueueIsEmpty()},onQueueEmpty(e){},checkIfQueueIsEmpty(){0===this.validatorsInQueue&&!1===e&&(e=!0,this.onQueueEmpty(this.valid))}}}function P(e,t){return!!t?.isOpened()&&su(e,t.row,t.prop)}function D(e,t,o){if(!e.length)return void o();let n=g.getActiveEditor(),i=O(),r=!0,s=t=>{let[o,n,,i]=t,r=e.findIndex(e=>{let[t,i]=e;return t===o&&i===n});-1!==r&&(e[r][3]=i)},a=(e,t)=>{"string"==typeof t&&t.endsWith("Validator")&&e?.forEach(s)};g.addHook("afterChange",a),i.onQueueEmpty=()=>{g.removeHook("afterChange",a),n&&r&&n._closeAfterDataChange&&P(e,n)&&n.cancelChanges(),o()};for(let o=e.length-1;o>=0;o--){let n,[s,a,,h]=e[o],d=l.propToCol(a);Number.isInteger(d)?(n=g.getCellMetaTransient(s,d),g.getCellValidator(n)&&(n=g.getCellMeta(s,d))):n={...Object.getPrototypeOf(R),...R},g.getCellValidator(n)&&(i.addValidatorToQueue(),g.validateCell(h,n,function(t,o){return function(n){"boolean"!=typeof n&&to("Validation error: result is not boolean"),!1===n&&!1===o.allowInvalid&&(r=!1,e.splice(t,1),o.valid=!0),i.removeValidatorFormQueue()}}(o,n),t))}i.checkIfQueueIsEmpty()}function N(e,t){for(let t=e.length-1;t>=0;t--){let o=!1;if(null===e[t]){e.splice(t,1);continue}if(null!==e[t][2]&&void 0!==e[t][2]||null!==e[t][3]&&void 0!==e[t][3]){if(R.allowInsertRow)for(;e[t][0]>g.countRows()-1;){let n=e[t][0]-(g.countRows()-1),{delta:i}=l.createRow(void 0,n,{source:"auto"});if(0===i){o=!0;break}}if("array"===g.dataType&&(!R.columns||0===R.columns.length)&&R.allowInsertColumn)for(;Number(l.propToCol(e[t][1]))>g.countCols()-1;){let n=Number(l.propToCol(e[t][1]))-(g.countCols()-1),{delta:i}=l.createCol(void 0,n,{source:"auto"});if(0===i){o=!0;break}}o||l.set(e[t][0],e[t][1],e[t][3])}}let o=e.length>0,n=h.getActiveEditor(),i=n?._closeAfterDataChange,r=P(e,n);o?(a.adjustRowsAndCols(),g.runHooks("beforeChangeRender",e,t),n?.isOpened()&&i&&r&&h.closeEditor(),g.view.adjustElementsSize(),g.render(),(n?.isOpened()&&i&&r||!n?.isOpened())&&h.prepareEditor(),g.runHooks("afterChange",e,t||"edit"),n&&void 0!==n.refreshValue&&(!n.isOpened()||r)&&n.refreshValue()):g.render()}function B(e,t,o){return Array.isArray(e)?e:[[e,t,o]]}function L(e,t){let o=g.runHooks("beforeChange",e,t||"edit"),n=e.filter(e=>null!==e);if(!1===o||0===n.length)return g.getActiveEditor()?.cancelChanges(),[];for(let e=n.length-1;e>=0;e--){let t,[o,i,,r]=n[e],s=l.propToCol(i);t=Number.isInteger(s)?g.getCellMetaTransient(o,s):{...Object.getPrototypeOf(R),...R},n[e][3]=n0(r,t)}return n}this.columnIndexMapper.addLocalHook("cacheUpdated",e=>{k(e),this.runHooks("afterColumnSequenceCacheUpdate",e)}),this.rowIndexMapper.addLocalHook("cacheUpdated",e=>{k(e),this.runHooks("afterRowSequenceCacheUpdate",e)}),this.selection.addLocalHook("afterSetRangeEnd",(e,t)=>{let o=tC(!1),n=this.selection.getSelectedRange(),{from:i,to:r}=n.current(),l=n.size()-1;this.runHooks("afterSelection",i.row,i.col,r.row,r.col,o,l),this.runHooks("afterSelectionByProp",i.row,g.colToProp(i.col),r.row,g.colToProp(r.col),o,l);let s=E.getSelectionSource();t&&!["loadData","updateData","deselect","shift"].includes(s)&&(!o.isTouched()||o.isTouched()&&!o.value)&&c.scrollTo(e);let a=E.isSelectedByRowHeader(),d=E.isSelectedByColumnHeader();a&&d?od(this.rootElement,["ht__selection--rows","ht__selection--columns"]):a?(oc(this.rootElement,"ht__selection--columns"),od(this.rootElement,"ht__selection--rows")):d?(oc(this.rootElement,"ht__selection--rows"),od(this.rootElement,"ht__selection--columns")):oc(this.rootElement,["ht__selection--rows","ht__selection--columns"]),["shift","refresh","loadData","updateData","deselect"].includes(s)||h.closeEditor(),["refresh","loadData","updateData","deselect"].includes(s)||(g.view.render(),h.prepareEditor())}),this.selection.addLocalHook("beforeSetFocus",e=>{this.runHooks("beforeSelectionFocusSet",e.row,e.col)}),this.selection.addLocalHook("afterSetFocus",e=>{let t=tC(!1);this.runHooks("afterSelectionFocusSet",e.row,e.col,t),(!t.isTouched()||t.isTouched()&&!t.value)&&c.scrollTo(e),h.closeEditor(),g.view.render(),h.prepareEditor()}),this.selection.addLocalHook("afterSelectionFinished",e=>{let t=e.length-1,{from:o,to:n}=e[t];this.runHooks("afterSelectionEnd",o.row,o.col,n.row,n.col,t),this.runHooks("afterSelectionEndByProp",o.row,g.colToProp(o.col),n.row,g.colToProp(n.col),t),["refresh","deselect"].includes(E.getSelectionSource())&&(g.view.render(),h.prepareEditor())}),this.selection.addLocalHook("afterIsMultipleSelection",e=>{let t=this.runHooks("afterIsMultipleSelection",e.value);e.value&&(e.value=t)}),this.selection.addLocalHook("afterDeselect",()=>{h.closeEditor(),g.view.render(),oc(this.rootElement,["ht__selection--rows","ht__selection--columns"]),this.runHooks("afterDeselect")}),this.selection.addLocalHook("beforeHighlightSet",()=>g.runHooks("beforeSelectionHighlightSet")).addLocalHook("beforeSetRangeStart",function(){for(var e=arguments.length,t=Array(e),o=0;o<e;o++)t[o]=arguments[o];return g.runHooks("beforeSetRangeStart",...t)}).addLocalHook("beforeSetRangeStartOnly",function(){for(var e=arguments.length,t=Array(e),o=0;o<e;o++)t[o]=arguments[o];return g.runHooks("beforeSetRangeStartOnly",...t)}).addLocalHook("beforeSetRangeEnd",function(){for(var e=arguments.length,t=Array(e),o=0;o<e;o++)t[o]=arguments[o];return g.runHooks("beforeSetRangeEnd",...t)}).addLocalHook("beforeSelectColumns",function(){for(var e=arguments.length,t=Array(e),o=0;o<e;o++)t[o]=arguments[o];return g.runHooks("beforeSelectColumns",...t)}).addLocalHook("afterSelectColumns",function(){for(var e=arguments.length,t=Array(e),o=0;o<e;o++)t[o]=arguments[o];return g.runHooks("afterSelectColumns",...t)}).addLocalHook("beforeSelectRows",function(){for(var e=arguments.length,t=Array(e),o=0;o<e;o++)t[o]=arguments[o];return g.runHooks("beforeSelectRows",...t)}).addLocalHook("afterSelectRows",function(){for(var e=arguments.length,t=Array(e),o=0;o<e;o++)t[o]=arguments[o];return g.runHooks("afterSelectRows",...t)}).addLocalHook("beforeSelectAll",function(){for(var e=arguments.length,t=Array(e),o=0;o<e;o++)t[o]=arguments[o];return g.runHooks("beforeSelectAll",...t)}).addLocalHook("afterSelectAll",function(){for(var e=arguments.length,t=Array(e),o=0;o<e;o++)t[o]=arguments[o];return g.runHooks("afterSelectAll",...t)}).addLocalHook("beforeModifyTransformStart",function(){for(var e=arguments.length,t=Array(e),o=0;o<e;o++)t[o]=arguments[o];return g.runHooks("modifyTransformStart",...t)}).addLocalHook("afterModifyTransformStart",function(){for(var e=arguments.length,t=Array(e),o=0;o<e;o++)t[o]=arguments[o];return g.runHooks("afterModifyTransformStart",...t)}).addLocalHook("beforeModifyTransformFocus",function(){for(var e=arguments.length,t=Array(e),o=0;o<e;o++)t[o]=arguments[o];return g.runHooks("modifyTransformFocus",...t)}).addLocalHook("afterModifyTransformFocus",function(){for(var e=arguments.length,t=Array(e),o=0;o<e;o++)t[o]=arguments[o];return g.runHooks("afterModifyTransformFocus",...t)}).addLocalHook("beforeModifyTransformEnd",function(){for(var e=arguments.length,t=Array(e),o=0;o<e;o++)t[o]=arguments[o];return g.runHooks("modifyTransformEnd",...t)}).addLocalHook("afterModifyTransformEnd",function(){for(var e=arguments.length,t=Array(e),o=0;o<e;o++)t[o]=arguments[o];return g.runHooks("afterModifyTransformEnd",...t)}).addLocalHook("beforeRowWrap",function(){for(var e=arguments.length,t=Array(e),o=0;o<e;o++)t[o]=arguments[o];return g.runHooks("beforeRowWrap",...t)}).addLocalHook("beforeColumnWrap",function(){for(var e=arguments.length,t=Array(e),o=0;o<e;o++)t[o]=arguments[o];return g.runHooks("beforeColumnWrap",...t)}).addLocalHook("insertRowRequire",e=>g.alter("insert_row_above",e,1,"auto")).addLocalHook("insertColRequire",e=>g.alter("insert_col_start",e,1,"auto")),a={alter(e,t){let o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:1,n=arguments.length>3?arguments[3]:void 0,i=arguments.length>4?arguments[4]:void 0;if(!1!==g.runHooks("beforeAlter",e,t,o,n,i)){var r,s;switch(e){case"insert_row_below":case"insert_row_above":let d=g.countSourceRows();if(R.maxRows===d)return;let c="insert_row_below"===e?"below":"above",u="number"==typeof t?t:"below"===c?d:0,{delta:p,startPhysicalIndex:m}=l.createRow(u,o,{source:n,mode:c});E.shiftRows(g.toVisualRow(m),p);break;case"insert_col_start":case"insert_col_end":let f="insert_col_end"===e?"end":"start",b="end"===f?g.countSourceCols():0,C="number"==typeof t?t:b,{delta:w,startPhysicalIndex:y}=l.createCol(C,o,{source:n,mode:f});if(w){if(Array.isArray(R.colHeaders)){let e=[g.toVisualColumn(y),0];e.length+=w,Array.prototype.splice.apply(R.colHeaders,e)}E.shiftColumns(g.toVisualColumn(y),w)}break;case"remove_row":let v;r=Array.isArray(t)?ut(t):[[t,o]],v=0,J(r,e=>{let[t,o]=e,i=eN(t)?g.countRows()-1:Math.max(t-v,0);Number.isInteger(t)&&(t=Math.max(t-v,0));let r=g.countRows();if(!l.removeRow(t,o,n))return;if(E.isSelected()){let{row:e}=g.getSelectedRangeActive().highlight;e>=t&&e<=t+o-1&&h.closeEditor(!0)}let s=g.countRows(),a=R.fixedRowsTop;a>=i+1&&(R.fixedRowsTop-=Math.min(o,a-i));let d=R.fixedRowsBottom;if(d){let e=r-s,o=Number.isInteger(t)?i:Math.max(r-e,0),n=Math.min(o+e-1,r-1)-Math.max(o,r-d)+1;n>0&&(R.fixedRowsBottom-=Math.min(n,d))}if(0===s)E.deselect();else if("ContextMenu.removeRow"===n){let e=E.getSelectedRange(),t=e.pop();e.clear().set(t.from).current().setTo(t.to),E.refresh()}else E.shiftRows(t,-o);v+=o});break;case"remove_col":let S;s=Array.isArray(t)?ut(t):[[t,o]],S=0,J(s,e=>{let[t,o]=e,i=eN(t)?g.countCols()-1:Math.max(t-S,0),r=g.toPhysicalColumn(i);if(Number.isInteger(t)&&(t=Math.max(t-S,0)),!l.removeCol(t,o,n))return;if(E.isSelected()){let{col:e}=g.getSelectedRangeActive().highlight;e>=t&&e<=t+o-1&&h.closeEditor(!0)}if(0===g.countCols())E.deselect();else if("ContextMenu.removeColumn"===n){let e=E.getSelectedRange(),t=e.pop();e.clear().set(t.from).current().setTo(t.to),E.refresh()}else E.shiftColumns(t,-o);let s=R.fixedColumnsStart;s>=i+1&&(R._fixedColumnsStart-=Math.min(o,s-i)),Array.isArray(R.colHeaders)&&(void 0===r&&(r=-1),R.colHeaders.splice(r,o)),S+=o});break;default:to(`There is no such action "${e}"`)}i||a.adjustRowsAndCols(),g.view.adjustElementsSize(),g.view.render()}},adjustRowsAndCols(){let e=R.minRows,t=R.minSpareRows,o=R.minCols,n=R.minSpareCols;if(e){let t=g.countRows();t<e&&l.createRow(t,e-t,{source:"auto"})}if(t){let e=g.countEmptyRows(!0);if(e<t){let o=Math.min(t-e,R.maxRows-g.countSourceRows());l.createRow(g.countRows(),o,{source:"auto"})}}{let e=0,t=n>0&&!R.columns&&"array"===g.dataType;if(t)for(let t=g.countCols()-1;t>=0&&g.isEmptyCol(t)&&!((e+=1)>=n);t--);let i=g.countCols();if(o&&!R.columns&&i<o){let t=o-i;e+=t,l.createCol(i,t,{source:"auto"})}if(t&&e<n){i=g.countCols();let t=Math.min(n-e,R.maxCols-i);l.createCol(i,t,{source:"auto"})}}},populateFromArray(e,t,o,n,i){let r,l,s,a,h,d=[],c={},u=[],p=e.row,m=e.col;if(0===(l=t.length))return!1;let f=0,b=0;switch(tu(o)&&(f=o.col-m+1,b=o.row-p+1),i){case"shift_down":let C=K(t),w=C.length,y=Math.max(w,f),v=g.getData().slice(p),S=K(v).slice(m,m+y);for(s=0;s<y;s+=1)if(s<w){for(r=0,l=C[s].length;r<b-l;r+=1)C[s].push(C[s][r%l]);s<S.length?u.push(C[s].concat(S[s])):u.push(C[s].concat(Array(v.length).fill(null)))}else u.push(C[s%w].concat(S[s]));g.populateFromArray(p,m,K(u));break;case"shift_right":let x=t.length,M=Math.max(x,b),H=g.getData().slice(p).map(e=>e.slice(m));for(r=0;r<M;r+=1)if(r<x){for(s=0,a=t[r].length;s<f-a;s+=1)t[r].push(t[r][s%a]);if(r<H.length)for(let e=0;e<H[r].length;e+=1)t[r].push(H[r][e]);else t[r].push(...Array(H[0].length).fill(null))}else t.push(t[r%l].slice(0,M).concat(H[r]));g.populateFromArray(p,m,t);break;default:c.row=e.row,c.col=e.col;let E=0,k=0,T=!0,I="Autofill.fill"===n||"autofill.fill"===n,A=function(e){let o=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,n=t[e%t.length];return null!==o?n[o%n.length]:n},_=t.length,O=o?o.row-e.row+1:0;for(r=0,l=o?O:Math.max(_,O);r<l&&!(o&&c.row>o.row&&O>_||!R.allowInsertRow&&c.row>g.countRows()-1)&&!(c.row>=R.maxRows);r++){let t=r-E,i=I?r:t,u=A(i).length,p=o?o.col-e.col+1:0;if(a=o?p:Math.max(u,p),c.col=e.col,h=g.getCellMetaTransient(c.row,c.col),("CopyPaste.paste"===n||"Autofill.fill"===n||"autofill.fill"===n)&&h.skipRowOnPaste){E+=1,c.row+=1,"CopyPaste.paste"===n&&(l+=1);continue}for(s=0,k=0;s<a&&!(o&&c.col>o.col&&p>u||!R.allowInsertColumn&&c.col>g.countCols()-1)&&!(c.col>=R.maxCols);s++){if(h=g.getCellMetaTransient(c.row,c.col),("CopyPaste.paste"===n||"Autofill.fill"===n||"autofill.fill"===n)&&h.skipColumnOnPaste){k+=1,c.col+=1,"CopyPaste.paste"===n&&(a+=1);continue}if(h.readOnly&&"UndoRedo.undo"!==n){c.col+=1;continue}let e=s-k,t=I?s:e,o=!!h.valueSetter,r=A(i,t),l=g.getSourceDataAtCell(c.row,c.col)??null;if(null!==r&&"object"==typeof r)if(Array.isArray(r)&&null===l&&(l=[]),o||"object"==typeof l&&null!==l){if(null!==l){let e=tn(Array.isArray(l)?l:l[0]||l),t=tn(Array.isArray(r)?r:r[0]||r);o||"edit"===n||td(e,t)||Array.isArray(e)&&Array.isArray(t)?r=ts(r):T=!1}}else T=!1,h.parsePastedValue&&"CopyPaste.paste"===n&&(T=!0),"edit"===n&&(T=!0,r=ts(r));else o||null===l||"object"!=typeof l||(T=!1);T&&d.push([c.row,c.col,r]),T=!0,c.col+=1}c.row+=1}g.setDataAtCell(d,null,null,n||"populateFromArray")}}},this.init=function(){let e=R.theme,t=R.themeName,o=ct(g.rootContainer);if(l8(g)&&!o&&(tu(e)||!e&&!t)&&_(e,A()),s.setData(R.data),g.runHooks("beforeInit"),(t$()||tG())&&od(g.rootElement,"mobile"),this.updateSettings(C,!0),this.view=new sn(this),h=n5.getInstance(g,R,E),c=function(e){let{selection:t}=e,o=!1,n=!1;return{resume(){n=!1},suspend(){n=!0},skipNextScrollCycle(){o=!0},scrollTo(i){let r;if(o||n){o=!1;return}t.isFocusSelectionChanged()?r=t=>{e.scrollViewportTo(t.toObject(),()=>{let t=e.getSelectedRangeActive();if(!t)return;let{row:o,col:n}=t.highlight;null!==o&&null!==n&&dD(e.getCell(o,n,!0))})}:t.isSelectedByCorner()?r=()=>{}:t.isSelectedByRowHeader()?r=t=>{let o=dN(e).getComputedRowTarget(t);e.scrollViewportTo({row:o},()=>{let t=!!e.getSettings().rowHeaders;dD(e.getCell(o,t?-1:0,!0))})}:t.isSelectedByColumnHeader()?r=t=>{let o=dN(e).getComputedColumnTarget(t);e.scrollViewportTo({col:o},()=>{let t=!!e.getSettings().colHeaders;dD(e.getCell(t?-1:0,o,!0))})}:1===t.getSelectedRange().size()&&t.isMultiple()?r=t=>{let o=dN(e),n={row:o.getComputedRowTarget(t),col:o.getComputedColumnTarget(t)};e.scrollViewportTo(n,()=>{let{row:t,col:o}=n;dD(e.getCell(t,o,!0))})}:1!==t.getSelectedRange().size()||t.isMultiple()?t.getSelectedRange().size()>1&&(r=t=>{let o=dN(e),n={row:o.getComputedRowTarget(t),col:o.getComputedColumnTarget(t)};e.scrollViewportTo(n,()=>{let{row:t,col:o}=n;dD(e.getCell(t,o,!0))})}):r=t=>{let o=e.selection.getSelectionSource(),{row:n,col:i}=t,r=()=>{dD(e.getCell(n,i,!0))};if(n<0&&i>=0)e.scrollViewportTo({col:i},r);else if(i<0&&n>=0)e.scrollViewportTo({row:n},r);else{if("mouse"===o&&(i===e.view.getLastPartiallyVisibleColumn()||n===e.view.getLastPartiallyVisibleRow()))return;e.scrollViewportTo({row:n,col:i},r)}},r?.(i)}}}(g),d.init(),l8(this)){var n,i=g.rootPortalElement;let e=i.ownerDocument;if(!ci){(ci=e.createElement("div")).setAttribute("role","status"),ci.setAttribute("aria-live","assertive"),ci.setAttribute("aria-atomic","true");let t=ci.style;t.position="absolute",t.width="1px",t.height="1px",t.margin="-1px",t.overflow="hidden",t.clipPath="rect(0 0 0 0)",t.whiteSpace="nowrap",i.appendChild(ci)}cr+=1,function(e){let t=e.rootSlotBottomElement;if(!t)return;let o=e5({className:cg,key:e.getSettings().licenseKey,element:t,releaseDate:"15/09/2026"});if(o){let t;(t=e.rootSlotBottomElement)&&(o.classList.add(cs),t.appendChild(o),ch(cl.BOTTOM,t),e.getFocusScopeManager().registerScope(cc,o,{shortcutsContextName:cu,runOnlyIf:()=>null!==cp(e),onActivate:t=>{let o,n=(o=cp(e))?Array.from(o.querySelectorAll("a[href]")):[];n.length>0&&("tab_from_above"===t?n[0]?.focus():"tab_from_below"===t&&n[n.length-1]?.focus())}}))}}(g),function(e,t){let{lifecycle:o,channels:n}=t,i=cw[o.state];i?function(e,t){let o=e.rootOverlaysElement;if(!o)return;let n=e.getFocusScopeManager(),i=e.getShortcutManager(),r=e.isRtl(),l=`${e.guid}-license-lock-title`,s=`${e.guid}-license-lock-description`,a=`${cH} ${cH}--confirm handsontable ht-license-lock ${cH}--background-solid ${cH}--show`,{refs:h}=eg`
|
|
220
220
|
<div data-ref="lock" class="${a}"
|
|
221
221
|
role="alertdialog" aria-modal="true"
|
|
222
222
|
aria-labelledby="${l}" aria-describedby="${s}"
|
|
@@ -247,8 +247,8 @@ color-scheme: ${n};
|
|
|
247
247
|
${i.dismissible?`<button data-ref="closeButton" type="button" class="${cy}__close" aria-label="Close"></button>`:""}
|
|
248
248
|
</div>
|
|
249
249
|
</div>
|
|
250
|
-
`,a=s.wrapper,h=s.badge,d=()=>e.hasRowHeaders()&&e.hasColHeaders(),c=()=>{let t=d();a.classList.toggle(cx,!t),e.rootElement?.classList.toggle("ht-license-badge-on",t),cM(e)?.table.classList.toggle("ht-license-badge-corner",t)};c(),e.addHook("afterRender",()=>c());let u=0,g=()=>{let t=cM(e);if(!t||!d())return;let o=t.table.offsetWidth;o>0&&Math.abs(o-u)>1&&(u=o,a.style.setProperty("--ht-license-badge-area-width",`${o}px`))},p=e.rootWindow;if("function"==typeof p.ResizeObserver){let t=new p.ResizeObserver(()=>g()),o=null,n=()=>{let n=cM(e)?.table??null;n!==o&&(t.disconnect(),o=n,n&&t.observe(n))};n(),e.addHook("afterRender",()=>n()),e.addHook("afterDestroy",()=>t.disconnect())}else g(),e.addHook("afterRender",()=>g());h.tabIndex=-1;let m=s.popover;s.popoverTitle.textContent=i.title,s.popoverBody.textContent=i.body(t),s.popoverLink.href=i.linkHref,s.popoverLink.textContent=i.linkText,s.popoverLink.tabIndex=-1;let f=!1;m.addEventListener("mouseenter",()=>{f=!0}),m.addEventListener("mouseleave",()=>{f=!1}),o=()=>{f||a.classList.contains(cR)||a.classList.remove(cS)},(n=e.rootElement)&&(n.addEventListener("mouseover",t=>{let n=t.target instanceof e.rootWindow.Element?t.target:null,i=cM(e)?.thead??null,r=!a.classList.contains(cx)&&null!==n&&null!==i&&i.contains(n);a.classList.toggle(cR,r),o()}),n.addEventListener("mouseleave",()=>{a.classList.remove(cR),o()})),i.dismissible&&(m.classList.add(cv),s.closeButton.tabIndex=-1,s.closeButton.addEventListener("click",()=>{m.classList.remove(cv),a.classList.add(cS)})),r.appendChild(a)}(e,o)}(n=g,te(n.getSettings().licenseKey,"01/09/2026"));let t={top:-1,bottom:-1};this.addHook("afterRender",()=>{if(g.isDestroyed)return;let{view:e}=g;if(!e)return;let o=e.isHorizontallyScrollableByWindow()?e.getTotalTableWidth():e.getWorkspaceWidth();0===o&&g.rootWrapperElement&&(o=g.rootWrapperElement.offsetWidth),g.rootSlotBottomElement&&o!==t.bottom&&(t.bottom=o,g.rootSlotBottomElement.style.width=`${o}px`),g.rootSlotTopElement&&o!==t.top&&(t.top=o,g.rootSlotTopElement.style.width=`${o}px`)})}g.runHooks("init"),this.render(),m&&null===g.rootElement.offsetParent&&(b=o5(g.rootElement,()=>{g&&!g.isDestroyed&&g.view&&(g.view._wt.wtOverlays.updateLastSpreaderSize(),g.view.adjustElementsSize(),g.render())})),"object"==typeof m&&(g.runHooks("afterChange",m[0],m[1]),m=!1),g.runHooks("afterInit")},this._createCellCoords=function(e,t){return g.view._wt.createCellCoords(e,t)},this._createCellRange=function(e,t,o){return g.view._wt.createCellRange(e,t,o)},this.validateCell=function(e,t,o,n){var i;let r=g.getCellValidator(t);function l(e){let n=!(arguments.length>1)||void 0===arguments[1]||arguments[1];if(!n||!0===t.hidden)return void o(e);let i=t.visualCol,r=t.visualRow,l=g.getCell(r,i,!0);if(l&&"TH"!==l.nodeName){let e=g.rowIndexMapper.getRenderableFromVisualIndex(r),t=g.columnIndexMapper.getRenderableFromVisualIndex(i);g.view._wt.getSetting("cellRenderer",e,t,l)}o(e)}if(eB(r)&&(i=r,r=function(e,t){t(i.test(e))}),ns(r)){let o=ns(t.prop)?t.visualCol:t.prop;e=g.runHooks("beforeValidate",e,t.visualRow,o,n),g._registerMicrotask(()=>{r.call(t,e,i=>{g&&(i=g.runHooks("afterValidate",i,e,t.visualRow,o,n),t.valid=i,l(i),g.runHooks("postAfterValidate",i,e,t.visualRow,o,n))})})}else g._registerMicrotask(()=>{t.valid=!0,l(t.valid,!1)})},this.setDataAtCell=function(e,t,o,n){let i,r,a,h=B(e,t,o),d=[],c=n;for(i=0,r=h.length;i<r;i++){let[e,t,o]=h[i];"object"!=typeof h[i]&&to("Method `setDataAtCell` accepts row number or changes array of arrays as its first parameter"),"number"!=typeof h[i][1]&&to("Method `setDataAtCell` accepts row and column number as its parameters. If you want to use object property name, use method `setDataAtRowProp`");let n="number"==typeof t?t:0;a=n>=this.countCols()?n:l.colToProp(n),d.push([e,a,s.getAtCell(this.toPhysicalRow(e),t),o])}c||"object"!=typeof e||(c=t);let u=L(d,c);g.runHooks("afterSetDataAtCell",u,c),D(u,c,()=>{N(u,c)})},this.setDataAtRowProp=function(e,t,o,n){let i,r,l=B(e,t,o),a=[],h=n;for(i=0,r=l.length;i<r;i++){let[e,t,o]=l[i];a.push([e,t,s.getAtCell(this.toPhysicalRow(e),t),o])}h||"object"!=typeof e||(h=t);let d=L(a,h);g.runHooks("afterSetDataAtRowProp",d,h),D(d,h,()=>{N(d,h)})},this.listen=function(){g&&!g.isListening()&&(uo.forEach(e=>{g!==e&&e.unlisten()}),ue=g.guid,g.runHooks("afterListen"))},this.unlisten=function(){this.isListening()&&(ue=null,g.runHooks("afterUnlisten"))},this.isListening=function(){return ue===g.guid},this.destroyEditor=function(){let e=arguments.length>0&&void 0!==arguments[0]&&arguments[0],t=!(arguments.length>1)||void 0===arguments[1]||arguments[1];h.closeEditor(e),g.view.render(),t&&E.isSelected()&&h.prepareEditor()},this.populateFromArray=function(e,t,o,n,i,r,l){("object"!=typeof o||"object"!=typeof o[0])&&to("populateFromArray parameter `input` must be an array of arrays");let s="number"==typeof n?g._createCellCoords(n,i):void 0;return a.populateFromArray(g._createCellCoords(e,t),o,s,r,l)},this.spliceCol=function(e,t,o){for(var n=arguments.length,i=Array(n>3?n-3:0),r=3;r<n;r++)i[r-3]=arguments[r];return l.spliceCol(e,t,o,...i)},this.spliceRow=function(e,t,o){for(var n=arguments.length,i=Array(n>3?n-3:0),r=3;r<n;r++)i[r-3]=arguments[r];return l.spliceRow(e,t,o,...i)},this.getSelected=function(){if(E.isSelected())return Q(E.getSelectedRange().ranges,e=>{let{from:t,to:o}=e;return[t.row,t.col,o.row,o.col]})},this.getSelectedLast=function(){let e,t=g.getSelected();return t&&t.length>0&&(e=t[t.length-1]),e},this.getSelectedActive=function(){let e=g.getSelectedRangeActive();if(!e)return;let{from:t,to:o}=e;return[t.row,t.col,o.row,o.col]},this.getSelectedRange=function(){if(E.isSelected())return Array.from(E.getSelectedRange())},this.getSelectedRangeLast=function(){let e,t=g.getSelectedRange();return t&&t.length>0&&(e=t[t.length-1]),e},this.getSelectedRangeActive=function(){return E.getActiveSelectedRange()},this.getActiveSelectionLayerIndex=function(){return E.getActiveSelectionLayerIndex()},this.emptySelectedCells=function(e){if(!E.isSelected()||0===this.countRows()||0===this.countCols())return;let t=[];J(E.getSelectedRange(),e=>{if(e.isSingleHeader())return;let o=e.getTopStartCorner(),n=e.getBottomEndCorner(),i=Math.max(o.row,0),r=Math.min(n.row,this.countRows()-1),l=Math.max(o.col,0),s=Math.min(n.col,this.countCols()-1);if(i>r||l>s)return;let a=e=>{ik(l,s,o=>{this.getCellMetaTransient(e,o).readOnly||t.push([e,o,null])})};ik(i,r,a)}),t.length>0&&this.setDataAtCell(t,e)},this.isRenderSuspended=function(){return this.renderSuspendedCounter>0},this.suspendRender=function(){this.renderSuspendedCounter+=1},this.resumeRender=function(){let e=this.renderSuspendedCounter-1;this.renderSuspendedCounter=Math.max(e,0),this.isRenderSuspended()||e!==this.renderSuspendedCounter||g.view.render()},this.render=function(){this.view&&(this.forceFullRender=!0,this.isRenderSuspended()||g.view.render())},this.batchRender=function(e){g.suspendRender();let t=e();return g.resumeRender(),t},this.isExecutionSuspended=function(){return this.executionSuspendedCounter>0},this.suspendExecution=function(){this.executionSuspendedCounter+=1,this.columnIndexMapper.suspendOperations(),this.rowIndexMapper.suspendOperations()},this.resumeExecution=function(){let e=arguments.length>0&&void 0!==arguments[0]&&arguments[0],t=this.executionSuspendedCounter-1;this.executionSuspendedCounter=Math.max(t,0),(!this.isExecutionSuspended()&&t===this.executionSuspendedCounter||e)&&(this.columnIndexMapper.resumeOperations(),this.rowIndexMapper.resumeOperations())},this.batchExecution=function(e){let t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];g.suspendExecution();let o=e();return g.resumeExecution(t),o},this.batch=function(e){g.suspendRender(),g.suspendExecution();let t=e();return g.resumeExecution(),g.resumeRender(),t},this.refreshDimensions=function(){if(!g.view)return;let e=g.view,{width:t,height:o}=e.getLastSize(),{width:n,height:i}=g.rootElement.getBoundingClientRect(),r=n!==t||i!==o;!1!==g.runHooks("beforeRefreshDimensions",{width:t,height:o},{width:n,height:i},r)&&((r||e._wt.wtOverlays.scrollableElement===g.rootWindow)&&(e.setLastSize(n,i),e.adjustElementsSize(),g.render()),g.runHooks("afterRefreshDimensions",{width:t,height:o},{width:n,height:i},r))},this.updateData=function(e,t){dO(e,e=>{l=e},e=>{l=e,g.columnIndexMapper.fitToLength(this.getInitialColumnCount()),g.rowIndexMapper.fitToLength(this.countSourceRows()),a.adjustRowsAndCols(),E.markSource("updateData"),E.refresh(),E.markEndSource()},{hotInstance:g,dataMap:l,dataSource:s,internalSource:"updateData",source:t,metaManager:S,firstRun:m})},this.loadData=function(e,t){dO(e,e=>{l=e},()=>{S.clearCellsCache(),g.initIndexMappers(),a.adjustRowsAndCols(),E.markSource("loadData"),E.refresh(),E.markEndSource(),m&&(m=[null,"loadData"])},{hotInstance:g,dataMap:l,dataSource:s,internalSource:"loadData",source:t,metaManager:S,firstRun:m})},this.getInitialColumnCount=function(){let e=R.columns,t=0;if(Array.isArray(e))t=e.length;else if(ns(e))if("array"===g.dataType){let o=g.countSourceCols();for(let n=0;n<o;n+=1)e(n)&&(t+=1)}else("object"===g.dataType||"function"===g.dataType)&&(t=l.colToPropCache.length);else if(eP(R.dataSchema)){let e=l.getSchema();t=Array.isArray(e)?e.length:tb(e)}else t=g.countSourceCols();return t},this.initIndexMappers=function(){this.columnIndexMapper.initToLength(this.getInitialColumnCount()),this.rowIndexMapper.initToLength(this.countSourceRows())},this.getData=function(e,t,o,n){return eD(e)?l.getAll():l.getRange(g._createCellCoords(e,t),g._createCellCoords(o,n),dT.DESTINATION_RENDERER)},this.getCopyableText=function(e,t,o,n){return l.getCopyableText(g._createCellCoords(e,t),g._createCellCoords(o,n))},this.getCopyableData=function(e,t){return l.getCopyable(e,l.colToProp(t))},this.getCopyableSourceData=function(e,t){return s.getCopyable(e,l.colToProp(t))},this.getSchema=function(){return l.getSchema()},this.updateSettings=function(e){var t,o;let n,i,r,s,h,d,c,u=arguments.length>1&&void 0!==arguments[1]&&arguments[1],p=(m?g.loadData:g.updateData).bind(this);for(d in eP(e.rows)&&to('The "rows" setting is no longer supported. Do you mean startRows, minRows or maxRows?'),eP(e.cols)&&to('The "cols" setting is no longer supported. Do you mean startCols, minCols or maxCols?'),eP(e.ganttChart)&&to('Since 8.0.0 the "ganttChart" setting is no longer supported.'),i=Array.isArray((t=e).columns)?t.columns:[],r=Array.isArray(t.cell)?t.cell:[],s=[t,...i,...r],un.forEach(e=>{let{name:t,version:o,migrationUrl:n}=e;s.some(e=>tu(e)&&eP(e[t]))&&t1(`Core.removedOption.${t}`,`The "${t}" setting was removed in Handsontable ${o} and is ignored. See ${n} for the migration path.`)}),V=null,eP(e.rowHeights)&&eP(e.minRowHeights)&&tZ("Both `rowHeights` and `minRowHeights` are defined in your configuration. As one is the alias of the other, only one of them can be used at a time. `rowHeights` will be used as the row height configuration."),e)if("data"===d||"language"===d);else if("className"===d)T("className",e.className);else if("tableClassName"===d&&g.table)T("tableClassName",e.tableClassName),g.view._wt.wtOverlays.syncOverlayTableClassNames();else if(nL.getSingleton().isRegistered(d)||nL.getSingleton().isDeprecated(d)){let t=e[d];ns(t)?(nL.getSingleton().addAsFixed(d,t,g),R[d]=t):Array.isArray(t)&&(nL.getSingleton().add(d,t,g),R[d]=t)}else!u&&tw(e,d)&&(x[d]=e[d]);let b=ct(g.rootContainer),C=tw(e,"themeName"),w=tw(e,"theme");if(C&&w&&tZ("Both `theme` and `themeName` are defined in your configuration. These options are aliases and cannot be used together. The `themeName` option will be ignored."),u){let t;w&&"string"==typeof e.theme?t=e.theme:C&&"string"==typeof e.themeName&&e.themeName&&!w?(t=e.themeName,R.theme=e.themeName,R.themeName=void 0):b?t=b:g.themeManager&&(t=g.themeManager.getClassName()),g.useTheme(t??null)}else{let t=g.getCurrentThemeName();if(w&&"string"==typeof e.theme&&t!==e.theme)g.themeManager?.destroy(),g.useTheme(e.theme);else if(C&&!w&&t!==e.themeName)g.themeManager?.destroy(),R.theme=e.themeName,R.themeName=void 0,g.useTheme(e.themeName);else if(l8(g)&&!b&&tu(e.theme))if(null===g.themeManager)_(e.theme,A()),g.useTheme(g.themeManager.getClassName());else{let t;t="function"!=typeof e.theme.getThemeConfig?c7(e.theme):e.theme,g.themeManager.update(t),g.useTheme(g.themeManager.getClassName())}}let y=(!!tw(h=I(e),"colorScheme")||!!tw(h,"density"))&&(g.themeManager?!!g.themeManager.setOverrides(h)&&!u&&(g.stylesHandler.clearCache(),!0):(c$(h.colorScheme)&&c$(h.density)||f||(f=!0,tZ("The `colorScheme` and `density` options require the theme engine, so they have no effect when the theme is enabled by a CSS class name. Pass a theme config object or a `ThemeBuilder` instance to the `theme` option, or remove the `ht-theme-*` class from the container element to use the default theme.")),!1));!0===g.runHooks("hasExternalDataSource")?(e.data&&tZ('The "data" setting is ignored when "hasExternalDataSource" returns `true`.'),u||tw(e,"data")||tw(e,"dataProvider")?p([],"updateSettings"):void 0!==e.columns&&(l.createMap(),g.initIndexMappers())):void 0===e.data&&void 0===R.data?p(null,"updateSettings"):void 0!==e.data?p(e.data,"updateSettings"):void 0!==e.columns&&(l.createMap(),g.initIndexMappers()),!m&&e.language&&(hF(n=sL(o=e.language))?(g.runHooks("beforeLanguageChange",n),x.language=n,g.runHooks("afterLanguageChange",n)):sV(o));let v=g.countCols(),M=R.columns;if(void 0!==e.cell||void 0!==e.cells||void 0!==e.columns){let e=S.getUserDefinedCellMetas();S.clearCache(),e.forEach(e=>{let{physicalRow:t,physicalColumn:o,key:n,value:i}=e;S.setCellMeta(t,o,n,i)})}if(v>0)for(d=0,c=0;d<v;d++){if(M){let e=ns(M)?M(d):M[c];e&&S.updateColumnMeta(c,e)}c+=1}if(eP(e.cell)){S.disableUserDefinedMetaRecording();try{e.cell.forEach(e=>{g.setCellMetaObject(e.row,e.col,e)})}finally{S.enableUserDefinedMetaRecording()}}g.runHooks("afterCellMetaReset"),m&&dA(g,"init");let H=g.rootElement.style.height;""!==H&&(H=parseInt(g.rootElement.style.height,10)),u&&g.rootElement.getAttribute("style")&&(g.rootElement.dataset.initialstyle=g.rootElement.getAttribute("style")??"");let k=e.height;if(void 0!==e.height)if(ns(k)&&(k=k()),null===(k=g.runHooks("beforeHeightChange",k))){let e=g.rootElement.dataset.initialstyle;e&&(e.indexOf("height")>-1||e.indexOf("overflow")>-1)?g.rootElement.setAttribute("style",e):(g.rootElement.style.height="",g.rootElement.style.overflow="")}else void 0!==k&&(g.rootElement.style.height=isNaN(k)?`${k}`:`${k}px`,g.rootElement.style.overflow="clip");if(void 0!==e.width){let t=e.width;ns(t)&&(t=t()),t=g.runHooks("beforeWidthChange",t),g.rootElement.style.width=isNaN(t)?`${t}`:`${t}px`}if(void 0!==e.height||void 0!==e.width){let e=g.rootElement.style.height,t=g.rootElement.style.width,o=/%|v(?:w|h|min|max)/i.test(t),n=""!==t&&"auto"!==t&&!o;if(!e){let e=g.rootElement.style.overflowX;(""===e||"clip"===e)&&(g.rootElement.style.overflowX=n?"clip":"")}}u||(g.view&&(g.view._wt.wtViewport.resetHasOversizedColumnHeadersMarked(),g.view._wt.exportSettingsAsClassNames(),g.view.invalidateIndexSizesCache()),E.updateHighlightClassNames(),g.runHooks("afterUpdateSettings",e)),a.adjustRowsAndCols(),g.view&&!m&&(g.render(),g.view._wt.wtOverlays.adjustElementsSize()),y&&g.themeManager&&g.runHooks("afterSetTheme",g.themeManager.getClassName(),!1),!u&&g.view&&(""===H||""===k||void 0===k)&&H!==k&&g.view._wt.wtOverlays.updateMainScrollableElements(),l8(g)&&$?.applyConfig(R.layout)},this.getValue=function(){let e=g.getSelectedRangeActive();if(R.getValue){if(ns(R.getValue))return R.getValue.call(g);else if(e&&"string"==typeof R.getValue){let t=e.highlight.row??0;return g.getData()[t][R.getValue]}}else if(e)return g.getDataAtCell(e.highlight.row,e.highlight.col);return null},this.getSettings=function(){return R},this.clear=function(){this.selectAll(),this.emptySelectedCells(),this.deselectCell()},this.alter=function(e,t,o,n,i){a.alter(e,t,o,n,i)},this.getCell=function(e,t){let o=arguments.length>2&&void 0!==arguments[2]&&arguments[2],n=t,i=e;if(t>=0){if(g.columnIndexMapper.isHidden(g.toPhysicalColumn(t)))return null;n=g.columnIndexMapper.getRenderableFromVisualIndex(t)}if(e>=0){if(g.rowIndexMapper.isHidden(g.toPhysicalRow(e)))return null;i=g.rowIndexMapper.getRenderableFromVisualIndex(e)}return null===i||null===n||void 0===i||void 0===n?null:g.view.getCellAtCoords(g._createCellCoords(i,n),o)},this.getCoords=function(e){let t=g.view._wt.wtTable.getCoords(e);if(null===t)return null;let{row:o,col:n}=t,i=o,r=n;return null!==o&&o>=0&&(i=g.rowIndexMapper.getVisualFromRenderableIndex(o)),null!==n&&n>=0&&(r=g.columnIndexMapper.getVisualFromRenderableIndex(n)),g._createCellCoords(i,r)},this.colToProp=function(e){return l.colToProp(e)},this.propToCol=function(e){return l.propToCol(e)},this.toVisualRow=e=>g.rowIndexMapper.getVisualFromPhysicalIndex(e),this.toVisualColumn=e=>g.columnIndexMapper.getVisualFromPhysicalIndex(e),this.toPhysicalRow=e=>g.rowIndexMapper.getPhysicalFromVisualIndex(e),this.toPhysicalColumn=e=>g.columnIndexMapper.getPhysicalFromVisualIndex(e),this.getDataAtCell=function(e,t){return l.get(e,l.colToProp(t))},this.getDataAtRowProp=function(e,t){return l.get(e,t)},this.getDataAtCol=function(e){let t=[],o=l.getRange(g._createCellCoords(0,e),g._createCellCoords(R.data.length-1,e),dT.DESTINATION_RENDERER);for(let e=0;e<o.length;e+=1)for(let n=0;n<o[e].length;n+=1)t.push(o[e][n]);return t},this.getDataAtProp=function(e){let t=[],o=l.getRange(g._createCellCoords(0,l.propToCol(e)),g._createCellCoords(R.data.length-1,l.propToCol(e)),dT.DESTINATION_RENDERER);for(let e=0;e<o.length;e+=1)for(let n=0;n<o[e].length;n+=1)t.push(o[e][n]);return t},this.getSourceData=function(e,t,o,n){return void 0===e?s.getData():s.getByRange(g._createCellCoords(e,t??null),g._createCellCoords(o??null,n??null))},this.getSourceDataArray=function(e,t,o,n){return void 0===e?s.getData(!0):s.getByRange(g._createCellCoords(e,t??null),g._createCellCoords(o??null,n??null),!0)},this.getSourceDataAtCol=function(e){return s.getAtColumn(e)},this.setSourceDataAtCell=function(e,t,o,n){let i=B(e,t,o),r=g.hasHook("afterSetSourceDataAtCell"),l=[],a=(e,t)=>{let o=g.toVisualRow(e),n=g.toVisualColumn(t);return Number.isInteger(n)?g.getCellMetaTransient(o,n):{...Object.getPrototypeOf(R),...R}};r&&J(i,e=>{let[t,o,n]=e,i=n0(n,a(t,o));l.push([t,o,s.getAtCell(t,o),i])}),J(i,e=>{let[t,o,i]=e,r=a(t,o),l=n0(i,r);(function(e,t,o){let n=t.sourceDataValidator;if(!ns(n)||!0===n(e,t,o))return!0;let{row:i,col:r,sourceDataWarningMessage:l,allowInvalid:s}=t;return l&&d_(l,[{row:i,col:r,value:e}]),!0===s})(l,r,n??"setSourceDataAtCell")&&s.setAtCell(t,o,l)}),r&&this.runHooks("afterSetSourceDataAtCell",l,n),this.render();let h=g.getActiveEditor();h&&eP(h.refreshValue)&&h.refreshValue()},this.getSourceDataAtRow=function(e){return s.getAtRow(e)},this.getSourceDataAtCell=function(e,t){return s.getAtCell(e,t)},this.getDataAtRow=function(e){return l.getRange(g._createCellCoords(e,0),g._createCellCoords(e,this.countCols()-1),dT.DESTINATION_RENDERER)[0]||[]},this.getDataType=function(e,t,o,n){let i=void 0===e?[0,0,g.countRows(),g.countCols()]:[e,t,o,n],[r,l]=i,[,,s,a]=i,h=null,d=null;void 0===s&&(s=r),void 0===a&&(a=l);let c="mixed";return ik(Math.max(Math.min(r,s),0),Math.max(r,s),e=>{let t=!0;return ik(Math.max(Math.min(l,a),0),Math.max(l,a),o=>(d=g.getCellMetaTransient(e,o).type??null,h?t=h===d:h=d,t)),c=t?d??"mixed":"mixed",t}),c},this.removeCellMeta=function(e,t,o){let[n,i]=[g.toPhysicalRow(e),g.toPhysicalColumn(t)],r=S.getCellMetaKeyValue(n,i,o);!1!==g.runHooks("beforeRemoveCellMeta",e,t,o,r)&&(S.removeCellMeta(n,i,o),g.runHooks("afterRemoveCellMeta",e,t,o,r))},this.spliceCellsMeta=function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;for(var o=arguments.length,n=Array(o>2?o-2:0),i=2;i<o;i++)n[i-2]=arguments[i];n.length>0&&!Array.isArray(n[0])&&to("The 3rd argument (cellMetaRows) has to be passed as an array of cell meta objects array."),t>0&&S.removeRow(g.toPhysicalRow(e),t),n.length>0&&J(n.reverse(),t=>{S.createRow(g.toPhysicalRow(e)),J(t,(t,o)=>{this.setCellMetaObject(e,o,t)})}),g.render()},this.setCellMetaObject=function(e,t,o){"object"==typeof o&&tp(o,(o,n)=>{this.setCellMeta(e,t,n,o)})},this._setCellMetaDeclarative=function(e,t,o,n){let i=e,r=t;e<g.countRows()&&(i=g.toPhysicalRow(e)),t<g.countCols()&&(r=g.toPhysicalColumn(t)),S.disableUserDefinedMetaRecording();try{S.setCellMeta(i,r,o,n)}finally{S.enableUserDefinedMetaRecording()}},this.setCellMeta=function(e,t,o,n){if(!1===g.runHooks("beforeSetCellMeta",e,t,o,n))return;let i=e,r=t;e<g.countRows()&&(i=g.toPhysicalRow(e)),t<g.countCols()&&(r=g.toPhysicalColumn(t)),S.setCellMeta(i,r,o,n),g.runHooks("afterSetCellMeta",e,t,o,n)},this.getCellsMeta=function(){return S.getCellsMeta()},this.getCellMeta=function(e,t){let o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{skipMetaExtension:!1},n=g.toPhysicalRow(e),i=g.toPhysicalColumn(t);return null===n&&(n=e),null===i&&(i=t),S.getCellMeta(n,i,{visualRow:e,visualColumn:t,...o})},this.getCellMetaTransient=function(e,t){let o=g.toPhysicalRow(e),n=g.toPhysicalColumn(t);return null===o&&(o=e),null===n&&(n=t),S.getCellMetaTransient(o,n,{visualRow:e,visualColumn:t})},this.getColumnMeta=function(e){return S.getColumnMeta(g.toPhysicalColumn(e))},this.getCellMetaAtRow=function(e){return S.getCellsMetaAtRow(e)},this.isColumnModificationAllowed=function(){return!("object"===g.dataType||R.columns)},this.getCellRenderer=function(e,t){let o="number"==typeof e?g.getCellMeta(e,t).renderer:e.renderer;return"string"==typeof o?i0(o):eD(o)?i0("text"):o},this.getCellEditor=function(e,t){let o="number"==typeof e?g.getCellMeta(e,t).editor:e.editor;return"string"==typeof o?nZ(o):eD(o)?nZ("text"):o},this.getCellValidator=function(e,t){let o="number"==typeof e?g.getCellMeta(e,t).validator:e.validator;return"string"==typeof o?i7(o):o},this.validateCells=function(e){this._validateCells(e)},this.validateRows=function(e,t){Array.isArray(e)||to("validateRows parameter `rows` must be an array"),this._validateCells(t,e)},this.validateColumns=function(e,t){Array.isArray(e)||to("validateColumns parameter `columns` must be an array"),this._validateCells(t,void 0,e)},this._validateCells=function(e,t,o){let n=O();e&&(n.onQueueEmpty=e);let i=g.countRows()-1;for(;i>=0;){if(void 0!==t&&-1===t.indexOf(i)){i-=1;continue}let e=g.countCols()-1;for(;e>=0;){if(void 0!==o&&-1===o.indexOf(e)){e-=1;continue}n.addValidatorToQueue();let t=i,r=e,l=g.getCellMetaTransient(t,r);g.validateCell(g.getDataAtCell(t,r),l,e=>{"boolean"!=typeof e&&to("Validation error: result is not boolean"),!1===e&&(n.valid=!1,g.getCellMeta(t,r,{skipMetaExtension:!0}).valid=!1),n.removeValidatorFormQueue()},"validateCells"),e-=1}i-=1}n.checkIfQueueIsEmpty()},this.getRowHeader=function(e){let t=R.rowHeaders,o=e;if(void 0!==o&&(o=g.runHooks("modifyRowHeader",o)),void 0===o){let e=[];ik(g.countRows()-1,t=>{e.push(g.getRowHeader(t))}),t=e}else Array.isArray(t)&&void 0!==t[o]?t=t[o]:ns(t)?t=t(o):t&&"string"!=typeof t&&"number"!=typeof t&&(t=o+1);return t},this.hasRowHeaders=function(){return!!R.rowHeaders},this.hasColHeaders=function(){if(void 0!==R.colHeaders&&null!==R.colHeaders)return!!R.colHeaders;for(let e=0,t=g.countCols();e<t;e++)if(g.getColHeader(e))return!0;return!1};let V=null;this.getColHeader=function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:-1,o=g.runHooks("modifyColHeader",e);if(void 0===o){let e=[],t=g.countCols();for(let o=0;o<t;o++)e.push(g.getColHeader(o));return e}let n=R.colHeaders,i=R.columns,r="function"==typeof i?i:null,l=g.toPhysicalColumn(o),s=null;if(null!==r){let e=g.countCols();if(null===V||V.columns!==r||V.columnsLen!==e){let t=[];for(let o=0;o<e;o++)r(o)&&t.push(o);V={columns:r,columnsLen:e,indexes:t}}s=r(V.indexes[l])??null}return!1===R.colHeaders?n=null:s&&s.title?n=s.title:i&&!ns(i)&&i[l]&&i[l].title?n=i[l].title:Array.isArray(R.colHeaders)&&void 0!==R.colHeaders[l]?n=R.colHeaders[l]:ns(R.colHeaders)?n=R.colHeaders(l):R.colHeaders&&"string"!=typeof R.colHeaders&&"number"!=typeof R.colHeaders&&(n=sl(o)),n=g.runHooks("modifyColumnHeaderValue",n,e,t)},this._getColWidthFromSettings=function(e){let t;if(e>=0&&(t=g.getCellMeta(0,e).width),(void 0===t||t===R.width)&&(t=R.colWidths),null!=t){switch(typeof t){case"object":t=t[e];break;case"function":t=t(e)}"string"==typeof t&&(t=Number.parseInt(t,10))}return t},this.getColWidth=function(e,t){let o=g._getColWidthFromSettings(e);return void 0===(o=g.runHooks("modifyColWidth",o,e,t))&&(o=50),o},this._getRowHeightFromSettings=function(e){let t=g.stylesHandler.getDefaultRowHeight(e),o=R.rowHeights??R.minRowHeights;if(null!=o){switch(typeof o){case"object":o=o[e];break;case"function":o=o(e)}"string"==typeof o&&(o=Number.parseInt(o,10))}let n=o;return null!=n&&null!==t&&n<t?t:n},this.getRowHeight=function(e,t){let o=g._getRowHeightFromSettings(e);return g.runHooks("modifyRowHeight",o,e,t)},this.countSourceRows=function(){return s.countRows()},this.countSourceCols=function(){return s.countFirstRowKeys()},this.countRows=function(){return l.getLength()},this.countCols=function(){return Math.min(R.maxCols,g.columnIndexMapper.getNotTrimmedIndexesLength())},this.countRenderedRows=function(){let e=g.view;return e?._wt.drawn?e._wt.wtTable.getRenderedRowsCount():-1},this.countVisibleRows=function(){let e=g.view;return e?._wt.drawn?e._wt.wtTable.getVisibleRowsCount():-1},this.countRenderedCols=function(){let e=g.view;return e?._wt.drawn?e._wt.wtTable.getRenderedColumnsCount():-1},this.countVisibleCols=function(){let e=g.view;return e?._wt.drawn?e._wt.wtTable.getVisibleColumnsCount():-1},this.countRowHeaders=function(){let e=g.view;return e?e.getRowHeadersCount():0},this.countColHeaders=function(){let e=g.view;return e?e.getColumnHeadersCount():0},this.countEmptyRows=function(){let e=arguments.length>0&&void 0!==arguments[0]&&arguments[0],t=0;return iT(g.countRows()-1,o=>{if(g.isEmptyRow(o))t+=1;else if(!0===e)return!1}),t},this.countEmptyCols=function(){let e=arguments.length>0&&void 0!==arguments[0]&&arguments[0],t=0;return iT(g.countCols()-1,o=>{if(g.isEmptyCol(o))t+=1;else if(!0===e)return!1}),t},this.isEmptyRow=function(e){return R.isEmptyRow.call(g,e)},this.isEmptyCol=function(e){return R.isEmptyCol.call(g,e)},this.selectCell=function(e,t,o,n){let i=!(arguments.length>4)||void 0===arguments[4]||arguments[4],r=!(arguments.length>5)||void 0===arguments[5]||arguments[5];if(eD(e)||eD(t))return!1;let l=[[null==e||Number.isNaN(Number(e))?0:Number(e),null==t||"number"==typeof t&&Number.isNaN(t)?0:t,eD(o)?void 0:o,eD(n)?void 0:n]];return g.selectCells(l,i,r)},this.selectCells=function(){let e,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[[]],o=!(arguments.length>1)||void 0===arguments[1]||arguments[1],n=!(arguments.length>2)||void 0===arguments[2]||arguments[2];!1===o&&c.suspend(),!1===n&&d.suspend();try{e=E.selectCells(t)}finally{c.resume(),d.resume()}return e&&n&&g.listen(),e},this.selectColumns=function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:e,o=arguments.length>2?arguments[2]:void 0;return E.selectColumns(e,t,o)},this.selectRows=function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:e,o=arguments.length>2?arguments[2]:void 0;return E.selectRows(e,t,o)},this.deselectCell=function(){E.deselect()},this.selectAll=function(){let e=!(arguments.length>0)||void 0===arguments[0]||arguments[0],t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:e,o=arguments.length>2?arguments[2]:void 0;c.skipNextScrollCycle(),E.selectAll(e,t,o)};let F=(e,t)=>e.getNearestNotHiddenIndex(t,1,!0);this.scrollViewportTo=function(e,t){"number"==typeof e&&(e={row:arguments[0],col:arguments[1],verticalSnap:arguments[2]?"bottom":"top",horizontalSnap:arguments[3]?"end":"start",considerHiddenIndexes:arguments[4]??!0});let{row:o,col:n,considerHiddenIndexes:i}=e??{},r=o,l=n;if(ns(t)&&this.addHookOnce("afterScroll",t),void 0===i||i){var s,a;let e,t,i,h,d=(s=o,a=n,e=void 0!==s&&Number.isInteger(s)&&s>=0,t=void 0!==a&&Number.isInteger(a)&&a>=0,i=e?F(g.rowIndexMapper,s):void 0,h=t?F(g.columnIndexMapper,a):void 0,null!==i&&null!==h&&{renderableRow:e?g.rowIndexMapper.getRenderableFromVisualIndex(i)??void 0:s,renderableColumn:t?g.columnIndexMapper.getRenderableFromVisualIndex(h)??void 0:a});if(!1===d)return!1;r=d.renderableRow,l=d.renderableColumn}let h=Number.isInteger(r),d=Number.isInteger(l),c=!1;return h&&r>=0&&d&&l>=0?c=g.view.scrollViewport(g._createCellCoords(r,l),e.horizontalSnap,e.verticalSnap):h&&r>=0&&(d&&l<0||!d)?c=g.view.scrollViewportVertically(r,e.verticalSnap):d&&l>=0&&(h&&r<0||!h)&&(c=g.view.scrollViewportHorizontally(l,e.horizontalSnap)),ns(t)&&(c?this.view.render():(this.removeHook("afterScroll",t),this._registerMicrotask(()=>t()))),c},this.scrollToFocusedCell=function(e){if(!g.selection.isSelected())return!1;ns(e)&&g.addHookOnce("afterScroll",e);let{highlight:t}=g.getSelectedRangeActive(),o=g.scrollViewportTo(t.toObject());return o?g.view.render():ns(e)&&(g.removeHook("afterScroll",e),g._registerMicrotask(()=>e())),o},this.destroy=function(){g._clearTimeouts(),g._clearMicrotasks(),b?.disconnect(),b=null,g.view&&g.view.destroy(),s&&s.destroy(),s=null,l8(this)&&(0!==cr&&(1===cr&&(ci.remove(),ci=null),cr-=1),this.getFocusScopeManager().destroy(),$?.destroy(),g.themeManager?.destroy()),this.getShortcutManager().destroy(),H.clear(),S.clearCache(),uo.delete(this.guid),p.destroy(),h&&h.destroy(),g.rootContainer&&om(g.rootContainer),g.rootPortalElement&&g.rootPortalElement.remove(),g.batchExecution(()=>{g.rowIndexMapper.destroy(),g.columnIndexMapper.destroy(),M.getItems().forEach(e=>{let[,t]=e;t.destroy()}),M.clear(),g.runHooks("afterDestroy")},!0),nL.getSingleton().destroy(g),tp(g,(e,t,o)=>{var n;ns(e)?o[t]=(n=t,()=>{to(`The "${n}" method cannot be called because this Handsontable instance has been destroyed`)}):"guid"!==t&&(o[t]=null)}),g.isDestroyed=!0,l&&l.destroy(),l=null,a=null,E=null,h=null,g=null},this.getActiveEditor=function(){return h?.getActiveEditor()},this.getFirstRenderedVisibleRow=function(){return g.view.getFirstRenderedVisibleRow()},this.getLastRenderedVisibleRow=function(){return g.view.getLastRenderedVisibleRow()},this.getFirstRenderedVisibleColumn=function(){return g.view.getFirstRenderedVisibleColumn()},this.getLastRenderedVisibleColumn=function(){return g.view.getLastRenderedVisibleColumn()},this.getFirstFullyVisibleRow=function(){return g.view.getFirstFullyVisibleRow()},this.getLastFullyVisibleRow=function(){return g.view.getLastFullyVisibleRow()},this.getFirstFullyVisibleColumn=function(){return g.view.getFirstFullyVisibleColumn()},this.getLastFullyVisibleColumn=function(){return g.view.getLastFullyVisibleColumn()},this.getFirstPartiallyVisibleRow=function(){return g.view.getFirstPartiallyVisibleRow()},this.getLastPartiallyVisibleRow=function(){return g.view.getLastPartiallyVisibleRow()},this.getFirstPartiallyVisibleColumn=function(){return g.view.getFirstPartiallyVisibleColumn()},this.getLastPartiallyVisibleColumn=function(){return g.view.getLastPartiallyVisibleColumn()},this.getPlugin=function(e){return M.getItem(ia(e))},this.getPluginName=function(e){return M.getId(e)},this.getInstance=function(){return g},this.addHook=function(e,t,o){nL.getSingleton().add(e,t,g,o)},this.hasHook=function(e){return nL.getSingleton().has(e,g)||nL.getSingleton().has(e)},this.addHookOnce=function(e,t,o){nL.getSingleton().once(e,t,g,o)},this.removeHook=function(e,t){nL.getSingleton().remove(e,t,g)},this.runHooks=function(e,t,o,n,i,r,l){return nL.getSingleton().run(g,e,t,o,n,i,r,l)},this.getTranslatedPhrase=function(e,t){return hU(R.language,e,t)},this.toHTML=()=>ie(this),this.toTableElement=()=>{let e=g.rootDocument.createElement("div");return e.insertAdjacentHTML("afterbegin",ie(g)),e.firstElementChild},this.timeouts=[],this.useTheme=e=>{let t=!!m;this.stylesHandler.useTheme(e??void 0);let o=this.stylesHandler.getThemeName();!t&&o&&(ct(this.rootContainer)&&(oc(this.rootContainer,/ht-theme-.*/g),od(this.rootContainer,o)),g.render(),g.scrollViewportTo(0,0)),this.runHooks("afterSetTheme",o,t)},this.getCurrentThemeName=()=>g.stylesHandler.getThemeName()??null,this.getTableHeight=()=>g.rootElement.offsetHeight,this.getTableWidth=()=>g.rootElement.offsetWidth,this._registerTimeout=function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,o=e;return"function"==typeof o&&(o=setTimeout(o,t)),this.timeouts.push(o),o},this._clearTimeouts=function(){J(this.timeouts,e=>{clearTimeout(e)})},this.microtasks=[],this._registerMicrotask=function(e){let t={cancelled:!1};this.microtasks.push(t),this.rootWindow.queueMicrotask(()=>{t.cancelled||e()})},this._clearMicrotasks=function(){J(this.microtasks,e=>{e.cancelled=!0}),this.microtasks.length=0},this._getEditorManager=function(){return h},this._getDataSource=function(){return s},this._getMetaManager=function(){return S};let z=(e=>{let{ownerWindow:t,handleEvent:o,beforeKeyDown:n,afterKeyDown:i}=e,r=iF({errorIdExists:e=>`The "${e}" context name is already registered.`}),l="grid",s=function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"table",o=d2(e,t);return r.addItem(e,o),o},a=()=>l,h=e=>r.getItem(e),d=!1,c=function(e,t){let o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:a(),n=d1(o)?o:h(o),i=!1;if(!n?.hasShortcut(t))return i;let r=n?.getShortcuts(t)??[];for(let o=0;o<r.length;o++){let{callback:n,runOnlyIf:l,preventDefault:s,stopPropagation:a,captureCtrl:h,forwardToContext:u}=r[o];if(l?.(e)===!0){if(d=h??!1,i=!1===n(e,t),d=!1,s&&e.preventDefault(),a&&(nR(e),e.stopPropagation()),i)break;u&&c(e,t,u)}}return i},u=function(e,t,o,n,i){let r=arguments.length>5&&void 0!==arguments[5]?arguments[5]:null,l=e=>{if(!1!==t(e)){if(!1===o(e)||229===e.keyCode||"string"!=typeof e.key||nx(e))return;let t=dZ(e),r=[];dQ.includes(t)||(r=dJ(e));let l=i(e,[t].concat(r));!l&&(tj()&&r.includes("meta")||!tj()&&r.includes("control"))&&(l=i(e,[t].concat(dJ(e,!0)))),n(e);return}if(!1===ns(r)||229===e.keyCode||"string"!=typeof e.key||nx(e))return;let l=dZ(e),s=[];dQ.includes(l)||(s=dJ(e));let a=r(e,[l].concat(s));!a&&(tj()&&s.includes("meta")||!tj()&&s.includes("control"))&&(a=r(e,[l].concat(dJ(e,!0)))),n(e)},s=()=>{d3.releaseAll()};return{mount:()=>{let t=e;for(;t;){let{documentElement:e}=t.document,o=d6.get(e)??0;0===o&&(e.addEventListener("keydown",d4),e.addEventListener("keyup",d5)),d6.set(e,o+1),e.addEventListener("keydown",l),e.addEventListener("blur",s),t=t9(t)}},unmount:()=>{let t=e;for(;t;){let{documentElement:e}=t.document,o=d6.get(e)??0;o<=1?(e.removeEventListener("keydown",d4),e.removeEventListener("keyup",d5),d6.delete(e)):d6.set(e,o-1),e.removeEventListener("keydown",l),e.removeEventListener("blur",s),t=t9(t)}},isPressed:e=>d3.isPressed(e),releasePressedKeys:()=>d3.releaseAll()}}(t,e=>{let t=h(a());return o(e,t?.scope??"table")},n,i,c,(e,t)=>{let o=r.getItems();for(let n=0;n<o.length;n+=1){let[,i]=o[n];if("global"===i.scope&&c(e,t,i))return!0}return!1});return u.mount(),{addContext:s,getActiveContextName:a,getContext:h,getOrCreateContext:function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"table";return h(e)??s(e,t)},setActiveContextName:e=>{r.hasItem(e)||to(eu`You've tried to activate the "${e}" shortcut context\x20
|
|
251
|
-
that does not exist. Before activation, register the context using the "addContext" method.`),l=e},hasEventShortcut:(e,t)=>{let o=h(e);return!!o&&((e,t)=>{if("string"!=typeof e.key)return[];let o=dZ(e),n=dQ.includes(o),i=n?[]:dJ(e),r=[[o].concat(i)];return!n&&("function"==typeof t&&t()?i.includes("meta"):i.includes("control"))&&r.push([o].concat(dJ(e,!0))),r})(t,tj).some(e=>o.hasShortcut(e))},isCtrlPressed:()=>!d&&(u.isPressed("control")||u.isPressed("meta")),releasePressedKeys:()=>u.releasePressedKeys(),destroy:()=>u.unmount()}})({handleEvent:(e,t)=>"global"===t||g.isListening(),beforeKeyDown:e=>g.runHooks("beforeKeyDown",e),afterKeyDown:e=>{this.isDestroyed||g.runHooks("afterDocumentKeyDown",e)},ownerWindow:this.rootWindow});this.addHook("beforeOnCellMouseDown",e=>{!1===e.ctrlKey&&!1===e.metaKey&&z.releasePressedKeys()}),this.getShortcutManager=function(){return z},d=new dL(g);let W=l8(this)?function(e){let t=iF({errorIdExists:e=>`The "${e}" focus scope is already registered.`}),o=e.getShortcutManager(),n=null;function i(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:dF.UNKNOWN;n!==e&&(null!==n&&r(n),(n=e).activate(t),o.setActiveContextName(e.getShortcutsContextName()))}function r(e){l(),n===e&&(n=null,e.deactivate())}function l(){let o=t.getValues(),i=o.filter(e=>e.runOnlyIf()&&"modal"===e.getType());o.forEach(t=>{i.length>0&&i.includes(t)||0===i.length||t.hasContainerDetached()?t.enable():t.disable(),t===n?t.contains(nr(e.rootDocument))?t.deactivateFocusCatchers():t.activateFocusCatchers():t.runOnlyIf()?t.activateFocusCatchers():t.deactivateFocusCatchers()})}function s(o,l){if(!o.isConnected||!oS(o))return;let s=t.getValues().filter(e=>e.runOnlyIf()),a=!1;s.forEach(t=>{!a&&t.contains(o)&&(a=!0,l!==dF.UNKNOWN&&e.listen(),i(t,l))}),!a&&n&&(r(n),e.unlisten())}let a=function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},o=!1;function n(e){o||t.onFocus?.(e)}function i(e){t.onClick?.(e)}function r(e){"Tab"===e.key&&t.onTabKeyDown?.(e)}function l(){o=!0}function s(){o=!1}return{mount:()=>{let t=e;for(;t;){let{documentElement:e}=t.document;e.addEventListener("focusin",n),e.addEventListener("click",i),e.addEventListener("keydown",r),e.addEventListener("mousedown",l),e.addEventListener("mouseup",s),t=t9(t)}},unmount:()=>{let t=e;for(;t;){let{documentElement:e}=t.document;e.removeEventListener("focusin",n),e.removeEventListener("click",i),e.removeEventListener("keydown",r),e.removeEventListener("mousedown",l),e.removeEventListener("mouseup",s),t=t9(t)}}}}(e.rootWindow,{onFocus:e=>{s(t5(e),t5(e).dataset.htFocusSource??dF.UNKNOWN)},onClick:e=>{s(t5(e),dF.CLICK)},onTabKeyDown:()=>{l()}});return a.mount(),{getActiveScopeId:function(){return n?t.getId(n):null},registerScope:function(n,i){let r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};t.hasItem(n)&&to(`Scope with id "${n}" already registered`);let l=function(e,t){let o,n,i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},r={shortcutsContextName:"grid",type:dV.INLINE,contains:e=>e===t||t.contains(e),runOnlyIf:()=>!0,enableFocusCatchers:!0,...i},l=!1===r.enableFocusCatchers?null:(o=dz(e,dF.TAB_FROM_ABOVE),n=dz(e,dF.TAB_FROM_BELOW),t.prepend(o),t.append(n),{activate(){o.tabIndex=0,n.tabIndex=0},deactivate(){o.tabIndex=-1,n.tabIndex=-1},destroy(){o.remove(),n.remove()}});return{getType:()=>r.type,hasContainerDetached:()=>!e.rootWrapperElement.contains(t),getShortcutsContextName:()=>r.shortcutsContextName,runOnlyIf:()=>r.runOnlyIf(),contains:e=>r.contains(e),activate:function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:dF.UNKNOWN;r.onActivate?.(e)},deactivate:()=>{r.onDeactivate?.()},activateFocusCatchers:()=>{l?.activate()},deactivateFocusCatchers:()=>{l?.deactivate()},enable:()=>{t.removeAttribute("inert")},disable:()=>{t.setAttribute("inert","true")},destroy:()=>{l?.destroy()}}}(e,i,r);t.addItem(n,l),o.getOrCreateContext(l.getShortcutsContextName())},unregisterScope:function(e){t.hasItem(e)||to(`Scope with id "${e}" not found`),t.getItem(e).destroy(),t.removeItem(e)},activateScope:(e,o)=>(function(e){let o=arguments.length>1&&void 0!==arguments[1]?arguments[1]:dF.UNKNOWN;t.hasItem(e)||to(`Scope with id "${e}" not found`);let n=o??dF.UNKNOWN;i(t.getItem(e),n)})(e,o),deactivateScope:e=>{!t.hasItem(e)&&to(`Scope with id "${e}" not found`),r(t.getItem(e))},destroy:()=>a.unmount()}}(g):null,$=l8(this)?new cd({top:g.rootSlotTopElement,bottom:g.rootSlotBottomElement}):null;this.getFocusManager=function(){return d},this.getFocusScopeManager=function(){return l8(g)||to("The FocusScopeManager is only available for the main Handsontable instance."),W},this.getLayoutManager=function(){return l8(g)||to("The LayoutManager is only available for the main Handsontable instance."),$};let U=C.theme,G=C.themeName,q=ct(g.rootContainer);l8(g)&&!q&&(tu(U)||!U&&!G)&&_(U,I(C)),iq().forEach(e=>{let t=ij(e);t&&M.addItem(e,new t(this))}),o=g,[ce,d8].forEach(e=>e(o)),l8(this)&&(n=g,[dj].forEach(e=>e(n))),z.setActiveContextName("grid"),nL.getSingleton().run(g,"construct")};dc(up),i1(ui);let uf=function(e,t){let o=new um(e,t||{},l9);return o.init(),o};uf.editors={BaseEditor:n3,TextEditor:uu},uf.dom={empty:om},uf.helper={},uf.Core=function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return new um(e,t,l9)},uf.DefaultSettings=dg(),uf.hooks=nL.getSingleton(),uf.CellCoords=r1,uf.CellRange=r2,uf.packageName="handsontable",uf.buildDate="01/09/2026 11:40:25",uf.version="18.1.0",uf.languages={dictionaryKeys:y,getLanguageDictionary:h$,getLanguagesDictionaries:function(){return hz()},registerLanguageDictionary:hW,getTranslatedPhrase:hU},uf.themes={hasTheme:c2,getTheme:c3,getThemeNames:c6,getThemes:c4,registerTheme:c7,reinitTheme:c9};let ub="handsontableEditor";class uC extends uu{static get EDITOR_TYPE(){return"handsontable"}isFlippedVertically=!1;isFlippedHorizontally=!1;open(){super.open();let e=this.htContainer.style;this.htEditor&&(this.htEditor.rootPortalElement=null,this.htEditor.destroy(),e.width="",e.height="",e.overflow=""),"none"===e.display&&(e.display=""),this.htEditor=new this.hot.constructor(this.htContainer,this.htOptions),this.htEditor.rootPortalElement=this.hot.rootPortalElement,this.htEditor.init(),this.htEditor.rootElement.style.display="",this.cellProperties.strict?this.htEditor.selectCell(0,0):this.htEditor.deselectCell(),oY(this.TEXTAREA,0,this.TEXTAREA.value.length),this.htEditor.updateSettings({width:this.getTargetDropdownWidth(),height:this.getTargetDropdownHeight()}),this.refreshDimensions(),this.flipDropdownVerticallyIfNeeded(),this.flipDropdownHorizontallyIfNeeded()}close(){this.htEditor&&(this.htEditor.rootElement.style.display="none"),this.removeHooksByKey("beforeKeyDown"),super.close()}prepare(e,t,o,n,i,r){super.prepare(e,t,o,n,i,r);let{hot:l}=this,s=this.setValue.bind(this),a={startRows:0,startCols:0,minRows:0,minCols:0,className:"listbox",copyPaste:!1,autoColumnSize:!1,autoRowSize:!1,readOnly:!0,fillHandle:!1,autoWrapCol:!1,autoWrapRow:!1,ariaTags:!1,themeName:this.hot.getCurrentThemeName(),afterOnCellMouseDown(e,t){if(t.row<0||t.col<0)return;let o=this.getDataAtCell(t.row,t.col);void 0!==o&&s(o),l.destroyEditor()},preventWheel:!0,layoutDirection:this.hot.isRtl()?"rtl":"ltr"};this.cellProperties.handsontable&&tr(a,r.handsontable),this.htOptions=a}beginEditing(e,t){let o=this.hot.getSettings().onBeginEditing;o&&!1===o()||super.beginEditing(e,t)}createElements(){super.createElements();let e=this.hot.rootDocument.createElement("DIV");e.className="handsontableEditor",this.TEXTAREA_PARENT.appendChild(e),this.htContainer=e,this.assignHooks()}finishEditing(e,t,o){if(this.htEditor&&this.htEditor.isListening()&&this.hot.listen(),this.htEditor&&this.htEditor.getSelectedActive()){let e=this.htEditor.getValue();void 0!==e&&this.setValue(e)}super.finishEditing(e,t,o)}flipDropdownVerticallyIfNeeded(){let{view:e}=this.hot,t=this.getEditedCellRect();if(!t)return{isFlipped:!1,spaceAbove:0,spaceBelow:0};let o=t.top;e.isVerticallyScrollableByWindow()&&(o=Math.max(o+(e.getTableOffset().top-this.hot.rootWindow.scrollY),0));let n=this.getDropdownHeight(),i=e.getWorkspaceHeight()-o-t.height,r=n>i&&o>i+t.height;return r?this.flipDropdownVertically():this.unflipDropdownVertically(),{isFlipped:r,spaceAbove:o,spaceBelow:i}}flipDropdownVertically(){let e=this.htEditor.rootElement.style;e.position="absolute",e.top=`${-this.getDropdownHeight()}px`,this.isFlippedVertically=!0}unflipDropdownVertically(){let e=this.htEditor.rootElement.style;e.position="absolute",e.top="",this.isFlippedVertically=!1}flipDropdownHorizontallyIfNeeded(){let{view:e}=this.hot,t=this.getEditedCellRect();if(!t)return{isFlipped:!1,spaceInlineStart:0,spaceInlineEnd:0};let o=t.start+t.width,n=e.getWorkspaceWidth();e.isHorizontallyScrollableByWindow()&&(o=Math.max(o+(e.getTableOffset().left-this.hot.rootWindow.scrollX),0),n=this.hot.rootDocument.documentElement.clientWidth);let i=this.getDropdownWidth(),r=n-o+t.width,l=i>r&&o>r;return l?this.flipDropdownHorizontally():this.unflipDropdownHorizontally(),{isFlipped:l,spaceInlineStart:o,spaceInlineEnd:r}}flipDropdownHorizontally(){let e=this.htEditor.rootElement.style,{width:t}=this.getEditedCellRect()??{width:0};e.position="absolute",e[this.hot.isRtl()?"right":"left"]=`${-(this.getDropdownWidth()-t)}px`,this.isFlippedHorizontally=!0}unflipDropdownHorizontally(){let e=this.htEditor.rootElement.style;e.position="absolute",e[this.hot.isRtl()?"right":"left"]="",this.isFlippedHorizontally=!1}getDropdownHeight(){return this.htEditor.getTableHeight()}getDropdownWidth(){return this.htEditor.getTableWidth()}getTargetDropdownWidth(){return this.htEditor.view.getTableWidth()}getTargetDropdownHeight(){return this.htEditor.view.getTableHeight()+1}assignHooks(){this.hot.addHook("afterDestroy",()=>{this.htEditor&&(this.htEditor.rootPortalElement=null,this.htEditor.destroy())}),this.hot.addHook("afterSetTheme",(e,t)=>{t||this.close()})}registerShortcuts(){let e=this.hot.getShortcutManager().getContext("editor");super.registerShortcuts();let t=(e,t)=>{let o=this.htEditor;if(void 0!==e&&(e<0||this.isFlippedVertically&&e>o.countRows()-1?o.deselectCell():o.selectCell(e,0),o.getData().length))return t.preventDefault(),nR(t),this.hot.listen(),this.TEXTAREA.focus(),!1};e.addShortcuts([{keys:[["ArrowUp"]],callback:e=>{let o,n=this.htEditor;if(!n.getSelectedActive()&&this.isFlippedVertically)o=n.countRows()-1;else if(n.getSelectedActive()){let e=n.getSelectedActive();o=this.isFlippedVertically?Math.max(0,e[0]-1):e[0]-1}return t(o,e)},preventDefault:!1},{keys:[["ArrowDown"]],callback:e=>{let o,n=this.htEditor;if(n.getSelectedActive()||this.isFlippedVertically){if(n.getSelectedActive()){let e=n.getSelectedActive();this.isFlippedVertically?o=e[0]+1:this.isFlippedVertically||(o=Math.min(n.countRows()-1,e[0]+1))}}else o=0;return t(o,e)},preventDefault:!1}],{group:ub,relativeToGroup:dq,position:"before"})}unregisterShortcuts(){super.unregisterShortcuts(),this.hot.getShortcutManager().getContext("editor").removeShortcutsByGroup(ub)}}class uw extends uC{static get EDITOR_TYPE(){return"autocomplete"}query=null;strippedChoices=[];rawChoices=[];#n$=this.hot.guid.slice(0,9);getValue(){let e=this.rawChoices.find(e=>{let t=this.stripValueIfNeeded(e);return(this.#nU(t)?t.value:t)===this.TEXTAREA.value});return eP(e)?e:this.TEXTAREA.value}createElements(){super.createElements(),od(this.htContainer,"autocompleteEditor"),od(this.htContainer,-1===this.hot.rootWindow.navigator.platform.indexOf("Mac")?"":"htMacScroll"),this.hot.getSettings().ariaTags&&ou(this.TEXTAREA,[["type","text"],["role","combobox"],N("listbox"),["aria-autocomplete","list"]])}prepare(e,t,o,n,i,r){super.prepare(e,t,o,n,i,r),this.hot.getSettings().ariaTags&&ou(this.TEXTAREA,[z("false"),["aria-controls",`${this.#n$}-listbox-${e}-${t}`]]),this.htOptions={...this.htOptions,valueGetter:e=>this.#nU(e)?e.value:e}}open(){super.open();let e=this.cellProperties.trimDropdown,t=void 0===e||e,o=this.hot.getSettings().ariaTags,n=Array.isArray(this.cellProperties.source)?this.cellProperties.source:null,i=n?.length,{row:r,col:l}=this;if(this.showEditableElement(),this.focus(),this.addHook("beforeKeyDown",e=>this.onBeforeKeyDown(e)),this.htEditor.addHook("afterScroll",this.#nG),this.htEditor.updateSettings({colWidths:t?[oL(this.TEXTAREA)-2]:void 0,autoColumnSize:!0,modifyColWidth:t?void 0:e=>Math.max(e??0,oL(this.TEXTAREA)-2),renderer:(e,t,r,l,s,a,h)=>{ug(e,t,r,l,s,a,h);let{filteringCaseSensitive:d,allowHtml:c}=this.cellProperties,u=this.cellProperties.locale,g=this.query,p=eO(a);if(c)oy(t,p,!1,"html",this.hot.rootElement);else if(p&&g&&g.length>0){let o=!0===d?p.indexOf(g):iS(p,u).indexOf(iS(g,u));if(-1!==o){let n=p.slice(o,o+g.length),{rootDocument:i}=e;t.innerHTML="",t.appendChild(i.createTextNode(p.slice(0,o)));let r=i.createElement("strong");r.textContent=n,t.appendChild(r),t.appendChild(i.createTextNode(p.slice(o+g.length)))}}o&&ou(t,[["role","option"],...n?[["aria-setsize",i??0]]:[],...n?[["aria-posinset",n.indexOf(a)+1]]:[],["id",`${this.htEditor.rootElement.id}_${r}-${l}`]])},afterSelectionEnd:(e,t)=>{if(o){let o=e=>{ou(e,[G()]),ou(this.TEXTAREA,"aria-activedescendant",e.id)},n=this.htEditor.getCell(e,t,!0);null!==n?o(n):this.htEditor.addHookOnce("afterScrollVertically",()=>{let n=this.htEditor.getCell(e,t,!0);null!==n&&o(n)})}}}),o){let e=R();ou(this.htEditor.view._wt.wtOverlays.wtTable.TABLE,e[0],e[1]),ou(this.htEditor.rootElement,[I(),["aria-live","polite"],["aria-relevant","text"],["id",`${this.#n$}-listbox-${r}-${l}`]]),ou(this.TEXTAREA,...z("true"))}this.hot._registerTimeout(()=>{this.queryChoices(this.TEXTAREA.value)})}close(){this.removeHooksByKey("beforeKeyDown"),super.close(),this.hot.getSettings().ariaTags&&ou(this.TEXTAREA,[z("false")])}discardEditor(e){super.discardEditor(e),this.hot.view.render()}queryChoices(e){let t=this.cellProperties.source;this.query=e,"function"==typeof t?t.call(this.cellProperties,e,e=>{this.rawChoices=e,this.updateChoicesList(this.stripValuesIfNeeded(e))}):Array.isArray(t)?(this.rawChoices=t,this.updateChoicesList(this.stripValuesIfNeeded(t))):this.updateChoicesList([])}updateChoicesList(e){let t=oU(this.TEXTAREA),o=oG(this.TEXTAREA),n=this.cellProperties.sortByRelevance,i=this.cellProperties.filter,r=this.stripValueIfNeeded(this.getValue()),l=this.#nU(r)?r.value:r,s=null,a=e;n||(a=[...a].sort((e,t)=>eO(e).localeCompare(eO(t))));let h=[],d=this.cellProperties.locale,c=this.cellProperties.filteringCaseSensitive,u=c?l:iS(String(l),d);for(let e=0;e<a.length;e++){let t=this.#nU(a[e])?ig(eO(a[e].value)):ig(eO(a[e]));if(-1!==(c?t:iS(t,d)).indexOf(String(u))&&(h.push(e),!1===i))break}!1===i?String(r).length>0&&(s=h[0]):s=(a=h.map(e=>a[e])).indexOf(u)>-1?a.indexOf(u):0,this.strippedChoices=a,0===a.length?this.htEditor.rootElement.style.display="none":this.htEditor.rootElement.style.display="",this.htEditor.loadData(K([a])),a.length>0&&(this.updateDropdownDimensions(),this.flipDropdownVerticallyIfNeeded(),this.flipDropdownHorizontallyIfNeeded(),!0===this.cellProperties.strict&&this.highlightBestMatchingChoice(s??void 0)),this.hot.listen(),oY(this.TEXTAREA,t,t===o?void 0:o)}flipDropdownVerticallyIfNeeded(){let e=super.flipDropdownVerticallyIfNeeded(),{isFlipped:t,spaceAbove:o,spaceBelow:n}=e;return this.limitDropdownIfNeeded(t?o:n),e}limitDropdownIfNeeded(e){let t=this.getDropdownHeight();if(t>e){let o=this.htEditor.stylesHandler.getDefaultRowHeight()??0;if(0===o)return;let n=Math.max(Math.ceil(e/o)-1,1)*o;this.isFlippedVertically&&(this.htEditor.rootElement.style.top=`${parseInt(this.htEditor.rootElement.style.top,10)+t-n}px`),this.setDropdownHeight(n)}}updateDropdownDimensions(){let e=oK(),t=this.getTargetEditorWidth()+e,o=this.getTargetEditorHeight()+e;this.htEditor.updateSettings({width:t,height:o}),this.#nq(),this.htEditor.view._wt.wtTable.alignOverlaysWithTrimmingContainer()}setDropdownHeight(e){this.htEditor.updateSettings({height:e}),this.#nq(),this.htEditor.view._wt.wtTable.alignOverlaysWithTrimmingContainer()}highlightBestMatchingChoice(e){"number"==typeof e?this.htEditor.selectCell(e,0,void 0,void 0,void 0,!1):this.htEditor.deselectCell()}getTargetEditorHeight(){let e=0;if(!this.hot.getCurrentThemeName()){let t=this.htContainer.querySelector(".htCore");if(t){let o=this.hot.rootWindow.getComputedStyle(t);e=parseInt(o.borderTopWidth,10)+parseInt(o.borderBottomWidth,10)}}return Array.from({length:Math.min(this.cellProperties.visibleRows,this.strippedChoices.length)},(e,t)=>t).reduce((e,t)=>e+((this.hot.stylesHandler.getDefaultRowHeight()??0)+ +(0===t)),0)+e}getTargetEditorWidth(){let e=0;if(!this.hot.getCurrentThemeName()){let t=this.htContainer.querySelector(".htCore");if(t){let o=this.hot.rootWindow.getComputedStyle(t);e=parseInt(o.borderInlineStartWidth,10)+parseInt(o.borderInlineEndWidth,10)}}return this.htEditor.getColWidth(0)+e}stripValueIfNeeded(e){return this.stripValuesIfNeeded([e])[0]}stripValuesIfNeeded(e){let{allowHtml:t}=this.cellProperties,o=e=>eO(t?e:ig(String(e)));return e.every(e=>tS(e))?e.map(e=>({key:o(e.key),value:o(e.value)})):e.map(e=>o(e))}#nG=nd(()=>{this.focus()},100);#nq(){this.htEditor.view.hasVerticalScroll()&&this.htEditor.updateSettings({width:this.getTargetEditorWidth()+oX(this.hot.rootDocument)})}#nU(e){return tu(e)&&eP(e.key)&&eP(e.value)}onBeforeKeyDown(e){if(nC(e.keyCode)||e.keyCode===nf.BACKSPACE||e.keyCode===nf.DELETE||e.keyCode===nf.INSERT){let t=10;e.keyCode===nf.C&&(e.ctrlKey||e.metaKey)||(this.isOpened()||(t+=10),this.htEditor&&this.hot._registerTimeout(()=>{this.queryChoices(this.TEXTAREA.value)},t))}}}class uy extends n3{static get EDITOR_TYPE(){return"checkbox"}beginEditing(e,t){if(t&&"mouseup"===t.type&&"TD"===t5(t).nodeName){let e=this.TD.querySelector('input[type="checkbox"]');oh(e,"htBadValue")||e.click()}}finishEditing(){}init(){}open(){}close(){}getValue(){}setValue(){}focus(){}}let uv=/^\d{4}-(0[1-9]|1[0-2])-(0[1-9]|[12]\d|3[01])$/;function uS(e){let t=new Date(e);return Number.isNaN(new Date(`${e}T00:00`).getDate())?t:new Date(t.getTime()+6e4*t.getTimezoneOffset())}function uR(e){if(eN(e))return null;if("string"==typeof e&&uv.test(e)){let[t,o,n]=e.split("-").map(Number);return new Date(t,o-1,n)}return null}let ux=[31,28,31,30,31,30,31,31,30,31,30,31];function uM(e){return e%4==0&&e%100!=0||e%400==0}function uH(e){if("string"!=typeof e||!uv.test(e))return!1;let t=+e.slice(0,4),o=+e.slice(5,7);return+e.slice(8,10)<=(2===o&&uM(t)?29:ux[o-1])}let uE=/^([01]\d|2[0-3]):([0-5]\d)(?::([0-5]\d)(?:\.(\d{1,3}))?)?$/;function uk(e){if(eN(e)||"string"!=typeof e)return null;let t=uE.exec(e);if(!t)return null;let o=Number(t[1]),n=Number(t[2]),i=void 0!==t[3]?Number(t[3]):0,r=t[4];return new Date(1970,0,1,o,n,i,void 0!==r?Number(r.padEnd(3,"0").slice(0,3)):0)}function uT(e){return"string"==typeof e&&uE.test(e)}let uI=/^\d{4}-(0[1-9]|1[0-2])-(0[1-9]|[12]\d|3[01])(?:[T ]([01]\d|2[0-3]):([0-5]\d)(?::([0-5]\d)(?:\.(\d{1,3}))?)?)?$/;function uA(e){if(eN(e)||"string"!=typeof e)return null;let t=uI.exec(e);if(!t)return null;let[o]=e.split(/[T ]/),[n,i,r]=o.split("-").map(Number);return new Date(n,i-1,r,void 0!==t[3]?Number(t[3]):0,void 0!==t[4]?Number(t[4]):0,void 0!==t[5]?Number(t[5]):0,void 0!==t[6]?Number(t[6].padEnd(3,"0").slice(0,3)):0)}function u_(e){if("string"!=typeof e)return!1;let t=uI.exec(e);if(!t)return!1;let o=+e.slice(0,4),n=+t[1];return+t[2]<=(2===n&&uM(o)?29:ux[n-1])}function uO(){let e=new Date;return new Date(e.getFullYear(),e.getMonth(),e.getDate())}function uP(e){let t=uO();return t.setDate(t.getDate()+e),t}function uD(e,t){return e.getFullYear()===t.getFullYear()&&e.getMonth()===t.getMonth()&&e.getDate()===t.getDate()}class uN extends uu{static get EDITOR_TYPE(){return"date"}init(){super.init(),this.hot.addHook("afterSetTheme",(e,t)=>{t||this.close()})}prepare(e,t,o,n,i,r){super.prepare(e,t,o,n,i,r),void 0!==r.datePickerConfig&&tJ(this.hot.rootElement,"datePickerConfig",'The "datePickerConfig" option is not supported. The native date input is used instead of Pikaday.');let l=this.hot.toPhysicalRow(e);this.originalValue=this.hot.getSourceDataAtCell(l,t)}createElements(e){super.createElements("input"),this.TEXTAREA.setAttribute("type","date")}setValue(e){if(eN(e)&&(e=this.cellProperties.defaultDate),!uH(e)){tZ(eu`DateEditor: value must be in ISO date format ("YYYY-MM-DD")\x20
|
|
250
|
+
`,a=s.wrapper,h=s.badge,d=()=>e.hasRowHeaders()&&e.hasColHeaders(),c=()=>{let t=d();a.classList.toggle(cx,!t),e.rootElement?.classList.toggle("ht-license-badge-on",t),cM(e)?.table.classList.toggle("ht-license-badge-corner",t)};c(),e.addHook("afterRender",()=>c());let u=0,g=()=>{let t=cM(e);if(!t||!d())return;let o=t.table.offsetWidth;o>0&&Math.abs(o-u)>1&&(u=o,a.style.setProperty("--ht-license-badge-area-width",`${o}px`))},p=e.rootWindow;if("function"==typeof p.ResizeObserver){let t=new p.ResizeObserver(()=>g()),o=null,n=()=>{let n=cM(e)?.table??null;n!==o&&(t.disconnect(),o=n,n&&t.observe(n))};n(),e.addHook("afterRender",()=>n()),e.addHook("afterDestroy",()=>t.disconnect())}else g(),e.addHook("afterRender",()=>g());h.tabIndex=-1;let m=s.popover;s.popoverTitle.textContent=i.title,s.popoverBody.textContent=i.body(t),s.popoverLink.href=i.linkHref,s.popoverLink.textContent=i.linkText,s.popoverLink.tabIndex=-1;let f=!1;m.addEventListener("mouseenter",()=>{f=!0}),m.addEventListener("mouseleave",()=>{f=!1}),o=()=>{f||a.classList.contains(cR)||a.classList.remove(cS)},(n=e.rootElement)&&(n.addEventListener("mouseover",t=>{let n=t.target instanceof e.rootWindow.Element?t.target:null,i=cM(e)?.thead??null,r=!a.classList.contains(cx)&&null!==n&&null!==i&&i.contains(n);a.classList.toggle(cR,r),o()}),n.addEventListener("mouseleave",()=>{a.classList.remove(cR),o()})),i.dismissible&&(m.classList.add(cv),s.closeButton.tabIndex=-1,s.closeButton.addEventListener("click",()=>{m.classList.remove(cv),a.classList.add(cS)})),r.appendChild(a)}(e,o)}(n=g,te(n.getSettings().licenseKey,"15/09/2026"));let t={top:-1,bottom:-1};this.addHook("afterRender",()=>{if(g.isDestroyed)return;let{view:e}=g;if(!e)return;let o=e.isHorizontallyScrollableByWindow()?e.getTotalTableWidth():e.getWorkspaceWidth();0===o&&g.rootWrapperElement&&(o=g.rootWrapperElement.offsetWidth),g.rootSlotBottomElement&&o!==t.bottom&&(t.bottom=o,g.rootSlotBottomElement.style.width=`${o}px`),g.rootSlotTopElement&&o!==t.top&&(t.top=o,g.rootSlotTopElement.style.width=`${o}px`)})}g.runHooks("init"),this.render(),m&&null===g.rootElement.offsetParent&&(b=o5(g.rootElement,()=>{g&&!g.isDestroyed&&g.view&&(g.view._wt.wtOverlays.updateLastSpreaderSize(),g.view.adjustElementsSize(),g.render())})),"object"==typeof m&&(g.runHooks("afterChange",m[0],m[1]),m=!1),g.runHooks("afterInit")},this._createCellCoords=function(e,t){return g.view._wt.createCellCoords(e,t)},this._createCellRange=function(e,t,o){return g.view._wt.createCellRange(e,t,o)},this.validateCell=function(e,t,o,n){var i;let r=g.getCellValidator(t);function l(e){let n=!(arguments.length>1)||void 0===arguments[1]||arguments[1];if(!n||!0===t.hidden)return void o(e);let i=t.visualCol,r=t.visualRow,l=g.getCell(r,i,!0);if(l&&"TH"!==l.nodeName){let e=g.rowIndexMapper.getRenderableFromVisualIndex(r),t=g.columnIndexMapper.getRenderableFromVisualIndex(i);g.view._wt.getSetting("cellRenderer",e,t,l)}o(e)}if(eB(r)&&(i=r,r=function(e,t){t(i.test(e))}),ns(r)){let o=ns(t.prop)?t.visualCol:t.prop;e=g.runHooks("beforeValidate",e,t.visualRow,o,n),g._registerMicrotask(()=>{r.call(t,e,i=>{g&&(i=g.runHooks("afterValidate",i,e,t.visualRow,o,n),t.valid=i,l(i),g.runHooks("postAfterValidate",i,e,t.visualRow,o,n))})})}else g._registerMicrotask(()=>{t.valid=!0,l(t.valid,!1)})},this.setDataAtCell=function(e,t,o,n){let i,r,a,h=B(e,t,o),d=[],c=n;for(i=0,r=h.length;i<r;i++){let[e,t,o]=h[i];"object"!=typeof h[i]&&to("Method `setDataAtCell` accepts row number or changes array of arrays as its first parameter"),"number"!=typeof h[i][1]&&to("Method `setDataAtCell` accepts row and column number as its parameters. If you want to use object property name, use method `setDataAtRowProp`");let n="number"==typeof t?t:0;a=n>=this.countCols()?n:l.colToProp(n),d.push([e,a,s.getAtCell(this.toPhysicalRow(e),t),o])}c||"object"!=typeof e||(c=t);let u=L(d,c);g.runHooks("afterSetDataAtCell",u,c),D(u,c,()=>{N(u,c)})},this.setDataAtRowProp=function(e,t,o,n){let i,r,l=B(e,t,o),a=[],h=n;for(i=0,r=l.length;i<r;i++){let[e,t,o]=l[i];a.push([e,t,s.getAtCell(this.toPhysicalRow(e),t),o])}h||"object"!=typeof e||(h=t);let d=L(a,h);g.runHooks("afterSetDataAtRowProp",d,h),D(d,h,()=>{N(d,h)})},this.listen=function(){g&&!g.isListening()&&(uo.forEach(e=>{g!==e&&e.unlisten()}),ue=g.guid,g.runHooks("afterListen"))},this.unlisten=function(){this.isListening()&&(ue=null,g.runHooks("afterUnlisten"))},this.isListening=function(){return ue===g.guid},this.destroyEditor=function(){let e=arguments.length>0&&void 0!==arguments[0]&&arguments[0],t=!(arguments.length>1)||void 0===arguments[1]||arguments[1];h.closeEditor(e),g.view.render(),t&&E.isSelected()&&h.prepareEditor()},this.populateFromArray=function(e,t,o,n,i,r,l){("object"!=typeof o||"object"!=typeof o[0])&&to("populateFromArray parameter `input` must be an array of arrays");let s="number"==typeof n?g._createCellCoords(n,i):void 0;return a.populateFromArray(g._createCellCoords(e,t),o,s,r,l)},this.spliceCol=function(e,t,o){for(var n=arguments.length,i=Array(n>3?n-3:0),r=3;r<n;r++)i[r-3]=arguments[r];return l.spliceCol(e,t,o,...i)},this.spliceRow=function(e,t,o){for(var n=arguments.length,i=Array(n>3?n-3:0),r=3;r<n;r++)i[r-3]=arguments[r];return l.spliceRow(e,t,o,...i)},this.getSelected=function(){if(E.isSelected())return Q(E.getSelectedRange().ranges,e=>{let{from:t,to:o}=e;return[t.row,t.col,o.row,o.col]})},this.getSelectedLast=function(){let e,t=g.getSelected();return t&&t.length>0&&(e=t[t.length-1]),e},this.getSelectedActive=function(){let e=g.getSelectedRangeActive();if(!e)return;let{from:t,to:o}=e;return[t.row,t.col,o.row,o.col]},this.getSelectedRange=function(){if(E.isSelected())return Array.from(E.getSelectedRange())},this.getSelectedRangeLast=function(){let e,t=g.getSelectedRange();return t&&t.length>0&&(e=t[t.length-1]),e},this.getSelectedRangeActive=function(){return E.getActiveSelectedRange()},this.getActiveSelectionLayerIndex=function(){return E.getActiveSelectionLayerIndex()},this.emptySelectedCells=function(e){if(!E.isSelected()||0===this.countRows()||0===this.countCols())return;let t=[];J(E.getSelectedRange(),e=>{if(e.isSingleHeader())return;let o=e.getTopStartCorner(),n=e.getBottomEndCorner(),i=Math.max(o.row,0),r=Math.min(n.row,this.countRows()-1),l=Math.max(o.col,0),s=Math.min(n.col,this.countCols()-1);if(i>r||l>s)return;let a=e=>{ik(l,s,o=>{this.getCellMetaTransient(e,o).readOnly||t.push([e,o,null])})};ik(i,r,a)}),t.length>0&&this.setDataAtCell(t,e)},this.isRenderSuspended=function(){return this.renderSuspendedCounter>0},this.suspendRender=function(){this.renderSuspendedCounter+=1},this.resumeRender=function(){let e=this.renderSuspendedCounter-1;this.renderSuspendedCounter=Math.max(e,0),this.isRenderSuspended()||e!==this.renderSuspendedCounter||g.view.render()},this.render=function(){this.view&&(this.forceFullRender=!0,this.isRenderSuspended()||g.view.render())},this.batchRender=function(e){g.suspendRender();let t=e();return g.resumeRender(),t},this.isExecutionSuspended=function(){return this.executionSuspendedCounter>0},this.suspendExecution=function(){this.executionSuspendedCounter+=1,this.columnIndexMapper.suspendOperations(),this.rowIndexMapper.suspendOperations()},this.resumeExecution=function(){let e=arguments.length>0&&void 0!==arguments[0]&&arguments[0],t=this.executionSuspendedCounter-1;this.executionSuspendedCounter=Math.max(t,0),(!this.isExecutionSuspended()&&t===this.executionSuspendedCounter||e)&&(this.columnIndexMapper.resumeOperations(),this.rowIndexMapper.resumeOperations())},this.batchExecution=function(e){let t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];g.suspendExecution();let o=e();return g.resumeExecution(t),o},this.batch=function(e){g.suspendRender(),g.suspendExecution();let t=e();return g.resumeExecution(),g.resumeRender(),t},this.refreshDimensions=function(){if(!g.view)return;let e=g.view,{width:t,height:o}=e.getLastSize(),{width:n,height:i}=g.rootElement.getBoundingClientRect(),r=n!==t||i!==o;!1!==g.runHooks("beforeRefreshDimensions",{width:t,height:o},{width:n,height:i},r)&&((r||e._wt.wtOverlays.scrollableElement===g.rootWindow)&&(e.setLastSize(n,i),e.adjustElementsSize(),g.render()),g.runHooks("afterRefreshDimensions",{width:t,height:o},{width:n,height:i},r))},this.updateData=function(e,t){dO(e,e=>{l=e},e=>{l=e,g.columnIndexMapper.fitToLength(this.getInitialColumnCount()),g.rowIndexMapper.fitToLength(this.countSourceRows()),a.adjustRowsAndCols(),E.markSource("updateData"),E.refresh(),E.markEndSource()},{hotInstance:g,dataMap:l,dataSource:s,internalSource:"updateData",source:t,metaManager:S,firstRun:m})},this.loadData=function(e,t){dO(e,e=>{l=e},()=>{S.clearCellsCache(),g.initIndexMappers(),a.adjustRowsAndCols(),E.markSource("loadData"),E.refresh(),E.markEndSource(),m&&(m=[null,"loadData"])},{hotInstance:g,dataMap:l,dataSource:s,internalSource:"loadData",source:t,metaManager:S,firstRun:m})},this.getInitialColumnCount=function(){let e=R.columns,t=0;if(Array.isArray(e))t=e.length;else if(ns(e))if("array"===g.dataType){let o=g.countSourceCols();for(let n=0;n<o;n+=1)e(n)&&(t+=1)}else("object"===g.dataType||"function"===g.dataType)&&(t=l.colToPropCache.length);else if(eP(R.dataSchema)){let e=l.getSchema();t=Array.isArray(e)?e.length:tb(e)}else t=g.countSourceCols();return t},this.initIndexMappers=function(){this.columnIndexMapper.initToLength(this.getInitialColumnCount()),this.rowIndexMapper.initToLength(this.countSourceRows())},this.getData=function(e,t,o,n){return eD(e)?l.getAll():l.getRange(g._createCellCoords(e,t),g._createCellCoords(o,n),dT.DESTINATION_RENDERER)},this.getCopyableText=function(e,t,o,n){return l.getCopyableText(g._createCellCoords(e,t),g._createCellCoords(o,n))},this.getCopyableData=function(e,t){return l.getCopyable(e,l.colToProp(t))},this.getCopyableSourceData=function(e,t){return s.getCopyable(e,l.colToProp(t))},this.getSchema=function(){return l.getSchema()},this.updateSettings=function(e){var t,o;let n,i,r,s,h,d,c,u=arguments.length>1&&void 0!==arguments[1]&&arguments[1],p=(m?g.loadData:g.updateData).bind(this);for(d in eP(e.rows)&&to('The "rows" setting is no longer supported. Do you mean startRows, minRows or maxRows?'),eP(e.cols)&&to('The "cols" setting is no longer supported. Do you mean startCols, minCols or maxCols?'),eP(e.ganttChart)&&to('Since 8.0.0 the "ganttChart" setting is no longer supported.'),i=Array.isArray((t=e).columns)?t.columns:[],r=Array.isArray(t.cell)?t.cell:[],s=[t,...i,...r],un.forEach(e=>{let{name:t,version:o,migrationUrl:n}=e;s.some(e=>tu(e)&&eP(e[t]))&&t1(`Core.removedOption.${t}`,`The "${t}" setting was removed in Handsontable ${o} and is ignored. See ${n} for the migration path.`)}),V=null,eP(e.rowHeights)&&eP(e.minRowHeights)&&tZ("Both `rowHeights` and `minRowHeights` are defined in your configuration. As one is the alias of the other, only one of them can be used at a time. `rowHeights` will be used as the row height configuration."),e)if("data"===d||"language"===d);else if("className"===d)T("className",e.className);else if("tableClassName"===d&&g.table)T("tableClassName",e.tableClassName),g.view._wt.wtOverlays.syncOverlayTableClassNames();else if(nL.getSingleton().isRegistered(d)||nL.getSingleton().isDeprecated(d)){let t=e[d];ns(t)?(nL.getSingleton().addAsFixed(d,t,g),R[d]=t):Array.isArray(t)&&(nL.getSingleton().add(d,t,g),R[d]=t)}else!u&&tw(e,d)&&(x[d]=e[d]);let b=ct(g.rootContainer),C=tw(e,"themeName"),w=tw(e,"theme");if(C&&w&&tZ("Both `theme` and `themeName` are defined in your configuration. These options are aliases and cannot be used together. The `themeName` option will be ignored."),u){let t;w&&"string"==typeof e.theme?t=e.theme:C&&"string"==typeof e.themeName&&e.themeName&&!w?(t=e.themeName,R.theme=e.themeName,R.themeName=void 0):b?t=b:g.themeManager&&(t=g.themeManager.getClassName()),g.useTheme(t??null)}else{let t=g.getCurrentThemeName();if(w&&"string"==typeof e.theme&&t!==e.theme)g.themeManager?.destroy(),g.useTheme(e.theme);else if(C&&!w&&t!==e.themeName)g.themeManager?.destroy(),R.theme=e.themeName,R.themeName=void 0,g.useTheme(e.themeName);else if(l8(g)&&!b&&tu(e.theme))if(null===g.themeManager)_(e.theme,A()),g.useTheme(g.themeManager.getClassName());else{let t;t="function"!=typeof e.theme.getThemeConfig?c7(e.theme):e.theme,g.themeManager.update(t),g.useTheme(g.themeManager.getClassName())}}let y=(!!tw(h=I(e),"colorScheme")||!!tw(h,"density"))&&(g.themeManager?!!g.themeManager.setOverrides(h)&&!u&&(g.stylesHandler.clearCache(),!0):(c$(h.colorScheme)&&c$(h.density)||f||(f=!0,tZ("The `colorScheme` and `density` options require the theme engine, so they have no effect when the theme is enabled by a CSS class name. Pass a theme config object or a `ThemeBuilder` instance to the `theme` option, or remove the `ht-theme-*` class from the container element to use the default theme.")),!1));!0===g.runHooks("hasExternalDataSource")?(e.data&&tZ('The "data" setting is ignored when "hasExternalDataSource" returns `true`.'),u||tw(e,"data")||tw(e,"dataProvider")?p([],"updateSettings"):void 0!==e.columns&&(l.createMap(),g.initIndexMappers())):void 0===e.data&&void 0===R.data?p(null,"updateSettings"):void 0!==e.data?p(e.data,"updateSettings"):void 0!==e.columns&&(l.createMap(),g.initIndexMappers()),!m&&e.language&&(hF(n=sL(o=e.language))?(g.runHooks("beforeLanguageChange",n),x.language=n,g.runHooks("afterLanguageChange",n)):sV(o));let v=g.countCols(),M=R.columns;if(void 0!==e.cell||void 0!==e.cells||void 0!==e.columns){let e=S.getUserDefinedCellMetas();S.clearCache(),e.forEach(e=>{let{physicalRow:t,physicalColumn:o,key:n,value:i}=e;S.setCellMeta(t,o,n,i)})}if(v>0)for(d=0,c=0;d<v;d++){if(M){let e=ns(M)?M(d):M[c];e&&S.updateColumnMeta(c,e)}c+=1}if(eP(e.cell)){S.disableUserDefinedMetaRecording();try{e.cell.forEach(e=>{g.setCellMetaObject(e.row,e.col,e)})}finally{S.enableUserDefinedMetaRecording()}}g.runHooks("afterCellMetaReset"),m&&dA(g,"init");let H=g.rootElement.style.height;""!==H&&(H=parseInt(g.rootElement.style.height,10)),u&&g.rootElement.getAttribute("style")&&(g.rootElement.dataset.initialstyle=g.rootElement.getAttribute("style")??"");let k=e.height;if(void 0!==e.height)if(ns(k)&&(k=k()),null===(k=g.runHooks("beforeHeightChange",k))){let e=g.rootElement.dataset.initialstyle;e&&(e.indexOf("height")>-1||e.indexOf("overflow")>-1)?g.rootElement.setAttribute("style",e):(g.rootElement.style.height="",g.rootElement.style.overflow="")}else void 0!==k&&(g.rootElement.style.height=isNaN(k)?`${k}`:`${k}px`,g.rootElement.style.overflow="clip");if(void 0!==e.width){let t=e.width;ns(t)&&(t=t()),t=g.runHooks("beforeWidthChange",t),g.rootElement.style.width=isNaN(t)?`${t}`:`${t}px`}if(void 0!==e.height||void 0!==e.width){let e=g.rootElement.style.height,t=g.rootElement.style.width,o=/%|v(?:w|h|min|max)/i.test(t),n=""!==t&&"auto"!==t&&!o;if(!e){let e=g.rootElement.style.overflowX;(""===e||"clip"===e)&&(g.rootElement.style.overflowX=n?"clip":"")}}u||(g.view&&(g.view._wt.wtViewport.resetHasOversizedColumnHeadersMarked(),g.view._wt.exportSettingsAsClassNames(),g.view.invalidateIndexSizesCache()),E.updateHighlightClassNames(),g.runHooks("afterUpdateSettings",e)),a.adjustRowsAndCols(),g.view&&!m&&(g.render(),g.view._wt.wtOverlays.adjustElementsSize()),y&&g.themeManager&&g.runHooks("afterSetTheme",g.themeManager.getClassName(),!1),!u&&g.view&&(""===H||""===k||void 0===k)&&H!==k&&g.view._wt.wtOverlays.updateMainScrollableElements(),l8(g)&&$?.applyConfig(R.layout)},this.getValue=function(){let e=g.getSelectedRangeActive();if(R.getValue){if(ns(R.getValue))return R.getValue.call(g);else if(e&&"string"==typeof R.getValue){let t=e.highlight.row??0;return g.getData()[t][R.getValue]}}else if(e)return g.getDataAtCell(e.highlight.row,e.highlight.col);return null},this.getSettings=function(){return R},this.clear=function(){this.selectAll(),this.emptySelectedCells(),this.deselectCell()},this.alter=function(e,t,o,n,i){a.alter(e,t,o,n,i)},this.getCell=function(e,t){let o=arguments.length>2&&void 0!==arguments[2]&&arguments[2],n=t,i=e;if(t>=0){if(g.columnIndexMapper.isHidden(g.toPhysicalColumn(t)))return null;n=g.columnIndexMapper.getRenderableFromVisualIndex(t)}if(e>=0){if(g.rowIndexMapper.isHidden(g.toPhysicalRow(e)))return null;i=g.rowIndexMapper.getRenderableFromVisualIndex(e)}return null===i||null===n||void 0===i||void 0===n?null:g.view.getCellAtCoords(g._createCellCoords(i,n),o)},this.getCoords=function(e){let t=g.view._wt.wtTable.getCoords(e);if(null===t)return null;let{row:o,col:n}=t,i=o,r=n;return null!==o&&o>=0&&(i=g.rowIndexMapper.getVisualFromRenderableIndex(o)),null!==n&&n>=0&&(r=g.columnIndexMapper.getVisualFromRenderableIndex(n)),g._createCellCoords(i,r)},this.colToProp=function(e){return l.colToProp(e)},this.propToCol=function(e){return l.propToCol(e)},this.toVisualRow=e=>g.rowIndexMapper.getVisualFromPhysicalIndex(e),this.toVisualColumn=e=>g.columnIndexMapper.getVisualFromPhysicalIndex(e),this.toPhysicalRow=e=>g.rowIndexMapper.getPhysicalFromVisualIndex(e),this.toPhysicalColumn=e=>g.columnIndexMapper.getPhysicalFromVisualIndex(e),this.getDataAtCell=function(e,t){return l.get(e,l.colToProp(t))},this.getDataAtRowProp=function(e,t){return l.get(e,t)},this.getDataAtCol=function(e){let t=[],o=l.getRange(g._createCellCoords(0,e),g._createCellCoords(R.data.length-1,e),dT.DESTINATION_RENDERER);for(let e=0;e<o.length;e+=1)for(let n=0;n<o[e].length;n+=1)t.push(o[e][n]);return t},this.getDataAtProp=function(e){let t=[],o=l.getRange(g._createCellCoords(0,l.propToCol(e)),g._createCellCoords(R.data.length-1,l.propToCol(e)),dT.DESTINATION_RENDERER);for(let e=0;e<o.length;e+=1)for(let n=0;n<o[e].length;n+=1)t.push(o[e][n]);return t},this.getSourceData=function(e,t,o,n){return void 0===e?s.getData():s.getByRange(g._createCellCoords(e,t??null),g._createCellCoords(o??null,n??null))},this.getSourceDataArray=function(e,t,o,n){return void 0===e?s.getData(!0):s.getByRange(g._createCellCoords(e,t??null),g._createCellCoords(o??null,n??null),!0)},this.getSourceDataAtCol=function(e){return s.getAtColumn(e)},this.setSourceDataAtCell=function(e,t,o,n){let i=B(e,t,o),r=g.hasHook("afterSetSourceDataAtCell"),l=[],a=(e,t)=>{let o=g.toVisualRow(e),n=g.toVisualColumn(t);return Number.isInteger(n)?g.getCellMetaTransient(o,n):{...Object.getPrototypeOf(R),...R}};r&&J(i,e=>{let[t,o,n]=e,i=n0(n,a(t,o));l.push([t,o,s.getAtCell(t,o),i])}),J(i,e=>{let[t,o,i]=e,r=a(t,o),l=n0(i,r);(function(e,t,o){let n=t.sourceDataValidator;if(!ns(n)||!0===n(e,t,o))return!0;let{row:i,col:r,sourceDataWarningMessage:l,allowInvalid:s}=t;return l&&d_(l,[{row:i,col:r,value:e}]),!0===s})(l,r,n??"setSourceDataAtCell")&&s.setAtCell(t,o,l)}),r&&this.runHooks("afterSetSourceDataAtCell",l,n),this.render();let h=g.getActiveEditor();h&&eP(h.refreshValue)&&h.refreshValue()},this.getSourceDataAtRow=function(e){return s.getAtRow(e)},this.getSourceDataAtCell=function(e,t){return s.getAtCell(e,t)},this.getDataAtRow=function(e){return l.getRange(g._createCellCoords(e,0),g._createCellCoords(e,this.countCols()-1),dT.DESTINATION_RENDERER)[0]||[]},this.getDataType=function(e,t,o,n){let i=void 0===e?[0,0,g.countRows(),g.countCols()]:[e,t,o,n],[r,l]=i,[,,s,a]=i,h=null,d=null;void 0===s&&(s=r),void 0===a&&(a=l);let c="mixed";return ik(Math.max(Math.min(r,s),0),Math.max(r,s),e=>{let t=!0;return ik(Math.max(Math.min(l,a),0),Math.max(l,a),o=>(d=g.getCellMetaTransient(e,o).type??null,h?t=h===d:h=d,t)),c=t?d??"mixed":"mixed",t}),c},this.removeCellMeta=function(e,t,o){let[n,i]=[g.toPhysicalRow(e),g.toPhysicalColumn(t)],r=S.getCellMetaKeyValue(n,i,o);!1!==g.runHooks("beforeRemoveCellMeta",e,t,o,r)&&(S.removeCellMeta(n,i,o),g.runHooks("afterRemoveCellMeta",e,t,o,r))},this.spliceCellsMeta=function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;for(var o=arguments.length,n=Array(o>2?o-2:0),i=2;i<o;i++)n[i-2]=arguments[i];n.length>0&&!Array.isArray(n[0])&&to("The 3rd argument (cellMetaRows) has to be passed as an array of cell meta objects array."),t>0&&S.removeRow(g.toPhysicalRow(e),t),n.length>0&&J(n.reverse(),t=>{S.createRow(g.toPhysicalRow(e)),J(t,(t,o)=>{this.setCellMetaObject(e,o,t)})}),g.render()},this.setCellMetaObject=function(e,t,o){"object"==typeof o&&tp(o,(o,n)=>{this.setCellMeta(e,t,n,o)})},this._setCellMetaDeclarative=function(e,t,o,n){let i=e,r=t;e<g.countRows()&&(i=g.toPhysicalRow(e)),t<g.countCols()&&(r=g.toPhysicalColumn(t)),S.disableUserDefinedMetaRecording();try{S.setCellMeta(i,r,o,n)}finally{S.enableUserDefinedMetaRecording()}},this.setCellMeta=function(e,t,o,n){if(!1===g.runHooks("beforeSetCellMeta",e,t,o,n))return;let i=e,r=t;e<g.countRows()&&(i=g.toPhysicalRow(e)),t<g.countCols()&&(r=g.toPhysicalColumn(t)),S.setCellMeta(i,r,o,n),g.runHooks("afterSetCellMeta",e,t,o,n)},this.getCellsMeta=function(){return S.getCellsMeta()},this.getCellMeta=function(e,t){let o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{skipMetaExtension:!1},n=g.toPhysicalRow(e),i=g.toPhysicalColumn(t);return null===n&&(n=e),null===i&&(i=t),S.getCellMeta(n,i,{visualRow:e,visualColumn:t,...o})},this.getCellMetaTransient=function(e,t){let o=g.toPhysicalRow(e),n=g.toPhysicalColumn(t);return null===o&&(o=e),null===n&&(n=t),S.getCellMetaTransient(o,n,{visualRow:e,visualColumn:t})},this.getColumnMeta=function(e){return S.getColumnMeta(g.toPhysicalColumn(e))},this.getCellMetaAtRow=function(e){return S.getCellsMetaAtRow(e)},this.isColumnModificationAllowed=function(){return!("object"===g.dataType||R.columns)},this.getCellRenderer=function(e,t){let o="number"==typeof e?g.getCellMeta(e,t).renderer:e.renderer;return"string"==typeof o?i0(o):eD(o)?i0("text"):o},this.getCellEditor=function(e,t){let o="number"==typeof e?g.getCellMeta(e,t).editor:e.editor;return"string"==typeof o?nZ(o):eD(o)?nZ("text"):o},this.getCellValidator=function(e,t){let o="number"==typeof e?g.getCellMeta(e,t).validator:e.validator;return"string"==typeof o?i7(o):o},this.validateCells=function(e){this._validateCells(e)},this.validateRows=function(e,t){Array.isArray(e)||to("validateRows parameter `rows` must be an array"),this._validateCells(t,e)},this.validateColumns=function(e,t){Array.isArray(e)||to("validateColumns parameter `columns` must be an array"),this._validateCells(t,void 0,e)},this._validateCells=function(e,t,o){let n=O();e&&(n.onQueueEmpty=e);let i=g.countRows()-1;for(;i>=0;){if(void 0!==t&&-1===t.indexOf(i)){i-=1;continue}let e=g.countCols()-1;for(;e>=0;){if(void 0!==o&&-1===o.indexOf(e)){e-=1;continue}n.addValidatorToQueue();let t=i,r=e,l=g.getCellMetaTransient(t,r);g.validateCell(g.getDataAtCell(t,r),l,e=>{"boolean"!=typeof e&&to("Validation error: result is not boolean"),!1===e&&(n.valid=!1,g.getCellMeta(t,r,{skipMetaExtension:!0}).valid=!1),n.removeValidatorFormQueue()},"validateCells"),e-=1}i-=1}n.checkIfQueueIsEmpty()},this.getRowHeader=function(e){let t=R.rowHeaders,o=e;if(void 0!==o&&(o=g.runHooks("modifyRowHeader",o)),void 0===o){let e=[];ik(g.countRows()-1,t=>{e.push(g.getRowHeader(t))}),t=e}else Array.isArray(t)&&void 0!==t[o]?t=t[o]:ns(t)?t=t(o):t&&"string"!=typeof t&&"number"!=typeof t&&(t=o+1);return t},this.hasRowHeaders=function(){return!!R.rowHeaders},this.hasColHeaders=function(){if(void 0!==R.colHeaders&&null!==R.colHeaders)return!!R.colHeaders;for(let e=0,t=g.countCols();e<t;e++)if(g.getColHeader(e))return!0;return!1};let V=null;this.getColHeader=function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:-1,o=g.runHooks("modifyColHeader",e);if(void 0===o){let e=[],t=g.countCols();for(let o=0;o<t;o++)e.push(g.getColHeader(o));return e}let n=R.colHeaders,i=R.columns,r="function"==typeof i?i:null,l=g.toPhysicalColumn(o),s=null;if(null!==r){let e=g.countCols();if(null===V||V.columns!==r||V.columnsLen!==e){let t=[];for(let o=0;o<e;o++)r(o)&&t.push(o);V={columns:r,columnsLen:e,indexes:t}}s=r(V.indexes[l])??null}return!1===R.colHeaders?n=null:s&&s.title?n=s.title:i&&!ns(i)&&i[l]&&i[l].title?n=i[l].title:Array.isArray(R.colHeaders)&&void 0!==R.colHeaders[l]?n=R.colHeaders[l]:ns(R.colHeaders)?n=R.colHeaders(l):R.colHeaders&&"string"!=typeof R.colHeaders&&"number"!=typeof R.colHeaders&&(n=sl(o)),n=g.runHooks("modifyColumnHeaderValue",n,e,t)},this._getColWidthFromSettings=function(e){let t;if(e>=0&&(t=g.getCellMeta(0,e).width),(void 0===t||t===R.width)&&(t=R.colWidths),null!=t){switch(typeof t){case"object":t=t[e];break;case"function":t=t(e)}"string"==typeof t&&(t=Number.parseInt(t,10))}return t},this.getColWidth=function(e,t){let o=g._getColWidthFromSettings(e);return void 0===(o=g.runHooks("modifyColWidth",o,e,t))&&(o=50),o},this._getRowHeightFromSettings=function(e){let t=g.stylesHandler.getDefaultRowHeight(e),o=R.rowHeights??R.minRowHeights;if(null!=o){switch(typeof o){case"object":o=o[e];break;case"function":o=o(e)}"string"==typeof o&&(o=Number.parseInt(o,10))}let n=o;return null!=n&&null!==t&&n<t?t:n},this.getRowHeight=function(e,t){let o=g._getRowHeightFromSettings(e);return g.runHooks("modifyRowHeight",o,e,t)},this.countSourceRows=function(){return s.countRows()},this.countSourceCols=function(){return s.countFirstRowKeys()},this.countRows=function(){return l.getLength()},this.countCols=function(){return Math.min(R.maxCols,g.columnIndexMapper.getNotTrimmedIndexesLength())},this.countRenderedRows=function(){let e=g.view;return e?._wt.drawn?e._wt.wtTable.getRenderedRowsCount():-1},this.countVisibleRows=function(){let e=g.view;return e?._wt.drawn?e._wt.wtTable.getVisibleRowsCount():-1},this.countRenderedCols=function(){let e=g.view;return e?._wt.drawn?e._wt.wtTable.getRenderedColumnsCount():-1},this.countVisibleCols=function(){let e=g.view;return e?._wt.drawn?e._wt.wtTable.getVisibleColumnsCount():-1},this.countRowHeaders=function(){let e=g.view;return e?e.getRowHeadersCount():0},this.countColHeaders=function(){let e=g.view;return e?e.getColumnHeadersCount():0},this.countEmptyRows=function(){let e=arguments.length>0&&void 0!==arguments[0]&&arguments[0],t=0;return iT(g.countRows()-1,o=>{if(g.isEmptyRow(o))t+=1;else if(!0===e)return!1}),t},this.countEmptyCols=function(){let e=arguments.length>0&&void 0!==arguments[0]&&arguments[0],t=0;return iT(g.countCols()-1,o=>{if(g.isEmptyCol(o))t+=1;else if(!0===e)return!1}),t},this.isEmptyRow=function(e){return R.isEmptyRow.call(g,e)},this.isEmptyCol=function(e){return R.isEmptyCol.call(g,e)},this.selectCell=function(e,t,o,n){let i=!(arguments.length>4)||void 0===arguments[4]||arguments[4],r=!(arguments.length>5)||void 0===arguments[5]||arguments[5];if(eD(e)||eD(t))return!1;let l=[[null==e||Number.isNaN(Number(e))?0:Number(e),null==t||"number"==typeof t&&Number.isNaN(t)?0:t,eD(o)?void 0:o,eD(n)?void 0:n]];return g.selectCells(l,i,r)},this.selectCells=function(){let e,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[[]],o=!(arguments.length>1)||void 0===arguments[1]||arguments[1],n=!(arguments.length>2)||void 0===arguments[2]||arguments[2];!1===o&&c.suspend(),!1===n&&d.suspend();try{e=E.selectCells(t)}finally{c.resume(),d.resume()}return e&&n&&g.listen(),e},this.selectColumns=function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:e,o=arguments.length>2?arguments[2]:void 0;return E.selectColumns(e,t,o)},this.selectRows=function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:e,o=arguments.length>2?arguments[2]:void 0;return E.selectRows(e,t,o)},this.deselectCell=function(){E.deselect()},this.selectAll=function(){let e=!(arguments.length>0)||void 0===arguments[0]||arguments[0],t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:e,o=arguments.length>2?arguments[2]:void 0;c.skipNextScrollCycle(),E.selectAll(e,t,o)};let F=(e,t)=>e.getNearestNotHiddenIndex(t,1,!0);this.scrollViewportTo=function(e,t){"number"==typeof e&&(e={row:arguments[0],col:arguments[1],verticalSnap:arguments[2]?"bottom":"top",horizontalSnap:arguments[3]?"end":"start",considerHiddenIndexes:arguments[4]??!0});let{row:o,col:n,considerHiddenIndexes:i}=e??{},r=o,l=n;if(ns(t)&&this.addHookOnce("afterScroll",t),void 0===i||i){var s,a;let e,t,i,h,d=(s=o,a=n,e=void 0!==s&&Number.isInteger(s)&&s>=0,t=void 0!==a&&Number.isInteger(a)&&a>=0,i=e?F(g.rowIndexMapper,s):void 0,h=t?F(g.columnIndexMapper,a):void 0,null!==i&&null!==h&&{renderableRow:e?g.rowIndexMapper.getRenderableFromVisualIndex(i)??void 0:s,renderableColumn:t?g.columnIndexMapper.getRenderableFromVisualIndex(h)??void 0:a});if(!1===d)return!1;r=d.renderableRow,l=d.renderableColumn}let h=Number.isInteger(r),d=Number.isInteger(l),c=!1;return h&&r>=0&&d&&l>=0?c=g.view.scrollViewport(g._createCellCoords(r,l),e.horizontalSnap,e.verticalSnap):h&&r>=0&&(d&&l<0||!d)?c=g.view.scrollViewportVertically(r,e.verticalSnap):d&&l>=0&&(h&&r<0||!h)&&(c=g.view.scrollViewportHorizontally(l,e.horizontalSnap)),ns(t)&&(c?this.view.render():(this.removeHook("afterScroll",t),this._registerMicrotask(()=>t()))),c},this.scrollToFocusedCell=function(e){if(!g.selection.isSelected())return!1;ns(e)&&g.addHookOnce("afterScroll",e);let{highlight:t}=g.getSelectedRangeActive(),o=g.scrollViewportTo(t.toObject());return o?g.view.render():ns(e)&&(g.removeHook("afterScroll",e),g._registerMicrotask(()=>e())),o},this.destroy=function(){g._clearTimeouts(),g._clearMicrotasks(),b?.disconnect(),b=null,g.view&&g.view.destroy(),s&&s.destroy(),s=null,l8(this)&&(0!==cr&&(1===cr&&(ci.remove(),ci=null),cr-=1),this.getFocusScopeManager().destroy(),$?.destroy(),g.themeManager?.destroy()),this.getShortcutManager().destroy(),H.clear(),S.clearCache(),uo.delete(this.guid),p.destroy(),h&&h.destroy(),g.rootContainer&&om(g.rootContainer),g.rootPortalElement&&g.rootPortalElement.remove(),g.batchExecution(()=>{g.rowIndexMapper.destroy(),g.columnIndexMapper.destroy(),M.getItems().forEach(e=>{let[,t]=e;t.destroy()}),M.clear(),g.runHooks("afterDestroy")},!0),nL.getSingleton().destroy(g),tp(g,(e,t,o)=>{var n;ns(e)?o[t]=(n=t,()=>{to(`The "${n}" method cannot be called because this Handsontable instance has been destroyed`)}):"guid"!==t&&(o[t]=null)}),g.isDestroyed=!0,l&&l.destroy(),l=null,a=null,E=null,h=null,g=null},this.getActiveEditor=function(){return h?.getActiveEditor()},this.getFirstRenderedVisibleRow=function(){return g.view.getFirstRenderedVisibleRow()},this.getLastRenderedVisibleRow=function(){return g.view.getLastRenderedVisibleRow()},this.getFirstRenderedVisibleColumn=function(){return g.view.getFirstRenderedVisibleColumn()},this.getLastRenderedVisibleColumn=function(){return g.view.getLastRenderedVisibleColumn()},this.getFirstFullyVisibleRow=function(){return g.view.getFirstFullyVisibleRow()},this.getLastFullyVisibleRow=function(){return g.view.getLastFullyVisibleRow()},this.getFirstFullyVisibleColumn=function(){return g.view.getFirstFullyVisibleColumn()},this.getLastFullyVisibleColumn=function(){return g.view.getLastFullyVisibleColumn()},this.getFirstPartiallyVisibleRow=function(){return g.view.getFirstPartiallyVisibleRow()},this.getLastPartiallyVisibleRow=function(){return g.view.getLastPartiallyVisibleRow()},this.getFirstPartiallyVisibleColumn=function(){return g.view.getFirstPartiallyVisibleColumn()},this.getLastPartiallyVisibleColumn=function(){return g.view.getLastPartiallyVisibleColumn()},this.getPlugin=function(e){return M.getItem(ia(e))},this.getPluginName=function(e){return M.getId(e)},this.getInstance=function(){return g},this.addHook=function(e,t,o){nL.getSingleton().add(e,t,g,o)},this.hasHook=function(e){return nL.getSingleton().has(e,g)||nL.getSingleton().has(e)},this.addHookOnce=function(e,t,o){nL.getSingleton().once(e,t,g,o)},this.removeHook=function(e,t){nL.getSingleton().remove(e,t,g)},this.runHooks=function(e,t,o,n,i,r,l){return nL.getSingleton().run(g,e,t,o,n,i,r,l)},this.getTranslatedPhrase=function(e,t){return hU(R.language,e,t)},this.toHTML=()=>ie(this),this.toTableElement=()=>{let e=g.rootDocument.createElement("div");return e.insertAdjacentHTML("afterbegin",ie(g)),e.firstElementChild},this.timeouts=[],this.useTheme=e=>{let t=!!m;this.stylesHandler.useTheme(e??void 0);let o=this.stylesHandler.getThemeName();!t&&o&&(ct(this.rootContainer)&&(oc(this.rootContainer,/ht-theme-.*/g),od(this.rootContainer,o)),g.render(),g.scrollViewportTo(0,0)),this.runHooks("afterSetTheme",o,t)},this.getCurrentThemeName=()=>g.stylesHandler.getThemeName()??null,this.getTableHeight=()=>g.rootElement.offsetHeight,this.getTableWidth=()=>g.rootElement.offsetWidth,this._registerTimeout=function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,o=e;return"function"==typeof o&&(o=setTimeout(o,t)),this.timeouts.push(o),o},this._clearTimeouts=function(){J(this.timeouts,e=>{clearTimeout(e)})},this.microtasks=[],this._registerMicrotask=function(e){let t={cancelled:!1};this.microtasks.push(t),this.rootWindow.queueMicrotask(()=>{t.cancelled||e()})},this._clearMicrotasks=function(){J(this.microtasks,e=>{e.cancelled=!0}),this.microtasks.length=0},this._getEditorManager=function(){return h},this._getDataSource=function(){return s},this._getMetaManager=function(){return S};let z=(e=>{let{ownerWindow:t,handleEvent:o,beforeKeyDown:n,afterKeyDown:i}=e,r=iF({errorIdExists:e=>`The "${e}" context name is already registered.`}),l="grid",s=function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"table",o=d2(e,t);return r.addItem(e,o),o},a=()=>l,h=e=>r.getItem(e),d=!1,c=function(e,t){let o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:a(),n=d1(o)?o:h(o),i=!1;if(!n?.hasShortcut(t))return i;let r=n?.getShortcuts(t)??[];for(let o=0;o<r.length;o++){let{callback:n,runOnlyIf:l,preventDefault:s,stopPropagation:a,captureCtrl:h,forwardToContext:u}=r[o];if(l?.(e)===!0){if(d=h??!1,i=!1===n(e,t),d=!1,s&&e.preventDefault(),a&&(nR(e),e.stopPropagation()),i)break;u&&c(e,t,u)}}return i},u=function(e,t,o,n,i){let r=arguments.length>5&&void 0!==arguments[5]?arguments[5]:null,l=e=>{if(!1!==t(e)){if(!1===o(e)||229===e.keyCode||"string"!=typeof e.key||nx(e))return;let t=dZ(e),r=[];dQ.includes(t)||(r=dJ(e));let l=i(e,[t].concat(r));!l&&(tj()&&r.includes("meta")||!tj()&&r.includes("control"))&&(l=i(e,[t].concat(dJ(e,!0)))),n(e);return}if(!1===ns(r)||229===e.keyCode||"string"!=typeof e.key||nx(e))return;let l=dZ(e),s=[];dQ.includes(l)||(s=dJ(e));let a=r(e,[l].concat(s));!a&&(tj()&&s.includes("meta")||!tj()&&s.includes("control"))&&(a=r(e,[l].concat(dJ(e,!0)))),n(e)},s=()=>{d3.releaseAll()};return{mount:()=>{let t=e;for(;t;){let{documentElement:e}=t.document,o=d6.get(e)??0;0===o&&(e.addEventListener("keydown",d4),e.addEventListener("keyup",d5)),d6.set(e,o+1),e.addEventListener("keydown",l),e.addEventListener("blur",s),t=t9(t)}},unmount:()=>{let t=e;for(;t;){let{documentElement:e}=t.document,o=d6.get(e)??0;o<=1?(e.removeEventListener("keydown",d4),e.removeEventListener("keyup",d5),d6.delete(e)):d6.set(e,o-1),e.removeEventListener("keydown",l),e.removeEventListener("blur",s),t=t9(t)}},isPressed:e=>d3.isPressed(e),releasePressedKeys:()=>d3.releaseAll()}}(t,e=>{let t=h(a());return o(e,t?.scope??"table")},n,i,c,(e,t)=>{let o=r.getItems();for(let n=0;n<o.length;n+=1){let[,i]=o[n];if("global"===i.scope&&c(e,t,i))return!0}return!1});return u.mount(),{addContext:s,getActiveContextName:a,getContext:h,getOrCreateContext:function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"table";return h(e)??s(e,t)},setActiveContextName:e=>{r.hasItem(e)||to(eu`You've tried to activate the "${e}" shortcut context\x20
|
|
251
|
+
that does not exist. Before activation, register the context using the "addContext" method.`),l=e},hasEventShortcut:(e,t)=>{let o=h(e);return!!o&&((e,t)=>{if("string"!=typeof e.key)return[];let o=dZ(e),n=dQ.includes(o),i=n?[]:dJ(e),r=[[o].concat(i)];return!n&&("function"==typeof t&&t()?i.includes("meta"):i.includes("control"))&&r.push([o].concat(dJ(e,!0))),r})(t,tj).some(e=>o.hasShortcut(e))},isCtrlPressed:()=>!d&&(u.isPressed("control")||u.isPressed("meta")),releasePressedKeys:()=>u.releasePressedKeys(),destroy:()=>u.unmount()}})({handleEvent:(e,t)=>"global"===t||g.isListening(),beforeKeyDown:e=>g.runHooks("beforeKeyDown",e),afterKeyDown:e=>{this.isDestroyed||g.runHooks("afterDocumentKeyDown",e)},ownerWindow:this.rootWindow});this.addHook("beforeOnCellMouseDown",e=>{!1===e.ctrlKey&&!1===e.metaKey&&z.releasePressedKeys()}),this.getShortcutManager=function(){return z},d=new dL(g);let W=l8(this)?function(e){let t=iF({errorIdExists:e=>`The "${e}" focus scope is already registered.`}),o=e.getShortcutManager(),n=null;function i(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:dF.UNKNOWN;n!==e&&(null!==n&&r(n),(n=e).activate(t),o.setActiveContextName(e.getShortcutsContextName()))}function r(e){l(),n===e&&(n=null,e.deactivate())}function l(){let o=t.getValues(),i=o.filter(e=>e.runOnlyIf()&&"modal"===e.getType());o.forEach(t=>{i.length>0&&i.includes(t)||0===i.length||t.hasContainerDetached()?t.enable():t.disable(),t===n?t.contains(nr(e.rootDocument))?t.deactivateFocusCatchers():t.activateFocusCatchers():t.runOnlyIf()?t.activateFocusCatchers():t.deactivateFocusCatchers()})}function s(o,l){if(!o.isConnected||!oS(o))return;let s=t.getValues().filter(e=>e.runOnlyIf()),a=!1;s.forEach(t=>{!a&&t.contains(o)&&(a=!0,l!==dF.UNKNOWN&&e.listen(),i(t,l))}),!a&&n&&(r(n),e.unlisten())}let a=function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},o=!1;function n(e){o||t.onFocus?.(e)}function i(e){t.onClick?.(e)}function r(e){"Tab"===e.key&&t.onTabKeyDown?.(e)}function l(){o=!0}function s(){o=!1}return{mount:()=>{let t=e;for(;t;){let{documentElement:e}=t.document;e.addEventListener("focusin",n),e.addEventListener("click",i),e.addEventListener("keydown",r),e.addEventListener("mousedown",l),e.addEventListener("mouseup",s),t=t9(t)}},unmount:()=>{let t=e;for(;t;){let{documentElement:e}=t.document;e.removeEventListener("focusin",n),e.removeEventListener("click",i),e.removeEventListener("keydown",r),e.removeEventListener("mousedown",l),e.removeEventListener("mouseup",s),t=t9(t)}}}}(e.rootWindow,{onFocus:e=>{s(t5(e),t5(e).dataset.htFocusSource??dF.UNKNOWN)},onClick:e=>{s(t5(e),dF.CLICK)},onTabKeyDown:()=>{l()}});return a.mount(),{getActiveScopeId:function(){return n?t.getId(n):null},registerScope:function(n,i){let r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};t.hasItem(n)&&to(`Scope with id "${n}" already registered`);let l=function(e,t){let o,n,i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},r={shortcutsContextName:"grid",type:dV.INLINE,contains:e=>e===t||t.contains(e),runOnlyIf:()=>!0,enableFocusCatchers:!0,...i},l=!1===r.enableFocusCatchers?null:(o=dz(e,dF.TAB_FROM_ABOVE),n=dz(e,dF.TAB_FROM_BELOW),t.prepend(o),t.append(n),{activate(){o.tabIndex=0,n.tabIndex=0},deactivate(){o.tabIndex=-1,n.tabIndex=-1},destroy(){o.remove(),n.remove()}});return{getType:()=>r.type,hasContainerDetached:()=>!e.rootWrapperElement.contains(t),getShortcutsContextName:()=>r.shortcutsContextName,runOnlyIf:()=>r.runOnlyIf(),contains:e=>r.contains(e),activate:function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:dF.UNKNOWN;r.onActivate?.(e)},deactivate:()=>{r.onDeactivate?.()},activateFocusCatchers:()=>{l?.activate()},deactivateFocusCatchers:()=>{l?.deactivate()},enable:()=>{t.removeAttribute("inert")},disable:()=>{t.setAttribute("inert","true")},destroy:()=>{l?.destroy()}}}(e,i,r);t.addItem(n,l),o.getOrCreateContext(l.getShortcutsContextName())},unregisterScope:function(e){t.hasItem(e)||to(`Scope with id "${e}" not found`),t.getItem(e).destroy(),t.removeItem(e)},activateScope:(e,o)=>(function(e){let o=arguments.length>1&&void 0!==arguments[1]?arguments[1]:dF.UNKNOWN;t.hasItem(e)||to(`Scope with id "${e}" not found`);let n=o??dF.UNKNOWN;i(t.getItem(e),n)})(e,o),deactivateScope:e=>{!t.hasItem(e)&&to(`Scope with id "${e}" not found`),r(t.getItem(e))},destroy:()=>a.unmount()}}(g):null,$=l8(this)?new cd({top:g.rootSlotTopElement,bottom:g.rootSlotBottomElement}):null;this.getFocusManager=function(){return d},this.getFocusScopeManager=function(){return l8(g)||to("The FocusScopeManager is only available for the main Handsontable instance."),W},this.getLayoutManager=function(){return l8(g)||to("The LayoutManager is only available for the main Handsontable instance."),$};let U=C.theme,G=C.themeName,q=ct(g.rootContainer);l8(g)&&!q&&(tu(U)||!U&&!G)&&_(U,I(C)),iq().forEach(e=>{let t=ij(e);t&&M.addItem(e,new t(this))}),o=g,[ce,d8].forEach(e=>e(o)),l8(this)&&(n=g,[dj].forEach(e=>e(n))),z.setActiveContextName("grid"),nL.getSingleton().run(g,"construct")};dc(up),i1(ui);let uf=function(e,t){let o=new um(e,t||{},l9);return o.init(),o};uf.editors={BaseEditor:n3,TextEditor:uu},uf.dom={empty:om},uf.helper={},uf.Core=function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return new um(e,t,l9)},uf.DefaultSettings=dg(),uf.hooks=nL.getSingleton(),uf.CellCoords=r1,uf.CellRange=r2,uf.packageName="handsontable",uf.buildDate="15/09/2026 08:36:17",uf.version="18.1.1",uf.languages={dictionaryKeys:y,getLanguageDictionary:h$,getLanguagesDictionaries:function(){return hz()},registerLanguageDictionary:hW,getTranslatedPhrase:hU},uf.themes={hasTheme:c2,getTheme:c3,getThemeNames:c6,getThemes:c4,registerTheme:c7,reinitTheme:c9};let ub="handsontableEditor";class uC extends uu{static get EDITOR_TYPE(){return"handsontable"}isFlippedVertically=!1;isFlippedHorizontally=!1;open(){super.open();let e=this.htContainer.style;this.htEditor&&(this.htEditor.rootPortalElement=null,this.htEditor.destroy(),e.width="",e.height="",e.overflow=""),"none"===e.display&&(e.display=""),this.htEditor=new this.hot.constructor(this.htContainer,this.htOptions),this.htEditor.rootPortalElement=this.hot.rootPortalElement,this.htEditor.init(),this.htEditor.rootElement.style.display="",this.cellProperties.strict?this.htEditor.selectCell(0,0):this.htEditor.deselectCell(),oY(this.TEXTAREA,0,this.TEXTAREA.value.length),this.htEditor.updateSettings({width:this.getTargetDropdownWidth(),height:this.getTargetDropdownHeight()}),this.refreshDimensions(),this.flipDropdownVerticallyIfNeeded(),this.flipDropdownHorizontallyIfNeeded()}close(){this.htEditor&&(this.htEditor.rootElement.style.display="none"),this.removeHooksByKey("beforeKeyDown"),super.close()}prepare(e,t,o,n,i,r){super.prepare(e,t,o,n,i,r);let{hot:l}=this,s=this.setValue.bind(this),a={startRows:0,startCols:0,minRows:0,minCols:0,className:"listbox",copyPaste:!1,autoColumnSize:!1,autoRowSize:!1,readOnly:!0,fillHandle:!1,autoWrapCol:!1,autoWrapRow:!1,ariaTags:!1,themeName:this.hot.getCurrentThemeName(),afterOnCellMouseDown(e,t){if(t.row<0||t.col<0)return;let o=this.getDataAtCell(t.row,t.col);void 0!==o&&s(o),l.destroyEditor()},preventWheel:!0,layoutDirection:this.hot.isRtl()?"rtl":"ltr"};this.cellProperties.handsontable&&tr(a,r.handsontable),this.htOptions=a}beginEditing(e,t){let o=this.hot.getSettings().onBeginEditing;o&&!1===o()||super.beginEditing(e,t)}createElements(){super.createElements();let e=this.hot.rootDocument.createElement("DIV");e.className="handsontableEditor",this.TEXTAREA_PARENT.appendChild(e),this.htContainer=e,this.assignHooks()}finishEditing(e,t,o){if(this.htEditor&&this.htEditor.isListening()&&this.hot.listen(),this.htEditor&&this.htEditor.getSelectedActive()){let e=this.htEditor.getValue();void 0!==e&&this.setValue(e)}super.finishEditing(e,t,o)}flipDropdownVerticallyIfNeeded(){let{view:e}=this.hot,t=this.getEditedCellRect();if(!t)return{isFlipped:!1,spaceAbove:0,spaceBelow:0};let o=t.top;e.isVerticallyScrollableByWindow()&&(o=Math.max(o+(e.getTableOffset().top-this.hot.rootWindow.scrollY),0));let n=this.getDropdownHeight(),i=e.getWorkspaceHeight()-o-t.height,r=n>i&&o>i+t.height;return r?this.flipDropdownVertically():this.unflipDropdownVertically(),{isFlipped:r,spaceAbove:o,spaceBelow:i}}flipDropdownVertically(){let e=this.htEditor.rootElement.style;e.position="absolute",e.top=`${-this.getDropdownHeight()}px`,this.isFlippedVertically=!0}unflipDropdownVertically(){let e=this.htEditor.rootElement.style;e.position="absolute",e.top="",this.isFlippedVertically=!1}flipDropdownHorizontallyIfNeeded(){let{view:e}=this.hot,t=this.getEditedCellRect();if(!t)return{isFlipped:!1,spaceInlineStart:0,spaceInlineEnd:0};let o=t.start+t.width,n=e.getWorkspaceWidth();e.isHorizontallyScrollableByWindow()&&(o=Math.max(o+(e.getTableOffset().left-this.hot.rootWindow.scrollX),0),n=this.hot.rootDocument.documentElement.clientWidth);let i=this.getDropdownWidth(),r=n-o+t.width,l=i>r&&o>r;return l?this.flipDropdownHorizontally():this.unflipDropdownHorizontally(),{isFlipped:l,spaceInlineStart:o,spaceInlineEnd:r}}flipDropdownHorizontally(){let e=this.htEditor.rootElement.style,{width:t}=this.getEditedCellRect()??{width:0};e.position="absolute",e[this.hot.isRtl()?"right":"left"]=`${-(this.getDropdownWidth()-t)}px`,this.isFlippedHorizontally=!0}unflipDropdownHorizontally(){let e=this.htEditor.rootElement.style;e.position="absolute",e[this.hot.isRtl()?"right":"left"]="",this.isFlippedHorizontally=!1}getDropdownHeight(){return this.htEditor.getTableHeight()}getDropdownWidth(){return this.htEditor.getTableWidth()}getTargetDropdownWidth(){return this.htEditor.view.getTableWidth()}getTargetDropdownHeight(){return this.htEditor.view.getTableHeight()+1}assignHooks(){this.hot.addHook("afterDestroy",()=>{this.htEditor&&(this.htEditor.rootPortalElement=null,this.htEditor.destroy())}),this.hot.addHook("afterSetTheme",(e,t)=>{t||this.close()})}registerShortcuts(){let e=this.hot.getShortcutManager().getContext("editor");super.registerShortcuts();let t=(e,t)=>{let o=this.htEditor;if(void 0!==e&&(e<0||this.isFlippedVertically&&e>o.countRows()-1?o.deselectCell():o.selectCell(e,0),o.getData().length))return t.preventDefault(),nR(t),this.hot.listen(),this.TEXTAREA.focus(),!1};e.addShortcuts([{keys:[["ArrowUp"]],callback:e=>{let o,n=this.htEditor;if(!n.getSelectedActive()&&this.isFlippedVertically)o=n.countRows()-1;else if(n.getSelectedActive()){let e=n.getSelectedActive();o=this.isFlippedVertically?Math.max(0,e[0]-1):e[0]-1}return t(o,e)},preventDefault:!1},{keys:[["ArrowDown"]],callback:e=>{let o,n=this.htEditor;if(n.getSelectedActive()||this.isFlippedVertically){if(n.getSelectedActive()){let e=n.getSelectedActive();this.isFlippedVertically?o=e[0]+1:this.isFlippedVertically||(o=Math.min(n.countRows()-1,e[0]+1))}}else o=0;return t(o,e)},preventDefault:!1}],{group:ub,relativeToGroup:dq,position:"before"})}unregisterShortcuts(){super.unregisterShortcuts(),this.hot.getShortcutManager().getContext("editor").removeShortcutsByGroup(ub)}}class uw extends uC{static get EDITOR_TYPE(){return"autocomplete"}query=null;strippedChoices=[];rawChoices=[];#n$=this.hot.guid.slice(0,9);getValue(){let e=this.rawChoices.find(e=>{let t=this.stripValueIfNeeded(e);return(this.#nU(t)?t.value:t)===this.TEXTAREA.value});return eP(e)?e:this.TEXTAREA.value}createElements(){super.createElements(),od(this.htContainer,"autocompleteEditor"),od(this.htContainer,-1===this.hot.rootWindow.navigator.platform.indexOf("Mac")?"":"htMacScroll"),this.hot.getSettings().ariaTags&&ou(this.TEXTAREA,[["type","text"],["role","combobox"],N("listbox"),["aria-autocomplete","list"]])}prepare(e,t,o,n,i,r){super.prepare(e,t,o,n,i,r),this.hot.getSettings().ariaTags&&ou(this.TEXTAREA,[z("false"),["aria-controls",`${this.#n$}-listbox-${e}-${t}`]]),this.htOptions={...this.htOptions,valueGetter:e=>this.#nU(e)?e.value:e}}open(){super.open();let e=this.cellProperties.trimDropdown,t=void 0===e||e,o=this.hot.getSettings().ariaTags,n=Array.isArray(this.cellProperties.source)?this.cellProperties.source:null,i=n?.length,{row:r,col:l}=this;if(this.showEditableElement(),this.focus(),this.addHook("beforeKeyDown",e=>this.onBeforeKeyDown(e)),this.htEditor.addHook("afterScroll",this.#nG),this.htEditor.updateSettings({colWidths:t?[oL(this.TEXTAREA)-2]:void 0,autoColumnSize:!0,modifyColWidth:t?void 0:e=>Math.max(e??0,oL(this.TEXTAREA)-2),renderer:(e,t,r,l,s,a,h)=>{ug(e,t,r,l,s,a,h);let{filteringCaseSensitive:d,allowHtml:c}=this.cellProperties,u=this.cellProperties.locale,g=this.query,p=eO(a);if(c)oy(t,p,!1,"html",this.hot.rootElement);else if(p&&g&&g.length>0){let o=!0===d?p.indexOf(g):iS(p,u).indexOf(iS(g,u));if(-1!==o){let n=p.slice(o,o+g.length),{rootDocument:i}=e;t.innerHTML="",t.appendChild(i.createTextNode(p.slice(0,o)));let r=i.createElement("strong");r.textContent=n,t.appendChild(r),t.appendChild(i.createTextNode(p.slice(o+g.length)))}}o&&ou(t,[["role","option"],...n?[["aria-setsize",i??0]]:[],...n?[["aria-posinset",n.indexOf(a)+1]]:[],["id",`${this.htEditor.rootElement.id}_${r}-${l}`]])},afterSelectionEnd:(e,t)=>{if(o){let o=e=>{ou(e,[G()]),ou(this.TEXTAREA,"aria-activedescendant",e.id)},n=this.htEditor.getCell(e,t,!0);null!==n?o(n):this.htEditor.addHookOnce("afterScrollVertically",()=>{let n=this.htEditor.getCell(e,t,!0);null!==n&&o(n)})}}}),o){let e=R();ou(this.htEditor.view._wt.wtOverlays.wtTable.TABLE,e[0],e[1]),ou(this.htEditor.rootElement,[I(),["aria-live","polite"],["aria-relevant","text"],["id",`${this.#n$}-listbox-${r}-${l}`]]),ou(this.TEXTAREA,...z("true"))}this.hot._registerTimeout(()=>{this.queryChoices(this.TEXTAREA.value)})}close(){this.removeHooksByKey("beforeKeyDown"),super.close(),this.hot.getSettings().ariaTags&&ou(this.TEXTAREA,[z("false")])}discardEditor(e){super.discardEditor(e),this.hot.view.render()}queryChoices(e){let t=this.cellProperties.source;this.query=e,"function"==typeof t?t.call(this.cellProperties,e,e=>{this.rawChoices=e,this.updateChoicesList(this.stripValuesIfNeeded(e))}):Array.isArray(t)?(this.rawChoices=t,this.updateChoicesList(this.stripValuesIfNeeded(t))):this.updateChoicesList([])}updateChoicesList(e){let t=oU(this.TEXTAREA),o=oG(this.TEXTAREA),n=this.cellProperties.sortByRelevance,i=this.cellProperties.filter,r=this.stripValueIfNeeded(this.getValue()),l=this.#nU(r)?r.value:r,s=null,a=e;n||(a=[...a].sort((e,t)=>eO(e).localeCompare(eO(t))));let h=[],d=this.cellProperties.locale,c=this.cellProperties.filteringCaseSensitive,u=c?l:iS(String(l),d);for(let e=0;e<a.length;e++){let t=this.#nU(a[e])?ig(eO(a[e].value)):ig(eO(a[e]));if(-1!==(c?t:iS(t,d)).indexOf(String(u))&&(h.push(e),!1===i))break}!1===i?String(r).length>0&&(s=h[0]):s=(a=h.map(e=>a[e])).indexOf(u)>-1?a.indexOf(u):0,this.strippedChoices=a,0===a.length?this.htEditor.rootElement.style.display="none":this.htEditor.rootElement.style.display="",this.htEditor.loadData(K([a])),a.length>0&&(this.updateDropdownDimensions(),this.flipDropdownVerticallyIfNeeded(),this.flipDropdownHorizontallyIfNeeded(),!0===this.cellProperties.strict&&this.highlightBestMatchingChoice(s??void 0)),this.hot.listen(),oY(this.TEXTAREA,t,t===o?void 0:o)}flipDropdownVerticallyIfNeeded(){let e=super.flipDropdownVerticallyIfNeeded(),{isFlipped:t,spaceAbove:o,spaceBelow:n}=e;return this.limitDropdownIfNeeded(t?o:n),e}limitDropdownIfNeeded(e){let t=this.getDropdownHeight();if(t>e){let o=this.htEditor.stylesHandler.getDefaultRowHeight()??0;if(0===o)return;let n=Math.max(Math.ceil(e/o)-1,1)*o;this.isFlippedVertically&&(this.htEditor.rootElement.style.top=`${parseInt(this.htEditor.rootElement.style.top,10)+t-n}px`),this.setDropdownHeight(n)}}updateDropdownDimensions(){let e=oK(),t=this.getTargetEditorWidth()+e,o=this.getTargetEditorHeight()+e;this.htEditor.updateSettings({width:t,height:o}),this.#nq(),this.htEditor.view._wt.wtTable.alignOverlaysWithTrimmingContainer()}setDropdownHeight(e){this.htEditor.updateSettings({height:e}),this.#nq(),this.htEditor.view._wt.wtTable.alignOverlaysWithTrimmingContainer()}highlightBestMatchingChoice(e){"number"==typeof e?this.htEditor.selectCell(e,0,void 0,void 0,void 0,!1):this.htEditor.deselectCell()}getTargetEditorHeight(){let e=0;if(!this.hot.getCurrentThemeName()){let t=this.htContainer.querySelector(".htCore");if(t){let o=this.hot.rootWindow.getComputedStyle(t);e=parseInt(o.borderTopWidth,10)+parseInt(o.borderBottomWidth,10)}}return Array.from({length:Math.min(this.cellProperties.visibleRows,this.strippedChoices.length)},(e,t)=>t).reduce((e,t)=>e+((this.hot.stylesHandler.getDefaultRowHeight()??0)+ +(0===t)),0)+e}getTargetEditorWidth(){let e=0;if(!this.hot.getCurrentThemeName()){let t=this.htContainer.querySelector(".htCore");if(t){let o=this.hot.rootWindow.getComputedStyle(t);e=parseInt(o.borderInlineStartWidth,10)+parseInt(o.borderInlineEndWidth,10)}}return this.htEditor.getColWidth(0)+e}stripValueIfNeeded(e){return this.stripValuesIfNeeded([e])[0]}stripValuesIfNeeded(e){let{allowHtml:t}=this.cellProperties,o=e=>eO(t?e:ig(String(e)));return e.every(e=>tS(e))?e.map(e=>({key:o(e.key),value:o(e.value)})):e.map(e=>o(e))}#nG=nd(()=>{this.focus()},100);#nq(){this.htEditor.view.hasVerticalScroll()&&this.htEditor.updateSettings({width:this.getTargetEditorWidth()+oX(this.hot.rootDocument)})}#nU(e){return tu(e)&&eP(e.key)&&eP(e.value)}onBeforeKeyDown(e){if(nC(e.keyCode)||e.keyCode===nf.BACKSPACE||e.keyCode===nf.DELETE||e.keyCode===nf.INSERT){let t=10;e.keyCode===nf.C&&(e.ctrlKey||e.metaKey)||(this.isOpened()||(t+=10),this.htEditor&&this.hot._registerTimeout(()=>{this.queryChoices(this.TEXTAREA.value)},t))}}}class uy extends n3{static get EDITOR_TYPE(){return"checkbox"}beginEditing(e,t){if(t&&"mouseup"===t.type&&"TD"===t5(t).nodeName){let e=this.TD.querySelector('input[type="checkbox"]');oh(e,"htBadValue")||e.click()}}finishEditing(){}init(){}open(){}close(){}getValue(){}setValue(){}focus(){}}let uv=/^\d{4}-(0[1-9]|1[0-2])-(0[1-9]|[12]\d|3[01])$/;function uS(e){let t=new Date(e);return Number.isNaN(new Date(`${e}T00:00`).getDate())?t:new Date(t.getTime()+6e4*t.getTimezoneOffset())}function uR(e){if(eN(e))return null;if("string"==typeof e&&uv.test(e)){let[t,o,n]=e.split("-").map(Number);return new Date(t,o-1,n)}return null}let ux=[31,28,31,30,31,30,31,31,30,31,30,31];function uM(e){return e%4==0&&e%100!=0||e%400==0}function uH(e){if("string"!=typeof e||!uv.test(e))return!1;let t=+e.slice(0,4),o=+e.slice(5,7);return+e.slice(8,10)<=(2===o&&uM(t)?29:ux[o-1])}let uE=/^([01]\d|2[0-3]):([0-5]\d)(?::([0-5]\d)(?:\.(\d{1,3}))?)?$/;function uk(e){if(eN(e)||"string"!=typeof e)return null;let t=uE.exec(e);if(!t)return null;let o=Number(t[1]),n=Number(t[2]),i=void 0!==t[3]?Number(t[3]):0,r=t[4];return new Date(1970,0,1,o,n,i,void 0!==r?Number(r.padEnd(3,"0").slice(0,3)):0)}function uT(e){return"string"==typeof e&&uE.test(e)}let uI=/^\d{4}-(0[1-9]|1[0-2])-(0[1-9]|[12]\d|3[01])(?:[T ]([01]\d|2[0-3]):([0-5]\d)(?::([0-5]\d)(?:\.(\d{1,3}))?)?)?$/;function uA(e){if(eN(e)||"string"!=typeof e)return null;let t=uI.exec(e);if(!t)return null;let[o]=e.split(/[T ]/),[n,i,r]=o.split("-").map(Number);return new Date(n,i-1,r,void 0!==t[3]?Number(t[3]):0,void 0!==t[4]?Number(t[4]):0,void 0!==t[5]?Number(t[5]):0,void 0!==t[6]?Number(t[6].padEnd(3,"0").slice(0,3)):0)}function u_(e){if("string"!=typeof e)return!1;let t=uI.exec(e);if(!t)return!1;let o=+e.slice(0,4),n=+t[1];return+t[2]<=(2===n&&uM(o)?29:ux[n-1])}function uO(){let e=new Date;return new Date(e.getFullYear(),e.getMonth(),e.getDate())}function uP(e){let t=uO();return t.setDate(t.getDate()+e),t}function uD(e,t){return e.getFullYear()===t.getFullYear()&&e.getMonth()===t.getMonth()&&e.getDate()===t.getDate()}class uN extends uu{static get EDITOR_TYPE(){return"date"}init(){super.init(),this.hot.addHook("afterSetTheme",(e,t)=>{t||this.close()})}prepare(e,t,o,n,i,r){super.prepare(e,t,o,n,i,r),void 0!==r.datePickerConfig&&tJ(this.hot.rootElement,"datePickerConfig",'The "datePickerConfig" option is not supported. The native date input is used instead of Pikaday.');let l=this.hot.toPhysicalRow(e);this.originalValue=this.hot.getSourceDataAtCell(l,t)}createElements(e){super.createElements("input"),this.TEXTAREA.setAttribute("type","date")}setValue(e){if(eN(e)&&(e=this.cellProperties.defaultDate),!uH(e)){tZ(eu`DateEditor: value must be in ISO date format ("YYYY-MM-DD")\x20
|
|
252
252
|
required by the native date input. Received:`,e),super.setValue("");return}super.setValue(e)}focus(){this.TEXTAREA.select()}open(){super.open();try{this.TEXTAREA.showPicker()}catch{}}}class uB extends uw{static get EDITOR_TYPE(){return"dropdown"}prepare(e,t,o,n,i,r){r.filter=!1,r.strict=!0,super.prepare(e,t,o,n,i,r)}finishEditing(e,t,o){if(this.isOpened()){let t=this.hot.getSelectedRangeActive();(eD(t)||eP(t)&&!t.includes(this.hot._createCellCoords(this.row,this.col)))&&(e=!0)}super.finishEditing(e,t,o)}}class uL extends uN{static get EDITOR_TYPE(){return"intl-date"}}let uV=/^\d{4}-\d{2}-\d{2}$/,uF=/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}$/;class uz extends uu{static get EDITOR_TYPE(){return"intl-datetime"}init(){super.init(),this.hot.addHook("afterSetTheme",(e,t)=>{t||this.close()})}prepare(e,t,o,n,i,r){super.prepare(e,t,o,n,i,r);let l=this.hot.toPhysicalRow(e);this.originalValue=this.hot.getSourceDataAtCell(l,t)}createElements(e){super.createElements("input"),this.TEXTAREA.setAttribute("type","datetime-local"),this.TEXTAREA.setAttribute("step","1"),this.TEXTAREA.setAttribute("dir","ltr")}setValue(e){if(eN(e))return void super.setValue("");if(!u_(e)){tZ(eu`IntlDatetimeEditor: value must be in ISO date-time format ("YYYY-MM-DDTHH:mm:ss")\x20
|
|
253
253
|
required by the native datetime-local input. Received:`,e),super.setValue("");return}let t=String(e).replace(" ","T").replace(/\.\d+$/,"");uV.test(t)?t+="T00:00:00":uF.test(t)&&(t+=":00"),super.setValue(t)}getValue(){let e=super.getValue();return e&&uF.test(e)?`${e}:00`:e}focus(){this.TEXTAREA.select()}open(){super.open();try{this.TEXTAREA.showPicker()}catch{}}}class uW extends uu{static get EDITOR_TYPE(){return"time"}init(){super.init(),this.hot.addHook("afterSetTheme",(e,t)=>{t||this.close()})}createElements(e){super.createElements("input"),this.TEXTAREA.setAttribute("type","time"),this.TEXTAREA.setAttribute("dir","ltr")}setValue(e){if(!uT(e)){tZ(eu`TimeEditor: value must be in 24-hour time format ("HH:mm", "HH:mm:ss" or "HH:mm:ss.SSS")\x20
|
|
254
254
|
required by the native time input. Received:`,e),super.setValue("");return}super.setValue(e)}focus(){this.TEXTAREA.select()}open(){super.open();try{this.TEXTAREA.showPicker()}catch{}}}class u$ extends uW{static get EDITOR_TYPE(){return"intl-time"}}class uU extends uu{static get EDITOR_TYPE(){return"numeric"}}class uG extends uu{autoResize=ua(this.hot.rootDocument,{textContent:e=>"•".repeat(e.value.length)});#nj="";#nY=null;#nK=null;#nX=!1;static get EDITOR_TYPE(){return"password"}createElements(){super.createElements(),this.TEXTAREA=this.hot.rootDocument.createElement("input"),this.TEXTAREA.setAttribute("type","password"),this.TEXTAREA.dataset.hotInput="",this.TEXTAREA.className="handsontableInput",this.textareaStyle=this.TEXTAREA.style,this.textareaStyle.width="0",this.textareaStyle.height="0",om(this.TEXTAREA_PARENT);let e=S(-1);this.TEXTAREA.setAttribute(e[0],String(e[1])),this.TEXTAREA_PARENT.appendChild(this.TEXTAREA)}open(){super.open();let e=this.cellProperties.hashRevealDelay,t=String(this.cellProperties.hashSymbol||"*");if(e>0){this.#nX=!0;let o=t[0];this.TEXTAREA.setAttribute("type","text"),this.TEXTAREA.setAttribute("autocomplete","off"),this.TEXTAREA.setAttribute("spellcheck","false"),this.TEXTAREA.setAttribute("autocapitalize","off"),this.TEXTAREA.setAttribute("autocorrect","off"),this.TEXTAREA.value=o.repeat(this.#nj.length),this.#nK=t=>this.#nZ(t,o,e),this.TEXTAREA.addEventListener("input",this.#nK)}}close(){this.#nK&&(this.TEXTAREA.removeEventListener("input",this.#nK),this.#nK=null),null!==this.#nY&&(clearTimeout(this.#nY),this.#nY=null),this.#nX=!1,this.#nj="",this.TEXTAREA.setAttribute("type","password"),this.TEXTAREA.removeAttribute("autocomplete"),this.TEXTAREA.removeAttribute("spellcheck"),this.TEXTAREA.removeAttribute("autocapitalize"),this.TEXTAREA.removeAttribute("autocorrect"),super.close()}getValue(){return this.#nX?this.#nj:super.getValue()}setValue(e){if(this.#nX){this.#nj=e??"";let t=String(this.cellProperties.hashSymbol||"*")[0];this.TEXTAREA.value=t.repeat(this.#nj.length)}else this.cellProperties?.hashRevealDelay>0?this.#nj=e??"":super.setValue(e)}#nZ(e,t,o){let{inputType:n,data:i}=e;if(i&&("insertText"===n||"insertFromPaste"===n||"insertFromDrop"===n||"insertReplacementText"===n||"insertCompositionText"===n)){let e=this.TEXTAREA.selectionStart??0,n=e-i.length,r=this.TEXTAREA.value.length-e;this.#nj=this.#nj.slice(0,n)+i+this.#nj.slice(this.#nj.length-r),this.TEXTAREA.value=t.repeat(n)+i+t.repeat(r),this.TEXTAREA.setSelectionRange(e,e),null!==this.#nY&&clearTimeout(this.#nY),this.#nY=this.hot._registerTimeout(()=>{let e=this.TEXTAREA.selectionStart;this.TEXTAREA.value=t.repeat(this.#nj.length),this.TEXTAREA.setSelectionRange(e,e),this.#nY=null},o)}else if(n?.startsWith("delete")){let e=this.#nj.length,o=this.TEXTAREA.selectionStart??0,n=e-this.TEXTAREA.value.length;this.#nj=this.#nj.slice(0,o)+this.#nj.slice(o+n),this.TEXTAREA.value=t.repeat(this.#nj.length),this.TEXTAREA.setSelectionRange(o,o),null!==this.#nY&&(clearTimeout(this.#nY),this.#nY=null)}else{let e=this.#nj.length,n=this.TEXTAREA.value;if(n.length>e){let i=n.slice(e);this.#nj+=i,this.TEXTAREA.value=t.repeat(e)+i,null!==this.#nY&&clearTimeout(this.#nY),this.#nY=this.hot._registerTimeout(()=>{this.TEXTAREA.value=t.repeat(this.#nj.length),this.#nY=null},o)}else this.#nj=this.#nj.slice(0,n.length),this.TEXTAREA.value=t.repeat(this.#nj.length),null!==this.#nY&&(clearTimeout(this.#nY),this.#nY=null)}}}let uq="ht_editor_visible",uj="selectEditor";class uY extends n3{static get EDITOR_TYPE(){return"select"}init(){this.selectWrapper=this.hot.rootDocument.createElement("div"),this.select=this.hot.rootDocument.createElement("select"),this.select.dataset.hotInput="true",this.selectWrapper.style.display="none";let e=this.hot.rootDocument.createElement("DIV"),t=this.hot.getSettings().ariaTags;e.className="htAutocompleteArrow",t&&e.setAttribute(...P()),e.appendChild(this.hot.rootDocument.createTextNode(String.fromCharCode(9660))),od(this.selectWrapper,"htSelectEditor"),this.selectWrapper.appendChild(this.select),this.selectWrapper.insertBefore(e,this.selectWrapper.firstChild),this.hot.rootElement.appendChild(this.selectWrapper),this.registerHooks(),this.hot.addHookOnce("afterDestroy",()=>this.destroy())}getValue(){return this.select.value}setValue(e){this.select.value=null==e?"":String(e)}open(){this._opened=!0,this.refreshDimensions(),this.selectWrapper.style.display="",this.hot.getShortcutManager().setActiveContextName("editor"),this.registerShortcuts()}close(){this._opened=!1,this.selectWrapper.style.display="none",oh(this.selectWrapper,uq)&&oc(this.selectWrapper,uq),this.unregisterShortcuts(),this.removeHooksByKey("beforeDialogShow")}focus(){this.select.focus()}registerHooks(){this.addHook("afterScrollHorizontally",()=>this.refreshDimensions()),this.addHook("afterScrollVertically",()=>this.refreshDimensions()),this.addHook("afterColumnResize",()=>this.refreshDimensions()),this.addHook("afterRowResize",()=>this.refreshDimensions())}prepare(e,t,o,n,i,r){let l;super.prepare(e,t,o,n,i,r);let s=this.cellProperties.selectOptions;l="function"==typeof s?this.prepareOptions(s(this.row,this.col,this.prop)):this.prepareOptions(s),om(this.select);let a=se(this.hot);if(Array.isArray(l))for(let e=0;e<l.length;e++){let t=this.hot.rootDocument.createElement("OPTION");t.value=String(l[e]),oy(t,String(l[e]),a,"selectEditor",this.hot.rootElement),this.select.appendChild(t)}else tp(l,(e,t)=>{let o=this.hot.rootDocument.createElement("OPTION");o.value=t,oy(o,String(e),a,"selectEditor",this.hot.rootElement),this.select.appendChild(o)})}prepareOptions(e){return Array.isArray(e)||"object"==typeof e?e:{}}refreshValue(){let e=this.hot.getSourceDataAtCell(this.row,this.prop);this.originalValue=e,this.setValue(e),this.refreshDimensions()}refreshDimensions(){if(this.state!==n2.EDITING)return;if(this.TD=this.getEditedCell(),!this.TD)return void this.close();let e=this.getEditedCellRect();if(!e)return;let{top:t,start:o,width:n,height:i}=e,r=this.selectWrapper.style;r.height=`${i}px`,r.width=`${n}px`,r.top=`${t}px`,r[this.hot.isRtl()?"right":"left"]=`${o}px`,r.margin="0px",od(this.selectWrapper,uq)}registerShortcuts(){let e=this.hot.getShortcutManager().getContext("editor");this.isInFullEditMode()&&e.addShortcuts([{keys:[["ArrowUp"]],callback:()=>{let e=this.select.selectedIndex-1;e>=0&&(this.select[e].selected=!0)}},{keys:[["ArrowDown"]],callback:()=>{let e=this.select.selectedIndex+1;e<=this.select.length-1&&(this.select[e].selected=!0)}}],{group:uj})}unregisterShortcuts(){this.hot.getShortcutManager().getContext("editor").removeShortcutsByGroup(uj)}destroy(){this.clearHooks()}}function uK(e){return e.querySelector('input[type="checkbox"]')}function uX(e,t){return tS(t)?Array.isArray(e)&&e.some(e=>tS(e)?td(e,t):e===t):e.includes(t)}class uZ{input;eventManager;enabled;onInput=this._onInput.bind(this);constructor({input:e,eventManager:t}){this.input=e,this.eventManager=t,this.enabled=!0}getInputElement(){return this.input}setValue(e){this.input.value=e}toggle(e){this.enabled=e,this.input&&(e?this.listen():this.unlisten())}listen(){this.eventManager.addEventListener(this.input,"input",this.onInput)}unlisten(){this.eventManager.removeEventListener(this.input,"input",this.onInput)}_onInput(){this.#nQ(this.input.value)}#nQ(e){this.runLocalHooks("triggerFilter",e)}}th(uZ,sb);let uQ="ht-multi-select-editor",uJ=`${uQ}-search-input-wrapper`,u0=`${uQ}-search-icon`,u1=`${uQ}-search-input`,u2=`${uQ}-separator`,u3=`${uQ}-item-`,u6=`${uQ}-item-selected`;function u4(e){let t=uK(e);od(e,u6),t&&!t.checked&&(t.checked=!0)}function u5(e){let t=uK(e);oc(e,u6),t&&t.checked&&(t.checked=!1)}function u7(e){let{dropdownListElement:t,index:o}=e,n=t.children[o];if(n){let e=uK(n);e&&e.blur()}}class u9{#nJ=null;#n0=null;#n1=null;#n2=null;#n3=null;#n6=null;#n4=null;#nr=null;#oZ=new n4(this);#n5={visibleRowsNumberSetting:null,entriesCount:0,flippedVertically:!1,currentlySelectedItemIndex:0,checkboxChangeListeners:new Map,areCheckboxesDisabled:!1,sourceSortFunction:null};constructor(e,t){this.#n0=e,this.#nr=this.#n0.ownerDocument,this.#nJ=t,this.init()}init(){if(!this.#nr||!this.#n0)return;this.#n1=function(e){let{root:t}=e;return t.createElement("ul")}({root:this.#nr}),this.#n2=function(e){let{root:t}=e,o=t.createElement("input");return ou(o,[O("Search options"),["type","text"],["size",3],["placeholder","Search..."],["id",u1]]),od(o,u1),o}({root:this.#nr});let e=function(e){let{root:t}=e,o=t.createElement("div");return od(o,u0),ou(o,[P()]),o}({root:this.#nr});this.#n6=function(e){let{root:t}=e,o=t.createElement("div");return o.className=uJ,o}({root:this.#nr}),this.#n3=function(e){let{root:t}=e,o=t.createElement("div");return o.className=u2,o}({root:this.#nr}),this.#n6.appendChild(e),this.#n6.appendChild(this.#n2),this.#n0.appendChild(this.#n6),this.#n0.appendChild(this.#n3),this.#n0.appendChild(this.#n1),this.#n4=new uZ({input:this.#n2,eventManager:this.#oZ})}setVisibleRowsNumberSetting(e){this.#n5.visibleRowsNumberSetting=e}setSourceSortFunction(e){this.#n5.sourceSortFunction=e??null}setSearchInputVisibility(){let e=!(arguments.length>0)||void 0===arguments[0]||arguments[0];this.#n6&&this.#n3&&this.#n4&&(this.#n6.style.display=e?"":"none",this.#n3.style.display=e?"":"none",this.#n4.toggle(e))}fillDropdown(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[];this.removeAllDropdownItems(),this.#n5.currentlySelectedItemIndex=0,Array.isArray(t)||(t=[]);let o=e;this.#n5.sourceSortFunction&&(o=this.#n5.sourceSortFunction(e.slice())),this.#nr&&this.#n1&&null!==this.#nJ&&(o.forEach((e,o)=>{let n="object"==typeof e&&null!==e&&"value"in e?e.value:e;this.#n7({rootDocument:this.#nr,itemKey:"object"==typeof e&&null!==e&&"key"in e?e.key:void 0,itemValue:String(n??e),indexWithinList:o,checked:uX(t,e),disabled:this.#n5.areCheckboxesDisabled})}),this.#n5.entriesCount=o.length,this.runLocalHooks("afterDropdownFill"))}updateDimensions(e){let t=arguments.length>1&&void 0!==arguments[1]&&arguments[1],o=this.#n9(),n=this.#n8(e),i=n?e.spaceAbove:e.spaceBelow;if(!t&&n&&(this.#n5.flippedVertically=!0),this.#n5.entriesCount>0&&i<this.getHeight(!0)){let e=Math.max(Math.floor((i-this.#ie())/o)-1,1);this.#n5.actualRenderedItemsCount=this.#n5.visibleRowsNumberSetting?Math.min(e,this.#n5.visibleRowsNumberSetting):e}else this.#n5.actualRenderedItemsCount=Math.min(this.#n5.entriesCount,this.#n5.visibleRowsNumberSetting??this.#n5.entriesCount);this.#n0&&(this.#n5.actualRenderedItemsCount&&this.#n5.entriesCount>this.#n5.actualRenderedItemsCount?this.#n0.style.height=`${this.getHeight()}px`:this.#n0.style.height="",this.#it(e),this.#n0.scrollTop=0)}getDropdownWidth(){return this.#n1?function(e){let{dropdownListElement:t}=e;return t.offsetWidth}({dropdownListElement:this.#n1}):0}deselectAllItems(){this.#n1&&function(e){let{dropdownListElement:t}=e;t.querySelectorAll(`.${u6}`).forEach(e=>u5(e))}({dropdownListElement:this.#n1})}focusFirstItem(){this.#n5.entriesCount>0&&this.#io(0)}focusItem(e){this.#io(e)}focusPreviousItem(){if(this.#n1){if(0===this.#n5.currentlySelectedItemIndex)return void this.focusSearchInput();u7({dropdownListElement:this.#n1,index:this.#n5.currentlySelectedItemIndex}),this.#io(this.#n5.currentlySelectedItemIndex-1)}}focusNextItem(){this.#n1&&this.#n5.currentlySelectedItemIndex!==this.#n5.entriesCount-1&&(u7({dropdownListElement:this.#n1,index:this.#n5.currentlySelectedItemIndex}),this.#io(this.#n5.currentlySelectedItemIndex+1))}focusSearchInput(){this.#n2&&this.#n2.focus()}reset(){this.removeAllDropdownItems(),this.#ii(),this.#n2&&(this.#n2.value=""),this.#n0&&(this.#n0.style.position="",this.#n0.style.top="",this.#n0.style.height="",this.#n0.scrollTop=0)}isFlippedVertically(){return this.#n5.flippedVertically}getHeight(){let e=arguments.length>0&&void 0!==arguments[0]&&arguments[0],t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];if(!this.#nr||!this.#n0)return 0;let o=this.#nr.defaultView.getComputedStyle(this.#n0);return this.#ir(e)+this.#ie()+(!0===t?2*parseInt(o.getPropertyValue("--ht-menu-vertical-padding"),10):0)}getInputController(){return this.#n4}removeAllDropdownItems(){this.#n1&&(Array.from(this.#n1.children).forEach(e=>this.#il(e)),this.#n5.checkboxChangeListeners.clear(),this.#n1.innerHTML="")}disableCheckboxes(){this.#n5.areCheckboxesDisabled=!0,this.#n1&&function(e){let{dropdownListElement:t}=e;t.querySelectorAll('input[type="checkbox"]:not(:checked)').forEach(e=>{e.dataset.disabled="true"})}({dropdownListElement:this.#n1})}enableCheckboxes(){this.#n5.areCheckboxesDisabled=!1,this.#n1&&function(e){let{dropdownListElement:t}=e;t.querySelectorAll('input[type="checkbox"]').forEach(e=>{e.dataset.disabled="false"})}({dropdownListElement:this.#n1})}#io(e){this.#n5.currentlySelectedItemIndex=e,this.#n1&&function(e){let{dropdownListElement:t,index:o}=e,n=t.children[o];if(n){let e=uK(n);e&&e.focus()}}({dropdownListElement:this.#n1,index:e})}#n8(e){let{spaceAbove:t,spaceBelow:o,cellHeight:n}=e;return this.getHeight(!0)>o&&t>o+n}#it(e){if(!this.#n0)return;let{cellHeight:t}=e;this.#n5.flippedVertically?(this.#n0.style.position="absolute",this.#n0.style.top=`${-this.getHeight(!1,!0)-t-2}px`):(this.#n0.style.position="",this.#n0.style.top="")}#n9(){if(!this.#nr||!this.#n0)return 0;let e=this.#nr.defaultView.getComputedStyle(this.#n0);return 2*parseInt(e.getPropertyValue("--ht-menu-item-vertical-padding"),10)+parseInt(e.getPropertyValue("--ht-line-height"),10)}#ir(e){let t=this.#n5.entriesCount;return(e?t:this.#n5.actualRenderedItemsCount??t)*this.#n9()}#ie(){if(!this.#n4?.enabled||!this.#n6||!this.#n3||!this.#nr||!this.#n0)return 0;let e=this.#nr.defaultView.getComputedStyle(this.#n0);return this.#n6.offsetHeight+(this.#n3.offsetHeight+2*parseInt(e.getPropertyValue("--ht-menu-vertical-padding"),10))}#n7(e){let{rootDocument:t,itemKey:o,itemValue:n,indexWithinList:i,checked:r=!1,disabled:l=!1}=e;if(!this.#n1||null===this.#nJ)return;let s=function(e){let{rootDocument:t,instanceId:o,itemKey:n,itemValue:i,indexWithinList:r,checked:l=!1,disabled:s=!1}=e,a=t.createElement("li"),h=t.createElement("div"),d=t.createElement("input"),c=t.createElement("label");return d.id=`${o}-${u3}${r}`,d.type="checkbox",d.dataset.value=i,d.dataset.index=String(r),d.dataset.disabled=s&&!l?"true":"false",n&&(d.dataset.key=n),c.htmlFor=d.id,c.textContent=i,h.appendChild(d),h.appendChild(c),a.appendChild(h),a}({rootDocument:t,instanceId:this.#nJ,itemKey:o,itemValue:n,indexWithinList:i,checked:r,disabled:l});r&&u4(s),this.#is(s),this.#n1.appendChild(s)}#is(e){let t=uK(e);if(!t||!this.#n1)return;let o=()=>{if("true"===t.dataset.disabled&&t.checked){t.checked=!1;return}t.checked?(u4(e),this.runLocalHooks("afterDropdownItemChecked",t.dataset.key,t.dataset.value)):(u5(e),this.runLocalHooks("afterDropdownItemUnchecked",t.dataset.key,t.dataset.value))},n=e=>{let o=t5(e);o!==t&&"true"!==t.dataset.disabled&&"LABEL"!==o.tagName&&(t.checked=!t.checked,t.dispatchEvent(new Event("change")))};this.#n5.checkboxChangeListeners.set(t,{change:o,click:n}),this.#oZ.addEventListener(t,"change",o),this.#oZ.addEventListener(e,"click",n)}#il(e){let t=uK(e);if(!t)return;let o=this.#n5.checkboxChangeListeners.get(t);o&&(this.#oZ.removeEventListener(t,"change",o.change),this.#oZ.removeEventListener(e,"click",o.click),this.#n5.checkboxChangeListeners.delete(t))}#ii(){this.#n5.visibleRowsNumberSetting=null,this.#n5.entriesCount=0,this.#n5.flippedVertically=!1,this.#n5.currentlySelectedItemIndex=0,this.#n5.checkboxChangeListeners.clear(),this.#n5.areCheckboxesDisabled=!1,this.#n5.sourceSortFunction=null}}th(u9,sb);class u8{selectedItems;maxSelectionsCount;constructor(e){Array.isArray(e)?this.selectedItems=new Set(e):this.selectedItems=new Set,this.maxSelectionsCount=1/0}setMaxSelectionCount(e){this.maxSelectionsCount=e}add(e){this.selectedItems.size>=this.maxSelectionsCount||(Array.isArray(e)?e.forEach(e=>this.selectedItems.add(e)):this.selectedItems.add(e))}remove(e){if(!tS(e))return this.selectedItems.delete(e);{let t=Array.from(this.selectedItems).find(t=>td(t,e));if(void 0!==t)return this.selectedItems.delete(t),!0}return!1}has(e){return uX(this.getItemsArray(),e)}clear(){this.selectedItems.clear()}getSize(){return this.selectedItems.size}getItemsArray(){return Array.from(this.selectedItems)}}let ge="multiselect",gt="multiselectEditor";class go extends n3{_closeAfterDataChange=!1;#ia=new u8;#ih=null;dropdownContainerElement=null;dropdownController=null;static get EDITOR_TYPE(){return ge}constructor(e){super(e),this.eventManager=new n4(this),this.createElements(),this.bindEvents()}createElements(){let{rootDocument:e}=this.hot;this.#ih=e.createElement("div"),this.#ih.style.display="none",od(this.#ih,"handsontableEditor"),this.dropdownContainerElement=this.hot.rootDocument.createElement("div"),od(this.dropdownContainerElement,"ht-multi-select-editor handsontableEditor"),ou(this.dropdownContainerElement,[O("Select options"),["role","group"]]),this.#ih.appendChild(this.dropdownContainerElement),this.hot.rootElement.appendChild(this.#ih),this.dropdownController=new u9(this.dropdownContainerElement,this.hot.guid)}prepare(e,t,o,n,i,r){super.prepare(e,t,o,n,i,r);let l="string"==typeof i&&ic(i)?JSON.parse(i):i,s=ea(Array.isArray(l)?l:[l],this.#id(),(e,t)=>JSON.stringify(e)===JSON.stringify(t));this.dropdownController.reset(),s.length>=this.#ic("maxSelections")&&this.#iu(),this.#ig(s),this.dropdownController.setSourceSortFunction(this.#ic("sourceSortFunction")??null),this.dropdownController.fillDropdown(this.#id(),s),this.dropdownController.setVisibleRowsNumberSetting(this.#ic("visibleRows")),this.dropdownController.setSearchInputVisibility(this.#ic("searchInput")),void 0!==r.maxSelections&&this.#ia.setMaxSelectionCount(this.#ic("maxSelections"))}finishEditing(e,t,o){super.finishEditing(e,t,o)}bindEvents(){this.dropdownController.addLocalHook("afterDropdownItemChecked",(e,t)=>{this.#ip(e,t),this.#ia.getSize()>=this.#ic("maxSelections")&&this.#iu()}),this.dropdownController.addLocalHook("afterDropdownItemUnchecked",(e,t)=>{this.#im(e,t),this.#ia.getSize()<this.#ic("maxSelections")&&this.#ib()}),this.addHook("afterDestroy",()=>this.destroy()),this.addHook("afterChange",(e,t)=>this.#iC(e,t)),this.addHook("afterScrollHorizontally",()=>this.refreshDimensions()),this.addHook("afterScrollVertically",()=>this.refreshDimensions()),this.dropdownController.getInputController().addLocalHook("triggerFilter",e=>this.#iw(e))}open(e){let t=e&&"keyCode"in e?e.keyCode:0,o=e&&"key"in e?e.key:"";if(t&&nC(t)){let n=1===o.length?o:String.fromCharCode(t);this.dropdownController.getInputController().enabled&&(this.dropdownController.getInputController().setValue(n),this.#iw(n)),e?.preventDefault(),this.enableFullEditMode()}this.#iy(),this.refreshDimensions(),this.hot.getShortcutManager().setActiveContextName("editor"),this.#iv(),this.dropdownController.getInputController().listen(),this.dropdownController.updateDimensions(this.#iS())}close(){this.#iR(),this.#ix(),this.dropdownController.getInputController().unlisten()}getValue(){return this.#ia.getItemsArray()}setValue(){}refreshDimensions(){if(!this.getEditedCell())return void this.close();let{top:e,start:t,height:o}=this.getEditedCellRect(),n=this.#ih.style;n.top=`${e+o}px`,n[this.hot.isRtl()?"right":"left"]=`${t}px`,od(this.#ih,"ht_editor_visible")}focus(){!1===this.#ic("searchInput")?this.dropdownController.focusFirstItem():this.dropdownController.focusSearchInput()}getInputElement(){return this.dropdownController.getInputController().getInputElement()}destroy(){this.close(),this.dropdownController.reset()}#id(){return this.cellProperties.source??[]}#iv(){let e=this.hot.getShortcutManager().getContext("editor");e.addShortcuts([{keys:[["ArrowUp"]],callback:()=>{this.dropdownController.focusPreviousItem()}},{keys:[["ArrowDown"]],callback:()=>{nr(this.hot.rootDocument)===this.getInputElement()?this.dropdownController.focusFirstItem():this.dropdownController.focusNextItem()}}],{group:gt}),e.addShortcuts([{keys:[["enter"],["shift","enter"],["control/meta","enter"],["control/meta","shift","enter"]],runOnlyIf:()=>!this.#ic("enterCommits"),callback:e=>{let t=nr(this.hot.rootDocument);return t instanceof HTMLInputElement&&"checkbox"===t.type&&(t.checked=!t.checked,t.dispatchEvent(new Event("change"))),e.preventDefault(),!1}},{keys:[["space"]],runOnlyIf:()=>!this.#ic("enterCommits"),callback:e=>{e.preventDefault()}}],{group:gt,relativeToGroup:dq,position:"before"})}#ix(){this.hot.getShortcutManager().getContext("editor").removeShortcutsByGroup(gt)}#iy(){this.#ih.style.display=""}#iR(){this.#ih.style.display="none"}#iu(){this.dropdownController.disableCheckboxes()}#ib(){this.dropdownController.enableCheckboxes()}#iw(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:this.#ic("filterSelectedItems")??!0,o=this.cellProperties.locale,n=this.#id().filter(n=>{let i="object"==typeof n&&null!==n&&"value"in n?n.value:n;return!!(!t&&this.#ia.has(n))||(this.cellProperties.filteringCaseSensitive?String(i).includes(e):iS(String(i),o).includes(iS(e,o)))});this.dropdownController.fillDropdown(n,this.#ia.getItemsArray()),this.dropdownController.updateDimensions(this.#iS(),!0)}#iS(){let e=this.getEditedCellRect(),t=this.hot.view.isVerticallyScrollableByWindow(),o=this.hot.view.getWorkspaceHeight(),n=e.top;t&&(n=Math.max(n+(this.hot.view.getTableOffset().top-this.hot.rootWindow.scrollY),0));let i=o-n-e.height;return{spaceAbove:n,spaceBelow:i,cellHeight:e.height}}#iM(){let e=this.#ia.getItemsArray();this.saveValue([[e]])}#ip(e,t){e?this.#ia.add({key:e,value:t}):this.#ia.add(t),this.#iM(),this.refreshDimensions()}#im(e,t){e?this.#ia.remove({key:e,value:t}):this.#ia.remove(t),this.#iM(),this.refreshDimensions()}#ig(e){e.length>0?this.#ia=new u8(e):this.#ia=new u8}#ic(e){return this.cellProperties[e]}#iC(e,t){this.isOpened()&&t===`${ge}-renderer`&&Array.isArray(e)&&e.length>0&&e[0][0]===this.cellProperties.visualRow&&this.hot.propToCol(e[0][1])===this.cellProperties.visualCol&&(this.#ig(e[0][3]),this.dropdownController.fillDropdown(this.#id(),this.#ia.getItemsArray()),this.dropdownController.focusItem(0),this.#ia.getSize()>=this.#ic("maxSelections")?this.#iu():this.#ib())}}function gn(e,t,o,n,i,r,l){oy(t,null==r?"":r,!1)}function gi(e,t,o,n,i,r,l){let{rootDocument:s}=e,a=l.allowHtml?gn:ug,h=s.createElement("DIV"),d=e.getSettings().ariaTags;if(h.className="htAutocompleteArrow",d&&h.setAttribute(...P()),h.appendChild(s.createTextNode(String.fromCharCode(9660))),a.apply(this,[e,t,o,n,i,r,l]),t.firstChild||t.appendChild(s.createTextNode(String.fromCharCode(160))),t.insertBefore(h,t.firstChild),od(t,"htAutocomplete"),!e.acArrowListener){let i=new n4(e);e.acArrowListener=function(i){oh(t5(i),"htAutocompleteArrow")&&e.view._wt.getSetting("onCellDblClick",null,e._createCellCoords(o,n),t)},i.addEventListener(e.rootElement,"mousedown",e.acArrowListener),e.addHookOnce("afterDestroy",()=>{i.destroy()})}}function gr(e,t,o,n,i,r,l){gi.apply(this,[e,t,o,n,i,r,l])}gn.RENDERER_TYPE="html",gi.RENDERER_TYPE="autocomplete",gr.RENDERER_TYPE="dropdown";let gl="#bad-value#",gs="ht-loading",ga=new WeakMap,gh=new WeakMap,gd="data-row",gc="data-col",gu="checkbox";function gg(e,t,o,n,i,r,l){let s,a,{rootDocument:h}=e,d=e.getSettings().ariaTags;!function(e){let t=gh.get(e);if(!t){let{rootElement:o}=e;(t=new n4(e)).addEventListener(o,"click",t=>(function(e,t){let o=t5(e);if(!gp(o)||!o.hasAttribute(gd)||!o.hasAttribute(gc))return;let n=Number.parseInt(o.getAttribute(gd),10),i=Number.parseInt(o.getAttribute(gc),10);t.getCellMetaTransient(n,i).readOnly&&e.preventDefault()})(t,e)),t.addEventListener(o,"mouseup",t=>{var o,n;let i;return o=t,n=e,void(!gp(i=t5(o))||i.hasAttribute(gd)&&i.hasAttribute(gc)&&setTimeout(n.listen,10))}),t.addEventListener(o,"change",t=>(function(e,t){let o=t5(e);if(!gp(o)||!o.hasAttribute(gd)||!o.hasAttribute(gc))return;let n=Number.parseInt(o.getAttribute(gd),10),i=Number.parseInt(o.getAttribute(gc),10),r=t.getCellMetaTransient(n,i);if(!r.readOnly){let e=null;e=o.checked?void 0===r.uncheckedTemplate||r.checkedTemplate:void 0!==r.uncheckedTemplate&&r.uncheckedTemplate,t.setDataAtCell(n,i,e)}})(t,e)),gh.set(e,t)}}(e);let c=((s=h.createElement("input")).className="htCheckboxRendererInput",s.type="checkbox",s.setAttribute("tabindex","-1"),s.cloneNode(!1)),u=c,g=l.label,p=!1;void 0===l.checkedTemplate&&(l.checkedTemplate=!0),void 0===l.uncheckedTemplate&&(l.uncheckedTemplate=!1),om(t);let m=l.locale;r===l.checkedTemplate||iS(eO(r),m)===iS(eO(l.checkedTemplate),m)?c.checked=!0:r===l.uncheckedTemplate||iS(eO(r),m)===iS(eO(l.uncheckedTemplate),m)?c.checked=!1:eN(r)?od(c,"noValue"):(c.style.display="none",od(c,"htBadValue"),p=!0),ou(c,[[gd,o],[gc,n]]),d&&ou(c,[O(c.checked?e.getTranslatedPhrase(hg):e.getTranslatedPhrase(hp)),U(c.checked),["role","checkbox"]]),function(){if(!p&&g){let l="";if(g.value){let e=g.value;l="function"==typeof g.value?String(e(o,n,i,r)):String(g.value)}else if(g.property){let t=e.getDataAtRowProp(o,String(g.property));l=null!==t?String(t):""}let s=function(e,t,o){let n=e.createElement("label");n.className=`htCheckboxRendererLabel ${o?"fullWidth":""}`;let i=e.createTextNode(t);if(o){let t=e.createElement("span");t.appendChild(i),n.appendChild(t)}else n.appendChild(i);return n.cloneNode(!0)}(h,l,!0!==g.separated);"before"===g.position?g.separated?(t.appendChild(s),t.appendChild(c)):(s.appendChild(c),u=s):g.position&&"after"!==g.position||(g.separated?(t.appendChild(c),t.appendChild(s)):(s.insertBefore(c,s.firstChild),u=s))}}();function f(){let t=arguments.length>0&&void 0!==arguments[0]&&arguments[0],o=e.getSelectedRange(),n=[],i=new Map,r=[],l=0;if(o){for(let s=0;s<o.length;s++){let{row:a,col:h}=o[s].getTopStartCorner(),{row:d,col:c}=o[s].getBottomEndCorner();if(null!==a&&null!==h&&null!==d&&null!==c){for(let o=a;o<=d;o+=1)for(let s=h;s<=c;s+=1){let a=e.getCellMetaTransient(o,s);if(a.hidden)continue;let h={checkedTemplate:a.checkedTemplate,uncheckedTemplate:a.uncheckedTemplate};if("checkbox"!==a.type){!0!==t||a.readOnly||(i.has(n.length)?i.set(n.length,[...i.get(n.length),[o,s,null]]):i.set(n.length,[[o,s,null]]));continue}if(!0===a.readOnly)continue;void 0===a.checkedTemplate&&(a.checkedTemplate=!0),void 0===a.uncheckedTemplate&&(a.uncheckedTemplate=!1);let d=e.getDataAtCell(o,s);!1===t?[a.checkedTemplate,String(a.checkedTemplate)].includes(d)?r.push([o,s,a.uncheckedTemplate,h]):[a.uncheckedTemplate,String(a.uncheckedTemplate),null,void 0].includes(d)&&r.push([o,s,a.checkedTemplate,h]):r.push([o,s,a.uncheckedTemplate,h]),l+=1}n.push(l),l=0}}if((r=r.every(e=>{let[,,t]=e;return t===r[0][2]})?r.map(e=>{let[t,o,n]=e;return[t,o,n]}):r.map(e=>{let[t,o,,n]=e;return[t,o,n?.checkedTemplate]})).length>0){let o=[];if(n.forEach((e,t)=>{let n=r.splice(0,e);i.size&&i.has(t)&&(n=[...n,...i.get(t)??[]]),o.push(n)}),t){let t=[];o.forEach(e=>{e.forEach(e=>{t.push(e)})}),t.length>0&&e.setDataAtCell(t)}else o.forEach(t=>{t.length>0&&e.setDataAtCell(t)})}}}function b(){let t=e.getSelectedRange();if(t){for(let o=0;o<t.length;o++){let n=t[o].getTopStartCorner(),i=t[o].getBottomEndCorner();if(null!==n.row&&null!==n.col&&null!==i.row&&null!==i.col)for(let t=n.row;t<=i.row;t++)for(let o=n.col;o<=i.col;o++){if(e.getCellMetaTransient(t,o).readOnly)continue;let n=e.getCell(t,o);if(ne(n)&&n.querySelectorAll("input[type=checkbox]").length>0)return!0}}return!1}}g&&(!g||g.separated)||t.appendChild(u),p&&t.appendChild(h.createTextNode(gl)),ga.has(e)||(ga.set(e,!0),a=e.getShortcutManager().getContext("grid"),a?.addShortcuts([{keys:[["space"]],callback:()=>(f(),!b()),runOnlyIf:()=>!!e.getSelectedRangeActive()?.highlight.isCell()},{keys:[["enter"]],callback:()=>(f(),!b()),runOnlyIf:()=>{let t=e.getSelectedRangeActive();return!!(e.getSettings().enterBeginsEditing&&t?.highlight.isCell()&&!e.selection.isMultiple())}},{keys:[["delete"],["backspace"]],callback:()=>(f(!0),!b()),runOnlyIf:()=>!!e.getSelectedRangeActive()?.highlight.isCell()}],{group:"checkboxRenderer",relativeToGroup:dq,position:"before"}))}function gp(e){return"INPUT"===e.tagName&&"checkbox"===e.getAttribute("type")}function gm(e,t,o,n,i,r,l){gi.apply(this,[e,t,o,n,i,r,l])}nL.getSingleton().add("modifyAutoColumnSizeSeed",function(e,t,o){let{label:n,type:i,row:r,column:l,prop:s}=t;if(i!==gu||!n)return;let{value:a,property:h}=n,d=o;if(a)d="function"==typeof a?a(r,l,s,o):a;else if(h){let e=this.getDataAtRowProp(r,String(h));d=null!==e?e:o}return`${eO(d).length}`}),gg.RENDERER_TYPE=gu,gm.RENDERER_TYPE="handsontable";let gf={year:"numeric",month:"2-digit",day:"2-digit"},gb=new WeakSet;function gC(e,t){let{dateFormat:o,locale:n,allowEmpty:i,instance:r}=t;if(eN(e))return i?e:gl;if("string"==typeof o)return r&&!gb.has(r)&&(gb.add(r),tZ("The dateFormat option as a string is not supported. Use an Intl.DateTimeFormatOptions object instead.")),e;let l=uR(e);if(null===l)return gl;let s=tu(o)?o:gf;return new Intl.DateTimeFormat(n,s).format(l)}function gw(e,t,o,n,i,r,l){ug.apply(this,[e,t,o,n,i,r,l])}function gy(e,t,o,n,i,r,l){gw.apply(this,[e,t,o,n,i,r,l])}gw.valueFormatter=gC,gw.RENDERER_TYPE="date",gy.valueFormatter=gC,gy.RENDERER_TYPE="intl-date";let gv={year:"numeric",month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit",second:"2-digit",hour12:!1},gS=new WeakSet;function gR(e,t){let{dateTimeFormat:o,locale:n,allowEmpty:i,instance:r}=t;if(eN(e))return i?e:gl;if("string"==typeof o)return r&&!gS.has(r)&&(gS.add(r),tZ("The dateTimeFormat option as a string is not supported. Use an Intl.DateTimeFormatOptions object instead.")),e;let l=uA(e);if(null===l)return gl;let s=tu(o)?o:gv;return new Intl.DateTimeFormat(n,s).format(l)}function gx(e,t,o,n,i,r,l){ug.apply(this,[e,t,o,n,i,r,l])}gx.valueFormatter=gR,gx.RENDERER_TYPE="intl-datetime";let gM={hour:"numeric",minute:"2-digit"},gH=new WeakSet;function gE(e,t){let{timeFormat:o,locale:n,allowEmpty:i,instance:r}=t;if(eN(e))return i?e:gl;let l=uk(e);if(null===l)return gl;"string"==typeof o&&r&&!gH.has(r)&&(gH.add(r),tZ("The timeFormat option as a string is not supported. Use an Intl.DateTimeFormatOptions object instead."));let s=tu(o)?o:gM;return new Intl.DateTimeFormat(n,s).format(l)}function gk(e,t,o,n,i,r,l){ug.apply(this,[e,t,o,n,i,r,l]),t.dir="ltr"}function gT(e,t,o,n,i,r,l){gk.apply(this,[e,t,o,n,i,r,l])}gk.valueFormatter=gE,gk.RENDERER_TYPE="time",gT.RENDERER_TYPE="intl-time";let gI={useGrouping:!1,maximumFractionDigits:20},gA=new Map,g_=new WeakSet;function gO(e,t){return iR(e)&&(e=function(e,t){let{numericFormat:o,locale:n}=t,i=o??gI,r=`${n??""}:${JSON.stringify(i)}`,l=gA.get(r);return void 0===l&&(l=new Intl.NumberFormat(n,i),gA.set(r,l)),l.format(e)}(e,t)),e}function gP(e,t,o,n,i,r,l){let s=l.numericFormat;if(s?.pattern!==void 0||s?.culture!==void 0){let e=l.instance;g_.has(e)||(g_.add(e),tZ("The numericFormat.pattern and numericFormat.culture options are not supported. Use Intl.NumberFormat options instead (numericFormat: { style, currency, ... })."))}if(iR(e.getDataAtCell(o,n))){let e=[];if(Array.isArray(l.className))e=l.className;else{let t=l.className??"";t.length&&(e=t.split(" "))}0>e.indexOf("htLeft")&&0>e.indexOf("htCenter")&&0>e.indexOf("htRight")&&0>e.indexOf("htJustify")&&e.push("htRight"),0>e.indexOf("htNumeric")&&e.push("htNumeric"),l.className=e.join(" "),t.dir="ltr"}ug.apply(this,[e,t,o,n,i,r,l])}function gD(e,t,o,n,i,r){oy(t,r,se(e),"password",e.rootElement)}function gN(e,t,o,n,i,r,l){ug.apply(this,[e,t,o,n,i,r,l])}function gB(e,t){let o=e=>{let t;return tu(t=e)&&eP(t.key)&&eP(t.value)?o(e.key)&&o(e.value):null==e},n=e;(o(n)&&(n=""),""===n)?t(!!this.allowEmpty):this.strict&&this.source?"function"==typeof this.source?this.source(n,gL(n,t)):gL(n,t)(this.source):t(!0)}function gL(e,t){return function(o){let n=!1;for(let t=0,i=o.length;t<i;t++)if(td(e,o[t])){n=!0;break}t(n)}}function gV(e,t){return!!(t.allowEmpty&&eN(e)||"string"==typeof e&&e.startsWith("="))||uH(e)}function gF(e,t){t(!!(this.allowEmpty&&eN(e))||uH(e))}function gz(e,t){gB.apply(this,[e,t])}function gW(e,t){gF.call(this,e,t)}function g$(e,t){return!!(t.allowEmpty&&eN(e)||"string"==typeof e&&e.startsWith("="))||u_(e)}function gU(e,t){t(!!(this.allowEmpty&&eN(e))||u_(e))}function gG(e,t){return!!(t.allowEmpty&&eN(e)||"string"==typeof e&&e.startsWith("="))||uT(e)}function gq(e,t){t(!!(this.allowEmpty&&eN(e))||uT(e))}function gj(e,t){gq.call(this,e,t)}function gY(e,t){let o=e;(null==o&&(o=""),this.allowEmpty&&""===o)?t(!0):(this.allowEmpty||""!==o)&&Array.isArray(o)?0===o.length?t(!0):this.source?"function"==typeof this.source?this.source(o,gK(o,t)):gK(o,t)(this.source):t(!0):t(!1)}function gK(e,t){return function(o){let n=!0;for(let t=0,i=e.length;t<i;t++){let i=!1;for(let n=0,r=o.length;n<r;n++)if(tS(e[t])&&!tS(o[n])||!tS(e[t])&&tS(o[n])){i=!1;break}else tS(e[t])&&tS(o[n])&&td(e[t],o[n])?i=!0:"string"==typeof e[t]&&"string"==typeof o[n]&&e[t]===o[n]&&(i=!0);if(!i){n=!1;break}}t(n)}}function gX(e,t){let o=e;null==o&&(o=""),t(!!this.allowEmpty&&""===o||""!==o&&iR(e))}function gZ(e){return tu(e)&&void 0!==e.value?e.value:e}function gQ(e,t,o){return tS(this.getSourceDataAtCell(this.toPhysicalRow(t),this.toPhysicalColumn(o)))?tS(e)?e:{key:e,value:e}:e}gP.valueFormatter=gO,gP.RENDERER_TYPE="numeric",gD.valueFormatter=function(e,t){let o=t.hashLength||eO(e).length,n=String(t.hashSymbol??"*"),i="";for(let e=0;e<o;e++)i+=n;return i},gD.RENDERER_TYPE="password",gN.RENDERER_TYPE="select",gB.VALIDATOR_TYPE="autocomplete",gV.rowIndependent=!0,gF.VALIDATOR_TYPE="date",gz.VALIDATOR_TYPE="dropdown",gW.VALIDATOR_TYPE="intl-date",g$.rowIndependent=!0,gU.VALIDATOR_TYPE="intl-datetime",gG.rowIndependent=!0,gq.VALIDATOR_TYPE="time",gj.VALIDATOR_TYPE="intl-time",gY.VALIDATOR_TYPE="multiselect",gX.VALIDATOR_TYPE="numeric";let gJ="ht-multi-select",g0=`${gJ}-chip`,g1=`${gJ}-chip-remove`,g2=`${gJ}-chip-label`,g3=`${gJ}-overflow`,g6=new WeakSet,g4=new WeakMap,g5=new WeakMap;function g7(e,t){return tS(e)?e[t]:e}function g9(e){if(null==e||""===e)return[];if(Array.isArray(e))return e;if("string"==typeof e)try{let t=JSON.parse(e);return Array.isArray(t)?t:[t]}catch{return e.trim()?[e]:[]}return[e]}function g8(e){return Array.isArray(e)?ec(e.map(e=>tS(e)?e.value:e),", "):e}let pe={CELL_TYPE:"multiselect",_complexDataFormat:!0,editor:go,renderer:function(e,t,o,n,i,r,l){ui(e,t,o,n,i,r,l);let s=r;if(eN(s)&&l.placeholder)return void ov(t,s=eO(s=l.placeholder));let{rootDocument:a}=e,h=e.getSettings().ariaTags,d=e.toPhysicalRow(o),c=g9(e.getSourceDataAtCell(d,n));if(om(t),od(t,"ht-multi-select-renderer"),0===c.length)return void t.appendChild(a.createTextNode(""));let u=a.createElement("div");u.className="ht-multi-select-chips-container",c.forEach(e=>{var t;let r,l,s,d,c=(t=h??!1,r=a.createElement("span"),l=g7(e,"value"),od(r,g0),r.dataset.row=String(o),r.dataset.col=String(n),r.dataset.prop=String(i),r.title=l,od(s=a.createElement("span"),g2),s.textContent=l,r.appendChild(s),od(d=a.createElement("span"),g1),t&&d.setAttribute(...P()),r.dataset.key=g7(e,"key"),r.appendChild(d),r);u.appendChild(c)}),t.appendChild(u),g5.has(e)||(g5.set(e,new n4(e)),g5.get(e).addEventListener(e.rootElement,"click",t=>{var o,n;if(!oh(t5(t),g1))return;t.preventDefault(),t.stopPropagation();let i=t5(t).closest(`.${g0}`);if(!i)return;let r=Number(i.dataset.row??0),l=Number(i.dataset.col??0),s=e.toPhysicalRow(r),a=e.getSourceDataAtCell(s,l),h=i.dataset.key,d=(o=g9(a),n=h,o.filter(e=>g7(e,"key")!==n));e.setDataAtCell(r,l,d,"multiselect-renderer")}),e.addHook("beforeOnCellMouseDown",function(){for(var e=arguments.length,t=Array(e),o=0;o<e;o++)t[o]=arguments[o];let n=t[0];oh(t5(n),g1)&&nR(n)})),function(e,t,o){let n=t.querySelectorAll(`.${g0}`);for(let e=0;e<n.length;e++)n[e].style.display="";if(null===e||0===n.length)return;let i=t.querySelector(`.${g3}`);if(i)i.style.display="",i.style.visibility="hidden";else{var r;let e;r=n.length,od(e=o.createElement("span"),g3),e.textContent=`+${r}`,(i=e).style.visibility="hidden",t.appendChild(i)}let l=parseFloat(o.defaultView.getComputedStyle(t).gap)||0,s=i.offsetWidth,a=0,h=0;for(let t=0;t<n.length;t++){let o=a+n[t].offsetWidth+(t<n.length-1?l:0);if(o<=e-(t<n.length-1?s+l:0))a=o,h+=1;else break}let d=n.length-h;if(d>0){for(let e=h;e<n.length;e++)n[e].style.display="none";i.textContent=`+${d}`,i.style.visibility="visible"}else i.style.display="none"}(function(e,t){let o=e.getColWidth(t);if(g4.has(e)){let n=g4.get(e);n[t]?.width!==o&&g4.set(e,{...n,[t]:{width:o}})}else g4.set(e,{[t]:{width:o}});return g6.has(e)||(e.addHook("beforeColumnResize",function(){for(var t=arguments.length,o=Array(t),n=0;n<t;n++)o[n]=arguments[n];let i=o[0],r=o[1],l=g4.get(e);l?.[r]?.width!==i&&g4.set(e,{...l,[r]:{width:i}})}),g6.add(e)),g4.get(e)?.[t]?.width??o}(e,n),u,a)},validator:gY,valueGetter:g8,valueSetter:function(e,t,o){if(Array.isArray(e)){let n=this.getSourceDataAtCell(this.toPhysicalRow(t),o);if(Array.isArray(n)&&n.length>0&&tS(n[0]))return e.map(e=>tS(e)?e:{key:e,value:e})}return e},parsePastedValue:!0},pt=[];function po(e,t){if(Array.isArray(e)){"string"!=typeof t&&to("registerConflict(blockedTargetKeys[], incompatibleSettingKeys) expects incompatibleSettingKeys to be a string.");for(let o=0;o<e.length;o+=1)pt.push({blockedKey:e[o],incompatibleSettingKey:t});return}if("string"!=typeof e&&to("registerConflict expects a string blocked target key when the first argument is not an array."),Array.isArray(t)){for(let o=0;o<t.length;o+=1){let n=t[o];"string"!=typeof n&&to("registerConflict(blockedTargetKey, incompatibleSettingKeys) expects incompatibleSettingKeys to be a string array."),pt.push({blockedKey:e,incompatibleSettingKey:n})}return}"string"==typeof t?pt.push({blockedKey:e,incompatibleSettingKey:t}):to("Invalid registerConflict arguments.")}let pn=new Map([["plugin",function(e){return!!ij(e)}],["cell-type",ds],["editor",nU],["renderer",iZ],["validator",i6]]),pi=Symbol("mainSetting"),pr=[],pl=null;class ps{static get PLUGIN_KEY(){return"base"}static get SETTING_KEYS(){return[this.PLUGIN_KEY]}static get DEFAULT_SETTINGS(){return{}}static get SETTINGS_VALIDATORS(){return null}static PLUGIN_DEPS;#iH=null;eventManager=new n4(this);pluginName=null;pluginsInitializedCallbacks=[];isPluginsReady=!1;enabled=!1;initialized=!1;#e={};constructor(e){tg(this,"hot",e,{writable:!1}),pl=null,this.hot.addHook("afterPluginsInitialized",()=>this.onAfterPluginsInitialized()),this.hot.addHook("afterUpdateSettings",e=>{this.onUpdateSettings(e)}),this.hot.addHook("beforeInit",()=>this.init())}init(){this.pluginName=this.hot.getPluginName(this),this.updatePluginSettings(this.hot.getSettings()[this.constructor.PLUGIN_KEY]);let e=this.constructor.PLUGIN_DEPS,t=Array.isArray(e)?e:[];if(t.length>0){let e=[];if(t.forEach(t=>{let[o,n]=t.split(":");pn.has(o)||to(`Unknown plugin dependency type "${o}" was found.`),pn.get(o)(n)||e.push(` - ${n} (${o})`)}),e.length>0){let t=`The ${this.pluginName} plugin requires the following modules:
|
|
@@ -261,12 +261,12 @@ You have to import and register them manually.`;pr.length=0,to(e)}this.hot.runHo
|
|
|
261
261
|
You must provide a destination row for the Column Summary plugin in order to work properly!
|
|
262
262
|
`)),this.assignSetting(e,o,"destinationColumn",Error(`
|
|
263
263
|
You must provide a destination column for the Column Summary plugin in order to work properly!
|
|
264
|
-
`)),this.assignSetting(e,o,"sourceColumn",e.destinationColumn),this.assignSetting(e,o,"type","sum"),this.assignSetting(e,o,"forceNumeric",!1),this.assignSetting(e,o,"suppressDataTypeErrors",!0),this.assignSetting(e,o,"customFunction",null),this.assignSetting(e,o,"readOnly",!0),this.assignSetting(e,o,"roundFloat",!1),t.push(o)}),t}assignSetting(e,t,o,n){if("ranges"===o&&void 0===e[o]){t[o]=n;return}if("ranges"!==o||0!==e[o].length)if(void 0===e[o]){if(n instanceof Error)throw n;t[o]=n}else"destinationRow"===o&&t.reversedRowCoords?t[o]=this.countAddressableRows()-e[o]-1:t[o]=e[o]}resetSetupBeforeStructureAlteration(e,t,o){if("function"!==this.settingsType)return;let n=e.indexOf("row")>-1?"row":"col",i=this.getAllEndpoints();J(i,i=>{"row"===n&&i.destinationRow>=t&&("insert_row"===e?i.alterRowOffset=o:"remove_row"===e&&(i.alterRowOffset=-1*o)),"col"===n&&i.destinationColumn>=t&&("insert_col"===e?i.alterColumnOffset=o:"remove_col"===e&&(i.alterColumnOffset=-1*o))}),this.resetAllEndpoints(i,!1)}resetSetupAfterStructureAlteration(e,t,o,n,i){let r=!(arguments.length>5)||void 0===arguments[5]||arguments[5];if("auto"===i)return;if("function"===this.settingsType){let e=()=>(this.hot.removeHook("beforeViewRender",e),this.refreshAllEndpoints());this.hot.addHookOnce("beforeViewRender",e);return}let l=e.indexOf("row")>-1?"row":"col",s=e.indexOf("remove")>-1?-1:1,a=this.getAllEndpoints(),h=0===e.indexOf("move_row");J(a,e=>{"row"===l&&e.destinationRow>=t&&(e.alterRowOffset=s*o),"col"===l&&e.destinationColumn>=t&&(e.alterColumnOffset=s*o)}),this.resetAllEndpoints(a,!h),h?J(a,e=>{this.extendEndpointRanges(e,t,n?.[0]??0,n?.length??0),this.recreatePhysicalRanges(e),this.clearOffsetInformation(e)}):J(a,e=>{this.shiftEndpointCoordinates(e,t)}),r&&this.refreshAllEndpoints()}clearOffsetInformation(e){e.alterRowOffset=void 0,e.alterColumnOffset=void 0}extendEndpointRanges(e,t,o,n){J(e.ranges,e=>{e[1]&&(t>=e[0]&&t<=e[1]?o>e[1]?e[1]+=n:o<e[0]&&(e[0]-=n):o>=e[0]&&o<=e[1]&&(e[1]-=n,t<=e[0]&&(e[0]+=1,e[1]+=1)))})}recreatePhysicalRanges(e){let t=e.ranges,o=[],n=[];J(t,e=>{let t=[];if(e[1])for(let o=e[0];o<=e[1];o++)t.push(this.hot.toPhysicalRow(o));else t.push(this.hot.toPhysicalRow(e[0]));n.push(t)}),J(n,e=>{let t=[];J(e,(n,i)=>{0===i?t.push(n):e[i]!==e[i-1]+1&&(t.push(e[i-1]),o.push(t),(t=[]).push(n)),i===e.length-1&&(t.push(n),o.push(t))})}),e.ranges=o}shiftEndpointCoordinates(e,t){e.alterRowOffset&&0!==e.alterRowOffset?(e.destinationRow+=e.alterRowOffset||0,J(e.ranges,o=>{J(o,(n,i)=>{n>=t&&(o[i]+=e.alterRowOffset||0)})})):e.alterColumnOffset&&0!==e.alterColumnOffset&&(e.destinationColumn+=e.alterColumnOffset||0,e.sourceColumn+=e.alterColumnOffset||0)}resetAllEndpoints(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:this.getAllEndpoints(),t=!(arguments.length>1)||void 0===arguments[1]||arguments[1];e.some(e=>this.isEndpointOutOfBounds(e,e.alterRowOffset||0,e.alterColumnOffset||0))||(this.cellsToSetCache=[],J(e,e=>{this.resetEndpointValue(e,t)}),this.cellsToSetCache.length&&this.hot.setDataAtCell(this.cellsToSetCache,null,void 0,"ColumnSummary.reset"),this.cellsToSetCache=[])}refreshAllEndpoints(){let e=this.getAllEndpoints();this.cellsToSetCache=[],this.cacheSummaryDestinations(e),J(e,e=>{this.currentEndpoint=e,this.plugin.calculate(e),this.setEndpointValue(e,"init")}),this.currentEndpoint=null,this.cellsToSetCache.length&&this.hot.setDataAtCell(this.cellsToSetCache,null,void 0,"ColumnSummary.reset"),this.cellsToSetCache=[]}refreshChangedEndpoints(e){let t=this.getAllEndpoints(),o=[];this.cellsToSetCache=[],this.cacheSummaryDestinations(t),J(e,(e,n,i)=>{`${e[2]||""}`!=`${e[3]}`&&J(t,(e,t)=>{this.hot.propToCol(i[n][1])===e.sourceColumn&&-1===o.indexOf(t)&&o.push(t)})}),J(o,e=>{this.refreshEndpoint(t[e])}),this.cellsToSetCache.length&&this.hot.setDataAtCell(this.cellsToSetCache,null,void 0,"ColumnSummary.reset"),this.cellsToSetCache=[]}refreshEndpointsBySourceColumns(e){let t=e instanceof Set?e:new Set(e),o=this.getAllEndpoints(),n=o.filter(e=>t.has(e.sourceColumn));0!==n.length&&(this.cellsToSetCache=[],this.cacheSummaryDestinations(o),J(n,e=>{this.refreshEndpoint(e)}),this.cellsToSetCache.length&&this.hot.setDataAtCell(this.cellsToSetCache,null,void 0,"ColumnSummary.reset"),this.cellsToSetCache=[])}refreshCellMetas(){this.endpoints.forEach(e=>{let t=this.hot.toVisualRow(e.destinationRow),o=e.destinationColumn;null!==t&&(this.hot._setCellMetaDeclarative(t,o,"readOnly",e.readOnly),this.hot._setCellMetaDeclarative(t,o,"className","columnSummaryResult"))})}refreshEndpoint(e){this.currentEndpoint=e,this.plugin.calculate(e),this.setEndpointValue(e,void 0),this.currentEndpoint=null}resetEndpointValue(e){let t=!(arguments.length>1)||void 0===arguments[1]||arguments[1],o=e.alterRowOffset||0,n=e.alterColumnOffset||0,i=this.hot.toVisualRow(e.destinationRow+(t?o:0));null!==i&&this.cellsToSetCache.push([i,this.hot.toVisualColumn(e.destinationColumn+(t?n:0)),""])}setEndpointValue(e,t){let o=arguments.length>2&&void 0!==arguments[2]&&arguments[2];if(this.isEndpointOutOfBounds(e))return void this.throwOutOfBoundsWarning();let n=this.hot.toVisualRow(e.destinationRow);if(null!==n){let o=e.destinationColumn,i=this.hot.getCellMetaTransient(n,o);("init"===t||i.readOnly!==e.readOnly)&&(this.hot._setCellMetaDeclarative(n,o,"readOnly",e.readOnly),this.hot._setCellMetaDeclarative(n,o,"className","columnSummaryResult"))}e.result=function(e,t){if("number"!=typeof e)return e;switch(typeof t){case"number":return e.toFixed(Math.min(Math.max(0,t),100));case"boolean":return t?Math.round(e).toString():e;case"string":if("auto"===t){let t=Math.round(e).toString().length;return e.toFixed(8-t)}return e;default:return e}}(e.result,e.roundFloat),null!==n&&(o?this.hot.setDataAtCell(n,e.destinationColumn,e.result,"ColumnSummary.set"):this.cellsToSetCache.push([n,e.destinationColumn,e.result])),e.alterRowOffset=void 0,e.alterColumnOffset=void 0}throwOutOfBoundsWarning(){tZ("One of the Column Summary plugins' destination points you provided is beyond the table boundaries!")}},mo="columnSummary";class mn{#rs=!0;#ra=null;#rh=new ResizeObserver(e=>this.#rd(e));setObservedElement(e){this.#ra=e}unobserve(){this.#ra&&this.#rh.unobserve(this.#ra)}observe(){this.#rs=!0,this.#ra&&this.#rh.observe(this.#ra)}destroy(){this.#rh.disconnect()}#rd(e){if(this.#rs||!Array.isArray(e)||!e.length){this.#rs=!1;return}e.forEach(e=>{let{borderBoxSize:t}=e,{inlineSize:o,blockSize:n}=t[0];this.runLocalHooks("resize",o,n)})}}th(mn,sb);class mi{static get CLASS_EDITOR_CONTAINER(){return"htCommentsContainer"}static get CLASS_EDITOR(){return"htComments"}static get CLASS_INPUT(){return"htCommentTextArea"}static get CLASS_CELL(){return"htCommentCell"}#nr;#rc;#X=!1;#ru=null;#rg=null;#rp=null;#rm=!0;#eg=new mn;constructor(e,t,o){var n=this;this.#nr=e,this.#rc=o,this.#X=t,this.#rg=this.createEditor(),this.#rp=this.#rg.style,this.#eg.setObservedElement(this.getInputElement()),this.#eg.addLocalHook("resize",function(){for(var e=arguments.length,t=Array(e),o=0;o<e;o++)t[o]=arguments[o];n.runLocalHooks("resize",...t)}),this.hide()}setPosition(e,t){this.#rp&&(this.#rp.left=`${e}px`,this.#rp.top=`${t}px`)}setSize(e,t){if(e&&t){let o=this.getInputElement();o.style.width=`${e}px`,o.style.height=`${t}px`}}getSize(){return{width:oL(this.getInputElement()),height:oV(this.getInputElement())}}observeSize(){this.#eg.observe()}resetSize(){let e=this.getInputElement();e.style.width="",e.style.height=""}setReadOnlyState(e){this.getInputElement().readOnly=e}show(){this.#rp&&(this.#rp.display="block"),this.#rm=!1}hide(){this.#eg.unobserve(),!this.#rm&&this.#rp&&(this.#rp.display="none"),this.#rm=!0}isVisible(){return this.#rp?.display==="block"}setValue(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"";this.getInputElement().value=e||""}getValue(){return this.getInputElement().value}isFocused(){return nr(this.#nr)===this.getInputElement()}focus(){this.getInputElement().focus()}createEditor(){let e=this.#nr.createElement("div"),t=this.#nr.createElement("textarea");return e.style.display="none",this.#ru=this.#nr.createElement("div"),this.#ru.setAttribute("dir",this.#X?"rtl":"ltr"),od(this.#ru,mi.CLASS_EDITOR_CONTAINER),this.#rc.appendChild(this.#ru),od(e,mi.CLASS_EDITOR),od(t,mi.CLASS_INPUT),t.dataset.hotInput="true",e.appendChild(t),this.#ru.appendChild(e),e}getInputElement(){return this.#rg?.querySelector(`.${mi.CLASS_INPUT}`)??null}getEditorElement(){return this.#rg}destroy(){let e=this.#ru?this.#ru.parentNode:null;this.#rg?.parentNode?.removeChild(this.#rg),this.#rg=null,this.#rp=null,this.#eg.destroy(),e&&this.#ru&&e.removeChild(this.#ru)}}th(mi,sb);class mr{wasLastActionShow=!0;showDebounced=null;hidingTimer=null;constructor(e){this.updateDelay(e)}hide(){this.wasLastActionShow=!1,this.hidingTimer=setTimeout(()=>{!1===this.wasLastActionShow&&this.runLocalHooks("hide")},250)}show(e){this.wasLastActionShow=!0,this.showDebounced?.(e)}cancelHiding(){this.wasLastActionShow=!0,clearTimeout(this.hidingTimer??void 0),this.hidingTimer=null}updateDelay(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:250;this.showDebounced=nd(e=>{this.wasLastActionShow&&this.runLocalHooks("show",e.from.row,e.from.col)},e)}destroy(){this.clearLocalHooks()}}th(mr,sb);let ml="---------";function ms(e,t){let o={};return J(e,e=>{e.forAll((e,n)=>{e>=0&&n>=0&&(o[e]||(o[e]=[]),o[e][n]=t(e,n))})}),o}function ma(e,t,o,n,i){J(e,e=>{e.forAll((e,r)=>{var l,s,a,h,d,c;let u,g;e>=0&&r>=0&&(l=e,s=r,a=t,h=o,d=n,c=i,u=d(l,s),g=h,u.className&&(g="vertical"===a?function(e,t){if(-1!==e.indexOf(t))return e;let o=e.replace("htTop","").replace("htMiddle","").replace("htBottom","").replace(" ","");return`${o} ${t}`}(u.className,h):function(e,t){if(-1!==e.indexOf(t))return e;let o=e.replace("htLeft","").replace("htCenter","").replace("htRight","").replace("htJustify","").replace(" ","");return`${o} ${t}`}(u.className,h)),c(l,s,"className",g))})})}function mh(e){return`<span class="selected">${String.fromCharCode(10003)}</span>${e}`}function md(e,t){let o=!1;return Array.isArray(e)&&J(e,e=>(e.forAll((e,n)=>{if(e>=0&&n>=0&&t(e,n))return o=!0,!1}),o)),o}function mc(e,t){let o={top:0,left:0};if(t!==e.ownerDocument){let{frameElement:e}=t.defaultView,{top:n,left:i}=e.getBoundingClientRect();o.top=n,o.left=i}return o}let mu="comments",mg="comment",mp="value",mm="style",mf="readOnly",mb=`plugin:${mu}`;class mC{commands={};commonCallback=null;constructor(e){this.hot=e}registerCommand(e,t){this.commands[e]=t}setCommonCallback(e){this.commonCallback=e}execute(e){let t;for(var o,n=arguments.length,i=Array(n>1?n-1:0),r=1;r<n;r++)i[r-1]=arguments[r];let l=e.split(":"),s=l[0],a=2===l.length?l[1]:null,h=this.commands[s];if(h||to(`Menu command '${s}' not exists.`),a&&h.submenu&&(o=a,J(h.submenu.items,e=>{let n=e.key?e.key.split(":"):null;if(Array.isArray(n)&&n[1]===o)return t=e,!1}),h=t),!0===h.disabled||"function"==typeof h.disabled&&!0===h.disabled.call(this.hot)||tw(h,"submenu"))return;let d=[];"function"==typeof h.callback&&d.push(h.callback),"function"==typeof this.commonCallback&&d.push(this.commonCallback),i.unshift(l.join(":")),J(d,e=>e.apply(this.hot,i))}}let mw="alignment",my="clear_column",mv="col_left",mS="col_right",mR="make_read_only",mx="redo",mM="remove_col",mH="remove_row",mE="row_above",mk="row_below",mT="no_items",mI="undo",mA=[mE,mk,mv,mS,my,mH,mM,mI,mx,mR,mw,ml,mT],m_={[ml]:function(){return{name:ml}},[mT]:function(){return{key:mT,name(){return this.getTranslatedPhrase(sq)},disabled:!0,isCommand:!1}},[mE]:function(){return{key:mE,name(){return this.getTranslatedPhrase(sj)},callback(){let e=this.getSelectedRangeActive();if(!e)return;let t=e.getTopLeftCorner();null!==t.row&&this.alter("insert_row_above",t.row,1,"ContextMenu.rowAbove")},disabled(){let e=this.getSelectedRangeActive();return!!(!e||this.selection.isSelectedByColumnHeader()||e.isSingleHeader()&&null!==e.highlight.row&&e.highlight.row<0||this.countSourceRows()>=(this.getSettings().maxRows??1/0))||!!this.selection.isSelectedByCorner()&&0===this.countRows()},hidden(){return!this.getSettings().allowInsertRow}}},[mk]:function(){return{key:mk,name(){return this.getTranslatedPhrase(sY)},callback(){let e=this.getSelectedRangeActive();if(!e)return;let t=e.getBottomRightCorner();null!==t.row&&this.alter("insert_row_below",t.row,1,"ContextMenu.rowBelow")},disabled(){let e=this.getSelectedRangeActive();return!!(!e||this.selection.isSelectedByColumnHeader()||e.isSingleHeader()&&null!==e.highlight.row&&e.highlight.row<0||this.countSourceRows()>=(this.getSettings().maxRows??1/0))},hidden(){return!this.getSettings().allowInsertRow}}},[mv]:function(){return{key:mv,name(){return this.getTranslatedPhrase(sK)},callback(){let e=this.getSelectedRangeActive();if(!e)return;let t=e.getTopLeftCorner(),o=this.isRtl()?"insert_col_end":"insert_col_start";null!==t.col&&this.alter(o,t.col,1,"ContextMenu.columnLeft")},disabled(){if(!this.isColumnModificationAllowed())return!0;let e=this.getSelectedRangeActive();return!!(!e||this.selection.isSelectedByRowHeader()||e.isSingleHeader()&&(e.highlight.col??0)<0||this.countSourceCols()>=(this.getSettings().maxCols??1/0))||!!this.selection.isSelectedByCorner()&&0===this.countCols()},hidden(){return!this.getSettings().allowInsertColumn}}},[mS]:function(){return{key:mS,name(){return this.getTranslatedPhrase(sX)},callback(){let e=this.getSelectedRangeActive();if(!e)return;let t=e.getTopRightCorner(),o=this.isRtl()?"insert_col_start":"insert_col_end";null!==t.col&&this.alter(o,t.col,1,"ContextMenu.columnRight")},disabled(){if(!this.isColumnModificationAllowed())return!0;let e=this.getSelectedRangeActive();return!!(!e||this.selection.isSelectedByRowHeader()||e.isSingleHeader()&&(e.highlight.col??0)<0||this.countSourceCols()>=(this.getSettings().maxCols??1/0))},hidden(){return!this.getSettings().allowInsertColumn}}},[my]:function(){return{key:my,name(){return this.getTranslatedPhrase(s2)},callback(e,t){let o=t[0].start.col,n=t[0].end.col;this.countRows()&&this.populateFromArray(0,o,[[null]],Math.max(t[0].start.row,t[0].end.row),n,"ContextMenu.clearColumn")},disabled(){let e=this.getSelectedRangeActive();if(!e||e.isSingleHeader()&&(null===e.highlight.col||e.highlight.col<0)||!this.selection.isSelectedByColumnHeader())return!0;let t=!1;return e.forAll((e,o)=>{if(e<0||o<0)return!0;let{readOnly:n}=this.getCellMetaTransient(e,o);return!!n||(t=!0,!1)}),!t}}},[mH]:function(){return{key:mH,name(){let e=this.getSelected(),t=0;if(e)if(e.length>1)t=1;else{let[o,,n]=e[0];o-n!=0&&(t=1)}return this.getTranslatedPhrase(sZ,t)},callback(){this.alter("remove_row",function(e){let t=h8(e.getSelected());if(0===t||1===t)return[];let o=de(t,{createCellCoords:e._createCellCoords.bind(e),createCellRange:e._createCellRange.bind(e)}),n=new Set;return J(e.getSelected()??[],e=>{let{from:t,to:i}=o(e),r=Math.max(t.row??0,0);J(Array.from(Array((i.row??0)-r+1),(e,t)=>r+t),e=>{n.has(e)||n.add(e)})}),X(Array.from(n).sort((e,t)=>e-t),(e,t,o,n)=>(0!==o&&t===n[o-1]+1?e[e.length-1][1]+=1:e.push([t,1]),e),[])}(this),1,"ContextMenu.removeRow")},disabled(){let e=this.getSelectedRangeActive();if(!e||e.isSingleHeader()&&null!==e.highlight.row&&e.highlight.row<0)return!0;let t=this.countRows();return this.selection.isSelectedByCorner()?0===t:this.selection.isSelectedByColumnHeader()||0===t},hidden(){return!this.getSettings().allowRemoveRow}}},[mM]:function(){return{key:mM,name(){let e=this.getSelected(),t=0;if(e)if(e.length>1)t=1;else{let[,o,,n]=e[0];o-n!=0&&(t=1)}return this.getTranslatedPhrase(sQ,t)},callback(){this.alter("remove_col",function(e){let t=h8(e.getSelected());if(0===t||1===t)return[];let o=de(t,{createCellCoords:e._createCellCoords.bind(e),createCellRange:e._createCellRange.bind(e)}),n=new Set;return J(e.getSelected()??[],e=>{let{from:t,to:i}=o(e),r=Math.max(t.col??0,0);J(Array.from(Array((i.col??0)-r+1),(e,t)=>r+t),e=>{n.has(e)||n.add(e)})}),X(Array.from(n).sort((e,t)=>e-t),(e,t,o,n)=>(0!==o&&t===n[o-1]+1?e[e.length-1][1]+=1:e.push([t,1]),e),[])}(this),void 0,"ContextMenu.removeColumn")},disabled(){if(!this.isColumnModificationAllowed())return!0;let e=this.getSelectedRangeActive();if(!e||e.isSingleHeader()&&null!==e.highlight.col&&e.highlight.col<0)return!0;let t=this.countCols();return this.selection.isSelectedByCorner()?0===t:this.selection.isSelectedByRowHeader()||0===t},hidden(){return!this.getSettings().allowRemoveColumn}}},[mI]:function(){return{key:mI,name(){return this.getTranslatedPhrase(sJ)},callback(){this.getPlugin("undoRedo").undo()},hidden(){let e=this.getPlugin("undoRedo");return!e||!e.isEnabled()},disabled(){return!this.getPlugin("undoRedo").isUndoAvailable()}}},[mx]:function(){return{key:mx,name(){return this.getTranslatedPhrase(s0)},callback(){this.getPlugin("undoRedo").redo()},hidden(){let e=this.getPlugin("undoRedo");return!e||!e.isEnabled()},disabled(){return!this.getPlugin("undoRedo").isRedoAvailable()}}},[mR]:function(){return{key:mR,checkable:!0,ariaChecked(){return md(this.getSelectedRange()??[],(e,t)=>!!this.getCellMetaTransient(e,t).readOnly)},ariaLabel(){return this.getTranslatedPhrase(s1)},name(){let e=this.getTranslatedPhrase(s1);return md(this.getSelectedRange()??[],(e,t)=>!!this.getCellMetaTransient(e,t).readOnly)&&(e=mh(e)),e},callback(){let e=this.getSelectedRange()??[],t=md(e,(e,t)=>!!this.getCellMetaTransient(e,t).readOnly);for(let o of e)o.forAll((e,o)=>{e>=0&&o>=0&&this.setCellMeta(e,o,"readOnly",!t)});this.render()},disabled(){let e=this.getSelectedRangeActive();return!(!(!e||e.isSingleHeader()||this.selection.isSelectedByCorner())&&0!==this.countRows()&&0!==this.countCols()&&this.getSelectedRange()?.length)}}},[mw]:function(){return{key:mw,name(){return this.getTranslatedPhrase(ah)},disabled(){if(0===this.countRows()||0===this.countCols())return!0;let e=this.getSelectedRangeActive();return!!(!e||e.isSingleHeader())||!(this.getSelectedRange()&&!this.selection.isSelectedByCorner())},submenu:{items:[{key:`${mw}:left`,name(){return this.getTranslatedPhrase(ad)},callback(){let e=this.getSelectedRange()??[],t=ms(e,(e,t)=>this.getCellMetaTransient(e,t).className),o="horizontal",n="htLeft";this.runHooks("beforeCellAlignment",t,e,o,n),ma(e,o,n,(e,t)=>this.getCellMetaTransient(e,t),(e,t,o,n)=>this.setCellMeta(e,t,o,n)),this.render()},disabled:!1},{key:`${mw}:center`,name(){return this.getTranslatedPhrase(ac)},callback(){let e=this.getSelectedRange()??[],t=ms(e,(e,t)=>this.getCellMetaTransient(e,t).className),o="horizontal",n="htCenter";this.runHooks("beforeCellAlignment",t,e,o,n),ma(e,o,n,(e,t)=>this.getCellMetaTransient(e,t),(e,t,o,n)=>this.setCellMeta(e,t,o,n)),this.render()},disabled:!1},{key:`${mw}:right`,name(){return this.getTranslatedPhrase(au)},callback(){let e=this.getSelectedRange()??[],t=ms(e,(e,t)=>this.getCellMetaTransient(e,t).className),o="horizontal",n="htRight";this.runHooks("beforeCellAlignment",t,e,o,n),ma(e,o,n,(e,t)=>this.getCellMetaTransient(e,t),(e,t,o,n)=>this.setCellMeta(e,t,o,n)),this.render()},disabled:!1},{key:`${mw}:justify`,name(){return this.getTranslatedPhrase(ag)},callback(){let e=this.getSelectedRange()??[],t=ms(e,(e,t)=>this.getCellMetaTransient(e,t).className),o="horizontal",n="htJustify";this.runHooks("beforeCellAlignment",t,e,o,n),ma(e,o,n,(e,t)=>this.getCellMetaTransient(e,t),(e,t,o,n)=>this.setCellMeta(e,t,o,n)),this.render()},disabled:!1},{name:ml},{key:`${mw}:top`,name(){return this.getTranslatedPhrase(ap)},callback(){let e=this.getSelectedRange()??[],t=ms(e,(e,t)=>this.getCellMetaTransient(e,t).className),o="vertical",n="htTop";this.runHooks("beforeCellAlignment",t,e,o,n),ma(e,o,n,(e,t)=>this.getCellMetaTransient(e,t),(e,t,o,n)=>this.setCellMeta(e,t,o,n)),this.render()},disabled:!1},{key:`${mw}:middle`,name(){return this.getTranslatedPhrase(am)},callback(){let e=this.getSelectedRange()??[],t=ms(e,(e,t)=>this.getCellMetaTransient(e,t).className),o="vertical",n="htMiddle";this.runHooks("beforeCellAlignment",t,e,o,n),ma(e,o,n,(e,t)=>this.getCellMetaTransient(e,t),(e,t,o,n)=>this.setCellMeta(e,t,o,n)),this.render()},disabled:!1},{key:`${mw}:bottom`,name(){return this.getTranslatedPhrase(af)},callback(){let e=this.getSelectedRange()??[],t=ms(e,(e,t)=>this.getCellMetaTransient(e,t).className),o="vertical",n="htBottom";this.runHooks("beforeCellAlignment",t,e,o,n),ma(e,o,n,(e,t)=>this.getCellMetaTransient(e,t),(e,t,o,n)=>this.setCellMeta(e,t,o,n)),this.render()},disabled:!1}]}}}};function mO(){let e={};return tp(m_,(t,o)=>{e[o]=t()}),e}class mP{predefinedItems=mO();constructor(e,t=null){this.hot=e,this.defaultOrderPattern=t||[]}setPredefinedItems(e){let t={};this.defaultOrderPattern.length=0,tp(e,(e,o)=>{let n="";if(e.name===ml)t[ml]=e,n=ml;else if(isNaN(parseInt(o,10)))e.key=void 0===e.key?o:e.key,t[o]=e,n=String(e.key??"");else{let o=String(e.key??"");if(t[o])return void tr(t[o],e);t[o]=e,n=o}this.defaultOrderPattern.push(n)}),this.predefinedItems=t}getItems(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null;return function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null,t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[],o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},n=[],i=e;return(i&&i.items?i=i.items:Array.isArray(i)||(i=t),tu(i))?tp(i,(e,t)=>{let i=o["string"==typeof e?e:t];(i||(i=e),tu(e))?tr(i,e):"string"==typeof i&&(i={name:i}),void 0===i.key&&(i.key=t),n.push(i)}):J(i,(e,t)=>{let i=o[e];!i&&mA.indexOf(e)>=0||(i||(i={name:e,key:`${t}`}),tu(e)&&tr(i,e),void 0===i.key&&(i.key=t),n.push(i))}),n}(e,this.defaultOrderPattern,this.predefinedItems)}}class mD{top;topRelative;left;leftRelative;scrollTop;scrollLeft;cellHeight;cellWidth;constructor(e,t){const o=t.scrollY,n=t.scrollX;let i=0,r=0,l=0,s=0,a=0,h=0;this.rootWindow=t,this.type=this.getSourceType(e),"literal"===this.type?(i=parseInt(String(e.top),10),l=parseInt(String(e.left),10),a=e.height||0,h=e.width||0,r=i,s=l,i+=o,l+=n):"event"===this.type&&(i=parseInt(String(e.pageY),10),l=parseInt(String(e.pageX),10),a=t5(e).clientHeight,h=t5(e).clientWidth,r=i-o,s=l-n),this.top=i,this.topRelative=r,this.left=l,this.leftRelative=s,this.scrollTop=o,this.scrollLeft=n,this.cellHeight=a,this.cellWidth=h}getSourceType(e){let t="literal";return e instanceof Event&&(t="event"),t}fitsAbove(e){return this.topRelative>=e.offsetHeight}fitsBelow(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:this.rootWindow.innerHeight;return this.topRelative+e.offsetHeight<=t}fitsOnRight(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:this.rootWindow.document.documentElement.clientWidth;return this.leftRelative+this.cellWidth+e.offsetWidth<=t}fitsOnLeft(e){return this.leftRelative>=e.offsetWidth}}class mN{#ru=null;#rf=null;#rb=null;#rC=!1;#ot={above:0,below:0,left:0,right:0};constructor(e){this.#rC=e}setOffset(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;return this.#ot[e]=t,this}setElement(e){return this.#ru=e,this}setParentElement(e){return this.#rf=e,this}updatePosition(e){this.#rb=new mD(e,this.#ru.ownerDocument.defaultView),this.#rC?(this.#rb.fitsBelow(this.#ru)?this.setPositionBelowCursor():this.#rb.fitsAbove(this.#ru)?this.setPositionAboveCursor():this.setPositionBelowCursor(),this.updateHorizontalPosition()):(this.setPositionBelowCursor(),this.setPositionOnRightOfCursor())}updateHorizontalPosition(){"rtl"===this.#ru.dir?this.#rb.fitsOnLeft(this.#ru)?this.setPositionOnLeftOfCursor():this.setPositionOnRightOfCursor():this.#rb.fitsOnRight(this.#ru)?this.setPositionOnRightOfCursor():this.setPositionOnLeftOfCursor()}setPositionAboveCursor(){let e=this.#ot.above+this.#rb.top-this.#ru.offsetHeight;if(this.#rf){let t=this.#rf.ownerDocument.defaultView.getComputedStyle(this.#rf.querySelector(".ht_master")),o=Number.parseInt(t.paddingTop,10),n=Number.parseInt(t.borderTop,10);e=this.#rb.top+this.#rb.cellHeight-this.#ru.scrollHeight+o+n}this.#ru.style.top=`${e}px`}setPositionBelowCursor(){let e=this.#ot.below+this.#rb.top+1;if(this.#rf){let t=this.#rf.ownerDocument.defaultView.getComputedStyle(this.#rf.querySelector(".ht_master")),o=Number.parseInt(t.paddingTop,10),n=Number.parseInt(t.borderTop,10);e=this.#rb.top-o-n}this.#ru.style.top=`${e}px`}setPositionOnRightOfCursor(){let e=this.#rb.left;if(this.#rf){let t=Number.parseInt(this.#rf.ownerDocument.defaultView.getComputedStyle(this.#rf.querySelector(".htCore")).borderRightWidth,10);e+=this.#rb.cellWidth+t}else e+=this.#ot.right;this.#ru.style.left=`${e}px`}setPositionOnLeftOfCursor(){let e=this.#ot.left+this.#rb.left-this.#ru.offsetWidth;this.#rf&&(e-=Number.parseInt(this.#rf.ownerDocument.defaultView.getComputedStyle(this.#rf.querySelector(".htCore")).borderLeftWidth,10)),this.#ru.style.left=`${e}px`}}function mB(e){let{initialPage:t=-1,size:o=()=>0,onItemSelect:n=()=>{},onClear:i=()=>{}}=e,r=new Set,l=iA(t,-1,a()-1);function s(e,t){let o=a()-1;return(e<0&&(e=o),e>o&&(e=0),r.has(e))?-1:(r.add(e),!1===n(e,!1)&&(e=s(1===t?++e:--e,t)),e)}function a(){return Math.max(o(),0)}return{setCurrentPage:function(e){e>-1&&e<a()&&!1!==n(e,!0)&&(l=e)},setPageCursorAt:function(e){e>-1&&e<a()&&(l=e)},getCurrentPage:function(){return l},toFirstItem:function(){a()>0&&(r.clear(),l=s(0,1))},toLastItem:function(){a()>0&&(r.clear(),l=s(a()-1,-1))},toNextItem:function(){a()>0&&(r.clear(),l=s(++l,1))},toPreviousItem:function(){a()>0&&(r.clear(),l=s(--l,-1))},getSize:a,clear:function(){r.clear(),l=t,i()}}}function mL(e){return tw(e,"submenu")}function mV(e){return RegExp(ml,"i").test(e.name??"")}function mF(e,t){return!0===e.disabled||"function"==typeof e.disabled&&!0===e.disabled.call(t)}function mz(e){return tw(e,"disableSelection")}function mW(e,t){let o=e.slice(0);for(;0<o.length;)if(o[0].name===t)o.shift();else break;return o}let m$="menu";class mU{hotMenu=null;hotSubMenus={};menuItems=null;origOutsideClickDeselects=void 0;#rw=null;#ry=null;#rv;#rS=null;#rR=null;#rx=!1;#rM=null;#rH=[];get tableBorderWidth(){return void 0===this.#rv&&this.hotMenu&&(this.#rv=parseInt(this.hotMenu.rootWindow.getComputedStyle(this.hotMenu.view._wt.wtTable.TABLE).borderWidth,10)),this.#rv}constructor(e,t){if(this.hot=e,this.options={parent:null,name:null,className:"",keepInViewport:!0,standalone:!1,minWidth:215,container:this.hot.rootPortalElement,...t},this.container=this.createContainer(this.options.name),this.positioner=new mN(this.options.keepInViewport),this.parentMenu=this.options.parent||null,this.eventManager=new n4(this),this.registerEvents(),this.isSubMenu()){var o=this;this.addLocalHook("afterSelectionChange",function(){for(var e=arguments.length,t=Array(e),n=0;n<e;n++)t[n]=arguments[n];return o.parentMenu.runLocalHooks("afterSelectionChange",...t)})}this.hot.addHook("afterSetTheme",(e,t)=>{if(this.options.container!==this.hot.rootPortalElement){let t=this.options.container;oc(t,/ht-theme-.*/g),od(t,e)}t||this.close()})}registerEvents(){let e=this.hot.rootWindow;for(;e;)this.eventManager.addEventListener(e.document,"mousedown",e=>this.onDocumentMouseDown(e)),this.eventManager.addEventListener(e.document,"touchstart",e=>this.onDocumentMouseDown(e)),this.eventManager.addEventListener(e.document,"contextmenu",e=>this.onDocumentContextMenu(e)),e=t9(e)}#rE(){this.#rk();let e=this.hot.rootWindow;for(;e;)this.#rH.push(this.eventManager.addEventListener(e.document,"scroll",e=>this.onDocumentScroll(e),{capture:!0,passive:!0})),e=t9(e)}#rk(){this.#rH.forEach(e=>e()),this.#rH.length=0}setMenuItems(e){this.menuItems=e}getNavigator(){return this.#rw}getKeyboardShortcutsCtrl(){return this.#ry}getSelectedItem(){if(!this.hasSelectedItem())return null;let e=this.hotMenu.getSelectedActive()[0];return this.#rT(e)}getItemPositionByKey(e){return(this.hotMenu?.getSourceData()??this.menuItems??[]).findIndex(t=>t.key===e)}#rT(e){return this.hotMenu?.getSourceDataAtRow(e)||null}hasSelectedItem(){return Array.isArray(this.hotMenu.getSelectedActive())}isSubMenu(){return null!==this.parentMenu}open(){var e,t,o=this;this.runLocalHooks("beforeOpen"),this.container.removeAttribute("style"),this.container.style.display="block";let n=nd(function(){for(var e=arguments.length,t=Array(e),n=0;n<e;n++)t[n]=arguments[n];return o.openSubMenu(t[0])},300),i=Number(this.options.minWidth)||215,r=!1,l=Z(this.menuItems,e=>{var t;return e.key===mT&&(r=!0),t=this.hot,!e.hidden||!("function"==typeof e.hidden&&e.hidden.call(t))});if(l.length<1&&!r)l.push(mO()[mT]);else if(0===l.length)return;this.#rE();let s=!1,a={data:l=function(e){var t;let o,n,i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:ml,r=e.slice(0);return t=r=mW(r,i),(o=t.slice(0)).reverse(),(o=mW(o,i)).reverse(),n=[],J(r=o,(e,t)=>{t>0?n[n.length-1].name!==e.name&&n.push(e):n.push(e)}),r=n}(l),colHeaders:!1,autoColumnSize:!0,autoWrapRow:!1,modifyColWidth:e=>eP(e)&&e<i?i:e,autoRowSize:!1,readOnly:!0,editor:!1,copyPaste:!1,hiddenRows:!0,maxCols:1,columns:[{data:"name",renderer:(e=this.hot,(t,o,n,i,r,l,s)=>{let a=t.getSourceDataAtRow(n),h=e.rootDocument.createElement("div"),d="function"==typeof l?l.call(e):l,c="function"==typeof a.ariaLabel?a.ariaLabel.call(e):a.ariaLabel,u="function"==typeof a.ariaChecked?a.ariaChecked.call(e):a.ariaChecked;if(s.readOnlyCellClassName="",om(o),od(h,"htItemWrapper"),e.getSettings().ariaTags){let t=!mF(a,e)&&!mz(a)&&!mV(a);ou(o,[...!0===a.checkable?[["role","menuitemcheckbox"],O(c),U(u)]:[["role","menuitem"],O(d)],...t?[S(-1)]:[],...mF(a,e)?[D()]:[],...mL(a)?[z(!1)]:[]])}o.className="",o.appendChild(h),mV(a)?od(o,"htSeparator"):"function"==typeof a.renderer?(od(o,"htCustomMenuRenderer"),o.appendChild(a.renderer(t,h,n,i,r,d))):oy(h,String(d),se(e),"contextMenu",e.rootElement),mF(a,e)?od(o,"htDisabled"):mz(a)?od(o,"htSelectionDisabled"):mL(a)&&od(o,"htSubmenu")})}],renderAllRows:!0,fragmentSelection:!1,outsideClickDeselects:!1,disableVisualSelection:"area",layoutDirection:this.hot.isRtl()?"rtl":"ltr",ariaTags:!1,themeName:this.hot.getCurrentThemeName(),modifyRowHeight:(e,t)=>{let o=this.#rT(t);return o&&o.name===ml?1:e},beforeRefreshDimensions:()=>!1,beforeOnCellMouseOver:(e,t)=>{this.#rx||this.#rw.setPageCursorAt(t.row)},afterOnCellMouseOver:(e,t)=>{this.#rx||(this.isAllSubMenusClosed()?n(t.row):this.openSubMenu(t.row))},afterOnCellContextMenu:e=>{e.preventDefault(),tq()&&s&&this.hasSelectedItem()&&this.close(!0)},afterSelection:(e,t,o,n,i)=>{this.hotMenu.view.isMouseDown()&&(i.value=!0),this.runLocalHooks("afterSelectionChange",this.getSelectedItem())},beforeOnCellMouseUp:e=>{this.hasSelectedItem()&&(s=!this.isCommandPassive(this.getSelectedItem()),this.executeCommand(e))},afterOnCellMouseUp:e=>{(!tq()||!nM(e))&&s&&this.hasSelectedItem()&&(t$()||tG()?this.hot._registerTimeout(()=>this.close(!0),325):this.close(!0))},afterUnlisten:()=>{!this.hasSelectedItem()&&this.isOpened()&&this.hotMenu.listen()}};this.origOutsideClickDeselects=this.hot.getSettings().outsideClickDeselects,this.hot.getSettings().outsideClickDeselects=!1,this.hotMenu=new this.hot.constructor(this.container,a),this.hotMenu.addHook("afterInit",()=>this.onAfterInit()),this.hotMenu.init(),this.#rw=(t=this.hotMenu,mB({size:()=>t.countRows(),onItemSelect(e,o){let n=t.getCell(e,0);if(!n||oh(n,"htSeparator")||oh(n,"htDisabled")||oh(n,"htSelectionDisabled"))return!1;t.selectCell(e,0,...o?[e,0,!1,!1]:[])},onClear(){t.deselectCell()}})),this.#ry=function(e){let t,o,n,i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[],r=[];function l(e,t){h(t).addShortcuts(e,{group:m$})}function s(e,t){let o=h(t);e.forEach(e=>{let{keys:t}=e;t.forEach(e=>o.removeShortcutsByKeys(e))}),r.push({shortcuts:e,contextName:t??m$}),l(e,t)}function a(e){return e?`${m$}:${e}`:m$}function h(t){let o=e.hotMenu.getShortcutManager(),n=a(t);return o.getContext(n)??o.addContext(n)}return l((t=e.hot,o=e.hotMenu,[{keys:[["Control/Meta","A"]],...(n=t.getShortcutManager().getContext("grid"))?{forwardToContext:n}:{},callback:()=>e.close(!0)},{keys:[["Tab"],["Shift","Tab"]],callback:(o,n)=>{let i=t.getSettings(),r="function"==typeof i.tabMoves?i.tabMoves(o):i.tabMoves;r&&(n?.includes("shift")?t.selection.transformStart(-r.row,-r.col):t.selection.transformStart(r.row,r.col)),e.close(!0)}},{keys:[["Escape"]],callback:()=>e.close()},{keys:[["ArrowDown"]],callback:()=>e.getNavigator()?.toNextItem()},{keys:[["ArrowUp"]],callback:()=>e.getNavigator()?.toPreviousItem()},{keys:[[t.isRtl()?"ArrowLeft":"ArrowRight"]],callback:()=>{let t=o?.getSelectedActive();if(t){let o=e.openSubMenu(t[0]);o&&o.getNavigator()?.toFirstItem()}}},{keys:[[t.isRtl()?"ArrowRight":"ArrowLeft"]],callback:()=>{o?.getSelectedActive()&&e.isSubMenu()&&(e.close(),e.isSubMenu()&&e.parentMenu?.hotMenu?.listen())}},{keys:[["Control/Meta","ArrowUp"],["Home"]],callback:()=>e.getNavigator()?.toFirstItem()},{keys:[["Control/Meta","ArrowDown"],["End"]],callback:()=>e.getNavigator()?.toLastItem()},{keys:[["Enter"],["Space"]],callback:t=>{let n=o?.getSelectedActive();if(n)if(o?.getSourceDataAtRow(n[0])?.submenu){let t=e.openSubMenu(n[0]);t&&t.getNavigator()?.toFirstItem()}else e.executeCommand(t),e.close(!0)}},{keys:[["PageUp"]],callback:()=>{o?.getSelectedActive()?o?.selection.transformStart(-o.countVisibleRows(),0):e.getNavigator()?.toFirstItem()}},{keys:[["PageDown"]],callback:()=>{o?.getSelectedActive()?o?.selection.transformStart(o.countVisibleRows(),0):e.getNavigator()?.toLastItem()}}])),i.forEach(e=>{let{shortcuts:t,contextName:o}=e;s(t,o)}),{addCustomShortcuts:s,getCustomShortcuts:function(){return[...r]},getContext:h,listen:function(t){e.hotMenu.getShortcutManager().setActiveContextName(a(t))}}}(this),this.#ry.listen(),this.focus(),this.isSubMenu()&&this.addLocalHook("afterOpen",()=>this.parentMenu.runLocalHooks("afterSubmenuOpen",this)),this.runLocalHooks("afterOpen",this)}close(){let e=arguments.length>0&&void 0!==arguments[0]&&arguments[0];if(this.isOpened()){if(e&&this.isSubMenu())this.parentMenu.close();else if(this.#rw.clear(),this.closeAllSubMenus(),this.container.style.display="none",this.hotMenu.destroy(),this.hotMenu=null,this.#rS=null,this.#rR=null,this.#rk(),null!==this.#rM&&(this.hot.rootWindow.cancelAnimationFrame(this.#rM),this.#rM=null),this.#rx=!1,this.hot.getSettings().outsideClickDeselects=this.origOutsideClickDeselects,this.runLocalHooks("afterClose"),this.isSubMenu()){if(this.hot.getSettings().ariaTags){let e=this.parentMenu.hotMenu.getSelectedActive();if(e){let t=this.parentMenu.hotMenu.getCell(e[0],0);t&&ou(t,[z(!1)])}}this.parentMenu.hotMenu.listen()}}}openSubMenu(e){if(!this.hotMenu)return!1;let t=this.hotMenu.getCell(e,0);if(this.closeAllSubMenus(),!t||!oh(t,"htSubmenu"))return!1;let o=this.#rT(e),n=new mU(this.hot,{parent:this,name:"function"==typeof o.name?o.name.call(this.hot):o.name,className:this.options.className,keepInViewport:!0,container:this.options.container});return n.setMenuItems(o.submenu.items),n.open(),n.setPosition(t.getBoundingClientRect(),()=>t.isConnected?t.getBoundingClientRect():null),this.hotSubMenus[o.key]=n,this.hot.getSettings().ariaTags&&ou(t,[z(!0)]),n}closeSubMenu(e){let t=this.#rT(e),o=this.hotSubMenus[t.key];if(o){o.destroy(),delete this.hotSubMenus[t.key];let n=this.hotMenu.getCell(e,0);n&&this.hot.getSettings().ariaTags&&ou(n,[z(!1)])}}closeAllSubMenus(){J(this.hotMenu.getData(),(e,t)=>this.closeSubMenu(t))}isAllSubMenusClosed(){return 0===Object.keys(this.hotSubMenus).length}focus(){this.isOpened()&&(this.hotMenu.rootElement.focus({preventScroll:!0}),this.getKeyboardShortcutsCtrl().listen(),this.hotMenu.listen())}destroy(){let e=this.container.parentNode;this.clearLocalHooks(),this.close(),this.parentMenu=null,this.eventManager.destroy(),e&&e.removeChild(this.container)}isOpened(){return null!==this.hotMenu}executeCommand(e){if(!this.isOpened()||!this.hasSelectedItem())return;let t=this.getSelectedItem();if(this.runLocalHooks("select",t,e),this.isCommandPassive(t))return;let o=this.hot.getSelectedRange(),n=o?Q(o,e=>({start:e.getTopStartCorner(),end:e.getBottomEndCorner()})):[];this.runLocalHooks("executeCommand",t.key,n,e),this.isSubMenu()&&this.parentMenu.runLocalHooks("executeCommand",t.key,n,e)}isCommandPassive(e){return!1===e.isCommand||mV(e)||mF(e,this.hot)||mL(e)}setOffset(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;this.positioner.setOffset(e,t)}setPosition(e,t){this.isSubMenu()&&this.positioner.setParentElement(this.parentMenu.container),this.positioner.setElement(this.container).updatePosition(e),this.#rS=t??null,this.#rI()}#rI(){let e=this.container.getBoundingClientRect(),t=this.#rS?.()??this.hot.rootElement.getBoundingClientRect();this.#rR={offsetLeft:e.left-t.left,offsetTop:e.top-t.top}}updateMenuDimensions(){let{wtTable:e}=this.hotMenu.view._wt,t=this.hotMenu.getSettings().data,o=e.hider.style,n=e.holder.style,i=parseInt(o.width,10),r=X(t??[],(e,t,o)=>{let n=this.hotMenu.getCell(o,0),i=n?oV(n):0;return e+("object"==typeof t&&null!==t&&"name"in t&&t.name===ml?1:i)},0);n.width=`${i}px`,n.height=`${r}px`,o.height=n.height}createContainer(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null,t=this.options.container,o=t.ownerDocument,n=e,i=null;return n&&(n=n.replace(/[^A-Za-z0-9]/g,"_"),n=`${this.options.className}Sub_${n}`,i=o.querySelector(`.${this.options.className}.${n}`)),i||(od(i=o.createElement("div"),`htMenu handsontable ${this.options.className}`),n&&od(i,n),t.appendChild(i)),i}onAfterInit(){this.updateMenuDimensions(),this.hot.getSettings().ariaTags&&ou(this.hotMenu.rootElement,[["role","menu"],S(-1)])}onDocumentMouseDown(e){this.isOpened()&&(this.options.standalone&&this.hotMenu&&!on(t5(e),this.hotMenu.rootElement)?this.close(!0):(this.isAllSubMenusClosed()||this.isSubMenu())&&!on(t5(e),".htMenu")&&this.close(!0))}onDocumentScroll(e){!this.isOpened()||null===this.#rR||!ne(e.target)||on(e.target,".htMenu")||this.#rA(e.target)}#rA(e){let t;if(this.#rS)t=this.#rS();else{if(e===this.hot.rootElement||on(e,this.hot.rootElement))return void this.close(!0);t=this.hot.rootElement.getBoundingClientRect()}if(null===t)return void this.close(!0);let{offsetLeft:o,offsetTop:n}=this.#rR,i=this.container.getBoundingClientRect(),r=t.left+o-i.left,l=t.top+n-i.top;(0!==r||0!==l)&&(this.container.style.left=`${(Number.parseFloat(this.container.style.left)||0)+r}px`,this.container.style.top=`${(Number.parseFloat(this.container.style.top)||0)+l}px`,this.#r_())}#r_(){this.#rx=!0,null!==this.#rM&&this.hot.rootWindow.cancelAnimationFrame(this.#rM),this.#rM=this.hot.rootWindow.requestAnimationFrame(()=>{this.#rM=this.hot.rootWindow.requestAnimationFrame(()=>{this.#rx=!1,this.#rM=null})})}onDocumentContextMenu(e){this.isOpened()&&oh(t5(e),"htCore")&&on(t5(e),this.hotMenu.rootElement)&&e.preventDefault()}}th(mU,sb);let mG="contextMenu";nL.getSingleton().register("afterContextMenuDefaultOptions"),nL.getSingleton().register("beforeContextMenuShow"),nL.getSingleton().register("afterContextMenuShow"),nL.getSingleton().register("afterContextMenuHide"),nL.getSingleton().register("afterContextMenuExecute");class mq extends ps{static get PLUGIN_KEY(){return mG}static get PLUGIN_PRIORITY(){return 70}static get PLUGIN_DEPS(){return["plugin:AutoColumnSize"]}static get SEPARATOR(){return{name:ml}}static get DEFAULT_ITEMS(){return[mE,mk,ml,mv,mS,ml,mH,mM,ml,mI,mx,ml,mR,ml,mw]}commandExecutor=new mC(this.hot);itemsFactory=null;menu=null;isEnabled(){return!!this.hot.getSettings()[mG]}enablePlugin(){var e=this;if(this.enabled)return;let t=this.hot.getSettings()[mG],o="object"!=typeof t||null===t||Array.isArray(t)?null:t;o&&"function"==typeof o.callback&&this.commandExecutor.setCommonCallback(o.callback),this.menu=new mU(this.hot,{className:"htContextMenu",keepInViewport:!0,container:o?.uiContainer||this.hot.rootPortalElement}),this.menu.addLocalHook("afterOpen",this.#rO),this.menu.addLocalHook("afterClose",this.#rP),this.menu.addLocalHook("executeCommand",function(){for(var t=arguments.length,o=Array(t),n=0;n<t;n++)o[n]=arguments[n];e.executeCommand.call(e,...o)}),this.addHook("afterOnCellContextMenu",this.#rD),this.addHook("beforeDialogShow",()=>this.close()),this.registerShortcuts(),super.enablePlugin()}updatePlugin(){this.disablePlugin(),this.enablePlugin(),super.updatePlugin()}disablePlugin(){this.close(),this.menu&&(this.menu.destroy(),this.menu=null),this.unregisterShortcuts(),super.disablePlugin()}registerShortcuts(){this.hot.getShortcutManager().getContext("grid")?.addShortcut({keys:[["Control/Meta","Shift","Backslash"],["Shift","F10"]],callback:()=>{let e=this.hot.getSelectedRangeActive();if(!e)return;let{highlight:t}=e;if(null===t.row||null===t.col)return;this.hot.scrollToFocusedCell();let o=this.hot.getCell(t.row,t.col,!0);if(!o)return;let n=o.getBoundingClientRect(),i=mc(this.menu.container,this.hot.rootDocument);this.open({left:n.left+i.left,top:n.top+i.top-1+n.height},{left:n.width,above:-n.height},()=>{let e=this.hot.getCell(t.row,t.col,!0);return e?e.getBoundingClientRect():null}),this.menu.getNavigator().toFirstItem()},runOnlyIf:()=>{let e=this.hot.getSelectedRangeActive()?.highlight;return!!e&&this.hot.selection.isCellVisible(e)&&!this.menu.isOpened()},group:mG})}unregisterShortcuts(){this.hot.getShortcutManager().getContext("grid")?.removeShortcutsByGroup(mG)}open(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{above:0,below:0,left:0,right:0},o=arguments.length>2?arguments[2]:void 0;this.menu?.isOpened()||(this.hot.runHooks("beforeContextMenuShow",this),this.prepareMenuItems(),this.menu.open(),tp(t,(e,t)=>{this.menu.setOffset(t,e)}),this.menu.setPosition(e,o))}close(){this.menu?.close(),this.itemsFactory=null}executeCommand(e){for(var t=arguments.length,o=Array(t>1?t-1:0),n=1;n<t;n++)o[n-1]=arguments[n];null===this.itemsFactory&&this.prepareMenuItems(),this.commandExecutor.execute(e,...o)}prepareMenuItems(){this.itemsFactory=new mP(this.hot,mq.DEFAULT_ITEMS);let e=this.hot.getSettings()[mG],t={items:this.itemsFactory.getItems(e)};this.hot.runHooks("afterContextMenuDefaultOptions",t),this.itemsFactory.setPredefinedItems(t.items);let o=this.itemsFactory.getItems(e);this.hot.runHooks("beforeContextMenuSetItems",o),this.menu.setMenuItems(o),J(o,e=>{this.commandExecutor.registerCommand(String(e.key??""),e)})}#rD=e=>{let t,o,n=this.hot.getSettings(),i=n.rowHeaders,r=n.colHeaders,l=t5(e);if(this.close(),oh(l,"handsontableInput"))return;if(e.preventDefault(),e.stopPropagation(),!(i||r)&&(o=l.parentNode,!("TD"===l.nodeName||ne(o)&&"TD"===o.nodeName))&&!(oh(l,"current")&&oh(l,"wtBorder")))return;let s=mc(this.menu.container,this.hot.rootDocument),a=l.closest("td, th");if(a){let e=this.hot.getCoords(a);if(e&&null!==e.row&&null!==e.col){let{row:o,col:n}=e;t=()=>{let e=this.hot.getCell(o,n,!0);return e?e.getBoundingClientRect():null}}}this.open({top:e.clientY+s.top,left:e.clientX+s.left},void 0,t)};#rO=()=>{this.hot.runHooks("afterContextMenuShow",this)};#rP=()=>{this.hot.listen(),this.hot.runHooks("afterContextMenuHide",this)};destroy(){this.close(),this.menu&&this.menu.destroy(),super.destroy()}}class mj{constructor(){this.data={}}setData(e,t){this.data[e]=t}getData(e){return this.data[e]||void 0}}class mY{constructor(){this.clipboardData=new mj}preventDefault(){}composedPath(){return[]}}class mK{#rN;#rB;#rL;#rV;#rF;#rz;constructor({countRows:e,countColumns:t,rowsLimit:o,columnsLimit:n,countColumnHeaders:i}){this.#rB=e,this.#rL=t,this.#rV=o,this.#rF=n,this.#rz=i}setSelectedRange(e){this.#rN=e}getCellsRange(){if(0===this.#rB()||0===this.#rL())return null;let{row:e,col:t}=this.#rN.getTopStartCorner(),{row:o,col:n}=this.#rN.getBottomEndCorner();if(null===e||null===t||null===o||null===n)return null;let i=this.#rW(e,o),r=this.#r$(t,n);return{isRangeTrimmed:o!==i||n!==r,startRow:e,startCol:t,endRow:i,endCol:r}}getMostBottomColumnHeadersRange(){if(0===this.#rL()||0===this.#rz())return null;let{col:e}=this.#rN.getTopStartCorner(),{col:t}=this.#rN.getBottomEndCorner();if(null===e||null===t)return null;let o=this.#r$(e,t);return{isRangeTrimmed:t!==o,startRow:-1,startCol:e,endRow:-1,endCol:o}}getAllColumnHeadersRange(){if(0===this.#rL()||0===this.#rz())return null;let{col:e}=this.#rN.getTopStartCorner(),{col:t}=this.#rN.getBottomEndCorner();if(null===e||null===t)return null;let o=this.#r$(e,t);return{isRangeTrimmed:t!==o,startRow:-this.#rz(),startCol:e,endRow:-1,endCol:o}}#r$(e,t){return Math.min(t,Math.max(e+this.#rF()-1,e))}#rW(e,t){return Math.min(t,Math.max(e+this.#rV()-1,e))}}function mX(e){let t=[],o=[],n=new Set,i=new Set;return J(e,e=>{ik(Math.min(e.startRow,e.endRow),Math.max(e.startRow,e.endRow),e=>{n.has(e)||(n.add(e),t.push(e))}),ik(Math.min(e.startCol,e.endCol),Math.max(e.startCol,e.endCol),e=>{i.has(e)||(i.add(e),o.push(e))})}),{rows:t,columns:o}}nL.getSingleton().register("afterCopyLimit"),nL.getSingleton().register("modifyCopyableRange"),nL.getSingleton().register("beforeCut"),nL.getSingleton().register("afterCut"),nL.getSingleton().register("beforePaste"),nL.getSingleton().register("afterPaste"),nL.getSingleton().register("beforeCopy"),nL.getSingleton().register("afterCopy");let mZ="copyPaste",mQ=["fragmentSelection"],mJ="application/ht-source-data-json-html",m0='<meta name="generator" content="Handsontable"/><style type="text/css">td{white-space:normal}br{mso-data-placement:same-cell}</style>';class m1 extends ps{static get PLUGIN_KEY(){return mZ}static get SETTING_KEYS(){return[mZ,...mQ]}static get PLUGIN_PRIORITY(){return 80}static get DEFAULT_SETTINGS(){return{pasteMode:"overwrite",rowsLimit:1/0,columnsLimit:1/0,copyColumnHeaders:!1,copyColumnGroupHeaders:!1,copyColumnHeadersOnly:!1}}columnsLimit=1/0;rowsLimit=1/0;pasteMode="overwrite";uiContainer=this.hot.rootDocument.body;#rU=!1;#rG=!1;#rq=!1;#rj="cells-only";#rY=new WeakSet;#rK=!1;#rX=!1;#rZ=new mK({countRows:()=>this.hot.countRows(),countColumns:()=>this.hot.countCols(),rowsLimit:()=>this.rowsLimit,columnsLimit:()=>this.columnsLimit,countColumnHeaders:()=>this.hot.view.getColumnHeadersCount()});#rQ=!1;copyableRanges=[];isEnabled(){return!!this.hot.getSettings()[mZ]}enablePlugin(){if(this.enabled)return;this.pasteMode=this.getSetting("pasteMode")??this.pasteMode,this.rowsLimit=isNaN(this.getSetting("rowsLimit"))?this.rowsLimit:this.getSetting("rowsLimit"),this.columnsLimit=isNaN(this.getSetting("columnsLimit"))?this.columnsLimit:this.getSetting("columnsLimit"),this.#rU=this.getSetting("copyColumnHeaders"),this.#rG=this.getSetting("copyColumnGroupHeaders"),this.#rq=this.getSetting("copyColumnHeadersOnly"),this.uiContainer=this.getSetting("uiContainer")??this.uiContainer,this.addHook("afterContextMenuDefaultOptions",this.#rJ),this.addHook("afterSelection",this.#r0),this.addHook("afterSelectionEnd",this.#r1);let e=e=>t=>{this.#rY.has(t)||(this.#rY.add(t),e(t))};this.eventManager.addEventListener(this.hot.rootDocument,"copy",e(e=>this.onCopy(e))),this.eventManager.addEventListener(this.hot.rootDocument,"cut",e(e=>this.onCut(e))),this.eventManager.addEventListener(this.hot.rootDocument,"paste",e(e=>this.onPaste(e)));let t=this.hot.rootElement.getRootNode();nn(t)&&(this.eventManager.addEventListener(t,"copy",e(e=>this.onCopy(e))),this.eventManager.addEventListener(t,"cut",e(e=>this.onCut(e))),this.eventManager.addEventListener(t,"paste",e(e=>this.onPaste(e)))),tV()&&(this.eventManager.addEventListener(this.hot.rootDocument.body,"mouseenter",this.#r2),this.eventManager.addEventListener(this.hot.rootDocument.body,"mouseleave",this.#r3),this.addHook("afterSelection",this.#r6)),super.enablePlugin()}updatePlugin(){this.disablePlugin(),this.enablePlugin(),super.updatePlugin()}disablePlugin(){super.disablePlugin()}copy(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"cells-only";this.#rj=e,this.#rK=!0,this.#r4("copy")}copyCellsOnly(){this.copy("cells-only")}copyColumnHeadersOnly(){this.copy("column-headers-only")}copyWithAllColumnHeaders(){this.copy("with-column-group-headers")}copyWithColumnHeaders(){this.copy("with-column-headers")}cut(){this.#rX=!0,this.#r4("cut")}getRangedCopyableData(e){return dk(this.getRangedData(e))}getRangedData(e){let t=arguments.length>1&&void 0!==arguments[1]&&arguments[1],o=[],{rows:n,columns:i}=mX(e);return J(n,e=>{let n=[];J(i,o=>{if(e<0)n.push(this.hot.getColHeader(o,e));else{let i=t?this.hot.getCopyableSourceData(e,o):this.hot.getCopyableData(e,o);t&&(tu(i)||Array.isArray(i))&&(i=JSON.stringify(i)),n.push(i)}}),o.push(n)}),o}paste(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"",t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:e;if(!e&&!t)return;let o=new mY;e&&o.clipboardData.setData("text/plain",e),t&&o.clipboardData.setData("text/html",t),this.onPaste(o)}setCopyableText(){let e=this.hot.getSelectedRangeActive();if(!e)return;if(e.isSingleHeader()){this.copyableRanges=[];return}this.#rZ.setSelectedRange(e);let t=new Map([["headers",null],["cells",null]]);"column-headers-only"===this.#rj?t.set("headers",this.#rZ.getMostBottomColumnHeadersRange()):("with-column-headers"===this.#rj?t.set("headers",this.#rZ.getMostBottomColumnHeadersRange()):"with-column-group-headers"===this.#rj&&t.set("headers",this.#rZ.getAllColumnHeadersRange()),t.set("cells",this.#rZ.getCellsRange())),this.copyableRanges=Array.from(t.values()).filter(e=>null!==e).map(e=>{let{startRow:t,startCol:o,endRow:n,endCol:i}=e;return{startRow:t,startCol:o,endRow:n,endCol:i}}),this.copyableRanges=this.hot.runHooks("modifyCopyableRange",this.copyableRanges);let o=t.get("cells");if(null!=o&&o.isRangeTrimmed){let{startRow:e,startCol:t,endRow:n,endCol:i}=o;this.hot.runHooks("afterCopyLimit",n-e+1,i-t+1,this.rowsLimit,this.columnsLimit)}}isEditorOpened(){return this.hot.getActiveEditor()?.isOpened()}#r4(e){if(tV()){let t=this.hot.getSelectedRangeActive();if(t){let{row:o,col:n}=t.highlight;if(null!==o&&null!==n){let t=this.hot.getCell(o,n,!0);t&&o8(t,()=>{this.hot.rootDocument.execCommand(e)})}}}else this.hot.rootDocument.execCommand(e)}#r5(e){let{rows:t}=mX(e),o=0;for(let e=0;e<t.length&&!(t[e]>=0);e++)o+=1;return{columnHeadersCount:o}}populateValues(e){let{plainData:t,originalPlainData:o,sourceData:n}=e;if(!t.length)return[null,null,null,null];let i=this.hot.getSelectedRangeActive(),r=t.length,l=t[0].length,s=[];if(!i)return[null,null,null,null];let{row:a,col:h}=i.getTopStartCorner(),{row:d,col:c}=i.getBottomEndCorner();if(null===a||null===h||null===d||null===c)return[null,null,null,null];let u=a,g=h,p=a,m=h;for(;s.length<r||u<=d;){let{skipRowOnPaste:e,visualRow:i}=this.hot.getCellMeta(u,h);if(u=i+1,!0===e)continue;p=i,g=h;let a=[],d=s.length%r;for(;a.length<l||g<=c;){let{skipColumnOnPaste:e,visualCol:r,parsePastedValue:s}=this.hot.getCellMeta(i,g);this.hot.getSourceDataAtCell(i,g);let h=a.length%l;if(g=r+1,!0===e)continue;m=r;let c=n?.[d]?.[h],u=o?.[d]?.[h],p=t[d][h];s&&n&&ic(c)&&p===u&&(p=JSON.parse(c)),a.push(p)}s.push(a)}return this.#rQ=!0,this.hot.populateFromArray(a,h,s,void 0,void 0,"CopyPaste.paste",this.pasteMode),[a,h,p,m]}#r7(){if(this.hot.isListening()){let e=this.hot.getSelectedRangeActive();if(e){let{row:t,col:o}=e.highlight;if(null===t||null===o)return;let n=this.hot.getCell(t,o,!0);n&&o7(n)}}}#r9(){if(this.hot.isListening()){let e=this.hot.getSelectedRangeActive();if(e){let{row:t,col:o}=e.highlight;if(null===t||null===o)return;let n=this.hot.getCell(t,o,!0);n?.hasAttribute("contenteditable")&&o9(n)}}}#r8(e){let t=e.composedPath();return t.some(e=>nn(e))?t[0]:("target"in e?e.target:null)??t[0]}onCopy(e){let t=this.#r8(e),o=this.hot.getFocusManager().getRefocusElement(),n=ne(t)&&"hotInput"in t.dataset;if(!this.hot.isListening()&&!this.#rK||this.isEditorOpened()||ne(t)&&(n&&t!==o||!n&&t!==this.hot.rootDocument.body&&!t4(t,this.hot.rootElement)))return;e.preventDefault(),this.setCopyableText(),this.#rK=!1;let i=this.getRangedData(this.copyableRanges),r=this.getRangedData(this.copyableRanges,!0),l=this.#r5(this.copyableRanges);this.hot.runHooks("beforeCopy",i,this.copyableRanges,l)&&(this.#le(e,i,r),this.hot.runHooks("afterCopy",i,this.copyableRanges,l)),this.#rj="cells-only"}onCut(e){let t=this.#r8(e),o=this.hot.getFocusManager().getRefocusElement(),n=ne(t)&&"hotInput"in t.dataset;if(!this.hot.isListening()&&!this.#rX||this.isEditorOpened()||ne(t)&&(n&&t!==o||!n&&t!==this.hot.rootDocument.body&&!t4(t,this.hot.rootElement)))return;e.preventDefault(),this.setCopyableText(),this.#rX=!1;let i=this.getRangedData(this.copyableRanges),r=this.getRangedData(this.copyableRanges,!0);this.hot.runHooks("beforeCut",i,this.copyableRanges)&&(this.#le(e,i,r),this.hot.emptySelectedCells("CopyPaste.cut"),this.hot.runHooks("afterCut",i,this.copyableRanges))}onPaste(e){let t=this.#r8(e),o=this.hot.getFocusManager().getRefocusElement(),n=ne(t)&&"hotInput"in t.dataset;if(!this.hot.isListening()||this.isEditorOpened()||!this.hot.getSelected()||ne(t)&&(n&&t!==o||!n&&t!==this.hot.rootDocument.body&&!t4(t,this.hot.rootElement)))return;e.preventDefault?.();let i=this.#lt(e),{pastedSourceData:r}=i,{pastedData:l}=i;if("string"==typeof l&&(l=function(e){let t,o=[[""]];if(0===e.length)return o;let n=0,i=0;for(;e.length>0&&t!==e.length;)if(t=e.length,e.match(dE))e=e.replace(dE,""),n+=1,o[i][n]="";else if(e.match(dM))e=e.replace(dM,""),n=0,o[i+=1]=[""];else{let t="";if(e.startsWith('"')){let o=function(e){let t=0;for(;t<e.length;){if('"'===e[t]){if('"'===e[t+1]){t+=2;continue}let o=e[t+1];if(void 0===o||" "===o||"\r"===o||"\n"===o)return t}t+=1}return -1}(e.slice(1));if(-1!==o){let n=0,i=e.slice(1);for(;n<o;)'"'===i[n]&&'"'===i[n+1]?(t+='"',n+=2):(t+=i[n],n+=1);e=e.slice(o+2)}else{let o=0,n=!0;for(;n;){let i=e.slice(0,1);'"'===i&&(o+=1),t+=i,(0===(e=e.slice(1)).length||e.match(/^[\t\r\n]/)&&o%2==0)&&(n=!1)}t=t.replace(/^"/,"").replace(/"$/,"").replace(/["]*/g,e=>Array(Math.floor(e.length/2)).fill('"').join(""))}}else{let o=e.match(dH);t=o?o[0]:"",e=e.slice(t.length)}o[i][n]=t}return o}(l)),void 0===l||Array.isArray(l)&&0===l.length)return;let s=ts(l);if(!1===this.hot.runHooks("beforePaste",l,this.copyableRanges))return;let[a,h,d,c]=this.populateValues({plainData:l,sourceData:r,originalPlainData:s});null!==a&&null!==h&&null!==d&&null!==c&&this.hot.selectCell(a,h,Math.min(this.hot.countRows()-1,d),Math.min(this.hot.countCols()-1,c)),this.hot.runHooks("afterPaste",l,this.copyableRanges)}#lt(e){let t,o;if(e&&void 0!==e.clipboardData){let n=e.clipboardData,i=st(this.hot,n.getData(mJ)??"","CopyPaste.paste.sourceData");if(i){let e=is(i,this.hot.rootDocument);o=e?.data}let r=st(this.hot,n.getData("text/html")??"","CopyPaste.paste");if(r&&/(<table)|(<TABLE)/g.test(r)){let e=is(r,this.hot.rootDocument);t=e?.data}else"string"==typeof(t=n.getData("text/plain"))&&(t=t.replace(/(\r\n|\r|\n)$/,""))}else"u"<typeof ClipboardEvent&&void 0!==this.hot.rootWindow.clipboardData&&(t=this.hot.rootWindow.clipboardData.getData("Text"));return{pastedData:t,pastedSourceData:o}}#le(e,t,o){let n=dk(t);if(e&&e.clipboardData){let i=it(t),r=it(o);e.clipboardData.setData("text/plain",n),e.clipboardData.setData("text/html",[m0,i].join("")),e.clipboardData.setData(mJ,[m0,r].join(""))}else"u"<typeof ClipboardEvent&&this.hot.rootWindow.clipboardData.setData("Text",n)}#rJ=e=>{var t,o,n,i,r;e.items.push({name:"---------"},(t=this,{key:"copy",name(){return this.getTranslatedPhrase(s3)},callback(){t.copyCellsOnly()},disabled(){if(0===this.countRows()||0===this.countCols())return!0;let e=this.getSelectedRangeActive();if(!e||e.isSingleHeader())return!0;let t=this.getSelected();return!t||!!(t.length>1)},hidden:!1})),this.#rU&&e.items.push((o=this,{key:"copy_with_column_headers",name(){let e=this.getSelectedRangeActive(),t=e?iA(e.getWidth()-1,0,1):0;return this.getTranslatedPhrase(s6,t)},callback(){o.copyWithColumnHeaders()},disabled(){if(!this.hasColHeaders())return!0;let e=this.getSelectedRangeActive();if(!e||e.isSingleHeader())return!0;let t=this.getSelected();return!t||!!(t.length>1)},hidden:!1})),this.#rG&&e.items.push((n=this,{key:"copy_with_column_group_headers",name(){let e=this.getSelectedRangeActive(),t=e?iA(e.getWidth()-1,0,1):0;return this.getTranslatedPhrase(s4,t)},callback(){n.copyWithAllColumnHeaders()},disabled(){if(!this.hasColHeaders()||!this.getSettings().nestedHeaders)return!0;let e=this.getSelectedRangeActive();if(!e||e.isSingleHeader())return!0;let t=this.getSelected();return!t||!!(t.length>1)},hidden:!1})),this.#rq&&e.items.push((i=this,{key:"copy_column_headers_only",name(){let e=this.getSelectedRangeActive(),t=e?iA(e.getWidth()-1,0,1):0;return this.getTranslatedPhrase(s5,t)},callback(){i.copyColumnHeadersOnly()},disabled(){if(!this.hasColHeaders())return!0;let e=this.getSelectedRangeActive();if(!e||e.isSingleHeader())return!0;let t=this.getSelected();return!t||!!(t.length>1)},hidden:!1})),e.items.push((r=this,{key:"cut",name(){return this.getTranslatedPhrase(s7)},callback(){r.cut()},disabled(){if(0===this.countRows()||0===this.countCols())return!0;let e=this.getSelectedRangeActive();if(!e||e.isSingleHeader())return!0;let t=this.getSelected();return!t||!!(t.length>1)},hidden:!1}))};#r0=(e,t,o,n,i)=>{this.#rQ&&(i.value=!0),this.#rQ=!1};#r1=()=>{this.isEditorOpened()||this.hot.getSettings().fragmentSelection||this.setCopyableText()};#r2=()=>{this.#r9()};#r3=()=>{this.#r7()};#r6=()=>{this.#r9()};destroy(){super.destroy()}}function m2(e,t){return`border_row${e}col${t}`}function m3(e,t,o){return e>=t+o?e-o:e>=t?-1:e}function m6(){return{width:1,color:"#000"}}function m4(){return{hide:!0}}function m5(e){return(eP(e.start)||eP(e.left))&&(e.start=e.start??e.left),(eP(e.end)||eP(e.right))&&(e.end=e.end??e.right),delete e.left,delete e.right,e}function m7(e){return eP(e.start)&&(e.left=e.start),eP(e.end)&&(e.right=e.end),e}function m9(e,t){return{id:m2(e,t),border:{width:1,color:"#000",cornerVisible:!1},row:e,col:t,top:m4(),bottom:m4(),start:m4(),end:m4()}}function m8(e,t,o){tw(t,o)&&eP(t[o])&&(t[o]?tu(t[o])||(t[o]=m6()):t[o]=m4(),e[o]=t[o])}function fe(e,t){let o=!1;return J(e.getSelectedRange()??[],n=>{n.forAll((n,i)=>{if(n<0||i<0)return;let r=e.getCellMeta(n,i).borders;if(r){if(!t)return o=!0,!1;else if(!tw(r[t],"hide")||!1===r[t].hide)return o=!0,!1}})}),o}function ft(e){return`<span class="selected">${String.fromCharCode(10003)}</span>${e}`}let fo=new Map([["left","start"],["right","end"]]),fn="customBorders";function fi(e){return"object"==typeof e&&null!==e}function fr(e){return fi(e)&&"string"==typeof e.id&&"number"==typeof e.row&&"number"==typeof e.col}function fl(e){return fi(e)&&"number"==typeof e.row&&"number"==typeof e.col}let fs=["dashed","dotted","solid"];class fa extends ps{static get PLUGIN_KEY(){return fn}static get PLUGIN_PRIORITY(){return 90}static get SETTING_KEYS(){return[fn,"customBordersProgressive"]}savedBorders=[];#lo=new Map;#ln=new Map;#li=new Map;#lr=!0;#ll=null;#ls=!1;#la=!1;#lh=!1;#ld=null;#lc=0;#lu=5e3;#lg=0;#lp=null;#lm=null;isEnabled(){return!!this.hot.getSettings()[fn]}enablePlugin(){this.enabled||(this.addHook("afterContextMenuDefaultOptions",e=>this.#rJ(e)),this.addHook("init",()=>this.#lf()),this.addHook("beforeCreateRow",this.#lb),this.addHook("afterCreateRow",this.#lC),this.addHook("beforeRemoveRow",this.#lw),this.addHook("afterRemoveRow",this.#ly),this.addHook("beforeCreateCol",this.#lv),this.addHook("afterCreateCol",this.#lS),this.addHook("beforeRemoveCol",this.#lR),this.addHook("afterRemoveCol",this.#lx),this.addHook("beforeRowMove",this.#lM),this.addHook("afterRowMove",this.#lH),this.addHook("beforeColumnMove",this.#lE),this.addHook("afterColumnMove",this.#rt),this.addHook("beforeViewRender",this.#i6),this.addHook("afterSetCellMeta",this.#iF),this.addHook("afterRemoveCellMeta",this.#lk),super.enablePlugin())}disablePlugin(){this.#lT(),this.hideBorders(),super.disablePlugin()}updatePlugin(){this.disablePlugin(),this.enablePlugin(),this.changeBorderSettings(),super.updatePlugin()}setBorders(e,t){let o=["top","bottom","start","end"],n=null;t&&(this.checkSettingsCohesion([t]),o=Object.keys(t),n=m5(t));let i=de(h8(e),{createCellCoords:this.hot._createCellCoords.bind(this.hot),createCellRange:this.hot._createCellRange.bind(this.hot)});J(e,e=>{i(e).forAll((e,t)=>(J(o,o=>{this.prepareBorderFromCustomAdded(e,t,n,fo.get(o)??o)}),!0))}),this.hot.render()}getBorders(e){if(!Array.isArray(e))return this.savedBorders;let t=de(h8(e),{createCellCoords:this.hot._createCellCoords.bind(this.hot),createCellRange:this.hot._createCellRange.bind(this.hot)}),o=[];return J(e,e=>{t(e).forAll((e,t)=>(J(this.savedBorders,n=>{n.row===e&&n.col===t&&o.push(m7(n))}),!0))}),o}clearBorders(e){e?this.setBorders(e):(this.#lI(),this.hot.render())}insertBorderIntoSettings(e,t){this.checkSavedBorders(e)||(this.savedBorders.push(e),this.#lo.set(e.id,this.savedBorders.length-1)),this.#lA(e),this.#l_(e.id)}prepareBorderFromCustomAdded(e,t,o,n){let i=this.hot.countRows(),r=this.hot.countCols();if(e>=i||t>=r)return;let l=m9(e,t);if(o){var s;let n=this.#lO(e,t);fr(n)&&((l=m5(ts(n))).row=e,l.col=t,l.id=m2(e,t)),s=l,tw(o,"border")&&o.border&&(s.border=o.border),m8(s,o,"top"),m8(s,o,"bottom"),m8(s,o,"start"),m8(s,o,"end"),l=s}4===this.countHide(l)?this.removeAllBorders(e,t):this.#lP(e,t,m7(l))&&this.insertBorderIntoSettings(l,n)}prepareBorderFromCustomAddedRange(e,t){let o=Math.min(e.to.row,this.hot.countRows()-1),n=Math.min(e.to.col,this.hot.countCols()-1);ik(e.from.row,o,o=>{ik(e.from.col,n,n=>{let{border:i,add:r}=this.#lD(o,n,t,e);r>0&&this.#lP(o,n,m7(i))&&this.insertBorderIntoSettings(i,void 0)})})}#lO(e,t){let o=this.#ll;if(null===o||!this.#ls)return this.hot.getCellMeta(e,t).borders;let n=`${e},${t}`,i=o.has(n);return o.add(n),i?this.hot.getCellMeta(e,t).borders:void 0}#lP(e,t,o){let n=this.hot.hasHook(null===o?"beforeRemoveCellMeta":"beforeSetCellMeta");this.#la=!0;try{null===o?this.hot.removeCellMeta(e,t,"borders"):this.hot.setCellMeta(e,t,"borders",o)}finally{this.#la=!1}if(!n)return!0;let i=this.hot.getCellMetaTransient(e,t);return null===o?!tw(i,"borders"):i.borders===o}#lD(e,t,o,n){let i=this.#lO(e,t),r=fr(i)?m5(ts(i)):m9(e,t),l=0,s=(e,t)=>{e&&tw(o,t)&&(r[t]=function(e,t){if(e&&tu(e)&&Object.keys(e).length>0)return e;if(t&&tu(t)){let e={...t};return delete e.cornerVisible,e}return e}(o[t],o.border),l+=1)};return s(e===n.from.row,"top"),s(e===n.to.row,"bottom"),s(t===n.from.col,"start"),s(t===n.to.col,"end"),fi(o.border)&&(r.border=o.border),{border:r,add:l}}removeAllBorders(e,t){if(!this.#lP(e,t,null))return;let o=m2(e,t);this.spliceBorder(o),this.#lN(e,o),this.#l_(o)}setBorder(e,t,o,n){let i,r=this.hot.getCellMeta(e,t).borders;i=fr(r)?m5(r):m9(e,t),n?(i[o]=m4(),4===this.countHide(i)?this.removeAllBorders(e,t):this.#lP(e,t,m7(i))&&this.insertBorderIntoSettings(i,void 0)):(i[o]=m6(),this.#lP(e,t,m7(i))&&this.insertBorderIntoSettings(i,void 0))}prepareBorder(e,t,o){J(e,e=>{if(!fl(e.start)||!fl(e.end))return;let{start:n,end:i}={start:e.start,end:e.end};if(n.row===i.row&&n.col===i.col)"noBorders"===t?this.removeAllBorders(n.row,n.col):this.setBorder(n.row,n.col,t,o);else switch(t){case"noBorders":ik(n.col,i.col,e=>{ik(n.row,i.row,t=>{this.removeAllBorders(t,e)})});break;case"top":ik(n.col,i.col,e=>{this.setBorder(n.row,e,t,o)});break;case"bottom":ik(n.col,i.col,e=>{this.setBorder(i.row,e,t,o)});break;case"start":ik(n.row,i.row,e=>{this.setBorder(e,n.col,t,o)});break;case"end":ik(n.row,i.row,e=>{this.setBorder(e,i.col,t,o)})}}),this.hot.render()}createCustomBorders(e){let t=null===this.#ll,o=this.#ls;t&&(this.#ll=new Set),this.#ls=!0;try{J(e,e=>{let t=m5(e);t.range?this.prepareBorderFromCustomAddedRange(t.range,t):this.prepareBorderFromCustomAdded(t.row??0,t.col??0,t,void 0)})}finally{this.#ls=o,t&&(this.#ll=null)}}countHide(e){let{top:t,bottom:o,start:n,end:i}=e;return X([t,o,n,i],(e,t)=>{let o=e;return t&&t.hide&&(o+=1),o},0)}hideBorders(){this.#lB()}#lB(){let{customSelections:e}=this.hot.selection.highlight,t=new Set(this.#ln.values());for(let o=e.length-1;o>=0;o--)t.has(e[o])&&(e[o].destroy(),e.splice(o,1));this.#ln.clear()}#lI(){this.#lT();let e=[];J(this.savedBorders,t=>{this.#lP(t.row,t.col,null)||e.push(t)}),this.savedBorders=e,this.#lL(),this.#li.clear(),this.#lr=!0,this.#lB()}#lV(){this.#li.clear(),J(this.savedBorders,e=>{let t=this.#li.get(e.row);t?t.push(e):this.#li.set(e.row,[e])}),this.#lr=!1}#lA(e){if(this.#lr)return;if(!this.#lo.has(e.id))return void this.#lN(e.row,e.id);let t=this.#li.get(e.row);if(!t)return void this.#li.set(e.row,[e]);let o=t.findIndex(t=>t.id===e.id);-1===o?t.push(e):t[o]=e}#lN(e,t){if(this.#lr)return;let o=this.#li.get(e);if(!o)return;let n=o.findIndex(e=>e.id===t);-1!==n&&(o.splice(n,1),0===o.length&&this.#li.delete(e))}#lF(){let e,t,o;this.#lr&&this.#lV();let n=this.hot.view,i=n.getFirstRenderedVisibleRow(),r=n.getLastRenderedVisibleRow(),l=n.getFirstRenderedVisibleColumn(),s=n.getLastRenderedVisibleColumn();if(null===i||null===r||null===l||null===s){this.#ln.size>0&&this.#lB();return}let a=this.hot.getSettings(),h=Number(a.fixedRowsTop)||0,d=Number(a.fixedRowsBottom)||0,c=Number(a.fixedColumnsStart)||0,u=this.hot.countRows(),g=this.hot.countCols(),p=(e=[],t=u-d,(o=(t,o)=>{t<=o&&e.push([t,o])})(0,Math.min(h,u)-1),o(Math.max(i,h),Math.min(r,t-1)),o(Math.max(t,h),u-1),e),m=new Set;J(p,e=>{let[t,o]=e;for(let e=t;e<=o;e++){let t=this.#li.get(e);t&&J(t,e=>{var t;t=e.col,!(t<0)&&!(t>=g)&&(t<c||t>=g-0||t>=l&&t<=s)&&(m.add(e.id),this.#ln.has(e.id)||this.#lz(e))})}}),J(Array.from(this.#ln.keys()),e=>{m.has(e)||this.#l_(e)})}#lz(e){let t=this.hot._createCellCoords(e.row,e.col),o=this.hot._createCellRange(t,t,t),{customSelections:n}=this.hot.selection.highlight;this.hot.selection.highlight.addCustomSelection({border:e,visualCellRange:o}),this.#ln.set(e.id,n[n.length-1])}spliceBorder(e){let t=this.#lo.get(e)??-1;t>-1&&(this.savedBorders.splice(t,1),this.#lL())}#lL(){this.#lo.clear(),J(this.savedBorders,(e,t)=>{this.#lo.set(e.id,t)})}checkSavedBorders(e){let t=!1;if(4===this.countHide(e))this.spliceBorder(e.id),t=!0;else{let o=this.#lo.get(e.id);void 0!==o&&(this.savedBorders[o]=e,t=!0)}return t}changeBorderSettings(){let e=!(arguments.length>0)||void 0===arguments[0]||arguments[0],t=this.hot.getSettings()[fn];if(Array.isArray(t)){let o=ts(t.filter(fi));this.checkSettingsCohesion(o),this.#lI();let n=this.#lW();if(n.enabled&&o.length>0){this.#l$(o,n.chunkSize),e&&this.hot.render();return}this.createCustomBorders(o)}else void 0!==t&&this.createCustomBorders(this.savedBorders);e&&this.hot.render(),this.hot.runHooks("afterCustomBordersUpdate")}#lW(){let e=this.hot.getSettings().customBordersProgressive;return!0===e?{enabled:!0,chunkSize:5e3}:fi(e)?{enabled:!0,chunkSize:"number"==typeof e.chunkSize&&e.chunkSize>0?Math.floor(e.chunkSize):5e3}:{enabled:!1,chunkSize:5e3}}#l$(e,t){this.#lg+=1,this.#ld=e,this.#lc=0,this.#lu=t,this.#ll=new Set,this.#lU(this.#lg)}#lU(e){this.hot._registerTimeout(()=>this.#lG(e),0)}#lG(e){if(e!==this.#lg||null===this.#ld)return;let t=this.#ld,o=Math.min(this.#lc+this.#lu,t.length);this.createCustomBorders(t.slice(this.#lc,o)),this.#lc=o,this.hot.render(),this.#lc>=t.length?this.#lq():this.#lU(e)}#lj(){if(null===this.#ld)return;let e=this.#ld;for(;this.#lc<e.length;){let t=Math.min(this.#lc+this.#lu,e.length);this.createCustomBorders(e.slice(this.#lc,t)),this.#lc=t}this.#lq()}#lq(){this.#lg+=1,this.#ld=null,this.#lc=0,this.#ll=null,this.hot.runHooks("afterCustomBordersUpdate")}#lT(){null!==this.#ld&&(this.#lg+=1,this.#ld=null,this.#lc=0,this.#ll=null)}checkSettingsCohesion(e){let t=e.some(e=>eP(e.left)||eP(e.right)),o=e.some(e=>eP(e.start)||eP(e.end));t&&o&&to('The "left"/"right" and "start"/"end" options should not be used together. Please use only the option "start"/"end".'),this.hot.isRtl()&&t&&to('The "left"/"right" properties are not supported for RTL. Please use option "start"/"end".'),this.#lY(e)}#lY(e){e.forEach(e=>{Object.keys(e).forEach(t=>{let o=e[t];if(!fi(o))return;let{style:n}=o;eP(n)&&"string"==typeof n&&!fs.includes(n)?(tZ(`The "${n}" border style is not supported. Please use one of the following styles: ${fs.join(", ")}.
|
|
264
|
+
`)),this.assignSetting(e,o,"sourceColumn",e.destinationColumn),this.assignSetting(e,o,"type","sum"),this.assignSetting(e,o,"forceNumeric",!1),this.assignSetting(e,o,"suppressDataTypeErrors",!0),this.assignSetting(e,o,"customFunction",null),this.assignSetting(e,o,"readOnly",!0),this.assignSetting(e,o,"roundFloat",!1),t.push(o)}),t}assignSetting(e,t,o,n){if("ranges"===o&&void 0===e[o]){t[o]=n;return}if("ranges"!==o||0!==e[o].length)if(void 0===e[o]){if(n instanceof Error)throw n;t[o]=n}else"destinationRow"===o&&t.reversedRowCoords?t[o]=this.countAddressableRows()-e[o]-1:t[o]=e[o]}resetSetupBeforeStructureAlteration(e,t,o){if("function"!==this.settingsType)return;let n=e.indexOf("row")>-1?"row":"col",i=this.getAllEndpoints();J(i,i=>{"row"===n&&i.destinationRow>=t&&("insert_row"===e?i.alterRowOffset=o:"remove_row"===e&&(i.alterRowOffset=-1*o)),"col"===n&&i.destinationColumn>=t&&("insert_col"===e?i.alterColumnOffset=o:"remove_col"===e&&(i.alterColumnOffset=-1*o))}),this.resetAllEndpoints(i,!1)}resetSetupAfterStructureAlteration(e,t,o,n,i){let r=!(arguments.length>5)||void 0===arguments[5]||arguments[5];if("auto"===i)return;if("function"===this.settingsType){let e=()=>(this.hot.removeHook("beforeViewRender",e),this.refreshAllEndpoints());this.hot.addHookOnce("beforeViewRender",e);return}let l=e.indexOf("row")>-1?"row":"col",s=e.indexOf("remove")>-1?-1:1,a=this.getAllEndpoints(),h=0===e.indexOf("move_row");J(a,e=>{"row"===l&&e.destinationRow>=t&&(e.alterRowOffset=s*o),"col"===l&&e.destinationColumn>=t&&(e.alterColumnOffset=s*o)}),this.resetAllEndpoints(a,!h),h?J(a,e=>{this.extendEndpointRanges(e,t,n?.[0]??0,n?.length??0),this.recreatePhysicalRanges(e),this.clearOffsetInformation(e)}):J(a,e=>{this.shiftEndpointCoordinates(e,t)}),r&&this.refreshAllEndpoints()}clearOffsetInformation(e){e.alterRowOffset=void 0,e.alterColumnOffset=void 0}extendEndpointRanges(e,t,o,n){J(e.ranges,e=>{e[1]&&(t>=e[0]&&t<=e[1]?o>e[1]?e[1]+=n:o<e[0]&&(e[0]-=n):o>=e[0]&&o<=e[1]&&(e[1]-=n,t<=e[0]&&(e[0]+=1,e[1]+=1)))})}recreatePhysicalRanges(e){let t=e.ranges,o=[],n=[];J(t,e=>{let t=[];if(e[1])for(let o=e[0];o<=e[1];o++)t.push(this.hot.toPhysicalRow(o));else t.push(this.hot.toPhysicalRow(e[0]));n.push(t)}),J(n,e=>{let t=[];J(e,(n,i)=>{0===i?t.push(n):e[i]!==e[i-1]+1&&(t.push(e[i-1]),o.push(t),(t=[]).push(n)),i===e.length-1&&(t.push(n),o.push(t))})}),e.ranges=o}shiftEndpointCoordinates(e,t){e.alterRowOffset&&0!==e.alterRowOffset?(e.destinationRow+=e.alterRowOffset||0,J(e.ranges,o=>{J(o,(n,i)=>{n>=t&&(o[i]+=e.alterRowOffset||0)})})):e.alterColumnOffset&&0!==e.alterColumnOffset&&(e.destinationColumn+=e.alterColumnOffset||0,e.sourceColumn+=e.alterColumnOffset||0)}resetAllEndpoints(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:this.getAllEndpoints(),t=!(arguments.length>1)||void 0===arguments[1]||arguments[1];e.some(e=>this.isEndpointOutOfBounds(e,e.alterRowOffset||0,e.alterColumnOffset||0))||(this.cellsToSetCache=[],J(e,e=>{this.resetEndpointValue(e,t)}),this.cellsToSetCache.length&&this.hot.setDataAtCell(this.cellsToSetCache,null,void 0,"ColumnSummary.reset"),this.cellsToSetCache=[])}refreshAllEndpoints(){let e=this.getAllEndpoints();this.cellsToSetCache=[],this.cacheSummaryDestinations(e),J(e,e=>{this.currentEndpoint=e,this.plugin.calculate(e),this.setEndpointValue(e,"init")}),this.currentEndpoint=null,this.cellsToSetCache.length&&this.hot.setDataAtCell(this.cellsToSetCache,null,void 0,"ColumnSummary.reset"),this.cellsToSetCache=[]}refreshChangedEndpoints(e){let t=this.getAllEndpoints(),o=[];this.cellsToSetCache=[],this.cacheSummaryDestinations(t),J(e,(e,n,i)=>{`${e[2]||""}`!=`${e[3]}`&&J(t,(e,t)=>{this.hot.propToCol(i[n][1])===e.sourceColumn&&-1===o.indexOf(t)&&o.push(t)})}),J(o,e=>{this.refreshEndpoint(t[e])}),this.cellsToSetCache.length&&this.hot.setDataAtCell(this.cellsToSetCache,null,void 0,"ColumnSummary.reset"),this.cellsToSetCache=[]}refreshEndpointsBySourceColumns(e){let t=e instanceof Set?e:new Set(e),o=this.getAllEndpoints(),n=o.filter(e=>t.has(e.sourceColumn));0!==n.length&&(this.cellsToSetCache=[],this.cacheSummaryDestinations(o),J(n,e=>{this.refreshEndpoint(e)}),this.cellsToSetCache.length&&this.hot.setDataAtCell(this.cellsToSetCache,null,void 0,"ColumnSummary.reset"),this.cellsToSetCache=[])}refreshCellMetas(){this.endpoints.forEach(e=>{let t=this.hot.toVisualRow(e.destinationRow),o=e.destinationColumn;null!==t&&(this.hot._setCellMetaDeclarative(t,o,"readOnly",e.readOnly),this.hot._setCellMetaDeclarative(t,o,"className","columnSummaryResult"))})}refreshEndpoint(e){this.currentEndpoint=e,this.plugin.calculate(e),this.setEndpointValue(e,void 0),this.currentEndpoint=null}resetEndpointValue(e){let t=!(arguments.length>1)||void 0===arguments[1]||arguments[1],o=e.alterRowOffset||0,n=e.alterColumnOffset||0,i=this.hot.toVisualRow(e.destinationRow+(t?o:0));null!==i&&this.cellsToSetCache.push([i,this.hot.toVisualColumn(e.destinationColumn+(t?n:0)),""])}setEndpointValue(e,t){let o=arguments.length>2&&void 0!==arguments[2]&&arguments[2];if(this.isEndpointOutOfBounds(e))return void this.throwOutOfBoundsWarning();let n=this.hot.toVisualRow(e.destinationRow);if(null!==n){let o=e.destinationColumn,i=this.hot.getCellMetaTransient(n,o);("init"===t||i.readOnly!==e.readOnly)&&(this.hot._setCellMetaDeclarative(n,o,"readOnly",e.readOnly),this.hot._setCellMetaDeclarative(n,o,"className","columnSummaryResult"))}e.result=function(e,t){if("number"!=typeof e)return e;switch(typeof t){case"number":return e.toFixed(Math.min(Math.max(0,t),100));case"boolean":return t?Math.round(e).toString():e;case"string":if("auto"===t){let t=Math.round(e).toString().length;return e.toFixed(8-t)}return e;default:return e}}(e.result,e.roundFloat),null!==n&&(o?this.hot.setDataAtCell(n,e.destinationColumn,e.result,"ColumnSummary.set"):this.cellsToSetCache.push([n,e.destinationColumn,e.result])),e.alterRowOffset=void 0,e.alterColumnOffset=void 0}throwOutOfBoundsWarning(){tZ("One of the Column Summary plugins' destination points you provided is beyond the table boundaries!")}},mo="columnSummary";class mn{#rs=!0;#ra=null;#rh=new ResizeObserver(e=>this.#rd(e));setObservedElement(e){this.#ra=e}unobserve(){this.#ra&&this.#rh.unobserve(this.#ra)}observe(){this.#rs=!0,this.#ra&&this.#rh.observe(this.#ra)}destroy(){this.#rh.disconnect()}#rd(e){if(this.#rs||!Array.isArray(e)||!e.length){this.#rs=!1;return}e.forEach(e=>{let{borderBoxSize:t}=e,{inlineSize:o,blockSize:n}=t[0];this.runLocalHooks("resize",o,n)})}}th(mn,sb);class mi{static get CLASS_EDITOR_CONTAINER(){return"htCommentsContainer"}static get CLASS_EDITOR(){return"htComments"}static get CLASS_INPUT(){return"htCommentTextArea"}static get CLASS_CELL(){return"htCommentCell"}#nr;#rc;#X=!1;#ru=null;#rg=null;#rp=null;#rm=!0;#eg=new mn;constructor(e,t,o){var n=this;this.#nr=e,this.#rc=o,this.#X=t,this.#rg=this.createEditor(),this.#rp=this.#rg.style,this.#eg.setObservedElement(this.getInputElement()),this.#eg.addLocalHook("resize",function(){for(var e=arguments.length,t=Array(e),o=0;o<e;o++)t[o]=arguments[o];n.runLocalHooks("resize",...t)}),this.hide()}setPosition(e,t){this.#rp&&(this.#rp.left=`${e}px`,this.#rp.top=`${t}px`)}setSize(e,t){if(e&&t){let o=this.getInputElement();o.style.width=`${e}px`,o.style.height=`${t}px`}}getSize(){return{width:oL(this.getInputElement()),height:oV(this.getInputElement())}}observeSize(){this.#eg.observe()}resetSize(){let e=this.getInputElement();e.style.width="",e.style.height=""}setReadOnlyState(e){this.getInputElement().readOnly=e}show(){this.#rp&&(this.#rp.display="block"),this.#rm=!1}hide(){this.#eg.unobserve(),!this.#rm&&this.#rp&&(this.#rp.display="none"),this.#rm=!0}isVisible(){return this.#rp?.display==="block"}setValue(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"";this.getInputElement().value=e||""}getValue(){return this.getInputElement().value}isFocused(){return nr(this.#nr)===this.getInputElement()}focus(){this.getInputElement().focus()}createEditor(){let e=this.#nr.createElement("div"),t=this.#nr.createElement("textarea");return e.style.display="none",this.#ru=this.#nr.createElement("div"),this.#ru.setAttribute("dir",this.#X?"rtl":"ltr"),od(this.#ru,mi.CLASS_EDITOR_CONTAINER),this.#rc.appendChild(this.#ru),od(e,mi.CLASS_EDITOR),od(t,mi.CLASS_INPUT),t.dataset.hotInput="true",e.appendChild(t),this.#ru.appendChild(e),e}getInputElement(){return this.#rg?.querySelector(`.${mi.CLASS_INPUT}`)??null}getEditorElement(){return this.#rg}destroy(){let e=this.#ru?this.#ru.parentNode:null;this.#rg?.parentNode?.removeChild(this.#rg),this.#rg=null,this.#rp=null,this.#eg.destroy(),e&&this.#ru&&e.removeChild(this.#ru)}}th(mi,sb);class mr{wasLastActionShow=!0;showDebounced=null;hidingTimer=null;constructor(e){this.updateDelay(e)}hide(){this.wasLastActionShow=!1,this.hidingTimer=setTimeout(()=>{!1===this.wasLastActionShow&&this.runLocalHooks("hide")},250)}show(e){this.wasLastActionShow=!0,this.showDebounced?.(e)}cancelHiding(){this.wasLastActionShow=!0,clearTimeout(this.hidingTimer??void 0),this.hidingTimer=null}updateDelay(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:250;this.showDebounced=nd(e=>{this.wasLastActionShow&&this.runLocalHooks("show",e.from.row,e.from.col)},e)}destroy(){this.clearLocalHooks()}}th(mr,sb);let ml="---------";function ms(e,t){let o={};return J(e,e=>{e.forAll((e,n)=>{e>=0&&n>=0&&(o[e]||(o[e]=[]),o[e][n]=t(e,n))})}),o}function ma(e,t,o,n,i){J(e,e=>{e.forAll((e,r)=>{var l,s,a,h,d,c;let u,g;e>=0&&r>=0&&(l=e,s=r,a=t,h=o,d=n,c=i,u=d(l,s),g=h,u.className&&(g="vertical"===a?function(e,t){if(-1!==e.indexOf(t))return e;let o=e.replace("htTop","").replace("htMiddle","").replace("htBottom","").replace(" ","");return`${o} ${t}`}(u.className,h):function(e,t){if(-1!==e.indexOf(t))return e;let o=e.replace("htLeft","").replace("htCenter","").replace("htRight","").replace("htJustify","").replace(" ","");return`${o} ${t}`}(u.className,h)),c(l,s,"className",g))})})}function mh(e){return`<span class="selected">${String.fromCharCode(10003)}</span>${e}`}function md(e,t){let o=!1;return Array.isArray(e)&&J(e,e=>(e.forAll((e,n)=>{if(e>=0&&n>=0&&t(e,n))return o=!0,!1}),o)),o}function mc(e,t){let o={top:0,left:0};if(t!==e.ownerDocument){let{frameElement:e}=t.defaultView,{top:n,left:i}=e.getBoundingClientRect();o.top=n,o.left=i}return o}let mu="comments",mg="comment",mp="value",mm="style",mf="readOnly",mb=`plugin:${mu}`;class mC{commands={};commonCallback=null;constructor(e){this.hot=e}registerCommand(e,t){this.commands[e]=t}setCommonCallback(e){this.commonCallback=e}execute(e){let t;for(var o,n=arguments.length,i=Array(n>1?n-1:0),r=1;r<n;r++)i[r-1]=arguments[r];let l=e.split(":"),s=l[0],a=2===l.length?l[1]:null,h=this.commands[s];if(h||to(`Menu command '${s}' not exists.`),a&&h.submenu&&(o=a,J(h.submenu.items,e=>{let n=e.key?e.key.split(":"):null;if(Array.isArray(n)&&n[1]===o)return t=e,!1}),h=t),!0===h.disabled||"function"==typeof h.disabled&&!0===h.disabled.call(this.hot)||tw(h,"submenu"))return;let d=[];"function"==typeof h.callback&&d.push(h.callback),"function"==typeof this.commonCallback&&d.push(this.commonCallback),i.unshift(l.join(":")),J(d,e=>e.apply(this.hot,i))}}let mw="alignment",my="clear_column",mv="col_left",mS="col_right",mR="make_read_only",mx="redo",mM="remove_col",mH="remove_row",mE="row_above",mk="row_below",mT="no_items",mI="undo",mA=[mE,mk,mv,mS,my,mH,mM,mI,mx,mR,mw,ml,mT],m_={[ml]:function(){return{name:ml}},[mT]:function(){return{key:mT,name(){return this.getTranslatedPhrase(sq)},disabled:!0,isCommand:!1}},[mE]:function(){return{key:mE,name(){return this.getTranslatedPhrase(sj)},callback(){let e=this.getSelectedRangeActive();if(!e)return;let t=e.getTopLeftCorner();null!==t.row&&this.alter("insert_row_above",t.row,1,"ContextMenu.rowAbove")},disabled(){let e=this.getSelectedRangeActive();return!!(!e||this.selection.isSelectedByColumnHeader()||e.isSingleHeader()&&null!==e.highlight.row&&e.highlight.row<0||this.countSourceRows()>=(this.getSettings().maxRows??1/0))||!!this.selection.isSelectedByCorner()&&0===this.countRows()},hidden(){return!this.getSettings().allowInsertRow}}},[mk]:function(){return{key:mk,name(){return this.getTranslatedPhrase(sY)},callback(){let e=this.getSelectedRangeActive();if(!e)return;let t=e.getBottomRightCorner();null!==t.row&&this.alter("insert_row_below",t.row,1,"ContextMenu.rowBelow")},disabled(){let e=this.getSelectedRangeActive();return!!(!e||this.selection.isSelectedByColumnHeader()||e.isSingleHeader()&&null!==e.highlight.row&&e.highlight.row<0||this.countSourceRows()>=(this.getSettings().maxRows??1/0))},hidden(){return!this.getSettings().allowInsertRow}}},[mv]:function(){return{key:mv,name(){return this.getTranslatedPhrase(sK)},callback(){let e=this.getSelectedRangeActive();if(!e)return;let t=e.getTopLeftCorner(),o=this.isRtl()?"insert_col_end":"insert_col_start";null!==t.col&&this.alter(o,t.col,1,"ContextMenu.columnLeft")},disabled(){if(!this.isColumnModificationAllowed())return!0;let e=this.getSelectedRangeActive();return!!(!e||this.selection.isSelectedByRowHeader()||e.isSingleHeader()&&(e.highlight.col??0)<0||this.countSourceCols()>=(this.getSettings().maxCols??1/0))||!!this.selection.isSelectedByCorner()&&0===this.countCols()},hidden(){return!this.getSettings().allowInsertColumn}}},[mS]:function(){return{key:mS,name(){return this.getTranslatedPhrase(sX)},callback(){let e=this.getSelectedRangeActive();if(!e)return;let t=e.getTopRightCorner(),o=this.isRtl()?"insert_col_start":"insert_col_end";null!==t.col&&this.alter(o,t.col,1,"ContextMenu.columnRight")},disabled(){if(!this.isColumnModificationAllowed())return!0;let e=this.getSelectedRangeActive();return!!(!e||this.selection.isSelectedByRowHeader()||e.isSingleHeader()&&(e.highlight.col??0)<0||this.countSourceCols()>=(this.getSettings().maxCols??1/0))},hidden(){return!this.getSettings().allowInsertColumn}}},[my]:function(){return{key:my,name(){return this.getTranslatedPhrase(s2)},callback(e,t){let o=t[0].start.col,n=t[0].end.col;this.countRows()&&this.populateFromArray(0,o,[[null]],Math.max(t[0].start.row,t[0].end.row),n,"ContextMenu.clearColumn")},disabled(){let e=this.getSelectedRangeActive();if(!e||e.isSingleHeader()&&(null===e.highlight.col||e.highlight.col<0)||!this.selection.isSelectedByColumnHeader())return!0;let t=!1;return e.forAll((e,o)=>{if(e<0||o<0)return!0;let{readOnly:n}=this.getCellMetaTransient(e,o);return!!n||(t=!0,!1)}),!t}}},[mH]:function(){return{key:mH,name(){let e=this.getSelected(),t=0;if(e)if(e.length>1)t=1;else{let[o,,n]=e[0];o-n!=0&&(t=1)}return this.getTranslatedPhrase(sZ,t)},callback(){this.alter("remove_row",function(e){let t=h8(e.getSelected());if(0===t||1===t)return[];let o=de(t,{createCellCoords:e._createCellCoords.bind(e),createCellRange:e._createCellRange.bind(e)}),n=new Set;return J(e.getSelected()??[],e=>{let{from:t,to:i}=o(e),r=Math.max(t.row??0,0);J(Array.from(Array((i.row??0)-r+1),(e,t)=>r+t),e=>{n.has(e)||n.add(e)})}),X(Array.from(n).sort((e,t)=>e-t),(e,t,o,n)=>(0!==o&&t===n[o-1]+1?e[e.length-1][1]+=1:e.push([t,1]),e),[])}(this),1,"ContextMenu.removeRow")},disabled(){let e=this.getSelectedRangeActive();if(!e||e.isSingleHeader()&&null!==e.highlight.row&&e.highlight.row<0)return!0;let t=this.countRows();return this.selection.isSelectedByCorner()?0===t:this.selection.isSelectedByColumnHeader()||0===t},hidden(){return!this.getSettings().allowRemoveRow}}},[mM]:function(){return{key:mM,name(){let e=this.getSelected(),t=0;if(e)if(e.length>1)t=1;else{let[,o,,n]=e[0];o-n!=0&&(t=1)}return this.getTranslatedPhrase(sQ,t)},callback(){this.alter("remove_col",function(e){let t=h8(e.getSelected());if(0===t||1===t)return[];let o=de(t,{createCellCoords:e._createCellCoords.bind(e),createCellRange:e._createCellRange.bind(e)}),n=new Set;return J(e.getSelected()??[],e=>{let{from:t,to:i}=o(e),r=Math.max(t.col??0,0);J(Array.from(Array((i.col??0)-r+1),(e,t)=>r+t),e=>{n.has(e)||n.add(e)})}),X(Array.from(n).sort((e,t)=>e-t),(e,t,o,n)=>(0!==o&&t===n[o-1]+1?e[e.length-1][1]+=1:e.push([t,1]),e),[])}(this),void 0,"ContextMenu.removeColumn")},disabled(){if(!this.isColumnModificationAllowed())return!0;let e=this.getSelectedRangeActive();if(!e||e.isSingleHeader()&&null!==e.highlight.col&&e.highlight.col<0)return!0;let t=this.countCols();return this.selection.isSelectedByCorner()?0===t:this.selection.isSelectedByRowHeader()||0===t},hidden(){return!this.getSettings().allowRemoveColumn}}},[mI]:function(){return{key:mI,name(){return this.getTranslatedPhrase(sJ)},callback(){this.getPlugin("undoRedo").undo()},hidden(){let e=this.getPlugin("undoRedo");return!e||!e.isEnabled()},disabled(){return!this.getPlugin("undoRedo").isUndoAvailable()}}},[mx]:function(){return{key:mx,name(){return this.getTranslatedPhrase(s0)},callback(){this.getPlugin("undoRedo").redo()},hidden(){let e=this.getPlugin("undoRedo");return!e||!e.isEnabled()},disabled(){return!this.getPlugin("undoRedo").isRedoAvailable()}}},[mR]:function(){return{key:mR,checkable:!0,ariaChecked(){return md(this.getSelectedRange()??[],(e,t)=>!!this.getCellMetaTransient(e,t).readOnly)},ariaLabel(){return this.getTranslatedPhrase(s1)},name(){let e=this.getTranslatedPhrase(s1);return md(this.getSelectedRange()??[],(e,t)=>!!this.getCellMetaTransient(e,t).readOnly)&&(e=mh(e)),e},callback(){let e=this.getSelectedRange()??[],t=md(e,(e,t)=>!!this.getCellMetaTransient(e,t).readOnly);for(let o of e)o.forAll((e,o)=>{e>=0&&o>=0&&this.setCellMeta(e,o,"readOnly",!t)});this.render()},disabled(){let e=this.getSelectedRangeActive();return!(!(!e||e.isSingleHeader()||this.selection.isSelectedByCorner())&&0!==this.countRows()&&0!==this.countCols()&&this.getSelectedRange()?.length)}}},[mw]:function(){return{key:mw,name(){return this.getTranslatedPhrase(ah)},disabled(){if(0===this.countRows()||0===this.countCols())return!0;let e=this.getSelectedRangeActive();return!!(!e||e.isSingleHeader())||!(this.getSelectedRange()&&!this.selection.isSelectedByCorner())},submenu:{items:[{key:`${mw}:left`,name(){return this.getTranslatedPhrase(ad)},callback(){let e=this.getSelectedRange()??[],t=ms(e,(e,t)=>this.getCellMetaTransient(e,t).className),o="horizontal",n="htLeft";this.runHooks("beforeCellAlignment",t,e,o,n),ma(e,o,n,(e,t)=>this.getCellMetaTransient(e,t),(e,t,o,n)=>this.setCellMeta(e,t,o,n)),this.render()},disabled:!1},{key:`${mw}:center`,name(){return this.getTranslatedPhrase(ac)},callback(){let e=this.getSelectedRange()??[],t=ms(e,(e,t)=>this.getCellMetaTransient(e,t).className),o="horizontal",n="htCenter";this.runHooks("beforeCellAlignment",t,e,o,n),ma(e,o,n,(e,t)=>this.getCellMetaTransient(e,t),(e,t,o,n)=>this.setCellMeta(e,t,o,n)),this.render()},disabled:!1},{key:`${mw}:right`,name(){return this.getTranslatedPhrase(au)},callback(){let e=this.getSelectedRange()??[],t=ms(e,(e,t)=>this.getCellMetaTransient(e,t).className),o="horizontal",n="htRight";this.runHooks("beforeCellAlignment",t,e,o,n),ma(e,o,n,(e,t)=>this.getCellMetaTransient(e,t),(e,t,o,n)=>this.setCellMeta(e,t,o,n)),this.render()},disabled:!1},{key:`${mw}:justify`,name(){return this.getTranslatedPhrase(ag)},callback(){let e=this.getSelectedRange()??[],t=ms(e,(e,t)=>this.getCellMetaTransient(e,t).className),o="horizontal",n="htJustify";this.runHooks("beforeCellAlignment",t,e,o,n),ma(e,o,n,(e,t)=>this.getCellMetaTransient(e,t),(e,t,o,n)=>this.setCellMeta(e,t,o,n)),this.render()},disabled:!1},{name:ml},{key:`${mw}:top`,name(){return this.getTranslatedPhrase(ap)},callback(){let e=this.getSelectedRange()??[],t=ms(e,(e,t)=>this.getCellMetaTransient(e,t).className),o="vertical",n="htTop";this.runHooks("beforeCellAlignment",t,e,o,n),ma(e,o,n,(e,t)=>this.getCellMetaTransient(e,t),(e,t,o,n)=>this.setCellMeta(e,t,o,n)),this.render()},disabled:!1},{key:`${mw}:middle`,name(){return this.getTranslatedPhrase(am)},callback(){let e=this.getSelectedRange()??[],t=ms(e,(e,t)=>this.getCellMetaTransient(e,t).className),o="vertical",n="htMiddle";this.runHooks("beforeCellAlignment",t,e,o,n),ma(e,o,n,(e,t)=>this.getCellMetaTransient(e,t),(e,t,o,n)=>this.setCellMeta(e,t,o,n)),this.render()},disabled:!1},{key:`${mw}:bottom`,name(){return this.getTranslatedPhrase(af)},callback(){let e=this.getSelectedRange()??[],t=ms(e,(e,t)=>this.getCellMetaTransient(e,t).className),o="vertical",n="htBottom";this.runHooks("beforeCellAlignment",t,e,o,n),ma(e,o,n,(e,t)=>this.getCellMetaTransient(e,t),(e,t,o,n)=>this.setCellMeta(e,t,o,n)),this.render()},disabled:!1}]}}}};function mO(){let e={};return tp(m_,(t,o)=>{e[o]=t()}),e}class mP{predefinedItems=mO();constructor(e,t=null){this.hot=e,this.defaultOrderPattern=t||[]}setPredefinedItems(e){let t={};this.defaultOrderPattern.length=0,tp(e,(e,o)=>{let n="";if(e.name===ml)t[ml]=e,n=ml;else if(isNaN(parseInt(o,10)))e.key=void 0===e.key?o:e.key,t[o]=e,n=String(e.key??"");else{let o=String(e.key??"");if(t[o])return void tr(t[o],e);t[o]=e,n=o}this.defaultOrderPattern.push(n)}),this.predefinedItems=t}getItems(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null;return function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null,t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[],o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},n=[],i=e;return(i&&i.items?i=i.items:Array.isArray(i)||(i=t),tu(i))?tp(i,(e,t)=>{let i=o["string"==typeof e?e:t];(i||(i=e),tu(e))?tr(i,e):"string"==typeof i&&(i={name:i}),void 0===i.key&&(i.key=t),n.push(i)}):J(i,(e,t)=>{let i=o[e];!i&&mA.indexOf(e)>=0||(i||(i={name:e,key:`${t}`}),tu(e)&&tr(i,e),void 0===i.key&&(i.key=t),n.push(i))}),n}(e,this.defaultOrderPattern,this.predefinedItems)}}class mD{top;topRelative;left;leftRelative;scrollTop;scrollLeft;cellHeight;cellWidth;constructor(e,t){const o=t.scrollY,n=t.scrollX;let i=0,r=0,l=0,s=0,a=0,h=0;this.rootWindow=t,this.type=this.getSourceType(e),"literal"===this.type?(i=parseInt(String(e.top),10),l=parseInt(String(e.left),10),a=e.height||0,h=e.width||0,r=i,s=l,i+=o,l+=n):"event"===this.type&&(i=parseInt(String(e.pageY),10),l=parseInt(String(e.pageX),10),a=t5(e).clientHeight,h=t5(e).clientWidth,r=i-o,s=l-n),this.top=i,this.topRelative=r,this.left=l,this.leftRelative=s,this.scrollTop=o,this.scrollLeft=n,this.cellHeight=a,this.cellWidth=h}getSourceType(e){let t="literal";return e instanceof Event&&(t="event"),t}fitsAbove(e){return this.topRelative>=e.offsetHeight}fitsBelow(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:this.rootWindow.innerHeight;return this.topRelative+e.offsetHeight<=t}fitsOnRight(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:this.rootWindow.document.documentElement.clientWidth;return this.leftRelative+this.cellWidth+e.offsetWidth<=t}fitsOnLeft(e){return this.leftRelative>=e.offsetWidth}}class mN{#ru=null;#rf=null;#rb=null;#rC=!1;#ot={above:0,below:0,left:0,right:0};constructor(e){this.#rC=e}setOffset(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;return this.#ot[e]=t,this}setElement(e){return this.#ru=e,this}setParentElement(e){return this.#rf=e,this}updatePosition(e){this.#rb=new mD(e,this.#ru.ownerDocument.defaultView),this.#rC?(this.#rb.fitsBelow(this.#ru)?this.setPositionBelowCursor():this.#rb.fitsAbove(this.#ru)?this.setPositionAboveCursor():this.setPositionBelowCursor(),this.updateHorizontalPosition()):(this.setPositionBelowCursor(),this.setPositionOnRightOfCursor())}updateHorizontalPosition(){"rtl"===this.#ru.dir?this.#rb.fitsOnLeft(this.#ru)?this.setPositionOnLeftOfCursor():this.setPositionOnRightOfCursor():this.#rb.fitsOnRight(this.#ru)?this.setPositionOnRightOfCursor():this.setPositionOnLeftOfCursor()}setPositionAboveCursor(){let e=this.#ot.above+this.#rb.top-this.#ru.offsetHeight;if(this.#rf){let t=this.#rf.ownerDocument.defaultView.getComputedStyle(this.#rf.querySelector(".ht_master")),o=Number.parseInt(t.paddingTop,10),n=Number.parseInt(t.borderTop,10);e=this.#rb.top+this.#rb.cellHeight-this.#ru.scrollHeight+o+n}this.#ru.style.top=`${e}px`}setPositionBelowCursor(){let e=this.#ot.below+this.#rb.top+1;if(this.#rf){let t=this.#rf.ownerDocument.defaultView.getComputedStyle(this.#rf.querySelector(".ht_master")),o=Number.parseInt(t.paddingTop,10),n=Number.parseInt(t.borderTop,10);e=this.#rb.top-o-n}this.#ru.style.top=`${e}px`}setPositionOnRightOfCursor(){let e=this.#rb.left;if(this.#rf){let t=Number.parseInt(this.#rf.ownerDocument.defaultView.getComputedStyle(this.#rf.querySelector(".htCore")).borderRightWidth,10);e+=this.#rb.cellWidth+t}else e+=this.#ot.right;this.#ru.style.left=`${e}px`}setPositionOnLeftOfCursor(){let e=this.#ot.left+this.#rb.left-this.#ru.offsetWidth;this.#rf&&(e-=Number.parseInt(this.#rf.ownerDocument.defaultView.getComputedStyle(this.#rf.querySelector(".htCore")).borderLeftWidth,10)),this.#ru.style.left=`${e}px`}}function mB(e){let{initialPage:t=-1,size:o=()=>0,onItemSelect:n=()=>{},onClear:i=()=>{}}=e,r=new Set,l=iA(t,-1,a()-1);function s(e,t){let o=a()-1;return(e<0&&(e=o),e>o&&(e=0),r.has(e))?-1:(r.add(e),!1===n(e,!1)&&(e=s(1===t?++e:--e,t)),e)}function a(){return Math.max(o(),0)}return{setCurrentPage:function(e){e>-1&&e<a()&&!1!==n(e,!0)&&(l=e)},setPageCursorAt:function(e){e>-1&&e<a()&&(l=e)},getCurrentPage:function(){return l},toFirstItem:function(){a()>0&&(r.clear(),l=s(0,1))},toLastItem:function(){a()>0&&(r.clear(),l=s(a()-1,-1))},toNextItem:function(){a()>0&&(r.clear(),l=s(++l,1))},toPreviousItem:function(){a()>0&&(r.clear(),l=s(--l,-1))},getSize:a,clear:function(){r.clear(),l=t,i()}}}function mL(e){return tw(e,"submenu")}function mV(e){return RegExp(ml,"i").test(e.name??"")}function mF(e,t){return!0===e.disabled||"function"==typeof e.disabled&&!0===e.disabled.call(t)}function mz(e){return tw(e,"disableSelection")}function mW(e,t){let o=e.slice(0);for(;0<o.length;)if(o[0].name===t)o.shift();else break;return o}let m$="menu";class mU{hotMenu=null;hotSubMenus={};menuItems=null;origOutsideClickDeselects=void 0;#rw=null;#ry=null;#rv;#rS=null;#rR=null;#rx=!1;#rM=null;#rH=[];get tableBorderWidth(){return void 0===this.#rv&&this.hotMenu&&(this.#rv=parseInt(this.hotMenu.rootWindow.getComputedStyle(this.hotMenu.view._wt.wtTable.TABLE).borderWidth,10)),this.#rv}constructor(e,t){if(this.hot=e,this.options={parent:null,name:null,className:"",keepInViewport:!0,standalone:!1,minWidth:215,container:this.hot.rootPortalElement,...t},this.container=this.createContainer(this.options.name),this.positioner=new mN(this.options.keepInViewport),this.parentMenu=this.options.parent||null,this.eventManager=new n4(this),this.registerEvents(),this.isSubMenu()){var o=this;this.addLocalHook("afterSelectionChange",function(){for(var e=arguments.length,t=Array(e),n=0;n<e;n++)t[n]=arguments[n];return o.parentMenu.runLocalHooks("afterSelectionChange",...t)})}this.hot.addHook("afterSetTheme",(e,t)=>{if(this.options.container!==this.hot.rootPortalElement){let t=this.options.container;oc(t,/ht-theme-.*/g),od(t,e)}t||this.close()})}registerEvents(){let e=this.hot.rootWindow;for(;e;)this.eventManager.addEventListener(e.document,"mousedown",e=>this.onDocumentMouseDown(e)),this.eventManager.addEventListener(e.document,"touchstart",e=>this.onDocumentMouseDown(e)),this.eventManager.addEventListener(e.document,"contextmenu",e=>this.onDocumentContextMenu(e)),e=t9(e)}#rE(){this.#rk();let e=this.hot.rootWindow;for(;e;)this.#rH.push(this.eventManager.addEventListener(e.document,"scroll",e=>this.onDocumentScroll(e),{capture:!0,passive:!0})),e=t9(e)}#rk(){this.#rH.forEach(e=>e()),this.#rH.length=0}setMenuItems(e){this.menuItems=e}getNavigator(){return this.#rw}getKeyboardShortcutsCtrl(){return this.#ry}getSelectedItem(){if(!this.hasSelectedItem())return null;let e=this.hotMenu.getSelectedActive()[0];return this.#rT(e)}getItemPositionByKey(e){return(this.hotMenu?.getSourceData()??this.menuItems??[]).findIndex(t=>t.key===e)}#rT(e){return this.hotMenu?.getSourceDataAtRow(e)||null}hasSelectedItem(){return Array.isArray(this.hotMenu.getSelectedActive())}isSubMenu(){return null!==this.parentMenu}open(){var e,t,o=this;this.runLocalHooks("beforeOpen"),this.container.removeAttribute("style"),this.container.style.display="block";let n=nd(function(){for(var e=arguments.length,t=Array(e),n=0;n<e;n++)t[n]=arguments[n];return o.openSubMenu(t[0])},300),i=Number(this.options.minWidth)||215,r=!1,l=Z(this.menuItems,e=>{var t;return e.key===mT&&(r=!0),t=this.hot,!e.hidden||!("function"==typeof e.hidden&&e.hidden.call(t))});if(l.length<1&&!r)l.push(mO()[mT]);else if(0===l.length)return;this.#rE();let s=!1,a={data:l=function(e){var t;let o,n,i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:ml,r=e.slice(0);return t=r=mW(r,i),(o=t.slice(0)).reverse(),(o=mW(o,i)).reverse(),n=[],J(r=o,(e,t)=>{t>0?n[n.length-1].name!==e.name&&n.push(e):n.push(e)}),r=n}(l),colHeaders:!1,autoColumnSize:!0,autoWrapRow:!1,modifyColWidth:e=>eP(e)&&e<i?i:e,autoRowSize:!1,readOnly:!0,editor:!1,copyPaste:!1,hiddenRows:!0,maxCols:1,columns:[{data:"name",renderer:(e=this.hot,(t,o,n,i,r,l,s)=>{let a=t.getSourceDataAtRow(n),h=e.rootDocument.createElement("div"),d="function"==typeof l?l.call(e):l,c="function"==typeof a.ariaLabel?a.ariaLabel.call(e):a.ariaLabel,u="function"==typeof a.ariaChecked?a.ariaChecked.call(e):a.ariaChecked;if(s.readOnlyCellClassName="",om(o),od(h,"htItemWrapper"),e.getSettings().ariaTags){let t=!mF(a,e)&&!mz(a)&&!mV(a);ou(o,[...!0===a.checkable?[["role","menuitemcheckbox"],O(c),U(u)]:[["role","menuitem"],O(d)],...t?[S(-1)]:[],...mF(a,e)?[D()]:[],...mL(a)?[z(!1)]:[]])}o.className="",o.appendChild(h),mV(a)?od(o,"htSeparator"):"function"==typeof a.renderer?(od(o,"htCustomMenuRenderer"),o.appendChild(a.renderer(t,h,n,i,r,d))):oy(h,String(d),se(e),"contextMenu",e.rootElement),mF(a,e)?od(o,"htDisabled"):mz(a)?od(o,"htSelectionDisabled"):mL(a)&&od(o,"htSubmenu")})}],renderAllRows:!0,fragmentSelection:!1,outsideClickDeselects:!1,disableVisualSelection:"area",layoutDirection:this.hot.isRtl()?"rtl":"ltr",ariaTags:!1,themeName:this.hot.getCurrentThemeName(),modifyRowHeight:(e,t)=>{let o=this.#rT(t);return o&&o.name===ml?1:e},beforeRefreshDimensions:()=>!1,beforeOnCellMouseOver:(e,t)=>{this.#rx||this.#rw.setPageCursorAt(t.row)},afterOnCellMouseOver:(e,t)=>{this.#rx||(this.isAllSubMenusClosed()?n(t.row):this.openSubMenu(t.row))},afterOnCellContextMenu:e=>{e.preventDefault(),tq()&&s&&this.hasSelectedItem()&&this.close(!0)},afterSelection:(e,t,o,n,i)=>{this.hotMenu.view.isMouseDown()&&(i.value=!0),this.runLocalHooks("afterSelectionChange",this.getSelectedItem())},beforeOnCellMouseUp:e=>{this.hasSelectedItem()&&(s=!this.isCommandPassive(this.getSelectedItem()),this.executeCommand(e))},afterOnCellMouseUp:e=>{(!tq()||!nM(e))&&s&&this.hasSelectedItem()&&(t$()||tG()?this.hot._registerTimeout(()=>this.close(!0),325):this.close(!0))},afterUnlisten:()=>{!this.hasSelectedItem()&&this.isOpened()&&this.hotMenu.listen()}};this.origOutsideClickDeselects=this.hot.getSettings().outsideClickDeselects,this.hot.getSettings().outsideClickDeselects=!1,this.hotMenu=new this.hot.constructor(this.container,a),this.hotMenu.addHook("afterInit",()=>this.onAfterInit()),this.hotMenu.init(),this.#rw=(t=this.hotMenu,mB({size:()=>t.countRows(),onItemSelect(e,o){let n=t.getCell(e,0);if(!n||oh(n,"htSeparator")||oh(n,"htDisabled")||oh(n,"htSelectionDisabled"))return!1;t.selectCell(e,0,...o?[e,0,!1,!1]:[])},onClear(){t.deselectCell()}})),this.#ry=function(e){let t,o,n,i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[],r=[];function l(e,t){h(t).addShortcuts(e,{group:m$})}function s(e,t){let o=h(t);e.forEach(e=>{let{keys:t}=e;t.forEach(e=>o.removeShortcutsByKeys(e))}),r.push({shortcuts:e,contextName:t??m$}),l(e,t)}function a(e){return e?`${m$}:${e}`:m$}function h(t){let o=e.hotMenu.getShortcutManager(),n=a(t);return o.getContext(n)??o.addContext(n)}return l((t=e.hot,o=e.hotMenu,[{keys:[["Control/Meta","A"]],...(n=t.getShortcutManager().getContext("grid"))?{forwardToContext:n}:{},callback:()=>e.close(!0)},{keys:[["Tab"],["Shift","Tab"]],callback:(o,n)=>{let i=t.getSettings(),r="function"==typeof i.tabMoves?i.tabMoves(o):i.tabMoves;r&&(n?.includes("shift")?t.selection.transformStart(-r.row,-r.col):t.selection.transformStart(r.row,r.col)),e.close(!0)}},{keys:[["Escape"]],callback:()=>e.close()},{keys:[["ArrowDown"]],callback:()=>e.getNavigator()?.toNextItem()},{keys:[["ArrowUp"]],callback:()=>e.getNavigator()?.toPreviousItem()},{keys:[[t.isRtl()?"ArrowLeft":"ArrowRight"]],callback:()=>{let t=o?.getSelectedActive();if(t){let o=e.openSubMenu(t[0]);o&&o.getNavigator()?.toFirstItem()}}},{keys:[[t.isRtl()?"ArrowRight":"ArrowLeft"]],callback:()=>{o?.getSelectedActive()&&e.isSubMenu()&&(e.close(),e.isSubMenu()&&e.parentMenu?.hotMenu?.listen())}},{keys:[["Control/Meta","ArrowUp"],["Home"]],callback:()=>e.getNavigator()?.toFirstItem()},{keys:[["Control/Meta","ArrowDown"],["End"]],callback:()=>e.getNavigator()?.toLastItem()},{keys:[["Enter"],["Space"]],callback:t=>{let n=o?.getSelectedActive();if(n)if(o?.getSourceDataAtRow(n[0])?.submenu){let t=e.openSubMenu(n[0]);t&&t.getNavigator()?.toFirstItem()}else e.executeCommand(t),e.close(!0)}},{keys:[["PageUp"]],callback:()=>{o?.getSelectedActive()?o?.selection.transformStart(-o.countVisibleRows(),0):e.getNavigator()?.toFirstItem()}},{keys:[["PageDown"]],callback:()=>{o?.getSelectedActive()?o?.selection.transformStart(o.countVisibleRows(),0):e.getNavigator()?.toLastItem()}}])),i.forEach(e=>{let{shortcuts:t,contextName:o}=e;s(t,o)}),{addCustomShortcuts:s,getCustomShortcuts:function(){return[...r]},getContext:h,listen:function(t){e.hotMenu.getShortcutManager().setActiveContextName(a(t))}}}(this),this.#ry.listen(),this.focus(),this.isSubMenu()&&this.addLocalHook("afterOpen",()=>this.parentMenu.runLocalHooks("afterSubmenuOpen",this)),this.runLocalHooks("afterOpen",this)}close(){let e=arguments.length>0&&void 0!==arguments[0]&&arguments[0];if(this.isOpened()){if(e&&this.isSubMenu())this.parentMenu.close();else if(this.#rw.clear(),this.closeAllSubMenus(),this.container.style.display="none",this.hotMenu.destroy(),this.hotMenu=null,this.#rS=null,this.#rR=null,this.#rk(),null!==this.#rM&&(this.hot.rootWindow.cancelAnimationFrame(this.#rM),this.#rM=null),this.#rx=!1,this.hot.getSettings().outsideClickDeselects=this.origOutsideClickDeselects,this.runLocalHooks("afterClose"),this.isSubMenu()){if(this.hot.getSettings().ariaTags){let e=this.parentMenu.hotMenu.getSelectedActive();if(e){let t=this.parentMenu.hotMenu.getCell(e[0],0);t&&ou(t,[z(!1)])}}this.parentMenu.hotMenu.listen()}}}openSubMenu(e){if(!this.hotMenu)return!1;let t=this.hotMenu.getCell(e,0);if(this.closeAllSubMenus(),!t||!oh(t,"htSubmenu"))return!1;let o=this.#rT(e),n=new mU(this.hot,{parent:this,name:"function"==typeof o.name?o.name.call(this.hot):o.name,className:this.options.className,keepInViewport:!0,container:this.options.container});return n.setMenuItems(o.submenu.items),n.open(),n.setPosition(t.getBoundingClientRect(),()=>t.isConnected?t.getBoundingClientRect():null),this.hotSubMenus[o.key]=n,this.hot.getSettings().ariaTags&&ou(t,[z(!0)]),n}closeSubMenu(e){let t=this.#rT(e),o=this.hotSubMenus[t.key];if(o){o.destroy(),delete this.hotSubMenus[t.key];let n=this.hotMenu.getCell(e,0);n&&this.hot.getSettings().ariaTags&&ou(n,[z(!1)])}}closeAllSubMenus(){J(this.hotMenu.getData(),(e,t)=>this.closeSubMenu(t))}isAllSubMenusClosed(){return 0===Object.keys(this.hotSubMenus).length}focus(){this.isOpened()&&(this.hotMenu.rootElement.focus({preventScroll:!0}),this.getKeyboardShortcutsCtrl().listen(),this.hotMenu.listen())}destroy(){let e=this.container.parentNode;this.clearLocalHooks(),this.close(),this.parentMenu=null,this.eventManager.destroy(),e&&e.removeChild(this.container)}isOpened(){return null!==this.hotMenu}executeCommand(e){if(!this.isOpened()||!this.hasSelectedItem())return;let t=this.getSelectedItem();if(this.runLocalHooks("select",t,e),this.isCommandPassive(t))return;let o=this.hot.getSelectedRange(),n=o?Q(o,e=>({start:e.getTopStartCorner(),end:e.getBottomEndCorner()})):[];this.runLocalHooks("executeCommand",t.key,n,e),this.isSubMenu()&&this.parentMenu.runLocalHooks("executeCommand",t.key,n,e)}isCommandPassive(e){return!1===e.isCommand||mV(e)||mF(e,this.hot)||mL(e)}setOffset(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;this.positioner.setOffset(e,t)}setPosition(e,t){this.isSubMenu()&&this.positioner.setParentElement(this.parentMenu.container),this.positioner.setElement(this.container).updatePosition(e),this.#rS=t??null,this.#rI()}#rI(){let e=this.container.getBoundingClientRect(),t=this.#rS?.()??this.hot.rootElement.getBoundingClientRect();this.#rR={offsetLeft:e.left-t.left,offsetTop:e.top-t.top}}updateMenuDimensions(){let{wtTable:e}=this.hotMenu.view._wt,t=this.hotMenu.getSettings().data,o=e.hider.style,n=e.holder.style,i=parseInt(o.width,10),r=X(t??[],(e,t,o)=>{let n=this.hotMenu.getCell(o,0),i=n?oV(n):0;return e+("object"==typeof t&&null!==t&&"name"in t&&t.name===ml?1:i)},0);n.width=`${i}px`,n.height=`${r}px`,o.height=n.height}createContainer(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null,t=this.options.container,o=t.ownerDocument,n=e,i=null;return n&&(n=n.replace(/[^A-Za-z0-9]/g,"_"),n=`${this.options.className}Sub_${n}`,i=o.querySelector(`.${this.options.className}.${n}`)),i||(od(i=o.createElement("div"),`htMenu handsontable ${this.options.className}`),n&&od(i,n),t.appendChild(i)),i}onAfterInit(){this.updateMenuDimensions(),this.hot.getSettings().ariaTags&&ou(this.hotMenu.rootElement,[["role","menu"],S(-1)])}onDocumentMouseDown(e){this.isOpened()&&(this.options.standalone&&this.hotMenu&&!on(t5(e),this.hotMenu.rootElement)?this.close(!0):(this.isAllSubMenusClosed()||this.isSubMenu())&&!on(t5(e),".htMenu")&&this.close(!0))}onDocumentScroll(e){!this.isOpened()||null===this.#rR||!ne(e.target)||on(e.target,".htMenu")||this.#rA(e.target)}#rA(e){let t;if(this.#rS)t=this.#rS();else{if(e===this.hot.rootElement||on(e,this.hot.rootElement))return void this.close(!0);t=this.hot.rootElement.getBoundingClientRect()}if(null===t)return void this.close(!0);let{offsetLeft:o,offsetTop:n}=this.#rR,i=this.container.getBoundingClientRect(),r=t.left+o-i.left,l=t.top+n-i.top;(0!==r||0!==l)&&(this.container.style.left=`${(Number.parseFloat(this.container.style.left)||0)+r}px`,this.container.style.top=`${(Number.parseFloat(this.container.style.top)||0)+l}px`,this.#r_())}#r_(){this.#rx=!0,null!==this.#rM&&this.hot.rootWindow.cancelAnimationFrame(this.#rM),this.#rM=this.hot.rootWindow.requestAnimationFrame(()=>{this.#rM=this.hot.rootWindow.requestAnimationFrame(()=>{this.#rx=!1,this.#rM=null})})}onDocumentContextMenu(e){this.isOpened()&&oh(t5(e),"htCore")&&on(t5(e),this.hotMenu.rootElement)&&e.preventDefault()}}th(mU,sb);let mG="contextMenu";nL.getSingleton().register("afterContextMenuDefaultOptions"),nL.getSingleton().register("beforeContextMenuShow"),nL.getSingleton().register("afterContextMenuShow"),nL.getSingleton().register("afterContextMenuHide"),nL.getSingleton().register("afterContextMenuExecute");class mq extends ps{static get PLUGIN_KEY(){return mG}static get PLUGIN_PRIORITY(){return 70}static get PLUGIN_DEPS(){return["plugin:AutoColumnSize"]}static get SEPARATOR(){return{name:ml}}static get DEFAULT_ITEMS(){return[mE,mk,ml,mv,mS,ml,mH,mM,ml,mI,mx,ml,mR,ml,mw]}commandExecutor=new mC(this.hot);itemsFactory=null;menu=null;isEnabled(){return!!this.hot.getSettings()[mG]}enablePlugin(){var e=this;if(this.enabled)return;let t=this.hot.getSettings()[mG],o="object"!=typeof t||null===t||Array.isArray(t)?null:t;o&&"function"==typeof o.callback&&this.commandExecutor.setCommonCallback(o.callback),this.menu=new mU(this.hot,{className:"htContextMenu",keepInViewport:!0,container:o?.uiContainer||this.hot.rootPortalElement}),this.menu.addLocalHook("afterOpen",this.#rO),this.menu.addLocalHook("afterClose",this.#rP),this.menu.addLocalHook("executeCommand",function(){for(var t=arguments.length,o=Array(t),n=0;n<t;n++)o[n]=arguments[n];e.executeCommand.call(e,...o)}),this.addHook("afterOnCellContextMenu",this.#rD),this.addHook("beforeDialogShow",()=>this.close()),this.registerShortcuts(),super.enablePlugin()}updatePlugin(){this.disablePlugin(),this.enablePlugin(),super.updatePlugin()}disablePlugin(){this.close(),this.menu&&(this.menu.destroy(),this.menu=null),this.unregisterShortcuts(),super.disablePlugin()}registerShortcuts(){this.hot.getShortcutManager().getContext("grid")?.addShortcut({keys:[["Control/Meta","Shift","Backslash"],["Shift","F10"]],callback:()=>{let e=this.hot.getSelectedRangeActive();if(!e)return;let{highlight:t}=e;if(null===t.row||null===t.col)return;this.hot.scrollToFocusedCell();let o=this.hot.getCell(t.row,t.col,!0);if(!o)return;let n=o.getBoundingClientRect(),i=mc(this.menu.container,this.hot.rootDocument);this.open({left:n.left+i.left,top:n.top+i.top-1+n.height},{left:n.width,above:-n.height},()=>{let e=this.hot.getCell(t.row,t.col,!0);return e?e.getBoundingClientRect():null}),this.menu.getNavigator().toFirstItem()},runOnlyIf:()=>{let e=this.hot.getSelectedRangeActive()?.highlight;return!!e&&this.hot.selection.isCellVisible(e)&&!this.menu.isOpened()},group:mG})}unregisterShortcuts(){this.hot.getShortcutManager().getContext("grid")?.removeShortcutsByGroup(mG)}open(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{above:0,below:0,left:0,right:0},o=arguments.length>2?arguments[2]:void 0;this.menu?.isOpened()||(this.hot.runHooks("beforeContextMenuShow",this),this.prepareMenuItems(),this.menu.open(),tp(t,(e,t)=>{this.menu.setOffset(t,e)}),this.menu.setPosition(e,o))}close(){this.menu?.close(),this.itemsFactory=null}executeCommand(e){for(var t=arguments.length,o=Array(t>1?t-1:0),n=1;n<t;n++)o[n-1]=arguments[n];null===this.itemsFactory&&this.prepareMenuItems(),this.commandExecutor.execute(e,...o)}prepareMenuItems(){this.itemsFactory=new mP(this.hot,mq.DEFAULT_ITEMS);let e=this.hot.getSettings()[mG],t={items:this.itemsFactory.getItems(e)};this.hot.runHooks("afterContextMenuDefaultOptions",t),this.itemsFactory.setPredefinedItems(t.items);let o=this.itemsFactory.getItems(e);this.hot.runHooks("beforeContextMenuSetItems",o),this.menu.setMenuItems(o),J(o,e=>{this.commandExecutor.registerCommand(String(e.key??""),e)})}#rD=e=>{let t,o,n=this.hot.getSettings(),i=n.rowHeaders,r=n.colHeaders,l=t5(e);if(this.close(),oh(l,"handsontableInput"))return;if(e.preventDefault(),e.stopPropagation(),!(i||r)&&(o=l.parentNode,!("TD"===l.nodeName||ne(o)&&"TD"===o.nodeName))&&!(oh(l,"current")&&oh(l,"wtBorder")))return;let s=mc(this.menu.container,this.hot.rootDocument),a=l.closest("td, th");if(a){let e=this.hot.getCoords(a);if(e&&null!==e.row&&null!==e.col){let{row:o,col:n}=e;t=()=>{let e=this.hot.getCell(o,n,!0);return e?e.getBoundingClientRect():null}}}this.open({top:e.clientY+s.top,left:e.clientX+s.left},void 0,t)};#rO=()=>{this.hot.runHooks("afterContextMenuShow",this)};#rP=()=>{this.hot.listen(),this.hot.runHooks("afterContextMenuHide",this)};destroy(){this.close(),this.menu&&this.menu.destroy(),super.destroy()}}class mj{constructor(){this.data={}}setData(e,t){this.data[e]=t}getData(e){return this.data[e]||void 0}}class mY{constructor(){this.clipboardData=new mj}preventDefault(){}composedPath(){return[]}}class mK{#rN;#rB;#rL;#rV;#rF;#rz;constructor({countRows:e,countColumns:t,rowsLimit:o,columnsLimit:n,countColumnHeaders:i}){this.#rB=e,this.#rL=t,this.#rV=o,this.#rF=n,this.#rz=i}setSelectedRange(e){this.#rN=e}getCellsRange(){if(0===this.#rB()||0===this.#rL())return null;let{row:e,col:t}=this.#rN.getTopStartCorner(),{row:o,col:n}=this.#rN.getBottomEndCorner();if(null===e||null===t||null===o||null===n)return null;let i=this.#rW(e,o),r=this.#r$(t,n);return{isRangeTrimmed:o!==i||n!==r,startRow:e,startCol:t,endRow:i,endCol:r}}getMostBottomColumnHeadersRange(){if(0===this.#rL()||0===this.#rz())return null;let{col:e}=this.#rN.getTopStartCorner(),{col:t}=this.#rN.getBottomEndCorner();if(null===e||null===t)return null;let o=this.#r$(e,t);return{isRangeTrimmed:t!==o,startRow:-1,startCol:e,endRow:-1,endCol:o}}getAllColumnHeadersRange(){if(0===this.#rL()||0===this.#rz())return null;let{col:e}=this.#rN.getTopStartCorner(),{col:t}=this.#rN.getBottomEndCorner();if(null===e||null===t)return null;let o=this.#r$(e,t);return{isRangeTrimmed:t!==o,startRow:-this.#rz(),startCol:e,endRow:-1,endCol:o}}#r$(e,t){return Math.min(t,Math.max(e+this.#rF()-1,e))}#rW(e,t){return Math.min(t,Math.max(e+this.#rV()-1,e))}}function mX(e){let t=[],o=[],n=new Set,i=new Set;return J(e,e=>{ik(Math.min(e.startRow,e.endRow),Math.max(e.startRow,e.endRow),e=>{n.has(e)||(n.add(e),t.push(e))}),ik(Math.min(e.startCol,e.endCol),Math.max(e.startCol,e.endCol),e=>{i.has(e)||(i.add(e),o.push(e))})}),{rows:t,columns:o}}nL.getSingleton().register("afterCopyLimit"),nL.getSingleton().register("modifyCopyableRange"),nL.getSingleton().register("beforeCut"),nL.getSingleton().register("afterCut"),nL.getSingleton().register("beforePaste"),nL.getSingleton().register("afterPaste"),nL.getSingleton().register("beforeCopy"),nL.getSingleton().register("afterCopy");let mZ="copyPaste",mQ=["fragmentSelection"],mJ="application/ht-source-data-json-html",m0='<meta name="generator" content="Handsontable"/><style type="text/css">td{white-space:normal}br{mso-data-placement:same-cell}</style>';class m1 extends ps{static get PLUGIN_KEY(){return mZ}static get SETTING_KEYS(){return[mZ,...mQ]}static get PLUGIN_PRIORITY(){return 80}static get DEFAULT_SETTINGS(){return{pasteMode:"overwrite",rowsLimit:1/0,columnsLimit:1/0,copyColumnHeaders:!1,copyColumnGroupHeaders:!1,copyColumnHeadersOnly:!1}}columnsLimit=1/0;rowsLimit=1/0;pasteMode="overwrite";uiContainer=this.hot.rootDocument.body;#rU=!1;#rG=!1;#rq=!1;#rj="cells-only";#rY=new WeakSet;#rK=!1;#rX=!1;#rZ=new mK({countRows:()=>this.hot.countRows(),countColumns:()=>this.hot.countCols(),rowsLimit:()=>this.rowsLimit,columnsLimit:()=>this.columnsLimit,countColumnHeaders:()=>this.hot.view.getColumnHeadersCount()});#rQ=!1;copyableRanges=[];isEnabled(){return!!this.hot.getSettings()[mZ]}enablePlugin(){if(this.enabled)return;this.pasteMode=this.getSetting("pasteMode")??this.pasteMode,this.rowsLimit=isNaN(this.getSetting("rowsLimit"))?this.rowsLimit:this.getSetting("rowsLimit"),this.columnsLimit=isNaN(this.getSetting("columnsLimit"))?this.columnsLimit:this.getSetting("columnsLimit"),this.#rU=this.getSetting("copyColumnHeaders"),this.#rG=this.getSetting("copyColumnGroupHeaders"),this.#rq=this.getSetting("copyColumnHeadersOnly"),this.uiContainer=this.getSetting("uiContainer")??this.uiContainer,this.addHook("afterContextMenuDefaultOptions",this.#rJ),this.addHook("afterSelection",this.#r0),this.addHook("afterSelectionEnd",this.#r1);let e=e=>t=>{this.#rY.has(t)||(this.#rY.add(t),e(t))},t=t=>{this.eventManager.addEventListener(t,"copy",e(e=>this.onCopy(e))),this.eventManager.addEventListener(t,"cut",e(e=>this.onCut(e))),this.eventManager.addEventListener(t,"paste",e(e=>this.onPaste(e)))};t(this.hot.rootDocument),t(this.hot.rootElement);let o=this.hot.rootElement.getRootNode();nn(o)&&t(o),tV()&&(this.eventManager.addEventListener(this.hot.rootDocument.body,"mouseenter",this.#r2),this.eventManager.addEventListener(this.hot.rootDocument.body,"mouseleave",this.#r3),this.addHook("afterSelection",this.#r6)),super.enablePlugin()}updatePlugin(){this.disablePlugin(),this.enablePlugin(),super.updatePlugin()}disablePlugin(){super.disablePlugin()}copy(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"cells-only";this.#rj=e,this.#rK=!0,this.#r4("copy")}copyCellsOnly(){this.copy("cells-only")}copyColumnHeadersOnly(){this.copy("column-headers-only")}copyWithAllColumnHeaders(){this.copy("with-column-group-headers")}copyWithColumnHeaders(){this.copy("with-column-headers")}cut(){this.#rX=!0,this.#r4("cut")}getRangedCopyableData(e){return dk(this.getRangedData(e))}getRangedData(e){let t=arguments.length>1&&void 0!==arguments[1]&&arguments[1],o=[],{rows:n,columns:i}=mX(e);return J(n,e=>{let n=[];J(i,o=>{if(e<0)n.push(this.hot.getColHeader(o,e));else{let i=t?this.hot.getCopyableSourceData(e,o):this.hot.getCopyableData(e,o);t&&(tu(i)||Array.isArray(i))&&(i=JSON.stringify(i)),n.push(i)}}),o.push(n)}),o}paste(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"",t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:e;if(!e&&!t)return;let o=new mY;e&&o.clipboardData.setData("text/plain",e),t&&o.clipboardData.setData("text/html",t),this.onPaste(o)}setCopyableText(){let e=this.hot.getSelectedRangeActive();if(!e)return;if(e.isSingleHeader()){this.copyableRanges=[];return}this.#rZ.setSelectedRange(e);let t=new Map([["headers",null],["cells",null]]);"column-headers-only"===this.#rj?t.set("headers",this.#rZ.getMostBottomColumnHeadersRange()):("with-column-headers"===this.#rj?t.set("headers",this.#rZ.getMostBottomColumnHeadersRange()):"with-column-group-headers"===this.#rj&&t.set("headers",this.#rZ.getAllColumnHeadersRange()),t.set("cells",this.#rZ.getCellsRange())),this.copyableRanges=Array.from(t.values()).filter(e=>null!==e).map(e=>{let{startRow:t,startCol:o,endRow:n,endCol:i}=e;return{startRow:t,startCol:o,endRow:n,endCol:i}}),this.copyableRanges=this.hot.runHooks("modifyCopyableRange",this.copyableRanges);let o=t.get("cells");if(null!=o&&o.isRangeTrimmed){let{startRow:e,startCol:t,endRow:n,endCol:i}=o;this.hot.runHooks("afterCopyLimit",n-e+1,i-t+1,this.rowsLimit,this.columnsLimit)}}isEditorOpened(){return this.hot.getActiveEditor()?.isOpened()}#r4(e){if(tV()){let t=this.hot.getSelectedRangeActive();if(t){let{row:o,col:n}=t.highlight;if(null!==o&&null!==n){let t=this.hot.getCell(o,n,!0);t&&o8(t,()=>{this.hot.rootDocument.execCommand(e)})}}}else this.hot.rootDocument.execCommand(e)}#r5(e){let{rows:t}=mX(e),o=0;for(let e=0;e<t.length&&!(t[e]>=0);e++)o+=1;return{columnHeadersCount:o}}populateValues(e){let{plainData:t,originalPlainData:o,sourceData:n}=e;if(!t.length)return[null,null,null,null];let i=this.hot.getSelectedRangeActive(),r=t.length,l=t[0].length,s=[];if(!i)return[null,null,null,null];let{row:a,col:h}=i.getTopStartCorner(),{row:d,col:c}=i.getBottomEndCorner();if(null===a||null===h||null===d||null===c)return[null,null,null,null];let u=a,g=h,p=a,m=h;for(;s.length<r||u<=d;){let{skipRowOnPaste:e,visualRow:i}=this.hot.getCellMeta(u,h);if(u=i+1,!0===e)continue;p=i,g=h;let a=[],d=s.length%r;for(;a.length<l||g<=c;){let{skipColumnOnPaste:e,visualCol:r,parsePastedValue:s}=this.hot.getCellMeta(i,g);this.hot.getSourceDataAtCell(i,g);let h=a.length%l;if(g=r+1,!0===e)continue;m=r;let c=n?.[d]?.[h],u=o?.[d]?.[h],p=t[d][h];s&&n&&ic(c)&&p===u&&(p=JSON.parse(c)),a.push(p)}s.push(a)}return this.#rQ=!0,this.hot.populateFromArray(a,h,s,void 0,void 0,"CopyPaste.paste",this.pasteMode),[a,h,p,m]}#r7(){if(this.hot.isListening()){let e=this.hot.getSelectedRangeActive();if(e){let{row:t,col:o}=e.highlight;if(null===t||null===o)return;let n=this.hot.getCell(t,o,!0);n&&o7(n)}}}#r9(){if(this.hot.isListening()){let e=this.hot.getSelectedRangeActive();if(e){let{row:t,col:o}=e.highlight;if(null===t||null===o)return;let n=this.hot.getCell(t,o,!0);n?.hasAttribute("contenteditable")&&o9(n)}}}#r8(e){let t=e.composedPath();return t.some(e=>nn(e))?t[0]:("target"in e?e.target:null)??t[0]}onCopy(e){let t=this.#r8(e),o=this.hot.getFocusManager().getRefocusElement(),n=ne(t)&&"hotInput"in t.dataset;if(!this.hot.isListening()&&!this.#rK||this.isEditorOpened()||ne(t)&&(n&&t!==o||!n&&t!==this.hot.rootDocument.body&&!t4(t,this.hot.rootElement)))return;e.preventDefault(),this.setCopyableText(),this.#rK=!1;let i=this.getRangedData(this.copyableRanges),r=this.getRangedData(this.copyableRanges,!0),l=this.#r5(this.copyableRanges);this.hot.runHooks("beforeCopy",i,this.copyableRanges,l)&&(this.#le(e,i,r),this.hot.runHooks("afterCopy",i,this.copyableRanges,l)),this.#rj="cells-only"}onCut(e){let t=this.#r8(e),o=this.hot.getFocusManager().getRefocusElement(),n=ne(t)&&"hotInput"in t.dataset;if(!this.hot.isListening()&&!this.#rX||this.isEditorOpened()||ne(t)&&(n&&t!==o||!n&&t!==this.hot.rootDocument.body&&!t4(t,this.hot.rootElement)))return;e.preventDefault(),this.setCopyableText(),this.#rX=!1;let i=this.getRangedData(this.copyableRanges),r=this.getRangedData(this.copyableRanges,!0);this.hot.runHooks("beforeCut",i,this.copyableRanges)&&(this.#le(e,i,r),this.hot.emptySelectedCells("CopyPaste.cut"),this.hot.runHooks("afterCut",i,this.copyableRanges))}onPaste(e){let t=this.#r8(e),o=this.hot.getFocusManager().getRefocusElement(),n=ne(t)&&"hotInput"in t.dataset;if(!this.hot.isListening()||this.isEditorOpened()||!this.hot.getSelected()||ne(t)&&(n&&t!==o||!n&&t!==this.hot.rootDocument.body&&!t4(t,this.hot.rootElement)))return;e.preventDefault?.();let i=this.#lt(e),{pastedSourceData:r}=i,{pastedData:l}=i;if("string"==typeof l&&(l=function(e){let t,o=[[""]];if(0===e.length)return o;let n=0,i=0;for(;e.length>0&&t!==e.length;)if(t=e.length,e.match(dE))e=e.replace(dE,""),n+=1,o[i][n]="";else if(e.match(dM))e=e.replace(dM,""),n=0,o[i+=1]=[""];else{let t="";if(e.startsWith('"')){let o=function(e){let t=0;for(;t<e.length;){if('"'===e[t]){if('"'===e[t+1]){t+=2;continue}let o=e[t+1];if(void 0===o||" "===o||"\r"===o||"\n"===o)return t}t+=1}return -1}(e.slice(1));if(-1!==o){let n=0,i=e.slice(1);for(;n<o;)'"'===i[n]&&'"'===i[n+1]?(t+='"',n+=2):(t+=i[n],n+=1);e=e.slice(o+2)}else{let o=0,n=!0;for(;n;){let i=e.slice(0,1);'"'===i&&(o+=1),t+=i,(0===(e=e.slice(1)).length||e.match(/^[\t\r\n]/)&&o%2==0)&&(n=!1)}t=t.replace(/^"/,"").replace(/"$/,"").replace(/["]*/g,e=>Array(Math.floor(e.length/2)).fill('"').join(""))}}else{let o=e.match(dH);t=o?o[0]:"",e=e.slice(t.length)}o[i][n]=t}return o}(l)),void 0===l||Array.isArray(l)&&0===l.length)return;let s=ts(l);if(!1===this.hot.runHooks("beforePaste",l,this.copyableRanges))return;let[a,h,d,c]=this.populateValues({plainData:l,sourceData:r,originalPlainData:s});null!==a&&null!==h&&null!==d&&null!==c&&this.hot.selectCell(a,h,Math.min(this.hot.countRows()-1,d),Math.min(this.hot.countCols()-1,c)),this.hot.runHooks("afterPaste",l,this.copyableRanges)}#lt(e){let t,o;if(e&&void 0!==e.clipboardData){let n=e.clipboardData,i=st(this.hot,n.getData(mJ)??"","CopyPaste.paste.sourceData");if(i){let e=is(i,this.hot.rootDocument);o=e?.data}let r=st(this.hot,n.getData("text/html")??"","CopyPaste.paste");if(r&&/(<table)|(<TABLE)/g.test(r)){let e=is(r,this.hot.rootDocument);t=e?.data}else"string"==typeof(t=n.getData("text/plain"))&&(t=t.replace(/(\r\n|\r|\n)$/,""))}else"u"<typeof ClipboardEvent&&void 0!==this.hot.rootWindow.clipboardData&&(t=this.hot.rootWindow.clipboardData.getData("Text"));return{pastedData:t,pastedSourceData:o}}#le(e,t,o){let n=dk(t);if(e&&e.clipboardData){let i=it(t),r=it(o);e.clipboardData.setData("text/plain",n),e.clipboardData.setData("text/html",[m0,i].join("")),e.clipboardData.setData(mJ,[m0,r].join(""))}else"u"<typeof ClipboardEvent&&this.hot.rootWindow.clipboardData.setData("Text",n)}#rJ=e=>{var t,o,n,i,r;e.items.push({name:"---------"},(t=this,{key:"copy",name(){return this.getTranslatedPhrase(s3)},callback(){t.copyCellsOnly()},disabled(){if(0===this.countRows()||0===this.countCols())return!0;let e=this.getSelectedRangeActive();if(!e||e.isSingleHeader())return!0;let t=this.getSelected();return!t||!!(t.length>1)},hidden:!1})),this.#rU&&e.items.push((o=this,{key:"copy_with_column_headers",name(){let e=this.getSelectedRangeActive(),t=e?iA(e.getWidth()-1,0,1):0;return this.getTranslatedPhrase(s6,t)},callback(){o.copyWithColumnHeaders()},disabled(){if(!this.hasColHeaders())return!0;let e=this.getSelectedRangeActive();if(!e||e.isSingleHeader())return!0;let t=this.getSelected();return!t||!!(t.length>1)},hidden:!1})),this.#rG&&e.items.push((n=this,{key:"copy_with_column_group_headers",name(){let e=this.getSelectedRangeActive(),t=e?iA(e.getWidth()-1,0,1):0;return this.getTranslatedPhrase(s4,t)},callback(){n.copyWithAllColumnHeaders()},disabled(){if(!this.hasColHeaders()||!this.getSettings().nestedHeaders)return!0;let e=this.getSelectedRangeActive();if(!e||e.isSingleHeader())return!0;let t=this.getSelected();return!t||!!(t.length>1)},hidden:!1})),this.#rq&&e.items.push((i=this,{key:"copy_column_headers_only",name(){let e=this.getSelectedRangeActive(),t=e?iA(e.getWidth()-1,0,1):0;return this.getTranslatedPhrase(s5,t)},callback(){i.copyColumnHeadersOnly()},disabled(){if(!this.hasColHeaders())return!0;let e=this.getSelectedRangeActive();if(!e||e.isSingleHeader())return!0;let t=this.getSelected();return!t||!!(t.length>1)},hidden:!1})),e.items.push((r=this,{key:"cut",name(){return this.getTranslatedPhrase(s7)},callback(){r.cut()},disabled(){if(0===this.countRows()||0===this.countCols())return!0;let e=this.getSelectedRangeActive();if(!e||e.isSingleHeader())return!0;let t=this.getSelected();return!t||!!(t.length>1)},hidden:!1}))};#r0=(e,t,o,n,i)=>{this.#rQ&&(i.value=!0),this.#rQ=!1};#r1=()=>{this.isEditorOpened()||this.hot.getSettings().fragmentSelection||this.setCopyableText()};#r2=()=>{this.#r9()};#r3=()=>{this.#r7()};#r6=()=>{this.#r9()};destroy(){super.destroy()}}function m2(e,t){return`border_row${e}col${t}`}function m3(e,t,o){return e>=t+o?e-o:e>=t?-1:e}function m6(){return{width:1,color:"#000"}}function m4(){return{hide:!0}}function m5(e){return(eP(e.start)||eP(e.left))&&(e.start=e.start??e.left),(eP(e.end)||eP(e.right))&&(e.end=e.end??e.right),delete e.left,delete e.right,e}function m7(e){return eP(e.start)&&(e.left=e.start),eP(e.end)&&(e.right=e.end),e}function m9(e,t){return{id:m2(e,t),border:{width:1,color:"#000",cornerVisible:!1},row:e,col:t,top:m4(),bottom:m4(),start:m4(),end:m4()}}function m8(e,t,o){tw(t,o)&&eP(t[o])&&(t[o]?tu(t[o])||(t[o]=m6()):t[o]=m4(),e[o]=t[o])}function fe(e,t){let o=!1;return J(e.getSelectedRange()??[],n=>{n.forAll((n,i)=>{if(n<0||i<0)return;let r=e.getCellMeta(n,i).borders;if(r){if(!t)return o=!0,!1;else if(!tw(r[t],"hide")||!1===r[t].hide)return o=!0,!1}})}),o}function ft(e){return`<span class="selected">${String.fromCharCode(10003)}</span>${e}`}let fo=new Map([["left","start"],["right","end"]]),fn="customBorders";function fi(e){return"object"==typeof e&&null!==e}function fr(e){return fi(e)&&"string"==typeof e.id&&"number"==typeof e.row&&"number"==typeof e.col}function fl(e){return fi(e)&&"number"==typeof e.row&&"number"==typeof e.col}let fs=["dashed","dotted","solid"];class fa extends ps{static get PLUGIN_KEY(){return fn}static get PLUGIN_PRIORITY(){return 90}static get SETTING_KEYS(){return[fn,"customBordersProgressive"]}savedBorders=[];#lo=new Map;#ln=new Map;#li=new Map;#lr=!0;#ll=null;#ls=!1;#la=!1;#lh=!1;#ld=null;#lc=0;#lu=5e3;#lg=0;#lp=null;#lm=null;isEnabled(){return!!this.hot.getSettings()[fn]}enablePlugin(){this.enabled||(this.addHook("afterContextMenuDefaultOptions",e=>this.#rJ(e)),this.addHook("init",()=>this.#lf()),this.addHook("beforeCreateRow",this.#lb),this.addHook("afterCreateRow",this.#lC),this.addHook("beforeRemoveRow",this.#lw),this.addHook("afterRemoveRow",this.#ly),this.addHook("beforeCreateCol",this.#lv),this.addHook("afterCreateCol",this.#lS),this.addHook("beforeRemoveCol",this.#lR),this.addHook("afterRemoveCol",this.#lx),this.addHook("beforeRowMove",this.#lM),this.addHook("afterRowMove",this.#lH),this.addHook("beforeColumnMove",this.#lE),this.addHook("afterColumnMove",this.#rt),this.addHook("beforeViewRender",this.#i6),this.addHook("afterSetCellMeta",this.#iF),this.addHook("afterRemoveCellMeta",this.#lk),super.enablePlugin())}disablePlugin(){this.#lT(),this.hideBorders(),super.disablePlugin()}updatePlugin(){this.disablePlugin(),this.enablePlugin(),this.changeBorderSettings(),super.updatePlugin()}setBorders(e,t){let o=["top","bottom","start","end"],n=null;t&&(this.checkSettingsCohesion([t]),o=Object.keys(t),n=m5(t));let i=de(h8(e),{createCellCoords:this.hot._createCellCoords.bind(this.hot),createCellRange:this.hot._createCellRange.bind(this.hot)});J(e,e=>{i(e).forAll((e,t)=>(J(o,o=>{this.prepareBorderFromCustomAdded(e,t,n,fo.get(o)??o)}),!0))}),this.hot.render()}getBorders(e){if(!Array.isArray(e))return this.savedBorders;let t=de(h8(e),{createCellCoords:this.hot._createCellCoords.bind(this.hot),createCellRange:this.hot._createCellRange.bind(this.hot)}),o=[];return J(e,e=>{t(e).forAll((e,t)=>(J(this.savedBorders,n=>{n.row===e&&n.col===t&&o.push(m7(n))}),!0))}),o}clearBorders(e){e?this.setBorders(e):(this.#lI(),this.hot.render())}insertBorderIntoSettings(e,t){this.checkSavedBorders(e)||(this.savedBorders.push(e),this.#lo.set(e.id,this.savedBorders.length-1)),this.#lA(e),this.#l_(e.id)}prepareBorderFromCustomAdded(e,t,o,n){let i=this.hot.countRows(),r=this.hot.countCols();if(e>=i||t>=r)return;let l=m9(e,t);if(o){var s;let n=this.#lO(e,t);fr(n)&&((l=m5(ts(n))).row=e,l.col=t,l.id=m2(e,t)),s=l,tw(o,"border")&&o.border&&(s.border=o.border),m8(s,o,"top"),m8(s,o,"bottom"),m8(s,o,"start"),m8(s,o,"end"),l=s}4===this.countHide(l)?this.removeAllBorders(e,t):this.#lP(e,t,m7(l))&&this.insertBorderIntoSettings(l,n)}prepareBorderFromCustomAddedRange(e,t){let o=Math.min(e.to.row,this.hot.countRows()-1),n=Math.min(e.to.col,this.hot.countCols()-1);ik(e.from.row,o,o=>{ik(e.from.col,n,n=>{let{border:i,add:r}=this.#lD(o,n,t,e);r>0&&this.#lP(o,n,m7(i))&&this.insertBorderIntoSettings(i,void 0)})})}#lO(e,t){let o=this.#ll;if(null===o||!this.#ls)return this.hot.getCellMeta(e,t).borders;let n=`${e},${t}`,i=o.has(n);return o.add(n),i?this.hot.getCellMeta(e,t).borders:void 0}#lP(e,t,o){let n=this.hot.hasHook(null===o?"beforeRemoveCellMeta":"beforeSetCellMeta");this.#la=!0;try{null===o?this.hot.removeCellMeta(e,t,"borders"):this.hot.setCellMeta(e,t,"borders",o)}finally{this.#la=!1}if(!n)return!0;let i=this.hot.getCellMetaTransient(e,t);return null===o?!tw(i,"borders"):i.borders===o}#lD(e,t,o,n){let i=this.#lO(e,t),r=fr(i)?m5(ts(i)):m9(e,t),l=0,s=(e,t)=>{e&&tw(o,t)&&(r[t]=function(e,t){if(e&&tu(e)&&Object.keys(e).length>0)return e;if(t&&tu(t)){let e={...t};return delete e.cornerVisible,e}return e}(o[t],o.border),l+=1)};return s(e===n.from.row,"top"),s(e===n.to.row,"bottom"),s(t===n.from.col,"start"),s(t===n.to.col,"end"),fi(o.border)&&(r.border=o.border),{border:r,add:l}}removeAllBorders(e,t){if(!this.#lP(e,t,null))return;let o=m2(e,t);this.spliceBorder(o),this.#lN(e,o),this.#l_(o)}setBorder(e,t,o,n){let i,r=this.hot.getCellMeta(e,t).borders;i=fr(r)?m5(r):m9(e,t),n?(i[o]=m4(),4===this.countHide(i)?this.removeAllBorders(e,t):this.#lP(e,t,m7(i))&&this.insertBorderIntoSettings(i,void 0)):(i[o]=m6(),this.#lP(e,t,m7(i))&&this.insertBorderIntoSettings(i,void 0))}prepareBorder(e,t,o){J(e,e=>{if(!fl(e.start)||!fl(e.end))return;let{start:n,end:i}={start:e.start,end:e.end};if(n.row===i.row&&n.col===i.col)"noBorders"===t?this.removeAllBorders(n.row,n.col):this.setBorder(n.row,n.col,t,o);else switch(t){case"noBorders":ik(n.col,i.col,e=>{ik(n.row,i.row,t=>{this.removeAllBorders(t,e)})});break;case"top":ik(n.col,i.col,e=>{this.setBorder(n.row,e,t,o)});break;case"bottom":ik(n.col,i.col,e=>{this.setBorder(i.row,e,t,o)});break;case"start":ik(n.row,i.row,e=>{this.setBorder(e,n.col,t,o)});break;case"end":ik(n.row,i.row,e=>{this.setBorder(e,i.col,t,o)})}}),this.hot.render()}createCustomBorders(e){let t=null===this.#ll,o=this.#ls;t&&(this.#ll=new Set),this.#ls=!0;try{J(e,e=>{let t=m5(e);t.range?this.prepareBorderFromCustomAddedRange(t.range,t):this.prepareBorderFromCustomAdded(t.row??0,t.col??0,t,void 0)})}finally{this.#ls=o,t&&(this.#ll=null)}}countHide(e){let{top:t,bottom:o,start:n,end:i}=e;return X([t,o,n,i],(e,t)=>{let o=e;return t&&t.hide&&(o+=1),o},0)}hideBorders(){this.#lB()}#lB(){let{customSelections:e}=this.hot.selection.highlight,t=new Set(this.#ln.values());for(let o=e.length-1;o>=0;o--)t.has(e[o])&&(e[o].destroy(),e.splice(o,1));this.#ln.clear()}#lI(){this.#lT();let e=[];J(this.savedBorders,t=>{this.#lP(t.row,t.col,null)||e.push(t)}),this.savedBorders=e,this.#lL(),this.#li.clear(),this.#lr=!0,this.#lB()}#lV(){this.#li.clear(),J(this.savedBorders,e=>{let t=this.#li.get(e.row);t?t.push(e):this.#li.set(e.row,[e])}),this.#lr=!1}#lA(e){if(this.#lr)return;if(!this.#lo.has(e.id))return void this.#lN(e.row,e.id);let t=this.#li.get(e.row);if(!t)return void this.#li.set(e.row,[e]);let o=t.findIndex(t=>t.id===e.id);-1===o?t.push(e):t[o]=e}#lN(e,t){if(this.#lr)return;let o=this.#li.get(e);if(!o)return;let n=o.findIndex(e=>e.id===t);-1!==n&&(o.splice(n,1),0===o.length&&this.#li.delete(e))}#lF(){let e,t,o;this.#lr&&this.#lV();let n=this.hot.view,i=n.getFirstRenderedVisibleRow(),r=n.getLastRenderedVisibleRow(),l=n.getFirstRenderedVisibleColumn(),s=n.getLastRenderedVisibleColumn();if(null===i||null===r||null===l||null===s){this.#ln.size>0&&this.#lB();return}let a=this.hot.getSettings(),h=Number(a.fixedRowsTop)||0,d=Number(a.fixedRowsBottom)||0,c=Number(a.fixedColumnsStart)||0,u=this.hot.countRows(),g=this.hot.countCols(),p=(e=[],t=u-d,(o=(t,o)=>{t<=o&&e.push([t,o])})(0,Math.min(h,u)-1),o(Math.max(i,h),Math.min(r,t-1)),o(Math.max(t,h),u-1),e),m=new Set;J(p,e=>{let[t,o]=e;for(let e=t;e<=o;e++){let t=this.#li.get(e);t&&J(t,e=>{var t;t=e.col,!(t<0)&&!(t>=g)&&(t<c||t>=g-0||t>=l&&t<=s)&&(m.add(e.id),this.#ln.has(e.id)||this.#lz(e))})}}),J(Array.from(this.#ln.keys()),e=>{m.has(e)||this.#l_(e)})}#lz(e){let t=this.hot._createCellCoords(e.row,e.col),o=this.hot._createCellRange(t,t,t),{customSelections:n}=this.hot.selection.highlight;this.hot.selection.highlight.addCustomSelection({border:e,visualCellRange:o}),this.#ln.set(e.id,n[n.length-1])}spliceBorder(e){let t=this.#lo.get(e)??-1;t>-1&&(this.savedBorders.splice(t,1),this.#lL())}#lL(){this.#lo.clear(),J(this.savedBorders,(e,t)=>{this.#lo.set(e.id,t)})}checkSavedBorders(e){let t=!1;if(4===this.countHide(e))this.spliceBorder(e.id),t=!0;else{let o=this.#lo.get(e.id);void 0!==o&&(this.savedBorders[o]=e,t=!0)}return t}changeBorderSettings(){let e=!(arguments.length>0)||void 0===arguments[0]||arguments[0],t=this.hot.getSettings()[fn];if(Array.isArray(t)){let o=ts(t.filter(fi));this.checkSettingsCohesion(o),this.#lI();let n=this.#lW();if(n.enabled&&o.length>0){this.#l$(o,n.chunkSize),e&&this.hot.render();return}this.createCustomBorders(o)}else void 0!==t&&this.createCustomBorders(this.savedBorders);e&&this.hot.render(),this.hot.runHooks("afterCustomBordersUpdate")}#lW(){let e=this.hot.getSettings().customBordersProgressive;return!0===e?{enabled:!0,chunkSize:5e3}:fi(e)?{enabled:!0,chunkSize:"number"==typeof e.chunkSize&&e.chunkSize>0?Math.floor(e.chunkSize):5e3}:{enabled:!1,chunkSize:5e3}}#l$(e,t){this.#lg+=1,this.#ld=e,this.#lc=0,this.#lu=t,this.#ll=new Set,this.#lU(this.#lg)}#lU(e){this.hot._registerTimeout(()=>this.#lG(e),0)}#lG(e){if(e!==this.#lg||null===this.#ld)return;let t=this.#ld,o=Math.min(this.#lc+this.#lu,t.length);this.createCustomBorders(t.slice(this.#lc,o)),this.#lc=o,this.hot.render(),this.#lc>=t.length?this.#lq():this.#lU(e)}#lj(){if(null===this.#ld)return;let e=this.#ld;for(;this.#lc<e.length;){let t=Math.min(this.#lc+this.#lu,e.length);this.createCustomBorders(e.slice(this.#lc,t)),this.#lc=t}this.#lq()}#lq(){this.#lg+=1,this.#ld=null,this.#lc=0,this.#ll=null,this.hot.runHooks("afterCustomBordersUpdate")}#lT(){null!==this.#ld&&(this.#lg+=1,this.#ld=null,this.#lc=0,this.#ll=null)}checkSettingsCohesion(e){let t=e.some(e=>eP(e.left)||eP(e.right)),o=e.some(e=>eP(e.start)||eP(e.end));t&&o&&to('The "left"/"right" and "start"/"end" options should not be used together. Please use only the option "start"/"end".'),this.hot.isRtl()&&t&&to('The "left"/"right" properties are not supported for RTL. Please use option "start"/"end".'),this.#lY(e)}#lY(e){e.forEach(e=>{Object.keys(e).forEach(t=>{let o=e[t];if(!fi(o))return;let{style:n}=o;eP(n)&&"string"==typeof n&&!fs.includes(n)?(tZ(`The "${n}" border style is not supported. Please use one of the following styles: ${fs.join(", ")}.
|
|
265
265
|
The border style will be ignored.`),delete o.style):eP(n)&&"solid"===n&&delete o.style})})}#lK(e,t){let o=[];J(this.savedBorders,n=>{let i=t(n[e]);-1!==i&&(n[e]=i,n.id=m2(n.row,n.col),o.push(n))}),this.savedBorders.length=0,J(o,e=>this.savedBorders.push(e)),this.#lX(!1)}#lZ(e,t,o){J(this.savedBorders,(n,i)=>{let r=t[i];if("number"!=typeof r)return;let l=o(r);"number"==typeof l&&(n[e]=l,n.id=m2(n.row,n.col))}),this.#lX()}#lX(){let e=!(arguments.length>0)||void 0===arguments[0]||arguments[0];this.#lL(),this.#lr=!0,this.#lB(),e&&this.hot.render()}#l_(e){let t=this.#ln.get(e);if(!t)return;let{customSelections:o}=this.hot.selection.highlight,n=o.indexOf(t);n>-1&&o.splice(n,1),t.destroy(),this.#ln.delete(e)}#rJ(e){if(!this.hot.getSettings()[fn]||"object"!=typeof e||null===e)return;let{items:t}=e;if(Array.isArray(t)){var o,n,i,r,l;let e,s;t.push({name:"---------"},{key:"borders",name(){return this.getTranslatedPhrase(ab)},disabled(){let e=this.getSelectedRangeActive();return!!(!e||e.isSingleHeader())||this.selection.isSelectedByCorner()},submenu:{items:[(o=this,{key:"borders:top",name(){let e=this.getTranslatedPhrase(aC);return fe(this,"top")&&(e=ft(e)),e},callback(e,t){let n=fe(this,"top");o.prepareBorder(t,"top",n)}}),(n=this,e=n.hot.isRtl()?"start":"end",{key:"borders:right",name(){let t=this.getTranslatedPhrase(aw);return fe(this,e)&&(t=ft(t)),t},callback(t,o){let i=fe(this,e);n.prepareBorder(o,e,i)}}),(i=this,{key:"borders:bottom",name(){let e=this.getTranslatedPhrase(ay);return fe(this,"bottom")&&(e=ft(e)),e},callback(e,t){let o=fe(this,"bottom");i.prepareBorder(t,"bottom",o)}}),(r=this,s=r.hot.isRtl()?"end":"start",{key:"borders:left",name(){let e=this.getTranslatedPhrase(av);return fe(this,s)&&(e=ft(e)),e},callback(e,t){let o=fe(this,s);r.prepareBorder(t,s,o)}}),(l=this,{key:"borders:no_borders",name(){return this.getTranslatedPhrase(aS)},callback(e,t){l.prepareBorder(t,"noBorders",void 0)},disabled(){return!fe(this)}})]}})}}#lf(){this.changeBorderSettings(!1),this.savedBorders.length>0&&this.hot.addHookOnce("afterInit",()=>this.hot.render())}#i6=()=>{this.#lF()};#iF=(e,t,o,n)=>{!this.#la&&"borders"===o&&fi(n)&&(this.prepareBorderFromCustomAdded(e,t,m5(ts(n)),void 0),this.#lQ())};#lQ(){this.#lh||(this.#lh=!0,this.hot._registerMicrotask(()=>{this.#lh=!1,this.hot.render()}))}#lk=(e,t,o)=>{if(this.#la||"borders"!==o)return;let n=m2(e,t);this.spliceBorder(n),this.#lN(e,n),this.#l_(n)};#lJ(e){"auto"!==e&&this.#lj()}#lb=(e,t,o)=>{this.#lJ(o)};#lw=(e,t,o,n)=>{this.#lJ(n)};#lv=(e,t,o)=>{this.#lJ(o)};#lR=(e,t,o,n)=>{this.#lJ(n)};#lC=(e,t,o)=>{"auto"!==o&&this.#lK("row",o=>o>=e?o+t:o)};#ly=(e,t)=>{this.#lK("row",o=>m3(o,e,t))};#lS=(e,t,o)=>{"auto"!==o&&this.#lK("col",o=>o>=e?o+t:o)};#lx=(e,t)=>{this.#lK("col",o=>m3(o,e,t))};#lM=(e,t,o,n)=>{this.#lj(),this.#lp=n?this.savedBorders.map(e=>this.hot.toPhysicalRow(e.row)):null};#lH=(e,t,o,n,i)=>{let r=this.#lp;this.#lp=null,r&&i&&this.#lZ("row",r,e=>this.hot.toVisualRow(e))};#lE=(e,t,o,n)=>{this.#lj(),this.#lm=n?this.savedBorders.map(e=>this.hot.toPhysicalColumn(e.col)):null};#rt=(e,t,o,n,i)=>{let r=this.#lm;this.#lm=null,r&&i&&this.#lZ("col",r,e=>this.hot.toVisualColumn(e))};destroy(){this.#lT(),this.savedBorders=[],this.#lo.clear(),this.#li.clear(),this.#ln.clear(),this.#lp=null,this.#lm=null,super.destroy()}}let fh="dataProvider",fd={rowId:void 0,fetchRows:void 0,onRowsCreate:void 0,onRowsUpdate:void 0,onRowsRemove:void 0},fc={rowId:e=>"string"==typeof e||ns(e),fetchRows:e=>ns(e),onRowsCreate:e=>ns(e),onRowsUpdate:e=>ns(e),onRowsRemove:e=>ns(e)},fu=Object.freeze({page:1,pageSize:10,sort:null,filters:null}),fg=new Set(["edit",void 0,"CopyPaste.paste","CopyPaste.cut","Autofill.fill","ContextMenu.clearColumn","DataProvider.revert"]),fp="DataProvider: cannot send row update because `rowId` resolves to null or undefined for that row.";function fm(e,t,o){if(!1===e.runHooks("beforeRowsMutation",t,o))return!1}function ff(e,t,o){e.runHooks("afterRowsMutation",t,o)}function fb(e,t,o,n){e.runHooks("afterRowsMutationError",t,o,n)}function fC(e,t,o){var n=e.getSourceDataAtRow(e.toPhysicalRow(o));if(null!=t){if(ns(t))return t(n);if("string"==typeof t)return tm(n,t)}}function fw(e,t,o){for(let n=0;n<e.countRows();n+=1)if(fC(e,t,n)===o)return n;return -1}function fy(e,t,o){let n=Object.entries(o);return 0===n.length?Promise.resolve(!0):new Promise(o=>{let i=n.length,r=!0,l=()=>{0==(i-=1)&&o(r)};n.forEach(o=>{let[n,i]=o,s=e.propToCol(n);if(void 0===s||s<0)return void l();let a=e.getCellMeta(t,s);e.getCellValidator(a)?e.validateCell(i,a,e=>{!1===e&&!1===a.allowInvalid&&(r=!1),l()},"DataProvider.updateRows"):l()})})}async function fv(e,t,o){let n=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{},i=t.getOnRowsUpdate();if(!ns(i))return;let r={rows:o},{revertOptimistic:l}=n,{onRequestFailed:s}=t;try{await i(o)}catch(o){fb(e,"update",o,r),t.logError("Row update failed:",o),ns(l)&&l(),e.render(),s?.("update",o);return}try{ff(e,"update",r),await t.fetchData()}catch(o){fb(e,"update",o,r),t.logError("Data reload failed:",o),ns(l)&&l(),e.render()}}async function fS(e,t,o){let{getRowIdOption:n,commitRowsUpdate:i}=t,r={rows:o};if(!1===fm(e,"update",r))return;let l=n();if((await Promise.all(o.map(async t=>{let o=fw(e,l,t.id);return o<0||fy(e,o,t.changes??{})}))).some(e=>!e)){fb(e,"update",Error("Row update validation failed"),r),t3("Row update failed: validation failed for one or more cells");return}await i(o)}async function fR(e,t,o){let{getRowIdOption:n,commitRowsUpdate:i}=t,r=new Map;o.forEach(e=>{let t=e[0];r.has(t)||r.set(t,[]),r.get(t).push(e)});let l=[...r.keys()].sort((e,t)=>e-t),s=n(),a=l.map(t=>{var o;let n,i,l,a,h,{changesObj:d,rowData:c}=(i=(o=r.get(t))[0][0],a=(l=e.getSourceDataAtRow(e.toPhysicalRow(i)))&&"object"==typeof l&&!Array.isArray(l),h={},o.forEach(t=>{let[,o,,n]=t,i="number"==typeof o?o:e.propToCol(o);h[a?e.colToProp(i):i]=n}),Array.isArray(l)?(n=[...l],o.forEach(t=>{let[,o,,i]=t;n["number"==typeof o?o:e.propToCol(o)]=i})):n=a?{...l,...h}:{...h},{changesObj:h,rowData:n});return{id:fC(e,s,t),changes:d,rowData:c}}),h={rows:a},d=()=>{o?.length&&e.batch(()=>{o.forEach(t=>{let[o,n,i]=t;e.setDataAtRowProp(o,n,i,"DataProvider.revert")})})};if(a.some(e=>null==e.id)){d(),fb(e,"update",Error(fp),h),t3("Row update failed:",fp),e.render();return}if(!1===fm(e,"update",h))return void d();if((await Promise.all(l.map((t,o)=>fy(e,t,a[o].changes)))).some(e=>!e)){d(),fb(e,"update",Error("Row update validation failed"),h),t3("Row update failed: validation failed for one or more cells"),e.render();return}await i(a,{revertOptimistic:d})}function fx(e,t){if(!Array.isArray(t)||0===t.length)return null;let o=[];for(let n=0;n<t.length;n++){let i=t[n],r=e.toVisualColumn(i.column),l=e.colToProp(r);null!=l&&o.push({prop:String(l),operation:i.operation,conditions:i.conditions.map(e=>({name:e.name,args:Array.isArray(e.args)?[...e.args]:[]}))})}return 0===o.length?null:o}let fM="pagination",fH="columnSorting";function fE(e,t){if("string"==typeof t){let o=t.trim();o&&e.push(o)}}function fk(e,t){!e||"object"!=typeof e||Array.isArray(e)||(fE(t,e.message),fE(t,e.error),"string"==typeof e.detail&&fE(t,e.detail))}po("dataProvider",["manualRowMove","manualColumnMove","trimRows","multiColumnSorting"]);class fT extends ps{static get PLUGIN_KEY(){return fh}static get PLUGIN_PRIORITY(){return 950}static get SETTING_KEYS(){return[fh]}static get DEFAULT_SETTINGS(){return fd}static get SETTINGS_VALIDATORS(){return fc}#l0={...fu};#l1=null;#l2={tail:Promise.resolve()};constructor(e){super(e),this.addHook("hasExternalDataSource",this.#l3)}isEnabled(){return!!this.hot.getSettings()[fh]}enablePlugin(){this.enabled||(this.#l6(),this.addHook("hasExternalDataSource",this.#l3),this.addHook("afterInit",this.#lf),this.addHook("modifyRowHeader",this.#l4),this.addHook("beforeColumnSort",this.#l5),this.addHook("beforeUndoStackChange",this.#l7),this.addHook("afterChange",this.#l9),this.addHook("beforeAlter",this.#l8),this.addHook("afterPageChange",this.#se),this.addHook("afterPageSizeChange",this.#st),this.addHook("beforeFilter",this.#so),super.enablePlugin())}updatePlugin(){this.disablePlugin(),this.enablePlugin(),this.hot.view&&this.#sn(),super.updatePlugin()}disablePlugin(){this.#si(),this.#l0={...fu},super.disablePlugin()}getQueryParameters(){return this.#sr(this.#l0)}getRowId(e){return fC(this.hot,this.#sl(),e)}async fetchData(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=this.#ss();if(!ns(t))return this.hot.render(),null;let o=this.#sa(e),n=this.#sh(),{signal:i}=n;if(!1===this.hot.runHooks("beforeDataProviderFetch",o))return this.#l1=null,this.hot.render(),null;let r=this.#sr(o);try{var l,s,a,h;let n,d=await t(r,{signal:i});if(i.aborted)return this.#sd(o,void 0),null;let c=Array.isArray(d?.rows)?d.rows:[],u="number"==typeof d?.totalRows&&d.totalRows>=0?d.totalRows:c.length,g=this.#sr(o),p=(l=g.page,s=g.pageSize,Math.max(1,Math.min(l,Math.max(1,Math.ceil(u/("number"==typeof s&&s>=1?s:10))))));if(p!==g.page)return this.fetchData({...e,page:p,skipLoading:e.skipLoading});this.#l0=g,this.hot.loadData(c,fh);let m=(a=this.hot,h=g.sort??null,(n=function(e,t){if(null==e||"object"!=typeof e||"string"!=typeof e.prop)return null;let o=e.order??e.sortOrder;if("asc"!==o&&"desc"!==o||"function"!=typeof t)return null;let n=t(e.prop);return"number"!=typeof n?null:{column:n,sortOrder:o}}(h,e=>a.propToCol(e)))&&"object"==typeof n&&"column"in n?n:[]),f=function(e,t){if(null==t||!Array.isArray(t)||0===t.length)return[];let o=[];for(let n=0;n<t.length;n++){let i=t[n],r=e.propToCol(i.prop);if(null==r||r<0)continue;let l=e.toPhysicalColumn(r);o.push({column:l,operation:i.operation,conditions:(i.conditions||[]).map(e=>({name:e.name??"",args:Array.isArray(e.args)?[...e.args]:[]}))})}return o}(this.hot,g.filters??null);return this.hot.runHooks("afterDataProviderFetch",{...d,rows:c,totalRows:u,queryParameters:g,columnSortConfig:m,filtersConditionsStack:f}),this.hot.render(),{rows:c,totalRows:u}}catch(e){if(i.aborted||e instanceof Error&&"AbortError"===e.name)return this.#sd(o,e),null;throw this.hot.runHooks("afterDataProviderFetchError",e,this.#sr(o)),this.#sc("fetch",e),e}finally{this.#l1===n&&(this.#l1=null)}}async createRows(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=this.#su();if(!ns(t))return;let o={position:e.position??"below",referenceRowId:e.referenceRowId,rowsAmount:e.rowsAmount??1};return this.#sg("create",{rowsCreate:o},()=>Promise.resolve(t(o)),async()=>{await this.fetchData({skipLoading:!0})})}async removeRows(e){let t=this.#sp();if(!ns(t))return;let o=Array.isArray(e)?e:[e];return o.forEach(e=>{null==e&&to("DataProvider: `removeRows` requires every id to be non-null.")}),this.#sg("remove",{rowsRemove:o},()=>t(o),async()=>{let e=this.#l0.page,t=this.hot.countRows();if(o.length>=t&&t>=1&&e>1)return void await this.fetchData({page:e-1,skipLoading:!0});let n=await this.fetchData({skipLoading:!0});n?.rows.length===0&&e>1&&await this.fetchData({page:e-1,skipLoading:!0})})}async updateRows(e){var t,o;if(!ns(this.#sm())||!Array.isArray(e)||0===e.length)return;e.forEach(e=>{null==e.id&&to("DataProvider: `updateRows` requires every entry to include a non-null `id`.")});let n=(t=this.hot,o=this.#sl(),e.map(e=>{let n,i=fw(t,o,e.id);return n=i>=0?t.getSourceDataAtRow(t.toPhysicalRow(i)):void 0!==e.rowData?e.rowData:{},{id:e.id,changes:e.changes,rowData:n&&"object"==typeof n?n:{}}}));return this.#sf(()=>fS(this.hot,{getRowIdOption:()=>this.#sl(),commitRowsUpdate:e=>this.#sb(e)},n))}#sC(){let e=this.hot.getSettings()[fh];return e&&"object"==typeof e?e:void 0}#sl(){let e=this.#sC();return e?e.rowId:void 0}#ss(){let e=this.#sC();return e&&ns(e.fetchRows)?e.fetchRows:void 0}#su(){let e=this.#sC();return e&&ns(e.onRowsCreate)?e.onRowsCreate:void 0}#sm(){let e=this.#sC();return e&&ns(e.onRowsUpdate)?e.onRowsUpdate:void 0}#sp(){let e=this.#sC();return e&&ns(e.onRowsRemove)?e.onRowsRemove:void 0}#sr(e){var t;return{page:e.page,pageSize:e.pageSize,sort:null===e.sort?null:{...e.sort},filters:null===(t=e.filters)?null:t.map(e=>({prop:e.prop,operation:e.operation,conditions:(e.conditions||[]).map(e=>({name:e.name,args:Array.isArray(e.args)?[...e.args]:[]}))}))}}#l6(){var e,t,o,n;e=this.hot,t=this.#l0,function(e,t){if(!e?.enabled)return;let o="function"==typeof e.getCurrentPageSize?e.getCurrentPageSize():void 0,n=e.getSetting("pageSize"),i=e.getSetting("initialPage"),r="function"==typeof e.getCurrentPage?e.getCurrentPage():void 0;"number"==typeof o?t.pageSize=o:"number"==typeof n&&(t.pageSize=n),"number"==typeof r&&r>=1?t.page=r:"number"==typeof i&&i>=1&&(t.page=i)}(e.getPlugin(fM),t),o=this.hot,n=this.#l0,function(e,t,o){if(!e?.enabled||"function"!=typeof o)return;let n=e.getSortConfig(),i=Array.isArray(n)?n[0]:n;i&&"number"==typeof i.column?t.sort={prop:o(i.column),order:i.sortOrder}:t.sort=null}(o.getPlugin(fH),n,e=>String(o.colToProp(e))),function(e,t,o){if(!ns(o()))return;let n=e.getPlugin("filters");n&&n.enabled&&(t.filters=fx(e,n.exportConditions())??null)}(this.hot,this.#l0,()=>this.#ss())}#sw(){if(!this.#l1)return;let e=Error("DataProvider fetch superseded by a newer request");e.name="AbortError",this.#l1.abort(e)}#sa(e){var t;let o={...this.#l0,...e};return t=this.hot,o.sort=function(e,t){if(null==e||"object"!=typeof e)return null;if("number"==typeof e.column&&"function"==typeof t)return{prop:t(e.column),order:e.sortOrder};let o=e.order??e.sortOrder;return"string"==typeof e.prop&&("asc"===o||"desc"===o)?{prop:e.prop,order:o}:null}(o.sort,e=>String(t.colToProp(e))),"number"!=typeof o.page||Number.isNaN(o.page)||(o.page=Math.max(1,o.page)),o}#sh(){this.#sw();let e=new AbortController;return this.#l1=e,e}#sd(e,t){let o=this.#sr(e);this.hot.runHooks("afterDataProviderFetchAbort",o,t)}#si(){this.#l1?.abort(),this.#l1=null}#sf(e){var t;let o;return t=this.#l2,o=t.tail.then(e),t.tail=o.catch(()=>{}),o}#sc(e,t){let o=this.hot.getPlugin("notification");if(!o?.enabled)return;let n=this.hot.getTranslatedPhrase({fetch:hI,create:hA,update:h_,remove:hO}[e]??hP),i=function(e){let t=[];if(null==e)return"Unknown error";if("string"==typeof e)return e.trim()||"Unknown error";if("object"!=typeof e)return String(e);let o=e.response,n=o?.data??e.data??e.body;if(null!=n)if("string"==typeof n)try{fk(JSON.parse(n),t)}catch{fE(t,n)}else fk(n,t);"string"==typeof e.error&&fE(t,e.error),"string"==typeof e.message&&fE(t,e.message);let i=t.find(e=>!("string"==typeof e&&/^\d{3}$/.test(e.trim())));return i||(t.length>0?t[0]:String(e))}(t),r="",l={variant:"error",title:n,message:i};"fetch"===e&&(l.duration=0,l.actions=[{label:this.hot.getTranslatedPhrase(hD),type:"primary",callback:()=>{r&&o.hide(r),this.#sn()}}]),r=o.showMessage(l)}#sb(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return fv(this.hot,{getOnRowsUpdate:()=>this.#sm(),fetchData:()=>this.fetchData({skipLoading:!0}),logError:t3,onRequestFailed:(e,t)=>this.#sc(e,t)},e,t)}#sg(e,t,o,n){return function(e,t,o,n,i){let{enqueueMutation:r,runBeforeRowsMutation:l,runAfterRowsMutation:s,runAfterRowsMutationError:a,logError:h,onRequestFailed:d}=e;return r(async()=>{if(!1===l(t,o))return;let e="create"===t?"Row create":"Row remove";try{await n()}catch(n){a(t,n,o),h(`${e} failed:`,n),d?.(t,n);return}try{s(t,o),await i()}catch(e){a(t,e,o),h("Data reload failed:",e)}})}({enqueueMutation:e=>this.#sf(e),runBeforeRowsMutation:(e,t)=>fm(this.hot,e,t),runAfterRowsMutation:(e,t)=>ff(this.hot,e,t),runAfterRowsMutationError:(e,t,o)=>fb(this.hot,e,t,o),logError:t3,onRequestFailed:(e,t)=>this.#sc(e,t)},e,t,o,n)}#sn(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return this.fetchData(e).catch(e=>(t3("Data fetch failed:",e),null))}#l3=()=>{var e;return!(!(e=this.hot.getSettings().dataProvider)||"object"!=typeof e||Array.isArray(e))&&Object.keys(fc).every(t=>fc[t](e[t]))};#lf=()=>{this.#sn()};#se=(e,t)=>{!function(e,t,o){let{hot:n,getQueryPage:i,goToPage:r}=e,l=n.getPlugin(fM);l?.enabled&&o!==i()&&r(o).catch(()=>{let e=n.getPlugin(fM);e?.enabled&&e.revertPageTo(t)})}({hot:this.hot,getQueryPage:()=>this.#l0.page,goToPage:async e=>{await this.fetchData({page:e})}},e,t)};#st=(e,t)=>{!function(e,t,o){let{hot:n,getQueryPage:i,getQueryPageSize:r,setPageSize:l}=e,s=n.getPlugin(fM);if(!s?.enabled)return;let a="auto"===o||"number"!=typeof o||!Number.isFinite(o)||o<1?10:o;(a!==r()||1!==i())&&l(a).catch(()=>{let e=n.getPlugin(fM);e?.enabled&&e.revertPageSizeTo(t)})}({hot:this.hot,getQueryPage:()=>this.#l0.page,getQueryPageSize:()=>this.#l0.pageSize,setPageSize:async e=>{await this.fetchData({pageSize:e,page:1})}},e,t)};#so=e=>(function(e,t){let{hot:o,hasFetchFn:n,applyFiltersAndRefetch:i}=e;if(n())return i(fx(o,t)),!1})({hot:this.hot,hasFetchFn:()=>ns(this.#ss()),applyFiltersAndRefetch:e=>{this.#l0.filters=e??null,this.#l0.page=1,this.#sn()}},e);#l5=(e,t,o)=>(function(e,t,o){let{hot:n,hasFetchFn:i,applyQueryParametersFromPlugins:r,fetchData:l}=e;if(i()&&o)return n.getPlugin(fH).setSortConfig(t),r(),l({skipLoading:!0}),!1})({hot:this.hot,hasFetchFn:()=>ns(this.#ss()),applyQueryParametersFromPlugins:()=>this.#l6(),fetchData:e=>this.#sn(e)},t,o);#l4=e=>(function(e,t){let o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:10,{page:n,pageSize:i}=e;return(n-1)*("number"==typeof i&&i>=1?i:o)+t})(this.#l0,e);#l7=(e,t)=>{if(ns(this.#sm())&&fg.has(t))return!1};#l9=(e,t)=>{var o;if(o=ns(this.#sm()),!(o&&e?.length&&"DataProvider.revert"!==t&&fg.has(t))||0)return;let n=function(e,t){if(!t)return[];let o=t.filter(e=>e[2]!==e[3]);return 0===o.length?[]:o.filter(t=>{let o=e.propToCol(t[1]);return void 0!==o&&!(o<0)&&!1!==e.getCellMetaTransient(t[0],o).valid})}(this.hot,e);0!==n.length&&this.#sf(()=>fR(this.hot,{getRowIdOption:()=>this.#sl(),commitRowsUpdate:(e,t)=>this.#sb(e,t)},n))};#l8=(e,t,o)=>{var n;return n={hot:this.hot,getOnRowsCreate:()=>this.#su(),getOnRowsRemove:()=>this.#sp(),getRowIdOption:()=>this.#sl(),getRowId:e=>this.getRowId(e),createRows:e=>this.createRows(e),removeRows:e=>this.removeRows(e)},"insert_row_above"===e||"insert_row_below"===e?function(e,t,o,n){let{hot:i,getOnRowsCreate:r,getRowId:l,createRows:s}=e;if(!ns(r()))return;let a=i.countSourceRows();if(i.getSettings().maxRows===a)return;let h="insert_row_below"===t?"below":"above",d=o??("below"===h?a:0);return s({position:h,referenceRowId:"number"==typeof d&&d>=0?l(d):void 0,rowsAmount:"number"==typeof n&&n>=1?n:1}),!1}(n,e,t,o):"remove_row"===e?function(e,t,o){let{hot:n,getOnRowsRemove:i,getRowIdOption:r,removeRows:l}=e;if(!ns(i()))return;let s=function(e,t,o,n){let i=[],r=()=>e.countRows(),l=(o,n)=>{for(let l=0;l<n;l+=1){let n=o+l;if(n>=0&&n<r()){let o=fC(e,t,n);null==o&&to(`DataProvider: cannot remove row at visual index ${n} because \`rowId\` resolves to null or undefined.`),i.push(o)}}};if(Array.isArray(o))o.forEach(e=>{let[t,o]=e;l(null==t?Math.max(0,r()-(o??1)):Math.max(0,t),o??1)});else{let e="number"==typeof n&&n>=1?n:1;l(null==o?Math.max(0,r()-e):Math.max(0,o),e)}return i}(n,r(),t,o);if(0!==s.length)return l(s),!1}(n,t,o):void 0};destroy(){this.#si(),super.destroy()}}class fI{#sy=null;#sv=0;#sS=null;#sR;constructor(e){this.#sR=e}get isActive(){return null!==this.#sy}configure(e){this.#sS=e}update(e){this.#sv=e,0===e?this.stop():this.isActive||this.#sx()}stop(){null!==this.#sy&&(clearTimeout(this.#sy),this.#sy=null),this.#sv=0}#sx=()=>{if(this.runLocalHooks("tick",this.#sv),0===this.#sv)return;let e=function(e,t,o){let n=arguments.length>3&&void 0!==arguments[3]?arguments[3]:200,i=Math.min(Math.abs(e),o),r=t.max-t.min;return Math.round(t.max-Math.log(1+i/o*n)/Math.log(1+n)*r)}(this.#sv,this.#sS.intervalRange,this.#sS.rampDistance);this.#sy=this.#sR(this.#sx,e)}}th(fI,sb);class fA{#sM;#sH;constructor(e){this.#sM=new fI(e),this.#sH=new fI(e),this.#sM.addLocalHook("tick",e=>this.runLocalHooks("scrollHorizontal",e)),this.#sH.addLocalHook("tick",e=>this.runLocalHooks("scrollVertical",e))}get isActive(){return this.#sM.isActive||this.#sH.isActive}get isHorizontalActive(){return this.#sM.isActive}get isVerticalActive(){return this.#sH.isActive}configure(e){this.#sM.configure(e),this.#sH.configure(e)}update(e){let{x:t,y:o}=e;this.#sM.update(t),this.#sH.update(o)}stop(){this.#sM.stop(),this.#sH.stop()}stopHorizontal(){this.#sM.stop()}stopVertical(){this.#sH.stop()}destroy(){this.stop(),this.#sM=null,this.#sH=null}}th(fA,sb);let f_="dragToScroll";class fO extends ps{static get PLUGIN_KEY(){return f_}static get PLUGIN_PRIORITY(){return 100}static get DEFAULT_SETTINGS(){return{interval:{min:20,max:500},rampDistance:120}}boundaries=null;callback=null;listening=!1;#sE=new fA((e,t)=>this.hot._registerTimeout(e,t)).addLocalHook("scrollHorizontal",e=>this.#sk(e)).addLocalHook("scrollVertical",e=>this.#sT(e));#sI=!1;#sA=null;#s_=null;#sO=null;#sP=null;#sD=null;isEnabled(){return!!this.hot.getSettings()[f_]}enablePlugin(){this.enabled||(this.#sE.configure({intervalRange:this.getSetting("interval"),rampDistance:this.getSetting("rampDistance")}),this.addHook("beforeOnCellMouseDown",(e,t,o,n)=>{this.#sN("cell",e,"object"==typeof n&&null!==n?n:null)}),this.addHook("afterOnCellCornerMouseDown",e=>this.#sN("corner",e)),this.addHook("afterOnSelectionEdgeMouseDown",this.#sB),this.addHook("afterOnSelectionHandleMouseDown",this.#sL),this.addHook("afterSelection",this.#r0),this.addHook("afterScroll",this.#sV),this.registerEvents(),super.enablePlugin())}updatePlugin(){this.disablePlugin(),this.enablePlugin(),super.updatePlugin()}disablePlugin(){this.#sE.stop(),this.unregisterEvents(),super.disablePlugin()}setBoundaries(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{left:0,right:this.hot.rootWindow.innerWidth,top:0,bottom:this.hot.rootWindow.innerHeight};this.boundaries=e}setCallback(e){this.callback=e}check(e,t){let o=0,n=0,{boundaries:i}=this;i&&(t<i.top?n=t-i.top:t>i.bottom&&(n=t-i.bottom),e<i.left?o=e-i.left:e>i.right&&(o=e-i.right)),this.#sI=0!==n||0!==o,this.callback&&this.callback(o,n)}listen(){this.listening=!0}unlisten(){this.listening=!1,this.#sA=null,this.#sD=null,this.#s_=null,this.#sO=null,this.#sI=!1,this.#sP=null,this.#sE.stop()}isListening(){return this.listening}registerEvents(){let{rootWindow:e}=this.hot,t=e;for(;t;)this.eventManager.addEventListener(t.document,"contextmenu",()=>this.unlisten()),this.eventManager.addEventListener(t.document,"mouseup",()=>this.unlisten()),this.eventManager.addEventListener(t.document,"keydown",e=>{"key"in e&&"Escape"===e.key&&this.unlisten()}),this.eventManager.addEventListener(t.document,"mousemove",e=>{this.#sF(e)}),this.eventManager.addEventListener(t.document,"touchstart",this.#sz),this.eventManager.addEventListener(t.document,"touchmove",this.#sW),this.eventManager.addEventListener(t.document,"touchend",this.#s$),this.eventManager.addEventListener(t.document,"touchcancel",this.#s$),t=t9(t)}unregisterEvents(){this.eventManager.clear()}#sN(e,t){let o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null;if(nM(t)||"cell"===e&&"single"===this.hot.getSettings().selectionMode)return;this.#sA=e,this.#sP=o;let n=this.hot.view._wt.wtOverlays.topOverlay.mainTableScrollableElement;if(n===this.hot.rootWindow)this.setBoundaries();else{let e=n.getBoundingClientRect();this.setBoundaries({left:e.left+this.hot.view.getRowHeaderWidth(),right:e.right,top:e.top+this.hot.view.getColumnHeaderHeight(),bottom:e.bottom})}this.setCallback((e,t)=>{let{selection:o}=this.hot,n=o.isSelectedByRowHeader()?0:e,i=o.isSelectedByColumnHeader()?0:t;this.#sE.update({x:n,y:i})}),this.listen()}#sB=e=>{this.hot.getPlugin("moveCells")?.isDragActive()===!0&&this.#sN("move",e)};#sL=e=>{this.hot.getPlugin("selectionHandles")?.isDragActive()===!0&&this.#sN("handle",e)};#sz=e=>{if(null!==this.#sD)return;let t=nI(e);null===t||this.hot.getPlugin("multipleSelectionHandles")?.isDraggedBy(t.identifier)===!0&&(this.#sD=t.identifier,this.#sN("handle",e))};#sW=e=>{if(!this.isListening()||null===this.#sD)return;let t=nA(e,this.#sD);null!==t&&this.#sU(t.clientX,t.clientY)};#s$=e=>{null===this.#sD||null===nA(e,this.#sD)&&this.unlisten()};#sk(e){let t=(this.hot.isRtl()?e<0:e>0)?this.hot.getLastFullyVisibleColumn()+1:this.hot.getFirstPartiallyVisibleColumn()-1;this.hot.scrollViewportTo({col:t},()=>{})||this.#sE.stopHorizontal()}#sT(e){let t=this.hot.getFirstFullyVisibleRow(),o=this.hot.getLastFullyVisibleRow();this.hot.scrollViewportTo({row:e>0?o+1:t-1},()=>{})||this.#sE.stopVertical()}#r0=(e,t,o,n,i)=>{this.listening&&this.#sI&&(i.value=!0)};#sF(e){this.isListening()&&this.#sU(e.clientX,e.clientY)}#sU(e,t){this.#s_=e,this.#sO=t,this.check(e,t)}#sV=()=>{if("cell"!==this.#sA||!this.#sI||null===this.#s_||null===this.#sO||"single"===this.hot.getSettings().selectionMode||this.#sP?.row||this.#sP?.column)return;let{selection:e,view:t}=this.hot,o=pf(this.hot,this.#s_,this.#sO);if(!o)return;let n=o.row??0,i=o.col??0,r=t.getFirstFullyVisibleRow()??0,l=t.getLastFullyVisibleRow()??0,s=t.getFirstFullyVisibleColumn()??0,a=t.getLastFullyVisibleColumn()??0;n>l?n=l:n<r&&(n=r),i>a?i=a:i<s&&(i=s),e.isSelectedByRowHeader()&&(i=this.hot.countCols()-1),e.isSelectedByColumnHeader()&&(n=this.hot.countRows()-1);let h=this.hot._createCellCoords(n,i),d=this.hot.getSelectedRangeLast();d&&d.to.row===h.row&&d.to.col===h.col||e.setRangeEnd(h)};destroy(){this.#sE.destroy(),super.destroy()}}nL.getSingleton().register("afterDropdownMenuDefaultOptions"),nL.getSingleton().register("beforeDropdownMenuShow"),nL.getSingleton().register("afterDropdownMenuShow"),nL.getSingleton().register("afterDropdownMenuHide"),nL.getSingleton().register("afterDropdownMenuExecute");let fP="dropdownMenu",fD="changeType",fN="has-header-button";class fB extends ps{static get PLUGIN_KEY(){return fP}static get PLUGIN_PRIORITY(){return 230}static get PLUGIN_DEPS(){return["plugin:AutoColumnSize"]}static get DEFAULT_ITEMS(){return[mv,mS,ml,mM,ml,my,ml,mR,ml,mw]}commandExecutor=new mC(this.hot);itemsFactory=null;menu=null;#sG=!1;constructor(e){super(e),this.hot.addHook("afterGetColHeader",this.#i9)}isEnabled(){return!!this.hot.getSettings()[fP]}enablePlugin(){if(this.enabled)return;this.itemsFactory=new mP(this.hot,fB.DEFAULT_ITEMS),this.addHook("beforeOnCellMouseDown",this.#i8),this.addHook("beforeViewportScrollHorizontally",this.#sq),this.addHook("beforeDialogShow",()=>this.close());let e=this.hot.getSettings()[fP],t={items:this.itemsFactory.getItems(e)};this.registerEvents(),"function"==typeof e.callback&&this.commandExecutor.setCommonCallback(e.callback),this.registerShortcuts(),super.enablePlugin(),this.callOnPluginsReady(()=>{var o=this;this.hot.runHooks("afterDropdownMenuDefaultOptions",t),this.itemsFactory.setPredefinedItems(t.items);let n=this.itemsFactory.getItems(e);this.menu&&this.menu.destroy(),this.menu=new mU(this.hot,{className:"htDropdownMenu",keepInViewport:!0,container:("object"==typeof e?e.uiContainer:null)||this.hot.rootPortalElement}),this.hot.runHooks("beforeDropdownMenuSetItems",n),this.menu.setMenuItems(n),this.menu.addLocalHook("afterOpen",()=>this.#rO()),this.menu.addLocalHook("afterSubmenuOpen",e=>this.#sj(e)),this.menu.addLocalHook("afterClose",()=>this.#rP()),this.menu.addLocalHook("executeCommand",function(e){for(var t=arguments.length,n=Array(t>1?t-1:0),i=1;i<t;i++)n[i-1]=arguments[i];return o.executeCommand(e,...n)}),J(n,e=>{this.commandExecutor.registerCommand(e.key,e)})})}updatePlugin(){this.disablePlugin(),this.enablePlugin(),super.updatePlugin()}disablePlugin(){this.close(),this.menu&&this.menu.destroy(),this.unregisterShortcuts(),super.disablePlugin()}registerShortcuts(){let e=this.hot.getShortcutManager().getContext("grid"),t=()=>{let e=this.hot.getSelectedRangeActive();if(!e)return;let{highlight:t}=e,o=t.isHeader()?this.hot.getCell(t.row??0,t.col??0,!0):null,n=t.isHeader()&&(t.col??-1)>=0&&!!o&&ol(o),i=t.isHeader()&&(t.col??-1)>=0&&o&&oh(o,"hiddenHeader");if((n||i||t.isCell())&&(t.col??-1)>=0){let e=n||i?t.row??-1:-1;this.hot.selectColumns(t.col??0,t.col??0,e);let o=this.hot.getSelectedRangeActive();if(!o)return;let{from:r}=o,l=mc(this.menu?.container??this.hot.rootElement,this.hot.rootDocument),s=this.hot.getCell(e,r.col??0,!0)?.querySelector(`.${fD}`);if(!s)for(let o=-this.hot.view.getColumnHeadersCount();o<=-1;o++){let n=this.hot.getCell(o,r.col??0,!0)?.querySelector(`.${fD}`);if(n){s=n,e=o,this.hot.selectColumns(t.col??0,t.col??0,e);break}}if(!s&&i)for(let t=(r.col??0)-1;t>=0;t--){let o=this.hot.getCell(e,t,!0);if(!o||oh(o,"hiddenHeader"))continue;let n=o?.querySelector(`.${fD}`);n&&(s=n,this.hot.selectColumns(t,t,e));break}if(!s||!ne(s))return;let a=this.#sY(s),h=s.closest("th"),d=h&&Number.parseInt(h.getAttribute("rowspan")??"1",10)>1,c=d?h.getBoundingClientRect().top+h.clientHeight:a.bottom,u=h?this.hot.getCoords(h):null,g=u?.row??e,p=u?.col??null;this.open({left:a.left+l.left,top:c+l.top},{left:a.width,right:0,above:0,below:d?-1:3},null===p?void 0:()=>{let e=this.hot.getCell(g,p,!0),t=e?.querySelector(`.${fD}`);return t?t.getBoundingClientRect():null}),this.menu?.getNavigator()?.toFirstItem()}};e?.addShortcuts([{keys:[["Shift","Alt","ArrowDown"],["Control/Meta","Enter"]],callback:t,runOnlyIf:()=>{let e=this.hot.getSelectedRangeActive()?.highlight,t=e?.isHeader()?this.hot.getCell(e.row??0,e.col??0,!0):null,o=e?.isHeader()&&(e.col??-1)>=0&&t&&oh(t,"hiddenHeader");return!!(e&&!this.menu?.isOpened()&&e.isHeader()&&(this.hot.selection.isCellVisible(e)||o))},captureCtrl:!0,group:fP},{keys:[["Shift","Alt","ArrowDown"]],callback:t,runOnlyIf:()=>{let e=this.hot.getSelectedRangeActive()?.highlight;return!!(e&&this.hot.selection.isCellVisible(e)&&e.isCell()&&!this.menu?.isOpened())},group:fP}])}unregisterShortcuts(){this.hot.getShortcutManager().getContext("grid")?.removeShortcutsByGroup(fP)}registerEvents(){this.eventManager.addEventListener(this.hot.rootElement,"click",e=>this.#sK(e))}open(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{above:0,below:0,left:0,right:0},o=arguments.length>2?arguments[2]:void 0;this.menu?.isOpened()||(this.hot.runHooks("beforeDropdownMenuShow",this),this.menu?.open(),tp(t,(e,t)=>{this.menu?.setOffset(t,e)}),this.menu?.setPosition(e,o))}close(){this.menu?.close()}executeCommand(e){for(var t=arguments.length,o=Array(t>1?t-1:0),n=1;n<t;n++)o[n-1]=arguments[n];this.commandExecutor.execute(e,...o)}setListening(){let e=!(arguments.length>0)||void 0===arguments[0]||arguments[0];if(this.menu?.isOpened()){let t=this.menu.hotMenu;e?t.listen():t.unlisten()}}#sX(e){e.getKeyboardShortcutsCtrl()?.addCustomShortcuts([{keys:[["Control/Meta","A"]],callback:()=>!1}])}#sK(e){let t=t5(e);if(oh(t,fD)){let o=mc(this.menu?.container??this.hot.rootElement,this.hot.rootDocument),n=this.#sY(t),i=t.closest("th"),r=i?this.hot.getCoords(i):null,l=r?.col??null,s=r?.row??-1;e.stopPropagation(),this.#sG=!1,this.open({left:n.left+o.left,top:n.bottom+o.top},{left:n.width,right:0,above:0,below:3},null===l?void 0:()=>{let e=this.hot.getCell(s,l,!0),t=e?.querySelector(`.${fD}`);return t?t.getBoundingClientRect():null})}}#sY(e){let t=e.getBoundingClientRect(),o=Number.parseFloat(this.hot.rootWindow.getComputedStyle(e,"::before").width);if(Number.isFinite(o)&&t.width>=o&&t.height>=o){let e=t.left+(t.width-o)/2,n=t.top+(t.height-o)/2;return{top:n,left:e,right:e+o,bottom:n+o,width:o,height:o}}return{top:t.top,left:t.left,right:t.right,bottom:t.bottom,width:t.width,height:t.height}}#i9=(e,t)=>{if(e<0||!ol(t))return;let o=t.querySelector(`.${fD}`);if(this.enabled&&o){ne(o.parentNode)&&od(o.parentNode,fN);return}if(!this.enabled){if(o){let e=o.parentNode;e?.removeChild(o),ne(e)&&oc(e,fN)}return}let n=this.hot.rootDocument.createElement("button");n.className=fD,n.type="button",n.tabIndex=-1,this.hot.getSettings().ariaTags&&(ou(n,[P(),O(" ")]),ou(t,[N("menu")])),n.onclick=function(){return!1};let i=t.firstChild;if(!i)return;let r=i.querySelector(".colHeader");r?i.insertBefore(n,r.nextSibling):i.appendChild(n),ne(i)&&od(i,fN)};#rO(){this.hot.runHooks("afterDropdownMenuShow",this),this.#sX(this.menu)}#sj(e){this.#sX(e)}#rP(){this.hot.listen(),this.hot.runHooks("afterDropdownMenuHide",this)}#sq=e=>this.#sG?null:e;#i8=e=>{oh(t5(e),fD)&&(this.#sG=!0)};destroy(){this.close(),this.menu&&this.menu.destroy(),super.destroy()}}function fL(e){return e&&"columnHeaders"in e?(t2("ExportFile.columnHeaders","The `columnHeaders` export option is deprecated and will be removed in Handsontable 19.0.0. Use `colHeaders` instead."),"colHeaders"in e)?e:{...e,colHeaders:e.columnHeaders}:e}fB.SEPARATOR={name:ml};let fV=class{options={};constructor(e){this.hot=e}setOptions(e){this.options=fL(e)}_extractDataMatrix(e){let{startRow:t,startCol:o,endRow:n,endCol:i}=this._getDataRange(),r=this.options,l=[];for(let s=t;s<=n;s++){if(!1===r.exportHiddenRows&&this._isHiddenRow(s))continue;let t=[];for(let n=o;n<=i;n++)!1===r.exportHiddenColumns&&this._isHiddenColumn(n)||t.push(e(s,n));l.push(t)}return l}getData(){return this._extractDataMatrix((e,t)=>this.hot.getDataAtCell(e,t))}getRowHeaders(){let e=[];if(this.options.rowHeaders){let{startRow:t,endRow:o}=this._getDataRange(),n=this.hot.getRowHeader();for(let i=t;i<=o;i++)!1===this.options.exportHiddenRows&&this._isHiddenRow(i)||e.push(n[i])}return e}getColumnHeaders(){let e=[];if(this.options.colHeaders){let{startCol:t,endCol:o}=this._getDataRange(),n=this.hot.getColHeader();for(let i=t;i<=o;i++)!1===this.options.exportHiddenColumns&&this._isHiddenColumn(i)||e.push(n[i])}return e}_getDataRange(){let e=this.hot.countCols()-1,t=this.hot.countRows()-1,[o=0,n=0,i=t,r=e]=this.options.range;return o=Math.max(o,0),n=Math.max(n,0),{startRow:o,startCol:n,endRow:i=Math.min(i,t),endCol:r=Math.min(r,e)}}getSourceData(){return this._extractDataMatrix((e,t)=>this.hot.getSourceDataAtCell(e,t))}getExcludedHiddenRows(){let e=new Set;if(!1!==this.options.exportHiddenRows)return e;let{startRow:t,endRow:o}=this._getDataRange();for(let n=t;n<=o;n++)this._isHiddenRow(n)&&e.add(this.hot.toPhysicalRow(n));return e}getExcludedHiddenColumns(){let e=new Set;if(!1!==this.options.exportHiddenColumns)return e;let{startCol:t,endCol:o}=this._getDataRange();for(let n=t;n<=o;n++)this._isHiddenColumn(n)&&e.add(this.hot.toPhysicalColumn(n));return e}getHiddenRowDataIndices(){if("hide"!==this.options.exportHiddenRows)return[];let{startRow:e,endRow:t}=this._getDataRange(),o=[],n=0;for(let i=e;i<=t;i++)this._isHiddenRow(i)&&o.push(n),n+=1;return o}getHiddenColumnDataIndices(){if("hide"!==this.options.exportHiddenColumns)return[];let{startCol:e,endCol:t}=this._getDataRange(),o=[],n=0;for(let i=e;i<=t;i++)this._isHiddenColumn(i)&&o.push(n),n+=1;return o}getFormulasSeparator(){let e=this.hot.getPlugin("formulas");return e&&e.isEnabled()?e.engine?.getConfig()?.functionArgSeparator??",":","}getCellsMeta(){return this._extractDataMatrix((e,t)=>this.hot.getCellMetaTransient(e,t))}getCellElements(){return this._extractDataMatrix((e,t)=>this.hot.getCell(e,t))}getMergeCells(){let{startRow:e,startCol:t,endRow:o,endCol:n}=this._getDataRange(),i=this.hot.getPlugin("mergeCells");if(!i||!i.isEnabled())return[];let r=i.mergedCellsCollection.mergedCells,l=[],s=!1===this.options.exportHiddenRows,a=!1===this.options.exportHiddenColumns,h=e=>!s||!this._isHiddenRow(e),d=e=>!a||!this._isHiddenColumn(e);return r.forEach(i=>{let r=i.row+i.rowspan-1,s=i.col+i.colspan-1;if(i.row<e||r>o||i.col<t||s>n||!h(i.row)||!d(i.col))return;let a=this._countVisibleBefore(i.row,e,h),c=this._countVisibleBefore(i.col,t,d),u=this._countVisibleBefore(r+1,i.row,h),g=this._countVisibleBefore(s+1,i.col,d);u<=1&&g<=1||l.push({row:a,col:c,rowspan:u,colspan:g})}),l}getColumnsWidths(){let{startCol:e,endCol:t}=this._getDataRange(),o=this.options,n=[];for(let i=e;i<=t;i++){if(!1===o.exportHiddenColumns&&this._isHiddenColumn(i))continue;let e=this._isHiddenColumn(i)?this._getNaturalColWidth(i):this.hot.getColWidth(i);n.push(e)}return n}getRowsHeights(){let{startRow:e,endRow:t}=this._getDataRange(),o=this.options,n=[];for(let i=e;i<=t;i++){if(!1===o.exportHiddenRows&&this._isHiddenRow(i))continue;let e=this._isHiddenRow(i)?this._getNaturalRowHeight(i):this.hot.getRowHeight(i);n.push(e)}return n}getFrozenRows(){return this.hot.getSettings().fixedRowsTop||0}getFrozenColumns(){return this.hot.getSettings().fixedColumnsStart||0}getNestedColumnHeaders(){let e=this.hot.getPlugin("nestedHeaders");if(!e||!e.isEnabled())return null;let t=e.getLayersCount(),{startCol:o,endCol:n}=this._getDataRange(),i=!!this.options.exportHiddenColumns,r=[];for(let l=0;l<t;l++){let t=[],s=o;for(;s<=n;){if(!i&&this._isHiddenColumn(s)){s+=1;continue}s=i?this._appendNestedHeaderWithHidden(e,l,s,n,t):this._appendNestedHeaderWithoutHidden(e,l,s,n,t)}r.push(t)}return r}_appendNestedHeaderWithHidden(e,t,o,n,i){let r=e.getStateManager().getHeaderTreeNodeData(t,o);if(!r||r.columnIndex===o){let e=r?.origColspan??1,t=Math.min(e,n-o+1),l=(r?.headerClassNames??[]).join(" ");return i.push({label:r?.label??"",colspan:t,className:l}),o+e}return i.push({label:"",colspan:1,className:""}),o+1}_appendNestedHeaderWithoutHidden(e,t,o,n,i){let r=e.getHeaderSettings(t,o);if(!r||r.isRoot){let e=r?.colspan??1,t=0;for(let i=o;i<o+e&&i<=n;i++)this._isHiddenColumn(i)||(t+=1);let l=(r?.headerClassNames??[]).join(" ");return i.push({label:r?.label??"",colspan:t,className:l}),o+e}return i.push({label:"",colspan:1,className:""}),o+1}getColumnHeadersClassNames(){if(!this.options.colHeaders)return[];let{startCol:e,endCol:t}=this._getDataRange(),o=this.options,n=[];for(let i=e;i<=t;i++){if(!1===o.exportHiddenColumns&&this._isHiddenColumn(i))continue;let e=this.hot.getColumnMeta(i).headerClassName,t="";Array.isArray(e)?t=e.join(" "):"string"==typeof e&&(t=e),n.push(t)}return n}getLayoutDirection(){return"rtl"===this.hot.getSettings().layoutDirection?"rtl":"ltr"}getColumnSummaries(){let e=this.hot.getPlugin("columnSummary");if(!e||!e.isEnabled())return[];let{startRow:t,startCol:o,endRow:n,endCol:i}=this._getDataRange(),r=e.endpoints.getAllEndpoints(),l=new Set;r.forEach(e=>{if(void 0===e.destinationRow)return;let o=this._physicalRowToDataIndex(e.destinationRow,t,n);null!==o&&l.add(o)});let s=[];return r.forEach(e=>{let r=this._transformEndpointToSummary(e,t,n,o,i,l);null!==r&&s.push(r)}),s}_transformEndpointToSummary(e,t,o,n,i,r){if(void 0===e.destinationRow||void 0===e.destinationColumn)return null;let l=this._physicalRowToDataIndex(e.destinationRow,t,o),s=this._physicalColToDataIndex(e.destinationColumn,n,i);if(null===l||null===s)return null;let a=e.sourceColumn??e.destinationColumn,h=this._physicalColToDataIndex(a,n,i);if(null===h)return null;let d=e.ranges||[[0,this.hot.countRows()-1]],c=[];return(d.forEach(e=>{let n=e[0],i=void 0!==e[1]?e[1]:e[0];for(let e=n;e<=i;e++){let n=this._physicalRowToDataIndex(e,t,o);if(!(null===n||r.has(n))){if(c.length>0){let e=c[c.length-1];if(e[1]+1===n){e[1]=n;continue}}c.push([n,n])}}}),0===c.length)?null:{destRow:l,destCol:s,type:String(e.type||"sum").toLowerCase(),sourceCol:h,sourceRanges:c}}_countVisibleBefore(e,t,o){let n=0;for(let i=t;i<e;i++)o(i)&&(n+=1);return n}_physicalRowToDataIndex(e,t,o){let n=this.hot.toVisualRow(e);return null===n||n<t||n>o||!1===this.options.exportHiddenRows&&this._isHiddenRow(n)?null:this._countVisibleBefore(n,t,e=>!1!==this.options.exportHiddenRows||!this._isHiddenRow(e))}_physicalColToDataIndex(e,t,o){let n=this.hot.toVisualColumn(e);return null===n||n<t||n>o||!1===this.options.exportHiddenColumns&&this._isHiddenColumn(n)?null:this._countVisibleBefore(n,t,e=>!1!==this.options.exportHiddenColumns||!this._isHiddenColumn(e))}_getNaturalColWidth(e){let t=this.hot.getSettings(),o=this.hot.getColumnMeta(e).width;if(null!=o)return o;let{colWidths:n,defaultColumnWidth:i}=t,r=i??50;return Array.isArray(n)?n[e]??r:"function"==typeof n?n(e)??r:"number"==typeof n?n:r}_getNaturalRowHeight(e){let{rowHeights:t,defaultRowHeight:o}=this.hot.getSettings(),n=o??23;return Array.isArray(t)?t[e]??n:"function"==typeof t?t(e)??n:"number"==typeof t?t:n}_isHiddenRow(e){return this.hot.rowIndexMapper.isHidden(this.hot.toPhysicalRow(e))}_isHiddenColumn(e){return this.hot.columnIndexMapper.isHidden(this.hot.toPhysicalColumn(e))}};class fF{static get DEFAULT_OPTIONS(){return{mimeType:"text/plain",fileExtension:"txt",filename:"Handsontable [YYYY]-[MM]-[DD]",encoding:"utf-8",bom:!1,colHeaders:!1,rowHeaders:!1,exportHiddenColumns:!1,exportHiddenRows:!1,range:[]}}get binary(){return!1}isBinary(){return this.binary}isText(){return!this.binary}export(){to("export() must be implemented by subclass")}dataProvider;constructor(e,t){this.dataProvider=e,this.options=this._mergeOptions(t),this.dataProvider.setOptions(this.options)}_mergeOptions(e){let t=ta(this.constructor.DEFAULT_OPTIONS),o=new Date;return t=tr(ta(fF.DEFAULT_OPTIONS),t),(t=tr(t,fL(e))).filename=tK(t.filename,{YYYY:o.getFullYear(),MM:`${o.getMonth()+1}`.padStart(2,"0"),DD:`${o.getDate()}`.padStart(2,"0")}),t}}let fz=fF,fW=class extends fz{static get DEFAULT_OPTIONS(){return{mimeType:"text/csv",fileExtension:"csv",bom:!0,columnDelimiter:",",rowDelimiter:"\r\n",sanitizeValues:!1}}_mergeOptions(e){let t=super._mergeOptions(e),o={};return"hide"===t.exportHiddenRows&&(o.exportHiddenRows=!1),"hide"===t.exportHiddenColumns&&(o.exportHiddenColumns=!1),Object.keys(o).length>0?tr(t,o):t}export(){let e=this.options,t=this.dataProvider.getData(),o=this.dataProvider.getColumnHeaders(),n=o.length>0,i=this.dataProvider.getRowHeaders(),r=i.length>0,l=e.bom?String.fromCharCode(65279):"";return n&&(o=o.map(t=>this._escapeCell(t,{force:!0,sanitizeValue:e.sanitizeValues})),r&&(l+=e.columnDelimiter),l+=o.join(e.columnDelimiter),l+=e.rowDelimiter),t.forEach((t,o)=>{o>0&&(l+=e.rowDelimiter),r&&(l+=this._escapeCell(i[o],{sanitizeValue:e.sanitizeValues}),l+=e.columnDelimiter);let n=t.map(t=>this._escapeCell(t,{sanitizeValue:e.sanitizeValues})).join(e.columnDelimiter);l+=n}),l}_escapeCell(e){let{force:t=!1,sanitizeValue:o=!1}=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=eO(e);return""===n||(o&&(t=!0),o instanceof RegExp?n=this.#sZ(n,o):"function"==typeof o?n=o(n):o&&(n=this.#sQ(n)),(t||n.indexOf("\r")>=0||n.indexOf('"')>=0||n.indexOf("\n")>=0||n.indexOf(this.options.columnDelimiter)>=0)&&(n=n.replaceAll('"','""'),n=`"${n}"`)),n}#sQ(e){return e.startsWith("=")||e.startsWith("+")||e.startsWith("-")||e.startsWith("@")||e.startsWith(" ")||e.startsWith("\r")?`'${e}`:e}#sZ(e,t){return t.test(e)?`'${e}`:e}},f$={sum:"SUM",min:"MIN",max:"MAX",count:"COUNT",average:"AVERAGE"};function fU(e){let t="",o=e;for(;o>0;)t=String.fromCharCode(65+(o-1)%26)+t,o=Math.floor((o-1)/26);return t}function fG(e){let t=0;for(let o=0;o<e.length;o++)t=26*t+(e.charCodeAt(o)-64);return t}function fq(e,t){let o=0;return e.forEach(e=>{e<t&&(o+=1)}),o}function fj(e){return Array.isArray(e)?e.filter(e=>"string"==typeof e&&e.length>0):"string"==typeof e?e.split(" ").filter(e=>e.length>0):[]}let fY=new WeakMap,fK=new WeakMap,fX=new Set(["htLeft","htRight","htCenter","htJustify","htTop","htMiddle","htBottom"]);function fZ(e){if(!e)return null;let t=e.match(/rgba?\((\d+),\s*(\d+),\s*(\d+)(?:,\s*([\d.]+))?\)/);if(!t||0===(eP(t[4])?Number.parseFloat(t[4]):1))return null;let o=Number.parseInt(t[1],10).toString(16).padStart(2,"0"),n=Number.parseInt(t[2],10).toString(16).padStart(2,"0"),i=Number.parseInt(t[3],10).toString(16).padStart(2,"0");return`#${o}${n}${i}`.toUpperCase()}function fQ(e){if(!e||"string"!=typeof e)return"FF000000";let t=e.startsWith("#")?e.slice(1):e;if(3===t.length){let e=t[0]+t[0],o=t[1]+t[1],n=t[2]+t[2];return`FF${e}${o}${n}`.toUpperCase()}return 6===t.length?`FF${t}`.toUpperCase():8===t.length?t.toUpperCase():"FF000000"}function fJ(e){return e?f0({className:e}):null}function f0(e){if(!e?.className)return null;let t=fj(e.className),o={};return t.includes("htLeft")?o.horizontal="left":t.includes("htCenter")?o.horizontal="center":t.includes("htRight")?o.horizontal="right":t.includes("htJustify")&&(o.horizontal="justify"),t.includes("htTop")?o.vertical="top":t.includes("htMiddle")?o.vertical="middle":t.includes("htBottom")&&(o.vertical="bottom"),Object.keys(o).length>0?o:null}let f1=Date.UTC(1899,11,30);function f2(e){return Math.round((Date.UTC(e.getFullYear(),e.getMonth(),e.getDate())-f1)/864e5)}let f3={csv:fW,xlsx:class extends fz{static get BINARY(){return!0}get binary(){return!0}static get DEFAULT_OPTIONS(){return{mimeType:"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet",fileExtension:"xlsx",bom:!1,engine:null,compression:null,conditionalFormatting:[],exportFormulas:!1,headerStyle:{backgroundColor:"#F2F2F2",border:{style:"thin"}}}}async export(){let e=this.options.engine;e&&"function"==typeof e.Workbook||to("Missing or invalid ExcelJS engine. Pass the ExcelJS module via the `engines` option in the exportFile plugin settings: `exportFile: { engines: { xlsx: ExcelJS } }`.");let t=this.options.sheets;new Set(t&&t.length>0?t.map(e=>e.instance.rootDocument):[this.dataProvider.hot.rootDocument]).forEach(e=>{fY.delete(e),fK.delete(e)});let o=new e.Workbook;if(t&&t.length>0){let e=new Set;t.forEach(t=>{let n=new fV(t.instance),i={...this.options,...fL(t)};n.setOptions(i);let r=t.name||"Sheet",l=r,s=1;for(;e.has(l);)l=`${r}${s}`,s+=1;e.add(l);let a=o.addWorksheet(l);this.#sJ(o,a,n,i)})}else{let e=o.addWorksheet("Sheet1");this.#sJ(o,e,this.dataProvider,this.options)}return o.xlsx.writeBuffer(this.#s0())}#sJ(e,t,o,n){let i=o.getData(),r=o.getCellsMeta(),l=this.#s1(e,r),s=o.getCellElements(),a=o.getColumnHeaders(),h=o.getColumnHeadersClassNames(),d=o.getRowHeaders(),c=o.getColumnsWidths(),u=o.getRowsHeights(),g=o.getMergeCells(),p=o.getFrozenRows(),m=o.getFrozenColumns(),f=o.getNestedColumnHeaders(),b="rtl"===o.getLayoutDirection(),C=n.exportFormulas??!1,w=new Map;o.getColumnSummaries().forEach(e=>{w.set(`${e.destRow}:${e.destCol}`,e)});let y=C?o.getSourceData():null,v=C?o.getFormulasSeparator():",",S=a.length>0,R=d.length>0,x=null!==f&&S,M=0;x?M=f.length:S&&(M=1);let H=M+1,E=R?2:1,k=C?o.getExcludedHiddenRows():null,T=C?o.getExcludedHiddenColumns():null,I=o.getHiddenRowDataIndices(),A=o.getHiddenColumnDataIndices(),{rootDocument:_,rootWindow:O}=o.hot;this.#s2(t,c,R),A.length>0&&this.#s3(t,A,R),this.#s6(t,p,m,M,R,b);let P=this.#s4(n.headerStyle),D=this.#s5(n.headerStyle);x?(this.#s7(t,f,R,E,P,D),this.#s9(t,f,R,E)):S&&this.#s8(t,a,h,R,E,P,D);let N=!(w.size>0)&&r.some(e=>e.some(e=>e?.readOnly===!0));this.#ae(t,i,{exportFormulas:C,formulasSeparator:v,dataRowOffset:H,dataColOffset:E,excludedHiddenRows:k,excludedHiddenCols:T,summaryMap:w,sourceData:y,hasRowHeaders:R,headerFill:P,headerBorder:D,hasReadOnlyCells:N,rootDocument:_,rootWindow:O,validationMap:l,cellsMeta:r,cellElements:s,rowHeaders:d,rowsHeights:u}),I.length>0&&this.#at(t,I,H),N&&t.protect("",{selectLockedCells:!0,selectUnlockedCells:!0,formatColumns:!0,formatRows:!0,sort:!0,autoFilter:!0}),g.forEach(e=>{let o=e.row+H,n=e.col+E,i=o+e.rowspan-1,r=n+e.colspan-1;t.mergeCells(o,n,i,r)});let{conditionalFormatting:B}=n;return B&&B.length>0&&this.#ao(t,B,H,E,i.length,i[0]?.length??0),i.length}#ae(e,t,o){for(let n=0;n<t.length;n++){let i=t[n],r=n+o.dataRowOffset,l=e.getRow(r);if(eP(o.rowsHeights[n])&&(l.height=.75*o.rowsHeights[n]),o.hasRowHeaders){let e=l.getCell(1);e.value=o.rowHeaders[n]??null,o.headerFill&&(e.fill=o.headerFill),o.headerBorder&&(e.border=o.headerBorder)}this.#an(l,i,n,o),l.commit()}}#an(e,t,o,n){for(let i=0;i<t.length;i++){let r=t[i],l=e.getCell(i+n.dataColOffset),s=n.cellsMeta[o][i],a=n.summaryMap.get(`${o}:${i}`),h=n.sourceData?.[o][i],{value:d,numFmt:c}=this.#ai(r,s,h,a,n);l.value=d,c&&(l.numFmt=c);let u=function(e,t){let o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null,n=arguments.length>3&&void 0!==arguments[3]?arguments[3]:null;if(!e){if(!o||!n)return null;let e=fj(t);return e.some(e=>!fX.has(e))?function(e,t,o){let n=o.join(" "),i=fK.get(e);if(i||(i=new Map,fK.set(e,i)),i.has(n))return i.get(n);let r=e.createElement("div");r.className="handsontable",r.style.cssText="position:absolute;top:-99999px;left:-99999px;visibility:hidden;pointer-events:none;";let l=e.createElement("table"),s=e.createElement("tbody"),a=e.createElement("tr"),h=e.createElement("td");h.className=n;let d=e.createElement("td");d.className=o.filter(e=>fX.has(e)).join(" "),a.appendChild(h),a.appendChild(d),s.appendChild(a),l.appendChild(s),r.appendChild(l),e.body.appendChild(r);let c=t.getComputedStyle(h),u=t.getComputedStyle(d),g=c.backgroundColor,p=u.backgroundColor,m=c.color,f=u.color;e.body.removeChild(r);let b={fontBold:Number.parseInt(c.fontWeight,10)>=700||"bold"===c.fontWeight,fontItalic:"italic"===c.fontStyle,fontUnderline:(c.textDecorationLine||c.textDecoration||"").includes("underline"),fontColor:m!==f?fZ(m):null,backgroundColor:g!==p?fZ(g):null};return i.set(n,b),b}(o,n,e):null}let i=e.ownerDocument?.defaultView;if(!i)return null;let r=i.getComputedStyle(e),l=fj(t),s=l.some(e=>!fX.has(e));return{fontBold:Number.parseInt(r.fontWeight,10)>=700||"bold"===r.fontWeight,fontItalic:"italic"===r.fontStyle,fontUnderline:(r.textDecorationLine||r.textDecoration||"").includes("underline"),fontColor:s?fZ(r.color):null,backgroundColor:s?function(e,t,o){let n=t.join(" "),i=fY.get(e);if(i||(i=new Map,fY.set(e,i)),i.has(n))return i.get(n)??null;let r=e.createElement("div");r.className="handsontable",r.style.cssText="position:absolute;top:-99999px;left:-99999px;visibility:hidden;pointer-events:none;";let l=e.createElement("table"),s=e.createElement("tbody"),a=e.createElement("tr"),h=e.createElement("td");h.className=n;let d=e.createElement("td");d.className=t.filter(e=>fX.has(e)).join(" "),a.appendChild(h),a.appendChild(d),s.appendChild(a),l.appendChild(s),r.appendChild(l),e.body.appendChild(r);let c=o.getComputedStyle(h).backgroundColor,u=o.getComputedStyle(d).backgroundColor;e.body.removeChild(r);let g=c!==u?fZ(c):null;return i.set(n,g),g}(e.ownerDocument,l,i):null}}(n.cellElements[o][i],s.className,n.rootDocument,n.rootWindow);this.#ar(l,s,u,n),n.hasReadOnlyCells&&(l.protection={locked:!0===s.readOnly})}}#ar(e,t,o,n){let i=f0(t);i&&(e.alignment=i);let r=function(e){if(!e?.borders)return null;let{borders:t}=e,o={};return["top","bottom","left","right"].forEach(e=>{var n;t[e]&&t[e].width>0&&(o[e]={style:(n=t[e].width)>=3?"thick":2===n?"medium":"thin",color:{argb:fQ(t[e].color)}})}),Object.keys(o).length>0?o:null}(t);r&&(e.border=r);let l=function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,o=e?.readOnly===!0,n=t?.fontBold||!1,i=t?.fontItalic||!1,r=t?.fontUnderline||!1,l=t?.fontColor??null;if(!n&&!i&&!r&&!l&&!o)return null;let s={};return n&&(s.bold=!0),i&&(s.italic=!0),r&&(s.underline=!0),l?s.color={argb:fQ(l)}:o&&(s.color={argb:"FF808080"}),Object.keys(s).length>0?s:null}(t,o);l&&(e.font=l);let s=function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,o=null;return(t?.backgroundColor?o=fQ(t.backgroundColor):e?.readOnly===!0&&(o="FFF0F0F0"),o)?{type:"pattern",pattern:"solid",fgColor:{argb:o}}:null}(t,o);s&&(e.fill=s);let a=Array.isArray(t.source)?n.validationMap.get(JSON.stringify(t.source))??null:null,h=t&&a&&("dropdown"===t.type||"autocomplete"===t.type)&&Array.isArray(t.source)?{type:"list",allowBlank:!0,formulae:[a]}:null;h&&(e.dataValidation=h),t.comment?.value&&(e.note=String(t.comment.value))}#ai(e,t,o,n,i){var r,l,s,a,h;let{exportFormulas:d,formulasSeparator:c,dataRowOffset:u,dataColOffset:g,excludedHiddenRows:p,excludedHiddenCols:m}=i;if(n&&d){let o=function(e,t,o){let n=f$[e.type];if(!n)return null;let i=fU(e.sourceCol+o),r=e.sourceRanges.map(e=>{let[o,n]=e,r=o+t,l=n+t;return r===l?`${i}${r}`:`${i}${r}:${i}${l}`});return{formula:`${n}(${r.join(",")})`}}(n,u,g),i=this.#al(e,t);return{value:o?{...o,result:e}:i,numFmt:null}}if(d&&"string"==typeof(r=o)&&r.startsWith("=")){let e,t,n;return{value:{formula:(l=u-1,s=g-1,a=p??void 0,h=m??void 0,e=o.startsWith("=")?o.slice(1):o,t=(a?.size??0)>0,n=(h?.size??0)>0,(0!==l||0!==s||t||n)&&(e=e.replace(/("(?:[^"]|"")*"|'[^']*')|(?<!\d)(\$?)([A-Z]{1,3})(\$?)(\d{1,7})(?!\()/g,(e,o,i,r,d,c)=>{if(void 0!==o)return o;let u=fG(r)-1,g=Number.parseInt(c,10)-1,p=n&&h?fq(h,u):0,m=t&&a?fq(a,g):0,f=fG(r)+s-p,b=Number.parseInt(c,10)+l-m;return`${i}${fU(f)}${d}${b}`})),c&&","!==c&&(e=function(e,t){let o="",n=!1,i="";for(let r=0;r<e.length;r++){let l=e[r];n?(o+=l,l===i&&(e[r+1]===i?(o+=e[r+1],r+=1):n=!1)):'"'===l||"'"===l?(n=!0,i=l,o+=l):e.startsWith(t,r)?(o+=",",r+=t.length-1):o+=l}return o}(e,c)),e)},numFmt:null}}if("intl-datetime"===t.type){let t=function(e){if(!e)return null;let t=String(e).match(/^(\d{4})-(0[1-9]|1[0-2])-(0[1-9]|[12]\d|3[01])(?:[T ]([01]\d|2[0-3]):([0-5]\d)(?::([0-5]\d)(?:\.\d{1,3})?)?)?$/);if(!t)return null;let o=parseInt(t[1],10),n=parseInt(t[2],10),i=parseInt(t[3],10),r=t[4]?parseInt(t[4],10):0,l=t[5]?parseInt(t[5],10):0,s=t[6]?parseInt(t[6],10):0,a=new Date(o,n-1,i);return Number.isNaN(a.getTime())?null:f2(a)+(3600*r+60*l+s)/86400}(e);if(null!==t)return{value:t,numFmt:"mm-dd-yy h:mm:ss"}}if("date"===t.type||"intl-date"===t.type){let t=function(e){if(!e)return null;let t=String(e).match(/^(\d{4})-(\d{2})-(\d{2})$/);if(!t)return null;let o=new Date(parseInt(t[1],10),parseInt(t[2],10)-1,parseInt(t[3],10));return Number.isNaN(o.getTime())?null:f2(o)}(e);if(null!==t)return{value:t,numFmt:"mm-dd-yy"}}if("time"===t.type||"intl-time"===t.type){let t=function(e){if(!e)return null;let t=String(e).trim(),o=t.match(/^(\d{1,2}):(\d{2})(?::(\d{2}))?$/);if(o){let e=parseInt(o[1],10),t=parseInt(o[2],10),n=o[3]?parseInt(o[3],10):0;return e>23||t>59||n>59?null:(3600*e+60*t+n)/86400}let n=t.match(/^(\d{1,2}):(\d{2})(?::(\d{2}))?\s*(AM|PM)$/i);if(n){let e=parseInt(n[1],10),t=parseInt(n[2],10),o=n[3]?parseInt(n[3],10):0,i=n[4].toUpperCase();return e>12||t>59||o>59?null:("AM"===i&&12===e?e=0:"PM"===i&&12!==e&&(e+=12),(3600*e+60*t+o)/86400)}return null}(e);if(null!==t)return{value:t,numFmt:"h:mm:ss"}}return"checkbox"===t.type?{value:this.#as(e,t),numFmt:null}:"multiselect"===t.type?{value:this.#aa(e),numFmt:null}:"numeric"===t.type?{value:this.#al(e,t),numFmt:function(e,t){if(!e)return null;let{style:o,currency:n,minimumFractionDigits:i=0,maximumFractionDigits:r,useGrouping:l=!0}=e,s=r??i,a=s>0?`.${"0".repeat(s)}`:"",h=!1!==l?"#,##0":"0";if("percent"===o)return`${h}${a}%`;if("currency"===o&&n){let{symbol:e,isPrefix:o}=function(e,t){try{let o=new Intl.NumberFormat(t||"en",{style:"currency",currency:e,minimumFractionDigits:0,maximumFractionDigits:0}).formatToParts(0),n=o.find(e=>"currency"===e.type)?.value??e,i=o.findIndex(e=>"currency"===e.type),r=o.findIndex(e=>"integer"===e.type);return{symbol:n,isPrefix:i<r}}catch{return{symbol:e,isPrefix:!0}}}(n,t);return o?`${e}${h}${a}`:`${h}${a}${e}`}return`${h}${a}`}(t.numericFormat,t.locale)}:{value:this.#al(e,t),numFmt:null}}#al(e,t){if(null==e)return null;if("numeric"===t.type){if("number"==typeof e)return e;let t=Number(e);return Number.isNaN(t)?eO(e):t}return eO(e)}#as(e,t){return e===(t.checkedTemplate??!0)}#aa(e){return Array.isArray(e)?0===e.length?null:e.map(e=>null!==e&&"object"==typeof e?String(e.value):String(e)).join(", "):null==e?null:eO(e)}#s4(e){return e?.backgroundColor?{type:"pattern",pattern:"solid",fgColor:{argb:fQ(e.backgroundColor)}}:null}#s5(e){if(!e?.border)return null;let{style:t="thin",color:o}=e.border,n=o?{style:t,color:{argb:fQ(o)}}:{style:t};return{top:n,bottom:n,left:n,right:n}}#s0(){let{compression:e}=this.options,t=null;return(!0===e?t=6:"number"==typeof e&&e>=1&&e<=9&&(t=e),null===t)?{}:{zip:{compression:"DEFLATE",compressionOptions:{level:t}}}}#ao(e,t,o,n,i,r){0!==i&&0!==r&&t.forEach(t=>{let{rows:l,cols:s,rules:a}=t;if(!a||0===a.length)return;let h=(l?l[0]:0)+o,d=(l?l[1]:i-1)+o,c=(s?s[0]:0)+n,u=(s?s[1]:r-1)+n;e.addConditionalFormatting({ref:this.#ah(h,c,d,u),rules:a})})}#ah(e,t,o,n){return`${fU(t)}${e}:${fU(n)}${o}`}#s2(e,t,o){o&&(e.getColumn(1).width=5);let n=+!!o;for(let o=0;o<t.length;o++)e.getColumn(o+1+n).width=Math.max(t[o]/7,1)}#s3(e,t,o){let n=+!!o;t.forEach(t=>{e.getColumn(t+1+n).hidden=!0})}#at(e,t,o){t.forEach(t=>{e.getRow(t+o).hidden=!0})}#s6(e,t,o,n,i,r){let l=t>0||o>0;if(!l&&!r)return;let s={};r&&(s.rightToLeft=!0),l&&(s.state="frozen",s.xSplit=o+ +!!i,s.ySplit=t+n),e.views=[s]}#s8(e,t,o,n,i,r,l){let s=e.getRow(1);if(n){let e=s.getCell(1);e.value="",r&&(e.fill=r),l&&(e.border=l)}for(let e=0;e<t.length;e++){let n=s.getCell(e+i);n.value=t[e]??null;let a=fJ(o[e]);a&&(n.alignment=a),r&&(n.fill=r),l&&(n.border=l)}s.commit()}#s7(e,t,o,n,i,r){for(let l=0;l<t.length;l++){let s=t[l],a=e.getRow(l+1);if(o&&0===l){let e=a.getCell(1);e.value="",i&&(e.fill=i),r&&(e.border=r)}let h=n;s.forEach(e=>{let t=a.getCell(h);t.value=e.label??null;let o=fJ(e.className);o&&(t.alignment=o),i&&(t.fill=i),r&&(t.border=r),h+=e.colspan}),a.commit()}}#s9(e,t,o,n){o&&t.length>1&&e.mergeCells(1,1,t.length,1);for(let o=0;o<t.length;o++){let i=t[o],r=o+1,l=n;i.forEach(t=>{t.colspan>1&&e.mergeCells(r,l,r,l+t.colspan-1),l+=t.colspan})}}#s1(e,t){let o=new Map;for(let e=0;e<t.length;e++)for(let n=0;n<t[e].length;n++){let i=t[e][n];if(("dropdown"===i.type||"autocomplete"===i.type)&&Array.isArray(i.source)&&i.source.length>0){let e=JSON.stringify(i.source);o.has(e)||o.set(e,i.source)}}if(0===o.size)return new Map;let n=new Set(e.worksheets.map(e=>e.name)),i="_HotValidation",r=1;for(;n.has(i);)i=`_HotValidation${r}`,r+=1;let l=e.addWorksheet(i);l.state="veryHidden";let s=new Map,a=1;return o.forEach((e,t)=>{for(let t=0;t<e.length;t++){let o=e[t];l.getCell(t+1,a).value=tS(o)?String(o.value):String(o)}let o=fU(a),n=i.replaceAll("'","''"),r=`'${n}'!$${o}$1:$${o}$${e.length}`;s.set(t,r),a+=1}),s}}};function f6(e){let t=e.getSettings(),o=!!(t.colHeaders||t.nestedHeaders),n=!!t.rowHeaders,i=e.getSelectedRangeLast(),r={colHeaders:o,rowHeaders:n};return!i||i.isSingleCell()||(i.from.row??0)<0&&(i.from.col??0)<0?r:{...r,range:[Math.max(0,Math.min(i.from.row??0,i.to.row??0)),Math.max(0,Math.min(i.from.col??0,i.to.col??0)),Math.max(i.from.row??0,i.to.row??0),Math.max(i.from.col??0,i.to.col??0)]}}let f4="exportFile";function f5(e){return tu(e)?e:void 0}class f7{id;elements=[];hidden=!1;stateId="";state;constructor(e,{id:t,stateless:o=!0}){this.hot=e,this.id=t,this.stateId=`Filters.component.${this.id}`,this.state=o?null:this.hot.columnIndexMapper.createAndRegisterIndexMap(this.stateId,"linkedPhysicalIndexToValue")}getElements(){return this.elements}reset(){J(this.elements,e=>e.reset())}hide(){this.hidden=!0}show(){this.hidden=!1}isHidden(){return null===this.hot||this.hidden}restoreState(e){this.state&&this.setState(this.state.getValueAtIndex(e))}setState(e){to("The state setting logic is not implemented")}saveState(e){this.state&&this.state.setValueAtIndex(e,this.getState())}getState(){return to("The state gathering logic is not implemented"),{}}getMenuItemDescriptor(){return to("The menu item descriptor logic is not implemented"),{}}destroy(){this.hot?.columnIndexMapper.unregisterMap(this.stateId),this.clearLocalHooks(),J(this.elements,e=>e.destroy()),this.state=null,this.elements.length=0,this.hot=null}}th(f7,sb);let f9={};function f8(e,t){f9[e]||to(`Filter condition "${e}" does not exist.`);let{condition:o,descriptor:n}=f9[e],i=t;return n.inputValuesDecorator&&(i=(0,n.inputValuesDecorator)(i)),function(e){return o.apply(e.meta.instance,[e,i])}}function be(e){return f9[e]||to(`Filter condition "${e}" does not exist.`),f9[e].descriptor}function bt(e,t,o){o.key=e,f9[e]={condition:t,descriptor:o}}let bo="none";bt(bo,function(){return!0},{name:aA,inputsCount:0,showOperators:!1});let bn="empty";bt(bn,function(e){return eN(e.value)},{name:a_,inputsCount:0,showOperators:!0});let bi="not_empty";bt(bi,function(e,t){return!f8(bn,t)(e)},{name:aO,inputsCount:0,showOperators:!0}),bt("eq",function(e,t){let[o]=t;return!0===e.meta.preserveNumericLiteral&&"numeric"===e.meta.type&&iR(e.value)&&iR(o)?Number(e.value)===Number(o):iS(eO(e.value),e.meta.locale)===eO(o)},{name:aP,inputsCount:1,showOperators:!0}),bt("neq",function(e,t){return!f8("eq",t)(e)},{name:aD,inputsCount:1,showOperators:!0}),bt("gt",function(e,t){let[o]=t,n=o;return"numeric"===e.meta.type&&(n=parseFloat(n)),e.value>n},{name:az,inputsCount:1,showOperators:!0}),bt("gte",function(e,t){let[o]=t,n=o;return"numeric"===e.meta.type&&(n=parseFloat(n)),e.value>=n},{name:aW,inputsCount:1,showOperators:!0}),bt("lt",function(e,t){let[o]=t,n=o;return"numeric"===e.meta.type&&(n=parseFloat(n)),e.value<n},{name:a$,inputsCount:1,showOperators:!0}),bt("lte",function(e,t){let[o]=t,n=o;return"numeric"===e.meta.type&&(n=Number.parseFloat(n)),e.value<=n},{name:aU,inputsCount:1,showOperators:!0});let br="between";bt(br,function(e,t){let[o,n]=t,i=o,r=n;if("numeric"===e.meta.type){let e=parseFloat(i),t=parseFloat(r);i=Math.min(e,t),r=Math.max(e,t)}else if("date"===e.meta.type){let t=uR(e.value),o=uR(i),n=uR(r);return null!==t&&null!==o&&null!==n&&t.getTime()>=o.getTime()&&t.getTime()<=n.getTime()}return e.value>=i&&e.value<=r},{name:aG,inputsCount:2,showOperators:!0});let bl="not_between";bt(bl,function(e,t){return!f8(br,t)(e)},{name:aq,inputsCount:2,showOperators:!0});let bs="begins_with";bt(bs,function(e,t){let[o]=t;return iS(eO(e.value),e.meta.locale).startsWith(eO(o))},{name:aN,inputsCount:1,showOperators:!0});let ba="ends_with";bt(ba,function(e,t){let[o]=t;return iS(eO(e.value),e.meta.locale).endsWith(eO(o))},{name:aB,inputsCount:1,showOperators:!0});let bh="contains";bt(bh,function(e,t){let[o]=t;return iS(eO(e.value),e.meta.locale).indexOf(eO(o))>=0},{name:aL,inputsCount:1,showOperators:!0});let bd="not_contains";bt(bd,function(e,t){return!f8(bh,t)(e)},{name:aV,inputsCount:1,showOperators:!0});let bc="date_before";bt(bc,function(e,t){let[o]=t,n=uR(e.value),i=uR(o);return null!==n&&null!==i&&n.getTime()<i.getTime()},{name:aK,inputsCount:1,showOperators:!0,inputType:"date"});let bu="date_before_or_equal";bt(bu,function(e,t){let[o]=t,n=uR(e.value),i=uR(o);return null!==n&&null!==i&&n.getTime()<=i.getTime()},{name:aX,inputsCount:1,showOperators:!0,inputType:"date"});let bg="date_after";bt(bg,function(e,t){let[o]=t,n=uR(e.value),i=uR(o);return null!==n&&null!==i&&n.getTime()>i.getTime()},{name:aj,inputsCount:1,showOperators:!0,inputType:"date"});let bp="date_after_or_equal";bt(bp,function(e,t){let[o]=t,n=uR(e.value),i=uR(o);return null!==n&&null!==i&&n.getTime()>=i.getTime()},{name:aY,inputsCount:1,showOperators:!0,inputType:"date"});let bm="date_tomorrow";bt(bm,function(e){let t=uR(e.value);return null!==t&&uD(t,uP(1))},{name:aQ,inputsCount:0});let bf="date_today";bt(bf,function(e){let t=uR(e.value);return null!==t&&uD(t,uO())},{name:aZ,inputsCount:0});let bb="date_yesterday";bt(bb,function(e){let t=uR(e.value);return null!==t&&uD(t,uP(-1))},{name:aJ,inputsCount:0});let bC="intl_date_before";bt(bC,function(e,t){let[o]=t,n=uR(e.value),i=uR(o);return null!==n&&null!==i&&n<i},{name:aK,inputsCount:1,showOperators:!0,inputType:"date"});let bw="intl_date_before_or_equal";bt(bw,function(e,t){let[o]=t,n=uR(e.value),i=uR(o);return null!==n&&null!==i&&n<=i},{name:aX,inputsCount:1,showOperators:!0,inputType:"date"});let by="intl_date_after";bt(by,function(e,t){let[o]=t,n=uR(e.value),i=uR(o);return null!==n&&null!==i&&n>i},{name:aj,inputsCount:1,showOperators:!0,inputType:"date"});let bv="intl_date_after_or_equal";bt(bv,function(e,t){let[o]=t,n=uR(e.value),i=uR(o);return null!==n&&null!==i&&n>=i},{name:aY,inputsCount:1,showOperators:!0,inputType:"date"});let bS="intl_date_between";bt(bS,function(e,t){let[o,n]=t,i=uR(e.value),r=uR(o),l=uR(n);return null!==i&&null!==r&&null!==l&&i>=r&&i<=l},{name:aG,inputsCount:2,showOperators:!0,inputType:"date"});let bR="intl_date_tomorrow";bt(bR,function(e){let t=uR(e.value);if(null===t)return!1;let o=new Date;return o.setDate(o.getDate()+1),t.getFullYear()===o.getFullYear()&&t.getMonth()===o.getMonth()&&t.getDate()===o.getDate()},{name:aQ,inputsCount:0,inputType:"date"});let bx="intl_date_today";bt(bx,function(e){let t=uR(e.value);if(null===t)return!1;let o=new Date;return t.getFullYear()===o.getFullYear()&&t.getMonth()===o.getMonth()&&t.getDate()===o.getDate()},{name:aZ,inputsCount:0,inputType:"date"});let bM="intl_date_yesterday";bt(bM,function(e){let t=uR(e.value);if(null===t)return!1;let o=new Date;return o.setDate(o.getDate()-1),t.getFullYear()===o.getFullYear()&&t.getMonth()===o.getMonth()&&t.getDate()===o.getDate()},{name:aJ,inputsCount:0,inputType:"date"});let bH="intl_time_before";bt(bH,function(e,t){let[o]=t,n=uk(e.value),i=uk(o);return null!==n&&null!==i&&n<i},{name:aK,inputsCount:1,showOperators:!0,inputType:"time"});let bE="intl_time_before_or_equal";bt(bE,function(e,t){let[o]=t,n=uk(e.value),i=uk(o);return null!==n&&null!==i&&n<=i},{name:aX,inputsCount:1,showOperators:!0,inputType:"time"});let bk="intl_time_after";bt(bk,function(e,t){let[o]=t,n=uk(e.value),i=uk(o);return null!==n&&null!==i&&n>i},{name:aj,inputsCount:1,showOperators:!0,inputType:"time"});let bT="intl_time_after_or_equal";bt(bT,function(e,t){let[o]=t,n=uk(e.value),i=uk(o);return null!==n&&null!==i&&n>=i},{name:aY,inputsCount:1,showOperators:!0,inputType:"time"});let bI="intl_time_between";bt(bI,function(e,t){let[o,n]=t,i=uk(e.value),r=uk(o),l=uk(n);return null!==i&&null!==r&&null!==l&&i>=r&&i<=l},{name:aG,inputsCount:2,showOperators:!0,inputType:"time"});let bA="intl_datetime_before";bt(bA,function(e,t){let[o]=t,n=uA(e.value),i=uA(o);return null!==n&&null!==i&&n<i},{name:aK,inputsCount:1,showOperators:!0,inputType:"datetime-local"});let b_="intl_datetime_before_or_equal";bt(b_,function(e,t){let[o]=t,n=uA(e.value),i=uA(o);return null!==n&&null!==i&&n<=i},{name:aX,inputsCount:1,showOperators:!0,inputType:"datetime-local"});let bO="intl_datetime_after";bt(bO,function(e,t){let[o]=t,n=uA(e.value),i=uA(o);return null!==n&&null!==i&&n>i},{name:aj,inputsCount:1,showOperators:!0,inputType:"datetime-local"});let bP="intl_datetime_after_or_equal";bt(bP,function(e,t){let[o]=t,n=uA(e.value),i=uA(o);return null!==n&&null!==i&&n>=i},{name:aY,inputsCount:1,showOperators:!0,inputType:"datetime-local"});let bD="intl_datetime_between";bt(bD,function(e,t){let[o,n]=t,i=uA(e.value),r=uA(o),l=uA(n);return null!==i&&null!==r&&null!==l&&i>=r&&i<=l},{name:aG,inputsCount:2,showOperators:!0,inputType:"datetime-local"});let bN="intl_datetime_tomorrow";bt(bN,function(e){let t=uA(e.value);if(null===t)return!1;let o=new Date;return o.setDate(o.getDate()+1),t.getFullYear()===o.getFullYear()&&t.getMonth()===o.getMonth()&&t.getDate()===o.getDate()},{name:aQ,inputsCount:0,inputType:"datetime-local"});let bB="intl_datetime_today";bt(bB,function(e){let t=uA(e.value);if(null===t)return!1;let o=new Date;return t.getFullYear()===o.getFullYear()&&t.getMonth()===o.getMonth()&&t.getDate()===o.getDate()},{name:aZ,inputsCount:0,inputType:"datetime-local"});let bL="intl_datetime_yesterday";bt(bL,function(e){let t=uA(e.value);if(null===t)return!1;let o=new Date;return o.setDate(o.getDate()-1),t.getFullYear()===o.getFullYear()&&t.getMonth()===o.getMonth()&&t.getDate()===o.getDate()},{name:aJ,inputsCount:0,inputType:"datetime-local"});let bV="text",bF={numeric:[bo,ml,bn,bi,ml,"eq","neq",ml,"gt","gte","lt","lte",br,bl],[bV]:[bo,ml,bn,bi,ml,"eq","neq",ml,bs,ba,ml,bh,bd],date:[bo,ml,bn,bi,ml,"eq","neq",ml,bc,bu,bg,bp,br,ml,bm,bf,bb],"intl-date":[bo,ml,bn,bi,ml,"eq","neq",ml,bC,bw,by,bv,bS,ml,bR,bx,bM],"intl-time":[bo,ml,bn,bi,ml,"eq","neq",ml,bs,ba,ml,bh,bd,ml,bH,bE,bk,bT,bI],"intl-datetime":[bo,ml,bn,bi,ml,"eq","neq",ml,bA,b_,bO,bP,bD,ml,bN,bB,bL]},bz="built",bW="building",b$=["click","input","keydown","keypress","keyup","focus","blur","change"];class bU{static get DEFAULTS(){return ta({className:"",value:"",tagName:"div",children:[],wrapIt:!0})}eventManager=new n4(this);constructor(e,t){this.hot=e,this.options=tr(bU.DEFAULTS,t),this._element=e.rootDocument.createElement(this.options.wrapIt?"div":this.options.tagName??"div")}setValue(e){this.options.value=e,this.update()}getValue(){return this.options.value}get element(){return this.buildState===bW||(this.buildState===bz?this.update():(this.buildState=bW,this.build(),this.buildState=bz)),this._element}isBuilt(){return this.buildState===bz}translateIfPossible(e){return"string"==typeof e&&e.startsWith(aT)?this.hot?.getTranslatedPhrase(e)??e:e}build(){if(!this._element||!this.hot)return;let e=this._element,{eventManager:t}=this,o=(e,o)=>{t?.addEventListener(e,o,e=>this.runLocalHooks(o,e,this))};if(this.buildState||(this.buildState=bW),e.dataset.hotInput="true",void 0!==this.options.tabIndex&&e.setAttribute("tabindex",String(this.options.tabIndex)),void 0!==this.options.role&&e.setAttribute("role",this.options.role),this.options.className&&od(e,this.options.className),this.options.children?.length)J(this.options.children,t=>{let o=t.element;o&&e.appendChild(o)});else if(this.options.wrapIt){let t=this.hot.rootDocument.createElement(this.options.tagName??"div");t.dataset.hotInput="true",tp(this.options,(e,o)=>{void 0!==t[o]&&"className"!==o&&"tagName"!==o&&"children"!==o&&(t[o]=this.translateIfPossible(e))}),e.appendChild(t),J(b$,e=>o(t,e))}else J(b$,t=>o(e,t))}update(){}reset(){this.options.value="",this.update()}show(){let e=this.element;e&&(e.style.display="")}hide(){let e=this.element;e&&(e.style.display="none")}focus(){}destroy(){this.eventManager?.destroy(),this.eventManager=null,this.hot=null,this._element?.parentNode&&this._element.parentNode.removeChild(this._element),this._element=null}}th(bU,sb);class bG extends bU{static get DEFAULTS(){return ta({placeholder:"",type:"text",tagName:"input",tabIndex:-1})}#ad=null;constructor(e,t){super(e,tr(bG.DEFAULTS,t)),this.registerHooks()}registerHooks(){this.addLocalHook("keyup",e=>this.#ac(e)),this.addLocalHook("input",e=>this.#ac(e)),this.addLocalHook("change",e=>this.#ac(e))}build(){if(super.build(),!this._element||!this.hot)return;let e=this.hot.rootDocument.createElement("div");this.#ad=this._element.firstChild,od(this._element,"htUIInput"),od(e,"htUIInputIcon"),this._element.appendChild(e),this.update()}update(){this.isBuilt()&&this.#ad&&(this.#ad.type=String(this.options.type??"text"),this.#ad.placeholder=String(this.translateIfPossible(this.options.placeholder)??""),this.#ad.value=String(this.translateIfPossible(this.options.value)??""))}setType(e){this.options.type=e,this.isBuilt()&&this.update()}focus(){this.isBuilt()&&this.#ad?.focus()}#ac(e){this.options.value=t5(e).value}}class bq extends bU{static get DEFAULTS(){return ta({className:"htUISelect",wrapIt:!1,tabIndex:-1})}#au=null;#ag=[];#ap=null;#am=null;#af=null;constructor(e,t){super(e,tr(bq.DEFAULTS,t)),this.registerHooks()}getMenu(){return this.#au}registerHooks(){this.addLocalHook("click",()=>this.#ab())}setItems(e){this.#ag=this.translateNames(e),this.#au&&this.#au.setMenuItems(this.#ag)}translateNames(e){return J(e,e=>{e.name=this.translateIfPossible(e.name)}),e}build(){if(super.build(),!this.hot||!this._element)return;let e=this.hot,t=this._element;this.#au=new mU(e,{className:"htSelectUI htFiltersConditionsMenu",keepInViewport:!1,standalone:!0,container:this.options.menuContainer}),this.#au.setMenuItems(this.#ag);let o=new bU(e,{className:"htUISelectCaption"}),n=new bU(e,{className:"htUISelectDropdown"});if(this.#ap=o,this.#am=o.element,this.#af=n,e.getSettings().ariaTags){let e=n.element;e&&ou(e,[P()]),ou(t,[I()])}J([o,n],e=>{let o=e.element;o&&t.appendChild(o)}),this.#au.addLocalHook("select",e=>this.#aC(e)),this.#au.addLocalHook("afterClose",()=>this.#aw()),this.update()}update(){let e;this.isBuilt()&&(e=this.options.value?this.options.value.name:this.#au?.hot?.getTranslatedPhrase(aA),this.#am&&(this.#am.textContent=e??null),super.update())}openOptions(){let e=this.element;if(!e)return;let t=e.getBoundingClientRect();this.#au&&(this.#au.open(),this.#au.setPosition({left:this.hot?.isLtr()?t.left-5:t.left-31,top:t.top-1,width:t.width,height:t.height},()=>e.isConnected?e.getBoundingClientRect():null),this.#au?.getNavigator()?.toFirstItem(),this.#au?.getKeyboardShortcutsCtrl()?.addCustomShortcuts([{keys:[["Tab"],["Shift","Tab"]],callback:e=>{this.closeOptions(),this.runLocalHooks("tabKeydown",e)}},{keys:[["Control/Meta","A"]],callback:()=>!1}]))}closeOptions(){this.#au&&this.#au.close()}focus(){this.isBuilt()&&this.element?.focus()}#aC(e){e.name!==ml&&(this.options.value=e,this.update(),this.runLocalHooks("select",this.options.value))}#aw(){this.runLocalHooks("afterClose")}#ab(){this.openOptions()}destroy(){this.#au&&(this.#au.destroy(),this.#au=null),this.#ap&&this.#ap.destroy(),this.#af&&this.#af.destroy(),super.destroy()}}class bj extends f7{name="";addSeparator=!1;constructor(e,t){super(e,{id:t.id,stateless:!1}),this.name=t.name,this.addSeparator=t.addSeparator,this.elements.push(new bq(e,{menuContainer:t.menuContainer})),this.elements.push(new bG(e,{placeholder:he})),this.elements.push(new bG(e,{placeholder:ht})),this.registerHooks()}registerHooks(){this.getSelectElement().addLocalHook("select",e=>this.#ay(e)).addLocalHook("afterClose",()=>this.runLocalHooks("afterClose")).addLocalHook("tabKeydown",e=>this.runLocalHooks("selectTabKeydown",e)),J(this.getInputElements(),e=>{e.addLocalHook("keydown",e=>this.#av(e))})}setState(e){if(this.reset(),!e)return;let t=ta(e.command);"string"==typeof t.name&&t.name.startsWith(aI)&&(t.name=this.hot?.getTranslatedPhrase(t.name)??t.name),this.getSelectElement().setValue(t),J(e.args,(e,o)=>{if(o>(t.inputsCount??0)-1)return!1;let n=this.getInputElement(o);n.setType(t.inputType??"text"),n.setValue(e),n[(t.inputsCount??0)>o?"show":"hide"](),o||this.hot?._registerTimeout(()=>n.focus(),10)})}getState(){let e=this.getSelectElement().getValue()||be(bo),t=[];return J(this.getInputElements(),(o,n)=>{(e.inputsCount??0)>n&&t.push(o.getValue())}),{command:e,args:t}}updateState(e,t){let o=e?be(e.name):be(bo);this.state?.setValueAtIndex(t,{command:o,args:e?e.args:[]}),e||J(this.getInputElements(),e=>e.setValue(null))}getSelectElement(){return this.elements.find(e=>e instanceof bq)}getInputElement(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0;return this.getInputElements()[e]}getInputElements(){return this.elements.filter(e=>e instanceof bG)}getMenuItemDescriptor(){return{key:this.id,name:this.name,isCommand:!1,disableSelection:!0,hidden:()=>this.isHidden(),renderer:(e,t,o,n,i,r)=>{ne(t.parentNode)&&(od(t.parentNode,"htFiltersMenuCondition"),this.addSeparator&&od(t.parentNode,"border"));let l=this.hot?.rootDocument.createElement("div")??t.ownerDocument.createElement("div");return od(l,"htFiltersMenuLabel"),l.textContent=r,t.appendChild(l),t.parentElement?.hasAttribute("ghost-table")||J(this.elements,e=>{let o=e.element;o&&t.appendChild(o)}),t}}}reset(){let e=this.hot?.getPlugin("filters").getSelectedColumn()??null,t=[be(bo)];if(null!==e){var o;let n,i,{visualIndex:r}=e;o=this.hot?.getDataType(0,r,this.hot.countRows(),r)??"text",n=[],bF[i=o]||(i=bV),J(bF[i],e=>{let t;t=e===ml?{name:ml}:{...be(e)},n.push(t)}),t=n}J(this.getInputElements(),e=>e.hide()),this.getSelectElement().setItems(t),super.reset(),this.getSelectElement().setValue(t[0])}#ay(e){J(this.getInputElements(),(t,o)=>{t.setType(e.inputType??"text"),t[(e.inputsCount??0)>o?"show":"hide"](),0===o&&this.hot?._registerTimeout(()=>t.focus(),10)}),this.runLocalHooks("change",e)}#av(e){nS(e.keyCode,"ESCAPE")&&(this.runLocalHooks("cancel"),nR(e))}}let bY={};function bK(e,t,o){bY[e]={name:t,func:o}}let bX="conjunction";bK(bX,a2,function(e,t){return e.every(e=>e.func(t))});let bZ="disjunction";bK(bZ,a3,function(e,t){return e.some(e=>e.func(t))});let bQ="disjunctionWithExtraCondition";bK(bQ,a3,function(e,t){e.length<3&&to("Operation doesn't work on less then three conditions.");let o=e[e.length-1];return e.slice(0,e.length-1).some(e=>!!e.func(t))&&!!o.func(t)});class bJ extends bU{static get DEFAULTS(){return ta({type:"radio",tagName:"input",className:"htUIRadio",label:{}})}#ad=null;#aS=null;constructor(e,t){super(e,tr(bJ.DEFAULTS,t))}build(){if(super.build(),!this.hot||!this._element)return;let e=this.hot.rootDocument.createElement("label"),t=this.options.label;e.textContent=String(this.translateIfPossible(t.textContent)??""),e.htmlFor=String(this.translateIfPossible(t.htmlFor)??""),this.#aS=e,this.#ad=this._element.firstChild,this.#ad.checked=this.options.checked,this._element.appendChild(e),this.update()}update(){if(!this.isBuilt())return;let e=this.options.label;this.#aS&&(this.#aS.textContent=String(this.translateIfPossible(e.textContent)??""))}isChecked(){return!!this.isBuilt()&&!!this.#ad&&this.#ad.checked}setChecked(){let e=!(arguments.length>0)||void 0===arguments[0]||arguments[0];this.isBuilt()&&this.#ad&&(this.#ad.checked=e)}focus(){this.isBuilt()&&this.#ad?.focus()}}class b0 extends f7{name="";constructor(e,t){super(e,{id:t.id,stateless:!1}),this.name=t.name,this.buildOperatorsElement(e)}getMenuItemDescriptor(){return{key:this.id,name:this.name,isCommand:!1,disableSelection:!0,hidden:()=>this.isHidden(),renderer:(e,t)=>(ne(t.parentNode)&&od(t.parentNode,"htFiltersMenuOperators"),J(this.elements,e=>{let o=e.element;o&&t.appendChild(o)}),t)}}buildOperatorsElement(e){let t=[bX,bZ];J(t,o=>{let n=new bJ(e,{name:"operator",label:{htmlFor:o,textContent:bY[o].name},value:o,checked:o===t[0],id:o});n.addLocalHook("change",e=>this.#aR(e)),this.elements.push(n)})}setChecked(e){this.elements.length<e&&to(eu`Radio button with index ${e} doesn't exist.`),J(this.elements,(t,o)=>{t.setChecked(o===e)})}getActiveOperationId(){let e=this.elements.find(e=>e instanceof bJ&&e.isChecked());return e?String(e.getValue()??bX):bX}getState(){return this.getActiveOperationId()}setState(e){this.reset(),e&&this.getActiveOperationId()!==e&&J(this.elements,t=>{t.setChecked(t.getValue()===e)})}updateState(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:bX,t=arguments.length>1?arguments[1]:void 0,o=e;o===bQ&&(o=bZ),this.state?.setValueAtIndex(t,o)}reset(){this.setChecked(0)}#aR(e){this.setState(t5(e).value)}}function b1(e){let t=new Set(e);return function(e){return t.has(e)}}function b2(e){return null==e?"":e}function b3(e,t){return Array.from(new Set(e)).map(e=>b2(e)).sort(t??((e,t)=>"number"==typeof e&&"number"==typeof t?e-t:e===t?0:e>t?1:-1))}function b6(e,t,o,n){let i,r=[],l=e===t;return l||(i=b1(t)),e.forEach(e=>{let t,s=!1;(l||i(e))&&(s=!0);let a={checked:s,value:e,visualValue:(""===(t=e)&&(t=`(${o})`),t)};n&&n(a),r.push(a)}),r}function b4(e){if(null!==e&&"object"==typeof e&&"type"in e){if("date"===e.type||"intl-date"===e.type)return(e,t)=>{if(""===e&&""===t)return 0;if(""===e)return -1;if(""===t)return 1;let o=uR(e),n=uR(t);return null===o&&null===n?0:null===o?1:null===n?-1:o-n};if("intl-datetime"===e.type)return(e,t)=>{if(""===e&&""===t)return 0;if(""===e)return -1;if(""===t)return 1;let o=uA(e),n=uA(t);return null===o&&null===n?0:null===o?1:null===n?-1:o-n}}}tT();class b5 extends bU{static get DEFAULTS(){return ta({href:"#",tagName:"a",tabIndex:-1,role:"button"})}#ax=null;constructor(e,t){super(e,tr(b5.DEFAULTS,t))}build(){super.build(),this._element&&(this.#ax=this._element.firstChild)}update(){if(!this.isBuilt())return;let e=this.options.textContent;this.#ax&&(this.#ax.textContent=String(this.translateIfPossible(e)))}focus(){this.isBuilt()&&this.#ax&&this.#ax.focus()}activate(){this.#ax?.click()}}let b7="multipleSelect.itemBox";class b9 extends bU{static get DEFAULTS(){return ta({className:"htUIMultipleSelect",value:[]})}#ag=[];#aM=null;#aH=null;#aE="";#ak=null;#aT=null;#aI=null;constructor(e,t){super(e,tr(b9.DEFAULTS,t)),this.#ak=new bG(e,{placeholder:a8,className:"htUIMultipleSelectSearch"}),this.#aT=new b5(e,{textContent:a4,className:"htUISelectAll"}),this.#aI=new b5(e,{textContent:a5,className:"htUIClearAll"}),this.registerHooks()}getItemsBox(){return this.#aM}registerHooks(){this.#ak?.addLocalHook("keydown",e=>this.#av(e)),this.#ak?.addLocalHook("input",e=>this.#nK(e)),this.#aT?.addLocalHook("click",e=>this.#aA(e)),this.#aI?.addLocalHook("click",e=>this.#a_(e))}setItems(e){this.#ag=e,this.#aH=null,this.#aM?.loadData(this.#ag)}setLocale(e){this.#aE!==e&&(this.#aH=null),this.#aE=e}#aO(){return null===this.#aH&&(this.#aH=this.#ag.map(e=>iS(`${e.value}`,this.getLocale()))),this.#aH}getLocale(){return this.#aE}getItems(){return[...this.#ag]}getValue(){var e;let t;return e=this.#ag,t=[],e.forEach(e=>{e.checked&&t.push(e.value)}),t}getSearchInputElement(){return this.#ak}getSelectAllElement(){return this.#aT}getClearAllElement(){return this.#aI}isSelectedAllValues(){return this.#ag.length===this.getValue().length}build(){if(super.build(),!this.hot||!this._element)return;let e=this.hot,t=this._element,{rootDocument:o}=e,n=o.createElement("div"),i=new bU(e,{className:"htUISelectionControls",children:[this.#aT,this.#aI].filter(e=>null!==e)}),r=this.#ak?.element,l=i.element;r&&t.appendChild(r),l&&t.appendChild(l),t.appendChild(n),this.#aM?.destroy(),od(n,"htUIMultipleSelectHot"),this.#aM=new e.constructor(n,{data:[[]],columns:[{data:"checked",type:"checkbox",label:{property:"visualValue",position:"after"}}],beforeRenderer:(e,t,o,n,i,r)=>{e.title=r.instance.getDataAtRowProp(t,r.label.property)},afterListen:()=>{this.runLocalHooks("focus",this)},beforeOnCellMouseUp:()=>{this.#aM?.listen()},modifyColWidth:e=>{let t=(this.#aM?.container.scrollWidth??0)-oX(o);return void 0!==e&&e<t?t:e},autoColumnSize:!0,autoRowSize:!1,hiddenRows:!0,maxCols:1,autoWrapCol:!0,height:110,copyPaste:!1,disableVisualSelection:"area",fillHandle:!1,fragmentSelection:"cell",tabMoves:{row:1,col:0},themeName:e.getCurrentThemeName(),layoutDirection:e.isRtl()?"rtl":"ltr"}),this.#aM.init();let s=this.#aM.getShortcutManager().getContext("grid");s&&(s.removeShortcutsByKeys(["Tab"]),s.removeShortcutsByKeys(["Shift","Tab"]),s.addShortcut({keys:[["Escape"]],callback:e=>{this.runLocalHooks("keydown",e,this)},group:b7}),s.addShortcut({keys:[["Tab"],["Shift","Tab"]],callback:e=>{this.#aM?.deselectCell(),this.runLocalHooks("keydown",e,this),this.runLocalHooks("listTabKeydown",e,this)},group:b7}))}focus(){this.isBuilt()&&this.#aM?.listen()}reset(){this.#ak?.reset(),this.#aT?.reset(),this.#aI?.reset()}update(){var e;let t;this.isBuilt()&&this.#aM&&0!==this.#aM.rootElement.offsetHeight&&(this.#aM.updateSettings({data:(e=this.#ag,t=b1(this.options.value),e.map(e=>(e.checked=t(e.value),e)))}),super.update())}destroy(){this.#aM?.destroy(),this.#ak?.destroy(),this.#aI?.destroy(),this.#aT?.destroy(),this.#ak=null,this.#aI=null,this.#aT=null,this.#aM=null,this.#ag.length=0,this.#aH=null,super.destroy()}#nK(e){let t=iS(t5(e).value.trim(),this.getLocale()),o=this.#aO();if("apply"===this.options.searchMode){let e=this.#aM?.getPlugin("hiddenRows"),n=[];e&&e.showRows(e.getHiddenRows()),this.#ag.forEach((e,i)=>{e.checked=o[i].indexOf(t)>=0,e.checked||n.push(i)}),e&&e.hideRows(n),this.#aM?.view.adjustElementsSize(),this.#aM?.render()}else{let e;e=""===t?[...this.#ag]:this.#ag.filter((e,n)=>o[n].indexOf(t)>=0),this.#aM?.loadData(e)}}#av(e){this.runLocalHooks("keydown",e,this),nS(e.keyCode,"ARROW_DOWN")&&(e.preventDefault(),nR(e),this.#aM?.listen(),this.#aM?.selectCell(0,0))}#aA(e){let t=[];e.preventDefault(),this.#aM&&(this.#aM.getSourceData().forEach((e,o)=>{e.checked=!0,t.push(sc(e,o)[0])}),this.#aM.setSourceDataAtCell(t))}#a_(e){let t=[];e.preventDefault(),this.#aM&&(this.#aM.getSourceData().forEach((e,o)=>{e.checked=!1,t.push(sc(e,o)[0])}),this.#aM.setSourceDataAtCell(t))}}let b8="by_value";bt(b8,function(e,t){let[o]=t;return o(e.value)},{name:"By value",inputsCount:0,inputValuesDecorator(e){let[t]=e;return[b1(t)]},showOperators:!1});class Ce extends f7{name="";searchMode;hiddenWhen;constructor(e,t){super(e,{id:t.id,stateless:!1}),this.name=t.name,this.searchMode=t.searchMode,this.hiddenWhen=t.hiddenWhen,this.elements.push(new b9(e,{searchMode:this.searchMode})),this.registerHooks()}registerHooks(){this.getMultipleSelectElement().addLocalHook("keydown",e=>this.#av(e)).addLocalHook("listTabKeydown",e=>this.runLocalHooks("listTabKeydown",e)),this.hot?.addHook("modifyFiltersMultiSelectValue",(e,t)=>this.#aP(e,t))}getElements(){let e=this.getMultipleSelectElement();return[e.getSearchInputElement(),e.getSelectAllElement(),e.getClearAllElement(),this.getMultipleSelectElement()]}setState(e){if(e&&e.command.key===b8){super.reset();let t=this.getMultipleSelectElement();t.setItems(e.itemsSnapshot),t.setValue(e.args[0]),t.setLocale(e.locale);return}this.reset()}getState(){let e=this.getMultipleSelectElement(),t=e.getItems();return{command:{key:e.isSelectedAllValues()||!t.length?bo:b8},args:[e.getValue()],itemsSnapshot:t}}updateState(e){let t=(t,o,n,i,r)=>{let[l]=Z(o,e=>e.name===b8),s={};if(l){let o=i(t,r);n&&(l.args[0]=n);let{itemsSnapshot:a,selectedValues:h}=this.#aD(t,o,l.args[0]),d=e.editedConditionStack.column;s.locale=this.hot?.getCellMetaTransient(0,d).locale,s.args=[h],s.command=be(b8),s.itemsSnapshot=a}else s.args=[],s.command=be(bo);this.state?.setValueAtIndex(t,s)};t(e.editedConditionStack.column,e.editedConditionStack.conditions,e.conditionArgsChange,e.filteredRowsFactory),e.dependentConditionStacks.length&&t(e.dependentConditionStacks[0].column,e.dependentConditionStacks[0].conditions,void 0,e.filteredRowsFactory,e.editedConditionStack)}#aD(e,t,o){let n=this.hot?.getTranslatedPhrase(a6)??"",i=Q(t,e=>e.value),r=this.hot?.hasHook("modifyFiltersMultiSelectValue")?new Map(t.map(t=>[t.value,this.hot?.getCellMetaTransient(t.row,e)])):null,l=b3(i,b4(t[0]?.meta)),s=[];return{itemsSnapshot:b6(l,o,n,e=>{e.checked&&s.push(e.value),this.#aN(e,r)}),selectedValues:s}}getMultipleSelectElement(){return this.elements.find(e=>e instanceof b9)}getMenuItemDescriptor(){return{key:this.id,name:this.name,isCommand:!1,disableSelection:!0,hidden:()=>this.isHidden()||"function"==typeof this.hiddenWhen&&this.hiddenWhen(),renderer:(e,t,o,n,i,r)=>{ne(t.parentNode)&&od(t.parentNode,"htFiltersMenuValue");let l=this.hot?.rootDocument.createElement("div")??t.ownerDocument.createElement("div");return od(l,"htFiltersMenuLabel"),l.textContent=r,t.appendChild(l),t.parentElement?.hasAttribute("ghost-table")||J(this.elements,e=>{let o=e.element;o&&t.appendChild(o)}),t}}}reset(){let e=this.hot?.getTranslatedPhrase(a6)??"",t=this._getColumnVisibleValues(),o=t.map(e=>e.value),n=this.hot?.hasHook("modifyFiltersMultiSelectValue")?new Map(t.map(e=>[e.value,e.meta])):null,i=b3(o,b4(t[0]?.meta)),r=b6(i,i,e,e=>{this.#aN(e,n)});this.getMultipleSelectElement().setItems(r),super.reset(),this.getMultipleSelectElement().setValue(i);let l=this.hot?.getPlugin("filters").getSelectedColumn()??null;null!==l&&this.getMultipleSelectElement().setLocale(this.hot?.getCellMetaTransient(0,l.visualIndex).locale)}#av(e){nS(e.keyCode,"ESCAPE")&&(this.runLocalHooks("cancel"),nR(e)),nS(e.keyCode,"ENTER")&&("apply"===this.searchMode&&this.runLocalHooks("accept"),nR(e))}#aN(e,t){t&&this.hot?.hasHook("modifyFiltersMultiSelectValue")&&(e.visualValue=this.hot?.runHooks("modifyFiltersMultiSelectValue",e.visualValue,t.get(e.value)))}#aP(e,t){return t.valueFormatter?t.valueFormatter(e,t):e}_getColumnVisibleValues(){let e=this.hot?.getPlugin("filters"),t=e?.getSelectedColumn()??null;return e&&null!==t?e._getValueListDataAtColumn(t.visualIndex):[]}}class Ct extends f7{name="";static get BUTTON_OK(){return"ok"}static get BUTTON_CANCEL(){return"cancel"}constructor(e,t){super(e,{id:t.id,stateless:!0}),this.name=t.name,this.elements.push(new bG(e,{type:"button",value:a7,className:"htUIButton htUIButtonOK",identifier:Ct.BUTTON_OK})),this.elements.push(new bG(e,{type:"button",value:a9,className:"htUIButton htUIButtonCancel",identifier:Ct.BUTTON_CANCEL})),this.registerHooks()}registerHooks(){J(this.elements,e=>{e.addLocalHook("click",(e,t)=>this.#aB(e,t))})}getMenuItemDescriptor(){return{key:this.id,name:this.name,isCommand:!1,disableSelection:!0,hidden:()=>this.isHidden(),renderer:(e,t)=>(ne(t.parentNode)&&od(t.parentNode,"htFiltersMenuActionBar"),J(this.elements,e=>{let o=e.element;o&&t.appendChild(o)}),t)}}accept(){this.runLocalHooks("accept")}cancel(){this.runLocalHooks("cancel")}#aB(e,t){t.options.identifier===Ct.BUTTON_OK?this.accept():this.cancel()}}let Co="ConditionCollection.filteringStates";class Cn{isMapRegistrable;filteringStates;constructor(e,t=!0){this.hot=e,this.isMapRegistrable=t,!0===this.isMapRegistrable?this.filteringStates=this.hot.columnIndexMapper.createAndRegisterIndexMap(Co,"linkedPhysicalIndexToValue"):(this.filteringStates=new sk,this.filteringStates.init(this.hot.columnIndexMapper.getNumberOfIndexes()))}isEmpty(){return 0===this.getFilteredColumns().length}isMatch(e,t){let o=this.filteringStates.getValueAtIndex(t),n=o?.conditions??[],i=o?.operation;return this.isMatchInConditions(n,e,i)}isMatchInConditions(e,t){let o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:bX;if(e.length){let n;return(bY[o]||to(`Operation with id "${o}" does not exist.`),n=bY[o].func,function(e,t){return n(e,t)})(e,t)}return!0}addCondition(e,t){let o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:bX,n=arguments.length>3?arguments[3]:void 0,i=this.hot.getCellMetaTransient(0,e).locale,r=t.args.map(e=>"string"==typeof e?iS(e,i):e),l=t.name||t.command.key;this.runLocalHooks("beforeAdd",e);let s=this.getOperation(e);s?s!==o&&to(eu`The column of index ${e} has been already applied with a \`${s}\`\x20
|
|
266
266
|
filter operation. Use \`removeConditions\` to clear the current conditions and then add new ones.\x20
|
|
267
267
|
Mind that you cannot mix different types of operations (for instance, if you use \`conjunction\`,\x20
|
|
268
268
|
use it consequently for a particular column).`):eD(bY[o])&&to(eu`Unexpected operation named \`${o}\`. Possible ones are\x20
|
|
269
|
-
\`disjunction\` and \`conjunction\`.`);let a=this.getConditions(e);0===a.length?this.filteringStates.setValueAtIndex(e,{operation:o,conditions:[{name:l,args:r,func:f8(l,r)}]},n):a.push({name:l,args:r,func:f8(l,r)}),this.runLocalHooks("afterAdd",e)}getConditions(e){return this.filteringStates.getValueAtIndex(e)?.conditions??[]}getOperation(e){return this.filteringStates.getValueAtIndex(e)?.operation}getFilteredColumns(){return this.filteringStates.getEntries().map(e=>{let[t]=e;return t})}getColumnStackPosition(e){return this.getFilteredColumns().indexOf(e)}exportAllConditions(){return this.filteringStates.getEntries().reduce((e,t)=>{let[o,n]=t,{operation:i,conditions:r}=n;return e.push({column:o,operation:i,conditions:r.map(e=>{let{name:t,args:o}=e;return{name:t,args:[...o]}})}),e},[])}importAllConditions(e){this.clean(),e.forEach(e=>{e.conditions.forEach(t=>{this.addCondition(e.column,t,e.operation)})})}removeConditions(e){this.runLocalHooks("beforeRemove",e),this.filteringStates.clearValue(e),this.runLocalHooks("afterRemove",e)}clean(){this.runLocalHooks("beforeClean"),this.filteringStates.clear(),this.runLocalHooks("afterClean")}hasConditions(e,t){let o=this.getConditions(e);return t?o.some(e=>e.name===t):o.length>0}destroy(){this.isMapRegistrable&&this.hot.columnIndexMapper.unregisterMap(Co),this.clearLocalHooks(),this.filteringStates=null}}th(Cn,sb);let Ci=class{conditionCollection;columnDataFactory;constructor(e,t=()=>[]){this.conditionCollection=e,this.columnDataFactory=t}filter(){let e=[];return J(this.conditionCollection.getFilteredColumns(),(t,o)=>{let n;if(o){let o=Q(e,e=>e.row);n=this.columnDataFactory(t,o)}else n=this.columnDataFactory(t);e=this.filterByColumn(t,n)}),e}filterByColumn(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[],o=[];return J(t,t=>{void 0!==t&&this.conditionCollection.isMatch(t,e)&&o.push(t)}),o}};class Cr{conditionCollection;columnDataFactory;changes=[];grouping=!1;latestEditedColumnPosition=-1;latestOrderStack=[];#aL=null;constructor(e,t,o=()=>[]){this.hot=e,this.conditionCollection=t,this.columnDataFactory=o,this.conditionCollection.addLocalHook("beforeRemove",e=>this.#aV(e)),this.conditionCollection.addLocalHook("afterRemove",e=>this.updateStatesAtColumn(e)),this.conditionCollection.addLocalHook("afterAdd",e=>this.updateStatesAtColumn(e)),this.conditionCollection.addLocalHook("beforeClean",()=>this.#aF()),this.conditionCollection.addLocalHook("afterClean",()=>this.#az())}groupChanges(){this.grouping=!0}flush(){this.grouping=!1,this.#aW(()=>{J(this.changes,e=>{this.updateStatesAtColumn(e)})}),this.changes.length=0}#aW(e){if(null!==this.#aL)return void e();this.#aL=new Map;try{e()}finally{this.#aL=null}}#a$(e,t){if(t||null===this.#aL)return this.columnDataFactory(e,t);let o=this.#aL.get(e);return o||(o=this.columnDataFactory(e),this.#aL.set(e,o)),o}#aV(e){this.latestEditedColumnPosition=this.conditionCollection.getColumnStackPosition(e)}updateStatesAtColumn(e,t){if(this.grouping){-1===this.changes.indexOf(e)&&this.changes.push(e);return}this.#aW(()=>this.#aU(e,t))}#aU(e,t){var o=this;let n=this.conditionCollection.exportAllConditions(),i=this.conditionCollection.getColumnStackPosition(e);-1===i&&(i=this.latestEditedColumnPosition);let r=n.slice(0,i),l=n.slice(i);l.length&&l[0].column===e&&l.shift();let s=ng(function(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:[],i=new Cn(o.hot,!1),r=[].concat(e,n);i.importAllConditions(r);let l=o.#a$(Number(t)),s=b1(Q(i.isEmpty()?l:new Ci(i,(e,t)=>o.#a$(e,t)).filter(),e=>e.row));return i.destroy(),Z(l,e=>s(e.row))})(r),a=[...this.conditionCollection.getConditions(e)];this.runLocalHooks("update",{editedConditionStack:{column:e,conditions:a},dependentConditionStacks:l,filteredRowsFactory:s,conditionArgsChange:t})}#aF(){this.latestOrderStack=this.conditionCollection.getFilteredColumns()}#az(){this.#aW(()=>{J(this.latestOrderStack,e=>{this.updateStatesAtColumn(e)})})}destroy(){this.clearLocalHooks(),tp(this,(e,t)=>{this[t]=null})}}th(Cr,sb);let Cl="filters",Cs="filters";class Ca extends ps{static get PLUGIN_KEY(){return Cs}static get PLUGIN_PRIORITY(){return 250}static get DEFAULT_SETTINGS(){return{searchMode:"show"}}static get SETTINGS_VALIDATORS(){return{searchMode:e=>"string"==typeof e&&["show","apply"].includes(e)}}static get PLUGIN_DEPS(){return["plugin:DropdownMenu","plugin:HiddenRows","cell-type:checkbox"]}dropdownMenuPlugin=null;conditionCollection=null;conditionUpdateObserver=null;components=new Map([["filter_by_condition",null],["filter_operators",null],["filter_by_condition2",null],["filter_by_value",null],["filter_action_bar",null]]);filtersRowsMap=null;#aG;#aq=new WeakSet;#aj=[];#aY=[];#aK=!1;constructor(e){super(e),this.hot.addHook("afterGetColHeader",this.#i9)}#aX(e){return this.components.get(e)??null}#aZ(){return this.components.get("filter_operators")??null}#aQ(){return this.components.get("filter_by_value")??null}isEnabled(){return!!this.hot.getSettings()[Cs]}enablePlugin(){if(this.enabled)return;this.#aK=!0===this.hot.runHooks("hasExternalDataSource"),this.filtersRowsMap=this.hot.rowIndexMapper.createAndRegisterIndexMap(this.pluginName??"","trimming"),this.dropdownMenuPlugin=this.hot.getPlugin("dropdownMenu");let e=this.hot.getSettings().dropdownMenu,t="object"==typeof e?e.uiContainer:null,o=ne(t)?t:this.hot.rootPortalElement,n=e=>(e.addLocalHook("accept",()=>this.#aJ("accept")),e.addLocalHook("cancel",()=>this.#aJ("cancel")),e.addLocalHook("change",t=>this.#a0(e,t)),e),i=()=>`${this.hot.getTranslatedPhrase(a0)}:`,r=()=>`${this.hot.getTranslatedPhrase(a1)}:`;if(!this.components.get("filter_by_condition")){let e=new bj(this.hot,{id:"filter_by_condition",name:i,addSeparator:!1,menuContainer:o});e.addLocalHook("afterClose",()=>this.#a1()),this.components.set("filter_by_condition",n(e))}if(this.components.get("filter_operators")||this.components.set("filter_operators",new b0(this.hot,{id:"filter_operators",name:"Operators"})),!this.components.get("filter_by_condition2")){let e=new bj(this.hot,{id:"filter_by_condition2",name:"",addSeparator:!0,menuContainer:o});e.addLocalHook("afterClose",()=>this.#a1()),this.components.set("filter_by_condition2",n(e))}if(!this.components.get("filter_by_value")){let e=this.getSetting("searchMode");this.components.set("filter_by_value",n(new Ce(this.hot,{id:"filter_by_value",name:r,searchMode:e,hiddenWhen:()=>this.#aK})))}if(this.components.get("filter_action_bar")||this.components.set("filter_action_bar",n(new Ct(this.hot,{id:"filter_action_bar",name:"Action bar"}))),this.conditionCollection||(this.conditionCollection=new Cn(this.hot)),this.conditionUpdateObserver||(this.conditionUpdateObserver=new Cr(this.hot,this.conditionCollection,(e,t)=>this.getDataMapAtColumn(e,t)),this.conditionUpdateObserver.addLocalHook("update",e=>this.#a2(e))),this.components.forEach(e=>e?.show()),this.addHook("afterDropdownMenuDefaultOptions",this.#a3),this.addHook("beforeDropdownMenuShow",this.#a6),this.addHook("afterDropdownMenuShow",this.#a4),this.addHook("afterDropdownMenuHide",this.#a5),this.addHook("afterChange",this.#iC),this.addHook("afterUpdateData",this.#a7),this.addHook("afterDataProviderFetch",this.#rn),this.addHook("afterDataProviderFetchError",this.#a9),this.hot.getSettings().dropdownMenu&&this.dropdownMenuPlugin&&(this.dropdownMenuPlugin.disablePlugin(),this.dropdownMenuPlugin.enablePlugin()),!this.#aG&&this.dropdownMenuPlugin?.enabled){let e=[{focus:()=>{let e=this.#aG;if(!e)return;let t=e.getMenu(),o=t.getNavigator(),n=e.getLastMenuPage();t.focus(),n>0?o?.setCurrentPage(n):o?.toFirstItem()}},...Array.from(this.components).map(e=>{let[,t]=e;return t?.getElements()??[]}).flat()];this.#aG=function(e,t){let o,n=-1,i=mB({initialPage:0,size:()=>t.length,onItemSelect:(e,o)=>{let n=t[e];return n instanceof b9?o:(!ne(n.element)||!!oS(n.element))&&void n.focus()}}),r=e=>()=>{o.isOpened()&&o.getKeyboardShortcutsCtrl().listen(Cl),i.setCurrentPage(t.indexOf(e))};function l(e){let r=o.getKeyboardShortcutsCtrl(),l=e.getKeyboardShortcutsCtrl();i.clear(),l.addCustomShortcuts([{keys:[["Tab"],["Shift","Tab"]],forwardToContext:r.getContext(Cl),callback:()=>{e.isSubMenu()&&e.close(),r.listen(Cl)}}]),e.isSubMenu()||r.addCustomShortcuts([{keys:[["Tab"],["Shift","Tab"]],callback:e=>{let t=o.getNavigator();t.getCurrentPage()>-1&&(n=t.getCurrentPage()),t.clear(),e.shiftKey?i.toPreviousItem():i.toNextItem()}},{keys:[["Escape"]],callback:()=>{o.close()}},{keys:[["Enter"],["Space"]],preventDefault:!1,callback:e=>{let o=t[i.getCurrentPage()];o instanceof bq&&(o.openOptions(),e.preventDefault()),o instanceof b5&&(o.activate(),e.preventDefault()),o instanceof bU||e.preventDefault()}}],Cl)}function s(e){e.addLocalHook("afterSelectionChange",e=>{e.key.startsWith("filter_")||i.clear()}),e.addLocalHook("afterSubmenuOpen",l),e.addLocalHook("afterOpen",l),o=e}return t.forEach(e=>{e instanceof bU&&(e.addLocalHook("click",r(e)),e.addLocalHook("focus",r(e)),e.addLocalHook("afterClose",r(e)))}),s(e),{...i,listen:function(){o.focus(),o.getKeyboardShortcutsCtrl().listen(Cl)},setMenu:s,getMenu:function(){return o},getLastMenuPage:function(){return n}}}(this.dropdownMenuPlugin.menu,e);let t=e=>{this.#aG?.listen(),e.preventDefault(),nS(e.keyCode,"TAB")&&(e.shiftKey?this.#aG?.toPreviousItem():this.#aG?.toNextItem())};this.components.get("filter_by_value")?.addLocalHook("listTabKeydown",t),this.components.get("filter_by_condition")?.addLocalHook("selectTabKeydown",t)}this.registerShortcuts(),super.enablePlugin()}updatePlugin(){this.disablePlugin(),this.enablePlugin(),super.updatePlugin()}disablePlugin(){this.enabled&&(this.dropdownMenuPlugin?.enabled&&this.dropdownMenuPlugin.menu?.clearLocalHooks(),this.components.forEach((e,t)=>{e?.destroy(),this.components.set(t,null)}),this.conditionCollection?.destroy(),this.conditionCollection=null,this.hot.rowIndexMapper.unregisterMap(this.pluginName??"")),this.unregisterShortcuts(),super.disablePlugin()}registerShortcuts(){this.hot.getShortcutManager().getContext("grid")?.addShortcut({keys:[["Alt","A"]],stopPropagation:!0,callback:()=>{let e=this.hot.getSelected();this.clearConditions(),this.filter(),e&&this.hot.selectCells(e)},group:Cs})}unregisterShortcuts(){this.hot.getShortcutManager().getContext("grid")?.removeShortcutsByGroup(Cs)}addCondition(e,t,o){let n=arguments.length>3&&void 0!==arguments[3]?arguments[3]:bX;if(t===b8&&this.#aK)return;let i=this.hot.toPhysicalColumn(e);this.conditionCollection?.addCondition(i,{command:{key:t},args:o},n)}removeConditions(e){let t=this.hot.toPhysicalColumn(e);this.conditionCollection?.removeConditions(t)}clearConditions(e){if(void 0===e)this.conditionCollection?.clean();else{let t=this.hot.toPhysicalColumn(e);this.conditionCollection?.removeConditions(t)}}importConditions(e){this.conditionUpdateObserver?.groupChanges(),this.conditionCollection?.importAllConditions(e),this.conditionUpdateObserver?.flush()}exportConditions(){return this.conditionCollection?.exportAllConditions()??[]}filter(){let{navigableHeaders:e}=this.hot.getSettings(),t=!this.conditionCollection?.isEmpty(),o=this.exportConditions();this.#aK&&(this.#aY=ts(this.#aj));let n=this.hot.runHooks("beforeFilter",o,this.#aj);if(!1!==n&&t){let t=Q(this._createDataFilter().filter(),e=>e.row),o=b1(t),n=this.hot.countSourceRows(),i=Array(n);for(let e=0;e<n;e++)i[e]=!o(e);this.hot.batchExecution(()=>{this.filtersRowsMap?.setValues(i)},!0),e||t.length||this.hot.deselectCell(),this.#aj=this.exportConditions()}else!1===n||t?this.#aK?this.#aj=this.exportConditions():this.importConditions(this.#aj):(this.#aj=this.exportConditions(),this.filtersRowsMap?.clear());if(this.hot.selection.isSelected()){let t=this.hot.getSelectedRangeActive()?.highlight.col;null!=t&&this.hot.selectCell(e?-1:0,t)}!1!==n&&(this.hot.runHooks("afterFilter",o),this.hot.view.adjustElementsSize(),this.hot.render())}getSelectedColumn(){let e=this.hot.getSelectedRangeActive()?.highlight;return e&&null!==e.col?{visualIndex:e.col,physicalIndex:this.hot.toPhysicalColumn(e.col)}:null}getDataMapAtColumn(e,t){let o=t?t.length:this.hot.countSourceRows(),n=this.hot.toVisualColumn(e),i=[];for(let r=0;r<o;r++){let o=t?t[r]:r,l=this.hot._getMetaManager().getCellMetaUncached(o,e,{visualRow:o,visualColumn:e}),s=n1(this.hot.getSourceDataAtCell(o,n),l);if(this.hot.hasHook("modifyData")){let t=tC(s);this.hot.runHooks("modifyData",o,e,t,"get"),t.isTouched()&&(s=t.value)}i.push({row:o,meta:l,value:b2(s)})}return i}#iC=e=>{if(e){let t=new Set;J(e,e=>{let[,o]=e,n=this.hot.propToCol(o),i=this.hot.toPhysicalColumn(n);this.conditionCollection?.hasConditions(i)&&t.add(i)}),t.forEach(e=>{this.updateValueComponentCondition(e)})}};updateValueComponentCondition(e){let t=this.hot.toVisualColumn(e),o=b3(this.hot.getDataAtCol(t),b4(this.hot.countRows()>0?this.hot.getCellMetaTransient(0,t):null));this.conditionUpdateObserver?.updateStatesAtColumn(e,o)}restoreComponents(e){let t=this.getSelectedColumn()?.physicalIndex??-1;e.forEach(e=>{e.isHidden()||e.restoreState(t)}),this.updateDependentComponentsVisibility()}#a7=(e,t)=>{if(t||this.#aK||!this.conditionCollection)return;let o=this.conditionCollection?.getFilteredColumns()??[];0!==o.length&&J(o,e=>{this.conditionUpdateObserver?.updateStatesAtColumn(e)})};#rn=e=>{this.importConditions(e?.filtersConditionsStack??[])};#a9=()=>{this.importConditions(this.#aY)};#a4=()=>{let e=this.dropdownMenuPlugin?.menu;e&&(this.restoreComponents(Array.from(this.components.values()).filter(e=>null!==e)),e.updateMenuDimensions())};#a5=()=>{this.components.get("filter_by_condition")?.getSelectElement()?.closeOptions(),this.components.get("filter_by_condition2")?.getSelectElement()?.closeOptions()};#a6=()=>{let e=this.dropdownMenuPlugin?.menu;e&&(this.#aq.has(e)||this.#aG?.setMenu(e),this.#aq.add(e))};#a3=e=>{e.items.push({name:ml}),this.components.forEach(t=>{t&&e.items.push(t.getMenuItemDescriptor())})};getOperationBasedOnArguments(e,t,o,n){let i=e,r=t.command?.key,l=o.command?.key,s=n.command?.key;return i===bZ&&r!==bo&&l!==bo&&s!==bo?i=bQ:s!==bo&&(r===bo||l===bo)&&(i=bX),i}#aJ(e){if("accept"===e){let e=this.getSelectedColumn();if(null===e)return void this.dropdownMenuPlugin?.close();let{physicalIndex:t}=e,o={command:{key:bo},args:[]},n=this.#aX("filter_by_condition")?.getState()??o,i=this.#aX("filter_by_condition2")?.getState()??o,r=this.#aQ()?.getState()??o,l=this.getOperationBasedOnArguments(this.#aZ()?.getActiveOperationId()??bX,n,i,r);this.conditionUpdateObserver?.groupChanges();let s=this.conditionCollection?.getColumnStackPosition(t);(void 0===s||-1===s)&&(s=void 0),this.conditionCollection?.removeConditions(t);let a=n.command?.key,h=i.command?.key,d=r.command?.key;a!==bo&&(this.conditionCollection?.addCondition(t,n,l,s),h!==bo&&this.conditionCollection?.addCondition(t,i,l,s)),d===bo||this.#aK||this.conditionCollection?.addCondition(t,r,l,s),this.conditionUpdateObserver?.flush(),this.components.forEach(e=>e?.saveState(t)),this.filter()}this.dropdownMenuPlugin?.close()}#a0(e,t){let o=this.dropdownMenuPlugin?.menu;this.updateDependentComponentsVisibility(),e.constructor!==bj||t.inputsCount||this.setListeningDropdownMenu(),o?.updateMenuDimensions()}#a1(){this.setListeningDropdownMenu()}setListeningDropdownMenu(){this.dropdownMenuPlugin&&this.dropdownMenuPlugin.setListening()}updateDependentComponentsVisibility(){let e=this.#aX("filter_by_condition"),t=(e?.getState()??{command:{key:bo}}).command,o=[this.components.get("filter_by_condition2"),this.components.get("filter_operators")].filter(e=>null!=e);t?.showOperators?this.showComponents(...o):this.hideComponents(...o)}#i9=(e,t)=>{let o=this.hot.toPhysicalColumn(e);this.enabled&&this.conditionCollection?.hasConditions(o)&&ol(t)?od(t,"htFiltersActive"):oc(t,"htFiltersActive")};_getValueListDataAtColumn(e){let t=this.hot.toPhysicalColumn(e),o=this.conditionCollection?.getColumnStackPosition(t)??-1;if(-1===o||this.#aK)return Q(this.hot.getDataAtCol(e),(t,o)=>({value:b2(t),meta:this.hot.getCellMetaTransient(o,e)}));let n=this.getDataMapAtColumn(t),i=(this.conditionCollection?.exportAllConditions()??[]).slice(0,o);if(0===i.length)return n;let r=new Cn(this.hot,!1);r.importAllConditions(i);let l=b1(Q(this._createDataFilter(r).filter(),e=>e.row));return r.destroy(),Z(n,e=>l(e.row))}_createDataFilter(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:this.conditionCollection;return e||(e=new Cn(this.hot,!1)),new Ci(e,(e,t)=>this.getDataMapAtColumn(e,t))}#a2(e){if(!this.dropdownMenuPlugin?.enabled)return;let t=e.editedConditionStack,o=t.conditions,n=t.column,i=e.conditionArgsChange;Array.isArray(i)&&(this.#aj=this.#aj.map(e=>(e.column===n&&o.length>0&&e.conditions.forEach(e=>{"by_value"===e.name&&(e.args=[[...i]])}),e)));let r=o.filter(e=>e.name===b8),l=o.filter(e=>e.name!==b8);if(r.length>=2||l.length>=3)tZ(eu`The filter conditions have been applied properly, but couldn’t be displayed visually.\x20
|
|
269
|
+
\`disjunction\` and \`conjunction\`.`);let a=this.getConditions(e);0===a.length?this.filteringStates.setValueAtIndex(e,{operation:o,conditions:[{name:l,args:r,func:f8(l,r)}]},n):a.push({name:l,args:r,func:f8(l,r)}),this.runLocalHooks("afterAdd",e)}getConditions(e){return this.filteringStates.getValueAtIndex(e)?.conditions??[]}getOperation(e){return this.filteringStates.getValueAtIndex(e)?.operation}getFilteredColumns(){return this.filteringStates.getEntries().map(e=>{let[t]=e;return t})}getColumnStackPosition(e){return this.getFilteredColumns().indexOf(e)}exportAllConditions(){return this.filteringStates.getEntries().reduce((e,t)=>{let[o,n]=t,{operation:i,conditions:r}=n;return e.push({column:o,operation:i,conditions:r.map(e=>{let{name:t,args:o}=e;return{name:t,args:[...o]}})}),e},[])}importAllConditions(e){this.clean(),e.forEach(e=>{e.conditions.forEach(t=>{this.addCondition(e.column,t,e.operation)})})}removeConditions(e){this.runLocalHooks("beforeRemove",e),this.filteringStates.clearValue(e),this.runLocalHooks("afterRemove",e)}clean(){this.runLocalHooks("beforeClean"),this.filteringStates.clear(),this.runLocalHooks("afterClean")}hasConditions(e,t){let o=this.getConditions(e);return t?o.some(e=>e.name===t):o.length>0}destroy(){this.isMapRegistrable&&this.hot.columnIndexMapper.unregisterMap(Co),this.clearLocalHooks(),this.filteringStates=null}}th(Cn,sb);let Ci=class{conditionCollection;columnDataFactory;constructor(e,t=()=>[]){this.conditionCollection=e,this.columnDataFactory=t}filter(){let e=[];return J(this.conditionCollection.getFilteredColumns(),(t,o)=>{let n;if(o){let o=Q(e,e=>e.row);n=this.columnDataFactory(t,o)}else n=this.columnDataFactory(t);e=this.filterByColumn(t,n)}),e}filterByColumn(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[],o=[];return J(t,t=>{void 0!==t&&this.conditionCollection.isMatch(t,e)&&o.push(t)}),o}};class Cr{conditionCollection;columnDataFactory;changes=[];grouping=!1;latestEditedColumnPosition=-1;latestOrderStack=[];#aL=null;constructor(e,t,o=()=>[]){this.hot=e,this.conditionCollection=t,this.columnDataFactory=o,this.conditionCollection.addLocalHook("beforeRemove",e=>this.#aV(e)),this.conditionCollection.addLocalHook("afterRemove",e=>this.updateStatesAtColumn(e)),this.conditionCollection.addLocalHook("afterAdd",e=>this.updateStatesAtColumn(e)),this.conditionCollection.addLocalHook("beforeClean",()=>this.#aF()),this.conditionCollection.addLocalHook("afterClean",()=>this.#az())}groupChanges(){this.grouping=!0}flush(){this.grouping=!1,this.#aW(()=>{J(this.changes,e=>{this.updateStatesAtColumn(e)})}),this.changes.length=0}#aW(e){if(null!==this.#aL)return void e();this.#aL=new Map;try{e()}finally{this.#aL=null}}#a$(e,t){if(t||null===this.#aL)return this.columnDataFactory(e,t);let o=this.#aL.get(e);return o||(o=this.columnDataFactory(e),this.#aL.set(e,o)),o}#aV(e){this.latestEditedColumnPosition=this.conditionCollection.getColumnStackPosition(e)}updateStatesAtColumn(e,t){if(this.grouping){-1===this.changes.indexOf(e)&&this.changes.push(e);return}this.#aW(()=>this.#aU(e,t))}#aU(e,t){var o=this;let n=this.conditionCollection.exportAllConditions(),i=this.conditionCollection.getColumnStackPosition(e);-1===i&&(i=this.latestEditedColumnPosition);let r=n.slice(0,i),l=n.slice(i);l.length&&l[0].column===e&&l.shift();let s=ng(function(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:[],i=new Cn(o.hot,!1),r=[].concat(e,n);i.importAllConditions(r);let l=o.#a$(Number(t)),s=b1(Q(i.isEmpty()?l:new Ci(i,(e,t)=>o.#a$(e,t)).filter(),e=>e.row));return i.destroy(),Z(l,e=>s(e.row))})(r),a=[...this.conditionCollection.getConditions(e)];this.runLocalHooks("update",{editedConditionStack:{column:e,conditions:a},dependentConditionStacks:l,filteredRowsFactory:s,conditionArgsChange:t})}#aF(){this.latestOrderStack=this.conditionCollection.getFilteredColumns()}#az(){this.#aW(()=>{J(this.latestOrderStack,e=>{this.updateStatesAtColumn(e)})})}destroy(){this.clearLocalHooks(),tp(this,(e,t)=>{this[t]=null})}}th(Cr,sb);let Cl="filters",Cs="filters";class Ca extends ps{static get PLUGIN_KEY(){return Cs}static get PLUGIN_PRIORITY(){return 250}static get DEFAULT_SETTINGS(){return{searchMode:"show"}}static get SETTINGS_VALIDATORS(){return{searchMode:e=>"string"==typeof e&&["show","apply"].includes(e)}}static get PLUGIN_DEPS(){return["plugin:DropdownMenu","plugin:HiddenRows","cell-type:checkbox"]}dropdownMenuPlugin=null;conditionCollection=null;conditionUpdateObserver=null;components=new Map([["filter_by_condition",null],["filter_operators",null],["filter_by_condition2",null],["filter_by_value",null],["filter_action_bar",null]]);filtersRowsMap=null;#aG;#aq=new WeakSet;#aj=[];#aY=[];#aK=!1;constructor(e){super(e),this.hot.addHook("afterGetColHeader",this.#i9)}#aX(e){return this.components.get(e)??null}#aZ(){return this.components.get("filter_operators")??null}#aQ(){return this.components.get("filter_by_value")??null}isEnabled(){return!!this.hot.getSettings()[Cs]}enablePlugin(){if(this.enabled)return;this.#aK=!0===this.hot.runHooks("hasExternalDataSource"),this.filtersRowsMap=this.hot.rowIndexMapper.createAndRegisterIndexMap(this.pluginName??"","trimming"),this.dropdownMenuPlugin=this.hot.getPlugin("dropdownMenu");let e=this.hot.getSettings().dropdownMenu,t="object"==typeof e?e.uiContainer:null,o=ne(t)?t:this.hot.rootPortalElement,n=e=>(e.addLocalHook("accept",()=>this.#aJ("accept")),e.addLocalHook("cancel",()=>this.#aJ("cancel")),e.addLocalHook("change",t=>this.#a0(e,t)),e),i=()=>`${this.hot.getTranslatedPhrase(a0)}:`,r=()=>`${this.hot.getTranslatedPhrase(a1)}:`;if(!this.components.get("filter_by_condition")){let e=new bj(this.hot,{id:"filter_by_condition",name:i,addSeparator:!1,menuContainer:o});e.addLocalHook("afterClose",()=>this.#a1()),this.components.set("filter_by_condition",n(e))}if(this.components.get("filter_operators")||this.components.set("filter_operators",new b0(this.hot,{id:"filter_operators",name:"Operators"})),!this.components.get("filter_by_condition2")){let e=new bj(this.hot,{id:"filter_by_condition2",name:"",addSeparator:!0,menuContainer:o});e.addLocalHook("afterClose",()=>this.#a1()),this.components.set("filter_by_condition2",n(e))}if(!this.components.get("filter_by_value")){let e=this.getSetting("searchMode");this.components.set("filter_by_value",n(new Ce(this.hot,{id:"filter_by_value",name:r,searchMode:e,hiddenWhen:()=>this.#aK})))}if(this.components.get("filter_action_bar")||this.components.set("filter_action_bar",n(new Ct(this.hot,{id:"filter_action_bar",name:"Action bar"}))),this.conditionCollection||(this.conditionCollection=new Cn(this.hot)),this.conditionUpdateObserver||(this.conditionUpdateObserver=new Cr(this.hot,this.conditionCollection,(e,t)=>this.getDataMapAtColumn(e,t)),this.conditionUpdateObserver.addLocalHook("update",e=>this.#a2(e))),this.components.forEach(e=>e?.show()),this.addHook("afterDropdownMenuDefaultOptions",this.#a3),this.addHook("beforeDropdownMenuShow",this.#a6),this.addHook("afterDropdownMenuShow",this.#a4),this.addHook("afterDropdownMenuHide",this.#a5),this.addHook("afterChange",this.#iC),this.addHook("afterUpdateData",this.#a7),this.addHook("afterDataProviderFetch",this.#rn),this.addHook("afterDataProviderFetchError",this.#a9),this.hot.getSettings().dropdownMenu&&this.dropdownMenuPlugin&&(this.dropdownMenuPlugin.disablePlugin(),this.dropdownMenuPlugin.enablePlugin()),!this.#aG&&this.dropdownMenuPlugin?.enabled){let e=[{focus:()=>{let e=this.#aG;if(!e)return;let t=e.getMenu(),o=t.getNavigator(),n=e.getLastMenuPage();t.focus(),n>0?o?.setCurrentPage(n):o?.toFirstItem()}},...Array.from(this.components).map(e=>{let[,t]=e;return t?.getElements()??[]}).flat()];this.#aG=function(e,t){let o,n=-1,i=mB({initialPage:0,size:()=>t.length,onItemSelect:(e,o)=>{let n=t[e];return n instanceof b9?o:(!ne(n.element)||!!oS(n.element))&&void n.focus()}}),r=e=>()=>{o.isOpened()&&o.getKeyboardShortcutsCtrl().listen(Cl),i.setCurrentPage(t.indexOf(e))};function l(e){let r=o.getKeyboardShortcutsCtrl(),l=e.getKeyboardShortcutsCtrl();i.clear(),l.addCustomShortcuts([{keys:[["Tab"],["Shift","Tab"]],forwardToContext:r.getContext(Cl),callback:()=>{e.isSubMenu()&&e.close(),r.listen(Cl)}}]),e.isSubMenu()||r.addCustomShortcuts([{keys:[["Tab"],["Shift","Tab"]],callback:e=>{let t=o.getNavigator();t.getCurrentPage()>-1&&(n=t.getCurrentPage()),t.clear(),e.shiftKey?i.toPreviousItem():i.toNextItem()}},{keys:[["Escape"]],callback:()=>{o.close()}},{keys:[["Enter"],["Space"]],preventDefault:!1,callback:e=>{let o=t[i.getCurrentPage()];o instanceof bq&&(o.openOptions(),e.preventDefault()),o instanceof b5&&(o.activate(),e.preventDefault()),o instanceof bU||e.preventDefault()}}],Cl)}function s(e){e.addLocalHook("afterSelectionChange",e=>{e.key.startsWith("filter_")||i.clear()}),e.addLocalHook("afterSubmenuOpen",l),e.addLocalHook("afterOpen",l),o=e}return t.forEach(e=>{e instanceof bU&&(e.addLocalHook("click",r(e)),e.addLocalHook("focus",r(e)),e.addLocalHook("afterClose",r(e)))}),s(e),{...i,listen:function(){o.focus(),o.getKeyboardShortcutsCtrl().listen(Cl)},setMenu:s,getMenu:function(){return o},getLastMenuPage:function(){return n}}}(this.dropdownMenuPlugin.menu,e);let t=e=>{this.#aG?.listen(),e.preventDefault(),nS(e.keyCode,"TAB")&&(e.shiftKey?this.#aG?.toPreviousItem():this.#aG?.toNextItem())};this.components.get("filter_by_value")?.addLocalHook("listTabKeydown",t),this.components.get("filter_by_condition")?.addLocalHook("selectTabKeydown",t)}this.registerShortcuts(),super.enablePlugin()}updatePlugin(){this.disablePlugin(),this.enablePlugin(),super.updatePlugin()}disablePlugin(){this.enabled&&(this.dropdownMenuPlugin?.enabled&&this.dropdownMenuPlugin.menu?.clearLocalHooks(),this.components.forEach((e,t)=>{e?.destroy(),this.components.set(t,null)}),this.conditionUpdateObserver?.destroy(),this.conditionUpdateObserver=null,this.conditionCollection?.destroy(),this.conditionCollection=null,this.#aG=void 0,this.hot.rowIndexMapper.unregisterMap(this.pluginName??"")),this.unregisterShortcuts(),super.disablePlugin()}registerShortcuts(){this.hot.getShortcutManager().getContext("grid")?.addShortcut({keys:[["Alt","A"]],stopPropagation:!0,callback:()=>{let e=this.hot.getSelected();this.clearConditions(),this.filter(),e&&this.hot.selectCells(e)},group:Cs})}unregisterShortcuts(){this.hot.getShortcutManager().getContext("grid")?.removeShortcutsByGroup(Cs)}addCondition(e,t,o){let n=arguments.length>3&&void 0!==arguments[3]?arguments[3]:bX;if(t===b8&&this.#aK)return;let i=this.hot.toPhysicalColumn(e);this.conditionCollection?.addCondition(i,{command:{key:t},args:o},n)}removeConditions(e){let t=this.hot.toPhysicalColumn(e);this.conditionCollection?.removeConditions(t)}clearConditions(e){if(void 0===e)this.conditionCollection?.clean();else{let t=this.hot.toPhysicalColumn(e);this.conditionCollection?.removeConditions(t)}}importConditions(e){this.conditionUpdateObserver?.groupChanges(),this.conditionCollection?.importAllConditions(e),this.conditionUpdateObserver?.flush()}exportConditions(){return this.conditionCollection?.exportAllConditions()??[]}filter(){let{navigableHeaders:e}=this.hot.getSettings(),t=!this.conditionCollection?.isEmpty(),o=this.exportConditions();this.#aK&&(this.#aY=ts(this.#aj));let n=this.hot.runHooks("beforeFilter",o,this.#aj);if(!1!==n&&t){let t=Q(this._createDataFilter().filter(),e=>e.row),o=b1(t),n=this.hot.countSourceRows(),i=Array(n);for(let e=0;e<n;e++)i[e]=!o(e);this.hot.batchExecution(()=>{this.filtersRowsMap?.setValues(i)},!0),e||t.length||this.hot.deselectCell(),this.#aj=this.exportConditions()}else!1===n||t?this.#aK?this.#aj=this.exportConditions():this.importConditions(this.#aj):(this.#aj=this.exportConditions(),this.filtersRowsMap?.clear());if(this.hot.selection.isSelected()){let t=this.hot.getSelectedRangeActive()?.highlight.col;null!=t&&this.hot.selectCell(e?-1:0,t)}!1!==n&&(this.hot.runHooks("afterFilter",o),this.hot.view.adjustElementsSize(),this.hot.render())}getSelectedColumn(){let e=this.hot.getSelectedRangeActive()?.highlight;return e&&null!==e.col?{visualIndex:e.col,physicalIndex:this.hot.toPhysicalColumn(e.col)}:null}getDataMapAtColumn(e,t){let o=t?t.length:this.hot.countSourceRows(),n=this.hot.toVisualColumn(e),i=[];for(let r=0;r<o;r++){let o=t?t[r]:r,l=this.hot._getMetaManager().getCellMetaUncached(o,e,{visualRow:o,visualColumn:e}),s=n1(this.hot.getSourceDataAtCell(o,n),l);if(this.hot.hasHook("modifyData")){let t=tC(s);this.hot.runHooks("modifyData",o,e,t,"get"),t.isTouched()&&(s=t.value)}i.push({row:o,meta:l,value:b2(s)})}return i}#iC=e=>{if(e){let t=new Set;J(e,e=>{let[,o]=e,n=this.hot.propToCol(o),i=this.hot.toPhysicalColumn(n);this.conditionCollection?.hasConditions(i)&&t.add(i)}),t.forEach(e=>{this.updateValueComponentCondition(e)})}};updateValueComponentCondition(e){let t=this.hot.toVisualColumn(e),o=b3(this.hot.getDataAtCol(t),b4(this.hot.countRows()>0?this.hot.getCellMetaTransient(0,t):null));this.conditionUpdateObserver?.updateStatesAtColumn(e,o)}restoreComponents(e){let t=this.getSelectedColumn()?.physicalIndex??-1;e.forEach(e=>{e.isHidden()||e.restoreState(t)}),this.updateDependentComponentsVisibility()}#a7=(e,t)=>{if(t||this.#aK||!this.conditionCollection)return;let o=this.conditionCollection?.getFilteredColumns()??[];0!==o.length&&J(o,e=>{this.conditionUpdateObserver?.updateStatesAtColumn(e)})};#rn=e=>{this.importConditions(e?.filtersConditionsStack??[])};#a9=()=>{this.importConditions(this.#aY)};#a4=()=>{let e=this.dropdownMenuPlugin?.menu;e&&(this.restoreComponents(Array.from(this.components.values()).filter(e=>null!==e)),e.updateMenuDimensions())};#a5=()=>{this.components.get("filter_by_condition")?.getSelectElement()?.closeOptions(),this.components.get("filter_by_condition2")?.getSelectElement()?.closeOptions()};#a6=()=>{let e=this.dropdownMenuPlugin?.menu;e&&(this.#aq.has(e)||this.#aG?.setMenu(e),this.#aq.add(e))};#a3=e=>{e.items.push({name:ml}),this.components.forEach(t=>{t&&e.items.push(t.getMenuItemDescriptor())})};getOperationBasedOnArguments(e,t,o,n){let i=e,r=t.command?.key,l=o.command?.key,s=n.command?.key;return i===bZ&&r!==bo&&l!==bo&&s!==bo?i=bQ:s!==bo&&(r===bo||l===bo)&&(i=bX),i}#aJ(e){if("accept"===e){let e=this.getSelectedColumn();if(null===e)return void this.dropdownMenuPlugin?.close();let{physicalIndex:t}=e,o={command:{key:bo},args:[]},n=this.#aX("filter_by_condition")?.getState()??o,i=this.#aX("filter_by_condition2")?.getState()??o,r=this.#aQ()?.getState()??o,l=this.getOperationBasedOnArguments(this.#aZ()?.getActiveOperationId()??bX,n,i,r);this.conditionUpdateObserver?.groupChanges();let s=this.conditionCollection?.getColumnStackPosition(t);(void 0===s||-1===s)&&(s=void 0),this.conditionCollection?.removeConditions(t);let a=n.command?.key,h=i.command?.key,d=r.command?.key;a!==bo&&(this.conditionCollection?.addCondition(t,n,l,s),h!==bo&&this.conditionCollection?.addCondition(t,i,l,s)),d===bo||this.#aK||this.conditionCollection?.addCondition(t,r,l,s),this.conditionUpdateObserver?.flush(),this.components.forEach(e=>e?.saveState(t)),this.filter()}this.dropdownMenuPlugin?.close()}#a0(e,t){let o=this.dropdownMenuPlugin?.menu;this.updateDependentComponentsVisibility(),e.constructor!==bj||t.inputsCount||this.setListeningDropdownMenu(),o?.updateMenuDimensions()}#a1(){this.setListeningDropdownMenu()}setListeningDropdownMenu(){this.dropdownMenuPlugin&&this.dropdownMenuPlugin.setListening()}updateDependentComponentsVisibility(){let e=this.#aX("filter_by_condition"),t=(e?.getState()??{command:{key:bo}}).command,o=[this.components.get("filter_by_condition2"),this.components.get("filter_operators")].filter(e=>null!=e);t?.showOperators?this.showComponents(...o):this.hideComponents(...o)}#i9=(e,t)=>{let o=this.hot.toPhysicalColumn(e);this.enabled&&this.conditionCollection?.hasConditions(o)&&ol(t)?od(t,"htFiltersActive"):oc(t,"htFiltersActive")};_getValueListDataAtColumn(e){let t=this.hot.toPhysicalColumn(e),o=this.conditionCollection?.getColumnStackPosition(t)??-1;if(-1===o||this.#aK)return Q(this.hot.getDataAtCol(e),(t,o)=>({value:b2(t),meta:this.hot.getCellMetaTransient(o,e)}));let n=this.getDataMapAtColumn(t),i=(this.conditionCollection?.exportAllConditions()??[]).slice(0,o);if(0===i.length)return n;let r=new Cn(this.hot,!1);r.importAllConditions(i);let l=b1(Q(this._createDataFilter(r).filter(),e=>e.row));return r.destroy(),Z(n,e=>l(e.row))}_createDataFilter(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:this.conditionCollection;return e||(e=new Cn(this.hot,!1)),new Ci(e,(e,t)=>this.getDataMapAtColumn(e,t))}#a2(e){if(!this.dropdownMenuPlugin?.enabled)return;let t=e.editedConditionStack,o=t.conditions,n=t.column,i=e.conditionArgsChange;Array.isArray(i)&&(this.#aj=this.#aj.map(e=>(e.column===n&&o.length>0&&e.conditions.forEach(e=>{"by_value"===e.name&&(e.args=[[...i]])}),e)));let r=o.filter(e=>e.name===b8),l=o.filter(e=>e.name!==b8);if(r.length>=2||l.length>=3)tZ(eu`The filter conditions have been applied properly, but couldn’t be displayed visually.\x20
|
|
270
270
|
The dropdown menu supports at most 2 regular conditions and 1 'filter by value' condition per column,\x20
|
|
271
271
|
but more were provided. For more details see the documentation.`);else{let t=this.conditionCollection?.getOperation(n);this.#aX("filter_by_condition")?.updateState(l[0],n),this.#aX("filter_by_condition2")?.updateState(l[1],n),this.#aZ()?.updateState(t??bX,n),this.#aQ()?.updateState(e)}}getIndexesOfComponents(){for(var e=arguments.length,t=Array(e),o=0;o<e;o++)t[o]=arguments[o];let n=this.dropdownMenuPlugin?.menu;return n?t.map(e=>n.getItemPositionByKey(String(e.getMenuItemDescriptor().key))).filter(e=>-1!==e):[]}changeComponentsVisibility(){let e=!(arguments.length>0)||void 0===arguments[0]||arguments[0];for(var t=arguments.length,o=Array(t>1?t-1:0),n=1;n<t;n++)o[n-1]=arguments[n];if(!this.dropdownMenuPlugin)return;let i=this.dropdownMenuPlugin.menu;if(!i)return;let r=i.hotMenu;if(!r)return;let l=r.getPlugin("hiddenRows"),s=this.getIndexesOfComponents(...o);e?l.showRows(s):l.hideRows(s),r.render()}hideComponents(){for(var e=arguments.length,t=Array(e),o=0;o<e;o++)t[o]=arguments[o];this.changeComponentsVisibility(!1,...t)}showComponents(){for(var e=arguments.length,t=Array(e),o=0;o<e;o++)t[o]=arguments[o];this.changeComponentsVisibility(!0,...t)}destroy(){this.enabled&&(this.components.forEach((e,t)=>{null!==e&&(e.destroy(),this.components.set(t,null))}),this.conditionCollection?.destroy(),this.conditionUpdateObserver?.destroy(),this.hot.rowIndexMapper.unregisterMap(this.pluginName??"")),super.destroy()}}let Ch="internal-use-in-handsontable",Cd={licenseKey:Ch,maxRows:1/0,useArrayArithmetic:!0,useColumnIndex:!1,useStats:!1,evaluateNullToZero:!0,precisionEpsilon:1e-13,precisionRounding:14,smartRounding:!0,leapYear1900:!1,nullDate:{year:1899,month:12,day:30},nullYear:30,dateFormats:["YYYY-MM-DD"],timeFormats:["hh:mm","hh:mm:ss","hh:mm:ss.sss"],matchWholeCell:!0,useRegularExpressions:!1,useWildcards:!0,functionArgSeparator:",",thousandSeparator:"",decimalSeparator:".",language:"enGB"},Cc=["maxRows","maxColumns"];function Cu(e){return Object.keys(e).reduce((t,o)=>(Cc.includes(o)||(t[o]=e[o]),t),{})}function Cg(e){let t=e[C_];return{language:t?.language?.langCode}}function Cp(e){return Object.keys(e).reduce((t,o)=>("hyperformula"!==o&&(t[o]=e[o]),t),{})}function Cm(){let e="engine_relationship",t=nz(C_);return t.hasItem(e)||t.register(e,new Map),t.getItem(e)}function Cf(){let e="shared_engine_usage",t=nz(C_);return t.hasItem(e)||t.register(e,new Map),t.getItem(e)}function Cb(e,t,o){var n,i,r,l;let s,a,h,d,c=t[C_],u=(s=t[C_],a=s?.engine,h=Cu(Cp(a?.hyperformula?a:{})),d=Cg(t),{...Cd,...h,...d}),g=Cm(),p=Cf();n=e,(i=c.functions)&&i.forEach(e=>{let{name:t,plugin:o,translations:i}=e;try{n.registerFunction(t,o,i)}catch(e){tZ(e instanceof Error?e.message:String(e))}}),function(e,t){if(t){let{langCode:o}=t;try{e.registerLanguage(o,t)}catch(e){tZ(e instanceof Error?e.message:String(e))}}}(e,c.language);let m=e.buildEmpty(u);return g.set(m,[o]),p.set(m,[o.guid]),r=m,(l=c.namedExpressions)&&(r.suspendEvaluation(),l.forEach(e=>{let{name:t,expression:o,scope:n,options:i}=e;try{r.addNamedExpression(t,o,n,i)}catch(e){tZ(e instanceof Error?e.message:String(e))}}),r.resumeEvaluation()),m.on("sheetAdded",()=>{m.rebuildAndRecalculate()}),m.on("sheetRemoved",()=>{m.rebuildAndRecalculate()}),m}function CC(e){let t=Cm();return new Map((0===t.size?[]:Array.from(t.get(e)??[])).map(e=>[e.getPlugin("formulas").sheetId,e]))}function Cw(e,t){if(e){let o=Cm(),n=o.get(e),i=Cf(),r=i.get(e);n&&n.includes(t)&&(n.splice(n.indexOf(t),1),0===n.length&&o.delete(e)),r&&r.includes(t.guid)&&(r.splice(r.indexOf(t.guid),1),0===r.length&&(i.delete(e),e.destroy()))}}function Cy(e,t){return"string"==typeof e&&"date"===t}function Cv(e){let t=Math.round((e-Math.floor(e))*86400),o=Math.floor(t/3600),n=Math.floor(t%3600/60),i=t%60,r=`${String(o).padStart(2,"0")}:${String(n).padStart(2,"0")}`;return i>0?`${r}:${String(i).padStart(2,"0")}`:r}function CS(e){let t=new Date(Date.UTC(1899,11,30)+864e5*e),o=t.getUTCFullYear(),n=String(t.getUTCMonth()+1).padStart(2,"0"),i=String(t.getUTCDate()).padStart(2,"0");return`${o}-${n}-${i}`}function CR(e){let t=[...e].sort((e,t)=>e-t),o=[];return t.forEach(e=>{let t=o[o.length-1];void 0===t||e>t[0]+t[1]?o.push([e,1]):e===t[0]+t[1]&&(t[1]+=1)}),o}function Cx(e){return Array.isArray(e)?g8(e):e}let CM=new Set(["http:","https:","mailto:","tel:"]);function CH(e,t,o){var n,i;let r,l,s;return(r=new Set(e),l=Array.from(Array(o).keys()).filter(e=>!1===r.has(e)),n=0===t?l[t]??0:l[t-1]+1,s=[],e.forEach(e=>{let t={from:e,to:n};s.forEach(e=>{let o=e.from>e.to,n=e.to<=t.from;e.from>t.from&&n&&o&&(t.from+=1)}),t.from>=n&&(n+=1),s.push(t)}),i=s).forEach((e,t)=>{i.slice(t+1).forEach(t=>{let o=t.from<t.to;t.from>e.from&&o&&(t.from-=1)})}),i}let CE=class{#a8;#he;#ht;#ho=[];#hn=[];#hi;#hr=[];#hl=null;constructor(e,t,o){this.#a8=e,this.#he=t,this.#ht=o,this.#he.addLocalHook("indexesSequenceChange",()=>{this.#hl=null}),this.#he.addLocalHook("cacheUpdated",e=>{e.trimmedIndexesChanged&&(this.#hl=null)})}#hs(){if(null===this.#hl){let e=this.#he.getIndexesSequence(),t=this.#he.getNotTrimmedIndexes(),o=Array(e.length),n=Array(e.length).fill(-1);for(let t=0;t<e.length;t+=1)o[e[t]]=t;for(let e=0;e<t.length;e+=1)n[t[e]]=e;this.#hl={physicalIndexOfHf:e,hfIndexOfPhysical:o,visualIndexOfPhysical:n}}return this.#hl}setRemovedHfIndexes(e){return this.#hr=e.map(e=>{let t=this.#he.getVisualFromPhysicalIndex(e);return this.getHfIndexFromVisualIndex(t??-1)}),this.#hr}getRemovedHfIndexes(){return this.#hr}getHfIndexFromVisualIndex(e){let t=this.#he.getNotTrimmedIndexes()[e];return void 0===t?-1:this.#hs().hfIndexOfPhysical[t]??-1}getVisualIndexFromHfIndex(e){let{physicalIndexOfHf:t,visualIndexOfPhysical:o}=this.#hs(),n=t[e];return void 0===n?-1:o[n]}syncMoves(e){let t=`move${ia(this.#a8)}s`,o=this.#ht.getEngine();o&&o.batch(()=>{e.forEach(e=>{let n=e.from!==e.to,i=e.from+1!==e.to;n&&i&&o[t](this.#ht.getSheetId(),e.from,1,e.to)})})}storeMovesInformation(e,t,o){!1!==o&&(this.#hn=e.map(e=>this.getHfIndexFromVisualIndex(e)),this.#hi=this.getHfIndexFromVisualIndex(t))}calculateAndSyncMoves(e,t){if(this.#ht.isPerformingUndoRedo()||!1===e||!1===t)return;let o=CH(this.#hn,this.#hi??0,this.#he.getNumberOfIndexes());null===this.#ht.getSheetId()?this.#ht.getPostponeAction(()=>this.syncMoves(o)):this.syncMoves(o)}getIndexesChangeSyncMethod(){let e=`set${ia(this.#a8)}Order`;return t=>{if(this.#ht.isPerformingUndoRedo())return;let o=this.#he.getIndexesSequence();if("update"===t&&o.length>0){let t,n=Array(o.length);for(let e=0;e<o.length;e+=1)n[o[e]]=e;let i=this.#ho.map(e=>n[e]??-1),r=this.#ht.getEngine().getSheetDimensions(this.#ht.getSheetId());t="row"===this.#a8?r.height:r.width;let l=i.length;for(let e=l;e<t;e+=1)i.push(e);this.#ht.getEngine()[e](this.#ht.getSheetId(),i)}this.#ho=o}}#ha(){let e=this.#he.getIndexesSequence();if(e.every((e,t)=>e===t)||0===e.length)return;let t=this.#ht.getEngine(),o=this.#ht.getSheetId();if(null===t||null===o)return void this.#ht.getPostponeAction()(()=>this.#ha());let n=`set${ia(this.#a8)}Order`,i=t.getSheetDimensions(o),r="row"===this.#a8?i.height:i.width,l=Array(e.length);for(let t=0;t<e.length;t+=1)l[e[t]]=t;for(let e=l.length;e<r;e+=1)l.push(e);t[n](o,l)}init(){this.#ha(),this.#ho=this.#he.getIndexesSequence()}},Ck=class{#hh;#hd;#hc;#hu=!1;#hg=!1;#hp=null;#hm=null;constructor(e,t,o){this.#hh=new CE("row",e,this),this.#hd=new CE("column",t,this),this.#hc=o}getForAxis(e){return"row"===e?this.#hh:this.#hd}setPerformUndo(e){this.#hu=e}setPerformRedo(e){this.#hg=e}isPerformingUndoRedo(){return this.#hu||this.#hg}getSheetId(){return this.#hm}getEngine(){return this.#hp}getPostponeAction(){return this.#hc}setupSyncEndpoint(e,t){this.#hp=e,this.#hm=t,this.#hh.init(),this.#hd.init()}};function CT(e){return"object"==typeof e&&null!==e}function CI(e){return"object"==typeof e&&null!==e}function CA(e){return"object"==typeof e&&null!==e&&"value"in e}let C_="formulas",CO=["maxRows","maxColumns","language"];nL.getSingleton().register("afterNamedExpressionAdded"),nL.getSingleton().register("afterNamedExpressionRemoved"),nL.getSingleton().register("afterSheetAdded"),nL.getSingleton().register("afterSheetRemoved"),nL.getSingleton().register("afterSheetRenamed"),nL.getSingleton().register("afterFormulasValuesUpdate");let CP=e=>"UndoRedo.undo"===e||"UndoRedo.redo"===e||"auto"===e,CD="ht-hyperlink";class CN extends ps{static get PLUGIN_KEY(){return C_}static get PLUGIN_PRIORITY(){return 260}static get SETTING_KEYS(){return[C_,...CO]}#hf=!1;#hb=!1;#hC=!1;#hw=null;#hy=null;#hv=!1;#hS=null;#hR=!1;#hx=!1;#hM=[];#hH=[];#hE=!1;#hk(e){let t;if(!e.address||e.address.sheet!==this.sheetId||"number"!=typeof e.newValue)return e;let o=this.rowAxisSyncer.getVisualIndexFromHfIndex(e.address.row),n=this.columnAxisSyncer.getVisualIndexFromHfIndex(e.address.col);if(o<0||n<0)return e;let i=this.hot._getMetaManager().getCellMetaUncached(this.hot.toPhysicalRow(o)??o,this.hot.toPhysicalColumn(n)??n,{visualRow:o,visualColumn:n});if("date"===i.type)t=CS(e.newValue);else{if("time"!==i.type)return e;t=Cv(e.newValue)}let r=Object.assign(Object.create(Object.getPrototypeOf(e)),e);return r.newValue=t,r}#hT=e=>{let t=e.map(e=>this.#hk(e));this.hot.runHooks("afterFormulasValuesUpdate",t)};#hI=(e,t)=>{this.hot.runHooks("afterNamedExpressionAdded",e,t)};#hA=(e,t)=>{this.hot.runHooks("afterNamedExpressionRemoved",e,t)};#h_=e=>{this.hot.runHooks("afterSheetAdded",e)};#hO=(e,t)=>{this.engine?.getSheetId(t)===this.sheetId&&this.#hP(t),this.hot.runHooks("afterSheetRenamed",e,t)};#hD=(e,t)=>{this.hot.runHooks("afterSheetRemoved",e,t)};#hN=[["valuesUpdated",this.#hT],["namedExpressionAdded",this.#hI],["namedExpressionRemoved",this.#hA],["sheetAdded",this.#h_],["sheetRenamed",this.#hO],["sheetRemoved",this.#hD]];staticRegister=nz("formulas");engine=null;sheetId=null;sheetName=null;indexSyncer=null;rowAxisSyncer=null;columnAxisSyncer=null;isEnabled(){return!!this.hot.getSettings()[C_]}enablePlugin(){if(!this.enabled){if(this.engine=function(e){let t=e.getSettings(),o=t[C_];if(!o||!0===o)return null;let n=o?.engine;if(void 0===n)return null;if("function"==typeof n.hyperformula)return Cb(n.hyperformula,t,e);if("function"==typeof n)return Cb(n,t,e);if("object"==typeof n&&eD(n.hyperformula)){let t=Cm(),o=Cf().get(n);return t.has(n)||t.set(n,[]),t.get(n).push(e),o&&o.push(e.guid),n.getConfig().licenseKey||n.updateConfig({licenseKey:Ch}),(n.getConfig().leapYear1900!==Cd.leapYear1900||!1===td(n.getConfig().nullDate,Cd.nullDate))&&tZ(eu`If you use HyperFormula with Handsontable, keep the default \`leapYear1900\` and \`nullDate\`
|
|
272
272
|
settings. Otherwise, HyperFormula's dates may not sync correctly with Handsontable's dates.`),n}return null}(this.hot)??this.engine,!this.engine)return void tZ("Missing the required `engine` key in the Formulas settings. Please fill it with either an engine class or an engine instance.");if(null!==this.sheetName&&!this.engine.doesSheetExist(this.sheetName)){let e=this.addSheet(this.sheetName,this.#hB());"string"==typeof e&&this.#hP(e)}this.addHook("beforeLoadData",this.#hL),this.addHook("afterLoadData",this.#iL),this.addHook("beforeUpdateData",this.#hL),this.addHook("afterUpdateData",this.#iL),this.addHook("modifyData",this.#hV),this.addHook("modifySourceData",this.#hF),this.addHook("beforeValidate",this.#hz),this.addHook("afterSetSourceDataAtCell",this.#iz),this.addHook("afterSetDataAtCell",this.#hW),this.addHook("afterSetDataAtRowProp",this.#hW),this.addHook("beforeCreateRow",this.#lb),this.addHook("beforeCreateCol",this.#lv),this.addHook("afterCreateRow",this.#lC),this.addHook("afterCreateCol",this.#lS),this.addHook("beforeRemoveRow",this.#lw),this.addHook("beforeRemoveCol",this.#lR),this.addHook("afterRemoveRow",this.#ly),this.addHook("afterRemoveCol",this.#lx),this.indexSyncer=new Ck(this.hot.rowIndexMapper,this.hot.columnIndexMapper,e=>{this.hot.addHookOnce("init",()=>{e()})}),this.rowAxisSyncer=this.indexSyncer.getForAxis("row"),this.columnAxisSyncer=this.indexSyncer.getForAxis("column"),this.hot.addHook("afterRowSequenceChange",this.rowAxisSyncer.getIndexesChangeSyncMethod()),this.hot.addHook("afterColumnSequenceChange",this.columnAxisSyncer.getIndexesChangeSyncMethod()),this.hot.addHook("beforeRowMove",(e,t,o,n)=>{this.rowAxisSyncer.storeMovesInformation(e,t,n)}),this.hot.addHook("beforeColumnMove",(e,t,o,n)=>{this.columnAxisSyncer.storeMovesInformation(e,t,n)}),this.hot.addHook("afterRowMove",(e,t,o,n,i)=>{this.rowAxisSyncer.calculateAndSyncMoves(n,i)}),this.hot.addHook("afterColumnMove",(e,t,o,n,i)=>{this.columnAxisSyncer.calculateAndSyncMoves(n,i)}),this.hot.addHook("beforeColumnFreeze",(e,t)=>{let o=this.hot.getSettings().fixedColumnsStart;this.columnAxisSyncer.storeMovesInformation([e],o,t)}),this.hot.addHook("afterColumnFreeze",(e,t)=>{this.columnAxisSyncer.calculateAndSyncMoves(t,t)}),this.hot.addHook("beforeColumnUnfreeze",(e,t)=>{let o=this.hot.getSettings().fixedColumnsStart;this.columnAxisSyncer.storeMovesInformation([e],o-1,t)}),this.hot.addHook("afterColumnUnfreeze",(e,t)=>{this.columnAxisSyncer.calculateAndSyncMoves(t,t)}),this.addHook("afterCellMetaReset",this.#h$),this.addHook("beforeUndo",()=>{this.indexSyncer.setPerformUndo(!0),this.#hH=[],this.#hE=!1,this.#hM=this.engine.undo()??[]}),this.addHook("beforeRedo",e=>{if("object"!=typeof e||null===e||!("actionType"in e))return!1;this.indexSyncer.setPerformRedo(!0),this.#hv="move_cells"===e.actionType,this.#hH=[],this.#hE=!1,this.#hM=this.#hv?[]:this.engine.redo()??[]}),this.addHook("afterUndo",()=>{this.indexSyncer.setPerformUndo(!1),this.indexSyncer.setPerformRedo(!1),this.#hv=!1,this.#hU()}),this.addHook("afterRedo",()=>{this.indexSyncer.setPerformRedo(!1),this.#hU()}),this.addHook("afterRedo",()=>{this.#hv=!1}),this.addHook("afterDetachChild",this.#hG),this.addHook("beforeAutofill",this.#hq),this.addHook("beforeMoveCells",this.#hj),this.addHook("afterMoveCells",this.#hY),this.addHook("afterRenderer",this.#hK),this.#hN?.forEach(e=>{let[t,o]=e;return this.engine.on(t,o)}),this.#hX(),this.registerShortcuts(),super.enablePlugin()}}disablePlugin(){this.#hZ(),this.unregisterShortcuts(),this.#hN?.forEach(e=>{let[t,o]=e;return this.engine?.off(t,o)}),this.engine&&Cw(this.engine,this.hot),this.engine=null,super.disablePlugin()}updatePlugin(e){var t,o;let n,i,r,l,s=(n=(t=this.hot.getSettings())[C_],i=n?.engine,r=Cu(Cp(i?.hyperformula?i:{})),l=Cg(t),{...r,...l});this.engine&&(o=this.engine.getConfig(),Object.keys(s).some(e=>void 0!==s[e]&&s[e]!==o[e]))&&this.engine.updateConfig(s);let a=this.hot.getSettings()[C_];if(void 0!==a&&"boolean"!=typeof a&&void 0!==a.sheetName&&this.engine?.getSheetId(a.sheetName)!==this.sheetId&&this.switchSheet(a.sheetName),!e.data&&null===this.sheetName){let e=this.hot.getSettings()[C_],t=CI(e)?e.sheetName:void 0;if(t&&this.engine?.doesSheetExist(t))this.switchSheet(t);else{let e=this.addSheet(t??void 0,this.#hB());"string"==typeof e&&this.#hP(e)}}this.#hX(),super.updatePlugin(e)}destroy(){this.#hN?.forEach(e=>{let[t,o]=e;return this.engine?.off(t,o)}),this.#hN=null,this.engine&&Cw(this.engine,this.hot),this.engine=null,super.destroy()}#hP(e){let t=this.engine?.getSheetId(e)??null;this.sheetName=(null===t?null:this.engine?.getSheetName(t))??e,this.sheetId=t}addSheet(e,t){if(eP(t)&&!sp(t))return tZ("The provided data should be an array of arrays."),!1;if(null!=e&&this.engine?.doesSheetExist(e))return tZ("Sheet with the provided name already exists."),!1;try{let o=this.engine.addSheet(e??void 0);return t&&this.engine.setSheetContent(this.engine.getSheetId(o),t),o}catch(e){return tZ(e instanceof Error?e.message:String(e)),!1}}switchSheet(e){if(!this.engine?.doesSheetExist(e))return void t3(`The sheet named \`${e}\` does not exist, switch aborted.`);this.#hP(e);let t=this.engine.getSheetSerialized(this.sheetId);t.length>0&&this.hot.loadData(t,`${ia(C_)}.switchSheet`)}getCellType(e,t){let o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:this.sheetId,n=this.hot.toPhysicalRow(e),i=this.hot.toPhysicalColumn(t);return null!==n&&null!==i?this.engine.getCellType({sheet:o,row:this.rowAxisSyncer.getHfIndexFromVisualIndex(e),col:this.columnAxisSyncer.getHfIndexFromVisualIndex(t)}):"EMPTY"}isFormulaCellType(e,t){let o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:this.sheetId;return this.engine.doesCellHaveFormula({sheet:o,row:this.rowAxisSyncer.getHfIndexFromVisualIndex(e),col:this.columnAxisSyncer.getHfIndexFromVisualIndex(t)})}registerShortcuts(){this.hot.getShortcutManager().getContext("grid")?.addShortcut({keys:[["Alt","Enter"]],callback:()=>{let e=this.hot.getSelectedRangeActive()?.highlight;if(!e||null===e.row||null===e.col)return;let t=this.#hQ(e.row,e.col);null!==t&&this.hot.rootWindow.open(t,"_blank","noopener,noreferrer")},stopPropagation:!0,runOnlyIf:()=>{let e=this.hot.getSelectedRangeActive()?.highlight;return this.#hb&&!!e?.isCell()&&null!==e.row&&null!==e.col&&null!==this.#hQ(e.row,e.col)},group:C_})}unregisterShortcuts(){this.hot.getShortcutManager().getContext("grid")?.removeShortcutsByGroup(C_)}#hX(){let e=this.hot.getSettings()[C_],t=this.#hb;this.#hb=CI(e)&&!0===e.hyperlinks,t&&!this.#hb&&this.#hZ()}#hZ(){this.hot.rootElement?.querySelectorAll(`a.${CD}`).forEach(e=>this.#hJ(e))}#hJ(e){let{parentNode:t}=e;for(;e.firstChild;)t?.insertBefore(e.firstChild,e);e.remove()}#h0(e){if(null===e.firstElementChild)return;let t=e.querySelector(`a.${CD}`);for(;null!==t;)this.#hJ(t),t=e.querySelector(`a.${CD}`)}#hQ(e,t){if(null===this.sheetName||!this.engine?.doesSheetExist(this.sheetName)||!this.rowAxisSyncer||!this.columnAxisSyncer||!this.isFormulaCellType(e,t))return null;let o=this.engine.getCellHyperlink({sheet:this.sheetId,row:this.rowAxisSyncer.getHfIndexFromVisualIndex(e),col:this.columnAxisSyncer.getHfIndexFromVisualIndex(t)});if(void 0===o)return null;let n=function(e,t){let o;if("string"!=typeof e||""===e.trim())return null;try{o=new URL(e,t)}catch(e){return null}return CM.has(o.protocol)?o.href:null}(o,this.hot.rootDocument.baseURI);return null===n&&tJ(this,"formulas-hyperlink-refused",`A "HYPERLINK" formula points at a URL that Handsontable refuses to link to ("${o}"). Only the "http", "https", "mailto" and "tel" schemes can be linked.`),n}renderDependentSheets(e){let t=arguments.length>1&&void 0!==arguments[1]&&arguments[1],o=new Set;e.forEach(e=>{let t=CT(e)?e.address?.sheet:void 0;void 0===t||o.has(t)||o.add(t)}),this.engine&&CC(this.engine).forEach((e,n)=>{(t||n!==this.sheetId)&&o.has(n)&&(e.render(),e.view?.adjustElementsSize())})}validateDependentCells(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[],o=e=>{let{row:t,col:o,sheet:n}=(CT(e)?e.address:void 0)??{};return eP(n)?`${n}:${t}x${o}`:""},n=new Set(t.map(e=>o(e)));e.forEach(e=>{let{row:t,col:i,sheet:r}=(CT(e)?e.address:void 0)??{};if(void 0===t||void 0===i||t>=this.hot.countRows()||i>=this.hot.countCols())return;let l=o(e);if(void 0!==r&&!n.has(l)&&this.engine){let e=CC(this.engine).get(r);if(!e)return;e.validateCell(e.getDataAtCell(t,i),e.getCellMeta(t,i),()=>{})}})}#h1(e,t,o){"UndoRedo.undo"!==t&&"UndoRedo.redo"!==t||!e?.length||(this.#hE=!0,o&&e.forEach(e=>{let[t,o]=e;if("string"!=typeof o&&"number"!=typeof o)return;let n=this.hot.propToCol(o);if(!iR(t)||!iR(n))return;let i=this.rowAxisSyncer.getHfIndexFromVisualIndex(t),r=this.columnAxisSyncer.getHfIndexFromVisualIndex(n);-1!==i&&-1!==r&&this.#hH.push({address:{row:i,col:r,sheet:this.sheetId}})}))}#hU(){let e=this.#hM,t=this.#hH,o=this.#hE;this.#hM=[],this.#hH=[],this.#hE=!1,o&&e.length&&this.validateDependentCells(e,t)}syncChangeWithEngine(e,t,o){let n={row:this.rowAxisSyncer.getHfIndexFromVisualIndex(e),col:this.columnAxisSyncer.getHfIndexFromVisualIndex(t),sheet:this.sheetId};if(!this.engine?.isItPossibleToSetCellContents(n))return void tZ(`Not possible to set cell data at ${JSON.stringify(n)}`);let i=this.hot.getCellMetaTransient(e,t);if(Cy(o,i.type))if(uH(o));else{var r;!1===("string"==typeof(r=o)&&r.startsWith("="))&&(o=`'${o}`)}return this.engine?.setCellContents(n,o)}#h2(e,t,o){if(tu(o)&&null!==o){let n=this.hot.toVisualRow(e),i=this.hot.toVisualColumn(t),r=this.hot.getCellMetaTransient(n,i);null!=(o=n1(o,r))&&(o=Object(o).toString())}return Cx(o)}#hB(e,t,o,n){let i,r=this.#hx;this.#hx=!0;try{i=this.hot.getSourceDataArray(e,t,o,n)}finally{this.#hx=r}let l=this.hot.countCols();if(!(l<this.hot.countSourceCols()&&Array.isArray(this.hot.getSourceDataAtRow(0))))return i.map((e,t)=>(Array.isArray(e)?e:[]).map((e,o)=>this.#h2(t,o,e)));let s=t??0;return i.map((e,t)=>{let o=Array.isArray(e)?e:[],n=[];for(let e=0;e<l;e++){let i=this.hot.colToProp(e);if("number"!=typeof i)continue;let r=i-s;r<0||r>=o.length||n.push(this.#h2(t,e,o[r]))}return n})}#hz=(e,t,o)=>{let n=this.hot.propToCol(o);if(this.isFormulaCellType(t,n)){let e={row:this.rowAxisSyncer.getHfIndexFromVisualIndex(t),col:this.columnAxisSyncer.getHfIndexFromVisualIndex(n),sheet:this.sheetId},o=this.hot.getCellMetaTransient(t,n),i=this.engine.getCellValue(e);return"date"===o.type&&iR(i)?i=CS(i):"time"===o.type&&iR(i)&&(i=Cv(i)),CA(i)?i.value:i}return e};#hq=(e,t,o)=>{let{row:n,col:i}=t.getTopStartCorner(),{row:r,col:l}=t.getBottomEndCorner(),{row:s,col:a}=o.getTopStartCorner(),{row:h,col:d}=o.getBottomEndCorner();if(null===n||null===i||null===r||null===l||null===s||null===a||null===h||null===d)return;let c=this.rowAxisSyncer.getHfIndexFromVisualIndex(n),u=this.columnAxisSyncer.getHfIndexFromVisualIndex(i),g=this.rowAxisSyncer.getHfIndexFromVisualIndex(r),p=this.columnAxisSyncer.getHfIndexFromVisualIndex(l),m=this.rowAxisSyncer.getHfIndexFromVisualIndex(s),f=this.columnAxisSyncer.getHfIndexFromVisualIndex(a),b=this.rowAxisSyncer.getHfIndexFromVisualIndex(h),C=this.columnAxisSyncer.getHfIndexFromVisualIndex(d);if(null===c||null===u||null===g||null===p||null===m||null===f||null===b||null===C)return;let w={start:{row:c,col:u,sheet:this.sheetId},end:{row:g,col:p,sheet:this.sheetId}},y={start:{row:m,col:f,sheet:this.sheetId},end:{row:b,col:C,sheet:this.sheetId}};if(!1===this.engine.isItPossibleToSetCellContents(y))return!1;let v=this.engine.getFillRangeData(w,y),{row:S,col:R}=w.start,{row:x,col:M}=w.end,H=x-S+1,E=M-R+1;for(let e=0;e<v.length;e+=1)for(let t=0;t<v[e].length;t+=1){let o=v[e][t],n=S+e%H,i=R+t%E;Cy(o,this.hot.getCellMeta(n,i).type)&&(o.startsWith("'")?v[e][t]=o.slice(1):!1===this.isFormulaCellType(n,i,this.sheetId)&&(v[e][t]=o))}return v};#hL=(()=>{var e=this;return function(t,o){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"";n.includes(ia(C_))||(e.#hC=eD(e.hot.getSettings().data))}})();#h$=()=>{if(this.#hC){null!==this.sheetName&&this.switchSheet(this.sheetName);return}let e=this.#hB();e.forEach((t,o)=>{t.forEach((t,n)=>{Cy(t,this.hot._getMetaManager().getCellMetaUncached(this.hot.toPhysicalRow(o)??o,this.hot.toPhysicalColumn(n)??n,{visualRow:o,visualColumn:n}).type)&&(uH(t)?e[o][n]=t:t.startsWith("=")||(e[o][n]=`'${t}`))})}),this.#hf=!0;let t=this.engine.setSheetContent(this.sheetId,e);this.indexSyncer.setupSyncEndpoint(this.engine,this.sheetId),this.renderDependentSheets(t),this.#hf=!1};#iL=(()=>{var e=this;return function(t,o){var n,i;let r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"";if(r.includes(ia(C_))||!e.engine)return;let l=e.hot.getSettings()[C_],s=CI(l)?l.sheetName:void 0,a=(n=e.engine,null==(i=s??e.sheetName)?n.addSheet():n.doesSheetExist(i)?i:n.addSheet(i));if(e.#hP(a),"updateSettings"!==r)if(e.#hC)null!==e.sheetName&&e.switchSheet(e.sheetName);else{let t=e.#hB();if(e.engine.isItPossibleToReplaceSheetContent(e.sheetId,t)){e.#hf=!0;let o=e.engine.setSheetContent(e.sheetId,t);e.indexSyncer.setupSyncEndpoint(e.engine,e.sheetId),e.renderDependentSheets(o),e.#hf=!1}else{e.#hf=!0;let t=e.engine.setSheetContent(e.sheetId,[[]]);e.renderDependentSheets(t),e.#hf=!1,tZ("The loaded data could not be passed to the formula engine, so the formulas were cleared. It most likely exceeds the engine's `maxRows` or `maxColumns` limit.")}}}})();#hV=(e,t,o,n)=>{if("get"!==n||this.#hf||null===this.sheetName||!this.engine?.doesSheetExist(this.sheetName)||null===e||null===t)return;let i=this.getCellType(e,t);if("VALUE"===i||"EMPTY"===i){var r,l;o.value="string"==typeof(r=o.value)&&"string"==typeof(l=r)&&"'"===l.charAt(0)&&"="===l.charAt(1)?r.substr(1):r;return}let s={row:this.rowAxisSyncer.getHfIndexFromVisualIndex(e),col:this.columnAxisSyncer.getHfIndexFromVisualIndex(t),sheet:this.sheetId},a=this.engine.getCellValue(s),h=this.hot._getMetaManager().getCellMetaUncached(this.hot.toPhysicalRow(e)??e,this.hot.toPhysicalColumn(t)??t,{visualRow:e,visualColumn:t});"date"===h.type&&iR(a)?a=CS(a):"time"===h.type&&iR(a)&&(a=Cv(a)),o.value=CA(a)?a.value:a};#hK=(e,t,o)=>{if(!this.#hb||this.#hf)return;this.#h0(e);let n=this.#hQ(t,o);if(null===n)return;let i=this.hot.rootDocument.createElement("a");for(i.className=CD,i.href=n,i.target="_blank",i.rel="noopener noreferrer",i.tabIndex=-1;e.firstChild;)i.appendChild(e.firstChild);e.appendChild(i)};#hF=(e,t,o,n)=>{if("get"!==n||this.#hf||this.#hx||null===this.sheetName||!this.engine?.doesSheetExist(this.sheetName))return;let i=this.hot.toVisualRow(e),r=this.hot.propToCol(t);if(null===i||null===r)return;let l=this.getCellType(i,r);if("VALUE"===l||"EMPTY"===l)return;let s=this.engine.getSheetDimensions(this.engine.getSheetId(this.sheetName));if(0===s.width&&0===s.height)return;let a={row:this.rowAxisSyncer.getHfIndexFromVisualIndex(i),col:this.columnAxisSyncer.getHfIndexFromVisualIndex(r),sheet:this.sheetId};o.value=this.engine.getCellSerialized(a)};#hW=(e,t)=>{if(CP(t))return void this.#h1(e,t,!0);if(this.#hR||!e?.length)return;let o=[],n=[],i=this.engine.batch(()=>{e.forEach(e=>{let[t,i,,r]=e;if("string"!=typeof i&&"number"!=typeof i)return;let l=this.hot.propToCol(i),s=this.hot.toPhysicalRow(t),a=this.hot.toPhysicalColumn(l),h={row:this.rowAxisSyncer.getHfIndexFromVisualIndex(t),col:this.columnAxisSyncer.getHfIndexFromVisualIndex(l),sheet:this.sheetId};r=this.#h2(s,a,r),null!==s&&null!==a?this.syncChangeWithEngine(t,l,r):o.push([t,l,r]),n.push({address:h})})});o.length&&this.hot.addHookOnce("afterChange",()=>{let e=this.engine.batch(()=>{o.forEach(e=>{let[t,o,n]=e;this.syncChangeWithEngine(t,o,n)})});this.renderDependentSheets(e,!0)}),this.renderDependentSheets(i),this.validateDependentCells(i,n)};#iz=(e,t)=>{if(CP(t))return void this.#h1(e,t,!1);if(this.#hR)return;let o=[],n=[];e.forEach(e=>{let[t,i,,r]=e;if("string"!=typeof i&&"number"!=typeof i)return;let l=this.hot.propToCol(i);if(!iR(l))return;let s={row:this.rowAxisSyncer.getHfIndexFromVisualIndex(t),col:this.columnAxisSyncer.getHfIndexFromVisualIndex(l),sheet:this.sheetId};this.engine?.isItPossibleToSetCellContents(s)?(r=Cx(r),n.push({address:s}),o.push(...this.engine.setCellContents(s,r))):tZ(`Not possible to set source cell data at ${JSON.stringify(s)}`)}),this.renderDependentSheets(o),this.validateDependentCells(o,n)};#lb=(e,t)=>{let o=this.rowAxisSyncer.getHfIndexFromVisualIndex(e);if(e>=this.hot.countRows()&&(o=e),null===this.sheetId||!this.engine?.doesSheetExist(this.sheetName)||!this.engine?.isItPossibleToAddRows(this.sheetId,[o,t]))return!1};#lv=(e,t)=>{let o=this.columnAxisSyncer.getHfIndexFromVisualIndex(e);if(e>=this.hot.countCols()&&(o=e),null===this.sheetId||!this.engine?.doesSheetExist(this.sheetName)||!this.engine?.isItPossibleToAddColumns(this.sheetId,[o,t]))return!1};#lw=(e,t,o)=>!1!==this.rowAxisSyncer.setRemovedHfIndexes(o).every(e=>this.engine?.isItPossibleToRemoveRows(this.sheetId,[e,1]))&&void 0;#lR=(e,t,o)=>!1!==this.columnAxisSyncer.setRemovedHfIndexes(o).every(e=>this.engine?.isItPossibleToRemoveColumns(this.sheetId,[e,1]))&&void 0;#lC=(e,t,o)=>{if(CP(o))return;let n=this.engine.addRows(this.sheetId,[this.rowAxisSyncer.getHfIndexFromVisualIndex(e),t]);this.renderDependentSheets(n)};#lS=(e,t,o)=>{if(CP(o))return;let n=this.engine.addColumns(this.sheetId,[this.columnAxisSyncer.getHfIndexFromVisualIndex(e),t]);this.renderDependentSheets(n)};#ly=(e,t,o,n)=>{if(CP(n))return;let i=CR(this.rowAxisSyncer.getRemovedHfIndexes()),r=this.engine.batch(()=>{this.#h3(i,"removeRows")});this.renderDependentSheets(r)};#lx=(e,t,o,n)=>{if(CP(n))return;let i=CR(this.columnAxisSyncer.getRemovedHfIndexes()),r=this.engine.batch(()=>{this.#h3(i,"removeColumns")});this.renderDependentSheets(r)};#h6(e,t,o){let n=e.getHfIndexFromVisualIndex(t);if(n<0)return!1;for(let i=1;i<=o-t;i++)if(e.getHfIndexFromVisualIndex(t+i)!==n+i)return!1;return!0}#hj=(e,t,o)=>{if(!r3(e))return this.#hw=null,!1;if(!this.engine||null===this.sheetId)return;let n=e.getTopStartCorner(),i=e.getBottomEndCorner(),r=n.row,l=n.col,s=i.row,a=i.col,h=t.row,d=t.col;if(!this.#h6(this.rowAxisSyncer,r,s)||!this.#h6(this.columnAxisSyncer,l,a)||!this.#h6(this.rowAxisSyncer,h,h+(s-r))||!this.#h6(this.columnAxisSyncer,d,d+(a-l)))return this.#hw=null,!1;let c=this.rowAxisSyncer.getHfIndexFromVisualIndex(r),u=this.columnAxisSyncer.getHfIndexFromVisualIndex(l),g=this.rowAxisSyncer.getHfIndexFromVisualIndex(s),p=this.columnAxisSyncer.getHfIndexFromVisualIndex(a),m=this.rowAxisSyncer.getHfIndexFromVisualIndex(h),f=this.columnAxisSyncer.getHfIndexFromVisualIndex(d),b={start:{sheet:this.sheetId,row:c,col:u},end:{sheet:this.sheetId,row:g,col:p}},C={sheet:this.sheetId,row:m,col:f};if(!o&&!this.engine.isItPossibleToMoveCells(b,C))return this.#hw=null,!1;if(o){let e={start:C,end:{sheet:this.sheetId,row:m+(g-c),col:f+(p-u)}};if(!this.engine.isItPossibleToSetCellContents(e))return this.#hw=null,!1}this.#hw={source:b,dest:C,isCopy:o,rect:{fromRow:r,fromCol:l,toRow:s,toCol:a,targetRow:h,targetCol:d,isCopy:o}}};commitPendingMoveCells(){if(!this.engine||!this.#hw)return!1;let{source:e,dest:t,isCopy:o,rect:n}=this.#hw;if(this.#hw=null,this.#hS=null,this.indexSyncer?.isPerformingUndoRedo()&&!this.#hv)return this.#hy=n,!0;try{o?(this.engine.copy(e),this.#hS=this.engine.paste(t)):this.#hS=this.engine.batch(()=>{this.engine.moveCells(e,t)})}catch(t){let e=t instanceof Error?t.message:String(t);return tZ(`Formulas: HyperFormula operation failed during ${o?"copy/paste":"moveCells"}: ${e}`),!1}return this.#hy=n,!0}#hY=()=>{let e=this.#hy,t=this.#hS;this.#hy=null,this.#hS=null,this.engine&&null!==e&&(this.#h4(e),null!==t&&this.renderDependentSheets(t,!0))};#h4(e){let{fromRow:t,fromCol:o,toRow:n,toCol:i,targetRow:r,targetCol:l,isCopy:s}=e,a=n-t+1,h=i-o+1,d=[];for(let e=0;e<a;e++){let t=[];for(let o=0;o<h;o++){let n=this.rowAxisSyncer.getHfIndexFromVisualIndex(r+e),i=this.columnAxisSyncer.getHfIndexFromVisualIndex(l+o),s=this.engine.getCellSerialized({sheet:this.sheetId,row:n,col:i});t.push(s??null)}d.push(t)}this.#hR=!0;try{if(!s){let e=Array.from({length:h}).fill(null),r=Array.from({length:a},()=>e.slice());this.hot.populateFromArray(t,o,r,n,i,"auto")}this.hot.populateFromArray(r,l,d,r+a-1,l+h-1,"auto")}finally{this.#hR=!1}}#h3(e,t){for(let o=e.length;o>0;o-=1e3){let n=e.slice(Math.max(0,o-1e3),o);"removeRows"===t?this.engine.removeRows(this.sheetId,...n):this.engine.removeColumns(this.sheetId,...n)}}#hG=(e,t,o)=>{this.#hf=!0;let n=t.__children,i=Array.isArray(n)?n.length:0,r=this.#hB(o,0,o+i,this.hot.countSourceCols());this.#hf=!1,r.forEach((e,t)=>{e.forEach((e,n)=>{this.engine?.setCellContents({col:n,row:o+t,sheet:this.sheetId},[[e]])})})}}nL.getSingleton().register("beforeHideColumns"),nL.getSingleton().register("afterHideColumns"),nL.getSingleton().register("beforeUnhideColumns"),nL.getSingleton().register("afterUnhideColumns");let CB="hiddenColumns",CL=Symbol("skipColumnOnPasteByHiddenColumns");nL.getSingleton().register("beforeHideRows"),nL.getSingleton().register("afterHideRows"),nL.getSingleton().register("beforeUnhideRows"),nL.getSingleton().register("afterUnhideRows");let CV="hiddenRows",CF=Symbol("skipRowOnPasteByHiddenRows");nL.getSingleton().register("beforeColumnFreeze"),nL.getSingleton().register("afterColumnFreeze"),nL.getSingleton().register("beforeColumnUnfreeze"),nL.getSingleton().register("afterColumnUnfreeze");let Cz="manualColumnFreeze",CW=class{_element=null;state=0;constructor(e){this.hot=e,this.inlineProperty=e.isRtl()?"right":"left"}appendTo(e){e.appendChild(this._element),this.state=2}build(){0===this.state&&(this._element=this.hot.rootDocument.createElement("div"),this.state=1)}destroy(){this.isAppended()&&this._element.parentElement?.removeChild(this._element),this._element=null,this.state=0}isAppended(){return 2===this.state}isBuilt(){return this.state>=1}setPosition(e,t){iR(e)&&(this._element.style.top=e+"px"),iR(t)&&(this._element.style[this.inlineProperty]=t+"px")}getPosition(){let e=this._element.style;return{top:e.top?Number.parseInt(e.top,10):0,start:e[this.inlineProperty]?Number.parseInt(e[this.inlineProperty],10):0}}setSize(e,t){iR(e)&&(this._element.style.width=e+"px"),iR(t)&&(this._element.style.height=t+"px")}getSize(){return{width:this._element.style.width?Number.parseInt(this._element.style.width,10):0,height:this._element.style.height?Number.parseInt(this._element.style.height,10):0}}setOffset(e,t){if(iR(e)&&(this._element.style.marginTop=e+"px"),iR(t)){let e=`margin${ia(this.inlineProperty)}`;this._element.style[e]=t+"px"}}getOffset(){let e=this._element.style,t=`margin${ia(this.inlineProperty)}`;return{top:e.marginTop?Number.parseInt(e.marginTop,10):0,start:e[t]?Number.parseInt(e[t],10):0}}},C$=class extends CW{build(){super.build(),od(this._element,"ht__manualColumnMove--backlight")}},CU=class extends CW{build(){super.build(),od(this._element,"ht__manualColumnMove--guideline")}};nL.getSingleton().register("beforeColumnMove"),nL.getSingleton().register("afterColumnMove");let CG="manualColumnMove",Cq="ht__manualColumnMove",Cj="show-ui",CY="on-moving--columns",CK="after-selection--columns";class CX extends ps{static get PLUGIN_KEY(){return CG}static get PLUGIN_PRIORITY(){return 120}#h5=new C$(this.hot);#h7=new CU(this.hot);#h9=[];#h8=0;#de=!1;#dt=!1;#dn={x:0,y:0};#di={};#dr;#dl;#ds;#da;#dh;#dd=0;isEnabled(){return!!this.hot.getSettings()[CG]}enablePlugin(){this.enabled||(this.addHook("beforeOnCellMouseDown",this.#i8),this.addHook("beforeOnCellMouseOver",this.#dc),this.addHook("beforeOnCellMouseOverOutside",(e,t,o,n)=>this.#du(n)),this.addHook("afterScrollVertically",this.#dg),this.addHook("afterLoadData",this.#iL),this.buildPluginUI(),this.registerEvents(),od(this.hot.rootElement,Cq),super.enablePlugin())}updatePlugin(){this.disablePlugin(),this.enablePlugin(),this.moveBySettingsOrLoad(),super.updatePlugin()}disablePlugin(){oc(this.hot.rootElement,Cq),this.unregisterEvents(),this.#h5.destroy(),this.#h7.destroy(),super.disablePlugin()}moveColumn(e,t){return this.moveColumns([e],t)}moveColumns(e,t){let o=this.#dr,n=this.isMovePossible(e,t),i=this.hot.runHooks("beforeColumnMove",e,t,o,n);if(this.#dr=void 0,!1===i)return!1;n&&this.hot.columnIndexMapper.moveIndexes(e,t);let r=n&&this.isColumnOrderChanged(e,t);return this.hot.runHooks("afterColumnMove",e,t,o,n,r),r}dragColumn(e,t){return this.dragColumns([e],t)}dragColumns(e,t){let o=this.countFinalIndex(e,t);return this.#dr=t,this.moveColumns(e,o)}isDragging(){return this.enabled&&this.#de&&this.#dt}isMovePossible(e,t){let o=this.hot.columnIndexMapper.getNotTrimmedIndexesLength(),n=e.length+t>o,i=e.some(e=>e<0),r=e.some(e=>e>=o);return!n&&!(t<0)&&!i&&!r}isColumnOrderChanged(e,t){return e.some((e,o)=>e-o!==t)}countFinalIndex(e,t){let o=X(e,(e,o)=>o<t?e+1:e,0);return t-o}getColumnsWidth(e,t){let o=this.hot.columnIndexMapper,n=0;for(let i=e;i<=t;i+=1){let e=o.getRenderableFromVisualIndex(i);i<0?n+=this.hot.view._wt.wtViewport.getRowHeaderWidth()||0:null!==e&&(n+=this.hot.view._wt.wtTable.getColumnWidth(e)||0)}return n}moveBySettingsOrLoad(){let e=this.hot.getSettings()[CG];Array.isArray(e)&&this.moveColumns(e,0)}isFixedColumnsStart(e){return e<(this.hot.getSettings().fixedColumnsStart??0)}prepareColumnsToMoving(e,t){let o=[];return ik(e,t,e=>{o.push(e)}),o}refreshPositions(){let e=this.hot.view.getFirstFullyVisibleColumn()??0,t=this.#dl??0,o=this.#dh??0,n=this.#ds??0;this.isFixedColumnsStart(t)&&e>0&&this.hot.scrollViewportTo({col:this.hot.columnIndexMapper.getNearestNotHiddenIndex(e-1,-1)??void 0});let i=this.hot.view._wt.wtTable,r=this.hot.view._wt.wtOverlays.scrollableElement,l=r instanceof Window?r.scrollX:r.scrollLeft,s=this.hot.view.THEAD.offsetLeft+this.getColumnsWidth(0,t-1),a=i.hider.offsetWidth,h=i.TBODY?.offsetLeft??0,d=this.#h5.getOffset().start,c=this.#h5.getSize().width,u=0,g=this.#dp(r,l,n);if(this.#da){let e=this.hot.view._wt.wtOverlays.inlineStartOverlay.clone;u=e?.wtTable.getColumnHeader(-1)?.offsetWidth??0}this.isFixedColumnsStart(t)&&(s+=l),s+=u,s=this.#dm(t,s,g,e,o);let p=g,m=s;g+c+d>=a?p=a-c-d:g+d<h+u&&(p=h+u+Math.abs(d)),s>=a-1?m=a-1:0===m?m=1:r instanceof Window&&t<o&&(m-=n<=r.scrollX?n:0),this.#h5.setPosition(void 0,p),this.#h7.setPosition(void 0,m)}#dp(e,t,o){if(this.hot.isRtl()){let n=this.hot.rootWindow,i=oL(this.hot.rootElement),r=n.innerWidth-o-i;return n.innerWidth-this.#di.eventPageX-r-(e instanceof Window?0:t)}return this.#di.eventPageX-(o-(e instanceof Window?0:t))}#dm(e,t,o,n,i){return e<0?(i>0?this.#di.col=0:this.#di.col=n>0?n-1:n,t):this.#df(e,t,o)}#df(e,t,o){let n=t+this.#di.TD.offsetWidth,i=t,r=e;for(;r<this.#h8;){let e=this.getColumnsWidth(r,r);if(e>0&&o<i+e||i+e>=n){if(e/2+i<=o){let t=r+1;for(;t<this.#h8&&0===this.getColumnsWidth(t,t);)t+=1;return this.#di.col=t,i+e}break}i+=e,r+=1}return this.#di.col=r,i}registerEvents(){let{documentElement:e}=this.hot.rootDocument;this.eventManager.addEventListener(e,"mousemove",e=>this.#sF(e)),this.eventManager.addEventListener(e,"mouseup",()=>this.#db())}unregisterEvents(){this.eventManager.clear()}#i8=(e,t,o,n)=>{let i=this.hot.view._wt.wtTable,r=this.hot.selection.isSelectedByColumnHeader(),l=this.hot.getSelectedRangeActive();if(!l||!r||this.#de||0!==e.button){this.#de=!1,this.#dt=!1,this.#h9.length=0,oc(this.hot.rootElement,[CY,Cj]);return}let s=this.#h7.isBuilt()&&!this.#h7.isAppended(),a=this.#h5.isBuilt()&&!this.#h5.isAppended();s&&a&&(this.#h7.appendTo(i.hider),this.#h5.appendTo(i.hider));let{from:h,to:d}=l,c=Math.min(h.col??0,d.col??0),u=Math.max(h.col??0,d.col??0);if(t.row<0&&t.col>=c&&t.col<=u){n.column=!0,this.#de=!0,this.#dn={x:e.clientX,y:e.clientY};let r=o.firstChild?n_(e,o.firstChild).x:e.offsetX;this.#di.eventPageX=e.pageX,this.#dl=t.col,this.#di.TD=o,this.#di.col=t.col,this.#h9=this.prepareColumnsToMoving(c,u),this.#da=!!this.hot.getSettings().rowHeaders,this.#h8=this.hot.countCols(),this.#dh=this.hot.getSettings().fixedColumnsStart,this.#ds=ox(this.hot.rootElement).left;let l=this.#da?-1:0;this.#dd=this.#dC(t.row+i.getColumnHeadersCount());let s=i.holder.scrollTop+this.#dd+1,a=t.col<(this.#dh??0),h=this.hot.view._wt.wtOverlays.inlineStartOverlay.getOverlayOffset(),d=Math.abs(r-(this.hot.isRtl()?o.offsetWidth:0)),g=this.getColumnsWidth(c,t.col-1)+d,p=this.getColumnsWidth(l,c-1)+(a?h:0)+g;this.#h5.setPosition(s,p),this.#h5.setSize(this.getColumnsWidth(c,u),i.hider.offsetHeight-s),this.#h5.setOffset(0,-g),this.#dt=!1,od(this.hot.rootElement,CY)}else oc(this.hot.rootElement,CK),this.#de=!1,this.#dt=!1,this.#h9.length=0};#sF(e){this.#de&&((Math.abs(e.clientX-this.#dn.x)>3||Math.abs(e.clientY-this.#dn.y)>3)&&(this.#dt=!0),this.#di.eventPageX=e.pageX,this.refreshPositions())}#dc=(e,t,o,n)=>{this.hot.getSelectedRangeActive()&&this.#de&&(this.#h9.indexOf(t.col)>-1?oc(this.hot.rootElement,Cj):od(this.hot.rootElement,Cj),n.row=!0,n.column=!0,n.cell=!0,this.#dl=t.col,this.#di.TD=o)};#du(e){this.#de&&(e.row=!0,e.column=!0,e.cell=!0)}#db(){let e=this.#di.col,t=this.#h9.length,o=this.#dt;if(this.#dl=void 0,this.#de=!1,this.#dt=!1,oc(this.hot.rootElement,[CY,Cj,CK]),this.hot.selection.isSelectedByColumnHeader()&&od(this.hot.rootElement,CK),!o||t<1||void 0===e){this.#h9.length=0;return}let n=this.#h9[0],i=this.hot.toPhysicalColumn(n),r=this.dragColumns(this.#h9,e);if(this.#h9.length=0,!0===r){this.hot.view.adjustElementsSize(),this.hot.render();let e=this.hot.toVisualColumn(i);this.hot.selectColumns(e,e+t-1)}}#dg=()=>{let e=this.hot.view._wt.wtTable,t=this.#dd+1+e.holder.scrollTop;this.#h5.setPosition(t),this.#h5.setSize(void 0,e.hider.offsetHeight-t)};#dC(e){let t=this.hot.view._wt.wtTable,o=0;for(let n=0;n<e;n++)o+=t.getColumnHeaderHeight(n);return o}buildPluginUI(){this.#h5.build(),this.#h7.build()}#iL=()=>{this.moveBySettingsOrLoad()};destroy(){this.#h5.destroy(),this.#h7.destroy(),super.destroy()}}function CZ(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"horizontal",o=e.getBoundingClientRect(),n="vertical"===t?o.height:o.width,i="vertical"===t?e.offsetHeight:e.offsetWidth;if(!Number.isFinite(n)||!Number.isFinite(i)||n<=0||i<=0||n>=i&&n-i<=1)return 1;let r=n/i;return Number.isFinite(r)&&r>0?r:1}function CQ(e,t){return!Number.isFinite(t)||t<=0?e:Math.round(e/t)}function CJ(e,t){return!e.parentNode||t>1}function C0(e,t){return!!e?.parentNode&&t>=2}let C1="manualColumnResize";class C2 extends ps{static get PLUGIN_KEY(){return C1}static get PLUGIN_PRIORITY(){return 130}#dw=null;#dy=null;#dv=[];#dS=null;#dR=null;#dx=null;#dM=null;#dH=null;#dE=1;#dk=this.hot.rootDocument.createElement("DIV");#dT=this.hot.rootDocument.createElement("DIV");#de=null;#dI=!1;#dA=0;#d_=null;#dO;#iN=null;#dP;constructor(e){super(e),od(this.#dk,"manualColumnResizer"),od(this.#dT,"manualColumnResizerGuide")}get inlineDir(){return this.hot.isRtl()?"right":"left"}isEnabled(){return!!this.hot.getSettings()[C1]}enablePlugin(){this.enabled||(this.#dO=this.hot.columnIndexMapper.createAndRegisterIndexMap(this.pluginName,"physicalIndexToValue",null,{skipUnchangedWrites:!0}),this.#dO.addLocalHook("init",()=>this.#dD()),this.hot.columnIndexMapper.getNumberOfIndexes()>0&&this.#dD(),this.#iN=this.hot.columnIndexMapper.observeMapChange(this.#dO,()=>{this.hot.view?.invalidateColumnWidthCache()}),this.addHook("modifyColWidth",this.#dN,1),this.addHook("beforeStretchingColumnWidth",this.#dB,1),this.addHook("beforeColumnResize",this.#iB),this.bindEvents(),super.enablePlugin())}updatePlugin(){this.disablePlugin(),this.enablePlugin(),super.updatePlugin()}disablePlugin(){this.#iN&&(this.#iN(),this.#iN=null),this.#dP=this.#dO.getValues(),this.hot.columnIndexMapper.unregisterMap(this.pluginName),super.disablePlugin()}saveManualColumnWidths(){t2("ManualColumnResize.saveManualColumnWidths","`saveManualColumnWidths()` is deprecated and will be removed in Handsontable 19.0.0. The PersistentState plugin has been removed.")}loadManualColumnWidths(){return t2("ManualColumnResize.loadManualColumnWidths","`loadManualColumnWidths()` is deprecated and will be removed in Handsontable 19.0.0. The PersistentState plugin has been removed."),[]}setManualSize(e,t){let o=Math.max(t,20),n=this.hot.toPhysicalColumn(e);return this.#dO.setValueAtIndex(n,o),o}clearManualSize(e){let t=this.hot.toPhysicalColumn(e);this.#dO.setValueAtIndex(t,null)}#dD(){let e=this.hot.getSettings()[C1];Array.isArray(e)?(this.hot.batchExecution(()=>{e.forEach((e,t)=>{this.#dO.setValueAtIndex(t,e)})},!0),this.#dP=e):!0===e&&Array.isArray(this.#dP)&&this.hot.batchExecution(()=>{this.#dP.forEach((e,t)=>{this.#dO.setValueAtIndex(t,e)})},!0)}setupHandlePosition(e){let t;if(CJ(e,this.#dA))return;this.#dw=e;let{_wt:o}=this.hot.view,n=o.wtTable.getCoords(this.#dw);if(!n)return;let i=n.col;if(null===i||i<0)return;let r=oV(this.#dw),l=i<o.getSetting("fixedColumnsStart"),s=n.row??0,a=n.col??0;l&&(t=o.wtOverlays.topInlineStartCornerOverlay.getRelativeCellPosition(this.#dw,s,a)),t||(t=o.wtOverlays.topOverlay.getRelativeCellPosition(this.#dw,s,a)),this.#dy=this.hot.columnIndexMapper.getVisualFromRenderableIndex(i),this.#dv=[];let h=this.hot.selection.isSelectedByCorner()||this.hot.selection.isSelectedByColumnHeader();if(this.hot.selection.isSelected()&&h){let e=this.hot.getSelectedRange()??[],t=new Set;J(e,e=>{let o=e.getTopStartCorner().col,n=e.getBottomEndCorner().col;null!==o&&null!==n&&ik(o,n,e=>{t.has(e)||(t.add(e),this.#dv.push(e))})})}null===this.#dy||(this.#dv.includes(this.#dy)||(this.#dv=[this.#dy]),t&&(this.#dH=t.start-6,this.#dM=oL(this.#dw),this.#dE=CZ(this.#dw),this.#dk.style.top=`${t.top}px`,this.#dk.style[this.inlineDir]=`${this.#dH+this.#dM}px`,this.#dk.style.height=`${r}px`,this.hot.rootElement.appendChild(this.#dk)))}refreshHandlePosition(){this.#dk.style[this.inlineDir]=`${(this.#dH??0)+(this.#dS??0)}px`}setupGuidePosition(){let e=oV(this.#dk),t=Number.parseInt(this.#dk.style.top,10)+e,o=this.hot.view.getTableHeight();od(this.#dk,"active"),od(this.#dT,"active"),this.#dT.style.top=`${t}px`,this.refreshGuidePosition(),this.#dT.style.height=`${o-e}px`,this.hot.rootElement.appendChild(this.#dT)}refreshGuidePosition(){this.#dT.style[this.inlineDir]=this.#dk.style[this.inlineDir]}hideHandleAndGuide(){oc(this.#dk,"active"),oc(this.#dT,"active")}checkIfColumnHeader(e){let t=oe(e,["THEAD"],this.hot.rootElement),{topOverlay:o,topInlineStartCornerOverlay:n}=this.hot.view._wt.wtOverlays;return[o.clone.wtTable.THEAD,n.clone.wtTable.THEAD].includes(t)}getClosestTHParent(e){return"TABLE"!==e.tagName?"TH"===e.tagName?e:this.getClosestTHParent(e.parentNode):null}#dL(e){if(!o4(t5(e))&&!0!==this.#dI&&this.checkIfColumnHeader(t5(e))){let t=this.getClosestTHParent(t5(e));if(!t)return;let o=t.getAttribute("colspan");t&&(null===o||"1"===o)&&!this.#de&&this.setupHandlePosition(t)}}afterMouseDownTimeout(){let e=C0(this.#dw,this.#dA),t=()=>{this.hot.view.adjustElementsSize(),this.hot.render()},o=(e,o)=>{let n=this.hot.runHooks("beforeColumnResize",this.#dR,e,!0);!1!==n&&("number"==typeof n&&(this.#dR=n),this.setManualSize(e,this.#dR??0),this.hot.runHooks("afterColumnResize",this.#dR,e,!0),o&&t())};this.#dA>=2&&(this.#dv.length>1?(J(this.#dv,e=>{o(e)}),t()):J(this.#dv,e=>{o(e,!0)})),this.#d_=null,this.#dA=0,e&&this.#dw&&this.setupHandlePosition(this.#dw)}#dV(e){t5(e).parentNode===this.hot.rootElement&&oh(t5(e),"manualColumnResizer")&&this.#dw&&(this.setupHandlePosition(this.#dw),this.setupGuidePosition(),this.#de=!0,null===this.#d_&&(this.#d_=this.hot._registerTimeout(()=>this.afterMouseDownTimeout(),500)),this.#dA+=1,this.startX=e.pageX,this.#dR=this.#dM)}#sF(e){if(this.#de){let t=CQ((e.pageX-this.startX)*this.hot.getDirectionFactor(),this.#dE);this.#dS=(this.#dM??0)+t,J(this.#dv,e=>{this.#dR=this.setManualSize(e,this.#dS??0)}),this.refreshHandlePosition(),this.refreshGuidePosition()}}#db(){let e=()=>{this.hot.view.adjustElementsSize(),this.hot.render()},t=(t,o)=>{let n=this.hot.runHooks("beforeColumnResize",this.#dR,t,!1);!1===n?(this.setManualSize(t,this.#dM??0),this.#dR=this.#dM):"number"==typeof n&&(this.#dR=n,this.setManualSize(t,this.#dR)),o&&e(),!1!==n&&this.hot.runHooks("afterColumnResize",this.#dR,t,!1)};this.#de&&(this.hideHandleAndGuide(),this.#de=!1,this.#dR!==this.#dM&&(this.#dv.length>1?(J(this.#dv,e=>{t(e)}),e()):J(this.#dv,e=>{t(e,!0)})),this.#dw&&this.setupHandlePosition(this.#dw))}#dF(){this.hideHandleAndGuide(),this.hot.rootElement.removeChild(this.#dk),this.hot.rootElement.removeChild(this.#dT),this.#de=!1,this.#dI=!0,this.hot._registerMicrotask(()=>{this.#dI=!1})}bindEvents(){let{rootWindow:e,rootElement:t}=this.hot;this.eventManager.addEventListener(t,"mouseover",e=>this.#dL(e)),this.eventManager.addEventListener(t,"mousedown",e=>this.#dV(e)),this.eventManager.addEventListener(e,"mousemove",e=>this.#sF(e)),this.eventManager.addEventListener(e,"mouseup",()=>this.#db()),this.eventManager.addEventListener(this.#dk,"contextmenu",()=>this.#dF())}#dN=(e,t)=>{let o=e;if(this.enabled){let e=this.hot.toPhysicalColumn(t),n=this.#dO.getValueAtIndex(e);this.hot.getSettings()[C1]&&n&&(o=n)}return o};#dB=(e,t)=>{let o=this.#dO.getValueAtIndex(this.hot.toPhysicalColumn(t));return"number"==typeof o?o:e};#iB=()=>{this.hot.view._wt.wtViewport.resetHasOversizedColumnHeadersMarked()};destroy(){super.destroy()}}let C3=class{_element=null;state=0;constructor(e){this.hot=e}appendTo(e){e.appendChild(this._element),this.state=2}build(){0===this.state&&(this._element=this.hot.rootDocument.createElement("div"),this.state=1)}destroy(){this.isAppended()&&this._element.parentElement?.removeChild(this._element),this._element=null,this.state=0}isAppended(){return 2===this.state}isBuilt(){return this.state>=1}setPosition(e,t){null!=e&&(this._element.style.top=e+"px"),null!=t&&(this._element.style.left=t+"px")}getPosition(){return{top:this._element.style.top?Number.parseInt(this._element.style.top,10):0,left:this._element.style.left?Number.parseInt(this._element.style.left,10):0}}setSize(e,t){e&&(this._element.style.width=e+"px"),t&&(this._element.style.height=t+"px")}getSize(){return{width:this._element.style.width?Number.parseInt(this._element.style.width,10):0,height:this._element.style.height?Number.parseInt(this._element.style.height,10):0}}setOffset(e,t){e&&(this._element.style.marginTop=e+"px"),t&&(this._element.style.marginLeft=t+"px")}getOffset(){return{top:this._element.style.marginTop?Number.parseInt(this._element.style.marginTop,10):0,left:this._element.style.marginLeft?Number.parseInt(this._element.style.marginLeft,10):0}}},C6=class extends C3{build(){super.build(),od(this._element,"ht__manualRowMove--backlight")}},C4=class extends C3{build(){super.build(),od(this._element,"ht__manualRowMove--guideline")}};nL.getSingleton().register("beforeRowMove"),nL.getSingleton().register("afterRowMove");let C5="manualRowMove",C7="ht__manualRowMove",C9="show-ui",C8="on-moving--rows",we="after-selection--rows";class wt extends ps{static get PLUGIN_KEY(){return C5}static get PLUGIN_PRIORITY(){return 140}static get SETTING_KEYS(){return[C5]}#h5=new C6(this.hot);#h7=new C4(this.hot);#dz=[];#de;#di={};#dr;isEnabled(){return!!this.hot.getSettings()[C5]}enablePlugin(){this.enabled||(this.addHook("beforeOnCellMouseDown",this.#i8),this.addHook("beforeOnCellMouseOver",this.#dc),this.addHook("beforeOnCellMouseOverOutside",(e,t,o,n)=>this.#du(n)),this.addHook("afterScrollHorizontally",this.#dW),this.addHook("afterLoadData",this.#iL),this.buildPluginUI(),this.registerEvents(),od(this.hot.rootElement,C7),super.enablePlugin())}updatePlugin(){this.disablePlugin(),this.enablePlugin(),this.moveBySettingsOrLoad(),super.updatePlugin()}disablePlugin(){oc(this.hot.rootElement,C7),this.unregisterEvents(),this.#h5.destroy(),this.#h7.destroy(),super.disablePlugin()}moveRow(e,t){return this.moveRows([e],t)}moveRows(e,t){let o=this.#dr,n=this.isMovePossible(e,t),i=this.hot.runHooks("beforeRowMove",e,t,o,n);if(this.#dr=void 0,!1===i)return!1;n&&this.hot.rowIndexMapper.moveIndexes(e,t);let r=n&&this.isRowOrderChanged(e,t);return this.hot.runHooks("afterRowMove",e,t,o,n,r),r}dragRow(e,t){return this.dragRows([e],t)}dragRows(e,t){let o=this.countFinalIndex(e,t);return this.#dr=t,this.moveRows(e,o)}isMovePossible(e,t){let o=this.hot.rowIndexMapper.getNotTrimmedIndexesLength(),n=e.length+t>o,i=e.some(e=>e<0),r=e.some(e=>e>=o);return!n&&!(t<0)&&!i&&!r}isRowOrderChanged(e,t){return e.some((e,o)=>e-o!==t)}countFinalIndex(e,t){let o=X(e,(e,o)=>o<t?e+1:e,0);return t-o}getRowsHeight(e,t){let o=this.hot.rowIndexMapper,n=0;for(let i=e;i<=t;i++){let e=o.getRenderableFromVisualIndex(i);if(null!==e){let t=this.hot.view._wt,o=t?.wtTable?.getRowHeight(e);n+=(null!=o?o:0)||(this.hot.stylesHandler.getDefaultRowHeight()??0)}}return n}moveBySettingsOrLoad(){let e=this.hot.getSettings()[C5];Array.isArray(e)&&this.moveRows(e,0)}isFixedRowTop(e){return e<(this.hot.getSettings().fixedRowsTop??0)}isFixedRowBottom(e){return e>this.hot.countRows()-1-(this.hot.getSettings().fixedRowsBottom??0)}prepareRowsToMoving(){let e=this.hot.getSelectedRangeActive(),t=[];if(!e)return t;let{from:o,to:n}=e;return ik(Math.min(o.row??0,n.row??0),Math.max(o.row??0,n.row??0),e=>{t.push(e)}),t}refreshPositions(){let e=this.#di.coords,t=this.#di.TD;if(!e||!t)return;let o=this.hot.getFirstFullyVisibleRow(),n=this.hot.getLastFullyVisibleRow(),i=this.hot.countRows();if(this.isFixedRowTop(e.row)&&o>0){let e=this.hot.rowIndexMapper.getNearestNotHiddenIndex(o-1,-1);null!==e&&this.hot.scrollViewportTo(e)}if(this.isFixedRowBottom(e.row)&&n<i){let e=this.hot.rowIndexMapper.getNearestNotHiddenIndex(n+1,1);null!==e&&this.hot.scrollViewportTo(e,void 0,!0)}let r=this.hot.view._wt.wtTable,l=this.hot.rootElement,s=ox(l),a=oD(l),h=r.holder.scrollTop,d=a instanceof HTMLElement?a.scrollTop:0,c=s.top-d,u=(this.#di.eventPageY??0)-c+h,g=r.hider.offsetHeight,p=r.TBODY?.offsetTop??0,m=this.#h5.getOffset().top,f=this.#h5.getSize().height,b=t.offsetHeight/2,C=t.offsetHeight,w=this.hot.view.THEAD.offsetHeight+this.getRowsHeight(0,e.row-1),y=u>=w+b;this.isFixedRowTop(e.row)&&(w+=this.hot.view._wt.wtOverlays.topOverlay.getOverlayOffset()),e.row<0?this.#di.row=o>0?o-1:o:y?(this.#di.row=e.row+1,w+=0===e.row?C-1:C):this.#di.row=e.row;let v=u,S=w;u+f+m>=g?v=g-f-m:u+m<p&&(v=p+Math.abs(m)),w>=g-1&&(S=g-1),this.#h5.setPosition(v),this.#h7.setPosition(S)}registerEvents(){let{documentElement:e}=this.hot.rootDocument;this.eventManager.addEventListener(e,"mousemove",e=>this.#sF(e)),this.eventManager.addEventListener(e,"mouseup",()=>this.#db())}unregisterEvents(){this.eventManager.clear()}#i8=(e,t,o,n)=>{let{wtTable:i,wtViewport:r}=this.hot.view._wt,l=this.hot.selection.isSelectedByRowHeader(),s=this.hot.getSelectedRangeActive();if(!s||!l||this.#de||0!==e.button){this.#de=!1,this.#dz.length=0,oc(this.hot.rootElement,[C8,C9]);return}let a=this.#h7.isBuilt()&&!this.#h7.isAppended(),h=this.#h5.isBuilt()&&!this.#h5.isAppended();a&&h&&(this.#h7.appendTo(i.hider),this.#h5.appendTo(i.hider));let{from:d,to:c}=s,u=Math.min(d.row??0,c.row??0),g=Math.max(d.row??0,c.row??0);if(t.col<0&&t.row>=u&&t.row<=g){n.row=!0,this.#de=!0,this.#di.eventPageY=e.pageY,this.#di.coords=t,this.#di.TD=o,this.#dz=this.prepareRowsToMoving();let l=i.holder.scrollLeft+r.getRowHeaderWidth(),s=this.getRowsHeight(u,t.row-1)+(e.clientY-o.getBoundingClientRect().top);this.#h5.setPosition(null,l),this.#h5.setSize(i.hider.offsetWidth-l,this.getRowsHeight(u,g)),this.#h5.setOffset(-s,null),od(this.hot.rootElement,C8),this.refreshPositions()}else oc(this.hot.rootElement,we),this.#de=!1,this.#dz.length=0};#sF(e){this.#de&&(this.#di.eventPageY=e.pageY,this.refreshPositions())}#dc=(e,t,o,n)=>{this.hot.getSelectedRangeActive()&&this.#de&&(this.#dz.indexOf(t.row)>-1?oc(this.hot.rootElement,C9):od(this.hot.rootElement,C9),n.row=!0,n.column=!0,n.cell=!0,this.#di.coords=t,this.#di.TD=o)};#du(e){this.#de&&(e.row=!0,e.column=!0,e.cell=!0)}#db(){let e=this.#di.row,t=this.#dz.length;if(this.#de=!1,oc(this.hot.rootElement,[C8,C9,we]),this.hot.selection.isSelectedByRowHeader()&&od(this.hot.rootElement,we),t<1||void 0===e)return;let o=this.#dz[0],n=this.hot.toPhysicalRow(o),i=this.dragRows(this.#dz,e);if(this.#dz.length=0,!0===i){this.hot.view.adjustElementsSize(),this.hot.render();let e=this.hot.toVisualRow(n);this.hot.selectRows(e,e+t-1)}}#dW=()=>{let e=this.hot.view._wt.wtTable,t=this.hot.view._wt.wtViewport.getRowHeaderWidth()+e.holder.scrollLeft;this.#h5.setPosition(null,t),this.#h5.setSize(e.hider.offsetWidth-t)};buildPluginUI(){this.#h5.build(),this.#h7.build()}#iL=()=>{this.moveBySettingsOrLoad()};destroy(){this.#h5.destroy(),this.#h7.destroy(),super.destroy()}}let wo="manualRowResize";class wn extends ps{static get PLUGIN_KEY(){return wo}static get PLUGIN_PRIORITY(){return 30}#dw=null;#d$=null;#dU=[];#dG=null;#dR=null;#dx=null;#dq=null;#dH=null;#dj=1;#dk=this.hot.rootDocument.createElement("DIV");#dT=this.hot.rootDocument.createElement("DIV");#de=!1;#dI=!1;#dA=0;#d_=null;#dY;#iN=null;#dP;constructor(e){super(e),od(this.#dk,"manualRowResizer"),od(this.#dT,"manualRowResizerGuide")}get inlineDir(){return this.hot.isRtl()?"right":"left"}isEnabled(){return!!this.hot.getSettings()[wo]}enablePlugin(){this.enabled||(this.#dY=this.hot.rowIndexMapper.createAndRegisterIndexMap(this.pluginName,"physicalIndexToValue",null,{skipUnchangedWrites:!0}),this.#dY.addLocalHook("init",()=>this.#dD()),this.hot.rowIndexMapper.getNumberOfIndexes()>0&&this.#dD(),this.#iN=this.hot.rowIndexMapper.observeMapChange(this.#dY,()=>{this.hot.view?.invalidateRowHeightCache()}),this.addHook("modifyRowHeight",this.#dK),this.bindEvents(),super.enablePlugin())}updatePlugin(){this.disablePlugin(),this.enablePlugin(),super.updatePlugin()}disablePlugin(){this.#iN&&(this.#iN(),this.#iN=null),this.#dP=this.#dY.getValues(),this.hot.rowIndexMapper.unregisterMap(this.pluginName),super.disablePlugin()}saveManualRowHeights(){t2("ManualRowResize.saveManualRowHeights","`saveManualRowHeights()` is deprecated and will be removed in Handsontable 19.0.0. The PersistentState plugin has been removed.")}loadManualRowHeights(){return t2("ManualRowResize.loadManualRowHeights","`loadManualRowHeights()` is deprecated and will be removed in Handsontable 19.0.0. The PersistentState plugin has been removed."),[]}setManualSize(e,t){let o=this.hot.toPhysicalRow(e),n=Math.max(t,this.hot.stylesHandler.getDefaultRowHeight()??0);return null!==o&&this.#dY.setValueAtIndex(o,n),n}getLastDesiredRowHeight(){return this.#dG??0}setupHandlePosition(e){let t;if(CJ(e,this.#dA))return;this.#dw=e;let{view:o}=this.hot,{_wt:n}=o,i=n.wtTable.getCoords(this.#dw);if(!i)return;let r=i.row;if(null===r||r<0)return;let l=oL(this.#dw),s=r<n.getSetting("fixedRowsTop"),a=r>=o.countNotHiddenRowIndexes(0,1)-n.getSetting("fixedRowsBottom"),h=i.row??0,d=i.col??0;s?t=n.wtOverlays.topInlineStartCornerOverlay.getRelativeCellPosition(this.#dw,h,d):a&&(t=n.wtOverlays.bottomInlineStartCornerOverlay.getRelativeCellPosition(this.#dw,h,d)),t||(t=n.wtOverlays.inlineStartOverlay.getRelativeCellPosition(this.#dw,h,d)),this.#d$=this.hot.rowIndexMapper.getVisualFromRenderableIndex(r),this.#dU=[];let c=this.hot.selection.isSelectedByCorner()||this.hot.selection.isSelectedByRowHeader();if(this.hot.selection.isSelected()&&c){let e=this.hot.getSelectedRange()??[],t=new Set;J(e,e=>{let o=e.getTopStartCorner().row,n=e.getBottomStartCorner().row;null!==o&&null!==n&&ik(o,n,e=>{t.has(e)||(t.add(e),this.#dU.push(e))})})}null===this.#d$||(this.#dU.includes(this.#d$)||(this.#dU=[this.#d$]),t&&(this.#dH=t.top-6,this.#dq=oV(this.#dw),this.#dj=CZ(this.#dw,"vertical"),this.#dk.style.top=`${this.#dH+this.#dq}px`,this.#dk.style[this.inlineDir]=`${t.start}px`,this.#dk.style.width=`${l}px`,this.hot.rootElement.appendChild(this.#dk)))}refreshHandlePosition(){this.#dk.style.top=`${(this.#dH??0)+(this.#dG??0)}px`}setupGuidePosition(){let e=oL(this.#dk),t=Number.parseInt(this.#dk.style[this.inlineDir],10)+e,o=this.hot.view.getTableWidth();od(this.#dk,"active"),od(this.#dT,"active"),this.#dT.style.top=this.#dk.style.top,this.#dT.style[this.inlineDir]=`${t}px`,this.#dT.style.width=`${o-e}px`,this.hot.rootElement.appendChild(this.#dT)}refreshGuidePosition(){this.#dT.style.top=this.#dk.style.top}hideHandleAndGuide(){oc(this.#dk,"active"),oc(this.#dT,"active")}checkIfRowHeader(e){let t=oe(e,["TBODY"],this.hot.rootElement),{inlineStartOverlay:o,topInlineStartCornerOverlay:n,bottomInlineStartCornerOverlay:i}=this.hot.view._wt.wtOverlays;return[o.clone?.wtTable.TBODY,n.clone?.wtTable.TBODY,i.clone?.wtTable.TBODY].includes(t)}getClosestTHParent(e){return"TABLE"!==e.tagName?"TH"===e.tagName?e:this.getClosestTHParent(e.parentNode):null}getActualRowHeight(e){let t=this.hot.view._wt.wtTable.getRowHeight(e);return void 0!==t&&null!==this.#dR&&this.#dR<t?t:this.#dR}#dL(e){if(!o4(t5(e))&&!0!==this.#dI&&this.checkIfRowHeader(t5(e))){let t=this.getClosestTHParent(t5(e));t&&!this.#de&&this.setupHandlePosition(t)}}afterMouseDownTimeout(){let e=C0(this.#dw,this.#dA),t=()=>{this.hot.view.adjustElementsSize(),this.hot.render()},o=(e,o)=>{let n=this.hot.runHooks("beforeRowResize",this.getActualRowHeight(e),e,!0);!1!==n&&("number"==typeof n&&(this.#dR=n),this.setManualSize(e,this.#dR),this.hot.runHooks("afterRowResize",this.getActualRowHeight(e),e,!0),o&&t())};this.#dA>=2&&(this.#dU.length>1?(J(this.#dU,e=>{o(e)}),t()):J(this.#dU,e=>{o(e,!0)})),this.#d_=null,this.#dA=0,e&&this.#dw&&this.setupHandlePosition(this.#dw)}#dV(e){t5(e).parentNode===this.hot.rootElement&&oh(t5(e),"manualRowResizer")&&(this.setupHandlePosition(this.#dw),this.setupGuidePosition(),this.#de=!0,null===this.#d_&&(this.#d_=this.hot._registerTimeout(()=>this.afterMouseDownTimeout(),500)),this.#dA+=1,this.#dx=e.pageY,this.#dR=this.#dq)}#sF(e){if(this.#de){let t=CQ(e.pageY-(this.#dx??0),this.#dj);this.#dG=(this.#dq??0)+t,J(this.#dU,e=>{this.#dR=this.setManualSize(e,this.#dG)}),this.refreshHandlePosition(),this.refreshGuidePosition()}}#db(){let e=()=>{this.hot.view.adjustElementsSize(),this.hot.render()},t=(t,o)=>{let n=this.hot.runHooks("beforeRowResize",this.getActualRowHeight(t),t,!1);!1===n?(this.setManualSize(t,this.#dq),this.#dR=this.#dq):"number"==typeof n&&(this.#dR=n,this.setManualSize(t,this.#dR)),o&&e(),!1!==n&&this.hot.runHooks("afterRowResize",this.getActualRowHeight(t),t,!1)};this.#de&&(this.hideHandleAndGuide(),this.#de=!1,this.#dR!==this.#dq&&(this.#dU.length>1?(J(this.#dU,e=>{t(e)}),e()):J(this.#dU,e=>{t(e,!0)})),this.setupHandlePosition(this.#dw))}#dF(){this.hideHandleAndGuide(),this.hot.rootElement.removeChild(this.#dk),this.hot.rootElement.removeChild(this.#dT),this.#de=!1,this.#dI=!0,this.hot._registerMicrotask(()=>{this.#dI=!1})}bindEvents(){let{rootElement:e,rootWindow:t}=this.hot;this.eventManager.addEventListener(e,"mouseover",e=>this.#dL(e)),this.eventManager.addEventListener(e,"mousedown",e=>this.#dV(e)),this.eventManager.addEventListener(t,"mousemove",e=>this.#sF(e)),this.eventManager.addEventListener(t,"mouseup",()=>this.#db()),this.eventManager.addEventListener(this.#dk,"contextmenu",()=>this.#dF())}#dK=(e,t)=>{let o=e;if(this.enabled){let e=this.hot.toPhysicalRow(t),n=this.#dY.getValueAtIndex(e);this.hot.getSettings()[wo]&&n&&(o=this.hot.getPlugin("autoRowSize")?.isEnabled()?Math.max(n,o??0):n)}return o};#dD(){let e=this.hot.getSettings()[wo];this.hot.batchExecution(()=>{Array.isArray(e)?(e.forEach((e,t)=>{this.#dY.setValueAtIndex(t,e)}),this.#dP=e):!0===e&&Array.isArray(this.#dP)&&this.#dP.forEach((e,t)=>{this.#dY.setValueAtIndex(t,e)})},!0)}destroy(){super.destroy()}}let wi=class{row;col;rowspan;colspan;removed=!1;cellCoordsFactory;cellRangeFactory;#dX=null;constructor(e,t,o,n,i,r){this.row=e,this.col=t,this.rowspan=o,this.colspan=n,this.cellCoordsFactory=i,this.cellRangeFactory=r}static NEGATIVE_VALUES_WARNING(e){let{row:t,col:o,rowspan:n,colspan:i}=e;return eu`The merged cell declared with {row: ${t}, col: ${o},\x20
|