@handsontable/vue 10.0.0 → 11.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,6 +1,6 @@
1
1
  import Vue from 'vue';
2
- import Handsontable from 'handsontable';
3
- declare class BaseEditorComponent extends Vue implements Handsontable._editors.Base {
2
+ import Handsontable from 'handsontable/base';
3
+ declare class BaseEditorComponent extends Vue implements Handsontable.editors.BaseEditor {
4
4
  name: string;
5
5
  instance: any;
6
6
  row: any;
package/LICENSE.txt CHANGED
@@ -1,28 +1,25 @@
1
1
  Copyright (c) HANDSONCODE sp. z o. o.
2
2
 
3
- HANDSONTABLE is a software distributed by HANDSONCODE sp. z o. o.,
4
- a Polish corporation, based in Gdynia, Poland, at 96/98 Aleja Zwycięstwa,
5
- registered with the National Court Register under number 538651,
6
- EU tax ID number: PL5862294002, share capital: PLN 62,800.00.
3
+ HANDSONTABLE is a software distributed by HANDSONCODE sp. z o. o., a Polish corporation based in
4
+ Gdynia, Poland, at Aleja Zwycięstwa 96-98, registered by the District Court in Gdansk under number
5
+ 538651, EU tax ID number: PL5862294002, share capital: PLN 62,800.00.
7
6
 
8
- This software is protected by applicable copyright laws, including
9
- international treaties, and dual-licensed – depending on whether
10
- your use is intended for or may result in commercial advantage
11
- or monetary compensation (commercial purposes), or not.
7
+ This software is protected by applicable copyright laws, including international treaties, and dual-
8
+ licensed – depending on whether your use for commercial purposes, meaning intended for or
9
+ resulting in commercial advantage or monetary compensation, or not.
12
10
 
13
- If your use involves only such purposes as research, private study,
14
- evaluation and the like, you agree to be bound by the terms included
15
- in the "handsontable-non-commercial-license.pdf" file, available
16
- in the main directory of this software repository.
11
+ If your use is strictly personal or solely for evaluation purposes, meaning for the purposes of testing
12
+ the suitability, performance, and usefulness of this software outside the production environment,
13
+ you agree to be bound by the terms included in the "handsontable-non-commercial-license.pdf" file.
17
14
 
18
- By installing, copying, or otherwise using this software for
19
- commercial purposes, you agree to be bound by the terms included
20
- in the "handsontable-general-terms.pdf" file, available in the main
21
- directory of this software repository.
15
+ Your use of this software for commercial purposes is subject to the terms included in an applicable
16
+ license agreement.
22
17
 
23
- HANDSONCODE PROVIDES THIS SOFTWARE ON AN "AS IS" BASIS,
24
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND. IN NO EVENT
25
- AND UNDER NO LEGAL THEORY, SHALL HANDSONCODE BE LIABLE
26
- TO YOU FOR DAMAGES, INCLUDING ANY DIRECT, INDIRECT, SPECIAL,
27
- INCIDENTAL, OR CONSEQUENTIAL DAMAGES OF ANY CHARACTER ARISING
28
- FROM USE OR INABILITY TO USE THIS SOFTWARE.
18
+ In any case, you must not make any such use of this software as to develop software which may be
19
+ considered competitive with this software.
20
+
21
+ UNLESS EXPRESSLY AGREED OTHERWISE, HANDSONCODE PROVIDES THIS SOFTWARE ON AN "AS IS"
22
+ BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, AND IN NO EVENT AND UNDER NO
23
+ LEGAL THEORY, SHALL HANDSONCODE BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY DIRECT,
24
+ INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES OF ANY CHARACTER ARISING FROM
25
+ USE OR INABILITY TO USE THIS SOFTWARE.
@@ -2,7 +2,7 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
- var Handsontable = require('handsontable');
5
+ var Handsontable = require('handsontable/base');
6
6
  var Vue = require('vue');
7
7
 
8
8
  function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
@@ -382,7 +382,7 @@ function simpleEqual(objectA, objectB) {
382
382
  return JSON.stringify(objectA) === JSON.stringify(objectB);
383
383
  }
384
384
 
385
- var version="10.0.0";
385
+ var version="11.0.0";
386
386
 
387
387
  var commonjsGlobal = typeof globalThis !== 'undefined' ? globalThis : typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : {};
388
388
 
@@ -1367,12 +1367,12 @@ var BaseEditorComponent = /*#__PURE__*/function (_Vue) {
1367
1367
 
1368
1368
  var _super2 = _createSuper(CustomEditor);
1369
1369
 
1370
- function CustomEditor(hotInstance, row, col, prop, TD, cellProperties) {
1370
+ function CustomEditor(hotInstance) {
1371
1371
  var _this3;
1372
1372
 
1373
1373
  _classCallCheck(this, CustomEditor);
1374
1374
 
1375
- _this3 = _super2.call(this, hotInstance, row, col, prop, TD, cellProperties);
1375
+ _this3 = _super2.call(this, hotInstance);
1376
1376
  _this.$data.hotCustomEditorInstance = _assertThisInitialized(_this3);
1377
1377
  return _this3;
1378
1378
  }
@@ -1,38 +1,35 @@
1
1
  /*!
2
2
  * Copyright (c) HANDSONCODE sp. z o. o.
3
3
  *
4
- * HANDSONTABLE is a software distributed by HANDSONCODE sp. z o. o.,
5
- * a Polish corporation, based in Gdynia, Poland, at 96/98 Aleja Zwycięstwa,
6
- * registered with the National Court Register under number 538651,
7
- * EU tax ID number: PL5862294002, share capital: PLN 62,800.00.
4
+ * HANDSONTABLE is a software distributed by HANDSONCODE sp. z o. o., a Polish corporation based in
5
+ * Gdynia, Poland, at Aleja Zwycięstwa 96-98, registered by the District Court in Gdansk under number
6
+ * 538651, EU tax ID number: PL5862294002, share capital: PLN 62,800.00.
8
7
  *
9
- * This software is protected by applicable copyright laws, including
10
- * international treaties, and dual-licensed – depending on whether
11
- * your use is intended for or may result in commercial advantage
12
- * or monetary compensation (commercial purposes), or not.
8
+ * This software is protected by applicable copyright laws, including international treaties, and dual-
9
+ * licensed – depending on whether your use for commercial purposes, meaning intended for or
10
+ * resulting in commercial advantage or monetary compensation, or not.
13
11
  *
14
- * If your use involves only such purposes as research, private study,
15
- * evaluation and the like, you agree to be bound by the terms included
16
- * in the "handsontable-non-commercial-license.pdf" file, available
17
- * in the main directory of this software repository.
12
+ * If your use is strictly personal or solely for evaluation purposes, meaning for the purposes of testing
13
+ * the suitability, performance, and usefulness of this software outside the production environment,
14
+ * you agree to be bound by the terms included in the "handsontable-non-commercial-license.pdf" file.
18
15
  *
19
- * By installing, copying, or otherwise using this software for
20
- * commercial purposes, you agree to be bound by the terms included
21
- * in the "handsontable-general-terms.pdf" file, available in the main
22
- * directory of this software repository.
16
+ * Your use of this software for commercial purposes is subject to the terms included in an applicable
17
+ * license agreement.
23
18
  *
24
- * HANDSONCODE PROVIDES THIS SOFTWARE ON AN "AS IS" BASIS,
25
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND. IN NO EVENT
26
- * AND UNDER NO LEGAL THEORY, SHALL HANDSONCODE BE LIABLE
27
- * TO YOU FOR DAMAGES, INCLUDING ANY DIRECT, INDIRECT, SPECIAL,
28
- * INCIDENTAL, OR CONSEQUENTIAL DAMAGES OF ANY CHARACTER ARISING
29
- * FROM USE OR INABILITY TO USE THIS SOFTWARE.
19
+ * In any case, you must not make any such use of this software as to develop software which may be
20
+ * considered competitive with this software.
30
21
  *
31
- * Version: 10.0.0 (built at Wed Sep 29 2021 10:35:17 GMT+0200 (Central European Summer Time))
22
+ * UNLESS EXPRESSLY AGREED OTHERWISE, HANDSONCODE PROVIDES THIS SOFTWARE ON AN "AS IS"
23
+ * BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, AND IN NO EVENT AND UNDER NO
24
+ * LEGAL THEORY, SHALL HANDSONCODE BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY DIRECT,
25
+ * INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES OF ANY CHARACTER ARISING FROM
26
+ * USE OR INABILITY TO USE THIS SOFTWARE.
27
+ *
28
+ * Version: 11.0.0 (built at Wed Nov 17 2021 11:02:05 GMT+0100 (Central European Standard Time))
32
29
  */
33
30
  (function (global, factory) {
34
- typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('handsontable'), require('vue')) :
35
- typeof define === 'function' && define.amd ? define(['exports', 'handsontable', 'vue'], factory) :
31
+ typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('handsontable/base'), require('vue')) :
32
+ typeof define === 'function' && define.amd ? define(['exports', 'handsontable/base', 'vue'], factory) :
36
33
  (global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory((global.Handsontable = global.Handsontable || {}, global.Handsontable.vue = {}), global.Handsontable, global.Vue));
37
34
  })(this, (function (exports, Handsontable, Vue) { 'use strict';
38
35
 
@@ -413,7 +410,7 @@ function simpleEqual(objectA, objectB) {
413
410
  return JSON.stringify(objectA) === JSON.stringify(objectB);
414
411
  }
415
412
 
416
- var version="10.0.0";
413
+ var version="11.0.0";
417
414
 
418
415
  var commonjsGlobal = typeof globalThis !== 'undefined' ? globalThis : typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : {};
419
416
 
@@ -1398,12 +1395,12 @@ var BaseEditorComponent = /*#__PURE__*/function (_Vue) {
1398
1395
 
1399
1396
  var _super2 = _createSuper(CustomEditor);
1400
1397
 
1401
- function CustomEditor(hotInstance, row, col, prop, TD, cellProperties) {
1398
+ function CustomEditor(hotInstance) {
1402
1399
  var _this3;
1403
1400
 
1404
1401
  _classCallCheck(this, CustomEditor);
1405
1402
 
1406
- _this3 = _super2.call(this, hotInstance, row, col, prop, TD, cellProperties);
1403
+ _this3 = _super2.call(this, hotInstance);
1407
1404
  _this.$data.hotCustomEditorInstance = _assertThisInitialized(_this3);
1408
1405
  return _this3;
1409
1406
  }
@@ -1 +1 @@
1
- {"version":3,"file":"vue-handsontable.js","sources":["../src/helpers.ts","../src/lib/lru/lru.js","../src/HotTable.vue","../../../node_modules/vue-runtime-helpers/dist/normalize-component.mjs","../src/HotColumn.vue","../../../node_modules/vue-class-component/dist/vue-class-component.esm.js","../src/BaseEditorComponent.vue"],"sourcesContent":["import Vue, { VNode } from 'vue';\nimport Handsontable from 'handsontable';\nimport { HotTableProps, VueProps, EditorComponent } from './types';\n\nconst unassignedPropSymbol = Symbol('unassigned');\nlet bulkComponentContainer = null;\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 * Rewrite the settings object passed to the watchers to be a clean array/object prepared to use within Handsontable config.\n *\n * @param {*} observerSettings Watcher object containing the changed data.\n * @returns {Object|Array}\n */\nexport function rewriteSettings(observerSettings): any[] | object {\n const settingsType = Object.prototype.toString.call(observerSettings);\n let settings: any[] | object | null = null;\n let type: { array?: boolean, object?: boolean } = {};\n\n if (settingsType === '[object Array]') {\n settings = [];\n type.array = true;\n\n } else if (settingsType === '[object Object]') {\n settings = {};\n type.object = true;\n }\n\n if (type.array || type.object) {\n for (const p in observerSettings) {\n if (observerSettings.hasOwnProperty(p)) {\n settings[p] = observerSettings[p];\n }\n }\n\n } else {\n settings = observerSettings;\n }\n\n return settings;\n}\n\n/**\n * Private method to ensure the table is not calling `updateSettings` after editing cells.\n * @private\n */\nexport function preventInternalEditWatch(component) {\n if (component.hotInstance) {\n component.hotInstance.addHook('beforeChange', () => {\n component.__internalEdit = true;\n });\n\n component.hotInstance.addHook('beforeCreateRow', () => {\n component.__internalEdit = true;\n });\n\n component.hotInstance.addHook('beforeCreateCol', () => {\n component.__internalEdit = true;\n });\n\n component.hotInstance.addHook('beforeRemoveRow', () => {\n component.__internalEdit = true;\n });\n\n component.hotInstance.addHook('beforeRemoveCol', () => {\n component.__internalEdit = true;\n });\n }\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): VueProps<HotTableProps> {\n const registeredHooks: string[] = Handsontable.hooks.getRegistered();\n\n let propSchema: VueProps<HotTableProps> = {};\n Object.assign(propSchema, Handsontable.DefaultSettings);\n\n for (let 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 propSchema.wrapperRendererCacheSize = {\n type: Number,\n default: 3000\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 for (let propName in columnSettingsProp) {\n if (columnSettingsProp.hasOwnProperty(propName) && columnSettingsProp[propName] !== unassignedPropSymbol) {\n filteredProps[propName] = columnSettingsProp[propName];\n }\n }\n }\n\n for (let propName in props) {\n if (props.hasOwnProperty(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): Handsontable.GridSettings {\n const assignedProps: VueProps<HotTableProps> = filterPassedProps(props);\n const hotSettingsInProps: {} = props.settings ? props.settings : assignedProps;\n const additionalHotSettingsInProps: Handsontable.GridSettings = props.settings ? assignedProps : null;\n const newSettings = {};\n\n for (const key in hotSettingsInProps) {\n if (\n hotSettingsInProps.hasOwnProperty(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 for (const key in additionalHotSettingsInProps) {\n if (\n additionalHotSettingsInProps.hasOwnProperty(key) &&\n key !== 'id' &&\n key !== 'settings' &&\n key !== 'wrapperRendererCacheSize' &&\n additionalHotSettingsInProps[key] !== void 0 &&\n ((currentSettings && key !== 'data') ? !simpleEqual(currentSettings[key], additionalHotSettingsInProps[key]) : true)\n ) {\n newSettings[key] = additionalHotSettingsInProps[key];\n }\n }\n\n return newSettings;\n}\n\n/**\n * Get the VNode element with the provided type attribute from the component slots.\n *\n * @param {Array} componentSlots Array of slots from a component.\n * @param {String} type Type of the child component. Either `hot-renderer` or `hot-editor`.\n * @returns {Object|null} The VNode of the child component (or `null` when nothing's found).\n */\nexport function findVNodeByType(componentSlots: VNode[], type: string): VNode {\n let componentVNode: VNode = null;\n\n componentSlots.every((slot, index) => {\n if (slot.data && slot.data.attrs && slot.data.attrs[type] !== void 0) {\n componentVNode = slot;\n return false;\n }\n\n return true;\n });\n\n return componentVNode;\n}\n\n/**\n * Get all `hot-column` component instances from the provided children array.\n *\n * @param {Array} children Array of children from a component.\n * @returns {Array} Array of `hot-column` instances.\n */\nexport function getHotColumnComponents(children) {\n return children.filter((child) => child.$options.name === 'HotColumn');\n}\n\n/**\n * Create an instance of the Vue Component based on the provided VNode.\n *\n * @param {Object} vNode VNode element to be turned into a component instance.\n * @param {Object} parent Instance of the component to be marked as a parent of the newly created instance.\n * @param {Object} props Props to be passed to the new instance.\n * @param {Object} data Data to be passed to the new instance.\n */\nexport function createVueComponent(vNode: VNode, parent: Vue, props: object, data: object): EditorComponent {\n const ownerDocument = parent.$el ? parent.$el.ownerDocument : document;\n const settings: object = {\n propsData: props,\n parent,\n data\n };\n\n if (!bulkComponentContainer) {\n bulkComponentContainer = ownerDocument.createElement('DIV');\n bulkComponentContainer.id = 'vueHotComponents';\n\n ownerDocument.body.appendChild(bulkComponentContainer);\n }\n\n const componentContainer = ownerDocument.createElement('DIV');\n bulkComponentContainer.appendChild(componentContainer);\n\n return (new (vNode.componentOptions as any).Ctor(settings)).$mount(componentContainer);\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","/**\n * A doubly linked list-based Least Recently Used (LRU) cache. Will keep most\n * recently used items while discarding least recently used items when its limit\n * is reached.\n *\n * Licensed under MIT. Copyright (c) 2010 Rasmus Andersson <http://hunch.se/>\n * See README.md for details.\n *\n * Illustration of the design:\n *\n * entry entry entry entry\n * ______ ______ ______ ______\n * | head |.newer => | |.newer => | |.newer => | tail |\n * | A | | B | | C | | D |\n * |______| <= older.|______| <= older.|______| <= older.|______|\n *\n * removed <-- <-- <-- <-- <-- <-- <-- <-- <-- <-- <-- added\n */\n(function(g,f){\n const e = typeof exports == 'object' ? exports : typeof g == 'object' ? g : {};\n f(e);\n if (typeof define == 'function' && define.amd) { define('lru', e); }\n})(this, function(exports) {\n\n const NEWER = Symbol('newer');\n const OLDER = Symbol('older');\n\n function LRUMap(limit, entries) {\n if (typeof limit !== 'number') {\n // called as (entries)\n entries = limit;\n limit = 0;\n }\n\n this.size = 0;\n this.limit = limit;\n this.oldest = this.newest = undefined;\n this._keymap = new Map();\n\n if (entries) {\n this.assign(entries);\n if (limit < 1) {\n this.limit = this.size;\n }\n }\n }\n\n exports.LRUMap = LRUMap;\n\n function Entry(key, value) {\n this.key = key;\n this.value = value;\n this[NEWER] = undefined;\n this[OLDER] = undefined;\n }\n\n\n LRUMap.prototype._markEntryAsUsed = function(entry) {\n if (entry === this.newest) {\n // Already the most recenlty used entry, so no need to update the list\n return;\n }\n // HEAD--------------TAIL\n // <.older .newer>\n // <--- add direction --\n // A B C <D> E\n if (entry[NEWER]) {\n if (entry === this.oldest) {\n this.oldest = entry[NEWER];\n }\n entry[NEWER][OLDER] = entry[OLDER]; // C <-- E.\n }\n if (entry[OLDER]) {\n entry[OLDER][NEWER] = entry[NEWER]; // C. --> E\n }\n entry[NEWER] = undefined; // D --x\n entry[OLDER] = this.newest; // D. --> E\n if (this.newest) {\n this.newest[NEWER] = entry; // E. <-- D\n }\n this.newest = entry;\n };\n\n LRUMap.prototype.assign = function(entries) {\n let entry, limit = this.limit || Number.MAX_VALUE;\n this._keymap.clear();\n let it = entries[Symbol.iterator]();\n for (let itv = it.next(); !itv.done; itv = it.next()) {\n let e = new Entry(itv.value[0], itv.value[1]);\n this._keymap.set(e.key, e);\n if (!entry) {\n this.oldest = e;\n } else {\n entry[NEWER] = e;\n e[OLDER] = entry;\n }\n entry = e;\n if (limit-- == 0) {\n throw new Error('overflow');\n }\n }\n this.newest = entry;\n this.size = this._keymap.size;\n };\n\n LRUMap.prototype.get = function(key) {\n // First, find our cache entry\n var entry = this._keymap.get(key);\n if (!entry) return; // Not cached. Sorry.\n // As <key> was found in the cache, register it as being requested recently\n this._markEntryAsUsed(entry);\n return entry.value;\n };\n\n LRUMap.prototype.set = function(key, value) {\n var entry = this._keymap.get(key);\n\n if (entry) {\n // update existing\n entry.value = value;\n this._markEntryAsUsed(entry);\n return this;\n }\n\n // new entry\n this._keymap.set(key, (entry = new Entry(key, value)));\n\n if (this.newest) {\n // link previous tail to the new tail (entry)\n this.newest[NEWER] = entry;\n entry[OLDER] = this.newest;\n } else {\n // we're first in -- yay\n this.oldest = entry;\n }\n\n // add new entry to the end of the linked list -- it's now the freshest entry.\n this.newest = entry;\n ++this.size;\n if (this.size > this.limit) {\n // we hit the limit -- remove the head\n this.shift();\n }\n\n return this;\n };\n\n LRUMap.prototype.shift = function() {\n // todo: handle special case when limit == 1\n var entry = this.oldest;\n if (entry) {\n if (this.oldest[NEWER]) {\n // advance the list\n this.oldest = this.oldest[NEWER];\n this.oldest[OLDER] = undefined;\n } else {\n // the cache is exhausted\n this.oldest = undefined;\n this.newest = undefined;\n }\n // Remove last strong reference to <entry> and remove links from the purged\n // entry being returned:\n entry[NEWER] = entry[OLDER] = undefined;\n this._keymap.delete(entry.key);\n --this.size;\n return [entry.key, entry.value];\n }\n };\n\n// ----------------------------------------------------------------------------\n// Following code is optional and can be removed without breaking the core\n// functionality.\n LRUMap.prototype.has = function(key) {\n return this._keymap.has(key);\n };\n});\n","<template>\n <div :id=\"id\">\n <slot></slot>\n </div>\n</template>\n\n<script lang=\"ts\">\n import {\n propFactory,\n preventInternalEditWatch,\n prepareSettings,\n createVueComponent,\n findVNodeByType,\n getHotColumnComponents,\n HOT_DESTROYED_WARNING\n } from './helpers';\n import Vue, { VNode } from 'vue';\n import {\n HotTableData,\n HotTableMethods,\n HotTableProps,\n HotTableComponent,\n EditorComponent\n } from './types';\n import * as packageJson from '../package.json';\n import { LRUMap } from './lib/lru/lru';\n import Handsontable from 'handsontable';\n\n const HotTable: HotTableComponent<Vue, HotTableData, HotTableMethods, {}, HotTableProps> = {\n name: 'HotTable',\n props: propFactory('HotTable'),\n watch: {\n mergedHotSettings: function (value) {\n if (!this.hotInstance || value === void 0) {\n return;\n }\n\n if (value.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 value.data;\n }\n }\n\n // If there are another options changed, update the HOT settings, render the table otherwise.\n if (Object.keys(value).length) {\n this.hotInstance.updateSettings(value);\n\n } else {\n this.hotInstance.render();\n }\n\n this.miscCache.currentSourceColumns = this.hotInstance.countSourceCols();\n }\n },\n data: function () {\n const thisComponent: any = this;\n const rendererCache = new LRUMap(this.wrapperRendererCacheSize);\n\n // Make the LRU cache destroy each removed component\n rendererCache.shift = function () {\n let entry = LRUMap.prototype.shift.call(this);\n entry[1].component.$destroy();\n\n return entry;\n };\n\n return {\n __internalEdit: false,\n miscCache: {\n currentSourceColumns: null\n },\n __hotInstance: null,\n columnSettings: null,\n rendererCache: rendererCache,\n editorCache: new Map(),\n get hotInstance() {\n if (!thisComponent.__hotInstance || (thisComponent.__hotInstance && !thisComponent.__hotInstance.isDestroyed)) {\n\n // Will return the Handsontable instance or `null` if it's not yet been created.\n return thisComponent.__hotInstance;\n\n } else {\n console.warn(HOT_DESTROYED_WARNING);\n\n return null;\n }\n },\n set hotInstance(hotInstance) {\n thisComponent.__hotInstance = hotInstance;\n }\n };\n },\n computed: {\n mergedHotSettings: function (): Handsontable.GridSettings {\n return prepareSettings(this.$props, this.hotInstance ? this.hotInstance.getSettings() : void 0);\n }\n },\n methods: {\n /**\n * Initialize Handsontable.\n */\n hotInit: function (): void {\n const globalRendererVNode = this.getGlobalRendererVNode();\n const globalEditorVNode = this.getGlobalEditorVNode();\n\n const newSettings: Handsontable.GridSettings = prepareSettings(this.$props);\n\n newSettings.columns = this.columnSettings ? this.columnSettings : newSettings.columns;\n\n if (globalEditorVNode) {\n newSettings.editor = this.getEditorClass(globalEditorVNode, this);\n\n globalEditorVNode.child.$destroy();\n }\n\n if (globalRendererVNode) {\n newSettings.renderer = this.getRendererWrapper(globalRendererVNode, this);\n\n globalRendererVNode.child.$destroy();\n }\n\n this.hotInstance = new Handsontable.Core(this.$el, newSettings);\n this.hotInstance.init();\n\n preventInternalEditWatch(this);\n\n this.miscCache.currentSourceColumns = this.hotInstance.countSourceCols();\n },\n matchHotMappersSize: function(): 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 !==\n 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.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.insertIndexes(indexMapperColumnCount - 1, data[0].length - indexMapperColumnCount);\n }\n }\n });\n },\n getGlobalRendererVNode: function (): VNode | null {\n const hotTableSlots: VNode[] = this.$slots.default || [];\n return findVNodeByType(hotTableSlots, 'hot-renderer');\n },\n getGlobalEditorVNode: function (): VNode | null {\n const hotTableSlots: VNode[] = this.$slots.default || [];\n return findVNodeByType(hotTableSlots, 'hot-editor');\n },\n /**\n * Get settings for the columns provided in the `hot-column` components.\n */\n getColumnSettings: function (): HotTableProps[] | void {\n const hotColumns = getHotColumnComponents(this.$children);\n let usesRendererComponent = false;\n let columnSettings: HotTableProps[] = hotColumns.map((elem) => {\n if (elem.usesRendererComponent) {\n usesRendererComponent = true;\n }\n\n return {...elem.columnSettings};\n });\n\n if (usesRendererComponent &&\n (this.settings && (this.settings.autoColumnSize !== false || this.settings.autoRowSize)) &&\n (this.autoColumnSize !== false || this.autoRowSize)) {\n console.warn('Your `hot-table` configuration includes both `hot-column` and `autoRowSize`/`autoColumnSize`, which are not compatible with each other ' +\n 'in this version of `@handsontable/vue`. Disable `autoRowSize` and `autoColumnSize` to prevent row and column misalignment.')\n }\n\n return columnSettings.length ? columnSettings : void 0;\n },\n /**\n * Create the wrapper function for the provided renderer child component.\n *\n * @param {Object} vNode VNode of the renderer child component.\n * @param {Boolean} containerComponent Instance of the component, which will be treated as a parent for the newly created renderer component.\n * @returns {Function} The wrapper function used as the renderer.\n */\n getRendererWrapper: function (vNode: VNode, containerComponent: Vue): (...args) => HTMLElement {\n const $vm = this;\n\n return function (instance, TD, row, col, prop, value, cellProperties) {\n // Prevent caching and rendering of the GhostTable table cells\n if (TD && !TD.getAttribute('ghost-table')) {\n const rendererCache = $vm.rendererCache;\n const rendererArgs: object = {\n hotInstance: instance,\n TD,\n row,\n col,\n prop,\n value,\n cellProperties,\n isRenderer: true\n };\n\n if (rendererCache && !rendererCache.has(`${row}-${col}`)) {\n const mountedComponent: Vue = createVueComponent(vNode, containerComponent, vNode.componentOptions.propsData, rendererArgs);\n\n rendererCache.set(`${row}-${col}`, {\n component: mountedComponent,\n lastUsedTD: null\n });\n }\n\n const cachedEntry = rendererCache.get(`${row}-${col}`);\n const cachedComponent: Vue = cachedEntry.component;\n const cachedTD: HTMLTableCellElement = cachedEntry.lastUsedTD;\n\n Object.assign(cachedComponent.$data, rendererArgs);\n\n if (!cachedComponent.$el.parentElement || cachedTD !== TD) {\n // Clear the previous contents of a TD\n while (TD.firstChild) {\n TD.removeChild(TD.firstChild);\n }\n\n TD.appendChild(cachedComponent.$el);\n\n cachedEntry.lastUsedTD = TD;\n }\n }\n\n return TD;\n };\n },\n /**\n * Create a fresh class to be used as an editor, based on the editor component provided.\n *\n * @param {Object} vNode VNode for the editor child component.\n * @param {Boolean} containerComponent Instance of the component, which will be treated as a parent for the newly created editor component.\n * @returns {Class} The class used as an editor in Handsontable.\n */\n getEditorClass: function (vNode: VNode, containerComponent: Vue): typeof Handsontable.editors.BaseEditor {\n const componentKey: string = vNode.key ? vNode.key.toString() : null;\n const componentName: string = (vNode.componentOptions.Ctor as any).options.name;\n const componentCacheKey = componentKey ? `${componentName}:${componentKey}` : componentName;\n\n const editorCache = this.editorCache;\n let mountedComponent: EditorComponent = null;\n\n if (!editorCache.has(componentCacheKey)) {\n mountedComponent = createVueComponent(vNode, containerComponent, vNode.componentOptions.propsData, {isEditor: true});\n\n editorCache.set(componentCacheKey, mountedComponent);\n\n } else {\n mountedComponent = editorCache.get(componentCacheKey);\n }\n\n return mountedComponent.$data.hotCustomEditorClass;\n }\n },\n mounted: function () {\n this.columnSettings = this.getColumnSettings();\n\n return this.hotInit();\n },\n beforeDestroy: function () {\n if (this.hotInstance) {\n this.hotInstance.destroy();\n }\n },\n version: (packageJson as any).version\n };\n\n export default HotTable;\n export { HotTable };\n</script>\n","function normalizeComponent(template, style, script, scopeId, isFunctionalTemplate, moduleIdentifier /* server only */, shadowMode, createInjector, createInjectorSSR, createInjectorShadow) {\r\n if (typeof shadowMode !== 'boolean') {\r\n createInjectorSSR = createInjector;\r\n createInjector = shadowMode;\r\n shadowMode = false;\r\n }\r\n // Vue.extend constructor export interop.\r\n const options = typeof script === 'function' ? script.options : script;\r\n // render functions\r\n if (template && template.render) {\r\n options.render = template.render;\r\n options.staticRenderFns = template.staticRenderFns;\r\n options._compiled = true;\r\n // functional template\r\n if (isFunctionalTemplate) {\r\n options.functional = true;\r\n }\r\n }\r\n // scopedId\r\n if (scopeId) {\r\n options._scopeId = scopeId;\r\n }\r\n let hook;\r\n if (moduleIdentifier) {\r\n // server build\r\n hook = function (context) {\r\n // 2.3 injection\r\n context =\r\n context || // cached call\r\n (this.$vnode && this.$vnode.ssrContext) || // stateful\r\n (this.parent && this.parent.$vnode && this.parent.$vnode.ssrContext); // functional\r\n // 2.2 with runInNewContext: true\r\n if (!context && typeof __VUE_SSR_CONTEXT__ !== 'undefined') {\r\n context = __VUE_SSR_CONTEXT__;\r\n }\r\n // inject component styles\r\n if (style) {\r\n style.call(this, createInjectorSSR(context));\r\n }\r\n // register component module identifier for async chunk inference\r\n if (context && context._registeredComponents) {\r\n context._registeredComponents.add(moduleIdentifier);\r\n }\r\n };\r\n // used by ssr in case component is cached and beforeCreate\r\n // never gets called\r\n options._ssrRegister = hook;\r\n }\r\n else if (style) {\r\n hook = shadowMode\r\n ? function (context) {\r\n style.call(this, createInjectorShadow(context, this.$root.$options.shadowRoot));\r\n }\r\n : function (context) {\r\n style.call(this, createInjector(context));\r\n };\r\n }\r\n if (hook) {\r\n if (options.functional) {\r\n // register for functional component in vue file\r\n const originalRender = options.render;\r\n options.render = function renderWithStyleInjection(h, context) {\r\n hook.call(context);\r\n return originalRender(h, context);\r\n };\r\n }\r\n else {\r\n // inject component registration as beforeCreate hook\r\n const existing = options.beforeCreate;\r\n options.beforeCreate = existing ? [].concat(existing, hook) : [hook];\r\n }\r\n }\r\n return script;\r\n}\n\nexport default normalizeComponent;\n//# sourceMappingURL=normalize-component.mjs.map\n","<script lang=\"ts\">\n import Vue, { VNode } from 'vue';\n import { ThisTypedComponentOptionsWithRecordProps } from 'vue/types/options';\n import {\n propFactory,\n findVNodeByType,\n filterPassedProps\n } from './helpers';\n import {\n HotTableProps,\n HotColumnMethods,\n } from './types';\n\n const HotColumn: ThisTypedComponentOptionsWithRecordProps<Vue, {}, HotColumnMethods, {}, HotTableProps> = {\n name: 'HotColumn',\n props: propFactory('HotColumn'),\n methods: {\n /**\n * Create the column settings based on the data provided to the `hot-column` component and it's child components.\n */\n createColumnSettings: function (): void {\n const hotColumnSlots: VNode[] | any[] = this.$slots.default || [];\n const rendererVNode: VNode | null = findVNodeByType(hotColumnSlots, 'hot-renderer');\n const editorVNode: VNode | null = findVNodeByType(hotColumnSlots, 'hot-editor');\n const assignedProps = filterPassedProps(this.$props);\n\n if (rendererVNode && this.usesRendererComponent === void 0) {\n this.usesRendererComponent = true;\n }\n\n this.columnSettings = {...assignedProps};\n\n if (rendererVNode !== null) {\n this.columnSettings.renderer = this.$parent.getRendererWrapper(rendererVNode, this);\n\n } else if (assignedProps.renderer) {\n this.columnSettings.renderer = assignedProps.renderer;\n }\n\n if (editorVNode !== null) {\n this.columnSettings.editor = this.$parent.getEditorClass(editorVNode, this);\n\n } else if (assignedProps.editor) {\n this.columnSettings.editor = assignedProps.editor;\n }\n }\n },\n mounted: function () {\n this.createColumnSettings();\n },\n render: function () {\n return null;\n }\n };\n\n export default HotColumn;\n export { HotColumn };\n</script>\n","/**\n * vue-class-component v7.2.6\n * (c) 2015-present Evan You\n * @license MIT\n */\nimport Vue from 'vue';\n\nfunction _typeof(obj) {\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function (obj) {\n return typeof obj;\n };\n } else {\n _typeof = function (obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n}\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nfunction _toConsumableArray(arr) {\n return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _nonIterableSpread();\n}\n\nfunction _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) {\n for (var i = 0, arr2 = new Array(arr.length); i < arr.length; i++) arr2[i] = arr[i];\n\n return arr2;\n }\n}\n\nfunction _iterableToArray(iter) {\n if (Symbol.iterator in Object(iter) || Object.prototype.toString.call(iter) === \"[object Arguments]\") return Array.from(iter);\n}\n\nfunction _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance\");\n}\n\n// The rational behind the verbose Reflect-feature check below is the fact that there are polyfills\n// which add an implementation for Reflect.defineMetadata but not for Reflect.getOwnMetadataKeys.\n// Without this check consumers will encounter hard to track down runtime errors.\nfunction reflectionIsSupported() {\n return typeof Reflect !== 'undefined' && Reflect.defineMetadata && Reflect.getOwnMetadataKeys;\n}\nfunction copyReflectionMetadata(to, from) {\n forwardMetadata(to, from);\n Object.getOwnPropertyNames(from.prototype).forEach(function (key) {\n forwardMetadata(to.prototype, from.prototype, key);\n });\n Object.getOwnPropertyNames(from).forEach(function (key) {\n forwardMetadata(to, from, key);\n });\n}\n\nfunction forwardMetadata(to, from, propertyKey) {\n var metaKeys = propertyKey ? Reflect.getOwnMetadataKeys(from, propertyKey) : Reflect.getOwnMetadataKeys(from);\n metaKeys.forEach(function (metaKey) {\n var metadata = propertyKey ? Reflect.getOwnMetadata(metaKey, from, propertyKey) : Reflect.getOwnMetadata(metaKey, from);\n\n if (propertyKey) {\n Reflect.defineMetadata(metaKey, metadata, to, propertyKey);\n } else {\n Reflect.defineMetadata(metaKey, metadata, to);\n }\n });\n}\n\nvar fakeArray = {\n __proto__: []\n};\nvar hasProto = fakeArray instanceof Array;\nfunction createDecorator(factory) {\n return function (target, key, index) {\n var Ctor = typeof target === 'function' ? target : target.constructor;\n\n if (!Ctor.__decorators__) {\n Ctor.__decorators__ = [];\n }\n\n if (typeof index !== 'number') {\n index = undefined;\n }\n\n Ctor.__decorators__.push(function (options) {\n return factory(options, key, index);\n });\n };\n}\nfunction mixins() {\n for (var _len = arguments.length, Ctors = new Array(_len), _key = 0; _key < _len; _key++) {\n Ctors[_key] = arguments[_key];\n }\n\n return Vue.extend({\n mixins: Ctors\n });\n}\nfunction isPrimitive(value) {\n var type = _typeof(value);\n\n return value == null || type !== 'object' && type !== 'function';\n}\nfunction warn(message) {\n if (typeof console !== 'undefined') {\n console.warn('[vue-class-component] ' + message);\n }\n}\n\nfunction collectDataFromConstructor(vm, Component) {\n // override _init to prevent to init as Vue instance\n var originalInit = Component.prototype._init;\n\n Component.prototype._init = function () {\n var _this = this;\n\n // proxy to actual vm\n var keys = Object.getOwnPropertyNames(vm); // 2.2.0 compat (props are no longer exposed as self properties)\n\n if (vm.$options.props) {\n for (var key in vm.$options.props) {\n if (!vm.hasOwnProperty(key)) {\n keys.push(key);\n }\n }\n }\n\n keys.forEach(function (key) {\n Object.defineProperty(_this, key, {\n get: function get() {\n return vm[key];\n },\n set: function set(value) {\n vm[key] = value;\n },\n configurable: true\n });\n });\n }; // should be acquired class property values\n\n\n var data = new Component(); // restore original _init to avoid memory leak (#209)\n\n Component.prototype._init = originalInit; // create plain data object\n\n var plainData = {};\n Object.keys(data).forEach(function (key) {\n if (data[key] !== undefined) {\n plainData[key] = data[key];\n }\n });\n\n if (process.env.NODE_ENV !== 'production') {\n if (!(Component.prototype instanceof Vue) && Object.keys(plainData).length > 0) {\n warn('Component class must inherit Vue or its descendant class ' + 'when class property is used.');\n }\n }\n\n return plainData;\n}\n\nvar $internalHooks = ['data', 'beforeCreate', 'created', 'beforeMount', 'mounted', 'beforeDestroy', 'destroyed', 'beforeUpdate', 'updated', 'activated', 'deactivated', 'render', 'errorCaptured', 'serverPrefetch' // 2.6\n];\nfunction componentFactory(Component) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n options.name = options.name || Component._componentTag || Component.name; // prototype props.\n\n var proto = Component.prototype;\n Object.getOwnPropertyNames(proto).forEach(function (key) {\n if (key === 'constructor') {\n return;\n } // hooks\n\n\n if ($internalHooks.indexOf(key) > -1) {\n options[key] = proto[key];\n return;\n }\n\n var descriptor = Object.getOwnPropertyDescriptor(proto, key);\n\n if (descriptor.value !== void 0) {\n // methods\n if (typeof descriptor.value === 'function') {\n (options.methods || (options.methods = {}))[key] = descriptor.value;\n } else {\n // typescript decorated data\n (options.mixins || (options.mixins = [])).push({\n data: function data() {\n return _defineProperty({}, key, descriptor.value);\n }\n });\n }\n } else if (descriptor.get || descriptor.set) {\n // computed properties\n (options.computed || (options.computed = {}))[key] = {\n get: descriptor.get,\n set: descriptor.set\n };\n }\n });\n (options.mixins || (options.mixins = [])).push({\n data: function data() {\n return collectDataFromConstructor(this, Component);\n }\n }); // decorate options\n\n var decorators = Component.__decorators__;\n\n if (decorators) {\n decorators.forEach(function (fn) {\n return fn(options);\n });\n delete Component.__decorators__;\n } // find super\n\n\n var superProto = Object.getPrototypeOf(Component.prototype);\n var Super = superProto instanceof Vue ? superProto.constructor : Vue;\n var Extended = Super.extend(options);\n forwardStaticMembers(Extended, Component, Super);\n\n if (reflectionIsSupported()) {\n copyReflectionMetadata(Extended, Component);\n }\n\n return Extended;\n}\nvar reservedPropertyNames = [// Unique id\n'cid', // Super Vue constructor\n'super', // Component options that will be used by the component\n'options', 'superOptions', 'extendOptions', 'sealedOptions', // Private assets\n'component', 'directive', 'filter'];\nvar shouldIgnore = {\n prototype: true,\n arguments: true,\n callee: true,\n caller: true\n};\n\nfunction forwardStaticMembers(Extended, Original, Super) {\n // We have to use getOwnPropertyNames since Babel registers methods as non-enumerable\n Object.getOwnPropertyNames(Original).forEach(function (key) {\n // Skip the properties that should not be overwritten\n if (shouldIgnore[key]) {\n return;\n } // Some browsers does not allow reconfigure built-in properties\n\n\n var extendedDescriptor = Object.getOwnPropertyDescriptor(Extended, key);\n\n if (extendedDescriptor && !extendedDescriptor.configurable) {\n return;\n }\n\n var descriptor = Object.getOwnPropertyDescriptor(Original, key); // If the user agent does not support `__proto__` or its family (IE <= 10),\n // the sub class properties may be inherited properties from the super class in TypeScript.\n // We need to exclude such properties to prevent to overwrite\n // the component options object which stored on the extended constructor (See #192).\n // If the value is a referenced value (object or function),\n // we can check equality of them and exclude it if they have the same reference.\n // If it is a primitive value, it will be forwarded for safety.\n\n if (!hasProto) {\n // Only `cid` is explicitly exluded from property forwarding\n // because we cannot detect whether it is a inherited property or not\n // on the no `__proto__` environment even though the property is reserved.\n if (key === 'cid') {\n return;\n }\n\n var superDescriptor = Object.getOwnPropertyDescriptor(Super, key);\n\n if (!isPrimitive(descriptor.value) && superDescriptor && superDescriptor.value === descriptor.value) {\n return;\n }\n } // Warn if the users manually declare reserved properties\n\n\n if (process.env.NODE_ENV !== 'production' && reservedPropertyNames.indexOf(key) >= 0) {\n warn(\"Static property name '\".concat(key, \"' declared on class '\").concat(Original.name, \"' \") + 'conflicts with reserved property name of Vue internal. ' + 'It may cause unexpected behavior of the component. Consider renaming the property.');\n }\n\n Object.defineProperty(Extended, key, descriptor);\n });\n}\n\nfunction Component(options) {\n if (typeof options === 'function') {\n return componentFactory(options);\n }\n\n return function (Component) {\n return componentFactory(Component, options);\n };\n}\n\nComponent.registerHooks = function registerHooks(keys) {\n $internalHooks.push.apply($internalHooks, _toConsumableArray(keys));\n};\n\nexport default Component;\nexport { createDecorator, mixins };\n","<script lang=\"ts\">\n import Vue from 'vue';\n import Handsontable from 'handsontable';\n import Component from 'vue-class-component';\n\n @Component({})\n class BaseEditorComponent extends Vue implements Handsontable._editors.Base {\n name = 'BaseEditorComponent';\n instance = null;\n row = null;\n col = null;\n prop = null;\n TD = null;\n originalValue = null;\n cellProperties = null;\n state = null;\n hot = null;\n\n mounted() {\n const _this = this;\n\n this.$data.hotCustomEditorClass = function () {\n const customEditorClass = class CustomEditor extends Handsontable.editors.BaseEditor implements Handsontable._editors.Base {\n constructor(hotInstance, row, col, prop, TD, cellProperties) {\n super(hotInstance, row, col, prop, TD, cellProperties);\n\n _this.$data.hotCustomEditorInstance = this;\n }\n\n focus() {\n }\n\n getValue() {\n }\n\n setValue() {\n }\n\n open() {\n }\n\n close() {\n }\n } as any;\n\n // Fill with the rest of the BaseEditorComponent methods\n Object.getOwnPropertyNames(Handsontable.editors.BaseEditor.prototype).forEach(propName => {\n if (propName === 'constructor') {\n return;\n }\n\n customEditorClass.prototype[propName] = function (...args) {\n return _this[propName].call(this, ...args);\n }\n });\n\n return customEditorClass;\n }();\n }\n\n // BaseEditorComponent methods:\n private _fireCallbacks(...args) {\n (Handsontable.editors.BaseEditor.prototype as any)._fireCallbacks.call(this.$data.hotCustomEditorInstance, ...args);\n }\n\n beginEditing(...args) {\n return Handsontable.editors.BaseEditor.prototype.beginEditing.call(this.$data.hotCustomEditorInstance, ...args);\n }\n\n cancelChanges(...args) {\n return Handsontable.editors.BaseEditor.prototype.cancelChanges.call(this.$data.hotCustomEditorInstance, ...args);\n }\n\n checkEditorSection(...args) {\n return Handsontable.editors.BaseEditor.prototype.checkEditorSection.call(this.$data.hotCustomEditorInstance, ...args);\n }\n\n close(...args) {\n return Handsontable.editors.BaseEditor.prototype.close.call(this.$data.hotCustomEditorInstance, ...args);\n }\n\n discardEditor(...args) {\n return Handsontable.editors.BaseEditor.prototype.discardEditor.call(this.$data.hotCustomEditorInstance, ...args);\n }\n\n enableFullEditMode(...args) {\n return Handsontable.editors.BaseEditor.prototype.enableFullEditMode.call(this.$data.hotCustomEditorInstance, ...args);\n }\n\n extend(...args) {\n return Handsontable.editors.BaseEditor.prototype.extend.call(this.$data.hotCustomEditorInstance, ...args);\n }\n\n finishEditing(...args) {\n return Handsontable.editors.BaseEditor.prototype.finishEditing.call(this.$data.hotCustomEditorInstance, ...args);\n }\n\n focus(...args) {\n return Handsontable.editors.BaseEditor.prototype.focus.call(this.$data.hotCustomEditorInstance, ...args);\n }\n\n getValue(...args) {\n return Handsontable.editors.BaseEditor.prototype.getValue.call(this.$data.hotCustomEditorInstance, ...args);\n }\n\n init(...args) {\n return Handsontable.editors.BaseEditor.prototype.init.call(this.$data.hotCustomEditorInstance, ...args);\n }\n\n isInFullEditMode(...args) {\n return Handsontable.editors.BaseEditor.prototype.isInFullEditMode.call(this.$data.hotCustomEditorInstance, ...args);\n }\n\n isOpened(...args) {\n return Handsontable.editors.BaseEditor.prototype.isOpened.call(this.$data.hotCustomEditorInstance, ...args);\n }\n\n isWaiting(...args) {\n return Handsontable.editors.BaseEditor.prototype.isWaiting.call(this.$data.hotCustomEditorInstance, ...args);\n }\n\n open(...args) {\n return Handsontable.editors.BaseEditor.prototype.open.call(this.$data.hotCustomEditorInstance, ...args);\n }\n\n prepare(row, col, prop, TD, originalValue, cellProperties) {\n this.$data.hotInstance = cellProperties.instance;\n this.$data.row = row;\n this.$data.col = col;\n this.$data.prop = prop;\n this.$data.TD = TD;\n this.$data.originalValue = originalValue;\n this.$data.cellProperties = cellProperties;\n\n return Handsontable.editors.BaseEditor.prototype.prepare.call(this.$data.hotCustomEditorInstance, row, col, prop, TD, originalValue, cellProperties);\n }\n\n saveValue(...args) {\n return Handsontable.editors.BaseEditor.prototype.saveValue.call(this.$data.hotCustomEditorInstance, ...args);\n }\n\n setValue(...args) {\n return Handsontable.editors.BaseEditor.prototype.setValue.call(this.$data.hotCustomEditorInstance, ...args);\n }\n\n addHook(...args) {\n return (Handsontable.editors.BaseEditor.prototype as any).addHook.call(this.$data.hotCustomEditorInstance, ...args);\n }\n\n removeHooksByKey(...args) {\n return (Handsontable.editors.BaseEditor.prototype as any).removeHooksByKey.call(this.$data.hotCustomEditorInstance, ...args);\n }\n\n clearHooks(...args) {\n return (Handsontable.editors.BaseEditor.prototype as any).clearHooks.call(this.$data.hotCustomEditorInstance, ...args);\n }\n\n getEditedCell(...args) {\n return (Handsontable.editors.BaseEditor.prototype as any).getEditedCell.call(this.$data.hotCustomEditorInstance, ...args);\n }\n\n getEditedCellsZIndex(...args) {\n return (Handsontable.editors.BaseEditor.prototype as any).getEditedCellsZIndex.call(this.$data.hotCustomEditorInstance, ...args);\n }\n\n getEditedCellsLayerClass(...args) {\n return (Handsontable.editors.BaseEditor.prototype as any).getEditedCellsLayerClass.call(this.$data.hotCustomEditorInstance, ...args);\n }\n }\n\n export default BaseEditorComponent;\n export { BaseEditorComponent };\n</script>\n"],"names":["unassignedPropSymbol","Symbol","bulkComponentContainer","HOT_DESTROYED_WARNING","preventInternalEditWatch","component","hotInstance","addHook","__internalEdit","propFactory","source","registeredHooks","Handsontable","hooks","getRegistered","propSchema","Object","assign","DefaultSettings","prop","i","length","settings","id","type","String","Math","random","toString","substring","wrapperRendererCacheSize","Number","filterPassedProps","props","filteredProps","columnSettingsProp","propName","hasOwnProperty","prepareSettings","currentSettings","assignedProps","hotSettingsInProps","additionalHotSettingsInProps","newSettings","key","simpleEqual","findVNodeByType","componentSlots","componentVNode","every","slot","index","data","attrs","getHotColumnComponents","children","filter","child","$options","name","createVueComponent","vNode","parent","ownerDocument","$el","document","propsData","createElement","body","appendChild","componentContainer","componentOptions","Ctor","$mount","objectA","objectB","JSON","stringify","g","f","e","exports","this","NEWER","OLDER","LRUMap","limit","entries","size","oldest","newest","undefined","_keymap","Map","Entry","value","prototype","_markEntryAsUsed","entry","MAX_VALUE","clear","it","iterator","itv","next","done","set","Error","get","shift","has","_typeof","obj","_typeof2","constructor","_defineProperty","defineProperty","enumerable","configurable","writable","_toConsumableArray","arr","_arrayWithoutHoles","_iterableToArray","_nonIterableSpread","Array","isArray","arr2","iter","call","from","TypeError","reflectionIsSupported","Reflect","defineMetadata","getOwnMetadataKeys","copyReflectionMetadata","to","forwardMetadata","getOwnPropertyNames","forEach","propertyKey","metaKeys","metaKey","metadata","getOwnMetadata","fakeArray","__proto__","hasProto","isPrimitive","collectDataFromConstructor","vm","Component","originalInit","_init","_this","keys","push","plainData","$internalHooks","componentFactory","options","arguments","_componentTag","proto","indexOf","descriptor","getOwnPropertyDescriptor","methods","mixins","computed","decorators","__decorators__","fn","superProto","getPrototypeOf","Super","Vue","Extended","extend","forwardStaticMembers","shouldIgnore","callee","caller","Original","extendedDescriptor","superDescriptor","registerHooks","apply"],"mappings":"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"}
1
+ {"version":3,"file":"vue-handsontable.js","sources":["../src/helpers.ts","../src/lib/lru/lru.js","../src/HotTable.vue","../../../node_modules/vue-runtime-helpers/dist/normalize-component.mjs","../src/HotColumn.vue","../../../node_modules/vue-class-component/dist/vue-class-component.esm.js","../src/BaseEditorComponent.vue"],"sourcesContent":["import Vue, { VNode } from 'vue';\nimport Handsontable from 'handsontable/base';\nimport { HotTableProps, VueProps, EditorComponent } from './types';\n\nconst unassignedPropSymbol = Symbol('unassigned');\nlet bulkComponentContainer = null;\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 * Rewrite the settings object passed to the watchers to be a clean array/object prepared to use within Handsontable config.\n *\n * @param {*} observerSettings Watcher object containing the changed data.\n * @returns {Object|Array}\n */\nexport function rewriteSettings(observerSettings): any[] | object {\n const settingsType = Object.prototype.toString.call(observerSettings);\n let settings: any[] | object | null = null;\n let type: { array?: boolean, object?: boolean } = {};\n\n if (settingsType === '[object Array]') {\n settings = [];\n type.array = true;\n\n } else if (settingsType === '[object Object]') {\n settings = {};\n type.object = true;\n }\n\n if (type.array || type.object) {\n for (const p in observerSettings) {\n if (observerSettings.hasOwnProperty(p)) {\n settings[p] = observerSettings[p];\n }\n }\n\n } else {\n settings = observerSettings;\n }\n\n return settings;\n}\n\n/**\n * Private method to ensure the table is not calling `updateSettings` after editing cells.\n * @private\n */\nexport function preventInternalEditWatch(component) {\n if (component.hotInstance) {\n component.hotInstance.addHook('beforeChange', () => {\n component.__internalEdit = true;\n });\n\n component.hotInstance.addHook('beforeCreateRow', () => {\n component.__internalEdit = true;\n });\n\n component.hotInstance.addHook('beforeCreateCol', () => {\n component.__internalEdit = true;\n });\n\n component.hotInstance.addHook('beforeRemoveRow', () => {\n component.__internalEdit = true;\n });\n\n component.hotInstance.addHook('beforeRemoveCol', () => {\n component.__internalEdit = true;\n });\n }\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): VueProps<HotTableProps> {\n const registeredHooks: string[] = Handsontable.hooks.getRegistered();\n\n let propSchema: VueProps<HotTableProps> = {};\n Object.assign(propSchema, Handsontable.DefaultSettings);\n\n for (let 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 propSchema.wrapperRendererCacheSize = {\n type: Number,\n default: 3000\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 for (let propName in columnSettingsProp) {\n if (columnSettingsProp.hasOwnProperty(propName) && columnSettingsProp[propName] !== unassignedPropSymbol) {\n filteredProps[propName] = columnSettingsProp[propName];\n }\n }\n }\n\n for (let propName in props) {\n if (props.hasOwnProperty(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): Handsontable.GridSettings {\n const assignedProps: VueProps<HotTableProps> = filterPassedProps(props);\n const hotSettingsInProps: {} = props.settings ? props.settings : assignedProps;\n const additionalHotSettingsInProps: Handsontable.GridSettings = props.settings ? assignedProps : null;\n const newSettings = {};\n\n for (const key in hotSettingsInProps) {\n if (\n hotSettingsInProps.hasOwnProperty(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 for (const key in additionalHotSettingsInProps) {\n if (\n additionalHotSettingsInProps.hasOwnProperty(key) &&\n key !== 'id' &&\n key !== 'settings' &&\n key !== 'wrapperRendererCacheSize' &&\n additionalHotSettingsInProps[key] !== void 0 &&\n ((currentSettings && key !== 'data') ? !simpleEqual(currentSettings[key], additionalHotSettingsInProps[key]) : true)\n ) {\n newSettings[key] = additionalHotSettingsInProps[key];\n }\n }\n\n return newSettings;\n}\n\n/**\n * Get the VNode element with the provided type attribute from the component slots.\n *\n * @param {Array} componentSlots Array of slots from a component.\n * @param {String} type Type of the child component. Either `hot-renderer` or `hot-editor`.\n * @returns {Object|null} The VNode of the child component (or `null` when nothing's found).\n */\nexport function findVNodeByType(componentSlots: VNode[], type: string): VNode {\n let componentVNode: VNode = null;\n\n componentSlots.every((slot, index) => {\n if (slot.data && slot.data.attrs && slot.data.attrs[type] !== void 0) {\n componentVNode = slot;\n return false;\n }\n\n return true;\n });\n\n return componentVNode;\n}\n\n/**\n * Get all `hot-column` component instances from the provided children array.\n *\n * @param {Array} children Array of children from a component.\n * @returns {Array} Array of `hot-column` instances.\n */\nexport function getHotColumnComponents(children) {\n return children.filter((child) => child.$options.name === 'HotColumn');\n}\n\n/**\n * Create an instance of the Vue Component based on the provided VNode.\n *\n * @param {Object} vNode VNode element to be turned into a component instance.\n * @param {Object} parent Instance of the component to be marked as a parent of the newly created instance.\n * @param {Object} props Props to be passed to the new instance.\n * @param {Object} data Data to be passed to the new instance.\n */\nexport function createVueComponent(vNode: VNode, parent: Vue, props: object, data: object): EditorComponent {\n const ownerDocument = parent.$el ? parent.$el.ownerDocument : document;\n const settings: object = {\n propsData: props,\n parent,\n data\n };\n\n if (!bulkComponentContainer) {\n bulkComponentContainer = ownerDocument.createElement('DIV');\n bulkComponentContainer.id = 'vueHotComponents';\n\n ownerDocument.body.appendChild(bulkComponentContainer);\n }\n\n const componentContainer = ownerDocument.createElement('DIV');\n bulkComponentContainer.appendChild(componentContainer);\n\n return (new (vNode.componentOptions as any).Ctor(settings)).$mount(componentContainer);\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","/**\n * A doubly linked list-based Least Recently Used (LRU) cache. Will keep most\n * recently used items while discarding least recently used items when its limit\n * is reached.\n *\n * Licensed under MIT. Copyright (c) 2010 Rasmus Andersson <http://hunch.se/>\n * See README.md for details.\n *\n * Illustration of the design:\n *\n * entry entry entry entry\n * ______ ______ ______ ______\n * | head |.newer => | |.newer => | |.newer => | tail |\n * | A | | B | | C | | D |\n * |______| <= older.|______| <= older.|______| <= older.|______|\n *\n * removed <-- <-- <-- <-- <-- <-- <-- <-- <-- <-- <-- added\n */\n(function(g,f){\n const e = typeof exports == 'object' ? exports : typeof g == 'object' ? g : {};\n f(e);\n if (typeof define == 'function' && define.amd) { define('lru', e); }\n})(this, function(exports) {\n\n const NEWER = Symbol('newer');\n const OLDER = Symbol('older');\n\n function LRUMap(limit, entries) {\n if (typeof limit !== 'number') {\n // called as (entries)\n entries = limit;\n limit = 0;\n }\n\n this.size = 0;\n this.limit = limit;\n this.oldest = this.newest = undefined;\n this._keymap = new Map();\n\n if (entries) {\n this.assign(entries);\n if (limit < 1) {\n this.limit = this.size;\n }\n }\n }\n\n exports.LRUMap = LRUMap;\n\n function Entry(key, value) {\n this.key = key;\n this.value = value;\n this[NEWER] = undefined;\n this[OLDER] = undefined;\n }\n\n\n LRUMap.prototype._markEntryAsUsed = function(entry) {\n if (entry === this.newest) {\n // Already the most recenlty used entry, so no need to update the list\n return;\n }\n // HEAD--------------TAIL\n // <.older .newer>\n // <--- add direction --\n // A B C <D> E\n if (entry[NEWER]) {\n if (entry === this.oldest) {\n this.oldest = entry[NEWER];\n }\n entry[NEWER][OLDER] = entry[OLDER]; // C <-- E.\n }\n if (entry[OLDER]) {\n entry[OLDER][NEWER] = entry[NEWER]; // C. --> E\n }\n entry[NEWER] = undefined; // D --x\n entry[OLDER] = this.newest; // D. --> E\n if (this.newest) {\n this.newest[NEWER] = entry; // E. <-- D\n }\n this.newest = entry;\n };\n\n LRUMap.prototype.assign = function(entries) {\n let entry, limit = this.limit || Number.MAX_VALUE;\n this._keymap.clear();\n let it = entries[Symbol.iterator]();\n for (let itv = it.next(); !itv.done; itv = it.next()) {\n let e = new Entry(itv.value[0], itv.value[1]);\n this._keymap.set(e.key, e);\n if (!entry) {\n this.oldest = e;\n } else {\n entry[NEWER] = e;\n e[OLDER] = entry;\n }\n entry = e;\n if (limit-- == 0) {\n throw new Error('overflow');\n }\n }\n this.newest = entry;\n this.size = this._keymap.size;\n };\n\n LRUMap.prototype.get = function(key) {\n // First, find our cache entry\n var entry = this._keymap.get(key);\n if (!entry) return; // Not cached. Sorry.\n // As <key> was found in the cache, register it as being requested recently\n this._markEntryAsUsed(entry);\n return entry.value;\n };\n\n LRUMap.prototype.set = function(key, value) {\n var entry = this._keymap.get(key);\n\n if (entry) {\n // update existing\n entry.value = value;\n this._markEntryAsUsed(entry);\n return this;\n }\n\n // new entry\n this._keymap.set(key, (entry = new Entry(key, value)));\n\n if (this.newest) {\n // link previous tail to the new tail (entry)\n this.newest[NEWER] = entry;\n entry[OLDER] = this.newest;\n } else {\n // we're first in -- yay\n this.oldest = entry;\n }\n\n // add new entry to the end of the linked list -- it's now the freshest entry.\n this.newest = entry;\n ++this.size;\n if (this.size > this.limit) {\n // we hit the limit -- remove the head\n this.shift();\n }\n\n return this;\n };\n\n LRUMap.prototype.shift = function() {\n // todo: handle special case when limit == 1\n var entry = this.oldest;\n if (entry) {\n if (this.oldest[NEWER]) {\n // advance the list\n this.oldest = this.oldest[NEWER];\n this.oldest[OLDER] = undefined;\n } else {\n // the cache is exhausted\n this.oldest = undefined;\n this.newest = undefined;\n }\n // Remove last strong reference to <entry> and remove links from the purged\n // entry being returned:\n entry[NEWER] = entry[OLDER] = undefined;\n this._keymap.delete(entry.key);\n --this.size;\n return [entry.key, entry.value];\n }\n };\n\n// ----------------------------------------------------------------------------\n// Following code is optional and can be removed without breaking the core\n// functionality.\n LRUMap.prototype.has = function(key) {\n return this._keymap.has(key);\n };\n});\n","<template>\n <div :id=\"id\">\n <slot></slot>\n </div>\n</template>\n\n<script lang=\"ts\">\n import {\n propFactory,\n preventInternalEditWatch,\n prepareSettings,\n createVueComponent,\n findVNodeByType,\n getHotColumnComponents,\n HOT_DESTROYED_WARNING\n } from './helpers';\n import Vue, { VNode } from 'vue';\n import {\n HotTableData,\n HotTableMethods,\n HotTableProps,\n HotTableComponent,\n EditorComponent\n } from './types';\n import * as packageJson from '../package.json';\n import { LRUMap } from './lib/lru/lru';\n import Handsontable from 'handsontable/base';\n\n const HotTable: HotTableComponent<Vue, HotTableData, HotTableMethods, {}, HotTableProps> = {\n name: 'HotTable',\n props: propFactory('HotTable'),\n watch: {\n mergedHotSettings: function (value) {\n if (!this.hotInstance || value === void 0) {\n return;\n }\n\n if (value.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 value.data;\n }\n }\n\n // If there are another options changed, update the HOT settings, render the table otherwise.\n if (Object.keys(value).length) {\n this.hotInstance.updateSettings(value);\n\n } else {\n this.hotInstance.render();\n }\n\n this.miscCache.currentSourceColumns = this.hotInstance.countSourceCols();\n }\n },\n data: function () {\n const thisComponent: any = this;\n const rendererCache = new LRUMap(this.wrapperRendererCacheSize);\n\n // Make the LRU cache destroy each removed component\n rendererCache.shift = function () {\n let entry = LRUMap.prototype.shift.call(this);\n entry[1].component.$destroy();\n\n return entry;\n };\n\n return {\n __internalEdit: false,\n miscCache: {\n currentSourceColumns: null\n },\n __hotInstance: null,\n columnSettings: null,\n rendererCache: rendererCache,\n editorCache: new Map(),\n get hotInstance() {\n if (!thisComponent.__hotInstance || (thisComponent.__hotInstance && !thisComponent.__hotInstance.isDestroyed)) {\n\n // Will return the Handsontable instance or `null` if it's not yet been created.\n return thisComponent.__hotInstance;\n\n } else {\n console.warn(HOT_DESTROYED_WARNING);\n\n return null;\n }\n },\n set hotInstance(hotInstance) {\n thisComponent.__hotInstance = hotInstance;\n }\n };\n },\n computed: {\n mergedHotSettings: function (): Handsontable.GridSettings {\n return prepareSettings(this.$props, this.hotInstance ? this.hotInstance.getSettings() : void 0);\n }\n },\n methods: {\n /**\n * Initialize Handsontable.\n */\n hotInit: function (): void {\n const globalRendererVNode = this.getGlobalRendererVNode();\n const globalEditorVNode = this.getGlobalEditorVNode();\n\n const newSettings: Handsontable.GridSettings = prepareSettings(this.$props);\n\n newSettings.columns = this.columnSettings ? this.columnSettings : newSettings.columns;\n\n if (globalEditorVNode) {\n newSettings.editor = this.getEditorClass(globalEditorVNode, this);\n\n globalEditorVNode.child.$destroy();\n }\n\n if (globalRendererVNode) {\n newSettings.renderer = this.getRendererWrapper(globalRendererVNode, this);\n\n globalRendererVNode.child.$destroy();\n }\n\n this.hotInstance = new Handsontable.Core(this.$el, newSettings);\n this.hotInstance.init();\n\n preventInternalEditWatch(this);\n\n this.miscCache.currentSourceColumns = this.hotInstance.countSourceCols();\n },\n matchHotMappersSize: function(): 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 !==\n 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.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.insertIndexes(indexMapperColumnCount - 1, data[0].length - indexMapperColumnCount);\n }\n }\n });\n },\n getGlobalRendererVNode: function (): VNode | null {\n const hotTableSlots: VNode[] = this.$slots.default || [];\n return findVNodeByType(hotTableSlots, 'hot-renderer');\n },\n getGlobalEditorVNode: function (): VNode | null {\n const hotTableSlots: VNode[] = this.$slots.default || [];\n return findVNodeByType(hotTableSlots, 'hot-editor');\n },\n /**\n * Get settings for the columns provided in the `hot-column` components.\n */\n getColumnSettings: function (): HotTableProps[] | void {\n const hotColumns = getHotColumnComponents(this.$children);\n let usesRendererComponent = false;\n let columnSettings: HotTableProps[] = hotColumns.map((elem) => {\n if (elem.usesRendererComponent) {\n usesRendererComponent = true;\n }\n\n return {...elem.columnSettings};\n });\n\n if (usesRendererComponent &&\n (this.settings && (this.settings.autoColumnSize !== false || this.settings.autoRowSize)) &&\n (this.autoColumnSize !== false || this.autoRowSize)) {\n console.warn('Your `hot-table` configuration includes both `hot-column` and `autoRowSize`/`autoColumnSize`, which are not compatible with each other ' +\n 'in this version of `@handsontable/vue`. Disable `autoRowSize` and `autoColumnSize` to prevent row and column misalignment.')\n }\n\n return columnSettings.length ? columnSettings : void 0;\n },\n /**\n * Create the wrapper function for the provided renderer child component.\n *\n * @param {Object} vNode VNode of the renderer child component.\n * @param {Boolean} containerComponent Instance of the component, which will be treated as a parent for the newly created renderer component.\n * @returns {Function} The wrapper function used as the renderer.\n */\n getRendererWrapper: function (vNode: VNode, containerComponent: Vue): (...args) => HTMLElement {\n const $vm = this;\n\n return function (instance, TD, row, col, prop, value, cellProperties) {\n // Prevent caching and rendering of the GhostTable table cells\n if (TD && !TD.getAttribute('ghost-table')) {\n const rendererCache = $vm.rendererCache;\n const rendererArgs: object = {\n hotInstance: instance,\n TD,\n row,\n col,\n prop,\n value,\n cellProperties,\n isRenderer: true\n };\n\n if (rendererCache && !rendererCache.has(`${row}-${col}`)) {\n const mountedComponent: Vue = createVueComponent(vNode, containerComponent, vNode.componentOptions.propsData, rendererArgs);\n\n rendererCache.set(`${row}-${col}`, {\n component: mountedComponent,\n lastUsedTD: null\n });\n }\n\n const cachedEntry = rendererCache.get(`${row}-${col}`);\n const cachedComponent: Vue = cachedEntry.component;\n const cachedTD: HTMLTableCellElement = cachedEntry.lastUsedTD;\n\n Object.assign(cachedComponent.$data, rendererArgs);\n\n if (!cachedComponent.$el.parentElement || cachedTD !== TD) {\n // Clear the previous contents of a TD\n while (TD.firstChild) {\n TD.removeChild(TD.firstChild);\n }\n\n TD.appendChild(cachedComponent.$el);\n\n cachedEntry.lastUsedTD = TD;\n }\n }\n\n return TD;\n };\n },\n /**\n * Create a fresh class to be used as an editor, based on the editor component provided.\n *\n * @param {Object} vNode VNode for the editor child component.\n * @param {Boolean} containerComponent Instance of the component, which will be treated as a parent for the newly created editor component.\n * @returns {Class} The class used as an editor in Handsontable.\n */\n getEditorClass: function (vNode: VNode, containerComponent: Vue): typeof Handsontable.editors.BaseEditor {\n const componentKey: string = vNode.key ? vNode.key.toString() : null;\n const componentName: string = (vNode.componentOptions.Ctor as any).options.name;\n const componentCacheKey = componentKey ? `${componentName}:${componentKey}` : componentName;\n\n const editorCache = this.editorCache;\n let mountedComponent: EditorComponent = null;\n\n if (!editorCache.has(componentCacheKey)) {\n mountedComponent = createVueComponent(vNode, containerComponent, vNode.componentOptions.propsData, {isEditor: true});\n\n editorCache.set(componentCacheKey, mountedComponent);\n\n } else {\n mountedComponent = editorCache.get(componentCacheKey);\n }\n\n return mountedComponent.$data.hotCustomEditorClass;\n }\n },\n mounted: function () {\n this.columnSettings = this.getColumnSettings();\n\n return this.hotInit();\n },\n beforeDestroy: function () {\n if (this.hotInstance) {\n this.hotInstance.destroy();\n }\n },\n version: (packageJson as any).version\n };\n\n export default HotTable;\n export { HotTable };\n</script>\n","function normalizeComponent(template, style, script, scopeId, isFunctionalTemplate, moduleIdentifier /* server only */, shadowMode, createInjector, createInjectorSSR, createInjectorShadow) {\r\n if (typeof shadowMode !== 'boolean') {\r\n createInjectorSSR = createInjector;\r\n createInjector = shadowMode;\r\n shadowMode = false;\r\n }\r\n // Vue.extend constructor export interop.\r\n const options = typeof script === 'function' ? script.options : script;\r\n // render functions\r\n if (template && template.render) {\r\n options.render = template.render;\r\n options.staticRenderFns = template.staticRenderFns;\r\n options._compiled = true;\r\n // functional template\r\n if (isFunctionalTemplate) {\r\n options.functional = true;\r\n }\r\n }\r\n // scopedId\r\n if (scopeId) {\r\n options._scopeId = scopeId;\r\n }\r\n let hook;\r\n if (moduleIdentifier) {\r\n // server build\r\n hook = function (context) {\r\n // 2.3 injection\r\n context =\r\n context || // cached call\r\n (this.$vnode && this.$vnode.ssrContext) || // stateful\r\n (this.parent && this.parent.$vnode && this.parent.$vnode.ssrContext); // functional\r\n // 2.2 with runInNewContext: true\r\n if (!context && typeof __VUE_SSR_CONTEXT__ !== 'undefined') {\r\n context = __VUE_SSR_CONTEXT__;\r\n }\r\n // inject component styles\r\n if (style) {\r\n style.call(this, createInjectorSSR(context));\r\n }\r\n // register component module identifier for async chunk inference\r\n if (context && context._registeredComponents) {\r\n context._registeredComponents.add(moduleIdentifier);\r\n }\r\n };\r\n // used by ssr in case component is cached and beforeCreate\r\n // never gets called\r\n options._ssrRegister = hook;\r\n }\r\n else if (style) {\r\n hook = shadowMode\r\n ? function (context) {\r\n style.call(this, createInjectorShadow(context, this.$root.$options.shadowRoot));\r\n }\r\n : function (context) {\r\n style.call(this, createInjector(context));\r\n };\r\n }\r\n if (hook) {\r\n if (options.functional) {\r\n // register for functional component in vue file\r\n const originalRender = options.render;\r\n options.render = function renderWithStyleInjection(h, context) {\r\n hook.call(context);\r\n return originalRender(h, context);\r\n };\r\n }\r\n else {\r\n // inject component registration as beforeCreate hook\r\n const existing = options.beforeCreate;\r\n options.beforeCreate = existing ? [].concat(existing, hook) : [hook];\r\n }\r\n }\r\n return script;\r\n}\n\nexport default normalizeComponent;\n//# sourceMappingURL=normalize-component.mjs.map\n","<script lang=\"ts\">\n import Vue, { VNode } from 'vue';\n import { ThisTypedComponentOptionsWithRecordProps } from 'vue/types/options';\n import {\n propFactory,\n findVNodeByType,\n filterPassedProps\n } from './helpers';\n import {\n HotTableProps,\n HotColumnMethods,\n } from './types';\n\n const HotColumn: ThisTypedComponentOptionsWithRecordProps<Vue, {}, HotColumnMethods, {}, HotTableProps> = {\n name: 'HotColumn',\n props: propFactory('HotColumn'),\n methods: {\n /**\n * Create the column settings based on the data provided to the `hot-column` component and it's child components.\n */\n createColumnSettings: function (): void {\n const hotColumnSlots: VNode[] | any[] = this.$slots.default || [];\n const rendererVNode: VNode | null = findVNodeByType(hotColumnSlots, 'hot-renderer');\n const editorVNode: VNode | null = findVNodeByType(hotColumnSlots, 'hot-editor');\n const assignedProps = filterPassedProps(this.$props);\n\n if (rendererVNode && this.usesRendererComponent === void 0) {\n this.usesRendererComponent = true;\n }\n\n this.columnSettings = {...assignedProps};\n\n if (rendererVNode !== null) {\n this.columnSettings.renderer = this.$parent.getRendererWrapper(rendererVNode, this);\n\n } else if (assignedProps.renderer) {\n this.columnSettings.renderer = assignedProps.renderer;\n }\n\n if (editorVNode !== null) {\n this.columnSettings.editor = this.$parent.getEditorClass(editorVNode, this);\n\n } else if (assignedProps.editor) {\n this.columnSettings.editor = assignedProps.editor;\n }\n }\n },\n mounted: function () {\n this.createColumnSettings();\n },\n render: function () {\n return null;\n }\n };\n\n export default HotColumn;\n export { HotColumn };\n</script>\n","/**\n * vue-class-component v7.2.6\n * (c) 2015-present Evan You\n * @license MIT\n */\nimport Vue from 'vue';\n\nfunction _typeof(obj) {\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function (obj) {\n return typeof obj;\n };\n } else {\n _typeof = function (obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n}\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nfunction _toConsumableArray(arr) {\n return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _nonIterableSpread();\n}\n\nfunction _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) {\n for (var i = 0, arr2 = new Array(arr.length); i < arr.length; i++) arr2[i] = arr[i];\n\n return arr2;\n }\n}\n\nfunction _iterableToArray(iter) {\n if (Symbol.iterator in Object(iter) || Object.prototype.toString.call(iter) === \"[object Arguments]\") return Array.from(iter);\n}\n\nfunction _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance\");\n}\n\n// The rational behind the verbose Reflect-feature check below is the fact that there are polyfills\n// which add an implementation for Reflect.defineMetadata but not for Reflect.getOwnMetadataKeys.\n// Without this check consumers will encounter hard to track down runtime errors.\nfunction reflectionIsSupported() {\n return typeof Reflect !== 'undefined' && Reflect.defineMetadata && Reflect.getOwnMetadataKeys;\n}\nfunction copyReflectionMetadata(to, from) {\n forwardMetadata(to, from);\n Object.getOwnPropertyNames(from.prototype).forEach(function (key) {\n forwardMetadata(to.prototype, from.prototype, key);\n });\n Object.getOwnPropertyNames(from).forEach(function (key) {\n forwardMetadata(to, from, key);\n });\n}\n\nfunction forwardMetadata(to, from, propertyKey) {\n var metaKeys = propertyKey ? Reflect.getOwnMetadataKeys(from, propertyKey) : Reflect.getOwnMetadataKeys(from);\n metaKeys.forEach(function (metaKey) {\n var metadata = propertyKey ? Reflect.getOwnMetadata(metaKey, from, propertyKey) : Reflect.getOwnMetadata(metaKey, from);\n\n if (propertyKey) {\n Reflect.defineMetadata(metaKey, metadata, to, propertyKey);\n } else {\n Reflect.defineMetadata(metaKey, metadata, to);\n }\n });\n}\n\nvar fakeArray = {\n __proto__: []\n};\nvar hasProto = fakeArray instanceof Array;\nfunction createDecorator(factory) {\n return function (target, key, index) {\n var Ctor = typeof target === 'function' ? target : target.constructor;\n\n if (!Ctor.__decorators__) {\n Ctor.__decorators__ = [];\n }\n\n if (typeof index !== 'number') {\n index = undefined;\n }\n\n Ctor.__decorators__.push(function (options) {\n return factory(options, key, index);\n });\n };\n}\nfunction mixins() {\n for (var _len = arguments.length, Ctors = new Array(_len), _key = 0; _key < _len; _key++) {\n Ctors[_key] = arguments[_key];\n }\n\n return Vue.extend({\n mixins: Ctors\n });\n}\nfunction isPrimitive(value) {\n var type = _typeof(value);\n\n return value == null || type !== 'object' && type !== 'function';\n}\nfunction warn(message) {\n if (typeof console !== 'undefined') {\n console.warn('[vue-class-component] ' + message);\n }\n}\n\nfunction collectDataFromConstructor(vm, Component) {\n // override _init to prevent to init as Vue instance\n var originalInit = Component.prototype._init;\n\n Component.prototype._init = function () {\n var _this = this;\n\n // proxy to actual vm\n var keys = Object.getOwnPropertyNames(vm); // 2.2.0 compat (props are no longer exposed as self properties)\n\n if (vm.$options.props) {\n for (var key in vm.$options.props) {\n if (!vm.hasOwnProperty(key)) {\n keys.push(key);\n }\n }\n }\n\n keys.forEach(function (key) {\n Object.defineProperty(_this, key, {\n get: function get() {\n return vm[key];\n },\n set: function set(value) {\n vm[key] = value;\n },\n configurable: true\n });\n });\n }; // should be acquired class property values\n\n\n var data = new Component(); // restore original _init to avoid memory leak (#209)\n\n Component.prototype._init = originalInit; // create plain data object\n\n var plainData = {};\n Object.keys(data).forEach(function (key) {\n if (data[key] !== undefined) {\n plainData[key] = data[key];\n }\n });\n\n if (process.env.NODE_ENV !== 'production') {\n if (!(Component.prototype instanceof Vue) && Object.keys(plainData).length > 0) {\n warn('Component class must inherit Vue or its descendant class ' + 'when class property is used.');\n }\n }\n\n return plainData;\n}\n\nvar $internalHooks = ['data', 'beforeCreate', 'created', 'beforeMount', 'mounted', 'beforeDestroy', 'destroyed', 'beforeUpdate', 'updated', 'activated', 'deactivated', 'render', 'errorCaptured', 'serverPrefetch' // 2.6\n];\nfunction componentFactory(Component) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n options.name = options.name || Component._componentTag || Component.name; // prototype props.\n\n var proto = Component.prototype;\n Object.getOwnPropertyNames(proto).forEach(function (key) {\n if (key === 'constructor') {\n return;\n } // hooks\n\n\n if ($internalHooks.indexOf(key) > -1) {\n options[key] = proto[key];\n return;\n }\n\n var descriptor = Object.getOwnPropertyDescriptor(proto, key);\n\n if (descriptor.value !== void 0) {\n // methods\n if (typeof descriptor.value === 'function') {\n (options.methods || (options.methods = {}))[key] = descriptor.value;\n } else {\n // typescript decorated data\n (options.mixins || (options.mixins = [])).push({\n data: function data() {\n return _defineProperty({}, key, descriptor.value);\n }\n });\n }\n } else if (descriptor.get || descriptor.set) {\n // computed properties\n (options.computed || (options.computed = {}))[key] = {\n get: descriptor.get,\n set: descriptor.set\n };\n }\n });\n (options.mixins || (options.mixins = [])).push({\n data: function data() {\n return collectDataFromConstructor(this, Component);\n }\n }); // decorate options\n\n var decorators = Component.__decorators__;\n\n if (decorators) {\n decorators.forEach(function (fn) {\n return fn(options);\n });\n delete Component.__decorators__;\n } // find super\n\n\n var superProto = Object.getPrototypeOf(Component.prototype);\n var Super = superProto instanceof Vue ? superProto.constructor : Vue;\n var Extended = Super.extend(options);\n forwardStaticMembers(Extended, Component, Super);\n\n if (reflectionIsSupported()) {\n copyReflectionMetadata(Extended, Component);\n }\n\n return Extended;\n}\nvar reservedPropertyNames = [// Unique id\n'cid', // Super Vue constructor\n'super', // Component options that will be used by the component\n'options', 'superOptions', 'extendOptions', 'sealedOptions', // Private assets\n'component', 'directive', 'filter'];\nvar shouldIgnore = {\n prototype: true,\n arguments: true,\n callee: true,\n caller: true\n};\n\nfunction forwardStaticMembers(Extended, Original, Super) {\n // We have to use getOwnPropertyNames since Babel registers methods as non-enumerable\n Object.getOwnPropertyNames(Original).forEach(function (key) {\n // Skip the properties that should not be overwritten\n if (shouldIgnore[key]) {\n return;\n } // Some browsers does not allow reconfigure built-in properties\n\n\n var extendedDescriptor = Object.getOwnPropertyDescriptor(Extended, key);\n\n if (extendedDescriptor && !extendedDescriptor.configurable) {\n return;\n }\n\n var descriptor = Object.getOwnPropertyDescriptor(Original, key); // If the user agent does not support `__proto__` or its family (IE <= 10),\n // the sub class properties may be inherited properties from the super class in TypeScript.\n // We need to exclude such properties to prevent to overwrite\n // the component options object which stored on the extended constructor (See #192).\n // If the value is a referenced value (object or function),\n // we can check equality of them and exclude it if they have the same reference.\n // If it is a primitive value, it will be forwarded for safety.\n\n if (!hasProto) {\n // Only `cid` is explicitly exluded from property forwarding\n // because we cannot detect whether it is a inherited property or not\n // on the no `__proto__` environment even though the property is reserved.\n if (key === 'cid') {\n return;\n }\n\n var superDescriptor = Object.getOwnPropertyDescriptor(Super, key);\n\n if (!isPrimitive(descriptor.value) && superDescriptor && superDescriptor.value === descriptor.value) {\n return;\n }\n } // Warn if the users manually declare reserved properties\n\n\n if (process.env.NODE_ENV !== 'production' && reservedPropertyNames.indexOf(key) >= 0) {\n warn(\"Static property name '\".concat(key, \"' declared on class '\").concat(Original.name, \"' \") + 'conflicts with reserved property name of Vue internal. ' + 'It may cause unexpected behavior of the component. Consider renaming the property.');\n }\n\n Object.defineProperty(Extended, key, descriptor);\n });\n}\n\nfunction Component(options) {\n if (typeof options === 'function') {\n return componentFactory(options);\n }\n\n return function (Component) {\n return componentFactory(Component, options);\n };\n}\n\nComponent.registerHooks = function registerHooks(keys) {\n $internalHooks.push.apply($internalHooks, _toConsumableArray(keys));\n};\n\nexport default Component;\nexport { createDecorator, mixins };\n","<script lang=\"ts\">\n import Vue from 'vue';\n import Handsontable from 'handsontable/base';\n import Component from 'vue-class-component';\n\n @Component({})\n class BaseEditorComponent extends Vue implements Handsontable.editors.BaseEditor {\n name = 'BaseEditorComponent';\n instance = null;\n row = null;\n col = null;\n prop = null;\n TD = null;\n originalValue = null;\n cellProperties = null;\n state = null;\n hot = null;\n\n mounted() {\n const _this = this;\n\n this.$data.hotCustomEditorClass = function () {\n const customEditorClass = class CustomEditor extends Handsontable.editors.BaseEditor implements Handsontable.editors.BaseEditor {\n constructor(hotInstance) {\n super(hotInstance);\n\n _this.$data.hotCustomEditorInstance = this;\n }\n\n focus() {\n }\n\n getValue() {\n }\n\n setValue() {\n }\n\n open() {\n }\n\n close() {\n }\n } as any;\n\n // Fill with the rest of the BaseEditorComponent methods\n Object.getOwnPropertyNames(Handsontable.editors.BaseEditor.prototype).forEach(propName => {\n if (propName === 'constructor') {\n return;\n }\n\n customEditorClass.prototype[propName] = function (...args) {\n return _this[propName].call(this, ...args);\n }\n });\n\n return customEditorClass;\n }();\n }\n\n // BaseEditorComponent methods:\n private _fireCallbacks(...args) {\n (Handsontable.editors.BaseEditor.prototype as any)._fireCallbacks.call(this.$data.hotCustomEditorInstance, ...args);\n }\n\n beginEditing(...args) {\n return Handsontable.editors.BaseEditor.prototype.beginEditing.call(this.$data.hotCustomEditorInstance, ...args);\n }\n\n cancelChanges(...args) {\n return Handsontable.editors.BaseEditor.prototype.cancelChanges.call(this.$data.hotCustomEditorInstance, ...args);\n }\n\n checkEditorSection(...args) {\n return Handsontable.editors.BaseEditor.prototype.checkEditorSection.call(this.$data.hotCustomEditorInstance, ...args);\n }\n\n close(...args) {\n return Handsontable.editors.BaseEditor.prototype.close.call(this.$data.hotCustomEditorInstance, ...args);\n }\n\n discardEditor(...args) {\n return Handsontable.editors.BaseEditor.prototype.discardEditor.call(this.$data.hotCustomEditorInstance, ...args);\n }\n\n enableFullEditMode(...args) {\n return Handsontable.editors.BaseEditor.prototype.enableFullEditMode.call(this.$data.hotCustomEditorInstance, ...args);\n }\n\n extend(...args) {\n return Handsontable.editors.BaseEditor.prototype.extend.call(this.$data.hotCustomEditorInstance, ...args);\n }\n\n finishEditing(...args) {\n return Handsontable.editors.BaseEditor.prototype.finishEditing.call(this.$data.hotCustomEditorInstance, ...args);\n }\n\n focus(...args) {\n return Handsontable.editors.BaseEditor.prototype.focus.call(this.$data.hotCustomEditorInstance, ...args);\n }\n\n getValue(...args) {\n return Handsontable.editors.BaseEditor.prototype.getValue.call(this.$data.hotCustomEditorInstance, ...args);\n }\n\n init(...args) {\n return Handsontable.editors.BaseEditor.prototype.init.call(this.$data.hotCustomEditorInstance, ...args);\n }\n\n isInFullEditMode(...args) {\n return Handsontable.editors.BaseEditor.prototype.isInFullEditMode.call(this.$data.hotCustomEditorInstance, ...args);\n }\n\n isOpened(...args) {\n return Handsontable.editors.BaseEditor.prototype.isOpened.call(this.$data.hotCustomEditorInstance, ...args);\n }\n\n isWaiting(...args) {\n return Handsontable.editors.BaseEditor.prototype.isWaiting.call(this.$data.hotCustomEditorInstance, ...args);\n }\n\n open(...args) {\n return Handsontable.editors.BaseEditor.prototype.open.call(this.$data.hotCustomEditorInstance, ...args);\n }\n\n prepare(row, col, prop, TD, originalValue, cellProperties) {\n this.$data.hotInstance = cellProperties.instance;\n this.$data.row = row;\n this.$data.col = col;\n this.$data.prop = prop;\n this.$data.TD = TD;\n this.$data.originalValue = originalValue;\n this.$data.cellProperties = cellProperties;\n\n return Handsontable.editors.BaseEditor.prototype.prepare.call(this.$data.hotCustomEditorInstance, row, col, prop, TD, originalValue, cellProperties);\n }\n\n saveValue(...args) {\n return Handsontable.editors.BaseEditor.prototype.saveValue.call(this.$data.hotCustomEditorInstance, ...args);\n }\n\n setValue(...args) {\n return Handsontable.editors.BaseEditor.prototype.setValue.call(this.$data.hotCustomEditorInstance, ...args);\n }\n\n addHook(...args) {\n return (Handsontable.editors.BaseEditor.prototype as any).addHook.call(this.$data.hotCustomEditorInstance, ...args);\n }\n\n removeHooksByKey(...args) {\n return (Handsontable.editors.BaseEditor.prototype as any).removeHooksByKey.call(this.$data.hotCustomEditorInstance, ...args);\n }\n\n clearHooks(...args) {\n return (Handsontable.editors.BaseEditor.prototype as any).clearHooks.call(this.$data.hotCustomEditorInstance, ...args);\n }\n\n getEditedCell(...args) {\n return (Handsontable.editors.BaseEditor.prototype as any).getEditedCell.call(this.$data.hotCustomEditorInstance, ...args);\n }\n\n getEditedCellsZIndex(...args) {\n return (Handsontable.editors.BaseEditor.prototype as any).getEditedCellsZIndex.call(this.$data.hotCustomEditorInstance, ...args);\n }\n\n getEditedCellsLayerClass(...args) {\n return (Handsontable.editors.BaseEditor.prototype as any).getEditedCellsLayerClass.call(this.$data.hotCustomEditorInstance, ...args);\n }\n }\n\n export default BaseEditorComponent;\n export { BaseEditorComponent };\n</script>\n"],"names":["unassignedPropSymbol","Symbol","bulkComponentContainer","HOT_DESTROYED_WARNING","preventInternalEditWatch","component","hotInstance","addHook","__internalEdit","propFactory","source","registeredHooks","Handsontable","hooks","getRegistered","propSchema","Object","assign","DefaultSettings","prop","i","length","settings","id","type","String","Math","random","toString","substring","wrapperRendererCacheSize","Number","filterPassedProps","props","filteredProps","columnSettingsProp","propName","hasOwnProperty","prepareSettings","currentSettings","assignedProps","hotSettingsInProps","additionalHotSettingsInProps","newSettings","key","simpleEqual","findVNodeByType","componentSlots","componentVNode","every","slot","index","data","attrs","getHotColumnComponents","children","filter","child","$options","name","createVueComponent","vNode","parent","ownerDocument","$el","document","propsData","createElement","body","appendChild","componentContainer","componentOptions","Ctor","$mount","objectA","objectB","JSON","stringify","g","f","e","exports","this","NEWER","OLDER","LRUMap","limit","entries","size","oldest","newest","undefined","_keymap","Map","Entry","value","prototype","_markEntryAsUsed","entry","MAX_VALUE","clear","it","iterator","itv","next","done","set","Error","get","shift","has","_typeof","obj","_typeof2","constructor","_defineProperty","defineProperty","enumerable","configurable","writable","_toConsumableArray","arr","_arrayWithoutHoles","_iterableToArray","_nonIterableSpread","Array","isArray","arr2","iter","call","from","TypeError","reflectionIsSupported","Reflect","defineMetadata","getOwnMetadataKeys","copyReflectionMetadata","to","forwardMetadata","getOwnPropertyNames","forEach","propertyKey","metaKeys","metaKey","metadata","getOwnMetadata","fakeArray","__proto__","hasProto","isPrimitive","collectDataFromConstructor","vm","Component","originalInit","_init","_this","keys","push","plainData","$internalHooks","componentFactory","options","arguments","_componentTag","proto","indexOf","descriptor","getOwnPropertyDescriptor","methods","mixins","computed","decorators","__decorators__","fn","superProto","getPrototypeOf","Super","Vue","Extended","extend","forwardStaticMembers","shouldIgnore","callee","caller","Original","extendedDescriptor","superDescriptor","registerHooks","apply"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAIA,IAAMA,oBAAoB,GAAGC,MAAM,CAAC,YAAD,CAAnC;AACA,IAAIC,sBAAsB,GAAG,IAA7B;AAEA;;;;AAGO,IAAMC,qBAAqB,GAAG,kFACnC,iBADK;AAqCP;;;;;SAIgBC,yBAAyBC;AACvC,MAAIA,SAAS,CAACC,WAAd,EAA2B;AACzBD,IAAAA,SAAS,CAACC,WAAV,CAAsBC,OAAtB,CAA8B,cAA9B,EAA8C;AAC5CF,MAAAA,SAAS,CAACG,cAAV,GAA2B,IAA3B;AACD,KAFD;AAIAH,IAAAA,SAAS,CAACC,WAAV,CAAsBC,OAAtB,CAA8B,iBAA9B,EAAiD;AAC/CF,MAAAA,SAAS,CAACG,cAAV,GAA2B,IAA3B;AACD,KAFD;AAIAH,IAAAA,SAAS,CAACC,WAAV,CAAsBC,OAAtB,CAA8B,iBAA9B,EAAiD;AAC/CF,MAAAA,SAAS,CAACG,cAAV,GAA2B,IAA3B;AACD,KAFD;AAIAH,IAAAA,SAAS,CAACC,WAAV,CAAsBC,OAAtB,CAA8B,iBAA9B,EAAiD;AAC/CF,MAAAA,SAAS,CAACG,cAAV,GAA2B,IAA3B;AACD,KAFD;AAIAH,IAAAA,SAAS,CAACC,WAAV,CAAsBC,OAAtB,CAA8B,iBAA9B,EAAiD;AAC/CF,MAAAA,SAAS,CAACG,cAAV,GAA2B,IAA3B;AACD,KAFD;AAGD;AACF;AAED;;;;;;;SAMgBC,YAAYC;AAC1B,MAAMC,eAAe,GAAaC,gCAAY,CAACC,KAAb,CAAmBC,aAAnB,EAAlC;AAEA,MAAIC,UAAU,GAA4B,EAA1C;AACAC,EAAAA,MAAM,CAACC,MAAP,CAAcF,UAAd,EAA0BH,gCAAY,CAACM,eAAvC;;AAEA,OAAK,IAAIC,IAAT,IAAiBJ,UAAjB,EAA6B;AAC3BA,IAAAA,UAAU,CAACI,IAAD,CAAV,GAAmB;AACjB,iBAASnB;AADQ,KAAnB;AAGD;;AAED,OAAK,IAAIoB,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGT,eAAe,CAACU,MAApC,EAA4CD,CAAC,EAA7C,EAAiD;AAC/CL,IAAAA,UAAU,CAACJ,eAAe,CAACS,CAAD,CAAhB,CAAV,GAAiC;AAC/B,iBAASpB;AADsB,KAAjC;AAGD;;AAEDe,EAAAA,UAAU,CAACO,QAAX,GAAsB;AACpB,eAAStB;AADW,GAAtB;;AAIA,MAAIU,MAAM,KAAK,UAAf,EAA2B;AACzBK,IAAAA,UAAU,CAACQ,EAAX,GAAgB;AACdC,MAAAA,IAAI,EAAEC,MADQ;AAEd,iBAAS,SAASC,IAAI,CAACC,MAAL,GAAcC,QAAd,CAAuB,EAAvB,EAA2BC,SAA3B,CAAqC,CAArC;AAFJ,KAAhB;AAKAd,IAAAA,UAAU,CAACe,wBAAX,GAAsC;AACpCN,MAAAA,IAAI,EAAEO,MAD8B;AAEpC,iBAAS;AAF2B,KAAtC;AAID;;AAED,SAAOhB,UAAP;AACD;AAED;;;;;;;SAMgBiB,kBAAkBC;AAChC,MAAMC,aAAa,GAA4B,EAA/C;AACA,MAAMC,kBAAkB,GAAGF,KAAK,CAAC,UAAD,CAAhC;;AAEA,MAAIE,kBAAkB,KAAKnC,oBAA3B,EAAiD;AAC/C,SAAK,IAAIoC,QAAT,IAAqBD,kBAArB,EAAyC;AACvC,UAAIA,kBAAkB,CAACE,cAAnB,CAAkCD,QAAlC,KAA+CD,kBAAkB,CAACC,QAAD,CAAlB,KAAiCpC,oBAApF,EAA0G;AACxGkC,QAAAA,aAAa,CAACE,QAAD,CAAb,GAA0BD,kBAAkB,CAACC,QAAD,CAA5C;AACD;AACF;AACF;;AAED,OAAK,IAAIA,SAAT,IAAqBH,KAArB,EAA4B;AAC1B,QAAIA,KAAK,CAACI,cAAN,CAAqBD,SAArB,KAAkCA,SAAQ,KAAK,UAA/C,IAA6DH,KAAK,CAACG,SAAD,CAAL,KAAoBpC,oBAArF,EAA2G;AACzGkC,MAAAA,aAAa,CAACE,SAAD,CAAb,GAA0BH,KAAK,CAACG,SAAD,CAA/B;AACD;AACF;;AAED,SAAOF,aAAP;AACD;AAED;;;;;;;;SAOgBI,gBAAgBL,OAAsBM;AACpD,MAAMC,aAAa,GAA4BR,iBAAiB,CAACC,KAAD,CAAhE;AACA,MAAMQ,kBAAkB,GAAOR,KAAK,CAACX,QAAN,GAAiBW,KAAK,CAACX,QAAvB,GAAkCkB,aAAjE;AACA,MAAME,4BAA4B,GAA8BT,KAAK,CAACX,QAAN,GAAiBkB,aAAjB,GAAiC,IAAjG;AACA,MAAMG,WAAW,GAAG,EAApB;;AAEA,OAAK,IAAMC,GAAX,IAAkBH,kBAAlB,EAAsC;AACpC,QACEA,kBAAkB,CAACJ,cAAnB,CAAkCO,GAAlC,KACAH,kBAAkB,CAACG,GAAD,CAAlB,KAA4B,KAAK,CADjC,KAEEL,eAAe,IAAIK,GAAG,KAAK,MAA5B,GAAsC,CAACC,WAAW,CAACN,eAAe,CAACK,GAAD,CAAhB,EAAuBH,kBAAkB,CAACG,GAAD,CAAzC,CAAlD,GAAoG,IAFrG,CADF,EAIE;AACAD,MAAAA,WAAW,CAACC,GAAD,CAAX,GAAmBH,kBAAkB,CAACG,GAAD,CAArC;AACD;AACF;;AAED,OAAK,IAAMA,IAAX,IAAkBF,4BAAlB,EAAgD;AAC9C,QACEA,4BAA4B,CAACL,cAA7B,CAA4CO,IAA5C,KACAA,IAAG,KAAK,IADR,IAEAA,IAAG,KAAK,UAFR,IAGAA,IAAG,KAAK,0BAHR,IAIAF,4BAA4B,CAACE,IAAD,CAA5B,KAAsC,KAAK,CAJ3C,KAKEL,eAAe,IAAIK,IAAG,KAAK,MAA5B,GAAsC,CAACC,WAAW,CAACN,eAAe,CAACK,IAAD,CAAhB,EAAuBF,4BAA4B,CAACE,IAAD,CAAnD,CAAlD,GAA8G,IAL/G,CADF,EAOE;AACAD,MAAAA,WAAW,CAACC,IAAD,CAAX,GAAmBF,4BAA4B,CAACE,IAAD,CAA/C;AACD;AACF;;AAED,SAAOD,WAAP;AACD;AAED;;;;;;;;SAOgBG,gBAAgBC,gBAAyBvB;AACvD,MAAIwB,cAAc,GAAU,IAA5B;AAEAD,EAAAA,cAAc,CAACE,KAAf,CAAqB,UAACC,IAAD,EAAOC,KAAP;AACnB,QAAID,IAAI,CAACE,IAAL,IAAaF,IAAI,CAACE,IAAL,CAAUC,KAAvB,IAAgCH,IAAI,CAACE,IAAL,CAAUC,KAAV,CAAgB7B,IAAhB,MAA0B,KAAK,CAAnE,EAAsE;AACpEwB,MAAAA,cAAc,GAAGE,IAAjB;AACA,aAAO,KAAP;AACD;;AAED,WAAO,IAAP;AACD,GAPD;AASA,SAAOF,cAAP;AACD;AAED;;;;;;;SAMgBM,uBAAuBC;AACrC,SAAOA,QAAQ,CAACC,MAAT,CAAgB,UAACC,KAAD;AAAA,WAAWA,KAAK,CAACC,QAAN,CAAeC,IAAf,KAAwB,WAAnC;AAAA,GAAhB,CAAP;AACD;AAED;;;;;;;;;SAQgBC,mBAAmBC,OAAcC,QAAa7B,OAAemB;AAC3E,MAAMW,aAAa,GAAGD,MAAM,CAACE,GAAP,GAAaF,MAAM,CAACE,GAAP,CAAWD,aAAxB,GAAwCE,QAA9D;AACA,MAAM3C,QAAQ,GAAW;AACvB4C,IAAAA,SAAS,EAAEjC,KADY;AAEvB6B,IAAAA,MAAM,EAANA,MAFuB;AAGvBV,IAAAA,IAAI,EAAJA;AAHuB,GAAzB;;AAMA,MAAI,CAAClD,sBAAL,EAA6B;AAC3BA,IAAAA,sBAAsB,GAAG6D,aAAa,CAACI,aAAd,CAA4B,KAA5B,CAAzB;AACAjE,IAAAA,sBAAsB,CAACqB,EAAvB,GAA4B,kBAA5B;AAEAwC,IAAAA,aAAa,CAACK,IAAd,CAAmBC,WAAnB,CAA+BnE,sBAA/B;AACD;;AAED,MAAMoE,kBAAkB,GAAGP,aAAa,CAACI,aAAd,CAA4B,KAA5B,CAA3B;AACAjE,EAAAA,sBAAsB,CAACmE,WAAvB,CAAmCC,kBAAnC;AAEA,SAAQ,IAAKT,KAAK,CAACU,gBAAN,CAA+BC,IAApC,CAAyClD,QAAzC,CAAD,CAAqDmD,MAArD,CAA4DH,kBAA5D,CAAP;AACD;AAED;;;;;;;;;;AASA,SAASzB,WAAT,CAAqB6B,OAArB,EAA8BC,OAA9B;AACE,SAAOC,IAAI,CAACC,SAAL,CAAeH,OAAf,MAA4BE,IAAI,CAACC,SAAL,CAAeF,OAAf,CAAnC;AACD;;;;;;;;;;;AChQD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAC,UAASG,CAAT,EAAWC,CAAX,EAAa;AACZ,QAAMC,CAAC,GAAgCC,OAA7B,CAAV;AACAF,IAAAA,CAAC,CAACC,CAAD,CAAD;AAED,GAJD,EAIGE,cAJH,EAIS,UAASD,OAAT,EAAkB;AAEzB,QAAME,KAAK,GAAGlF,MAAM,CAAC,OAAD,CAApB;AACA,QAAMmF,KAAK,GAAGnF,MAAM,CAAC,OAAD,CAApB;;AAEA,aAASoF,MAAT,CAAgBC,KAAhB,EAAuBC,OAAvB,EAAgC;AAC9B,UAAI,OAAOD,KAAP,KAAiB,QAArB,EAA+B;;AAE7BC,QAAAA,OAAO,GAAGD,KAAV;AACAA,QAAAA,KAAK,GAAG,CAAR;AACD;;AAED,WAAKE,IAAL,GAAY,CAAZ;AACA,WAAKF,KAAL,GAAaA,KAAb;AACA,WAAKG,MAAL,GAAc,KAAKC,MAAL,GAAcC,SAA5B;AACA,WAAKC,OAAL,GAAe,IAAIC,GAAJ,EAAf;;AAEA,UAAIN,OAAJ,EAAa;AACX,aAAKtE,MAAL,CAAYsE,OAAZ;;AACA,YAAID,KAAK,GAAG,CAAZ,EAAe;AACb,eAAKA,KAAL,GAAa,KAAKE,IAAlB;AACD;AACF;AACF;;AAEDP,IAAAA,OAAO,CAACI,MAAR,GAAiBA,MAAjB;;AAEA,aAASS,KAAT,CAAelD,GAAf,EAAoBmD,KAApB,EAA2B;AACzB,WAAKnD,GAAL,GAAWA,GAAX;AACA,WAAKmD,KAAL,GAAaA,KAAb;AACA,WAAKZ,KAAL,IAAcQ,SAAd;AACA,WAAKP,KAAL,IAAcO,SAAd;AACD;;AAGDN,IAAAA,MAAM,CAACW,SAAP,CAAiBC,gBAAjB,GAAoC,UAASC,KAAT,EAAgB;AAClD,UAAIA,KAAK,KAAK,KAAKR,MAAnB,EAA2B;;AAEzB;AACD,OAJiD;;;;;;AASlD,UAAIQ,KAAK,CAACf,KAAD,CAAT,EAAkB;AAChB,YAAIe,KAAK,KAAK,KAAKT,MAAnB,EAA2B;AACzB,eAAKA,MAAL,GAAcS,KAAK,CAACf,KAAD,CAAnB;AACD;;AACDe,QAAAA,KAAK,CAACf,KAAD,CAAL,CAAaC,KAAb,IAAsBc,KAAK,CAACd,KAAD,CAA3B,CAJgB;AAKjB;;AACD,UAAIc,KAAK,CAACd,KAAD,CAAT,EAAkB;AAChBc,QAAAA,KAAK,CAACd,KAAD,CAAL,CAAaD,KAAb,IAAsBe,KAAK,CAACf,KAAD,CAA3B,CADgB;AAEjB;;AACDe,MAAAA,KAAK,CAACf,KAAD,CAAL,GAAeQ,SAAf,CAlBkD;;AAmBlDO,MAAAA,KAAK,CAACd,KAAD,CAAL,GAAe,KAAKM,MAApB,CAnBkD;;AAoBlD,UAAI,KAAKA,MAAT,EAAiB;AACf,aAAKA,MAAL,CAAYP,KAAZ,IAAqBe,KAArB,CADe;AAEhB;;AACD,WAAKR,MAAL,GAAcQ,KAAd;AACD,KAxBD;;AA0BAb,IAAAA,MAAM,CAACW,SAAP,CAAiB/E,MAAjB,GAA0B,UAASsE,OAAT,EAAkB;AAC1C,UAAIW,KAAJ;AAAA,UAAWZ,KAAK,GAAG,KAAKA,KAAL,IAAcvD,MAAM,CAACoE,SAAxC;;AACA,WAAKP,OAAL,CAAaQ,KAAb;;AACA,UAAIC,EAAE,GAAGd,OAAO,CAACtF,MAAM,CAACqG,QAAR,CAAP,EAAT;;AACA,WAAK,IAAIC,GAAG,GAAGF,EAAE,CAACG,IAAH,EAAf,EAA0B,CAACD,GAAG,CAACE,IAA/B,EAAqCF,GAAG,GAAGF,EAAE,CAACG,IAAH,EAA3C,EAAsD;AACpD,YAAIxB,CAAC,GAAG,IAAIc,KAAJ,CAAUS,GAAG,CAACR,KAAJ,CAAU,CAAV,CAAV,EAAwBQ,GAAG,CAACR,KAAJ,CAAU,CAAV,CAAxB,CAAR;;AACA,aAAKH,OAAL,CAAac,GAAb,CAAiB1B,CAAC,CAACpC,GAAnB,EAAwBoC,CAAxB;;AACA,YAAI,CAACkB,KAAL,EAAY;AACV,eAAKT,MAAL,GAAcT,CAAd;AACD,SAFD,MAEO;AACLkB,UAAAA,KAAK,CAACf,KAAD,CAAL,GAAeH,CAAf;AACAA,UAAAA,CAAC,CAACI,KAAD,CAAD,GAAWc,KAAX;AACD;;AACDA,QAAAA,KAAK,GAAGlB,CAAR;;AACA,YAAIM,KAAK,MAAM,CAAf,EAAkB;AAChB,gBAAM,IAAIqB,KAAJ,CAAU,UAAV,CAAN;AACD;AACF;;AACD,WAAKjB,MAAL,GAAcQ,KAAd;AACA,WAAKV,IAAL,GAAY,KAAKI,OAAL,CAAaJ,IAAzB;AACD,KApBD;;AAsBAH,IAAAA,MAAM,CAACW,SAAP,CAAiBY,GAAjB,GAAuB,UAAShE,GAAT,EAAc;;AAEnC,UAAIsD,KAAK,GAAG,KAAKN,OAAL,CAAagB,GAAb,CAAiBhE,GAAjB,CAAZ;;AACA,UAAI,CAACsD,KAAL,EAAY,OAHuB;;;AAKnC,WAAKD,gBAAL,CAAsBC,KAAtB;;AACA,aAAOA,KAAK,CAACH,KAAb;AACD,KAPD;;AASAV,IAAAA,MAAM,CAACW,SAAP,CAAiBU,GAAjB,GAAuB,UAAS9D,GAAT,EAAcmD,KAAd,EAAqB;AAC1C,UAAIG,KAAK,GAAG,KAAKN,OAAL,CAAagB,GAAb,CAAiBhE,GAAjB,CAAZ;;AAEA,UAAIsD,KAAJ,EAAW;;AAETA,QAAAA,KAAK,CAACH,KAAN,GAAcA,KAAd;;AACA,aAAKE,gBAAL,CAAsBC,KAAtB;;AACA,eAAO,IAAP;AACD,OARyC;;;AAW1C,WAAKN,OAAL,CAAac,GAAb,CAAiB9D,GAAjB,EAAuBsD,KAAK,GAAG,IAAIJ,KAAJ,CAAUlD,GAAV,EAAemD,KAAf,CAA/B;;AAEA,UAAI,KAAKL,MAAT,EAAiB;;AAEf,aAAKA,MAAL,CAAYP,KAAZ,IAAqBe,KAArB;AACAA,QAAAA,KAAK,CAACd,KAAD,CAAL,GAAe,KAAKM,MAApB;AACD,OAJD,MAIO;;AAEL,aAAKD,MAAL,GAAcS,KAAd;AACD,OApByC;;;AAuB1C,WAAKR,MAAL,GAAcQ,KAAd;AACA,QAAE,KAAKV,IAAP;;AACA,UAAI,KAAKA,IAAL,GAAY,KAAKF,KAArB,EAA4B;;AAE1B,aAAKuB,KAAL;AACD;;AAED,aAAO,IAAP;AACD,KA/BD;;AAiCAxB,IAAAA,MAAM,CAACW,SAAP,CAAiBa,KAAjB,GAAyB,YAAW;;AAElC,UAAIX,KAAK,GAAG,KAAKT,MAAjB;;AACA,UAAIS,KAAJ,EAAW;AACT,YAAI,KAAKT,MAAL,CAAYN,KAAZ,CAAJ,EAAwB;;AAEtB,eAAKM,MAAL,GAAc,KAAKA,MAAL,CAAYN,KAAZ,CAAd;AACA,eAAKM,MAAL,CAAYL,KAAZ,IAAqBO,SAArB;AACD,SAJD,MAIO;;AAEL,eAAKF,MAAL,GAAcE,SAAd;AACA,eAAKD,MAAL,GAAcC,SAAd;AACD,SATQ;;;;AAYTO,QAAAA,KAAK,CAACf,KAAD,CAAL,GAAee,KAAK,CAACd,KAAD,CAAL,GAAeO,SAA9B;;AACA,aAAKC,OAAL,WAAoBM,KAAK,CAACtD,GAA1B;;AACA,UAAE,KAAK4C,IAAP;AACA,eAAO,CAACU,KAAK,CAACtD,GAAP,EAAYsD,KAAK,CAACH,KAAlB,CAAP;AACD;AACF,KApBD,CA7HyB;AAoJ3B;AACA;;;AACEV,IAAAA,MAAM,CAACW,SAAP,CAAiBc,GAAjB,GAAuB,UAASlE,GAAT,EAAc;AACnC,aAAO,KAAKgD,OAAL,CAAakB,GAAb,CAAiBlE,GAAjB,CAAP;AACD,KAFD;AAGD,GA7JD;;;;ACUA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAAA;;AC5BA,SAAS,kBAAkB,CAAC,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,oBAAoB,EAAE,gBAAgB,oBAAoB,UAAU,EAAE,cAAc,EAAE,iBAAiB,EAAE,oBAAoB,EAAE;AAC7L,IAAI,IAAI,OAAO,UAAU,KAAK,SAAS,EAAE;AACzC,QAAQ,iBAAiB,GAAG,cAAc,CAAC;AAC3C,QAAQ,cAAc,GAAG,UAAU,CAAC;AACpC,QAAQ,UAAU,GAAG,KAAK,CAAC;AAC3B,KAAK;AACL;AACA,IAAI,MAAM,OAAO,GAAG,OAAO,MAAM,KAAK,UAAU,GAAG,MAAM,CAAC,OAAO,GAAG,MAAM,CAAC;AAC3E;AACA,IAAI,IAAI,QAAQ,IAAI,QAAQ,CAAC,MAAM,EAAE;AACrC,QAAQ,OAAO,CAAC,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC;AACzC,QAAQ,OAAO,CAAC,eAAe,GAAG,QAAQ,CAAC,eAAe,CAAC;AAC3D,QAAQ,OAAO,CAAC,SAAS,GAAG,IAAI,CAAC;AACjC;AACA,QAAQ,IAAI,oBAAoB,EAAE;AAClC,YAAY,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC;AACtC,SAAS;AACT,KAAK;AACL;AACA,IAAI,IAAI,OAAO,EAAE;AACjB,QAAQ,OAAO,CAAC,QAAQ,GAAG,OAAO,CAAC;AACnC,KAAK;AACL,IAAI,IAAI,IAAI,CAAC;AACb,IAAI,IAAI,gBAAgB,EAAE;AAC1B;AACA,QAAQ,IAAI,GAAG,UAAU,OAAO,EAAE;AAClC;AACA,YAAY,OAAO;AACnB,gBAAgB,OAAO;AACvB,qBAAqB,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC;AAC3D,qBAAqB,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;AACzF;AACA,YAAY,IAAI,CAAC,OAAO,IAAI,OAAO,mBAAmB,KAAK,WAAW,EAAE;AACxE,gBAAgB,OAAO,GAAG,mBAAmB,CAAC;AAC9C,aAAa;AACb;AACA,YAAY,IAAI,KAAK,EAAE;AACvB,gBAAgB,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,iBAAiB,CAAC,OAAO,CAAC,CAAC,CAAC;AAC7D,aAAa;AACb;AACA,YAAY,IAAI,OAAO,IAAI,OAAO,CAAC,qBAAqB,EAAE;AAC1D,gBAAgB,OAAO,CAAC,qBAAqB,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC;AACpE,aAAa;AACb,SAAS,CAAC;AACV;AACA;AACA,QAAQ,OAAO,CAAC,YAAY,GAAG,IAAI,CAAC;AACpC,KAAK;AACL,SAAS,IAAI,KAAK,EAAE;AACpB,QAAQ,IAAI,GAAG,UAAU;AACzB,cAAc,UAAU,OAAO,EAAE;AACjC,gBAAgB,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,oBAAoB,CAAC,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC;AAChG,aAAa;AACb,cAAc,UAAU,OAAO,EAAE;AACjC,gBAAgB,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,cAAc,CAAC,OAAO,CAAC,CAAC,CAAC;AAC1D,aAAa,CAAC;AACd,KAAK;AACL,IAAI,IAAI,IAAI,EAAE;AACd,QAAQ,IAAI,OAAO,CAAC,UAAU,EAAE;AAChC;AACA,YAAY,MAAM,cAAc,GAAG,OAAO,CAAC,MAAM,CAAC;AAClD,YAAY,OAAO,CAAC,MAAM,GAAG,SAAS,wBAAwB,CAAC,CAAC,EAAE,OAAO,EAAE;AAC3E,gBAAgB,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;AACnC,gBAAgB,OAAO,cAAc,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;AAClD,aAAa,CAAC;AACd,SAAS;AACT,aAAa;AACb;AACA,YAAY,MAAM,QAAQ,GAAG,OAAO,CAAC,YAAY,CAAC;AAClD,YAAY,OAAO,CAAC,YAAY,GAAG,QAAQ,GAAG,EAAE,CAAC,MAAM,CAAC,QAAQ,EAAE,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;AACjF,SAAS;AACT,KAAK;AACL,IAAI,OAAO,MAAM,CAAC;AAClB;;;ADvEA,+BAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AEWA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAAA;;;AAXA,gCAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACKA,SAASmE,OAAT,CAAiBC,GAAjB,EAAsB;AACpB,MAAI,OAAO/G,MAAP,KAAkB,UAAlB,IAAgCgH,UAAOhH,MAAM,CAACqG,QAAd,MAA2B,QAA/D,EAAyE;AACvES,IAAAA,OAAO,GAAG,iBAAUC,GAAV,EAAe;AACvB,uBAAcA,GAAd;AACD,KAFD;AAGD,GAJD,MAIO;AACLD,IAAAA,OAAO,GAAG,iBAAUC,GAAV,EAAe;AACvB,aAAOA,GAAG,IAAI,OAAO/G,MAAP,KAAkB,UAAzB,IAAuC+G,GAAG,CAACE,WAAJ,KAAoBjH,MAA3D,IAAqE+G,GAAG,KAAK/G,MAAM,CAAC+F,SAApF,GAAgG,QAAhG,aAAkHgB,GAAlH,CAAP;AACD,KAFD;AAGD;;AAED,SAAOD,OAAO,CAACC,GAAD,CAAd;AACD;;AAED,SAASG,eAAT,CAAyBH,GAAzB,EAA8BpE,GAA9B,EAAmCmD,KAAnC,EAA0C;AACxC,MAAInD,GAAG,IAAIoE,GAAX,EAAgB;AACdhG,IAAAA,MAAM,CAACoG,cAAP,CAAsBJ,GAAtB,EAA2BpE,GAA3B,EAAgC;AAC9BmD,MAAAA,KAAK,EAAEA,KADuB;AAE9BsB,MAAAA,UAAU,EAAE,IAFkB;AAG9BC,MAAAA,YAAY,EAAE,IAHgB;AAI9BC,MAAAA,QAAQ,EAAE;AAJoB,KAAhC;AAMD,GAPD,MAOO;AACLP,IAAAA,GAAG,CAACpE,GAAD,CAAH,GAAWmD,KAAX;AACD;;AAED,SAAOiB,GAAP;AACD;;AAED,SAASQ,kBAAT,CAA4BC,GAA5B,EAAiC;AAC/B,SAAOC,kBAAkB,CAACD,GAAD,CAAlB,IAA2BE,gBAAgB,CAACF,GAAD,CAA3C,IAAoDG,kBAAkB,EAA7E;AACD;;AAED,SAASF,kBAAT,CAA4BD,GAA5B,EAAiC;AAC/B,MAAII,KAAK,CAACC,OAAN,CAAcL,GAAd,CAAJ,EAAwB;AACtB,SAAK,IAAIrG,CAAC,GAAG,CAAR,EAAW2G,IAAI,GAAG,IAAIF,KAAJ,CAAUJ,GAAG,CAACpG,MAAd,CAAvB,EAA8CD,CAAC,GAAGqG,GAAG,CAACpG,MAAtD,EAA8DD,CAAC,EAA/D;AAAmE2G,MAAAA,IAAI,CAAC3G,CAAD,CAAJ,GAAUqG,GAAG,CAACrG,CAAD,CAAb;AAAnE;;AAEA,WAAO2G,IAAP;AACD;AACF;;AAED,SAASJ,gBAAT,CAA0BK,IAA1B,EAAgC;AAC9B,MAAI/H,MAAM,CAACqG,QAAP,IAAmBtF,MAAM,CAACgH,IAAD,CAAzB,IAAmChH,MAAM,CAACgF,SAAP,CAAiBpE,QAAjB,CAA0BqG,IAA1B,CAA+BD,IAA/B,MAAyC,oBAAhF,EAAsG,OAAOH,KAAK,CAACK,IAAN,CAAWF,IAAX,CAAP;AACvG;;AAED,SAASJ,kBAAT,GAA8B;AAC5B,QAAM,IAAIO,SAAJ,CAAc,iDAAd,CAAN;AACD;AAGD;AACA;;;AACA,SAASC,qBAAT,GAAiC;AAC/B,SAAO,OAAOC,OAAP,KAAmB,WAAnB,IAAkCA,OAAO,CAACC,cAA1C,IAA4DD,OAAO,CAACE,kBAA3E;AACD;;AACD,SAASC,sBAAT,CAAgCC,EAAhC,EAAoCP,IAApC,EAA0C;AACxCQ,EAAAA,eAAe,CAACD,EAAD,EAAKP,IAAL,CAAf;AACAlH,EAAAA,MAAM,CAAC2H,mBAAP,CAA2BT,IAAI,CAAClC,SAAhC,EAA2C4C,OAA3C,CAAmD,UAAUhG,GAAV,EAAe;AAChE8F,IAAAA,eAAe,CAACD,EAAE,CAACzC,SAAJ,EAAekC,IAAI,CAAClC,SAApB,EAA+BpD,GAA/B,CAAf;AACD,GAFD;AAGA5B,EAAAA,MAAM,CAAC2H,mBAAP,CAA2BT,IAA3B,EAAiCU,OAAjC,CAAyC,UAAUhG,GAAV,EAAe;AACtD8F,IAAAA,eAAe,CAACD,EAAD,EAAKP,IAAL,EAAWtF,GAAX,CAAf;AACD,GAFD;AAGD;;AAED,SAAS8F,eAAT,CAAyBD,EAAzB,EAA6BP,IAA7B,EAAmCW,WAAnC,EAAgD;AAC9C,MAAIC,QAAQ,GAAGD,WAAW,GAAGR,OAAO,CAACE,kBAAR,CAA2BL,IAA3B,EAAiCW,WAAjC,CAAH,GAAmDR,OAAO,CAACE,kBAAR,CAA2BL,IAA3B,CAA7E;AACAY,EAAAA,QAAQ,CAACF,OAAT,CAAiB,UAAUG,OAAV,EAAmB;AAClC,QAAIC,QAAQ,GAAGH,WAAW,GAAGR,OAAO,CAACY,cAAR,CAAuBF,OAAvB,EAAgCb,IAAhC,EAAsCW,WAAtC,CAAH,GAAwDR,OAAO,CAACY,cAAR,CAAuBF,OAAvB,EAAgCb,IAAhC,CAAlF;;AAEA,QAAIW,WAAJ,EAAiB;AACfR,MAAAA,OAAO,CAACC,cAAR,CAAuBS,OAAvB,EAAgCC,QAAhC,EAA0CP,EAA1C,EAA8CI,WAA9C;AACD,KAFD,MAEO;AACLR,MAAAA,OAAO,CAACC,cAAR,CAAuBS,OAAvB,EAAgCC,QAAhC,EAA0CP,EAA1C;AACD;AACF,GARD;AASD;;AAED,IAAIS,SAAS,GAAG;AACdC,EAAAA,SAAS,EAAE;AADG,CAAhB;AAGA,IAAIC,QAAQ,GAAGF,SAAS,YAAYrB,KAApC;;AA2BA,SAASwB,WAAT,CAAqBtD,KAArB,EAA4B;AAC1B,MAAIvE,IAAI,GAAGuF,OAAO,CAAChB,KAAD,CAAlB;;AAEA,SAAOA,KAAK,IAAI,IAAT,IAAiBvE,IAAI,KAAK,QAAT,IAAqBA,IAAI,KAAK,UAAtD;AACD;;AAOD,SAAS8H,0BAAT,CAAoCC,EAApC,EAAwCC,SAAxC,EAAmD;AACjD;AACA,MAAIC,YAAY,GAAGD,SAAS,CAACxD,SAAV,CAAoB0D,KAAvC;;AAEAF,EAAAA,SAAS,CAACxD,SAAV,CAAoB0D,KAApB,GAA4B,YAAY;AACtC,QAAIC,KAAK,GAAG,IAAZ,CADsC;;;AAItC,QAAIC,IAAI,GAAG5I,MAAM,CAAC2H,mBAAP,CAA2BY,EAA3B,CAAX,CAJsC;;AAMtC,QAAIA,EAAE,CAAC7F,QAAH,CAAYzB,KAAhB,EAAuB;AACrB,WAAK,IAAIW,GAAT,IAAgB2G,EAAE,CAAC7F,QAAH,CAAYzB,KAA5B,EAAmC;AACjC,YAAI,CAACsH,EAAE,CAAClH,cAAH,CAAkBO,GAAlB,CAAL,EAA6B;AAC3BgH,UAAAA,IAAI,CAACC,IAAL,CAAUjH,GAAV;AACD;AACF;AACF;;AAEDgH,IAAAA,IAAI,CAAChB,OAAL,CAAa,UAAUhG,GAAV,EAAe;AAC1B5B,MAAAA,MAAM,CAACoG,cAAP,CAAsBuC,KAAtB,EAA6B/G,GAA7B,EAAkC;AAChCgE,QAAAA,GAAG,EAAE,SAASA,GAAT,GAAe;AAClB,iBAAO2C,EAAE,CAAC3G,GAAD,CAAT;AACD,SAH+B;AAIhC8D,QAAAA,GAAG,EAAE,SAASA,GAAT,CAAaX,KAAb,EAAoB;AACvBwD,UAAAA,EAAE,CAAC3G,GAAD,CAAF,GAAUmD,KAAV;AACD,SAN+B;AAOhCuB,QAAAA,YAAY,EAAE;AAPkB,OAAlC;AASD,KAVD;AAWD,GAzBD,CAJiD;;;AAgCjD,MAAIlE,IAAI,GAAG,IAAIoG,SAAJ,EAAX,CAhCiD;;AAkCjDA,EAAAA,SAAS,CAACxD,SAAV,CAAoB0D,KAApB,GAA4BD,YAA5B,CAlCiD;;AAoCjD,MAAIK,SAAS,GAAG,EAAhB;AACA9I,EAAAA,MAAM,CAAC4I,IAAP,CAAYxG,IAAZ,EAAkBwF,OAAlB,CAA0B,UAAUhG,GAAV,EAAe;AACvC,QAAIQ,IAAI,CAACR,GAAD,CAAJ,KAAc+C,SAAlB,EAA6B;AAC3BmE,MAAAA,SAAS,CAAClH,GAAD,CAAT,GAAiBQ,IAAI,CAACR,GAAD,CAArB;AACD;AACF,GAJD;;AAYA,SAAOkH,SAAP;AACD;;AAED,IAAIC,cAAc,GAAG,CAAC,MAAD,EAAS,cAAT,EAAyB,SAAzB,EAAoC,aAApC,EAAmD,SAAnD,EAA8D,eAA9D,EAA+E,WAA/E,EAA4F,cAA5F,EAA4G,SAA5G,EAAuH,WAAvH,EAAoI,aAApI,EAAmJ,QAAnJ,EAA6J,eAA7J,EAA8K,gBAA9K;AAAA,CAArB;;AAEA,SAASC,gBAAT,CAA0BR,SAA1B,EAAqC;AACnC,MAAIS,OAAO,GAAGC,SAAS,CAAC7I,MAAV,GAAmB,CAAnB,IAAwB6I,SAAS,CAAC,CAAD,CAAT,KAAiBvE,SAAzC,GAAqDuE,SAAS,CAAC,CAAD,CAA9D,GAAoE,EAAlF;AACAD,EAAAA,OAAO,CAACtG,IAAR,GAAesG,OAAO,CAACtG,IAAR,IAAgB6F,SAAS,CAACW,aAA1B,IAA2CX,SAAS,CAAC7F,IAApE,CAFmC;;AAInC,MAAIyG,KAAK,GAAGZ,SAAS,CAACxD,SAAtB;AACAhF,EAAAA,MAAM,CAAC2H,mBAAP,CAA2ByB,KAA3B,EAAkCxB,OAAlC,CAA0C,UAAUhG,GAAV,EAAe;AACvD,QAAIA,GAAG,KAAK,aAAZ,EAA2B;AACzB;AACD,KAHsD;;;AAMvD,QAAImH,cAAc,CAACM,OAAf,CAAuBzH,GAAvB,IAA8B,CAAC,CAAnC,EAAsC;AACpCqH,MAAAA,OAAO,CAACrH,GAAD,CAAP,GAAewH,KAAK,CAACxH,GAAD,CAApB;AACA;AACD;;AAED,QAAI0H,UAAU,GAAGtJ,MAAM,CAACuJ,wBAAP,CAAgCH,KAAhC,EAAuCxH,GAAvC,CAAjB;;AAEA,QAAI0H,UAAU,CAACvE,KAAX,KAAqB,KAAK,CAA9B,EAAiC;AAC/B;AACA,UAAI,OAAOuE,UAAU,CAACvE,KAAlB,KAA4B,UAAhC,EAA4C;AAC1C,SAACkE,OAAO,CAACO,OAAR,KAAoBP,OAAO,CAACO,OAAR,GAAkB,EAAtC,CAAD,EAA4C5H,GAA5C,IAAmD0H,UAAU,CAACvE,KAA9D;AACD,OAFD,MAEO;AACL;AACA,SAACkE,OAAO,CAACQ,MAAR,KAAmBR,OAAO,CAACQ,MAAR,GAAiB,EAApC,CAAD,EAA0CZ,IAA1C,CAA+C;AAC7CzG,UAAAA,IAAI,EAAE,SAASA,IAAT,GAAgB;AACpB,mBAAO+D,eAAe,CAAC,EAAD,EAAKvE,GAAL,EAAU0H,UAAU,CAACvE,KAArB,CAAtB;AACD;AAH4C,SAA/C;AAKD;AACF,KAZD,MAYO,IAAIuE,UAAU,CAAC1D,GAAX,IAAkB0D,UAAU,CAAC5D,GAAjC,EAAsC;AAC3C;AACA,OAACuD,OAAO,CAACS,QAAR,KAAqBT,OAAO,CAACS,QAAR,GAAmB,EAAxC,CAAD,EAA8C9H,GAA9C,IAAqD;AACnDgE,QAAAA,GAAG,EAAE0D,UAAU,CAAC1D,GADmC;AAEnDF,QAAAA,GAAG,EAAE4D,UAAU,CAAC5D;AAFmC,OAArD;AAID;AACF,GAhCD;AAiCA,GAACuD,OAAO,CAACQ,MAAR,KAAmBR,OAAO,CAACQ,MAAR,GAAiB,EAApC,CAAD,EAA0CZ,IAA1C,CAA+C;AAC7CzG,IAAAA,IAAI,EAAE,SAASA,IAAT,GAAgB;AACpB,aAAOkG,0BAA0B,CAAC,IAAD,EAAOE,SAAP,CAAjC;AACD;AAH4C,GAA/C,EAtCmC;;AA4CnC,MAAImB,UAAU,GAAGnB,SAAS,CAACoB,cAA3B;;AAEA,MAAID,UAAJ,EAAgB;AACdA,IAAAA,UAAU,CAAC/B,OAAX,CAAmB,UAAUiC,EAAV,EAAc;AAC/B,aAAOA,EAAE,CAACZ,OAAD,CAAT;AACD,KAFD;AAGA,WAAOT,SAAS,CAACoB,cAAjB;AACD,GAnDkC;;;AAsDnC,MAAIE,UAAU,GAAG9J,MAAM,CAAC+J,cAAP,CAAsBvB,SAAS,CAACxD,SAAhC,CAAjB;AACA,MAAIgF,KAAK,GAAGF,UAAU,YAAYG,uBAAtB,GAA4BH,UAAU,CAAC5D,WAAvC,GAAqD+D,uBAAjE;AACA,MAAIC,QAAQ,GAAGF,KAAK,CAACG,MAAN,CAAalB,OAAb,CAAf;AACAmB,EAAAA,oBAAoB,CAACF,QAAD,EAAW1B,SAAX,EAAsBwB,KAAtB,CAApB;;AAEA,MAAI5C,qBAAqB,EAAzB,EAA6B;AAC3BI,IAAAA,sBAAsB,CAAC0C,QAAD,EAAW1B,SAAX,CAAtB;AACD;;AAED,SAAO0B,QAAP;AACD;AAMD,IAAIG,YAAY,GAAG;AACjBrF,EAAAA,SAAS,EAAE,IADM;AAEjBkE,EAAAA,SAAS,EAAE,IAFM;AAGjBoB,EAAAA,MAAM,EAAE,IAHS;AAIjBC,EAAAA,MAAM,EAAE;AAJS,CAAnB;;AAOA,SAASH,oBAAT,CAA8BF,QAA9B,EAAwCM,QAAxC,EAAkDR,KAAlD,EAAyD;AACvD;AACAhK,EAAAA,MAAM,CAAC2H,mBAAP,CAA2B6C,QAA3B,EAAqC5C,OAArC,CAA6C,UAAUhG,GAAV,EAAe;AAC1D;AACA,QAAIyI,YAAY,CAACzI,GAAD,CAAhB,EAAuB;AACrB;AACD,KAJyD;;;AAO1D,QAAI6I,kBAAkB,GAAGzK,MAAM,CAACuJ,wBAAP,CAAgCW,QAAhC,EAA0CtI,GAA1C,CAAzB;;AAEA,QAAI6I,kBAAkB,IAAI,CAACA,kBAAkB,CAACnE,YAA9C,EAA4D;AAC1D;AACD;;AAED,QAAIgD,UAAU,GAAGtJ,MAAM,CAACuJ,wBAAP,CAAgCiB,QAAhC,EAA0C5I,GAA1C,CAAjB,CAb0D;AAc1D;AACA;AACA;AACA;AACA;AACA;;AAEA,QAAI,CAACwG,QAAL,EAAe;AACb;AACA;AACA;AACA,UAAIxG,GAAG,KAAK,KAAZ,EAAmB;AACjB;AACD;;AAED,UAAI8I,eAAe,GAAG1K,MAAM,CAACuJ,wBAAP,CAAgCS,KAAhC,EAAuCpI,GAAvC,CAAtB;;AAEA,UAAI,CAACyG,WAAW,CAACiB,UAAU,CAACvE,KAAZ,CAAZ,IAAkC2F,eAAlC,IAAqDA,eAAe,CAAC3F,KAAhB,KAA0BuE,UAAU,CAACvE,KAA9F,EAAqG;AACnG;AACD;AACF,KAlCyD;;AAyC1D/E,IAAAA,MAAM,CAACoG,cAAP,CAAsB8D,QAAtB,EAAgCtI,GAAhC,EAAqC0H,UAArC;AACD,GA1CD;AA2CD;;AAED,SAASd,SAAT,CAAmBS,OAAnB,EAA4B;AAC1B,MAAI,OAAOA,OAAP,KAAmB,UAAvB,EAAmC;AACjC,WAAOD,gBAAgB,CAACC,OAAD,CAAvB;AACD;;AAED,SAAO,UAAUT,SAAV,EAAqB;AAC1B,WAAOQ,gBAAgB,CAACR,SAAD,EAAYS,OAAZ,CAAvB;AACD,GAFD;AAGD;;AAEDT,SAAS,CAACmC,aAAV,GAA0B,SAASA,aAAT,CAAuB/B,IAAvB,EAA6B;AACrDG,EAAAA,cAAc,CAACF,IAAf,CAAoB+B,KAApB,CAA0B7B,cAA1B,EAA0CvC,kBAAkB,CAACoC,IAAD,CAA5D;AACD,CAFD;;ACpTA;;;;;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;0BAAA;;;AAoKA,gCAAA;;;AAxKA,2BAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -1,36 +1,33 @@
1
1
  /*!
2
2
  * Copyright (c) HANDSONCODE sp. z o. o.
3
3
  *
4
- * HANDSONTABLE is a software distributed by HANDSONCODE sp. z o. o.,
5
- * a Polish corporation, based in Gdynia, Poland, at 96/98 Aleja Zwycięstwa,
6
- * registered with the National Court Register under number 538651,
7
- * EU tax ID number: PL5862294002, share capital: PLN 62,800.00.
4
+ * HANDSONTABLE is a software distributed by HANDSONCODE sp. z o. o., a Polish corporation based in
5
+ * Gdynia, Poland, at Aleja Zwycięstwa 96-98, registered by the District Court in Gdansk under number
6
+ * 538651, EU tax ID number: PL5862294002, share capital: PLN 62,800.00.
8
7
  *
9
- * This software is protected by applicable copyright laws, including
10
- * international treaties, and dual-licensed – depending on whether
11
- * your use is intended for or may result in commercial advantage
12
- * or monetary compensation (commercial purposes), or not.
8
+ * This software is protected by applicable copyright laws, including international treaties, and dual-
9
+ * licensed – depending on whether your use for commercial purposes, meaning intended for or
10
+ * resulting in commercial advantage or monetary compensation, or not.
13
11
  *
14
- * If your use involves only such purposes as research, private study,
15
- * evaluation and the like, you agree to be bound by the terms included
16
- * in the "handsontable-non-commercial-license.pdf" file, available
17
- * in the main directory of this software repository.
12
+ * If your use is strictly personal or solely for evaluation purposes, meaning for the purposes of testing
13
+ * the suitability, performance, and usefulness of this software outside the production environment,
14
+ * you agree to be bound by the terms included in the "handsontable-non-commercial-license.pdf" file.
18
15
  *
19
- * By installing, copying, or otherwise using this software for
20
- * commercial purposes, you agree to be bound by the terms included
21
- * in the "handsontable-general-terms.pdf" file, available in the main
22
- * directory of this software repository.
16
+ * Your use of this software for commercial purposes is subject to the terms included in an applicable
17
+ * license agreement.
23
18
  *
24
- * HANDSONCODE PROVIDES THIS SOFTWARE ON AN "AS IS" BASIS,
25
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND. IN NO EVENT
26
- * AND UNDER NO LEGAL THEORY, SHALL HANDSONCODE BE LIABLE
27
- * TO YOU FOR DAMAGES, INCLUDING ANY DIRECT, INDIRECT, SPECIAL,
28
- * INCIDENTAL, OR CONSEQUENTIAL DAMAGES OF ANY CHARACTER ARISING
29
- * FROM USE OR INABILITY TO USE THIS SOFTWARE.
19
+ * In any case, you must not make any such use of this software as to develop software which may be
20
+ * considered competitive with this software.
30
21
  *
31
- * Version: 10.0.0 (built at Wed Sep 29 2021 10:35:23 GMT+0200 (Central European Summer Time))
22
+ * UNLESS EXPRESSLY AGREED OTHERWISE, HANDSONCODE PROVIDES THIS SOFTWARE ON AN &quot;AS IS&quot;
23
+ * BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, AND IN NO EVENT AND UNDER NO
24
+ * LEGAL THEORY, SHALL HANDSONCODE BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY DIRECT,
25
+ * INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES OF ANY CHARACTER ARISING FROM
26
+ * USE OR INABILITY TO USE THIS SOFTWARE.
27
+ *
28
+ * Version: 11.0.0 (built at Wed Nov 17 2021 11:02:12 GMT+0100 (Central European Standard Time))
32
29
  */
33
- !function(t,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports,require("handsontable"),require("vue")):"function"==typeof define&&define.amd?define(["exports","handsontable","vue"],e):e(((t="undefined"!=typeof globalThis?globalThis:t||self).Handsontable=t.Handsontable||{},t.Handsontable.vue={}),t.Handsontable,t.Vue)}(this,(function(t,e,n){"use strict";function o(t){return t&&"object"==typeof t&&"default"in t?t:{default:t}}var r=o(e),a=o(n);function i(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 s(t){for(var e=1;arguments.length>e;e++){var n=null!=arguments[e]?arguments[e]:{};e%2?i(Object(n),!0).forEach((function(e){f(t,e,n[e])})):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):i(Object(n)).forEach((function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(n,e))}))}return t}function c(t){return c="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},c(t)}function u(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function l(t,e){for(var n=0;e.length>n;n++){var o=e[n];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(t,o.key,o)}}function d(t,e,n){return e&&l(t.prototype,e),n&&l(t,n),t}function f(t,e,n){return e in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}function h(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function");t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),e&&y(t,e)}function p(t){return p=Object.setPrototypeOf?Object.getPrototypeOf:function(t){return t.__proto__||Object.getPrototypeOf(t)},p(t)}function y(t,e){return y=Object.setPrototypeOf||function(t,e){return t.__proto__=e,t},y(t,e)}function v(t){if(void 0===t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return t}function m(t,e){if(e&&("object"==typeof e||"function"==typeof e))return e;if(void 0!==e)throw new TypeError("Derived constructors may only return object or undefined");return v(t)}function g(t){var e=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(t){return!1}}();return function(){var n,o=p(t);if(e){var r=p(this).constructor;n=Reflect.construct(o,arguments,r)}else n=o.apply(this,arguments);return m(this,n)}}var b=Symbol("unassigned"),E=null;function C(t){var e=r.default.hooks.getRegistered(),n={};for(var o in Object.assign(n,r.default.DefaultSettings),n)n[o]={default:b};for(var a=0;e.length>a;a++)n[e[a]]={default:b};return n.settings={default:b},"HotTable"===t&&(n.id={type:String,default:"hot-"+Math.random().toString(36).substring(5)},n.wrapperRendererCacheSize={type:Number,default:3e3}),n}function w(t){var e={},n=t.settings;if(n!==b)for(var o in n)n.hasOwnProperty(o)&&n[o]!==b&&(e[o]=n[o]);for(var r in t)t.hasOwnProperty(r)&&"settings"!==r&&t[r]!==b&&(e[r]=t[r]);return e}function I(t,e){var n=w(t),o=t.settings?t.settings:n,r=t.settings?n:null,a={};for(var i in o)!o.hasOwnProperty(i)||void 0===o[i]||e&&"data"!==i&&k(e[i],o[i])||(a[i]=o[i]);for(var s in r)!r.hasOwnProperty(s)||"id"===s||"settings"===s||"wrapperRendererCacheSize"===s||void 0===r[s]||e&&"data"!==s&&k(e[s],r[s])||(a[s]=r[s]);return a}function O(t,e){var n=null;return t.every((function(t,o){return!t.data||!t.data.attrs||void 0===t.data.attrs[e]||(n=t,!1)})),n}function _(t,e,n,o){var r=e.$el?e.$el.ownerDocument:document,a={propsData:n,parent:e,data:o};E||((E=r.createElement("DIV")).id="vueHotComponents",r.body.appendChild(E));var i=r.createElement("DIV");return E.appendChild(i),new t.componentOptions.Ctor(a).$mount(i)}function k(t,e){return JSON.stringify(t)===JSON.stringify(e)}"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self&&self;var S=function(t,e){return t(e={exports:{}},e.exports),e.exports}((function(t,e){!function(t){var e=Symbol("newer"),n=Symbol("older");function o(t,e){"number"!=typeof t&&(e=t,t=0),this.size=0,this.limit=t,this.oldest=this.newest=void 0,this._keymap=new Map,e&&(this.assign(e),1>t&&(this.limit=this.size))}function r(t,o){this.key=t,this.value=o,this[e]=void 0,this[n]=void 0}t.LRUMap=o,o.prototype._markEntryAsUsed=function(t){t!==this.newest&&(t[e]&&(t===this.oldest&&(this.oldest=t[e]),t[e][n]=t[n]),t[n]&&(t[n][e]=t[e]),t[e]=void 0,t[n]=this.newest,this.newest&&(this.newest[e]=t),this.newest=t)},o.prototype.assign=function(t){var o,a=this.limit||Number.MAX_VALUE;this._keymap.clear();for(var i=t[Symbol.iterator](),s=i.next();!s.done;s=i.next()){var c=new r(s.value[0],s.value[1]);if(this._keymap.set(c.key,c),o?(o[e]=c,c[n]=o):this.oldest=c,o=c,0==a--)throw Error("overflow")}this.newest=o,this.size=this._keymap.size},o.prototype.get=function(t){var e=this._keymap.get(t);if(e)return this._markEntryAsUsed(e),e.value},o.prototype.set=function(t,o){var a=this._keymap.get(t);return a?(a.value=o,this._markEntryAsUsed(a),this):(this._keymap.set(t,a=new r(t,o)),this.newest?(this.newest[e]=a,a[n]=this.newest):this.oldest=a,this.newest=a,++this.size,this.size>this.limit&&this.shift(),this)},o.prototype.shift=function(){var t=this.oldest;if(t)return this.oldest[e]?(this.oldest=this.oldest[e],this.oldest[n]=void 0):(this.oldest=void 0,this.newest=void 0),t[e]=t[n]=void 0,this._keymap.delete(t.key),--this.size,[t.key,t.value]},o.prototype.has=function(t){return this._keymap.has(t)}}(e)})),$=S.LRUMap;function j(t,e,n,o,r,a,i,s,c,u){"boolean"!=typeof i&&(c=s,s=i,i=!1);const l="function"==typeof n?n.options:n;let d;if(t&&t.render&&(l.render=t.render,l.staticRenderFns=t.staticRenderFns,l._compiled=!0,r&&(l.functional=!0)),o&&(l._scopeId=o),a?(d=function(t){(t=t||this.$vnode&&this.$vnode.ssrContext||this.parent&&this.parent.$vnode&&this.parent.$vnode.ssrContext)||"undefined"==typeof __VUE_SSR_CONTEXT__||(t=__VUE_SSR_CONTEXT__),e&&e.call(this,c(t)),t&&t._registeredComponents&&t._registeredComponents.add(a)},l._ssrRegister=d):e&&(d=i?function(t){e.call(this,u(t,this.$root.$options.shadowRoot))}:function(t){e.call(this,s(t))}),d)if(l.functional){const t=l.render;l.render=function(e,n){return d.call(n),t(e,n)}}else{const t=l.beforeCreate;l.beforeCreate=t?[].concat(t,d):[d]}return n}var R=j({render:function(){var t=this;return(t._self._c||t.$createElement)("div",{attrs:{id:t.id}},[t._t("default")],2)},staticRenderFns:[]},undefined,{name:"HotTable",props:C("HotTable"),watch:{mergedHotSettings:function(t){this.hotInstance&&void 0!==t&&(t.data&&(this.hotInstance.isColumnModificationAllowed()||!this.hotInstance.isColumnModificationAllowed()&&this.hotInstance.countSourceCols()===this.miscCache.currentSourceColumns)&&(this.matchHotMappersSize(),delete t.data),Object.keys(t).length?this.hotInstance.updateSettings(t):this.hotInstance.render(),this.miscCache.currentSourceColumns=this.hotInstance.countSourceCols())}},data:function(){var t=this,e=new $(this.wrapperRendererCacheSize);return e.shift=function(){var t=$.prototype.shift.call(this);return t[1].component.$destroy(),t},{__internalEdit:!1,miscCache:{currentSourceColumns:null},__hotInstance:null,columnSettings:null,rendererCache:e,editorCache:new Map,get hotInstance(){return!t.__hotInstance||t.__hotInstance&&!t.__hotInstance.isDestroyed?t.__hotInstance:(console.warn("The Handsontable instance bound to this component was destroyed and cannot be used properly."),null)},set hotInstance(e){t.__hotInstance=e}}},computed:{mergedHotSettings:function(){return I(this.$props,this.hotInstance?this.hotInstance.getSettings():void 0)}},methods:{hotInit:function(){var t,e=this.getGlobalRendererVNode(),n=this.getGlobalEditorVNode(),o=I(this.$props);o.columns=this.columnSettings?this.columnSettings:o.columns,n&&(o.editor=this.getEditorClass(n,this),n.child.$destroy()),e&&(o.renderer=this.getRendererWrapper(e,this),e.child.$destroy()),this.hotInstance=new r.default.Core(this.$el,o),this.hotInstance.init(),(t=this).hotInstance&&(t.hotInstance.addHook("beforeChange",(function(){t.__internalEdit=!0})),t.hotInstance.addHook("beforeCreateRow",(function(){t.__internalEdit=!0})),t.hotInstance.addHook("beforeCreateCol",(function(){t.__internalEdit=!0})),t.hotInstance.addHook("beforeRemoveRow",(function(){t.__internalEdit=!0})),t.hotInstance.addHook("beforeRemoveCol",(function(){t.__internalEdit=!0}))),this.miscCache.currentSourceColumns=this.hotInstance.countSourceCols()},matchHotMappersSize:function(){var t=this;if(this.hotInstance){var e,n=this.hotInstance.getSourceData(),o=[],r=[],a=this.hotInstance.rowIndexMapper.getNumberOfIndexes(),i=this.hotInstance.isColumnModificationAllowed(),s=0;if(n&&n.length!==a&&a>n.length)for(var c=n.length;a>c;c++)o.push(c);if(i)if(s=this.hotInstance.columnIndexMapper.getNumberOfIndexes(),n&&n[0]&&(null===(e=n[0])||void 0===e?void 0:e.length)!==s&&s>n[0].length)for(var u=n[0].length;s>u;u++)r.push(u);this.hotInstance.batch((function(){o.length>0?t.hotInstance.rowIndexMapper.removeIndexes(o):t.hotInstance.rowIndexMapper.insertIndexes(a-1,n.length-a),i&&0!==n.length&&(r.length>0?t.hotInstance.columnIndexMapper.removeIndexes(r):t.hotInstance.columnIndexMapper.insertIndexes(s-1,n[0].length-s))}))}},getGlobalRendererVNode:function(){return O(this.$slots.default||[],"hot-renderer")},getGlobalEditorVNode:function(){return O(this.$slots.default||[],"hot-editor")},getColumnSettings:function(){var t=this.$children.filter((function(t){return"HotColumn"===t.$options.name})),e=!1,n=t.map((function(t){return t.usesRendererComponent&&(e=!0),s({},t.columnSettings)}));return e&&this.settings&&(!1!==this.settings.autoColumnSize||this.settings.autoRowSize)&&(!1!==this.autoColumnSize||this.autoRowSize)&&console.warn("Your `hot-table` configuration includes both `hot-column` and `autoRowSize`/`autoColumnSize`, which are not compatible with each other in this version of `@handsontable/vue`. Disable `autoRowSize` and `autoColumnSize` to prevent row and column misalignment."),n.length?n:void 0},getRendererWrapper:function(t,e){var n=this;return function(o,r,a,i,s,c,u){if(r&&!r.getAttribute("ghost-table")){var l=n.rendererCache,d={hotInstance:o,TD:r,row:a,col:i,prop:s,value:c,cellProperties:u,isRenderer:!0};if(l&&!l.has("".concat(a,"-").concat(i))){var f=_(t,e,t.componentOptions.propsData,d);l.set("".concat(a,"-").concat(i),{component:f,lastUsedTD:null})}var h=l.get("".concat(a,"-").concat(i)),p=h.component,y=h.lastUsedTD;if(Object.assign(p.$data,d),!p.$el.parentElement||y!==r){for(;r.firstChild;)r.removeChild(r.firstChild);r.appendChild(p.$el),h.lastUsedTD=r}}return r}},getEditorClass:function(t,e){var n=t.key?""+t.key:null,o=t.componentOptions.Ctor.options.name,r=n?"".concat(o,":").concat(n):o,a=this.editorCache,i=null;return a.has(r)?i=a.get(r):(i=_(t,e,t.componentOptions.propsData,{isEditor:!0}),a.set(r,i)),i.$data.hotCustomEditorClass}},mounted:function(){return this.columnSettings=this.getColumnSettings(),this.hotInit()},beforeDestroy:function(){this.hotInstance&&this.hotInstance.destroy()},version:"10.0.0"},undefined,false,undefined,!1,void 0,void 0,void 0),P=j({},undefined,{name:"HotColumn",props:C("HotColumn"),methods:{createColumnSettings:function(){var t=this.$slots.default||[],e=O(t,"hot-renderer"),n=O(t,"hot-editor"),o=w(this.$props);e&&void 0===this.usesRendererComponent&&(this.usesRendererComponent=!0),this.columnSettings=s({},o),null!==e?this.columnSettings.renderer=this.$parent.getRendererWrapper(e,this):o.renderer&&(this.columnSettings.renderer=o.renderer),null!==n?this.columnSettings.editor=this.$parent.getEditorClass(n,this):o.editor&&(this.columnSettings.editor=o.editor)}},mounted:function(){this.createColumnSettings()},render:function(){return null}},undefined,undefined,undefined,!1,void 0,void 0,void 0);function A(t){return A="function"==typeof Symbol&&"symbol"===c(Symbol.iterator)?function(t){return c(t)}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":c(t)},A(t)}function x(t,e,n){return e in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}function B(t){return function(t){if(Array.isArray(t)){for(var e=0,n=Array(t.length);t.length>e;e++)n[e]=t[e];return n}}(t)||function(t){if(Symbol.iterator in Object(t)||"[object Arguments]"===Object.prototype.toString.call(t))return Array.from(t)}(t)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance")}()}function M(){return"undefined"!=typeof Reflect&&Reflect.defineMetadata&&Reflect.getOwnMetadataKeys}function H(t,e){D(t,e),Object.getOwnPropertyNames(e.prototype).forEach((function(n){D(t.prototype,e.prototype,n)})),Object.getOwnPropertyNames(e).forEach((function(n){D(t,e,n)}))}function D(t,e,n){(n?Reflect.getOwnMetadataKeys(e,n):Reflect.getOwnMetadataKeys(e)).forEach((function(o){var r=n?Reflect.getOwnMetadata(o,e,n):Reflect.getOwnMetadata(o,e);n?Reflect.defineMetadata(o,r,t,n):Reflect.defineMetadata(o,r,t)}))}var T={__proto__:[]}instanceof Array;function z(t,e){var n=e.prototype._init;e.prototype._init=function(){var e=this,n=Object.getOwnPropertyNames(t);if(t.$options.props)for(var o in t.$options.props)t.hasOwnProperty(o)||n.push(o);n.forEach((function(n){Object.defineProperty(e,n,{get:function(){return t[n]},set:function(e){t[n]=e},configurable:!0})}))};var o=new e;e.prototype._init=n;var r={};return Object.keys(o).forEach((function(t){void 0!==o[t]&&(r[t]=o[t])})),r}var V=["data","beforeCreate","created","beforeMount","mounted","beforeDestroy","destroyed","beforeUpdate","updated","activated","deactivated","render","errorCaptured","serverPrefetch"];function N(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};e.name=e.name||t._componentTag||t.name;var n=t.prototype;Object.getOwnPropertyNames(n).forEach((function(t){if("constructor"!==t)if(-1<V.indexOf(t))e[t]=n[t];else{var o=Object.getOwnPropertyDescriptor(n,t);void 0!==o.value?"function"==typeof o.value?(e.methods||(e.methods={}))[t]=o.value:(e.mixins||(e.mixins=[])).push({data:function(){return x({},t,o.value)}}):(o.get||o.set)&&((e.computed||(e.computed={}))[t]={get:o.get,set:o.set})}})),(e.mixins||(e.mixins=[])).push({data:function(){return z(this,t)}});var o=t.__decorators__;o&&(o.forEach((function(t){return t(e)})),delete t.__decorators__);var r=Object.getPrototypeOf(t.prototype),i=r instanceof a.default?r.constructor:a.default,s=i.extend(e);return F(s,t,i),M()&&H(s,t),s}var U={prototype:!0,arguments:!0,callee:!0,caller:!0};function F(t,e,n){Object.getOwnPropertyNames(e).forEach((function(o){if(!U[o]){var r=Object.getOwnPropertyDescriptor(t,o);if(!r||r.configurable){var a,i,s=Object.getOwnPropertyDescriptor(e,o);if(!T){if("cid"===o)return;var c=Object.getOwnPropertyDescriptor(n,o);if(i=A(a=s.value),null!=a&&("object"===i||"function"===i)&&c&&c.value===s.value)return}Object.defineProperty(t,o,s)}}}))}function K(t){return"function"==typeof t?N(t):function(e){return N(e,t)}}K.registerHooks=function(t){V.push.apply(V,B(t))};var L=function(t){h(n,t);var e=g(n);function n(){var t;return u(this,n),(t=e.apply(this,arguments)).name="BaseEditorComponent",t.instance=null,t.row=null,t.col=null,t.prop=null,t.TD=null,t.originalValue=null,t.cellProperties=null,t.state=null,t.hot=null,t}return d(n,[{key:"mounted",value:function(){var t,e=this;this.$data.hotCustomEditorClass=(t=function(t){h(o,t);var n=g(o);function o(t,r,a,i,s,c){var l;return u(this,o),l=n.call(this,t,r,a,i,s,c),e.$data.hotCustomEditorInstance=v(l),l}return d(o,[{key:"focus",value:function(){}},{key:"getValue",value:function(){}},{key:"setValue",value:function(){}},{key:"open",value:function(){}},{key:"close",value:function(){}}]),o}(r.default.editors.BaseEditor),Object.getOwnPropertyNames(r.default.editors.BaseEditor.prototype).forEach((function(n){"constructor"!==n&&(t.prototype[n]=function(){for(var t,o=arguments.length,r=Array(o),a=0;o>a;a++)r[a]=arguments[a];return(t=e[n]).call.apply(t,[this].concat(r))})})),t)}},{key:"_fireCallbacks",value:function(){for(var t,e=arguments.length,n=Array(e),o=0;e>o;o++)n[o]=arguments[o];(t=r.default.editors.BaseEditor.prototype._fireCallbacks).call.apply(t,[this.$data.hotCustomEditorInstance].concat(n))}},{key:"beginEditing",value:function(){for(var t,e=arguments.length,n=Array(e),o=0;e>o;o++)n[o]=arguments[o];return(t=r.default.editors.BaseEditor.prototype.beginEditing).call.apply(t,[this.$data.hotCustomEditorInstance].concat(n))}},{key:"cancelChanges",value:function(){for(var t,e=arguments.length,n=Array(e),o=0;e>o;o++)n[o]=arguments[o];return(t=r.default.editors.BaseEditor.prototype.cancelChanges).call.apply(t,[this.$data.hotCustomEditorInstance].concat(n))}},{key:"checkEditorSection",value:function(){for(var t,e=arguments.length,n=Array(e),o=0;e>o;o++)n[o]=arguments[o];return(t=r.default.editors.BaseEditor.prototype.checkEditorSection).call.apply(t,[this.$data.hotCustomEditorInstance].concat(n))}},{key:"close",value:function(){for(var t,e=arguments.length,n=Array(e),o=0;e>o;o++)n[o]=arguments[o];return(t=r.default.editors.BaseEditor.prototype.close).call.apply(t,[this.$data.hotCustomEditorInstance].concat(n))}},{key:"discardEditor",value:function(){for(var t,e=arguments.length,n=Array(e),o=0;e>o;o++)n[o]=arguments[o];return(t=r.default.editors.BaseEditor.prototype.discardEditor).call.apply(t,[this.$data.hotCustomEditorInstance].concat(n))}},{key:"enableFullEditMode",value:function(){for(var t,e=arguments.length,n=Array(e),o=0;e>o;o++)n[o]=arguments[o];return(t=r.default.editors.BaseEditor.prototype.enableFullEditMode).call.apply(t,[this.$data.hotCustomEditorInstance].concat(n))}},{key:"extend",value:function(){for(var t,e=arguments.length,n=Array(e),o=0;e>o;o++)n[o]=arguments[o];return(t=r.default.editors.BaseEditor.prototype.extend).call.apply(t,[this.$data.hotCustomEditorInstance].concat(n))}},{key:"finishEditing",value:function(){for(var t,e=arguments.length,n=Array(e),o=0;e>o;o++)n[o]=arguments[o];return(t=r.default.editors.BaseEditor.prototype.finishEditing).call.apply(t,[this.$data.hotCustomEditorInstance].concat(n))}},{key:"focus",value:function(){for(var t,e=arguments.length,n=Array(e),o=0;e>o;o++)n[o]=arguments[o];return(t=r.default.editors.BaseEditor.prototype.focus).call.apply(t,[this.$data.hotCustomEditorInstance].concat(n))}},{key:"getValue",value:function(){for(var t,e=arguments.length,n=Array(e),o=0;e>o;o++)n[o]=arguments[o];return(t=r.default.editors.BaseEditor.prototype.getValue).call.apply(t,[this.$data.hotCustomEditorInstance].concat(n))}},{key:"init",value:function(){for(var t,e=arguments.length,n=Array(e),o=0;e>o;o++)n[o]=arguments[o];return(t=r.default.editors.BaseEditor.prototype.init).call.apply(t,[this.$data.hotCustomEditorInstance].concat(n))}},{key:"isInFullEditMode",value:function(){for(var t,e=arguments.length,n=Array(e),o=0;e>o;o++)n[o]=arguments[o];return(t=r.default.editors.BaseEditor.prototype.isInFullEditMode).call.apply(t,[this.$data.hotCustomEditorInstance].concat(n))}},{key:"isOpened",value:function(){for(var t,e=arguments.length,n=Array(e),o=0;e>o;o++)n[o]=arguments[o];return(t=r.default.editors.BaseEditor.prototype.isOpened).call.apply(t,[this.$data.hotCustomEditorInstance].concat(n))}},{key:"isWaiting",value:function(){for(var t,e=arguments.length,n=Array(e),o=0;e>o;o++)n[o]=arguments[o];return(t=r.default.editors.BaseEditor.prototype.isWaiting).call.apply(t,[this.$data.hotCustomEditorInstance].concat(n))}},{key:"open",value:function(){for(var t,e=arguments.length,n=Array(e),o=0;e>o;o++)n[o]=arguments[o];return(t=r.default.editors.BaseEditor.prototype.open).call.apply(t,[this.$data.hotCustomEditorInstance].concat(n))}},{key:"prepare",value:function(t,e,n,o,a,i){return this.$data.hotInstance=i.instance,this.$data.row=t,this.$data.col=e,this.$data.prop=n,this.$data.TD=o,this.$data.originalValue=a,this.$data.cellProperties=i,r.default.editors.BaseEditor.prototype.prepare.call(this.$data.hotCustomEditorInstance,t,e,n,o,a,i)}},{key:"saveValue",value:function(){for(var t,e=arguments.length,n=Array(e),o=0;e>o;o++)n[o]=arguments[o];return(t=r.default.editors.BaseEditor.prototype.saveValue).call.apply(t,[this.$data.hotCustomEditorInstance].concat(n))}},{key:"setValue",value:function(){for(var t,e=arguments.length,n=Array(e),o=0;e>o;o++)n[o]=arguments[o];return(t=r.default.editors.BaseEditor.prototype.setValue).call.apply(t,[this.$data.hotCustomEditorInstance].concat(n))}},{key:"addHook",value:function(){for(var t,e=arguments.length,n=Array(e),o=0;e>o;o++)n[o]=arguments[o];return(t=r.default.editors.BaseEditor.prototype.addHook).call.apply(t,[this.$data.hotCustomEditorInstance].concat(n))}},{key:"removeHooksByKey",value:function(){for(var t,e=arguments.length,n=Array(e),o=0;e>o;o++)n[o]=arguments[o];return(t=r.default.editors.BaseEditor.prototype.removeHooksByKey).call.apply(t,[this.$data.hotCustomEditorInstance].concat(n))}},{key:"clearHooks",value:function(){for(var t,e=arguments.length,n=Array(e),o=0;e>o;o++)n[o]=arguments[o];return(t=r.default.editors.BaseEditor.prototype.clearHooks).call.apply(t,[this.$data.hotCustomEditorInstance].concat(n))}},{key:"getEditedCell",value:function(){for(var t,e=arguments.length,n=Array(e),o=0;e>o;o++)n[o]=arguments[o];return(t=r.default.editors.BaseEditor.prototype.getEditedCell).call.apply(t,[this.$data.hotCustomEditorInstance].concat(n))}},{key:"getEditedCellsZIndex",value:function(){for(var t,e=arguments.length,n=Array(e),o=0;e>o;o++)n[o]=arguments[o];return(t=r.default.editors.BaseEditor.prototype.getEditedCellsZIndex).call.apply(t,[this.$data.hotCustomEditorInstance].concat(n))}},{key:"getEditedCellsLayerClass",value:function(){for(var t,e=arguments.length,n=Array(e),o=0;e>o;o++)n[o]=arguments[o];return(t=r.default.editors.BaseEditor.prototype.getEditedCellsLayerClass).call.apply(t,[this.$data.hotCustomEditorInstance].concat(n))}}]),n}(a.default);L=
30
+ !function(t,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports,require("handsontable/base"),require("vue")):"function"==typeof define&&define.amd?define(["exports","handsontable/base","vue"],e):e(((t="undefined"!=typeof globalThis?globalThis:t||self).Handsontable=t.Handsontable||{},t.Handsontable.vue={}),t.Handsontable,t.Vue)}(this,(function(t,e,n){"use strict";function o(t){return t&&"object"==typeof t&&"default"in t?t:{default:t}}var r=o(e),a=o(n);function i(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 s(t){for(var e=1;arguments.length>e;e++){var n=null!=arguments[e]?arguments[e]:{};e%2?i(Object(n),!0).forEach((function(e){f(t,e,n[e])})):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):i(Object(n)).forEach((function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(n,e))}))}return t}function c(t){return c="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},c(t)}function u(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function l(t,e){for(var n=0;e.length>n;n++){var o=e[n];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(t,o.key,o)}}function d(t,e,n){return e&&l(t.prototype,e),n&&l(t,n),t}function f(t,e,n){return e in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}function h(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function");t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),e&&y(t,e)}function p(t){return p=Object.setPrototypeOf?Object.getPrototypeOf:function(t){return t.__proto__||Object.getPrototypeOf(t)},p(t)}function y(t,e){return y=Object.setPrototypeOf||function(t,e){return t.__proto__=e,t},y(t,e)}function v(t){if(void 0===t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return t}function m(t,e){if(e&&("object"==typeof e||"function"==typeof e))return e;if(void 0!==e)throw new TypeError("Derived constructors may only return object or undefined");return v(t)}function g(t){var e=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(t){return!1}}();return function(){var n,o=p(t);if(e){var r=p(this).constructor;n=Reflect.construct(o,arguments,r)}else n=o.apply(this,arguments);return m(this,n)}}var b=Symbol("unassigned"),E=null;function C(t){var e=r.default.hooks.getRegistered(),n={};for(var o in Object.assign(n,r.default.DefaultSettings),n)n[o]={default:b};for(var a=0;e.length>a;a++)n[e[a]]={default:b};return n.settings={default:b},"HotTable"===t&&(n.id={type:String,default:"hot-"+Math.random().toString(36).substring(5)},n.wrapperRendererCacheSize={type:Number,default:3e3}),n}function w(t){var e={},n=t.settings;if(n!==b)for(var o in n)n.hasOwnProperty(o)&&n[o]!==b&&(e[o]=n[o]);for(var r in t)t.hasOwnProperty(r)&&"settings"!==r&&t[r]!==b&&(e[r]=t[r]);return e}function I(t,e){var n=w(t),o=t.settings?t.settings:n,r=t.settings?n:null,a={};for(var i in o)!o.hasOwnProperty(i)||void 0===o[i]||e&&"data"!==i&&k(e[i],o[i])||(a[i]=o[i]);for(var s in r)!r.hasOwnProperty(s)||"id"===s||"settings"===s||"wrapperRendererCacheSize"===s||void 0===r[s]||e&&"data"!==s&&k(e[s],r[s])||(a[s]=r[s]);return a}function O(t,e){var n=null;return t.every((function(t,o){return!t.data||!t.data.attrs||void 0===t.data.attrs[e]||(n=t,!1)})),n}function _(t,e,n,o){var r=e.$el?e.$el.ownerDocument:document,a={propsData:n,parent:e,data:o};E||((E=r.createElement("DIV")).id="vueHotComponents",r.body.appendChild(E));var i=r.createElement("DIV");return E.appendChild(i),new t.componentOptions.Ctor(a).$mount(i)}function k(t,e){return JSON.stringify(t)===JSON.stringify(e)}"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self&&self;var S=function(t,e){return t(e={exports:{}},e.exports),e.exports}((function(t,e){!function(t){var e=Symbol("newer"),n=Symbol("older");function o(t,e){"number"!=typeof t&&(e=t,t=0),this.size=0,this.limit=t,this.oldest=this.newest=void 0,this._keymap=new Map,e&&(this.assign(e),1>t&&(this.limit=this.size))}function r(t,o){this.key=t,this.value=o,this[e]=void 0,this[n]=void 0}t.LRUMap=o,o.prototype._markEntryAsUsed=function(t){t!==this.newest&&(t[e]&&(t===this.oldest&&(this.oldest=t[e]),t[e][n]=t[n]),t[n]&&(t[n][e]=t[e]),t[e]=void 0,t[n]=this.newest,this.newest&&(this.newest[e]=t),this.newest=t)},o.prototype.assign=function(t){var o,a=this.limit||Number.MAX_VALUE;this._keymap.clear();for(var i=t[Symbol.iterator](),s=i.next();!s.done;s=i.next()){var c=new r(s.value[0],s.value[1]);if(this._keymap.set(c.key,c),o?(o[e]=c,c[n]=o):this.oldest=c,o=c,0==a--)throw Error("overflow")}this.newest=o,this.size=this._keymap.size},o.prototype.get=function(t){var e=this._keymap.get(t);if(e)return this._markEntryAsUsed(e),e.value},o.prototype.set=function(t,o){var a=this._keymap.get(t);return a?(a.value=o,this._markEntryAsUsed(a),this):(this._keymap.set(t,a=new r(t,o)),this.newest?(this.newest[e]=a,a[n]=this.newest):this.oldest=a,this.newest=a,++this.size,this.size>this.limit&&this.shift(),this)},o.prototype.shift=function(){var t=this.oldest;if(t)return this.oldest[e]?(this.oldest=this.oldest[e],this.oldest[n]=void 0):(this.oldest=void 0,this.newest=void 0),t[e]=t[n]=void 0,this._keymap.delete(t.key),--this.size,[t.key,t.value]},o.prototype.has=function(t){return this._keymap.has(t)}}(e)})),$=S.LRUMap;function j(t,e,n,o,r,a,i,s,c,u){"boolean"!=typeof i&&(c=s,s=i,i=!1);const l="function"==typeof n?n.options:n;let d;if(t&&t.render&&(l.render=t.render,l.staticRenderFns=t.staticRenderFns,l._compiled=!0,r&&(l.functional=!0)),o&&(l._scopeId=o),a?(d=function(t){(t=t||this.$vnode&&this.$vnode.ssrContext||this.parent&&this.parent.$vnode&&this.parent.$vnode.ssrContext)||"undefined"==typeof __VUE_SSR_CONTEXT__||(t=__VUE_SSR_CONTEXT__),e&&e.call(this,c(t)),t&&t._registeredComponents&&t._registeredComponents.add(a)},l._ssrRegister=d):e&&(d=i?function(t){e.call(this,u(t,this.$root.$options.shadowRoot))}:function(t){e.call(this,s(t))}),d)if(l.functional){const t=l.render;l.render=function(e,n){return d.call(n),t(e,n)}}else{const t=l.beforeCreate;l.beforeCreate=t?[].concat(t,d):[d]}return n}var R=j({render:function(){var t=this;return(t._self._c||t.$createElement)("div",{attrs:{id:t.id}},[t._t("default")],2)},staticRenderFns:[]},undefined,{name:"HotTable",props:C("HotTable"),watch:{mergedHotSettings:function(t){this.hotInstance&&void 0!==t&&(t.data&&(this.hotInstance.isColumnModificationAllowed()||!this.hotInstance.isColumnModificationAllowed()&&this.hotInstance.countSourceCols()===this.miscCache.currentSourceColumns)&&(this.matchHotMappersSize(),delete t.data),Object.keys(t).length?this.hotInstance.updateSettings(t):this.hotInstance.render(),this.miscCache.currentSourceColumns=this.hotInstance.countSourceCols())}},data:function(){var t=this,e=new $(this.wrapperRendererCacheSize);return e.shift=function(){var t=$.prototype.shift.call(this);return t[1].component.$destroy(),t},{__internalEdit:!1,miscCache:{currentSourceColumns:null},__hotInstance:null,columnSettings:null,rendererCache:e,editorCache:new Map,get hotInstance(){return!t.__hotInstance||t.__hotInstance&&!t.__hotInstance.isDestroyed?t.__hotInstance:(console.warn("The Handsontable instance bound to this component was destroyed and cannot be used properly."),null)},set hotInstance(e){t.__hotInstance=e}}},computed:{mergedHotSettings:function(){return I(this.$props,this.hotInstance?this.hotInstance.getSettings():void 0)}},methods:{hotInit:function(){var t,e=this.getGlobalRendererVNode(),n=this.getGlobalEditorVNode(),o=I(this.$props);o.columns=this.columnSettings?this.columnSettings:o.columns,n&&(o.editor=this.getEditorClass(n,this),n.child.$destroy()),e&&(o.renderer=this.getRendererWrapper(e,this),e.child.$destroy()),this.hotInstance=new r.default.Core(this.$el,o),this.hotInstance.init(),(t=this).hotInstance&&(t.hotInstance.addHook("beforeChange",(function(){t.__internalEdit=!0})),t.hotInstance.addHook("beforeCreateRow",(function(){t.__internalEdit=!0})),t.hotInstance.addHook("beforeCreateCol",(function(){t.__internalEdit=!0})),t.hotInstance.addHook("beforeRemoveRow",(function(){t.__internalEdit=!0})),t.hotInstance.addHook("beforeRemoveCol",(function(){t.__internalEdit=!0}))),this.miscCache.currentSourceColumns=this.hotInstance.countSourceCols()},matchHotMappersSize:function(){var t=this;if(this.hotInstance){var e,n=this.hotInstance.getSourceData(),o=[],r=[],a=this.hotInstance.rowIndexMapper.getNumberOfIndexes(),i=this.hotInstance.isColumnModificationAllowed(),s=0;if(n&&n.length!==a&&a>n.length)for(var c=n.length;a>c;c++)o.push(c);if(i)if(s=this.hotInstance.columnIndexMapper.getNumberOfIndexes(),n&&n[0]&&(null===(e=n[0])||void 0===e?void 0:e.length)!==s&&s>n[0].length)for(var u=n[0].length;s>u;u++)r.push(u);this.hotInstance.batch((function(){o.length>0?t.hotInstance.rowIndexMapper.removeIndexes(o):t.hotInstance.rowIndexMapper.insertIndexes(a-1,n.length-a),i&&0!==n.length&&(r.length>0?t.hotInstance.columnIndexMapper.removeIndexes(r):t.hotInstance.columnIndexMapper.insertIndexes(s-1,n[0].length-s))}))}},getGlobalRendererVNode:function(){return O(this.$slots.default||[],"hot-renderer")},getGlobalEditorVNode:function(){return O(this.$slots.default||[],"hot-editor")},getColumnSettings:function(){var t=this.$children.filter((function(t){return"HotColumn"===t.$options.name})),e=!1,n=t.map((function(t){return t.usesRendererComponent&&(e=!0),s({},t.columnSettings)}));return e&&this.settings&&(!1!==this.settings.autoColumnSize||this.settings.autoRowSize)&&(!1!==this.autoColumnSize||this.autoRowSize)&&console.warn("Your `hot-table` configuration includes both `hot-column` and `autoRowSize`/`autoColumnSize`, which are not compatible with each other in this version of `@handsontable/vue`. Disable `autoRowSize` and `autoColumnSize` to prevent row and column misalignment."),n.length?n:void 0},getRendererWrapper:function(t,e){var n=this;return function(o,r,a,i,s,c,u){if(r&&!r.getAttribute("ghost-table")){var l=n.rendererCache,d={hotInstance:o,TD:r,row:a,col:i,prop:s,value:c,cellProperties:u,isRenderer:!0};if(l&&!l.has("".concat(a,"-").concat(i))){var f=_(t,e,t.componentOptions.propsData,d);l.set("".concat(a,"-").concat(i),{component:f,lastUsedTD:null})}var h=l.get("".concat(a,"-").concat(i)),p=h.component,y=h.lastUsedTD;if(Object.assign(p.$data,d),!p.$el.parentElement||y!==r){for(;r.firstChild;)r.removeChild(r.firstChild);r.appendChild(p.$el),h.lastUsedTD=r}}return r}},getEditorClass:function(t,e){var n=t.key?""+t.key:null,o=t.componentOptions.Ctor.options.name,r=n?"".concat(o,":").concat(n):o,a=this.editorCache,i=null;return a.has(r)?i=a.get(r):(i=_(t,e,t.componentOptions.propsData,{isEditor:!0}),a.set(r,i)),i.$data.hotCustomEditorClass}},mounted:function(){return this.columnSettings=this.getColumnSettings(),this.hotInit()},beforeDestroy:function(){this.hotInstance&&this.hotInstance.destroy()},version:"11.0.0"},undefined,false,undefined,!1,void 0,void 0,void 0),P=j({},undefined,{name:"HotColumn",props:C("HotColumn"),methods:{createColumnSettings:function(){var t=this.$slots.default||[],e=O(t,"hot-renderer"),n=O(t,"hot-editor"),o=w(this.$props);e&&void 0===this.usesRendererComponent&&(this.usesRendererComponent=!0),this.columnSettings=s({},o),null!==e?this.columnSettings.renderer=this.$parent.getRendererWrapper(e,this):o.renderer&&(this.columnSettings.renderer=o.renderer),null!==n?this.columnSettings.editor=this.$parent.getEditorClass(n,this):o.editor&&(this.columnSettings.editor=o.editor)}},mounted:function(){this.createColumnSettings()},render:function(){return null}},undefined,undefined,undefined,!1,void 0,void 0,void 0);function A(t){return A="function"==typeof Symbol&&"symbol"===c(Symbol.iterator)?function(t){return c(t)}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":c(t)},A(t)}function x(t,e,n){return e in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}function B(t){return function(t){if(Array.isArray(t)){for(var e=0,n=Array(t.length);t.length>e;e++)n[e]=t[e];return n}}(t)||function(t){if(Symbol.iterator in Object(t)||"[object Arguments]"===Object.prototype.toString.call(t))return Array.from(t)}(t)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance")}()}function M(){return"undefined"!=typeof Reflect&&Reflect.defineMetadata&&Reflect.getOwnMetadataKeys}function H(t,e){D(t,e),Object.getOwnPropertyNames(e.prototype).forEach((function(n){D(t.prototype,e.prototype,n)})),Object.getOwnPropertyNames(e).forEach((function(n){D(t,e,n)}))}function D(t,e,n){(n?Reflect.getOwnMetadataKeys(e,n):Reflect.getOwnMetadataKeys(e)).forEach((function(o){var r=n?Reflect.getOwnMetadata(o,e,n):Reflect.getOwnMetadata(o,e);n?Reflect.defineMetadata(o,r,t,n):Reflect.defineMetadata(o,r,t)}))}var T={__proto__:[]}instanceof Array;function z(t,e){var n=e.prototype._init;e.prototype._init=function(){var e=this,n=Object.getOwnPropertyNames(t);if(t.$options.props)for(var o in t.$options.props)t.hasOwnProperty(o)||n.push(o);n.forEach((function(n){Object.defineProperty(e,n,{get:function(){return t[n]},set:function(e){t[n]=e},configurable:!0})}))};var o=new e;e.prototype._init=n;var r={};return Object.keys(o).forEach((function(t){void 0!==o[t]&&(r[t]=o[t])})),r}var V=["data","beforeCreate","created","beforeMount","mounted","beforeDestroy","destroyed","beforeUpdate","updated","activated","deactivated","render","errorCaptured","serverPrefetch"];function N(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};e.name=e.name||t._componentTag||t.name;var n=t.prototype;Object.getOwnPropertyNames(n).forEach((function(t){if("constructor"!==t)if(-1<V.indexOf(t))e[t]=n[t];else{var o=Object.getOwnPropertyDescriptor(n,t);void 0!==o.value?"function"==typeof o.value?(e.methods||(e.methods={}))[t]=o.value:(e.mixins||(e.mixins=[])).push({data:function(){return x({},t,o.value)}}):(o.get||o.set)&&((e.computed||(e.computed={}))[t]={get:o.get,set:o.set})}})),(e.mixins||(e.mixins=[])).push({data:function(){return z(this,t)}});var o=t.__decorators__;o&&(o.forEach((function(t){return t(e)})),delete t.__decorators__);var r=Object.getPrototypeOf(t.prototype),i=r instanceof a.default?r.constructor:a.default,s=i.extend(e);return F(s,t,i),M()&&H(s,t),s}var U={prototype:!0,arguments:!0,callee:!0,caller:!0};function F(t,e,n){Object.getOwnPropertyNames(e).forEach((function(o){if(!U[o]){var r=Object.getOwnPropertyDescriptor(t,o);if(!r||r.configurable){var a,i,s=Object.getOwnPropertyDescriptor(e,o);if(!T){if("cid"===o)return;var c=Object.getOwnPropertyDescriptor(n,o);if(i=A(a=s.value),null!=a&&("object"===i||"function"===i)&&c&&c.value===s.value)return}Object.defineProperty(t,o,s)}}}))}function K(t){return"function"==typeof t?N(t):function(e){return N(e,t)}}K.registerHooks=function(t){V.push.apply(V,B(t))};var L=function(t){h(n,t);var e=g(n);function n(){var t;return u(this,n),(t=e.apply(this,arguments)).name="BaseEditorComponent",t.instance=null,t.row=null,t.col=null,t.prop=null,t.TD=null,t.originalValue=null,t.cellProperties=null,t.state=null,t.hot=null,t}return d(n,[{key:"mounted",value:function(){var t,e=this;this.$data.hotCustomEditorClass=(t=function(t){h(o,t);var n=g(o);function o(t){var r;return u(this,o),r=n.call(this,t),e.$data.hotCustomEditorInstance=v(r),r}return d(o,[{key:"focus",value:function(){}},{key:"getValue",value:function(){}},{key:"setValue",value:function(){}},{key:"open",value:function(){}},{key:"close",value:function(){}}]),o}(r.default.editors.BaseEditor),Object.getOwnPropertyNames(r.default.editors.BaseEditor.prototype).forEach((function(n){"constructor"!==n&&(t.prototype[n]=function(){for(var t,o=arguments.length,r=Array(o),a=0;o>a;a++)r[a]=arguments[a];return(t=e[n]).call.apply(t,[this].concat(r))})})),t)}},{key:"_fireCallbacks",value:function(){for(var t,e=arguments.length,n=Array(e),o=0;e>o;o++)n[o]=arguments[o];(t=r.default.editors.BaseEditor.prototype._fireCallbacks).call.apply(t,[this.$data.hotCustomEditorInstance].concat(n))}},{key:"beginEditing",value:function(){for(var t,e=arguments.length,n=Array(e),o=0;e>o;o++)n[o]=arguments[o];return(t=r.default.editors.BaseEditor.prototype.beginEditing).call.apply(t,[this.$data.hotCustomEditorInstance].concat(n))}},{key:"cancelChanges",value:function(){for(var t,e=arguments.length,n=Array(e),o=0;e>o;o++)n[o]=arguments[o];return(t=r.default.editors.BaseEditor.prototype.cancelChanges).call.apply(t,[this.$data.hotCustomEditorInstance].concat(n))}},{key:"checkEditorSection",value:function(){for(var t,e=arguments.length,n=Array(e),o=0;e>o;o++)n[o]=arguments[o];return(t=r.default.editors.BaseEditor.prototype.checkEditorSection).call.apply(t,[this.$data.hotCustomEditorInstance].concat(n))}},{key:"close",value:function(){for(var t,e=arguments.length,n=Array(e),o=0;e>o;o++)n[o]=arguments[o];return(t=r.default.editors.BaseEditor.prototype.close).call.apply(t,[this.$data.hotCustomEditorInstance].concat(n))}},{key:"discardEditor",value:function(){for(var t,e=arguments.length,n=Array(e),o=0;e>o;o++)n[o]=arguments[o];return(t=r.default.editors.BaseEditor.prototype.discardEditor).call.apply(t,[this.$data.hotCustomEditorInstance].concat(n))}},{key:"enableFullEditMode",value:function(){for(var t,e=arguments.length,n=Array(e),o=0;e>o;o++)n[o]=arguments[o];return(t=r.default.editors.BaseEditor.prototype.enableFullEditMode).call.apply(t,[this.$data.hotCustomEditorInstance].concat(n))}},{key:"extend",value:function(){for(var t,e=arguments.length,n=Array(e),o=0;e>o;o++)n[o]=arguments[o];return(t=r.default.editors.BaseEditor.prototype.extend).call.apply(t,[this.$data.hotCustomEditorInstance].concat(n))}},{key:"finishEditing",value:function(){for(var t,e=arguments.length,n=Array(e),o=0;e>o;o++)n[o]=arguments[o];return(t=r.default.editors.BaseEditor.prototype.finishEditing).call.apply(t,[this.$data.hotCustomEditorInstance].concat(n))}},{key:"focus",value:function(){for(var t,e=arguments.length,n=Array(e),o=0;e>o;o++)n[o]=arguments[o];return(t=r.default.editors.BaseEditor.prototype.focus).call.apply(t,[this.$data.hotCustomEditorInstance].concat(n))}},{key:"getValue",value:function(){for(var t,e=arguments.length,n=Array(e),o=0;e>o;o++)n[o]=arguments[o];return(t=r.default.editors.BaseEditor.prototype.getValue).call.apply(t,[this.$data.hotCustomEditorInstance].concat(n))}},{key:"init",value:function(){for(var t,e=arguments.length,n=Array(e),o=0;e>o;o++)n[o]=arguments[o];return(t=r.default.editors.BaseEditor.prototype.init).call.apply(t,[this.$data.hotCustomEditorInstance].concat(n))}},{key:"isInFullEditMode",value:function(){for(var t,e=arguments.length,n=Array(e),o=0;e>o;o++)n[o]=arguments[o];return(t=r.default.editors.BaseEditor.prototype.isInFullEditMode).call.apply(t,[this.$data.hotCustomEditorInstance].concat(n))}},{key:"isOpened",value:function(){for(var t,e=arguments.length,n=Array(e),o=0;e>o;o++)n[o]=arguments[o];return(t=r.default.editors.BaseEditor.prototype.isOpened).call.apply(t,[this.$data.hotCustomEditorInstance].concat(n))}},{key:"isWaiting",value:function(){for(var t,e=arguments.length,n=Array(e),o=0;e>o;o++)n[o]=arguments[o];return(t=r.default.editors.BaseEditor.prototype.isWaiting).call.apply(t,[this.$data.hotCustomEditorInstance].concat(n))}},{key:"open",value:function(){for(var t,e=arguments.length,n=Array(e),o=0;e>o;o++)n[o]=arguments[o];return(t=r.default.editors.BaseEditor.prototype.open).call.apply(t,[this.$data.hotCustomEditorInstance].concat(n))}},{key:"prepare",value:function(t,e,n,o,a,i){return this.$data.hotInstance=i.instance,this.$data.row=t,this.$data.col=e,this.$data.prop=n,this.$data.TD=o,this.$data.originalValue=a,this.$data.cellProperties=i,r.default.editors.BaseEditor.prototype.prepare.call(this.$data.hotCustomEditorInstance,t,e,n,o,a,i)}},{key:"saveValue",value:function(){for(var t,e=arguments.length,n=Array(e),o=0;e>o;o++)n[o]=arguments[o];return(t=r.default.editors.BaseEditor.prototype.saveValue).call.apply(t,[this.$data.hotCustomEditorInstance].concat(n))}},{key:"setValue",value:function(){for(var t,e=arguments.length,n=Array(e),o=0;e>o;o++)n[o]=arguments[o];return(t=r.default.editors.BaseEditor.prototype.setValue).call.apply(t,[this.$data.hotCustomEditorInstance].concat(n))}},{key:"addHook",value:function(){for(var t,e=arguments.length,n=Array(e),o=0;e>o;o++)n[o]=arguments[o];return(t=r.default.editors.BaseEditor.prototype.addHook).call.apply(t,[this.$data.hotCustomEditorInstance].concat(n))}},{key:"removeHooksByKey",value:function(){for(var t,e=arguments.length,n=Array(e),o=0;e>o;o++)n[o]=arguments[o];return(t=r.default.editors.BaseEditor.prototype.removeHooksByKey).call.apply(t,[this.$data.hotCustomEditorInstance].concat(n))}},{key:"clearHooks",value:function(){for(var t,e=arguments.length,n=Array(e),o=0;e>o;o++)n[o]=arguments[o];return(t=r.default.editors.BaseEditor.prototype.clearHooks).call.apply(t,[this.$data.hotCustomEditorInstance].concat(n))}},{key:"getEditedCell",value:function(){for(var t,e=arguments.length,n=Array(e),o=0;e>o;o++)n[o]=arguments[o];return(t=r.default.editors.BaseEditor.prototype.getEditedCell).call.apply(t,[this.$data.hotCustomEditorInstance].concat(n))}},{key:"getEditedCellsZIndex",value:function(){for(var t,e=arguments.length,n=Array(e),o=0;e>o;o++)n[o]=arguments[o];return(t=r.default.editors.BaseEditor.prototype.getEditedCellsZIndex).call.apply(t,[this.$data.hotCustomEditorInstance].concat(n))}},{key:"getEditedCellsLayerClass",value:function(){for(var t,e=arguments.length,n=Array(e),o=0;e>o;o++)n[o]=arguments[o];return(t=r.default.editors.BaseEditor.prototype.getEditedCellsLayerClass).call.apply(t,[this.$data.hotCustomEditorInstance].concat(n))}}]),n}(a.default);L=
34
31
  /*! *****************************************************************************
35
32
  Copyright (c) Microsoft Corporation. All rights reserved.
36
33
  Licensed under the Apache License, Version 2.0 (the "License"); you may not use
@@ -1 +1 @@
1
- {"version":3,"file":"vue-handsontable.min.js","sources":["../src/helpers.ts","../src/lib/lru/lru.js","../../../node_modules/vue-runtime-helpers/dist/normalize-component.mjs","../src/HotTable.vue","../../../node_modules/vue-class-component/dist/vue-class-component.esm.js","../src/BaseEditorComponent.vue"],"sourcesContent":["import Vue, { VNode } from 'vue';\nimport Handsontable from 'handsontable';\nimport { HotTableProps, VueProps, EditorComponent } from './types';\n\nconst unassignedPropSymbol = Symbol('unassigned');\nlet bulkComponentContainer = null;\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 * Rewrite the settings object passed to the watchers to be a clean array/object prepared to use within Handsontable config.\n *\n * @param {*} observerSettings Watcher object containing the changed data.\n * @returns {Object|Array}\n */\nexport function rewriteSettings(observerSettings): any[] | object {\n const settingsType = Object.prototype.toString.call(observerSettings);\n let settings: any[] | object | null = null;\n let type: { array?: boolean, object?: boolean } = {};\n\n if (settingsType === '[object Array]') {\n settings = [];\n type.array = true;\n\n } else if (settingsType === '[object Object]') {\n settings = {};\n type.object = true;\n }\n\n if (type.array || type.object) {\n for (const p in observerSettings) {\n if (observerSettings.hasOwnProperty(p)) {\n settings[p] = observerSettings[p];\n }\n }\n\n } else {\n settings = observerSettings;\n }\n\n return settings;\n}\n\n/**\n * Private method to ensure the table is not calling `updateSettings` after editing cells.\n * @private\n */\nexport function preventInternalEditWatch(component) {\n if (component.hotInstance) {\n component.hotInstance.addHook('beforeChange', () => {\n component.__internalEdit = true;\n });\n\n component.hotInstance.addHook('beforeCreateRow', () => {\n component.__internalEdit = true;\n });\n\n component.hotInstance.addHook('beforeCreateCol', () => {\n component.__internalEdit = true;\n });\n\n component.hotInstance.addHook('beforeRemoveRow', () => {\n component.__internalEdit = true;\n });\n\n component.hotInstance.addHook('beforeRemoveCol', () => {\n component.__internalEdit = true;\n });\n }\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): VueProps<HotTableProps> {\n const registeredHooks: string[] = Handsontable.hooks.getRegistered();\n\n let propSchema: VueProps<HotTableProps> = {};\n Object.assign(propSchema, Handsontable.DefaultSettings);\n\n for (let 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 propSchema.wrapperRendererCacheSize = {\n type: Number,\n default: 3000\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 for (let propName in columnSettingsProp) {\n if (columnSettingsProp.hasOwnProperty(propName) && columnSettingsProp[propName] !== unassignedPropSymbol) {\n filteredProps[propName] = columnSettingsProp[propName];\n }\n }\n }\n\n for (let propName in props) {\n if (props.hasOwnProperty(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): Handsontable.GridSettings {\n const assignedProps: VueProps<HotTableProps> = filterPassedProps(props);\n const hotSettingsInProps: {} = props.settings ? props.settings : assignedProps;\n const additionalHotSettingsInProps: Handsontable.GridSettings = props.settings ? assignedProps : null;\n const newSettings = {};\n\n for (const key in hotSettingsInProps) {\n if (\n hotSettingsInProps.hasOwnProperty(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 for (const key in additionalHotSettingsInProps) {\n if (\n additionalHotSettingsInProps.hasOwnProperty(key) &&\n key !== 'id' &&\n key !== 'settings' &&\n key !== 'wrapperRendererCacheSize' &&\n additionalHotSettingsInProps[key] !== void 0 &&\n ((currentSettings && key !== 'data') ? !simpleEqual(currentSettings[key], additionalHotSettingsInProps[key]) : true)\n ) {\n newSettings[key] = additionalHotSettingsInProps[key];\n }\n }\n\n return newSettings;\n}\n\n/**\n * Get the VNode element with the provided type attribute from the component slots.\n *\n * @param {Array} componentSlots Array of slots from a component.\n * @param {String} type Type of the child component. Either `hot-renderer` or `hot-editor`.\n * @returns {Object|null} The VNode of the child component (or `null` when nothing's found).\n */\nexport function findVNodeByType(componentSlots: VNode[], type: string): VNode {\n let componentVNode: VNode = null;\n\n componentSlots.every((slot, index) => {\n if (slot.data && slot.data.attrs && slot.data.attrs[type] !== void 0) {\n componentVNode = slot;\n return false;\n }\n\n return true;\n });\n\n return componentVNode;\n}\n\n/**\n * Get all `hot-column` component instances from the provided children array.\n *\n * @param {Array} children Array of children from a component.\n * @returns {Array} Array of `hot-column` instances.\n */\nexport function getHotColumnComponents(children) {\n return children.filter((child) => child.$options.name === 'HotColumn');\n}\n\n/**\n * Create an instance of the Vue Component based on the provided VNode.\n *\n * @param {Object} vNode VNode element to be turned into a component instance.\n * @param {Object} parent Instance of the component to be marked as a parent of the newly created instance.\n * @param {Object} props Props to be passed to the new instance.\n * @param {Object} data Data to be passed to the new instance.\n */\nexport function createVueComponent(vNode: VNode, parent: Vue, props: object, data: object): EditorComponent {\n const ownerDocument = parent.$el ? parent.$el.ownerDocument : document;\n const settings: object = {\n propsData: props,\n parent,\n data\n };\n\n if (!bulkComponentContainer) {\n bulkComponentContainer = ownerDocument.createElement('DIV');\n bulkComponentContainer.id = 'vueHotComponents';\n\n ownerDocument.body.appendChild(bulkComponentContainer);\n }\n\n const componentContainer = ownerDocument.createElement('DIV');\n bulkComponentContainer.appendChild(componentContainer);\n\n return (new (vNode.componentOptions as any).Ctor(settings)).$mount(componentContainer);\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","/**\n * A doubly linked list-based Least Recently Used (LRU) cache. Will keep most\n * recently used items while discarding least recently used items when its limit\n * is reached.\n *\n * Licensed under MIT. Copyright (c) 2010 Rasmus Andersson <http://hunch.se/>\n * See README.md for details.\n *\n * Illustration of the design:\n *\n * entry entry entry entry\n * ______ ______ ______ ______\n * | head |.newer => | |.newer => | |.newer => | tail |\n * | A | | B | | C | | D |\n * |______| <= older.|______| <= older.|______| <= older.|______|\n *\n * removed <-- <-- <-- <-- <-- <-- <-- <-- <-- <-- <-- added\n */\n(function(g,f){\n const e = typeof exports == 'object' ? exports : typeof g == 'object' ? g : {};\n f(e);\n if (typeof define == 'function' && define.amd) { define('lru', e); }\n})(this, function(exports) {\n\n const NEWER = Symbol('newer');\n const OLDER = Symbol('older');\n\n function LRUMap(limit, entries) {\n if (typeof limit !== 'number') {\n // called as (entries)\n entries = limit;\n limit = 0;\n }\n\n this.size = 0;\n this.limit = limit;\n this.oldest = this.newest = undefined;\n this._keymap = new Map();\n\n if (entries) {\n this.assign(entries);\n if (limit < 1) {\n this.limit = this.size;\n }\n }\n }\n\n exports.LRUMap = LRUMap;\n\n function Entry(key, value) {\n this.key = key;\n this.value = value;\n this[NEWER] = undefined;\n this[OLDER] = undefined;\n }\n\n\n LRUMap.prototype._markEntryAsUsed = function(entry) {\n if (entry === this.newest) {\n // Already the most recenlty used entry, so no need to update the list\n return;\n }\n // HEAD--------------TAIL\n // <.older .newer>\n // <--- add direction --\n // A B C <D> E\n if (entry[NEWER]) {\n if (entry === this.oldest) {\n this.oldest = entry[NEWER];\n }\n entry[NEWER][OLDER] = entry[OLDER]; // C <-- E.\n }\n if (entry[OLDER]) {\n entry[OLDER][NEWER] = entry[NEWER]; // C. --> E\n }\n entry[NEWER] = undefined; // D --x\n entry[OLDER] = this.newest; // D. --> E\n if (this.newest) {\n this.newest[NEWER] = entry; // E. <-- D\n }\n this.newest = entry;\n };\n\n LRUMap.prototype.assign = function(entries) {\n let entry, limit = this.limit || Number.MAX_VALUE;\n this._keymap.clear();\n let it = entries[Symbol.iterator]();\n for (let itv = it.next(); !itv.done; itv = it.next()) {\n let e = new Entry(itv.value[0], itv.value[1]);\n this._keymap.set(e.key, e);\n if (!entry) {\n this.oldest = e;\n } else {\n entry[NEWER] = e;\n e[OLDER] = entry;\n }\n entry = e;\n if (limit-- == 0) {\n throw new Error('overflow');\n }\n }\n this.newest = entry;\n this.size = this._keymap.size;\n };\n\n LRUMap.prototype.get = function(key) {\n // First, find our cache entry\n var entry = this._keymap.get(key);\n if (!entry) return; // Not cached. Sorry.\n // As <key> was found in the cache, register it as being requested recently\n this._markEntryAsUsed(entry);\n return entry.value;\n };\n\n LRUMap.prototype.set = function(key, value) {\n var entry = this._keymap.get(key);\n\n if (entry) {\n // update existing\n entry.value = value;\n this._markEntryAsUsed(entry);\n return this;\n }\n\n // new entry\n this._keymap.set(key, (entry = new Entry(key, value)));\n\n if (this.newest) {\n // link previous tail to the new tail (entry)\n this.newest[NEWER] = entry;\n entry[OLDER] = this.newest;\n } else {\n // we're first in -- yay\n this.oldest = entry;\n }\n\n // add new entry to the end of the linked list -- it's now the freshest entry.\n this.newest = entry;\n ++this.size;\n if (this.size > this.limit) {\n // we hit the limit -- remove the head\n this.shift();\n }\n\n return this;\n };\n\n LRUMap.prototype.shift = function() {\n // todo: handle special case when limit == 1\n var entry = this.oldest;\n if (entry) {\n if (this.oldest[NEWER]) {\n // advance the list\n this.oldest = this.oldest[NEWER];\n this.oldest[OLDER] = undefined;\n } else {\n // the cache is exhausted\n this.oldest = undefined;\n this.newest = undefined;\n }\n // Remove last strong reference to <entry> and remove links from the purged\n // entry being returned:\n entry[NEWER] = entry[OLDER] = undefined;\n this._keymap.delete(entry.key);\n --this.size;\n return [entry.key, entry.value];\n }\n };\n\n// ----------------------------------------------------------------------------\n// Following code is optional and can be removed without breaking the core\n// functionality.\n LRUMap.prototype.has = function(key) {\n return this._keymap.has(key);\n };\n});\n","function normalizeComponent(template, style, script, scopeId, isFunctionalTemplate, moduleIdentifier /* server only */, shadowMode, createInjector, createInjectorSSR, createInjectorShadow) {\r\n if (typeof shadowMode !== 'boolean') {\r\n createInjectorSSR = createInjector;\r\n createInjector = shadowMode;\r\n shadowMode = false;\r\n }\r\n // Vue.extend constructor export interop.\r\n const options = typeof script === 'function' ? script.options : script;\r\n // render functions\r\n if (template && template.render) {\r\n options.render = template.render;\r\n options.staticRenderFns = template.staticRenderFns;\r\n options._compiled = true;\r\n // functional template\r\n if (isFunctionalTemplate) {\r\n options.functional = true;\r\n }\r\n }\r\n // scopedId\r\n if (scopeId) {\r\n options._scopeId = scopeId;\r\n }\r\n let hook;\r\n if (moduleIdentifier) {\r\n // server build\r\n hook = function (context) {\r\n // 2.3 injection\r\n context =\r\n context || // cached call\r\n (this.$vnode && this.$vnode.ssrContext) || // stateful\r\n (this.parent && this.parent.$vnode && this.parent.$vnode.ssrContext); // functional\r\n // 2.2 with runInNewContext: true\r\n if (!context && typeof __VUE_SSR_CONTEXT__ !== 'undefined') {\r\n context = __VUE_SSR_CONTEXT__;\r\n }\r\n // inject component styles\r\n if (style) {\r\n style.call(this, createInjectorSSR(context));\r\n }\r\n // register component module identifier for async chunk inference\r\n if (context && context._registeredComponents) {\r\n context._registeredComponents.add(moduleIdentifier);\r\n }\r\n };\r\n // used by ssr in case component is cached and beforeCreate\r\n // never gets called\r\n options._ssrRegister = hook;\r\n }\r\n else if (style) {\r\n hook = shadowMode\r\n ? function (context) {\r\n style.call(this, createInjectorShadow(context, this.$root.$options.shadowRoot));\r\n }\r\n : function (context) {\r\n style.call(this, createInjector(context));\r\n };\r\n }\r\n if (hook) {\r\n if (options.functional) {\r\n // register for functional component in vue file\r\n const originalRender = options.render;\r\n options.render = function renderWithStyleInjection(h, context) {\r\n hook.call(context);\r\n return originalRender(h, context);\r\n };\r\n }\r\n else {\r\n // inject component registration as beforeCreate hook\r\n const existing = options.beforeCreate;\r\n options.beforeCreate = existing ? [].concat(existing, hook) : [hook];\r\n }\r\n }\r\n return script;\r\n}\n\nexport default normalizeComponent;\n//# sourceMappingURL=normalize-component.mjs.map\n","<template>\n <div :id=\"id\">\n <slot></slot>\n </div>\n</template>\n\n<script lang=\"ts\">\n import {\n propFactory,\n preventInternalEditWatch,\n prepareSettings,\n createVueComponent,\n findVNodeByType,\n getHotColumnComponents,\n HOT_DESTROYED_WARNING\n } from './helpers';\n import Vue, { VNode } from 'vue';\n import {\n HotTableData,\n HotTableMethods,\n HotTableProps,\n HotTableComponent,\n EditorComponent\n } from './types';\n import * as packageJson from '../package.json';\n import { LRUMap } from './lib/lru/lru';\n import Handsontable from 'handsontable';\n\n const HotTable: HotTableComponent<Vue, HotTableData, HotTableMethods, {}, HotTableProps> = {\n name: 'HotTable',\n props: propFactory('HotTable'),\n watch: {\n mergedHotSettings: function (value) {\n if (!this.hotInstance || value === void 0) {\n return;\n }\n\n if (value.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 value.data;\n }\n }\n\n // If there are another options changed, update the HOT settings, render the table otherwise.\n if (Object.keys(value).length) {\n this.hotInstance.updateSettings(value);\n\n } else {\n this.hotInstance.render();\n }\n\n this.miscCache.currentSourceColumns = this.hotInstance.countSourceCols();\n }\n },\n data: function () {\n const thisComponent: any = this;\n const rendererCache = new LRUMap(this.wrapperRendererCacheSize);\n\n // Make the LRU cache destroy each removed component\n rendererCache.shift = function () {\n let entry = LRUMap.prototype.shift.call(this);\n entry[1].component.$destroy();\n\n return entry;\n };\n\n return {\n __internalEdit: false,\n miscCache: {\n currentSourceColumns: null\n },\n __hotInstance: null,\n columnSettings: null,\n rendererCache: rendererCache,\n editorCache: new Map(),\n get hotInstance() {\n if (!thisComponent.__hotInstance || (thisComponent.__hotInstance && !thisComponent.__hotInstance.isDestroyed)) {\n\n // Will return the Handsontable instance or `null` if it's not yet been created.\n return thisComponent.__hotInstance;\n\n } else {\n console.warn(HOT_DESTROYED_WARNING);\n\n return null;\n }\n },\n set hotInstance(hotInstance) {\n thisComponent.__hotInstance = hotInstance;\n }\n };\n },\n computed: {\n mergedHotSettings: function (): Handsontable.GridSettings {\n return prepareSettings(this.$props, this.hotInstance ? this.hotInstance.getSettings() : void 0);\n }\n },\n methods: {\n /**\n * Initialize Handsontable.\n */\n hotInit: function (): void {\n const globalRendererVNode = this.getGlobalRendererVNode();\n const globalEditorVNode = this.getGlobalEditorVNode();\n\n const newSettings: Handsontable.GridSettings = prepareSettings(this.$props);\n\n newSettings.columns = this.columnSettings ? this.columnSettings : newSettings.columns;\n\n if (globalEditorVNode) {\n newSettings.editor = this.getEditorClass(globalEditorVNode, this);\n\n globalEditorVNode.child.$destroy();\n }\n\n if (globalRendererVNode) {\n newSettings.renderer = this.getRendererWrapper(globalRendererVNode, this);\n\n globalRendererVNode.child.$destroy();\n }\n\n this.hotInstance = new Handsontable.Core(this.$el, newSettings);\n this.hotInstance.init();\n\n preventInternalEditWatch(this);\n\n this.miscCache.currentSourceColumns = this.hotInstance.countSourceCols();\n },\n matchHotMappersSize: function(): 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 !==\n 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.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.insertIndexes(indexMapperColumnCount - 1, data[0].length - indexMapperColumnCount);\n }\n }\n });\n },\n getGlobalRendererVNode: function (): VNode | null {\n const hotTableSlots: VNode[] = this.$slots.default || [];\n return findVNodeByType(hotTableSlots, 'hot-renderer');\n },\n getGlobalEditorVNode: function (): VNode | null {\n const hotTableSlots: VNode[] = this.$slots.default || [];\n return findVNodeByType(hotTableSlots, 'hot-editor');\n },\n /**\n * Get settings for the columns provided in the `hot-column` components.\n */\n getColumnSettings: function (): HotTableProps[] | void {\n const hotColumns = getHotColumnComponents(this.$children);\n let usesRendererComponent = false;\n let columnSettings: HotTableProps[] = hotColumns.map((elem) => {\n if (elem.usesRendererComponent) {\n usesRendererComponent = true;\n }\n\n return {...elem.columnSettings};\n });\n\n if (usesRendererComponent &&\n (this.settings && (this.settings.autoColumnSize !== false || this.settings.autoRowSize)) &&\n (this.autoColumnSize !== false || this.autoRowSize)) {\n console.warn('Your `hot-table` configuration includes both `hot-column` and `autoRowSize`/`autoColumnSize`, which are not compatible with each other ' +\n 'in this version of `@handsontable/vue`. Disable `autoRowSize` and `autoColumnSize` to prevent row and column misalignment.')\n }\n\n return columnSettings.length ? columnSettings : void 0;\n },\n /**\n * Create the wrapper function for the provided renderer child component.\n *\n * @param {Object} vNode VNode of the renderer child component.\n * @param {Boolean} containerComponent Instance of the component, which will be treated as a parent for the newly created renderer component.\n * @returns {Function} The wrapper function used as the renderer.\n */\n getRendererWrapper: function (vNode: VNode, containerComponent: Vue): (...args) => HTMLElement {\n const $vm = this;\n\n return function (instance, TD, row, col, prop, value, cellProperties) {\n // Prevent caching and rendering of the GhostTable table cells\n if (TD && !TD.getAttribute('ghost-table')) {\n const rendererCache = $vm.rendererCache;\n const rendererArgs: object = {\n hotInstance: instance,\n TD,\n row,\n col,\n prop,\n value,\n cellProperties,\n isRenderer: true\n };\n\n if (rendererCache && !rendererCache.has(`${row}-${col}`)) {\n const mountedComponent: Vue = createVueComponent(vNode, containerComponent, vNode.componentOptions.propsData, rendererArgs);\n\n rendererCache.set(`${row}-${col}`, {\n component: mountedComponent,\n lastUsedTD: null\n });\n }\n\n const cachedEntry = rendererCache.get(`${row}-${col}`);\n const cachedComponent: Vue = cachedEntry.component;\n const cachedTD: HTMLTableCellElement = cachedEntry.lastUsedTD;\n\n Object.assign(cachedComponent.$data, rendererArgs);\n\n if (!cachedComponent.$el.parentElement || cachedTD !== TD) {\n // Clear the previous contents of a TD\n while (TD.firstChild) {\n TD.removeChild(TD.firstChild);\n }\n\n TD.appendChild(cachedComponent.$el);\n\n cachedEntry.lastUsedTD = TD;\n }\n }\n\n return TD;\n };\n },\n /**\n * Create a fresh class to be used as an editor, based on the editor component provided.\n *\n * @param {Object} vNode VNode for the editor child component.\n * @param {Boolean} containerComponent Instance of the component, which will be treated as a parent for the newly created editor component.\n * @returns {Class} The class used as an editor in Handsontable.\n */\n getEditorClass: function (vNode: VNode, containerComponent: Vue): typeof Handsontable.editors.BaseEditor {\n const componentKey: string = vNode.key ? vNode.key.toString() : null;\n const componentName: string = (vNode.componentOptions.Ctor as any).options.name;\n const componentCacheKey = componentKey ? `${componentName}:${componentKey}` : componentName;\n\n const editorCache = this.editorCache;\n let mountedComponent: EditorComponent = null;\n\n if (!editorCache.has(componentCacheKey)) {\n mountedComponent = createVueComponent(vNode, containerComponent, vNode.componentOptions.propsData, {isEditor: true});\n\n editorCache.set(componentCacheKey, mountedComponent);\n\n } else {\n mountedComponent = editorCache.get(componentCacheKey);\n }\n\n return mountedComponent.$data.hotCustomEditorClass;\n }\n },\n mounted: function () {\n this.columnSettings = this.getColumnSettings();\n\n return this.hotInit();\n },\n beforeDestroy: function () {\n if (this.hotInstance) {\n this.hotInstance.destroy();\n }\n },\n version: (packageJson as any).version\n };\n\n export default HotTable;\n export { HotTable };\n</script>\n","/**\n * vue-class-component v7.2.6\n * (c) 2015-present Evan You\n * @license MIT\n */\nimport Vue from 'vue';\n\nfunction _typeof(obj) {\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function (obj) {\n return typeof obj;\n };\n } else {\n _typeof = function (obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n}\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nfunction _toConsumableArray(arr) {\n return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _nonIterableSpread();\n}\n\nfunction _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) {\n for (var i = 0, arr2 = new Array(arr.length); i < arr.length; i++) arr2[i] = arr[i];\n\n return arr2;\n }\n}\n\nfunction _iterableToArray(iter) {\n if (Symbol.iterator in Object(iter) || Object.prototype.toString.call(iter) === \"[object Arguments]\") return Array.from(iter);\n}\n\nfunction _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance\");\n}\n\n// The rational behind the verbose Reflect-feature check below is the fact that there are polyfills\n// which add an implementation for Reflect.defineMetadata but not for Reflect.getOwnMetadataKeys.\n// Without this check consumers will encounter hard to track down runtime errors.\nfunction reflectionIsSupported() {\n return typeof Reflect !== 'undefined' && Reflect.defineMetadata && Reflect.getOwnMetadataKeys;\n}\nfunction copyReflectionMetadata(to, from) {\n forwardMetadata(to, from);\n Object.getOwnPropertyNames(from.prototype).forEach(function (key) {\n forwardMetadata(to.prototype, from.prototype, key);\n });\n Object.getOwnPropertyNames(from).forEach(function (key) {\n forwardMetadata(to, from, key);\n });\n}\n\nfunction forwardMetadata(to, from, propertyKey) {\n var metaKeys = propertyKey ? Reflect.getOwnMetadataKeys(from, propertyKey) : Reflect.getOwnMetadataKeys(from);\n metaKeys.forEach(function (metaKey) {\n var metadata = propertyKey ? Reflect.getOwnMetadata(metaKey, from, propertyKey) : Reflect.getOwnMetadata(metaKey, from);\n\n if (propertyKey) {\n Reflect.defineMetadata(metaKey, metadata, to, propertyKey);\n } else {\n Reflect.defineMetadata(metaKey, metadata, to);\n }\n });\n}\n\nvar fakeArray = {\n __proto__: []\n};\nvar hasProto = fakeArray instanceof Array;\nfunction createDecorator(factory) {\n return function (target, key, index) {\n var Ctor = typeof target === 'function' ? target : target.constructor;\n\n if (!Ctor.__decorators__) {\n Ctor.__decorators__ = [];\n }\n\n if (typeof index !== 'number') {\n index = undefined;\n }\n\n Ctor.__decorators__.push(function (options) {\n return factory(options, key, index);\n });\n };\n}\nfunction mixins() {\n for (var _len = arguments.length, Ctors = new Array(_len), _key = 0; _key < _len; _key++) {\n Ctors[_key] = arguments[_key];\n }\n\n return Vue.extend({\n mixins: Ctors\n });\n}\nfunction isPrimitive(value) {\n var type = _typeof(value);\n\n return value == null || type !== 'object' && type !== 'function';\n}\nfunction warn(message) {\n if (typeof console !== 'undefined') {\n console.warn('[vue-class-component] ' + message);\n }\n}\n\nfunction collectDataFromConstructor(vm, Component) {\n // override _init to prevent to init as Vue instance\n var originalInit = Component.prototype._init;\n\n Component.prototype._init = function () {\n var _this = this;\n\n // proxy to actual vm\n var keys = Object.getOwnPropertyNames(vm); // 2.2.0 compat (props are no longer exposed as self properties)\n\n if (vm.$options.props) {\n for (var key in vm.$options.props) {\n if (!vm.hasOwnProperty(key)) {\n keys.push(key);\n }\n }\n }\n\n keys.forEach(function (key) {\n Object.defineProperty(_this, key, {\n get: function get() {\n return vm[key];\n },\n set: function set(value) {\n vm[key] = value;\n },\n configurable: true\n });\n });\n }; // should be acquired class property values\n\n\n var data = new Component(); // restore original _init to avoid memory leak (#209)\n\n Component.prototype._init = originalInit; // create plain data object\n\n var plainData = {};\n Object.keys(data).forEach(function (key) {\n if (data[key] !== undefined) {\n plainData[key] = data[key];\n }\n });\n\n if (process.env.NODE_ENV !== 'production') {\n if (!(Component.prototype instanceof Vue) && Object.keys(plainData).length > 0) {\n warn('Component class must inherit Vue or its descendant class ' + 'when class property is used.');\n }\n }\n\n return plainData;\n}\n\nvar $internalHooks = ['data', 'beforeCreate', 'created', 'beforeMount', 'mounted', 'beforeDestroy', 'destroyed', 'beforeUpdate', 'updated', 'activated', 'deactivated', 'render', 'errorCaptured', 'serverPrefetch' // 2.6\n];\nfunction componentFactory(Component) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n options.name = options.name || Component._componentTag || Component.name; // prototype props.\n\n var proto = Component.prototype;\n Object.getOwnPropertyNames(proto).forEach(function (key) {\n if (key === 'constructor') {\n return;\n } // hooks\n\n\n if ($internalHooks.indexOf(key) > -1) {\n options[key] = proto[key];\n return;\n }\n\n var descriptor = Object.getOwnPropertyDescriptor(proto, key);\n\n if (descriptor.value !== void 0) {\n // methods\n if (typeof descriptor.value === 'function') {\n (options.methods || (options.methods = {}))[key] = descriptor.value;\n } else {\n // typescript decorated data\n (options.mixins || (options.mixins = [])).push({\n data: function data() {\n return _defineProperty({}, key, descriptor.value);\n }\n });\n }\n } else if (descriptor.get || descriptor.set) {\n // computed properties\n (options.computed || (options.computed = {}))[key] = {\n get: descriptor.get,\n set: descriptor.set\n };\n }\n });\n (options.mixins || (options.mixins = [])).push({\n data: function data() {\n return collectDataFromConstructor(this, Component);\n }\n }); // decorate options\n\n var decorators = Component.__decorators__;\n\n if (decorators) {\n decorators.forEach(function (fn) {\n return fn(options);\n });\n delete Component.__decorators__;\n } // find super\n\n\n var superProto = Object.getPrototypeOf(Component.prototype);\n var Super = superProto instanceof Vue ? superProto.constructor : Vue;\n var Extended = Super.extend(options);\n forwardStaticMembers(Extended, Component, Super);\n\n if (reflectionIsSupported()) {\n copyReflectionMetadata(Extended, Component);\n }\n\n return Extended;\n}\nvar reservedPropertyNames = [// Unique id\n'cid', // Super Vue constructor\n'super', // Component options that will be used by the component\n'options', 'superOptions', 'extendOptions', 'sealedOptions', // Private assets\n'component', 'directive', 'filter'];\nvar shouldIgnore = {\n prototype: true,\n arguments: true,\n callee: true,\n caller: true\n};\n\nfunction forwardStaticMembers(Extended, Original, Super) {\n // We have to use getOwnPropertyNames since Babel registers methods as non-enumerable\n Object.getOwnPropertyNames(Original).forEach(function (key) {\n // Skip the properties that should not be overwritten\n if (shouldIgnore[key]) {\n return;\n } // Some browsers does not allow reconfigure built-in properties\n\n\n var extendedDescriptor = Object.getOwnPropertyDescriptor(Extended, key);\n\n if (extendedDescriptor && !extendedDescriptor.configurable) {\n return;\n }\n\n var descriptor = Object.getOwnPropertyDescriptor(Original, key); // If the user agent does not support `__proto__` or its family (IE <= 10),\n // the sub class properties may be inherited properties from the super class in TypeScript.\n // We need to exclude such properties to prevent to overwrite\n // the component options object which stored on the extended constructor (See #192).\n // If the value is a referenced value (object or function),\n // we can check equality of them and exclude it if they have the same reference.\n // If it is a primitive value, it will be forwarded for safety.\n\n if (!hasProto) {\n // Only `cid` is explicitly exluded from property forwarding\n // because we cannot detect whether it is a inherited property or not\n // on the no `__proto__` environment even though the property is reserved.\n if (key === 'cid') {\n return;\n }\n\n var superDescriptor = Object.getOwnPropertyDescriptor(Super, key);\n\n if (!isPrimitive(descriptor.value) && superDescriptor && superDescriptor.value === descriptor.value) {\n return;\n }\n } // Warn if the users manually declare reserved properties\n\n\n if (process.env.NODE_ENV !== 'production' && reservedPropertyNames.indexOf(key) >= 0) {\n warn(\"Static property name '\".concat(key, \"' declared on class '\").concat(Original.name, \"' \") + 'conflicts with reserved property name of Vue internal. ' + 'It may cause unexpected behavior of the component. Consider renaming the property.');\n }\n\n Object.defineProperty(Extended, key, descriptor);\n });\n}\n\nfunction Component(options) {\n if (typeof options === 'function') {\n return componentFactory(options);\n }\n\n return function (Component) {\n return componentFactory(Component, options);\n };\n}\n\nComponent.registerHooks = function registerHooks(keys) {\n $internalHooks.push.apply($internalHooks, _toConsumableArray(keys));\n};\n\nexport default Component;\nexport { createDecorator, mixins };\n","<script lang=\"ts\">\n import Vue from 'vue';\n import Handsontable from 'handsontable';\n import Component from 'vue-class-component';\n\n @Component({})\n class BaseEditorComponent extends Vue implements Handsontable._editors.Base {\n name = 'BaseEditorComponent';\n instance = null;\n row = null;\n col = null;\n prop = null;\n TD = null;\n originalValue = null;\n cellProperties = null;\n state = null;\n hot = null;\n\n mounted() {\n const _this = this;\n\n this.$data.hotCustomEditorClass = function () {\n const customEditorClass = class CustomEditor extends Handsontable.editors.BaseEditor implements Handsontable._editors.Base {\n constructor(hotInstance, row, col, prop, TD, cellProperties) {\n super(hotInstance, row, col, prop, TD, cellProperties);\n\n _this.$data.hotCustomEditorInstance = this;\n }\n\n focus() {\n }\n\n getValue() {\n }\n\n setValue() {\n }\n\n open() {\n }\n\n close() {\n }\n } as any;\n\n // Fill with the rest of the BaseEditorComponent methods\n Object.getOwnPropertyNames(Handsontable.editors.BaseEditor.prototype).forEach(propName => {\n if (propName === 'constructor') {\n return;\n }\n\n customEditorClass.prototype[propName] = function (...args) {\n return _this[propName].call(this, ...args);\n }\n });\n\n return customEditorClass;\n }();\n }\n\n // BaseEditorComponent methods:\n private _fireCallbacks(...args) {\n (Handsontable.editors.BaseEditor.prototype as any)._fireCallbacks.call(this.$data.hotCustomEditorInstance, ...args);\n }\n\n beginEditing(...args) {\n return Handsontable.editors.BaseEditor.prototype.beginEditing.call(this.$data.hotCustomEditorInstance, ...args);\n }\n\n cancelChanges(...args) {\n return Handsontable.editors.BaseEditor.prototype.cancelChanges.call(this.$data.hotCustomEditorInstance, ...args);\n }\n\n checkEditorSection(...args) {\n return Handsontable.editors.BaseEditor.prototype.checkEditorSection.call(this.$data.hotCustomEditorInstance, ...args);\n }\n\n close(...args) {\n return Handsontable.editors.BaseEditor.prototype.close.call(this.$data.hotCustomEditorInstance, ...args);\n }\n\n discardEditor(...args) {\n return Handsontable.editors.BaseEditor.prototype.discardEditor.call(this.$data.hotCustomEditorInstance, ...args);\n }\n\n enableFullEditMode(...args) {\n return Handsontable.editors.BaseEditor.prototype.enableFullEditMode.call(this.$data.hotCustomEditorInstance, ...args);\n }\n\n extend(...args) {\n return Handsontable.editors.BaseEditor.prototype.extend.call(this.$data.hotCustomEditorInstance, ...args);\n }\n\n finishEditing(...args) {\n return Handsontable.editors.BaseEditor.prototype.finishEditing.call(this.$data.hotCustomEditorInstance, ...args);\n }\n\n focus(...args) {\n return Handsontable.editors.BaseEditor.prototype.focus.call(this.$data.hotCustomEditorInstance, ...args);\n }\n\n getValue(...args) {\n return Handsontable.editors.BaseEditor.prototype.getValue.call(this.$data.hotCustomEditorInstance, ...args);\n }\n\n init(...args) {\n return Handsontable.editors.BaseEditor.prototype.init.call(this.$data.hotCustomEditorInstance, ...args);\n }\n\n isInFullEditMode(...args) {\n return Handsontable.editors.BaseEditor.prototype.isInFullEditMode.call(this.$data.hotCustomEditorInstance, ...args);\n }\n\n isOpened(...args) {\n return Handsontable.editors.BaseEditor.prototype.isOpened.call(this.$data.hotCustomEditorInstance, ...args);\n }\n\n isWaiting(...args) {\n return Handsontable.editors.BaseEditor.prototype.isWaiting.call(this.$data.hotCustomEditorInstance, ...args);\n }\n\n open(...args) {\n return Handsontable.editors.BaseEditor.prototype.open.call(this.$data.hotCustomEditorInstance, ...args);\n }\n\n prepare(row, col, prop, TD, originalValue, cellProperties) {\n this.$data.hotInstance = cellProperties.instance;\n this.$data.row = row;\n this.$data.col = col;\n this.$data.prop = prop;\n this.$data.TD = TD;\n this.$data.originalValue = originalValue;\n this.$data.cellProperties = cellProperties;\n\n return Handsontable.editors.BaseEditor.prototype.prepare.call(this.$data.hotCustomEditorInstance, row, col, prop, TD, originalValue, cellProperties);\n }\n\n saveValue(...args) {\n return Handsontable.editors.BaseEditor.prototype.saveValue.call(this.$data.hotCustomEditorInstance, ...args);\n }\n\n setValue(...args) {\n return Handsontable.editors.BaseEditor.prototype.setValue.call(this.$data.hotCustomEditorInstance, ...args);\n }\n\n addHook(...args) {\n return (Handsontable.editors.BaseEditor.prototype as any).addHook.call(this.$data.hotCustomEditorInstance, ...args);\n }\n\n removeHooksByKey(...args) {\n return (Handsontable.editors.BaseEditor.prototype as any).removeHooksByKey.call(this.$data.hotCustomEditorInstance, ...args);\n }\n\n clearHooks(...args) {\n return (Handsontable.editors.BaseEditor.prototype as any).clearHooks.call(this.$data.hotCustomEditorInstance, ...args);\n }\n\n getEditedCell(...args) {\n return (Handsontable.editors.BaseEditor.prototype as any).getEditedCell.call(this.$data.hotCustomEditorInstance, ...args);\n }\n\n getEditedCellsZIndex(...args) {\n return (Handsontable.editors.BaseEditor.prototype as any).getEditedCellsZIndex.call(this.$data.hotCustomEditorInstance, ...args);\n }\n\n getEditedCellsLayerClass(...args) {\n return (Handsontable.editors.BaseEditor.prototype as any).getEditedCellsLayerClass.call(this.$data.hotCustomEditorInstance, ...args);\n }\n }\n\n export default BaseEditorComponent;\n export { BaseEditorComponent };\n</script>\n"],"names":["unassignedPropSymbol","Symbol","bulkComponentContainer","propFactory","source","registeredHooks","Handsontable","hooks","getRegistered","propSchema","prop","Object","assign","DefaultSettings","i","length","settings","id","type","String","Math","random","toString","substring","wrapperRendererCacheSize","Number","filterPassedProps","props","filteredProps","columnSettingsProp","propName","hasOwnProperty","prepareSettings","currentSettings","assignedProps","hotSettingsInProps","additionalHotSettingsInProps","newSettings","key","simpleEqual","findVNodeByType","componentSlots","componentVNode","every","slot","index","data","attrs","createVueComponent","vNode","parent","ownerDocument","$el","document","propsData","createElement","body","appendChild","componentContainer","componentOptions","Ctor","$mount","objectA","objectB","JSON","stringify","exports","NEWER","OLDER","LRUMap","limit","entries","size","oldest","this","newest","undefined","_keymap","Map","Entry","value","prototype","_markEntryAsUsed","entry","MAX_VALUE","clear","it","iterator","itv","next","done","e","set","Error","get","shift","has","f","normalizeComponent","template","style","script","scopeId","isFunctionalTemplate","moduleIdentifier","shadowMode","createInjector","createInjectorSSR","createInjectorShadow","options","hook","render","staticRenderFns","_compiled","functional","_scopeId","context","$vnode","ssrContext","__VUE_SSR_CONTEXT__","call","_registeredComponents","add","_ssrRegister","$root","$options","shadowRoot","originalRender","h","existing","beforeCreate","concat","component","hotInstance","addHook","__internalEdit","filter","child","name","_typeof","obj","_typeof2","constructor","_defineProperty","defineProperty","enumerable","configurable","writable","_toConsumableArray","arr","Array","isArray","arr2","_arrayWithoutHoles","iter","from","_iterableToArray","TypeError","_nonIterableSpread","reflectionIsSupported","Reflect","defineMetadata","getOwnMetadataKeys","copyReflectionMetadata","to","forwardMetadata","getOwnPropertyNames","forEach","propertyKey","metaKey","metadata","getOwnMetadata","hasProto","__proto__","collectDataFromConstructor","vm","Component","originalInit","_init","_this","keys","push","plainData","$internalHooks","componentFactory","arguments","_componentTag","proto","indexOf","descriptor","getOwnPropertyDescriptor","methods","mixins","computed","decorators","__decorators__","fn","superProto","getPrototypeOf","Super","Vue","Extended","extend","forwardStaticMembers","shouldIgnore","callee","caller","Original","extendedDescriptor","superDescriptor","registerHooks","apply"],"mappings":"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"}
1
+ {"version":3,"file":"vue-handsontable.min.js","sources":["../src/helpers.ts","../src/lib/lru/lru.js","../../../node_modules/vue-runtime-helpers/dist/normalize-component.mjs","../src/HotTable.vue","../../../node_modules/vue-class-component/dist/vue-class-component.esm.js","../src/BaseEditorComponent.vue"],"sourcesContent":["import Vue, { VNode } from 'vue';\nimport Handsontable from 'handsontable/base';\nimport { HotTableProps, VueProps, EditorComponent } from './types';\n\nconst unassignedPropSymbol = Symbol('unassigned');\nlet bulkComponentContainer = null;\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 * Rewrite the settings object passed to the watchers to be a clean array/object prepared to use within Handsontable config.\n *\n * @param {*} observerSettings Watcher object containing the changed data.\n * @returns {Object|Array}\n */\nexport function rewriteSettings(observerSettings): any[] | object {\n const settingsType = Object.prototype.toString.call(observerSettings);\n let settings: any[] | object | null = null;\n let type: { array?: boolean, object?: boolean } = {};\n\n if (settingsType === '[object Array]') {\n settings = [];\n type.array = true;\n\n } else if (settingsType === '[object Object]') {\n settings = {};\n type.object = true;\n }\n\n if (type.array || type.object) {\n for (const p in observerSettings) {\n if (observerSettings.hasOwnProperty(p)) {\n settings[p] = observerSettings[p];\n }\n }\n\n } else {\n settings = observerSettings;\n }\n\n return settings;\n}\n\n/**\n * Private method to ensure the table is not calling `updateSettings` after editing cells.\n * @private\n */\nexport function preventInternalEditWatch(component) {\n if (component.hotInstance) {\n component.hotInstance.addHook('beforeChange', () => {\n component.__internalEdit = true;\n });\n\n component.hotInstance.addHook('beforeCreateRow', () => {\n component.__internalEdit = true;\n });\n\n component.hotInstance.addHook('beforeCreateCol', () => {\n component.__internalEdit = true;\n });\n\n component.hotInstance.addHook('beforeRemoveRow', () => {\n component.__internalEdit = true;\n });\n\n component.hotInstance.addHook('beforeRemoveCol', () => {\n component.__internalEdit = true;\n });\n }\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): VueProps<HotTableProps> {\n const registeredHooks: string[] = Handsontable.hooks.getRegistered();\n\n let propSchema: VueProps<HotTableProps> = {};\n Object.assign(propSchema, Handsontable.DefaultSettings);\n\n for (let 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 propSchema.wrapperRendererCacheSize = {\n type: Number,\n default: 3000\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 for (let propName in columnSettingsProp) {\n if (columnSettingsProp.hasOwnProperty(propName) && columnSettingsProp[propName] !== unassignedPropSymbol) {\n filteredProps[propName] = columnSettingsProp[propName];\n }\n }\n }\n\n for (let propName in props) {\n if (props.hasOwnProperty(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): Handsontable.GridSettings {\n const assignedProps: VueProps<HotTableProps> = filterPassedProps(props);\n const hotSettingsInProps: {} = props.settings ? props.settings : assignedProps;\n const additionalHotSettingsInProps: Handsontable.GridSettings = props.settings ? assignedProps : null;\n const newSettings = {};\n\n for (const key in hotSettingsInProps) {\n if (\n hotSettingsInProps.hasOwnProperty(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 for (const key in additionalHotSettingsInProps) {\n if (\n additionalHotSettingsInProps.hasOwnProperty(key) &&\n key !== 'id' &&\n key !== 'settings' &&\n key !== 'wrapperRendererCacheSize' &&\n additionalHotSettingsInProps[key] !== void 0 &&\n ((currentSettings && key !== 'data') ? !simpleEqual(currentSettings[key], additionalHotSettingsInProps[key]) : true)\n ) {\n newSettings[key] = additionalHotSettingsInProps[key];\n }\n }\n\n return newSettings;\n}\n\n/**\n * Get the VNode element with the provided type attribute from the component slots.\n *\n * @param {Array} componentSlots Array of slots from a component.\n * @param {String} type Type of the child component. Either `hot-renderer` or `hot-editor`.\n * @returns {Object|null} The VNode of the child component (or `null` when nothing's found).\n */\nexport function findVNodeByType(componentSlots: VNode[], type: string): VNode {\n let componentVNode: VNode = null;\n\n componentSlots.every((slot, index) => {\n if (slot.data && slot.data.attrs && slot.data.attrs[type] !== void 0) {\n componentVNode = slot;\n return false;\n }\n\n return true;\n });\n\n return componentVNode;\n}\n\n/**\n * Get all `hot-column` component instances from the provided children array.\n *\n * @param {Array} children Array of children from a component.\n * @returns {Array} Array of `hot-column` instances.\n */\nexport function getHotColumnComponents(children) {\n return children.filter((child) => child.$options.name === 'HotColumn');\n}\n\n/**\n * Create an instance of the Vue Component based on the provided VNode.\n *\n * @param {Object} vNode VNode element to be turned into a component instance.\n * @param {Object} parent Instance of the component to be marked as a parent of the newly created instance.\n * @param {Object} props Props to be passed to the new instance.\n * @param {Object} data Data to be passed to the new instance.\n */\nexport function createVueComponent(vNode: VNode, parent: Vue, props: object, data: object): EditorComponent {\n const ownerDocument = parent.$el ? parent.$el.ownerDocument : document;\n const settings: object = {\n propsData: props,\n parent,\n data\n };\n\n if (!bulkComponentContainer) {\n bulkComponentContainer = ownerDocument.createElement('DIV');\n bulkComponentContainer.id = 'vueHotComponents';\n\n ownerDocument.body.appendChild(bulkComponentContainer);\n }\n\n const componentContainer = ownerDocument.createElement('DIV');\n bulkComponentContainer.appendChild(componentContainer);\n\n return (new (vNode.componentOptions as any).Ctor(settings)).$mount(componentContainer);\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","/**\n * A doubly linked list-based Least Recently Used (LRU) cache. Will keep most\n * recently used items while discarding least recently used items when its limit\n * is reached.\n *\n * Licensed under MIT. Copyright (c) 2010 Rasmus Andersson <http://hunch.se/>\n * See README.md for details.\n *\n * Illustration of the design:\n *\n * entry entry entry entry\n * ______ ______ ______ ______\n * | head |.newer => | |.newer => | |.newer => | tail |\n * | A | | B | | C | | D |\n * |______| <= older.|______| <= older.|______| <= older.|______|\n *\n * removed <-- <-- <-- <-- <-- <-- <-- <-- <-- <-- <-- added\n */\n(function(g,f){\n const e = typeof exports == 'object' ? exports : typeof g == 'object' ? g : {};\n f(e);\n if (typeof define == 'function' && define.amd) { define('lru', e); }\n})(this, function(exports) {\n\n const NEWER = Symbol('newer');\n const OLDER = Symbol('older');\n\n function LRUMap(limit, entries) {\n if (typeof limit !== 'number') {\n // called as (entries)\n entries = limit;\n limit = 0;\n }\n\n this.size = 0;\n this.limit = limit;\n this.oldest = this.newest = undefined;\n this._keymap = new Map();\n\n if (entries) {\n this.assign(entries);\n if (limit < 1) {\n this.limit = this.size;\n }\n }\n }\n\n exports.LRUMap = LRUMap;\n\n function Entry(key, value) {\n this.key = key;\n this.value = value;\n this[NEWER] = undefined;\n this[OLDER] = undefined;\n }\n\n\n LRUMap.prototype._markEntryAsUsed = function(entry) {\n if (entry === this.newest) {\n // Already the most recenlty used entry, so no need to update the list\n return;\n }\n // HEAD--------------TAIL\n // <.older .newer>\n // <--- add direction --\n // A B C <D> E\n if (entry[NEWER]) {\n if (entry === this.oldest) {\n this.oldest = entry[NEWER];\n }\n entry[NEWER][OLDER] = entry[OLDER]; // C <-- E.\n }\n if (entry[OLDER]) {\n entry[OLDER][NEWER] = entry[NEWER]; // C. --> E\n }\n entry[NEWER] = undefined; // D --x\n entry[OLDER] = this.newest; // D. --> E\n if (this.newest) {\n this.newest[NEWER] = entry; // E. <-- D\n }\n this.newest = entry;\n };\n\n LRUMap.prototype.assign = function(entries) {\n let entry, limit = this.limit || Number.MAX_VALUE;\n this._keymap.clear();\n let it = entries[Symbol.iterator]();\n for (let itv = it.next(); !itv.done; itv = it.next()) {\n let e = new Entry(itv.value[0], itv.value[1]);\n this._keymap.set(e.key, e);\n if (!entry) {\n this.oldest = e;\n } else {\n entry[NEWER] = e;\n e[OLDER] = entry;\n }\n entry = e;\n if (limit-- == 0) {\n throw new Error('overflow');\n }\n }\n this.newest = entry;\n this.size = this._keymap.size;\n };\n\n LRUMap.prototype.get = function(key) {\n // First, find our cache entry\n var entry = this._keymap.get(key);\n if (!entry) return; // Not cached. Sorry.\n // As <key> was found in the cache, register it as being requested recently\n this._markEntryAsUsed(entry);\n return entry.value;\n };\n\n LRUMap.prototype.set = function(key, value) {\n var entry = this._keymap.get(key);\n\n if (entry) {\n // update existing\n entry.value = value;\n this._markEntryAsUsed(entry);\n return this;\n }\n\n // new entry\n this._keymap.set(key, (entry = new Entry(key, value)));\n\n if (this.newest) {\n // link previous tail to the new tail (entry)\n this.newest[NEWER] = entry;\n entry[OLDER] = this.newest;\n } else {\n // we're first in -- yay\n this.oldest = entry;\n }\n\n // add new entry to the end of the linked list -- it's now the freshest entry.\n this.newest = entry;\n ++this.size;\n if (this.size > this.limit) {\n // we hit the limit -- remove the head\n this.shift();\n }\n\n return this;\n };\n\n LRUMap.prototype.shift = function() {\n // todo: handle special case when limit == 1\n var entry = this.oldest;\n if (entry) {\n if (this.oldest[NEWER]) {\n // advance the list\n this.oldest = this.oldest[NEWER];\n this.oldest[OLDER] = undefined;\n } else {\n // the cache is exhausted\n this.oldest = undefined;\n this.newest = undefined;\n }\n // Remove last strong reference to <entry> and remove links from the purged\n // entry being returned:\n entry[NEWER] = entry[OLDER] = undefined;\n this._keymap.delete(entry.key);\n --this.size;\n return [entry.key, entry.value];\n }\n };\n\n// ----------------------------------------------------------------------------\n// Following code is optional and can be removed without breaking the core\n// functionality.\n LRUMap.prototype.has = function(key) {\n return this._keymap.has(key);\n };\n});\n","function normalizeComponent(template, style, script, scopeId, isFunctionalTemplate, moduleIdentifier /* server only */, shadowMode, createInjector, createInjectorSSR, createInjectorShadow) {\r\n if (typeof shadowMode !== 'boolean') {\r\n createInjectorSSR = createInjector;\r\n createInjector = shadowMode;\r\n shadowMode = false;\r\n }\r\n // Vue.extend constructor export interop.\r\n const options = typeof script === 'function' ? script.options : script;\r\n // render functions\r\n if (template && template.render) {\r\n options.render = template.render;\r\n options.staticRenderFns = template.staticRenderFns;\r\n options._compiled = true;\r\n // functional template\r\n if (isFunctionalTemplate) {\r\n options.functional = true;\r\n }\r\n }\r\n // scopedId\r\n if (scopeId) {\r\n options._scopeId = scopeId;\r\n }\r\n let hook;\r\n if (moduleIdentifier) {\r\n // server build\r\n hook = function (context) {\r\n // 2.3 injection\r\n context =\r\n context || // cached call\r\n (this.$vnode && this.$vnode.ssrContext) || // stateful\r\n (this.parent && this.parent.$vnode && this.parent.$vnode.ssrContext); // functional\r\n // 2.2 with runInNewContext: true\r\n if (!context && typeof __VUE_SSR_CONTEXT__ !== 'undefined') {\r\n context = __VUE_SSR_CONTEXT__;\r\n }\r\n // inject component styles\r\n if (style) {\r\n style.call(this, createInjectorSSR(context));\r\n }\r\n // register component module identifier for async chunk inference\r\n if (context && context._registeredComponents) {\r\n context._registeredComponents.add(moduleIdentifier);\r\n }\r\n };\r\n // used by ssr in case component is cached and beforeCreate\r\n // never gets called\r\n options._ssrRegister = hook;\r\n }\r\n else if (style) {\r\n hook = shadowMode\r\n ? function (context) {\r\n style.call(this, createInjectorShadow(context, this.$root.$options.shadowRoot));\r\n }\r\n : function (context) {\r\n style.call(this, createInjector(context));\r\n };\r\n }\r\n if (hook) {\r\n if (options.functional) {\r\n // register for functional component in vue file\r\n const originalRender = options.render;\r\n options.render = function renderWithStyleInjection(h, context) {\r\n hook.call(context);\r\n return originalRender(h, context);\r\n };\r\n }\r\n else {\r\n // inject component registration as beforeCreate hook\r\n const existing = options.beforeCreate;\r\n options.beforeCreate = existing ? [].concat(existing, hook) : [hook];\r\n }\r\n }\r\n return script;\r\n}\n\nexport default normalizeComponent;\n//# sourceMappingURL=normalize-component.mjs.map\n","<template>\n <div :id=\"id\">\n <slot></slot>\n </div>\n</template>\n\n<script lang=\"ts\">\n import {\n propFactory,\n preventInternalEditWatch,\n prepareSettings,\n createVueComponent,\n findVNodeByType,\n getHotColumnComponents,\n HOT_DESTROYED_WARNING\n } from './helpers';\n import Vue, { VNode } from 'vue';\n import {\n HotTableData,\n HotTableMethods,\n HotTableProps,\n HotTableComponent,\n EditorComponent\n } from './types';\n import * as packageJson from '../package.json';\n import { LRUMap } from './lib/lru/lru';\n import Handsontable from 'handsontable/base';\n\n const HotTable: HotTableComponent<Vue, HotTableData, HotTableMethods, {}, HotTableProps> = {\n name: 'HotTable',\n props: propFactory('HotTable'),\n watch: {\n mergedHotSettings: function (value) {\n if (!this.hotInstance || value === void 0) {\n return;\n }\n\n if (value.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 value.data;\n }\n }\n\n // If there are another options changed, update the HOT settings, render the table otherwise.\n if (Object.keys(value).length) {\n this.hotInstance.updateSettings(value);\n\n } else {\n this.hotInstance.render();\n }\n\n this.miscCache.currentSourceColumns = this.hotInstance.countSourceCols();\n }\n },\n data: function () {\n const thisComponent: any = this;\n const rendererCache = new LRUMap(this.wrapperRendererCacheSize);\n\n // Make the LRU cache destroy each removed component\n rendererCache.shift = function () {\n let entry = LRUMap.prototype.shift.call(this);\n entry[1].component.$destroy();\n\n return entry;\n };\n\n return {\n __internalEdit: false,\n miscCache: {\n currentSourceColumns: null\n },\n __hotInstance: null,\n columnSettings: null,\n rendererCache: rendererCache,\n editorCache: new Map(),\n get hotInstance() {\n if (!thisComponent.__hotInstance || (thisComponent.__hotInstance && !thisComponent.__hotInstance.isDestroyed)) {\n\n // Will return the Handsontable instance or `null` if it's not yet been created.\n return thisComponent.__hotInstance;\n\n } else {\n console.warn(HOT_DESTROYED_WARNING);\n\n return null;\n }\n },\n set hotInstance(hotInstance) {\n thisComponent.__hotInstance = hotInstance;\n }\n };\n },\n computed: {\n mergedHotSettings: function (): Handsontable.GridSettings {\n return prepareSettings(this.$props, this.hotInstance ? this.hotInstance.getSettings() : void 0);\n }\n },\n methods: {\n /**\n * Initialize Handsontable.\n */\n hotInit: function (): void {\n const globalRendererVNode = this.getGlobalRendererVNode();\n const globalEditorVNode = this.getGlobalEditorVNode();\n\n const newSettings: Handsontable.GridSettings = prepareSettings(this.$props);\n\n newSettings.columns = this.columnSettings ? this.columnSettings : newSettings.columns;\n\n if (globalEditorVNode) {\n newSettings.editor = this.getEditorClass(globalEditorVNode, this);\n\n globalEditorVNode.child.$destroy();\n }\n\n if (globalRendererVNode) {\n newSettings.renderer = this.getRendererWrapper(globalRendererVNode, this);\n\n globalRendererVNode.child.$destroy();\n }\n\n this.hotInstance = new Handsontable.Core(this.$el, newSettings);\n this.hotInstance.init();\n\n preventInternalEditWatch(this);\n\n this.miscCache.currentSourceColumns = this.hotInstance.countSourceCols();\n },\n matchHotMappersSize: function(): 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 !==\n 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.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.insertIndexes(indexMapperColumnCount - 1, data[0].length - indexMapperColumnCount);\n }\n }\n });\n },\n getGlobalRendererVNode: function (): VNode | null {\n const hotTableSlots: VNode[] = this.$slots.default || [];\n return findVNodeByType(hotTableSlots, 'hot-renderer');\n },\n getGlobalEditorVNode: function (): VNode | null {\n const hotTableSlots: VNode[] = this.$slots.default || [];\n return findVNodeByType(hotTableSlots, 'hot-editor');\n },\n /**\n * Get settings for the columns provided in the `hot-column` components.\n */\n getColumnSettings: function (): HotTableProps[] | void {\n const hotColumns = getHotColumnComponents(this.$children);\n let usesRendererComponent = false;\n let columnSettings: HotTableProps[] = hotColumns.map((elem) => {\n if (elem.usesRendererComponent) {\n usesRendererComponent = true;\n }\n\n return {...elem.columnSettings};\n });\n\n if (usesRendererComponent &&\n (this.settings && (this.settings.autoColumnSize !== false || this.settings.autoRowSize)) &&\n (this.autoColumnSize !== false || this.autoRowSize)) {\n console.warn('Your `hot-table` configuration includes both `hot-column` and `autoRowSize`/`autoColumnSize`, which are not compatible with each other ' +\n 'in this version of `@handsontable/vue`. Disable `autoRowSize` and `autoColumnSize` to prevent row and column misalignment.')\n }\n\n return columnSettings.length ? columnSettings : void 0;\n },\n /**\n * Create the wrapper function for the provided renderer child component.\n *\n * @param {Object} vNode VNode of the renderer child component.\n * @param {Boolean} containerComponent Instance of the component, which will be treated as a parent for the newly created renderer component.\n * @returns {Function} The wrapper function used as the renderer.\n */\n getRendererWrapper: function (vNode: VNode, containerComponent: Vue): (...args) => HTMLElement {\n const $vm = this;\n\n return function (instance, TD, row, col, prop, value, cellProperties) {\n // Prevent caching and rendering of the GhostTable table cells\n if (TD && !TD.getAttribute('ghost-table')) {\n const rendererCache = $vm.rendererCache;\n const rendererArgs: object = {\n hotInstance: instance,\n TD,\n row,\n col,\n prop,\n value,\n cellProperties,\n isRenderer: true\n };\n\n if (rendererCache && !rendererCache.has(`${row}-${col}`)) {\n const mountedComponent: Vue = createVueComponent(vNode, containerComponent, vNode.componentOptions.propsData, rendererArgs);\n\n rendererCache.set(`${row}-${col}`, {\n component: mountedComponent,\n lastUsedTD: null\n });\n }\n\n const cachedEntry = rendererCache.get(`${row}-${col}`);\n const cachedComponent: Vue = cachedEntry.component;\n const cachedTD: HTMLTableCellElement = cachedEntry.lastUsedTD;\n\n Object.assign(cachedComponent.$data, rendererArgs);\n\n if (!cachedComponent.$el.parentElement || cachedTD !== TD) {\n // Clear the previous contents of a TD\n while (TD.firstChild) {\n TD.removeChild(TD.firstChild);\n }\n\n TD.appendChild(cachedComponent.$el);\n\n cachedEntry.lastUsedTD = TD;\n }\n }\n\n return TD;\n };\n },\n /**\n * Create a fresh class to be used as an editor, based on the editor component provided.\n *\n * @param {Object} vNode VNode for the editor child component.\n * @param {Boolean} containerComponent Instance of the component, which will be treated as a parent for the newly created editor component.\n * @returns {Class} The class used as an editor in Handsontable.\n */\n getEditorClass: function (vNode: VNode, containerComponent: Vue): typeof Handsontable.editors.BaseEditor {\n const componentKey: string = vNode.key ? vNode.key.toString() : null;\n const componentName: string = (vNode.componentOptions.Ctor as any).options.name;\n const componentCacheKey = componentKey ? `${componentName}:${componentKey}` : componentName;\n\n const editorCache = this.editorCache;\n let mountedComponent: EditorComponent = null;\n\n if (!editorCache.has(componentCacheKey)) {\n mountedComponent = createVueComponent(vNode, containerComponent, vNode.componentOptions.propsData, {isEditor: true});\n\n editorCache.set(componentCacheKey, mountedComponent);\n\n } else {\n mountedComponent = editorCache.get(componentCacheKey);\n }\n\n return mountedComponent.$data.hotCustomEditorClass;\n }\n },\n mounted: function () {\n this.columnSettings = this.getColumnSettings();\n\n return this.hotInit();\n },\n beforeDestroy: function () {\n if (this.hotInstance) {\n this.hotInstance.destroy();\n }\n },\n version: (packageJson as any).version\n };\n\n export default HotTable;\n export { HotTable };\n</script>\n","/**\n * vue-class-component v7.2.6\n * (c) 2015-present Evan You\n * @license MIT\n */\nimport Vue from 'vue';\n\nfunction _typeof(obj) {\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function (obj) {\n return typeof obj;\n };\n } else {\n _typeof = function (obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n}\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nfunction _toConsumableArray(arr) {\n return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _nonIterableSpread();\n}\n\nfunction _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) {\n for (var i = 0, arr2 = new Array(arr.length); i < arr.length; i++) arr2[i] = arr[i];\n\n return arr2;\n }\n}\n\nfunction _iterableToArray(iter) {\n if (Symbol.iterator in Object(iter) || Object.prototype.toString.call(iter) === \"[object Arguments]\") return Array.from(iter);\n}\n\nfunction _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance\");\n}\n\n// The rational behind the verbose Reflect-feature check below is the fact that there are polyfills\n// which add an implementation for Reflect.defineMetadata but not for Reflect.getOwnMetadataKeys.\n// Without this check consumers will encounter hard to track down runtime errors.\nfunction reflectionIsSupported() {\n return typeof Reflect !== 'undefined' && Reflect.defineMetadata && Reflect.getOwnMetadataKeys;\n}\nfunction copyReflectionMetadata(to, from) {\n forwardMetadata(to, from);\n Object.getOwnPropertyNames(from.prototype).forEach(function (key) {\n forwardMetadata(to.prototype, from.prototype, key);\n });\n Object.getOwnPropertyNames(from).forEach(function (key) {\n forwardMetadata(to, from, key);\n });\n}\n\nfunction forwardMetadata(to, from, propertyKey) {\n var metaKeys = propertyKey ? Reflect.getOwnMetadataKeys(from, propertyKey) : Reflect.getOwnMetadataKeys(from);\n metaKeys.forEach(function (metaKey) {\n var metadata = propertyKey ? Reflect.getOwnMetadata(metaKey, from, propertyKey) : Reflect.getOwnMetadata(metaKey, from);\n\n if (propertyKey) {\n Reflect.defineMetadata(metaKey, metadata, to, propertyKey);\n } else {\n Reflect.defineMetadata(metaKey, metadata, to);\n }\n });\n}\n\nvar fakeArray = {\n __proto__: []\n};\nvar hasProto = fakeArray instanceof Array;\nfunction createDecorator(factory) {\n return function (target, key, index) {\n var Ctor = typeof target === 'function' ? target : target.constructor;\n\n if (!Ctor.__decorators__) {\n Ctor.__decorators__ = [];\n }\n\n if (typeof index !== 'number') {\n index = undefined;\n }\n\n Ctor.__decorators__.push(function (options) {\n return factory(options, key, index);\n });\n };\n}\nfunction mixins() {\n for (var _len = arguments.length, Ctors = new Array(_len), _key = 0; _key < _len; _key++) {\n Ctors[_key] = arguments[_key];\n }\n\n return Vue.extend({\n mixins: Ctors\n });\n}\nfunction isPrimitive(value) {\n var type = _typeof(value);\n\n return value == null || type !== 'object' && type !== 'function';\n}\nfunction warn(message) {\n if (typeof console !== 'undefined') {\n console.warn('[vue-class-component] ' + message);\n }\n}\n\nfunction collectDataFromConstructor(vm, Component) {\n // override _init to prevent to init as Vue instance\n var originalInit = Component.prototype._init;\n\n Component.prototype._init = function () {\n var _this = this;\n\n // proxy to actual vm\n var keys = Object.getOwnPropertyNames(vm); // 2.2.0 compat (props are no longer exposed as self properties)\n\n if (vm.$options.props) {\n for (var key in vm.$options.props) {\n if (!vm.hasOwnProperty(key)) {\n keys.push(key);\n }\n }\n }\n\n keys.forEach(function (key) {\n Object.defineProperty(_this, key, {\n get: function get() {\n return vm[key];\n },\n set: function set(value) {\n vm[key] = value;\n },\n configurable: true\n });\n });\n }; // should be acquired class property values\n\n\n var data = new Component(); // restore original _init to avoid memory leak (#209)\n\n Component.prototype._init = originalInit; // create plain data object\n\n var plainData = {};\n Object.keys(data).forEach(function (key) {\n if (data[key] !== undefined) {\n plainData[key] = data[key];\n }\n });\n\n if (process.env.NODE_ENV !== 'production') {\n if (!(Component.prototype instanceof Vue) && Object.keys(plainData).length > 0) {\n warn('Component class must inherit Vue or its descendant class ' + 'when class property is used.');\n }\n }\n\n return plainData;\n}\n\nvar $internalHooks = ['data', 'beforeCreate', 'created', 'beforeMount', 'mounted', 'beforeDestroy', 'destroyed', 'beforeUpdate', 'updated', 'activated', 'deactivated', 'render', 'errorCaptured', 'serverPrefetch' // 2.6\n];\nfunction componentFactory(Component) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n options.name = options.name || Component._componentTag || Component.name; // prototype props.\n\n var proto = Component.prototype;\n Object.getOwnPropertyNames(proto).forEach(function (key) {\n if (key === 'constructor') {\n return;\n } // hooks\n\n\n if ($internalHooks.indexOf(key) > -1) {\n options[key] = proto[key];\n return;\n }\n\n var descriptor = Object.getOwnPropertyDescriptor(proto, key);\n\n if (descriptor.value !== void 0) {\n // methods\n if (typeof descriptor.value === 'function') {\n (options.methods || (options.methods = {}))[key] = descriptor.value;\n } else {\n // typescript decorated data\n (options.mixins || (options.mixins = [])).push({\n data: function data() {\n return _defineProperty({}, key, descriptor.value);\n }\n });\n }\n } else if (descriptor.get || descriptor.set) {\n // computed properties\n (options.computed || (options.computed = {}))[key] = {\n get: descriptor.get,\n set: descriptor.set\n };\n }\n });\n (options.mixins || (options.mixins = [])).push({\n data: function data() {\n return collectDataFromConstructor(this, Component);\n }\n }); // decorate options\n\n var decorators = Component.__decorators__;\n\n if (decorators) {\n decorators.forEach(function (fn) {\n return fn(options);\n });\n delete Component.__decorators__;\n } // find super\n\n\n var superProto = Object.getPrototypeOf(Component.prototype);\n var Super = superProto instanceof Vue ? superProto.constructor : Vue;\n var Extended = Super.extend(options);\n forwardStaticMembers(Extended, Component, Super);\n\n if (reflectionIsSupported()) {\n copyReflectionMetadata(Extended, Component);\n }\n\n return Extended;\n}\nvar reservedPropertyNames = [// Unique id\n'cid', // Super Vue constructor\n'super', // Component options that will be used by the component\n'options', 'superOptions', 'extendOptions', 'sealedOptions', // Private assets\n'component', 'directive', 'filter'];\nvar shouldIgnore = {\n prototype: true,\n arguments: true,\n callee: true,\n caller: true\n};\n\nfunction forwardStaticMembers(Extended, Original, Super) {\n // We have to use getOwnPropertyNames since Babel registers methods as non-enumerable\n Object.getOwnPropertyNames(Original).forEach(function (key) {\n // Skip the properties that should not be overwritten\n if (shouldIgnore[key]) {\n return;\n } // Some browsers does not allow reconfigure built-in properties\n\n\n var extendedDescriptor = Object.getOwnPropertyDescriptor(Extended, key);\n\n if (extendedDescriptor && !extendedDescriptor.configurable) {\n return;\n }\n\n var descriptor = Object.getOwnPropertyDescriptor(Original, key); // If the user agent does not support `__proto__` or its family (IE <= 10),\n // the sub class properties may be inherited properties from the super class in TypeScript.\n // We need to exclude such properties to prevent to overwrite\n // the component options object which stored on the extended constructor (See #192).\n // If the value is a referenced value (object or function),\n // we can check equality of them and exclude it if they have the same reference.\n // If it is a primitive value, it will be forwarded for safety.\n\n if (!hasProto) {\n // Only `cid` is explicitly exluded from property forwarding\n // because we cannot detect whether it is a inherited property or not\n // on the no `__proto__` environment even though the property is reserved.\n if (key === 'cid') {\n return;\n }\n\n var superDescriptor = Object.getOwnPropertyDescriptor(Super, key);\n\n if (!isPrimitive(descriptor.value) && superDescriptor && superDescriptor.value === descriptor.value) {\n return;\n }\n } // Warn if the users manually declare reserved properties\n\n\n if (process.env.NODE_ENV !== 'production' && reservedPropertyNames.indexOf(key) >= 0) {\n warn(\"Static property name '\".concat(key, \"' declared on class '\").concat(Original.name, \"' \") + 'conflicts with reserved property name of Vue internal. ' + 'It may cause unexpected behavior of the component. Consider renaming the property.');\n }\n\n Object.defineProperty(Extended, key, descriptor);\n });\n}\n\nfunction Component(options) {\n if (typeof options === 'function') {\n return componentFactory(options);\n }\n\n return function (Component) {\n return componentFactory(Component, options);\n };\n}\n\nComponent.registerHooks = function registerHooks(keys) {\n $internalHooks.push.apply($internalHooks, _toConsumableArray(keys));\n};\n\nexport default Component;\nexport { createDecorator, mixins };\n","<script lang=\"ts\">\n import Vue from 'vue';\n import Handsontable from 'handsontable/base';\n import Component from 'vue-class-component';\n\n @Component({})\n class BaseEditorComponent extends Vue implements Handsontable.editors.BaseEditor {\n name = 'BaseEditorComponent';\n instance = null;\n row = null;\n col = null;\n prop = null;\n TD = null;\n originalValue = null;\n cellProperties = null;\n state = null;\n hot = null;\n\n mounted() {\n const _this = this;\n\n this.$data.hotCustomEditorClass = function () {\n const customEditorClass = class CustomEditor extends Handsontable.editors.BaseEditor implements Handsontable.editors.BaseEditor {\n constructor(hotInstance) {\n super(hotInstance);\n\n _this.$data.hotCustomEditorInstance = this;\n }\n\n focus() {\n }\n\n getValue() {\n }\n\n setValue() {\n }\n\n open() {\n }\n\n close() {\n }\n } as any;\n\n // Fill with the rest of the BaseEditorComponent methods\n Object.getOwnPropertyNames(Handsontable.editors.BaseEditor.prototype).forEach(propName => {\n if (propName === 'constructor') {\n return;\n }\n\n customEditorClass.prototype[propName] = function (...args) {\n return _this[propName].call(this, ...args);\n }\n });\n\n return customEditorClass;\n }();\n }\n\n // BaseEditorComponent methods:\n private _fireCallbacks(...args) {\n (Handsontable.editors.BaseEditor.prototype as any)._fireCallbacks.call(this.$data.hotCustomEditorInstance, ...args);\n }\n\n beginEditing(...args) {\n return Handsontable.editors.BaseEditor.prototype.beginEditing.call(this.$data.hotCustomEditorInstance, ...args);\n }\n\n cancelChanges(...args) {\n return Handsontable.editors.BaseEditor.prototype.cancelChanges.call(this.$data.hotCustomEditorInstance, ...args);\n }\n\n checkEditorSection(...args) {\n return Handsontable.editors.BaseEditor.prototype.checkEditorSection.call(this.$data.hotCustomEditorInstance, ...args);\n }\n\n close(...args) {\n return Handsontable.editors.BaseEditor.prototype.close.call(this.$data.hotCustomEditorInstance, ...args);\n }\n\n discardEditor(...args) {\n return Handsontable.editors.BaseEditor.prototype.discardEditor.call(this.$data.hotCustomEditorInstance, ...args);\n }\n\n enableFullEditMode(...args) {\n return Handsontable.editors.BaseEditor.prototype.enableFullEditMode.call(this.$data.hotCustomEditorInstance, ...args);\n }\n\n extend(...args) {\n return Handsontable.editors.BaseEditor.prototype.extend.call(this.$data.hotCustomEditorInstance, ...args);\n }\n\n finishEditing(...args) {\n return Handsontable.editors.BaseEditor.prototype.finishEditing.call(this.$data.hotCustomEditorInstance, ...args);\n }\n\n focus(...args) {\n return Handsontable.editors.BaseEditor.prototype.focus.call(this.$data.hotCustomEditorInstance, ...args);\n }\n\n getValue(...args) {\n return Handsontable.editors.BaseEditor.prototype.getValue.call(this.$data.hotCustomEditorInstance, ...args);\n }\n\n init(...args) {\n return Handsontable.editors.BaseEditor.prototype.init.call(this.$data.hotCustomEditorInstance, ...args);\n }\n\n isInFullEditMode(...args) {\n return Handsontable.editors.BaseEditor.prototype.isInFullEditMode.call(this.$data.hotCustomEditorInstance, ...args);\n }\n\n isOpened(...args) {\n return Handsontable.editors.BaseEditor.prototype.isOpened.call(this.$data.hotCustomEditorInstance, ...args);\n }\n\n isWaiting(...args) {\n return Handsontable.editors.BaseEditor.prototype.isWaiting.call(this.$data.hotCustomEditorInstance, ...args);\n }\n\n open(...args) {\n return Handsontable.editors.BaseEditor.prototype.open.call(this.$data.hotCustomEditorInstance, ...args);\n }\n\n prepare(row, col, prop, TD, originalValue, cellProperties) {\n this.$data.hotInstance = cellProperties.instance;\n this.$data.row = row;\n this.$data.col = col;\n this.$data.prop = prop;\n this.$data.TD = TD;\n this.$data.originalValue = originalValue;\n this.$data.cellProperties = cellProperties;\n\n return Handsontable.editors.BaseEditor.prototype.prepare.call(this.$data.hotCustomEditorInstance, row, col, prop, TD, originalValue, cellProperties);\n }\n\n saveValue(...args) {\n return Handsontable.editors.BaseEditor.prototype.saveValue.call(this.$data.hotCustomEditorInstance, ...args);\n }\n\n setValue(...args) {\n return Handsontable.editors.BaseEditor.prototype.setValue.call(this.$data.hotCustomEditorInstance, ...args);\n }\n\n addHook(...args) {\n return (Handsontable.editors.BaseEditor.prototype as any).addHook.call(this.$data.hotCustomEditorInstance, ...args);\n }\n\n removeHooksByKey(...args) {\n return (Handsontable.editors.BaseEditor.prototype as any).removeHooksByKey.call(this.$data.hotCustomEditorInstance, ...args);\n }\n\n clearHooks(...args) {\n return (Handsontable.editors.BaseEditor.prototype as any).clearHooks.call(this.$data.hotCustomEditorInstance, ...args);\n }\n\n getEditedCell(...args) {\n return (Handsontable.editors.BaseEditor.prototype as any).getEditedCell.call(this.$data.hotCustomEditorInstance, ...args);\n }\n\n getEditedCellsZIndex(...args) {\n return (Handsontable.editors.BaseEditor.prototype as any).getEditedCellsZIndex.call(this.$data.hotCustomEditorInstance, ...args);\n }\n\n getEditedCellsLayerClass(...args) {\n return (Handsontable.editors.BaseEditor.prototype as any).getEditedCellsLayerClass.call(this.$data.hotCustomEditorInstance, ...args);\n }\n }\n\n export default BaseEditorComponent;\n export { BaseEditorComponent };\n</script>\n"],"names":["unassignedPropSymbol","Symbol","bulkComponentContainer","propFactory","source","registeredHooks","Handsontable","hooks","getRegistered","propSchema","prop","Object","assign","DefaultSettings","i","length","settings","id","type","String","Math","random","toString","substring","wrapperRendererCacheSize","Number","filterPassedProps","props","filteredProps","columnSettingsProp","propName","hasOwnProperty","prepareSettings","currentSettings","assignedProps","hotSettingsInProps","additionalHotSettingsInProps","newSettings","key","simpleEqual","findVNodeByType","componentSlots","componentVNode","every","slot","index","data","attrs","createVueComponent","vNode","parent","ownerDocument","$el","document","propsData","createElement","body","appendChild","componentContainer","componentOptions","Ctor","$mount","objectA","objectB","JSON","stringify","exports","NEWER","OLDER","LRUMap","limit","entries","size","oldest","this","newest","undefined","_keymap","Map","Entry","value","prototype","_markEntryAsUsed","entry","MAX_VALUE","clear","it","iterator","itv","next","done","e","set","Error","get","shift","has","f","normalizeComponent","template","style","script","scopeId","isFunctionalTemplate","moduleIdentifier","shadowMode","createInjector","createInjectorSSR","createInjectorShadow","options","hook","render","staticRenderFns","_compiled","functional","_scopeId","context","$vnode","ssrContext","__VUE_SSR_CONTEXT__","call","_registeredComponents","add","_ssrRegister","$root","$options","shadowRoot","originalRender","h","existing","beforeCreate","concat","component","hotInstance","addHook","__internalEdit","filter","child","name","_typeof","obj","_typeof2","constructor","_defineProperty","defineProperty","enumerable","configurable","writable","_toConsumableArray","arr","Array","isArray","arr2","_arrayWithoutHoles","iter","from","_iterableToArray","TypeError","_nonIterableSpread","reflectionIsSupported","Reflect","defineMetadata","getOwnMetadataKeys","copyReflectionMetadata","to","forwardMetadata","getOwnPropertyNames","forEach","propertyKey","metaKey","metadata","getOwnMetadata","hasProto","__proto__","collectDataFromConstructor","vm","Component","originalInit","_init","_this","keys","push","plainData","$internalHooks","componentFactory","arguments","_componentTag","proto","indexOf","descriptor","getOwnPropertyDescriptor","methods","mixins","computed","decorators","__decorators__","fn","superProto","getPrototypeOf","Super","Vue","Extended","extend","forwardStaticMembers","shouldIgnore","callee","caller","Original","extendedDescriptor","superDescriptor","registerHooks","apply"],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import Handsontable from 'handsontable';
1
+ import Handsontable from 'handsontable/base';
2
2
  import Vue from 'vue';
3
3
 
4
4
  function ownKeys(object, enumerableOnly) {
@@ -373,7 +373,7 @@ function simpleEqual(objectA, objectB) {
373
373
  return JSON.stringify(objectA) === JSON.stringify(objectB);
374
374
  }
375
375
 
376
- var version="10.0.0";
376
+ var version="11.0.0";
377
377
 
378
378
  var commonjsGlobal = typeof globalThis !== 'undefined' ? globalThis : typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : {};
379
379
 
@@ -1358,12 +1358,12 @@ var BaseEditorComponent = /*#__PURE__*/function (_Vue) {
1358
1358
 
1359
1359
  var _super2 = _createSuper(CustomEditor);
1360
1360
 
1361
- function CustomEditor(hotInstance, row, col, prop, TD, cellProperties) {
1361
+ function CustomEditor(hotInstance) {
1362
1362
  var _this3;
1363
1363
 
1364
1364
  _classCallCheck(this, CustomEditor);
1365
1365
 
1366
- _this3 = _super2.call(this, hotInstance, row, col, prop, TD, cellProperties);
1366
+ _this3 = _super2.call(this, hotInstance);
1367
1367
  _this.$data.hotCustomEditorInstance = _assertThisInitialized(_this3);
1368
1368
  return _this3;
1369
1369
  }
package/helpers.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  import Vue, { VNode } from 'vue';
2
- import Handsontable from 'handsontable';
2
+ import Handsontable from 'handsontable/base';
3
3
  import { HotTableProps, VueProps, EditorComponent } from './types';
4
4
  /**
5
5
  * Message for the warning thrown if the Handsontable instance has been destroyed.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@handsontable/vue",
3
- "version": "10.0.0",
3
+ "version": "11.0.0",
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",
@@ -44,7 +44,7 @@
44
44
  "url": "https://github.com/handsontable/handsontable/issues"
45
45
  },
46
46
  "peerDependencies": {
47
- "handsontable": ">=10.0.0",
47
+ "handsontable": ">=11.0.0",
48
48
  "vue": "^2.5.0"
49
49
  },
50
50
  "devDependencies": {
@@ -61,7 +61,7 @@
61
61
  "cross-env": "^5.2.0",
62
62
  "css-loader": "^3.0.0",
63
63
  "del-cli": "^3.0.1",
64
- "handsontable": "^10.0.0",
64
+ "handsontable": "^11.0.0",
65
65
  "jest": "^26.6.3",
66
66
  "rollup": "^2.0.0",
67
67
  "rollup-plugin-babel": "^4.3.2",
package/types.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- import Handsontable from 'handsontable';
1
+ import Handsontable from 'handsontable/base';
2
2
  import Vue, { VNode } from 'vue';
3
3
  import { ThisTypedComponentOptionsWithRecordProps } from 'vue/types/options';
4
4
  export interface HotTableData {
Binary file