handsontable 12.0.1 → 12.1.0
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.
- 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;
|