handsontable 0.0.0-next-eafbc4a-20241217 → 0.0.0-next-8b0b0f4-20241223

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.

Potentially problematic release.


This version of handsontable might be problematic. Click here for more details.

@@ -320,13 +320,7 @@ class Overlays {
320
320
  }
321
321
  const overlays = [this.topOverlay, this.bottomOverlay, this.inlineStartOverlay, this.topInlineStartCornerOverlay, this.bottomInlineStartCornerOverlay];
322
322
  overlays.forEach(overlay => {
323
- if (overlay && overlay.needFullRender) {
324
- const {
325
- holder
326
- } = overlay.clone.wtTable; // todo rethink, maybe: overlay.getHolder()
327
-
328
- this.eventManager.addEventListener(holder, 'wheel', event => this.onCloneWheel(event, preventWheel), wheelEventOptions);
329
- }
323
+ this.eventManager.addEventListener(overlay.clone.wtTable.holder, 'wheel', event => this.onCloneWheel(event, preventWheel), wheelEventOptions);
330
324
  });
331
325
  let resizeTimeout;
332
326
  this.eventManager.addEventListener(rootWindow, 'resize', () => {
@@ -344,13 +338,6 @@ class Overlays {
344
338
  }
345
339
  }
346
340
 
347
- /**
348
- * Deregister all previously registered listeners.
349
- */
350
- deregisterListeners() {
351
- this.eventManager.clearEvents(true);
352
- }
353
-
354
341
  /**
355
342
  * Scroll listener.
356
343
  *
@@ -522,37 +509,13 @@ class Overlays {
522
509
  _classPrivateFieldSet(_hasRenderingStateChanged, this, false);
523
510
  }
524
511
 
525
- /**
526
- * Update the main scrollable elements for all the overlays.
527
- */
528
- updateMainScrollableElements() {
529
- this.deregisterListeners();
530
- this.inlineStartOverlay.updateMainScrollableElement();
531
- this.topOverlay.updateMainScrollableElement();
532
- if (this.bottomOverlay.needFullRender) {
533
- this.bottomOverlay.updateMainScrollableElement();
534
- }
535
- const {
536
- wtTable
537
- } = this;
538
- const {
539
- rootWindow
540
- } = this.domBindings;
541
- if (rootWindow.getComputedStyle(wtTable.wtRootElement.parentNode).getPropertyValue('overflow') === 'hidden') {
542
- this.scrollableElement = wtTable.holder;
543
- } else {
544
- this.scrollableElement = (0, _element.getScrollableElement)(wtTable.TABLE);
545
- }
546
- this.registerListeners();
547
- }
548
-
549
512
  /**
550
513
  *
551
514
  */
552
515
  destroy() {
553
516
  this.resizeObserver.disconnect();
554
517
  this.eventManager.destroy();
555
- // todo, probably all below `destory` calls has no sense. To analyze
518
+ // todo, probably all below `destroy` calls has no sense. To analyze
556
519
  this.topOverlay.destroy();
557
520
  if (this.bottomOverlay.clone) {
558
521
  this.bottomOverlay.destroy();
@@ -317,13 +317,7 @@ class Overlays {
317
317
  }
318
318
  const overlays = [this.topOverlay, this.bottomOverlay, this.inlineStartOverlay, this.topInlineStartCornerOverlay, this.bottomInlineStartCornerOverlay];
319
319
  overlays.forEach(overlay => {
320
- if (overlay && overlay.needFullRender) {
321
- const {
322
- holder
323
- } = overlay.clone.wtTable; // todo rethink, maybe: overlay.getHolder()
324
-
325
- this.eventManager.addEventListener(holder, 'wheel', event => this.onCloneWheel(event, preventWheel), wheelEventOptions);
326
- }
320
+ this.eventManager.addEventListener(overlay.clone.wtTable.holder, 'wheel', event => this.onCloneWheel(event, preventWheel), wheelEventOptions);
327
321
  });
328
322
  let resizeTimeout;
329
323
  this.eventManager.addEventListener(rootWindow, 'resize', () => {
@@ -341,13 +335,6 @@ class Overlays {
341
335
  }
342
336
  }
343
337
 
344
- /**
345
- * Deregister all previously registered listeners.
346
- */
347
- deregisterListeners() {
348
- this.eventManager.clearEvents(true);
349
- }
350
-
351
338
  /**
352
339
  * Scroll listener.
353
340
  *
@@ -519,37 +506,13 @@ class Overlays {
519
506
  _classPrivateFieldSet(_hasRenderingStateChanged, this, false);
520
507
  }
521
508
 
522
- /**
523
- * Update the main scrollable elements for all the overlays.
524
- */
525
- updateMainScrollableElements() {
526
- this.deregisterListeners();
527
- this.inlineStartOverlay.updateMainScrollableElement();
528
- this.topOverlay.updateMainScrollableElement();
529
- if (this.bottomOverlay.needFullRender) {
530
- this.bottomOverlay.updateMainScrollableElement();
531
- }
532
- const {
533
- wtTable
534
- } = this;
535
- const {
536
- rootWindow
537
- } = this.domBindings;
538
- if (rootWindow.getComputedStyle(wtTable.wtRootElement.parentNode).getPropertyValue('overflow') === 'hidden') {
539
- this.scrollableElement = wtTable.holder;
540
- } else {
541
- this.scrollableElement = getScrollableElement(wtTable.TABLE);
542
- }
543
- this.registerListeners();
544
- }
545
-
546
509
  /**
547
510
  *
548
511
  */
549
512
  destroy() {
550
513
  this.resizeObserver.disconnect();
551
514
  this.eventManager.destroy();
552
- // todo, probably all below `destory` calls has no sense. To analyze
515
+ // todo, probably all below `destroy` calls has no sense. To analyze
553
516
  this.topOverlay.destroy();
554
517
  if (this.bottomOverlay.clone) {
555
518
  this.bottomOverlay.destroy();
package/base.js CHANGED
@@ -45,8 +45,8 @@ Handsontable.hooks = _hooks.Hooks.getSingleton();
45
45
  Handsontable.CellCoords = _src.CellCoords;
46
46
  Handsontable.CellRange = _src.CellRange;
47
47
  Handsontable.packageName = 'handsontable';
48
- Handsontable.buildDate = "17/12/2024 09:56:09";
49
- Handsontable.version = "0.0.0-next-eafbc4a-20241217";
48
+ Handsontable.buildDate = "23/12/2024 09:09:52";
49
+ Handsontable.version = "0.0.0-next-8b0b0f4-20241223";
50
50
  Handsontable.languages = {
51
51
  dictionaryKeys: _registry.dictionaryKeys,
52
52
  getLanguageDictionary: _registry.getLanguageDictionary,
package/base.mjs CHANGED
@@ -35,8 +35,8 @@ Handsontable.hooks = Hooks.getSingleton();
35
35
  Handsontable.CellCoords = CellCoords;
36
36
  Handsontable.CellRange = CellRange;
37
37
  Handsontable.packageName = 'handsontable';
38
- Handsontable.buildDate = "17/12/2024 09:56:15";
39
- Handsontable.version = "0.0.0-next-eafbc4a-20241217";
38
+ Handsontable.buildDate = "23/12/2024 09:09:58";
39
+ Handsontable.version = "0.0.0-next-8b0b0f4-20241223";
40
40
  Handsontable.languages = {
41
41
  dictionaryKeys,
42
42
  getLanguageDictionary,
package/core.js CHANGED
@@ -2009,10 +2009,11 @@ function Core(rootElement, userSettings) {
2009
2009
  if (!instance.view) {
2010
2010
  return;
2011
2011
  }
2012
+ const view = instance.view;
2012
2013
  const {
2013
2014
  width: lastWidth,
2014
2015
  height: lastHeight
2015
- } = instance.view.getLastSize();
2016
+ } = view.getLastSize();
2016
2017
  const {
2017
2018
  width,
2018
2019
  height
@@ -2028,9 +2029,10 @@ function Core(rootElement, userSettings) {
2028
2029
  if (isResizeBlocked) {
2029
2030
  return;
2030
2031
  }
2031
- if (isSizeChanged || instance.view._wt.wtOverlays.scrollableElement === instance.rootWindow) {
2032
- instance.view.setLastSize(width, height);
2032
+ if (isSizeChanged || view._wt.wtOverlays.scrollableElement === instance.rootWindow) {
2033
+ view.setLastSize(width, height);
2033
2034
  instance.render();
2035
+ view.adjustElementsSize();
2034
2036
  }
2035
2037
  instance.runHooks('afterRefreshDimensions', {
2036
2038
  width: lastWidth,
@@ -2418,9 +2420,6 @@ function Core(rootElement, userSettings) {
2418
2420
  instance.view.render();
2419
2421
  instance.view._wt.wtOverlays.adjustElementsSize();
2420
2422
  }
2421
- if (!init && instance.view && (currentHeight === '' || height === '' || height === undefined) && currentHeight !== height) {
2422
- instance.view._wt.wtOverlays.updateMainScrollableElements();
2423
- }
2424
2423
  };
2425
2424
 
2426
2425
  /**
package/core.mjs CHANGED
@@ -2004,10 +2004,11 @@ export default function Core(rootElement, userSettings) {
2004
2004
  if (!instance.view) {
2005
2005
  return;
2006
2006
  }
2007
+ const view = instance.view;
2007
2008
  const {
2008
2009
  width: lastWidth,
2009
2010
  height: lastHeight
2010
- } = instance.view.getLastSize();
2011
+ } = view.getLastSize();
2011
2012
  const {
2012
2013
  width,
2013
2014
  height
@@ -2023,9 +2024,10 @@ export default function Core(rootElement, userSettings) {
2023
2024
  if (isResizeBlocked) {
2024
2025
  return;
2025
2026
  }
2026
- if (isSizeChanged || instance.view._wt.wtOverlays.scrollableElement === instance.rootWindow) {
2027
- instance.view.setLastSize(width, height);
2027
+ if (isSizeChanged || view._wt.wtOverlays.scrollableElement === instance.rootWindow) {
2028
+ view.setLastSize(width, height);
2028
2029
  instance.render();
2030
+ view.adjustElementsSize();
2029
2031
  }
2030
2032
  instance.runHooks('afterRefreshDimensions', {
2031
2033
  width: lastWidth,
@@ -2413,9 +2415,6 @@ export default function Core(rootElement, userSettings) {
2413
2415
  instance.view.render();
2414
2416
  instance.view._wt.wtOverlays.adjustElementsSize();
2415
2417
  }
2416
- if (!init && instance.view && (currentHeight === '' || height === '' || height === undefined) && currentHeight !== height) {
2417
- instance.view._wt.wtOverlays.updateMainScrollableElements();
2418
- }
2419
2418
  };
2420
2419
 
2421
2420
  /**
@@ -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: 0.0.0-next-eafbc4a-20241217
29
- * Release date: 16/12/2024 (built at 17/12/2024 09:56:37)
28
+ * Version: 0.0.0-next-8b0b0f4-20241223
29
+ * Release date: 16/12/2024 (built at 23/12/2024 09:10:20)
30
30
  */
31
31
  /**
32
32
  * Fix for bootstrap styles
@@ -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: 0.0.0-next-eafbc4a-20241217
29
- * Release date: 16/12/2024 (built at 17/12/2024 09:56:37)
28
+ * Version: 0.0.0-next-8b0b0f4-20241223
29
+ * Release date: 16/12/2024 (built at 23/12/2024 09:10:20)
30
30
  */
31
31
  /**
32
32
  * Fix for bootstrap styles
@@ -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: 0.0.0-next-eafbc4a-20241217
29
- * Release date: 16/12/2024 (built at 17/12/2024 09:56:19)
28
+ * Version: 0.0.0-next-8b0b0f4-20241223
29
+ * Release date: 16/12/2024 (built at 23/12/2024 09:10:02)
30
30
  */
31
31
  (function webpackUniversalModuleDefinition(root, factory) {
32
32
  if(typeof exports === 'object' && typeof module === 'object')
@@ -42676,8 +42676,8 @@ Handsontable.hooks = _hooks.Hooks.getSingleton();
42676
42676
  Handsontable.CellCoords = _src.CellCoords;
42677
42677
  Handsontable.CellRange = _src.CellRange;
42678
42678
  Handsontable.packageName = 'handsontable';
42679
- Handsontable.buildDate = "17/12/2024 09:56:19";
42680
- Handsontable.version = "0.0.0-next-eafbc4a-20241217";
42679
+ Handsontable.buildDate = "23/12/2024 09:10:02";
42680
+ Handsontable.version = "0.0.0-next-8b0b0f4-20241223";
42681
42681
  Handsontable.languages = {
42682
42682
  dictionaryKeys: _registry.dictionaryKeys,
42683
42683
  getLanguageDictionary: _registry.getLanguageDictionary,
@@ -44709,10 +44709,11 @@ function Core(rootElement, userSettings) {
44709
44709
  if (!instance.view) {
44710
44710
  return;
44711
44711
  }
44712
+ const view = instance.view;
44712
44713
  const {
44713
44714
  width: lastWidth,
44714
44715
  height: lastHeight
44715
- } = instance.view.getLastSize();
44716
+ } = view.getLastSize();
44716
44717
  const {
44717
44718
  width,
44718
44719
  height
@@ -44728,9 +44729,10 @@ function Core(rootElement, userSettings) {
44728
44729
  if (isResizeBlocked) {
44729
44730
  return;
44730
44731
  }
44731
- if (isSizeChanged || instance.view._wt.wtOverlays.scrollableElement === instance.rootWindow) {
44732
- instance.view.setLastSize(width, height);
44732
+ if (isSizeChanged || view._wt.wtOverlays.scrollableElement === instance.rootWindow) {
44733
+ view.setLastSize(width, height);
44733
44734
  instance.render();
44735
+ view.adjustElementsSize();
44734
44736
  }
44735
44737
  instance.runHooks('afterRefreshDimensions', {
44736
44738
  width: lastWidth,
@@ -45118,9 +45120,6 @@ function Core(rootElement, userSettings) {
45118
45120
  instance.view.render();
45119
45121
  instance.view._wt.wtOverlays.adjustElementsSize();
45120
45122
  }
45121
- if (!init && instance.view && (currentHeight === '' || height === '' || height === undefined) && currentHeight !== height) {
45122
- instance.view._wt.wtOverlays.updateMainScrollableElements();
45123
- }
45124
45123
  };
45125
45124
 
45126
45125
  /**
@@ -53962,7 +53961,7 @@ const domMessages = {
53962
53961
  function _injectProductInfo(key, element) {
53963
53962
  const hasValidType = !isEmpty(key);
53964
53963
  const isNonCommercial = typeof key === 'string' && key.toLowerCase() === 'non-commercial-and-evaluation';
53965
- const hotVersion = "0.0.0-next-eafbc4a-20241217";
53964
+ const hotVersion = "0.0.0-next-8b0b0f4-20241223";
53966
53965
  let keyValidityDate;
53967
53966
  let consoleMessageState = 'invalid';
53968
53967
  let domMessageState = 'invalid';
@@ -73417,13 +73416,7 @@ class Overlays {
73417
73416
  }
73418
73417
  const overlays = [this.topOverlay, this.bottomOverlay, this.inlineStartOverlay, this.topInlineStartCornerOverlay, this.bottomInlineStartCornerOverlay];
73419
73418
  overlays.forEach(overlay => {
73420
- if (overlay && overlay.needFullRender) {
73421
- const {
73422
- holder
73423
- } = overlay.clone.wtTable; // todo rethink, maybe: overlay.getHolder()
73424
-
73425
- this.eventManager.addEventListener(holder, 'wheel', event => this.onCloneWheel(event, preventWheel), wheelEventOptions);
73426
- }
73419
+ this.eventManager.addEventListener(overlay.clone.wtTable.holder, 'wheel', event => this.onCloneWheel(event, preventWheel), wheelEventOptions);
73427
73420
  });
73428
73421
  let resizeTimeout;
73429
73422
  this.eventManager.addEventListener(rootWindow, 'resize', () => {
@@ -73441,13 +73434,6 @@ class Overlays {
73441
73434
  }
73442
73435
  }
73443
73436
 
73444
- /**
73445
- * Deregister all previously registered listeners.
73446
- */
73447
- deregisterListeners() {
73448
- this.eventManager.clearEvents(true);
73449
- }
73450
-
73451
73437
  /**
73452
73438
  * Scroll listener.
73453
73439
  *
@@ -73619,37 +73605,13 @@ class Overlays {
73619
73605
  _classPrivateFieldSet(_hasRenderingStateChanged, this, false);
73620
73606
  }
73621
73607
 
73622
- /**
73623
- * Update the main scrollable elements for all the overlays.
73624
- */
73625
- updateMainScrollableElements() {
73626
- this.deregisterListeners();
73627
- this.inlineStartOverlay.updateMainScrollableElement();
73628
- this.topOverlay.updateMainScrollableElement();
73629
- if (this.bottomOverlay.needFullRender) {
73630
- this.bottomOverlay.updateMainScrollableElement();
73631
- }
73632
- const {
73633
- wtTable
73634
- } = this;
73635
- const {
73636
- rootWindow
73637
- } = this.domBindings;
73638
- if (rootWindow.getComputedStyle(wtTable.wtRootElement.parentNode).getPropertyValue('overflow') === 'hidden') {
73639
- this.scrollableElement = wtTable.holder;
73640
- } else {
73641
- this.scrollableElement = (0, _element.getScrollableElement)(wtTable.TABLE);
73642
- }
73643
- this.registerListeners();
73644
- }
73645
-
73646
73608
  /**
73647
73609
  *
73648
73610
  */
73649
73611
  destroy() {
73650
73612
  this.resizeObserver.disconnect();
73651
73613
  this.eventManager.destroy();
73652
- // todo, probably all below `destory` calls has no sense. To analyze
73614
+ // todo, probably all below `destroy` calls has no sense. To analyze
73653
73615
  this.topOverlay.destroy();
73654
73616
  if (this.bottomOverlay.clone) {
73655
73617
  this.bottomOverlay.destroy();
@@ -102494,13 +102456,13 @@ class HandsontableEditor extends _textEditor.TextEditor {
102494
102456
  */
102495
102457
  assignHooks() {
102496
102458
  this.hot.addHook('afterDestroy', () => {
102497
- if (this.htEditor) {
102498
- this.htEditor.destroy();
102499
- }
102459
+ var _this$htEditor;
102460
+ (_this$htEditor = this.htEditor) === null || _this$htEditor === void 0 || _this$htEditor.destroy();
102500
102461
  });
102501
102462
  this.hot.addHook('afterSetTheme', (themeName, firstRun) => {
102502
102463
  if (!firstRun) {
102503
- this.htEditor.useTheme(themeName);
102464
+ var _this$htEditor2;
102465
+ (_this$htEditor2 = this.htEditor) === null || _this$htEditor2 === void 0 || _this$htEditor2.useTheme(themeName);
102504
102466
  }
102505
102467
  });
102506
102468
  }
@@ -26,8 +26,8 @@
26
26
  * INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES OF ANY CHARACTER ARISING FROM
27
27
  * USE OR INABILITY TO USE THIS SOFTWARE.
28
28
  *
29
- * Version: 0.0.0-next-eafbc4a-20241217
30
- * Release date: 16/12/2024 (built at 17/12/2024 09:57:13)
29
+ * Version: 0.0.0-next-8b0b0f4-20241223
30
+ * Release date: 16/12/2024 (built at 23/12/2024 09:10:54)
31
31
  */.handsontable .table td,.handsontable .table th{border-top:none}.handsontable tr{background:#fff}.handsontable td{background-color:inherit}.handsontable .table caption+thead tr:first-child td,.handsontable .table caption+thead tr:first-child th,.handsontable .table colgroup+thead tr:first-child td,.handsontable .table colgroup+thead tr:first-child th,.handsontable .table thead:first-child tr:first-child td,.handsontable .table thead:first-child tr:first-child th{border-top:1px solid #ccc}.handsontable .table-bordered{border:0;border-collapse:separate}.handsontable .table-bordered td,.handsontable .table-bordered th{border-left:none}.handsontable .table-bordered td:first-child,.handsontable .table-bordered th:first-child{border-left:1px solid #ccc}.handsontable .table>tbody>tr>td,.handsontable .table>tbody>tr>th,.handsontable .table>tfoot>tr>td,.handsontable .table>tfoot>tr>th,.handsontable .table>thead>tr>td,.handsontable .table>thead>tr>th{line-height:21px;padding:0}.col-lg-1.handsontable,.col-lg-10.handsontable,.col-lg-11.handsontable,.col-lg-12.handsontable,.col-lg-2.handsontable,.col-lg-3.handsontable,.col-lg-4.handsontable,.col-lg-5.handsontable,.col-lg-6.handsontable,.col-lg-7.handsontable,.col-lg-8.handsontable,.col-lg-9.handsontable,.col-md-1.handsontable,.col-md-10.handsontable,.col-md-11.handsontable,.col-md-12.handsontable,.col-md-2.handsontable,.col-md-3.handsontable,.col-md-4.handsontable,.col-md-5.handsontable,.col-md-6.handsontable,.col-md-7.handsontable,.col-md-8.handsontable,.col-md-9.handsontable .col-sm-1.handsontable,.col-sm-10.handsontable,.col-sm-11.handsontable,.col-sm-12.handsontable,.col-sm-2.handsontable,.col-sm-3.handsontable,.col-sm-4.handsontable,.col-sm-5.handsontable,.col-sm-6.handsontable,.col-sm-7.handsontable,.col-sm-8.handsontable,.col-sm-9.handsontable .col-xs-1.handsontable,.col-xs-10.handsontable,.col-xs-11.handsontable,.col-xs-12.handsontable,.col-xs-2.handsontable,.col-xs-3.handsontable,.col-xs-4.handsontable,.col-xs-5.handsontable,.col-xs-6.handsontable,.col-xs-7.handsontable,.col-xs-8.handsontable,.col-xs-9.handsontable{padding-left:0;padding-right:0}.handsontable .table-striped>tbody>tr:nth-of-type(2n){background-color:#fff}.handsontable .hide{display:none}.handsontable .relative{position:relative}.handsontable .wtHider{position:relative;width:0}.handsontable .wtSpreader{height:auto;position:relative;width:0}.handsontable div,.handsontable input,.handsontable table,.handsontable tbody,.handsontable td,.handsontable textarea,.handsontable th,.handsontable thead{box-sizing:content-box;-webkit-box-sizing:content-box;-moz-box-sizing:content-box}.handsontable input,.handsontable textarea{min-height:auto}.handsontable table.htCore{border-collapse:separate;border-spacing:0;border-width:0;cursor:default;margin:0;max-height:none;max-width:none;outline-width:0;table-layout:fixed;width:0}.handsontable col,.handsontable col.rowHeader{width:50px}.handsontable td,.handsontable th{background-color:#fff;border-bottom:1px solid #ccc;border-left-width:0;border-right:1px solid #ccc;border-top-width:0;empty-cells:show;height:22px;line-height:21px;outline:none;outline-width:0;overflow:hidden;padding:0 4px;vertical-align:top;white-space:pre-wrap}[dir=rtl].handsontable td,[dir=rtl].handsontable th{border-left:1px solid #ccc;border-right-width:0}.handsontable th:last-child{border-bottom:1px solid #ccc;border-left:none;border-right:1px solid #ccc}[dir=rtl].handsontable th:last-child{border-left:1px solid #ccc;border-right:none}.handsontable td:first-of-type,.handsontable th:first-child{border-left:1px solid #ccc}[dir=rtl].handsontable td:first-of-type,[dir=rtl].handsontable th:first-child{border-right:1px solid #ccc}.handsontable .ht_clone_top th:nth-child(2){border-left-width:0;border-right:1px solid #ccc}[dir=rtl].handsontable .ht_clone_top th:nth-child(2){border-left:1px solid #ccc;border-right-width:0}.handsontable.htRowHeaders thead tr th:nth-child(2){border-left:1px solid #ccc}[dir=rtl].handsontable.htRowHeaders thead tr th:nth-child(2){border-right:1px solid #ccc}.handsontable tr:first-child td,.handsontable tr:first-child th{border-top:1px solid #ccc}.ht_master:not(.innerBorderInlineStart):not(.emptyColumns) tbody tr th,.ht_master:not(.innerBorderInlineStart):not(.emptyColumns) thead tr th:first-child,.ht_master:not(.innerBorderInlineStart):not(.emptyColumns)~.handsontable:not(.htGhostTable) tbody tr th,.ht_master:not(.innerBorderInlineStart):not(.emptyColumns)~.handsontable:not(.ht_clone_top):not(.htGhostTable) thead tr th:first-child{border-left:1px solid #ccc;border-right-width:0}[dir=rtl].ht_master:not(.innerBorderInlineStart):not(.emptyColumns) tbody tr th,[dir=rtl].ht_master:not(.innerBorderInlineStart):not(.emptyColumns) thead tr th:first-child,[dir=rtl].ht_master:not(.innerBorderInlineStart):not(.emptyColumns)~.handsontable:not(.htGhostTable) tbody tr th,[dir=rtl].ht_master:not(.innerBorderInlineStart):not(.emptyColumns)~.handsontable:not(.ht_clone_top):not(.htGhostTable) thead tr th:first-child{border-left-width:0;border-right:1px solid #ccc}.ht_master:not(.innerBorderTop):not(.innerBorderBottom) thead tr.lastChild th,.ht_master:not(.innerBorderTop):not(.innerBorderBottom) thead tr:last-child th,.ht_master:not(.innerBorderTop):not(.innerBorderBottom)~.handsontable thead tr.lastChild th,.ht_master:not(.innerBorderTop):not(.innerBorderBottom)~.handsontable thead tr:last-child th{border-bottom-width:0}.handsontable th{background-color:#f0f0f0;color:#222;font-weight:400;text-align:center;white-space:nowrap}.handsontable thead th{padding:0}.handsontable th.active{background-color:#ccc}.handsontable thead th .relative{padding:2px 4px}.handsontable span.colHeader{display:inline-block;line-height:1.1}.handsontable .wtBorder{font-size:0;position:absolute}.handsontable .wtBorder.hidden{display:none!important}.handsontable .wtBorder.current{z-index:10}.handsontable .wtBorder.area{z-index:8}.handsontable .wtBorder.fill{z-index:6}.handsontable .wtBorder.corner{cursor:crosshair;font-size:0}.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}.handsontable col.hidden{width:0!important}.handsontable tr.hidden,.handsontable tr.hidden td,.handsontable tr.hidden th{display:none}.ht_clone_bottom,.ht_clone_inline_start,.ht_clone_top,.ht_master{overflow:hidden}.ht_master .wtHolder{overflow:auto}.handsontable .ht_clone_inline_start table.htCore>thead,.handsontable .ht_master table.htCore>tbody>tr>th,.handsontable .ht_master table.htCore>thead{visibility:hidden}.ht_clone_bottom .wtHolder,.ht_clone_inline_start .wtHolder,.ht_clone_top .wtHolder{overflow:hidden}.handsontable{color:#373737;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Helvetica Neue,Arial,sans-serif;font-size:13px;font-weight:400;position:relative;touch-action:manipulation}.handsontable a{color:#104acc}.handsontable.htAutoSize{left:-99000px;position:absolute;top:-99000px;visibility:hidden}.handsontable td.htInvalid{background-color:#ffbeba!important}.handsontable td.htNoWrap{white-space:nowrap}.handsontable td.invisibleSelection,.handsontable th.invisibleSelection{outline:none}.handsontable td.invisibleSelection::selection,.handsontable th.invisibleSelection::selection{background:hsla(0,0%,100%,0)}.hot-display-license-info{color:#373737;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Helvetica Neue,Arial,sans-serif;font-size:10px;font-weight:400;padding:5px 0 3px;text-align:left}.hot-display-license-info a{color:#104acc;font-size:10px}.handsontable .htFocusCatcher{border:0;height:0;margin:0;opacity:0;padding:0;position:absolute;width:0;z-index:-1}.handsontable .manualColumnResizer{cursor:col-resize;height:25px;position:absolute;top:0;width:5px;z-index:210}.handsontable .manualRowResizer{cursor:row-resize;height:5px;left:0;position:absolute;width:50px;z-index:210}.handsontable .manualColumnResizer.active,.handsontable .manualColumnResizer:hover,.handsontable .manualRowResizer.active,.handsontable .manualRowResizer:hover{background-color:#34a9db}.handsontable .manualColumnResizerGuide{background-color:#34a9db;border-left:none;border-right:1px dashed #777;display:none;margin-left:5px;margin-right:unset;position:absolute;right:unset;top:0;width:0}[dir=rtl].handsontable .manualColumnResizerGuide{border-left:1px dashed #777;border-right:none;left:unset;margin-left:unset;margin-right:5px}.handsontable .manualRowResizerGuide{background-color:#34a9db;border-bottom:1px dashed #777;bottom:0;display:none;height:0;left:0;margin-top:5px;position:absolute}.handsontable .manualColumnResizerGuide.active,.handsontable .manualRowResizerGuide.active{display:block;z-index:209}.handsontable td.area,.handsontable td.area-1,.handsontable td.area-2,.handsontable td.area-3,.handsontable td.area-4,.handsontable td.area-5,.handsontable td.area-6,.handsontable td.area-7{position:relative}.handsontable td.area-1:before,.handsontable td.area-2:before,.handsontable td.area-3:before,.handsontable td.area-4:before,.handsontable td.area-5:before,.handsontable td.area-6:before,.handsontable td.area-7:before,.handsontable td.area:before{background:#005eff;bottom:0;content:"";left:0;position:absolute;right:0;top:0}.handsontable td.area:before{opacity:.1}.handsontable td.area-1:before{opacity:.2}.handsontable td.area-2:before{opacity:.27}.handsontable td.area-3:before{opacity:.35}.handsontable td.area-4:before{opacity:.41}.handsontable td.area-5:before{opacity:.47}.handsontable td.area-6:before{opacity:.54}.handsontable td.area-7:before{opacity:.58}.handsontable tbody th.current,.handsontable thead th.current{box-shadow:inset 0 0 0 2px #4b89ff}.handsontable tbody th.ht__highlight,.handsontable thead th.ht__highlight{background-color:#dcdcdc}.handsontable tbody th.ht__active_highlight,.handsontable thead th.ht__active_highlight{background-color:#8eb0e7;color:#000}.handsontableInput{background-color:#fff;border:none;border-radius:0;box-shadow:inset 0 0 0 2px #5292f7;box-sizing:border-box!important;color:#000;display:block;font-family:inherit;font-size:inherit;line-height:21px;margin:0;outline-width:0;padding:1px 5px 0;resize:none}.handsontableInput:focus{outline:none}.handsontableInputHolder{left:0;position:absolute;top:0}.htSelectEditor{position:absolute;select{-webkit-appearance:menulist-button!important;border:2px solid #4b89ff;box-sizing:border-box!important;height:100%;width:100%}}.htSelectEditor select:focus{outline:none}.htSelectEditor .htAutocompleteArrow{display:none}.handsontable .htDimmed{color:#777}.handsontable .htSubmenu{position:relative}.handsontable .htSubmenu :after{color:#777;content:"▶";font-size:9px;position:absolute;right:5px}[dir=rtl].handsontable .htSubmenu :after{content:""}[dir=rtl].handsontable .htSubmenu :before{color:#777;content:"◀";font-size:9px;left:5px;position:absolute}.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 .htPlaceholder{color:#999}.handsontable.listbox{margin:0}.handsontable.listbox .ht_master table{background:#fff;border:1px solid #ccc;border-collapse:separate}.handsontable.listbox td,.handsontable.listbox th,.handsontable.listbox tr:first-child td,.handsontable.listbox tr:first-child th,.handsontable.listbox tr:last-child th{border-color:transparent!important}.handsontable.listbox td,.handsontable.listbox th{text-overflow:ellipsis;white-space:nowrap}.handsontable.listbox td.htDimmed{color:inherit;cursor:default;font-style:inherit}.handsontable.listbox .wtBorder{visibility:hidden}.handsontable.listbox tr td.current,.handsontable.listbox tr:hover td{background:#eee}.ht_editor_hidden{z-index:-1}.ht_editor_visible{z-index:200}.handsontable td.htSearchResult{background:#fcedd9;color:#583707}.handsontable.mobile,.handsontable.mobile .wtHolder{-webkit-touch-callout:none;-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-tap-highlight-color:rgba(0,0,0,0);-webkit-overflow-scrolling:touch}.handsontable.mobile .handsontableInput:focus{-webkit-appearance:none;-webkit-box-shadow:inset 0 0 0 2px #5292f7;-moz-box-shadow:inset 0 0 0 2px #5292f7;box-shadow:inset 0 0 0 2px #5292f7}.handsontable .bottomSelectionHandle,.handsontable .bottomSelectionHandle-HitArea,.handsontable .topSelectionHandle,.handsontable .topSelectionHandle-HitArea{left:-10000px;right:unset;top:-10000px;z-index:9999}[dir=rtl].handsontable .bottomSelectionHandle,[dir=rtl].handsontable .bottomSelectionHandle-HitArea,[dir=rtl].handsontable .topSelectionHandle,[dir=rtl].handsontable .topSelectionHandle-HitArea{left:unset;right:-10000px}.handsontable.hide-tween{-webkit-animation:opacity-hide .3s;animation:opacity-hide .3s;animation-fill-mode:forwards;-webkit-animation-fill-mode:forwards}.handsontable.show-tween{-webkit-animation:opacity-show .3s;animation:opacity-show .3s;animation-fill-mode:forwards;-webkit-animation-fill-mode:forwards}.handsontable .htAutocompleteArrow{color:#bbb;cursor:default;float:right;font-size:10px;text-align:center;width:16px}[dir=rtl].handsontable .htAutocompleteArrow{float:left}.handsontable td.htInvalid .htAutocompleteArrow{color:#555}.handsontable td.htInvalid .htAutocompleteArrow:hover{color:#1a1a1a}.handsontable td .htAutocompleteArrow:hover{color:#777}.handsontable td.area .htAutocompleteArrow{color:#d3d3d3}.handsontable .htCheckboxRendererInput.noValue{opacity:.5}.handsontable .htCheckboxRendererLabel{cursor:pointer;display:inline-block;font-size:inherit;vertical-align:middle}.handsontable .htCheckboxRendererLabel.fullWidth{width:100%}.handsontable .collapsibleIndicator{background:#eee;border:1px solid #a6a6a6;border-radius:10px;-webkit-box-shadow:0 0 0 6px #eee;-moz-box-shadow:0 0 0 6px #eee;box-shadow:0 0 0 3px #eee;color:#222;cursor:pointer;font-size:10px;height:10px;left:unset;line-height:8px;position:absolute;right:5px;text-align:center;top:50%;transform:translateY(-50%);width:10px}[dir=rtl].handsontable .collapsibleIndicator{left:5px;right:unset}.handsontable[dir=ltr] thead th:has(.collapsibleIndicator) div.htRight span.colHeader{margin-right:20px}.handsontable[dir=rtl] thead th:has(.collapsibleIndicator) div.htLeft span.colHeader{margin-left:20px}.handsontable .columnSorting{position:relative}.handsontable[dir=ltr] div.htRight span[class*=ascending],.handsontable[dir=ltr] div.htRight span[class*=descending]{margin-left:-10px;margin-right:10px}.handsontable[dir=rtl] div.htLeft span[class*=ascending],.handsontable[dir=rtl] div.htLeft span[class*=descending]{margin-left:10px;margin-right:-10px}.handsontable[dir=ltr] div.htRight span[class*=ascending]:only-child,.handsontable[dir=ltr] div.htRight span[class*=descending]:only-child{margin-left:-15px;margin-right:15px}.handsontable[dir=rtl] div.htLeft span[class*=ascending]:only-child,.handsontable[dir=rtl] div.htLeft span[class*=descending]:only-child{margin-left:15px;margin-right:-15px}.handsontable .columnSorting.sortAction:hover{cursor:pointer;text-decoration:underline}.handsontable span.colHeader.columnSorting:before{background-position-x:right;background-repeat:no-repeat;background-size:contain;content:"";height:10px;left:unset;margin-top:-6px;padding-left:8px;padding-right:0;position:absolute;right:-9px;top:50%;width:5px}[dir=rtl].handsontable span.colHeader.columnSorting:before{background-position-x:left;left:-9px;padding-left:0;padding-right:8px;right:unset}.handsontable span.colHeader.columnSorting.ascending:before{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAoCAMAAADJ7yrpAAAAKlBMVEUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKE86IAAAADXRSTlMABBEmRGprlJW72e77tTkTKwAAAFNJREFUeAHtzjkSgCAUBNHPgsoy97+ulGXRqJE5L+xkxoYt2UdsLb5bqFINz+aLuuLn5rIu2RkO3fZpWENimNgiw6iBYRTPMLJjGFxQZ1hxxb/xBI1qC8k39CdKAAAAAElFTkSuQmCC)}.handsontable span.colHeader.columnSorting.descending:before{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAoCAMAAADJ7yrpAAAAKlBMVEUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKE86IAAAADXRSTlMABBEmRGprlJW72e77tTkTKwAAAFJJREFUeAHtzjkSgCAQRNFmQYUZ7n9dKUvru0TmvPAn3br0QfgdZ5xx6x+rQn23GqTYnq1FDcnuzZIO2WmedVqIRVxgGKEyjNgYRjKGkZ1hFIZ3I70LyM0VtU8AAAAASUVORK5CYII=)}.htGhostTable .htCore span.colHeader.columnSorting:not(.indicatorDisabled):before{content:"*";display:inline-block;padding-right:20px;position:relative}.handsontable.htGhostTable table thead th{border-bottom-width:0}.handsontable.htGhostTable table tbody tr td,.handsontable.htGhostTable table tbody tr th{border-top-width:0}.handsontable .htCommentCell{position:relative}.handsontable .htCommentCell:after{border-left:6px solid transparent;border-right:none;border-top:6px solid #000;content:"";left:unset;position:absolute;right:0;top:0}[dir=rtl].handsontable .htCommentCell:after{border-left:none;border-right:6px solid transparent;left:0;right:unset}.htCommentsContainer .htComments{display:none;position:absolute;z-index:1059}.htCommentsContainer .htCommentTextArea{-webkit-appearance:none;background-color:#fff;border:none;border-left:3px solid #ccc;box-shadow:0 1px 3px rgba(0,0,0,.118),0 1px 2px rgba(0,0,0,.239);-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;font-size:12px;height:90px;outline:0!important;padding:5px;width:215px}[dir=rtl].htCommentsContainer .htCommentTextArea{border-left:none;border-right:3px solid #ccc}.htCommentsContainer .htCommentTextArea:focus{border-left:3px solid #5292f7;border-right:none;box-shadow:0 1px 3px rgba(0,0,0,.118),0 1px 2px rgba(0,0,0,.239),inset 0 0 0 1px #5292f7}[dir=rtl].htCommentsContainer .htCommentTextArea:focus{border-left:none;border-right:3px solid #5292f7}
32
32
  /*!
33
33
  * Handsontable ContextMenu