@handsontable/vue3 12.2.0 → 12.3.0-next-bb1a7c2-20221208

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.
@@ -4,6 +4,6 @@ export interface HotTableProps extends Handsontable.GridSettings {
4
4
  settings?: Handsontable.GridSettings;
5
5
  [additional: string]: any;
6
6
  }
7
- export declare type VueProps<T> = {
7
+ export type VueProps<T> = {
8
8
  [P in keyof T]: any;
9
9
  };
@@ -120,7 +120,7 @@ function simpleEqual(objectA, objectB) {
120
120
  return JSON.stringify(objectA) === JSON.stringify(objectB);
121
121
  }
122
122
 
123
- var version="12.2.0";
123
+ var version="12.3.0-next-bb1a7c2-20221208";
124
124
 
125
125
  var HotTable = vue.defineComponent({
126
126
  name: 'HotTable',
@@ -185,7 +185,8 @@ var HotTable = vue.defineComponent({
185
185
  methods: {
186
186
  /**
187
187
  * Initialize Handsontable.
188
- */hotInit: function hotInit() {
188
+ */
189
+ hotInit: function hotInit() {
189
190
  var newSettings = prepareSettings(this.$props);
190
191
  newSettings.columns = this.columnSettings ? this.columnSettings : newSettings.columns;
191
192
  this.hotInstance = vue.markRaw(new Handsontable__default["default"].Core(this.$el, newSettings));
@@ -240,7 +241,8 @@ var HotTable = vue.defineComponent({
240
241
  * Get settings for the columns provided in the `hot-column` components.
241
242
  *
242
243
  * @returns {HotTableProps[] | undefined}
243
- */getColumnSettings: function getColumnSettings() {
244
+ */
245
+ getColumnSettings: function getColumnSettings() {
244
246
  var columnSettings = Array.from(this.columnsCache.values());
245
247
  return columnSettings.length ? columnSettings : void 0;
246
248
  }
@@ -289,6 +291,7 @@ function _objectSpread2(target) {
289
291
  return target;
290
292
  }
291
293
  function _defineProperty(obj, key, value) {
294
+ key = _toPropertyKey(key);
292
295
  if (key in obj) {
293
296
  Object.defineProperty(obj, key, {
294
297
  value: value,
@@ -301,6 +304,20 @@ function _defineProperty(obj, key, value) {
301
304
  }
302
305
  return obj;
303
306
  }
307
+ function _toPrimitive(input, hint) {
308
+ if (typeof input !== "object" || input === null) return input;
309
+ var prim = input[Symbol.toPrimitive];
310
+ if (prim !== undefined) {
311
+ var res = prim.call(input, hint || "default");
312
+ if (typeof res !== "object") return res;
313
+ throw new TypeError("@@toPrimitive must return a primitive value.");
314
+ }
315
+ return (hint === "string" ? String : Number)(input);
316
+ }
317
+ function _toPropertyKey(arg) {
318
+ var key = _toPrimitive(arg, "string");
319
+ return typeof key === "symbol" ? key : String(key);
320
+ }
304
321
 
305
322
  var HotColumn = vue.defineComponent({
306
323
  name: 'HotColumn',
@@ -310,7 +327,8 @@ var HotColumn = vue.defineComponent({
310
327
  /**
311
328
  * Create the column settings based on the data provided to the `hot-column`
312
329
  * component and it's child components.
313
- */createColumnSettings: function createColumnSettings() {
330
+ */
331
+ createColumnSettings: function createColumnSettings() {
314
332
  var assignedProps = filterPassedProps(this.$props);
315
333
  var columnSettings = _objectSpread2({}, assignedProps);
316
334
  if (assignedProps.renderer) {
package/dist/types.d.ts CHANGED
@@ -4,6 +4,6 @@ export interface HotTableProps extends Handsontable.GridSettings {
4
4
  settings?: Handsontable.GridSettings;
5
5
  [additional: string]: any;
6
6
  }
7
- export declare type VueProps<T> = {
7
+ export type VueProps<T> = {
8
8
  [P in keyof T]: any;
9
9
  };
@@ -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: 12.2.0 (built at Tue Oct 25 2022 12:06:12 GMT+0200 (Central European Summer Time))
28
+ * Version: 12.3.0-next-bb1a7c2-20221208 (built at Thu Dec 08 2022 08:21:32 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')) :
@@ -148,7 +148,7 @@ function simpleEqual(objectA, objectB) {
148
148
  return JSON.stringify(objectA) === JSON.stringify(objectB);
149
149
  }
150
150
 
151
- var version="12.2.0";
151
+ var version="12.3.0-next-bb1a7c2-20221208";
152
152
 
153
153
  var HotTable = vue.defineComponent({
154
154
  name: 'HotTable',
@@ -213,7 +213,8 @@ var HotTable = vue.defineComponent({
213
213
  methods: {
214
214
  /**
215
215
  * Initialize Handsontable.
216
- */hotInit: function hotInit() {
216
+ */
217
+ hotInit: function hotInit() {
217
218
  var newSettings = prepareSettings(this.$props);
218
219
  newSettings.columns = this.columnSettings ? this.columnSettings : newSettings.columns;
219
220
  this.hotInstance = vue.markRaw(new Handsontable__default["default"].Core(this.$el, newSettings));
@@ -268,7 +269,8 @@ var HotTable = vue.defineComponent({
268
269
  * Get settings for the columns provided in the `hot-column` components.
269
270
  *
270
271
  * @returns {HotTableProps[] | undefined}
271
- */getColumnSettings: function getColumnSettings() {
272
+ */
273
+ getColumnSettings: function getColumnSettings() {
272
274
  var columnSettings = Array.from(this.columnsCache.values());
273
275
  return columnSettings.length ? columnSettings : void 0;
274
276
  }
@@ -317,6 +319,7 @@ function _objectSpread2(target) {
317
319
  return target;
318
320
  }
319
321
  function _defineProperty(obj, key, value) {
322
+ key = _toPropertyKey(key);
320
323
  if (key in obj) {
321
324
  Object.defineProperty(obj, key, {
322
325
  value: value,
@@ -329,6 +332,20 @@ function _defineProperty(obj, key, value) {
329
332
  }
330
333
  return obj;
331
334
  }
335
+ function _toPrimitive(input, hint) {
336
+ if (typeof input !== "object" || input === null) return input;
337
+ var prim = input[Symbol.toPrimitive];
338
+ if (prim !== undefined) {
339
+ var res = prim.call(input, hint || "default");
340
+ if (typeof res !== "object") return res;
341
+ throw new TypeError("@@toPrimitive must return a primitive value.");
342
+ }
343
+ return (hint === "string" ? String : Number)(input);
344
+ }
345
+ function _toPropertyKey(arg) {
346
+ var key = _toPrimitive(arg, "string");
347
+ return typeof key === "symbol" ? key : String(key);
348
+ }
332
349
 
333
350
  var HotColumn = vue.defineComponent({
334
351
  name: 'HotColumn',
@@ -338,7 +355,8 @@ var HotColumn = vue.defineComponent({
338
355
  /**
339
356
  * Create the column settings based on the data provided to the `hot-column`
340
357
  * component and it's child components.
341
- */createColumnSettings: function createColumnSettings() {
358
+ */
359
+ createColumnSettings: function createColumnSettings() {
342
360
  var assignedProps = filterPassedProps(this.$props);
343
361
  var columnSettings = _objectSpread2({}, assignedProps);
344
362
  if (assignedProps.renderer) {
@@ -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 return JSON.stringify(objectA) === JSON.stringify(objectB);\n}\n","<template>\n <div :id=\"id\">\n <slot></slot>\n </div>\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent, VNode, markRaw } from 'vue';\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\">\nimport { defineComponent, VNode, markRaw } from 'vue';\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\">\nimport { defineComponent } from 'vue';\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","Math","random","toString","substring","filterPassedProps","props","filteredProps","columnSettingsProp","propName","prepareSettings","currentSettings","assignedProps","hotSettingsInProps","additionalHotSettingsInProps","newSettings","simpleEqual","objectA","objectB","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","getSourceData","rowsToRemove","columnsToRemove","indexMapperRowCount","rowIndexMapper","getNumberOfIndexes","indexMapperColumnCount","r","push","columnIndexMapper","c","batch","removeIndexes","insertIndexes","getColumnSettings","Array","from","values","mounted","beforeUnmount","destroy","version","packageJson","_createElementBlock","_ctx","_renderSlot","$slots","HotColumn","inject","createColumnSettings","renderer","editor","set","unmounted"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAGA,IAAMA,oBAAoB,GAAGC,MAAM,CAAC,YAAY,CAAC,CAAA;AAEjD;;AAEG;AACI,IAAMC,qBAAqB,GAAG,+EAA+E,GAClH,iBAAiB,CAAA;AAEnB;;;;;;AAMG;AACa,SAAAC,cAAc,CAACC,MAAe,EAAEC,GAAW,EAAA;EACzD,OAAOC,MAAM,CAACC,SAAS,CAACJ,cAAc,CAACK,IAAI,CAACJ,MAAM,EAAEC,GAAG,CAAC,CAAA;AAC1D,CAAA;AAEA;;;;;AAKG;AACG,SAAUI,WAAW,CAACC,MAAgC,EAAA;AAC1D,EAAA,IAAMC,eAAe,GAAGC,gCAAY,CAACC,KAAK,CAACC,aAAa,EAAE,CAAA;EAC1D,IAAMC,UAAU,GAA4B,EAAE,CAAA;EAE9CT,MAAM,CAACU,MAAM,CAACD,UAAU,EAAEH,gCAAY,CAACK,eAAe,CAAC,CAAA;AAEvD;AACA,EAAA,KAAK,IAAMC,IAAI,IAAIH,UAAU,EAAE;IAC7BA,UAAU,CAACG,IAAI,CAAC,GAAG;MACjB,SAASlB,EAAAA,oBAAAA;KACV,CAAA;AACF,GAAA;AAED,EAAA,KAAK,IAAImB,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGR,eAAe,CAACS,MAAM,EAAED,CAAC,EAAE,EAAE;AAC/CJ,IAAAA,UAAU,CAACJ,eAAe,CAACQ,CAAC,CAAC,CAAC,GAAG;MAC/B,SAASnB,EAAAA,oBAAAA;KACV,CAAA;AACF,GAAA;EAEDe,UAAU,CAACM,QAAQ,GAAG;IACpB,SAASrB,EAAAA,oBAAAA;GACV,CAAA;EAED,IAAIU,MAAM,KAAK,UAAU,EAAE;IACzBK,UAAU,CAACO,EAAE,GAAG;AACdC,MAAAA,IAAI,EAAEC,MAAM;AACZ,MAAA,SAAA,EAAA,MAAA,CAAA,MAAA,CAAgBC,IAAI,CAACC,MAAM,EAAE,CAACC,QAAQ,CAAC,EAAE,CAAC,CAACC,SAAS,CAAC,CAAC,CAAC,CAAA;KACxD,CAAA;AACF,GAAA;AAED,EAAA,OAAOb,UAAU,CAAA;AACnB,CAAA;AAEA;;;;;AAKG;AACG,SAAUc,iBAAiB,CAACC,KAAK,EAAA;EACrC,IAAMC,aAAa,GAA4B,EAAE,CAAA;AACjD,EAAA,IAAMC,kBAAkB,GAAGF,KAAK,CAACT,QAAQ,CAAA;EAEzC,IAAIW,kBAAkB,KAAKhC,oBAAoB,EAAE;AAC/C;AACA,IAAA,KAAK,IAAMiC,QAAQ,IAAID,kBAAkB,EAAE;AACzC,MAAA,IAAI7B,cAAc,CAAC6B,kBAAkB,EAAEC,QAAQ,CAAC,IAAID,kBAAkB,CAACC,QAAQ,CAAC,KAAKjC,oBAAoB,EAAE;AACzG+B,QAAAA,aAAa,CAACE,QAAQ,CAAC,GAAGD,kBAAkB,CAACC,QAAQ,CAAC,CAAA;AACvD,OAAA;AACF,KAAA;AACF,GAAA;AAED;AACA,EAAA,KAAK,IAAMA,SAAQ,IAAIH,KAAK,EAAE;AAC5B,IAAA,IAAI3B,cAAc,CAAC2B,KAAK,EAAEG,SAAQ,CAAC,IAAIA,SAAQ,KAAK,UAAU,IAAIH,KAAK,CAACG,SAAQ,CAAC,KAAKjC,oBAAoB,EAAE;AAC1G+B,MAAAA,aAAa,CAACE,SAAQ,CAAC,GAAGH,KAAK,CAACG,SAAQ,CAAC,CAAA;AAC1C,KAAA;AACF,GAAA;AAED,EAAA,OAAOF,aAAa,CAAA;AACtB,CAAA;AAEA;;;;;;AAMG;AACa,SAAAG,eAAe,CAACJ,KAAoB,EAAEK,eAA2C,EAAA;AAC/F,EAAA,IAAMC,aAAa,GAA4BP,iBAAiB,CAACC,KAAK,CAAC,CAAA;EACvE,IAAMO,kBAAkB,GAA8BP,KAAK,CAACT,QAAQ,GAAGS,KAAK,CAACT,QAAQ,GAAGe,aAAa,CAAA;EACrG,IAAME,4BAA4B,GAA8BR,KAAK,CAACT,QAAQ,GAAGe,aAAa,GAAG,IAAI,CAAA;EACrG,IAAMG,WAAW,GAA8B,EAAE,CAAA;AAEjD;AACA,EAAA,KAAK,IAAMlC,GAAG,IAAIgC,kBAAkB,EAAE;AACpC,IAAA,IACElC,cAAc,CAACkC,kBAAkB,EAAEhC,GAAG,CAAC,IACvCgC,kBAAkB,CAAChC,GAAG,CAAC,KAAK,KAAK,CAAC,KAChC8B,eAAe,IAAI9B,GAAG,KAAK,MAAM,GAAI,CAACmC,WAAW,CAACL,eAAe,CAAC9B,GAAG,CAAC,EAAEgC,kBAAkB,CAAChC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,EAC1G;AACAkC,MAAAA,WAAW,CAAClC,GAAG,CAAC,GAAGgC,kBAAkB,CAAChC,GAAG,CAAC,CAAA;AAC3C,KAAA;AACF,GAAA;AAED;AACA,EAAA,KAAK,IAAMA,IAAG,IAAIiC,4BAA4B,EAAE;IAC9C,IACEnC,cAAc,CAACmC,4BAA4B,EAAEjC,IAAG,CAAC,IACjDA,IAAG,KAAK,IAAI,IACZA,IAAG,KAAK,UAAU,IAClBiC,4BAA4B,CAACjC,IAAG,CAAC,KAAK,KAAK,CAAC,KAC1C8B,eAAe,IAAI9B,IAAG,KAAK,MAAM,GAC/B,CAACmC,WAAW,CAACL,eAAe,CAAC9B,IAAG,CAAC,EAAEiC,4BAA4B,CAACjC,IAAG,CAAC,CAAC,GAAG,IAAI,CAAC,EACjF;AACAkC,MAAAA,WAAW,CAAClC,IAAG,CAAC,GAAGiC,4BAA4B,CAACjC,IAAG,CAAC,CAAA;AACrD,KAAA;AACF,GAAA;AAED,EAAA,OAAOkC,WAAW,CAAA;AACpB,CAAA;AAEA;;;;;;;;AAQG;AACH,SAASC,WAAW,CAACC,OAAO,EAAEC,OAAO,EAAA;AACnC,EAAA,OAAOC,IAAI,CAACC,SAAS,CAACH,OAAO,CAAC,KAAKE,IAAI,CAACC,SAAS,CAACF,OAAO,CAAC,CAAA;AAC5D;;;;AC3HMG,IAAAA,QAAO,GAAIC,mBAAe,CAAC;AAC/BC,EAAAA,IAAI,EAAE,UAAU;AAChBjB,EAAAA,KAAK,EAAErB,WAAW,CAAC,UAAU,CAAC;AAC9BuC,EAAAA,OAAO,EAAA,SAAA,OAAA,GAAA;IACL,OAAO;MACLC,YAAY,EAAE,IAAI,CAACA,YAAAA;KACpB,CAAA;GACF;AACDC,EAAAA,KAAK,EAAE;AACLC,IAAAA,MAAM,EAAE;MACNC,OAAO,EAAA,SAAA,OAAA,CAACtB,KAAK,EAAA;AACX,QAAA,IAAMT,QAAO,GAAIa,eAAe,CAACJ,KAAK,EAAE,IAAI,CAACuB,WAAY,GAAE,IAAI,CAACA,WAAW,CAACC,WAAW,KAAK,KAAK,CAAC,CAAC,CAAA;QAEnG,IAAI,CAAC,IAAI,CAACD,WAAY,IAAGhC,QAAS,KAAI,KAAK,CAAC,EAAE;AAC5C,UAAA,OAAA;AACF,SAAA;QAEA,IAAIA,QAAQ,CAACkC,IAAI,EAAE;UACjB,IACE,IAAI,CAACF,WAAW,CAACG,2BAA2B,EAAC,IAE3C,CAAC,IAAI,CAACH,WAAW,CAACG,2BAA2B,EAAC,IAC9C,IAAI,CAACH,WAAW,CAACI,eAAe,EAAG,KAAI,IAAI,CAACC,SAAS,CAACC,oBACxD,EACA;AACA;YACA,IAAI,CAACC,mBAAmB,EAAE,CAAA;AAE1B;YACA,OAAOvC,QAAQ,CAACkC,IAAI,CAAA;AACtB,WAAA;AACF,SAAA;AAEA;QACA,IAAIjD,MAAM,CAACuD,IAAI,CAACxC,QAAQ,CAAC,CAACD,MAAM,EAAE;AAChC,UAAA,IAAI,CAACiC,WAAW,CAACS,cAAc,CAACzC,QAAQ,CAAC,CAAA;AAEzC,SAAA,MAAK;AACL,UAAA,IAAI,CAACgC,WAAW,CAACU,MAAM,EAAE,CAAA;AAC3B,SAAA;QAEA,IAAI,CAACL,SAAS,CAACC,oBAAmB,GAAI,IAAI,CAACN,WAAW,CAACI,eAAe,EAAE,CAAA;OACzE;AACDO,MAAAA,IAAI,EAAE,IAAI;AACVC,MAAAA,SAAS,EAAE,IAAA;AACZ,KAAA;GACF;AACDV,EAAAA,IAAI,EAAA,SAAA,IAAA,GAAA;IACF,OAAO;AACL;AACAW,MAAAA,aAAa,EAAE,IAAoB;AACnC;AACAR,MAAAA,SAAS,EAAE;AACTC,QAAAA,oBAAoB,EAAE,IAAA;OACvB;AACDQ,MAAAA,cAAc,EAAE,IAAuB;MACvClB,YAAY,EAAE,IAAImB,GAAG,EAAwB;AAC7C,MAAA,IAAIf,WAAW,GAAA;AACb,QAAA,IAAI,CAAC,IAAI,CAACa,iBAAkB,IAAI,CAACA,aAAc,IAAG,CAAC,IAAI,CAACA,aAAa,CAACG,WAAY,EAAE;AAElF;UACA,OAAO,IAAI,CAACH,aAAa,CAAA;AAEzB,SAAA,MAAK;AACL;AACAI,UAAAA,OAAO,CAACC,IAAI,CAACrE,qBAAqB,CAAC,CAAA;AAEnC,UAAA,OAAO,IAAI,CAAA;AACb,SAAA;OACD;MACD,IAAImD,WAAW,CAACA,WAAyB,EAAA;QACvC,IAAI,CAACa,aAAc,GAAEb,WAAW,CAAA;AAClC,OAAA;KACD,CAAA;GACF;AACDmB,EAAAA,OAAO,EAAE;AACP;;AAEE,OACFC,OAAO,EAAA,SAAA,OAAA,GAAA;AACL,MAAA,IAAMlC,WAAU,GAAIL,eAAe,CAAC,IAAI,CAACiB,MAAM,CAAC,CAAA;AAEhDZ,MAAAA,WAAW,CAACmC,OAAM,GAAI,IAAI,CAACP,cAAa,GAAI,IAAI,CAACA,cAAa,GAAI5B,WAAW,CAACmC,OAAO,CAAA;AAErF,MAAA,IAAI,CAACrB,WAAY,GAAEsB,WAAO,CAAe,IAAI/D,gCAAY,CAACgE,IAAI,CAAC,IAAI,CAACC,GAAG,EAAEtC,WAAW,CAAC,CAAC,CAAA;AACtF,MAAA,IAAI,CAACc,WAAW,CAACyB,IAAI,EAAE,CAAA;MAEvB,IAAI,CAACpB,SAAS,CAACC,oBAAmB,GAAI,IAAI,CAACN,WAAW,CAACI,eAAe,EAAE,CAAA;KACzE;AAEDG,IAAAA,mBAAmB,EAAA,SAAA,mBAAA,GAAA;AAAA,MAAA,IAAA,KAAA,GAAA,IAAA,CAAA;AACjB,MAAA,IAAI,CAAC,IAAI,CAACP,WAAW,EAAE;AACrB,QAAA,OAAA;AACF,OAAA;AAEA,MAAA,IAAME,IAAI,GAA+B,IAAI,CAACF,WAAW,CAAC0B,aAAa,EAAE,CAAA;MACzE,IAAMC,YAAY,GAAa,EAAE,CAAA;MACjC,IAAMC,eAAe,GAAa,EAAE,CAAA;MACpC,IAAMC,mBAAoB,GAAE,IAAI,CAAC7B,WAAW,CAAC8B,cAAc,CAACC,kBAAkB,EAAE,CAAA;AAChF,MAAA,IAAM5B,8BAA8B,IAAI,CAACH,WAAW,CAACG,2BAA2B,EAAE,CAAA;MAClF,IAAI6B,sBAAuB,GAAE,CAAC,CAAA;AAE9B,MAAA,IAAI9B,IAAG,IAAKA,IAAI,CAACnC,MAAO,KAAI8D,mBAAmB,EAAE;AAC/C,QAAA,IAAI3B,IAAI,CAACnC,MAAK,GAAI8D,mBAAmB,EAAE;AACrC,UAAA,KAAK,IAAII,CAAA,GAAI/B,IAAI,CAACnC,MAAM,EAAEkE,CAAE,GAAEJ,mBAAmB,EAAEI,CAAC,EAAE,EAAE;AACtDN,YAAAA,YAAY,CAACO,IAAI,CAACD,CAAC,CAAC,CAAA;AACtB,WAAA;AACF,SAAA;AACF,OAAA;AAEA,MAAA,IAAI9B,2BAA2B,EAAE;AAAA,QAAA,IAAA,MAAA,CAAA;QAC/B6B,yBAAyB,IAAI,CAAChC,WAAW,CAACmC,iBAAiB,CAACJ,kBAAkB,EAAE,CAAA;AAEhF,QAAA,IAAI7B,IAAK,IAAGA,IAAI,CAAC,CAAC,CAAE,IAAG,CAAA,CAAA,MAAA,GAAAA,IAAI,CAAC,CAAC,CAAC,MAAA,IAAA,IAAA,MAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAP,OAASnC,MAAO,MAAIiE,sBAAsB,EAAE;UACjE,IAAI9B,IAAI,CAAC,CAAC,CAAC,CAACnC,MAAK,GAAIiE,sBAAsB,EAAE;AAC3C,YAAA,KAAK,IAAII,CAAA,GAAIlC,IAAI,CAAC,CAAC,CAAC,CAACnC,MAAM,EAAEqE,CAAE,GAAEJ,sBAAsB,EAAEI,CAAC,EAAE,EAAE;AAC5DR,cAAAA,eAAe,CAACM,IAAI,CAACE,CAAC,CAAC,CAAA;AACzB,aAAA;AACF,WAAA;AACF,SAAA;AACF,OAAA;AAEA,MAAA,IAAI,CAACpC,WAAW,CAACqC,KAAK,CAAC,YAAM;AAC3B,QAAA,IAAIV,YAAY,CAAC5D,MAAK,GAAI,CAAC,EAAE;UAC3B,KAAI,CAACiC,WAAW,CAAC8B,cAAc,CAACQ,aAAa,CAACX,YAAY,CAAC,CAAA;AAE3D,SAAA,MAAK;AACL,UAAA,KAAI,CAAC3B,WAAW,CAAC8B,cAAa,CAC3BS,aAAa,CAACV,mBAAkB,GAAI,CAAC,EAAE3B,IAAI,CAACnC,MAAO,GAAE8D,mBAAmB,CAAC,CAAA;AAC9E,SAAA;AAEA,QAAA,IAAI1B,2BAA0B,IAAKD,IAAI,CAACnC,WAAW,CAAC,EAAE;AACpD,UAAA,IAAI6D,eAAe,CAAC7D,MAAK,GAAI,CAAC,EAAE;YAC9B,KAAI,CAACiC,WAAW,CAACmC,iBAAiB,CAACG,aAAa,CAACV,eAAe,CAAC,CAAA;AAEjE,WAAA,MAAK;AACL,YAAA,KAAI,CAAC5B,WAAW,CAACmC,iBAAgB,CAC9BI,aAAa,CAACP,yBAAyB,CAAC,EAAE9B,IAAI,CAAC,CAAC,CAAC,CAACnC,MAAK,GAAIiE,sBAAsB,CAAC,CAAA;AACvF,WAAA;AACF,SAAA;AACF,OAAC,CAAC,CAAA;KACH;AAED;;;;AAIE,OACFQ,iBAAiB,EAAA,SAAA,iBAAA,GAAA;AACf,MAAA,IAAM1B,cAAc,GAAoB2B,KAAK,CAACC,IAAI,CAAC,IAAI,CAAC9C,YAAY,CAAC+C,MAAM,EAAE,CAAC,CAAA;AAE9E,MAAA,OAAO7B,cAAc,CAAC/C,MAAK,GAAI+C,cAAa,GAAI,KAAK,CAAC,CAAA;AACxD,KAAA;GACD;AACD8B,EAAAA,OAAO,EAAA,SAAA,OAAA,GAAA;AACL,IAAA,IAAI,CAAC9B,cAAa,GAAI,IAAI,CAAC0B,iBAAiB,EAAE,CAAA;IAC9C,IAAI,CAACpB,OAAO,EAAE,CAAA;GACf;AACDyB,EAAAA,aAAa,EAAA,SAAA,aAAA,GAAA;IACX,IAAI,IAAI,CAAC7C,WAAW,EAAE;AACpB,MAAA,IAAI,CAACA,WAAW,CAAC8C,OAAO,EAAE,CAAA;AAC5B,KAAA;GACD;EACDC,OAAO,EAAGC,OAA+CD;AAC1D,CAAA;;;;0BCtLCE,sBAEK,CAAA,KAAA,EAAA;IAFChF,EAAE,EAAEiF,IAAE,CAAAjF,EAAAA;AAAA,GAAA,EAAA,CACVkF,cAAY,CAAAD,IAAA,CAAAE,MAAA,EAAA,SAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACKVC,IAAAA,SAAU,GAAE5D,mBAAe,CAAC;AAChCC,EAAAA,IAAI,EAAE,WAAW;AACjBjB,EAAAA,KAAK,EAAErB,WAAW,CAAC,WAAW,CAAC;EAC/BkG,MAAM,EAAE,CAAC,cAAc,CAAC;AACxBnC,EAAAA,OAAO,EAAE;AACP;;;AAGE,OACFoC,oBAAoB,EAAA,SAAA,oBAAA,GAAA;AAClB,MAAA,IAAMxE,gBAAgBP,iBAAiB,CAAC,IAAI,CAACsB,MAAM,CAAC,CAAA;MACpD,IAAMgB,cAAa,GAAS/B,cAAAA,CAAAA,EAAAA,EAAAA,cAAe,CAAA;MAE3C,IAAIA,aAAa,CAACyE,QAAQ,EAAE;AAC1B1C,QAAAA,cAAc,CAAC0C,QAAO,GAAIzE,aAAa,CAACyE,QAAQ,CAAA;AAClD,OAAA;MAEA,IAAIzE,aAAa,CAAC0E,MAAM,EAAE;AACxB3C,QAAAA,cAAc,CAAC2C,MAAK,GAAI1E,aAAa,CAAC0E,MAAM,CAAA;AAC9C,OAAA;MAEA,IAAI,CAAC7D,YAAY,CAAC8D,GAAG,CAAC,IAAI,EAAE5C,cAAc,CAAC,CAAA;AAC7C,KAAA;GACD;AACD8B,EAAAA,OAAO,EAAA,SAAA,OAAA,GAAA;IACL,IAAI,CAACW,oBAAoB,EAAE,CAAA;GAC5B;AACDI,EAAAA,SAAS,EAAA,SAAA,SAAA,GAAA;AACP,IAAA,IAAI,CAAC/D,YAAY,CAAO,QAAA,CAAA,CAAC,IAAI,CAAC,CAAA;GAC/B;AACDc,EAAAA,MAAM,EAAA,SAAA,MAAA,GAAA;AACJ,IAAA,OAAO,IAAI,CAAA;AACb,GAAA;AACD,CAAA;;;;;;;;;;;;;;"}
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 return JSON.stringify(objectA) === JSON.stringify(objectB);\n}\n","<template>\n <div :id=\"id\">\n <slot></slot>\n </div>\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent, VNode, markRaw } from 'vue';\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\">\nimport { defineComponent, VNode, markRaw } from 'vue';\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\">\nimport { defineComponent } from 'vue';\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","Math","random","toString","substring","filterPassedProps","props","filteredProps","columnSettingsProp","propName","prepareSettings","currentSettings","assignedProps","hotSettingsInProps","additionalHotSettingsInProps","newSettings","simpleEqual","objectA","objectB","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","getSourceData","rowsToRemove","columnsToRemove","indexMapperRowCount","rowIndexMapper","getNumberOfIndexes","indexMapperColumnCount","r","push","columnIndexMapper","c","batch","removeIndexes","insertIndexes","getColumnSettings","Array","from","values","mounted","beforeUnmount","destroy","version","packageJson","_createElementBlock","_ctx","_renderSlot","$slots","HotColumn","inject","createColumnSettings","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: 12.2.0 (built at Tue Oct 25 2022 12:06:20 GMT+0200 (Central European Summer Time))
28
+ * Version: 12.3.0-next-bb1a7c2-20221208 (built at Thu Dec 08 2022 08:21:40 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 s=o(n),r=Symbol("unassigned");function i(t,e){return Object.prototype.hasOwnProperty.call(t,e)}function a(t){var e=s.default.hooks.getRegistered(),n={};for(var o in Object.assign(n,s.default.DefaultSettings),n)n[o]={default:r};for(var i=0;e.length>i;i++)n[e[i]]={default:r};return n.settings={default:r},"HotTable"===t&&(n.id={type:String,default:"hot-".concat(Math.random().toString(36).substring(5))}),n}function c(t){var e={},n=t.settings;if(n!==r)for(var o in n)i(n,o)&&n[o]!==r&&(e[o]=n[o]);for(var s in t)i(t,s)&&"settings"!==s&&t[s]!==r&&(e[s]=t[s]);return e}function u(t,e){var n=c(t),o=t.settings?t.settings:n,s=t.settings?n:null,r={};for(var a in o)!i(o,a)||void 0===o[a]||e&&"data"!==a&&l(e[a],o[a])||(r[a]=o[a]);for(var u in s)!i(s,u)||"id"===u||"settings"===u||void 0===s[u]||e&&"data"!==u&&l(e[u],s[u])||(r[u]=s[u]);return r}function l(t,e){return JSON.stringify(t)===JSON.stringify(e)}var h=e.defineComponent({name:"HotTable",props:a("HotTable"),provide:function(){return{columnsCache:this.columnsCache}},watch:{$props:{handler:function(t){var e=u(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=u(this.$props);t.columns=this.columnSettings?this.columnSettings:t.columns,this.hotInstance=e.markRaw(new s.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=[],s=[],r=this.hotInstance.rowIndexMapper.getNumberOfIndexes(),i=this.hotInstance.isColumnModificationAllowed(),a=0;if(n&&n.length!==r&&r>n.length)for(var c=n.length;r>c;c++)o.push(c);if(i)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++)s.push(u);this.hotInstance.batch((function(){o.length>0?t.hotInstance.rowIndexMapper.removeIndexes(o):t.hotInstance.rowIndexMapper.insertIndexes(r-1,n.length-r),i&&0!==n.length&&(s.length>0?t.hotInstance.columnIndexMapper.removeIndexes(s):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:"12.2.0"}),d=["id"];function f(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 p(t,e,n){return e in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}h.render=function(t,n,o,s,r,i){return e.openBlock(),e.createElementBlock("div",{id:t.id},[e.renderSlot(t.$slots,"default")],8,d)},h.__file="src/HotTable.vue";var m=e.defineComponent({name:"HotColumn",props:a("HotColumn"),inject:["columnsCache"],methods:{createColumnSettings:function(){var t=c(this.$props),e=function(t){for(var e=1;arguments.length>e;e++){var n=null!=arguments[e]?arguments[e]:{};e%2?f(Object(n),!0).forEach((function(e){p(t,e,n[e])})):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):f(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}});m.__file="src/HotColumn.vue",t.HotColumn=m,t.HotTable=h,t.default=h,Object.defineProperty(t,"__esModule",{value:!0})}));
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),i=Symbol("unassigned");function s(t,e){return Object.prototype.hasOwnProperty.call(t,e)}function a(t){var e=r.default.hooks.getRegistered(),n={};for(var o in Object.assign(n,r.default.DefaultSettings),n)n[o]={default:i};for(var s=0;e.length>s;s++)n[e[s]]={default:i};return n.settings={default:i},"HotTable"===t&&(n.id={type:String,default:"hot-".concat(Math.random().toString(36).substring(5))}),n}function c(t){var e={},n=t.settings;if(n!==i)for(var o in n)s(n,o)&&n[o]!==i&&(e[o]=n[o]);for(var r in t)s(t,r)&&"settings"!==r&&t[r]!==i&&(e[r]=t[r]);return e}function u(t,e){var n=c(t),o=t.settings?t.settings:n,r=t.settings?n:null,i={};for(var a in o)!s(o,a)||void 0===o[a]||e&&"data"!==a&&l(e[a],o[a])||(i[a]=o[a]);for(var u in r)!s(r,u)||"id"===u||"settings"===u||void 0===r[u]||e&&"data"!==u&&l(e[u],r[u])||(i[u]=r[u]);return i}function l(t,e){return JSON.stringify(t)===JSON.stringify(e)}var h=e.defineComponent({name:"HotTable",props:a("HotTable"),provide:function(){return{columnsCache:this.columnsCache}},watch:{$props:{handler:function(t){var e=u(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=u(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:"12.3.0-next-bb1a7c2-20221208"}),d=["id"];function f(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 m(t,e,n){return(e=function(t){var e=function(t,e){if("object"!=typeof t||null===t)return t;var n=t[Symbol.toPrimitive];if(void 0!==n){var o=n.call(t,e||"default");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}h.render=function(t,n,o,r,i,s){return e.openBlock(),e.createElementBlock("div",{id:t.id},[e.renderSlot(t.$slots,"default")],8,d)},h.__file="src/HotTable.vue";var p=e.defineComponent({name:"HotColumn",props:a("HotColumn"),inject:["columnsCache"],methods:{createColumnSettings:function(){var t=c(this.$props),e=function(t){for(var e=1;arguments.length>e;e++){var n=null!=arguments[e]?arguments[e]:{};e%2?f(Object(n),!0).forEach((function(e){m(t,e,n[e])})):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):f(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}});p.__file="src/HotColumn.vue",t.HotColumn=p,t.HotTable=h,t.default=h,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 return JSON.stringify(objectA) === JSON.stringify(objectB);\n}\n","<template>\n <div :id=\"id\">\n <slot></slot>\n </div>\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent, VNode, markRaw } from 'vue';\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\">\nimport { defineComponent, VNode, markRaw } from 'vue';\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\">\nimport { defineComponent } from 'vue';\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","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","createElementBlock","_ctx","_renderSlot","$slots","HotColumn","inject","createColumnSettings","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 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 return JSON.stringify(objectA) === JSON.stringify(objectB);\n}\n","<template>\n <div :id=\"id\">\n <slot></slot>\n </div>\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent, VNode, markRaw } from 'vue';\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\">\nimport { defineComponent, VNode, markRaw } from 'vue';\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\">\nimport { defineComponent } from 'vue';\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","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","createElementBlock","_ctx","_renderSlot","$slots","HotColumn","inject","createColumnSettings","renderer","editor","set","unmounted"],"mappings":"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"}
@@ -112,7 +112,7 @@ function simpleEqual(objectA, objectB) {
112
112
  return JSON.stringify(objectA) === JSON.stringify(objectB);
113
113
  }
114
114
 
115
- var version="12.2.0";
115
+ var version="12.3.0-next-bb1a7c2-20221208";
116
116
 
117
117
  var HotTable = defineComponent({
118
118
  name: 'HotTable',
@@ -177,7 +177,8 @@ var HotTable = defineComponent({
177
177
  methods: {
178
178
  /**
179
179
  * Initialize Handsontable.
180
- */hotInit: function hotInit() {
180
+ */
181
+ hotInit: function hotInit() {
181
182
  var newSettings = prepareSettings(this.$props);
182
183
  newSettings.columns = this.columnSettings ? this.columnSettings : newSettings.columns;
183
184
  this.hotInstance = markRaw(new Handsontable.Core(this.$el, newSettings));
@@ -232,7 +233,8 @@ var HotTable = defineComponent({
232
233
  * Get settings for the columns provided in the `hot-column` components.
233
234
  *
234
235
  * @returns {HotTableProps[] | undefined}
235
- */getColumnSettings: function getColumnSettings() {
236
+ */
237
+ getColumnSettings: function getColumnSettings() {
236
238
  var columnSettings = Array.from(this.columnsCache.values());
237
239
  return columnSettings.length ? columnSettings : void 0;
238
240
  }
@@ -281,6 +283,7 @@ function _objectSpread2(target) {
281
283
  return target;
282
284
  }
283
285
  function _defineProperty(obj, key, value) {
286
+ key = _toPropertyKey(key);
284
287
  if (key in obj) {
285
288
  Object.defineProperty(obj, key, {
286
289
  value: value,
@@ -293,6 +296,20 @@ function _defineProperty(obj, key, value) {
293
296
  }
294
297
  return obj;
295
298
  }
299
+ function _toPrimitive(input, hint) {
300
+ if (typeof input !== "object" || input === null) return input;
301
+ var prim = input[Symbol.toPrimitive];
302
+ if (prim !== undefined) {
303
+ var res = prim.call(input, hint || "default");
304
+ if (typeof res !== "object") return res;
305
+ throw new TypeError("@@toPrimitive must return a primitive value.");
306
+ }
307
+ return (hint === "string" ? String : Number)(input);
308
+ }
309
+ function _toPropertyKey(arg) {
310
+ var key = _toPrimitive(arg, "string");
311
+ return typeof key === "symbol" ? key : String(key);
312
+ }
296
313
 
297
314
  var HotColumn = defineComponent({
298
315
  name: 'HotColumn',
@@ -302,7 +319,8 @@ var HotColumn = defineComponent({
302
319
  /**
303
320
  * Create the column settings based on the data provided to the `hot-column`
304
321
  * component and it's child components.
305
- */createColumnSettings: function createColumnSettings() {
322
+ */
323
+ createColumnSettings: function createColumnSettings() {
306
324
  var assignedProps = filterPassedProps(this.$props);
307
325
  var columnSettings = _objectSpread2({}, assignedProps);
308
326
  if (assignedProps.renderer) {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@handsontable/vue3",
3
- "version": "12.2.0",
3
+ "version": "12.3.0-next-bb1a7c2-20221208",
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",
@@ -11,8 +11,10 @@
11
11
  "unpkg": "./dist/vue-handsontable.min.js",
12
12
  "types": "./index.d.ts",
13
13
  "exports": {
14
+ "./dist/vue-handsontable.js": "./dist/vue-handsontable.js",
15
+ "./dist/vue-handsontable.min.js": "./dist/vue-handsontable.min.js",
14
16
  ".": {
15
- "import": "./es/vue-handsontable.js",
17
+ "import": "./es/vue-handsontable.mjs",
16
18
  "require": "./commonjs/vue-handsontable.js"
17
19
  }
18
20
  },
@@ -50,7 +52,7 @@
50
52
  "url": "https://github.com/handsontable/handsontable/issues"
51
53
  },
52
54
  "peerDependencies": {
53
- "handsontable": ">=12.0.0",
55
+ "handsontable": "12.3.0-next-bb1a7c2-20221208",
54
56
  "vue": "next"
55
57
  },
56
58
  "devDependencies": {
@@ -70,7 +72,7 @@
70
72
  "cross-env": "^7.0.0",
71
73
  "del-cli": "^4.0.1",
72
74
  "eslint-plugin-vue": "^8.0.3",
73
- "handsontable": "^12.0.0",
75
+ "handsontable": "12.3.0-next-bb1a7c2-20221208",
74
76
  "jest": "^26.6.3",
75
77
  "rollup": "^2.0.0",
76
78
  "rollup-plugin-babel": "^4.3.2",
package/types.d.ts CHANGED
@@ -4,6 +4,6 @@ export interface HotTableProps extends Handsontable.GridSettings {
4
4
  settings?: Handsontable.GridSettings;
5
5
  [additional: string]: any;
6
6
  }
7
- export declare type VueProps<T> = {
7
+ export type VueProps<T> = {
8
8
  [P in keyof T]: any;
9
9
  };