handsontable
Version:
Handsontable is a JavaScript Data Grid available for React, Angular and Vue.
35 lines • 1.86 MB
JavaScript
/*!
* Copyright (c) HANDSONCODE sp. z o. o.
*
* HANDSONTABLE is a software distributed by HANDSONCODE sp. z o. o., a Polish corporation based in
* Gdynia, Poland, at Aleja Zwyciestwa 96-98, registered by the District Court in Gdansk under number
* 538651, EU tax ID number: PL5862294002, share capital: PLN 62,800.00.
*
* This software is protected by applicable copyright laws, including international treaties, and dual-
* licensed - depending on whether your use for commercial purposes, meaning intended for or
* resulting in commercial advantage or monetary compensation, or not.
*
* If your use is strictly personal or solely for evaluation purposes, meaning for the purposes of testing
* the suitability, performance, and usefulness of this software outside the production environment,
* you agree to be bound by the terms included in the "handsontable-non-commercial-license.pdf" file.
*
* Your use of this software for commercial purposes is subject to the terms included in an applicable
* license agreement.
*
* In any case, you must not make any such use of this software as to develop software which may be
* considered competitive with this software.
*
* UNLESS EXPRESSLY AGREED OTHERWISE, HANDSONCODE PROVIDES THIS SOFTWARE ON AN "AS IS"
* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, AND IN NO EVENT AND UNDER NO
* LEGAL THEORY, SHALL HANDSONCODE BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY DIRECT,
* INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES OF ANY CHARACTER ARISING FROM
* USE OR INABILITY TO USE THIS SOFTWARE.
*
* Version: 16.2.0
* Release date: 25/11/2025 (built at 20/11/2025 13:27:06)
*/
!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()}("undefined"!=typeof self?self:this,()=>(()=>{var e={224:(e,t,n)=>{"use strict";var r=n(19596);e.exports=function(e,t){var n=r[e],s=n&&n.prototype;return s&&s[t]}},465:(e,t,n)=>{"use strict";t.__esModule=!0,t.compareFunctionFactory=function(e,t,n){return function(t,i){const o=parseFloat(t),a=parseFloat(i),{sortEmptyCells:l}=n;if(o===a||isNaN(o)&&isNaN(a))return s.DO_NOT_SWAP;if(l){if((0,r.isEmpty)(t))return"asc"===e?s.FIRST_BEFORE_SECOND:s.FIRST_AFTER_SECOND;if((0,r.isEmpty)(i))return"asc"===e?s.FIRST_AFTER_SECOND:s.FIRST_BEFORE_SECOND}return isNaN(o)?s.FIRST_AFTER_SECOND:isNaN(a)?s.FIRST_BEFORE_SECOND:o<a?"asc"===e?s.FIRST_BEFORE_SECOND:s.FIRST_AFTER_SECOND:o>a?"asc"===e?s.FIRST_AFTER_SECOND:s.FIRST_BEFORE_SECOND:s.DO_NOT_SWAP}};var r=n(54342),s=n(18793);t.COLUMN_DATA_TYPE="numeric"},469:()=>{},497:(e,t,n)=>{"use strict";var r=n(8467),s=n(14326),i=n(17621),o=n(83916),a=Object;e.exports=o?function(e){return"symbol"==typeof e}:function(e){var t=r("Symbol");return s(t)&&i(t.prototype,a(e))}},594:()=>{},763:()=>{},771:(e,t,n)=>{"use strict";var r=n(19596).navigator,s=r&&r.userAgent;e.exports=s?String(s):""},827:(e,t,n)=>{"use strict";var r=n(78656);t.__esModule=!0,n(22588),n(66182);var s=r(n(81115)),i=n(38942),o=n(30152),a=n(57440),l=n(66563);function h(e,t){(function(e,t){if(t.has(e))throw new TypeError("Cannot initialize the same private elements twice on an object")})(e,t),t.add(e)}function u(e,t,n){if("function"==typeof e?e===t:e.has(t))return arguments.length<3?t:n;throw new TypeError("Private element is not present on this object")}const c=t.PLUGIN_KEY="touchScroll",d=t.PLUGIN_PRIORITY=200;var g=new WeakSet;class p extends a.BasePlugin{constructor(){super(...arguments),h(this,g),(0,s.default)(this,"scrollbars",[]),(0,s.default)(this,"clones",[]),(0,s.default)(this,"lockedCollection",!1),(0,s.default)(this,"freezeOverlays",!1)}static get PLUGIN_KEY(){return c}static get PLUGIN_PRIORITY(){return d}static get SETTING_KEYS(){return!0}isEnabled(){return(0,l.isTouchSupported)()}enablePlugin(){this.enabled||(this.addHook("afterViewRender",()=>u(g,this,f).call(this)),this.registerEvents(),super.enablePlugin())}updatePlugin(){this.lockedCollection=!1,super.updatePlugin()}disablePlugin(){super.disablePlugin()}registerEvents(){this.addHook("beforeTouchScroll",()=>u(g,this,m).call(this)),this.addHook("afterMomentumScroll",()=>u(g,this,E).call(this))}}function f(){if(this.lockedCollection)return;const{topOverlay:e,bottomOverlay:t,inlineStartOverlay:n,topInlineStartCornerOverlay:r,bottomInlineStartCornerOverlay:s}=this.hot.view._wt.wtOverlays;this.lockedCollection=!0,this.scrollbars.length=0,this.scrollbars.push(e),t.clone&&this.scrollbars.push(t),this.scrollbars.push(n),r&&this.scrollbars.push(r),s&&s.clone&&this.scrollbars.push(s),this.clones=[],e.needFullRender&&this.clones.push(e.clone.wtTable.holder.parentNode),t.needFullRender&&this.clones.push(t.clone.wtTable.holder.parentNode),n.needFullRender&&this.clones.push(n.clone.wtTable.holder.parentNode),r&&this.clones.push(r.clone.wtTable.holder.parentNode),s&&s.clone&&this.clones.push(s.clone.wtTable.holder.parentNode)}function m(){this.freezeOverlays=!0,(0,o.arrayEach)(this.clones,e=>{(0,i.addClass)(e,"hide-tween")})}function E(){this.freezeOverlays=!1,(0,o.arrayEach)(this.clones,e=>{(0,i.removeClass)(e,"hide-tween"),(0,i.addClass)(e,"show-tween")}),this.hot._registerTimeout(()=>{(0,o.arrayEach)(this.clones,e=>{(0,i.removeClass)(e,"show-tween")})},400),(0,o.arrayEach)(this.scrollbars,e=>{e.refresh(),e.resetFixedPosition()}),this.hot.view._wt.wtOverlays.syncScrollWithMaster()}t.TouchScroll=p},983:(e,t,n)=>{"use strict";t.__esModule=!0;var r=n(11049);t.RENDERER_TYPE=r.RENDERER_TYPE,t.checkboxRenderer=r.checkboxRenderer},1181:()=>{},1195:(e,t,n)=>{"use strict";var r=n(14326),s=n(52270),i=n(97931);e.exports=function(e,t,n){var o,a;return i&&r(o=t.constructor)&&o!==n&&s(a=o.prototype)&&a!==n.prototype&&i(e,a),e}},1229:(e,t,n)=>{"use strict";t.__esModule=!0,n(22588),n(59839),n(30417),n(81396),n(39691);var r=n(57440),s=n(42091),i=n(89090),o=function(e,t){if("function"==typeof WeakMap)var n=new WeakMap,r=new WeakMap;return function(e,t){if(!t&&e&&e.__esModule)return e;var s,i,o={__proto__:null,default:e};if(null===e||"object"!=typeof e&&"function"!=typeof e)return o;if(s=t?r:n){if(s.has(e))return s.get(e);s.set(e,o)}for(const t in e)"default"!==t&&{}.hasOwnProperty.call(e,t)&&((i=(s=Object.defineProperty)&&Object.getOwnPropertyDescriptor(e,t))&&(i.get||i.set)?s(o,t,i):o[t]=e[t]);return o}(e,t)}(n(20217));function a(e,t,n){l(e,t),t.set(e,n)}function l(e,t){if(t.has(e))throw new TypeError("Cannot initialize the same private elements twice on an object")}function h(e,t,n){return e.set(c(e,t),n),n}function u(e,t){return e.get(c(e,t))}function c(e,t,n){if("function"==typeof e?e===t:e.has(t))return arguments.length<3?t:n;throw new TypeError("Private element is not present on this object")}const d=t.PLUGIN_KEY="dialog",g=t.PLUGIN_PRIORITY=360,p=d,f=`plugin:${d}`;var m=new WeakMap,E=new WeakMap,w=new WeakMap,y=new WeakSet;class C extends r.BasePlugin{constructor(){var e,t;super(...arguments),l(e=this,t=y),t.add(e),a(this,m,null),a(this,E,!1),a(this,w,null)}static get PLUGIN_KEY(){return d}static get PLUGIN_PRIORITY(){return g}static get DEFAULT_SETTINGS(){return{template:null,content:"",customClassName:"",background:"solid",contentBackground:!1,animation:!0,closable:!1,a11y:{role:"dialog",ariaLabel:"Dialog",ariaLabelledby:"",ariaDescribedby:""}}}static get SETTINGS_VALIDATORS(){return{template:e=>(0,i.isObject)(e)&&typeof["alert","confirm"].includes(e.type)&&"string"==typeof e.title&&(void 0===(null==e?void 0:e.description)||"string"==typeof(null==e?void 0:e.description))&&(void 0===(null==e?void 0:e.buttons)||Array.isArray(null==e?void 0:e.buttons)&&e.buttons.every(e=>"object"==typeof e&&"string"==typeof e.text&&["primary","secondary"].includes(e.type)&&(void 0===e.callback||"function"==typeof e.callback))),content:e=>"string"==typeof e||"undefined"!=typeof HTMLElement&&e instanceof HTMLElement||"undefined"!=typeof DocumentFragment&&e instanceof DocumentFragment,customClassName:e=>"string"==typeof e,background:e=>["solid","semi-transparent"].includes(e),contentBackground:e=>"boolean"==typeof e,animation:e=>"boolean"==typeof e,closable:e=>"boolean"==typeof e,a11y:e=>(0,i.isObject)(e)&&(void 0===(null==e?void 0:e.role)||["dialog","alertdialog"].includes(null==e?void 0:e.role))&&(void 0===(null==e?void 0:e.ariaLabel)||"string"==typeof(null==e?void 0:e.ariaLabel))&&(void 0===(null==e?void 0:e.ariaLabelledby)||"string"==typeof(null==e?void 0:e.ariaLabelledby))&&(void 0===(null==e?void 0:e.ariaDescribedby)||"string"==typeof(null==e?void 0:e.ariaDescribedby))}}isEnabled(){return!!this.hot.getSettings()[d]}enablePlugin(){this.enabled||(u(m,this)||h(m,this,new s.DialogUI({rootElement:this.hot.rootGridElement,isRtl:this.hot.isRtl()})),c(y,this,v).call(this),c(y,this,R).call(this),this.addHook("afterViewRender",()=>c(y,this,_).call(this)),super.enablePlugin())}updatePlugin(){this.disablePlugin(),this.enablePlugin(),super.updatePlugin()}disablePlugin(){this.hide(),c(y,this,S).call(this),c(y,this,T).call(this),super.disablePlugin()}isVisible(){return u(E,this)}show(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};this.enabled&&(this.isVisible()?this.update(e):(this.hot.runHooks("beforeDialogShow"),this.update(e),u(m,this).showDialog(this.getSetting("animation")),h(E,this,!0),this.hot.getFocusScopeManager().activateScope(d),h(w,this,this.hot.selection.exportSelection()),this.hot.deselectCell(),this.hot.runHooks("afterDialogShow")))}hide(){var e;this.isVisible()&&(this.hot.runHooks("beforeDialogHide"),u(m,this).hideDialog(this.getSetting("animation")),h(E,this,!1),this.hot.getFocusScopeManager().deactivateScope(d),(null===(e=u(w,this))||void 0===e?void 0:e.ranges.length)>0?(this.hot.selection.importSelection(u(w,this)),this.hot.view.render(),h(w,this,null)):this.hot.selectCell(0,0),this.hot.runHooks("afterDialogHide"))}update(e){if(!this.enabled)return;this.updatePluginSettings(e);const t=this.getSetting("template");if(t!==C.DEFAULT_SETTINGS.template&&this.getSetting("content")!==C.DEFAULT_SETTINGS.content)throw new Error("The `template` option cannot be used together with the `content` option.");t?u(m,this).useTemplate(t.type,{id:this.hot.guid,...t}):u(m,this).useDefaultTemplate(),u(m,this).updateDialog({isVisible:this.isVisible(),content:this.getSetting("content"),customClassName:this.getSetting("customClassName"),background:this.getSetting("background"),contentBackground:this.getSetting("contentBackground"),animation:this.getSetting("animation"),a11y:this.getSetting("a11y")})}showAlert(e,t){const{title:n="Alert",description:r}=(0,i.isObject)(e)?e:{title:e};this.show({template:{type:"confirm",title:n,description:r,buttons:[{text:this.hot.getTranslatedPhrase(o.OK),type:"primary",callback:function(){for(var e=arguments.length,n=new Array(e),r=0;r<e;r++)n[r]=arguments[r];return null==t?void 0:t(...n)}}]},contentBackground:!1,background:"solid",animation:!0,closable:!1})}showConfirm(e,t,n){const{title:r="Confirm",description:s}=(0,i.isObject)(e)?e:{title:e};this.show({template:{type:"confirm",title:r,description:s,buttons:[{text:this.hot.getTranslatedPhrase(o.CANCEL),type:"secondary",callback:function(){for(var e=arguments.length,t=new Array(e),r=0;r<e;r++)t[r]=arguments[r];return null==n?void 0:n(...t)}},{text:this.hot.getTranslatedPhrase(o.OK),type:"primary",callback:function(){for(var e=arguments.length,n=new Array(e),r=0;r<e;r++)n[r]=arguments[r];return null==t?void 0:t(...n)}}]},contentBackground:!0,background:"semi-transparent",animation:!0,closable:!1})}focus(){u(m,this).focusDialog()}destroy(){var e;null===(e=u(m,this))||void 0===e||e.destroyDialog(),h(m,this,null),h(E,this,!1),h(w,this,null),super.destroy()}}function v(){var e;const t=this.hot.getShortcutManager(),n=null!==(e=t.getContext(f))&&void 0!==e?e:t.addContext(f);n.addShortcut({keys:[["Escape"]],callback:()=>{this.hide()},runOnlyIf:()=>u(E,this)&&this.getSetting("closable"),group:p}),n.addShortcut({keys:[["Shift","Tab"],["Tab"]],preventDefault:!1,callback:e=>{this.hot._registerTimeout(()=>{e.shiftKey?this.hot.runHooks("dialogFocusPreviousElement"):this.hot.runHooks("dialogFocusNextElement")})},group:p})}function S(){this.hot.getShortcutManager().getContext(f).removeShortcutsByGroup(p)}function R(){this.hot.getFocusScopeManager().registerScope(d,u(m,this).getContainer(),{shortcutsContextName:f,type:"modal",runOnlyIf:()=>this.isVisible(),onActivate:e=>{const t=this.hot.isListening(),n=u(m,this).getFocusableElements();n.length>0?"tab_from_above"===e?n.at(0).focus():"tab_from_below"===e&&n.at(-1).focus():"tab_from_above"!==e&&"tab_from_below"!==e&&t&&!u(m,this).getContainer().contains(this.hot.rootDocument.activeElement)&&u(m,this).getContainer().focus(),t&&this.hot.runHooks("afterDialogFocus","unknown"===e?"show":e)}})}function T(){this.hot.getFocusScopeManager().unregisterScope(d)}function _(){const{view:e,rootWrapperElement:t,rootWindow:n}=this.hot,r=e.isHorizontallyScrollableByWindow()?e.getTotalTableWidth():e.getWorkspaceWidth();u(m,this).updateWidth(r);const s=t.querySelector(".hot-display-license-info");if(s){const e=s.offsetHeight,t=Number.parseFloat(n.getComputedStyle(s).marginTop);u(m,this).updateHeight(e+t)}}t.Dialog=C},1237:(e,t,n)=>{"use strict";t.__esModule=!0,t.dropdownRenderer=i;var r=n(15454);const s=t.RENDERER_TYPE="dropdown";function i(e,t,n,s,i,o,a){r.autocompleteRenderer.apply(this,[e,t,n,s,i,o,a])}i.RENDERER_TYPE=s},1401:(e,t)=>{"use strict";t.__esModule=!0;t.command={name:"editorCloseWithoutSaving",callback(e){const t=e._getEditorManager();t.closeEditorAndRestoreOriginalValue(e.getShortcutManager().isCtrlPressed()),t.activeEditor.focus()}}},1409:(e,t,n)=>{"use strict";t.__esModule=!0,t.default=function(){return{key:s,name(){return this.getTranslatedPhrase(r.CONTEXTMENU_ITEMS_CLEAR_COLUMN)},callback(e,t){const n=t[0].start.col,r=t[0].end.col;this.countRows()&&this.populateFromArray(0,n,[[null]],Math.max(t[0].start.row,t[0].end.row),r,"ContextMenu.clearColumn")},disabled(){const e=this.getSelectedRangeActive();if(!e||e.isSingleHeader()&&e.highlight.col<0||!this.selection.isSelectedByColumnHeader())return!0;let t=!1;return e.forAll((e,n)=>{if(e<0||n<0)return!0;const{readOnly:r}=this.getCellMeta(e,n);return!!r||(t=!0,!1)}),!t}}};var r=function(e,t){if("function"==typeof WeakMap)var n=new WeakMap,r=new WeakMap;return function(e,t){if(!t&&e&&e.__esModule)return e;var s,i,o={__proto__:null,default:e};if(null===e||"object"!=typeof e&&"function"!=typeof e)return o;if(s=t?r:n){if(s.has(e))return s.get(e);s.set(e,o)}for(const t in e)"default"!==t&&{}.hasOwnProperty.call(e,t)&&((i=(s=Object.defineProperty)&&Object.getOwnPropertyDescriptor(e,t))&&(i.get||i.set)?s(o,t,i):o[t]=e[t]);return o}(e,t)}(n(20217));const s=t.KEY="clear_column"},1411:(e,t,n)=>{"use strict";t.__esModule=!0;var r=n(23333);t.PLUGIN_KEY=r.PLUGIN_KEY,t.PLUGIN_PRIORITY=r.PLUGIN_PRIORITY,t.Comments=r.Comments},1804:(e,t,n)=>{"use strict";t.__esModule=!0;var r=n(8742),s=n(15454),i=n(59262),o=n(51897);const a=t.CELL_TYPE="autocomplete";t.AutocompleteCellType={CELL_TYPE:a,editor:r.AutocompleteEditor,renderer:s.autocompleteRenderer,validator:i.autocompleteValidator,valueGetter:o.valueGetter,valueSetter:o.valueSetter}},1872:()=>{},1934:(e,t,n)=>{"use strict";t.__esModule=!0;var r=n(98007),s=n(89127);const i=t.CELL_TYPE="password";t.PasswordCellType={CELL_TYPE:i,editor:r.PasswordEditor,renderer:s.passwordRenderer,copyable:!1}},1999:(e,t,n)=>{"use strict";var r=n(78656);t.__esModule=!0,n(22588),n(66182),n(81396),n(88633);var s=r(n(81115)),i=n(38942),o=n(72740),a=n(14298),l=n(68834),h=n(87544),u=n(21650),c=n(57440),d=r(n(94949)),g=r(n(87405));function p(e,t,n){f(e,t),t.set(e,n)}function f(e,t){if(t.has(e))throw new TypeError("Cannot initialize the same private elements twice on an object")}function m(e,t,n){return e.set(w(e,t),n),n}function E(e,t){return e.get(w(e,t))}function w(e,t,n){if("function"==typeof e?e===t:e.has(t))return arguments.length<3?t:n;throw new TypeError("Private element is not present on this object")}const y=t.PLUGIN_KEY="nestedHeaders",C=t.PLUGIN_PRIORITY=280;var v=new WeakMap,S=new WeakMap,R=new WeakMap,T=new WeakMap,_=new WeakMap,N=new WeakMap,A=new WeakSet;class b extends c.BasePlugin{constructor(){var e,t;super(...arguments),f(e=this,t=A),t.add(e),p(this,v,new d.default),p(this,S,null),p(this,R,null),p(this,T,!1),p(this,_,null),(0,s.default)(this,"ghostTable",new g.default(this.hot,(e,t)=>this.getHeaderSettings(e,t))),(0,s.default)(this,"detectedOverlappedHeaders",!1),p(this,N,()=>{var e;const t=null===(e=this.hot)||void 0===e?void 0:e.getSelectedRangeActive();if(!t)return;const{highlight:n}=t;if(n.isHeader()&&n.col>=0){const e=E(v,this).findLeftMostColumnIndex(n.row,n.col),t=this.hot.selection.highlight.getFocus();t.visualCellRange.highlight.col=e,t.visualCellRange.from.col=e,t.visualCellRange.to.col=e,t.commit()}})}static get PLUGIN_KEY(){return y}static get PLUGIN_PRIORITY(){return C}isEnabled(){return!!this.hot.getSettings()[y]}enablePlugin(){var e=this;if(this.enabled)return;const{nestedHeaders:t}=this.hot.getSettings();Array.isArray(t)&&Array.isArray(t[0])||(0,h.warn)(a.toSingleLine`Your Nested Headers plugin configuration is invalid. The settings has to be\x20
passed as an array of arrays e.q. [['A1', { label: 'A2', colspan: 2 }]]`),this.addHook("init",()=>w(A,this,G).call(this)),this.addHook("afterLoadData",function(){for(var t=arguments.length,n=new Array(t),r=0;r<t;r++)n[r]=arguments[r];return w(A,e,j).call(e,...n)}),this.addHook("beforeOnCellMouseDown",function(){for(var t=arguments.length,n=new Array(t),r=0;r<t;r++)n[r]=arguments[r];return w(A,e,x).call(e,...n)}),this.addHook("afterOnCellMouseDown",function(){for(var t=arguments.length,n=new Array(t),r=0;r<t;r++)n[r]=arguments[r];return w(A,e,P).call(e,...n)}),this.addHook("beforeOnCellMouseOver",function(){for(var t=arguments.length,n=new Array(t),r=0;r<t;r++)n[r]=arguments[r];return w(A,e,L).call(e,...n)}),this.addHook("beforeOnCellMouseUp",function(){for(var t=arguments.length,n=new Array(t),r=0;r<t;r++)n[r]=arguments[r];return w(A,e,D).call(e,...n)}),this.addHook("beforeSelectionHighlightSet",function(){for(var t=arguments.length,n=new Array(t),r=0;r<t;r++)n[r]=arguments[r];return w(A,e,k).call(e,...n)}),this.addHook("modifyTransformStart",function(){for(var t=arguments.length,n=new Array(t),r=0;r<t;r++)n[r]=arguments[r];return w(A,e,H).call(e,...n)}),this.addHook("afterSelection",()=>E(N,this).call(this)),this.addHook("afterSelectionFocusSet",()=>E(N,this).call(this)),this.addHook("beforeViewportScrollHorizontally",function(){for(var t=arguments.length,n=new Array(t),r=0;r<t;r++)n[r]=arguments[r];return w(A,e,M).call(e,...n)}),this.addHook("afterGetColumnHeaderRenderers",e=>w(A,this,U).call(this,e)),this.addHook("modifyColWidth",function(){for(var t=arguments.length,n=new Array(t),r=0;r<t;r++)n[r]=arguments[r];return w(A,e,B).call(e,...n)}),this.addHook("modifyColumnHeaderValue",function(){for(var t=arguments.length,n=new Array(t),r=0;r<t;r++)n[r]=arguments[r];return w(A,e,W).call(e,...n)}),this.addHook("beforeHighlightingColumnHeader",function(){for(var t=arguments.length,n=new Array(t),r=0;r<t;r++)n[r]=arguments[r];return w(A,e,I).call(e,...n)}),this.addHook("beforeCopy",function(){for(var t=arguments.length,n=new Array(t),r=0;r<t;r++)n[r]=arguments[r];return w(A,e,O).call(e,...n)}),this.addHook("beforeSelectColumns",function(){for(var t=arguments.length,n=new Array(t),r=0;r<t;r++)n[r]=arguments[r];return w(A,e,F).call(e,...n)}),this.addHook("afterViewportColumnCalculatorOverride",function(){for(var t=arguments.length,n=new Array(t),r=0;r<t;r++)n[r]=arguments[r];return w(A,e,V).call(e,...n)}),this.addHook("modifyFocusedElement",function(){for(var t=arguments.length,n=new Array(t),r=0;r<t;r++)n[r]=arguments[r];return w(A,e,Y).call(e,...n)}),this.hot.columnIndexMapper.addLocalHook("cacheUpdated",E(N,this)),this.hot.rowIndexMapper.addLocalHook("cacheUpdated",E(N,this)),super.enablePlugin(),this.updatePlugin()}updatePlugin(){if(!this.hot.view)return;const{nestedHeaders:e}=this.hot.getSettings();E(v,this).setColumnsLimit(this.hot.countCols()),Array.isArray(e)&&(this.detectedOverlappedHeaders=E(v,this).setState(e)),this.detectedOverlappedHeaders&&(0,h.warn)(a.toSingleLine`Your Nested Headers plugin setup contains overlapping headers. This kind of configuration\x20
is currently not supported.`),this.enabled&&this.hot.columnIndexMapper.hidingMapsCollection.getMergedValues().forEach((e,t)=>{const n=!0===e?"hide-column":"show-column";E(v,this).triggerColumnModification(n,t)}),!E(S,this)&&this.enabled&&m(S,this,this.hot.columnIndexMapper.createChangesObserver("hiding").subscribe(e=>{e.forEach(e=>{let{op:t,index:n,newValue:r}=e;if("replace"===t){const e=!0===r?"hide-column":"show-column";E(v,this).triggerColumnModification(e,n)}}),this.ghostTable.buildWidthsMap()})),this.ghostTable.setLayersCount(this.getLayersCount()).buildWidthsMap(),super.updatePlugin()}disablePlugin(){this.hot.rowIndexMapper.removeLocalHook("cacheUpdated",E(N,this)),this.hot.columnIndexMapper.removeLocalHook("cacheUpdated",E(N,this)),this.clearColspans(),E(v,this).clear(),E(S,this).unsubscribe(),m(S,this,null),this.ghostTable.clear(),super.disablePlugin()}getStateManager(){return E(v,this)}getLayersCount(){return E(v,this).getLayersCount()}getHeaderSettings(e,t){return E(v,this).getHeaderSettings(e,t)}clearColspans(){if(!this.hot.view)return;const{_wt:e}=this.hot.view,t=e.getSetting("columnHeaders").length,n=e.wtTable.THEAD,r=e.wtOverlays.topOverlay.clone.wtTable.THEAD,s=e.wtOverlays.topInlineStartCornerOverlay?e.wtOverlays.topInlineStartCornerOverlay.clone.wtTable.THEAD:null;for(let e=0;e<t;e++){const t=n.childNodes[e];if(!t)break;const o=r.childNodes[e],a=s?s.childNodes[e]:null;for(let e=0,n=t.childNodes.length;e<n;e++)t.childNodes[e].removeAttribute("colspan"),(0,i.removeClass)(t.childNodes[e],"hiddenHeader"),o&&o.childNodes[e]&&(o.childNodes[e].removeAttribute("colspan"),(0,i.removeClass)(o.childNodes[e],"hiddenHeader")),s&&a&&a.childNodes[e]&&(a.childNodes[e].removeAttribute("colspan"),(0,i.removeClass)(a.childNodes[e],"hiddenHeader"))}}headerRendererFactory(e){var t=this;const n=this.hot.view._wt.getSetting("fixedColumnsStart");return(r,s)=>{var o;const{columnIndexMapper:a,view:l}=this.hot;let h=a.getVisualFromRenderableIndex(r);null===h&&(h=r),s.removeAttribute("colspan"),(0,i.removeClass)(s,"hiddenHeader"),(0,i.removeClass)(s,"hiddenHeaderText");const{colspan:u,isHidden:c,isPlaceholder:d,headerClassNames:g}=null!==(o=E(v,this).getHeaderSettings(e,h))&&void 0!==o?o:{label:""};if(d||c)(0,i.addClass)(s,"hiddenHeader");else if(u>1){var p,f,m;const{wtOverlays:e}=l._wt,t=null===(p=e.topInlineStartCornerOverlay)||void 0===p?void 0:p.clone.wtTable.THEAD.contains(s),o=null===(f=e.inlineStartOverlay)||void 0===f?void 0:f.clone.wtTable.THEAD.contains(s);(null===(m=e.topOverlay)||void 0===m?void 0:m.clone.wtTable.THEAD.contains(s))&&h<n&&(0,i.addClass)(s,"hiddenHeaderText");const a=t||o?Math.min(u,n-r):u;a>1&&s.setAttribute("colspan",a)}if(this.hot.view.appendColHeader(h,s,function(){return t.getColumnHeaderValue(...arguments)},e),!d&&!c){const e=s.querySelector("div.relative");e&&g&&g.length>0&&((0,i.removeClass)(e,this.hot.getColumnMeta(h).headerClassName),(0,i.addClass)(e,g))}}}getColumnHeaderValue(e,t){var n;const{isHidden:r,isPlaceholder:s}=null!==(n=E(v,this).getHeaderSettings(t,e))&&void 0!==n?n:{};return s||r?"":this.hot.getColHeader(e,t)}destroy(){m(v,this,null),null!==E(S,this)&&(E(S,this).unsubscribe(),m(S,this,null)),super.destroy()}_getHeaderTreeNodeDataByCoords(e){if(!(e.row>=0||e.col<0))return E(v,this).getHeaderTreeNodeData(e.row,e.col)}}function M(e,t){var n;const r=this.hot.getSelectedRangeActive();if(!r)return e;const{highlight:s}=r,{navigableHeaders:i}=this.hot.getSettings(),o=this.hot.selection.isSelectedByColumnHeader(),a=i?s.row:null===(n=E(_,this))||void 0===n?void 0:n.row,l=o?e:s.col,h=a<0&&l>=0;if(m(_,this,null),!h)return e;const u=this.hot.getFirstFullyVisibleColumn(),c=this.hot.getLastFullyVisibleColumn(),d=c-u+1,g=E(v,this).findLeftMostColumnIndex(a,l),p=E(v,this).findRightMostColumnIndex(a,l),f=p-g+1;if(g<u&&p>c)return g;if(o){let e=null;return g>=u&&p>c?f>d?(t.value="start",e=g):(t.value="end",e=p):g<u&&p<=c&&(f>d?(t.value="end",e=p):(t.value="start",e=g)),e}return g<=u?g:p}function I(e,t,n){const r=E(v,this).getHeaderTreeNodeData(t,e);if(!r)return e;const{columnCursor:s,selectionType:i,selectionWidth:o}=n,{isRoot:a,colspan:l}=E(v,this).getHeaderSettings(t,e);if(i===u.HEADER_TYPE){if(!a)return r.columnIndex}else if(i===u.ACTIVE_HEADER_TYPE&&(l>o-s||!a))return null;return e}function O(e,t,n){let{columnHeadersCount:r}=n;if(0!==r)for(let n=0;n<t.length;n++){const{startRow:r,startCol:i,endRow:o,endCol:a}=t[n],l=o-r+1;if(r>=0||1===i-a+1)break;for(let t=i;t<=a;t++)for(let n=r;n<=o;n++){var s;const r=l+n,o=t-i;if(0===o)continue;!1===(null===(s=E(v,this).getHeaderTreeNodeData(n,t))||void 0===s?void 0:s.isRoot)&&(e[r][o]="")}}}function x(e,t,n,r){this._getHeaderTreeNodeDataByCoords(t)&&(r.column=!0)}function P(e,t){const n=this._getHeaderTreeNodeDataByCoords(t);if(!n)return;m(R,this,t.clone()),m(T,this,!0);const{selection:r}=this.hot,s=r.isSelected()?r.getSelectedRange().current():null,i=[],{columnIndex:o,origColspan:a}=n,h=!r.inInSelection(t);e.shiftKey&&s?t.col<s.from.col?i.push(s.getTopEndCorner().col,o,t.row):t.col>s.from.col?i.push(s.getTopStartCorner().col,o+a-1,t.row):i.push(o,o+a-1,t.row):((0,l.isLeftClick)(e)||(0,l.isRightClick)(e)&&h||(0,l.isTouchEvent)(e))&&i.push(o,o+a-1,t.row),r.selectColumns(...i)}function L(e,t,n,r){if(!this.hot.view.isMouseDown()||r.column)return;const s=this._getHeaderTreeNodeDataByCoords(t);if(!s)return;const{columnIndex:i,origColspan:a}=s,l=this.hot.getSelectedRangeActive(),h=l.getTopStartCorner(),u=l.getBottomEndCorner(),{from:c}=l;r.column=!0,r.cell=!0;const d=[],g=(0,o.clamp)(t.row,-1/0,-1);t.col<c.col?d.push(u.col,i,g):t.col>c.col?d.push(h.col,i+a-1,g):d.push(i,i+a-1,g),this.hot.selection.selectColumns(...d)}function D(){m(T,this,!1)}function k(){const{navigableHeaders:e}=this.hot.getSettings();if(!this.hot.view.isMouseDown()||!E(T,this)||!e)return;const t=this.hot.getSelectedRangeLast(),n=t.getTopStartCorner().col,r=t.getBottomEndCorner().col,{columnIndex:s,origColspan:i}=E(v,this).getHeaderTreeNodeData(E(R,this).row,E(R,this).col);if(t.setHighlight(E(R,this)),i>t.getWidth()||s<n||s+i-1>r){const e=E(v,this).findTopMostEntireHeaderLevel((0,o.clamp)(n,s,s+i-1),(0,o.clamp)(r,s,s+i-1));t.highlight.row=e,t.highlight.col=t.from.col}}function H(e){const{highlight:t}=this.hot.getSelectedRangeActive(),n=this.hot._createCellCoords(t.row+e.row,t.col+e.col);if(!(n.isHeader()&&n.col>=0))return;const r=E(v,this).findLeftMostColumnIndex(n.row,n.col),s=E(v,this).findRightMostColumnIndex(n.row,n.col);if(e.col<0){const n=t.col>=r&&t.col<=s?r-1:s,i=this.hot.columnIndexMapper.getNearestNotHiddenIndex(n,-1);e.col=null===i?-this.hot.view.countRenderableColumnsInRange(0,t.col):-Math.max(this.hot.view.countRenderableColumnsInRange(i,t.col)-1,1)}else if(e.col>0){const n=t.col>=r&&t.col<=s?s+1:r,i=this.hot.columnIndexMapper.getNearestNotHiddenIndex(n,1);e.col=null===i?this.hot.view.countRenderableColumnsInRange(t.col,this.hot.countCols()):Math.max(this.hot.view.countRenderableColumnsInRange(t.col,i)-1,1)}}function F(e,t,n){const r=e.row,s=this._getHeaderTreeNodeDataByCoords({row:r,col:e.col}),i=this._getHeaderTreeNodeDataByCoords({row:r,col:t.col});m(_,this,n.clone()),t.col<e.col?(s&&(e.col=s.columnIndex+s.origColspan-1),i&&(t.col=i.columnIndex)):t.col>=e.col&&(s&&(e.col=s.columnIndex),i&&(t.col=i.columnIndex+i.origColspan-1))}function U(e){if(E(v,this).getLayersCount()>0){e.length=0;for(let t=0;t<E(v,this).getLayersCount();t++)e.push(this.headerRendererFactory(t))}}function V(e){const t=E(v,this).getLayersCount();let n=e.startColumn,r=!!t;for(let s=0;s<t;s++){const t=E(v,this).findLeftMostColumnIndex(s,e.startColumn),i=this.hot.columnIndexMapper.getRenderableFromVisualIndex(t);if(t>=0&&(r=!1),(0,o.isNumeric)(i)&&i<e.startColumn){n=i;break}}e.startColumn=r?E(v,this).getHeaderTreeNodeData(0,n).columnIndex:n}function B(e,t){const n=this.ghostTable.getWidth(t);return e>n?e:n}function W(e,t,n){var r;const{label:s}=null!==(r=E(v,this).getHeaderTreeNodeData(n,t))&&void 0!==r?r:{label:""};return s}function Y(e,t){if(e<0)return this.hot.getCell(e,E(v,this).findLeftMostColumnIndex(e,t),!0)}function G(){this.updatePlugin()}function j(e,t){t||this.updatePlugin()}t.NestedHeaders=b},2250:(e,t,n)=>{"use strict";var r=n(78656);t.__esModule=!0;var s=r(n(81115)),i=n(20751),o=n(90082),a=n(30152);class l extends i.BaseAction{constructor(e){let{stateBefore:t,range:n,type:r,alignment:i}=e;super("cell_alignment"),(0,s.default)(this,"stateBefore",void 0),(0,s.default)(this,"range",void 0),(0,s.default)(this,"type",void 0),(0,s.default)(this,"alignment",void 0),this.stateBefore=t,this.range=n,this.type=r,this.alignment=i}static startRegisteringEvents(e,t){e.addHook("beforeCellAlignment",(e,n,r,s)=>{t.done(()=>new l({stateBefore:e,range:n,type:r,alignment:s}))})}undo(e,t){(0,a.arrayEach)(this.range,t=>{t.forAll((t,n)=>{t>=0&&n>=0&&e.setCellMeta(t,n,"className",this.stateBefore[t][n]||" htLeft")})}),e.addHookOnce("afterViewRender",t),e.render()}redo(e,t){(0,o.align)(this.range,this.type,this.alignment,(t,n)=>e.getCellMeta(t,n),(t,n,r,s)=>e.setCellMeta(t,n,r,s)),e.addHookOnce("afterViewRender",t),e.render()}}t.CellAlignmentAction=l},2322:(e,t,n)=>{"use strict";t.__esModule=!0;var r=n(62007);t.ExtenderTransformation=r.ExtenderTransformation;var s=n(82438);t.FocusTransformation=s.FocusTransformation},2509:()=>{},2527:()=>{},2534:(e,t,n)=>{"use strict";var r=n(78656);t.__esModule=!0,n(22588),n(66182),n(81396),n(88633);var s=r(n(19483));function i(e,t,n){o(e,t),t.set(e,n)}function o(e,t){if(t.has(e))throw new TypeError("Cannot initialize the same private elements twice on an object")}function a(e,t){return e.get(h(e,t))}function l(e,t,n){return e.set(h(e,t),n),n}function h(e,t,n){if("function"==typeof e?e===t:e.has(t))return arguments.length<3?t:n;throw new TypeError("Private element is not present on this object")}var u=new WeakMap,c=new WeakMap,d=new WeakMap,g=new WeakMap,p=new WeakMap,f=new WeakMap,m=new WeakMap,E=new WeakSet;function w(e){let{selectedRange:t,selectionLayer:n,listOrder:r,mergeCellsVisitor:s,row:i,column:o}=e;const l=t.getTopStartCorner(),h=t.getBottomEndCorner(),u=t.highlight.clone().normalize(),c=a(p,this).call(this,i,o);if(c&&s.has(c))return null;const d={selectionLayer:n,colStart:o,colEnd:o,rowStart:i,rowEnd:i};if(c){if(s.add(c),c.row<l.row||c.row+c.rowspan-1>h.row||c.col<l.col||c.col+c.colspan-1>h.col)return null;d.colStart=c.col,d.colEnd=c.col+c.colspan-1,d.rowStart=c.row,d.rowEnd=c.row+c.rowspan-1}const g=r.push(d);return i===u.row&&o===u.col||c&&u.row>=c.row&&u.row<=c.row+c.rowspan-1&&u.col>=c.col&&u.col<=c.col+c.colspan-1?g:null}t.FocusOrder=class{constructor(e){let{mergedCellsGetter:t,rowIndexMapper:n,columnIndexMapper:r}=e;var a,h;o(a=this,h=E),h.add(a),i(this,u,new s.default),i(this,c,new s.default),i(this,d,null),i(this,g,null),i(this,p,null),i(this,f,null),i(this,m,null),l(p,this,t),l(f,this,n),l(m,this,r)}getCurrentVerticalNode(){return a(g,this).data}getFirstVerticalNode(){return a(c,this).first.data}getNextVerticalNode(){return a(g,this).next.data}getPrevVerticalNode(){return a(g,this).prev.data}getCurrentHorizontalNode(){return a(d,this).data}getFirstHorizontalNode(){return a(u,this).first.data}getNextHorizontalNode(){return a(d,this).next.data}getPrevHorizontalNode(){return a(d,this).prev.data}setPrevNodeAsActive(){l(g,this,a(g,this).prev),l(d,this,a(d,this).prev)}setNextNodeAsActive(){l(g,this,a(g,this).next),l(d,this,a(d,this).next)}buildFocusOrder(e){l(u,this,new s.default),e.forEach((e,t)=>{const n=new WeakSet,r=e.getTopStartCorner(),s=e.getBottomEndCorner();for(let i=r.row;i<=s.row;i++)if(!a(f,this).isHidden(i))for(let o=r.col;o<=s.col;o++){if(a(m,this).isHidden(o))continue;const r=h(E,this,w).call(this,{selectedRange:e,selectionLayer:t,listOrder:a(u,this),mergeCellsVisitor:n,row:i,column:o});r&&l(d,this,r)}}),a(u,this).first&&(a(u,this).first.prev=a(u,this).last,a(u,this).last.next=a(u,this).first),l(c,this,new s.default),e.forEach((e,t)=>{const n=new WeakSet,r=e.getTopStartCorner(),s=e.getBottomEndCorner();for(let i=r.col;i<=s.col;i++)if(!a(m,this).isHidden(i))for(let o=r.row;o<=s.row;o++){if(a(f,this).isHidden(o))continue;const r=h(E,this,w).call(this,{selectedRange:e,selectionLayer:t,listOrder:a(c,this),mergeCellsVisitor:n,row:o,column:i});r&&l(g,this,r)}}),a(c,this).first&&(a(c,this).first.prev=a(c,this).last,a(c,this).last.next=a(c,this).first)}setActiveNode(e,t,n){return a(u,this).inorder(r=>{const{selectionLayer:s,rowStart:i,rowEnd:o,colStart:a,colEnd:h}=r.data;if(s===n&&e>=i&&e<=o&&t>=a&&t<=h)return l(d,this,r),!0}),a(c,this).inorder(r=>{const{selectionLayer:s,rowStart:i,rowEnd:o,colStart:a,colEnd:h}=r.data;if(s===n&&e>=i&&e<=o&&t>=a&&t<=h)return l(g,this,r),!0}),this}}},2655:(e,t,n)=>{"use strict";var r=n(78656);t.__esModule=!0,n(22588);var s=r(n(81115)),i=n(57440),o=n(92164),a=n(30152),l=n(89090),h=n(89051),u=n(67305),c=n(32335),d=n(90082),g=n(38942),p=n(89386);function f(e,t){(function(e,t){if(t.has(e))throw new TypeError("Cannot initialize the same private elements twice on an object")})(e,t),t.add(e)}function m(e,t,n){if("function"==typeof e?e===t:e.has(t))return arguments.length<3?t:n;throw new TypeError("Private element is not present on this object")}const E=t.PLUGIN_KEY="contextMenu",w=t.PLUGIN_PRIORITY=70,y=E;o.Hooks.getSingleton().register("afterContextMenuDefaultOptions"),o.Hooks.getSingleton().register("beforeContextMenuShow"),o.Hooks.getSingleton().register("afterContextMenuShow"),o.Hooks.getSingleton().register("afterContextMenuHide"),o.Hooks.getSingleton().register("afterContextMenuExecute");var C=new WeakSet;class v extends i.BasePlugin{constructor(){super(...arguments),f(this,C),(0,s.default)(this,"commandExecutor",new h.CommandExecutor(this.hot)),(0,s.default)(this,"itemsFactory",null),(0,s.default)(this,"menu",null)}static get PLUGIN_KEY(){return E}static get PLUGIN_PRIORITY(){return w}static get PLUGIN_DEPS(){return["plugin:AutoColumnSize"]}static get DEFAULT_ITEMS(){return[p.ROW_ABOVE,p.ROW_BELOW,p.SEPARATOR,p.COLUMN_LEFT,p.COLUMN_RIGHT,p.SEPARATOR,p.REMOVE_ROW,p.REMOVE_COLUMN,p.SEPARATOR,p.UNDO,p.REDO,p.SEPARATOR,p.READ_ONLY,p.SEPARATOR,p.ALIGNMENT]}isEnabled(){return!!this.hot.getSettings()[E]}enablePlugin(){var e=this;if(this.enabled)return;const t=this.hot.getSettings()[E];"function"==typeof t.callback&&this.commandExecutor.setCommonCallback(t.callback),this.menu=new c.Menu(this.hot,{className:"htContextMenu",keepInViewport:!0,container:t.uiContainer||this.hot.rootPortalElement}),this.menu.addLocalHook("beforeOpen",()=>m(C,this,R).call(this)),this.menu.addLocalHook("afterOpen",()=>m(C,this,T).call(this)),this.menu.addLocalHook("afterClose",()=>m(C,this,_).call(this)),this.menu.addLocalHook("executeCommand",function(){for(var t=arguments.length,n=new Array(t),r=0;r<t;r++)n[r]=arguments[r];return e.executeCommand.call(e,...n)}),this.addHook("afterOnCellContextMenu",e=>m(C,this,S).call(this,e)),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:()=>{const{highlight:e}=this.hot.getSelectedRangeActive();this.hot.scrollToFocusedCell();const t=this.hot.getCell(e.row,e.col,!0).getBoundingClientRect(),n=(0,d.getDocumentOffsetByElement)(this.menu.container,this.hot.rootDocument);this.open({left:t.left+n.left,top:t.top+n.top-1+t.height},{left:t.width,above:-t.height}),this.menu.getNavigator().toFirstItem()},runOnlyIf:()=>{var e;const t=null===(e=this.hot.getSelectedRangeActive())||void 0===e?void 0:e.highlight;return t&&this.hot.selection.isCellVisible(t)&&!this.menu.isOpened()},group:y})}unregisterShortcuts(){this.hot.getShortcutManager().getContext("grid").removeShortcutsByGroup(y)}open(e){var t;let n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{above:0,below:0,left:0,right:0};null!==(t=this.menu)&&void 0!==t&&t.isOpened()||(this.prepareMenuItems(),this.menu.open(),(0,l.objectEach)(n,(e,t)=>{this.menu.setOffset(t,e)}),this.menu.setPosition(e))}close(){var e;null===(e=this.menu)||void 0===e||e.close(),this.itemsFactory=null}executeCommand(e){null===this.itemsFactory&&this.prepareMenuItems();for(var t=arguments.length,n=new Array(t>1?t-1:0),r=1;r<t;r++)n[r-1]=arguments[r];this.commandExecutor.execute(e,...n)}prepareMenuItems(){this.itemsFactory=new u.ItemsFactory(this.hot,v.DEFAULT_ITEMS);const e=this.hot.getSettings()[E],t={items:this.itemsFactory.getItems(e)};this.hot.runHooks("afterContextMenuDefaultOptions",t),this.itemsFactory.setPredefinedItems(t.items);const n=this.itemsFactory.getItems(e);this.hot.runHooks("beforeContextMenuSetItems",n),this.menu.setMenuItems(n),(0,a.arrayEach)(n,e=>this.commandExecutor.registerCommand(e.key,e))}destroy(){this.close(),this.menu&&this.menu.destroy(),super.destroy()}}function S(e){const t=this.hot.getSettings(),n=t.rowHeaders,r=t.colHeaders;const s=e.target;if(this.close(),(0,g.hasClass)(s,"handsontableInput"))return;if(e.preventDefault(),e.stopPropagation(),!n&&!r&&!(function(e){return"TD"===e.nodeName||"TD"===e.parentNode.nodeName}(s)||(0,g.hasClass)(s,"current")&&(0,g.hasClass)(s,"wtBorder")))return;const i=(0,d.getDocumentOffsetByElement)(this.menu.container,this.hot.rootDocument);this.open({top:e.clientY+i.top,left:e.clientX+i.left})}function R(){this.hot.runHooks("beforeContextMenuShow",this)}function T(){this.hot.runHooks("afterContextMenuShow",this)}function _(){this.hot.listen(),this.hot.runHooks("afterContextMenuHide",this)}t.ContextMenu=v,v.SEPARATOR={name:p.SEPARATOR}},2732:()=>{},2824:(e,t,n)=>{"use strict";var r=n(78656);t.__esModule=!0,n(66182),n(4114);var s=r(n(81115)),i=n(30152);t.default=class{constructor(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:window;(0,s.default)(this,"rootWindow",void 0),(0,s.default)(this,"prefix",void 0),(0,s.default)(this,"savedKeys",[]),this.rootWindow=t,this.prefix=e,this.loadSavedKeys()}saveValue(e,t){this.rootWindow.localStorage.setItem(`${this.prefix}_${e}`,JSON.stringify(t)),-1===this.savedKeys.indexOf(e)&&(this.savedKeys.push(e),this.saveSavedKeys())}loadValue(e,t){const n=void 0===e?t:e,r=this.rootWindow.localStorage.getItem(`${this.prefix}_${n}`);return null===r?void 0:JSON.parse(r)}reset(e){this.rootWindow.localStorage.removeItem(`${this.prefix}_${e}`)}resetAll(){(0,i.arrayEach)(this.savedKeys,(e,t)=>{this.rootWindow.localStorage.removeItem(`${this.prefix}_${this.savedKeys[t]}`)}),this.clearSavedKeys()}loadSavedKeys(){const e=this.rootWindow.localStorage.getItem(`${this.prefix}__persistentStateKeys`),t="string"==typeof e?JSON.parse(e):void 0;this.savedKeys=t||[]}saveSavedKeys(){this.rootWindow.localStorage.setItem(`${this.prefix}__persistentStateKeys`,JSON.stringify(this.savedKeys))}clearSavedKeys(){this.savedKeys.length=0,this.saveSavedKeys()}}},2943:()=>{},3147:(e,t)=>{"use strict";t.__esModule=!0,t.cornerHeaderScrollStrategy=function(){return()=>{}}},3159:(e,t,n)=>{"use strict";var r=n(78656);t.__esModule=!0;var s=r(n(36415)),i=r(n(70385)),o=r(n(48906)),a=n(89090),l=n(21596);class h extends s.default{constructor(e,t,n,r){super(e,t,n,r,l.CLONE_INLINE_START)}}(0,a.mixin)(h,i.default),(0,a.mixin)(h,o.default);t.default=h},3293:(e,t,n)=>{"use strict";var r=n(78656);t.__esModule=!0,n(22588),n(66182),n(90721),n(78822),n(86192),n(80729),n(99888),n(12767),n(78644),n(97550),n(81396),n(81124),n(60354),n(88633);var s=r(n(81115)),i=r(n(91188)),o=n(72740),a=n(87544),l=n(30152),h=n(14298);function u(e,t){(function(e,t){if(t.has(e))throw new TypeError("Cannot initialize the same private elements twice on an object")})(e,t),t.add(e)}function c(e,t,n){if("function"==typeof e?e===t:e.has(t))return arguments.length<3?t:n;throw new TypeError("Private element is not present on this object")}var d=new WeakSet;class g{constructor(e){u(this,d),(0,s.default)(this,"plugin",void 0),(0,s.default)(this,"mergedCells",[]),(0,s.default)(this,"mergedCellsMatrix",new Map),(0,s.default)(this,"hot",void 0),this.plugin=e,this.hot=e.hot}static IS_OVERLAPPING_WARNING(e){let{row:t,col:n}=e;return h.toSingleLine`The merged cell declared at [${t}, ${n}], overlaps\x20
with the other declared merged cell. The overlapping merged cell was not added to the table, please\x20
fix your setup.`}get(e,t){var n;return!!this.mergedCellsMatrix.has(e)&&(null!==(n=this.mergedCellsMatrix.get(e).get(t))&&void 0!==n&&n)}getByRange(e){const{row:t,col:n}=e.getTopStartCorner(),{row:r,col:s}=e.getBottomEndCorner(),i=this.mergedCells.length;let o=!1;for(let e=0;e<i;e++){const i=this.mergedCells[e],{row:a,col:l,rowspan:h,colspan:u}=i;if(a>=t&&a+h-1<=r&&l>=n&&l+u-1<=s){o=i;break}}return o}filterOverlappingMergeCells(e){const t=new Set;this.mergedCells.forEach(e=>{const{row:n,col:r,colspan:s,rowspan:i}=e;for(let e=n;e<n+i;e++)for(let n=r;n<r+s;n++)t.add(`r${e},c${n}`)});return e.filter(e=>{const{row:n,col:r,colspan:s,rowspan:i}=e,o=new Set;let l=!1;for(let h=n;h<n+i;h++){for(let n=r;n<r+s;n++){const r=`r${h},c${n}`;if(t.has(r)){(0,a.warn)(g.IS_OVERLAPPING_WARNING(e)),l=!0;break}o.add(r)}if(l)break}return l||t.add(...o),!l})}getWithinRange(e){let t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];const{row:n,col:r}=e.getTopStartCorner(),{row:s,col:i}=e.getBottomEndCorner(),o=[];for(let e=n;e<=s;e++)for(let n=r;n<=i;n++){const r=this.get(e,n);r&&(t||!t&&r.row===e&&r.col===n)&&o.push(r)}return o}add(e){let t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];const n=e.row,r=e.col,s=e.rowspan,o=e.colspan,l=new i.default(n,r,s,o,this.hot._createCellCoords,this.hot._createCellRange),h=this.get(n,r),u=!t&&this.isOverlapping(l);return h||u?(u&&(0,a.warn)(g.IS_OVERLAPPING_WARNING(l)),!1):(this.hot&&l.normalize(this.hot),this.mergedCells.push(l),c(d,this,f).call(this,l),l)}remove(e,t){const n=this.get(e,t),r=n?this.mergedCells.indexOf(n):-1;return!(!n||-1===r)&&(this.mergedCells.splice(r,1),c(d,this,m).call(this,n),n)}clear(){(0,l.arrayEach)(this.mergedCells,e=>{let{row:t,col:n,rowspan:r,colspan:s}=e;(0,o.rangeEach)(t,t+r,e=>{(0,o.rangeEach)(n,n+s,t=>{const n=this.hot.getCell(e,t);n&&(n.removeAttribute("rowspan"),n.removeAttribute("colspan"),n.style.display="")})})}),this.mergedCells.length=0,this.mergedCellsMatrix=new Map}isOverlapping(e){const t=e.getRange();for(let e=0;e<this.mergedCells.length;e++){if(this.mergedCells[e].getRange().overlaps(t))return!0}return!1}isFirstRenderableMergedCell(e,t){const n=this.get(e,t);if(!n)return!1;const{row:r,col:s,rowspan:i,colspan:a}=n,l=this.hot.view.getActiveOverlayName(),h=["top","top_inline_start_corner"].includes(l)?0:this.hot.getFirstRenderedVisibleRow(),u=["inline_start","top_inline_start_corner","bottom_inline_start_corner"].includes(l)?0:this.hot.getFirstRenderedVisibleColumn(),c=(0,o.clamp)(h,r,r+i-1),d=(0,o.clamp)(u,s,s+a-1);return this.hot.rowIndexMapper.getNearestNotHiddenIndex(c,1)===e&&this.hot.columnIndexMapper.getNearestNotHiddenIndex(d,1)===t}getFirstRenderableCoords(e,t){const n=this.get(e,t);if(!n||this.isFirstRenderableMergedCell(e,t))return this.hot._createCellCoords(e,t);const r=this.hot.rowIndexMapper.getNearestNotHiddenIndex(n.row,1),s=this.hot.columnIndexMapper.getNearestNotHiddenIndex(n.col,1);return this.hot._createCellCoords(r,s)}getStartMostColumnIndex(e,t){const n=c(d,this,p).call(this,e,"col",-1);let r=t;for(let e=0;e<n.length;e++)if(n[e]<=t){r=n[e];break}return r}getEndMostColumnIndex(e,t){const n=c(d,this,p).call(this,e,"col",1);let r=t;for(let e=0;e<n.length;e++)if(n[e]>=t){r=n[e];break}return r}getTopMostRowIndex(e,t){const n=c(d,this,p).call(this,e,"row",-1);let r=t;for(let e=0;e<n.length;e++)if(n[e]<=t){r=n[e];break}return r}getBottomMostRowIndex(e,t){const n=c(d,this,p).call(this,e,"row",1);let r=t;for(let e=0;e<n.length;e++)if(n[e]>=t){r=n[e];break}return r}shiftCollections(e,t,n){const r=[0,0];switch(e){case"right":r[0]+=n;break;case"left":r[0]-=n;break;case"down":r[1]+=n;break;case"up":r[1]-=n}const s=[];this.mergedCells.forEach(e=>{e.shift(r,t),e.removed&&s.push(e)}),s.forEach(e=>{this.mergedCells.splice(this.mergedCells.indexOf(e),1)}),this.mergedCellsMatrix.clear(),this.mergedCells.forEach(e=>{c(d,this,f).call(this,e)})}}function p(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:1;const r=new Map,s=1===n?e.getTopStartCorner():e.getBottomEndCorner(),i=1===n?e.getBottomEndCorner():e.getTopStartCorner();for(let e=s.row;1===n?e<=i.row:e>=i.row;e+=n)for(let o=s.col;1===n?o<=i.col:o>=i.col;o+=n){const s="row"===t?e:o,i=this.get(e,o);let a=s;i&&(a=1===n?i[t]+i[`${t}span`]-1:i[t]),r.has(s)||r.set(s,new Set),r.get(s).add(a)}return Array.from(new Set(Array.from(r.entries()).filter(e=>{let[,t]=e;return 1===t.size}).flatMap(e=>{let[,t]=e;return Array.from(t)})))}function f(e){for(let t=e.row;t<e.row+e.rowspan;t++)for(let n=e.col;n<e.col+e.colspan;n++)this.mergedCellsMatrix.has(t)||this.mergedCellsMatrix.set(t,new Map),this.mergedCellsMatrix.get(t).set(n,e)}function m(e){for(let t=e.row;t<e.row+e.rowspan;t++)for(let n=e.col;n<e.col+e.colspan;n++)this.mergedCellsMatrix.get(t).delete(n)}t.default=g},3538:()=>{},3686:(e,t,n)=>{"use strict";t.__esModule=!0,t.default=function(e){return{key:"unfreeze_column",name(){return this.getTranslatedPhrase(r.CONTEXTMENU_ITEMS_UNFREEZE_COLUMN)},callback(t,n){const[{start:{col:r}}]=n;e.unfreezeColumn(r),this.view.adjustElementsSize(),this.render()},hidden(){const e=this.getSelectedRange();let t=!1;return(void 0===e||e.length>1||e[0].from.col!==e[0].to.col||e[0].from.col>=this.getSettings().fixedColumnsStart)&&(t=!0),t}}};var r=function(e,t){if("function"==typeof WeakMap)var n=new WeakMap,r=new WeakMap;return function(e,t){if(!t&&e&&e.__esModule)return e;var s,i,o={__proto__:null,default:e};if(null===e||"object"!=typeof e&&"function"!=typeof e)return o;if(s=t?r:n){if(s.has(e))return s.get(e);s.set(e,o)}for(const t in e)"default"!==t&&{}.hasOwnProperty.call(e,t)&&((i=(s=Object.defineProperty)&&Object.getOwnPropertyDescriptor(e,t))&&(i.get||i.set)?s(o,t,i):o[t]=e[t]);return o}(e,t)}(n(20217))},3732:e=>{function t(){}t.prototype={on:function(e,t,n){var r=this.e||(this.e={});return(r[e]||(r[e]=[])).push({fn:t,ctx:n}),this},once:function(e,t,n){var r=this;function s(){r.off(e,s),t.apply(n,arguments)}return s._=t,this.on(e,s,n)},emit:function(e){for(var t=[].slice.call(arguments,1),n=((this.e||(this.e={}))[e]||[]).slice(),r=0,s=n.length;r<s;r++)n[r].fn.apply(n[r].ctx,t);return this},off:function(e,t){var n=this.e||(this.e={}),r=n[e],s=[];if(r&&t)for(var i=0,o=r.length;i<o;i++)r[i].fn!==t&&r[i].fn._!==t&&s.push(r[i]);return s.length?n[e]=s:delete n[e],this}},e.exports=t,e.exports.TinyEmitter=t},3788:(e,t,n)=>{"use strict";var r=n(78656);t.__esModule=!0;var s=n(30152),i=n(72740),o=n(38942),a=r(n(10878)),l=n(14089);class h extends a.default{static get CSS_CLASSES(){return{indicatorContainer:"ht_nestingLevels",parent:"ht_nestingParent",indicator:"ht_nestingLevel",emptyIndicator:"ht_nestingLevel_empty",button:"ht_nestingButton",expandButton:"ht_nestingExpand",collapseButton:"ht_nestingCollapse"}}constructor(e,t){super(e,t),this.dataManager=this.plugin.dataManager,this.collapsingUI=this.plugin.collapsingUI,this.rowHeaderWidthCache=null}appendLevelIndicators(e,t){const n=this.hot.toPhysicalRow(e),r=this.dataManager.getDataObject(n);if(!r)return;const a=this.dataManager.getRowLevel(n),u=t.getElementsByTagName("DIV")[0],c=u.querySelector("span.rowHeader"),d=u.querySelectorAll('[class^="ht_nesting"]'),g=this.hot.getSettings().ariaTags;if((0,s.arrayEach)(d,e=>{e&&u.removeChild(e)}),(0,o.addClass)(t,h.CSS_CLASSES.indicatorContainer),a){const{rootDocument:e}=this.hot,t=c.cloneNode(!0);u.innerHTML="",(0,i.rangeEach)(0,a-1,()=>{const t=e.createElement("SPAN");(0,o.addClass)(t,h.CSS_CLASSES.emptyIndicator),u.appendChild(t)}),u.appendChild(t)}if(this.dataManager.hasChildren(r)){const e=this.hot.rootDocument.createElement("DIV");g&&(0,o.setAttribute)(e,[(0,l.A11Y_HIDDEN)()]),(0,o.addClass)(t,h.CSS_CLASSES.parent),this.collapsingUI.areChildrenCollapsed(n)?((0,o.addClass)(e,`${h.CSS_CLASSES.button} ${h.CSS_CLASSES.expandButton}`),g&&(0,o.setAttribute)(t,[(0,l.A11Y_EXPANDED)(!1)])):((0,o.addClass)(e,`${h.CSS_CLASSES.button} ${h.CSS_CLASSES.collapseButton}`),g&&(0,o.setAttribute)(t,[(0,l.A11Y_EXPANDED)(!0)])),u.appendChild(e)}}updateRowHeaderWidth(e){let t=e;t||(t=this.dataManager.cache.levelCount);let n=11;if(!this.hot.stylesHandler.isClassicTheme()){n=2*this.hot.stylesHandler.getCSSVariableValue("cell-horizontal-padding")}this.rowHeaderWidthCache=Math.max(50,n+10*t+25),this.hot.render()}}t.default=h},3888:(e,t)=>{"use strict";t.__esModule=!0;t.DIALOG_CLASS_NAME="ht-dialog"},4114:(e,t,n)=>{"use strict";var r=n(27538),s=n(8467),i=n(99949),o=n(19617),a=n(94988),l=n(89035),h=n(14326),u=n(497),c=n(4660),d=n(17169),g=n(71763),p=String,f=s("JSON","stringify"),m=a(/./.exec),E=a("".charAt),w=a("".charCodeAt),y=a("".replace),C=a(1.1.toString),v=/[\uD800-\uDFFF]/g,S=/^[\uD800-\uDBFF]$/,R=/^[\uDC00-\uDFFF]$/,T=!g||l(function(){var e=s("Symbol")("stringify detection");return"[null]"!==f([e])||"{}"!==f({a:e})||"{}"!==f(Object(e))}),_=l(function(){return'"\\udf06\\ud834"'!==f("\udf06\ud834")||'"\\udead"'!==f("\udead")}),N=function(e,t){var n=c(arguments),r=d(t);if(h(r)||void 0!==e&&!u(e))return n[1]=function(e,t){if(h(r)&&(t=o(r,this,p(e),t)),!u(t))return t},i(f,null,n)},A=function(e,t,n){var r=E(n,t-1),s=E(n,t+1);return m(S,e)&&!m(R,s)||m(R,e)&&!m(S,r)?"\\u"+C(w(e,0),16):e};f&&r({target:"JSON",stat:!0,arity:3,