handsontable 12.3.3-next-e19badf-20230328 → 12.4.0-next-ddbea0c-20230512
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/cell/coords.js +13 -16
- package/3rdparty/walkontable/src/cell/coords.mjs +13 -16
- package/3rdparty/walkontable/src/cell/range.js +25 -29
- package/3rdparty/walkontable/src/cell/range.mjs +24 -28
- package/3rdparty/walkontable/src/event.js +4 -0
- package/3rdparty/walkontable/src/event.mjs +4 -0
- package/3rdparty/walkontable/src/overlay/_base.js +6 -7
- package/3rdparty/walkontable/src/overlay/_base.mjs +6 -7
- package/3rdparty/walkontable/src/overlay/bottom.js +6 -7
- package/3rdparty/walkontable/src/overlay/bottom.mjs +6 -7
- package/3rdparty/walkontable/src/overlay/top.js +6 -7
- package/3rdparty/walkontable/src/overlay/top.mjs +6 -7
- package/3rdparty/walkontable/src/overlay/topInlineStartCorner.js +10 -12
- package/3rdparty/walkontable/src/overlay/topInlineStartCorner.mjs +10 -12
- package/3rdparty/walkontable/src/overlays.js +55 -64
- package/3rdparty/walkontable/src/overlays.mjs +55 -64
- package/3rdparty/walkontable/src/scroll.js +20 -23
- package/3rdparty/walkontable/src/scroll.mjs +20 -23
- package/3rdparty/walkontable/src/settings.js +13 -15
- package/3rdparty/walkontable/src/settings.mjs +13 -15
- package/3rdparty/walkontable/src/table.js +22 -26
- package/3rdparty/walkontable/src/table.mjs +22 -26
- package/CHANGELOG.md +14 -0
- package/base.js +2 -4
- package/base.mjs +2 -2
- package/core.js +23 -6
- package/core.mjs +23 -6
- package/dataMap/dataSource.js +5 -5
- package/dataMap/dataSource.mjs +5 -5
- package/dataMap/metaManager/metaSchema.js +9 -7
- package/dataMap/metaManager/metaSchema.mjs +9 -7
- package/dist/handsontable.css +2 -2
- package/dist/handsontable.full.css +2 -2
- package/dist/handsontable.full.js +5047 -4193
- package/dist/handsontable.full.min.css +2 -2
- package/dist/handsontable.full.min.js +86 -78
- package/dist/handsontable.js +4023 -3170
- package/dist/handsontable.min.css +2 -2
- package/dist/handsontable.min.js +11 -3
- package/dist/languages/all.js +133 -0
- package/dist/languages/ar-AR.js +7 -0
- package/dist/languages/cs-CZ.js +7 -0
- package/dist/languages/de-CH.js +7 -0
- package/dist/languages/de-DE.js +7 -0
- package/dist/languages/en-US.js +7 -0
- package/dist/languages/es-MX.js +7 -0
- package/dist/languages/fr-FR.js +7 -0
- package/dist/languages/it-IT.js +7 -0
- package/dist/languages/ja-JP.js +7 -0
- package/dist/languages/ko-KR.js +7 -0
- package/dist/languages/lv-LV.js +7 -0
- package/dist/languages/nb-NO.js +7 -0
- package/dist/languages/nl-NL.js +7 -0
- package/dist/languages/pl-PL.js +7 -0
- package/dist/languages/pt-BR.js +7 -0
- package/dist/languages/ru-RU.js +7 -0
- package/dist/languages/sr-SP.js +7 -0
- package/dist/languages/zh-CN.js +7 -0
- package/dist/languages/zh-TW.js +7 -0
- package/helpers/mixed.js +2 -2
- package/helpers/mixed.mjs +2 -2
- package/i18n/languages/ar-AR.js +7 -1
- package/i18n/languages/cs-CZ.js +7 -1
- package/i18n/languages/de-CH.js +7 -1
- package/i18n/languages/de-DE.js +7 -1
- package/i18n/languages/en-US.js +7 -1
- package/i18n/languages/es-MX.js +7 -1
- package/i18n/languages/fr-FR.js +7 -1
- package/i18n/languages/it-IT.js +7 -1
- package/i18n/languages/ja-JP.js +7 -1
- package/i18n/languages/ko-KR.js +7 -1
- package/i18n/languages/lv-LV.js +7 -1
- package/i18n/languages/nb-NO.js +7 -1
- package/i18n/languages/nl-NL.js +7 -1
- package/i18n/languages/pl-PL.js +7 -1
- package/i18n/languages/pt-BR.js +7 -1
- package/i18n/languages/ru-RU.js +7 -1
- package/i18n/languages/sr-SP.js +7 -1
- package/i18n/languages/zh-CN.js +7 -1
- package/i18n/languages/zh-TW.js +7 -1
- package/languages/all.js +133 -0
- package/languages/ar-AR.js +7 -0
- package/languages/cs-CZ.js +7 -0
- package/languages/de-CH.js +7 -0
- package/languages/de-DE.js +7 -0
- package/languages/en-US.js +7 -0
- package/languages/es-MX.js +7 -0
- package/languages/fr-FR.js +7 -0
- package/languages/index.js +133 -0
- package/languages/it-IT.js +7 -0
- package/languages/ja-JP.js +7 -0
- package/languages/ko-KR.js +7 -0
- package/languages/lv-LV.js +7 -0
- package/languages/nb-NO.js +7 -0
- package/languages/nl-NL.js +7 -0
- package/languages/pl-PL.js +7 -0
- package/languages/pt-BR.js +7 -0
- package/languages/ru-RU.js +7 -0
- package/languages/sr-SP.js +7 -0
- package/languages/zh-CN.js +7 -0
- package/languages/zh-TW.js +7 -0
- package/package.json +3 -2
- package/pluginHooks.js +16 -6
- package/pluginHooks.mjs +15 -3
- package/plugins/autoRowSize/autoRowSize.js +2 -2
- package/plugins/autoRowSize/autoRowSize.mjs +2 -2
- package/plugins/copyPaste/copyableRanges.js +25 -31
- package/plugins/copyPaste/copyableRanges.mjs +18 -24
- package/plugins/customBorders/customBorders.d.ts +2 -0
- package/plugins/filters/filters.js +5 -0
- package/plugins/filters/filters.mjs +5 -0
- package/plugins/formulas/engine/register.js +9 -0
- package/plugins/formulas/engine/register.mjs +13 -4
- package/plugins/formulas/engine/settings.js +18 -3
- package/plugins/formulas/engine/settings.mjs +16 -3
- package/plugins/formulas/formulas.js +274 -155
- package/plugins/formulas/formulas.mjs +274 -156
- package/plugins/formulas/indexSyncer/axisSyncer.js +379 -0
- package/plugins/formulas/indexSyncer/axisSyncer.mjs +374 -0
- package/plugins/formulas/indexSyncer/index.js +225 -0
- package/plugins/formulas/indexSyncer/index.mjs +219 -0
- package/plugins/formulas/utils.js +81 -0
- package/plugins/formulas/utils.mjs +74 -0
- package/plugins/manualRowMove/manualRowMove.js +26 -11
- package/plugins/manualRowMove/manualRowMove.mjs +27 -12
- package/plugins/nestedHeaders/stateManager/headersTree.js +23 -26
- package/plugins/nestedHeaders/stateManager/headersTree.mjs +20 -23
- package/plugins/nestedHeaders/stateManager/index.js +3 -3
- package/plugins/nestedHeaders/stateManager/matrixGenerator.js +1 -0
- package/plugins/nestedHeaders/stateManager/settingsNormalizer.js +1 -1
- package/plugins/nestedHeaders/utils/ghostTable.js +30 -35
- package/plugins/nestedHeaders/utils/ghostTable.mjs +30 -35
- package/plugins/registry.js +3 -1
- package/plugins/undoRedo/undoRedo.js +0 -1
- package/plugins/undoRedo/undoRedo.mjs +0 -1
- package/selection/highlight/visualSelection.js +5 -6
- package/selection/highlight/visualSelection.mjs +5 -6
- package/tableView.js +62 -72
- package/tableView.mjs +62 -72
- package/translations/changesObservable/observable.js +41 -46
- package/translations/changesObservable/observable.mjs +36 -41
- package/translations/changesObservable/observer.js +1 -1
- package/translations/indexMapper.js +21 -0
- package/translations/indexMapper.mjs +21 -0
- package/utils/dataStructures/tree.js +15 -18
- package/utils/dataStructures/tree.mjs +15 -18
- package/utils/parseTable.js +5 -1
- package/utils/parseTable.mjs +5 -1
@@ -33,70 +33,6 @@ import { InlineStartOverlay, TopOverlay, TopInlineStartCornerOverlay, BottomOver
|
|
33
33
|
* @class Overlays
|
34
34
|
*/
|
35
35
|
var Overlays = /*#__PURE__*/function () {
|
36
|
-
/**
|
37
|
-
* Walkontable instance's reference.
|
38
|
-
*
|
39
|
-
* @protected
|
40
|
-
* @type {Walkontable}
|
41
|
-
*/
|
42
|
-
|
43
|
-
/**
|
44
|
-
* Refer to the TopOverlay instance.
|
45
|
-
*
|
46
|
-
* @protected
|
47
|
-
* @type {TopOverlay}
|
48
|
-
*/
|
49
|
-
|
50
|
-
/**
|
51
|
-
* Refer to the BottomOverlay instance.
|
52
|
-
*
|
53
|
-
* @protected
|
54
|
-
* @type {BottomOverlay}
|
55
|
-
*/
|
56
|
-
|
57
|
-
/**
|
58
|
-
* Refer to the InlineStartOverlay or instance.
|
59
|
-
*
|
60
|
-
* @protected
|
61
|
-
* @type {InlineStartOverlay}
|
62
|
-
*/
|
63
|
-
|
64
|
-
/**
|
65
|
-
* Refer to the TopInlineStartCornerOverlay instance.
|
66
|
-
*
|
67
|
-
* @protected
|
68
|
-
* @type {TopInlineStartCornerOverlay}
|
69
|
-
*/
|
70
|
-
|
71
|
-
/**
|
72
|
-
* Refer to the BottomInlineStartCornerOverlay instance.
|
73
|
-
*
|
74
|
-
* @protected
|
75
|
-
* @type {BottomInlineStartCornerOverlay}
|
76
|
-
*/
|
77
|
-
|
78
|
-
/**
|
79
|
-
* Browser line height for purposes of translating mouse wheel.
|
80
|
-
*
|
81
|
-
* @private
|
82
|
-
* @type {number}
|
83
|
-
*/
|
84
|
-
|
85
|
-
/**
|
86
|
-
* The walkontable settings.
|
87
|
-
*
|
88
|
-
* @protected
|
89
|
-
* @type {Settings}
|
90
|
-
*/
|
91
|
-
|
92
|
-
/**
|
93
|
-
* The instance of the ResizeObserver that observes the size of the Walkontable wrapper element.
|
94
|
-
* In case of the size change detection the `onContainerElementResize` is fired.
|
95
|
-
*
|
96
|
-
* @private
|
97
|
-
* @type {ResizeObserver}
|
98
|
-
*/
|
99
|
-
|
100
36
|
/**
|
101
37
|
* @param {Walkontable} wotInstance The Walkontable instance. @todo refactoring remove.
|
102
38
|
* @param {FacadeGetter} facadeGetter Function which return proper facade.
|
@@ -108,14 +44,69 @@ var Overlays = /*#__PURE__*/function () {
|
|
108
44
|
function Overlays(wotInstance, facadeGetter, domBindings, wtSettings, eventManager, wtTable) {
|
109
45
|
var _this = this;
|
110
46
|
_classCallCheck(this, Overlays);
|
47
|
+
/**
|
48
|
+
* Walkontable instance's reference.
|
49
|
+
*
|
50
|
+
* @protected
|
51
|
+
* @type {Walkontable}
|
52
|
+
*/
|
111
53
|
_defineProperty(this, "wot", null);
|
54
|
+
/**
|
55
|
+
* Refer to the TopOverlay instance.
|
56
|
+
*
|
57
|
+
* @protected
|
58
|
+
* @type {TopOverlay}
|
59
|
+
*/
|
112
60
|
_defineProperty(this, "topOverlay", null);
|
61
|
+
/**
|
62
|
+
* Refer to the BottomOverlay instance.
|
63
|
+
*
|
64
|
+
* @protected
|
65
|
+
* @type {BottomOverlay}
|
66
|
+
*/
|
113
67
|
_defineProperty(this, "bottomOverlay", null);
|
68
|
+
/**
|
69
|
+
* Refer to the InlineStartOverlay or instance.
|
70
|
+
*
|
71
|
+
* @protected
|
72
|
+
* @type {InlineStartOverlay}
|
73
|
+
*/
|
114
74
|
_defineProperty(this, "inlineStartOverlay", null);
|
75
|
+
/**
|
76
|
+
* Refer to the TopInlineStartCornerOverlay instance.
|
77
|
+
*
|
78
|
+
* @protected
|
79
|
+
* @type {TopInlineStartCornerOverlay}
|
80
|
+
*/
|
115
81
|
_defineProperty(this, "topInlineStartCornerOverlay", null);
|
82
|
+
/**
|
83
|
+
* Refer to the BottomInlineStartCornerOverlay instance.
|
84
|
+
*
|
85
|
+
* @protected
|
86
|
+
* @type {BottomInlineStartCornerOverlay}
|
87
|
+
*/
|
116
88
|
_defineProperty(this, "bottomInlineStartCornerOverlay", null);
|
89
|
+
/**
|
90
|
+
* Browser line height for purposes of translating mouse wheel.
|
91
|
+
*
|
92
|
+
* @private
|
93
|
+
* @type {number}
|
94
|
+
*/
|
117
95
|
_defineProperty(this, "browserLineHeight", undefined);
|
96
|
+
/**
|
97
|
+
* The walkontable settings.
|
98
|
+
*
|
99
|
+
* @protected
|
100
|
+
* @type {Settings}
|
101
|
+
*/
|
118
102
|
_defineProperty(this, "wtSettings", null);
|
103
|
+
/**
|
104
|
+
* The instance of the ResizeObserver that observes the size of the Walkontable wrapper element.
|
105
|
+
* In case of the size change detection the `onContainerElementResize` is fired.
|
106
|
+
*
|
107
|
+
* @private
|
108
|
+
* @type {ResizeObserver}
|
109
|
+
*/
|
119
110
|
_defineProperty(this, "resizeObserver", new ResizeObserver(function (entries) {
|
120
111
|
requestAnimationFrame(function () {
|
121
112
|
if (!Array.isArray(entries) || !entries.length) {
|
@@ -25,36 +25,33 @@ function _toPrimitive(input, hint) { if (_typeof(input) !== "object" || input ==
|
|
25
25
|
* @class Scroll
|
26
26
|
*/
|
27
27
|
var Scroll = /*#__PURE__*/function () {
|
28
|
-
/**
|
29
|
-
* The data access object.
|
30
|
-
*
|
31
|
-
* @protected
|
32
|
-
* @type {ScrollDao}
|
33
|
-
*/
|
34
|
-
|
35
|
-
/**
|
36
|
-
* Holds the last column reached by the scroll, which determines the scroll snapping direction
|
37
|
-
* (left or right) for a next horizontal scroll.
|
38
|
-
*
|
39
|
-
* @protected
|
40
|
-
* @type {number}
|
41
|
-
*/
|
42
|
-
|
43
|
-
/**
|
44
|
-
* Holds the last row reached by the scroll, which determines the scroll snapping direction
|
45
|
-
* (top or bottom) for a next vertical scroll.
|
46
|
-
*
|
47
|
-
* @protected
|
48
|
-
* @type {number}
|
49
|
-
*/
|
50
|
-
|
51
28
|
/**
|
52
29
|
* @param {ScrollDao} dataAccessObject Tha data access object.
|
53
30
|
*/
|
54
31
|
function Scroll(dataAccessObject) {
|
55
32
|
_classCallCheck(this, Scroll);
|
33
|
+
/**
|
34
|
+
* The data access object.
|
35
|
+
*
|
36
|
+
* @protected
|
37
|
+
* @type {ScrollDao}
|
38
|
+
*/
|
56
39
|
_defineProperty(this, "dataAccessObject", void 0);
|
40
|
+
/**
|
41
|
+
* Holds the last column reached by the scroll, which determines the scroll snapping direction
|
42
|
+
* (left or right) for a next horizontal scroll.
|
43
|
+
*
|
44
|
+
* @protected
|
45
|
+
* @type {number}
|
46
|
+
*/
|
57
47
|
_defineProperty(this, "lastScrolledColumnPos", -1);
|
48
|
+
/**
|
49
|
+
* Holds the last row reached by the scroll, which determines the scroll snapping direction
|
50
|
+
* (top or bottom) for a next vertical scroll.
|
51
|
+
*
|
52
|
+
* @protected
|
53
|
+
* @type {number}
|
54
|
+
*/
|
58
55
|
_defineProperty(this, "lastScrolledRowPos", -1);
|
59
56
|
this.dataAccessObject = dataAccessObject;
|
60
57
|
}
|
@@ -21,36 +21,33 @@ import { innerHeight, innerWidth, getScrollLeft, getScrollTop, offset } from "..
|
|
21
21
|
* @class Scroll
|
22
22
|
*/
|
23
23
|
var Scroll = /*#__PURE__*/function () {
|
24
|
-
/**
|
25
|
-
* The data access object.
|
26
|
-
*
|
27
|
-
* @protected
|
28
|
-
* @type {ScrollDao}
|
29
|
-
*/
|
30
|
-
|
31
|
-
/**
|
32
|
-
* Holds the last column reached by the scroll, which determines the scroll snapping direction
|
33
|
-
* (left or right) for a next horizontal scroll.
|
34
|
-
*
|
35
|
-
* @protected
|
36
|
-
* @type {number}
|
37
|
-
*/
|
38
|
-
|
39
|
-
/**
|
40
|
-
* Holds the last row reached by the scroll, which determines the scroll snapping direction
|
41
|
-
* (top or bottom) for a next vertical scroll.
|
42
|
-
*
|
43
|
-
* @protected
|
44
|
-
* @type {number}
|
45
|
-
*/
|
46
|
-
|
47
24
|
/**
|
48
25
|
* @param {ScrollDao} dataAccessObject Tha data access object.
|
49
26
|
*/
|
50
27
|
function Scroll(dataAccessObject) {
|
51
28
|
_classCallCheck(this, Scroll);
|
29
|
+
/**
|
30
|
+
* The data access object.
|
31
|
+
*
|
32
|
+
* @protected
|
33
|
+
* @type {ScrollDao}
|
34
|
+
*/
|
52
35
|
_defineProperty(this, "dataAccessObject", void 0);
|
36
|
+
/**
|
37
|
+
* Holds the last column reached by the scroll, which determines the scroll snapping direction
|
38
|
+
* (left or right) for a next horizontal scroll.
|
39
|
+
*
|
40
|
+
* @protected
|
41
|
+
* @type {number}
|
42
|
+
*/
|
53
43
|
_defineProperty(this, "lastScrolledColumnPos", -1);
|
44
|
+
/**
|
45
|
+
* Holds the last row reached by the scroll, which determines the scroll snapping direction
|
46
|
+
* (top or bottom) for a next vertical scroll.
|
47
|
+
*
|
48
|
+
* @protected
|
49
|
+
* @type {number}
|
50
|
+
*/
|
54
51
|
_defineProperty(this, "lastScrolledRowPos", -1);
|
55
52
|
this.dataAccessObject = dataAccessObject;
|
56
53
|
}
|
@@ -95,28 +95,26 @@ function _toPrimitive(input, hint) { if (_typeof(input) !== "object" || input ==
|
|
95
95
|
* @class Settings
|
96
96
|
*/
|
97
97
|
var Settings = /*#__PURE__*/function () {
|
98
|
-
/**
|
99
|
-
* Reference to settings.
|
100
|
-
*
|
101
|
-
* @protected
|
102
|
-
* @type {SettingsPure}
|
103
|
-
*/
|
104
|
-
|
105
|
-
/**
|
106
|
-
* The defaults values of settings.
|
107
|
-
* Void 0 means it is required, null means it can be empty.
|
108
|
-
*
|
109
|
-
* @public
|
110
|
-
* @type {Readonly<SettingsPure>}
|
111
|
-
*/
|
112
|
-
|
113
98
|
/**
|
114
99
|
* @param {SettingsPure} settings The user defined settings.
|
115
100
|
*/
|
116
101
|
function Settings(settings) {
|
117
102
|
var _this = this;
|
118
103
|
_classCallCheck(this, Settings);
|
104
|
+
/**
|
105
|
+
* Reference to settings.
|
106
|
+
*
|
107
|
+
* @protected
|
108
|
+
* @type {SettingsPure}
|
109
|
+
*/
|
119
110
|
_defineProperty(this, "settings", {});
|
111
|
+
/**
|
112
|
+
* The defaults values of settings.
|
113
|
+
* Void 0 means it is required, null means it can be empty.
|
114
|
+
*
|
115
|
+
* @public
|
116
|
+
* @type {Readonly<SettingsPure>}
|
117
|
+
*/
|
120
118
|
_defineProperty(this, "defaults", Object.freeze(this.getDefaults()));
|
121
119
|
(0, _object.objectEach)(this.defaults, function (value, key) {
|
122
120
|
if (settings[key] !== void 0) {
|
@@ -91,28 +91,26 @@ import { objectEach } from "../../../helpers/object.mjs";
|
|
91
91
|
* @class Settings
|
92
92
|
*/
|
93
93
|
var Settings = /*#__PURE__*/function () {
|
94
|
-
/**
|
95
|
-
* Reference to settings.
|
96
|
-
*
|
97
|
-
* @protected
|
98
|
-
* @type {SettingsPure}
|
99
|
-
*/
|
100
|
-
|
101
|
-
/**
|
102
|
-
* The defaults values of settings.
|
103
|
-
* Void 0 means it is required, null means it can be empty.
|
104
|
-
*
|
105
|
-
* @public
|
106
|
-
* @type {Readonly<SettingsPure>}
|
107
|
-
*/
|
108
|
-
|
109
94
|
/**
|
110
95
|
* @param {SettingsPure} settings The user defined settings.
|
111
96
|
*/
|
112
97
|
function Settings(settings) {
|
113
98
|
var _this = this;
|
114
99
|
_classCallCheck(this, Settings);
|
100
|
+
/**
|
101
|
+
* Reference to settings.
|
102
|
+
*
|
103
|
+
* @protected
|
104
|
+
* @type {SettingsPure}
|
105
|
+
*/
|
115
106
|
_defineProperty(this, "settings", {});
|
107
|
+
/**
|
108
|
+
* The defaults values of settings.
|
109
|
+
* Void 0 means it is required, null means it can be empty.
|
110
|
+
*
|
111
|
+
* @public
|
112
|
+
* @type {Readonly<SettingsPure>}
|
113
|
+
*/
|
116
114
|
_defineProperty(this, "defaults", Object.freeze(this.getDefaults()));
|
117
115
|
objectEach(this.defaults, function (value, key) {
|
118
116
|
if (settings[key] !== void 0) {
|
@@ -56,32 +56,6 @@ function _toPrimitive(input, hint) { if (_typeof(input) !== "object" || input ==
|
|
56
56
|
* @abstract
|
57
57
|
*/
|
58
58
|
var Table = /*#__PURE__*/function () {
|
59
|
-
/**
|
60
|
-
* The walkontable settings.
|
61
|
-
*
|
62
|
-
* @protected
|
63
|
-
* @type {Settings}
|
64
|
-
*/
|
65
|
-
|
66
|
-
/**
|
67
|
-
* Indicates if the table has height bigger than 0px.
|
68
|
-
*
|
69
|
-
* @type {boolean}
|
70
|
-
*/
|
71
|
-
|
72
|
-
/**
|
73
|
-
* Indicates if the table has width bigger than 0px.
|
74
|
-
*
|
75
|
-
* @type {boolean}
|
76
|
-
*/
|
77
|
-
|
78
|
-
/**
|
79
|
-
* Indicates if the table is visible. By visible, it means that the holder
|
80
|
-
* element has CSS 'display' property different than 'none'.
|
81
|
-
*
|
82
|
-
* @type {boolean}
|
83
|
-
*/
|
84
|
-
|
85
59
|
/**
|
86
60
|
*
|
87
61
|
* @abstract
|
@@ -94,13 +68,35 @@ var Table = /*#__PURE__*/function () {
|
|
94
68
|
function Table(dataAccessObject, facadeGetter, domBindings, wtSettings, name) {
|
95
69
|
var _this = this;
|
96
70
|
_classCallCheck(this, Table);
|
71
|
+
/**
|
72
|
+
* The walkontable settings.
|
73
|
+
*
|
74
|
+
* @protected
|
75
|
+
* @type {Settings}
|
76
|
+
*/
|
97
77
|
_defineProperty(this, "wtSettings", null);
|
98
78
|
_defineProperty(this, "domBindings", void 0);
|
99
79
|
_defineProperty(this, "TBODY", null);
|
100
80
|
_defineProperty(this, "THEAD", null);
|
101
81
|
_defineProperty(this, "COLGROUP", null);
|
82
|
+
/**
|
83
|
+
* Indicates if the table has height bigger than 0px.
|
84
|
+
*
|
85
|
+
* @type {boolean}
|
86
|
+
*/
|
102
87
|
_defineProperty(this, "hasTableHeight", true);
|
88
|
+
/**
|
89
|
+
* Indicates if the table has width bigger than 0px.
|
90
|
+
*
|
91
|
+
* @type {boolean}
|
92
|
+
*/
|
103
93
|
_defineProperty(this, "hasTableWidth", true);
|
94
|
+
/**
|
95
|
+
* Indicates if the table is visible. By visible, it means that the holder
|
96
|
+
* element has CSS 'display' property different than 'none'.
|
97
|
+
*
|
98
|
+
* @type {boolean}
|
99
|
+
*/
|
104
100
|
_defineProperty(this, "isTableVisible", false);
|
105
101
|
_defineProperty(this, "tableOffset", 0);
|
106
102
|
_defineProperty(this, "holderOffset", 0);
|
@@ -51,32 +51,6 @@ import { CLONE_TOP, CLONE_BOTTOM, CLONE_INLINE_START, CLONE_TOP_INLINE_START_COR
|
|
51
51
|
* @abstract
|
52
52
|
*/
|
53
53
|
var Table = /*#__PURE__*/function () {
|
54
|
-
/**
|
55
|
-
* The walkontable settings.
|
56
|
-
*
|
57
|
-
* @protected
|
58
|
-
* @type {Settings}
|
59
|
-
*/
|
60
|
-
|
61
|
-
/**
|
62
|
-
* Indicates if the table has height bigger than 0px.
|
63
|
-
*
|
64
|
-
* @type {boolean}
|
65
|
-
*/
|
66
|
-
|
67
|
-
/**
|
68
|
-
* Indicates if the table has width bigger than 0px.
|
69
|
-
*
|
70
|
-
* @type {boolean}
|
71
|
-
*/
|
72
|
-
|
73
|
-
/**
|
74
|
-
* Indicates if the table is visible. By visible, it means that the holder
|
75
|
-
* element has CSS 'display' property different than 'none'.
|
76
|
-
*
|
77
|
-
* @type {boolean}
|
78
|
-
*/
|
79
|
-
|
80
54
|
/**
|
81
55
|
*
|
82
56
|
* @abstract
|
@@ -89,13 +63,35 @@ var Table = /*#__PURE__*/function () {
|
|
89
63
|
function Table(dataAccessObject, facadeGetter, domBindings, wtSettings, name) {
|
90
64
|
var _this = this;
|
91
65
|
_classCallCheck(this, Table);
|
66
|
+
/**
|
67
|
+
* The walkontable settings.
|
68
|
+
*
|
69
|
+
* @protected
|
70
|
+
* @type {Settings}
|
71
|
+
*/
|
92
72
|
_defineProperty(this, "wtSettings", null);
|
93
73
|
_defineProperty(this, "domBindings", void 0);
|
94
74
|
_defineProperty(this, "TBODY", null);
|
95
75
|
_defineProperty(this, "THEAD", null);
|
96
76
|
_defineProperty(this, "COLGROUP", null);
|
77
|
+
/**
|
78
|
+
* Indicates if the table has height bigger than 0px.
|
79
|
+
*
|
80
|
+
* @type {boolean}
|
81
|
+
*/
|
97
82
|
_defineProperty(this, "hasTableHeight", true);
|
83
|
+
/**
|
84
|
+
* Indicates if the table has width bigger than 0px.
|
85
|
+
*
|
86
|
+
* @type {boolean}
|
87
|
+
*/
|
98
88
|
_defineProperty(this, "hasTableWidth", true);
|
89
|
+
/**
|
90
|
+
* Indicates if the table is visible. By visible, it means that the holder
|
91
|
+
* element has CSS 'display' property different than 'none'.
|
92
|
+
*
|
93
|
+
* @type {boolean}
|
94
|
+
*/
|
99
95
|
_defineProperty(this, "isTableVisible", false);
|
100
96
|
_defineProperty(this, "tableOffset", 0);
|
101
97
|
_defineProperty(this, "holderOffset", 0);
|
package/CHANGELOG.md
CHANGED
@@ -9,6 +9,20 @@ adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
9
9
|
|
10
10
|
<!-- UNVERSIONED -->
|
11
11
|
|
12
|
+
## [12.4.0] - 2023-05-23
|
13
|
+
|
14
|
+
### Added
|
15
|
+
- Added new afterColumnSequenceChange and afterRowSequenceChange hooks and synchronization of actions done on HOT with HF's engine [#10215](https://github.com/handsontable/handsontable/pull/10215)
|
16
|
+
|
17
|
+
### Fixed
|
18
|
+
- Fixed problem related to copying and pasting from Hansontable to Excel [#10017](https://github.com/handsontable/handsontable/issues/10017)
|
19
|
+
- Fixed an issue where Handsontable's dates didn't sync correctly with HyperFormula's dates. [#10085](https://github.com/handsontable/handsontable/issues/10085)
|
20
|
+
- Fixed problem related to Autofill, TrimRows and Formulas plugins cooperation. [#10200](https://github.com/handsontable/handsontable/issues/10200)
|
21
|
+
- Fixed a problem where re-entering the same cells/headers with the mouse cursor would not trigger the `beforeOnCellMouseOver` and `afterOnCellMouseOver` hooks. [#10321](https://github.com/handsontable/handsontable/pull/10321)
|
22
|
+
- Fixed a problem where Handsontable's `updateSettings` method would reset the HyperFormula's Undo/Redo actions stack in the connected instance. [#10326](https://github.com/handsontable/handsontable/pull/10326)
|
23
|
+
- Updated TypeScript definition files related to CustomBorders plugin [#1240](https://github.com/handsontable/handsontable/pull/1240)
|
24
|
+
- Fixed problems with backlight and guideline elements misalignment and moving row after the last position [#9556](https://github.com/handsontable/handsontable/issues/9556)
|
25
|
+
|
12
26
|
## [12.3.3] - 2023-03-28
|
13
27
|
|
14
28
|
### Added
|
package/base.js
CHANGED
@@ -16,9 +16,7 @@ exports.CellRange = _src.CellRange;
|
|
16
16
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
17
17
|
// FIXME: Bug in eslint-plugin-import: https://github.com/benmosher/eslint-plugin-import/issues/1883
|
18
18
|
/* eslint-disable import/named */
|
19
|
-
|
20
19
|
/* eslint-enable import/named */
|
21
|
-
|
22
20
|
// register default mandatory cell type for the Base package
|
23
21
|
(0, _registry2.registerCellType)(_textType.TextCellType);
|
24
22
|
|
@@ -46,8 +44,8 @@ Handsontable.hooks = _pluginHooks.default.getSingleton();
|
|
46
44
|
Handsontable.CellCoords = _src.CellCoords;
|
47
45
|
Handsontable.CellRange = _src.CellRange;
|
48
46
|
Handsontable.packageName = 'handsontable';
|
49
|
-
Handsontable.buildDate = "
|
50
|
-
Handsontable.version = "12.
|
47
|
+
Handsontable.buildDate = "12/05/2023 12:12:12";
|
48
|
+
Handsontable.version = "12.4.0-next-ddbea0c-20230512";
|
51
49
|
Handsontable.languages = {
|
52
50
|
dictionaryKeys: _registry.dictionaryKeys,
|
53
51
|
getLanguageDictionary: _registry.getLanguageDictionary,
|
package/base.mjs
CHANGED
@@ -35,8 +35,8 @@ Handsontable.hooks = Hooks.getSingleton();
|
|
35
35
|
Handsontable.CellCoords = CellCoords;
|
36
36
|
Handsontable.CellRange = CellRange;
|
37
37
|
Handsontable.packageName = 'handsontable';
|
38
|
-
Handsontable.buildDate = "
|
39
|
-
Handsontable.version = "12.
|
38
|
+
Handsontable.buildDate = "12/05/2023 12:12:29";
|
39
|
+
Handsontable.version = "12.4.0-next-ddbea0c-20230512";
|
40
40
|
Handsontable.languages = {
|
41
41
|
dictionaryKeys: dictionaryKeys,
|
42
42
|
getLanguageDictionary: getLanguageDictionary,
|
package/core.js
CHANGED
@@ -107,7 +107,7 @@ var deprecationWarns = new Set();
|
|
107
107
|
* :::
|
108
108
|
*
|
109
109
|
* ::: only-for react
|
110
|
-
* ```jsx
|
110
|
+
* ```jsx
|
111
111
|
* import { useRef } from 'react';
|
112
112
|
*
|
113
113
|
* const hotTableComponent = useRef(null);
|
@@ -263,6 +263,12 @@ function Core(rootElement, userSettings) {
|
|
263
263
|
* @type {IndexMapper}
|
264
264
|
*/
|
265
265
|
this.rowIndexMapper = new _translations.IndexMapper();
|
266
|
+
this.columnIndexMapper.addLocalHook('indexesSequenceChange', function (source) {
|
267
|
+
instance.runHooks('afterColumnSequenceChange', source);
|
268
|
+
});
|
269
|
+
this.rowIndexMapper.addLocalHook('indexesSequenceChange', function (source) {
|
270
|
+
instance.runHooks('afterRowSequenceChange', source);
|
271
|
+
});
|
266
272
|
dataSource = new _dataSource.default(instance);
|
267
273
|
if (!this.rootElement.id || this.rootElement.id.substring(0, 3) === 'ht_') {
|
268
274
|
this.rootElement.id = this.guid; // if root element does not have an id, assign a random id
|
@@ -2442,11 +2448,13 @@ function Core(rootElement, userSettings) {
|
|
2442
2448
|
};
|
2443
2449
|
|
2444
2450
|
/**
|
2445
|
-
*
|
2451
|
+
* Gets the value of the currently focused cell.
|
2452
|
+
*
|
2453
|
+
* For column headers and row headers, returns `null`.
|
2446
2454
|
*
|
2447
2455
|
* @memberof Core#
|
2448
2456
|
* @function getValue
|
2449
|
-
* @returns {*}
|
2457
|
+
* @returns {*} The value of the focused cell.
|
2450
2458
|
*/
|
2451
2459
|
this.getValue = function () {
|
2452
2460
|
var sel = instance.getSelectedLast();
|
@@ -2789,6 +2797,11 @@ function Core(rootElement, userSettings) {
|
|
2789
2797
|
* __Note__: This method does not participate in data transformation. If the visual data of the table is reordered,
|
2790
2798
|
* sorted or trimmed only physical indexes are correct.
|
2791
2799
|
*
|
2800
|
+
* __Note__: This method may return incorrect values for cells that contain
|
2801
|
+
* [formulas](@/guides/formulas/formula-calculation.md). This is because `getSourceData()`
|
2802
|
+
* operates on source data ([physical indexes](@/api/indexMapper.md)),
|
2803
|
+
* whereas formulas operate on visual data (visual indexes).
|
2804
|
+
*
|
2792
2805
|
* @memberof Core#
|
2793
2806
|
* @function getSourceData
|
2794
2807
|
* @param {number} [row] From physical row index.
|
@@ -3138,7 +3151,13 @@ function Core(rootElement, userSettings) {
|
|
3138
3151
|
};
|
3139
3152
|
|
3140
3153
|
/**
|
3141
|
-
* Checks if
|
3154
|
+
* Checks if your [data format](@/guides/getting-started/binding-to-data.md#compatible-data-types)
|
3155
|
+
* and [configuration options](@/guides/getting-started/configuration-options.md)
|
3156
|
+
* allow for changing the number of columns.
|
3157
|
+
*
|
3158
|
+
* Returns `false` when your data is an array of objects,
|
3159
|
+
* or when you use the [`columns`](@/api/options.md#columns) option.
|
3160
|
+
* Otherwise, returns `true`.
|
3142
3161
|
*
|
3143
3162
|
* @memberof Core#
|
3144
3163
|
* @function isColumnModificationAllowed
|
@@ -4104,8 +4123,6 @@ function Core(rootElement, userSettings) {
|
|
4104
4123
|
if (datamap) {
|
4105
4124
|
datamap.destroy();
|
4106
4125
|
}
|
4107
|
-
instance.rowIndexMapper = null;
|
4108
|
-
instance.columnIndexMapper = null;
|
4109
4126
|
datamap = null;
|
4110
4127
|
grid = null;
|
4111
4128
|
selection = null;
|
package/core.mjs
CHANGED
@@ -102,7 +102,7 @@ var deprecationWarns = new Set();
|
|
102
102
|
* :::
|
103
103
|
*
|
104
104
|
* ::: only-for react
|
105
|
-
* ```jsx
|
105
|
+
* ```jsx
|
106
106
|
* import { useRef } from 'react';
|
107
107
|
*
|
108
108
|
* const hotTableComponent = useRef(null);
|
@@ -258,6 +258,12 @@ export default function Core(rootElement, userSettings) {
|
|
258
258
|
* @type {IndexMapper}
|
259
259
|
*/
|
260
260
|
this.rowIndexMapper = new IndexMapper();
|
261
|
+
this.columnIndexMapper.addLocalHook('indexesSequenceChange', function (source) {
|
262
|
+
instance.runHooks('afterColumnSequenceChange', source);
|
263
|
+
});
|
264
|
+
this.rowIndexMapper.addLocalHook('indexesSequenceChange', function (source) {
|
265
|
+
instance.runHooks('afterRowSequenceChange', source);
|
266
|
+
});
|
261
267
|
dataSource = new DataSource(instance);
|
262
268
|
if (!this.rootElement.id || this.rootElement.id.substring(0, 3) === 'ht_') {
|
263
269
|
this.rootElement.id = this.guid; // if root element does not have an id, assign a random id
|
@@ -2437,11 +2443,13 @@ export default function Core(rootElement, userSettings) {
|
|
2437
2443
|
};
|
2438
2444
|
|
2439
2445
|
/**
|
2440
|
-
*
|
2446
|
+
* Gets the value of the currently focused cell.
|
2447
|
+
*
|
2448
|
+
* For column headers and row headers, returns `null`.
|
2441
2449
|
*
|
2442
2450
|
* @memberof Core#
|
2443
2451
|
* @function getValue
|
2444
|
-
* @returns {*}
|
2452
|
+
* @returns {*} The value of the focused cell.
|
2445
2453
|
*/
|
2446
2454
|
this.getValue = function () {
|
2447
2455
|
var sel = instance.getSelectedLast();
|
@@ -2784,6 +2792,11 @@ export default function Core(rootElement, userSettings) {
|
|
2784
2792
|
* __Note__: This method does not participate in data transformation. If the visual data of the table is reordered,
|
2785
2793
|
* sorted or trimmed only physical indexes are correct.
|
2786
2794
|
*
|
2795
|
+
* __Note__: This method may return incorrect values for cells that contain
|
2796
|
+
* [formulas](@/guides/formulas/formula-calculation.md). This is because `getSourceData()`
|
2797
|
+
* operates on source data ([physical indexes](@/api/indexMapper.md)),
|
2798
|
+
* whereas formulas operate on visual data (visual indexes).
|
2799
|
+
*
|
2787
2800
|
* @memberof Core#
|
2788
2801
|
* @function getSourceData
|
2789
2802
|
* @param {number} [row] From physical row index.
|
@@ -3133,7 +3146,13 @@ export default function Core(rootElement, userSettings) {
|
|
3133
3146
|
};
|
3134
3147
|
|
3135
3148
|
/**
|
3136
|
-
* Checks if
|
3149
|
+
* Checks if your [data format](@/guides/getting-started/binding-to-data.md#compatible-data-types)
|
3150
|
+
* and [configuration options](@/guides/getting-started/configuration-options.md)
|
3151
|
+
* allow for changing the number of columns.
|
3152
|
+
*
|
3153
|
+
* Returns `false` when your data is an array of objects,
|
3154
|
+
* or when you use the [`columns`](@/api/options.md#columns) option.
|
3155
|
+
* Otherwise, returns `true`.
|
3137
3156
|
*
|
3138
3157
|
* @memberof Core#
|
3139
3158
|
* @function isColumnModificationAllowed
|
@@ -4099,8 +4118,6 @@ export default function Core(rootElement, userSettings) {
|
|
4099
4118
|
if (datamap) {
|
4100
4119
|
datamap.destroy();
|
4101
4120
|
}
|
4102
|
-
instance.rowIndexMapper = null;
|
4103
|
-
instance.columnIndexMapper = null;
|
4104
4121
|
datamap = null;
|
4105
4122
|
grid = null;
|
4106
4123
|
selection = null;
|