handsontable 0.0.0-next-40cdda4-20240118 → 0.0.0-next-ff99030-20240119

Sign up to get free protection for your applications and to get access to all the features.

Potentially problematic release.


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

@@ -89,6 +89,9 @@ class Scroll {
89
89
  return false;
90
90
  }
91
91
  column = this.dataAccessObject.wtSettings.getSetting('onBeforeViewportScrollHorizontally', column);
92
+ if (!Number.isInteger(column) || column < 0 || column > totalColumns) {
93
+ return false;
94
+ }
92
95
  const firstColumn = this.getFirstVisibleColumn();
93
96
  const lastColumn = this.getLastVisibleColumn();
94
97
  let result = false;
@@ -131,6 +134,9 @@ class Scroll {
131
134
  return false;
132
135
  }
133
136
  row = this.dataAccessObject.wtSettings.getSetting('onBeforeViewportScrollVertically', row);
137
+ if (!Number.isInteger(row) || row < 0 || row > totalRows) {
138
+ return false;
139
+ }
134
140
  const firstRow = this.getFirstVisibleRow();
135
141
  const lastRow = this.getLastVisibleRow();
136
142
  let result = false;
@@ -86,6 +86,9 @@ class Scroll {
86
86
  return false;
87
87
  }
88
88
  column = this.dataAccessObject.wtSettings.getSetting('onBeforeViewportScrollHorizontally', column);
89
+ if (!Number.isInteger(column) || column < 0 || column > totalColumns) {
90
+ return false;
91
+ }
89
92
  const firstColumn = this.getFirstVisibleColumn();
90
93
  const lastColumn = this.getLastVisibleColumn();
91
94
  let result = false;
@@ -128,6 +131,9 @@ class Scroll {
128
131
  return false;
129
132
  }
130
133
  row = this.dataAccessObject.wtSettings.getSetting('onBeforeViewportScrollVertically', row);
134
+ if (!Number.isInteger(row) || row < 0 || row > totalRows) {
135
+ return false;
136
+ }
131
137
  const firstRow = this.getFirstVisibleRow();
132
138
  const lastRow = this.getLastVisibleRow();
133
139
  let result = false;
package/base.js CHANGED
@@ -45,8 +45,8 @@ Handsontable.hooks = _pluginHooks.default.getSingleton();
45
45
  Handsontable.CellCoords = _src.CellCoords;
46
46
  Handsontable.CellRange = _src.CellRange;
47
47
  Handsontable.packageName = 'handsontable';
48
- Handsontable.buildDate = "18/01/2024 13:04:28";
49
- Handsontable.version = "0.0.0-next-40cdda4-20240118";
48
+ Handsontable.buildDate = "19/01/2024 10:59:53";
49
+ Handsontable.version = "0.0.0-next-ff99030-20240119";
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 = "18/01/2024 13:04:34";
39
- Handsontable.version = "0.0.0-next-40cdda4-20240118";
38
+ Handsontable.buildDate = "19/01/2024 10:59:59";
39
+ Handsontable.version = "0.0.0-next-ff99030-20240119";
40
40
  Handsontable.languages = {
41
41
  dictionaryKeys,
42
42
  getLanguageDictionary,
@@ -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-40cdda4-20240118
29
- * Release date: 16/01/2024 (built at 18/01/2024 13:04:39)
28
+ * Version: 0.0.0-next-ff99030-20240119
29
+ * Release date: 16/01/2024 (built at 19/01/2024 11:00:04)
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-40cdda4-20240118
29
- * Release date: 16/01/2024 (built at 18/01/2024 13:04:39)
28
+ * Version: 0.0.0-next-ff99030-20240119
29
+ * Release date: 16/01/2024 (built at 19/01/2024 11:00:04)
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-40cdda4-20240118
29
- * Release date: 16/01/2024 (built at 18/01/2024 13:04:39)
28
+ * Version: 0.0.0-next-ff99030-20240119
29
+ * Release date: 16/01/2024 (built at 19/01/2024 11:00:04)
30
30
  */
31
31
  (function webpackUniversalModuleDefinition(root, factory) {
32
32
  if(typeof exports === 'object' && typeof module === 'object')
@@ -43097,8 +43097,8 @@ Handsontable.hooks = _pluginHooks.default.getSingleton();
43097
43097
  Handsontable.CellCoords = _src.CellCoords;
43098
43098
  Handsontable.CellRange = _src.CellRange;
43099
43099
  Handsontable.packageName = 'handsontable';
43100
- Handsontable.buildDate = "18/01/2024 13:04:39";
43101
- Handsontable.version = "0.0.0-next-40cdda4-20240118";
43100
+ Handsontable.buildDate = "19/01/2024 11:00:04";
43101
+ Handsontable.version = "0.0.0-next-ff99030-20240119";
43102
43102
  Handsontable.languages = {
43103
43103
  dictionaryKeys: _registry.dictionaryKeys,
43104
43104
  getLanguageDictionary: _registry.getLanguageDictionary,
@@ -53173,7 +53173,7 @@ const domMessages = {
53173
53173
  function _injectProductInfo(key, element) {
53174
53174
  const hasValidType = !isEmpty(key);
53175
53175
  const isNonCommercial = typeof key === 'string' && key.toLowerCase() === 'non-commercial-and-evaluation';
53176
- const hotVersion = "0.0.0-next-40cdda4-20240118";
53176
+ const hotVersion = "0.0.0-next-ff99030-20240119";
53177
53177
  let keyValidityDate;
53178
53178
  let consoleMessageState = 'invalid';
53179
53179
  let domMessageState = 'invalid';
@@ -62948,7 +62948,8 @@ const REGISTERED_HOOKS = [/* eslint-disable jsdoc/require-description-complete-s
62948
62948
  * @since 14.0.0
62949
62949
  * @event Hooks#beforeViewportScrollVertically
62950
62950
  * @param {number} visualRow Visual row index.
62951
- * @returns {number} Returns modified row index (or the same as passed in the method argument) to which the viewport will be scrolled.
62951
+ * @returns {number | boolean} Returns modified row index (or the same as passed in the method argument) to which
62952
+ * the viewport will be scrolled. If the returned value is `false`, the scrolling will be canceled.
62952
62953
  */
62953
62954
  'beforeViewportScrollVertically',
62954
62955
  /**
@@ -62958,7 +62959,8 @@ const REGISTERED_HOOKS = [/* eslint-disable jsdoc/require-description-complete-s
62958
62959
  * @since 14.0.0
62959
62960
  * @event Hooks#beforeViewportScrollHorizontally
62960
62961
  * @param {number} visualColumn Visual column index.
62961
- * @returns {number} Returns modified column index (or the same as passed in the method argument) to which the viewport will be scrolled.
62962
+ * @returns {number | boolean} Returns modified column index (or the same as passed in the method argument) to which
62963
+ * the viewport will be scrolled. If the returned value is `false`, the scrolling will be canceled.
62962
62964
  */
62963
62965
  'beforeViewportScrollHorizontally',
62964
62966
  /**
@@ -76165,6 +76167,9 @@ class Scroll {
76165
76167
  return false;
76166
76168
  }
76167
76169
  column = this.dataAccessObject.wtSettings.getSetting('onBeforeViewportScrollHorizontally', column);
76170
+ if (!Number.isInteger(column) || column < 0 || column > totalColumns) {
76171
+ return false;
76172
+ }
76168
76173
  const firstColumn = this.getFirstVisibleColumn();
76169
76174
  const lastColumn = this.getLastVisibleColumn();
76170
76175
  let result = false;
@@ -76207,6 +76212,9 @@ class Scroll {
76207
76212
  return false;
76208
76213
  }
76209
76214
  row = this.dataAccessObject.wtSettings.getSetting('onBeforeViewportScrollVertically', row);
76215
+ if (!Number.isInteger(row) || row < 0 || row > totalRows) {
76216
+ return false;
76217
+ }
76210
76218
  const firstRow = this.getFirstVisibleRow();
76211
76219
  const lastRow = this.getLastVisibleRow();
76212
76220
  let result = false;
@@ -84530,8 +84538,8 @@ class Selection {
84530
84538
  } = selectionSchemaNormalizer(selection);
84531
84539
  this.setRangeStartOnly(from.clone(), false);
84532
84540
  this.setRangeEnd(to.clone());
84533
- this.finish();
84534
84541
  });
84542
+ this.finish();
84535
84543
  }
84536
84544
  return isValid;
84537
84545
  }
@@ -116760,6 +116768,8 @@ var _interopRequireDefault = __webpack_require__(198);
116760
116768
  exports.__esModule = true;
116761
116769
  __webpack_require__(274);
116762
116770
  var _defineProperty2 = _interopRequireDefault(__webpack_require__(455));
116771
+ var _classPrivateFieldGet2 = _interopRequireDefault(__webpack_require__(467));
116772
+ var _classPrivateFieldSet2 = _interopRequireDefault(__webpack_require__(470));
116763
116773
  var _base = __webpack_require__(770);
116764
116774
  var _array = __webpack_require__(446);
116765
116775
  var _object = __webpack_require__(450);
@@ -116773,6 +116783,7 @@ var _predefinedItems = __webpack_require__(806);
116773
116783
  __webpack_require__(866);
116774
116784
  var _a11y = __webpack_require__(447);
116775
116785
  function _classPrivateMethodInitSpec(obj, privateSet) { _checkPrivateRedeclaration(obj, privateSet); privateSet.add(obj); }
116786
+ function _classPrivateFieldInitSpec(obj, privateMap, value) { _checkPrivateRedeclaration(obj, privateMap); privateMap.set(obj, value); }
116776
116787
  function _checkPrivateRedeclaration(obj, privateCollection) { if (privateCollection.has(obj)) { throw new TypeError("Cannot initialize the same private elements twice on an object"); } }
116777
116788
  function _classPrivateMethodGet(receiver, privateSet, fn) { if (!privateSet.has(receiver)) { throw new TypeError("attempted to get private field on non-instance"); } return fn; }
116778
116789
  _pluginHooks.default.getSingleton().register('afterDropdownMenuDefaultOptions');
@@ -116835,6 +116846,7 @@ const SHORTCUTS_GROUP = PLUGIN_KEY;
116835
116846
  * ```
116836
116847
  * :::
116837
116848
  */
116849
+ var _isButtonClicked = /*#__PURE__*/new WeakMap();
116838
116850
  var _addCustomShortcuts = /*#__PURE__*/new WeakSet();
116839
116851
  var _onTableClick = /*#__PURE__*/new WeakSet();
116840
116852
  var _onAfterGetColHeader = /*#__PURE__*/new WeakSet();
@@ -116842,6 +116854,8 @@ var _onMenuBeforeOpen = /*#__PURE__*/new WeakSet();
116842
116854
  var _onMenuAfterOpen = /*#__PURE__*/new WeakSet();
116843
116855
  var _onSubMenuAfterOpen = /*#__PURE__*/new WeakSet();
116844
116856
  var _onMenuAfterClose = /*#__PURE__*/new WeakSet();
116857
+ var _onBeforeViewportScrollHorizontally = /*#__PURE__*/new WeakSet();
116858
+ var _onBeforeOnCellMouseDown = /*#__PURE__*/new WeakSet();
116845
116859
  class DropdownMenu extends _base.BasePlugin {
116846
116860
  static get PLUGIN_KEY() {
116847
116861
  return PLUGIN_KEY;
@@ -116873,6 +116887,21 @@ class DropdownMenu extends _base.BasePlugin {
116873
116887
  super(hotInstance);
116874
116888
 
116875
116889
  // One listener for enable/disable functionality
116890
+ /**
116891
+ * Hook sets the internal flag to `true` when the button is clicked.
116892
+ *
116893
+ * @param {MouseEvent} event The mouse event object.
116894
+ */
116895
+ _classPrivateMethodInitSpec(this, _onBeforeOnCellMouseDown);
116896
+ /**
116897
+ * Hook allows blocking horizontal scroll when the menu is opened by clicking on
116898
+ * the column header button. This prevents from scrolling the viewport (jump effect) when
116899
+ * the button is clicked.
116900
+ *
116901
+ * @param {number} visualColumn Visual column index.
116902
+ * @returns {number | null}
116903
+ */
116904
+ _classPrivateMethodInitSpec(this, _onBeforeViewportScrollHorizontally);
116876
116905
  /**
116877
116906
  * On menu after close listener.
116878
116907
  *
@@ -116937,6 +116966,15 @@ class DropdownMenu extends _base.BasePlugin {
116937
116966
  * @type {Menu}
116938
116967
  */
116939
116968
  (0, _defineProperty2.default)(this, "menu", null);
116969
+ /**
116970
+ * Flag which determines if the button that opens the menu was clicked.
116971
+ *
116972
+ * @type {boolean}
116973
+ */
116974
+ _classPrivateFieldInitSpec(this, _isButtonClicked, {
116975
+ writable: true,
116976
+ value: false
116977
+ });
116940
116978
  this.hot.addHook('afterGetColHeader', (col, TH) => _classPrivateMethodGet(this, _onAfterGetColHeader, _onAfterGetColHeader2).call(this, col, TH));
116941
116979
  }
116942
116980
 
@@ -116962,6 +117000,18 @@ class DropdownMenu extends _base.BasePlugin {
116962
117000
  return;
116963
117001
  }
116964
117002
  this.itemsFactory = new _itemsFactory.ItemsFactory(this.hot, DropdownMenu.DEFAULT_ITEMS);
117003
+ this.addHook('beforeOnCellMouseDown', function () {
117004
+ for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
117005
+ args[_key] = arguments[_key];
117006
+ }
117007
+ return _classPrivateMethodGet(_this, _onBeforeOnCellMouseDown, _onBeforeOnCellMouseDown2).call(_this, ...args);
117008
+ });
117009
+ this.addHook('beforeViewportScrollHorizontally', function () {
117010
+ for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {
117011
+ args[_key2] = arguments[_key2];
117012
+ }
117013
+ return _classPrivateMethodGet(_this, _onBeforeViewportScrollHorizontally, _onBeforeViewportScrollHorizontally2).call(_this, ...args);
117014
+ });
116965
117015
  const settings = this.hot.getSettings()[PLUGIN_KEY];
116966
117016
  const predefinedItems = {
116967
117017
  items: this.itemsFactory.getItems(settings)
@@ -116991,8 +117041,8 @@ class DropdownMenu extends _base.BasePlugin {
116991
117041
  this.menu.addLocalHook('afterSubmenuOpen', subMenuInstance => _classPrivateMethodGet(this, _onSubMenuAfterOpen, _onSubMenuAfterOpen2).call(this, subMenuInstance));
116992
117042
  this.menu.addLocalHook('afterClose', () => _classPrivateMethodGet(this, _onMenuAfterClose, _onMenuAfterClose2).call(this));
116993
117043
  this.menu.addLocalHook('executeCommand', function () {
116994
- for (var _len = arguments.length, params = new Array(_len), _key = 0; _key < _len; _key++) {
116995
- params[_key] = arguments[_key];
117044
+ for (var _len3 = arguments.length, params = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {
117045
+ params[_key3] = arguments[_key3];
116996
117046
  }
116997
117047
  return _this.executeCommand.call(_this, ...params);
116998
117048
  });
@@ -117165,8 +117215,8 @@ class DropdownMenu extends _base.BasePlugin {
117165
117215
  * @param {*} params Additional parameters passed to the command executor.
117166
117216
  */
117167
117217
  executeCommand(commandName) {
117168
- for (var _len2 = arguments.length, params = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {
117169
- params[_key2 - 1] = arguments[_key2];
117218
+ for (var _len4 = arguments.length, params = new Array(_len4 > 1 ? _len4 - 1 : 0), _key4 = 1; _key4 < _len4; _key4++) {
117219
+ params[_key4 - 1] = arguments[_key4];
117170
117220
  }
117171
117221
  this.commandExecutor.execute(commandName, ...params);
117172
117222
  }
@@ -117210,6 +117260,7 @@ function _onTableClick2(event) {
117210
117260
  if ((0, _element.hasClass)(event.target, BUTTON_CLASS_NAME)) {
117211
117261
  const offset = (0, _utils.getDocumentOffsetByElement)(this.menu.container, this.hot.rootDocument);
117212
117262
  const rect = event.target.getBoundingClientRect();
117263
+ (0, _classPrivateFieldSet2.default)(this, _isButtonClicked, false);
117213
117264
  this.open({
117214
117265
  left: rect.left + offset.left,
117215
117266
  top: rect.top + event.target.offsetHeight + 3 + offset.top
@@ -117271,6 +117322,14 @@ function _onMenuAfterClose2() {
117271
117322
  this.hot.listen();
117272
117323
  this.hot.runHooks('afterDropdownMenuHide', this);
117273
117324
  }
117325
+ function _onBeforeViewportScrollHorizontally2(visualColumn) {
117326
+ return (0, _classPrivateFieldGet2.default)(this, _isButtonClicked) ? null : visualColumn;
117327
+ }
117328
+ function _onBeforeOnCellMouseDown2(event) {
117329
+ if ((0, _element.hasClass)(event.target, BUTTON_CLASS_NAME)) {
117330
+ (0, _classPrivateFieldSet2.default)(this, _isButtonClicked, true);
117331
+ }
117332
+ }
117274
117333
  DropdownMenu.SEPARATOR = {
117275
117334
  name: _predefinedItems.SEPARATOR
117276
117335
  };
@@ -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-40cdda4-20240118
29
- * Release date: 16/01/2024 (built at 18/01/2024 13:04:57)
28
+ * Version: 0.0.0-next-ff99030-20240119
29
+ * Release date: 16/01/2024 (built at 19/01/2024 11:00:21)
30
30
  */.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{position:relative}.handsontable .hide{display:none}.handsontable .relative{position:relative}.handsontable .wtHider{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,.handsontable th:nth-child(2){border-left:1px solid #ccc}[dir=rtl].handsontable td:first-of-type,[dir=rtl].handsontable th:first-child,[dir=rtl].handsontable th:nth-child(2){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)~.handsontable tbody tr th,.ht_master:not(.innerBorderInlineStart):not(.emptyColumns)~.handsontable:not(.ht_clone_top) thead tr th:first-child{border-left:1px solid #ccc;border-right-width:0}[dir=rtl].ht_master:not(.innerBorderInlineStart):not(.emptyColumns)~.handsontable tbody tr th,[dir=rtl].ht_master:not(.innerBorderInlineStart):not(.emptyColumns)~.handsontable:not(.ht_clone_top) 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;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 .columnSorting{position:relative}.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 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;bottom:-100%\9;content:"";left:0;position:absolute;right:0;top:0}@media (-ms-high-contrast:none),screen and (-ms-high-contrast:active){.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{bottom:-100%}}.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;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{-webkit-appearance:menulist-button!important;position:absolute;width:auto}.htSelectEditor:focus{outline: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 .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.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}
31
31
  /*!
32
32
  * Pikaday