handsontable 14.0.0-next-23212d5-20231127 → 14.0.0-next-88de277-20231127

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.
@@ -249,8 +249,8 @@ class Overlay {
249
249
  rootDocument,
250
250
  rootWindow
251
251
  } = this.domBindings;
252
- const clone = rootDocument.createElement('DIV');
253
- const clonedTable = rootDocument.createElement('TABLE');
252
+ const clone = rootDocument.createElement('div');
253
+ const clonedTable = rootDocument.createElement('table');
254
254
  const tableParent = wtTable.wtRootElement.parentNode;
255
255
  clone.className = `${_constants.CLONE_CLASS_NAMES.get(this.type)} handsontable`;
256
256
  clone.setAttribute('dir', this.isRtl() ? 'rtl' : 'ltr');
@@ -245,8 +245,8 @@ export class Overlay {
245
245
  rootDocument,
246
246
  rootWindow
247
247
  } = this.domBindings;
248
- const clone = rootDocument.createElement('DIV');
249
- const clonedTable = rootDocument.createElement('TABLE');
248
+ const clone = rootDocument.createElement('div');
249
+ const clonedTable = rootDocument.createElement('table');
250
250
  const tableParent = wtTable.wtRootElement.parentNode;
251
251
  clone.className = `${CLONE_CLASS_NAMES.get(this.type)} handsontable`;
252
252
  clone.setAttribute('dir', this.isRtl() ? 'rtl' : 'ltr');
@@ -71,7 +71,7 @@ class ColumnHeadersRenderer extends _base.default {
71
71
  columnHeadersCount
72
72
  } = this.table;
73
73
  if (this.table.isAriaEnabled()) {
74
- (0, _element.setAttribute)(this.rootNode, [(0, _a11y.A11Y_PRESENTATION)()]);
74
+ (0, _element.setAttribute)(this.rootNode, [(0, _a11y.A11Y_ROWGROUP)()]);
75
75
  }
76
76
  for (let rowHeaderIndex = 0; rowHeaderIndex < columnHeadersCount; rowHeaderIndex += 1) {
77
77
  const {
@@ -1,6 +1,6 @@
1
1
  import { empty, setAttribute, removeAttribute } from "./../../../../helpers/dom/element.mjs";
2
2
  import BaseRenderer from "./_base.mjs";
3
- import { A11Y_COLINDEX, A11Y_COLUMNHEADER, A11Y_PRESENTATION, A11Y_ROW, A11Y_ROWINDEX, A11Y_SCOPE_COL, A11Y_TABINDEX } from "../../../../helpers/a11y.mjs";
3
+ import { A11Y_COLINDEX, A11Y_COLUMNHEADER, A11Y_ROW, A11Y_ROWGROUP, A11Y_ROWINDEX, A11Y_SCOPE_COL, A11Y_TABINDEX } from "../../../../helpers/a11y.mjs";
4
4
  /**
5
5
  * Column headers renderer responsible for managing (inserting, tracking, rendering) TR and TH elements.
6
6
  *
@@ -67,7 +67,7 @@ export default class ColumnHeadersRenderer extends BaseRenderer {
67
67
  columnHeadersCount
68
68
  } = this.table;
69
69
  if (this.table.isAriaEnabled()) {
70
- setAttribute(this.rootNode, [A11Y_PRESENTATION()]);
70
+ setAttribute(this.rootNode, [A11Y_ROWGROUP()]);
71
71
  }
72
72
  for (let rowHeaderIndex = 0; rowHeaderIndex < columnHeadersCount; rowHeaderIndex += 1) {
73
73
  const {
@@ -61,7 +61,7 @@ class RowsRenderer extends _base.default {
61
61
  the number of rendered rows by specifying the table height and/or turning off the "renderAllRows" option.`);
62
62
  }
63
63
  if (this.table.isAriaEnabled()) {
64
- (0, _element.setAttribute)(this.rootNode, [(0, _a11y.A11Y_PRESENTATION)()]);
64
+ (0, _element.setAttribute)(this.rootNode, [(0, _a11y.A11Y_ROWGROUP)()]);
65
65
  }
66
66
  this.orderView.setSize(rowsToRender).setOffset(this.table.renderedRowToSource(0)).start();
67
67
  for (let visibleRowIndex = 0; visibleRowIndex < rowsToRender; visibleRowIndex++) {
@@ -7,7 +7,7 @@ import { toSingleLine } from "./../../../../helpers/templateLiteralTag.mjs";
7
7
  import { OrderView } from "./../utils/orderView/index.mjs";
8
8
  import BaseRenderer from "./_base.mjs";
9
9
  import { setAttribute } from "../../../../helpers/dom/element.mjs";
10
- import { A11Y_PRESENTATION, A11Y_ROW, A11Y_ROWINDEX } from "../../../../helpers/a11y.mjs";
10
+ import { A11Y_ROW, A11Y_ROWGROUP, A11Y_ROWINDEX } from "../../../../helpers/a11y.mjs";
11
11
  let performanceWarningAppeared = false;
12
12
 
13
13
  /**
@@ -57,7 +57,7 @@ export default class RowsRenderer extends BaseRenderer {
57
57
  the number of rendered rows by specifying the table height and/or turning off the "renderAllRows" option.`);
58
58
  }
59
59
  if (this.table.isAriaEnabled()) {
60
- setAttribute(this.rootNode, [A11Y_PRESENTATION()]);
60
+ setAttribute(this.rootNode, [A11Y_ROWGROUP()]);
61
61
  }
62
62
  this.orderView.setSize(rowsToRender).setOffset(this.table.renderedRowToSource(0)).start();
63
63
  for (let visibleRowIndex = 0; visibleRowIndex < rowsToRender; visibleRowIndex++) {
package/base.js CHANGED
@@ -43,8 +43,8 @@ Handsontable.hooks = _pluginHooks.default.getSingleton();
43
43
  Handsontable.CellCoords = _src.CellCoords;
44
44
  Handsontable.CellRange = _src.CellRange;
45
45
  Handsontable.packageName = 'handsontable';
46
- Handsontable.buildDate = "27/11/2023 08:13:45";
47
- Handsontable.version = "14.0.0-next-23212d5-20231127";
46
+ Handsontable.buildDate = "27/11/2023 10:19:22";
47
+ Handsontable.version = "14.0.0-next-88de277-20231127";
48
48
  Handsontable.languages = {
49
49
  dictionaryKeys: _registry.dictionaryKeys,
50
50
  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 = "27/11/2023 08:13:52";
39
- Handsontable.version = "14.0.0-next-23212d5-20231127";
38
+ Handsontable.buildDate = "27/11/2023 10:19:29";
39
+ Handsontable.version = "14.0.0-next-88de277-20231127";
40
40
  Handsontable.languages = {
41
41
  dictionaryKeys,
42
42
  getLanguageDictionary,
@@ -114,6 +114,8 @@ function replaceData(data, setDataMapFunction, callbackFunction, config) {
114
114
  hotInstance.render();
115
115
  }
116
116
  if (hotInstance.getSettings().ariaTags) {
117
- (0, _element.setAttribute)(hotInstance.rootElement, [(0, _a11y.A11Y_ROWCOUNT)(hotInstance.countRows()), (0, _a11y.A11Y_COLCOUNT)(hotInstance.countCols())]);
117
+ (0, _element.setAttribute)(hotInstance.rootElement, [(0, _a11y.A11Y_ROWCOUNT)(-1),
118
+ // If run after initialization, add the number of row headers.
119
+ (0, _a11y.A11Y_COLCOUNT)(hotInstance.countCols() + (hotInstance.view ? hotInstance.countRowHeaders() : 0))]);
118
120
  }
119
121
  }
@@ -109,7 +109,9 @@ function replaceData(data, setDataMapFunction, callbackFunction, config) {
109
109
  hotInstance.render();
110
110
  }
111
111
  if (hotInstance.getSettings().ariaTags) {
112
- setAttribute(hotInstance.rootElement, [A11Y_ROWCOUNT(hotInstance.countRows()), A11Y_COLCOUNT(hotInstance.countCols())]);
112
+ setAttribute(hotInstance.rootElement, [A11Y_ROWCOUNT(-1),
113
+ // If run after initialization, add the number of row headers.
114
+ A11Y_COLCOUNT(hotInstance.countCols() + (hotInstance.view ? hotInstance.countRowHeaders() : 0))]);
113
115
  }
114
116
  }
115
117
  export { replaceData };
@@ -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: 14.0.0-next-23212d5-20231127
29
- * Release date: 22/11/2023 (built at 27/11/2023 08:13:56)
28
+ * Version: 14.0.0-next-88de277-20231127
29
+ * Release date: 29/11/2023 (built at 27/11/2023 10:19:34)
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: 14.0.0-next-23212d5-20231127
29
- * Release date: 22/11/2023 (built at 27/11/2023 08:13:56)
28
+ * Version: 14.0.0-next-88de277-20231127
29
+ * Release date: 29/11/2023 (built at 27/11/2023 10:19:34)
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: 14.0.0-next-23212d5-20231127
29
- * Release date: 22/11/2023 (built at 27/11/2023 08:13:56)
28
+ * Version: 14.0.0-next-88de277-20231127
29
+ * Release date: 29/11/2023 (built at 27/11/2023 10:19:34)
30
30
  */
31
31
  (function webpackUniversalModuleDefinition(root, factory) {
32
32
  if(typeof exports === 'object' && typeof module === 'object')
@@ -43033,8 +43033,8 @@ Handsontable.hooks = _pluginHooks.default.getSingleton();
43033
43033
  Handsontable.CellCoords = _src.CellCoords;
43034
43034
  Handsontable.CellRange = _src.CellRange;
43035
43035
  Handsontable.packageName = 'handsontable';
43036
- Handsontable.buildDate = "27/11/2023 08:13:56";
43037
- Handsontable.version = "14.0.0-next-23212d5-20231127";
43036
+ Handsontable.buildDate = "27/11/2023 10:19:34";
43037
+ Handsontable.version = "14.0.0-next-88de277-20231127";
43038
43038
  Handsontable.languages = {
43039
43039
  dictionaryKeys: _registry.dictionaryKeys,
43040
43040
  getLanguageDictionary: _registry.getLanguageDictionary,
@@ -53154,7 +53154,7 @@ const domMessages = {
53154
53154
  function _injectProductInfo(key, element) {
53155
53155
  const hasValidType = !isEmpty(key);
53156
53156
  const isNonCommercial = typeof key === 'string' && key.toLowerCase() === 'non-commercial-and-evaluation';
53157
- const hotVersion = "14.0.0-next-23212d5-20231127";
53157
+ const hotVersion = "14.0.0-next-88de277-20231127";
53158
53158
  let keyValidityDate;
53159
53159
  let consoleMessageState = 'invalid';
53160
53160
  let domMessageState = 'invalid';
@@ -53162,7 +53162,7 @@ function _injectProductInfo(key, element) {
53162
53162
  const schemaValidity = _checkKeySchema(key);
53163
53163
  if (hasValidType || isNonCommercial || schemaValidity) {
53164
53164
  if (schemaValidity) {
53165
- const releaseDate = (0, _moment.default)("22/11/2023", 'DD/MM/YYYY');
53165
+ const releaseDate = (0, _moment.default)("29/11/2023", 'DD/MM/YYYY');
53166
53166
  const releaseDays = Math.floor(releaseDate.toDate().getTime() / 8.64e7);
53167
53167
  const keyValidityDays = _extractTime(key);
53168
53168
  keyValidityDate = (0, _moment.default)((keyValidityDays + 1) * 8.64e7, 'x').format('MMMM DD, YYYY');
@@ -60406,6 +60406,8 @@ const A11Y_GRIDCELL = () => ['role', 'gridcell'];
60406
60406
  exports.A11Y_GRIDCELL = A11Y_GRIDCELL;
60407
60407
  const A11Y_ROWHEADER = () => ['role', 'rowheader'];
60408
60408
  exports.A11Y_ROWHEADER = A11Y_ROWHEADER;
60409
+ const A11Y_ROWGROUP = () => ['role', 'rowgroup'];
60410
+ exports.A11Y_ROWGROUP = A11Y_ROWGROUP;
60409
60411
  const A11Y_COLUMNHEADER = () => ['role', 'columnheader'];
60410
60412
  exports.A11Y_COLUMNHEADER = A11Y_COLUMNHEADER;
60411
60413
  const A11Y_ROW = () => ['role', 'row'];
@@ -66882,8 +66884,10 @@ var _src = _interopRequireDefault(__webpack_require__(480));
66882
66884
  var _mouseEventHandler = __webpack_require__(550);
66883
66885
  var _rootInstance = __webpack_require__(551);
66884
66886
  var _a11y = __webpack_require__(447);
66887
+ function _classPrivateMethodInitSpec(obj, privateSet) { _checkPrivateRedeclaration(obj, privateSet); privateSet.add(obj); }
66885
66888
  function _classPrivateFieldInitSpec(obj, privateMap, value) { _checkPrivateRedeclaration(obj, privateMap); privateMap.set(obj, value); }
66886
66889
  function _checkPrivateRedeclaration(obj, privateCollection) { if (privateCollection.has(obj)) { throw new TypeError("Cannot initialize the same private elements twice on an object"); } }
66890
+ function _classPrivateMethodGet(receiver, privateSet, fn) { if (!privateSet.has(receiver)) { throw new TypeError("attempted to get private field on non-instance"); } return fn; }
66887
66891
  /**
66888
66892
  * @class TableView
66889
66893
  * @private
@@ -66895,11 +66899,25 @@ var _mouseDown = /*#__PURE__*/new WeakMap();
66895
66899
  var _table = /*#__PURE__*/new WeakMap();
66896
66900
  var _lastWidth = /*#__PURE__*/new WeakMap();
66897
66901
  var _lastHeight = /*#__PURE__*/new WeakMap();
66902
+ var _getAriaColcount = /*#__PURE__*/new WeakSet();
66903
+ var _updateAriaColcount = /*#__PURE__*/new WeakSet();
66898
66904
  class TableView {
66899
66905
  /**
66900
66906
  * @param {Hanstontable} hotInstance Instance of {@link Handsontable}.
66901
66907
  */
66902
66908
  constructor(hotInstance) {
66909
+ /**
66910
+ * Update the `aria-colcount` attribute by the provided value.
66911
+ *
66912
+ * @param {number} delta The number of columns to add or remove to the aria tag.
66913
+ */
66914
+ _classPrivateMethodInitSpec(this, _updateAriaColcount);
66915
+ /**
66916
+ * Return the value of the `aria-colcount` attribute.
66917
+ *
66918
+ * @returns {number} The value of the `aria-colcount` attribute.
66919
+ */
66920
+ _classPrivateMethodInitSpec(this, _getAriaColcount);
66903
66921
  /**
66904
66922
  * Instance of {@link Handsontable}.
66905
66923
  *
@@ -67136,7 +67154,7 @@ class TableView {
67136
67154
  }
67137
67155
  if (this.settings.ariaTags) {
67138
67156
  (0, _element.setAttribute)((0, _classPrivateFieldGet2.default)(this, _table), [(0, _a11y.A11Y_PRESENTATION)()]);
67139
- (0, _element.setAttribute)(rootElement, [(0, _a11y.A11Y_TREEGRID)(), (0, _a11y.A11Y_ROWCOUNT)(this.hot.countRows()), (0, _a11y.A11Y_COLCOUNT)(this.hot.countCols()), (0, _a11y.A11Y_MULTISELECTABLE)()]);
67157
+ (0, _element.setAttribute)(rootElement, [(0, _a11y.A11Y_TREEGRID)(), (0, _a11y.A11Y_ROWCOUNT)(-1), (0, _a11y.A11Y_COLCOUNT)(this.hot.countCols()), (0, _a11y.A11Y_MULTISELECTABLE)()]);
67140
67158
  }
67141
67159
  this.THEAD = rootDocument.createElement('THEAD');
67142
67160
  (0, _classPrivateFieldGet2.default)(this, _table).appendChild(this.THEAD);
@@ -67529,6 +67547,13 @@ class TableView {
67529
67547
  }
67530
67548
  this.hot.runHooks('afterGetRowHeaderRenderers', headerRenderers);
67531
67549
  (0, _classPrivateFieldSet2.default)(this, _rowHeadersCount, headerRenderers.length);
67550
+ if (this.hot.getSettings().ariaTags) {
67551
+ // Update the aria-colcount attribute.
67552
+ // Only needs to be done once after initialization/data update.
67553
+ if (_classPrivateMethodGet(this, _getAriaColcount, _getAriaColcount2).call(this) === this.hot.countCols()) {
67554
+ _classPrivateMethodGet(this, _updateAriaColcount, _updateAriaColcount2).call(this, (0, _classPrivateFieldGet2.default)(this, _rowHeadersCount));
67555
+ }
67556
+ }
67532
67557
  return headerRenderers;
67533
67558
  },
67534
67559
  columnHeaders: () => {
@@ -68168,7 +68193,6 @@ class TableView {
68168
68193
  getRowHeadersCount() {
68169
68194
  return (0, _classPrivateFieldGet2.default)(this, _rowHeadersCount);
68170
68195
  }
68171
-
68172
68196
  /**
68173
68197
  * Destroys internal WalkOnTable's instance. Detaches all of the bonded listeners.
68174
68198
  *
@@ -68179,6 +68203,13 @@ class TableView {
68179
68203
  this.eventManager.destroy();
68180
68204
  }
68181
68205
  }
68206
+ function _getAriaColcount2() {
68207
+ return parseInt(this.hot.rootElement.getAttribute((0, _a11y.A11Y_COLCOUNT)()[0]), 10);
68208
+ }
68209
+ function _updateAriaColcount2(delta) {
68210
+ const colCount = _classPrivateMethodGet(this, _getAriaColcount, _getAriaColcount2).call(this) + delta;
68211
+ (0, _element.setAttribute)(this.hot.rootElement, ...(0, _a11y.A11Y_COLCOUNT)(colCount));
68212
+ }
68182
68213
  var _default = exports["default"] = TableView;
68183
68214
 
68184
68215
  /***/ }),
@@ -73815,7 +73846,7 @@ class ColumnHeadersRenderer extends _base.default {
73815
73846
  columnHeadersCount
73816
73847
  } = this.table;
73817
73848
  if (this.table.isAriaEnabled()) {
73818
- (0, _element.setAttribute)(this.rootNode, [(0, _a11y.A11Y_PRESENTATION)()]);
73849
+ (0, _element.setAttribute)(this.rootNode, [(0, _a11y.A11Y_ROWGROUP)()]);
73819
73850
  }
73820
73851
  for (let rowHeaderIndex = 0; rowHeaderIndex < columnHeadersCount; rowHeaderIndex += 1) {
73821
73852
  const {
@@ -73989,7 +74020,7 @@ class RowsRenderer extends _base.default {
73989
74020
  the number of rendered rows by specifying the table height and/or turning off the "renderAllRows" option.`);
73990
74021
  }
73991
74022
  if (this.table.isAriaEnabled()) {
73992
- (0, _element.setAttribute)(this.rootNode, [(0, _a11y.A11Y_PRESENTATION)()]);
74023
+ (0, _element.setAttribute)(this.rootNode, [(0, _a11y.A11Y_ROWGROUP)()]);
73993
74024
  }
73994
74025
  this.orderView.setSize(rowsToRender).setOffset(this.table.renderedRowToSource(0)).start();
73995
74026
  for (let visibleRowIndex = 0; visibleRowIndex < rowsToRender; visibleRowIndex++) {
@@ -75060,8 +75091,8 @@ class Overlay {
75060
75091
  rootDocument,
75061
75092
  rootWindow
75062
75093
  } = this.domBindings;
75063
- const clone = rootDocument.createElement('DIV');
75064
- const clonedTable = rootDocument.createElement('TABLE');
75094
+ const clone = rootDocument.createElement('div');
75095
+ const clonedTable = rootDocument.createElement('table');
75065
75096
  const tableParent = wtTable.wtRootElement.parentNode;
75066
75097
  clone.className = `${_constants.CLONE_CLASS_NAMES.get(this.type)} handsontable`;
75067
75098
  clone.setAttribute('dir', this.isRtl() ? 'rtl' : 'ltr');
@@ -93054,7 +93085,9 @@ function replaceData(data, setDataMapFunction, callbackFunction, config) {
93054
93085
  hotInstance.render();
93055
93086
  }
93056
93087
  if (hotInstance.getSettings().ariaTags) {
93057
- (0, _element.setAttribute)(hotInstance.rootElement, [(0, _a11y.A11Y_ROWCOUNT)(hotInstance.countRows()), (0, _a11y.A11Y_COLCOUNT)(hotInstance.countCols())]);
93088
+ (0, _element.setAttribute)(hotInstance.rootElement, [(0, _a11y.A11Y_ROWCOUNT)(-1),
93089
+ // If run after initialization, add the number of row headers.
93090
+ (0, _a11y.A11Y_COLCOUNT)(hotInstance.countCols() + (hotInstance.view ? hotInstance.countRowHeaders() : 0))]);
93058
93091
  }
93059
93092
  }
93060
93093
 
@@ -99857,6 +99890,7 @@ exports.PasswordEditor = _passwordEditor.PasswordEditor;
99857
99890
  exports.__esModule = true;
99858
99891
  var _textEditor = __webpack_require__(668);
99859
99892
  var _element = __webpack_require__(304);
99893
+ var _a11y = __webpack_require__(447);
99860
99894
  const EDITOR_TYPE = exports.EDITOR_TYPE = 'password';
99861
99895
 
99862
99896
  /**
@@ -99876,6 +99910,9 @@ class PasswordEditor extends _textEditor.TextEditor {
99876
99910
  this.textareaStyle = this.TEXTAREA.style;
99877
99911
  this.textareaStyle.width = 0;
99878
99912
  this.textareaStyle.height = 0;
99913
+ if (this.hot.getSettings().ariaTags) {
99914
+ (0, _element.setAttribute)(this.TEXTAREA, [(0, _a11y.A11Y_HIDDEN)()]);
99915
+ }
99879
99916
  (0, _element.empty)(this.TEXTAREA_PARENT);
99880
99917
  this.TEXTAREA_PARENT.appendChild(this.TEXTAREA);
99881
99918
  }
@@ -100678,7 +100715,6 @@ function createInput(rootDocument) {
100678
100715
  const input = rootDocument.createElement('input');
100679
100716
  input.className = 'htCheckboxRendererInput';
100680
100717
  input.type = 'checkbox';
100681
- input.setAttribute('autocomplete', 'off');
100682
100718
  input.setAttribute('tabindex', '-1');
100683
100719
  return input.cloneNode(false);
100684
100720
  }
@@ -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: 14.0.0-next-23212d5-20231127
29
- * Release date: 22/11/2023 (built at 27/11/2023 08:14:13)
28
+ * Version: 14.0.0-next-88de277-20231127
29
+ * Release date: 29/11/2023 (built at 27/11/2023 10:19:52)
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 thead,.handsontable .ht_master thead,.handsontable .ht_master tr th{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-tap-highlight-color:rgba(0,0,0,0);-webkit-overflow-scrolling:touch;-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.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