handsontable 12.0.1 → 12.1.0
Sign up to get free protection for your applications and to get access to all the features.
- package/3rdparty/walkontable/src/core/clone.js +2 -2
- package/3rdparty/walkontable/src/core/clone.mjs +2 -2
- package/3rdparty/walkontable/src/core/core.js +2 -2
- package/3rdparty/walkontable/src/core/core.mjs +2 -2
- package/3rdparty/walkontable/src/overlay/bottom.js +20 -14
- package/3rdparty/walkontable/src/overlay/bottom.mjs +20 -14
- package/3rdparty/walkontable/src/overlay/bottomInlineStartCorner.js +14 -8
- package/3rdparty/walkontable/src/overlay/bottomInlineStartCorner.mjs +14 -8
- package/3rdparty/walkontable/src/overlay/inlineStart.js +14 -5
- package/3rdparty/walkontable/src/overlay/inlineStart.mjs +14 -5
- package/3rdparty/walkontable/src/overlay/top.js +12 -3
- package/3rdparty/walkontable/src/overlay/top.mjs +12 -3
- package/3rdparty/walkontable/src/overlay/topInlineStartCorner.js +3 -3
- package/3rdparty/walkontable/src/overlay/topInlineStartCorner.mjs +3 -3
- package/3rdparty/walkontable/src/overlays.js +2 -2
- package/3rdparty/walkontable/src/overlays.mjs +2 -2
- package/3rdparty/walkontable/src/renderer/cells.js +2 -2
- package/3rdparty/walkontable/src/renderer/cells.mjs +2 -2
- package/3rdparty/walkontable/src/renderer/colGroup.js +2 -2
- package/3rdparty/walkontable/src/renderer/colGroup.mjs +2 -2
- package/3rdparty/walkontable/src/renderer/columnHeaders.js +2 -2
- package/3rdparty/walkontable/src/renderer/columnHeaders.mjs +2 -2
- package/3rdparty/walkontable/src/renderer/rowHeaders.js +2 -2
- package/3rdparty/walkontable/src/renderer/rowHeaders.mjs +2 -2
- package/3rdparty/walkontable/src/renderer/rows.js +2 -2
- package/3rdparty/walkontable/src/renderer/rows.mjs +2 -2
- package/3rdparty/walkontable/src/scroll.js +111 -63
- package/3rdparty/walkontable/src/scroll.mjs +110 -63
- package/3rdparty/walkontable/src/table/bottom.js +2 -2
- package/3rdparty/walkontable/src/table/bottom.mjs +2 -2
- package/3rdparty/walkontable/src/table/bottomInlineStartCorner.js +2 -2
- package/3rdparty/walkontable/src/table/bottomInlineStartCorner.mjs +2 -2
- package/3rdparty/walkontable/src/table/inlineStart.js +2 -2
- package/3rdparty/walkontable/src/table/inlineStart.mjs +2 -2
- package/3rdparty/walkontable/src/table/master.js +2 -2
- package/3rdparty/walkontable/src/table/master.mjs +2 -2
- package/3rdparty/walkontable/src/table/top.js +2 -2
- package/3rdparty/walkontable/src/table/top.mjs +2 -2
- package/3rdparty/walkontable/src/table/topInlineStartCorner.js +2 -2
- package/3rdparty/walkontable/src/table/topInlineStartCorner.mjs +2 -2
- package/3rdparty/walkontable/src/utils/orderView/sharedView.js +2 -2
- package/3rdparty/walkontable/src/utils/orderView/sharedView.mjs +2 -2
- package/3rdparty/walkontable/src/viewport.js +14 -22
- package/3rdparty/walkontable/src/viewport.mjs +14 -22
- package/CHANGELOG.md +32 -0
- package/LICENSE.txt +1 -1
- package/base.js +2 -2
- package/base.mjs +2 -2
- package/core.js +38 -30
- package/core.mjs +38 -30
- package/dataMap/metaManager/metaSchema.js +165 -168
- package/dataMap/metaManager/metaSchema.mjs +165 -168
- package/dist/handsontable.css +18 -18
- package/dist/handsontable.full.css +19 -29
- package/dist/handsontable.full.js +13389 -12669
- package/dist/handsontable.full.min.css +5 -5
- package/dist/handsontable.full.min.js +134 -135
- package/dist/handsontable.js +3961 -3794
- package/dist/handsontable.min.css +4 -4
- package/dist/handsontable.min.js +4 -4
- package/dist/languages/all.js +97 -33
- package/dist/languages/all.min.js +1 -1
- package/dist/languages/cs-CZ.js +167 -0
- package/dist/languages/cs-CZ.min.js +1 -0
- package/dist/languages/de-CH.js +3 -2
- package/dist/languages/de-CH.min.js +1 -1
- package/dist/languages/de-DE.js +3 -2
- package/dist/languages/de-DE.min.js +1 -1
- package/dist/languages/en-US.js +3 -2
- package/dist/languages/en-US.min.js +1 -1
- package/dist/languages/es-MX.js +3 -2
- package/dist/languages/es-MX.min.js +1 -1
- package/dist/languages/fr-FR.js +3 -2
- package/dist/languages/fr-FR.min.js +1 -1
- package/dist/languages/it-IT.js +3 -2
- package/dist/languages/it-IT.min.js +1 -1
- package/dist/languages/ja-JP.js +36 -39
- package/dist/languages/ja-JP.min.js +1 -1
- package/dist/languages/ko-KR.js +2 -2
- package/dist/languages/ko-KR.min.js +1 -1
- package/dist/languages/lv-LV.js +2 -2
- package/dist/languages/lv-LV.min.js +1 -1
- package/dist/languages/nb-NO.js +2 -2
- package/dist/languages/nb-NO.min.js +1 -1
- package/dist/languages/nl-NL.js +2 -2
- package/dist/languages/nl-NL.min.js +1 -1
- package/dist/languages/pl-PL.js +2 -2
- package/dist/languages/pl-PL.min.js +1 -1
- package/dist/languages/pt-BR.js +2 -2
- package/dist/languages/pt-BR.min.js +1 -1
- package/dist/languages/ru-RU.js +2 -2
- package/dist/languages/ru-RU.min.js +1 -1
- package/dist/languages/sr-SP.js +171 -0
- package/dist/languages/sr-SP.min.js +1 -0
- package/dist/languages/zh-CN.js +24 -24
- package/dist/languages/zh-CN.min.js +1 -1
- package/dist/languages/zh-TW.js +2 -2
- package/dist/languages/zh-TW.min.js +1 -1
- package/editors/autocompleteEditor/autocompleteEditor.js +13 -14
- package/editors/autocompleteEditor/autocompleteEditor.mjs +13 -14
- package/editors/baseEditor/baseEditor.js +2 -2
- package/editors/baseEditor/baseEditor.mjs +2 -2
- package/editors/checkboxEditor/checkboxEditor.js +2 -2
- package/editors/checkboxEditor/checkboxEditor.mjs +2 -2
- package/editors/dateEditor/dateEditor.js +3 -3
- package/editors/dateEditor/dateEditor.mjs +3 -3
- package/editors/dropdownEditor/dropdownEditor.js +3 -3
- package/editors/dropdownEditor/dropdownEditor.mjs +3 -3
- package/editors/handsontableEditor/handsontableEditor.js +3 -3
- package/editors/handsontableEditor/handsontableEditor.mjs +3 -3
- package/editors/numericEditor/numericEditor.js +2 -2
- package/editors/numericEditor/numericEditor.mjs +2 -2
- package/editors/passwordEditor/passwordEditor.js +3 -3
- package/editors/passwordEditor/passwordEditor.mjs +3 -3
- package/editors/selectEditor/selectEditor.js +3 -3
- package/editors/selectEditor/selectEditor.mjs +3 -3
- package/editors/textEditor/textEditor.js +3 -3
- package/editors/textEditor/textEditor.mjs +3 -3
- package/editors/timeEditor/timeEditor.js +3 -3
- package/editors/timeEditor/timeEditor.mjs +3 -3
- package/helpers/mixed.js +2 -2
- package/helpers/mixed.mjs +2 -2
- package/i18n/languages/cs-CZ.js +40 -0
- package/i18n/languages/cs-CZ.mjs +16 -0
- package/i18n/languages/index.js +8 -0
- package/i18n/languages/index.mjs +3 -1
- package/i18n/languages/sr-SP.js +40 -0
- package/i18n/languages/sr-SP.mjs +16 -0
- package/languages/all.js +97 -33
- package/languages/cs-CZ.js +167 -0
- package/languages/cs-CZ.mjs +18 -0
- package/languages/de-CH.js +3 -2
- package/languages/de-DE.js +3 -2
- package/languages/en-US.js +3 -2
- package/languages/es-MX.js +3 -2
- package/languages/fr-FR.js +3 -2
- package/languages/index.js +97 -33
- package/languages/index.mjs +3 -1
- package/languages/it-IT.js +3 -2
- package/languages/ja-JP.js +36 -39
- package/languages/ko-KR.js +2 -2
- package/languages/lv-LV.js +2 -2
- package/languages/nb-NO.js +2 -2
- package/languages/nl-NL.js +2 -2
- package/languages/pl-PL.js +2 -2
- package/languages/pt-BR.js +2 -2
- package/languages/ru-RU.js +2 -2
- package/languages/sr-SP.js +171 -0
- package/languages/sr-SP.mjs +18 -0
- package/languages/zh-CN.js +24 -24
- package/languages/zh-TW.js +2 -2
- package/package.json +22 -2
- package/pluginHooks.js +46 -8
- package/pluginHooks.mjs +46 -8
- package/plugins/autoColumnSize/autoColumnSize.js +3 -3
- package/plugins/autoColumnSize/autoColumnSize.mjs +3 -3
- package/plugins/autoRowSize/autoRowSize.js +3 -3
- package/plugins/autoRowSize/autoRowSize.mjs +3 -3
- package/plugins/autofill/autofill.js +3 -3
- package/plugins/autofill/autofill.mjs +3 -3
- package/plugins/bindRowsWithHeaders/bindRowsWithHeaders.js +3 -3
- package/plugins/bindRowsWithHeaders/bindRowsWithHeaders.mjs +3 -3
- package/plugins/bindRowsWithHeaders/maps/looseBindsMap.js +3 -3
- package/plugins/bindRowsWithHeaders/maps/looseBindsMap.mjs +3 -3
- package/plugins/bindRowsWithHeaders/maps/strictBindsMap.js +3 -3
- package/plugins/bindRowsWithHeaders/maps/strictBindsMap.mjs +3 -3
- package/plugins/collapsibleColumns/collapsibleColumns.js +3 -3
- package/plugins/collapsibleColumns/collapsibleColumns.mjs +3 -3
- package/plugins/columnSorting/columnSorting.js +3 -3
- package/plugins/columnSorting/columnSorting.mjs +3 -3
- package/plugins/columnSummary/columnSummary.js +3 -3
- package/plugins/columnSummary/columnSummary.mjs +3 -3
- package/plugins/comments/commentEditor.js +2 -2
- package/plugins/comments/commentEditor.mjs +2 -2
- package/plugins/comments/comments.js +39 -31
- package/plugins/comments/comments.mjs +40 -32
- package/plugins/contextMenu/contextMenu.js +3 -3
- package/plugins/contextMenu/contextMenu.mjs +3 -3
- package/plugins/copyPaste/copyPaste.js +6 -6
- package/plugins/copyPaste/copyPaste.mjs +6 -6
- package/plugins/customBorders/customBorders.js +3 -3
- package/plugins/customBorders/customBorders.mjs +3 -3
- package/plugins/dragToScroll/dragToScroll.js +3 -3
- package/plugins/dragToScroll/dragToScroll.mjs +3 -3
- package/plugins/dropdownMenu/dropdownMenu.js +5 -4
- package/plugins/dropdownMenu/dropdownMenu.mjs +5 -4
- package/plugins/exportFile/exportFile.js +2 -2
- package/plugins/exportFile/exportFile.mjs +2 -2
- package/plugins/exportFile/types/csv.js +2 -2
- package/plugins/exportFile/types/csv.mjs +2 -2
- package/plugins/filters/component/actionBar.js +2 -2
- package/plugins/filters/component/actionBar.mjs +2 -2
- package/plugins/filters/component/condition.js +3 -3
- package/plugins/filters/component/condition.mjs +3 -3
- package/plugins/filters/component/operators.js +2 -2
- package/plugins/filters/component/operators.mjs +2 -2
- package/plugins/filters/component/value.js +3 -3
- package/plugins/filters/component/value.mjs +3 -3
- package/plugins/filters/filters.js +3 -3
- package/plugins/filters/filters.mjs +3 -3
- package/plugins/filters/ui/input.js +3 -3
- package/plugins/filters/ui/input.mjs +3 -3
- package/plugins/filters/ui/link.js +3 -3
- package/plugins/filters/ui/link.mjs +3 -3
- package/plugins/filters/ui/multipleSelect.js +3 -3
- package/plugins/filters/ui/multipleSelect.mjs +3 -3
- package/plugins/filters/ui/radioInput.js +3 -3
- package/plugins/filters/ui/radioInput.mjs +3 -3
- package/plugins/filters/ui/select.js +3 -3
- package/plugins/filters/ui/select.mjs +3 -3
- package/plugins/formulas/formulas.js +3 -3
- package/plugins/formulas/formulas.mjs +3 -3
- package/plugins/hiddenColumns/contextMenuItem/hideColumn.js +2 -4
- package/plugins/hiddenColumns/contextMenuItem/hideColumn.mjs +2 -4
- package/plugins/hiddenColumns/contextMenuItem/showColumn.js +3 -3
- package/plugins/hiddenColumns/contextMenuItem/showColumn.mjs +3 -3
- package/plugins/hiddenColumns/hiddenColumns.js +3 -3
- package/plugins/hiddenColumns/hiddenColumns.mjs +3 -3
- package/plugins/hiddenRows/contextMenuItem/hideRow.js +2 -4
- package/plugins/hiddenRows/contextMenuItem/hideRow.mjs +2 -4
- package/plugins/hiddenRows/contextMenuItem/showRow.js +3 -3
- package/plugins/hiddenRows/contextMenuItem/showRow.mjs +3 -3
- package/plugins/hiddenRows/hiddenRows.js +3 -3
- package/plugins/hiddenRows/hiddenRows.mjs +3 -3
- package/plugins/manualColumnFreeze/manualColumnFreeze.js +46 -20
- package/plugins/manualColumnFreeze/manualColumnFreeze.mjs +41 -20
- package/plugins/manualColumnMove/manualColumnMove.js +7 -18
- package/plugins/manualColumnMove/manualColumnMove.mjs +7 -18
- package/plugins/manualColumnMove/ui/backlight.js +3 -3
- package/plugins/manualColumnMove/ui/backlight.mjs +3 -3
- package/plugins/manualColumnMove/ui/guideline.js +3 -3
- package/plugins/manualColumnMove/ui/guideline.mjs +3 -3
- package/plugins/manualColumnResize/manualColumnResize.js +3 -3
- package/plugins/manualColumnResize/manualColumnResize.mjs +3 -3
- package/plugins/manualRowMove/manualRowMove.js +11 -29
- package/plugins/manualRowMove/manualRowMove.mjs +11 -29
- package/plugins/manualRowMove/ui/backlight.js +3 -3
- package/plugins/manualRowMove/ui/backlight.mjs +3 -3
- package/plugins/manualRowMove/ui/guideline.js +3 -3
- package/plugins/manualRowMove/ui/guideline.mjs +3 -3
- package/plugins/manualRowResize/manualRowResize.js +3 -3
- package/plugins/manualRowResize/manualRowResize.mjs +3 -3
- package/plugins/mergeCells/cellsCollection.js +3 -3
- package/plugins/mergeCells/cellsCollection.mjs +3 -3
- package/plugins/mergeCells/mergeCells.js +15 -15
- package/plugins/mergeCells/mergeCells.mjs +15 -15
- package/plugins/multiColumnSorting/multiColumnSorting.js +3 -3
- package/plugins/multiColumnSorting/multiColumnSorting.mjs +3 -3
- package/plugins/multipleSelectionHandles/multipleSelectionHandles.js +3 -3
- package/plugins/multipleSelectionHandles/multipleSelectionHandles.mjs +3 -3
- package/plugins/nestedHeaders/nestedHeaders.js +10 -6
- package/plugins/nestedHeaders/nestedHeaders.mjs +10 -6
- package/plugins/nestedHeaders/stateManager/utils.js +3 -4
- package/plugins/nestedHeaders/stateManager/utils.mjs +3 -4
- package/plugins/nestedHeaders/utils/ghostTable.js +94 -56
- package/plugins/nestedHeaders/utils/ghostTable.mjs +94 -56
- package/plugins/nestedRows/nestedRows.js +3 -3
- package/plugins/nestedRows/nestedRows.mjs +3 -3
- package/plugins/nestedRows/ui/collapsing.js +2 -2
- package/plugins/nestedRows/ui/collapsing.mjs +2 -2
- package/plugins/nestedRows/ui/contextMenu.js +2 -2
- package/plugins/nestedRows/ui/contextMenu.mjs +2 -2
- package/plugins/nestedRows/ui/headers.js +2 -2
- package/plugins/nestedRows/ui/headers.mjs +2 -2
- package/plugins/persistentState/persistentState.js +3 -3
- package/plugins/persistentState/persistentState.mjs +3 -3
- package/plugins/search/search.js +3 -3
- package/plugins/search/search.mjs +3 -3
- package/plugins/touchScroll/touchScroll.js +3 -3
- package/plugins/touchScroll/touchScroll.mjs +3 -3
- package/plugins/trimRows/trimRows.js +3 -3
- package/plugins/trimRows/trimRows.mjs +3 -3
- package/plugins/undoRedo/undoRedo.js +2 -2
- package/plugins/undoRedo/undoRedo.mjs +2 -2
- package/selection/highlight/visualSelection.js +83 -210
- package/selection/highlight/visualSelection.mjs +79 -202
- package/selection/selection.js +9 -3
- package/selection/selection.mjs +9 -3
- package/shortcuts/context.js +1 -1
- package/shortcuts/context.mjs +1 -1
- package/shortcuts/manager.js +3 -1
- package/shortcuts/manager.mjs +3 -1
- package/shortcuts/recorder.js +11 -2
- package/shortcuts/recorder.mjs +11 -2
- package/tableView.js +27 -5
- package/tableView.mjs +27 -5
- package/translations/indexMapper.d.ts +3 -1
- package/translations/indexMapper.js +88 -10
- package/translations/indexMapper.mjs +90 -19
- package/translations/mapCollections/aggregatedCollection.js +2 -2
- package/translations/mapCollections/aggregatedCollection.mjs +2 -2
- package/translations/maps/hidingMap.js +2 -2
- package/translations/maps/hidingMap.mjs +2 -2
- package/translations/maps/indexesSequence.js +3 -3
- package/translations/maps/indexesSequence.mjs +3 -3
- package/translations/maps/linkedPhysicalIndexToValueMap.js +3 -3
- package/translations/maps/linkedPhysicalIndexToValueMap.mjs +3 -3
- package/translations/maps/physicalIndexToValueMap.js +3 -3
- package/translations/maps/physicalIndexToValueMap.mjs +3 -3
- package/translations/maps/trimmingMap.js +2 -2
- package/translations/maps/trimmingMap.mjs +2 -2
@@ -69,13 +69,13 @@ function _defineProperties(target, props) { for (var i = 0; i < props.length; i+
|
|
69
69
|
|
70
70
|
function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }
|
71
71
|
|
72
|
-
function _get() { if (typeof Reflect !== "undefined" && Reflect.get) { _get = Reflect.get; } else { _get = function _get(target, property, receiver) { var base = _superPropBase(target, property); if (!base) return; var desc = Object.getOwnPropertyDescriptor(base, property); if (desc.get) { return desc.get.call(arguments.length < 3 ? target : receiver); } return desc.value; }; } return _get.apply(this, arguments); }
|
72
|
+
function _get() { if (typeof Reflect !== "undefined" && Reflect.get) { _get = Reflect.get.bind(); } else { _get = function _get(target, property, receiver) { var base = _superPropBase(target, property); if (!base) return; var desc = Object.getOwnPropertyDescriptor(base, property); if (desc.get) { return desc.get.call(arguments.length < 3 ? target : receiver); } return desc.value; }; } return _get.apply(this, arguments); }
|
73
73
|
|
74
74
|
function _superPropBase(object, property) { while (!Object.prototype.hasOwnProperty.call(object, property)) { object = _getPrototypeOf(object); if (object === null) break; } return object; }
|
75
75
|
|
76
76
|
function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, "prototype", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }
|
77
77
|
|
78
|
-
function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf
|
78
|
+
function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }
|
79
79
|
|
80
80
|
function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }
|
81
81
|
|
@@ -85,7 +85,7 @@ function _assertThisInitialized(self) { if (self === void 0) { throw new Referen
|
|
85
85
|
|
86
86
|
function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
|
87
87
|
|
88
|
-
function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }
|
88
|
+
function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }
|
89
89
|
|
90
90
|
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
91
91
|
|
@@ -168,7 +168,9 @@ var NestedHeaders = /*#__PURE__*/function (_BasePlugin) {
|
|
168
168
|
value: null
|
169
169
|
});
|
170
170
|
|
171
|
-
_defineProperty(_assertThisInitialized(_this), "ghostTable", new _ghostTable.default(
|
171
|
+
_defineProperty(_assertThisInitialized(_this), "ghostTable", new _ghostTable.default(_this.hot, function (row, column) {
|
172
|
+
return _this.getHeaderSettings(row, column);
|
173
|
+
}));
|
172
174
|
|
173
175
|
_defineProperty(_assertThisInitialized(_this), "detectedOverlappedHeaders", false);
|
174
176
|
|
@@ -292,10 +294,12 @@ var NestedHeaders = /*#__PURE__*/function (_BasePlugin) {
|
|
292
294
|
_classPrivateFieldGet(_this3, _stateManager).triggerColumnModification(actionName, columnIndex);
|
293
295
|
}
|
294
296
|
});
|
297
|
+
|
298
|
+
_this3.ghostTable.buildWidthsMap();
|
295
299
|
}));
|
296
300
|
}
|
297
301
|
|
298
|
-
this.ghostTable.
|
302
|
+
this.ghostTable.setLayersCount(this.getLayersCount()).buildWidthsMap();
|
299
303
|
|
300
304
|
_get(_getPrototypeOf(NestedHeaders.prototype), "updatePlugin", this).call(this);
|
301
305
|
}
|
@@ -693,7 +697,7 @@ var NestedHeaders = /*#__PURE__*/function (_BasePlugin) {
|
|
693
697
|
}, {
|
694
698
|
key: "onModifyColWidth",
|
695
699
|
value: function onModifyColWidth(width, column) {
|
696
|
-
var cachedWidth = this.ghostTable.
|
700
|
+
var cachedWidth = this.ghostTable.getWidth(column);
|
697
701
|
return width > cachedWidth ? width : cachedWidth;
|
698
702
|
}
|
699
703
|
/**
|
@@ -29,13 +29,13 @@ function _defineProperties(target, props) { for (var i = 0; i < props.length; i+
|
|
29
29
|
|
30
30
|
function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }
|
31
31
|
|
32
|
-
function _get() { if (typeof Reflect !== "undefined" && Reflect.get) { _get = Reflect.get; } else { _get = function _get(target, property, receiver) { var base = _superPropBase(target, property); if (!base) return; var desc = Object.getOwnPropertyDescriptor(base, property); if (desc.get) { return desc.get.call(arguments.length < 3 ? target : receiver); } return desc.value; }; } return _get.apply(this, arguments); }
|
32
|
+
function _get() { if (typeof Reflect !== "undefined" && Reflect.get) { _get = Reflect.get.bind(); } else { _get = function _get(target, property, receiver) { var base = _superPropBase(target, property); if (!base) return; var desc = Object.getOwnPropertyDescriptor(base, property); if (desc.get) { return desc.get.call(arguments.length < 3 ? target : receiver); } return desc.value; }; } return _get.apply(this, arguments); }
|
33
33
|
|
34
34
|
function _superPropBase(object, property) { while (!Object.prototype.hasOwnProperty.call(object, property)) { object = _getPrototypeOf(object); if (object === null) break; } return object; }
|
35
35
|
|
36
36
|
function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, "prototype", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }
|
37
37
|
|
38
|
-
function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf
|
38
|
+
function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }
|
39
39
|
|
40
40
|
function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }
|
41
41
|
|
@@ -45,7 +45,7 @@ function _assertThisInitialized(self) { if (self === void 0) { throw new Referen
|
|
45
45
|
|
46
46
|
function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
|
47
47
|
|
48
|
-
function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }
|
48
|
+
function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }
|
49
49
|
|
50
50
|
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
51
51
|
|
@@ -134,7 +134,9 @@ export var NestedHeaders = /*#__PURE__*/function (_BasePlugin) {
|
|
134
134
|
value: null
|
135
135
|
});
|
136
136
|
|
137
|
-
_defineProperty(_assertThisInitialized(_this), "ghostTable", new GhostTable(
|
137
|
+
_defineProperty(_assertThisInitialized(_this), "ghostTable", new GhostTable(_this.hot, function (row, column) {
|
138
|
+
return _this.getHeaderSettings(row, column);
|
139
|
+
}));
|
138
140
|
|
139
141
|
_defineProperty(_assertThisInitialized(_this), "detectedOverlappedHeaders", false);
|
140
142
|
|
@@ -258,10 +260,12 @@ export var NestedHeaders = /*#__PURE__*/function (_BasePlugin) {
|
|
258
260
|
_classPrivateFieldGet(_this3, _stateManager).triggerColumnModification(actionName, columnIndex);
|
259
261
|
}
|
260
262
|
});
|
263
|
+
|
264
|
+
_this3.ghostTable.buildWidthsMap();
|
261
265
|
}));
|
262
266
|
}
|
263
267
|
|
264
|
-
this.ghostTable.
|
268
|
+
this.ghostTable.setLayersCount(this.getLayersCount()).buildWidthsMap();
|
265
269
|
|
266
270
|
_get(_getPrototypeOf(NestedHeaders.prototype), "updatePlugin", this).call(this);
|
267
271
|
}
|
@@ -659,7 +663,7 @@ export var NestedHeaders = /*#__PURE__*/function (_BasePlugin) {
|
|
659
663
|
}, {
|
660
664
|
key: "onModifyColWidth",
|
661
665
|
value: function onModifyColWidth(width, column) {
|
662
|
-
var cachedWidth = this.ghostTable.
|
666
|
+
var cachedWidth = this.ghostTable.getWidth(column);
|
663
667
|
return width > cachedWidth ? width : cachedWidth;
|
664
668
|
}
|
665
669
|
/**
|
@@ -9,15 +9,14 @@ exports.createPlaceholderHeaderSettings = createPlaceholderHeaderSettings;
|
|
9
9
|
* @property {string} label The name/label of the column header.
|
10
10
|
* @property {number} colspan Current calculated colspan value of the rendered column header element.
|
11
11
|
* @property {number} origColspan Original colspan value, set once while parsing user-defined nested header settings.
|
12
|
-
* @property {boolean} collapsible The flag determines whether the node is collapsible (can be
|
12
|
+
* @property {boolean} collapsible The flag determines whether the node is collapsible (can be collapsed/expanded).
|
13
13
|
* @property {number[]} crossHiddenColumns The list of visual column indexes which indicates that the specified columns within
|
14
14
|
* the header settings are hidden.
|
15
15
|
* @property {boolean} isCollapsed The flag determines whether the node is collapsed.
|
16
16
|
* @property {boolean} isHidden The flag determines whether the column header at specified index is hidden. If true
|
17
17
|
* the TH element will be rendered as hidden (display: none).
|
18
|
-
* @property {boolean} isRoot The flag which determines whether the column header settings is
|
18
|
+
* @property {boolean} isRoot The flag which determines whether the column header settings is actually not renderable. That kind
|
19
19
|
* of objects are generated after colspaned header to fill an array to correct size.
|
20
|
-
*
|
21
20
|
* For example for header with colspan = 8 the 7 blank objects are generated to fill the array settings
|
22
21
|
* to length = 8.
|
23
22
|
* @property {boolean} isPlaceholder The flag determines whether the column header at the specified index is non-renderable.
|
@@ -63,7 +62,7 @@ function createDefaultHeaderSettings() {
|
|
63
62
|
};
|
64
63
|
}
|
65
64
|
/**
|
66
|
-
* Creates the header settings
|
65
|
+
* Creates the placeholder header settings object. Those settings tell the header renderers
|
67
66
|
* that this TH element should not be rendered (the node will be overlapped by the previously
|
68
67
|
* created node with colspan bigger than 1).
|
69
68
|
*
|
@@ -3,15 +3,14 @@
|
|
3
3
|
* @property {string} label The name/label of the column header.
|
4
4
|
* @property {number} colspan Current calculated colspan value of the rendered column header element.
|
5
5
|
* @property {number} origColspan Original colspan value, set once while parsing user-defined nested header settings.
|
6
|
-
* @property {boolean} collapsible The flag determines whether the node is collapsible (can be
|
6
|
+
* @property {boolean} collapsible The flag determines whether the node is collapsible (can be collapsed/expanded).
|
7
7
|
* @property {number[]} crossHiddenColumns The list of visual column indexes which indicates that the specified columns within
|
8
8
|
* the header settings are hidden.
|
9
9
|
* @property {boolean} isCollapsed The flag determines whether the node is collapsed.
|
10
10
|
* @property {boolean} isHidden The flag determines whether the column header at specified index is hidden. If true
|
11
11
|
* the TH element will be rendered as hidden (display: none).
|
12
|
-
* @property {boolean} isRoot The flag which determines whether the column header settings is
|
12
|
+
* @property {boolean} isRoot The flag which determines whether the column header settings is actually not renderable. That kind
|
13
13
|
* of objects are generated after colspaned header to fill an array to correct size.
|
14
|
-
*
|
15
14
|
* For example for header with colspan = 8 the 7 blank objects are generated to fill the array settings
|
16
15
|
* to length = 8.
|
17
16
|
* @property {boolean} isPlaceholder The flag determines whether the column header at the specified index is non-renderable.
|
@@ -57,7 +56,7 @@ export function createDefaultHeaderSettings() {
|
|
57
56
|
};
|
58
57
|
}
|
59
58
|
/**
|
60
|
-
* Creates the header settings
|
59
|
+
* Creates the placeholder header settings object. Those settings tell the header renderers
|
61
60
|
* that this TH element should not be rendered (the node will be overlapped by the previously
|
62
61
|
* created node with colspan bigger than 1).
|
63
62
|
*
|
@@ -14,61 +14,116 @@ function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _d
|
|
14
14
|
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
15
15
|
|
16
16
|
/**
|
17
|
+
* The class generates the nested headers structure in the DOM and reads the column width for
|
18
|
+
* each column. The hierarchy is built only for visible, non-hidden columns. Each time the
|
19
|
+
* column is shown or hidden, the structure is rebuilt, and the width of the columns in the
|
20
|
+
* map updated.
|
21
|
+
*
|
17
22
|
* @private
|
18
23
|
*/
|
19
24
|
var GhostTable = /*#__PURE__*/function () {
|
20
25
|
/**
|
21
|
-
* Reference to
|
26
|
+
* Reference to the Handsontable instance.
|
22
27
|
*
|
23
|
-
* @
|
28
|
+
* @private
|
29
|
+
* @type {Handsontable}
|
30
|
+
*/
|
31
|
+
|
32
|
+
/**
|
33
|
+
* The function for retrieving the nested headers settings.
|
34
|
+
*
|
35
|
+
* @private
|
36
|
+
* @type {Function}
|
37
|
+
*/
|
38
|
+
|
39
|
+
/**
|
40
|
+
* The value that holds information about the number of the nested header layers (header rows).
|
41
|
+
*
|
42
|
+
* @private
|
43
|
+
* @type {number}
|
24
44
|
*/
|
25
45
|
|
26
46
|
/**
|
27
47
|
* Temporary element created to get minimal headers widths.
|
28
48
|
*
|
49
|
+
* @private
|
29
50
|
* @type {*}
|
30
51
|
*/
|
31
52
|
|
32
53
|
/**
|
33
|
-
*
|
54
|
+
* PhysicalIndexToValueMap to keep and track of the columns' widths.
|
34
55
|
*
|
35
|
-
* @
|
56
|
+
* @private
|
57
|
+
* @type {PhysicalIndexToValueMap}
|
36
58
|
*/
|
37
|
-
function GhostTable(
|
59
|
+
function GhostTable(hot, nestedHeaderSettingsGetter) {
|
38
60
|
_classCallCheck(this, GhostTable);
|
39
61
|
|
40
|
-
_defineProperty(this, "
|
62
|
+
_defineProperty(this, "hot", void 0);
|
63
|
+
|
64
|
+
_defineProperty(this, "nestedHeaderSettingsGetter", void 0);
|
65
|
+
|
66
|
+
_defineProperty(this, "layersCount", 0);
|
41
67
|
|
42
68
|
_defineProperty(this, "container", void 0);
|
43
69
|
|
44
|
-
_defineProperty(this, "
|
70
|
+
_defineProperty(this, "widthsMap", void 0);
|
45
71
|
|
46
|
-
this.
|
72
|
+
this.hot = hot;
|
73
|
+
this.nestedHeaderSettingsGetter = nestedHeaderSettingsGetter;
|
74
|
+
this.widthsMap = this.hot.columnIndexMapper.createAndRegisterIndexMap('nestedHeaders.widthsMap', 'physicalIndexToValue');
|
47
75
|
}
|
48
76
|
/**
|
49
|
-
*
|
77
|
+
* Sets the number of nested headers layers count.
|
50
78
|
*
|
51
|
-
* @
|
79
|
+
* @param {number} layersCount Total number of headers levels.
|
80
|
+
* @returns {GhostTable}
|
52
81
|
*/
|
53
82
|
|
54
83
|
|
55
84
|
_createClass(GhostTable, [{
|
56
|
-
key: "
|
57
|
-
value: function
|
58
|
-
this.
|
59
|
-
this
|
60
|
-
|
85
|
+
key: "setLayersCount",
|
86
|
+
value: function setLayersCount(layersCount) {
|
87
|
+
this.layersCount = layersCount;
|
88
|
+
return this;
|
89
|
+
}
|
90
|
+
/**
|
91
|
+
* Gets the column width based on the visual column index.
|
92
|
+
*
|
93
|
+
* @param {number} visualColumn Visual column index.
|
94
|
+
* @returns {number|null}
|
95
|
+
*/
|
96
|
+
|
97
|
+
}, {
|
98
|
+
key: "getWidth",
|
99
|
+
value: function getWidth(visualColumn) {
|
100
|
+
return this.widthsMap.getValueAtIndex(this.hot.toPhysicalColumn(visualColumn));
|
101
|
+
}
|
102
|
+
/**
|
103
|
+
* Build cache of the headers widths.
|
104
|
+
*/
|
105
|
+
|
106
|
+
}, {
|
107
|
+
key: "buildWidthsMap",
|
108
|
+
value: function buildWidthsMap() {
|
109
|
+
this.container = this.hot.rootDocument.createElement('div');
|
110
|
+
this.container.classList.add('handsontable', 'htGhostTable', 'htAutoSize');
|
111
|
+
|
112
|
+
this._buildGhostTable(this.container);
|
113
|
+
|
114
|
+
this.hot.rootDocument.body.appendChild(this.container);
|
61
115
|
var columns = this.container.querySelectorAll('tr:last-of-type th');
|
62
116
|
var maxColumns = columns.length;
|
63
|
-
this.
|
117
|
+
this.widthsMap.clear();
|
64
118
|
|
65
|
-
for (var
|
66
|
-
this.
|
119
|
+
for (var column = 0; column < maxColumns; column++) {
|
120
|
+
var visualColumnsIndex = this.hot.columnIndexMapper.getVisualFromRenderableIndex(column);
|
121
|
+
var physicalColumnIndex = this.hot.toPhysicalColumn(visualColumnsIndex);
|
122
|
+
this.widthsMap.setValueAtIndex(physicalColumnIndex, columns[column].offsetWidth);
|
67
123
|
}
|
68
124
|
|
69
125
|
this.container.parentNode.removeChild(this.container);
|
70
126
|
this.container = null;
|
71
|
-
this.nestedHeaders.hot.render();
|
72
127
|
}
|
73
128
|
/**
|
74
129
|
* Build temporary table for getting minimal columns widths.
|
@@ -78,36 +133,34 @@ var GhostTable = /*#__PURE__*/function () {
|
|
78
133
|
*/
|
79
134
|
|
80
135
|
}, {
|
81
|
-
key: "
|
82
|
-
value: function
|
83
|
-
var
|
136
|
+
key: "_buildGhostTable",
|
137
|
+
value: function _buildGhostTable(container) {
|
138
|
+
var _this$hot = this.hot,
|
139
|
+
rootDocument = _this$hot.rootDocument,
|
140
|
+
columnIndexMapper = _this$hot.columnIndexMapper;
|
84
141
|
var fragment = rootDocument.createDocumentFragment();
|
85
142
|
var table = rootDocument.createElement('table');
|
86
|
-
var
|
87
|
-
var
|
88
|
-
var maxRows = this.nestedHeaders.getLayersCount();
|
89
|
-
var maxCols = this.nestedHeaders.hot.countCols();
|
90
|
-
var lastRowIndex = maxRows - 1;
|
143
|
+
var isDropdownEnabled = !!this.hot.getSettings().dropdownMenu;
|
144
|
+
var maxRenderedCols = columnIndexMapper.getRenderableIndexesLength();
|
91
145
|
|
92
|
-
for (var row = 0; row <
|
146
|
+
for (var row = 0; row < this.layersCount; row++) {
|
93
147
|
var tr = rootDocument.createElement('tr');
|
94
|
-
lastRowColspan = false;
|
95
148
|
|
96
|
-
for (var col = 0; col <
|
149
|
+
for (var col = 0; col < maxRenderedCols; col++) {
|
150
|
+
var visualColumnsIndex = columnIndexMapper.getVisualFromRenderableIndex(col);
|
151
|
+
|
152
|
+
if (visualColumnsIndex === null) {
|
153
|
+
visualColumnsIndex = col;
|
154
|
+
}
|
155
|
+
|
97
156
|
var th = rootDocument.createElement('th');
|
98
|
-
var headerSettings = this.
|
157
|
+
var headerSettings = this.nestedHeaderSettingsGetter(row, visualColumnsIndex);
|
99
158
|
|
100
|
-
if (headerSettings && !headerSettings.isPlaceholder) {
|
159
|
+
if (headerSettings && (!headerSettings.isPlaceholder || headerSettings.isHidden)) {
|
101
160
|
var label = headerSettings.label;
|
102
161
|
|
103
|
-
if (
|
104
|
-
|
105
|
-
lastRowColspan = true;
|
106
|
-
}
|
107
|
-
|
108
|
-
if (isDropdownEnabled) {
|
109
|
-
label += '<button class="changeType"></button>';
|
110
|
-
}
|
162
|
+
if (isDropdownEnabled) {
|
163
|
+
label += '<button class="changeType"></button>';
|
111
164
|
}
|
112
165
|
|
113
166
|
(0, _element.fastInnerHTML)(th, label);
|
@@ -117,21 +170,6 @@ var GhostTable = /*#__PURE__*/function () {
|
|
117
170
|
}
|
118
171
|
|
119
172
|
table.appendChild(tr);
|
120
|
-
} // We have to be sure the last row contains only the single columns.
|
121
|
-
|
122
|
-
|
123
|
-
if (lastRowColspan) {
|
124
|
-
{
|
125
|
-
var _tr = rootDocument.createElement('tr');
|
126
|
-
|
127
|
-
for (var _col = 0; _col < maxCols; _col++) {
|
128
|
-
var td = rootDocument.createElement('th');
|
129
|
-
|
130
|
-
_tr.appendChild(td);
|
131
|
-
}
|
132
|
-
|
133
|
-
table.appendChild(_tr);
|
134
|
-
}
|
135
173
|
}
|
136
174
|
|
137
175
|
fragment.appendChild(table);
|
@@ -144,8 +182,8 @@ var GhostTable = /*#__PURE__*/function () {
|
|
144
182
|
}, {
|
145
183
|
key: "clear",
|
146
184
|
value: function clear() {
|
185
|
+
this.widthsMap.clear();
|
147
186
|
this.container = null;
|
148
|
-
this.widthsCache.length = 0;
|
149
187
|
}
|
150
188
|
}]);
|
151
189
|
|
@@ -8,62 +8,117 @@ function _defineProperty(obj, key, value) { if (key in obj) { Object.definePrope
|
|
8
8
|
|
9
9
|
import { fastInnerHTML } from "../../../helpers/dom/element.mjs";
|
10
10
|
/**
|
11
|
+
* The class generates the nested headers structure in the DOM and reads the column width for
|
12
|
+
* each column. The hierarchy is built only for visible, non-hidden columns. Each time the
|
13
|
+
* column is shown or hidden, the structure is rebuilt, and the width of the columns in the
|
14
|
+
* map updated.
|
15
|
+
*
|
11
16
|
* @private
|
12
17
|
*/
|
13
18
|
|
14
19
|
var GhostTable = /*#__PURE__*/function () {
|
15
20
|
/**
|
16
|
-
* Reference to
|
21
|
+
* Reference to the Handsontable instance.
|
17
22
|
*
|
18
|
-
* @
|
23
|
+
* @private
|
24
|
+
* @type {Handsontable}
|
25
|
+
*/
|
26
|
+
|
27
|
+
/**
|
28
|
+
* The function for retrieving the nested headers settings.
|
29
|
+
*
|
30
|
+
* @private
|
31
|
+
* @type {Function}
|
32
|
+
*/
|
33
|
+
|
34
|
+
/**
|
35
|
+
* The value that holds information about the number of the nested header layers (header rows).
|
36
|
+
*
|
37
|
+
* @private
|
38
|
+
* @type {number}
|
19
39
|
*/
|
20
40
|
|
21
41
|
/**
|
22
42
|
* Temporary element created to get minimal headers widths.
|
23
43
|
*
|
44
|
+
* @private
|
24
45
|
* @type {*}
|
25
46
|
*/
|
26
47
|
|
27
48
|
/**
|
28
|
-
*
|
49
|
+
* PhysicalIndexToValueMap to keep and track of the columns' widths.
|
29
50
|
*
|
30
|
-
* @
|
51
|
+
* @private
|
52
|
+
* @type {PhysicalIndexToValueMap}
|
31
53
|
*/
|
32
|
-
function GhostTable(
|
54
|
+
function GhostTable(hot, nestedHeaderSettingsGetter) {
|
33
55
|
_classCallCheck(this, GhostTable);
|
34
56
|
|
35
|
-
_defineProperty(this, "
|
57
|
+
_defineProperty(this, "hot", void 0);
|
58
|
+
|
59
|
+
_defineProperty(this, "nestedHeaderSettingsGetter", void 0);
|
60
|
+
|
61
|
+
_defineProperty(this, "layersCount", 0);
|
36
62
|
|
37
63
|
_defineProperty(this, "container", void 0);
|
38
64
|
|
39
|
-
_defineProperty(this, "
|
65
|
+
_defineProperty(this, "widthsMap", void 0);
|
40
66
|
|
41
|
-
this.
|
67
|
+
this.hot = hot;
|
68
|
+
this.nestedHeaderSettingsGetter = nestedHeaderSettingsGetter;
|
69
|
+
this.widthsMap = this.hot.columnIndexMapper.createAndRegisterIndexMap('nestedHeaders.widthsMap', 'physicalIndexToValue');
|
42
70
|
}
|
43
71
|
/**
|
44
|
-
*
|
72
|
+
* Sets the number of nested headers layers count.
|
45
73
|
*
|
46
|
-
* @
|
74
|
+
* @param {number} layersCount Total number of headers levels.
|
75
|
+
* @returns {GhostTable}
|
47
76
|
*/
|
48
77
|
|
49
78
|
|
50
79
|
_createClass(GhostTable, [{
|
51
|
-
key: "
|
52
|
-
value: function
|
53
|
-
this.
|
54
|
-
this
|
55
|
-
|
80
|
+
key: "setLayersCount",
|
81
|
+
value: function setLayersCount(layersCount) {
|
82
|
+
this.layersCount = layersCount;
|
83
|
+
return this;
|
84
|
+
}
|
85
|
+
/**
|
86
|
+
* Gets the column width based on the visual column index.
|
87
|
+
*
|
88
|
+
* @param {number} visualColumn Visual column index.
|
89
|
+
* @returns {number|null}
|
90
|
+
*/
|
91
|
+
|
92
|
+
}, {
|
93
|
+
key: "getWidth",
|
94
|
+
value: function getWidth(visualColumn) {
|
95
|
+
return this.widthsMap.getValueAtIndex(this.hot.toPhysicalColumn(visualColumn));
|
96
|
+
}
|
97
|
+
/**
|
98
|
+
* Build cache of the headers widths.
|
99
|
+
*/
|
100
|
+
|
101
|
+
}, {
|
102
|
+
key: "buildWidthsMap",
|
103
|
+
value: function buildWidthsMap() {
|
104
|
+
this.container = this.hot.rootDocument.createElement('div');
|
105
|
+
this.container.classList.add('handsontable', 'htGhostTable', 'htAutoSize');
|
106
|
+
|
107
|
+
this._buildGhostTable(this.container);
|
108
|
+
|
109
|
+
this.hot.rootDocument.body.appendChild(this.container);
|
56
110
|
var columns = this.container.querySelectorAll('tr:last-of-type th');
|
57
111
|
var maxColumns = columns.length;
|
58
|
-
this.
|
112
|
+
this.widthsMap.clear();
|
59
113
|
|
60
|
-
for (var
|
61
|
-
this.
|
114
|
+
for (var column = 0; column < maxColumns; column++) {
|
115
|
+
var visualColumnsIndex = this.hot.columnIndexMapper.getVisualFromRenderableIndex(column);
|
116
|
+
var physicalColumnIndex = this.hot.toPhysicalColumn(visualColumnsIndex);
|
117
|
+
this.widthsMap.setValueAtIndex(physicalColumnIndex, columns[column].offsetWidth);
|
62
118
|
}
|
63
119
|
|
64
120
|
this.container.parentNode.removeChild(this.container);
|
65
121
|
this.container = null;
|
66
|
-
this.nestedHeaders.hot.render();
|
67
122
|
}
|
68
123
|
/**
|
69
124
|
* Build temporary table for getting minimal columns widths.
|
@@ -73,36 +128,34 @@ var GhostTable = /*#__PURE__*/function () {
|
|
73
128
|
*/
|
74
129
|
|
75
130
|
}, {
|
76
|
-
key: "
|
77
|
-
value: function
|
78
|
-
var
|
131
|
+
key: "_buildGhostTable",
|
132
|
+
value: function _buildGhostTable(container) {
|
133
|
+
var _this$hot = this.hot,
|
134
|
+
rootDocument = _this$hot.rootDocument,
|
135
|
+
columnIndexMapper = _this$hot.columnIndexMapper;
|
79
136
|
var fragment = rootDocument.createDocumentFragment();
|
80
137
|
var table = rootDocument.createElement('table');
|
81
|
-
var
|
82
|
-
var
|
83
|
-
var maxRows = this.nestedHeaders.getLayersCount();
|
84
|
-
var maxCols = this.nestedHeaders.hot.countCols();
|
85
|
-
var lastRowIndex = maxRows - 1;
|
138
|
+
var isDropdownEnabled = !!this.hot.getSettings().dropdownMenu;
|
139
|
+
var maxRenderedCols = columnIndexMapper.getRenderableIndexesLength();
|
86
140
|
|
87
|
-
for (var row = 0; row <
|
141
|
+
for (var row = 0; row < this.layersCount; row++) {
|
88
142
|
var tr = rootDocument.createElement('tr');
|
89
|
-
lastRowColspan = false;
|
90
143
|
|
91
|
-
for (var col = 0; col <
|
144
|
+
for (var col = 0; col < maxRenderedCols; col++) {
|
145
|
+
var visualColumnsIndex = columnIndexMapper.getVisualFromRenderableIndex(col);
|
146
|
+
|
147
|
+
if (visualColumnsIndex === null) {
|
148
|
+
visualColumnsIndex = col;
|
149
|
+
}
|
150
|
+
|
92
151
|
var th = rootDocument.createElement('th');
|
93
|
-
var headerSettings = this.
|
152
|
+
var headerSettings = this.nestedHeaderSettingsGetter(row, visualColumnsIndex);
|
94
153
|
|
95
|
-
if (headerSettings && !headerSettings.isPlaceholder) {
|
154
|
+
if (headerSettings && (!headerSettings.isPlaceholder || headerSettings.isHidden)) {
|
96
155
|
var label = headerSettings.label;
|
97
156
|
|
98
|
-
if (
|
99
|
-
|
100
|
-
lastRowColspan = true;
|
101
|
-
}
|
102
|
-
|
103
|
-
if (isDropdownEnabled) {
|
104
|
-
label += '<button class="changeType"></button>';
|
105
|
-
}
|
157
|
+
if (isDropdownEnabled) {
|
158
|
+
label += '<button class="changeType"></button>';
|
106
159
|
}
|
107
160
|
|
108
161
|
fastInnerHTML(th, label);
|
@@ -112,21 +165,6 @@ var GhostTable = /*#__PURE__*/function () {
|
|
112
165
|
}
|
113
166
|
|
114
167
|
table.appendChild(tr);
|
115
|
-
} // We have to be sure the last row contains only the single columns.
|
116
|
-
|
117
|
-
|
118
|
-
if (lastRowColspan) {
|
119
|
-
{
|
120
|
-
var _tr = rootDocument.createElement('tr');
|
121
|
-
|
122
|
-
for (var _col = 0; _col < maxCols; _col++) {
|
123
|
-
var td = rootDocument.createElement('th');
|
124
|
-
|
125
|
-
_tr.appendChild(td);
|
126
|
-
}
|
127
|
-
|
128
|
-
table.appendChild(_tr);
|
129
|
-
}
|
130
168
|
}
|
131
169
|
|
132
170
|
fragment.appendChild(table);
|
@@ -139,8 +177,8 @@ var GhostTable = /*#__PURE__*/function () {
|
|
139
177
|
}, {
|
140
178
|
key: "clear",
|
141
179
|
value: function clear() {
|
180
|
+
this.widthsMap.clear();
|
142
181
|
this.container = null;
|
143
|
-
this.widthsCache.length = 0;
|
144
182
|
}
|
145
183
|
}]);
|
146
184
|
|
@@ -85,13 +85,13 @@ function _defineProperties(target, props) { for (var i = 0; i < props.length; i+
|
|
85
85
|
|
86
86
|
function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }
|
87
87
|
|
88
|
-
function _get() { if (typeof Reflect !== "undefined" && Reflect.get) { _get = Reflect.get; } else { _get = function _get(target, property, receiver) { var base = _superPropBase(target, property); if (!base) return; var desc = Object.getOwnPropertyDescriptor(base, property); if (desc.get) { return desc.get.call(arguments.length < 3 ? target : receiver); } return desc.value; }; } return _get.apply(this, arguments); }
|
88
|
+
function _get() { if (typeof Reflect !== "undefined" && Reflect.get) { _get = Reflect.get.bind(); } else { _get = function _get(target, property, receiver) { var base = _superPropBase(target, property); if (!base) return; var desc = Object.getOwnPropertyDescriptor(base, property); if (desc.get) { return desc.get.call(arguments.length < 3 ? target : receiver); } return desc.value; }; } return _get.apply(this, arguments); }
|
89
89
|
|
90
90
|
function _superPropBase(object, property) { while (!Object.prototype.hasOwnProperty.call(object, property)) { object = _getPrototypeOf(object); if (object === null) break; } return object; }
|
91
91
|
|
92
92
|
function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, "prototype", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }
|
93
93
|
|
94
|
-
function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf
|
94
|
+
function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }
|
95
95
|
|
96
96
|
function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }
|
97
97
|
|
@@ -101,7 +101,7 @@ function _assertThisInitialized(self) { if (self === void 0) { throw new Referen
|
|
101
101
|
|
102
102
|
function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
|
103
103
|
|
104
|
-
function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }
|
104
|
+
function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }
|
105
105
|
|
106
106
|
var PLUGIN_KEY = 'nestedRows';
|
107
107
|
exports.PLUGIN_KEY = PLUGIN_KEY;
|