@handsontable/vue3 17.0.1 → 17.1.0-rc3
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/commonjs/vue-handsontable.js +57 -44
- package/dist/vue-handsontable.js +58 -45
- package/dist/vue-handsontable.js.map +1 -1
- package/dist/vue-handsontable.min.js +2 -2
- package/dist/vue-handsontable.min.js.map +1 -1
- package/es/vue-handsontable.mjs +57 -44
- package/package.json +1 -1
- package/HotColumn.vue.d.ts +0 -11
- package/HotTable.vue.d.ts +0 -32
- package/commonjs/HotColumn.vue.d.ts +0 -11
- package/commonjs/HotTable.vue.d.ts +0 -32
- package/commonjs/helpers.d.ts +0 -36
- package/commonjs/index.d.ts +0 -3
- package/commonjs/types.d.ts +0 -9
- package/dist/HotColumn.vue.d.ts +0 -11
- package/dist/HotTable.vue.d.ts +0 -32
- package/dist/helpers.d.ts +0 -36
- package/dist/index.d.ts +0 -3
- package/dist/types.d.ts +0 -9
- package/helpers.d.ts +0 -36
- package/index.d.ts +0 -3
- package/types.d.ts +0 -9
|
@@ -63,30 +63,34 @@ function _typeof(o) {
|
|
|
63
63
|
}
|
|
64
64
|
|
|
65
65
|
var unassignedPropSymbol = Symbol('unassigned');
|
|
66
|
-
|
|
67
|
-
|
|
66
|
+
|
|
67
|
+
/**
|
|
68
|
+
* Message for the warning thrown if the Handsontable instance has been destroyed.
|
|
68
69
|
*/
|
|
69
70
|
var HOT_DESTROYED_WARNING = 'The Handsontable instance bound to this component was destroyed and cannot be' + ' used properly.';
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
*
|
|
73
|
-
*
|
|
74
|
-
* @param {
|
|
75
|
-
* @
|
|
71
|
+
|
|
72
|
+
/**
|
|
73
|
+
* Check if at specified `key` there is any value for `object`.
|
|
74
|
+
*
|
|
75
|
+
* @param {object} object Object to search value at specyfic key.
|
|
76
|
+
* @param {string} key String key to check.
|
|
77
|
+
* @returns {boolean}
|
|
76
78
|
*/
|
|
77
79
|
function hasOwnProperty(object, key) {
|
|
78
80
|
return Object.prototype.hasOwnProperty.call(object, key);
|
|
79
81
|
}
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
*
|
|
83
|
-
*
|
|
84
|
-
* @
|
|
82
|
+
|
|
83
|
+
/**
|
|
84
|
+
* Generate an object containing all the available Handsontable properties and plugin hooks.
|
|
85
|
+
*
|
|
86
|
+
* @param {string} source Source for the factory (either 'HotTable' or 'HotColumn').
|
|
87
|
+
* @returns {object}
|
|
85
88
|
*/
|
|
86
89
|
function propFactory(source) {
|
|
87
90
|
var registeredHooks = Handsontable__default["default"].hooks.getRegistered();
|
|
88
91
|
var propSchema = {};
|
|
89
92
|
Object.assign(propSchema, Handsontable__default["default"].DefaultSettings);
|
|
93
|
+
|
|
90
94
|
// eslint-disable-next-line no-restricted-syntax, guard-for-in
|
|
91
95
|
for (var prop in propSchema) {
|
|
92
96
|
propSchema[prop] = {
|
|
@@ -109,11 +113,12 @@ function propFactory(source) {
|
|
|
109
113
|
}
|
|
110
114
|
return propSchema;
|
|
111
115
|
}
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
*
|
|
115
|
-
*
|
|
116
|
-
* @
|
|
116
|
+
|
|
117
|
+
/**
|
|
118
|
+
* Filter out all of the unassigned props, and return only the one passed to the component.
|
|
119
|
+
*
|
|
120
|
+
* @param {object} props Object containing all the possible props.
|
|
121
|
+
* @returns {object} Object containing only used props.
|
|
117
122
|
*/
|
|
118
123
|
function filterPassedProps(props) {
|
|
119
124
|
var filteredProps = {};
|
|
@@ -126,6 +131,7 @@ function filterPassedProps(props) {
|
|
|
126
131
|
}
|
|
127
132
|
}
|
|
128
133
|
}
|
|
134
|
+
|
|
129
135
|
// eslint-disable-next-line no-restricted-syntax
|
|
130
136
|
for (var _propName in props) {
|
|
131
137
|
if (hasOwnProperty(props, _propName) && _propName !== 'settings' && props[_propName] !== unassignedPropSymbol) {
|
|
@@ -134,40 +140,45 @@ function filterPassedProps(props) {
|
|
|
134
140
|
}
|
|
135
141
|
return filteredProps;
|
|
136
142
|
}
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
*
|
|
140
|
-
*
|
|
141
|
-
* @param {
|
|
142
|
-
* @
|
|
143
|
+
|
|
144
|
+
/**
|
|
145
|
+
* Prepare the settings object to be used as the settings for Handsontable, based on the props provided to the component.
|
|
146
|
+
*
|
|
147
|
+
* @param {HotTableProps} props The props passed to the component.
|
|
148
|
+
* @param {Handsontable.GridSettings} currentSettings The current Handsontable settings.
|
|
149
|
+
* @returns {Handsontable.GridSettings} An object containing the properties, ready to be used within Handsontable.
|
|
143
150
|
*/
|
|
144
151
|
function prepareSettings(props, currentSettings) {
|
|
145
152
|
var assignedProps = filterPassedProps(props);
|
|
146
153
|
var hotSettingsInProps = props.settings ? props.settings : assignedProps;
|
|
147
154
|
var additionalHotSettingsInProps = props.settings ? assignedProps : null;
|
|
155
|
+
var initOnlySettingKeys = (currentSettings === null || currentSettings === void 0 ? void 0 : currentSettings._initOnlySettings) || [];
|
|
148
156
|
var newSettings = {};
|
|
157
|
+
|
|
149
158
|
// eslint-disable-next-line no-restricted-syntax
|
|
150
159
|
for (var key in hotSettingsInProps) {
|
|
151
|
-
if (hasOwnProperty(hotSettingsInProps, key) && hotSettingsInProps[key] !== void 0 && (currentSettings && key !== 'data' ? !simpleEqual(currentSettings[key], hotSettingsInProps[key]) : true)) {
|
|
160
|
+
if (hasOwnProperty(hotSettingsInProps, key) && hotSettingsInProps[key] !== void 0 && !initOnlySettingKeys.includes(key) && (currentSettings && key !== 'data' ? !simpleEqual(currentSettings[key], hotSettingsInProps[key]) : true)) {
|
|
152
161
|
newSettings[key] = hotSettingsInProps[key];
|
|
153
162
|
}
|
|
154
163
|
}
|
|
164
|
+
|
|
155
165
|
// eslint-disable-next-line no-restricted-syntax
|
|
156
166
|
for (var _key in additionalHotSettingsInProps) {
|
|
157
|
-
if (hasOwnProperty(additionalHotSettingsInProps, _key) && _key !== 'id' && _key !== 'settings' && additionalHotSettingsInProps[_key] !== void 0 && (currentSettings && _key !== 'data' ? !simpleEqual(currentSettings[_key], additionalHotSettingsInProps[_key]) : true)) {
|
|
167
|
+
if (hasOwnProperty(additionalHotSettingsInProps, _key) && _key !== 'id' && _key !== 'settings' && additionalHotSettingsInProps[_key] !== void 0 && !initOnlySettingKeys.includes(_key) && (currentSettings && _key !== 'data' ? !simpleEqual(currentSettings[_key], additionalHotSettingsInProps[_key]) : true)) {
|
|
158
168
|
newSettings[_key] = additionalHotSettingsInProps[_key];
|
|
159
169
|
}
|
|
160
170
|
}
|
|
161
171
|
return newSettings;
|
|
162
172
|
}
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
*
|
|
166
|
-
*
|
|
167
|
-
*
|
|
168
|
-
*
|
|
169
|
-
* @param {object}
|
|
170
|
-
* @
|
|
173
|
+
|
|
174
|
+
/**
|
|
175
|
+
* Compare two objects using `JSON.stringify`.
|
|
176
|
+
* *Note: * As it's using the stringify function to compare objects, the property order in both objects is
|
|
177
|
+
* important. It will return `false` for the same objects, if they're defined in a different order.
|
|
178
|
+
*
|
|
179
|
+
* @param {object} objectA First object to compare.
|
|
180
|
+
* @param {object} objectB Second object to compare.
|
|
181
|
+
* @returns {boolean} `true` if they're the same, `false` otherwise.
|
|
171
182
|
*/
|
|
172
183
|
function simpleEqual(objectA, objectB) {
|
|
173
184
|
var stringifyToJSON = function stringifyToJSON(val) {
|
|
@@ -194,7 +205,7 @@ function simpleEqual(objectA, objectB) {
|
|
|
194
205
|
}
|
|
195
206
|
}
|
|
196
207
|
|
|
197
|
-
var version="17.0
|
|
208
|
+
var version="17.1.0-rc3";
|
|
198
209
|
|
|
199
210
|
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
200
211
|
// @ts-ignore
|
|
@@ -217,10 +228,12 @@ var HotTable = vue.defineComponent({
|
|
|
217
228
|
if (this.hotInstance.isColumnModificationAllowed() || !this.hotInstance.isColumnModificationAllowed() && this.hotInstance.countSourceCols() === this.miscCache.currentSourceColumns) {
|
|
218
229
|
// If the dataset dimensions change, update the index mappers.
|
|
219
230
|
this.matchHotMappersSize();
|
|
231
|
+
|
|
220
232
|
// Data is automatically synchronized by reference.
|
|
221
233
|
delete settings.data;
|
|
222
234
|
}
|
|
223
235
|
}
|
|
236
|
+
|
|
224
237
|
// If there are another options changed, update the HOT settings, render the table otherwise.
|
|
225
238
|
if (Object.keys(settings).length) {
|
|
226
239
|
this.hotInstance.updateSettings(settings);
|
|
@@ -259,8 +272,8 @@ var HotTable = vue.defineComponent({
|
|
|
259
272
|
};
|
|
260
273
|
},
|
|
261
274
|
methods: {
|
|
262
|
-
/**
|
|
263
|
-
* Initialize Handsontable.
|
|
275
|
+
/**
|
|
276
|
+
* Initialize Handsontable.
|
|
264
277
|
*/
|
|
265
278
|
hotInit: function hotInit() {
|
|
266
279
|
var newSettings = prepareSettings(this.$props);
|
|
@@ -313,10 +326,10 @@ var HotTable = vue.defineComponent({
|
|
|
313
326
|
}
|
|
314
327
|
});
|
|
315
328
|
},
|
|
316
|
-
/**
|
|
317
|
-
* Get settings for the columns provided in the `hot-column` components.
|
|
318
|
-
*
|
|
319
|
-
* @returns {HotTableProps[] | undefined}
|
|
329
|
+
/**
|
|
330
|
+
* Get settings for the columns provided in the `hot-column` components.
|
|
331
|
+
*
|
|
332
|
+
* @returns {HotTableProps[] | undefined}
|
|
320
333
|
*/
|
|
321
334
|
getColumnSettings: function getColumnSettings() {
|
|
322
335
|
var columnSettings = Array.from(this.columnsCache.values());
|
|
@@ -350,9 +363,9 @@ var HotColumn = vue.defineComponent({
|
|
|
350
363
|
props: propFactory('HotColumn'),
|
|
351
364
|
inject: ['columnsCache'],
|
|
352
365
|
methods: {
|
|
353
|
-
/**
|
|
354
|
-
* Create the column settings based on the data provided to the `hot-column`
|
|
355
|
-
* component and it's child components.
|
|
366
|
+
/**
|
|
367
|
+
* Create the column settings based on the data provided to the `hot-column`
|
|
368
|
+
* component and it's child components.
|
|
356
369
|
*/
|
|
357
370
|
createColumnSettings: function createColumnSettings() {
|
|
358
371
|
var assignedProps = filterPassedProps(this.$props);
|
package/dist/vue-handsontable.js
CHANGED
|
@@ -25,7 +25,7 @@
|
|
|
25
25
|
* INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES OF ANY CHARACTER ARISING FROM
|
|
26
26
|
* USE OR INABILITY TO USE THIS SOFTWARE.
|
|
27
27
|
*
|
|
28
|
-
* Version: 17.0
|
|
28
|
+
* Version: 17.1.0-rc3 (built at Mon Apr 27 2026 07:50:45 GMT+0000 (Coordinated Universal Time))
|
|
29
29
|
*/
|
|
30
30
|
(function (global, factory) {
|
|
31
31
|
typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('vue'), require('handsontable/base')) :
|
|
@@ -91,30 +91,34 @@ function _typeof(o) {
|
|
|
91
91
|
}
|
|
92
92
|
|
|
93
93
|
var unassignedPropSymbol = Symbol('unassigned');
|
|
94
|
-
|
|
95
|
-
|
|
94
|
+
|
|
95
|
+
/**
|
|
96
|
+
* Message for the warning thrown if the Handsontable instance has been destroyed.
|
|
96
97
|
*/
|
|
97
98
|
var HOT_DESTROYED_WARNING = 'The Handsontable instance bound to this component was destroyed and cannot be' + ' used properly.';
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
*
|
|
101
|
-
*
|
|
102
|
-
* @param {
|
|
103
|
-
* @
|
|
99
|
+
|
|
100
|
+
/**
|
|
101
|
+
* Check if at specified `key` there is any value for `object`.
|
|
102
|
+
*
|
|
103
|
+
* @param {object} object Object to search value at specyfic key.
|
|
104
|
+
* @param {string} key String key to check.
|
|
105
|
+
* @returns {boolean}
|
|
104
106
|
*/
|
|
105
107
|
function hasOwnProperty(object, key) {
|
|
106
108
|
return Object.prototype.hasOwnProperty.call(object, key);
|
|
107
109
|
}
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
*
|
|
111
|
-
*
|
|
112
|
-
* @
|
|
110
|
+
|
|
111
|
+
/**
|
|
112
|
+
* Generate an object containing all the available Handsontable properties and plugin hooks.
|
|
113
|
+
*
|
|
114
|
+
* @param {string} source Source for the factory (either 'HotTable' or 'HotColumn').
|
|
115
|
+
* @returns {object}
|
|
113
116
|
*/
|
|
114
117
|
function propFactory(source) {
|
|
115
118
|
var registeredHooks = Handsontable__default["default"].hooks.getRegistered();
|
|
116
119
|
var propSchema = {};
|
|
117
120
|
Object.assign(propSchema, Handsontable__default["default"].DefaultSettings);
|
|
121
|
+
|
|
118
122
|
// eslint-disable-next-line no-restricted-syntax, guard-for-in
|
|
119
123
|
for (var prop in propSchema) {
|
|
120
124
|
propSchema[prop] = {
|
|
@@ -137,11 +141,12 @@ function propFactory(source) {
|
|
|
137
141
|
}
|
|
138
142
|
return propSchema;
|
|
139
143
|
}
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
*
|
|
143
|
-
*
|
|
144
|
-
* @
|
|
144
|
+
|
|
145
|
+
/**
|
|
146
|
+
* Filter out all of the unassigned props, and return only the one passed to the component.
|
|
147
|
+
*
|
|
148
|
+
* @param {object} props Object containing all the possible props.
|
|
149
|
+
* @returns {object} Object containing only used props.
|
|
145
150
|
*/
|
|
146
151
|
function filterPassedProps(props) {
|
|
147
152
|
var filteredProps = {};
|
|
@@ -154,6 +159,7 @@ function filterPassedProps(props) {
|
|
|
154
159
|
}
|
|
155
160
|
}
|
|
156
161
|
}
|
|
162
|
+
|
|
157
163
|
// eslint-disable-next-line no-restricted-syntax
|
|
158
164
|
for (var _propName in props) {
|
|
159
165
|
if (hasOwnProperty(props, _propName) && _propName !== 'settings' && props[_propName] !== unassignedPropSymbol) {
|
|
@@ -162,40 +168,45 @@ function filterPassedProps(props) {
|
|
|
162
168
|
}
|
|
163
169
|
return filteredProps;
|
|
164
170
|
}
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
*
|
|
168
|
-
*
|
|
169
|
-
* @param {
|
|
170
|
-
* @
|
|
171
|
+
|
|
172
|
+
/**
|
|
173
|
+
* Prepare the settings object to be used as the settings for Handsontable, based on the props provided to the component.
|
|
174
|
+
*
|
|
175
|
+
* @param {HotTableProps} props The props passed to the component.
|
|
176
|
+
* @param {Handsontable.GridSettings} currentSettings The current Handsontable settings.
|
|
177
|
+
* @returns {Handsontable.GridSettings} An object containing the properties, ready to be used within Handsontable.
|
|
171
178
|
*/
|
|
172
179
|
function prepareSettings(props, currentSettings) {
|
|
173
180
|
var assignedProps = filterPassedProps(props);
|
|
174
181
|
var hotSettingsInProps = props.settings ? props.settings : assignedProps;
|
|
175
182
|
var additionalHotSettingsInProps = props.settings ? assignedProps : null;
|
|
183
|
+
var initOnlySettingKeys = (currentSettings === null || currentSettings === void 0 ? void 0 : currentSettings._initOnlySettings) || [];
|
|
176
184
|
var newSettings = {};
|
|
185
|
+
|
|
177
186
|
// eslint-disable-next-line no-restricted-syntax
|
|
178
187
|
for (var key in hotSettingsInProps) {
|
|
179
|
-
if (hasOwnProperty(hotSettingsInProps, key) && hotSettingsInProps[key] !== void 0 && (currentSettings && key !== 'data' ? !simpleEqual(currentSettings[key], hotSettingsInProps[key]) : true)) {
|
|
188
|
+
if (hasOwnProperty(hotSettingsInProps, key) && hotSettingsInProps[key] !== void 0 && !initOnlySettingKeys.includes(key) && (currentSettings && key !== 'data' ? !simpleEqual(currentSettings[key], hotSettingsInProps[key]) : true)) {
|
|
180
189
|
newSettings[key] = hotSettingsInProps[key];
|
|
181
190
|
}
|
|
182
191
|
}
|
|
192
|
+
|
|
183
193
|
// eslint-disable-next-line no-restricted-syntax
|
|
184
194
|
for (var _key in additionalHotSettingsInProps) {
|
|
185
|
-
if (hasOwnProperty(additionalHotSettingsInProps, _key) && _key !== 'id' && _key !== 'settings' && additionalHotSettingsInProps[_key] !== void 0 && (currentSettings && _key !== 'data' ? !simpleEqual(currentSettings[_key], additionalHotSettingsInProps[_key]) : true)) {
|
|
195
|
+
if (hasOwnProperty(additionalHotSettingsInProps, _key) && _key !== 'id' && _key !== 'settings' && additionalHotSettingsInProps[_key] !== void 0 && !initOnlySettingKeys.includes(_key) && (currentSettings && _key !== 'data' ? !simpleEqual(currentSettings[_key], additionalHotSettingsInProps[_key]) : true)) {
|
|
186
196
|
newSettings[_key] = additionalHotSettingsInProps[_key];
|
|
187
197
|
}
|
|
188
198
|
}
|
|
189
199
|
return newSettings;
|
|
190
200
|
}
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
*
|
|
194
|
-
*
|
|
195
|
-
*
|
|
196
|
-
*
|
|
197
|
-
* @param {object}
|
|
198
|
-
* @
|
|
201
|
+
|
|
202
|
+
/**
|
|
203
|
+
* Compare two objects using `JSON.stringify`.
|
|
204
|
+
* *Note: * As it's using the stringify function to compare objects, the property order in both objects is
|
|
205
|
+
* important. It will return `false` for the same objects, if they're defined in a different order.
|
|
206
|
+
*
|
|
207
|
+
* @param {object} objectA First object to compare.
|
|
208
|
+
* @param {object} objectB Second object to compare.
|
|
209
|
+
* @returns {boolean} `true` if they're the same, `false` otherwise.
|
|
199
210
|
*/
|
|
200
211
|
function simpleEqual(objectA, objectB) {
|
|
201
212
|
var stringifyToJSON = function stringifyToJSON(val) {
|
|
@@ -222,7 +233,7 @@ function simpleEqual(objectA, objectB) {
|
|
|
222
233
|
}
|
|
223
234
|
}
|
|
224
235
|
|
|
225
|
-
var version="17.0
|
|
236
|
+
var version="17.1.0-rc3";
|
|
226
237
|
|
|
227
238
|
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
228
239
|
// @ts-ignore
|
|
@@ -245,10 +256,12 @@ var HotTable = vue.defineComponent({
|
|
|
245
256
|
if (this.hotInstance.isColumnModificationAllowed() || !this.hotInstance.isColumnModificationAllowed() && this.hotInstance.countSourceCols() === this.miscCache.currentSourceColumns) {
|
|
246
257
|
// If the dataset dimensions change, update the index mappers.
|
|
247
258
|
this.matchHotMappersSize();
|
|
259
|
+
|
|
248
260
|
// Data is automatically synchronized by reference.
|
|
249
261
|
delete settings.data;
|
|
250
262
|
}
|
|
251
263
|
}
|
|
264
|
+
|
|
252
265
|
// If there are another options changed, update the HOT settings, render the table otherwise.
|
|
253
266
|
if (Object.keys(settings).length) {
|
|
254
267
|
this.hotInstance.updateSettings(settings);
|
|
@@ -287,8 +300,8 @@ var HotTable = vue.defineComponent({
|
|
|
287
300
|
};
|
|
288
301
|
},
|
|
289
302
|
methods: {
|
|
290
|
-
/**
|
|
291
|
-
* Initialize Handsontable.
|
|
303
|
+
/**
|
|
304
|
+
* Initialize Handsontable.
|
|
292
305
|
*/
|
|
293
306
|
hotInit: function hotInit() {
|
|
294
307
|
var newSettings = prepareSettings(this.$props);
|
|
@@ -341,10 +354,10 @@ var HotTable = vue.defineComponent({
|
|
|
341
354
|
}
|
|
342
355
|
});
|
|
343
356
|
},
|
|
344
|
-
/**
|
|
345
|
-
* Get settings for the columns provided in the `hot-column` components.
|
|
346
|
-
*
|
|
347
|
-
* @returns {HotTableProps[] | undefined}
|
|
357
|
+
/**
|
|
358
|
+
* Get settings for the columns provided in the `hot-column` components.
|
|
359
|
+
*
|
|
360
|
+
* @returns {HotTableProps[] | undefined}
|
|
348
361
|
*/
|
|
349
362
|
getColumnSettings: function getColumnSettings() {
|
|
350
363
|
var columnSettings = Array.from(this.columnsCache.values());
|
|
@@ -378,9 +391,9 @@ var HotColumn = vue.defineComponent({
|
|
|
378
391
|
props: propFactory('HotColumn'),
|
|
379
392
|
inject: ['columnsCache'],
|
|
380
393
|
methods: {
|
|
381
|
-
/**
|
|
382
|
-
* Create the column settings based on the data provided to the `hot-column`
|
|
383
|
-
* component and it's child components.
|
|
394
|
+
/**
|
|
395
|
+
* Create the column settings based on the data provided to the `hot-column`
|
|
396
|
+
* component and it's child components.
|
|
384
397
|
*/
|
|
385
398
|
createColumnSettings: function createColumnSettings() {
|
|
386
399
|
var assignedProps = filterPassedProps(this.$props);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"vue-handsontable.js","sources":["../src/helpers.ts","../src/HotTable.vue","../src/HotTable.vue?vue&type=template&id=54bcc3fa&lang.js","../src/HotColumn.vue"],"sourcesContent":["import Handsontable from 'handsontable/base';\nimport { HotTableProps, VueProps } from './types';\n\nconst unassignedPropSymbol = Symbol('unassigned');\n\n/**\n * Message for the warning thrown if the Handsontable instance has been destroyed.\n */\nexport const HOT_DESTROYED_WARNING = 'The Handsontable instance bound to this component was destroyed and cannot be' +\n ' used properly.';\n\n/**\n * Check if at specified `key` there is any value for `object`.\n *\n * @param {object} object Object to search value at specyfic key.\n * @param {string} key String key to check.\n * @returns {boolean}\n */\nexport function hasOwnProperty(object: unknown, key: string): boolean {\n return Object.prototype.hasOwnProperty.call(object, key);\n}\n\n/**\n * Generate an object containing all the available Handsontable properties and plugin hooks.\n *\n * @param {string} source Source for the factory (either 'HotTable' or 'HotColumn').\n * @returns {object}\n */\nexport function propFactory(source: 'HotTable' | 'HotColumn'): VueProps<HotTableProps> {\n const registeredHooks = Handsontable.hooks.getRegistered();\n const propSchema: VueProps<HotTableProps> = {};\n\n Object.assign(propSchema, Handsontable.DefaultSettings);\n\n // eslint-disable-next-line no-restricted-syntax, guard-for-in\n for (const prop in propSchema) {\n propSchema[prop] = {\n default: unassignedPropSymbol\n };\n }\n\n for (let i = 0; i < registeredHooks.length; i++) {\n propSchema[registeredHooks[i]] = {\n default: unassignedPropSymbol\n };\n }\n\n propSchema.settings = {\n default: unassignedPropSymbol\n };\n\n if (source === 'HotTable') {\n propSchema.id = {\n type: String,\n default: `hot-${Math.random().toString(36).substring(5)}`\n };\n }\n\n return propSchema;\n}\n\n/**\n * Filter out all of the unassigned props, and return only the one passed to the component.\n *\n * @param {object} props Object containing all the possible props.\n * @returns {object} Object containing only used props.\n */\nexport function filterPassedProps(props) {\n const filteredProps: VueProps<HotTableProps> = {};\n const columnSettingsProp = props.settings;\n\n if (columnSettingsProp !== unassignedPropSymbol) {\n // eslint-disable-next-line no-restricted-syntax\n for (const propName in columnSettingsProp) {\n if (hasOwnProperty(columnSettingsProp, propName) && columnSettingsProp[propName] !== unassignedPropSymbol) {\n filteredProps[propName] = columnSettingsProp[propName];\n }\n }\n }\n\n // eslint-disable-next-line no-restricted-syntax\n for (const propName in props) {\n if (hasOwnProperty(props, propName) && propName !== 'settings' && props[propName] !== unassignedPropSymbol) {\n filteredProps[propName] = props[propName];\n }\n }\n\n return filteredProps;\n}\n\n/**\n * Prepare the settings object to be used as the settings for Handsontable, based on the props provided to the component.\n *\n * @param {HotTableProps} props The props passed to the component.\n * @param {Handsontable.GridSettings} currentSettings The current Handsontable settings.\n * @returns {Handsontable.GridSettings} An object containing the properties, ready to be used within Handsontable.\n */\nexport function prepareSettings(props: HotTableProps, currentSettings?: Handsontable.GridSettings): HotTableProps {\n const assignedProps: VueProps<HotTableProps> = filterPassedProps(props);\n const hotSettingsInProps: Handsontable.GridSettings = props.settings ? props.settings : assignedProps;\n const additionalHotSettingsInProps: Handsontable.GridSettings = props.settings ? assignedProps : null;\n const newSettings: Handsontable.GridSettings = {};\n\n // eslint-disable-next-line no-restricted-syntax\n for (const key in hotSettingsInProps) {\n if (\n hasOwnProperty(hotSettingsInProps, key) &&\n hotSettingsInProps[key] !== void 0 &&\n ((currentSettings && key !== 'data') ? !simpleEqual(currentSettings[key], hotSettingsInProps[key]) : true)\n ) {\n newSettings[key] = hotSettingsInProps[key];\n }\n }\n\n // eslint-disable-next-line no-restricted-syntax\n for (const key in additionalHotSettingsInProps) {\n if (\n hasOwnProperty(additionalHotSettingsInProps, key) &&\n key !== 'id' &&\n key !== 'settings' &&\n additionalHotSettingsInProps[key] !== void 0 &&\n ((currentSettings && key !== 'data')\n ? !simpleEqual(currentSettings[key], additionalHotSettingsInProps[key]) : true)\n ) {\n newSettings[key] = additionalHotSettingsInProps[key];\n }\n }\n\n return newSettings;\n}\n\n/**\n * Compare two objects using `JSON.stringify`.\n * *Note: * As it's using the stringify function to compare objects, the property order in both objects is\n * important. It will return `false` for the same objects, if they're defined in a different order.\n *\n * @param {object} objectA First object to compare.\n * @param {object} objectB Second object to compare.\n * @returns {boolean} `true` if they're the same, `false` otherwise.\n */\nfunction simpleEqual(objectA, objectB) {\n const stringifyToJSON = (val) => {\n const circularReplacer = (function() {\n const seen = new WeakSet();\n\n return function(key, value) {\n if (typeof value === 'object' && value !== null) {\n if (seen.has(value)) {\n return;\n }\n\n seen.add(value);\n }\n\n return value;\n };\n }());\n\n return JSON.stringify(val, circularReplacer);\n };\n\n if (typeof objectA === 'function' && typeof objectB === 'function') {\n return objectA.toString() === objectB.toString();\n\n } else if (typeof objectA !== typeof objectB) {\n return false;\n\n } else {\n return stringifyToJSON(objectA) === stringifyToJSON(objectB);\n }\n}\n","<template>\n <div :id=\"id\">\n <slot></slot>\n </div>\n</template>\n\n<script lang=\"ts\">\n// eslint-disable-next-line @typescript-eslint/ban-ts-comment\n// @ts-ignore\nimport { defineComponent, VNode, markRaw } from 'vue';\n// TODO: The line above is ts-ignored because rollup-plugin-typescript2 throws an error otherwise.\n// It's most probably caused by outdated rollup-plugin-vue which is no longer maintained.\n\nimport Handsontable from 'handsontable/base';\nimport {\n HOT_DESTROYED_WARNING,\n prepareSettings,\n propFactory,\n} from './helpers';\nimport {\n HotTableProps,\n} from './types';\nimport * as packageJson from '../package.json';\n\nconst HotTable = defineComponent({\n name: 'HotTable',\n props: propFactory('HotTable'),\n provide() {\n return {\n columnsCache: this.columnsCache\n };\n },\n watch: {\n $props: {\n handler(props) {\n const settings = prepareSettings(props, this.hotInstance ? this.hotInstance.getSettings() : void 0);\n\n if (!this.hotInstance || settings === void 0) {\n return;\n }\n\n if (settings.data) {\n if (\n this.hotInstance.isColumnModificationAllowed() ||\n (\n !this.hotInstance.isColumnModificationAllowed() &&\n this.hotInstance.countSourceCols() === this.miscCache.currentSourceColumns\n )\n ) {\n // If the dataset dimensions change, update the index mappers.\n this.matchHotMappersSize();\n\n // Data is automatically synchronized by reference.\n delete settings.data;\n }\n }\n\n // If there are another options changed, update the HOT settings, render the table otherwise.\n if (Object.keys(settings).length) {\n this.hotInstance.updateSettings(settings);\n\n } else {\n this.hotInstance.render();\n }\n\n this.miscCache.currentSourceColumns = this.hotInstance.countSourceCols();\n },\n deep: true,\n immediate: true,\n },\n },\n data() {\n return {\n /* eslint-disable vue/no-reserved-keys */\n __hotInstance: null as Handsontable,\n /* eslint-enable vue/no-reserved-keys */\n miscCache: {\n currentSourceColumns: null,\n },\n columnSettings: null as HotTableProps[],\n columnsCache: new Map<VNode, HotTableProps>(),\n get hotInstance(): Handsontable | null {\n if (!this.__hotInstance || (this.__hotInstance && !this.__hotInstance.isDestroyed)) {\n\n // Will return the Handsontable instance or `null` if it's not yet been created.\n return this.__hotInstance;\n\n } else {\n /* eslint-disable-next-line no-console */\n console.warn(HOT_DESTROYED_WARNING);\n\n return null;\n }\n },\n set hotInstance(hotInstance: Handsontable) {\n this.__hotInstance = hotInstance;\n },\n };\n },\n methods: {\n /**\n * Initialize Handsontable.\n */\n hotInit() {\n const newSettings = prepareSettings(this.$props);\n\n newSettings.columns = this.columnSettings ? this.columnSettings : newSettings.columns;\n\n this.hotInstance = markRaw<Handsontable>(new Handsontable.Core(this.$el, newSettings));\n this.hotInstance.init();\n\n this.miscCache.currentSourceColumns = this.hotInstance.countSourceCols();\n },\n\n matchHotMappersSize(): void {\n if (!this.hotInstance) {\n return;\n }\n\n const data: Handsontable.CellValue[][] = this.hotInstance.getSourceData();\n const rowsToRemove: number[] = [];\n const columnsToRemove: number[] = [];\n const indexMapperRowCount = this.hotInstance.rowIndexMapper.getNumberOfIndexes();\n const isColumnModificationAllowed = this.hotInstance.isColumnModificationAllowed();\n let indexMapperColumnCount = 0;\n\n if (data && data.length !== indexMapperRowCount) {\n if (data.length < indexMapperRowCount) {\n for (let r = data.length; r < indexMapperRowCount; r++) {\n rowsToRemove.push(r);\n }\n }\n }\n\n if (isColumnModificationAllowed) {\n indexMapperColumnCount = this.hotInstance.columnIndexMapper.getNumberOfIndexes();\n\n if (data && data[0] && data[0]?.length !== indexMapperColumnCount) {\n if (data[0].length < indexMapperColumnCount) {\n for (let c = data[0].length; c < indexMapperColumnCount; c++) {\n columnsToRemove.push(c);\n }\n }\n }\n }\n\n this.hotInstance.batch(() => {\n if (rowsToRemove.length > 0) {\n this.hotInstance.rowIndexMapper.removeIndexes(rowsToRemove);\n\n } else {\n this.hotInstance.rowIndexMapper\n .insertIndexes(indexMapperRowCount - 1, data.length - indexMapperRowCount);\n }\n\n if (isColumnModificationAllowed && data.length !== 0) {\n if (columnsToRemove.length > 0) {\n this.hotInstance.columnIndexMapper.removeIndexes(columnsToRemove);\n\n } else {\n this.hotInstance.columnIndexMapper\n .insertIndexes(indexMapperColumnCount - 1, data[0].length - indexMapperColumnCount);\n }\n }\n });\n },\n\n /**\n * Get settings for the columns provided in the `hot-column` components.\n *\n * @returns {HotTableProps[] | undefined}\n */\n getColumnSettings(): HotTableProps[] | void {\n const columnSettings: HotTableProps[] = Array.from(this.columnsCache.values());\n\n return columnSettings.length ? columnSettings : void 0;\n },\n },\n mounted() {\n this.columnSettings = this.getColumnSettings();\n this.hotInit();\n },\n beforeUnmount() {\n if (this.hotInstance) {\n this.hotInstance.destroy();\n }\n },\n version: (packageJson as unknown as { version: string }).version,\n});\n\nexport default HotTable;\nexport { HotTable };\n</script>\n","<template>\n <div :id=\"id\">\n <slot></slot>\n </div>\n</template>\n\n<script lang=\"ts\">\n// eslint-disable-next-line @typescript-eslint/ban-ts-comment\n// @ts-ignore\nimport { defineComponent, VNode, markRaw } from 'vue';\n// TODO: The line above is ts-ignored because rollup-plugin-typescript2 throws an error otherwise.\n// It's most probably caused by outdated rollup-plugin-vue which is no longer maintained.\n\nimport Handsontable from 'handsontable/base';\nimport {\n HOT_DESTROYED_WARNING,\n prepareSettings,\n propFactory,\n} from './helpers';\nimport {\n HotTableProps,\n} from './types';\nimport * as packageJson from '../package.json';\n\nconst HotTable = defineComponent({\n name: 'HotTable',\n props: propFactory('HotTable'),\n provide() {\n return {\n columnsCache: this.columnsCache\n };\n },\n watch: {\n $props: {\n handler(props) {\n const settings = prepareSettings(props, this.hotInstance ? this.hotInstance.getSettings() : void 0);\n\n if (!this.hotInstance || settings === void 0) {\n return;\n }\n\n if (settings.data) {\n if (\n this.hotInstance.isColumnModificationAllowed() ||\n (\n !this.hotInstance.isColumnModificationAllowed() &&\n this.hotInstance.countSourceCols() === this.miscCache.currentSourceColumns\n )\n ) {\n // If the dataset dimensions change, update the index mappers.\n this.matchHotMappersSize();\n\n // Data is automatically synchronized by reference.\n delete settings.data;\n }\n }\n\n // If there are another options changed, update the HOT settings, render the table otherwise.\n if (Object.keys(settings).length) {\n this.hotInstance.updateSettings(settings);\n\n } else {\n this.hotInstance.render();\n }\n\n this.miscCache.currentSourceColumns = this.hotInstance.countSourceCols();\n },\n deep: true,\n immediate: true,\n },\n },\n data() {\n return {\n /* eslint-disable vue/no-reserved-keys */\n __hotInstance: null as Handsontable,\n /* eslint-enable vue/no-reserved-keys */\n miscCache: {\n currentSourceColumns: null,\n },\n columnSettings: null as HotTableProps[],\n columnsCache: new Map<VNode, HotTableProps>(),\n get hotInstance(): Handsontable | null {\n if (!this.__hotInstance || (this.__hotInstance && !this.__hotInstance.isDestroyed)) {\n\n // Will return the Handsontable instance or `null` if it's not yet been created.\n return this.__hotInstance;\n\n } else {\n /* eslint-disable-next-line no-console */\n console.warn(HOT_DESTROYED_WARNING);\n\n return null;\n }\n },\n set hotInstance(hotInstance: Handsontable) {\n this.__hotInstance = hotInstance;\n },\n };\n },\n methods: {\n /**\n * Initialize Handsontable.\n */\n hotInit() {\n const newSettings = prepareSettings(this.$props);\n\n newSettings.columns = this.columnSettings ? this.columnSettings : newSettings.columns;\n\n this.hotInstance = markRaw<Handsontable>(new Handsontable.Core(this.$el, newSettings));\n this.hotInstance.init();\n\n this.miscCache.currentSourceColumns = this.hotInstance.countSourceCols();\n },\n\n matchHotMappersSize(): void {\n if (!this.hotInstance) {\n return;\n }\n\n const data: Handsontable.CellValue[][] = this.hotInstance.getSourceData();\n const rowsToRemove: number[] = [];\n const columnsToRemove: number[] = [];\n const indexMapperRowCount = this.hotInstance.rowIndexMapper.getNumberOfIndexes();\n const isColumnModificationAllowed = this.hotInstance.isColumnModificationAllowed();\n let indexMapperColumnCount = 0;\n\n if (data && data.length !== indexMapperRowCount) {\n if (data.length < indexMapperRowCount) {\n for (let r = data.length; r < indexMapperRowCount; r++) {\n rowsToRemove.push(r);\n }\n }\n }\n\n if (isColumnModificationAllowed) {\n indexMapperColumnCount = this.hotInstance.columnIndexMapper.getNumberOfIndexes();\n\n if (data && data[0] && data[0]?.length !== indexMapperColumnCount) {\n if (data[0].length < indexMapperColumnCount) {\n for (let c = data[0].length; c < indexMapperColumnCount; c++) {\n columnsToRemove.push(c);\n }\n }\n }\n }\n\n this.hotInstance.batch(() => {\n if (rowsToRemove.length > 0) {\n this.hotInstance.rowIndexMapper.removeIndexes(rowsToRemove);\n\n } else {\n this.hotInstance.rowIndexMapper\n .insertIndexes(indexMapperRowCount - 1, data.length - indexMapperRowCount);\n }\n\n if (isColumnModificationAllowed && data.length !== 0) {\n if (columnsToRemove.length > 0) {\n this.hotInstance.columnIndexMapper.removeIndexes(columnsToRemove);\n\n } else {\n this.hotInstance.columnIndexMapper\n .insertIndexes(indexMapperColumnCount - 1, data[0].length - indexMapperColumnCount);\n }\n }\n });\n },\n\n /**\n * Get settings for the columns provided in the `hot-column` components.\n *\n * @returns {HotTableProps[] | undefined}\n */\n getColumnSettings(): HotTableProps[] | void {\n const columnSettings: HotTableProps[] = Array.from(this.columnsCache.values());\n\n return columnSettings.length ? columnSettings : void 0;\n },\n },\n mounted() {\n this.columnSettings = this.getColumnSettings();\n this.hotInit();\n },\n beforeUnmount() {\n if (this.hotInstance) {\n this.hotInstance.destroy();\n }\n },\n version: (packageJson as unknown as { version: string }).version,\n});\n\nexport default HotTable;\nexport { HotTable };\n</script>\n","<script lang=\"ts\">\n// eslint-disable-next-line @typescript-eslint/ban-ts-comment\n// @ts-ignore\nimport { defineComponent } from 'vue';\n// TODO: The line above is ts-ignored because rollup-plugin-typescript2 throws an error otherwise.\n// It's most probably caused by outdated rollup-plugin-vue which is no longer maintained.\n\nimport {\n propFactory,\n filterPassedProps\n} from './helpers';\n\nconst HotColumn = defineComponent({\n name: 'HotColumn',\n props: propFactory('HotColumn'),\n inject: ['columnsCache'],\n methods: {\n /**\n * Create the column settings based on the data provided to the `hot-column`\n * component and it's child components.\n */\n createColumnSettings(): void {\n const assignedProps = filterPassedProps(this.$props);\n const columnSettings = { ...assignedProps };\n\n if (assignedProps.renderer) {\n columnSettings.renderer = assignedProps.renderer;\n }\n\n if (assignedProps.editor) {\n columnSettings.editor = assignedProps.editor;\n }\n\n this.columnsCache.set(this, columnSettings);\n }\n },\n mounted() {\n this.createColumnSettings();\n },\n unmounted() {\n this.columnsCache.delete(this);\n },\n render() {\n return null;\n }\n});\n\nexport default HotColumn;\nexport { HotColumn };\n</script>\n"],"names":["unassignedPropSymbol","Symbol","HOT_DESTROYED_WARNING","hasOwnProperty","object","key","Object","prototype","call","propFactory","source","registeredHooks","Handsontable","hooks","getRegistered","propSchema","assign","DefaultSettings","prop","i","length","settings","id","type","String","concat","Math","random","toString","substring","filterPassedProps","props","filteredProps","columnSettingsProp","propName","prepareSettings","currentSettings","assignedProps","hotSettingsInProps","additionalHotSettingsInProps","newSettings","simpleEqual","objectA","objectB","stringifyToJSON","val","circularReplacer","seen","WeakSet","value","_typeof","has","add","JSON","stringify","HotTable","defineComponent","name","provide","columnsCache","watch","$props","handler","hotInstance","getSettings","data","isColumnModificationAllowed","countSourceCols","miscCache","currentSourceColumns","matchHotMappersSize","keys","updateSettings","render","deep","immediate","__hotInstance","columnSettings","Map","isDestroyed","console","warn","methods","hotInit","columns","markRaw","Core","$el","init","_this","getSourceData","rowsToRemove","columnsToRemove","indexMapperRowCount","rowIndexMapper","getNumberOfIndexes","indexMapperColumnCount","r","push","_data$","columnIndexMapper","c","batch","removeIndexes","insertIndexes","getColumnSettings","Array","from","values","mounted","beforeUnmount","destroy","version","packageJson","_createElementBlock","_ctx","_renderSlot","$slots","HotColumn","inject","createColumnSettings","_objectSpread","renderer","editor","set","unmounted"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"vue-handsontable.js","sources":["../src/helpers.ts","../src/HotTable.vue","../src/HotTable.vue?vue&type=template&id=54bcc3fa&lang.js","../src/HotColumn.vue"],"sourcesContent":["import Handsontable from 'handsontable/base';\nimport { HotTableProps, VueProps } from './types';\n\nconst unassignedPropSymbol = Symbol('unassigned');\n\n/**\n * Message for the warning thrown if the Handsontable instance has been destroyed.\n */\nexport const HOT_DESTROYED_WARNING = 'The Handsontable instance bound to this component was destroyed and cannot be' +\n ' used properly.';\n\n/**\n * Check if at specified `key` there is any value for `object`.\n *\n * @param {object} object Object to search value at specyfic key.\n * @param {string} key String key to check.\n * @returns {boolean}\n */\nexport function hasOwnProperty(object: unknown, key: string): boolean {\n return Object.prototype.hasOwnProperty.call(object, key);\n}\n\n/**\n * Generate an object containing all the available Handsontable properties and plugin hooks.\n *\n * @param {string} source Source for the factory (either 'HotTable' or 'HotColumn').\n * @returns {object}\n */\nexport function propFactory(source: 'HotTable' | 'HotColumn'): VueProps<HotTableProps> {\n const registeredHooks = Handsontable.hooks.getRegistered();\n const propSchema: VueProps<HotTableProps> = {};\n\n Object.assign(propSchema, Handsontable.DefaultSettings);\n\n // eslint-disable-next-line no-restricted-syntax, guard-for-in\n for (const prop in propSchema) {\n propSchema[prop] = {\n default: unassignedPropSymbol\n };\n }\n\n for (let i = 0; i < registeredHooks.length; i++) {\n propSchema[registeredHooks[i]] = {\n default: unassignedPropSymbol\n };\n }\n\n propSchema.settings = {\n default: unassignedPropSymbol\n };\n\n if (source === 'HotTable') {\n propSchema.id = {\n type: String,\n default: `hot-${Math.random().toString(36).substring(5)}`\n };\n }\n\n return propSchema;\n}\n\n/**\n * Filter out all of the unassigned props, and return only the one passed to the component.\n *\n * @param {object} props Object containing all the possible props.\n * @returns {object} Object containing only used props.\n */\nexport function filterPassedProps(props) {\n const filteredProps: VueProps<HotTableProps> = {};\n const columnSettingsProp = props.settings;\n\n if (columnSettingsProp !== unassignedPropSymbol) {\n // eslint-disable-next-line no-restricted-syntax\n for (const propName in columnSettingsProp) {\n if (hasOwnProperty(columnSettingsProp, propName) && columnSettingsProp[propName] !== unassignedPropSymbol) {\n filteredProps[propName] = columnSettingsProp[propName];\n }\n }\n }\n\n // eslint-disable-next-line no-restricted-syntax\n for (const propName in props) {\n if (hasOwnProperty(props, propName) && propName !== 'settings' && props[propName] !== unassignedPropSymbol) {\n filteredProps[propName] = props[propName];\n }\n }\n\n return filteredProps;\n}\n\n/**\n * Prepare the settings object to be used as the settings for Handsontable, based on the props provided to the component.\n *\n * @param {HotTableProps} props The props passed to the component.\n * @param {Handsontable.GridSettings} currentSettings The current Handsontable settings.\n * @returns {Handsontable.GridSettings} An object containing the properties, ready to be used within Handsontable.\n */\nexport function prepareSettings(props: HotTableProps, currentSettings?: Handsontable.GridSettings): HotTableProps {\n const assignedProps: VueProps<HotTableProps> = filterPassedProps(props);\n const hotSettingsInProps: Handsontable.GridSettings = props.settings ? props.settings : assignedProps;\n const additionalHotSettingsInProps: Handsontable.GridSettings = props.settings ? assignedProps : null;\n const initOnlySettingKeys: string[] =\n (currentSettings as any)?._initOnlySettings || [];\n const newSettings: Handsontable.GridSettings = {};\n\n // eslint-disable-next-line no-restricted-syntax\n for (const key in hotSettingsInProps) {\n if (\n hasOwnProperty(hotSettingsInProps, key) &&\n hotSettingsInProps[key] !== void 0 &&\n !initOnlySettingKeys.includes(key) &&\n ((currentSettings && key !== 'data') ? !simpleEqual(currentSettings[key], hotSettingsInProps[key]) : true)\n ) {\n newSettings[key] = hotSettingsInProps[key];\n }\n }\n\n // eslint-disable-next-line no-restricted-syntax\n for (const key in additionalHotSettingsInProps) {\n if (\n hasOwnProperty(additionalHotSettingsInProps, key) &&\n key !== 'id' &&\n key !== 'settings' &&\n additionalHotSettingsInProps[key] !== void 0 &&\n !initOnlySettingKeys.includes(key) &&\n ((currentSettings && key !== 'data')\n ? !simpleEqual(currentSettings[key], additionalHotSettingsInProps[key]) : true)\n ) {\n newSettings[key] = additionalHotSettingsInProps[key];\n }\n }\n\n return newSettings;\n}\n\n/**\n * Compare two objects using `JSON.stringify`.\n * *Note: * As it's using the stringify function to compare objects, the property order in both objects is\n * important. It will return `false` for the same objects, if they're defined in a different order.\n *\n * @param {object} objectA First object to compare.\n * @param {object} objectB Second object to compare.\n * @returns {boolean} `true` if they're the same, `false` otherwise.\n */\nfunction simpleEqual(objectA, objectB) {\n const stringifyToJSON = (val) => {\n const circularReplacer = (function() {\n const seen = new WeakSet();\n\n return function(key, value) {\n if (typeof value === 'object' && value !== null) {\n if (seen.has(value)) {\n return;\n }\n\n seen.add(value);\n }\n\n return value;\n };\n }());\n\n return JSON.stringify(val, circularReplacer);\n };\n\n if (typeof objectA === 'function' && typeof objectB === 'function') {\n return objectA.toString() === objectB.toString();\n\n } else if (typeof objectA !== typeof objectB) {\n return false;\n\n } else {\n return stringifyToJSON(objectA) === stringifyToJSON(objectB);\n }\n}\n","<template>\n <div :id=\"id\">\n <slot></slot>\n </div>\n</template>\n\n<script lang=\"ts\">\n// eslint-disable-next-line @typescript-eslint/ban-ts-comment\n// @ts-ignore\nimport { defineComponent, VNode, markRaw } from 'vue';\n// TODO: The line above is ts-ignored because rollup-plugin-typescript2 throws an error otherwise.\n// It's most probably caused by outdated rollup-plugin-vue which is no longer maintained.\n\nimport Handsontable from 'handsontable/base';\nimport {\n HOT_DESTROYED_WARNING,\n prepareSettings,\n propFactory,\n} from './helpers';\nimport {\n HotTableProps,\n} from './types';\nimport * as packageJson from '../package.json';\n\nconst HotTable = defineComponent({\n name: 'HotTable',\n props: propFactory('HotTable'),\n provide() {\n return {\n columnsCache: this.columnsCache\n };\n },\n watch: {\n $props: {\n handler(props) {\n const settings = prepareSettings(props, this.hotInstance ? this.hotInstance.getSettings() : void 0);\n\n if (!this.hotInstance || settings === void 0) {\n return;\n }\n\n if (settings.data) {\n if (\n this.hotInstance.isColumnModificationAllowed() ||\n (\n !this.hotInstance.isColumnModificationAllowed() &&\n this.hotInstance.countSourceCols() === this.miscCache.currentSourceColumns\n )\n ) {\n // If the dataset dimensions change, update the index mappers.\n this.matchHotMappersSize();\n\n // Data is automatically synchronized by reference.\n delete settings.data;\n }\n }\n\n // If there are another options changed, update the HOT settings, render the table otherwise.\n if (Object.keys(settings).length) {\n this.hotInstance.updateSettings(settings);\n\n } else {\n this.hotInstance.render();\n }\n\n this.miscCache.currentSourceColumns = this.hotInstance.countSourceCols();\n },\n deep: true,\n immediate: true,\n },\n },\n data() {\n return {\n /* eslint-disable vue/no-reserved-keys */\n __hotInstance: null as Handsontable,\n /* eslint-enable vue/no-reserved-keys */\n miscCache: {\n currentSourceColumns: null,\n },\n columnSettings: null as HotTableProps[],\n columnsCache: new Map<VNode, HotTableProps>(),\n get hotInstance(): Handsontable | null {\n if (!this.__hotInstance || (this.__hotInstance && !this.__hotInstance.isDestroyed)) {\n\n // Will return the Handsontable instance or `null` if it's not yet been created.\n return this.__hotInstance;\n\n } else {\n /* eslint-disable-next-line no-console */\n console.warn(HOT_DESTROYED_WARNING);\n\n return null;\n }\n },\n set hotInstance(hotInstance: Handsontable) {\n this.__hotInstance = hotInstance;\n },\n };\n },\n methods: {\n /**\n * Initialize Handsontable.\n */\n hotInit() {\n const newSettings = prepareSettings(this.$props);\n\n newSettings.columns = this.columnSettings ? this.columnSettings : newSettings.columns;\n\n this.hotInstance = markRaw<Handsontable>(new Handsontable.Core(this.$el, newSettings));\n this.hotInstance.init();\n\n this.miscCache.currentSourceColumns = this.hotInstance.countSourceCols();\n },\n\n matchHotMappersSize(): void {\n if (!this.hotInstance) {\n return;\n }\n\n const data: Handsontable.CellValue[][] = this.hotInstance.getSourceData();\n const rowsToRemove: number[] = [];\n const columnsToRemove: number[] = [];\n const indexMapperRowCount = this.hotInstance.rowIndexMapper.getNumberOfIndexes();\n const isColumnModificationAllowed = this.hotInstance.isColumnModificationAllowed();\n let indexMapperColumnCount = 0;\n\n if (data && data.length !== indexMapperRowCount) {\n if (data.length < indexMapperRowCount) {\n for (let r = data.length; r < indexMapperRowCount; r++) {\n rowsToRemove.push(r);\n }\n }\n }\n\n if (isColumnModificationAllowed) {\n indexMapperColumnCount = this.hotInstance.columnIndexMapper.getNumberOfIndexes();\n\n if (data && data[0] && data[0]?.length !== indexMapperColumnCount) {\n if (data[0].length < indexMapperColumnCount) {\n for (let c = data[0].length; c < indexMapperColumnCount; c++) {\n columnsToRemove.push(c);\n }\n }\n }\n }\n\n this.hotInstance.batch(() => {\n if (rowsToRemove.length > 0) {\n this.hotInstance.rowIndexMapper.removeIndexes(rowsToRemove);\n\n } else {\n this.hotInstance.rowIndexMapper\n .insertIndexes(indexMapperRowCount - 1, data.length - indexMapperRowCount);\n }\n\n if (isColumnModificationAllowed && data.length !== 0) {\n if (columnsToRemove.length > 0) {\n this.hotInstance.columnIndexMapper.removeIndexes(columnsToRemove);\n\n } else {\n this.hotInstance.columnIndexMapper\n .insertIndexes(indexMapperColumnCount - 1, data[0].length - indexMapperColumnCount);\n }\n }\n });\n },\n\n /**\n * Get settings for the columns provided in the `hot-column` components.\n *\n * @returns {HotTableProps[] | undefined}\n */\n getColumnSettings(): HotTableProps[] | void {\n const columnSettings: HotTableProps[] = Array.from(this.columnsCache.values());\n\n return columnSettings.length ? columnSettings : void 0;\n },\n },\n mounted() {\n this.columnSettings = this.getColumnSettings();\n this.hotInit();\n },\n beforeUnmount() {\n if (this.hotInstance) {\n this.hotInstance.destroy();\n }\n },\n version: (packageJson as unknown as { version: string }).version,\n});\n\nexport default HotTable;\nexport { HotTable };\n</script>\n","<template>\n <div :id=\"id\">\n <slot></slot>\n </div>\n</template>\n\n<script lang=\"ts\">\n// eslint-disable-next-line @typescript-eslint/ban-ts-comment\n// @ts-ignore\nimport { defineComponent, VNode, markRaw } from 'vue';\n// TODO: The line above is ts-ignored because rollup-plugin-typescript2 throws an error otherwise.\n// It's most probably caused by outdated rollup-plugin-vue which is no longer maintained.\n\nimport Handsontable from 'handsontable/base';\nimport {\n HOT_DESTROYED_WARNING,\n prepareSettings,\n propFactory,\n} from './helpers';\nimport {\n HotTableProps,\n} from './types';\nimport * as packageJson from '../package.json';\n\nconst HotTable = defineComponent({\n name: 'HotTable',\n props: propFactory('HotTable'),\n provide() {\n return {\n columnsCache: this.columnsCache\n };\n },\n watch: {\n $props: {\n handler(props) {\n const settings = prepareSettings(props, this.hotInstance ? this.hotInstance.getSettings() : void 0);\n\n if (!this.hotInstance || settings === void 0) {\n return;\n }\n\n if (settings.data) {\n if (\n this.hotInstance.isColumnModificationAllowed() ||\n (\n !this.hotInstance.isColumnModificationAllowed() &&\n this.hotInstance.countSourceCols() === this.miscCache.currentSourceColumns\n )\n ) {\n // If the dataset dimensions change, update the index mappers.\n this.matchHotMappersSize();\n\n // Data is automatically synchronized by reference.\n delete settings.data;\n }\n }\n\n // If there are another options changed, update the HOT settings, render the table otherwise.\n if (Object.keys(settings).length) {\n this.hotInstance.updateSettings(settings);\n\n } else {\n this.hotInstance.render();\n }\n\n this.miscCache.currentSourceColumns = this.hotInstance.countSourceCols();\n },\n deep: true,\n immediate: true,\n },\n },\n data() {\n return {\n /* eslint-disable vue/no-reserved-keys */\n __hotInstance: null as Handsontable,\n /* eslint-enable vue/no-reserved-keys */\n miscCache: {\n currentSourceColumns: null,\n },\n columnSettings: null as HotTableProps[],\n columnsCache: new Map<VNode, HotTableProps>(),\n get hotInstance(): Handsontable | null {\n if (!this.__hotInstance || (this.__hotInstance && !this.__hotInstance.isDestroyed)) {\n\n // Will return the Handsontable instance or `null` if it's not yet been created.\n return this.__hotInstance;\n\n } else {\n /* eslint-disable-next-line no-console */\n console.warn(HOT_DESTROYED_WARNING);\n\n return null;\n }\n },\n set hotInstance(hotInstance: Handsontable) {\n this.__hotInstance = hotInstance;\n },\n };\n },\n methods: {\n /**\n * Initialize Handsontable.\n */\n hotInit() {\n const newSettings = prepareSettings(this.$props);\n\n newSettings.columns = this.columnSettings ? this.columnSettings : newSettings.columns;\n\n this.hotInstance = markRaw<Handsontable>(new Handsontable.Core(this.$el, newSettings));\n this.hotInstance.init();\n\n this.miscCache.currentSourceColumns = this.hotInstance.countSourceCols();\n },\n\n matchHotMappersSize(): void {\n if (!this.hotInstance) {\n return;\n }\n\n const data: Handsontable.CellValue[][] = this.hotInstance.getSourceData();\n const rowsToRemove: number[] = [];\n const columnsToRemove: number[] = [];\n const indexMapperRowCount = this.hotInstance.rowIndexMapper.getNumberOfIndexes();\n const isColumnModificationAllowed = this.hotInstance.isColumnModificationAllowed();\n let indexMapperColumnCount = 0;\n\n if (data && data.length !== indexMapperRowCount) {\n if (data.length < indexMapperRowCount) {\n for (let r = data.length; r < indexMapperRowCount; r++) {\n rowsToRemove.push(r);\n }\n }\n }\n\n if (isColumnModificationAllowed) {\n indexMapperColumnCount = this.hotInstance.columnIndexMapper.getNumberOfIndexes();\n\n if (data && data[0] && data[0]?.length !== indexMapperColumnCount) {\n if (data[0].length < indexMapperColumnCount) {\n for (let c = data[0].length; c < indexMapperColumnCount; c++) {\n columnsToRemove.push(c);\n }\n }\n }\n }\n\n this.hotInstance.batch(() => {\n if (rowsToRemove.length > 0) {\n this.hotInstance.rowIndexMapper.removeIndexes(rowsToRemove);\n\n } else {\n this.hotInstance.rowIndexMapper\n .insertIndexes(indexMapperRowCount - 1, data.length - indexMapperRowCount);\n }\n\n if (isColumnModificationAllowed && data.length !== 0) {\n if (columnsToRemove.length > 0) {\n this.hotInstance.columnIndexMapper.removeIndexes(columnsToRemove);\n\n } else {\n this.hotInstance.columnIndexMapper\n .insertIndexes(indexMapperColumnCount - 1, data[0].length - indexMapperColumnCount);\n }\n }\n });\n },\n\n /**\n * Get settings for the columns provided in the `hot-column` components.\n *\n * @returns {HotTableProps[] | undefined}\n */\n getColumnSettings(): HotTableProps[] | void {\n const columnSettings: HotTableProps[] = Array.from(this.columnsCache.values());\n\n return columnSettings.length ? columnSettings : void 0;\n },\n },\n mounted() {\n this.columnSettings = this.getColumnSettings();\n this.hotInit();\n },\n beforeUnmount() {\n if (this.hotInstance) {\n this.hotInstance.destroy();\n }\n },\n version: (packageJson as unknown as { version: string }).version,\n});\n\nexport default HotTable;\nexport { HotTable };\n</script>\n","<script lang=\"ts\">\n// eslint-disable-next-line @typescript-eslint/ban-ts-comment\n// @ts-ignore\nimport { defineComponent } from 'vue';\n// TODO: The line above is ts-ignored because rollup-plugin-typescript2 throws an error otherwise.\n// It's most probably caused by outdated rollup-plugin-vue which is no longer maintained.\n\nimport {\n propFactory,\n filterPassedProps\n} from './helpers';\n\nconst HotColumn = defineComponent({\n name: 'HotColumn',\n props: propFactory('HotColumn'),\n inject: ['columnsCache'],\n methods: {\n /**\n * Create the column settings based on the data provided to the `hot-column`\n * component and it's child components.\n */\n createColumnSettings(): void {\n const assignedProps = filterPassedProps(this.$props);\n const columnSettings = { ...assignedProps };\n\n if (assignedProps.renderer) {\n columnSettings.renderer = assignedProps.renderer;\n }\n\n if (assignedProps.editor) {\n columnSettings.editor = assignedProps.editor;\n }\n\n this.columnsCache.set(this, columnSettings);\n }\n },\n mounted() {\n this.createColumnSettings();\n },\n unmounted() {\n this.columnsCache.delete(this);\n },\n render() {\n return null;\n }\n});\n\nexport default HotColumn;\nexport { HotColumn };\n</script>\n"],"names":["unassignedPropSymbol","Symbol","HOT_DESTROYED_WARNING","hasOwnProperty","object","key","Object","prototype","call","propFactory","source","registeredHooks","Handsontable","hooks","getRegistered","propSchema","assign","DefaultSettings","prop","i","length","settings","id","type","String","concat","Math","random","toString","substring","filterPassedProps","props","filteredProps","columnSettingsProp","propName","prepareSettings","currentSettings","assignedProps","hotSettingsInProps","additionalHotSettingsInProps","initOnlySettingKeys","_initOnlySettings","newSettings","includes","simpleEqual","objectA","objectB","stringifyToJSON","val","circularReplacer","seen","WeakSet","value","_typeof","has","add","JSON","stringify","HotTable","defineComponent","name","provide","columnsCache","watch","$props","handler","hotInstance","getSettings","data","isColumnModificationAllowed","countSourceCols","miscCache","currentSourceColumns","matchHotMappersSize","keys","updateSettings","render","deep","immediate","__hotInstance","columnSettings","Map","isDestroyed","console","warn","methods","hotInit","columns","markRaw","Core","$el","init","_this","getSourceData","rowsToRemove","columnsToRemove","indexMapperRowCount","rowIndexMapper","getNumberOfIndexes","indexMapperColumnCount","r","push","_data$","columnIndexMapper","c","batch","removeIndexes","insertIndexes","getColumnSettings","Array","from","values","mounted","beforeUnmount","destroy","version","packageJson","_createElementBlock","_ctx","_renderSlot","$slots","HotColumn","inject","createColumnSettings","_objectSpread","renderer","editor","set","unmounted"],"mappings":"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"}
|
|
@@ -25,7 +25,7 @@
|
|
|
25
25
|
* INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES OF ANY CHARACTER ARISING FROM
|
|
26
26
|
* USE OR INABILITY TO USE THIS SOFTWARE.
|
|
27
27
|
*
|
|
28
|
-
* Version: 17.0
|
|
28
|
+
* Version: 17.1.0-rc3 (built at Mon Apr 27 2026 07:50:47 GMT+0000 (Coordinated Universal Time))
|
|
29
29
|
*/
|
|
30
|
-
!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports,require("vue"),require("handsontable/base")):"function"==typeof define&&define.amd?define(["exports","vue","handsontable/base"],e):e(((t="undefined"!=typeof globalThis?globalThis:t||self).Handsontable=t.Handsontable||{},t.Handsontable.vue={}),t.Vue,t.Handsontable)}(this,function(t,e,n){"use strict";function o(t){return t&&"object"==typeof t&&"default"in t?t:{default:t}}var r=o(n);function i(t,e,n){return(e=function(t){var e=function(t,e){if("object"!=typeof t||!t)return t;var n=t[Symbol.toPrimitive];if(void 0!==n){var o=n.call(t,e);if("object"!=typeof o)return o;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===e?String:Number)(t)}(t,"string");return"symbol"==typeof e?e:e+""}(e))in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}function s(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(t);e&&(o=o.filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable})),n.push.apply(n,o)}return n}function a(t){return a="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},a(t)}var c=Symbol("unassigned");function u(t,e){return Object.prototype.hasOwnProperty.call(t,e)}function l(t){var e=r.default.hooks.getRegistered(),n={};for(var o in Object.assign(n,r.default.DefaultSettings),n)n[o]={default:c};for(var i=0;e.length>i;i++)n[e[i]]={default:c};return n.settings={default:c},"HotTable"===t&&(n.id={type:String,default:"hot-".concat(Math.random().toString(36).substring(5))}),n}function h(t){var e={},n=t.settings;if(n!==c)for(var o in n)u(n,o)&&n[o]!==c&&(e[o]=n[o]);for(var r in t)u(t,r)&&"settings"!==r&&t[r]!==c&&(e[r]=t[r]);return e}function f(t,e){var n=h(t),o=t.settings?t.settings:n,r=t.settings?n:null,i={};for(var
|
|
30
|
+
!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports,require("vue"),require("handsontable/base")):"function"==typeof define&&define.amd?define(["exports","vue","handsontable/base"],e):e(((t="undefined"!=typeof globalThis?globalThis:t||self).Handsontable=t.Handsontable||{},t.Handsontable.vue={}),t.Vue,t.Handsontable)}(this,function(t,e,n){"use strict";function o(t){return t&&"object"==typeof t&&"default"in t?t:{default:t}}var r=o(n);function i(t,e,n){return(e=function(t){var e=function(t,e){if("object"!=typeof t||!t)return t;var n=t[Symbol.toPrimitive];if(void 0!==n){var o=n.call(t,e);if("object"!=typeof o)return o;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===e?String:Number)(t)}(t,"string");return"symbol"==typeof e?e:e+""}(e))in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}function s(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(t);e&&(o=o.filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable})),n.push.apply(n,o)}return n}function a(t){return a="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},a(t)}var c=Symbol("unassigned");function u(t,e){return Object.prototype.hasOwnProperty.call(t,e)}function l(t){var e=r.default.hooks.getRegistered(),n={};for(var o in Object.assign(n,r.default.DefaultSettings),n)n[o]={default:c};for(var i=0;e.length>i;i++)n[e[i]]={default:c};return n.settings={default:c},"HotTable"===t&&(n.id={type:String,default:"hot-".concat(Math.random().toString(36).substring(5))}),n}function h(t){var e={},n=t.settings;if(n!==c)for(var o in n)u(n,o)&&n[o]!==c&&(e[o]=n[o]);for(var r in t)u(t,r)&&"settings"!==r&&t[r]!==c&&(e[r]=t[r]);return e}function f(t,e){var n=h(t),o=t.settings?t.settings:n,r=t.settings?n:null,i=(null==e?void 0:e._initOnlySettings)||[],s={};for(var a in o)!u(o,a)||void 0===o[a]||i.includes(a)||e&&"data"!==a&&d(e[a],o[a])||(s[a]=o[a]);for(var c in r)!u(r,c)||"id"===c||"settings"===c||void 0===r[c]||i.includes(c)||e&&"data"!==c&&d(e[c],r[c])||(s[c]=r[c]);return s}function d(t,e){var n=function(t){var e,n=(e=new WeakSet,function(t,n){if("object"===a(n)&&null!==n){if(e.has(n))return;e.add(n)}return n});return JSON.stringify(t,n)};return"function"==typeof t&&"function"==typeof e?""+t==""+e:a(t)===a(e)&&n(t)===n(e)}var p=e.defineComponent({name:"HotTable",props:l("HotTable"),provide:function(){return{columnsCache:this.columnsCache}},watch:{$props:{handler:function(t){var e=f(t,this.hotInstance?this.hotInstance.getSettings():void 0);this.hotInstance&&void 0!==e&&(e.data&&(this.hotInstance.isColumnModificationAllowed()||!this.hotInstance.isColumnModificationAllowed()&&this.hotInstance.countSourceCols()===this.miscCache.currentSourceColumns)&&(this.matchHotMappersSize(),delete e.data),Object.keys(e).length?this.hotInstance.updateSettings(e):this.hotInstance.render(),this.miscCache.currentSourceColumns=this.hotInstance.countSourceCols())},deep:!0,immediate:!0}},data:function(){return{__hotInstance:null,miscCache:{currentSourceColumns:null},columnSettings:null,columnsCache:new Map,get hotInstance(){return!this.__hotInstance||this.__hotInstance&&!this.__hotInstance.isDestroyed?this.__hotInstance:(console.warn("The Handsontable instance bound to this component was destroyed and cannot be used properly."),null)},set hotInstance(t){this.__hotInstance=t}}},methods:{hotInit:function(){var t=f(this.$props);t.columns=this.columnSettings?this.columnSettings:t.columns,this.hotInstance=e.markRaw(new r.default.Core(this.$el,t)),this.hotInstance.init(),this.miscCache.currentSourceColumns=this.hotInstance.countSourceCols()},matchHotMappersSize:function(){var t=this;if(this.hotInstance){var e,n=this.hotInstance.getSourceData(),o=[],r=[],i=this.hotInstance.rowIndexMapper.getNumberOfIndexes(),s=this.hotInstance.isColumnModificationAllowed(),a=0;if(n&&n.length!==i&&i>n.length)for(var c=n.length;i>c;c++)o.push(c);if(s)if(a=this.hotInstance.columnIndexMapper.getNumberOfIndexes(),n&&n[0]&&(null===(e=n[0])||void 0===e?void 0:e.length)!==a&&a>n[0].length)for(var u=n[0].length;a>u;u++)r.push(u);this.hotInstance.batch(function(){o.length>0?t.hotInstance.rowIndexMapper.removeIndexes(o):t.hotInstance.rowIndexMapper.insertIndexes(i-1,n.length-i),s&&0!==n.length&&(r.length>0?t.hotInstance.columnIndexMapper.removeIndexes(r):t.hotInstance.columnIndexMapper.insertIndexes(a-1,n[0].length-a))})}},getColumnSettings:function(){var t=Array.from(this.columnsCache.values());return t.length?t:void 0}},mounted:function(){this.columnSettings=this.getColumnSettings(),this.hotInit()},beforeUnmount:function(){this.hotInstance&&this.hotInstance.destroy()},version:"17.1.0-rc3"}),m=["id"];p.render=function(t,n,o,r,i,s){return e.openBlock(),e.createElementBlock("div",{id:t.id},[e.renderSlot(t.$slots,"default")],8,m)},p.__file="src/HotTable.vue";var b=e.defineComponent({name:"HotColumn",props:l("HotColumn"),inject:["columnsCache"],methods:{createColumnSettings:function(){var t=h(this.$props),e=function(t){for(var e=1;arguments.length>e;e++){var n=null!=arguments[e]?arguments[e]:{};e%2?s(Object(n),!0).forEach(function(e){i(t,e,n[e])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):s(Object(n)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(n,e))})}return t}({},t);t.renderer&&(e.renderer=t.renderer),t.editor&&(e.editor=t.editor),this.columnsCache.set(this,e)}},mounted:function(){this.createColumnSettings()},unmounted:function(){this.columnsCache.delete(this)},render:function(){return null}});b.__file="src/HotColumn.vue",t.HotColumn=b,t.HotTable=p,t.default=p,Object.defineProperty(t,"__esModule",{value:!0})});
|
|
31
31
|
//# sourceMappingURL=vue-handsontable.min.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"vue-handsontable.min.js","sources":["../src/helpers.ts","../src/HotTable.vue","../src/HotTable.vue?vue&type=template&id=54bcc3fa&lang.js","../src/HotColumn.vue"],"sourcesContent":["import Handsontable from 'handsontable/base';\nimport { HotTableProps, VueProps } from './types';\n\nconst unassignedPropSymbol = Symbol('unassigned');\n\n/**\n * Message for the warning thrown if the Handsontable instance has been destroyed.\n */\nexport const HOT_DESTROYED_WARNING = 'The Handsontable instance bound to this component was destroyed and cannot be' +\n ' used properly.';\n\n/**\n * Check if at specified `key` there is any value for `object`.\n *\n * @param {object} object Object to search value at specyfic key.\n * @param {string} key String key to check.\n * @returns {boolean}\n */\nexport function hasOwnProperty(object: unknown, key: string): boolean {\n return Object.prototype.hasOwnProperty.call(object, key);\n}\n\n/**\n * Generate an object containing all the available Handsontable properties and plugin hooks.\n *\n * @param {string} source Source for the factory (either 'HotTable' or 'HotColumn').\n * @returns {object}\n */\nexport function propFactory(source: 'HotTable' | 'HotColumn'): VueProps<HotTableProps> {\n const registeredHooks = Handsontable.hooks.getRegistered();\n const propSchema: VueProps<HotTableProps> = {};\n\n Object.assign(propSchema, Handsontable.DefaultSettings);\n\n // eslint-disable-next-line no-restricted-syntax, guard-for-in\n for (const prop in propSchema) {\n propSchema[prop] = {\n default: unassignedPropSymbol\n };\n }\n\n for (let i = 0; i < registeredHooks.length; i++) {\n propSchema[registeredHooks[i]] = {\n default: unassignedPropSymbol\n };\n }\n\n propSchema.settings = {\n default: unassignedPropSymbol\n };\n\n if (source === 'HotTable') {\n propSchema.id = {\n type: String,\n default: `hot-${Math.random().toString(36).substring(5)}`\n };\n }\n\n return propSchema;\n}\n\n/**\n * Filter out all of the unassigned props, and return only the one passed to the component.\n *\n * @param {object} props Object containing all the possible props.\n * @returns {object} Object containing only used props.\n */\nexport function filterPassedProps(props) {\n const filteredProps: VueProps<HotTableProps> = {};\n const columnSettingsProp = props.settings;\n\n if (columnSettingsProp !== unassignedPropSymbol) {\n // eslint-disable-next-line no-restricted-syntax\n for (const propName in columnSettingsProp) {\n if (hasOwnProperty(columnSettingsProp, propName) && columnSettingsProp[propName] !== unassignedPropSymbol) {\n filteredProps[propName] = columnSettingsProp[propName];\n }\n }\n }\n\n // eslint-disable-next-line no-restricted-syntax\n for (const propName in props) {\n if (hasOwnProperty(props, propName) && propName !== 'settings' && props[propName] !== unassignedPropSymbol) {\n filteredProps[propName] = props[propName];\n }\n }\n\n return filteredProps;\n}\n\n/**\n * Prepare the settings object to be used as the settings for Handsontable, based on the props provided to the component.\n *\n * @param {HotTableProps} props The props passed to the component.\n * @param {Handsontable.GridSettings} currentSettings The current Handsontable settings.\n * @returns {Handsontable.GridSettings} An object containing the properties, ready to be used within Handsontable.\n */\nexport function prepareSettings(props: HotTableProps, currentSettings?: Handsontable.GridSettings): HotTableProps {\n const assignedProps: VueProps<HotTableProps> = filterPassedProps(props);\n const hotSettingsInProps: Handsontable.GridSettings = props.settings ? props.settings : assignedProps;\n const additionalHotSettingsInProps: Handsontable.GridSettings = props.settings ? assignedProps : null;\n const newSettings: Handsontable.GridSettings = {};\n\n // eslint-disable-next-line no-restricted-syntax\n for (const key in hotSettingsInProps) {\n if (\n hasOwnProperty(hotSettingsInProps, key) &&\n hotSettingsInProps[key] !== void 0 &&\n ((currentSettings && key !== 'data') ? !simpleEqual(currentSettings[key], hotSettingsInProps[key]) : true)\n ) {\n newSettings[key] = hotSettingsInProps[key];\n }\n }\n\n // eslint-disable-next-line no-restricted-syntax\n for (const key in additionalHotSettingsInProps) {\n if (\n hasOwnProperty(additionalHotSettingsInProps, key) &&\n key !== 'id' &&\n key !== 'settings' &&\n additionalHotSettingsInProps[key] !== void 0 &&\n ((currentSettings && key !== 'data')\n ? !simpleEqual(currentSettings[key], additionalHotSettingsInProps[key]) : true)\n ) {\n newSettings[key] = additionalHotSettingsInProps[key];\n }\n }\n\n return newSettings;\n}\n\n/**\n * Compare two objects using `JSON.stringify`.\n * *Note: * As it's using the stringify function to compare objects, the property order in both objects is\n * important. It will return `false` for the same objects, if they're defined in a different order.\n *\n * @param {object} objectA First object to compare.\n * @param {object} objectB Second object to compare.\n * @returns {boolean} `true` if they're the same, `false` otherwise.\n */\nfunction simpleEqual(objectA, objectB) {\n const stringifyToJSON = (val) => {\n const circularReplacer = (function() {\n const seen = new WeakSet();\n\n return function(key, value) {\n if (typeof value === 'object' && value !== null) {\n if (seen.has(value)) {\n return;\n }\n\n seen.add(value);\n }\n\n return value;\n };\n }());\n\n return JSON.stringify(val, circularReplacer);\n };\n\n if (typeof objectA === 'function' && typeof objectB === 'function') {\n return objectA.toString() === objectB.toString();\n\n } else if (typeof objectA !== typeof objectB) {\n return false;\n\n } else {\n return stringifyToJSON(objectA) === stringifyToJSON(objectB);\n }\n}\n","<template>\n <div :id=\"id\">\n <slot></slot>\n </div>\n</template>\n\n<script lang=\"ts\">\n// eslint-disable-next-line @typescript-eslint/ban-ts-comment\n// @ts-ignore\nimport { defineComponent, VNode, markRaw } from 'vue';\n// TODO: The line above is ts-ignored because rollup-plugin-typescript2 throws an error otherwise.\n// It's most probably caused by outdated rollup-plugin-vue which is no longer maintained.\n\nimport Handsontable from 'handsontable/base';\nimport {\n HOT_DESTROYED_WARNING,\n prepareSettings,\n propFactory,\n} from './helpers';\nimport {\n HotTableProps,\n} from './types';\nimport * as packageJson from '../package.json';\n\nconst HotTable = defineComponent({\n name: 'HotTable',\n props: propFactory('HotTable'),\n provide() {\n return {\n columnsCache: this.columnsCache\n };\n },\n watch: {\n $props: {\n handler(props) {\n const settings = prepareSettings(props, this.hotInstance ? this.hotInstance.getSettings() : void 0);\n\n if (!this.hotInstance || settings === void 0) {\n return;\n }\n\n if (settings.data) {\n if (\n this.hotInstance.isColumnModificationAllowed() ||\n (\n !this.hotInstance.isColumnModificationAllowed() &&\n this.hotInstance.countSourceCols() === this.miscCache.currentSourceColumns\n )\n ) {\n // If the dataset dimensions change, update the index mappers.\n this.matchHotMappersSize();\n\n // Data is automatically synchronized by reference.\n delete settings.data;\n }\n }\n\n // If there are another options changed, update the HOT settings, render the table otherwise.\n if (Object.keys(settings).length) {\n this.hotInstance.updateSettings(settings);\n\n } else {\n this.hotInstance.render();\n }\n\n this.miscCache.currentSourceColumns = this.hotInstance.countSourceCols();\n },\n deep: true,\n immediate: true,\n },\n },\n data() {\n return {\n /* eslint-disable vue/no-reserved-keys */\n __hotInstance: null as Handsontable,\n /* eslint-enable vue/no-reserved-keys */\n miscCache: {\n currentSourceColumns: null,\n },\n columnSettings: null as HotTableProps[],\n columnsCache: new Map<VNode, HotTableProps>(),\n get hotInstance(): Handsontable | null {\n if (!this.__hotInstance || (this.__hotInstance && !this.__hotInstance.isDestroyed)) {\n\n // Will return the Handsontable instance or `null` if it's not yet been created.\n return this.__hotInstance;\n\n } else {\n /* eslint-disable-next-line no-console */\n console.warn(HOT_DESTROYED_WARNING);\n\n return null;\n }\n },\n set hotInstance(hotInstance: Handsontable) {\n this.__hotInstance = hotInstance;\n },\n };\n },\n methods: {\n /**\n * Initialize Handsontable.\n */\n hotInit() {\n const newSettings = prepareSettings(this.$props);\n\n newSettings.columns = this.columnSettings ? this.columnSettings : newSettings.columns;\n\n this.hotInstance = markRaw<Handsontable>(new Handsontable.Core(this.$el, newSettings));\n this.hotInstance.init();\n\n this.miscCache.currentSourceColumns = this.hotInstance.countSourceCols();\n },\n\n matchHotMappersSize(): void {\n if (!this.hotInstance) {\n return;\n }\n\n const data: Handsontable.CellValue[][] = this.hotInstance.getSourceData();\n const rowsToRemove: number[] = [];\n const columnsToRemove: number[] = [];\n const indexMapperRowCount = this.hotInstance.rowIndexMapper.getNumberOfIndexes();\n const isColumnModificationAllowed = this.hotInstance.isColumnModificationAllowed();\n let indexMapperColumnCount = 0;\n\n if (data && data.length !== indexMapperRowCount) {\n if (data.length < indexMapperRowCount) {\n for (let r = data.length; r < indexMapperRowCount; r++) {\n rowsToRemove.push(r);\n }\n }\n }\n\n if (isColumnModificationAllowed) {\n indexMapperColumnCount = this.hotInstance.columnIndexMapper.getNumberOfIndexes();\n\n if (data && data[0] && data[0]?.length !== indexMapperColumnCount) {\n if (data[0].length < indexMapperColumnCount) {\n for (let c = data[0].length; c < indexMapperColumnCount; c++) {\n columnsToRemove.push(c);\n }\n }\n }\n }\n\n this.hotInstance.batch(() => {\n if (rowsToRemove.length > 0) {\n this.hotInstance.rowIndexMapper.removeIndexes(rowsToRemove);\n\n } else {\n this.hotInstance.rowIndexMapper\n .insertIndexes(indexMapperRowCount - 1, data.length - indexMapperRowCount);\n }\n\n if (isColumnModificationAllowed && data.length !== 0) {\n if (columnsToRemove.length > 0) {\n this.hotInstance.columnIndexMapper.removeIndexes(columnsToRemove);\n\n } else {\n this.hotInstance.columnIndexMapper\n .insertIndexes(indexMapperColumnCount - 1, data[0].length - indexMapperColumnCount);\n }\n }\n });\n },\n\n /**\n * Get settings for the columns provided in the `hot-column` components.\n *\n * @returns {HotTableProps[] | undefined}\n */\n getColumnSettings(): HotTableProps[] | void {\n const columnSettings: HotTableProps[] = Array.from(this.columnsCache.values());\n\n return columnSettings.length ? columnSettings : void 0;\n },\n },\n mounted() {\n this.columnSettings = this.getColumnSettings();\n this.hotInit();\n },\n beforeUnmount() {\n if (this.hotInstance) {\n this.hotInstance.destroy();\n }\n },\n version: (packageJson as unknown as { version: string }).version,\n});\n\nexport default HotTable;\nexport { HotTable };\n</script>\n","<template>\n <div :id=\"id\">\n <slot></slot>\n </div>\n</template>\n\n<script lang=\"ts\">\n// eslint-disable-next-line @typescript-eslint/ban-ts-comment\n// @ts-ignore\nimport { defineComponent, VNode, markRaw } from 'vue';\n// TODO: The line above is ts-ignored because rollup-plugin-typescript2 throws an error otherwise.\n// It's most probably caused by outdated rollup-plugin-vue which is no longer maintained.\n\nimport Handsontable from 'handsontable/base';\nimport {\n HOT_DESTROYED_WARNING,\n prepareSettings,\n propFactory,\n} from './helpers';\nimport {\n HotTableProps,\n} from './types';\nimport * as packageJson from '../package.json';\n\nconst HotTable = defineComponent({\n name: 'HotTable',\n props: propFactory('HotTable'),\n provide() {\n return {\n columnsCache: this.columnsCache\n };\n },\n watch: {\n $props: {\n handler(props) {\n const settings = prepareSettings(props, this.hotInstance ? this.hotInstance.getSettings() : void 0);\n\n if (!this.hotInstance || settings === void 0) {\n return;\n }\n\n if (settings.data) {\n if (\n this.hotInstance.isColumnModificationAllowed() ||\n (\n !this.hotInstance.isColumnModificationAllowed() &&\n this.hotInstance.countSourceCols() === this.miscCache.currentSourceColumns\n )\n ) {\n // If the dataset dimensions change, update the index mappers.\n this.matchHotMappersSize();\n\n // Data is automatically synchronized by reference.\n delete settings.data;\n }\n }\n\n // If there are another options changed, update the HOT settings, render the table otherwise.\n if (Object.keys(settings).length) {\n this.hotInstance.updateSettings(settings);\n\n } else {\n this.hotInstance.render();\n }\n\n this.miscCache.currentSourceColumns = this.hotInstance.countSourceCols();\n },\n deep: true,\n immediate: true,\n },\n },\n data() {\n return {\n /* eslint-disable vue/no-reserved-keys */\n __hotInstance: null as Handsontable,\n /* eslint-enable vue/no-reserved-keys */\n miscCache: {\n currentSourceColumns: null,\n },\n columnSettings: null as HotTableProps[],\n columnsCache: new Map<VNode, HotTableProps>(),\n get hotInstance(): Handsontable | null {\n if (!this.__hotInstance || (this.__hotInstance && !this.__hotInstance.isDestroyed)) {\n\n // Will return the Handsontable instance or `null` if it's not yet been created.\n return this.__hotInstance;\n\n } else {\n /* eslint-disable-next-line no-console */\n console.warn(HOT_DESTROYED_WARNING);\n\n return null;\n }\n },\n set hotInstance(hotInstance: Handsontable) {\n this.__hotInstance = hotInstance;\n },\n };\n },\n methods: {\n /**\n * Initialize Handsontable.\n */\n hotInit() {\n const newSettings = prepareSettings(this.$props);\n\n newSettings.columns = this.columnSettings ? this.columnSettings : newSettings.columns;\n\n this.hotInstance = markRaw<Handsontable>(new Handsontable.Core(this.$el, newSettings));\n this.hotInstance.init();\n\n this.miscCache.currentSourceColumns = this.hotInstance.countSourceCols();\n },\n\n matchHotMappersSize(): void {\n if (!this.hotInstance) {\n return;\n }\n\n const data: Handsontable.CellValue[][] = this.hotInstance.getSourceData();\n const rowsToRemove: number[] = [];\n const columnsToRemove: number[] = [];\n const indexMapperRowCount = this.hotInstance.rowIndexMapper.getNumberOfIndexes();\n const isColumnModificationAllowed = this.hotInstance.isColumnModificationAllowed();\n let indexMapperColumnCount = 0;\n\n if (data && data.length !== indexMapperRowCount) {\n if (data.length < indexMapperRowCount) {\n for (let r = data.length; r < indexMapperRowCount; r++) {\n rowsToRemove.push(r);\n }\n }\n }\n\n if (isColumnModificationAllowed) {\n indexMapperColumnCount = this.hotInstance.columnIndexMapper.getNumberOfIndexes();\n\n if (data && data[0] && data[0]?.length !== indexMapperColumnCount) {\n if (data[0].length < indexMapperColumnCount) {\n for (let c = data[0].length; c < indexMapperColumnCount; c++) {\n columnsToRemove.push(c);\n }\n }\n }\n }\n\n this.hotInstance.batch(() => {\n if (rowsToRemove.length > 0) {\n this.hotInstance.rowIndexMapper.removeIndexes(rowsToRemove);\n\n } else {\n this.hotInstance.rowIndexMapper\n .insertIndexes(indexMapperRowCount - 1, data.length - indexMapperRowCount);\n }\n\n if (isColumnModificationAllowed && data.length !== 0) {\n if (columnsToRemove.length > 0) {\n this.hotInstance.columnIndexMapper.removeIndexes(columnsToRemove);\n\n } else {\n this.hotInstance.columnIndexMapper\n .insertIndexes(indexMapperColumnCount - 1, data[0].length - indexMapperColumnCount);\n }\n }\n });\n },\n\n /**\n * Get settings for the columns provided in the `hot-column` components.\n *\n * @returns {HotTableProps[] | undefined}\n */\n getColumnSettings(): HotTableProps[] | void {\n const columnSettings: HotTableProps[] = Array.from(this.columnsCache.values());\n\n return columnSettings.length ? columnSettings : void 0;\n },\n },\n mounted() {\n this.columnSettings = this.getColumnSettings();\n this.hotInit();\n },\n beforeUnmount() {\n if (this.hotInstance) {\n this.hotInstance.destroy();\n }\n },\n version: (packageJson as unknown as { version: string }).version,\n});\n\nexport default HotTable;\nexport { HotTable };\n</script>\n","<script lang=\"ts\">\n// eslint-disable-next-line @typescript-eslint/ban-ts-comment\n// @ts-ignore\nimport { defineComponent } from 'vue';\n// TODO: The line above is ts-ignored because rollup-plugin-typescript2 throws an error otherwise.\n// It's most probably caused by outdated rollup-plugin-vue which is no longer maintained.\n\nimport {\n propFactory,\n filterPassedProps\n} from './helpers';\n\nconst HotColumn = defineComponent({\n name: 'HotColumn',\n props: propFactory('HotColumn'),\n inject: ['columnsCache'],\n methods: {\n /**\n * Create the column settings based on the data provided to the `hot-column`\n * component and it's child components.\n */\n createColumnSettings(): void {\n const assignedProps = filterPassedProps(this.$props);\n const columnSettings = { ...assignedProps };\n\n if (assignedProps.renderer) {\n columnSettings.renderer = assignedProps.renderer;\n }\n\n if (assignedProps.editor) {\n columnSettings.editor = assignedProps.editor;\n }\n\n this.columnsCache.set(this, columnSettings);\n }\n },\n mounted() {\n this.createColumnSettings();\n },\n unmounted() {\n this.columnsCache.delete(this);\n },\n render() {\n return null;\n }\n});\n\nexport default HotColumn;\nexport { HotColumn };\n</script>\n"],"names":["unassignedPropSymbol","Symbol","hasOwnProperty","object","key","Object","prototype","call","propFactory","source","registeredHooks","Handsontable","hooks","getRegistered","propSchema","prop","assign","DefaultSettings","default","i","length","settings","id","type","String","concat","Math","random","toString","substring","filterPassedProps","props","filteredProps","columnSettingsProp","propName","prepareSettings","currentSettings","assignedProps","hotSettingsInProps","additionalHotSettingsInProps","newSettings","simpleEqual","objectA","objectB","stringifyToJSON","val","seen","circularReplacer","WeakSet","value","_typeof","has","add","JSON","stringify","HotTable","defineComponent","name","provide","columnsCache","this","watch","$props","handler","hotInstance","getSettings","data","isColumnModificationAllowed","countSourceCols","miscCache","currentSourceColumns","matchHotMappersSize","keys","updateSettings","render","deep","immediate","__hotInstance","columnSettings","Map","isDestroyed","console","warn","methods","hotInit","columns","markRaw","Core","$el","init","_this","_data$","getSourceData","rowsToRemove","columnsToRemove","indexMapperRowCount","rowIndexMapper","getNumberOfIndexes","indexMapperColumnCount","r","push","columnIndexMapper","c","batch","removeIndexes","insertIndexes","getColumnSettings","Array","from","values","mounted","beforeUnmount","destroy","version","_createElementBlock","_ctx","_renderSlot","$slots","HotColumn","inject","createColumnSettings","_objectSpread","renderer","editor","set","unmounted"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"vue-handsontable.min.js","sources":["../src/helpers.ts","../src/HotTable.vue","../src/HotTable.vue?vue&type=template&id=54bcc3fa&lang.js","../src/HotColumn.vue"],"sourcesContent":["import Handsontable from 'handsontable/base';\nimport { HotTableProps, VueProps } from './types';\n\nconst unassignedPropSymbol = Symbol('unassigned');\n\n/**\n * Message for the warning thrown if the Handsontable instance has been destroyed.\n */\nexport const HOT_DESTROYED_WARNING = 'The Handsontable instance bound to this component was destroyed and cannot be' +\n ' used properly.';\n\n/**\n * Check if at specified `key` there is any value for `object`.\n *\n * @param {object} object Object to search value at specyfic key.\n * @param {string} key String key to check.\n * @returns {boolean}\n */\nexport function hasOwnProperty(object: unknown, key: string): boolean {\n return Object.prototype.hasOwnProperty.call(object, key);\n}\n\n/**\n * Generate an object containing all the available Handsontable properties and plugin hooks.\n *\n * @param {string} source Source for the factory (either 'HotTable' or 'HotColumn').\n * @returns {object}\n */\nexport function propFactory(source: 'HotTable' | 'HotColumn'): VueProps<HotTableProps> {\n const registeredHooks = Handsontable.hooks.getRegistered();\n const propSchema: VueProps<HotTableProps> = {};\n\n Object.assign(propSchema, Handsontable.DefaultSettings);\n\n // eslint-disable-next-line no-restricted-syntax, guard-for-in\n for (const prop in propSchema) {\n propSchema[prop] = {\n default: unassignedPropSymbol\n };\n }\n\n for (let i = 0; i < registeredHooks.length; i++) {\n propSchema[registeredHooks[i]] = {\n default: unassignedPropSymbol\n };\n }\n\n propSchema.settings = {\n default: unassignedPropSymbol\n };\n\n if (source === 'HotTable') {\n propSchema.id = {\n type: String,\n default: `hot-${Math.random().toString(36).substring(5)}`\n };\n }\n\n return propSchema;\n}\n\n/**\n * Filter out all of the unassigned props, and return only the one passed to the component.\n *\n * @param {object} props Object containing all the possible props.\n * @returns {object} Object containing only used props.\n */\nexport function filterPassedProps(props) {\n const filteredProps: VueProps<HotTableProps> = {};\n const columnSettingsProp = props.settings;\n\n if (columnSettingsProp !== unassignedPropSymbol) {\n // eslint-disable-next-line no-restricted-syntax\n for (const propName in columnSettingsProp) {\n if (hasOwnProperty(columnSettingsProp, propName) && columnSettingsProp[propName] !== unassignedPropSymbol) {\n filteredProps[propName] = columnSettingsProp[propName];\n }\n }\n }\n\n // eslint-disable-next-line no-restricted-syntax\n for (const propName in props) {\n if (hasOwnProperty(props, propName) && propName !== 'settings' && props[propName] !== unassignedPropSymbol) {\n filteredProps[propName] = props[propName];\n }\n }\n\n return filteredProps;\n}\n\n/**\n * Prepare the settings object to be used as the settings for Handsontable, based on the props provided to the component.\n *\n * @param {HotTableProps} props The props passed to the component.\n * @param {Handsontable.GridSettings} currentSettings The current Handsontable settings.\n * @returns {Handsontable.GridSettings} An object containing the properties, ready to be used within Handsontable.\n */\nexport function prepareSettings(props: HotTableProps, currentSettings?: Handsontable.GridSettings): HotTableProps {\n const assignedProps: VueProps<HotTableProps> = filterPassedProps(props);\n const hotSettingsInProps: Handsontable.GridSettings = props.settings ? props.settings : assignedProps;\n const additionalHotSettingsInProps: Handsontable.GridSettings = props.settings ? assignedProps : null;\n const initOnlySettingKeys: string[] =\n (currentSettings as any)?._initOnlySettings || [];\n const newSettings: Handsontable.GridSettings = {};\n\n // eslint-disable-next-line no-restricted-syntax\n for (const key in hotSettingsInProps) {\n if (\n hasOwnProperty(hotSettingsInProps, key) &&\n hotSettingsInProps[key] !== void 0 &&\n !initOnlySettingKeys.includes(key) &&\n ((currentSettings && key !== 'data') ? !simpleEqual(currentSettings[key], hotSettingsInProps[key]) : true)\n ) {\n newSettings[key] = hotSettingsInProps[key];\n }\n }\n\n // eslint-disable-next-line no-restricted-syntax\n for (const key in additionalHotSettingsInProps) {\n if (\n hasOwnProperty(additionalHotSettingsInProps, key) &&\n key !== 'id' &&\n key !== 'settings' &&\n additionalHotSettingsInProps[key] !== void 0 &&\n !initOnlySettingKeys.includes(key) &&\n ((currentSettings && key !== 'data')\n ? !simpleEqual(currentSettings[key], additionalHotSettingsInProps[key]) : true)\n ) {\n newSettings[key] = additionalHotSettingsInProps[key];\n }\n }\n\n return newSettings;\n}\n\n/**\n * Compare two objects using `JSON.stringify`.\n * *Note: * As it's using the stringify function to compare objects, the property order in both objects is\n * important. It will return `false` for the same objects, if they're defined in a different order.\n *\n * @param {object} objectA First object to compare.\n * @param {object} objectB Second object to compare.\n * @returns {boolean} `true` if they're the same, `false` otherwise.\n */\nfunction simpleEqual(objectA, objectB) {\n const stringifyToJSON = (val) => {\n const circularReplacer = (function() {\n const seen = new WeakSet();\n\n return function(key, value) {\n if (typeof value === 'object' && value !== null) {\n if (seen.has(value)) {\n return;\n }\n\n seen.add(value);\n }\n\n return value;\n };\n }());\n\n return JSON.stringify(val, circularReplacer);\n };\n\n if (typeof objectA === 'function' && typeof objectB === 'function') {\n return objectA.toString() === objectB.toString();\n\n } else if (typeof objectA !== typeof objectB) {\n return false;\n\n } else {\n return stringifyToJSON(objectA) === stringifyToJSON(objectB);\n }\n}\n","<template>\n <div :id=\"id\">\n <slot></slot>\n </div>\n</template>\n\n<script lang=\"ts\">\n// eslint-disable-next-line @typescript-eslint/ban-ts-comment\n// @ts-ignore\nimport { defineComponent, VNode, markRaw } from 'vue';\n// TODO: The line above is ts-ignored because rollup-plugin-typescript2 throws an error otherwise.\n// It's most probably caused by outdated rollup-plugin-vue which is no longer maintained.\n\nimport Handsontable from 'handsontable/base';\nimport {\n HOT_DESTROYED_WARNING,\n prepareSettings,\n propFactory,\n} from './helpers';\nimport {\n HotTableProps,\n} from './types';\nimport * as packageJson from '../package.json';\n\nconst HotTable = defineComponent({\n name: 'HotTable',\n props: propFactory('HotTable'),\n provide() {\n return {\n columnsCache: this.columnsCache\n };\n },\n watch: {\n $props: {\n handler(props) {\n const settings = prepareSettings(props, this.hotInstance ? this.hotInstance.getSettings() : void 0);\n\n if (!this.hotInstance || settings === void 0) {\n return;\n }\n\n if (settings.data) {\n if (\n this.hotInstance.isColumnModificationAllowed() ||\n (\n !this.hotInstance.isColumnModificationAllowed() &&\n this.hotInstance.countSourceCols() === this.miscCache.currentSourceColumns\n )\n ) {\n // If the dataset dimensions change, update the index mappers.\n this.matchHotMappersSize();\n\n // Data is automatically synchronized by reference.\n delete settings.data;\n }\n }\n\n // If there are another options changed, update the HOT settings, render the table otherwise.\n if (Object.keys(settings).length) {\n this.hotInstance.updateSettings(settings);\n\n } else {\n this.hotInstance.render();\n }\n\n this.miscCache.currentSourceColumns = this.hotInstance.countSourceCols();\n },\n deep: true,\n immediate: true,\n },\n },\n data() {\n return {\n /* eslint-disable vue/no-reserved-keys */\n __hotInstance: null as Handsontable,\n /* eslint-enable vue/no-reserved-keys */\n miscCache: {\n currentSourceColumns: null,\n },\n columnSettings: null as HotTableProps[],\n columnsCache: new Map<VNode, HotTableProps>(),\n get hotInstance(): Handsontable | null {\n if (!this.__hotInstance || (this.__hotInstance && !this.__hotInstance.isDestroyed)) {\n\n // Will return the Handsontable instance or `null` if it's not yet been created.\n return this.__hotInstance;\n\n } else {\n /* eslint-disable-next-line no-console */\n console.warn(HOT_DESTROYED_WARNING);\n\n return null;\n }\n },\n set hotInstance(hotInstance: Handsontable) {\n this.__hotInstance = hotInstance;\n },\n };\n },\n methods: {\n /**\n * Initialize Handsontable.\n */\n hotInit() {\n const newSettings = prepareSettings(this.$props);\n\n newSettings.columns = this.columnSettings ? this.columnSettings : newSettings.columns;\n\n this.hotInstance = markRaw<Handsontable>(new Handsontable.Core(this.$el, newSettings));\n this.hotInstance.init();\n\n this.miscCache.currentSourceColumns = this.hotInstance.countSourceCols();\n },\n\n matchHotMappersSize(): void {\n if (!this.hotInstance) {\n return;\n }\n\n const data: Handsontable.CellValue[][] = this.hotInstance.getSourceData();\n const rowsToRemove: number[] = [];\n const columnsToRemove: number[] = [];\n const indexMapperRowCount = this.hotInstance.rowIndexMapper.getNumberOfIndexes();\n const isColumnModificationAllowed = this.hotInstance.isColumnModificationAllowed();\n let indexMapperColumnCount = 0;\n\n if (data && data.length !== indexMapperRowCount) {\n if (data.length < indexMapperRowCount) {\n for (let r = data.length; r < indexMapperRowCount; r++) {\n rowsToRemove.push(r);\n }\n }\n }\n\n if (isColumnModificationAllowed) {\n indexMapperColumnCount = this.hotInstance.columnIndexMapper.getNumberOfIndexes();\n\n if (data && data[0] && data[0]?.length !== indexMapperColumnCount) {\n if (data[0].length < indexMapperColumnCount) {\n for (let c = data[0].length; c < indexMapperColumnCount; c++) {\n columnsToRemove.push(c);\n }\n }\n }\n }\n\n this.hotInstance.batch(() => {\n if (rowsToRemove.length > 0) {\n this.hotInstance.rowIndexMapper.removeIndexes(rowsToRemove);\n\n } else {\n this.hotInstance.rowIndexMapper\n .insertIndexes(indexMapperRowCount - 1, data.length - indexMapperRowCount);\n }\n\n if (isColumnModificationAllowed && data.length !== 0) {\n if (columnsToRemove.length > 0) {\n this.hotInstance.columnIndexMapper.removeIndexes(columnsToRemove);\n\n } else {\n this.hotInstance.columnIndexMapper\n .insertIndexes(indexMapperColumnCount - 1, data[0].length - indexMapperColumnCount);\n }\n }\n });\n },\n\n /**\n * Get settings for the columns provided in the `hot-column` components.\n *\n * @returns {HotTableProps[] | undefined}\n */\n getColumnSettings(): HotTableProps[] | void {\n const columnSettings: HotTableProps[] = Array.from(this.columnsCache.values());\n\n return columnSettings.length ? columnSettings : void 0;\n },\n },\n mounted() {\n this.columnSettings = this.getColumnSettings();\n this.hotInit();\n },\n beforeUnmount() {\n if (this.hotInstance) {\n this.hotInstance.destroy();\n }\n },\n version: (packageJson as unknown as { version: string }).version,\n});\n\nexport default HotTable;\nexport { HotTable };\n</script>\n","<template>\n <div :id=\"id\">\n <slot></slot>\n </div>\n</template>\n\n<script lang=\"ts\">\n// eslint-disable-next-line @typescript-eslint/ban-ts-comment\n// @ts-ignore\nimport { defineComponent, VNode, markRaw } from 'vue';\n// TODO: The line above is ts-ignored because rollup-plugin-typescript2 throws an error otherwise.\n// It's most probably caused by outdated rollup-plugin-vue which is no longer maintained.\n\nimport Handsontable from 'handsontable/base';\nimport {\n HOT_DESTROYED_WARNING,\n prepareSettings,\n propFactory,\n} from './helpers';\nimport {\n HotTableProps,\n} from './types';\nimport * as packageJson from '../package.json';\n\nconst HotTable = defineComponent({\n name: 'HotTable',\n props: propFactory('HotTable'),\n provide() {\n return {\n columnsCache: this.columnsCache\n };\n },\n watch: {\n $props: {\n handler(props) {\n const settings = prepareSettings(props, this.hotInstance ? this.hotInstance.getSettings() : void 0);\n\n if (!this.hotInstance || settings === void 0) {\n return;\n }\n\n if (settings.data) {\n if (\n this.hotInstance.isColumnModificationAllowed() ||\n (\n !this.hotInstance.isColumnModificationAllowed() &&\n this.hotInstance.countSourceCols() === this.miscCache.currentSourceColumns\n )\n ) {\n // If the dataset dimensions change, update the index mappers.\n this.matchHotMappersSize();\n\n // Data is automatically synchronized by reference.\n delete settings.data;\n }\n }\n\n // If there are another options changed, update the HOT settings, render the table otherwise.\n if (Object.keys(settings).length) {\n this.hotInstance.updateSettings(settings);\n\n } else {\n this.hotInstance.render();\n }\n\n this.miscCache.currentSourceColumns = this.hotInstance.countSourceCols();\n },\n deep: true,\n immediate: true,\n },\n },\n data() {\n return {\n /* eslint-disable vue/no-reserved-keys */\n __hotInstance: null as Handsontable,\n /* eslint-enable vue/no-reserved-keys */\n miscCache: {\n currentSourceColumns: null,\n },\n columnSettings: null as HotTableProps[],\n columnsCache: new Map<VNode, HotTableProps>(),\n get hotInstance(): Handsontable | null {\n if (!this.__hotInstance || (this.__hotInstance && !this.__hotInstance.isDestroyed)) {\n\n // Will return the Handsontable instance or `null` if it's not yet been created.\n return this.__hotInstance;\n\n } else {\n /* eslint-disable-next-line no-console */\n console.warn(HOT_DESTROYED_WARNING);\n\n return null;\n }\n },\n set hotInstance(hotInstance: Handsontable) {\n this.__hotInstance = hotInstance;\n },\n };\n },\n methods: {\n /**\n * Initialize Handsontable.\n */\n hotInit() {\n const newSettings = prepareSettings(this.$props);\n\n newSettings.columns = this.columnSettings ? this.columnSettings : newSettings.columns;\n\n this.hotInstance = markRaw<Handsontable>(new Handsontable.Core(this.$el, newSettings));\n this.hotInstance.init();\n\n this.miscCache.currentSourceColumns = this.hotInstance.countSourceCols();\n },\n\n matchHotMappersSize(): void {\n if (!this.hotInstance) {\n return;\n }\n\n const data: Handsontable.CellValue[][] = this.hotInstance.getSourceData();\n const rowsToRemove: number[] = [];\n const columnsToRemove: number[] = [];\n const indexMapperRowCount = this.hotInstance.rowIndexMapper.getNumberOfIndexes();\n const isColumnModificationAllowed = this.hotInstance.isColumnModificationAllowed();\n let indexMapperColumnCount = 0;\n\n if (data && data.length !== indexMapperRowCount) {\n if (data.length < indexMapperRowCount) {\n for (let r = data.length; r < indexMapperRowCount; r++) {\n rowsToRemove.push(r);\n }\n }\n }\n\n if (isColumnModificationAllowed) {\n indexMapperColumnCount = this.hotInstance.columnIndexMapper.getNumberOfIndexes();\n\n if (data && data[0] && data[0]?.length !== indexMapperColumnCount) {\n if (data[0].length < indexMapperColumnCount) {\n for (let c = data[0].length; c < indexMapperColumnCount; c++) {\n columnsToRemove.push(c);\n }\n }\n }\n }\n\n this.hotInstance.batch(() => {\n if (rowsToRemove.length > 0) {\n this.hotInstance.rowIndexMapper.removeIndexes(rowsToRemove);\n\n } else {\n this.hotInstance.rowIndexMapper\n .insertIndexes(indexMapperRowCount - 1, data.length - indexMapperRowCount);\n }\n\n if (isColumnModificationAllowed && data.length !== 0) {\n if (columnsToRemove.length > 0) {\n this.hotInstance.columnIndexMapper.removeIndexes(columnsToRemove);\n\n } else {\n this.hotInstance.columnIndexMapper\n .insertIndexes(indexMapperColumnCount - 1, data[0].length - indexMapperColumnCount);\n }\n }\n });\n },\n\n /**\n * Get settings for the columns provided in the `hot-column` components.\n *\n * @returns {HotTableProps[] | undefined}\n */\n getColumnSettings(): HotTableProps[] | void {\n const columnSettings: HotTableProps[] = Array.from(this.columnsCache.values());\n\n return columnSettings.length ? columnSettings : void 0;\n },\n },\n mounted() {\n this.columnSettings = this.getColumnSettings();\n this.hotInit();\n },\n beforeUnmount() {\n if (this.hotInstance) {\n this.hotInstance.destroy();\n }\n },\n version: (packageJson as unknown as { version: string }).version,\n});\n\nexport default HotTable;\nexport { HotTable };\n</script>\n","<script lang=\"ts\">\n// eslint-disable-next-line @typescript-eslint/ban-ts-comment\n// @ts-ignore\nimport { defineComponent } from 'vue';\n// TODO: The line above is ts-ignored because rollup-plugin-typescript2 throws an error otherwise.\n// It's most probably caused by outdated rollup-plugin-vue which is no longer maintained.\n\nimport {\n propFactory,\n filterPassedProps\n} from './helpers';\n\nconst HotColumn = defineComponent({\n name: 'HotColumn',\n props: propFactory('HotColumn'),\n inject: ['columnsCache'],\n methods: {\n /**\n * Create the column settings based on the data provided to the `hot-column`\n * component and it's child components.\n */\n createColumnSettings(): void {\n const assignedProps = filterPassedProps(this.$props);\n const columnSettings = { ...assignedProps };\n\n if (assignedProps.renderer) {\n columnSettings.renderer = assignedProps.renderer;\n }\n\n if (assignedProps.editor) {\n columnSettings.editor = assignedProps.editor;\n }\n\n this.columnsCache.set(this, columnSettings);\n }\n },\n mounted() {\n this.createColumnSettings();\n },\n unmounted() {\n this.columnsCache.delete(this);\n },\n render() {\n return null;\n }\n});\n\nexport default HotColumn;\nexport { HotColumn };\n</script>\n"],"names":["unassignedPropSymbol","Symbol","hasOwnProperty","object","key","Object","prototype","call","propFactory","source","registeredHooks","Handsontable","hooks","getRegistered","propSchema","prop","assign","DefaultSettings","default","i","length","settings","id","type","String","concat","Math","random","toString","substring","filterPassedProps","props","filteredProps","columnSettingsProp","propName","prepareSettings","currentSettings","assignedProps","hotSettingsInProps","additionalHotSettingsInProps","initOnlySettingKeys","_initOnlySettings","newSettings","includes","simpleEqual","objectA","objectB","stringifyToJSON","val","seen","circularReplacer","WeakSet","value","_typeof","has","add","JSON","stringify","HotTable","defineComponent","name","provide","columnsCache","this","watch","$props","handler","hotInstance","getSettings","data","isColumnModificationAllowed","countSourceCols","miscCache","currentSourceColumns","matchHotMappersSize","keys","updateSettings","render","deep","immediate","__hotInstance","columnSettings","Map","isDestroyed","console","warn","methods","hotInit","columns","markRaw","Core","$el","init","_this","_data$","getSourceData","rowsToRemove","columnsToRemove","indexMapperRowCount","rowIndexMapper","getNumberOfIndexes","indexMapperColumnCount","r","push","columnIndexMapper","c","batch","removeIndexes","insertIndexes","getColumnSettings","Array","from","values","mounted","beforeUnmount","destroy","version","_createElementBlock","_ctx","_renderSlot","$slots","HotColumn","inject","createColumnSettings","_objectSpread","renderer","editor","set","unmounted"],"mappings":"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"}
|
package/es/vue-handsontable.mjs
CHANGED
|
@@ -55,30 +55,34 @@ function _typeof(o) {
|
|
|
55
55
|
}
|
|
56
56
|
|
|
57
57
|
var unassignedPropSymbol = Symbol('unassigned');
|
|
58
|
-
|
|
59
|
-
|
|
58
|
+
|
|
59
|
+
/**
|
|
60
|
+
* Message for the warning thrown if the Handsontable instance has been destroyed.
|
|
60
61
|
*/
|
|
61
62
|
var HOT_DESTROYED_WARNING = 'The Handsontable instance bound to this component was destroyed and cannot be' + ' used properly.';
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
*
|
|
65
|
-
*
|
|
66
|
-
* @param {
|
|
67
|
-
* @
|
|
63
|
+
|
|
64
|
+
/**
|
|
65
|
+
* Check if at specified `key` there is any value for `object`.
|
|
66
|
+
*
|
|
67
|
+
* @param {object} object Object to search value at specyfic key.
|
|
68
|
+
* @param {string} key String key to check.
|
|
69
|
+
* @returns {boolean}
|
|
68
70
|
*/
|
|
69
71
|
function hasOwnProperty(object, key) {
|
|
70
72
|
return Object.prototype.hasOwnProperty.call(object, key);
|
|
71
73
|
}
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
*
|
|
75
|
-
*
|
|
76
|
-
* @
|
|
74
|
+
|
|
75
|
+
/**
|
|
76
|
+
* Generate an object containing all the available Handsontable properties and plugin hooks.
|
|
77
|
+
*
|
|
78
|
+
* @param {string} source Source for the factory (either 'HotTable' or 'HotColumn').
|
|
79
|
+
* @returns {object}
|
|
77
80
|
*/
|
|
78
81
|
function propFactory(source) {
|
|
79
82
|
var registeredHooks = Handsontable.hooks.getRegistered();
|
|
80
83
|
var propSchema = {};
|
|
81
84
|
Object.assign(propSchema, Handsontable.DefaultSettings);
|
|
85
|
+
|
|
82
86
|
// eslint-disable-next-line no-restricted-syntax, guard-for-in
|
|
83
87
|
for (var prop in propSchema) {
|
|
84
88
|
propSchema[prop] = {
|
|
@@ -101,11 +105,12 @@ function propFactory(source) {
|
|
|
101
105
|
}
|
|
102
106
|
return propSchema;
|
|
103
107
|
}
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
*
|
|
107
|
-
*
|
|
108
|
-
* @
|
|
108
|
+
|
|
109
|
+
/**
|
|
110
|
+
* Filter out all of the unassigned props, and return only the one passed to the component.
|
|
111
|
+
*
|
|
112
|
+
* @param {object} props Object containing all the possible props.
|
|
113
|
+
* @returns {object} Object containing only used props.
|
|
109
114
|
*/
|
|
110
115
|
function filterPassedProps(props) {
|
|
111
116
|
var filteredProps = {};
|
|
@@ -118,6 +123,7 @@ function filterPassedProps(props) {
|
|
|
118
123
|
}
|
|
119
124
|
}
|
|
120
125
|
}
|
|
126
|
+
|
|
121
127
|
// eslint-disable-next-line no-restricted-syntax
|
|
122
128
|
for (var _propName in props) {
|
|
123
129
|
if (hasOwnProperty(props, _propName) && _propName !== 'settings' && props[_propName] !== unassignedPropSymbol) {
|
|
@@ -126,40 +132,45 @@ function filterPassedProps(props) {
|
|
|
126
132
|
}
|
|
127
133
|
return filteredProps;
|
|
128
134
|
}
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
*
|
|
132
|
-
*
|
|
133
|
-
* @param {
|
|
134
|
-
* @
|
|
135
|
+
|
|
136
|
+
/**
|
|
137
|
+
* Prepare the settings object to be used as the settings for Handsontable, based on the props provided to the component.
|
|
138
|
+
*
|
|
139
|
+
* @param {HotTableProps} props The props passed to the component.
|
|
140
|
+
* @param {Handsontable.GridSettings} currentSettings The current Handsontable settings.
|
|
141
|
+
* @returns {Handsontable.GridSettings} An object containing the properties, ready to be used within Handsontable.
|
|
135
142
|
*/
|
|
136
143
|
function prepareSettings(props, currentSettings) {
|
|
137
144
|
var assignedProps = filterPassedProps(props);
|
|
138
145
|
var hotSettingsInProps = props.settings ? props.settings : assignedProps;
|
|
139
146
|
var additionalHotSettingsInProps = props.settings ? assignedProps : null;
|
|
147
|
+
var initOnlySettingKeys = (currentSettings === null || currentSettings === void 0 ? void 0 : currentSettings._initOnlySettings) || [];
|
|
140
148
|
var newSettings = {};
|
|
149
|
+
|
|
141
150
|
// eslint-disable-next-line no-restricted-syntax
|
|
142
151
|
for (var key in hotSettingsInProps) {
|
|
143
|
-
if (hasOwnProperty(hotSettingsInProps, key) && hotSettingsInProps[key] !== void 0 && (currentSettings && key !== 'data' ? !simpleEqual(currentSettings[key], hotSettingsInProps[key]) : true)) {
|
|
152
|
+
if (hasOwnProperty(hotSettingsInProps, key) && hotSettingsInProps[key] !== void 0 && !initOnlySettingKeys.includes(key) && (currentSettings && key !== 'data' ? !simpleEqual(currentSettings[key], hotSettingsInProps[key]) : true)) {
|
|
144
153
|
newSettings[key] = hotSettingsInProps[key];
|
|
145
154
|
}
|
|
146
155
|
}
|
|
156
|
+
|
|
147
157
|
// eslint-disable-next-line no-restricted-syntax
|
|
148
158
|
for (var _key in additionalHotSettingsInProps) {
|
|
149
|
-
if (hasOwnProperty(additionalHotSettingsInProps, _key) && _key !== 'id' && _key !== 'settings' && additionalHotSettingsInProps[_key] !== void 0 && (currentSettings && _key !== 'data' ? !simpleEqual(currentSettings[_key], additionalHotSettingsInProps[_key]) : true)) {
|
|
159
|
+
if (hasOwnProperty(additionalHotSettingsInProps, _key) && _key !== 'id' && _key !== 'settings' && additionalHotSettingsInProps[_key] !== void 0 && !initOnlySettingKeys.includes(_key) && (currentSettings && _key !== 'data' ? !simpleEqual(currentSettings[_key], additionalHotSettingsInProps[_key]) : true)) {
|
|
150
160
|
newSettings[_key] = additionalHotSettingsInProps[_key];
|
|
151
161
|
}
|
|
152
162
|
}
|
|
153
163
|
return newSettings;
|
|
154
164
|
}
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
*
|
|
158
|
-
*
|
|
159
|
-
*
|
|
160
|
-
*
|
|
161
|
-
* @param {object}
|
|
162
|
-
* @
|
|
165
|
+
|
|
166
|
+
/**
|
|
167
|
+
* Compare two objects using `JSON.stringify`.
|
|
168
|
+
* *Note: * As it's using the stringify function to compare objects, the property order in both objects is
|
|
169
|
+
* important. It will return `false` for the same objects, if they're defined in a different order.
|
|
170
|
+
*
|
|
171
|
+
* @param {object} objectA First object to compare.
|
|
172
|
+
* @param {object} objectB Second object to compare.
|
|
173
|
+
* @returns {boolean} `true` if they're the same, `false` otherwise.
|
|
163
174
|
*/
|
|
164
175
|
function simpleEqual(objectA, objectB) {
|
|
165
176
|
var stringifyToJSON = function stringifyToJSON(val) {
|
|
@@ -186,7 +197,7 @@ function simpleEqual(objectA, objectB) {
|
|
|
186
197
|
}
|
|
187
198
|
}
|
|
188
199
|
|
|
189
|
-
var version="17.0
|
|
200
|
+
var version="17.1.0-rc3";
|
|
190
201
|
|
|
191
202
|
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
192
203
|
// @ts-ignore
|
|
@@ -209,10 +220,12 @@ var HotTable = defineComponent({
|
|
|
209
220
|
if (this.hotInstance.isColumnModificationAllowed() || !this.hotInstance.isColumnModificationAllowed() && this.hotInstance.countSourceCols() === this.miscCache.currentSourceColumns) {
|
|
210
221
|
// If the dataset dimensions change, update the index mappers.
|
|
211
222
|
this.matchHotMappersSize();
|
|
223
|
+
|
|
212
224
|
// Data is automatically synchronized by reference.
|
|
213
225
|
delete settings.data;
|
|
214
226
|
}
|
|
215
227
|
}
|
|
228
|
+
|
|
216
229
|
// If there are another options changed, update the HOT settings, render the table otherwise.
|
|
217
230
|
if (Object.keys(settings).length) {
|
|
218
231
|
this.hotInstance.updateSettings(settings);
|
|
@@ -251,8 +264,8 @@ var HotTable = defineComponent({
|
|
|
251
264
|
};
|
|
252
265
|
},
|
|
253
266
|
methods: {
|
|
254
|
-
/**
|
|
255
|
-
* Initialize Handsontable.
|
|
267
|
+
/**
|
|
268
|
+
* Initialize Handsontable.
|
|
256
269
|
*/
|
|
257
270
|
hotInit: function hotInit() {
|
|
258
271
|
var newSettings = prepareSettings(this.$props);
|
|
@@ -305,10 +318,10 @@ var HotTable = defineComponent({
|
|
|
305
318
|
}
|
|
306
319
|
});
|
|
307
320
|
},
|
|
308
|
-
/**
|
|
309
|
-
* Get settings for the columns provided in the `hot-column` components.
|
|
310
|
-
*
|
|
311
|
-
* @returns {HotTableProps[] | undefined}
|
|
321
|
+
/**
|
|
322
|
+
* Get settings for the columns provided in the `hot-column` components.
|
|
323
|
+
*
|
|
324
|
+
* @returns {HotTableProps[] | undefined}
|
|
312
325
|
*/
|
|
313
326
|
getColumnSettings: function getColumnSettings() {
|
|
314
327
|
var columnSettings = Array.from(this.columnsCache.values());
|
|
@@ -342,9 +355,9 @@ var HotColumn = defineComponent({
|
|
|
342
355
|
props: propFactory('HotColumn'),
|
|
343
356
|
inject: ['columnsCache'],
|
|
344
357
|
methods: {
|
|
345
|
-
/**
|
|
346
|
-
* Create the column settings based on the data provided to the `hot-column`
|
|
347
|
-
* component and it's child components.
|
|
358
|
+
/**
|
|
359
|
+
* Create the column settings based on the data provided to the `hot-column`
|
|
360
|
+
* component and it's child components.
|
|
348
361
|
*/
|
|
349
362
|
createColumnSettings: function createColumnSettings() {
|
|
350
363
|
var assignedProps = filterPassedProps(this.$props);
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@handsontable/vue3",
|
|
3
|
-
"version": "17.0
|
|
3
|
+
"version": "17.1.0-rc3",
|
|
4
4
|
"description": "Best Data Grid for Vue with Spreadsheet Look and Feel.",
|
|
5
5
|
"author": "Handsoncode <hello@handsoncode.net> (https://handsoncode.net)",
|
|
6
6
|
"homepage": "https://handsontable.com",
|
package/HotColumn.vue.d.ts
DELETED
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
declare const HotColumn: import("vue").DefineComponent<{}, {}, {}, {}, {
|
|
2
|
-
/**
|
|
3
|
-
* Create the column settings based on the data provided to the `hot-column`
|
|
4
|
-
* component and it's child components.
|
|
5
|
-
*/
|
|
6
|
-
createColumnSettings(): void;
|
|
7
|
-
}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<{}> & Readonly<{}>, {
|
|
8
|
-
[x: string]: any;
|
|
9
|
-
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
|
|
10
|
-
export default HotColumn;
|
|
11
|
-
export { HotColumn };
|
package/HotTable.vue.d.ts
DELETED
|
@@ -1,32 +0,0 @@
|
|
|
1
|
-
import { VNode } from 'vue';
|
|
2
|
-
import Handsontable from 'handsontable/base';
|
|
3
|
-
import { HotTableProps } from './types';
|
|
4
|
-
declare const HotTable: import("vue").DefineComponent<{}, {}, {
|
|
5
|
-
__hotInstance: Handsontable;
|
|
6
|
-
miscCache: {
|
|
7
|
-
currentSourceColumns: any;
|
|
8
|
-
};
|
|
9
|
-
columnSettings: HotTableProps[];
|
|
10
|
-
columnsCache: Map<VNode<import("vue").RendererNode, import("vue").RendererElement, {
|
|
11
|
-
[key: string]: any;
|
|
12
|
-
}>, HotTableProps>;
|
|
13
|
-
hotInstance: Handsontable;
|
|
14
|
-
}, {}, {
|
|
15
|
-
/**
|
|
16
|
-
* Initialize Handsontable.
|
|
17
|
-
*/
|
|
18
|
-
hotInit(): void;
|
|
19
|
-
matchHotMappersSize(): void;
|
|
20
|
-
/**
|
|
21
|
-
* Get settings for the columns provided in the `hot-column` components.
|
|
22
|
-
*
|
|
23
|
-
* @returns {HotTableProps[] | undefined}
|
|
24
|
-
*/
|
|
25
|
-
getColumnSettings(): HotTableProps[] | void;
|
|
26
|
-
}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<{}> & Readonly<{}>, {
|
|
27
|
-
[x: string]: any;
|
|
28
|
-
}, {}, {}, {}, string, () => {
|
|
29
|
-
columnsCache: any;
|
|
30
|
-
}, true, {}, any>;
|
|
31
|
-
export default HotTable;
|
|
32
|
-
export { HotTable };
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
declare const HotColumn: import("vue").DefineComponent<{}, {}, {}, {}, {
|
|
2
|
-
/**
|
|
3
|
-
* Create the column settings based on the data provided to the `hot-column`
|
|
4
|
-
* component and it's child components.
|
|
5
|
-
*/
|
|
6
|
-
createColumnSettings(): void;
|
|
7
|
-
}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<{}> & Readonly<{}>, {
|
|
8
|
-
[x: string]: any;
|
|
9
|
-
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
|
|
10
|
-
export default HotColumn;
|
|
11
|
-
export { HotColumn };
|
|
@@ -1,32 +0,0 @@
|
|
|
1
|
-
import { VNode } from 'vue';
|
|
2
|
-
import Handsontable from 'handsontable/base';
|
|
3
|
-
import { HotTableProps } from './types';
|
|
4
|
-
declare const HotTable: import("vue").DefineComponent<{}, {}, {
|
|
5
|
-
__hotInstance: Handsontable;
|
|
6
|
-
miscCache: {
|
|
7
|
-
currentSourceColumns: any;
|
|
8
|
-
};
|
|
9
|
-
columnSettings: HotTableProps[];
|
|
10
|
-
columnsCache: Map<VNode<import("vue").RendererNode, import("vue").RendererElement, {
|
|
11
|
-
[key: string]: any;
|
|
12
|
-
}>, HotTableProps>;
|
|
13
|
-
hotInstance: Handsontable;
|
|
14
|
-
}, {}, {
|
|
15
|
-
/**
|
|
16
|
-
* Initialize Handsontable.
|
|
17
|
-
*/
|
|
18
|
-
hotInit(): void;
|
|
19
|
-
matchHotMappersSize(): void;
|
|
20
|
-
/**
|
|
21
|
-
* Get settings for the columns provided in the `hot-column` components.
|
|
22
|
-
*
|
|
23
|
-
* @returns {HotTableProps[] | undefined}
|
|
24
|
-
*/
|
|
25
|
-
getColumnSettings(): HotTableProps[] | void;
|
|
26
|
-
}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<{}> & Readonly<{}>, {
|
|
27
|
-
[x: string]: any;
|
|
28
|
-
}, {}, {}, {}, string, () => {
|
|
29
|
-
columnsCache: any;
|
|
30
|
-
}, true, {}, any>;
|
|
31
|
-
export default HotTable;
|
|
32
|
-
export { HotTable };
|
package/commonjs/helpers.d.ts
DELETED
|
@@ -1,36 +0,0 @@
|
|
|
1
|
-
import Handsontable from 'handsontable/base';
|
|
2
|
-
import { HotTableProps, VueProps } from './types';
|
|
3
|
-
/**
|
|
4
|
-
* Message for the warning thrown if the Handsontable instance has been destroyed.
|
|
5
|
-
*/
|
|
6
|
-
export declare const HOT_DESTROYED_WARNING: string;
|
|
7
|
-
/**
|
|
8
|
-
* Check if at specified `key` there is any value for `object`.
|
|
9
|
-
*
|
|
10
|
-
* @param {object} object Object to search value at specyfic key.
|
|
11
|
-
* @param {string} key String key to check.
|
|
12
|
-
* @returns {boolean}
|
|
13
|
-
*/
|
|
14
|
-
export declare function hasOwnProperty(object: unknown, key: string): boolean;
|
|
15
|
-
/**
|
|
16
|
-
* Generate an object containing all the available Handsontable properties and plugin hooks.
|
|
17
|
-
*
|
|
18
|
-
* @param {string} source Source for the factory (either 'HotTable' or 'HotColumn').
|
|
19
|
-
* @returns {object}
|
|
20
|
-
*/
|
|
21
|
-
export declare function propFactory(source: 'HotTable' | 'HotColumn'): VueProps<HotTableProps>;
|
|
22
|
-
/**
|
|
23
|
-
* Filter out all of the unassigned props, and return only the one passed to the component.
|
|
24
|
-
*
|
|
25
|
-
* @param {object} props Object containing all the possible props.
|
|
26
|
-
* @returns {object} Object containing only used props.
|
|
27
|
-
*/
|
|
28
|
-
export declare function filterPassedProps(props: any): VueProps<HotTableProps>;
|
|
29
|
-
/**
|
|
30
|
-
* Prepare the settings object to be used as the settings for Handsontable, based on the props provided to the component.
|
|
31
|
-
*
|
|
32
|
-
* @param {HotTableProps} props The props passed to the component.
|
|
33
|
-
* @param {Handsontable.GridSettings} currentSettings The current Handsontable settings.
|
|
34
|
-
* @returns {Handsontable.GridSettings} An object containing the properties, ready to be used within Handsontable.
|
|
35
|
-
*/
|
|
36
|
-
export declare function prepareSettings(props: HotTableProps, currentSettings?: Handsontable.GridSettings): HotTableProps;
|
package/commonjs/index.d.ts
DELETED
package/commonjs/types.d.ts
DELETED
package/dist/HotColumn.vue.d.ts
DELETED
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
declare const HotColumn: import("vue").DefineComponent<{}, {}, {}, {}, {
|
|
2
|
-
/**
|
|
3
|
-
* Create the column settings based on the data provided to the `hot-column`
|
|
4
|
-
* component and it's child components.
|
|
5
|
-
*/
|
|
6
|
-
createColumnSettings(): void;
|
|
7
|
-
}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<{}> & Readonly<{}>, {
|
|
8
|
-
[x: string]: any;
|
|
9
|
-
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
|
|
10
|
-
export default HotColumn;
|
|
11
|
-
export { HotColumn };
|
package/dist/HotTable.vue.d.ts
DELETED
|
@@ -1,32 +0,0 @@
|
|
|
1
|
-
import { VNode } from 'vue';
|
|
2
|
-
import Handsontable from 'handsontable/base';
|
|
3
|
-
import { HotTableProps } from './types';
|
|
4
|
-
declare const HotTable: import("vue").DefineComponent<{}, {}, {
|
|
5
|
-
__hotInstance: Handsontable;
|
|
6
|
-
miscCache: {
|
|
7
|
-
currentSourceColumns: any;
|
|
8
|
-
};
|
|
9
|
-
columnSettings: HotTableProps[];
|
|
10
|
-
columnsCache: Map<VNode<import("vue").RendererNode, import("vue").RendererElement, {
|
|
11
|
-
[key: string]: any;
|
|
12
|
-
}>, HotTableProps>;
|
|
13
|
-
hotInstance: Handsontable;
|
|
14
|
-
}, {}, {
|
|
15
|
-
/**
|
|
16
|
-
* Initialize Handsontable.
|
|
17
|
-
*/
|
|
18
|
-
hotInit(): void;
|
|
19
|
-
matchHotMappersSize(): void;
|
|
20
|
-
/**
|
|
21
|
-
* Get settings for the columns provided in the `hot-column` components.
|
|
22
|
-
*
|
|
23
|
-
* @returns {HotTableProps[] | undefined}
|
|
24
|
-
*/
|
|
25
|
-
getColumnSettings(): HotTableProps[] | void;
|
|
26
|
-
}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<{}> & Readonly<{}>, {
|
|
27
|
-
[x: string]: any;
|
|
28
|
-
}, {}, {}, {}, string, () => {
|
|
29
|
-
columnsCache: any;
|
|
30
|
-
}, true, {}, any>;
|
|
31
|
-
export default HotTable;
|
|
32
|
-
export { HotTable };
|
package/dist/helpers.d.ts
DELETED
|
@@ -1,36 +0,0 @@
|
|
|
1
|
-
import Handsontable from 'handsontable/base';
|
|
2
|
-
import { HotTableProps, VueProps } from './types';
|
|
3
|
-
/**
|
|
4
|
-
* Message for the warning thrown if the Handsontable instance has been destroyed.
|
|
5
|
-
*/
|
|
6
|
-
export declare const HOT_DESTROYED_WARNING: string;
|
|
7
|
-
/**
|
|
8
|
-
* Check if at specified `key` there is any value for `object`.
|
|
9
|
-
*
|
|
10
|
-
* @param {object} object Object to search value at specyfic key.
|
|
11
|
-
* @param {string} key String key to check.
|
|
12
|
-
* @returns {boolean}
|
|
13
|
-
*/
|
|
14
|
-
export declare function hasOwnProperty(object: unknown, key: string): boolean;
|
|
15
|
-
/**
|
|
16
|
-
* Generate an object containing all the available Handsontable properties and plugin hooks.
|
|
17
|
-
*
|
|
18
|
-
* @param {string} source Source for the factory (either 'HotTable' or 'HotColumn').
|
|
19
|
-
* @returns {object}
|
|
20
|
-
*/
|
|
21
|
-
export declare function propFactory(source: 'HotTable' | 'HotColumn'): VueProps<HotTableProps>;
|
|
22
|
-
/**
|
|
23
|
-
* Filter out all of the unassigned props, and return only the one passed to the component.
|
|
24
|
-
*
|
|
25
|
-
* @param {object} props Object containing all the possible props.
|
|
26
|
-
* @returns {object} Object containing only used props.
|
|
27
|
-
*/
|
|
28
|
-
export declare function filterPassedProps(props: any): VueProps<HotTableProps>;
|
|
29
|
-
/**
|
|
30
|
-
* Prepare the settings object to be used as the settings for Handsontable, based on the props provided to the component.
|
|
31
|
-
*
|
|
32
|
-
* @param {HotTableProps} props The props passed to the component.
|
|
33
|
-
* @param {Handsontable.GridSettings} currentSettings The current Handsontable settings.
|
|
34
|
-
* @returns {Handsontable.GridSettings} An object containing the properties, ready to be used within Handsontable.
|
|
35
|
-
*/
|
|
36
|
-
export declare function prepareSettings(props: HotTableProps, currentSettings?: Handsontable.GridSettings): HotTableProps;
|
package/dist/index.d.ts
DELETED
package/dist/types.d.ts
DELETED
package/helpers.d.ts
DELETED
|
@@ -1,36 +0,0 @@
|
|
|
1
|
-
import Handsontable from 'handsontable/base';
|
|
2
|
-
import { HotTableProps, VueProps } from './types';
|
|
3
|
-
/**
|
|
4
|
-
* Message for the warning thrown if the Handsontable instance has been destroyed.
|
|
5
|
-
*/
|
|
6
|
-
export declare const HOT_DESTROYED_WARNING: string;
|
|
7
|
-
/**
|
|
8
|
-
* Check if at specified `key` there is any value for `object`.
|
|
9
|
-
*
|
|
10
|
-
* @param {object} object Object to search value at specyfic key.
|
|
11
|
-
* @param {string} key String key to check.
|
|
12
|
-
* @returns {boolean}
|
|
13
|
-
*/
|
|
14
|
-
export declare function hasOwnProperty(object: unknown, key: string): boolean;
|
|
15
|
-
/**
|
|
16
|
-
* Generate an object containing all the available Handsontable properties and plugin hooks.
|
|
17
|
-
*
|
|
18
|
-
* @param {string} source Source for the factory (either 'HotTable' or 'HotColumn').
|
|
19
|
-
* @returns {object}
|
|
20
|
-
*/
|
|
21
|
-
export declare function propFactory(source: 'HotTable' | 'HotColumn'): VueProps<HotTableProps>;
|
|
22
|
-
/**
|
|
23
|
-
* Filter out all of the unassigned props, and return only the one passed to the component.
|
|
24
|
-
*
|
|
25
|
-
* @param {object} props Object containing all the possible props.
|
|
26
|
-
* @returns {object} Object containing only used props.
|
|
27
|
-
*/
|
|
28
|
-
export declare function filterPassedProps(props: any): VueProps<HotTableProps>;
|
|
29
|
-
/**
|
|
30
|
-
* Prepare the settings object to be used as the settings for Handsontable, based on the props provided to the component.
|
|
31
|
-
*
|
|
32
|
-
* @param {HotTableProps} props The props passed to the component.
|
|
33
|
-
* @param {Handsontable.GridSettings} currentSettings The current Handsontable settings.
|
|
34
|
-
* @returns {Handsontable.GridSettings} An object containing the properties, ready to be used within Handsontable.
|
|
35
|
-
*/
|
|
36
|
-
export declare function prepareSettings(props: HotTableProps, currentSettings?: Handsontable.GridSettings): HotTableProps;
|
package/index.d.ts
DELETED
package/types.d.ts
DELETED